From 4710c53dcad1ebf3755f3efb9e80ac24bd72a9b2 Mon Sep 17 00:00:00 2001 From: darylm503 Date: Mon, 16 Apr 2012 22:12:42 +0000 Subject: AppPkg/Applications/Python: Add Python 2.7.2 sources since the release of Python 2.7.3 made them unavailable from the python.org web site. These files are a subset of the python-2.7.2.tgz distribution from python.org. Changed files from PyMod-2.7.2 have been copied into the corresponding directories of this tree, replacing the original files in the distribution. Signed-off-by: daryl.mcdaniel@intel.com git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@13197 6f19259b-4bc3-4df7-8a09-765794883524 --- .../Python/Python-2.7.2/Tools/world/README | 85 ++++ .../Python/Python-2.7.2/Tools/world/world | 551 +++++++++++++++++++++ 2 files changed, 636 insertions(+) create mode 100644 AppPkg/Applications/Python/Python-2.7.2/Tools/world/README create mode 100644 AppPkg/Applications/Python/Python-2.7.2/Tools/world/world (limited to 'AppPkg/Applications/Python/Python-2.7.2/Tools/world') diff --git a/AppPkg/Applications/Python/Python-2.7.2/Tools/world/README b/AppPkg/Applications/Python/Python-2.7.2/Tools/world/README new file mode 100644 index 0000000000..3250a32c44 --- /dev/null +++ b/AppPkg/Applications/Python/Python-2.7.2/Tools/world/README @@ -0,0 +1,85 @@ +world -- Print mappings between country names and DNS country codes. + +Contact: Barry Warsaw +Email: bwarsaw@python.org + +This script will take a list of Internet addresses and print out where in the +world those addresses originate from, based on the top-level domain country +code found in the address. Addresses can be in any of the following forms: + + xx -- just the country code or top-level domain identifier + host.domain.xx -- any Internet host or network name + somebody@where.xx -- an Internet email address + +If no match is found, the address is interpreted as a regular expression [*] +and a reverse lookup is attempted. This script will search the country names +and print a list of matching entries. You can force reverse mappings with the +`-r' flag (see below). + +For example: + + %% world tz us + tz originated from Tanzania, United Republic of + us originated from United States + + %% world united + united matches 6 countries: + ae: United Arab Emirates + uk: United Kingdom (common practice) + um: United States Minor Outlying Islands + us: United States + tz: Tanzania, United Republic of + gb: United Kingdom + + + [*] Note that regular expressions must conform to Python 1.5's re.py module + syntax. The comparison is done with the search() method. + +Country codes are maintained by the RIPE Network Coordination Centre, +in coordination with the ISO 3166 Maintenance Agency at DIN Berlin. The +authoritative source of counry code mappings is: + + + +The latest known change to this information was: + + Thu Aug 7 17:59:51 MET DST 1997 + +This script also knows about non-geographic top-level domains. + +Usage: world [-d] [-p file] [-o] [-h] addr [addr ...] + + --dump + -d + Print mapping of all top-level domains. + + --parse file + -p file + Parse an iso3166-countrycodes file extracting the two letter country + code followed by the country name. Note that the three letter country + codes and numbers, which are also provided in the standard format + file, are ignored. + + --outputdict + -o + When used in conjunction with the `-p' option, output is in the form + of a Python dictionary, and country names are normalized + w.r.t. capitalization. This makes it appropriate for cutting and + pasting back into this file. + + --reverse + -r + Force reverse lookup. In this mode the address can be any Python + regular expression; this is matched against all country names and a + list of matching mappings is printed. In normal mode (e.g. without + this flag), reverse lookup is performed on addresses if no matching + country code is found. + + -h + --help + Print this message. + + +Local Variables: +indent-tabs-mode: nil +End: diff --git a/AppPkg/Applications/Python/Python-2.7.2/Tools/world/world b/AppPkg/Applications/Python/Python-2.7.2/Tools/world/world new file mode 100644 index 0000000000..a60f71c7f5 --- /dev/null +++ b/AppPkg/Applications/Python/Python-2.7.2/Tools/world/world @@ -0,0 +1,551 @@ +#! /usr/bin/env python + +"""world -- Print mappings between country names and DNS country codes. + +Contact: Barry Warsaw +Email: barry@python.org +Version: %(__version__)s + +This script will take a list of Internet addresses and print out where in the +world those addresses originate from, based on the top-level domain country +code found in the address. Addresses can be in any of the following forms: + + xx -- just the country code or top-level domain identifier + host.domain.xx -- any Internet host or network name + somebody@where.xx -- an Internet email address + +If no match is found, the address is interpreted as a regular expression and a +reverse lookup is attempted. This script will search the country names and +print a list of matching entries. You can force reverse mappings with the +`-r' flag (see below). + +For example: + + %% world tz us + tz originated from Tanzania, United Republic of + us originated from United States + + %% world united + united matches 6 countries: + ae: United Arab Emirates + uk: United Kingdom (common practice) + um: United States Minor Outlying Islands + us: United States + tz: Tanzania, United Republic of + gb: United Kingdom + +Country codes are maintained by the RIPE Network Coordination Centre, +in coordination with the ISO 3166 Maintenance Agency at DIN Berlin. The +authoritative source of country code mappings is: + + + +The latest known change to this information was: + + Friday, 5 April 2002, 12.00 CET 2002 + +This script also knows about non-geographic top-level domains, and the +additional ccTLDs reserved by IANA. + +Usage: %(PROGRAM)s [-d] [-p file] [-o] [-h] addr [addr ...] + + --dump + -d + Print mapping of all top-level domains. + + --parse file + -p file + Parse an iso3166-countrycodes file extracting the two letter country + code followed by the country name. Note that the three letter country + codes and numbers, which are also provided in the standard format + file, are ignored. + + --outputdict + -o + When used in conjunction with the `-p' option, output is in the form + of a Python dictionary, and country names are normalized + w.r.t. capitalization. This makes it appropriate for cutting and + pasting back into this file. Output is always to standard out. + + --reverse + -r + Force reverse lookup. In this mode the address can be any Python + regular expression; this is matched against all country names and a + list of matching mappings is printed. In normal mode (e.g. without + this flag), reverse lookup is performed on addresses if no matching + country code is found. + + -h + --help + Print this message. +""" +__version__ = '$Revision$' + + +import sys +import getopt +import re + +PROGRAM = sys.argv[0] + + + +def usage(code, msg=''): + print __doc__ % globals() + if msg: + print msg + sys.exit(code) + + + +def resolve(rawaddr): + parts = rawaddr.split('.') + if not len(parts): + # no top level domain found, bounce it to the next step + return rawaddr + addr = parts[-1] + if nameorgs.has_key(addr): + print rawaddr, 'is in the', nameorgs[addr], 'top level domain' + return None + elif countries.has_key(addr): + print rawaddr, 'originated from', countries[addr] + return None + else: + # Not resolved, bounce it to the next step + return rawaddr + + + +def reverse(regexp): + matches = [] + cre = re.compile(regexp, re.IGNORECASE) + for code, country in all.items(): + mo = cre.search(country) + if mo: + matches.append(code) + # print results + if not matches: + # not resolved, bounce it to the next step + return regexp + if len(matches) == 1: + code = matches[0] + print regexp, "matches code `%s', %s" % (code, all[code]) + else: + print regexp, 'matches %d countries:' % len(matches) + for code in matches: + print " %s: %s" % (code, all[code]) + return None + + + +def parse(file, normalize): + try: + fp = open(file) + except IOError, (err, msg): + print msg, ':', file + + cre = re.compile('(.*?)[ \t]+([A-Z]{2})[ \t]+[A-Z]{3}[ \t]+[0-9]{3}') + scanning = 0 + + if normalize: + print 'countries = {' + + while 1: + line = fp.readline() + if line == '': + break # EOF + if scanning: + mo = cre.match(line) + if not mo: + line = line.strip() + if not line: + continue + elif line[0] == '-': + break + else: + print 'Could not parse line:', line + continue + country, code = mo.group(1, 2) + if normalize: + words = country.split() + for i in range(len(words)): + w = words[i] + # XXX special cases + if w in ('AND', 'OF', 'OF)', 'name:', 'METROPOLITAN'): + words[i] = w.lower() + elif w == 'THE' and i <> 1: + words[i] = w.lower() + elif len(w) > 3 and w[1] == "'": + words[i] = w[0:3].upper() + w[3:].lower() + elif w in ('(U.S.)', 'U.S.'): + pass + elif w[0] == '(' and w <> '(local': + words[i] = '(' + w[1:].capitalize() + elif w.find('-') <> -1: + words[i] = '-'.join( + [s.capitalize() for s in w.split('-')]) + else: + words[i] = w.capitalize() + code = code.lower() + country = ' '.join(words) + print ' "%s": "%s",' % (code, country) + else: + print code, country + + elif line[0] == '-': + scanning = 1 + + if normalize: + print ' }' + + +def main(): + help = 0 + status = 0 + dump = 0 + parsefile = None + normalize = 0 + forcerev = 0 + + try: + opts, args = getopt.getopt( + sys.argv[1:], + 'p:rohd', + ['parse=', 'reverse', 'outputdict', 'help', 'dump']) + except getopt.error, msg: + usage(1, msg) + + for opt, arg in opts: + if opt in ('-h', '--help'): + help = 1 + elif opt in ('-d', '--dump'): + dump = 1 + elif opt in ('-p', '--parse'): + parsefile = arg + elif opt in ('-o', '--outputdict'): + normalize = 1 + elif opt in ('-r', '--reverse'): + forcerev = 1 + + if help: + usage(status) + + if dump: + print 'Non-geographic domains:' + codes = nameorgs.keys() + codes.sort() + for code in codes: + print ' %4s:' % code, nameorgs[code] + + print '\nCountry coded domains:' + codes = countries.keys() + codes.sort() + for code in codes: + print ' %2s:' % code, countries[code] + elif parsefile: + parse(parsefile, normalize) + else: + if not forcerev: + args = filter(None, map(resolve, args)) + args = filter(None, map(reverse, args)) + for arg in args: + print 'Where in the world is %s?' % arg + + + +# The mappings +nameorgs = { + # New top level domains as described by ICANN + # http://www.icann.org/tlds/ + "aero": "air-transport industry", + "arpa": "Arpanet", + "biz": "business", + "com": "commercial", + "coop": "cooperatives", + "edu": "educational", + "gov": "government", + "info": "unrestricted `info'", + "int": "international", + "mil": "military", + "museum": "museums", + "name": "`name' (for registration by individuals)", + "net": "networking", + "org": "non-commercial", + "pro": "professionals", + # These additional ccTLDs are included here even though they are not part + # of ISO 3166. IANA has 5 reserved ccTLDs as described here: + # + # http://www.iso.org/iso/en/prods-services/iso3166ma/04background-on-iso-3166/iso3166-1-and-ccTLDs.html + # + # but I can't find an official list anywhere. + # + # Note that `uk' is the common practice country code for the United + # Kingdom. AFAICT, the official `gb' code is routinely ignored! + # + # tells me that `uk' was long in use before ISO3166 + # was adopted for top-level DNS zone names (although in the reverse order + # like uk.ac.qmw) and was carried forward (with the reversal) to avoid a + # large-scale renaming process as the UK switched from their old `Coloured + # Book' protocols over X.25 to Internet protocols over IP. + # + # See + # + # Also, `su', while obsolete is still in limited use. + "ac": "Ascension Island", + "gg": "Guernsey", + "im": "Isle of Man", + "je": "Jersey", + "uk": "United Kingdom (common practice)", + "su": "Soviet Union (still in limited use)", + } + + + +countries = { + "af": "Afghanistan", + "al": "Albania", + "dz": "Algeria", + "as": "American Samoa", + "ad": "Andorra", + "ao": "Angola", + "ai": "Anguilla", + "aq": "Antarctica", + "ag": "Antigua and Barbuda", + "ar": "Argentina", + "am": "Armenia", + "aw": "Aruba", + "au": "Australia", + "at": "Austria", + "az": "Azerbaijan", + "bs": "Bahamas", + "bh": "Bahrain", + "bd": "Bangladesh", + "bb": "Barbados", + "by": "Belarus", + "be": "Belgium", + "bz": "Belize", + "bj": "Benin", + "bm": "Bermuda", + "bt": "Bhutan", + "bo": "Bolivia", + "ba": "Bosnia and Herzegowina", + "bw": "Botswana", + "bv": "Bouvet Island", + "br": "Brazil", + "io": "British Indian Ocean Territory", + "bn": "Brunei Darussalam", + "bg": "Bulgaria", + "bf": "Burkina Faso", + "bi": "Burundi", + "kh": "Cambodia", + "cm": "Cameroon", + "ca": "Canada", + "cv": "Cape Verde", + "ky": "Cayman Islands", + "cf": "Central African Republic", + "td": "Chad", + "cl": "Chile", + "cn": "China", + "cx": "Christmas Island", + "cc": "Cocos (Keeling) Islands", + "co": "Colombia", + "km": "Comoros", + "cg": "Congo", + "cd": "Congo, The Democratic Republic of the", + "ck": "Cook Islands", + "cr": "Costa Rica", + "ci": "Cote D'Ivoire", + "hr": "Croatia", + "cu": "Cuba", + "cy": "Cyprus", + "cz": "Czech Republic", + "dk": "Denmark", + "dj": "Djibouti", + "dm": "Dominica", + "do": "Dominican Republic", + "tp": "East Timor", + "ec": "Ecuador", + "eg": "Egypt", + "sv": "El Salvador", + "gq": "Equatorial Guinea", + "er": "Eritrea", + "ee": "Estonia", + "et": "Ethiopia", + "fk": "Falkland Islands (Malvinas)", + "fo": "Faroe Islands", + "fj": "Fiji", + "fi": "Finland", + "fr": "France", + "gf": "French Guiana", + "pf": "French Polynesia", + "tf": "French Southern Territories", + "ga": "Gabon", + "gm": "Gambia", + "ge": "Georgia", + "de": "Germany", + "gh": "Ghana", + "gi": "Gibraltar", + "gr": "Greece", + "gl": "Greenland", + "gd": "Grenada", + "gp": "Guadeloupe", + "gu": "Guam", + "gt": "Guatemala", + "gn": "Guinea", + "gw": "Guinea-Bissau", + "gy": "Guyana", + "ht": "Haiti", + "hm": "Heard Island and Mcdonald Islands", + "va": "Holy See (Vatican City State)", + "hn": "Honduras", + "hk": "Hong Kong", + "hu": "Hungary", + "is": "Iceland", + "in": "India", + "id": "Indonesia", + "ir": "Iran, Islamic Republic of", + "iq": "Iraq", + "ie": "Ireland", + "il": "Israel", + "it": "Italy", + "jm": "Jamaica", + "jp": "Japan", + "jo": "Jordan", + "kz": "Kazakstan", + "ke": "Kenya", + "ki": "Kiribati", + "kp": "Korea, Democratic People's Republic of", + "kr": "Korea, Republic of", + "kw": "Kuwait", + "kg": "Kyrgyzstan", + "la": "Lao People's Democratic Republic", + "lv": "Latvia", + "lb": "Lebanon", + "ls": "Lesotho", + "lr": "Liberia", + "ly": "Libyan Arab Jamahiriya", + "li": "Liechtenstein", + "lt": "Lithuania", + "lu": "Luxembourg", + "mo": "Macau", + "mk": "Macedonia, The Former Yugoslav Republic of", + "mg": "Madagascar", + "mw": "Malawi", + "my": "Malaysia", + "mv": "Maldives", + "ml": "Mali", + "mt": "Malta", + "mh": "Marshall Islands", + "mq": "Martinique", + "mr": "Mauritania", + "mu": "Mauritius", + "yt": "Mayotte", + "mx": "Mexico", + "fm": "Micronesia, Federated States of", + "md": "Moldova, Republic of", + "mc": "Monaco", + "mn": "Mongolia", + "ms": "Montserrat", + "ma": "Morocco", + "mz": "Mozambique", + "mm": "Myanmar", + "na": "Namibia", + "nr": "Nauru", + "np": "Nepal", + "nl": "Netherlands", + "an": "Netherlands Antilles", + "nc": "New Caledonia", + "nz": "New Zealand", + "ni": "Nicaragua", + "ne": "Niger", + "ng": "Nigeria", + "nu": "Niue", + "nf": "Norfolk Island", + "mp": "Northern Mariana Islands", + "no": "Norway", + "om": "Oman", + "pk": "Pakistan", + "pw": "Palau", + "ps": "Palestinian Territory, Occupied", + "pa": "Panama", + "pg": "Papua New Guinea", + "py": "Paraguay", + "pe": "Peru", + "ph": "Philippines", + "pn": "Pitcairn", + "pl": "Poland", + "pt": "Portugal", + "pr": "Puerto Rico", + "qa": "Qatar", + "re": "Reunion", + "ro": "Romania", + "ru": "Russian Federation", + "rw": "Rwanda", + "sh": "Saint Helena", + "kn": "Saint Kitts and Nevis", + "lc": "Saint Lucia", + "pm": "Saint Pierre and Miquelon", + "vc": "Saint Vincent and the Grenadines", + "ws": "Samoa", + "sm": "San Marino", + "st": "Sao Tome and Principe", + "sa": "Saudi Arabia", + "sn": "Senegal", + "sc": "Seychelles", + "sl": "Sierra Leone", + "sg": "Singapore", + "sk": "Slovakia", + "si": "Slovenia", + "sb": "Solomon Islands", + "so": "Somalia", + "za": "South Africa", + "gs": "South Georgia and the South Sandwich Islands", + "es": "Spain", + "lk": "Sri Lanka", + "sd": "Sudan", + "sr": "Suriname", + "sj": "Svalbard and Jan Mayen", + "sz": "Swaziland", + "se": "Sweden", + "ch": "Switzerland", + "sy": "Syrian Arab Republic", + "tw": "Taiwan, Province of China", + "tj": "Tajikistan", + "tz": "Tanzania, United Republic of", + "th": "Thailand", + "tg": "Togo", + "tk": "Tokelau", + "to": "Tonga", + "tt": "Trinidad and Tobago", + "tn": "Tunisia", + "tr": "Turkey", + "tm": "Turkmenistan", + "tc": "Turks and Caicos Islands", + "tv": "Tuvalu", + "ug": "Uganda", + "ua": "Ukraine", + "ae": "United Arab Emirates", + "gb": "United Kingdom", + "us": "United States", + "um": "United States Minor Outlying Islands", + "uy": "Uruguay", + "uz": "Uzbekistan", + "vu": "Vanuatu", + "ve": "Venezuela", + "vn": "Viet Nam", + "vg": "Virgin Islands, British", + "vi": "Virgin Islands, U.S.", + "wf": "Wallis and Futuna", + "eh": "Western Sahara", + "ye": "Yemen", + "yu": "Yugoslavia", + "zm": "Zambia", + "zw": "Zimbabwe", + } + +all = nameorgs.copy() +all.update(countries) + + +if __name__ == '__main__': + main() -- cgit v1.2.3