@@ -28,12 +28,14 @@ class PlaceRecord(Record):
2828 def __init__ (self , languages = None , ** kwargs ):
2929 if languages is None :
3030 languages = ['en' ]
31- object .__setattr__ (self , 'languages' , languages )
31+ if kwargs .get ('names' ) is None :
32+ kwargs ['names' ] = {}
33+ object .__setattr__ (self , '_languages' , languages )
3234 super (PlaceRecord , self ).__init__ (** kwargs )
3335
3436 @property
3537 def name (self ):
36- return next ((self .names .get (x ) for x in self .languages if x in
38+ return next ((self .names .get (x ) for x in self ._languages if x in
3739 self .names ), None )
3840
3941
@@ -208,20 +210,24 @@ class Subdivisions(tuple):
208210 """
209211 def __new__ (cls , languages , * subdivisions ):
210212 subdivisions = [Subdivision (languages , ** x ) for x in subdivisions ]
211- return super (cls , Subdivisions ).__new__ (cls , subdivisions )
213+ obj = super (cls , Subdivisions ).__new__ (cls , subdivisions )
214+ obj ._languages = languages
215+ return obj
212216
217+ @property
213218 def most_specific (self ):
214219 """The most specific subdivision available
215220
216- :returns: The most specific (smallest) :py:class:`Subdivision`
217- :raises: :py:exc:`ValueError` if :py:class:`Subdivisions` does
218- not contain any :py:class:`Subdivision` objects
221+ :returns: The most specific (smallest) :py:class:`Subdivision`. If there
222+ are no :py:class:`Subdivision` objects for the response, this returns an
223+ empty :py:class:`Subdivision`.
219224
220225 """
221226 try :
222227 return self [- 1 ]
223228 except IndexError :
224- raise ValueError ('No subdivisions are available' );
229+ return Subdivision (self ._languages )
230+
225231
226232class Traits (Record ):
227233 """ Contains data for the traits record associated with an IP address
0 commit comments