Package pygeoip :: Module const
[frames] | no frames]

Source Code for Module pygeoip.const

  1  # -*- coding: utf-8 -*- 
  2  """ 
  3  Constants needed for the binary parser. Part of the pygeoip package. 
  4   
  5  @author: Jennifer Ennis <zaylea@gmail.com> 
  6   
  7  @license: Copyright(C) 2004 MaxMind LLC 
  8   
  9  This program is free software: you can redistribute it and/or modify 
 10  it under the terms of the GNU Lesser General Public License as published by 
 11  the Free Software Foundation, either version 3 of the License, or 
 12  (at your option) any later version. 
 13   
 14  This program is distributed in the hope that it will be useful, 
 15  but WITHOUT ANY WARRANTY; without even the implied warranty of 
 16  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the 
 17  GNU General Public License for more details. 
 18   
 19  You should have received a copy of the GNU Lesser General Public License 
 20  along with this program.  If not, see <http://www.gnu.org/licenses/lgpl.txt>. 
 21  """ 
 22   
 23  from platform import python_version_tuple 
 24   
 25  PY2 = python_version_tuple()[0] == '2' 
 26  PY3 = python_version_tuple()[0] == '3' 
 27   
 28  GEOIP_STANDARD = 0 
 29  GEOIP_MEMORY_CACHE = 1 
 30   
 31  DMA_MAP = { 
 32      500: 'Portland-Auburn, ME', 
 33      501: 'New York, NY', 
 34      502: 'Binghamton, NY', 
 35      503: 'Macon, GA', 
 36      504: 'Philadelphia, PA', 
 37      505: 'Detroit, MI', 
 38      506: 'Boston, MA', 
 39      507: 'Savannah, GA', 
 40      508: 'Pittsburgh, PA', 
 41      509: 'Ft Wayne, IN', 
 42      510: 'Cleveland, OH', 
 43      511: 'Washington, DC', 
 44      512: 'Baltimore, MD', 
 45      513: 'Flint, MI', 
 46      514: 'Buffalo, NY', 
 47      515: 'Cincinnati, OH', 
 48      516: 'Erie, PA', 
 49      517: 'Charlotte, NC', 
 50      518: 'Greensboro, NC', 
 51      519: 'Charleston, SC', 
 52      520: 'Augusta, GA', 
 53      521: 'Providence, RI', 
 54      522: 'Columbus, GA', 
 55      523: 'Burlington, VT', 
 56      524: 'Atlanta, GA', 
 57      525: 'Albany, GA', 
 58      526: 'Utica-Rome, NY', 
 59      527: 'Indianapolis, IN', 
 60      528: 'Miami, FL', 
 61      529: 'Louisville, KY', 
 62      530: 'Tallahassee, FL', 
 63      531: 'Tri-Cities, TN', 
 64      532: 'Albany-Schenectady-Troy, NY', 
 65      533: 'Hartford, CT', 
 66      534: 'Orlando, FL', 
 67      535: 'Columbus, OH', 
 68      536: 'Youngstown-Warren, OH', 
 69      537: 'Bangor, ME', 
 70      538: 'Rochester, NY', 
 71      539: 'Tampa, FL', 
 72      540: 'Traverse City-Cadillac, MI', 
 73      541: 'Lexington, KY', 
 74      542: 'Dayton, OH', 
 75      543: 'Springfield-Holyoke, MA', 
 76      544: 'Norfolk-Portsmouth, VA', 
 77      545: 'Greenville-New Bern-Washington, NC', 
 78      546: 'Columbia, SC', 
 79      547: 'Toledo, OH', 
 80      548: 'West Palm Beach, FL', 
 81      549: 'Watertown, NY', 
 82      550: 'Wilmington, NC', 
 83      551: 'Lansing, MI', 
 84      552: 'Presque Isle, ME', 
 85      553: 'Marquette, MI', 
 86      554: 'Wheeling, WV', 
 87      555: 'Syracuse, NY', 
 88      556: 'Richmond-Petersburg, VA', 
 89      557: 'Knoxville, TN', 
 90      558: 'Lima, OH', 
 91      559: 'Bluefield-Beckley-Oak Hill, WV', 
 92      560: 'Raleigh-Durham, NC', 
 93      561: 'Jacksonville, FL', 
 94      563: 'Grand Rapids, MI', 
 95      564: 'Charleston-Huntington, WV', 
 96      565: 'Elmira, NY', 
 97      566: 'Harrisburg-Lancaster-Lebanon-York, PA', 
 98      567: 'Greenville-Spartenburg, SC', 
 99      569: 'Harrisonburg, VA', 
100      570: 'Florence-Myrtle Beach, SC', 
101      571: 'Ft Myers, FL', 
102      573: 'Roanoke-Lynchburg, VA', 
103      574: 'Johnstown-Altoona, PA', 
104      575: 'Chattanooga, TN', 
105      576: 'Salisbury, MD', 
106      577: 'Wilkes Barre-Scranton, PA', 
107      581: 'Terre Haute, IN', 
108      582: 'Lafayette, IN', 
109      583: 'Alpena, MI', 
110      584: 'Charlottesville, VA', 
111      588: 'South Bend, IN', 
112      592: 'Gainesville, FL', 
113      596: 'Zanesville, OH', 
114      597: 'Parkersburg, WV', 
115      598: 'Clarksburg-Weston, WV', 
116      600: 'Corpus Christi, TX', 
117      602: 'Chicago, IL', 
118      603: 'Joplin-Pittsburg, MO', 
119      604: 'Columbia-Jefferson City, MO', 
120      605: 'Topeka, KS', 
121      606: 'Dothan, AL', 
122      609: 'St Louis, MO', 
123      610: 'Rockford, IL', 
124      611: 'Rochester-Mason City-Austin, MN', 
125      612: 'Shreveport, LA', 
126      613: 'Minneapolis-St Paul, MN', 
127      616: 'Kansas City, MO', 
128      617: 'Milwaukee, WI', 
129      618: 'Houston, TX', 
130      619: 'Springfield, MO', 
131      620: 'Tuscaloosa, AL', 
132      622: 'New Orleans, LA', 
133      623: 'Dallas-Fort Worth, TX', 
134      624: 'Sioux City, IA', 
135      625: 'Waco-Temple-Bryan, TX', 
136      626: 'Victoria, TX', 
137      627: 'Wichita Falls, TX', 
138      628: 'Monroe, LA', 
139      630: 'Birmingham, AL', 
140      631: 'Ottumwa-Kirksville, IA', 
141      632: 'Paducah, KY', 
142      633: 'Odessa-Midland, TX', 
143      634: 'Amarillo, TX', 
144      635: 'Austin, TX', 
145      636: 'Harlingen, TX', 
146      637: 'Cedar Rapids-Waterloo, IA', 
147      638: 'St Joseph, MO', 
148      639: 'Jackson, TN', 
149      640: 'Memphis, TN', 
150      641: 'San Antonio, TX', 
151      642: 'Lafayette, LA', 
152      643: 'Lake Charles, LA', 
153      644: 'Alexandria, LA', 
154      646: 'Anniston, AL', 
155      647: 'Greenwood-Greenville, MS', 
156      648: 'Champaign-Springfield-Decatur, IL', 
157      649: 'Evansville, IN', 
158      650: 'Oklahoma City, OK', 
159      651: 'Lubbock, TX', 
160      652: 'Omaha, NE', 
161      656: 'Panama City, FL', 
162      657: 'Sherman, TX', 
163      658: 'Green Bay-Appleton, WI', 
164      659: 'Nashville, TN', 
165      661: 'San Angelo, TX', 
166      662: 'Abilene-Sweetwater, TX', 
167      669: 'Madison, WI', 
168      670: 'Ft Smith-Fay-Springfield, AR', 
169      671: 'Tulsa, OK', 
170      673: 'Columbus-Tupelo-West Point, MS', 
171      675: 'Peoria-Bloomington, IL', 
172      676: 'Duluth, MN', 
173      678: 'Wichita, KS', 
174      679: 'Des Moines, IA', 
175      682: 'Davenport-Rock Island-Moline, IL', 
176      686: 'Mobile, AL', 
177      687: 'Minot-Bismarck-Dickinson, ND', 
178      691: 'Huntsville, AL', 
179      692: 'Beaumont-Port Author, TX', 
180      693: 'Little Rock-Pine Bluff, AR', 
181      698: 'Montgomery, AL', 
182      702: 'La Crosse-Eau Claire, WI', 
183      705: 'Wausau-Rhinelander, WI', 
184      709: 'Tyler-Longview, TX', 
185      710: 'Hattiesburg-Laurel, MS', 
186      711: 'Meridian, MS', 
187      716: 'Baton Rouge, LA', 
188      717: 'Quincy, IL', 
189      718: 'Jackson, MS', 
190      722: 'Lincoln-Hastings, NE', 
191      724: 'Fargo-Valley City, ND', 
192      725: 'Sioux Falls, SD', 
193      734: 'Jonesboro, AR', 
194      736: 'Bowling Green, KY', 
195      737: 'Mankato, MN', 
196      740: 'North Platte, NE', 
197      743: 'Anchorage, AK', 
198      744: 'Honolulu, HI', 
199      745: 'Fairbanks, AK', 
200      746: 'Biloxi-Gulfport, MS', 
201      747: 'Juneau, AK', 
202      749: 'Laredo, TX', 
203      751: 'Denver, CO', 
204      752: 'Colorado Springs, CO', 
205      753: 'Phoenix, AZ', 
206      754: 'Butte-Bozeman, MT', 
207      755: 'Great Falls, MT', 
208      756: 'Billings, MT', 
209      757: 'Boise, ID', 
210      758: 'Idaho Falls-Pocatello, ID', 
211      759: 'Cheyenne, WY', 
212      760: 'Twin Falls, ID', 
213      762: 'Missoula, MT', 
214      764: 'Rapid City, SD', 
215      765: 'El Paso, TX', 
216      766: 'Helena, MT', 
217      767: 'Casper-Riverton, WY', 
218      770: 'Salt Lake City, UT', 
219      771: 'Yuma, AZ', 
220      773: 'Grand Junction, CO', 
221      789: 'Tucson, AZ', 
222      790: 'Albuquerque, NM', 
223      798: 'Glendive, MT', 
224      800: 'Bakersfield, CA', 
225      801: 'Eugene, OR', 
226      802: 'Eureka, CA', 
227      803: 'Los Angeles, CA', 
228      804: 'Palm Springs, CA', 
229      807: 'San Francisco, CA', 
230      810: 'Yakima-Pasco, WA', 
231      811: 'Reno, NV', 
232      813: 'Medford-Klamath Falls, OR', 
233      819: 'Seattle-Tacoma, WA', 
234      820: 'Portland, OR', 
235      821: 'Bend, OR', 
236      825: 'San Diego, CA', 
237      828: 'Monterey-Salinas, CA', 
238      839: 'Las Vegas, NV', 
239      855: 'Santa Barbara, CA', 
240      862: 'Sacramento, CA', 
241      866: 'Fresno, CA', 
242      868: 'Chico-Redding, CA', 
243      881: 'Spokane, WA' 
244  } 
245   
246  COUNTRY_CODES = ( 
247      '', 
248      'AP', 'EU', 'AD', 'AE', 'AF', 'AG', 'AI', 'AL', 'AM', 'AN', 'AO', 'AQ', 
249      'AR', 'AS', 'AT', 'AU', 'AW', 'AZ', 'BA', 'BB', 'BD', 'BE', 'BF', 'BG', 
250      'BH', 'BI', 'BJ', 'BM', 'BN', 'BO', 'BR', 'BS', 'BT', 'BV', 'BW', 'BY', 
251      'BZ', 'CA', 'CC', 'CD', 'CF', 'CG', 'CH', 'CI', 'CK', 'CL', 'CM', 'CN', 
252      'CO', 'CR', 'CU', 'CV', 'CX', 'CY', 'CZ', 'DE', 'DJ', 'DK', 'DM', 'DO', 
253      'DZ', 'EC', 'EE', 'EG', 'EH', 'ER', 'ES', 'ET', 'FI', 'FJ', 'FK', 'FM', 
254      'FO', 'FR', 'FX', 'GA', 'GB', 'GD', 'GE', 'GF', 'GH', 'GI', 'GL', 'GM', 
255      'GN', 'GP', 'GQ', 'GR', 'GS', 'GT', 'GU', 'GW', 'GY', 'HK', 'HM', 'HN', 
256      'HR', 'HT', 'HU', 'ID', 'IE', 'IL', 'IN', 'IO', 'IQ', 'IR', 'IS', 'IT', 
257      'JM', 'JO', 'JP', 'KE', 'KG', 'KH', 'KI', 'KM', 'KN', 'KP', 'KR', 'KW', 
258      'KY', 'KZ', 'LA', 'LB', 'LC', 'LI', 'LK', 'LR', 'LS', 'LT', 'LU', 'LV', 
259      'LY', 'MA', 'MC', 'MD', 'MG', 'MH', 'MK', 'ML', 'MM', 'MN', 'MO', 'MP', 
260      'MQ', 'MR', 'MS', 'MT', 'MU', 'MV', 'MW', 'MX', 'MY', 'MZ', 'NA', 'NC', 
261      'NE', 'NF', 'NG', 'NI', 'NL', 'NO', 'NP', 'NR', 'NU', 'NZ', 'OM', 'PA', 
262      'PE', 'PF', 'PG', 'PH', 'PK', 'PL', 'PM', 'PN', 'PR', 'PS', 'PT', 'PW', 
263      'PY', 'QA', 'RE', 'RO', 'RU', 'RW', 'SA', 'SB', 'SC', 'SD', 'SE', 'SG', 
264      'SH', 'SI', 'SJ', 'SK', 'SL', 'SM', 'SN', 'SO', 'SR', 'ST', 'SV', 'SY', 
265      'SZ', 'TC', 'TD', 'TF', 'TG', 'TH', 'TJ', 'TK', 'TM', 'TN', 'TO', 'TL', 
266      'TR', 'TT', 'TV', 'TW', 'TZ', 'UA', 'UG', 'UM', 'US', 'UY', 'UZ', 'VA', 
267      'VC', 'VE', 'VG', 'VI', 'VN', 'VU', 'WF', 'WS', 'YE', 'YT', 'RS', 'ZA', 
268      'ZM', 'ME', 'ZW', 'A1', 'A2', 'O1', 'AX', 'GG', 'IM', 'JE', 'BL', 'MF', 
269      'BQ', 'SS' 
270  ) 
271   
272  COUNTRY_CODES3 = ( 
273      '', 'AP', 'EU', 'AND', 'ARE', 'AFG', 'ATG', 'AIA', 'ALB', 'ARM', 'ANT', 
274      'AGO', 'AQ', 'ARG', 'ASM', 'AUT', 'AUS', 'ABW', 'AZE', 'BIH', 'BRB', 'BGD', 
275      'BEL', 'BFA', 'BGR', 'BHR', 'BDI', 'BEN', 'BMU', 'BRN', 'BOL', 'BRA', 
276      'BHS', 'BTN', 'BV', 'BWA', 'BLR', 'BLZ', 'CAN', 'CC', 'COD', 'CAF', 'COG', 
277      'CHE', 'CIV', 'COK', 'CHL', 'CMR', 'CHN', 'COL', 'CRI', 'CUB', 'CPV', 'CX', 
278      'CYP', 'CZE', 'DEU', 'DJI', 'DNK', 'DMA', 'DOM', 'DZA', 'ECU', 'EST', 
279      'EGY', 'ESH', 'ERI', 'ESP', 'ETH', 'FIN', 'FJI', 'FLK', 'FSM', 'FRO', 
280      'FRA', 'FX', 'GAB', 'GBR', 'GRD', 'GEO', 'GUF', 'GHA', 'GIB', 'GRL', 'GMB', 
281      'GIN', 'GLP', 'GNQ', 'GRC', 'GS', 'GTM', 'GUM', 'GNB', 'GUY', 'HKG', 'HM', 
282      'HND', 'HRV', 'HTI', 'HUN', 'IDN', 'IRL', 'ISR', 'IND', 'IO', 'IRQ', 'IRN', 
283      'ISL', 'ITA', 'JAM', 'JOR', 'JPN', 'KEN', 'KGZ', 'KHM', 'KIR', 'COM', 
284      'KNA', 'PRK', 'KOR', 'KWT', 'CYM', 'KAZ', 'LAO', 'LBN', 'LCA', 'LIE', 
285      'LKA', 'LBR', 'LSO', 'LTU', 'LUX', 'LVA', 'LBY', 'MAR', 'MCO', 'MDA', 
286      'MDG', 'MHL', 'MKD', 'MLI', 'MMR', 'MNG', 'MAC', 'MNP', 'MTQ', 'MRT', 
287      'MSR', 'MLT', 'MUS', 'MDV', 'MWI', 'MEX', 'MYS', 'MOZ', 'NAM', 'NCL', 
288      'NER', 'NFK', 'NGA', 'NIC', 'NLD', 'NOR', 'NPL', 'NRU', 'NIU', 'NZL', 
289      'OMN', 'PAN', 'PER', 'PYF', 'PNG', 'PHL', 'PAK', 'POL', 'SPM', 'PCN', 
290      'PRI', 'PSE', 'PRT', 'PLW', 'PRY', 'QAT', 'REU', 'ROU', 'RUS', 'RWA', 
291      'SAU', 'SLB', 'SYC', 'SDN', 'SWE', 'SGP', 'SHN', 'SVN', 'SJM', 'SVK', 
292      'SLE', 'SMR', 'SEN', 'SOM', 'SUR', 'STP', 'SLV', 'SYR', 'SWZ', 'TCA', 
293      'TCD', 'TF', 'TGO', 'THA', 'TJK', 'TKL', 'TLS', 'TKM', 'TUN', 'TON', 'TUR', 
294      'TTO', 'TUV', 'TWN', 'TZA', 'UKR', 'UGA', 'UM', 'USA', 'URY', 'UZB', 'VAT', 
295      'VCT', 'VEN', 'VGB', 'VIR', 'VNM', 'VUT', 'WLF', 'WSM', 'YEM', 'YT', 'SRB', 
296      'ZAF', 'ZMB', 'MNE', 'ZWE', 'A1', 'A2', 'O1', 'ALA', 'GGY', 'IMN', 'JEY', 
297      'BLM', 'MAF', 'BES', 'SSD' 
298  ) 
299   
300  COUNTRY_NAMES = ( 
301      '', 'Asia/Pacific Region', 'Europe', 'Andorra', 'United Arab Emirates', 
302      'Afghanistan', 'Antigua and Barbuda', 'Anguilla', 'Albania', 'Armenia', 
303      'Netherlands Antilles', 'Angola', 'Antarctica', 'Argentina', 
304      'American Samoa', 'Austria', 'Australia', 'Aruba', 'Azerbaijan', 
305      'Bosnia and Herzegovina', 'Barbados', 'Bangladesh', 'Belgium', 
306      'Burkina Faso', 'Bulgaria', 'Bahrain', 'Burundi', 'Benin', 'Bermuda', 
307      'Brunei Darussalam', 'Bolivia', 'Brazil', 'Bahamas', 'Bhutan', 
308      'Bouvet Island', 'Botswana', 'Belarus', 'Belize', 'Canada', 
309      'Cocos (Keeling) Islands', 'Congo, The Democratic Republic of the', 
310      'Central African Republic', 'Congo', 'Switzerland', 'Cote D\'Ivoire', 
311      'Cook Islands', 'Chile', 'Cameroon', 'China', 'Colombia', 'Costa Rica', 
312      'Cuba', 'Cape Verde', 'Christmas Island', 'Cyprus', 'Czech Republic', 
313      'Germany', 'Djibouti', 'Denmark', 'Dominica', 'Dominican Republic', 
314      'Algeria', 'Ecuador', 'Estonia', 'Egypt', 'Western Sahara', 'Eritrea', 
315      'Spain', 'Ethiopia', 'Finland', 'Fiji', 'Falkland Islands (Malvinas)', 
316      'Micronesia, Federated States of', 'Faroe Islands', 'France', 
317      'France, Metropolitan', 'Gabon', 'United Kingdom', 'Grenada', 'Georgia', 
318      'French Guiana', 'Ghana', 'Gibraltar', 'Greenland', 'Gambia', 'Guinea', 
319      'Guadeloupe', 'Equatorial Guinea', 'Greece', 
320      'South Georgia and the South Sandwich Islands', 'Guatemala', 'Guam', 
321      'Guinea-Bissau', 'Guyana', 'Hong Kong', 
322      'Heard Island and McDonald Islands', 'Honduras', 'Croatia', 'Haiti', 
323      'Hungary', 'Indonesia', 'Ireland', 'Israel', 'India', 
324      'British Indian Ocean Territory', 'Iraq', 'Iran, Islamic Republic of', 
325      'Iceland', 'Italy', 'Jamaica', 'Jordan', 'Japan', 'Kenya', 'Kyrgyzstan', 
326      'Cambodia', 'Kiribati', 'Comoros', 'Saint Kitts and Nevis', 
327      'Korea, Democratic People\'s Republic of', 'Korea, Republic of', 'Kuwait', 
328      'Cayman Islands', 'Kazakhstan', 'Lao People\'s Democratic Republic', 
329      'Lebanon', 'Saint Lucia', 'Liechtenstein', 'Sri Lanka', 'Liberia', 
330      'Lesotho', 'Lithuania', 'Luxembourg', 'Latvia', 'Libya', 'Morocco', 
331      'Monaco', 'Moldova, Republic of', 'Madagascar', 'Marshall Islands', 
332      'Macedonia', 'Mali', 'Myanmar', 'Mongolia', 'Macau', 
333      'Northern Mariana Islands', 'Martinique', 'Mauritania', 'Montserrat', 
334      'Malta', 'Mauritius', 'Maldives', 'Malawi', 'Mexico', 'Malaysia', 
335      'Mozambique', 'Namibia', 'New Caledonia', 'Niger', 'Norfolk Island', 
336      'Nigeria', 'Nicaragua', 'Netherlands', 'Norway', 'Nepal', 'Nauru', 'Niue', 
337      'New Zealand', 'Oman', 'Panama', 'Peru', 'French Polynesia', 
338      'Papua New Guinea', 'Philippines', 'Pakistan', 'Poland', 
339      'Saint Pierre and Miquelon', 'Pitcairn Islands', 'Puerto Rico', 
340      'Palestinian Territory', 'Portugal', 'Palau', 'Paraguay', 'Qatar', 
341      'Reunion', 'Romania', 'Russian Federation', 'Rwanda', 'Saudi Arabia', 
342      'Solomon Islands', 'Seychelles', 'Sudan', 'Sweden', 'Singapore', 
343      'Saint Helena', 'Slovenia', 'Svalbard and Jan Mayen', 'Slovakia', 
344      'Sierra Leone', 'San Marino', 'Senegal', 'Somalia', 'Suriname', 
345      'Sao Tome and Principe', 'El Salvador', 'Syrian Arab Republic', 
346      'Swaziland', 'Turks and Caicos Islands', 'Chad', 
347      'French Southern Territories', 'Togo', 'Thailand', 'Tajikistan', 'Tokelau', 
348      'Turkmenistan', 'Tunisia', 'Tonga', 'Timor-Leste', 'Turkey', 
349      'Trinidad and Tobago', 'Tuvalu', 'Taiwan', 'Tanzania, United Republic of', 
350      'Ukraine', 'Uganda', 'United States Minor Outlying Islands', 
351      'United States', 'Uruguay', 'Uzbekistan', 'Holy See (Vatican City State)', 
352      'Saint Vincent and the Grenadines', 'Venezuela', 'Virgin Islands, British', 
353      'Virgin Islands, U.S.', 'Vietnam', 'Vanuatu', 'Wallis and Futuna', 'Samoa', 
354      'Yemen', 'Mayotte', 'Serbia', 'South Africa', 'Zambia', 'Montenegro', 
355      'Zimbabwe', 'Anonymous Proxy', 'Satellite Provider', 'Other', 
356      'Aland Islands', 'Guernsey', 'Isle of Man', 'Jersey', 'Saint Barthelemy', 
357      'Saint Martin', 'Bonaire, Sint Eustatius and Saba', 'South Sudan' 
358  ) 
359   
360  CONTINENT_NAMES = ( 
361      '--', 'AS', 'EU', 'EU', 'AS', 'AS', 'NA', 'NA', 'EU', 'AS', 'NA', 'AF', 
362      'AN', 'SA', 'OC', 'EU', 'OC', 'NA', 'AS', 'EU', 'NA', 'AS', 'EU', 'AF', 
363      'EU', 'AS', 'AF', 'AF', 'NA', 'AS', 'SA', 'SA', 'NA', 'AS', 'AN', 'AF', 
364      'EU', 'NA', 'NA', 'AS', 'AF', 'AF', 'AF', 'EU', 'AF', 'OC', 'SA', 'AF', 
365      'AS', 'SA', 'NA', 'NA', 'AF', 'AS', 'AS', 'EU', 'EU', 'AF', 'EU', 'NA', 
366      'NA', 'AF', 'SA', 'EU', 'AF', 'AF', 'AF', 'EU', 'AF', 'EU', 'OC', 'SA', 
367      'OC', 'EU', 'EU', 'NA', 'AF', 'EU', 'NA', 'AS', 'SA', 'AF', 'EU', 'NA', 
368      'AF', 'AF', 'NA', 'AF', 'EU', 'AN', 'NA', 'OC', 'AF', 'SA', 'AS', 'AN', 
369      'NA', 'EU', 'NA', 'EU', 'AS', 'EU', 'AS', 'AS', 'AS', 'AS', 'AS', 'EU', 
370      'EU', 'NA', 'AS', 'AS', 'AF', 'AS', 'AS', 'OC', 'AF', 'NA', 'AS', 'AS', 
371      'AS', 'NA', 'AS', 'AS', 'AS', 'NA', 'EU', 'AS', 'AF', 'AF', 'EU', 'EU', 
372      'EU', 'AF', 'AF', 'EU', 'EU', 'AF', 'OC', 'EU', 'AF', 'AS', 'AS', 'AS', 
373      'OC', 'NA', 'AF', 'NA', 'EU', 'AF', 'AS', 'AF', 'NA', 'AS', 'AF', 'AF', 
374      'OC', 'AF', 'OC', 'AF', 'NA', 'EU', 'EU', 'AS', 'OC', 'OC', 'OC', 'AS', 
375      'NA', 'SA', 'OC', 'OC', 'AS', 'AS', 'EU', 'NA', 'OC', 'NA', 'AS', 'EU', 
376      'OC', 'SA', 'AS', 'AF', 'EU', 'EU', 'AF', 'AS', 'OC', 'AF', 'AF', 'EU', 
377      'AS', 'AF', 'EU', 'EU', 'EU', 'AF', 'EU', 'AF', 'AF', 'SA', 'AF', 'NA', 
378      'AS', 'AF', 'NA', 'AF', 'AN', 'AF', 'AS', 'AS', 'OC', 'AS', 'AF', 'OC', 
379      'AS', 'EU', 'NA', 'OC', 'AS', 'AF', 'EU', 'AF', 'OC', 'NA', 'SA', 'AS', 
380      'EU', 'NA', 'SA', 'NA', 'NA', 'AS', 'OC', 'OC', 'OC', 'AS', 'AF', 'EU', 
381      'AF', 'AF', 'EU', 'AF', '--', '--', '--', 'EU', 'EU', 'EU', 'EU', 'NA', 
382      'NA', 'NA', 'AF' 
383  ) 
384   
385  # storage / caching flags 
386  STANDARD = 0 
387  MEMORY_CACHE = 1 
388  MMAP_CACHE = 8 
389   
390  # Database structure constants 
391  COUNTRY_BEGIN = 16776960 
392  STATE_BEGIN_REV0 = 16700000 
393  STATE_BEGIN_REV1 = 16000000 
394   
395  STRUCTURE_INFO_MAX_SIZE = 20 
396  DATABASE_INFO_MAX_SIZE = 100 
397   
398  # Database editions 
399  COUNTRY_EDITION = 1 
400  COUNTRY_EDITION_V6 = 12 
401  REGION_EDITION_REV0 = 7 
402  REGION_EDITION_REV1 = 3 
403  CITY_EDITION_REV0 = 6 
404  CITY_EDITION_REV1 = 2 
405  CITY_EDITION_REV1_V6 = 30 
406  ORG_EDITION = 5 
407  ISP_EDITION = 4 
408  ASNUM_EDITION = 9 
409  ASNUM_EDITION_V6 = 21 
410  # Not yet supported databases 
411  PROXY_EDITION = 8 
412  NETSPEED_EDITION = 11 
413   
414  # Collection of databases 
415  IPV6_EDITIONS = (COUNTRY_EDITION_V6, ASNUM_EDITION_V6, CITY_EDITION_REV1_V6) 
416  CITY_EDITIONS = (CITY_EDITION_REV0, CITY_EDITION_REV1, CITY_EDITION_REV1_V6) 
417  REGION_EDITIONS = (REGION_EDITION_REV0, REGION_EDITION_REV1) 
418  REGION_CITY_EDITIONS = REGION_EDITIONS + CITY_EDITIONS 
419   
420  SEGMENT_RECORD_LENGTH = 3 
421  STANDARD_RECORD_LENGTH = 3 
422  ORG_RECORD_LENGTH = 4 
423  MAX_RECORD_LENGTH = 4 
424  MAX_ORG_RECORD_LENGTH = 300 
425  FULL_RECORD_LENGTH = 50 
426   
427  US_OFFSET = 1 
428  CANADA_OFFSET = 677 
429  WORLD_OFFSET = 1353 
430  FIPS_RANGE = 360 
431  ENCODING = 'iso-8859-1' 
432