iro/telnumber.py
branchdevel
changeset 267 ef2df3f23cb1
parent 139 65117fd28400
child 291 84eb5a7a715a
--- 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<land>[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: `<Telnumber 0012345667>`
+        """
         return "<Telnumber %s>"%str(self)