@@ -122,15 +122,17 @@ def country_name_for_number(numobj, lang, script=None, region=None):
122122 return u""
123123
124124
125- def description_for_number (numobj , lang , script = None , region = None ):
126- """Return a text description of the given PhoneNumber object for the given language.
125+ def description_for_valid_number (numobj , lang , script = None , region = None ):
126+ """Return a text description of a PhoneNumber object for the given language.
127127
128128 The description might consist of the name of the country where the phone
129129 number is from and/or the name of the geographical area the phone number
130- is from.
130+ is from. This function assumes the validity of the number passed in has
131+ already been checked.
131132
132133 Arguments:
133- numobj -- The PhoneNumber object for which we want to get a text description.
134+ numobj -- A valid PhoneNumber object for which we want to get a text
135+ description.
134136 lang -- A 2-letter lowercase ISO 639-1 language code for the language in
135137 which the description should be returned (e.g. "en")
136138 script -- A 4-letter titlecase (first letter uppercase, rest lowercase)
@@ -140,15 +142,36 @@ def description_for_number(numobj, lang, script=None, region=None):
140142
141143 Returns a text description in the given language code, for the given phone
142144 number, or an empty string if no description is available."""
143- if not is_valid_number (numobj ):
144- return ""
145145 area_description = area_description_for_number (numobj , lang , script , region )
146146 if area_description != "" :
147147 return area_description
148148 else :
149149 # Fall back to the description of the number's region
150150 return country_name_for_number (numobj , lang , script , region )
151151
152+
153+ def description_for_number (numobj , lang , script = None , region = None ):
154+ """Return a text description of a PhoneNumber object for the given language.
155+
156+ The description might consist of the name of the country where the phone
157+ number is from and/or the name of the geographical area the phone number
158+ is from. This function explicitly checks the validity of the number passed in
159+
160+ Arguments:
161+ numobj -- The PhoneNumber object for which we want to get a text description.
162+ lang -- A 2-letter lowercase ISO 639-1 language code for the language in
163+ which the description should be returned (e.g. "en")
164+ script -- A 4-letter titlecase (first letter uppercase, rest lowercase)
165+ ISO script code as defined in ISO 15924, separated by an
166+ underscore (e.g. "Hant")
167+ region -- A 2-letter uppercase ISO 3166-1 country code (e.g. "GB")
168+
169+ Returns a text description in the given language code, for the given phone
170+ number, or an empty string if no description is available."""
171+ if not is_valid_number (numobj ):
172+ return ""
173+ return description_for_valid_number (numobj , lang , script , region )
174+
152175if __name__ == '__main__' : # pragma no cover
153176 import doctest
154177 doctest .testmod ()
0 commit comments