diff -r a0adcb788fec -r ef2df3f23cb1 iro/telnumber.py --- a/iro/telnumber.py Fri Mar 30 02:25:20 2012 +0200 +++ b/iro/telnumber.py Fri Mar 30 11:23:22 2012 +0200 @@ -16,22 +16,52 @@ from .error import InvalidTel class Telnumber: + """A telefonnumer, with splitted country part""" re_telnum=re.compile(r'^\s*(\+)?([0-9\s\-/\(\)]){5,}\s*$') + """Regex for a complete telefon number""" + re_land=re.compile(r'^\s*(\+|00)(?P[1-9]{2})') + """Regex for country part""" + re_number=re.compile(r'[^0-9]') + """Regex for numbers""" + std_land="49" + """Standard country part""" def __init__(self,number=None): + """ + :param string number: a telefonnumber + + .. automethod:: __eq__ + .. automethod:: __neq__ + .. automethod:: __hash__ + .. automethod:: __str__ + .. automethod:: __repr__ + + """ + self.land = None + """Country part of a telefonnumber""" + + self.number = None + """Localpart of the telefonnumber""" + if not(number is None): self.createNumber(number) def createNumber(self, number): + """Split string into two parts: one country part and the rest. + For a local number :attr:`std_land` will be used for country part. + + :param string number: a telefonnumber + """ if not self.re_telnum.match(number): raise InvalidTel(number) self.land=self.std_land + land=self.re_land.match(number) if land: @@ -46,16 +76,30 @@ self.number = number def __eq__(self, y): + """Return ``True``, if y hase the same telefonnumber""" return ((self.number == y.number) and ( self.land == y.land)) - def __ne__(self, y): + def __neq__(self, y): + """Return ``True``, if y is not equal (see :meth:`__eq__`)""" return not self.__eq__(y) def __hash__(self): + """Return the Hash for telefonnumbers. + + Yust use the hash of the string representation of the Number + """ return str(self).__hash__() def __str__(self): + """String representation of the telefonnumber. + + :return: the international telefonnumber with leading zeros + """ return "00%s%s"%(self.land,self.number) def __repr__(self): + """debug representation of the class. + + :return: `` + """ return ""%str(self)