--- 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)