From cdce47f98d5058a2bca6582621d2066005eaf015 Mon Sep 17 00:00:00 2001
From: Anton Akhmerov <anton.akhmerov@gmail.com>
Date: Mon, 26 May 2014 11:29:22 +0200
Subject: [PATCH] builder cleanup: error handling, unused imports

Conflicts:
	kwant/builder.py
---
 kwant/builder.py | 17 +++++++----------
 1 file changed, 7 insertions(+), 10 deletions(-)

diff --git a/kwant/builder.py b/kwant/builder.py
index c209f64d..d972a7c9 100644
--- a/kwant/builder.py
+++ b/kwant/builder.py
@@ -13,13 +13,12 @@ __all__ = ['Builder', 'Site', 'SiteFamily', 'SimpleSiteFamily', 'Symmetry',
            'BuilderKeyError', 'format_hopping']
 
 import abc
-import sys
 import warnings
 import operator
 from itertools import izip, islice, chain
 import tinyarray as ta
 import numpy as np
-from . import system, graph, physics
+from . import system, graph
 
 
 class BuilderKeyError(KeyError):
@@ -95,10 +94,9 @@ class Site(tuple):
             return tuple.__new__(cls, (family, tag))
         try:
             tag = family.normalize_tag(tag)
-        except (TypeError, ValueError):
-            t, v, tb = sys.exc_info()
+        except (TypeError, ValueError) as e:
             msg = 'Tag {0} is not allowed for site family {1}: {2}'
-            raise t(msg.format(repr(tag), repr(family), v))
+            raise type(e)(msg.format(repr(tag), repr(family), e.args[0]))
         return tuple.__new__(cls, (family, tag))
 
     def __repr__(self):
@@ -432,7 +430,7 @@ class Lead(object):
     __metaclass__ = abc.ABCMeta
 
     @abc.abstractmethod
-    def finalized():
+    def finalized(self):
         """Return a finalized version of the lead.
 
         Returns
@@ -537,7 +535,7 @@ class ModesLead(Lead):
         return self.modes_func(energy, args)
 
     def selfenergy(self, energy, args=()):
-        propagating, stabilized = self.modes(energy, args)
+        stabilized = self.modes(energy, args)[1]
         return stabilized.selfenergy()
 
 
@@ -1214,11 +1212,10 @@ class Builder(object):
                 raise
             try:
                 interface = [id_by_site[isite] for isite in lead.interface]
-            except KeyError, e:
-                t, v, tb = sys.exc_info()
+            except KeyError as e:
                 msg = ("Lead {0} is attached to a site that does not "
                        "belong to the scattering region:\n {1}")
-                raise ValueError(msg.format(lead_nr, v))
+                raise ValueError(msg.format(lead_nr, e.args[0]))
 
             lead_interfaces.append(np.array(interface))
 
-- 
GitLab