diff --git a/kwant/builder.py b/kwant/builder.py index b3998471832b94d9d616d8e58b3d5a9daea11294..70558dc761da3ee36e26769d022da331d0d7c090 100644 --- a/kwant/builder.py +++ b/kwant/builder.py @@ -75,7 +75,9 @@ class Site(tuple): return 'Site({0}, {1})'.format(repr(self.family), repr(self.tag)) def __str__(self): - return '{1} of {0}'.format(str(self.family), str(self.tag)) + sf = self.family + return '<Site {1} of {0}>'.format(str(sf.name if sf.name else sf), + str(self.tag)) @property def pos(self): @@ -113,7 +115,11 @@ class SiteFamily(object): return self.canonical_repr def __str__(self): - return '{0} object {1}'.format(self.__class__, self.name) + if self.name: + msg = '<{0} site family {1}>' + else: + msg = '<unnamed {0} site family>' + return msg.format(self.__class__.__name__, self.name) def __hash__(self): return self.hash @@ -344,6 +350,13 @@ class HoppingKind(object): repr(self.family_a), ', ' + repr(self.family_b) if self.family_a != self.family_b else '') + def __str__(self): + return '{0}({1}, {2}{3})'.format( + self.__class__.__name__, str(tuple(self.delta)), + str(self.family_a), + ', ' + str(self.family_b) if self.family_a != self.family_b else '') + + ################ Support for Hermitian conjugation diff --git a/kwant/lattice.py b/kwant/lattice.py index 4c2bcd9b47e1dc87519a20bae5f2b89ddc2c2fc0..0c0646e9b1a2e7bb9bded97a2c80fbfca81b23b2 100644 --- a/kwant/lattice.py +++ b/kwant/lattice.py @@ -101,6 +101,10 @@ class Polyatomic(object): self.reduced_vecs, self.transf = lll.lll(prim_vecs) self.voronoi = ta.dot(lll.voronoi(self.reduced_vecs), self.transf) + def __str__(self): + sl_names = ', '.join(str(sl.name) for sl in self.sublattices) + return '<Polyatomic lattice with sublattices {0}>'.format(sl_names) + def shape(self, function, start): """Return a key for all the lattice sites inside a given shape. @@ -429,12 +433,10 @@ class Monatomic(builder.SiteFamily, Polyatomic): self.lattice_dim = len(prim_vecs) if name != '': - msg = "Monatomic lattice {0}, vectors {1}, origin {2}" - self.cached_str = msg.format(name, - short_array_str(self._prim_vecs), - short_array_str(self.offset)) + msg = "<Monatomic lattice {0}>" + self.cached_str = msg.format(name) else: - msg = "unnamed Monatomic lattice, vectors {0}, origin [{1}]" + msg = "<unnamed Monatomic lattice, vectors {0}, origin [{1}]>" self.cached_str = msg.format(short_array_str(self._prim_vecs), short_array_str(self.offset))