@@ -99,10 +99,7 @@ def connection_type(self, ip_address):
9999 :returns: :py:class:`geoip2.models.ConnectionType` object
100100
101101 """
102- record = self ._get (ip_address )
103- return geoip2 .models .ConnectionType (ip_address = ip_address ,
104- connection_type = record .get (
105- 'connection_type' ))
102+ return self ._flat_model_for (geoip2 .models .ConnectionType , ip_address )
106103
107104 def domain (self , ip_address ):
108105 """Get the Domain object for the IP address
@@ -112,9 +109,7 @@ def domain(self, ip_address):
112109 :returns: :py:class:`geoip2.models.Domain` object
113110
114111 """
115- record = self ._get (ip_address )
116- return geoip2 .models .Domain (ip_address = ip_address ,
117- domain = record .get ('domain' ))
112+ return self ._flat_model_for (geoip2 .models .Domain , ip_address )
118113
119114 def isp_org (self , ip_address ):
120115 """Get the ISPOrg object for the IP address
@@ -124,14 +119,7 @@ def isp_org(self, ip_address):
124119 :returns: :py:class:`geoip2.models.ISPOrg` object
125120
126121 """
127- record = self ._get (ip_address )
128- return geoip2 .models .ISPOrg (ip_address = ip_address ,
129- autonomous_system_number = record .get (
130- 'autonomous_system_number' ),
131- autonomous_system_organization = record .get (
132- 'autonomous_system_organization' ),
133- isp = record .get ('isp' ),
134- organization = record .get ('organization' ))
122+ return self ._flat_model_for (geoip2 .models .ISPOrg , ip_address )
135123
136124 def _get (self , ip_address ):
137125 record = self ._db_reader .get (ip_address )
@@ -145,6 +133,11 @@ def _model_for(self, model_class, ip_address):
145133 record .setdefault ('traits' , {})['ip_address' ] = ip_address
146134 return model_class (record , locales = self ._locales )
147135
136+ def _flat_model_for (self , model_class , ip_address ):
137+ record = self ._get (ip_address )
138+ record ['ip_address' ] = ip_address
139+ return model_class (record )
140+
148141 def close (self ):
149142 """Closes the GeoIP2 database"""
150143
0 commit comments