-try:
- import osso
- try:
- import abook
- import evolution.ebook as evobook
- except ImportError:
- abook = None
- evobook = None
-except ImportError:
- osso = None
-
-try:
- import conic
-except ImportError:
- conic = None
-
-try:
- import doctest
- import optparse
-except ImportError:
- doctest = None
- optparse = None
-
-from gcbackend import GCDialer
-
-import socket
-
-
-socket.setdefaulttimeout(5)
-
-
-def make_ugly(prettynumber):
- """
- function to take a phone number and strip out all non-numeric
- characters
-
- >>> make_ugly("+012-(345)-678-90")
- '01234567890'
- """
- uglynumber = re.sub('\D', '', prettynumber)
- return uglynumber
-
-
-def make_pretty(phonenumber):
- """
- Function to take a phone number and return the pretty version
- pretty numbers:
- if phonenumber begins with 0:
- ...-(...)-...-....
- if phonenumber begins with 1: ( for gizmo callback numbers )
- 1 (...)-...-....
- if phonenumber is 13 digits:
- (...)-...-....
- if phonenumber is 10 digits:
- ...-....
- >>> make_pretty("12")
- '12'
- >>> make_pretty("1234567")
- '123-4567'
- >>> make_pretty("2345678901")
- '(234)-567-8901'
- >>> make_pretty("12345678901")
- '1 (234)-567-8901'
- >>> make_pretty("01234567890")
- '+012-(345)-678-90'
- """
- if phonenumber is None:
- return ""
-
- if len(phonenumber) < 3:
- return phonenumber
-
- if phonenumber[0] == "0":
- prettynumber = ""
- prettynumber += "+%s" % phonenumber[0:3]
- if 3 < len(phonenumber):
- prettynumber += "-(%s)" % phonenumber[3:6]
- if 6 < len(phonenumber):
- prettynumber += "-%s" % phonenumber[6:9]
- if 9 < len(phonenumber):
- prettynumber += "-%s" % phonenumber[9:]
- return prettynumber
- elif len(phonenumber) <= 7:
- prettynumber = "%s-%s" % (phonenumber[0:3], phonenumber[3:])
- elif len(phonenumber) > 8 and phonenumber[0] == "1":
- prettynumber = "1 (%s)-%s-%s" % (phonenumber[1:4], phonenumber[4:7], phonenumber[7:])
- elif len(phonenumber) > 7:
- prettynumber = "(%s)-%s-%s" % (phonenumber[0:3], phonenumber[3:6], phonenumber[6:])
- return prettynumber
-
-
-def make_idler(func):
- """
- Decorator that makes a generator-function into a function that will continue execution on next call
- """
- a = []
-
- def callable(*args, **kwds):
- if not a:
- a.append(func(*args, **kwds))
- try:
- a[0].next()
- return True
- except StopIteration:
- return False
-
- callable.__name__ = func.__name__
- callable.__doc__ = func.__doc__
- callable.__dict__.update(func.__dict__)
-
- return callable
-
-
-class PhoneTypeSelector(object):
-
- def __init__(self, widgetTree, gcBackend):
- self._gcBackend = gcBackend
- self._widgetTree = widgetTree
- self._dialog = self._widgetTree.get_widget("phonetype_dialog")