66import ipaddress
77import json
88import sys
9- from .meta import MetaData
10- from .info import IPInfo
9+
1110from .util import bytes2long
1211from .exceptions import NoSupportIPv4Error ,NoSupportIPv6Error ,NoSupportLanguageError ,DatabaseError ,IPNotFound
1312
1413
14+ class MetaData (object ):
15+ def __init__ (self ,** kwargs ):
16+ self .fields = kwargs ['fields' ]
17+ self .node_count = kwargs ['node_count' ]
18+ self .total_size = kwargs ['total_size' ]
19+ self .build = kwargs ['build' ]
20+ self .languages = kwargs ['languages' ]
21+ self .ip_version = kwargs ['ip_version' ]
22+
23+
1524class Reader :
1625
1726_meta = {}
@@ -95,7 +104,7 @@ def _resolve(self, node):
95104raise DatabaseError ("database is error" )
96105return self .data [resolved + 2 :resolved + 2 + size ]
97106
98- def find (self ,addr ,language = "CN" ):
107+ def find (self ,addr ,language ):
99108off = self ._meta .languages .get (language )
100109if off is None :
101110raise NoSupportLanguageError (language + " is not support" )
@@ -123,7 +132,7 @@ def find(self, addr, language = "CN"):
123132
124133return tmp [off :off + len (self ._meta .fields )]
125134
126- def find_map (self ,addr ,language = 'CN' ):
135+ def find_map (self ,addr ,language ):
127136loc = self .find (addr ,language )
128137if loc is None :
129138return None
@@ -132,11 +141,6 @@ def find_map(self, addr, language = 'CN'):
132141m [value ]= loc [idx ]
133142return m
134143
135- def find_info (self ,addr ,language = 'CN' ):
136- m = self .find_map (addr ,language )
137- if m is None :
138- return None
139- return IPInfo (** m )
140144
141145def get_meta_data (self ):
142146return self ._meta