diff --git a/wizard-work/ledger/check_iso3.py b/wizard-work/ledger/check_iso3.py new file mode 100644 index 0000000..5e94dae --- /dev/null +++ b/wizard-work/ledger/check_iso3.py @@ -0,0 +1,62 @@ +#!/usr/bin/env python3 +"""Verify the ISO 3166-1 alpha-3 country-code extraction. + +Exit code 0 = correct, 1 = any check failed. +Pure assertions on the artifacts; no network, no external data. +""" + +import csv +import json +import sys + +OUT = "/root/.hermes/wizard-outputs/ledger" +csv_path = f"{OUT}/iso3_alpha3.csv" +json_path = f"{OUT}/iso3_alpha3.json" + +failures = [] + + +def check(name, cond, msg=None): + if not cond: + failures.append((name, msg or "")) + + +# --- CSV ------------------------------------------------------------------- +with open(csv_path, encoding="utf-8", newline="") as fh: + reader = csv.DictReader(fh) + rows = list(reader) + headers = reader.fieldnames + +check("csv.exists", True) +check("csv.headers", headers == ["alpha_3", "country_name"], f"got {headers}") +check("csv.rowcount", len(rows) == 249, f"got {len(rows)} rows, expected 249") +check("csv.no_empty", all(r.get("alpha_3") and r.get("country_name") for r in rows)) +check("csv.no_dup_codes", len({r["alpha_3"] for r in rows}) == 249) +check("csv.sorted", [r["country_name"] for r in rows] == sorted( + r["country_name"] for r in rows)) +check("csv.code_format", all(len(r["alpha_3"]) == 3 and r["alpha_3"].isupper() + and r["alpha_3"].isalpha() for r in rows)) + +by_name = {r["country_name"]: r["alpha_3"] for r in rows} +check("csv.abw", by_name.get("Aruba") == "ABW", by_name.get("Aruba")) +check("csv.usa", by_name.get("United States of America") == "USA", by_name.get("United States of America")) +check("csv.vnm", by_name.get("Viet Nam") == "VNM", by_name.get("Viet Nam")) +check("csv.zwe", by_name.get("Zimbabwe") == "ZWE", by_name.get("Zimbabwe")) + +# --- JSON ------------------------------------------------------------------ +with open(json_path, encoding="utf-8") as fh: + jrows = json.load(fh) +check("json.exists", True) +check("json.rowcount", len(jrows) == 249) +check("json.keys", all(list(r.keys()) == ["alpha_3", "country_name"] for r in jrows)) +check("json.match_csv", jrows == rows) + +# --- Cross-source sanity (none) -------------------------------------------- +print("iso3_alpha3: rows =", len(rows)) +print("alpha_3 range:", rows[0]["alpha_3"], "->", rows[-1]["alpha_3"]) +if failures: + print("FAILED CHECKS:") + for name, msg in failures: + print(f" - {name}" + (f": {msg}" if msg else "")) + sys.exit(1) +print("ALL CHECKS PASSED") diff --git a/wizard-work/ledger/extract_iso3.py b/wizard-work/ledger/extract_iso3.py new file mode 100644 index 0000000..a6bac1f --- /dev/null +++ b/wizard-work/ledger/extract_iso3.py @@ -0,0 +1,81 @@ +#!/usr/bin/env python3 +"""Extract the ISO 3166-1 alpha-3 country-code table from the Wikipedia page. + +Source (real web_extract result, saved from en.wikipedia.org): + /root/.hermes/profiles/ledger/cache/web/en.wikipedia.org-8325609c44.md + +The page's "Officially assigned code elements" section lists every current +ISO 3166-1 alpha-3 code as a bullet: + + - ABW [Aruba](https://en.wikipedia.org/wiki/Aruba "Aruba") + - AFG [Afghanistan](...) + +Output (written to the artifact dir): + iso3_alpha3.csv - alpha_3, country_name + iso3_alpha3.json - same records as a JSON array + iso3_alpha3.md - rendered Markdown table + +Only the 249 officially assigned codes are emitted; the user-assigned, +reserved, deleted and example sections are deliberately excluded. +""" + +import csv +import json +import os +import re +from datetime import datetime + +SRC = "/root/.hermes/profiles/ledger/cache/web/en.wikipedia.org-8325609c44.md" +OUT = "/root/.hermes/wizard-outputs/ledger" + +os.makedirs(OUT, exist_ok=True) + +# Bullet list item: "- XXX [Country Name]" (country name is the first bracketed +# title after the code; the URL payload and any trailing material is discarded). +BULLET_RE = re.compile(r"^- ([A-Z]{3}) \[([^\]]*)\].*$", re.M) + +in_official_section = False +records = [] +for line in open(SRC, encoding="utf-8").read().splitlines(): + stripped = line.strip() + if stripped.startswith("### Officially assigned code elements"): + in_official_section = True + continue + if stripped.startswith("### User-assigned code elements"): + break + if in_official_section and BULLET_RE.match(line): + code, raw = BULLET_RE.match(line).groups() + country = re.sub(r"\s+", " ", raw).strip() + records.append({"alpha_3": code, "country_name": country}) + +# Sort alphabetically by country name (deterministic output order). +records.sort(key=lambda r: r["country_name"]) + +csv_path = os.path.join(OUT, "iso3_alpha3.csv") +with open(csv_path, "w", encoding="utf-8", newline="") as fh: + writer = csv.DictWriter(fh, fieldnames=["alpha_3", "country_name"]) + writer.writeheader() + writer.writerows(records) + +json_path = os.path.join(OUT, "iso3_alpha3.json") +with open(json_path, "w", encoding="utf-8") as fh: + json.dump(records, fh, ensure_ascii=False, indent=2) + +# Markdown table. +lines = ["# ISO 3166-1 alpha-3 country-code table", "", "Extracted from the Wikipedia page " + "\"ISO 3166-1 alpha-3\" (officially assigned code elements).", "", + "| alpha_3 | country_name |", "|---|---|"] +for r in records: + lines.append(f"| {r['alpha_3']} | {r['country_name']} |") +md_path = os.path.join(OUT, "iso3_alpha3.md") +with open(md_path, "w", encoding="utf-8") as fh: + fh.write("\n".join(lines) + "\n") + +print("rows_emitted:", len(records)) +print("columns:", list(records[0].keys())) +codes = [r["alpha_3"] for r in records] +print("dup_codes:", len(codes) - len(set(codes))) +print("years/order_note:", "n/a", "| first:", records[0]["alpha_3"], "| last:", records[-1]["alpha_3"]) +print("csv:", csv_path) +print("json:", json_path) +print("md:", md_path) diff --git a/wizard-work/ledger/iso3_README.md b/wizard-work/ledger/iso3_README.md new file mode 100644 index 0000000..cc8b311 --- /dev/null +++ b/wizard-work/ledger/iso3_README.md @@ -0,0 +1,46 @@ +# ISO 3166-1 alpha-3 country-code table (ledger) + +**Topic:** ISO 3166-1 alpha-3 (three-letter) country codes mapped to their +English short names. +**Lane:** Extract — data extraction and tables +**Artifact:** iso3_alpha3.csv (primary), iso3_alpha3.json (machine-readable), +iso3_alpha3.md (rendered table) + +## Source + +- Wikipedia — "ISO 3166-1 alpha-3", "Officially assigned code elements" + `https://en.wikipedia.org/wiki/ISO_3166-1_alpha-3` +- Extracted from the live page via `web_extract` (real fetch, no stale cache). + → cached raw page: + `/root/.hermes/profiles/ledger/cache/web/en.wikipedia.org-8325609c44.md` +- Parser: `extract_iso3.py` +- Verification (exit-code verdict): `check_iso3.py` + +## Schema + +| Column | Meaning | +|---------------|------------------------------------------------| +| `alpha_3` | ISO 3166-1 alpha-3 code (three uppercase letters) | +| `country_name`| English short name of the country/territory as listed | + +## Provenance & counts + +- Officially assigned codes: **249** +- No duplicate codes; all codes are exactly three uppercase letters +- Sorted alphabetically by `country_name` +- Sections intentionally excluded: user-assigned codes (AAA–ZZZ), reserved + and deleted codes + +## Verification + +``` +python3 /root/.hermes/wizard-outputs/ledger/check_iso3.py +``` +Exit code 0 = correct, 1 = any check failed. + +## Notes + +- The country names are the title-case English short names used by the ISO + 3166/MA on the source page. +- The adjacent `iso3_codes.txt` (plain code-only list) is superseded by this + table, which adds the country name for every code. diff --git a/wizard-work/ledger/iso3_alpha3.csv b/wizard-work/ledger/iso3_alpha3.csv new file mode 100644 index 0000000..a7f030e --- /dev/null +++ b/wizard-work/ledger/iso3_alpha3.csv @@ -0,0 +1,250 @@ +alpha_3,country_name +AFG,Afghanistan +ALB,Albania +DZA,Algeria +ASM,American Samoa +AND,Andorra +AGO,Angola +AIA,Anguilla +ATA,Antarctica +ATG,Antigua and Barbuda +ARG,Argentina +ARM,Armenia +ABW,Aruba +AUS,Australia +AUT,Austria +AZE,Azerbaijan +BHS,Bahamas +BHR,Bahrain +BGD,Bangladesh +BRB,Barbados +BLR,Belarus +BEL,Belgium +BLZ,Belize +BEN,Benin +BMU,Bermuda +BTN,Bhutan +BOL,"Bolivia, Plurinational State of" +BES,"Bonaire, Sint Eustatius and Saba" +BIH,Bosnia and Herzegovina +BWA,Botswana +BVT,Bouvet Island +BRA,Brazil +IOT,British Indian Ocean Territory +BRN,Brunei Darussalam +BGR,Bulgaria +BFA,Burkina Faso +BDI,Burundi +CPV,Cabo Verde +KHM,Cambodia +CMR,Cameroon +CAN,Canada +CYM,Cayman Islands +CAF,Central African Republic +TCD,Chad +CHL,Chile +CHN,China +CXR,Christmas Island +CCK,Cocos (Keeling) Islands +COL,Colombia +COM,Comoros +COG,Congo +COD,"Congo, Democratic Republic of the" +COK,Cook Islands +CRI,Costa Rica +HRV,Croatia +CUB,Cuba +CUW,Curaçao +CYP,Cyprus +CZE,Czechia +CIV,Côte d'Ivoire +DNK,Denmark +DJI,Djibouti +DMA,Dominica +DOM,Dominican Republic +ECU,Ecuador +EGY,Egypt +SLV,El Salvador +GNQ,Equatorial Guinea +ERI,Eritrea +EST,Estonia +SWZ,Eswatini +ETH,Ethiopia +FLK,Falkland Islands (Malvinas) +FRO,Faroe Islands +FJI,Fiji +FIN,Finland +FRA,France +GUF,French Guiana +PYF,French Polynesia +ATF,French Southern Territories +GAB,Gabon +GMB,Gambia +GEO,Georgia +DEU,Germany +GHA,Ghana +GIB,Gibraltar +GRC,Greece +GRL,Greenland +GRD,Grenada +GLP,Guadeloupe +GUM,Guam +GTM,Guatemala +GGY,Guernsey +GIN,Guinea +GNB,Guinea-Bissau +GUY,Guyana +HTI,Haiti +HMD,Heard Island and McDonald Islands +VAT,Holy See +HND,Honduras +HKG,Hong Kong +HUN,Hungary +ISL,Iceland +IND,India +IDN,Indonesia +IRN,"Iran, Islamic Republic of" +IRQ,Iraq +IRL,Ireland +IMN,Isle of Man +ISR,Israel +ITA,Italy +JAM,Jamaica +JPN,Japan +JEY,Jersey +JOR,Jordan +KAZ,Kazakhstan +KEN,Kenya +KIR,Kiribati +PRK,"Korea, Democratic People's Republic of" +KOR,"Korea, Republic of" +KWT,Kuwait +KGZ,Kyrgyzstan +LAO,Lao People's Democratic Republic +LVA,Latvia +LBN,Lebanon +LSO,Lesotho +LBR,Liberia +LBY,Libya +LIE,Liechtenstein +LTU,Lithuania +LUX,Luxembourg +MAC,Macao +MDG,Madagascar +MWI,Malawi +MYS,Malaysia +MDV,Maldives +MLI,Mali +MLT,Malta +MHL,Marshall Islands +MTQ,Martinique +MRT,Mauritania +MUS,Mauritius +MYT,Mayotte +MEX,Mexico +FSM,"Micronesia, Federated States of" +MDA,"Moldova, Republic of" +MCO,Monaco +MNG,Mongolia +MNE,Montenegro +MSR,Montserrat +MAR,Morocco +MOZ,Mozambique +MMR,Myanmar +NAM,Namibia +NRU,Naoero +NPL,Nepal +NLD,"Netherlands, Kingdom of the" +NCL,New Caledonia +NZL,New Zealand +NIC,Nicaragua +NER,Niger +NGA,Nigeria +NIU,Niue +NFK,Norfolk Island +MKD,North Macedonia +MNP,Northern Mariana Islands +NOR,Norway +OMN,Oman +PAK,Pakistan +PLW,Palau +PSE,"Palestine, State of" +PAN,Panama +PNG,Papua New Guinea +PRY,Paraguay +PER,Peru +PHL,Philippines +PCN,Pitcairn +POL,Poland +PRT,Portugal +PRI,Puerto Rico +QAT,Qatar +ROU,Romania +RUS,Russian Federation +RWA,Rwanda +REU,Réunion +BLM,Saint Barthélemy +SHN,"Saint Helena, Ascension and Tristan da Cunha" +KNA,Saint Kitts and Nevis +LCA,Saint Lucia +MAF,Saint Martin (French part) +SPM,Saint Pierre and Miquelon +VCT,Saint Vincent and the Grenadines +WSM,Samoa +SMR,San Marino +STP,Sao Tome and Principe +SAU,Saudi Arabia +SEN,Senegal +SRB,Serbia +SYC,Seychelles +SLE,Sierra Leone +SGP,Singapore +SXM,Sint Maarten (Dutch part) +SVK,Slovakia +SVN,Slovenia +SLB,Solomon Islands +SOM,Somalia +ZAF,South Africa +SGS,South Georgia and the South Sandwich Islands +SSD,South Sudan +ESP,Spain +LKA,Sri Lanka +SDN,Sudan +SUR,Suriname +SJM,Svalbard and Jan Mayen +SWE,Sweden +CHE,Switzerland +SYR,Syrian Arab Republic +TWN,Taiwan +TJK,Tajikistan +TZA,"Tanzania, United Republic of" +THA,Thailand +TLS,Timor-Leste +TGO,Togo +TKL,Tokelau +TON,Tonga +TTO,Trinidad and Tobago +TUN,Tunisia +TKM,Turkmenistan +TCA,Turks and Caicos Islands +TUV,Tuvalu +TUR,Türkiye +UGA,Uganda +UKR,Ukraine +ARE,United Arab Emirates +GBR,United Kingdom of Great Britain and Northern Ireland +UMI,United States Minor Outlying Islands +USA,United States of America +URY,Uruguay +UZB,Uzbekistan +VUT,Vanuatu +VEN,"Venezuela, Bolivarian Republic of" +VNM,Viet Nam +VGB,Virgin Islands (British) +VIR,Virgin Islands (U.S.) +WLF,Wallis and Futuna +ESH,Western Sahara +YEM,Yemen +ZMB,Zambia +ZWE,Zimbabwe +ALA,Åland Islands diff --git a/wizard-work/ledger/iso3_alpha3.json b/wizard-work/ledger/iso3_alpha3.json new file mode 100644 index 0000000..33bea56 --- /dev/null +++ b/wizard-work/ledger/iso3_alpha3.json @@ -0,0 +1,998 @@ +[ + { + "alpha_3": "AFG", + "country_name": "Afghanistan" + }, + { + "alpha_3": "ALB", + "country_name": "Albania" + }, + { + "alpha_3": "DZA", + "country_name": "Algeria" + }, + { + "alpha_3": "ASM", + "country_name": "American Samoa" + }, + { + "alpha_3": "AND", + "country_name": "Andorra" + }, + { + "alpha_3": "AGO", + "country_name": "Angola" + }, + { + "alpha_3": "AIA", + "country_name": "Anguilla" + }, + { + "alpha_3": "ATA", + "country_name": "Antarctica" + }, + { + "alpha_3": "ATG", + "country_name": "Antigua and Barbuda" + }, + { + "alpha_3": "ARG", + "country_name": "Argentina" + }, + { + "alpha_3": "ARM", + "country_name": "Armenia" + }, + { + "alpha_3": "ABW", + "country_name": "Aruba" + }, + { + "alpha_3": "AUS", + "country_name": "Australia" + }, + { + "alpha_3": "AUT", + "country_name": "Austria" + }, + { + "alpha_3": "AZE", + "country_name": "Azerbaijan" + }, + { + "alpha_3": "BHS", + "country_name": "Bahamas" + }, + { + "alpha_3": "BHR", + "country_name": "Bahrain" + }, + { + "alpha_3": "BGD", + "country_name": "Bangladesh" + }, + { + "alpha_3": "BRB", + "country_name": "Barbados" + }, + { + "alpha_3": "BLR", + "country_name": "Belarus" + }, + { + "alpha_3": "BEL", + "country_name": "Belgium" + }, + { + "alpha_3": "BLZ", + "country_name": "Belize" + }, + { + "alpha_3": "BEN", + "country_name": "Benin" + }, + { + "alpha_3": "BMU", + "country_name": "Bermuda" + }, + { + "alpha_3": "BTN", + "country_name": "Bhutan" + }, + { + "alpha_3": "BOL", + "country_name": "Bolivia, Plurinational State of" + }, + { + "alpha_3": "BES", + "country_name": "Bonaire, Sint Eustatius and Saba" + }, + { + "alpha_3": "BIH", + "country_name": "Bosnia and Herzegovina" + }, + { + "alpha_3": "BWA", + "country_name": "Botswana" + }, + { + "alpha_3": "BVT", + "country_name": "Bouvet Island" + }, + { + "alpha_3": "BRA", + "country_name": "Brazil" + }, + { + "alpha_3": "IOT", + "country_name": "British Indian Ocean Territory" + }, + { + "alpha_3": "BRN", + "country_name": "Brunei Darussalam" + }, + { + "alpha_3": "BGR", + "country_name": "Bulgaria" + }, + { + "alpha_3": "BFA", + "country_name": "Burkina Faso" + }, + { + "alpha_3": "BDI", + "country_name": "Burundi" + }, + { + "alpha_3": "CPV", + "country_name": "Cabo Verde" + }, + { + "alpha_3": "KHM", + "country_name": "Cambodia" + }, + { + "alpha_3": "CMR", + "country_name": "Cameroon" + }, + { + "alpha_3": "CAN", + "country_name": "Canada" + }, + { + "alpha_3": "CYM", + "country_name": "Cayman Islands" + }, + { + "alpha_3": "CAF", + "country_name": "Central African Republic" + }, + { + "alpha_3": "TCD", + "country_name": "Chad" + }, + { + "alpha_3": "CHL", + "country_name": "Chile" + }, + { + "alpha_3": "CHN", + "country_name": "China" + }, + { + "alpha_3": "CXR", + "country_name": "Christmas Island" + }, + { + "alpha_3": "CCK", + "country_name": "Cocos (Keeling) Islands" + }, + { + "alpha_3": "COL", + "country_name": "Colombia" + }, + { + "alpha_3": "COM", + "country_name": "Comoros" + }, + { + "alpha_3": "COG", + "country_name": "Congo" + }, + { + "alpha_3": "COD", + "country_name": "Congo, Democratic Republic of the" + }, + { + "alpha_3": "COK", + "country_name": "Cook Islands" + }, + { + "alpha_3": "CRI", + "country_name": "Costa Rica" + }, + { + "alpha_3": "HRV", + "country_name": "Croatia" + }, + { + "alpha_3": "CUB", + "country_name": "Cuba" + }, + { + "alpha_3": "CUW", + "country_name": "Curaçao" + }, + { + "alpha_3": "CYP", + "country_name": "Cyprus" + }, + { + "alpha_3": "CZE", + "country_name": "Czechia" + }, + { + "alpha_3": "CIV", + "country_name": "Côte d'Ivoire" + }, + { + "alpha_3": "DNK", + "country_name": "Denmark" + }, + { + "alpha_3": "DJI", + "country_name": "Djibouti" + }, + { + "alpha_3": "DMA", + "country_name": "Dominica" + }, + { + "alpha_3": "DOM", + "country_name": "Dominican Republic" + }, + { + "alpha_3": "ECU", + "country_name": "Ecuador" + }, + { + "alpha_3": "EGY", + "country_name": "Egypt" + }, + { + "alpha_3": "SLV", + "country_name": "El Salvador" + }, + { + "alpha_3": "GNQ", + "country_name": "Equatorial Guinea" + }, + { + "alpha_3": "ERI", + "country_name": "Eritrea" + }, + { + "alpha_3": "EST", + "country_name": "Estonia" + }, + { + "alpha_3": "SWZ", + "country_name": "Eswatini" + }, + { + "alpha_3": "ETH", + "country_name": "Ethiopia" + }, + { + "alpha_3": "FLK", + "country_name": "Falkland Islands (Malvinas)" + }, + { + "alpha_3": "FRO", + "country_name": "Faroe Islands" + }, + { + "alpha_3": "FJI", + "country_name": "Fiji" + }, + { + "alpha_3": "FIN", + "country_name": "Finland" + }, + { + "alpha_3": "FRA", + "country_name": "France" + }, + { + "alpha_3": "GUF", + "country_name": "French Guiana" + }, + { + "alpha_3": "PYF", + "country_name": "French Polynesia" + }, + { + "alpha_3": "ATF", + "country_name": "French Southern Territories" + }, + { + "alpha_3": "GAB", + "country_name": "Gabon" + }, + { + "alpha_3": "GMB", + "country_name": "Gambia" + }, + { + "alpha_3": "GEO", + "country_name": "Georgia" + }, + { + "alpha_3": "DEU", + "country_name": "Germany" + }, + { + "alpha_3": "GHA", + "country_name": "Ghana" + }, + { + "alpha_3": "GIB", + "country_name": "Gibraltar" + }, + { + "alpha_3": "GRC", + "country_name": "Greece" + }, + { + "alpha_3": "GRL", + "country_name": "Greenland" + }, + { + "alpha_3": "GRD", + "country_name": "Grenada" + }, + { + "alpha_3": "GLP", + "country_name": "Guadeloupe" + }, + { + "alpha_3": "GUM", + "country_name": "Guam" + }, + { + "alpha_3": "GTM", + "country_name": "Guatemala" + }, + { + "alpha_3": "GGY", + "country_name": "Guernsey" + }, + { + "alpha_3": "GIN", + "country_name": "Guinea" + }, + { + "alpha_3": "GNB", + "country_name": "Guinea-Bissau" + }, + { + "alpha_3": "GUY", + "country_name": "Guyana" + }, + { + "alpha_3": "HTI", + "country_name": "Haiti" + }, + { + "alpha_3": "HMD", + "country_name": "Heard Island and McDonald Islands" + }, + { + "alpha_3": "VAT", + "country_name": "Holy See" + }, + { + "alpha_3": "HND", + "country_name": "Honduras" + }, + { + "alpha_3": "HKG", + "country_name": "Hong Kong" + }, + { + "alpha_3": "HUN", + "country_name": "Hungary" + }, + { + "alpha_3": "ISL", + "country_name": "Iceland" + }, + { + "alpha_3": "IND", + "country_name": "India" + }, + { + "alpha_3": "IDN", + "country_name": "Indonesia" + }, + { + "alpha_3": "IRN", + "country_name": "Iran, Islamic Republic of" + }, + { + "alpha_3": "IRQ", + "country_name": "Iraq" + }, + { + "alpha_3": "IRL", + "country_name": "Ireland" + }, + { + "alpha_3": "IMN", + "country_name": "Isle of Man" + }, + { + "alpha_3": "ISR", + "country_name": "Israel" + }, + { + "alpha_3": "ITA", + "country_name": "Italy" + }, + { + "alpha_3": "JAM", + "country_name": "Jamaica" + }, + { + "alpha_3": "JPN", + "country_name": "Japan" + }, + { + "alpha_3": "JEY", + "country_name": "Jersey" + }, + { + "alpha_3": "JOR", + "country_name": "Jordan" + }, + { + "alpha_3": "KAZ", + "country_name": "Kazakhstan" + }, + { + "alpha_3": "KEN", + "country_name": "Kenya" + }, + { + "alpha_3": "KIR", + "country_name": "Kiribati" + }, + { + "alpha_3": "PRK", + "country_name": "Korea, Democratic People's Republic of" + }, + { + "alpha_3": "KOR", + "country_name": "Korea, Republic of" + }, + { + "alpha_3": "KWT", + "country_name": "Kuwait" + }, + { + "alpha_3": "KGZ", + "country_name": "Kyrgyzstan" + }, + { + "alpha_3": "LAO", + "country_name": "Lao People's Democratic Republic" + }, + { + "alpha_3": "LVA", + "country_name": "Latvia" + }, + { + "alpha_3": "LBN", + "country_name": "Lebanon" + }, + { + "alpha_3": "LSO", + "country_name": "Lesotho" + }, + { + "alpha_3": "LBR", + "country_name": "Liberia" + }, + { + "alpha_3": "LBY", + "country_name": "Libya" + }, + { + "alpha_3": "LIE", + "country_name": "Liechtenstein" + }, + { + "alpha_3": "LTU", + "country_name": "Lithuania" + }, + { + "alpha_3": "LUX", + "country_name": "Luxembourg" + }, + { + "alpha_3": "MAC", + "country_name": "Macao" + }, + { + "alpha_3": "MDG", + "country_name": "Madagascar" + }, + { + "alpha_3": "MWI", + "country_name": "Malawi" + }, + { + "alpha_3": "MYS", + "country_name": "Malaysia" + }, + { + "alpha_3": "MDV", + "country_name": "Maldives" + }, + { + "alpha_3": "MLI", + "country_name": "Mali" + }, + { + "alpha_3": "MLT", + "country_name": "Malta" + }, + { + "alpha_3": "MHL", + "country_name": "Marshall Islands" + }, + { + "alpha_3": "MTQ", + "country_name": "Martinique" + }, + { + "alpha_3": "MRT", + "country_name": "Mauritania" + }, + { + "alpha_3": "MUS", + "country_name": "Mauritius" + }, + { + "alpha_3": "MYT", + "country_name": "Mayotte" + }, + { + "alpha_3": "MEX", + "country_name": "Mexico" + }, + { + "alpha_3": "FSM", + "country_name": "Micronesia, Federated States of" + }, + { + "alpha_3": "MDA", + "country_name": "Moldova, Republic of" + }, + { + "alpha_3": "MCO", + "country_name": "Monaco" + }, + { + "alpha_3": "MNG", + "country_name": "Mongolia" + }, + { + "alpha_3": "MNE", + "country_name": "Montenegro" + }, + { + "alpha_3": "MSR", + "country_name": "Montserrat" + }, + { + "alpha_3": "MAR", + "country_name": "Morocco" + }, + { + "alpha_3": "MOZ", + "country_name": "Mozambique" + }, + { + "alpha_3": "MMR", + "country_name": "Myanmar" + }, + { + "alpha_3": "NAM", + "country_name": "Namibia" + }, + { + "alpha_3": "NRU", + "country_name": "Naoero" + }, + { + "alpha_3": "NPL", + "country_name": "Nepal" + }, + { + "alpha_3": "NLD", + "country_name": "Netherlands, Kingdom of the" + }, + { + "alpha_3": "NCL", + "country_name": "New Caledonia" + }, + { + "alpha_3": "NZL", + "country_name": "New Zealand" + }, + { + "alpha_3": "NIC", + "country_name": "Nicaragua" + }, + { + "alpha_3": "NER", + "country_name": "Niger" + }, + { + "alpha_3": "NGA", + "country_name": "Nigeria" + }, + { + "alpha_3": "NIU", + "country_name": "Niue" + }, + { + "alpha_3": "NFK", + "country_name": "Norfolk Island" + }, + { + "alpha_3": "MKD", + "country_name": "North Macedonia" + }, + { + "alpha_3": "MNP", + "country_name": "Northern Mariana Islands" + }, + { + "alpha_3": "NOR", + "country_name": "Norway" + }, + { + "alpha_3": "OMN", + "country_name": "Oman" + }, + { + "alpha_3": "PAK", + "country_name": "Pakistan" + }, + { + "alpha_3": "PLW", + "country_name": "Palau" + }, + { + "alpha_3": "PSE", + "country_name": "Palestine, State of" + }, + { + "alpha_3": "PAN", + "country_name": "Panama" + }, + { + "alpha_3": "PNG", + "country_name": "Papua New Guinea" + }, + { + "alpha_3": "PRY", + "country_name": "Paraguay" + }, + { + "alpha_3": "PER", + "country_name": "Peru" + }, + { + "alpha_3": "PHL", + "country_name": "Philippines" + }, + { + "alpha_3": "PCN", + "country_name": "Pitcairn" + }, + { + "alpha_3": "POL", + "country_name": "Poland" + }, + { + "alpha_3": "PRT", + "country_name": "Portugal" + }, + { + "alpha_3": "PRI", + "country_name": "Puerto Rico" + }, + { + "alpha_3": "QAT", + "country_name": "Qatar" + }, + { + "alpha_3": "ROU", + "country_name": "Romania" + }, + { + "alpha_3": "RUS", + "country_name": "Russian Federation" + }, + { + "alpha_3": "RWA", + "country_name": "Rwanda" + }, + { + "alpha_3": "REU", + "country_name": "Réunion" + }, + { + "alpha_3": "BLM", + "country_name": "Saint Barthélemy" + }, + { + "alpha_3": "SHN", + "country_name": "Saint Helena, Ascension and Tristan da Cunha" + }, + { + "alpha_3": "KNA", + "country_name": "Saint Kitts and Nevis" + }, + { + "alpha_3": "LCA", + "country_name": "Saint Lucia" + }, + { + "alpha_3": "MAF", + "country_name": "Saint Martin (French part)" + }, + { + "alpha_3": "SPM", + "country_name": "Saint Pierre and Miquelon" + }, + { + "alpha_3": "VCT", + "country_name": "Saint Vincent and the Grenadines" + }, + { + "alpha_3": "WSM", + "country_name": "Samoa" + }, + { + "alpha_3": "SMR", + "country_name": "San Marino" + }, + { + "alpha_3": "STP", + "country_name": "Sao Tome and Principe" + }, + { + "alpha_3": "SAU", + "country_name": "Saudi Arabia" + }, + { + "alpha_3": "SEN", + "country_name": "Senegal" + }, + { + "alpha_3": "SRB", + "country_name": "Serbia" + }, + { + "alpha_3": "SYC", + "country_name": "Seychelles" + }, + { + "alpha_3": "SLE", + "country_name": "Sierra Leone" + }, + { + "alpha_3": "SGP", + "country_name": "Singapore" + }, + { + "alpha_3": "SXM", + "country_name": "Sint Maarten (Dutch part)" + }, + { + "alpha_3": "SVK", + "country_name": "Slovakia" + }, + { + "alpha_3": "SVN", + "country_name": "Slovenia" + }, + { + "alpha_3": "SLB", + "country_name": "Solomon Islands" + }, + { + "alpha_3": "SOM", + "country_name": "Somalia" + }, + { + "alpha_3": "ZAF", + "country_name": "South Africa" + }, + { + "alpha_3": "SGS", + "country_name": "South Georgia and the South Sandwich Islands" + }, + { + "alpha_3": "SSD", + "country_name": "South Sudan" + }, + { + "alpha_3": "ESP", + "country_name": "Spain" + }, + { + "alpha_3": "LKA", + "country_name": "Sri Lanka" + }, + { + "alpha_3": "SDN", + "country_name": "Sudan" + }, + { + "alpha_3": "SUR", + "country_name": "Suriname" + }, + { + "alpha_3": "SJM", + "country_name": "Svalbard and Jan Mayen" + }, + { + "alpha_3": "SWE", + "country_name": "Sweden" + }, + { + "alpha_3": "CHE", + "country_name": "Switzerland" + }, + { + "alpha_3": "SYR", + "country_name": "Syrian Arab Republic" + }, + { + "alpha_3": "TWN", + "country_name": "Taiwan" + }, + { + "alpha_3": "TJK", + "country_name": "Tajikistan" + }, + { + "alpha_3": "TZA", + "country_name": "Tanzania, United Republic of" + }, + { + "alpha_3": "THA", + "country_name": "Thailand" + }, + { + "alpha_3": "TLS", + "country_name": "Timor-Leste" + }, + { + "alpha_3": "TGO", + "country_name": "Togo" + }, + { + "alpha_3": "TKL", + "country_name": "Tokelau" + }, + { + "alpha_3": "TON", + "country_name": "Tonga" + }, + { + "alpha_3": "TTO", + "country_name": "Trinidad and Tobago" + }, + { + "alpha_3": "TUN", + "country_name": "Tunisia" + }, + { + "alpha_3": "TKM", + "country_name": "Turkmenistan" + }, + { + "alpha_3": "TCA", + "country_name": "Turks and Caicos Islands" + }, + { + "alpha_3": "TUV", + "country_name": "Tuvalu" + }, + { + "alpha_3": "TUR", + "country_name": "Türkiye" + }, + { + "alpha_3": "UGA", + "country_name": "Uganda" + }, + { + "alpha_3": "UKR", + "country_name": "Ukraine" + }, + { + "alpha_3": "ARE", + "country_name": "United Arab Emirates" + }, + { + "alpha_3": "GBR", + "country_name": "United Kingdom of Great Britain and Northern Ireland" + }, + { + "alpha_3": "UMI", + "country_name": "United States Minor Outlying Islands" + }, + { + "alpha_3": "USA", + "country_name": "United States of America" + }, + { + "alpha_3": "URY", + "country_name": "Uruguay" + }, + { + "alpha_3": "UZB", + "country_name": "Uzbekistan" + }, + { + "alpha_3": "VUT", + "country_name": "Vanuatu" + }, + { + "alpha_3": "VEN", + "country_name": "Venezuela, Bolivarian Republic of" + }, + { + "alpha_3": "VNM", + "country_name": "Viet Nam" + }, + { + "alpha_3": "VGB", + "country_name": "Virgin Islands (British)" + }, + { + "alpha_3": "VIR", + "country_name": "Virgin Islands (U.S.)" + }, + { + "alpha_3": "WLF", + "country_name": "Wallis and Futuna" + }, + { + "alpha_3": "ESH", + "country_name": "Western Sahara" + }, + { + "alpha_3": "YEM", + "country_name": "Yemen" + }, + { + "alpha_3": "ZMB", + "country_name": "Zambia" + }, + { + "alpha_3": "ZWE", + "country_name": "Zimbabwe" + }, + { + "alpha_3": "ALA", + "country_name": "Åland Islands" + } +] \ No newline at end of file diff --git a/wizard-work/ledger/iso3_alpha3.md b/wizard-work/ledger/iso3_alpha3.md new file mode 100644 index 0000000..d197f9c --- /dev/null +++ b/wizard-work/ledger/iso3_alpha3.md @@ -0,0 +1,255 @@ +# ISO 3166-1 alpha-3 country-code table + +Extracted from the Wikipedia page "ISO 3166-1 alpha-3" (officially assigned code elements). + +| alpha_3 | country_name | +|---|---| +| AFG | Afghanistan | +| ALB | Albania | +| DZA | Algeria | +| ASM | American Samoa | +| AND | Andorra | +| AGO | Angola | +| AIA | Anguilla | +| ATA | Antarctica | +| ATG | Antigua and Barbuda | +| ARG | Argentina | +| ARM | Armenia | +| ABW | Aruba | +| AUS | Australia | +| AUT | Austria | +| AZE | Azerbaijan | +| BHS | Bahamas | +| BHR | Bahrain | +| BGD | Bangladesh | +| BRB | Barbados | +| BLR | Belarus | +| BEL | Belgium | +| BLZ | Belize | +| BEN | Benin | +| BMU | Bermuda | +| BTN | Bhutan | +| BOL | Bolivia, Plurinational State of | +| BES | Bonaire, Sint Eustatius and Saba | +| BIH | Bosnia and Herzegovina | +| BWA | Botswana | +| BVT | Bouvet Island | +| BRA | Brazil | +| IOT | British Indian Ocean Territory | +| BRN | Brunei Darussalam | +| BGR | Bulgaria | +| BFA | Burkina Faso | +| BDI | Burundi | +| CPV | Cabo Verde | +| KHM | Cambodia | +| CMR | Cameroon | +| CAN | Canada | +| CYM | Cayman Islands | +| CAF | Central African Republic | +| TCD | Chad | +| CHL | Chile | +| CHN | China | +| CXR | Christmas Island | +| CCK | Cocos (Keeling) Islands | +| COL | Colombia | +| COM | Comoros | +| COG | Congo | +| COD | Congo, Democratic Republic of the | +| COK | Cook Islands | +| CRI | Costa Rica | +| HRV | Croatia | +| CUB | Cuba | +| CUW | Curaçao | +| CYP | Cyprus | +| CZE | Czechia | +| CIV | Côte d'Ivoire | +| DNK | Denmark | +| DJI | Djibouti | +| DMA | Dominica | +| DOM | Dominican Republic | +| ECU | Ecuador | +| EGY | Egypt | +| SLV | El Salvador | +| GNQ | Equatorial Guinea | +| ERI | Eritrea | +| EST | Estonia | +| SWZ | Eswatini | +| ETH | Ethiopia | +| FLK | Falkland Islands (Malvinas) | +| FRO | Faroe Islands | +| FJI | Fiji | +| FIN | Finland | +| FRA | France | +| GUF | French Guiana | +| PYF | French Polynesia | +| ATF | French Southern Territories | +| GAB | Gabon | +| GMB | Gambia | +| GEO | Georgia | +| DEU | Germany | +| GHA | Ghana | +| GIB | Gibraltar | +| GRC | Greece | +| GRL | Greenland | +| GRD | Grenada | +| GLP | Guadeloupe | +| GUM | Guam | +| GTM | Guatemala | +| GGY | Guernsey | +| GIN | Guinea | +| GNB | Guinea-Bissau | +| GUY | Guyana | +| HTI | Haiti | +| HMD | Heard Island and McDonald Islands | +| VAT | Holy See | +| HND | Honduras | +| HKG | Hong Kong | +| HUN | Hungary | +| ISL | Iceland | +| IND | India | +| IDN | Indonesia | +| IRN | Iran, Islamic Republic of | +| IRQ | Iraq | +| IRL | Ireland | +| IMN | Isle of Man | +| ISR | Israel | +| ITA | Italy | +| JAM | Jamaica | +| JPN | Japan | +| JEY | Jersey | +| JOR | Jordan | +| KAZ | Kazakhstan | +| KEN | Kenya | +| KIR | Kiribati | +| PRK | Korea, Democratic People's Republic of | +| KOR | Korea, Republic of | +| KWT | Kuwait | +| KGZ | Kyrgyzstan | +| LAO | Lao People's Democratic Republic | +| LVA | Latvia | +| LBN | Lebanon | +| LSO | Lesotho | +| LBR | Liberia | +| LBY | Libya | +| LIE | Liechtenstein | +| LTU | Lithuania | +| LUX | Luxembourg | +| MAC | Macao | +| MDG | Madagascar | +| MWI | Malawi | +| MYS | Malaysia | +| MDV | Maldives | +| MLI | Mali | +| MLT | Malta | +| MHL | Marshall Islands | +| MTQ | Martinique | +| MRT | Mauritania | +| MUS | Mauritius | +| MYT | Mayotte | +| MEX | Mexico | +| FSM | Micronesia, Federated States of | +| MDA | Moldova, Republic of | +| MCO | Monaco | +| MNG | Mongolia | +| MNE | Montenegro | +| MSR | Montserrat | +| MAR | Morocco | +| MOZ | Mozambique | +| MMR | Myanmar | +| NAM | Namibia | +| NRU | Naoero | +| NPL | Nepal | +| NLD | Netherlands, Kingdom of the | +| NCL | New Caledonia | +| NZL | New Zealand | +| NIC | Nicaragua | +| NER | Niger | +| NGA | Nigeria | +| NIU | Niue | +| NFK | Norfolk Island | +| MKD | North Macedonia | +| MNP | Northern Mariana Islands | +| NOR | Norway | +| OMN | Oman | +| PAK | Pakistan | +| PLW | Palau | +| PSE | Palestine, State of | +| PAN | Panama | +| PNG | Papua New Guinea | +| PRY | Paraguay | +| PER | Peru | +| PHL | Philippines | +| PCN | Pitcairn | +| POL | Poland | +| PRT | Portugal | +| PRI | Puerto Rico | +| QAT | Qatar | +| ROU | Romania | +| RUS | Russian Federation | +| RWA | Rwanda | +| REU | Réunion | +| BLM | Saint Barthélemy | +| SHN | Saint Helena, Ascension and Tristan da Cunha | +| KNA | Saint Kitts and Nevis | +| LCA | Saint Lucia | +| MAF | Saint Martin (French part) | +| SPM | Saint Pierre and Miquelon | +| VCT | Saint Vincent and the Grenadines | +| WSM | Samoa | +| SMR | San Marino | +| STP | Sao Tome and Principe | +| SAU | Saudi Arabia | +| SEN | Senegal | +| SRB | Serbia | +| SYC | Seychelles | +| SLE | Sierra Leone | +| SGP | Singapore | +| SXM | Sint Maarten (Dutch part) | +| SVK | Slovakia | +| SVN | Slovenia | +| SLB | Solomon Islands | +| SOM | Somalia | +| ZAF | South Africa | +| SGS | South Georgia and the South Sandwich Islands | +| SSD | South Sudan | +| ESP | Spain | +| LKA | Sri Lanka | +| SDN | Sudan | +| SUR | Suriname | +| SJM | Svalbard and Jan Mayen | +| SWE | Sweden | +| CHE | Switzerland | +| SYR | Syrian Arab Republic | +| TWN | Taiwan | +| TJK | Tajikistan | +| TZA | Tanzania, United Republic of | +| THA | Thailand | +| TLS | Timor-Leste | +| TGO | Togo | +| TKL | Tokelau | +| TON | Tonga | +| TTO | Trinidad and Tobago | +| TUN | Tunisia | +| TKM | Turkmenistan | +| TCA | Turks and Caicos Islands | +| TUV | Tuvalu | +| TUR | Türkiye | +| UGA | Uganda | +| UKR | Ukraine | +| ARE | United Arab Emirates | +| GBR | United Kingdom of Great Britain and Northern Ireland | +| UMI | United States Minor Outlying Islands | +| USA | United States of America | +| URY | Uruguay | +| UZB | Uzbekistan | +| VUT | Vanuatu | +| VEN | Venezuela, Bolivarian Republic of | +| VNM | Viet Nam | +| VGB | Virgin Islands (British) | +| VIR | Virgin Islands (U.S.) | +| WLF | Wallis and Futuna | +| ESH | Western Sahara | +| YEM | Yemen | +| ZMB | Zambia | +| ZWE | Zimbabwe | +| ALA | Åland Islands |