bulid 63
This commit is contained in:
320
hockey_data/iso_country_codes.py
Normal file
320
hockey_data/iso_country_codes.py
Normal file
@@ -0,0 +1,320 @@
|
||||
from __future__ import annotations
|
||||
|
||||
# Generated from ISO 3166 data. Kept local so the app has no runtime package dependency.
|
||||
ISO3_TO_ISO2: dict[str, str] = {
|
||||
'ABW': 'AW',
|
||||
'AFG': 'AF',
|
||||
'AGO': 'AO',
|
||||
'AIA': 'AI',
|
||||
'ALA': 'AX',
|
||||
'ALB': 'AL',
|
||||
'AND': 'AD',
|
||||
'ARE': 'AE',
|
||||
'ARG': 'AR',
|
||||
'ARM': 'AM',
|
||||
'ASM': 'AS',
|
||||
'ATA': 'AQ',
|
||||
'ATF': 'TF',
|
||||
'ATG': 'AG',
|
||||
'AUS': 'AU',
|
||||
'AUT': 'AT',
|
||||
'AZE': 'AZ',
|
||||
'BDI': 'BI',
|
||||
'BEL': 'BE',
|
||||
'BEN': 'BJ',
|
||||
'BES': 'BQ',
|
||||
'BFA': 'BF',
|
||||
'BGD': 'BD',
|
||||
'BGR': 'BG',
|
||||
'BHR': 'BH',
|
||||
'BHS': 'BS',
|
||||
'BIH': 'BA',
|
||||
'BLM': 'BL',
|
||||
'BLR': 'BY',
|
||||
'BLZ': 'BZ',
|
||||
'BMU': 'BM',
|
||||
'BOL': 'BO',
|
||||
'BRA': 'BR',
|
||||
'BRB': 'BB',
|
||||
'BRN': 'BN',
|
||||
'BTN': 'BT',
|
||||
'BVT': 'BV',
|
||||
'BWA': 'BW',
|
||||
'CAF': 'CF',
|
||||
'CAN': 'CA',
|
||||
'CCK': 'CC',
|
||||
'CHE': 'CH',
|
||||
'CHL': 'CL',
|
||||
'CHN': 'CN',
|
||||
'CIV': 'CI',
|
||||
'CMR': 'CM',
|
||||
'COD': 'CD',
|
||||
'COG': 'CG',
|
||||
'COK': 'CK',
|
||||
'COL': 'CO',
|
||||
'COM': 'KM',
|
||||
'CPV': 'CV',
|
||||
'CRI': 'CR',
|
||||
'CUB': 'CU',
|
||||
'CUW': 'CW',
|
||||
'CXR': 'CX',
|
||||
'CYM': 'KY',
|
||||
'CYP': 'CY',
|
||||
'CZE': 'CZ',
|
||||
'DEU': 'DE',
|
||||
'DJI': 'DJ',
|
||||
'DMA': 'DM',
|
||||
'DNK': 'DK',
|
||||
'DOM': 'DO',
|
||||
'DZA': 'DZ',
|
||||
'ECU': 'EC',
|
||||
'EGY': 'EG',
|
||||
'ERI': 'ER',
|
||||
'ESH': 'EH',
|
||||
'ESP': 'ES',
|
||||
'EST': 'EE',
|
||||
'ETH': 'ET',
|
||||
'FIN': 'FI',
|
||||
'FJI': 'FJ',
|
||||
'FLK': 'FK',
|
||||
'FRA': 'FR',
|
||||
'FRO': 'FO',
|
||||
'FSM': 'FM',
|
||||
'GAB': 'GA',
|
||||
'GBR': 'GB',
|
||||
'GEO': 'GE',
|
||||
'GGY': 'GG',
|
||||
'GHA': 'GH',
|
||||
'GIB': 'GI',
|
||||
'GIN': 'GN',
|
||||
'GLP': 'GP',
|
||||
'GMB': 'GM',
|
||||
'GNB': 'GW',
|
||||
'GNQ': 'GQ',
|
||||
'GRC': 'GR',
|
||||
'GRD': 'GD',
|
||||
'GRL': 'GL',
|
||||
'GTM': 'GT',
|
||||
'GUF': 'GF',
|
||||
'GUM': 'GU',
|
||||
'GUY': 'GY',
|
||||
'HKG': 'HK',
|
||||
'HMD': 'HM',
|
||||
'HND': 'HN',
|
||||
'HRV': 'HR',
|
||||
'HTI': 'HT',
|
||||
'HUN': 'HU',
|
||||
'IDN': 'ID',
|
||||
'IMN': 'IM',
|
||||
'IND': 'IN',
|
||||
'IOT': 'IO',
|
||||
'IRL': 'IE',
|
||||
'IRN': 'IR',
|
||||
'IRQ': 'IQ',
|
||||
'ISL': 'IS',
|
||||
'ISR': 'IL',
|
||||
'ITA': 'IT',
|
||||
'JAM': 'JM',
|
||||
'JEY': 'JE',
|
||||
'JOR': 'JO',
|
||||
'JPN': 'JP',
|
||||
'KAZ': 'KZ',
|
||||
'KEN': 'KE',
|
||||
'KGZ': 'KG',
|
||||
'KHM': 'KH',
|
||||
'KIR': 'KI',
|
||||
'KNA': 'KN',
|
||||
'KOR': 'KR',
|
||||
'KWT': 'KW',
|
||||
'LAO': 'LA',
|
||||
'LBN': 'LB',
|
||||
'LBR': 'LR',
|
||||
'LBY': 'LY',
|
||||
'LCA': 'LC',
|
||||
'LIE': 'LI',
|
||||
'LKA': 'LK',
|
||||
'LSO': 'LS',
|
||||
'LTU': 'LT',
|
||||
'LUX': 'LU',
|
||||
'LVA': 'LV',
|
||||
'MAC': 'MO',
|
||||
'MAF': 'MF',
|
||||
'MAR': 'MA',
|
||||
'MCO': 'MC',
|
||||
'MDA': 'MD',
|
||||
'MDG': 'MG',
|
||||
'MDV': 'MV',
|
||||
'MEX': 'MX',
|
||||
'MHL': 'MH',
|
||||
'MKD': 'MK',
|
||||
'MLI': 'ML',
|
||||
'MLT': 'MT',
|
||||
'MMR': 'MM',
|
||||
'MNE': 'ME',
|
||||
'MNG': 'MN',
|
||||
'MNP': 'MP',
|
||||
'MOZ': 'MZ',
|
||||
'MRT': 'MR',
|
||||
'MSR': 'MS',
|
||||
'MTQ': 'MQ',
|
||||
'MUS': 'MU',
|
||||
'MWI': 'MW',
|
||||
'MYS': 'MY',
|
||||
'MYT': 'YT',
|
||||
'NAM': 'NA',
|
||||
'NCL': 'NC',
|
||||
'NER': 'NE',
|
||||
'NFK': 'NF',
|
||||
'NGA': 'NG',
|
||||
'NIC': 'NI',
|
||||
'NIU': 'NU',
|
||||
'NLD': 'NL',
|
||||
'NOR': 'NO',
|
||||
'NPL': 'NP',
|
||||
'NRU': 'NR',
|
||||
'NZL': 'NZ',
|
||||
'OMN': 'OM',
|
||||
'PAK': 'PK',
|
||||
'PAN': 'PA',
|
||||
'PCN': 'PN',
|
||||
'PER': 'PE',
|
||||
'PHL': 'PH',
|
||||
'PLW': 'PW',
|
||||
'PNG': 'PG',
|
||||
'POL': 'PL',
|
||||
'PRI': 'PR',
|
||||
'PRK': 'KP',
|
||||
'PRT': 'PT',
|
||||
'PRY': 'PY',
|
||||
'PSE': 'PS',
|
||||
'PYF': 'PF',
|
||||
'QAT': 'QA',
|
||||
'REU': 'RE',
|
||||
'ROU': 'RO',
|
||||
'RUS': 'RU',
|
||||
'RWA': 'RW',
|
||||
'SAU': 'SA',
|
||||
'SDN': 'SD',
|
||||
'SEN': 'SN',
|
||||
'SGP': 'SG',
|
||||
'SGS': 'GS',
|
||||
'SHN': 'SH',
|
||||
'SJM': 'SJ',
|
||||
'SLB': 'SB',
|
||||
'SLE': 'SL',
|
||||
'SLV': 'SV',
|
||||
'SMR': 'SM',
|
||||
'SOM': 'SO',
|
||||
'SPM': 'PM',
|
||||
'SRB': 'RS',
|
||||
'SSD': 'SS',
|
||||
'STP': 'ST',
|
||||
'SUR': 'SR',
|
||||
'SVK': 'SK',
|
||||
'SVN': 'SI',
|
||||
'SWE': 'SE',
|
||||
'SWZ': 'SZ',
|
||||
'SXM': 'SX',
|
||||
'SYC': 'SC',
|
||||
'SYR': 'SY',
|
||||
'TCA': 'TC',
|
||||
'TCD': 'TD',
|
||||
'TGO': 'TG',
|
||||
'THA': 'TH',
|
||||
'TJK': 'TJ',
|
||||
'TKL': 'TK',
|
||||
'TKM': 'TM',
|
||||
'TLS': 'TL',
|
||||
'TON': 'TO',
|
||||
'TTO': 'TT',
|
||||
'TUN': 'TN',
|
||||
'TUR': 'TR',
|
||||
'TUV': 'TV',
|
||||
'TWN': 'TW',
|
||||
'TZA': 'TZ',
|
||||
'UGA': 'UG',
|
||||
'UKR': 'UA',
|
||||
'UMI': 'UM',
|
||||
'URY': 'UY',
|
||||
'USA': 'US',
|
||||
'UZB': 'UZ',
|
||||
'VAT': 'VA',
|
||||
'VCT': 'VC',
|
||||
'VEN': 'VE',
|
||||
'VGB': 'VG',
|
||||
'VIR': 'VI',
|
||||
'VNM': 'VN',
|
||||
'VUT': 'VU',
|
||||
'WLF': 'WF',
|
||||
'WSM': 'WS',
|
||||
'YEM': 'YE',
|
||||
'ZAF': 'ZA',
|
||||
'ZMB': 'ZM',
|
||||
'ZWE': 'ZW',
|
||||
}
|
||||
|
||||
def iso2_from_code(value: str) -> str:
|
||||
code = "".join(character for character in str(value or "").upper() if character.isalpha())
|
||||
if len(code) == 2:
|
||||
return code
|
||||
if len(code) == 3:
|
||||
return ISO3_TO_ISO2.get(code, "")
|
||||
return ""
|
||||
|
||||
|
||||
ISO2_TO_ISO3: dict[str, str] = {iso2: iso3 for iso3, iso2 in ISO3_TO_ISO2.items()}
|
||||
|
||||
|
||||
def iso3_from_code(value: str) -> str:
|
||||
code = "".join(character for character in str(value or "").upper() if character.isalpha())
|
||||
if len(code) == 3 and code in ISO3_TO_ISO2:
|
||||
return code
|
||||
if len(code) == 2:
|
||||
return ISO2_TO_ISO3.get(code, "")
|
||||
return ""
|
||||
|
||||
|
||||
# Numeric country identifiers used by the KHL Stat2TV players-countries feed.
|
||||
# The XML contains one Player per row and does not carry ISO codes, so the
|
||||
# identifier has to be translated before local SVG flags can be selected.
|
||||
KHL_COUNTRY_ID_TO_ISO3: dict[str, str] = {
|
||||
"1": "RUS",
|
||||
"2": "CZE",
|
||||
"3": "SVK",
|
||||
"4": "LVA",
|
||||
"5": "BLR",
|
||||
"6": "KAZ",
|
||||
"7": "USA",
|
||||
"8": "CAN",
|
||||
"9": "UKR",
|
||||
"10": "EST",
|
||||
"11": "LTU",
|
||||
"12": "SWE",
|
||||
"13": "FIN",
|
||||
"14": "AUT",
|
||||
"15": "DEU",
|
||||
"16": "DNK",
|
||||
"17": "NOR",
|
||||
"18": "CHE",
|
||||
"19": "HUN",
|
||||
"20": "SVN",
|
||||
"21": "JPN",
|
||||
"22": "POL",
|
||||
"23": "GBR",
|
||||
"24": "MDA",
|
||||
"25": "HRV",
|
||||
"26": "KOR",
|
||||
"27": "BGR",
|
||||
"28": "ITA",
|
||||
"29": "FRA",
|
||||
"30": "BEL",
|
||||
"31": "CHN",
|
||||
"32": "ISR",
|
||||
"33": "UZB",
|
||||
"43": "NLD",
|
||||
}
|
||||
|
||||
|
||||
def khl_country_codes(country_id: str) -> tuple[str, str]:
|
||||
iso3 = KHL_COUNTRY_ID_TO_ISO3.get(str(country_id or "").strip(), "")
|
||||
return iso2_from_code(iso3), iso3
|
||||
Reference in New Issue
Block a user