4444
4545# Pull in the data structure definitions
4646from phonenumbers .phonemetadata import NumberFormat , PhoneNumberDesc , PhoneMetadata
47+ from phonenumbers .util import UnicodeMixin
4748
4849# Convention: variables beginning with 'x' are XML objects
4950
@@ -131,7 +132,7 @@ def _expand_formatting_rule(rule, national_prefix):
131132 return rule
132133
133134
134- class XNumberFormat (object ):
135+ class XNumberFormat (UnicodeMixin ):
135136 """Parsed NumberFormat objects from XML element"""
136137 def __init__ (self , owning_xterr , xtag , national_prefix , national_prefix_formatting_rule , carrier_code_formatting_rule ):
137138 if xtag is None :
@@ -200,14 +201,11 @@ def __init__(self, owning_xterr, xtag, national_prefix, national_prefix_formatti
200201 # Add this international NumberFormat object into the owning metadata
201202 owning_xterr .o .intl_number_format .append (self .io )
202203
203- def __str__ (self ):
204- return unicode (self ).encode ('utf-8' )
205-
206204 def __unicode__ (self ):
207205 return unicode (self .o )
208206
209207
210- class XPhoneNumberDesc (object ):
208+ class XPhoneNumberDesc (UnicodeMixin ):
211209 """Parse PhoneNumberDesc object from XML element"""
212210 def __init__ (self , xtag ,
213211 template = None , fill_na = True ):
@@ -237,14 +235,11 @@ def __init__(self, xtag,
237235 if example_number is not None :
238236 self .o .example_number = example_number
239237
240- def __str__ (self ):
241- return unicode (self ).encode ('utf-8' )
242-
243238 def __unicode__ (self ):
244239 return unicode (self .o )
245240
246241
247- class XTerritory (object ):
242+ class XTerritory (UnicodeMixin ):
248243 """Parse PhoneMetadata from XML element (territory)"""
249244 def __init__ (self , xterritory ):
250245 # Retrieve the REQUIRED attributes
@@ -342,14 +337,11 @@ def __init__(self, xterritory):
342337 # national formats.
343338 self .o .intl_number_format = []
344339
345- def __str__ (self ):
346- return unicode (self ).encode ('utf-8' )
347-
348340 def __unicode__ (self ):
349341 return unicode (self .o )
350342
351343
352- class XPhoneNumberMetadata (object ):
344+ class XPhoneNumberMetadata (UnicodeMixin ):
353345 """Entire collection of phone number metadata retrieved from XML"""
354346 def __init__ (self , filename ):
355347 # Load the XML data from the given filename
@@ -369,9 +361,6 @@ def __init__(self, filename):
369361 else :
370362 raise Exception ("Unexpected element %s found" % xterritory .tag )
371363
372- def __str__ (self ):
373- return unicode (self ).encode ('utf-8' )
374-
375364 def __unicode__ (self ):
376365 return u'\n ' .join ([u"%s: %s" % (country_id , territory ) for country_id , territory in self .territory .items ()])
377366
0 commit comments