Author: mark
Date: 2008-08-13 08:23:20 -0600 (Wed, 13 Aug 2008)
New Revision: 3556

Modified:
   FormEncode/trunk/formencode/national.py
Log:
support callables in InternationalPhoneNumber to provide a default country code 
dynamically

Modified: FormEncode/trunk/formencode/national.py
===================================================================
--- FormEncode/trunk/formencode/national.py     2008-08-13 14:10:30 UTC (rev 
3555)
+++ FormEncode/trunk/formencode/national.py     2008-08-13 14:23:20 UTC (rev 
3556)
@@ -504,8 +504,14 @@
     Validates, and converts phone numbers to +##-###-#######.
     Adapted from RFC 3966
 
+    @param  default_cc      country code for prepending if none is provided
+                            can be a paramerless callable
+
     ::
 
+        >>> c = InternationalPhoneNumber(default_cc=lambda: 49)
+        >>> c.to_python('0555/8114100')
+        '+49-555-8114100'
         >>> p = InternationalPhoneNumber(default_cc=49)
         >>> p.to_python('333-3333')
         Traceback (most recent call last):
@@ -604,7 +610,11 @@
             value = value.replace(f, t)
         value = self._perform_rex_transformation(value, 
self._preTransformations)
         if self.default_cc:
-            value = self._prepend_country_code(value, self._ccIncluder, 
self.default_cc)
+            if callable(self.default_cc):
+                cc = self.default_cc()
+            else:
+                cc = self.default_cc
+            value = self._prepend_country_code(value, self._ccIncluder, cc)
         value = self._perform_rex_transformation(value, 
self._postTransformations)
         value = value.replace(' ', '')
         # did we successfully transform that phone number? Thus, is it valid?


-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
_______________________________________________
FormEncode-CVS mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/formencode-cvs

Reply via email to