From 52ce49185ff351d46911ea86733adcb46475c4b1 Mon Sep 17 00:00:00 2001 From: mcarans Date: Thu, 29 Jan 2026 17:30:44 +1300 Subject: [PATCH 1/2] Removed HXL from country.py --- .coveragerc | 17 - .github/workflows/publish.yaml | 27 +- .github/workflows/run-python-tests.yaml | 74 +- .pre-commit-config.yaml | 17 +- README.md | 61 +- hatch.toml | 37 - pyproject.toml | 110 +- pytest.ini | 4 - requirements.txt | 160 -- ruff.toml | 10 - ...rritories Taxonomy MVP - C&T Taxonomy.csv} | 515 +++-- src/hdx/location/adminlevel.py | 3 - src/hdx/location/country.py | 234 ++- tests/hdx/location/Countries_UZB_Deleted.csv | 7 +- tests/hdx/location/test_country.py | 949 ++++----- uv.lock | 1749 +++++++++++++++++ 16 files changed, 2812 insertions(+), 1162 deletions(-) delete mode 100644 .coveragerc delete mode 100644 hatch.toml delete mode 100644 pytest.ini delete mode 100644 requirements.txt delete mode 100644 ruff.toml rename src/hdx/location/{Countries & Territories Taxonomy MVP - C&T Taxonomy with HXL Tags.csv => Countries & Territories Taxonomy MVP - C&T Taxonomy.csv} (98%) create mode 100644 uv.lock diff --git a/.coveragerc b/.coveragerc deleted file mode 100644 index ca9d302..0000000 --- a/.coveragerc +++ /dev/null @@ -1,17 +0,0 @@ -[run] -source = src - -omit = */_version.py - -[report] -exclude_also = - from ._version - def __repr__ - if self.debug: - if settings.DEBUG - raise AssertionError - raise NotImplementedError - if 0: - if __name__ == .__main__.: - if TYPE_CHECKING: - @(abc\.)?abstractmethod diff --git a/.github/workflows/publish.yaml b/.github/workflows/publish.yaml index 5498fad..ef31b3f 100644 --- a/.github/workflows/publish.yaml +++ b/.github/workflows/publish.yaml @@ -13,25 +13,22 @@ jobs: url: https://pypi.org/p/hdx-python-country permissions: - id-token: write # IMPORTANT: mandatory for trusted publishing + id-token: write + contents: read steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v6 + - name: Get history and tags for versioning to work run: | git fetch --prune --unshallow git fetch --depth=1 origin +refs/tags/*:refs/tags/* - - name: Set up Python - uses: actions/setup-python@v5 - with: - python-version: '3.x' - - name: Install dependencies - run: | - python -m pip install --upgrade pip - - name: Install Hatch - uses: pypa/hatch@install - - name: Build with hatch - run: | - hatch build + + - name: Install uv + uses: astral-sh/setup-uv@v7 + + - name: Build with uv + run: uv build + - name: Publish distribution 📦 to PyPI - uses: pypa/gh-action-pypi-publish@release/v1 + run: uv publish diff --git a/.github/workflows/run-python-tests.yaml b/.github/workflows/run-python-tests.yaml index 5accfae..c26cc6e 100644 --- a/.github/workflows/run-python-tests.yaml +++ b/.github/workflows/run-python-tests.yaml @@ -1,53 +1,49 @@ -# This workflow will install Python dependencies, lint and run tests -# For more information see: https://help.github.com/actions/language-and-framework-guides/using-python-with-github-actions - name: Run tests on: - workflow_dispatch: # add run button in github + workflow_dispatch: push: - branches-ignore: - - gh-pages - - 'dependabot/**' + branches-ignore: [gh-pages, "dependabot/**"] pull_request: - branches-ignore: - - gh-pages + branches-ignore: [gh-pages] jobs: build: runs-on: ubuntu-latest - permissions: + contents: read checks: write pull-requests: write steps: - - uses: actions/checkout@v4 - - name: Set up Python - uses: actions/setup-python@v5 - with: - python-version: '3.x' - - name: Install dependencies - run: | - python -m pip install --upgrade pip - - name: Install Hatch - uses: pypa/hatch@install - - name: Test with hatch/pytest - run: | - hatch test - - name: Check styling - if: always() - run: | - hatch fmt --check - - name: Publish Unit Test Results - uses: EnricoMi/publish-unit-test-result-action@v2 - if: always() - with: - github_token: ${{ secrets.GITHUB_TOKEN }} - junit_files: test-results.xml - - name: Publish in Coveralls - uses: coverallsapp/github-action@v2 - with: - github-token: ${{ secrets.GITHUB_TOKEN }} - flag-name: tests - format: lcov + - uses: actions/checkout@v6 + + - name: Install uv + uses: astral-sh/setup-uv@v7 + with: + enable-cache: true + python-version: "3.13" + + - name: Install dependencies + run: uv sync --frozen + + - name: Check styling + run: | + uv run ruff format --check + uv run ruff check + + - name: Test with pytest + run: uv run pytest + + - name: Publish Unit Test Results + uses: EnricoMi/publish-unit-test-result-action@v2 + if: always() + with: + files: test-results.xml + + - name: Publish in Coveralls + uses: coverallsapp/github-action@v2 + if: always() + with: + flag-name: tests + format: lcov diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index f631014..8e0e354 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -1,5 +1,6 @@ default_language_version: - python: python3.13 + python: python3.13 + repos: - repo: https://github.com/pre-commit/pre-commit-hooks rev: v6.0.0 @@ -7,20 +8,18 @@ repos: - id: trailing-whitespace - id: end-of-file-fixer - id: check-ast + - repo: https://github.com/astral-sh/ruff-pre-commit - rev: v0.14.10 + rev: v0.14.13 hooks: # Run the linter. - id: ruff-check args: [ --fix ] # Run the formatter. - id: ruff-format + - repo: https://github.com/astral-sh/uv-pre-commit - rev: 0.9.22 + rev: 0.9.25 hooks: - # Run the pip compile - - id: pip-compile - name: pip-compile requirements.txt - files: pyproject.toml - args: [ pyproject.toml, --resolver=backtracking, --upgrade, -q, - -o, requirements.txt ] + # Ensure the lockfile is up-to-date with pyproject.toml + - id: uv-lock diff --git a/README.md b/README.md index 8889461..e6255a1 100755 --- a/README.md +++ b/README.md @@ -31,30 +31,24 @@ This library is part of the [Humanitarian Data Exchange](https://data.humdata.or (HDX) project. If you have humanitarian related data, please upload your datasets to HDX. -## Development +# Development -### Environment +## Environment -Development is currently done using Python 3.12. We recommend using a virtual -environment such as ``venv``: +Development is currently done using Python 3.13. The environment can be created with: ```shell - python -m venv venv - source venv/bin/activate + uv sync ``` -In your virtual environment, install all packages for development by running: - -```shell - pip install -r requirements.txt -``` +This creates a .venv folder with the versions specified in the project's uv.lock file. ### Pre-commit -Be sure to install `pre-commit`, which is run every time you make a git commit: +pre-commit will be installed when syncing uv. It is run every time you make a git +commit if you call it like this: ```shell - pip install pre-commit pre-commit install ``` @@ -67,20 +61,6 @@ To check if your changes pass pre-commit without committing, run: pre-commit run --all-files ``` -### Testing - -Ensure you have the required packages to run the tests: - -```shell - pip install -r requirements.txt -``` - -To run the tests and view coverage, execute: - -```shell - pytest -c --cov hdx -``` - ## Packages [uv](https://github.com/astral-sh/uv) is used for package management. If @@ -88,33 +68,40 @@ you’ve introduced a new package to the source code (i.e. anywhere in `src/`), please add it to the `project.dependencies` section of `pyproject.toml` with any known version constraints. -To add packages required only for testing, add them to the `test` section under -`[project.optional-dependencies]`. +To add packages required only for testing, add them to the +`[dependency-groups]`. Any changes to the dependencies will be automatically reflected in -`requirements.txt` with `pre-commit`, but you can re-generate the file without -committing by executing: +`uv.lock` with `pre-commit`, but you can re-generate the files without committing by +executing: ```shell - pre-commit run pip-compile --all-files + uv lock --upgrade ``` ## Project -[Hatch](https://hatch.pypa.io/) is used for project management. The project can be built using: +[uv](https://github.com/astral-sh/uv) is used for project management. The project can be +built using: ```shell - hatch build + uv build ``` Linting and syntax checking can be run with: ```shell - hatch fmt --check + uv run ruff check ``` -Tests can be executed using: +To run the tests and view coverage, execute: ```shell - hatch test + uv run pytest ``` + +## Documentation + +The documentation, including API documentation, is generated using ReadtheDocs and +MkDocs with Material. As you change the source code, remember to update the +documentation at `documentation/index.md`. diff --git a/hatch.toml b/hatch.toml deleted file mode 100644 index 5f56533..0000000 --- a/hatch.toml +++ /dev/null @@ -1,37 +0,0 @@ -# Build - -[build.targets.wheel] -packages = ["src/hdx"] - -[build.hooks.vcs] -version-file = "src/hdx/location/_version.py" - -[metadata] -allow-direct-references = true - -# Versioning - -[version] -source = "vcs" - -[version.raw-options] -local_scheme = "no-local-version" -version_scheme = "python-simplified-semver" - -# Tests - -[envs.hatch-test] -features = ["test"] - -[[envs.hatch-test.matrix]] -python = ["3.13"] - -[envs.hatch-test.scripts] -run = """ - pytest --rootdir=. --junitxml=test-results.xml --cov --no-cov-on-fail \ - --cov-report=lcov --cov-report=term-missing - """ - -[envs.hatch-static-analysis] -config-path = "none" -dependencies = ["ruff==0.14.10"] diff --git a/pyproject.toml b/pyproject.toml index a2c5c78..e924ead 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -18,11 +18,11 @@ classifiers = [ "Programming Language :: Python", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3 :: Only", - "Programming Language :: Python :: 3.8", - "Programming Language :: Python :: 3.9", "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", + "Programming Language :: Python :: 3.13", + "Programming Language :: Python :: 3.14", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Natural Language :: English", @@ -31,23 +31,109 @@ classifiers = [ "Operating System :: MacOS", "Operating System :: Microsoft :: Windows", ] +readme = "README.md" +dynamic = ["version"] requires-python = ">=3.10" dependencies = [ - "hdx-python-utilities>=4.0.1", - "libhxl>=5.2.2", + "hdx-python-utilities>=4.0.4", "tenacity", ] -dynamic = ["version"] -[project.readme] -file = "README.md" -content-type = "text/markdown" +[project.optional-dependencies] +docs = ["mkapi"] + +[dependency-groups] +dev = [ + "pytest", + "pytest-cov", + "pre-commit", + "ruff==0.14.13", +] [project.urls] Homepage = "https://github.com/OCHA-DAP/hdx-python-country" -[project.optional-dependencies] -test = ["pytest", "pytest-cov"] -dev = ["pre-commit"] -docs = ["mkapi"] +# ---------------------------------------------------------------------------- +# Hatchling (Build & Versioning) +# ---------------------------------------------------------------------------- + +[tool.hatch.version] +source = "vcs" + +[tool.hatch.version.raw-options] +local_scheme = "no-local-version" +version_scheme = "python-simplified-semver" + +[tool.hatch.build.hooks.vcs] +version-file = "src/hdx/location/_version.py" + +[tool.hatch.build.targets.wheel] +packages = ["src/hdx"] + +[tool.hatch.metadata] +allow-direct-references = true + +# ---------------------------------------------------------------------------- +# Ruff (Linting & Formatting) +# ---------------------------------------------------------------------------- + +[tool.ruff] +target-version = "py310" +src = ["src"] +exclude = ["_version.py"] + +[tool.ruff.lint] +# Defaults are E (pycodestyle) and F (pyflakes). We extend them: +extend-select = [ + "I", # isort + "UP", # pyupgrade +] +ignore = [ + "E501", # Line too long +] + +[tool.ruff.lint.isort] +known-local-folder = ["hdx.location"] +known-third-party = [ + "hdx.utilities", +] + +# ---------------------------------------------------------------------------- +# Pytest (Testing) +# ---------------------------------------------------------------------------- + +[tool.pytest.ini_options] +pythonpath = "src" +log_cli = true +addopts = """ + --color=yes + --rootdir=. + --junitxml=test-results.xml + --cov + --no-cov-on-fail + --cov-report=lcov + --cov-report=term-missing +""" + +# ---------------------------------------------------------------------------- +# Coverage (Reporting) +# ---------------------------------------------------------------------------- + +[tool.coverage.run] +source = ["src"] +omit = ["*/_version.py"] + +[tool.coverage.report] +exclude_also = [ + "from ._version", + "def __repr__", + "if self.debug:", + "if settings.DEBUG", + "raise AssertionError", + "raise NotImplementedError", + "if 0:", + "if __name__ == .__main__.:", + "if TYPE_CHECKING:", + "@(abc\\.)?abstractmethod", +] diff --git a/pytest.ini b/pytest.ini deleted file mode 100644 index 3009ece..0000000 --- a/pytest.ini +++ /dev/null @@ -1,4 +0,0 @@ -[pytest] -pythonpath = src -addopts = "--color=yes" -log_cli = 1 diff --git a/requirements.txt b/requirements.txt deleted file mode 100644 index a7347fe..0000000 --- a/requirements.txt +++ /dev/null @@ -1,160 +0,0 @@ -# This file was autogenerated by uv via the following command: -# uv pip compile pyproject.toml --resolver=backtracking -o requirements.txt -annotated-types==0.7.0 - # via pydantic -attrs==25.4.0 - # via - # frictionless - # jsonlines - # jsonschema - # referencing -certifi==2026.1.4 - # via requests -chardet==5.2.0 - # via frictionless -charset-normalizer==3.4.4 - # via requests -click==8.3.1 - # via typer -et-xmlfile==2.0.0 - # via openpyxl -frictionless==5.18.1 - # via hdx-python-utilities -hdx-python-utilities==4.0.4 - # via hdx-python-country (pyproject.toml) -humanize==4.15.0 - # via frictionless -idna==3.11 - # via requests -ijson==3.4.0.post0 - # via hdx-python-utilities -isodate==0.7.2 - # via frictionless -jinja2==3.1.6 - # via frictionless -jsonlines==4.0.0 - # via hdx-python-utilities -jsonpath-ng==1.7.0 - # via libhxl -jsonschema==4.26.0 - # via - # frictionless - # tableschema-to-template -jsonschema-specifications==2025.9.1 - # via jsonschema -libhxl==5.2.2 - # via hdx-python-country (pyproject.toml) -loguru==0.7.3 - # via hdx-python-utilities -markdown-it-py==4.0.0 - # via rich -marko==2.2.2 - # via frictionless -markupsafe==3.0.3 - # via jinja2 -mdurl==0.1.2 - # via markdown-it-py -openpyxl==3.1.5 - # via hdx-python-utilities -packaging==26.0 - # via wheel -petl==1.7.17 - # via frictionless -ply==3.11 - # via - # jsonpath-ng - # libhxl -pydantic==2.12.5 - # via frictionless -pydantic-core==2.41.5 - # via pydantic -pygments==2.19.2 - # via rich -pyphonetics==0.5.3 - # via hdx-python-utilities -python-dateutil==2.9.0.post0 - # via - # frictionless - # hdx-python-utilities - # libhxl -python-io-wrapper==0.3.1 - # via libhxl -python-slugify==8.0.4 - # via frictionless -pyyaml==6.0.3 - # via - # frictionless - # tableschema-to-template -ratelimit==2.2.1 - # via hdx-python-utilities -referencing==0.37.0 - # via - # jsonschema - # jsonschema-specifications -requests==2.32.5 - # via - # frictionless - # libhxl - # requests-file -requests-file==3.0.1 - # via hdx-python-utilities -rfc3986==2.0.0 - # via frictionless -rich==14.3.1 - # via typer -rpds-py==0.30.0 - # via - # jsonschema - # referencing -ruamel-yaml==0.19.1 - # via hdx-python-utilities -shellingham==1.5.4 - # via typer -simpleeval==1.0.3 - # via frictionless -six==1.17.0 - # via python-dateutil -structlog==25.5.0 - # via libhxl -tableschema-to-template==0.0.13 - # via hdx-python-utilities -tabulate==0.9.0 - # via frictionless -tenacity==9.1.2 - # via hdx-python-country (pyproject.toml) -text-unidecode==1.3 - # via python-slugify -typer==0.21.1 - # via frictionless -typing-extensions==4.15.0 - # via - # frictionless - # hdx-python-utilities - # pydantic - # pydantic-core - # typer - # typing-inspection -typing-inspection==0.4.2 - # via pydantic -unidecode==1.4.0 - # via - # libhxl - # pyphonetics -urllib3==2.6.3 - # via - # libhxl - # requests -validators==0.35.0 - # via frictionless -wheel==0.46.3 - # via libhxl -xlrd==2.0.2 - # via hdx-python-utilities -xlrd3==1.1.0 - # via libhxl -xlsx2csv==0.8.4 - # via hdx-python-utilities -xlsxwriter==3.2.9 - # via tableschema-to-template -xlwt==1.3.0 - # via hdx-python-utilities diff --git a/ruff.toml b/ruff.toml deleted file mode 100644 index c78ab46..0000000 --- a/ruff.toml +++ /dev/null @@ -1,10 +0,0 @@ -target-version = "py310" -src = ["src"] -exclude = ["_version.py"] - -[lint] -# List of rules: https://docs.astral.sh/ruff/rules/ -extend-select = [ - "I", # isort - "UP" # Upgrade Python -] diff --git a/src/hdx/location/Countries & Territories Taxonomy MVP - C&T Taxonomy with HXL Tags.csv b/src/hdx/location/Countries & Territories Taxonomy MVP - C&T Taxonomy.csv similarity index 98% rename from src/hdx/location/Countries & Territories Taxonomy MVP - C&T Taxonomy with HXL Tags.csv rename to src/hdx/location/Countries & Territories Taxonomy MVP - C&T Taxonomy.csv index 58c8789..0982cfc 100644 --- a/src/hdx/location/Countries & Territories Taxonomy MVP - C&T Taxonomy with HXL Tags.csv +++ b/src/hdx/location/Countries & Territories Taxonomy MVP - C&T Taxonomy.csv @@ -1,258 +1,257 @@ -ID,RW ID,m49 numerical code,HPC Tools API ID,Appears in UNTERM list,Appears in DGACM list,Independent,Deprecated,Has HRP,In GHO,ISO 3166-1 Alpha 2-Codes,ISO 3166-1 Alpha 3-Codes,x Alpha2 codes,x Alpha3 codes,Preferred Term,ISO Alt Term,DGACM Alt Term,HPC Tools Alt Term,RW Short Name,RW API Alt Term,English Short,French Short,Spanish Short,Russian Short,Chinese Short,Arabic Short,English Formal,M49 English,M49 French,M49 Spanish,M49 Russian,M49 Chinese,M49 Arabic,Admin Level,Latitude,Longitude,Region Code,Region Name,Sub-region Code,Sub-region Name,Intermediate Region Code,Intermediate Region Name,Regex,World Bank Income Level,Currency,Reference Period Start,Concatenation -#meta +id,#country +code +v_reliefweb,#country +code +num +v_m49,#country +code +v_hpctools,,,#meta+independent+bool,#meta+deprecated+bool,#indicator+hrp+bool,#indicator+gho+bool,#country +code +v_iso2,#country +code +v_iso3,#country +code +alpha2,#country +code +alpha3,#country +name +preferred,#country +name +alt +v_iso,#country +name +alt +v_dgacm,#country +name +alt +v_hpctools,#country +name +short +v_reliefweb,#country +name +alt +v_reliefweb,#country +name +i_en +alt +v_unterm,#country +name +i_fr +alt +v_unterm,#country +name +i_es +alt +v_unterm,#country +name +i_ru +alt +v_unterm,#country +name +i_zh +alt +v_unterm,#country +name +i_ar +alt +v_unterm,#country +name +i_en +formal +v_unterm,#country +name +i_en +alt +v_m49,#country +name +i_fr +alt +v_m49,#country +name +i_es +alt +v_m49,#country +name +i_ru +alt +v_m49,#country +name +i_zh +alt +v_m49,#country +name +i_ar +alt +v_m49,#geo +admin_level,#geo +lat,#geo +lon,#region +main +code,#region +main +name +preferred,#region +sub +code,#region +sub +name +preferred,#region +intermediate +code,#region +intermediate +name +preferred,#country +regex,#indicator+incomelevel,#currency +code,#date+start, -1,13,4,1,Y,Y,Y,N,Y,Y,AF,AFG,,,Afghanistan,,,,,,Afghanistan,Afghanistan,Afganistán,Афганистан,阿富汗,أفغانستان,the Islamic Republic of Afghanistan,Afghanistan,Afghanistan,Afganistán,Афганистан,阿富汗,أفغانستان,0,33.83147477,66.02621828,142,Asia,34,Southern Asia,,,afghan,Low,AFN,2004-01-26,1 - Afghanistan -2,14,248,2,,,N,N,,,AX,ALA,,,Åland Islands,,,,,Aland Islands (Finland),Åland Islands,,,,,,,Åland Islands,Îles d’Åland,Islas Åland,Аландских островов,奥兰群岛,جزر ألاند,0,60.18121338,19.89649072,150,Europe,154,Northern Europe,,,^[å|a]land,,EUR,2004-02-13,2 - Åland Islands -3,15,8,3,Y,Y,Y,N,,,AL,ALB,,,Albania,,,,,,Albania,Albanie,Albania,Албания,阿尔巴尼亚,ألبانيا,the Republic of Albania,Albania,Albanie,Albania,Албания,阿尔巴尼亚,ألبانيا,0,41.13180899,20.06882519,150,Europe,39,Southern Europe,,,albania,Upper middle,ALL,1974-01-01,3 - Albania -4,16,12,4,Y,Y,Y,N,,,DZ,DZA,,,Algeria,,,,,,Algeria,Algérie,Argelia,Алжир,阿尔及利亚,الجزائر,the People's Democratic Republic of Algeria,Algeria,Algérie,Argelia,Алжир,阿尔及利亚,الجزائر,0,28.16474462,2.63351219,2,Africa,15,Northern Africa,,,algeria,Lower middle,DZD,1974-01-01,4 - Algeria -5,17,16,5,,,N,N,,,AS,ASM,,,American Samoa,,,,,,American Samoa,,,,,,,American Samoa,Samoa américaines,Samoa Americana,Американское Самоа,美属萨摩亚,ساموا الأمريكية,0,-14.30440488,-170.70783,9,Oceania,61,Polynesia,,,^(?=.*americ).*samoa,High,USD,1974-01-01,5 - American Samoa -6,18,20,6,Y,Y,Y,N,,,AD,AND,,,Andorra,,,,,,Andorra,Andorre,Andorra,Андорра,安道尔,أندورا,the Principality of Andorra,Andorra,Andorre,Andorra,Андорра,安道尔,أندورا,0,42.55527067,1.578938861,150,Europe,39,Southern Europe,,,andorra,High,EUR,1994-01-26,6 - Andorra -7,19,24,7,Y,Y,Y,N,,Y,AO,AGO,,,Angola,,,,,,Angola,Angola,Angola,Ангола,安哥拉,أنغولا,the Republic of Angola,Angola,Angola,Angola,Ангола,安哥拉,أنغولا,0,-12.3755731,17.59867248,2,Africa,202,Sub-Saharan Africa,17,Middle Africa,angola,Lower middle,AOA,1993-07-02,7 - Angola -8,20,660,8,,,N,N,,,AI,AIA,,,Anguilla,,,Anguilla (United Kingdom),,,Anguilla,,,,,,,Anguilla,Anguilla,Anguila,Ангилья,安圭拉,أنغويلا,0,18.22301491,-63.06006462,19,Americas,419,Latin America and the Caribbean,29,Caribbean,anguill?a,,XCD,1985-01-01,8 - Anguilla -9,,10,9,,,N,N,,,AQ,ATA,,,Antarctica,,,,,,Antarctica,,,,,,,Antarctica,Antarctique,Antártida,Антарктике,南极洲,أنتاركتيكا,0,-80.45066299,21.43458373,,,,,,,antarctica,,,1983-01-01,9 - Antarctica -10,21,28,10,Y,Y,Y,N,,,AG,ATG,,,Antigua and Barbuda,,,,,,Antigua and Barbuda,Antigua-et-Barbuda,Antigua y Barbuda,Антигуа и Барбуда,安提瓜和巴布达,أنتيغوا وبربودا,Antigua and Barbuda,Antigua and Barbuda,Antigua-et-Barbuda,Antigua y Barbuda,Антигуа и Барбуда,安提瓜和巴布达,أنتيغوا وبربودا,0,17.07120733,-61.79815058,19,Americas,419,Latin America and the Caribbean,29,Caribbean,antigua,High,XCD,1974-01-01,10 - Antigua and Barbuda -11,22,32,11,Y,Y,Y,N,,Y,AR,ARG,,,Argentina,,,,,,Argentina,Argentine,Argentina,Аргентина,阿根廷,الأرجنتين,the Argentine Republic,Argentina,Argentine,Argentina,Аргентина,阿根廷,الأرجنتين,0,-34.98567234,-65.12225892,19,Americas,419,Latin America and the Caribbean,5,South America,argentin,Upper middle,ARS,1974-01-01,11 - Argentina -12,23,51,12,Y,Y,Y,N,,,AM,ARM,,,Armenia,,,,,,Armenia,Arménie,Armenia,Армения,亚美尼亚,أرمينيا,the Republic of Armenia,Armenia,Arménie,Armenia,Армения,亚美尼亚,أرمينيا,0,40.29202499,44.9429026,142,Asia,145,Western Asia,,,armenia,Upper middle,AMD,1992-06-15,12 - Armenia -13,24,533,13,,,N,N,,Y,AW,ABW,,,Aruba,,,,,Aruba (The Netherlands),Aruba,,,,,,,Aruba,Aruba,Aruba,Аруба,阿鲁巴,أروبا,0,12.5156546,-69.9757266,19,Americas,419,Latin America and the Caribbean,29,Caribbean,^(?!.*bonaire).*\baruba,High,AWG,1986-01-01,13 - Aruba -14,25,36,14,Y,Y,Y,N,,,AU,AUS,,,Australia,,,,,,Australia,Australie,Australia,Австралия,澳大利亚,أستراليا,Australia,Australia,Australie,Australia,Австралия,澳大利亚,أستراليا,0,-25.40546125,134.2181189,9,Oceania,53,Australia and New Zealand,,,australia,High,AUD,1974-01-01,14 - Australia -15,26,40,15,Y,Y,Y,N,,,AT,AUT,,,Austria,,,,,,Austria,Autriche,Austria,Австрия,奥地利,النمسا,the Republic of Austria,Austria,Autriche,Austria,Австрия,奥地利,النمسا,0,47.59086187,14.13920086,150,Europe,155,Western Europe,,,^(?!.*hungary).*austria|\baustri.*\bemp,High,EUR,1974-01-01,15 - Austria -16,27,31,16,Y,Y,Y,N,,,AZ,AZE,,,Azerbaijan,,,,,,Azerbaijan,Azerbaïdjan,Azerbaiyán,Азербайджан,阿塞拜疆,أذربيجان,the Republic of Azerbaijan,Azerbaijan,Azerbaïdjan,Azerbaiyán,Азербайджан,阿塞拜疆,أذربيجان,0,40.42670781,47.80669468,142,Asia,145,Western Asia,,,azerbaijan,Upper middle,AZN,1992-06-15,16 - Azerbaijan -17,29,44,17,Y,Y,Y,N,,,BS,BHS,,,Bahamas,Bahamas (the),,,,,Bahamas,Bahamas,Bahamas,Багамские Острова,巴哈马,جزر البهاما,the Commonwealth of the Bahamas,Bahamas,Bahamas,Bahamas,Багамские Острова,巴哈马,جزر البهاما,0,25.90317684,-78.61665744,19,Americas,419,Latin America and the Caribbean,29,Caribbean,bahamas,High,BSD,1974-01-01,17 - Bahamas -18,30,48,18,Y,Y,Y,N,,,BH,BHR,,,Bahrain,,,,,,Bahrain,Bahreïn,Bahrein,Бахрейн,巴林,البحرين,the Kingdom of Bahrain,Bahrain,Bahreïn,Bahrein,Бахрейн,巴林,البحرين,0,26.05396006,50.53486327,142,Asia,145,Western Asia,,,bahrain,High,BHD,1974-01-01,18 - Bahrain -19,31,50,19,Y,Y,Y,N,,Y,BD,BGD,,,Bangladesh,,,,,,Bangladesh,Bangladesh,Bangladesh,Бангладеш,孟加拉国,بنغلاديش,the People's Republic of Bangladesh,Bangladesh,Bangladesh,Bangladesh,Бангладеш,孟加拉国,بنغلاديش,0,23.88207427,90.24107264,142,Asia,34,Southern Asia,,,bangladesh|^(?=.*east).*paki?stan,Lower middle,BDT,1974-01-01,19 - Bangladesh -20,32,52,20,Y,Y,Y,N,,,BB,BRB,,,Barbados,,,,,,Barbados,Barbade,Barbados,Барбадос,巴巴多斯,بربادوس,Barbados,Barbados,Barbade,Barbados,Барбадос,巴巴多斯,بربادوس,0,13.184952,-59.55382245,19,Americas,419,Latin America and the Caribbean,29,Caribbean,barbados,High,BBD,1974-01-01,20 - Barbados -21,33,112,21,Y,Y,Y,N,,,BY,BLR,,,Belarus,,,,,,Belarus,Bélarus,Belarús,Беларусь,白俄罗斯,بيلاروس,the Republic of Belarus,Belarus,Bélarus,Belarús,Беларусь,白俄罗斯,بيلاروس,0,53.53965016,28.04932937,150,Europe,151,Eastern Europe,,,belarus|byelo,Upper middle,BYN,1992-06-15,21 - Belarus -22,34,56,22,Y,Y,Y,N,,,BE,BEL,,,Belgium,,,,,,Belgium,Belgique,Bélgica,Бельгия,比利时,بلجيكا,the Kingdom of Belgium,Belgium,Belgique,Bélgica,Бельгия,比利时,بلجيكا,0,50.64206011,4.658786236,150,Europe,155,Western Europe,,,^(?!.*luxem).*belgium,High,EUR,1974-01-01,22 - Belgium -23,35,84,23,Y,Y,Y,N,,,BZ,BLZ,,,Belize,,,,,,Belize,Belize,Belice,Белиз,伯利兹,بليز,Belize,Belize,Belize,Belice,Белиз,伯利兹,بليز,0,17.20829609,-88.69988922,19,Americas,419,Latin America and the Caribbean,13,Central America,belize|^(?=.*british).*honduras,Upper middle,BZD,1974-01-01,23 - Belize -24,36,204,24,Y,Y,Y,N,,,BJ,BEN,,,Benin,,,,,,Benin,Bénin,Benin,Бенин,贝宁,بنن,the Republic of Benin,Benin,Bénin,Benin,Бенин,贝宁,بنن,0,9.642665015,2.342864021,2,Africa,202,Sub-Saharan Africa,11,Western Africa,benin|dahome,Lower middle,XOF,1977-01-01,24 - Benin -25,37,60,25,,,N,N,,,BM,BMU,,,Bermuda,,,,,,Bermuda,,,,,,,Bermuda,Bermudes,Bermuda,Бермудские острова,百慕大,برمودا,0,32.31605051,-64.73984042,19,Americas,21,Northern America,,,bermuda,High,BMD,1974-01-01,25 - Bermuda -26,38,64,26,Y,Y,Y,N,,,BT,BTN,,,Bhutan,,,,,,Bhutan,Bhoutan,Bhután,Бутан,不丹,بوتان,the Kingdom of Bhutan,Bhutan,Bhoutan,Bhután,Бутан,不丹,بوتان,0,27.41443467,90.43085885,142,Asia,34,Southern Asia,,,bhutan,Lower middle,BTN,1974-01-01,26 - Bhutan -27,39,68,27,Y,Y,Y,N,,Y,BO,BOL,,,Bolivia (Plurinational State of),,,"Bolivia, Plurinational State of",Bolivia,,Bolivia (Plurinational State of),Bolivie (État plurinational de),Bolivia (Estado Plurinacional de),Боливия (Многонациональное Государство),多民族玻利维亚国,بوليفيا (دولة - المتعددة القوميات),the Plurinational State of Bolivia,Bolivia (Plurinational State of),Bolivie (État plurinational de),Bolivia (Estado Plurinacional de),Боливия (Многонациональное Государство),多民族玻利维亚国,بوليفيا (دولة - المتعددة القوميات),0,-16.71483757,-64.66829843,19,Americas,419,Latin America and the Caribbean,5,South America,bolivia,Lower middle,BOB,2009-05-08,27 - Bolivia (Plurinational State of) -28,40,70,28,Y,Y,Y,N,,,BA,BIH,,,Bosnia and Herzegovina,,,,,,Bosnia and Herzegovina,Bosnie-Herzégovine,Bosnia y Herzegovina,Босния и Герцеговина,波斯尼亚和黑塞哥维那,البوسنة والهرسك,Bosnia and Herzegovina,Bosnia and Herzegovina,Bosnie-Herzégovine,Bosnia y Herzegovina,Босния и Герцеговина,波斯尼亚和黑塞哥维那,البوسنة والهرسك,0,44.16506495,17.79105724,150,Europe,39,Southern Europe,,,herzegovina|bosnia,Upper middle,BAM,1993-01-01,28 - Bosnia and Herzegovina -29,14894,535,29,,,N,N,,,BQ,BES,,,"Bonaire, Sint Eustatius and Saba",,,"Bonaire, Saint Eustatius and Saba (The Netherlands)",,"Bonaire, Saint Eustatius and Saba (The Netherlands)","Bonaire, Sint Eustatius and Saba",,,,,,,"Bonaire, Sint Eustatius and Saba","Bonaire, Saint-Eustache et Saba","Bonaire, San Eustaquio y Saba","Бонайре, Синт-Эстатиус и Саба",博纳尔,圣俄斯塔休斯和萨巴,بونير وسانت يوستاشيوس وسابا,0,12.15882921,-68.24278483,19,Americas,419,Latin America and the Caribbean,29,Caribbean,^(?=.*bonaire).*eustatius|^(?=.*carib).*netherlands|\bbes.?islands,,USD,2011-06-12,"29 - Bonaire, Sint Eustatius and Saba" -30,41,72,30,Y,Y,Y,N,,,BW,BWA,,,Botswana,,,,,,Botswana,Botswana,Botswana,Ботсвана,博茨瓦纳,بوتسوانا,the Republic of Botswana,Botswana,Botswana,Botswana,Ботсвана,博茨瓦纳,بوتسوانا,0,-22.17991766,23.81673035,2,Africa,202,Sub-Saharan Africa,18,Southern Africa,botswana|bechuana,Upper middle,BWP,1974-01-01,30 - Botswana -31,,74,31,,,N,N,,,BV,BVT,,,Bouvet Island,,,,,,Bouvet Island,,,,,,,Bouvet Island,Île Bouvet,Isla Bouvet,Остров Буве,布维岛,جزيرة بوفيت,0,-54.42190835,3.412516924,19,Americas,419,Latin America and the Caribbean,5,South America,bouvet,,NOK,1974-01-01,31 - Bouvet Island -32,42,76,32,Y,Y,Y,N,,Y,BR,BRA,,,Brazil,,,,,,Brazil,Brésil,Brasil,Бразилия,巴西,البرازيل,the Federative Republic of Brazil,Brazil,Brésil,Brasil,Бразилия,巴西,البرازيل,0,-10.77518961,-53.09141767,19,Americas,419,Latin America and the Caribbean,5,South America,brazil,Upper middle,BRL,1974-01-01,32 - Brazil -33,,86,33,,,N,N,,,IO,IOT,,,British Indian Ocean Territory,British Indian Ocean Territory (the),,,,,British Indian Ocean Territory,,,,,,,British Indian Ocean Territory,Territoire britannique de l'océan Indien,Territorio Británico del Océano Índico,Британская территория в Индийском океане,英属印度洋领土,المحيط الهندي الإقليم البريطاني في,0,-7.334186151,72.43402037,2,Africa,202,Sub-Saharan Africa,14,Eastern Africa,british.?indian.?ocean,,USD,1974-01-01,33 - British Indian Ocean Territory -34,44,96,34,Y,Y,Y,N,,,BN,BRN,,,Brunei Darussalam,,,,,,Brunei Darussalam,Brunéi Darussalam,Brunei Darussalam,Бруней-Даруссалам,文莱达鲁萨兰国,بروني دار السلام,Brunei Darussalam,Brunei Darussalam,Brunéi Darussalam,Brunei Darussalam,Бруней-Даруссалам,文莱达鲁萨兰国,بروني دار السلام,0,4.439247073,114.4374636,142,Asia,35,South-eastern Asia,,,brunei,High,BND,1974-01-01,34 - Brunei Darussalam -35,45,100,35,Y,Y,Y,N,,Y,BG,BGR,,,Bulgaria,,,,,,Bulgaria,Bulgarie,Bulgaria,Болгария,保加利亚,بلغاريا,the Republic of Bulgaria,Bulgaria,Bulgarie,Bulgaria,Болгария,保加利亚,بلغاريا,0,42.76069057,25.23572028,150,Europe,151,Eastern Europe,,,bulgaria,Upper middle,BGL,1974-01-01,35 - Bulgaria -36,46,854,36,Y,Y,Y,N,Y,Y,BF,BFA,,,Burkina Faso,,,,,,Burkina Faso,Burkina Faso,Burkina Faso,Буркина-Фасо,布基纳法索,بوركينا فاسو,Burkina Faso,Burkina Faso,Burkina Faso,Burkina Faso,Буркина-Фасо,布基纳法索,بوركينا فاسو,0,12.27790144,-1.738649343,2,Africa,202,Sub-Saharan Africa,11,Western Africa,burkina|\bfaso|upper.?volta,Low,XOF,1984-01-01,36 - Burkina Faso -37,47,108,37,Y,Y,Y,N,,Y,BI,BDI,,,Burundi,,,,,,Burundi,Burundi,Burundi,Бурунди,布隆迪,بوروندي,the Republic of Burundi,Burundi,Burundi,Burundi,Бурунди,布隆迪,بوروندي,0,-3.356208708,29.89200134,2,Africa,202,Sub-Saharan Africa,14,Eastern Africa,burundi,Low,BIF,1974-01-01,37 - Burundi -38,48,116,38,Y,Y,Y,N,,,KH,KHM,,,Cambodia,,,,,,Cambodia,Cambodge,Camboya,Камбоджа,柬埔寨,كمبوديا,the Kingdom of Cambodia,Cambodia,Cambodge,Camboya,Камбоджа,柬埔寨,كمبوديا,0,12.71583138,104.9221723,142,Asia,35,South-eastern Asia,,,cambodia|kampuchea|khmer,Lower middle,KHR,1994-01-26,38 - Cambodia -39,49,120,39,Y,Y,Y,N,Y,Y,CM,CMR,,,Cameroon,,,,,,Cameroon,Cameroun,Camerún,Камерун,喀麦隆,الكاميرون,the Republic of Cameroon,Cameroon,Cameroun,Camerún,Камерун,喀麦隆,الكاميرون,0,5.68036831,12.74068837,2,Africa,202,Sub-Saharan Africa,17,Middle Africa,cameroon,Lower middle,XAF,1974-01-01,39 - Cameroon -40,50,124,40,Y,Y,Y,N,,,CA,CAN,,,Canada,,,,,,Canada,Canada,Canadá,Канада,加拿大,كندا,Canada,Canada,Canada,Canadá,Канада,加拿大,كندا,0,61.4126317,-98.23039804,19,Americas,21,Northern America,,,canada,High,CAD,1974-01-01,40 - Canada -41,52,132,41,Y,Y,Y,N,,,CV,CPV,,,Cabo Verde,,,Cape Verde,,,Cabo Verde,Cabo Verde,Cabo Verde,Кабо-Верде,佛得角,كابو فيردي,the Republic of Cabo Verde,Cabo Verde,Cabo Verde,Cabo Verde,Кабо-Верде,佛得角,كابو فيردي,0,17.52133998,-24.58506404,2,Africa,202,Sub-Saharan Africa,11,Western Africa,(cabo|cape) *verde,Lower middle,CVE,1974-01-01,41 - Cabo Verde -42,53,136,42,,,N,N,,,KY,CYM,,,Cayman Islands,Cayman Islands (the),,,,,Cayman Islands,,,,,,,Cayman Islands,Îles Caïmanes,Islas Caimán,Кайман острова,开曼群岛,جزر كايمان,0,19.31065556,-81.20426038,19,Americas,419,Latin America and the Caribbean,29,Caribbean,cayman,High,KYD,1974-01-01,42 - Cayman Islands -43,54,140,43,Y,Y,Y,N,Y,Y,CF,CAF,,,Central African Republic,Central African Republic (the),,,CAR,Central African Republic,Central African Republic,République centrafricaine,República Centroafricana,Центральноафриканская Республика,中非共和国,جمهورية أفريقيا الوسطى,the Central African Republic,Central African Republic,République centrafricaine,República Centroafricana,Центральноафриканская Республика,中非共和国,جمهورية أفريقيا الوسطى,0,6.570747926,20.48450088,2,Africa,202,Sub-Saharan Africa,17,Middle Africa,\bcentral.african.rep,Low,XAF,1974-01-01,43 - Central African Republic -44,55,148,44,Y,Y,Y,N,Y,Y,TD,TCD,,,Chad,,,,,,Chad,Tchad,Chad,Чад,乍得,تشاد,the Republic of Chad,Chad,Tchad,Chad,Чад,乍得,تشاد,0,15.35740495,18.66399556,2,Africa,202,Sub-Saharan Africa,17,Middle Africa,\bchad,Low,XAF,1974-01-01,44 - Chad -45,57,152,45,Y,Y,Y,N,,Y,CL,CHL,,,Chile,,,,,,Chile,Chili,Chile,Чили,智利,شيلي,the Republic of Chile,Chile,Chili,Chile,Чили,智利,شيلي,0,-37.68386885,-71.33321859,19,Americas,419,Latin America and the Caribbean,5,South America,\bchile,High,CLP,1974-01-01,45 - Chile -46,58,156,46,Y,Y,Y,N,,,CN,CHN,,,China,,,,,,China,Chine,China,Китай,中国,الصين,the People's Republic of China,China,Chine,China,Китай,中国,الصين,0,36.67464756,103.8680636,142,Asia,30,Eastern Asia,,,^(?!.*\bmac)(?!.*\bhong)(?!.*\btai)(?!.*\brep).*china|^(?=.*peo)(?=.*rep).*china,Upper middle,CNY,1974-01-01,46 - China -47,62,162,47,,,N,N,,,CX,CXR,,,Christmas Island,,,,,Christmas Island (Australia),Christmas Island,,,,,,,Christmas Island,Île Christmas,Isla Christmas,остров Рождества,圣诞岛,جزيرة عيد الميلاد,0,-10.44411458,105.7036972,9,Oceania,53,Australia and New Zealand,,,christmas,,AUD,1974-01-01,47 - Christmas Island -48,63,166,48,,,N,N,,,CC,CCK,,,Cocos (Keeling) Islands,Cocos (Keeling) Islands (the),,,,Cocos (Keeling) Islands (Australia),Cocos (Keeling) Islands,,,,,,,Cocos (Keeling) Islands,Îles des Cocos (Keeling),Islas Cocos (Keeling),Кокосовых (Килинг) островов,科科斯(基林)群岛,جزر كوكس (كيلينغ),0,-12.17127014,96.83690355,9,Oceania,53,Australia and New Zealand,,,\bcocos|keeling,,AUD,1974-01-01,48 - Cocos (Keeling) Islands -49,64,170,49,Y,Y,Y,N,Y,Y,CO,COL,,,Colombia,,,,,,Colombia,Colombie,Colombia,Колумбия,哥伦比亚,كولومبيا,the Republic of Colombia,Colombia,Colombie,Colombia,Колумбия,哥伦比亚,كولومبيا,0,3.897367041,-73.07080696,19,Americas,419,Latin America and the Caribbean,5,South America,colombia,Upper middle,COP,1974-01-01,49 - Colombia -50,65,174,50,Y,Y,Y,N,,,KM,COM,,,Comoros,Comoros (the),,,,,Comoros,Comores,Comoras,Коморские Острова,科摩罗,جزر القمر,the Union of the Comoros,Comoros,Comores,Comoras,Коморские Острова,科摩罗,جزر القمر,0,-11.42407818,42.8293551,2,Africa,202,Sub-Saharan Africa,14,Eastern Africa,comoro,Lower middle,KMF,2003-01-14,50 - Comoros -51,66,178,51,Y,Y,Y,N,,Y,CG,COG,,,Congo,Congo (the),,,,,Congo,Congo,Congo,Конго,刚果,الكونغو,the Republic of the Congo,Congo,Congo,Congo,Конго,刚果,الكونغو,0,-0.83949506,15.22629207,2,Africa,202,Sub-Saharan Africa,17,Middle Africa,^(?!.*\bd.m)(?!.*\bd[\.]?r)(?!.*kinshasa)(?!.*zaire)(?!.*belg)(?!.*l.opoldville)(?!.*free).*\bcongo,Lower middle,XAF,1974-01-01,51 - Congo -52,75,180,52,Y,Y,Y,N,Y,Y,CD,COD,,,Democratic Republic of the Congo,Congo (the Democratic Republic of the),,"Congo, The Democratic Republic of the",DR Congo,Democratic Republic of the Congo,Democratic Republic of the Congo,République démocratique du Congo,República Democrática del Congo,Демократическая Республика Конго,刚果民主共和国,جمهورية الكونغو الديمقراطية,the Democratic Republic of the Congo,Democratic Republic of the Congo,République démocratique du Congo,República Democrática del Congo,Демократическая Республика Конго,刚果民主共和国,جمهورية الكونغو الديمقراطية,0,-2.876807692,23.65623593,2,Africa,202,Sub-Saharan Africa,17,Middle Africa,\bd.m.*congo|congo.*\bd.m|congo.*\bd[\.]?r|\bd[\.]?r.*congo|belgian.?congo|congo.?free.?state|kinshasa|zaire|l.opoldville|drc|droc|rdc,Low,CDF,1997-07-14,52 - Democratic Republic of the Congo -53,67,184,53,Y,,Y,N,,,CK,COK,,,Cook Islands,Cook Islands (the),,,,,Cook Islands,Îles Cook,Islas Cook,Острова Кука,库克群岛,جزر كوك,the Cook Islands,Cook Islands,Îles Cook,Islas Cook,Острова Кука,库克群岛,جزر كوك,0,-20.14332999,-159.7599857,9,Oceania,61,Polynesia,,,\bcook,,NZD,1974-01-01,53 - Cook Islands -54,68,188,54,Y,Y,Y,N,,Y,CR,CRI,,,Costa Rica,,,,,,Costa Rica,Costa Rica,Costa Rica,Коста-Рика,哥斯达黎加,كوستاريكا,the Republic of Costa Rica,Costa Rica,Costa Rica,Costa Rica,Коста-Рика,哥斯达黎加,كوستاريكا,0,9.960735487,-84.18254176,19,Americas,419,Latin America and the Caribbean,13,Central America,costa.?rica,Upper middle,CRC,1974-01-01,54 - Costa Rica -55,69,384,55,Y,Y,Y,N,,,CI,CIV,,,Côte d'Ivoire,,,,,,Côte d'Ivoire,Côte d'Ivoire,Côte d’Ivoire,Кот-д’Ивуар,科特迪瓦,كوت ديفوار,the Republic of Côte d'Ivoire,Côte d’Ivoire,Côte d’Ivoire,Côte d’Ivoire,Кот-д'Ивуар,科特迪瓦,كوت ديفوار,0,7.630087005,-5.552402136,2,Africa,202,Sub-Saharan Africa,11,Western Africa,ivoire|ivory,Lower middle,XOF,1974-01-01,55 - Côte d'Ivoire -56,70,191,56,Y,Y,Y,N,,,HR,HRV,,,Croatia,,,,,,Croatia,Croatie,Croacia,Хорватия,克罗地亚,كرواتيا,the Republic of Croatia,Croatia,Croatie,Croacia,Хорватия,克罗地亚,كرواتيا,0,45.18877041,16.42353441,150,Europe,39,Southern Europe,,,croatia|hrvatska,High,HRK,1992-06-15,56 - Croatia -57,71,192,57,Y,Y,Y,N,,,CU,CUB,,,Cuba,,,,,,Cuba,Cuba,Cuba,Куба,古巴,كوبا,the Republic of Cuba,Cuba,Cuba,Cuba,Куба,古巴,كوبا,0,21.6053525,-78.90713844,19,Americas,419,Latin America and the Caribbean,29,Caribbean,\bcuba,Upper middle,CUP,1974-01-01,57 - Cuba -58,14893,531,58,,,N,N,,Y,CW,CUW,,,Curaçao,,,,,Curaçao (The Netherlands),Curaçao,,,,,,,Curaçao,Curaçao,Curazao,Кюрасао,库拉索,كوراساو,0,12.21019745,-69.04044898,19,Americas,419,Latin America and the Caribbean,29,Caribbean,^(?!.*bonaire).*\bcura(c|ç)ao,High,ANG,2010-12-15,58 - Curaçao -59,72,196,59,Y,Y,Y,N,,,CY,CYP,,,Cyprus,,,,,,Cyprus,Chypre,Chipre,Кипр,塞浦路斯,قبرص,the Republic of Cyprus,Cyprus,Chypre,Chipre,Кипр,塞浦路斯,قبرص,0,35.01941238,33.1666508,142,Asia,145,Western Asia,,,cyprus,High,EUR,1974-01-01,59 - Cyprus -60,73,203,60,Y,Y,Y,N,,Y,CZ,CZE,,,Czechia,,Czech Republic,Czech Republic,,,Czechia,Tchéquie,Chequia,Чехия,捷克,تشيكيا,the Czech Republic,Czechia,Tchéquie,Chequia,Чехия,捷克,تشيكيا,0,49.74240068,15.34943448,150,Europe,151,Eastern Europe,,,^(?=.*rep).*czech|czechia|bohemia,High,CZK,2016-08-29,60 - Czechia -61,76,208,61,Y,Y,Y,N,,,DK,DNK,,,Denmark,,,,,,Denmark,Danemark,Dinamarca,Дания,丹麦,الدانمرك,the Kingdom of Denmark,Denmark,Danemark,Dinamarca,Дания,丹麦,الدانمرك,0,56.06439188,9.942213684,150,Europe,154,Northern Europe,,,denmark,High,DKK,1974-01-01,61 - Denmark -62,77,262,62,Y,Y,Y,N,,Y,DJ,DJI,,,Djibouti,,,,,,Djibouti,Djibouti,Djibouti,Джибути,吉布提,جيبوتي,the Republic of Djibouti,Djibouti,Djibouti,Djibouti,Джибути,吉布提,جيبوتي,0,11.74658946,42.58022315,2,Africa,202,Sub-Saharan Africa,14,Eastern Africa,djibouti,Lower middle,DJF,1977-01-01,62 - Djibouti -63,78,212,63,Y,Y,Y,N,,,DM,DMA,,,Dominica,,,,,,Dominica,Dominique,Dominica,Доминика,多米尼克,دومينيكا,the Commonwealth of Dominica,Dominica,Dominique,Dominica,Доминика,多米尼克,دومينيكا,0,15.42468124,-61.36047599,19,Americas,419,Latin America and the Caribbean,29,Caribbean,dominican.rep,Upper middle,XCD,1974-01-01,63 - Dominica -64,79,214,64,Y,Y,Y,N,,Y,DO,DOM,,,Dominican Republic,Dominican Republic (the),,,Dominican Rep.,,Dominican Republic,République dominicaine,República Dominicana,Доминиканская Республика,多米尼加共和国,الجمهورية الدومينيكية,the Dominican Republic,Dominican Republic,République dominicaine,República Dominicana,Доминиканская Республика,多米尼加,الجمهورية الدومينيكية,0,18.89453409,-70.49429315,19,Americas,419,Latin America and the Caribbean,29,Caribbean,#REF!,Upper middle,DOP,1974-01-01,64 - Dominican Republic -65,81,218,65,Y,Y,Y,N,,Y,EC,ECU,,,Ecuador,,,,,,Ecuador,Équateur,Ecuador,Эквадор,厄瓜多尔,إكوادور,the Republic of Ecuador,Ecuador,Équateur,Ecuador,Эквадор,厄瓜多尔,إكوادور,0,-1.464036749,-78.05190165,19,Americas,419,Latin America and the Caribbean,5,South America,ecuador,Upper middle,USD,1974-01-01,65 - Ecuador -66,82,818,66,Y,Y,Y,N,,Y,EG,EGY,,,Egypt,,,,,,Egypt,Égypte,Egipto,Египет,埃及,مصر,the Arab Republic of Egypt,Egypt,Égypte,Egipto,Египет,埃及,مصر,0,26.55281781,29.78562814,2,Africa,15,Northern Africa,,,egypt,Lower middle,EGP,1974-01-01,66 - Egypt -67,83,222,67,Y,Y,Y,N,Y,Y,SV,SLV,,,El Salvador,,,,,,El Salvador,El Salvador,El Salvador,Сальвадор,萨尔瓦多,السلفادور,the Republic of El Salvador,El Salvador,El Salvador,El Salvador,Сальвадор,萨尔瓦多,السلفادور,0,13.72764125,-88.86315324,19,Americas,419,Latin America and the Caribbean,13,Central America,el.?salvador,Upper middle,USD,1974-01-01,67 - El Salvador -68,84,226,68,Y,Y,Y,N,,,GQ,GNQ,,,Equatorial Guinea,,,,,,Equatorial Guinea,Guinée équatoriale,Guinea Ecuatorial,Экваториальная Гвинея,赤道几内亚,غينيا الاستوائية,the Republic of Equatorial Guinea,Equatorial Guinea,Guinée équatoriale,Guinea Ecuatorial,Экваториальная Гвинея,赤道几内亚,غينيا الاستوائية,0,1.412936146,10.61572825,2,Africa,202,Sub-Saharan Africa,17,Middle Africa,guine.*eq|eq.*guine|^(?=.*span).*guinea,Upper middle,XAF,1974-01-01,68 - Equatorial Guinea -69,85,232,69,Y,Y,Y,N,,,ER,ERI,,,Eritrea,,,,,,Eritrea,Érythrée,Eritrea,Эритрея,厄立特里亚,إريتريا,the State of Eritrea,Eritrea,Érythrée,Eritrea,Эритрея,厄立特里亚,إريتريا,0,15.37695899,38.82792338,2,Africa,202,Sub-Saharan Africa,14,Eastern Africa,eritrea,Low,ERN,2012-08-02,69 - Eritrea -70,86,233,70,Y,Y,Y,N,,Y,EE,EST,,,Estonia,,,,,,Estonia,Estonie,Estonia,Эстония,爱沙尼亚,إستونيا,the Republic of Estonia,Estonia,Estonie,Estonia,Эстония,爱沙尼亚,إستونيا,0,58.70758667,26.168216,150,Europe,154,Northern Europe,,,estonia,High,EUR,1992-06-15,70 - Estonia -71,87,231,71,Y,Y,Y,N,Y,Y,ET,ETH,,,Ethiopia,,,,,,Ethiopia,Éthiopie,Etiopía,Эфиопия,埃塞俄比亚,إثيوبيا,the Federal Democratic Republic of Ethiopia,Ethiopia,Éthiopie,Etiopía,Эфиопия,埃塞俄比亚,إثيوبيا,0,8.633664665,39.61587345,2,Africa,202,Sub-Saharan Africa,14,Eastern Africa,ethiopia|abyssinia,Low,ETB,1993-07-16,71 - Ethiopia -72,88,238,72,,,N,N,,,FK,FLK,,,Falkland Islands (Malvinas),Falkland Islands (the) [Malvinas],,,,Falkland Islands (Malvinas),Falkland Islands,,,,,,,Falkland Islands (Malvinas),Îles Falkland (Malvinas),Islas Malvinas (Falkland),Фолклендские (Мальвинские) острова,福克兰群岛(马尔维纳斯),جزر فوكلاند (مالفيناس),0,-51.7638724,-55.8098409,19,Americas,419,Latin America and the Caribbean,5,South America,falkland|malvinas,,FKP,1974-01-01,72 - Falkland Islands (Malvinas) -73,89,234,73,,,N,N,,,FO,FRO,,,Faroe Islands,Faroe Islands (the),,,,Faroe Islands (Denmark),Faroe Islands,,,,,,,Faroe Islands,Îles Féroé,Islas Feroe,Фарерские острова,法罗群岛,جزر فايرو,0,61.64924758,-6.548553177,150,Europe,154,Northern Europe,,,faroe|faeroe,High,DKK,1974-01-01,73 - Faroe Islands -74,90,242,74,Y,Y,Y,N,,,FJ,FJI,,,Fiji,,,,,,Fiji,Fidji,Fiji,Фиджи,斐济,فيجي,the Republic of Fiji,Fiji,Fidji,Fiji,Фиджи,斐济,فيجي,0,-19.0190607,195.3435043,9,Oceania,54,Melanesia,,,fiji,Upper middle,FJD,2011-06-12,74 - Fiji -75,91,246,75,Y,Y,Y,N,,,FI,FIN,,,Finland,,,,,,Finland,Finlande,Finlandia,Финляндия,芬兰,فنلندا,the Republic of Finland,Finland,Finlande,Finlandia,Финляндия,芬兰,فنلندا,0,64.52173893,26.29452799,150,Europe,154,Northern Europe,,,finland,High,EUR,1974-01-01,75 - Finland -76,92,250,76,Y,Y,Y,N,,,FR,FRA,,,France,,,,,,France,France,Francia,Франция,法国,فرنسا,the French Republic,France,France,Francia,Франция,法国,فرنسا,0,46.6984015,2.350055968,150,Europe,155,Western Europe,,,^(?!.*\bdep)(?!.*martinique).*france|french.?republic|\bgaul,High,EUR,1974-01-01,76 - France -77,93,254,77,,,N,N,,,GF,GUF,,,French Guiana,,,,,French Guiana (France),French Guiana,,,,,,,French Guiana,Guyane française,Guayana Francesa,Французская Гвиана,法属圭亚那,غيانا الفرنسية,0,3.928100844,-53.24266781,19,Americas,419,Latin America and the Caribbean,5,South America,french.?gu(y|i)ana,,EUR,1974-01-01,77 - French Guiana -78,94,258,78,,,N,N,,,PF,PYF,,,French Polynesia,,,,,French Polynesia (France),French Polynesia,,,,,,,French Polynesia,Polynésie française,Polinesia Francesa,Французская Полинезия,法属波利尼西亚,بولينيزيا الفرنسية,0,-24.06211632,-156.7187297,9,Oceania,61,Polynesia,,,french.?polynesia|tahiti,High,XPF,1974-01-01,78 - French Polynesia -79,,260,79,,,N,N,,,TF,ATF,,,French Southern Territories,French Southern Territories (the),,,,,French Southern Territories,,,,,,,French Southern Territories,Terres australes françaises,Territorio de las Tierras Australes Francesas,Южные земли (французская заморская территория),法属南方领地,الأراضي الفرنسية الجنوبية الجنوبية,0,-49.32257975,69.49884805,2,Africa,202,Sub-Saharan Africa,14,Eastern Africa,french.?southern,,EUR,1979-01-01,79 - French Southern Territories -80,96,266,80,Y,Y,Y,N,,,GA,GAB,,,Gabon,,,,,,Gabon,Gabon,Gabón,Габон,加蓬,غابون,the Gabonese Republic,Gabon,Gabon,Gabón,Габон,加蓬,غابون,0,-0.595400581,11.79997877,2,Africa,202,Sub-Saharan Africa,17,Middle Africa,gabon,Upper middle,XAF,1974-01-01,80 - Gabon -81,98,270,81,Y,Y,Y,N,,,GM,GMB,,,Gambia,Gambia (the),,Gambia,,,Gambia,Gambie,Gambia,Гамбия,冈比亚,غامبيا,the Republic of the Gambia,Gambia,Gambie,Gambia,Гамбия,冈比亚,غامبيا,0,13.44470328,-15.44718402,2,Africa,202,Sub-Saharan Africa,11,Western Africa,gambia,Low,GMD,1974-01-01,81 - Gambia -82,100,268,82,Y,Y,Y,N,,,GE,GEO,,,Georgia,,,,,,Georgia,Géorgie,Georgia,Грузия,格鲁吉亚,جورجيا,Georgia,Georgia,Géorgie,Georgia,Грузия,格鲁吉亚,جورجيا,0,42.17290221,43.5117089,142,Asia,145,Western Asia,,,^(?!.*south).*georgia,Upper middle,GEL,1992-08-28,82 - Georgia -83,101,276,83,Y,Y,Y,N,,,DE,DEU,,,Germany,,,,,,Germany,Allemagne,Alemania,Германия,德国,ألمانيا,the Federal Republic of Germany,Germany,Allemagne,Alemania,Германия,德国,ألمانيا,0,51.08227882,10.37515859,150,Europe,155,Western Europe,,,^(?!.*east).*germany|^(?=.*\bfed.*\brep).*german,High,EUR,1990-10-30,83 - Germany -84,102,288,84,Y,Y,Y,N,,,GH,GHA,,,Ghana,,,,,,Ghana,Ghana,Ghana,Гана,加纳,غانا,the Republic of Ghana,Ghana,Ghana,Ghana,Гана,加纳,غانا,0,7.956118608,-1.209564758,2,Africa,202,Sub-Saharan Africa,11,Western Africa,ghana|gold.?coast,Lower middle,GHS,1974-01-01,84 - Ghana -85,103,292,85,,,N,N,,,GI,GIB,,,Gibraltar,,,,,,Gibraltar,,,,,,,Gibraltar,Gibraltar,Gibraltar,Гибралтар,直布罗陀,جبل طارق,0,36.13872267,-5.34508156,150,Europe,39,Southern Europe,,,gibraltar,High,GIP,1974-01-01,85 - Gibraltar -86,104,300,86,Y,Y,Y,N,,,GR,GRC,,,Greece,,,,,,Greece,Grèce,Grecia,Греция,希腊,اليونان,the Hellenic Republic,Greece,Grèce,Grecia,Греция,希腊,اليونان,0,39.99547189,22.15714659,150,Europe,39,Southern Europe,,,greece|hellenic|hellas,High,EUR,1974-01-01,86 - Greece -87,105,304,87,,,N,N,,,GL,GRL,,,Greenland,,,,,Greenland (Denmark),Greenland,,,,,,,Greenland,Groenland,Groenlandia,Гренландия,格陵兰,غرينلند,0,74.714673,-41.37858526,19,Americas,21,Northern America,,,greenland,High,DKK,1974-01-01,87 - Greenland -88,106,308,88,Y,Y,Y,N,,,GD,GRD,,,Grenada,,,,,,Grenada,Grenade,Granada,Гренада,格林纳达,غرينادا,Grenada,Grenada,Grenade,Granada,Гренада,格林纳达,غرينادا,0,12.11295969,-61.67937955,19,Americas,419,Latin America and the Caribbean,29,Caribbean,grenada,Upper middle,XCD,1974-01-01,88 - Grenada -89,107,312,89,,,N,N,,,GP,GLP,,,Guadeloupe,,,Guadeloupe (France),,Guadeloupe (France),Guadeloupe,,,,,,,Guadeloupe,Guadeloupe,Guadalupe,Гваделупа,瓜德罗普,غوادلوب,0,16.40393131,-61.75296289,19,Americas,419,Latin America and the Caribbean,29,Caribbean,guadeloupe,,EUR,1974-01-01,89 - Guadeloupe -90,108,316,90,,,N,N,,,GU,GUM,,,Guam,,,,,,Guam,,,,,,,Guam,Guam,Guam,Гуам,关岛,غوام,0,13.47185432,144.784677,9,Oceania,57,Micronesia,,,\bguam,High,USD,1974-01-01,90 - Guam -91,109,320,91,Y,Y,Y,N,Y,Y,GT,GTM,,,Guatemala,,,,,,Guatemala,Guatemala,Guatemala,Гватемала,危地马拉,غواتيمالا,the Republic of Guatemala,Guatemala,Guatemala,Guatemala,Гватемала,危地马拉,غواتيمالا,0,15.699081,-90.35850945,19,Americas,419,Latin America and the Caribbean,13,Central America,guatemala,Upper middle,GTQ,1974-01-01,91 - Guatemala -92,,831,92,,,N,N,,,GG,GGY,,,Guernsey,,,,,,Guernsey,,,,,,,Guernsey,Guernesey,Guernsey,Гернси,格恩西,غيرنسي,0,49.46819115,-2.59052163,150,Europe,154,Northern Europe,830,Channel Islands,guernsey,,GBP,2006-03-29,92 - Guernsey -93,110,324,93,Y,Y,Y,N,,,GN,GIN,,,Guinea,,,,,,Guinea,Guinée,Guinea,Гвинея,几内亚,غينيا,the Republic of Guinea,Guinea,Guinée,Guinea,Гвинея,几内亚,غينيا,0,10.43642262,-10.95068301,2,Africa,202,Sub-Saharan Africa,11,Western Africa,^(?!.*eq)(?!.*span)(?!.*bissau)(?!.*portu)(?!.*new).*guinea,Lower middle,GNF,1974-01-01,93 - Guinea -94,111,624,94,Y,Y,Y,N,,,GW,GNB,,,Guinea-Bissau,,,,,,Guinea-Bissau,Guinée-Bissau,Guinea-Bissau,Гвинея-Бисау,几内亚比绍,غينيا - بيساو,the Republic of Guinea-Bissau,Guinea-Bissau,Guinée-Bissau,Guinea-Bissau,Гвинея-Бисау,几内亚比绍,غينيا - بيساو,0,12.05479161,-14.94108332,2,Africa,202,Sub-Saharan Africa,11,Western Africa,bissau|^(?=.*portu).*guinea,Low,XOF,1974-01-01,94 - Guinea-Bissau -95,112,328,95,Y,Y,Y,N,,Y,GY,GUY,,,Guyana,,,,,,Guyana,Guyana,Guyana,Гайана,圭亚那,غيانا,the Co-operative Republic of Guyana,Guyana,Guyana,Guyana,Гайана,圭亚那,غيانا,0,4.800395012,-58.97699814,19,Americas,419,Latin America and the Caribbean,5,South America,^guyana|british.?gu(y|i)ana,High,GYD,2018-10-11,95 - Guyana -96,113,332,96,Y,Y,Y,N,Y,Y,HT,HTI,,,Haiti,,,,,,Haiti,Haïti,Haití,Гаити,海地,هايتي,the Republic of Haiti,Haiti,Haïti,Haití,Гаити,海地,هايتي,0,18.94164176,-72.65840205,19,Americas,419,Latin America and the Caribbean,29,Caribbean,haiti,Lower middle,HTG,1974-01-01,96 - Haiti -97,114,334,97,,,N,N,,,HM,HMD,,,Heard Island and McDonald Islands,,,,,Heard Island and McDonald Islands (Australia),Heard Island and McDonald Islands,,,,,,,Heard Island and McDonald Islands,Île Heard-et-Îles MacDonald,Islas Heard y McDonald,Остров Херд и острова Макдональд,赫德岛和麦克唐纳岛,جزيرة هيرد وجزر ماكدونالد,0,-53.0998917,73.52881216,9,Oceania,53,Australia and New Zealand,,,heard.*mcdonald,,AUD,1974-01-01,97 - Heard Island and McDonald Islands -98,115,336,98,Y,,Y,N,,,VA,VAT,,,Holy See,Holy See (the),,Holy See (Vatican City State),,,Holy See,Saint-Siège,Santa Sede,Святой Престол,罗马教廷,الكرسي الرسولي,the Holy See,Holy See,Saint-Siège,Santa Sede,Святой Престол,教廷,الكرسي الرسولي,0,41.90336493,12.45225447,150,Europe,39,Southern Europe,,,holy.?see|vatican|papal.?st,,EUR,1996-04-03,98 - Holy See -99,116,340,99,Y,Y,Y,N,Y,Y,HN,HND,,,Honduras,,,,,,Honduras,Honduras,Honduras,Гондурас,洪都拉斯,هندوراس,the Republic of Honduras,Honduras,Honduras,Honduras,Гондурас,洪都拉斯,هندوراس,0,14.80908243,-86.63495948,19,Americas,419,Latin America and the Caribbean,13,Central America,^(?!.*brit).*honduras,Lower middle,HNL,1974-01-01,99 - Honduras -100,59,344,100,,,N,N,,,HK,HKG,,,"China, Hong Kong Special Administrative Region",Hong Kong,,Hong Kong,,China - Hong Kong (Special Administrative Region),"China, Hong Kong Special Administrative Region",,,,,,,"China, Hong Kong Special Administrative Region","Chine, région administrative spéciale de Hong Kong","China, región administrativa especial de Hong Kong","Китай, Специальный административный район Гонконг",中国香港特别行政区,الصين، منطقة هونغ كونغ الإدارية الخاصة,0,22.4216098,114.1539976,142,Asia,30,Eastern Asia,,,hong.?kong,High,HKD,1974-01-01,"100 - China, Hong Kong Special Administrative Region" -101,117,348,101,Y,Y,Y,N,,Y,HU,HUN,,,Hungary,,,,,,Hungary,Hongrie,Hungría,Венгрия,匈牙利,هنغاريا,Hungary,Hungary,Hongrie,Hungría,Венгрия,匈牙利,هنغاريا,0,47.16567815,19.42172591,150,Europe,151,Eastern Europe,,,^(?!.*austr).*hungary,High,HUF,2012-02-15,101 - Hungary -102,118,352,102,Y,Y,Y,N,,,IS,ISL,,,Iceland,,,,,,Iceland,Islande,Islandia,Исландия,冰岛,آيسلندا,Iceland,Iceland,Islande,Islandia,Исландия,冰岛,آيسلندا,0,64.99668622,-18.61425416,150,Europe,154,Northern Europe,,,iceland,High,ISK,2022-10-20,102 - Iceland -103,119,356,103,Y,Y,Y,N,,,IN,IND,,,India,,,,,,India,Inde,India,Индия,印度,الهند,the Republic of India,India,Inde,India,Индия,印度,الهند,0,22.37137039,79.32792202,142,Asia,34,Southern Asia,,,^(?!\D*(?:bassas))\D*india(?!.*ocea)(?!na),Lower middle,INR,1975-01-01,103 - India -104,120,360,104,Y,Y,Y,N,,,ID,IDN,,,Indonesia,,,,,,Indonesia,Indonésie,Indonesia,Индонезия,印度尼西亚,إندونيسيا,the Republic of Indonesia,Indonesia,Indonésie,Indonesia,Индонезия,印度尼西亚,إندونيسيا,0,-2.21433486,117.2844335,142,Asia,35,South-eastern Asia,,,indonesia,Upper middle,IDR,1974-01-01,104 - Indonesia -105,121,364,105,Y,Y,Y,N,,Y,IR,IRN,,,Iran (Islamic Republic of),,,"Iran, Islamic Republic of",Iran,,Iran (Islamic Republic of),Iran (République islamique d'),Irán (República Islámica del),Иран (Исламская Республика),伊朗伊斯兰共和国,إيران (جمهورية - الإسلامية),the Islamic Republic of Iran,Iran (Islamic Republic of),Iran (République islamique d’),Irán (República Islámica del),Иран (Исламская Республика),伊朗伊斯兰共和国,إيران (جمهورية - الإسلامية),0,32.57533772,54.2973284,142,Asia,34,Southern Asia,,,\biran|persia,Lower middle,IRR,1974-01-01,105 - Iran (Islamic Republic of) -106,122,368,106,Y,Y,Y,N,,,IQ,IRQ,,,Iraq,,,,,,Iraq,Iraq,Iraq,Ирак,伊拉克,العراق,the Republic of Iraq,Iraq,Iraq,Iraq,Ирак,伊拉克,العراق,0,33.04497404,43.77207391,142,Asia,145,Western Asia,,,\biraq|mesopotamia,Upper middle,IQD,1974-01-01,106 - Iraq -107,123,372,107,Y,Y,Y,N,,,IE,IRL,,,Ireland,,,,,,Ireland,Irlande,Irlanda,Ирландия,爱尔兰,أيرلندا,Ireland,Ireland,Irlande,Irlanda,Ирландия,爱尔兰,آيرلندا,0,53.16969376,-8.154213185,150,Europe,154,Northern Europe,,,^(?!.*north).*\bireland,High,EUR,1974-01-01,107 - Ireland -108,124,833,108,,,N,N,,,IM,IMN,,,Isle of Man,,,,,Isle of Man (The United Kingdom of Great Britain and Northern Ireland),Isle of Man,,,,,,,Isle of Man,Île de Man,Isla de Man,Остров Мэн,马恩岛,جزيرة مان,0,54.23948288,-4.51817639,150,Europe,154,Northern Europe,,,^(?=.*isle).*\bman,High,GBP,2006-03-29,108 - Isle of Man -109,125,376,109,Y,Y,Y,N,,,IL,ISR,,,Israel,,,,,,Israel,Israël,Israel,Израиль,以色列,إسرائيل,the State of Israel,Israel,Israël,Israel,Израиль,以色列,إسرائيل,0,31.33857325,34.96023155,142,Asia,145,Western Asia,,,israel,High,ILS,1974-01-01,109 - Israel -110,126,380,110,Y,Y,Y,N,,,IT,ITA,,,Italy,,,,,,Italy,Italie,Italia,Италия,意大利,إيطاليا,the Republic of Italy,Italy,Italie,Italia,Италия,意大利,إيطاليا,0,43.76610159,11.68396919,150,Europe,39,Southern Europe,,,italy|italian.?republic,High,EUR,1974-01-01,110 - Italy -111,127,388,111,Y,Y,Y,N,,,JM,JAM,,,Jamaica,,,,,,Jamaica,Jamaïque,Jamaica,Ямайка,牙买加,جامايكا,Jamaica,Jamaica,Jamaïque,Jamaica,Ямайка,牙买加,جامايكا,0,18.15206196,-77.31137184,19,Americas,419,Latin America and the Caribbean,29,Caribbean,jamaica,Upper middle,JMD,1974-01-01,111 - Jamaica -112,128,392,112,Y,Y,Y,N,,,JP,JPN,,,Japan,,,,,,Japan,Japon,Japón,Япония,日本,اليابان,Japan,Japan,Japon,Japón,Япония,日本,اليابان,0,37.63209801,138.0812256,142,Asia,30,Eastern Asia,,,japan,High,JPY,1974-01-01,112 - Japan -113,,832,113,,,N,N,,,JE,JEY,,,Jersey,,,,,,Jersey,,,,,,,Jersey,Jersey,Jersey,Джерси,泽西,جيرسي,0,49.21921539,-2.12999674,150,Europe,154,Northern Europe,830,Channel Islands,jersey,,GBP,2006-03-29,113 - Jersey -114,129,400,114,Y,Y,Y,N,,Y,JO,JOR,,,Jordan,,,,,,Jordan,Jordanie,Jordania,Иордания,约旦,الأردن,the Hashemite Kingdom of Jordan,Jordan,Jordanie,Jordania,Иордания,约旦,الأردن,0,31.25223934,36.78497101,142,Asia,145,Western Asia,,,jordan,Lower middle,JOD,1974-01-01,114 - Jordan -115,130,398,115,Y,Y,Y,N,,,KZ,KAZ,,,Kazakhstan,,,,,,Kazakhstan,Kazakhstan,Kazajstán,Казахстан,哈萨克斯坦,كازاخستان,the Republic of Kazakhstan,Kazakhstan,Kazakhstan,Kazajstán,Казахстан,哈萨克斯坦,كازاخستان,0,48.16011678,67.30440515,142,Asia,143,Central Asia,,,kazak,Upper middle,KZT,2002-05-20,115 - Kazakhstan -116,131,404,116,Y,Y,Y,N,,Y,KE,KEN,,,Kenya,,,,,,Kenya,Kenya,Kenya,Кения,肯尼亚,كينيا,the Republic of Kenya,Kenya,Kenya,Kenya,Кения,肯尼亚,كينيا,0,0.529620946,37.85784174,2,Africa,202,Sub-Saharan Africa,14,Eastern Africa,kenya|british.?east.?africa|east.?africa.?prot,Lower middle,KES,1974-01-01,116 - Kenya -117,132,296,117,Y,Y,Y,N,,,KI,KIR,,,Kiribati,,,,,,Kiribati,Kiribati,Kiribati,Кирибати,基里巴斯,كيريباس,the Republic of Kiribati,Kiribati,Kiribati,Kiribati,Кирибати,基里巴斯,كيريباس,0,1.844810739,-160.2677952,9,Oceania,57,Micronesia,,,kiribati,Lower middle,AUD,1984-01-01,117 - Kiribati -118,74,408,118,Y,Y,Y,N,,,KP,PRK,,,Democratic People's Republic of Korea,Korea (the Democratic People's Republic of),,"Korea, Democratic People's Republic of",DPRK,,Democratic People's Republic of Korea,République populaire démocratique de Corée,República Popular Democrática de Corea,Корейская Народно-Демократическая Республика,朝鲜民主主义人民共和国,جمهورية كوريا الشعبية الديمقراطية,the Democratic People's Republic of Korea,Democratic People's Republic of Korea,République populaire démocratique de Corée,República Popular Democrática de Corea,Корейская Народно-Демократическая Республика,朝鲜民主主义人民共和国,جمهورية كوريا الشعبية الديمقراطية,0,40.14251168,127.1828259,142,Asia,30,Eastern Asia,,,korea.*people|dprk|d.p.r.k|korea.+(d.p.r|dpr|north|dem.*rep.*)|(d.p.r|dpr|north|dem.*rep.*).+korea,Low,KPW,1974-01-01,118 - Democratic People's Republic of Korea -119,194,410,119,Y,Y,Y,N,,,KR,KOR,,,Republic of Korea,Korea (the Republic of),,"Korea, Republic of",,,Republic of Korea,République de Corée,República de Corea,Республика Корея,大韩民国,جمهورية كوريا,the Republic of Korea,Republic of Korea,République de Corée,República de Corea,Республика Корея,大韩民国,جمهورية كوريا,0,36.52377792,127.8821461,142,Asia,30,Eastern Asia,,,^(?!.*d.*p.*r)(?!.*democrat)(?!.*dem.*rep)(?!.*people)(?!.*north).*\bkorea(?!.*d.*p.*r)(?!.*dem.*rep),High,KRW,1974-01-01,119 - Republic of Korea -120,133,414,120,Y,Y,Y,N,,,KW,KWT,,,Kuwait,,,,,,Kuwait,Koweït,Kuwait,Кувейт,科威特,الكويت,the State of Kuwait,Kuwait,Koweït,Kuwait,Кувейт,科威特,الكويت,0,29.29832118,47.53304536,142,Asia,145,Western Asia,,,kuwait,High,KWD,1974-01-01,120 - Kuwait -121,134,417,121,Y,Y,Y,N,,,KG,KGZ,,,Kyrgyzstan,,,,,,Kyrgyzstan,Kirghizistan,Kirguistán,Кыргызстан,吉尔吉斯斯坦,قيرغيزستان,the Kyrgyz Republic,Kyrgyzstan,Kirghizistan,Kirguistán,Кыргызстан,吉尔吉斯斯坦,قيرغيزستان,0,41.46387775,74.55247592,142,Asia,143,Central Asia,,,kyrgyz|kirghiz,Lower middle,KGS,1993-07-25,121 - Kyrgyzstan -122,135,418,122,Y,Y,Y,N,,,LA,LAO,,,Lao People's Democratic Republic,Lao People's Democratic Republic (the),,,Lao PDR,,Lao People's Democratic Republic,République démocratique populaire lao,República Democrática Popular Lao,Лаосская Народно-Демократическая Республика,老挝人民民主共和国,جمهورية لاو الديمقراطية الشعبية,the Lao People's Democratic Republic,Lao People's Democratic Republic,République démocratique populaire lao,República Democrática Popular Lao,Лаосская Народно-Демократическая Республика,老挝人民民主共和国,جمهورية لاو الديمقراطية الشعبية,0,18.50518622,103.7662533,142,Asia,35,South-eastern Asia,,,\blaos?\b,Lower middle,LAK,1974-01-01,122 - Lao People's Democratic Republic -123,136,428,123,Y,Y,Y,N,,Y,LV,LVA,,,Latvia,,,,,,Latvia,Lettonie,Letonia,Латвия,拉脱维亚,لاتفيا,the Republic of Latvia,Latvia,Lettonie,Letonia,Латвия,拉脱维亚,لاتفيا,0,56.85765774,24.92335393,150,Europe,154,Northern Europe,,,latvia,High,EUR,1992-06-15,123 - Latvia -124,137,422,124,Y,Y,Y,N,,Y,LB,LBN,,,Lebanon,,,,,,Lebanon,Liban,Líbano,Ливан,黎巴嫩,لبنان,the Lebanese Republic,Lebanon,Liban,Líbano,Ливан,黎巴嫩,لبنان,0,33.91995955,35.88513386,142,Asia,145,Western Asia,,,lebanon,Lower middle,LBP,1974-01-01,124 - Lebanon -125,138,426,125,Y,Y,Y,N,,,LS,LSO,,,Lesotho,,,,,,Lesotho,Lesotho,Lesotho,Лесото,莱索托,ليسوتو,the Kingdom of Lesotho,Lesotho,Lesotho,Lesotho,Лесото,莱索托,ليسوتو,0,-29.58448841,28.24105147,2,Africa,202,Sub-Saharan Africa,18,Southern Africa,lesotho|basuto,Lower middle,LSL,1974-01-01,125 - Lesotho -126,139,430,126,Y,Y,Y,N,,,LR,LBR,,,Liberia,,,,,,Liberia,Libéria,Liberia,Либерия,利比里亚,ليبريا,the Republic of Liberia,Liberia,Libéria,Liberia,Либерия,利比里亚,ليبريا,0,6.445498409,-9.307443775,2,Africa,202,Sub-Saharan Africa,11,Western Africa,liberia,Low,LRD,1974-01-01,126 - Liberia -127,140,434,127,Y,Y,Y,N,,Y,LY,LBY,,,Libya,,,,,,Libya,Libye,Libia,Ливия,利比亚,ليبيا,the State of Libya,Libya,Libye,Libia,Ливия,利比亚,ليبيا,0,27.04420762,18.02212777,2,Africa,15,Northern Africa,,,libya,Upper middle,LYD,2018-01-03,127 - Libya -128,141,438,128,Y,Y,Y,N,,,LI,LIE,,,Liechtenstein,,,,,,Liechtenstein,Liechtenstein,Liechtenstein,Лихтенштейн,列支敦士登,ليختنشتاين,the Principality of Liechtenstein,Liechtenstein,Liechtenstein,Liechtenstein,Лихтенштейн,列支敦士登,ليختنشتاين,0,47.16457362,9.558885464,150,Europe,155,Western Europe,,,liechtenstein,High,CHF,1974-01-01,128 - Liechtenstein -129,142,440,129,Y,Y,Y,N,,Y,LT,LTU,,,Lithuania,,,,,,Lithuania,Lituanie,Lituania,Литва,立陶宛,ليتوانيا,the Republic of Lithuania,Lithuania,Lituanie,Lituania,Литва,立陶宛,ليتوانيا,0,55.3344892,23.90739502,150,Europe,154,Northern Europe,,,lithuania,High,EUR,1992-06-15,129 - Lithuania -130,143,442,130,Y,Y,Y,N,,,LU,LUX,,,Luxembourg,,,,,,Luxembourg,Luxembourg,Luxemburgo,Люксембург,卢森堡,لكسمبرغ,the Grand Duchy of Luxembourg,Luxembourg,Luxembourg,Luxemburgo,Люксембург,卢森堡,لكسمبرغ,0,49.77027091,6.08637699,150,Europe,155,Western Europe,,,^(?!.*belg).*luxem,High,EUR,1974-01-01,130 - Luxembourg -131,60,446,131,,,N,N,,,MO,MAC,,,"China, Macao Special Administrative Region",Macao,,Macao,,China - Macau (Special Administrative Region),Macao,,,,,,,"China, Macao Special Administrative Region","Chine, région administrative spéciale de Macao","China, región administrativa especial de Macao","Китай, Специальный административный район Макао",中国澳门特别行政区,الصين، منطقة ماكاو الإدارية الخاصة,0,22.1985265,113.5450075,142,Asia,30,Eastern Asia,,,maca(o|u),High,MOP,1974-01-01,"131 - China, Macao Special Administrative Region" -132,229,807,132,Y,Y,Y,N,,,MK,MKD,,,North Macedonia,,,"North Macedonia, Republic of",,the Republic of North Macedonia,North Macedonia,Macédoine du Nord,Macedonia del Norte,Северная Македония,北马其顿,مقدونيا الشمالية,the Republic of North Macedonia,North Macedonia,Macédoine du Nord,Macedonia del Norte,Северная Македония,北马其顿,مقدونيا الشمالية,0,41.59654823,21.69480535,150,Europe,39,Southern Europe,,,macedonia|^f\.?y\.?r\.?o\.?m\.?$,Upper middle,MKD,2019-02-14,132 - North Macedonia -133,144,450,133,Y,Y,Y,N,,,MG,MDG,,,Madagascar,,,,,,Madagascar,Madagascar,Madagascar,Мадагаскар,马达加斯加,مدغشقر,the Republic of Madagascar,Madagascar,Madagascar,Madagascar,Мадагаскар,马达加斯加,مدغشقر,0,-19.37969027,46.70406219,2,Africa,202,Sub-Saharan Africa,14,Eastern Africa,madagascar|malagasy,Low,MGA,1993-07-12,133 - Madagascar -134,146,454,134,Y,Y,Y,N,,Y,MW,MWI,,,Malawi,,,,,,Malawi,Malawi,Malawi,Малави,马拉维,ملاوي,the Republic of Malawi,Malawi,Malawi,Malawi,Малави,马拉维,ملاوي,0,-13.21991287,34.31171876,2,Africa,202,Sub-Saharan Africa,14,Eastern Africa,malawi|nyasa,Low,MWK,1974-01-01,134 - Malawi -135,147,458,135,Y,Y,Y,N,,,MY,MYS,,,Malaysia,,,,,,Malaysia,Malaisie,Malasia,Малайзия,马来西亚,ماليزيا,Malaysia,Malaysia,Malaisie,Malasia,Малайзия,马来西亚,ماليزيا,0,2.745185714,140.4915783,142,Asia,35,South-eastern Asia,,,malaysia,Upper middle,MYR,1974-01-01,135 - Malaysia -136,148,462,136,Y,Y,Y,N,,,MV,MDV,,,Maldives,,,,,,Maldives,Maldives,Maldivas,Мальдивские Острова,马尔代夫,ملديف,the Republic of Maldives,Maldives,Maldives,Maldivas,Мальдивские Острова,马尔代夫,ملديف,0,5.068606213,73.32614511,142,Asia,34,Southern Asia,,,maldive,Upper middle,MVR,1974-01-01,136 - Maldives -137,149,466,137,Y,Y,Y,N,Y,Y,ML,MLI,,,Mali,,,,,,Mali,Mali,Malí,Мали,马里,مالي,the Republic of Mali,Mali,Mali,Malí,Мали,马里,مالي,0,17.34640627,-3.525051581,2,Africa,202,Sub-Saharan Africa,11,Western Africa,\bmali\b,Low,XOF,1974-01-01,137 - Mali -138,150,470,138,Y,Y,Y,N,,,MT,MLT,,,Malta,,,,,,Malta,Malte,Malta,Мальта,马耳他,مالطة,the Republic of Malta,Malta,Malte,Malta,Мальта,马耳他,مالطة,0,35.90417953,14.42365795,150,Europe,39,Southern Europe,,,\bmalta,High,EUR,1974-01-01,138 - Malta -139,151,584,139,Y,Y,Y,N,,,MH,MHL,,,Marshall Islands,Marshall Islands (the),,,,,Marshall Islands,Îles Marshall,Islas Marshall,Маршалловы Острова,马绍尔群岛,جزر مارشال,the Republic of the Marshall Islands,Marshall Islands,Îles Marshall,Islas Marshall,Маршалловы Острова,马绍尔群岛,جزر مارشال,0,9.499091883,169.0954645,9,Oceania,57,Micronesia,,,marshall,Upper middle,USD,1986-01-01,139 - Marshall Islands -140,152,474,140,,,N,N,,,MQ,MTQ,,,Martinique,,,Martinique (France),,Martinique (France),Martinique,,,,,,,Martinique,Martinique,Martinica,Мартиника,马提尼克,مارتينيك,0,14.65403719,-61.02842534,19,Americas,419,Latin America and the Caribbean,29,Caribbean,martinique,,EUR,1974-01-01,140 - Martinique -141,153,478,141,Y,Y,Y,N,,,MR,MRT,,,Mauritania,,,,,,Mauritania,Mauritanie,Mauritania,Мавритания,毛里塔尼亚,موريتانيا,the Islamic Republic of Mauritania,Mauritania,Mauritanie,Mauritania,Мавритания,毛里塔尼亚,موريتانيا,0,20.25780429,-10.33010275,2,Africa,202,Sub-Saharan Africa,11,Western Africa,mauritania,Lower middle,MRU,1974-01-01,141 - Mauritania -142,154,480,142,Y,Y,Y,N,,,MU,MUS,,,Mauritius,,,,,,Mauritius,Maurice,Mauricio,Маврикий,毛里求斯,موريشيوس,the Republic of Mauritius,Mauritius,Maurice,Mauricio,Маврикий,毛里求斯,موريشيوس,0,-20.27530781,57.56676664,2,Africa,202,Sub-Saharan Africa,14,Eastern Africa,mauritius,Upper middle,MUR,1974-01-01,142 - Mauritius -143,155,175,143,,,N,N,,,YT,MYT,,,Mayotte,,,,,Mayotte (France),Mayotte,,,,,,,Mayotte,Mayotte,Mayotte,Остров Майотта,马约特,مايوت,0,-12.81970382,45.13516865,2,Africa,202,Sub-Saharan Africa,14,Eastern Africa,\bmayotte,,EUR,1993-07-12,143 - Mayotte -144,156,484,144,Y,Y,Y,N,,Y,MX,MEX,,,Mexico,,,,,,Mexico,Mexique,México,Мексика,墨西哥,المكسيك,the United Mexican States,Mexico,Mexique,México,Мексика,墨西哥,المكسيك,0,23.93832004,-102.5023164,19,Americas,419,Latin America and the Caribbean,13,Central America,\bmexic,Upper middle,MXN,1974-01-01,144 - Mexico -145,157,583,145,Y,Y,Y,N,,,FM,FSM,,,Micronesia (Federated States of),,,"Micronesia, Federated States of",Micronesia,,Micronesia (Federated States of),Micronésie (États fédérés de),Micronesia (Estados Federados de),Микронезия (Федеративные Штаты),密克罗尼西亚联邦,ميكرونيزيا (ولايات - الموحدة),the Federated States of Micronesia,Micronesia (Federated States of),Micronésie (États fédérés de),Micronesia (Estados Federados de),Микронезия (Федеративные Штаты),密克罗尼西亚联邦,ميكرونيزيا (ولايات - الموحدة),0,6.879864281,158.2381178,9,Oceania,57,Micronesia,,,fed.*micronesia|micronesia.*fed,Lower middle,USD,1992-04-19,145 - Micronesia (Federated States of) -146,158,498,146,Y,Y,Y,N,,Y,MD,MDA,,,Republic of Moldova,Moldova (the Republic of),,"Moldova, Republic of",,Moldova,Republic of Moldova,République de Moldova,República de Moldova,Республика Молдова,摩尔多瓦共和国,جمهورية مولدوفا,the Republic of Moldova,Republic of Moldova,République de Moldova,República de Moldova,Республика Молдова,摩尔多瓦共和国,جمهورية مولدوفا,0,47.19293174,28.47499987,150,Europe,151,Eastern Europe,,,moldov|b(a|e)ssarabia,Upper middle,MDL,2009-01-07,146 - Republic of Moldova -147,159,492,147,Y,Y,Y,N,,,MC,MCO,,,Monaco,,,,,,Monaco,Monaco,Mónaco,Монако,摩纳哥,موناكو,the Principality of Monaco,Monaco,Monaco,Mónaco,Монако,摩纳哥,موناكو,0,43.74830756,7.410882167,150,Europe,155,Western Europe,,,monaco,High,EUR,1974-01-01,147 - Monaco -148,160,496,148,Y,Y,Y,N,,,MN,MNG,,,Mongolia,,,,,,Mongolia,Mongolie,Mongolia,Монголия,蒙古,منغوليا,Mongolia,Mongolia,Mongolie,Mongolia,Монголия,蒙古,منغوليا,0,46.83576732,103.0813238,142,Asia,30,Eastern Asia,,,mongolia,Lower middle,MNT,1974-01-01,148 - Mongolia -149,161,499,149,Y,Y,Y,N,,,ME,MNE,,,Montenegro,,,,,,Montenegro,Monténégro,Montenegro,Черногория,黑山,الجبل الأسود,Montenegro,Montenegro,Monténégro,Montenegro,Черногория,黑山,الجبل الأسود,0,42.78905871,19.26989732,150,Europe,39,Southern Europe,,,^(?!.*serbia).*montenegro,Upper middle,EUR,2006-09-26,149 - Montenegro -150,162,500,150,,,N,N,,,MS,MSR,,,Montserrat,,,,,,Montserrat,,,,,,,Montserrat,Montserrat,Montserrat,Монтсеррат,蒙特塞拉特,مونتسيرات,0,16.73536624,-62.18693595,19,Americas,419,Latin America and the Caribbean,29,Caribbean,montserrat,,XCD,1974-01-01,150 - Montserrat -151,163,504,151,Y,Y,Y,N,,,MA,MAR,,,Morocco,,,,,,Morocco,Maroc,Marruecos,Марокко,摩洛哥,المغرب,the Kingdom of Morocco,Morocco,Maroc,Marruecos,Марокко,摩洛哥,المغرب,0,31.8836769,-6.317283613,2,Africa,15,Northern Africa,,,morocco|\bmaroc,Lower middle,MAD,1974-01-01,151 - Morocco -152,164,508,152,Y,Y,Y,N,Y,Y,MZ,MOZ,,,Mozambique,,,,,,Mozambique,Mozambique,Mozambique,Мозамбик,莫桑比克,موزامبيق,the Republic of Mozambique,Mozambique,Mozambique,Mozambique,Мозамбик,莫桑比克,موزامبيق,0,-17.2617763,35.55202528,2,Africa,202,Sub-Saharan Africa,14,Eastern Africa,mozambique,Low,MZM,1974-01-01,152 - Mozambique -153,165,104,153,Y,Y,Y,N,Y,Y,MM,MMR,,,Myanmar,,,,,,Myanmar,Myanmar,Myanmar,Мьянма,缅甸,ميانمار,the Republic of the Union of Myanmar,Myanmar,Myanmar,Myanmar,Мьянма,缅甸,ميانمار,0,21.17952353,96.50232755,142,Asia,35,South-eastern Asia,,,myanmar|burma,Lower middle,MMK,2011-06-12,153 - Myanmar -154,166,516,154,Y,Y,Y,N,,,NA,NAM,,,Namibia,,,,,,Namibia,Namibie,Namibia,Намибия,纳米比亚,ناميبيا,the Republic of Namibia,Namibia,Namibie,Namibia,Намибия,纳米比亚,ناميبيا,0,-22.13362728,17.21558466,2,Africa,202,Sub-Saharan Africa,18,Southern Africa,namibia,Upper middle,NAD,1974-01-01,154 - Namibia -155,167,520,155,Y,Y,Y,N,,,NR,NRU,,,Nauru,,,,,,Nauru,Nauru,Nauru,Науру,瑙鲁,ناورو,the Republic of Nauru,Nauru,Nauru,Nauru,Науру,瑙鲁,ناورو,0,-0.528781574,166.9232132,9,Oceania,57,Micronesia,,,nauru,High,AUD,1974-01-01,155 - Nauru -156,168,524,156,Y,Y,Y,N,,,NP,NPL,,,Nepal,,,,,,Nepal,Népal,Nepal,Непал,尼泊尔,نيبال,Nepal,Nepal,Népal,Nepal,Непал,尼泊尔,نيبال,0,28.25396507,83.9316657,142,Asia,34,Southern Asia,,,nepal,Lower middle,NPR,2020-12-15,156 - Nepal -157,169,528,157,Y,Y,Y,N,,,NL,NLD,,,Netherlands (Kingdom of the),,Netherlands,Netherlands,,,Netherlands (Kingdom of the),Pays-Bas (Royaume des),Países Bajos (Reino de los),Нидерланды (Королевство),荷兰王国,هولندا (مملكة _),the Kingdom of the Netherlands,Netherlands (Kingdom of the),Pays-Bas (Royaume des),Países Bajos (Reino de los),Нидерланды (Королевство),荷兰王国,هولندا (مملكة _),0,52.26998137,5.675062933,150,Europe,155,Western Europe,,,^(?!.*\bant)(?!.*\bcarib).*netherlands|holland,High,EUR,2023-03-10,157 - Netherlands (Kingdom of the) -158,170,,158,,,N,Y,,,,,AN,ANT,Netherlands Antilles (The Netherlands),,,,,Netherlands Antilles (The Netherlands),Netherlands Antilles,,,,,,,,,,,,,0,15.49421103,-67.12509177,19,Americas,419,Latin America and the Caribbean,29,Caribbean,netherlands.antil|dutch.antil,,ANG,1974-01-01,158 - Netherlands Antilles (The Netherlands) -159,171,540,159,,,N,N,,,NC,NCL,,,New Caledonia,,,,,New Caledonia (France),New Caledonia,,,,,,,New Caledonia,Nouvelle-Calédonie,Nueva Caledonia,Новая Каледония,新喀里多尼亚,كاليدونيا الجديدة,0,-21.33942425,165.2996228,9,Oceania,54,Melanesia,,,new.?caledonia,High,XPF,1974-01-01,159 - New Caledonia -160,172,554,160,Y,Y,Y,N,,,NZ,NZL,,,New Zealand,,,,,,New Zealand,Nouvelle-Zélande,Nueva Zelandia,Новая Зеландия,新西兰,نيوزيلندا,New Zealand,New Zealand,Nouvelle-Zélande,Nueva Zelandia,Новая Зеландия,新西兰,نيوزيلندا,0,-56.5161571,161.1190313,9,Oceania,53,Australia and New Zealand,,,new.?zealand,High,NZD,1974-01-01,160 - New Zealand -161,173,558,161,Y,Y,Y,N,,,NI,NIC,,,Nicaragua,,,,,,Nicaragua,Nicaragua,Nicaragua,Никарагуа,尼加拉瓜,نيكاراغوا,the Republic of Nicaragua,Nicaragua,Nicaragua,Nicaragua,Никарагуа,尼加拉瓜,نيكاراغوا,0,12.83712778,-85.03655572,19,Americas,419,Latin America and the Caribbean,13,Central America,nicaragua,Lower middle,NIO,1974-01-01,161 - Nicaragua -162,174,562,162,Y,Y,Y,N,Y,Y,NE,NER,,,Niger,Niger (the),,,,,Niger,Niger,Níger,Нигер,尼日尔,النيجر,the Republic of the Niger,Niger,Niger,Níger,Нигер,尼日尔,النيجر,0,17.42463558,9.397470038,2,Africa,202,Sub-Saharan Africa,11,Western Africa,\bniger(?!ia),Low,XOF,1974-01-01,162 - Niger -163,175,566,163,Y,Y,Y,N,Y,Y,NG,NGA,,,Nigeria,,,,,,Nigeria,Nigéria,Nigeria,Нигерия,尼日利亚,نيجيريا,the Federal Republic of Nigeria,Nigeria,Nigéria,Nigeria,Нигерия,尼日利亚,نيجيريا,0,9.590667555,8.10605344,2,Africa,202,Sub-Saharan Africa,11,Western Africa,nigeria,Lower middle,NGN,1974-01-01,163 - Nigeria -164,176,570,164,Y,,Y,N,,,NU,NIU,,,Niue,,,,,Niue (New Zealand),Niue,Nioué,Niue,Ниуэ,纽埃,نيوي,Niue,Niue,Nioué,Niue,Ниуэ,纽埃,نيوي,0,-19.05213426,-169.8688481,9,Oceania,61,Polynesia,,,niue,,NZD,2011-06-12,164 - Niue -165,177,574,165,,,N,N,,,NF,NFK,,,Norfolk Island,,,,,Norfolk Island (Australia),Norfolk Island,,,,,,,Norfolk Island,Île Norfolk,Isla Norfolk,Остров Норфолк,诺福克岛,جزيرة نورفولك,0,-29.0376577,167.952597,9,Oceania,53,Australia and New Zealand,,,norfolk,,AUD,1974-01-01,165 - Norfolk Island -166,179,578,167,Y,Y,Y,N,,,NO,NOR,,,Norway,,,,,,Norway,Norvège,Noruega,Норвегия,挪威,النرويج,the Kingdom of Norway,Norway,Norvège,Noruega,Норвегия,挪威,النرويج,0,64.41197955,14.06269622,150,Europe,154,Northern Europe,,,norway,High,NOK,1974-01-01,166 - Norway -167,181,512,168,Y,Y,Y,N,,,OM,OMN,,,Oman,,,,,,Oman,Oman,Omán,Оман,阿曼,عمان,the Sultanate of Oman,Oman,Oman,Omán,Оман,阿曼,عمان,0,20.53707855,56.1036955,142,Asia,145,Western Asia,,,\boman|trucial,High,OMR,1974-01-01,167 - Oman -168,182,586,169,Y,Y,Y,N,,Y,PK,PAK,,,Pakistan,,,,,,Pakistan,Pakistan,Pakistán,Пакистан,巴基斯坦,باكستان,the Islamic Republic of Pakistan,Pakistan,Pakistan,Pakistán,Пакистан,巴基斯坦,باكستان,0,29.35468377,68.78655545,142,Asia,34,Southern Asia,,,^(?!.*east).*paki?stan,Lower middle,PKR,1974-01-01,168 - Pakistan -169,183,585,170,Y,Y,Y,N,,,PW,PLW,,,Palau,,,,,,Palau,Palaos,Palau,Палау,帕劳,بالاو,the Republic of Palau,Palau,Palaos,Palau,Палау,帕劳,بالاو,0,7.514890523,134.5751097,9,Oceania,57,Micronesia,,,palau,Upper middle,USD,1986-01-01,169 - Palau -170,180,275,171,Y,,Y,N,,Y,PS,PSE,,,State of Palestine,"Palestine, State of",,occupied Palestinian territory,oPt,occupied Palestinian territory,State of Palestine,État de Palestine,Estado de Palestina,Государство Палестина,巴勒斯坦国,دولة فلسطين,the State of Palestine,State of Palestine,État de Palestine,Estado de Palestina,Государство Палестина,巴勒斯坦国,دولة فلسطين,0,31.99084142,35.30744047,142,Asia,145,Western Asia,,,palestin|\bgaza|west.?bank,Upper middle,ILS,2013-02-06,170 - State of Palestine -171,184,591,172,Y,Y,Y,N,,Y,PA,PAN,,,Panama,,,,,,Panama,Panama,Panamá,Панама,巴拿马,بنما,the Republic of Panama,Panama,Panama,Panamá,Панама,巴拿马,بنما,0,8.518057314,-80.07104511,19,Americas,419,Latin America and the Caribbean,13,Central America,panama,High,PAB,1993-07-22,171 - Panama -172,185,598,173,Y,Y,Y,N,,,PG,PNG,,,Papua New Guinea,,,,PNG,,Papua New Guinea,Papouasie-Nouvelle-Guinée,Papua Nueva Guinea,Папуа — Новая Гвинея,巴布亚新几内亚,بابوا غينيا الجديدة,the Independent State of Papua New Guinea,Papua New Guinea,Papouasie-Nouvelle-Guinée,Papua Nueva Guinea,Папуа-Новая Гвинея,巴布亚新几内亚,بابوا غينيا الجديدة,0,-6.834760878,143.0464597,9,Oceania,54,Melanesia,,,papua|new.?guinea,Lower middle,PGK,1974-01-01,172 - Papua New Guinea -173,186,600,174,Y,Y,Y,N,,Y,PY,PRY,,,Paraguay,,,,,,Paraguay,Paraguay,Paraguay,Парагвай,巴拉圭,باراغواي,the Republic of Paraguay,Paraguay,Paraguay,Paraguay,Парагвай,巴拉圭,باراغواي,0,-23.23840821,-58.39126243,19,Americas,419,Latin America and the Caribbean,5,South America,paraguay,Upper middle,PYG,1974-01-01,173 - Paraguay -174,187,604,175,Y,Y,Y,N,,Y,PE,PER,,,Peru,,,,,,Peru,Pérou,Perú,Перу,秘鲁,بيرو,the Republic of Peru,Peru,Pérou,Perú,Перу,秘鲁,بيرو,0,-9.167216491,-74.37537796,19,Americas,419,Latin America and the Caribbean,5,South America,peru,Upper middle,PEN,1974-01-01,174 - Peru -175,188,608,176,Y,Y,Y,N,,Y,PH,PHL,,,Philippines,Philippines (the),,,,,Philippines,Philippines,Filipinas,Филиппины,菲律宾,الفلبين,the Republic of the Philippines,Philippines,Philippines,Filipinas,Филиппины,菲律宾,الفلبين,0,-0.736653675,127.2358509,142,Asia,35,South-eastern Asia,,,philippines,Lower middle,PHP,1976-01-01,175 - Philippines -176,189,612,177,,,N,N,,,PN,PCN,,,Pitcairn,,,,,Pitcairn Islands,Pitcairn,,,,,,,Pitcairn,Pitcairn,Pitcairn,Питкэрн,皮特凯恩,بيتكرن,0,-24.2051566,-127.9093208,9,Oceania,61,Polynesia,,,pitcairn,,NZD,1974-01-01,176 - Pitcairn -177,190,616,178,Y,Y,Y,N,,Y,PL,POL,,,Poland,,,,,,Poland,Pologne,Polonia,Польша,波兰,بولندا,the Republic of Poland,Poland,Pologne,Polonia,Польша,波兰,بولندا,0,52.12847492,19.40086,150,Europe,151,Eastern Europe,,,poland,High,PLN,1974-01-01,177 - Poland -178,191,620,179,Y,Y,Y,N,,,PT,PRT,,,Portugal,,,,,,Portugal,Portugal,Portugal,Португалия,葡萄牙,البرتغال,the Portuguese Republic,Portugal,Portugal,Portugal,Португалия,葡萄牙,البرتغال,0,39.23901506,-30.21832194,150,Europe,39,Southern Europe,,,portugal,High,EUR,1974-01-01,178 - Portugal -179,192,630,180,,,N,N,,,PR,PRI,,,Puerto Rico,,,Puerto Rico (United States),,Puerto Rico (The United States of America),Puerto Rico,,,,,,,Puerto Rico,Porto Rico,Puerto Rico,Пуэрто-Рико,波多黎各,بورتوريكو,0,18.22412124,-66.47814528,19,Americas,419,Latin America and the Caribbean,29,Caribbean,puerto.?rico,High,USD,1974-01-01,179 - Puerto Rico -180,193,634,181,Y,Y,Y,N,,,QA,QAT,,,Qatar,,,,,,Qatar,Qatar,Qatar,Катар,卡塔尔,قطر,the State of Qatar,Qatar,Qatar,Qatar,Катар,卡塔尔,قطر,0,25.29089005,51.1841661,142,Asia,145,Western Asia,,,qatar,High,QAR,1974-01-01,180 - Qatar -181,195,638,182,,,N,N,,,RE,REU,,,Réunion,,,,,Réunion (France),Réunion,,,,,,,Réunion,Réunion,Reunión,Реюньон,留尼汪,ريونيون,0,-21.12280909,55.55123933,2,Africa,202,Sub-Saharan Africa,14,Eastern Africa,r(e|é)union,,EUR,1974-01-01,181 - Réunion -182,196,642,183,Y,Y,Y,N,,Y,RO,ROU,,,Romania,,,,,,Romania,Roumanie,Rumania,Румыния,罗马尼亚,رومانيا,Romania,Romania,Roumanie,Rumania,Румыния,罗马尼亚,رومانيا,0,45.84314501,24.96613666,150,Europe,151,Eastern Europe,,,r(o|u|ou)mania,High,RON,2002-02-01,182 - Romania -183,197,643,184,Y,Y,Y,N,,,RU,RUS,,,Russian Federation,Russian Federation (the),,,Russia,,Russian Federation,Fédération de Russie,Federación de Rusia,Российская Федерация,俄罗斯联邦,الاتحاد الروسي,the Russian Federation,Russian Federation,Fédération de Russie,Federación de Rusia,Российская Федерация,俄罗斯联邦,الاتحاد الروسي,0,61.97564081,96.67837519,150,Europe,151,Eastern Europe,,,\brussia,Upper middle,RUB,1992-06-15,183 - Russian Federation -184,198,646,185,Y,Y,Y,N,,Y,RW,RWA,,,Rwanda,,,,,,Rwanda,Rwanda,Rwanda,Руанда,卢旺达,رواندا,the Republic of Rwanda,Rwanda,Rwanda,Rwanda,Руанда,卢旺达,رواندا,0,-1.991722808,29.92068123,2,Africa,202,Sub-Saharan Africa,14,Eastern Africa,rwanda,Low,RWF,1974-01-01,184 - Rwanda -185,14890,652,186,,,N,N,,,BL,BLM,,,Saint Barthélemy,,,Saint Barthélemy (France),,Saint Barthélemy (France),Saint Barthélemy,,,,,,,Saint Barthélemy,Saint-Barthélemy,San Barthélemy,Сен-Бартелеми,圣巴泰勒米,سان بارتليمي,0,17.90896225,-62.82613534,19,Americas,419,Latin America and the Caribbean,29,Caribbean,barth(e|é)lemy,,EUR,2007-09-21,185 - Saint Barthélemy -186,199,654,187,,,N,N,,,SH,SHN,,,Saint Helena,"Saint Helena, Ascension and Tristan da Cunha",,"Saint Helena, Ascension and Tristan da Cunha",,,Saint Helena,,,,,,,Saint Helena,Sainte-Hélène,Santa Elena,Остров Святой Елены,圣赫勒拿,سانت هيلانة,0,-37.11173844,-12.28290657,2,Africa,202,Sub-Saharan Africa,11,Western Africa,helena,,SHP,1974-01-01,186 - Saint Helena -187,200,659,188,Y,Y,Y,N,,,KN,KNA,,,Saint Kitts and Nevis,,,,,,Saint Kitts and Nevis,Saint-Kitts-et-Nevis,Saint Kitts y Nevis,Сент-Китс и Невис,圣基茨和尼维斯,سانت كيتس ونيفس,Saint Kitts and Nevis,Saint Kitts and Nevis,Saint-Kitts-et-Nevis,Saint Kitts y Nevis,Сент-Китс и Невис,圣基茨和尼维斯,سانت كيتس ونيفس,0,17.32619066,-62.7533967,19,Americas,419,Latin America and the Caribbean,29,Caribbean,kitts|\bnevis,High,XCD,1985-01-01,187 - Saint Kitts and Nevis -188,201,662,189,Y,Y,Y,N,,,LC,LCA,,,Saint Lucia,,,,,,Saint Lucia,Sainte-Lucie,Santa Lucía,Сент-Люсия,圣卢西亚,سانت لوسيا,Saint Lucia,Saint Lucia,Sainte-Lucie,Santa Lucía,Сент-Люсия,圣卢西亚,سانت لوسيا,0,13.90391475,-60.96175259,19,Americas,419,Latin America and the Caribbean,29,Caribbean,\blucia,Upper middle,XCD,1974-01-01,188 - Saint Lucia -189,14891,663,190,,,N,N,,,MF,MAF,,,Saint Martin (French part),,,Saint Martin (France),,Saint Martin (France),Saint Martin,,,,,,,Saint Martin (French Part),Saint-Martin (partie française),San Martín (parte francesa),Сен-Мартен (французская часть),圣马丁(法属),سانت مارتن (الجزء الفرنسي),0,18.09128952,-63.05163864,19,Americas,419,Latin America and the Caribbean,29,Caribbean,saint.martin.*FR|^(?=.*collectivity).*martin|^(?=.*france).*martin(?!ique)|^(?=.*french).*martin(?!ique),High,EUR,2007-09-21,189 - Saint Martin (French part) -190,202,666,191,,,N,N,,,PM,SPM,,,Saint Pierre and Miquelon,,,,,Saint Pierre and Miquelon (France),Saint Pierre and Miquelon,,,,,,,Saint Pierre and Miquelon,Saint-Pierre-et-Miquelon,San Pedro y Miquelón,Сен-Пьер и Микелон,圣皮埃尔和密克隆,سان بيير وميكلون,0,46.78737259,-56.21105237,19,Americas,21,Northern America,,,miquelon,,EUR,1974-01-01,190 - Saint Pierre and Miquelon -191,203,670,192,Y,Y,Y,N,,,VC,VCT,,,Saint Vincent and the Grenadines,,,,St. Vincent & Grenadines,,Saint Vincent and the Grenadines,Saint-Vincent-et-les Grenadines,San Vicente y las Granadinas,Сент-Винсент и Гренадины,圣文森特和格林纳丁斯,سانت فنسنت وجزر غرينادين,Saint Vincent and the Grenadines,Saint Vincent and the Grenadines,Saint-Vincent-et-les Grenadines,San Vicente y las Granadinas,Сент-Винсент и Гренадины,圣文森特和格林纳丁斯,سانت فنسنت وجزر غرينادين,0,13.25481082,-61.19376585,19,Americas,419,Latin America and the Caribbean,29,Caribbean,vincent,Upper middle,XCD,1974-01-01,191 - Saint Vincent and the Grenadines -192,204,882,193,Y,Y,Y,N,,,WS,WSM,,,Samoa,,,,,,Samoa,Samoa,Samoa,Самоа,萨摩亚,ساموا,the Independent State of Samoa,Samoa,Samoa,Samoa,Самоа,萨摩亚,ساموا,0,-13.16992041,-173.5139768,9,Oceania,61,Polynesia,,,^(?!.*amer).*samoa,Lower middle,WST,1998-02-05,192 - Samoa -193,205,674,194,Y,Y,Y,N,,,SM,SMR,,,San Marino,,,,,,San Marino,Saint-Marin,San Marino,Сан-Марино,圣马力诺,سان مارينو,the Republic of San Marino,San Marino,Saint-Marin,San Marino,Сан-Марино,圣马力诺,سان مارينو,0,43.94362477,12.45862763,150,Europe,39,Southern Europe,,,san.?marino,High,EUR,1974-01-01,193 - San Marino -194,206,678,195,Y,Y,Y,N,,,ST,STP,,,Sao Tome and Principe,,,São Tomé and Príncipe,,,Sao Tome and Principe,Sao Tomé-et-Principe,Santo Tomé y Príncipe,Сан-Томе и Принсипи,圣多美和普林西比,سان تومي وبرينسيبي,the Democratic Republic of Sao Tome and Principe,Sao Tome and Principe,Sao Tomé-et-Principe,Santo Tomé y Príncipe,Сан-Томе и Принсипи,圣多美和普林西比,سان تومي وبرينسيبي,0,0.227069777,6.614376446,2,Africa,202,Sub-Saharan Africa,17,Middle Africa,\bs(a|ã)o.?tom(e|é),Lower middle,STN,1974-01-01,194 - Sao Tome and Principe -195,207,682,196,Y,Y,Y,N,,,SA,SAU,,,Saudi Arabia,,,,,,Saudi Arabia,Arabie saoudite,Arabia Saudita,Саудовская Аравия,沙特阿拉伯,المملكة العربية السعودية,the Kingdom of Saudi Arabia,Saudi Arabia,Arabie saoudite,Arabia Saudita,Саудовская Аравия,沙特阿拉伯,المملكة العربية السعودية,0,24.12628999,44.54637538,142,Asia,145,Western Asia,,,\bsa\w*.?arabia,High,SAR,1974-01-01,195 - Saudi Arabia -196,208,686,197,Y,Y,Y,N,,,SN,SEN,,,Senegal,,,,,,Senegal,Sénégal,Senegal,Сенегал,塞内加尔,السنغال,the Republic of Senegal,Senegal,Sénégal,Senegal,Сенегал,塞内加尔,السنغال,0,14.35710542,-14.4780169,2,Africa,202,Sub-Saharan Africa,11,Western Africa,senegal,Lower middle,XOF,1974-01-01,196 - Senegal -197,209,688,198,Y,Y,Y,N,,,RS,SRB,,,Serbia,,,,,,Serbia,Serbie,Serbia,Сербия,塞尔维亚,صربيا,the Republic of Serbia,Serbia,Serbie,Serbia,Сербия,塞尔维亚,صربيا,0,44.03017332,20.80259395,150,Europe,39,Southern Europe,,,^(?!.*monte).*serbia.*,Upper middle,RSD,2006-09-26,197 - Serbia -198,210,690,199,Y,Y,Y,N,,,SC,SYC,,,Seychelles,,,,,,Seychelles,Seychelles,Seychelles,Сейшельские Острова,塞舌尔,سيشيل,the Republic of Seychelles,Seychelles,Seychelles,Seychelles,Сейшельские Острова,塞舌尔,سيشيل,0,-4.651257344,55.46250801,2,Africa,202,Sub-Saharan Africa,14,Eastern Africa,seychell,High,SCR,1974-01-01,198 - Seychelles -199,211,694,200,Y,Y,Y,N,,,SL,SLE,,,Sierra Leone,,,,,,Sierra Leone,Sierra Leone,Sierra Leona,Сьерра-Леоне,塞拉利昂,سيراليون,the Republic of Sierra Leone,Sierra Leone,Sierra Leone,Sierra Leona,Сьерра-Леоне,塞拉利昂,سيراليون,0,8.571898577,-11.77850059,2,Africa,202,Sub-Saharan Africa,11,Western Africa,sierra,Low,SLL,1974-01-01,199 - Sierra Leone -200,212,702,201,Y,Y,Y,N,,,SG,SGP,,,Singapore,,,,,,Singapore,Singapour,Singapur,Сингапур,新加坡,سنغافورة,the Republic of Singapore,Singapore,Singapour,Singapur,Сингапур,新加坡,سنغافورة,0,1.344965221,103.8094495,142,Asia,35,South-eastern Asia,,,singapore,High,SGD,1974-01-01,200 - Singapore -201,14892,534,202,,,N,N,,,SX,SXM,,,Sint Maarten (Dutch part),,,,,Sint Maarten (The Netherlands),Sint Maarten,,,,,,,Sint Maarten (Dutch part),Saint-Martin (partie néerlandaise),San Martín (parte Holandesa),Синт-Мартен (нидерландская часть),圣马丁(荷属),سانت مارتن (الجزء الهولندي),0,18.04006004,-63.06246961,19,Americas,419,Latin America and the Caribbean,29,Caribbean,^(?!.*martin)(?!.*saba).*maarten,High,ANG,2010-12-15,201 - Sint Maarten (Dutch part) -202,213,703,203,Y,Y,Y,N,,Y,SK,SVK,,,Slovakia,,,,,,Slovakia,Slovaquie,Eslovaquia,Словакия,斯洛伐克,سلوفاكيا,the Slovak Republic,Slovakia,Slovaquie,Eslovaquia,Словакия,斯洛伐克,سلوفاكيا,0,48.70609262,19.49110883,150,Europe,151,Eastern Europe,,,^(?!.*cze).*slovak,High,EUR,1974-01-01,202 - Slovakia -203,214,705,204,Y,Y,Y,N,,,SI,SVN,,,Slovenia,,,,,,Slovenia,Slovénie,Eslovenia,Словения,斯洛文尼亚,سلوفينيا,the Republic of Slovenia,Slovenia,Slovénie,Eslovenia,Словения,斯洛文尼亚,سلوفينيا,0,46.123589,14.82836958,150,Europe,39,Southern Europe,,,slovenia,High,EUR,1993-06-15,203 - Slovenia -204,215,90,205,Y,Y,Y,N,,,SB,SLB,,,Solomon Islands,,,,,,Solomon Islands,Îles Salomon,Islas Salomón,Соломоновы Острова,所罗门群岛,جزر سليمان,Solomon Islands,Solomon Islands,Îles Salomon,Islas Salomón,Соломоновы Острова,所罗门群岛,جزر سليمان,0,-8.823576119,159.6577946,9,Oceania,54,Melanesia,,,solomon,Lower middle,SBD,1974-01-01,204 - Solomon Islands -205,216,706,206,Y,Y,Y,N,Y,Y,SO,SOM,,,Somalia,,,,,,Somalia,Somalie,Somalia,Сомали,索马里,الصومال,the Federal Republic of Somalia,Somalia,Somalie,Somalia,Сомали,索马里,الصومال,0,6.070298569,45.86808802,2,Africa,202,Sub-Saharan Africa,14,Eastern Africa,somali,Low,SOS,1974-01-01,205 - Somalia -206,217,710,207,Y,Y,Y,N,,,ZA,ZAF,,,South Africa,,,,,,South Africa,Afrique du Sud,Sudáfrica,Южная Африка,南非,جنوب أفريقيا,the Republic of South Africa,South Africa,Afrique du Sud,Sudáfrica,Южная Африка,南非,جنوب أفريقيا,0,-28.99235649,25.09025016,2,Africa,202,Sub-Saharan Africa,18,Southern Africa,south.africa|s\\..?africa,Upper middle,ZAR,1974-01-01,206 - South Africa -207,,239,208,,,N,N,,,GS,SGS,,,South Georgia and the South Sandwich Islands,,,,,,South Georgia and the South Sandwich Islands,,,,,,,South Georgia and the South Sandwich Islands,Géorgie du Sud-et-les Îles Sandwich du Sud,Georgia del Sur y las Islas Sandwich del Sur,Южная Джорджия и Южные Сандвичевы острова,南乔治亚岛和南桑德韦奇岛,جورجيا الجنوبية وجزر ساندويتش الجنوبية,0,-54.42976761,-36.49759369,19,Americas,419,Latin America and the Caribbean,5,South America,south.?georgia|sandwich,,GBP,1993-07-23,207 - South Georgia and the South Sandwich Islands -208,218,724,209,Y,Y,Y,N,,,ES,ESP,,,Spain,,,,,,Spain,Espagne,España,Испания,西班牙,إسبانيا,the Kingdom of Spain,Spain,Espagne,España,Испания,西班牙,إسبانيا,0,40.3097875,-3.578125378,150,Europe,39,Southern Europe,,,spain,High,EUR,1974-01-01,208 - Spain -209,219,144,210,Y,Y,Y,N,,,LK,LKA,,,Sri Lanka,,,,,,Sri Lanka,Sri Lanka,Sri Lanka,Шри-Ланка,斯里兰卡,سري لانكا,the Democratic Socialist Republic of Sri Lanka,Sri Lanka,Sri Lanka,Sri Lanka,Шри-Ланка,斯里兰卡,سري لانكا,0,7.617249894,80.70787736,142,Asia,34,Southern Asia,,,sri.?lanka|ceylon,Lower middle,LKR,1974-01-01,209 - Sri Lanka -210,8657,728,211,Y,Y,Y,N,Y,Y,SS,SSD,,,South Sudan,,,,,,South Sudan,Soudan du Sud,Sudán del Sur,Южный Судан,南苏丹,جنوب السودان,the Republic of South Sudan,South Sudan,Soudan du Sud,Sudán del Sur,Южный Судан,南苏丹,جنوب السودان,0,7.295889595,30.30870192,2,Africa,202,Sub-Saharan Africa,14,Eastern Africa,\bs\w*.?sudan,Low,SSP,2011-09-08,210 - South Sudan -211,220,729,212,Y,Y,Y,N,Y,Y,SD,SDN,,,Sudan,Sudan (the),,,,,Sudan,Soudan,Sudán,Судан,苏丹,السودان,the Republic of the Sudan,Sudan,Soudan,Sudán,Судан,苏丹,السودان,0,16.04892872,30.00339118,2,Africa,15,Northern Africa,,,^(?!.*\bs(?!u)).*sudan,Low,SDG,1974-01-01,211 - Sudan -212,221,740,213,Y,Y,Y,N,,,SR,SUR,,,Suriname,,,,,,Suriname,Suriname,Suriname,Суринам,苏里南,سورينام,the Republic of Suriname,Suriname,Suriname,Suriname,Суринам,苏里南,سورينام,0,4.125518847,-55.91480138,19,Americas,419,Latin America and the Caribbean,5,South America,surinam|dutch.?gu(y|i)ana,Upper middle,SRD,1974-01-01,212 - Suriname -213,222,744,214,,,N,N,,,SJ,SJM,,,Svalbard and Jan Mayen Islands,Svalbard and Jan Mayen,,Svalbard and Jan Mayen,,,Svalbard and Jan Mayen Islands,,,,,,,Svalbard and Jan Mayen Islands,Îles Svalbard-et-Jan Mayen,Islas Svalbard y Jan Mayen,Острова Свальбард и Ян-Майен,斯瓦尔巴群岛和扬马延岛,جزيرتي سفالبارد وجان مايِن,0,77.62362195,6.012261852,150,Europe,154,Northern Europe,,,svalbard,,NOK,1974-01-01,213 - Svalbard and Jan Mayen Islands -214,223,748,215,Y,Y,Y,N,,,SZ,SWZ,,,Eswatini,,,,,,Eswatini,Eswatini,Eswatini,Эсватини,斯威士兰,إسواتيني,the Kingdom of Eswatini,Eswatini,Eswatini,Eswatini,Эсватини,斯威士兰,إسواتيني,0,-26.56643647,31.50113832,2,Africa,202,Sub-Saharan Africa,18,Southern Africa,swaziland|eswatini,Lower middle,SZL,2018-06-02,214 - Eswatini -215,224,752,216,Y,Y,Y,N,,,SE,SWE,,,Sweden,,,,,,Sweden,Suède,Suecia,Швеция,瑞典,السويد,the Kingdom of Sweden,Sweden,Suède,Suecia,Швеция,瑞典,السويد,0,62.88018421,16.72425629,150,Europe,154,Northern Europe,,,sweden,High,SEK,1974-01-01,215 - Sweden -216,225,756,217,Y,Y,Y,N,,,CH,CHE,,,Switzerland,,,,,,Switzerland,Suisse,Suiza,Швейцария,瑞士,سويسرا,the Swiss Confederation,Switzerland,Suisse,Suiza,Швейцария,瑞士,سويسرا,0,46.80615952,8.243637777,150,Europe,155,Western Europe,,,switz|swiss,High,CHF,1974-01-01,216 - Switzerland -217,226,760,218,Y,Y,Y,N,Y,Y,SY,SYR,,,Syrian Arab Republic,Syrian Arab Republic (the),,,Syria,,Syrian Arab Republic,République arabe syrienne,República Árabe Siria,Сирийская Арабская Республика,阿拉伯叙利亚共和国,الجمهورية العربية السورية,the Syrian Arab Republic,Syrian Arab Republic,République arabe syrienne,República Árabe Siria,Сирийская Арабская Республика,阿拉伯叙利亚共和国,الجمهورية العربية السورية,0,35.01105189,38.51123805,142,Asia,145,Western Asia,,,syria,Low,SYP,1974-01-01,217 - Syrian Arab Republic -218,61,158,219,,,N,N,,,TW,TWN,,,Taiwan (Province of China),,,"Taiwan, Province of China",,China - Taiwan Province,Taiwan (Province of China),,,,,,,,,,,,,0,23.74652012,120.9621301,142,Asia,30,Eastern Asia,,,taiwan|taipei|formosa|^(?!.*peo)(?=.*rep).*china,High,TWD,1974-01-01,218 - Taiwan (Province of China) -219,227,762,220,Y,Y,Y,N,,,TJ,TJK,,,Tajikistan,,,,,,Tajikistan,Tadjikistan,Tayikistán,Таджикистан,塔吉克斯坦,طاجيكستان,the Republic of Tajikistan,Tajikistan,Tadjikistan,Tayikistán,Таджикистан,塔吉克斯坦,طاجيكستان,0,38.52699814,71.04232577,142,Asia,143,Central Asia,,,tajik,Lower middle,TJS,1992-06-15,219 - Tajikistan -220,244,834,221,Y,Y,Y,N,,Y,TZ,TZA,,,United Republic of Tanzania,"Tanzania, United Republic of",,"Tanzania, United Republic of",Tanzania,,United Republic of Tanzania,République-Unie de Tanzanie,República Unida de Tanzanía,Объединенная Республика Танзания,坦桑尼亚联合共和国,جمهورية تنزانيا المتحدة,the United Republic of Tanzania,United Republic of Tanzania,République-Unie de Tanzanie,República Unida de Tanzanía,Объединенная Республика Танзания,坦桑尼亚联合共和国,جمهورية تنزانيا المتحدة,0,-6.273241244,34.79620168,2,Africa,202,Sub-Saharan Africa,14,Eastern Africa,tanzania,Lower middle,TZS,1974-01-01,220 - United Republic of Tanzania -221,228,764,222,Y,Y,Y,N,,,TH,THA,,,Thailand,,,,,,Thailand,Thaïlande,Tailandia,Таиланд,泰国,تايلند,the Kingdom of Thailand,Thailand,Thaïlande,Tailandia,Таиланд,泰国,تايلند,0,15.15949511,101.020107,142,Asia,35,South-eastern Asia,,,thailand|\bsiam,Upper middle,THB,1974-01-01,221 - Thailand -222,230,626,223,Y,Y,Y,N,,,TL,TLS,,,Timor-Leste,,,,,,Timor-Leste,Timor-Leste,Timor-Leste,Тимор-Лешти,东帝汶,تيمور- ليشتي,the Democratic Republic of Timor-Leste,Timor-Leste,Timor-Leste,Timor-Leste,Тимор-Лешти,东帝汶,تيمور - ليشتي,0,-8.767718612,126.0420452,142,Asia,35,South-eastern Asia,,,^(?=.*leste).*timor|^(?=.*east).*timor,Lower middle,USD,2002-11-15,222 - Timor-Leste -223,231,768,224,Y,Y,Y,N,,,TG,TGO,,,Togo,,,,,,Togo,Togo,Togo,Того,多哥,توغو,the Togolese Republic,Togo,Togo,Togo,Того,多哥,توغو,0,8.541637601,0.97409513,2,Africa,202,Sub-Saharan Africa,11,Western Africa,togo,Low,XOF,1974-01-01,223 - Togo -224,232,772,225,,,N,N,,,TK,TKL,,,Tokelau,,,,,,Tokelau,,,,,,,Tokelau,Tokélaou,Tokelau,Токелау,托克劳,توكيلاو,0,-9.195175351,-171.8526597,9,Oceania,61,Polynesia,,,tokelau,,NZD,1974-01-01,224 - Tokelau -225,233,776,226,Y,Y,Y,N,,,TO,TON,,,Tonga,,,,,,Tonga,Tonga,Tonga,Тонга,汤加,تونغا,the Kingdom of Tonga,Tonga,Tonga,Tonga,Тонга,汤加,تونغا,0,-22.92273894,-176.0448464,9,Oceania,61,Polynesia,,,tonga,Upper middle,TOP,1974-01-01,225 - Tonga -226,234,780,227,Y,Y,Y,N,,Y,TT,TTO,,,Trinidad and Tobago,,,,,,Trinidad and Tobago,Trinité-et-Tobago,Trinidad y Tabago,Тринидад и Тобаго,特立尼达和多巴哥,ترينيداد وتوباغو,the Republic of Trinidad and Tobago,Trinidad and Tobago,Trinité-et-Tobago,Trinidad y Tabago,Тринидад и Тобаго,特立尼达和多巴哥,ترينيداد وتوباغو,0,10.40535665,-61.29228487,19,Americas,419,Latin America and the Caribbean,29,Caribbean,trinidad|tobago,High,TTD,1974-01-01,226 - Trinidad and Tobago -227,235,788,228,Y,Y,Y,N,,,TN,TUN,,,Tunisia,,,,,,Tunisia,Tunisie,Túnez,Тунис,突尼斯,تونس,the Republic of Tunisia,Tunisia,Tunisie,Túnez,Тунис,突尼斯,تونس,0,34.10810736,9.557630913,2,Africa,15,Northern Africa,,,tunisia,Lower middle,TND,1974-01-01,227 - Tunisia -228,236,792,229,Y,Y,Y,N,,Y,TR,TUR,,,Türkiye,,,,,,Türkiye,Türkiye,Türkiye,Турция,土耳其,تركيا,the Republic of Türkiye,Türkiye,Türkiye,Türkiye,Турция,土耳其,تركيا,0,38.91218946,35.69849765,142,Asia,145,Western Asia,,,turkey|t(ü|u)rkiye,Upper middle,TRY,2022-06-02,228 - Türkiye -229,237,795,230,Y,Y,Y,N,,,TM,TKM,,,Turkmenistan,,,,,,Turkmenistan,Turkménistan,Turkmenistán,Туркменистан,土库曼斯坦,تركمانستان,Turkmenistan,Turkmenistan,Turkménistan,Turkmenistán,Туркменистан,土库曼斯坦,تركمانستان,0,39.12455662,59.38935348,142,Asia,143,Central Asia,,,turkmen,Upper middle,TMT,1992-06-15,229 - Turkmenistan -230,238,796,231,,,N,N,,,TC,TCA,,,Turks and Caicos Islands,Turks and Caicos Islands (the),,,,,Turks and Caicos Islands,,,,,,,Turks and Caicos Islands,Îles Turques-et-Caïques,Islas Turcas y Caicos,Острова Теркс и Кайкос,特克斯和凯科斯群岛,جزر تركس وكايكوس,0,21.81744592,-71.77770318,19,Americas,419,Latin America and the Caribbean,29,Caribbean,turks,High,USD,1974-01-01,230 - Turks and Caicos Islands -231,239,798,232,Y,Y,Y,N,,,TV,TUV,,,Tuvalu,,,,,,Tuvalu,Tuvalu,Tuvalu,Тувалу,图瓦卢,توفالو,Tuvalu,Tuvalu,Tuvalu,Tuvalu,Тувалу,图瓦卢,توفالو,0,-10.46069351,181.0881855,9,Oceania,61,Polynesia,,,tuvalu,Upper middle,AUD,1979-01-01,231 - Tuvalu -232,240,800,233,Y,Y,Y,N,,Y,UG,UGA,,,Uganda,,,,,,Uganda,Ouganda,Uganda,Уганда,乌干达,أوغندا,the Republic of Uganda,Uganda,Ouganda,Uganda,Уганда,乌干达,أوغندا,0,1.280667326,32.38662225,2,Africa,202,Sub-Saharan Africa,14,Eastern Africa,uganda,Low,UGX,1974-01-01,232 - Uganda -233,241,804,234,Y,Y,Y,N,Y,Y,UA,UKR,,,Ukraine,,,,,,Ukraine,Ukraine,Ucrania,Украина,乌克兰,أوكرانيا,Ukraine,Ukraine,Ukraine,Ucrania,Украина,乌克兰,أوكرانيا,0,49.01900507,31.37809941,150,Europe,151,Eastern Europe,,,ukrain,Lower middle,UAH,1992-04-19,233 - Ukraine -234,242,784,235,Y,Y,Y,N,,,AE,ARE,,,United Arab Emirates,United Arab Emirates (the),,,UAE,,United Arab Emirates,Émirats arabes unis,Emiratos Árabes Unidos,Объединенные Арабские Эмираты,阿拉伯联合酋长国,الإمارات العربية المتحدة,the United Arab Emirates,United Arab Emirates,Émirats arabes unis,Emiratos Árabes Unidos,Объединенные Арабские Эмираты,阿拉伯联合酋长国,الإمارات العربية المتحدة,0,23.90525867,54.35072869,142,Asia,145,Western Asia,,,emirates|^u\.?a\.?e\.?$|united.?arab.?em,High,AED,1974-01-01,234 - United Arab Emirates -235,243,826,236,Y,Y,Y,N,,,GB,GBR,,,United Kingdom of Great Britain and Northern Ireland,United Kingdom of Great Britain and Northern Ireland (the),,United Kingdom,UK,,United Kingdom of Great Britain and Northern Ireland,Royaume-Uni de Grande-Bretagne et d'Irlande du Nord,Reino Unido de Gran Bretaña e Irlanda del Norte,Соединенное Королевство Великобритании и Северной Ирландии,大不列颠及北爱尔兰联合王国,المملكة المتحدة لبريطانيا العظمى وأيرلندا الشمالية,the United Kingdom of Great Britain and Northern Ireland,United Kingdom of Great Britain and Northern Ireland,Royaume-Uni de Grande-Bretagne et d’Irlande du Nord,Reino Unido de Gran Bretaña e Irlanda del Norte,Соединенное Королевство Великобритании и Северной Ирландии,大不列颠及北爱尔兰联合王国,المملكة المتحدة لبريطانيا العظمى وآيرلندا الشمالية,0,53.75504855,-2.103843405,150,Europe,154,Northern Europe,,,united.?kingdom|britain|^u\.?k\.?$,High,GBP,1974-01-01,235 - United Kingdom of Great Britain and Northern Ireland -236,245,840,237,Y,Y,Y,N,,,US,USA,,,United States of America,United States of America (the),,United States,USA,,United States of America,États-Unis d'Amérique,Estados Unidos de América,Соединенные Штаты Америки,美利坚合众国,الولايات المتحدة الأمريكية,the United States of America,United States of America,États-Unis d’Amérique,Estados Unidos de América,Соединенные Штаты Америки,美利坚合众国,الولايات المتحدة الأمريكية,0,45.73643438,-112.404207,19,Americas,21,Northern America,,,united.?states\b(?!.*islands)|\bu\.?s\.?a\.?\b|^\s*u\.?s\.?\b(?!.*islands),High,USD,1974-01-01,236 - United States of America -237,,581,238,,,N,N,,,UM,UMI,,,United States Minor Outlying Islands,United States Minor Outlying Islands (the),,,,,United States Minor Outlying Islands,,,,,,,United States Minor Outlying Islands,Îles mineures éloignées des États-Unis,Islas menores alejadas de Estados Unidos,Внешние малые острова Соединенных Штатов,美国本土外小岛屿,نائية التابعة للولايات المتحدة,0,,,9,Oceania,57,Micronesia,,,minor.?outlying.?is,,USD,1986-01-01,237 - United States Minor Outlying Islands -238,247,858,239,Y,Y,Y,N,,Y,UY,URY,,,Uruguay,,,,,,Uruguay,Uruguay,Uruguay,Уругвай,乌拉圭,أوروغواي,the Eastern Republic of Uruguay,Uruguay,Uruguay,Uruguay,Уругвай,乌拉圭,أوروغواي,0,-32.80198719,-56.01417232,19,Americas,419,Latin America and the Caribbean,5,South America,uruguay,High,UYU,1974-01-01,238 - Uruguay -239,248,860,240,Y,Y,Y,N,,,UZ,UZB,,,Uzbekistan,,,,,,Uzbekistan,Ouzbékistan,Uzbekistán,Узбекистан,乌兹别克斯坦,أوزبكستان,the Republic of Uzbekistan,Uzbekistan,Ouzbékistan,Uzbekistán,Узбекистан,乌兹别克斯坦,أوزبكستان,0,41.74950759,63.17455249,142,Asia,143,Central Asia,,,uzbek,Lower middle,UZS,1992-06-15,239 - Uzbekistan -240,249,548,241,Y,Y,Y,N,,,VU,VUT,,,Vanuatu,,,,,,Vanuatu,Vanuatu,Vanuatu,Вануату,瓦努阿图,فانواتو,the Republic of Vanuatu,Vanuatu,Vanuatu,Vanuatu,Вануату,瓦努阿图,فانواتو,0,-21.04390394,171.2797047,9,Oceania,54,Melanesia,,,vanuatu|new.?hebrides,Lower middle,VUV,1980-01-01,240 - Vanuatu -241,250,862,242,Y,Y,Y,N,Y,Y,VE,VEN,,,Venezuela (Bolivarian Republic of),,,"Venezuela, Bolivarian Republic of",Venezuela,,Venezuela (Bolivarian Republic of),Venezuela (République bolivarienne du),Venezuela (República Bolivariana de),Венесуэла (Боливарианская Республика),委内瑞拉玻利瓦尔共和国,فنزويلا (جمهورية - البوليفارية),the Bolivarian Republic of Venezuela,Venezuela (Bolivarian Republic of),Venezuela (République bolivarienne du),Venezuela (República Bolivariana de),Венесуэла (Боливарианская Республика),委内瑞拉玻利瓦尔共和国,فنزويلا (جمهورية - البوليفارية),0,7.115201972,-66.18367077,19,Americas,419,Latin America and the Caribbean,5,South America,venezuela,,VEF,2009-03-03,241 - Venezuela (Bolivarian Republic of) -242,251,704,243,Y,Y,Y,N,,Y,VN,VNM,,,Viet Nam,,,,,,Viet Nam,Viet Nam,Viet Nam,Вьетнам,越南,فييت نام,the Socialist Republic of Viet Nam,Viet Nam,Viet Nam,Viet Nam,Вьетнам,越南,فييت نام,0,16.64893259,106.3103686,142,Asia,35,South-eastern Asia,,,^(?!south)(?!republic).*viet.?nam(?!.*south)|democratic.republic.of.vietnam|socialist.republic.of.viet.?nam|north.viet.?nam|viet.?nam.north,Lower middle,VND,1977-01-01,242 - Viet Nam -243,43,92,244,,,N,N,,,VG,VGB,,,British Virgin Islands,Virgin Islands (British),,"Virgin Islands, British",,,British Virgin Islands,,,,,,,British Virgin Islands,Îles Vierges britanniques,Islas Vírgenes Británicas,Британские Виргинские острова,英属维尔京群岛,جزر فرجن البريطانية,0,18.30332154,-65.11493198,19,Americas,419,Latin America and the Caribbean,29,Caribbean,^(?=.*\bu\.?\s?k).*virgin|^(?=.*brit).*virgin|^(?=.*kingdom).*virgin,High,USD,1974-01-01,243 - British Virgin Islands -244,252,876,246,,,N,N,,,WF,WLF,,,Wallis and Futuna Islands,Wallis and Futuna,,Wallis and Futuna,,Wallis and Futuna (France),Wallis and Futuna Islands,,,,,,,Wallis and Futuna Islands,Îles Wallis-et-Futuna,Islas Wallis y Futuna,Острова Уоллис и Футуна,瓦利斯群岛和富图纳群岛,جزر واليس وفوتونا,0,-14.36099529,-178.0421057,9,Oceania,61,Polynesia,,,futuna|wallis,,XPF,1974-01-01,244 - Wallis and Futuna Islands -245,253,732,247,,,N,N,,,EH,ESH,,,Western Sahara,,,"Western Sahara, non-self-governing territory",,,Western Sahara,,,,,,,Western Sahara,Sahara occidental,Sáhara Occidental,Западная Сахара,西撒哈拉,الصحراء الغربية,0,24.66295331,-13.13425705,2,Africa,15,Northern Africa,,,western.sahara,,MAD,1985-01-01,245 - Western Sahara -246,255,887,248,Y,Y,Y,N,Y,Y,YE,YEM,,,Yemen,,,,,,Yemen,Yémen,Yemen,Йемен,也门,اليمن,the Republic of Yemen,Yemen,Yémen,Yemen,Йемен,也门,اليمن,0,15.96506363,47.50305348,142,Asia,145,Western Asia,,,yemen,Low,YER,1993-07-12,246 - Yemen -247,256,894,249,Y,Y,Y,N,,Y,ZM,ZMB,,,Zambia,,,,,,Zambia,Zambie,Zambia,Замбия,赞比亚,زامبيا,the Republic of Zambia,Zambia,Zambie,Zambia,Замбия,赞比亚,زامبيا,0,-13.45369192,27.80039565,2,Africa,202,Sub-Saharan Africa,14,Eastern Africa,zambia|northern.?rhodesia,Lower middle,ZMK,1974-01-01,247 - Zambia -248,257,716,250,Y,Y,Y,N,,Y,ZW,ZWE,,,Zimbabwe,,,,,,Zimbabwe,Zimbabwe,Zimbabwe,Зимбабве,津巴布韦,زمبابوي,the Republic of Zimbabwe,Zimbabwe,Zimbabwe,Zimbabwe,Зимбабве,津巴布韦,زمبابوي,0,-19.00126774,29.86951021,2,Africa,202,Sub-Saharan Africa,14,Eastern Africa,zimbabwe|^(?!.*northern).*rhodesia,Lower middle,ZWL,1980-01-01,248 - Zimbabwe -249,28,,,,,N,N,,,,,,AZO,Azores Islands (Portugal),,,,,,Azores Islands,,,,,,,,,,,,,,38.72708329,-27.26017212,150,Europe,39,Southern Europe,,,azores,,EUR,1974-01-01,249 - Azores Islands (Portugal) -251,51,,,,,N,N,,,,,,CAI,Canary Islands (Spain),,,,,,Canary Islands,,,,,,,,,,,,,,27.95390989,-15.57918031,2,Africa,15,Northern Africa,,,canary,,EUR,1974-01-01,251 - Canary Islands (Spain) -252,56,,,,,N,N,,,,,,CHI,Channel Islands,,,,,,Channel Islands,,,,,,,,,,,,,,49.34370327,-2.36025919,150,Europe,154,Northern Europe,,,\bchannel.islands,,GBP,1974-01-01,252 - Channel Islands -254,97,,,,,N,N,,,,,,GLI,Galapagos Islands (Ecuador),,,,,,Galapagos Islands,,,,,,,,,,,,,,-0.62999148,-90.35775677,19,Americas,419,Latin America and the Caribbean,5,South America,galapagos,,USD,1974-01-01,254 - Galapagos Islands (Ecuador) -255,178,580,166,,,N,N,,,MP,MNP,,,Northern Mariana Islands,Northern Mariana Islands (the),,,,Northern Mariana Islands (The United States of America),Northern Mariana Islands,,,,,,,Northern Mariana Islands,Îles Mariannes du Nord,Islas Marianas Septentrionales,Северные Марианские острова,北马里亚纳群岛,جزر ماريانا الشمالية,0,25.56053736,152.1251419,9,Oceania,57,Micronesia,,,mariana,High,USD,1986-01-01,255 - Northern Mariana Islands -256,,680,,,,N,N,,,,,,,Sark,,,,,,Sark,,,,,,,,,,,,,,49.4347717,-2.36987152,150,Europe,154,Northern Europe,830,Channel Islands,sark,,GBP,1974-01-01,256 - Sark -265,246,850,245,,,N,N,,,VI,VIR,,,United States Virgin Islands,Virgin Islands (U.S.),,"Virgin Islands, U.S.",,,United States Virgin Islands,,,,,,,United States Virgin Islands,Îles Vierges américaines,Islas Vírgenes de los Estados Unidos,Виргинские острова Соединенных Штатов,美属维尔京群岛,جزر فرجن التابعة للولايات المتحدة,0,17.39137826,-64.67699419,19,Americas,419,Latin America and the Caribbean,29,Caribbean,^(?=.*\bu\.?\s?s).*virgin|^(?=.*states).*virgin,High,USD,1974-01-01,265 - United States Virgin Islands -266,,,,,,N,N,,,,,XK,XKX,Kosovo,,,,,,Kosovo,,,,,,,,,,,,,,42.61901705,20.90987836,150,Europe,39,Southern Europe,,,kosovo,,EUR,1974-01-01,266 - Kosovo +ID,RW ID,m49 numerical code,HPC Tools API ID,Appears in UNTERM list,Appears in DGACM list,Independent,Deprecated,Has HRP,In GHO,ISO 3166-1 Alpha 2-Codes,ISO 3166-1 Alpha 3-Codes,x Alpha2 codes,x Alpha3 codes,Preferred Term,ISO Alt Term,DGACM Alt Term,HPC Tools Alt Term,RW Short Name,RW API Alt Term,English Short,French Short,Spanish Short,Russian Short,Chinese Short,Arabic Short,English Formal,M49 English,M49 French,M49 Spanish,M49 Russian,M49 Chinese,M49 Arabic,Admin Level,Latitude,Longitude,Region Code,Region Name,Sub-region Code,Sub-region Name,Intermediate Region Code,Intermediate Region Name,Regex,World Bank Income Level,Currency,Reference Period Start,Concatenation +1,13,4,1,Y,Y,Y,N,Y,Y,AF,AFG,,,Afghanistan,,,,,,Afghanistan,Afghanistan,Afganistán,Афганистан,阿富汗,أفغانستان,the Islamic Republic of Afghanistan,Afghanistan,Afghanistan,Afganistán,Афганистан,阿富汗,أفغانستان,0,33.83147477,66.02621828,142,Asia,34,Southern Asia,,,afghan,Low,AFN,2004-01-26,1 - Afghanistan +2,14,248,2,,,N,N,,,AX,ALA,,,Åland Islands,,,,,Aland Islands (Finland),Åland Islands,,,,,,,Åland Islands,Îles d’Åland,Islas Åland,Аландских островов,奥兰群岛,جزر ألاند,0,60.18121338,19.89649072,150,Europe,154,Northern Europe,,,^[å|a]land,,EUR,2004-02-13,2 - Åland Islands +3,15,8,3,Y,Y,Y,N,,,AL,ALB,,,Albania,,,,,,Albania,Albanie,Albania,Албания,阿尔巴尼亚,ألبانيا,the Republic of Albania,Albania,Albanie,Albania,Албания,阿尔巴尼亚,ألبانيا,0,41.13180899,20.06882519,150,Europe,39,Southern Europe,,,albania,Upper middle,ALL,1974-01-01,3 - Albania +4,16,12,4,Y,Y,Y,N,,,DZ,DZA,,,Algeria,,,,,,Algeria,Algérie,Argelia,Алжир,阿尔及利亚,الجزائر,the People's Democratic Republic of Algeria,Algeria,Algérie,Argelia,Алжир,阿尔及利亚,الجزائر,0,28.16474462,2.63351219,2,Africa,15,Northern Africa,,,algeria,Lower middle,DZD,1974-01-01,4 - Algeria +5,17,16,5,,,N,N,,,AS,ASM,,,American Samoa,,,,,,American Samoa,,,,,,,American Samoa,Samoa américaines,Samoa Americana,Американское Самоа,美属萨摩亚,ساموا الأمريكية,0,-14.30440488,-170.70783,9,Oceania,61,Polynesia,,,^(?=.*americ).*samoa,High,USD,1974-01-01,5 - American Samoa +6,18,20,6,Y,Y,Y,N,,,AD,AND,,,Andorra,,,,,,Andorra,Andorre,Andorra,Андорра,安道尔,أندورا,the Principality of Andorra,Andorra,Andorre,Andorra,Андорра,安道尔,أندورا,0,42.55527067,1.578938861,150,Europe,39,Southern Europe,,,andorra,High,EUR,1994-01-26,6 - Andorra +7,19,24,7,Y,Y,Y,N,,Y,AO,AGO,,,Angola,,,,,,Angola,Angola,Angola,Ангола,安哥拉,أنغولا,the Republic of Angola,Angola,Angola,Angola,Ангола,安哥拉,أنغولا,0,-12.3755731,17.59867248,2,Africa,202,Sub-Saharan Africa,17,Middle Africa,angola,Lower middle,AOA,1993-07-02,7 - Angola +8,20,660,8,,,N,N,,,AI,AIA,,,Anguilla,,,Anguilla (United Kingdom),,,Anguilla,,,,,,,Anguilla,Anguilla,Anguila,Ангилья,安圭拉,أنغويلا,0,18.22301491,-63.06006462,19,Americas,419,Latin America and the Caribbean,29,Caribbean,anguill?a,,XCD,1985-01-01,8 - Anguilla +9,,10,9,,,N,N,,,AQ,ATA,,,Antarctica,,,,,,Antarctica,,,,,,,Antarctica,Antarctique,Antártida,Антарктике,南极洲,أنتاركتيكا,0,-80.45066299,21.43458373,,,,,,,antarctica,,,1983-01-01,9 - Antarctica +10,21,28,10,Y,Y,Y,N,,,AG,ATG,,,Antigua and Barbuda,,,,,,Antigua and Barbuda,Antigua-et-Barbuda,Antigua y Barbuda,Антигуа и Барбуда,安提瓜和巴布达,أنتيغوا وبربودا,Antigua and Barbuda,Antigua and Barbuda,Antigua-et-Barbuda,Antigua y Barbuda,Антигуа и Барбуда,安提瓜和巴布达,أنتيغوا وبربودا,0,17.07120733,-61.79815058,19,Americas,419,Latin America and the Caribbean,29,Caribbean,antigua,High,XCD,1974-01-01,10 - Antigua and Barbuda +11,22,32,11,Y,Y,Y,N,,Y,AR,ARG,,,Argentina,,,,,,Argentina,Argentine,Argentina,Аргентина,阿根廷,الأرجنتين,the Argentine Republic,Argentina,Argentine,Argentina,Аргентина,阿根廷,الأرجنتين,0,-34.98567234,-65.12225892,19,Americas,419,Latin America and the Caribbean,5,South America,argentin,Upper middle,ARS,1974-01-01,11 - Argentina +12,23,51,12,Y,Y,Y,N,,,AM,ARM,,,Armenia,,,,,,Armenia,Arménie,Armenia,Армения,亚美尼亚,أرمينيا,the Republic of Armenia,Armenia,Arménie,Armenia,Армения,亚美尼亚,أرمينيا,0,40.29202499,44.9429026,142,Asia,145,Western Asia,,,armenia,Upper middle,AMD,1992-06-15,12 - Armenia +13,24,533,13,,,N,N,,Y,AW,ABW,,,Aruba,,,,,Aruba (The Netherlands),Aruba,,,,,,,Aruba,Aruba,Aruba,Аруба,阿鲁巴,أروبا,0,12.5156546,-69.9757266,19,Americas,419,Latin America and the Caribbean,29,Caribbean,^(?!.*bonaire).*\baruba,High,AWG,1986-01-01,13 - Aruba +14,25,36,14,Y,Y,Y,N,,,AU,AUS,,,Australia,,,,,,Australia,Australie,Australia,Австралия,澳大利亚,أستراليا,Australia,Australia,Australie,Australia,Австралия,澳大利亚,أستراليا,0,-25.40546125,134.2181189,9,Oceania,53,Australia and New Zealand,,,australia,High,AUD,1974-01-01,14 - Australia +15,26,40,15,Y,Y,Y,N,,,AT,AUT,,,Austria,,,,,,Austria,Autriche,Austria,Австрия,奥地利,النمسا,the Republic of Austria,Austria,Autriche,Austria,Австрия,奥地利,النمسا,0,47.59086187,14.13920086,150,Europe,155,Western Europe,,,^(?!.*hungary).*austria|\baustri.*\bemp,High,EUR,1974-01-01,15 - Austria +16,27,31,16,Y,Y,Y,N,,,AZ,AZE,,,Azerbaijan,,,,,,Azerbaijan,Azerbaïdjan,Azerbaiyán,Азербайджан,阿塞拜疆,أذربيجان,the Republic of Azerbaijan,Azerbaijan,Azerbaïdjan,Azerbaiyán,Азербайджан,阿塞拜疆,أذربيجان,0,40.42670781,47.80669468,142,Asia,145,Western Asia,,,azerbaijan,Upper middle,AZN,1992-06-15,16 - Azerbaijan +17,29,44,17,Y,Y,Y,N,,,BS,BHS,,,Bahamas,Bahamas (the),,,,,Bahamas,Bahamas,Bahamas,Багамские Острова,巴哈马,جزر البهاما,the Commonwealth of the Bahamas,Bahamas,Bahamas,Bahamas,Багамские Острова,巴哈马,جزر البهاما,0,25.90317684,-78.61665744,19,Americas,419,Latin America and the Caribbean,29,Caribbean,bahamas,High,BSD,1974-01-01,17 - Bahamas +18,30,48,18,Y,Y,Y,N,,,BH,BHR,,,Bahrain,,,,,,Bahrain,Bahreïn,Bahrein,Бахрейн,巴林,البحرين,the Kingdom of Bahrain,Bahrain,Bahreïn,Bahrein,Бахрейн,巴林,البحرين,0,26.05396006,50.53486327,142,Asia,145,Western Asia,,,bahrain,High,BHD,1974-01-01,18 - Bahrain +19,31,50,19,Y,Y,Y,N,,Y,BD,BGD,,,Bangladesh,,,,,,Bangladesh,Bangladesh,Bangladesh,Бангладеш,孟加拉国,بنغلاديش,the People's Republic of Bangladesh,Bangladesh,Bangladesh,Bangladesh,Бангладеш,孟加拉国,بنغلاديش,0,23.88207427,90.24107264,142,Asia,34,Southern Asia,,,bangladesh|^(?=.*east).*paki?stan,Lower middle,BDT,1974-01-01,19 - Bangladesh +20,32,52,20,Y,Y,Y,N,,,BB,BRB,,,Barbados,,,,,,Barbados,Barbade,Barbados,Барбадос,巴巴多斯,بربادوس,Barbados,Barbados,Barbade,Barbados,Барбадос,巴巴多斯,بربادوس,0,13.184952,-59.55382245,19,Americas,419,Latin America and the Caribbean,29,Caribbean,barbados,High,BBD,1974-01-01,20 - Barbados +21,33,112,21,Y,Y,Y,N,,,BY,BLR,,,Belarus,,,,,,Belarus,Bélarus,Belarús,Беларусь,白俄罗斯,بيلاروس,the Republic of Belarus,Belarus,Bélarus,Belarús,Беларусь,白俄罗斯,بيلاروس,0,53.53965016,28.04932937,150,Europe,151,Eastern Europe,,,belarus|byelo,Upper middle,BYN,1992-06-15,21 - Belarus +22,34,56,22,Y,Y,Y,N,,,BE,BEL,,,Belgium,,,,,,Belgium,Belgique,Bélgica,Бельгия,比利时,بلجيكا,the Kingdom of Belgium,Belgium,Belgique,Bélgica,Бельгия,比利时,بلجيكا,0,50.64206011,4.658786236,150,Europe,155,Western Europe,,,^(?!.*luxem).*belgium,High,EUR,1974-01-01,22 - Belgium +23,35,84,23,Y,Y,Y,N,,,BZ,BLZ,,,Belize,,,,,,Belize,Belize,Belice,Белиз,伯利兹,بليز,Belize,Belize,Belize,Belice,Белиз,伯利兹,بليز,0,17.20829609,-88.69988922,19,Americas,419,Latin America and the Caribbean,13,Central America,belize|^(?=.*british).*honduras,Upper middle,BZD,1974-01-01,23 - Belize +24,36,204,24,Y,Y,Y,N,,,BJ,BEN,,,Benin,,,,,,Benin,Bénin,Benin,Бенин,贝宁,بنن,the Republic of Benin,Benin,Bénin,Benin,Бенин,贝宁,بنن,0,9.642665015,2.342864021,2,Africa,202,Sub-Saharan Africa,11,Western Africa,benin|dahome,Lower middle,XOF,1977-01-01,24 - Benin +25,37,60,25,,,N,N,,,BM,BMU,,,Bermuda,,,,,,Bermuda,,,,,,,Bermuda,Bermudes,Bermuda,Бермудские острова,百慕大,برمودا,0,32.31605051,-64.73984042,19,Americas,21,Northern America,,,bermuda,High,BMD,1974-01-01,25 - Bermuda +26,38,64,26,Y,Y,Y,N,,,BT,BTN,,,Bhutan,,,,,,Bhutan,Bhoutan,Bhután,Бутан,不丹,بوتان,the Kingdom of Bhutan,Bhutan,Bhoutan,Bhután,Бутан,不丹,بوتان,0,27.41443467,90.43085885,142,Asia,34,Southern Asia,,,bhutan,Lower middle,BTN,1974-01-01,26 - Bhutan +27,39,68,27,Y,Y,Y,N,,Y,BO,BOL,,,Bolivia (Plurinational State of),,,"Bolivia, Plurinational State of",Bolivia,,Bolivia (Plurinational State of),Bolivie (État plurinational de),Bolivia (Estado Plurinacional de),Боливия (Многонациональное Государство),多民族玻利维亚国,بوليفيا (دولة - المتعددة القوميات),the Plurinational State of Bolivia,Bolivia (Plurinational State of),Bolivie (État plurinational de),Bolivia (Estado Plurinacional de),Боливия (Многонациональное Государство),多民族玻利维亚国,بوليفيا (دولة - المتعددة القوميات),0,-16.71483757,-64.66829843,19,Americas,419,Latin America and the Caribbean,5,South America,bolivia,Lower middle,BOB,2009-05-08,27 - Bolivia (Plurinational State of) +28,40,70,28,Y,Y,Y,N,,,BA,BIH,,,Bosnia and Herzegovina,,,,,,Bosnia and Herzegovina,Bosnie-Herzégovine,Bosnia y Herzegovina,Босния и Герцеговина,波斯尼亚和黑塞哥维那,البوسنة والهرسك,Bosnia and Herzegovina,Bosnia and Herzegovina,Bosnie-Herzégovine,Bosnia y Herzegovina,Босния и Герцеговина,波斯尼亚和黑塞哥维那,البوسنة والهرسك,0,44.16506495,17.79105724,150,Europe,39,Southern Europe,,,herzegovina|bosnia,Upper middle,BAM,1993-01-01,28 - Bosnia and Herzegovina +29,14894,535,29,,,N,N,,,BQ,BES,,,"Bonaire, Sint Eustatius and Saba",,,"Bonaire, Saint Eustatius and Saba (The Netherlands)",,"Bonaire, Saint Eustatius and Saba (The Netherlands)","Bonaire, Sint Eustatius and Saba",,,,,,,"Bonaire, Sint Eustatius and Saba","Bonaire, Saint-Eustache et Saba","Bonaire, San Eustaquio y Saba","Бонайре, Синт-Эстатиус и Саба",博纳尔,圣俄斯塔休斯和萨巴,بونير وسانت يوستاشيوس وسابا,0,12.15882921,-68.24278483,19,Americas,419,Latin America and the Caribbean,29,Caribbean,^(?=.*bonaire).*eustatius|^(?=.*carib).*netherlands|\bbes.?islands,,USD,2011-06-12,"29 - Bonaire, Sint Eustatius and Saba" +30,41,72,30,Y,Y,Y,N,,,BW,BWA,,,Botswana,,,,,,Botswana,Botswana,Botswana,Ботсвана,博茨瓦纳,بوتسوانا,the Republic of Botswana,Botswana,Botswana,Botswana,Ботсвана,博茨瓦纳,بوتسوانا,0,-22.17991766,23.81673035,2,Africa,202,Sub-Saharan Africa,18,Southern Africa,botswana|bechuana,Upper middle,BWP,1974-01-01,30 - Botswana +31,,74,31,,,N,N,,,BV,BVT,,,Bouvet Island,,,,,,Bouvet Island,,,,,,,Bouvet Island,Île Bouvet,Isla Bouvet,Остров Буве,布维岛,جزيرة بوفيت,0,-54.42190835,3.412516924,19,Americas,419,Latin America and the Caribbean,5,South America,bouvet,,NOK,1974-01-01,31 - Bouvet Island +32,42,76,32,Y,Y,Y,N,,Y,BR,BRA,,,Brazil,,,,,,Brazil,Brésil,Brasil,Бразилия,巴西,البرازيل,the Federative Republic of Brazil,Brazil,Brésil,Brasil,Бразилия,巴西,البرازيل,0,-10.77518961,-53.09141767,19,Americas,419,Latin America and the Caribbean,5,South America,brazil,Upper middle,BRL,1974-01-01,32 - Brazil +33,,86,33,,,N,N,,,IO,IOT,,,British Indian Ocean Territory,British Indian Ocean Territory (the),,,,,British Indian Ocean Territory,,,,,,,British Indian Ocean Territory,Territoire britannique de l'océan Indien,Territorio Británico del Océano Índico,Британская территория в Индийском океане,英属印度洋领土,المحيط الهندي الإقليم البريطاني في,0,-7.334186151,72.43402037,2,Africa,202,Sub-Saharan Africa,14,Eastern Africa,british.?indian.?ocean,,USD,1974-01-01,33 - British Indian Ocean Territory +34,44,96,34,Y,Y,Y,N,,,BN,BRN,,,Brunei Darussalam,,,,,,Brunei Darussalam,Brunéi Darussalam,Brunei Darussalam,Бруней-Даруссалам,文莱达鲁萨兰国,بروني دار السلام,Brunei Darussalam,Brunei Darussalam,Brunéi Darussalam,Brunei Darussalam,Бруней-Даруссалам,文莱达鲁萨兰国,بروني دار السلام,0,4.439247073,114.4374636,142,Asia,35,South-eastern Asia,,,brunei,High,BND,1974-01-01,34 - Brunei Darussalam +35,45,100,35,Y,Y,Y,N,,Y,BG,BGR,,,Bulgaria,,,,,,Bulgaria,Bulgarie,Bulgaria,Болгария,保加利亚,بلغاريا,the Republic of Bulgaria,Bulgaria,Bulgarie,Bulgaria,Болгария,保加利亚,بلغاريا,0,42.76069057,25.23572028,150,Europe,151,Eastern Europe,,,bulgaria,Upper middle,BGL,1974-01-01,35 - Bulgaria +36,46,854,36,Y,Y,Y,N,Y,Y,BF,BFA,,,Burkina Faso,,,,,,Burkina Faso,Burkina Faso,Burkina Faso,Буркина-Фасо,布基纳法索,بوركينا فاسو,Burkina Faso,Burkina Faso,Burkina Faso,Burkina Faso,Буркина-Фасо,布基纳法索,بوركينا فاسو,0,12.27790144,-1.738649343,2,Africa,202,Sub-Saharan Africa,11,Western Africa,burkina|\bfaso|upper.?volta,Low,XOF,1984-01-01,36 - Burkina Faso +37,47,108,37,Y,Y,Y,N,,Y,BI,BDI,,,Burundi,,,,,,Burundi,Burundi,Burundi,Бурунди,布隆迪,بوروندي,the Republic of Burundi,Burundi,Burundi,Burundi,Бурунди,布隆迪,بوروندي,0,-3.356208708,29.89200134,2,Africa,202,Sub-Saharan Africa,14,Eastern Africa,burundi,Low,BIF,1974-01-01,37 - Burundi +38,48,116,38,Y,Y,Y,N,,,KH,KHM,,,Cambodia,,,,,,Cambodia,Cambodge,Camboya,Камбоджа,柬埔寨,كمبوديا,the Kingdom of Cambodia,Cambodia,Cambodge,Camboya,Камбоджа,柬埔寨,كمبوديا,0,12.71583138,104.9221723,142,Asia,35,South-eastern Asia,,,cambodia|kampuchea|khmer,Lower middle,KHR,1994-01-26,38 - Cambodia +39,49,120,39,Y,Y,Y,N,Y,Y,CM,CMR,,,Cameroon,,,,,,Cameroon,Cameroun,Camerún,Камерун,喀麦隆,الكاميرون,the Republic of Cameroon,Cameroon,Cameroun,Camerún,Камерун,喀麦隆,الكاميرون,0,5.68036831,12.74068837,2,Africa,202,Sub-Saharan Africa,17,Middle Africa,cameroon,Lower middle,XAF,1974-01-01,39 - Cameroon +40,50,124,40,Y,Y,Y,N,,,CA,CAN,,,Canada,,,,,,Canada,Canada,Canadá,Канада,加拿大,كندا,Canada,Canada,Canada,Canadá,Канада,加拿大,كندا,0,61.4126317,-98.23039804,19,Americas,21,Northern America,,,canada,High,CAD,1974-01-01,40 - Canada +41,52,132,41,Y,Y,Y,N,,,CV,CPV,,,Cabo Verde,,,Cape Verde,,,Cabo Verde,Cabo Verde,Cabo Verde,Кабо-Верде,佛得角,كابو فيردي,the Republic of Cabo Verde,Cabo Verde,Cabo Verde,Cabo Verde,Кабо-Верде,佛得角,كابو فيردي,0,17.52133998,-24.58506404,2,Africa,202,Sub-Saharan Africa,11,Western Africa,(cabo|cape) *verde,Lower middle,CVE,1974-01-01,41 - Cabo Verde +42,53,136,42,,,N,N,,,KY,CYM,,,Cayman Islands,Cayman Islands (the),,,,,Cayman Islands,,,,,,,Cayman Islands,Îles Caïmanes,Islas Caimán,Кайман острова,开曼群岛,جزر كايمان,0,19.31065556,-81.20426038,19,Americas,419,Latin America and the Caribbean,29,Caribbean,cayman,High,KYD,1974-01-01,42 - Cayman Islands +43,54,140,43,Y,Y,Y,N,Y,Y,CF,CAF,,,Central African Republic,Central African Republic (the),,,CAR,Central African Republic,Central African Republic,République centrafricaine,República Centroafricana,Центральноафриканская Республика,中非共和国,جمهورية أفريقيا الوسطى,the Central African Republic,Central African Republic,République centrafricaine,República Centroafricana,Центральноафриканская Республика,中非共和国,جمهورية أفريقيا الوسطى,0,6.570747926,20.48450088,2,Africa,202,Sub-Saharan Africa,17,Middle Africa,\bcentral.african.rep,Low,XAF,1974-01-01,43 - Central African Republic +44,55,148,44,Y,Y,Y,N,Y,Y,TD,TCD,,,Chad,,,,,,Chad,Tchad,Chad,Чад,乍得,تشاد,the Republic of Chad,Chad,Tchad,Chad,Чад,乍得,تشاد,0,15.35740495,18.66399556,2,Africa,202,Sub-Saharan Africa,17,Middle Africa,\bchad,Low,XAF,1974-01-01,44 - Chad +45,57,152,45,Y,Y,Y,N,,Y,CL,CHL,,,Chile,,,,,,Chile,Chili,Chile,Чили,智利,شيلي,the Republic of Chile,Chile,Chili,Chile,Чили,智利,شيلي,0,-37.68386885,-71.33321859,19,Americas,419,Latin America and the Caribbean,5,South America,\bchile,High,CLP,1974-01-01,45 - Chile +46,58,156,46,Y,Y,Y,N,,,CN,CHN,,,China,,,,,,China,Chine,China,Китай,中国,الصين,the People's Republic of China,China,Chine,China,Китай,中国,الصين,0,36.67464756,103.8680636,142,Asia,30,Eastern Asia,,,^(?!.*\bmac)(?!.*\bhong)(?!.*\btai)(?!.*\brep).*china|^(?=.*peo)(?=.*rep).*china,Upper middle,CNY,1974-01-01,46 - China +47,62,162,47,,,N,N,,,CX,CXR,,,Christmas Island,,,,,Christmas Island (Australia),Christmas Island,,,,,,,Christmas Island,Île Christmas,Isla Christmas,остров Рождества,圣诞岛,جزيرة عيد الميلاد,0,-10.44411458,105.7036972,9,Oceania,53,Australia and New Zealand,,,christmas,,AUD,1974-01-01,47 - Christmas Island +48,63,166,48,,,N,N,,,CC,CCK,,,Cocos (Keeling) Islands,Cocos (Keeling) Islands (the),,,,Cocos (Keeling) Islands (Australia),Cocos (Keeling) Islands,,,,,,,Cocos (Keeling) Islands,Îles des Cocos (Keeling),Islas Cocos (Keeling),Кокосовых (Килинг) островов,科科斯(基林)群岛,جزر كوكس (كيلينغ),0,-12.17127014,96.83690355,9,Oceania,53,Australia and New Zealand,,,\bcocos|keeling,,AUD,1974-01-01,48 - Cocos (Keeling) Islands +49,64,170,49,Y,Y,Y,N,Y,Y,CO,COL,,,Colombia,,,,,,Colombia,Colombie,Colombia,Колумбия,哥伦比亚,كولومبيا,the Republic of Colombia,Colombia,Colombie,Colombia,Колумбия,哥伦比亚,كولومبيا,0,3.897367041,-73.07080696,19,Americas,419,Latin America and the Caribbean,5,South America,colombia,Upper middle,COP,1974-01-01,49 - Colombia +50,65,174,50,Y,Y,Y,N,,,KM,COM,,,Comoros,Comoros (the),,,,,Comoros,Comores,Comoras,Коморские Острова,科摩罗,جزر القمر,the Union of the Comoros,Comoros,Comores,Comoras,Коморские Острова,科摩罗,جزر القمر,0,-11.42407818,42.8293551,2,Africa,202,Sub-Saharan Africa,14,Eastern Africa,comoro,Lower middle,KMF,2003-01-14,50 - Comoros +51,66,178,51,Y,Y,Y,N,,Y,CG,COG,,,Congo,Congo (the),,,,,Congo,Congo,Congo,Конго,刚果,الكونغو,the Republic of the Congo,Congo,Congo,Congo,Конго,刚果,الكونغو,0,-0.83949506,15.22629207,2,Africa,202,Sub-Saharan Africa,17,Middle Africa,^(?!.*\bd.m)(?!.*\bd[\.]?r)(?!.*kinshasa)(?!.*zaire)(?!.*belg)(?!.*l.opoldville)(?!.*free).*\bcongo,Lower middle,XAF,1974-01-01,51 - Congo +52,75,180,52,Y,Y,Y,N,Y,Y,CD,COD,,,Democratic Republic of the Congo,Congo (the Democratic Republic of the),,"Congo, The Democratic Republic of the",DR Congo,Democratic Republic of the Congo,Democratic Republic of the Congo,République démocratique du Congo,República Democrática del Congo,Демократическая Республика Конго,刚果民主共和国,جمهورية الكونغو الديمقراطية,the Democratic Republic of the Congo,Democratic Republic of the Congo,République démocratique du Congo,República Democrática del Congo,Демократическая Республика Конго,刚果民主共和国,جمهورية الكونغو الديمقراطية,0,-2.876807692,23.65623593,2,Africa,202,Sub-Saharan Africa,17,Middle Africa,\bd.m.*congo|congo.*\bd.m|congo.*\bd[\.]?r|\bd[\.]?r.*congo|belgian.?congo|congo.?free.?state|kinshasa|zaire|l.opoldville|drc|droc|rdc,Low,CDF,1997-07-14,52 - Democratic Republic of the Congo +53,67,184,53,Y,,Y,N,,,CK,COK,,,Cook Islands,Cook Islands (the),,,,,Cook Islands,Îles Cook,Islas Cook,Острова Кука,库克群岛,جزر كوك,the Cook Islands,Cook Islands,Îles Cook,Islas Cook,Острова Кука,库克群岛,جزر كوك,0,-20.14332999,-159.7599857,9,Oceania,61,Polynesia,,,\bcook,,NZD,1974-01-01,53 - Cook Islands +54,68,188,54,Y,Y,Y,N,,Y,CR,CRI,,,Costa Rica,,,,,,Costa Rica,Costa Rica,Costa Rica,Коста-Рика,哥斯达黎加,كوستاريكا,the Republic of Costa Rica,Costa Rica,Costa Rica,Costa Rica,Коста-Рика,哥斯达黎加,كوستاريكا,0,9.960735487,-84.18254176,19,Americas,419,Latin America and the Caribbean,13,Central America,costa.?rica,Upper middle,CRC,1974-01-01,54 - Costa Rica +55,69,384,55,Y,Y,Y,N,,,CI,CIV,,,Côte d'Ivoire,,,,,,Côte d'Ivoire,Côte d'Ivoire,Côte d’Ivoire,Кот-д’Ивуар,科特迪瓦,كوت ديفوار,the Republic of Côte d'Ivoire,Côte d’Ivoire,Côte d’Ivoire,Côte d’Ivoire,Кот-д'Ивуар,科特迪瓦,كوت ديفوار,0,7.630087005,-5.552402136,2,Africa,202,Sub-Saharan Africa,11,Western Africa,ivoire|ivory,Lower middle,XOF,1974-01-01,55 - Côte d'Ivoire +56,70,191,56,Y,Y,Y,N,,,HR,HRV,,,Croatia,,,,,,Croatia,Croatie,Croacia,Хорватия,克罗地亚,كرواتيا,the Republic of Croatia,Croatia,Croatie,Croacia,Хорватия,克罗地亚,كرواتيا,0,45.18877041,16.42353441,150,Europe,39,Southern Europe,,,croatia|hrvatska,High,HRK,1992-06-15,56 - Croatia +57,71,192,57,Y,Y,Y,N,,,CU,CUB,,,Cuba,,,,,,Cuba,Cuba,Cuba,Куба,古巴,كوبا,the Republic of Cuba,Cuba,Cuba,Cuba,Куба,古巴,كوبا,0,21.6053525,-78.90713844,19,Americas,419,Latin America and the Caribbean,29,Caribbean,\bcuba,Upper middle,CUP,1974-01-01,57 - Cuba +58,14893,531,58,,,N,N,,Y,CW,CUW,,,Curaçao,,,,,Curaçao (The Netherlands),Curaçao,,,,,,,Curaçao,Curaçao,Curazao,Кюрасао,库拉索,كوراساو,0,12.21019745,-69.04044898,19,Americas,419,Latin America and the Caribbean,29,Caribbean,^(?!.*bonaire).*\bcura(c|ç)ao,High,ANG,2010-12-15,58 - Curaçao +59,72,196,59,Y,Y,Y,N,,,CY,CYP,,,Cyprus,,,,,,Cyprus,Chypre,Chipre,Кипр,塞浦路斯,قبرص,the Republic of Cyprus,Cyprus,Chypre,Chipre,Кипр,塞浦路斯,قبرص,0,35.01941238,33.1666508,142,Asia,145,Western Asia,,,cyprus,High,EUR,1974-01-01,59 - Cyprus +60,73,203,60,Y,Y,Y,N,,Y,CZ,CZE,,,Czechia,,Czech Republic,Czech Republic,,,Czechia,Tchéquie,Chequia,Чехия,捷克,تشيكيا,the Czech Republic,Czechia,Tchéquie,Chequia,Чехия,捷克,تشيكيا,0,49.74240068,15.34943448,150,Europe,151,Eastern Europe,,,^(?=.*rep).*czech|czechia|bohemia,High,CZK,2016-08-29,60 - Czechia +61,76,208,61,Y,Y,Y,N,,,DK,DNK,,,Denmark,,,,,,Denmark,Danemark,Dinamarca,Дания,丹麦,الدانمرك,the Kingdom of Denmark,Denmark,Danemark,Dinamarca,Дания,丹麦,الدانمرك,0,56.06439188,9.942213684,150,Europe,154,Northern Europe,,,denmark,High,DKK,1974-01-01,61 - Denmark +62,77,262,62,Y,Y,Y,N,,Y,DJ,DJI,,,Djibouti,,,,,,Djibouti,Djibouti,Djibouti,Джибути,吉布提,جيبوتي,the Republic of Djibouti,Djibouti,Djibouti,Djibouti,Джибути,吉布提,جيبوتي,0,11.74658946,42.58022315,2,Africa,202,Sub-Saharan Africa,14,Eastern Africa,djibouti,Lower middle,DJF,1977-01-01,62 - Djibouti +63,78,212,63,Y,Y,Y,N,,,DM,DMA,,,Dominica,,,,,,Dominica,Dominique,Dominica,Доминика,多米尼克,دومينيكا,the Commonwealth of Dominica,Dominica,Dominique,Dominica,Доминика,多米尼克,دومينيكا,0,15.42468124,-61.36047599,19,Americas,419,Latin America and the Caribbean,29,Caribbean,dominica(?!n),Upper middle,XCD,1974-01-01,63 - Dominica +64,79,214,64,Y,Y,Y,N,,Y,DO,DOM,,,Dominican Republic,Dominican Republic (the),,,Dominican Rep.,,Dominican Republic,République dominicaine,República Dominicana,Доминиканская Республика,多米尼加共和国,الجمهورية الدومينيكية,the Dominican Republic,Dominican Republic,République dominicaine,República Dominicana,Доминиканская Республика,多米尼加,الجمهورية الدومينيكية,0,18.89453409,-70.49429315,19,Americas,419,Latin America and the Caribbean,29,Caribbean,dominican.rep,Upper middle,DOP,1974-01-01,64 - Dominican Republic +65,81,218,65,Y,Y,Y,N,,Y,EC,ECU,,,Ecuador,,,,,,Ecuador,Équateur,Ecuador,Эквадор,厄瓜多尔,إكوادور,the Republic of Ecuador,Ecuador,Équateur,Ecuador,Эквадор,厄瓜多尔,إكوادور,0,-1.464036749,-78.05190165,19,Americas,419,Latin America and the Caribbean,5,South America,ecuador,Upper middle,USD,1974-01-01,65 - Ecuador +66,82,818,66,Y,Y,Y,N,,Y,EG,EGY,,,Egypt,,,,,,Egypt,Égypte,Egipto,Египет,埃及,مصر,the Arab Republic of Egypt,Egypt,Égypte,Egipto,Египет,埃及,مصر,0,26.55281781,29.78562814,2,Africa,15,Northern Africa,,,egypt,Lower middle,EGP,1974-01-01,66 - Egypt +67,83,222,67,Y,Y,Y,N,Y,Y,SV,SLV,,,El Salvador,,,,,,El Salvador,El Salvador,El Salvador,Сальвадор,萨尔瓦多,السلفادور,the Republic of El Salvador,El Salvador,El Salvador,El Salvador,Сальвадор,萨尔瓦多,السلفادور,0,13.72764125,-88.86315324,19,Americas,419,Latin America and the Caribbean,13,Central America,el.?salvador,Upper middle,USD,1974-01-01,67 - El Salvador +68,84,226,68,Y,Y,Y,N,,,GQ,GNQ,,,Equatorial Guinea,,,,,,Equatorial Guinea,Guinée équatoriale,Guinea Ecuatorial,Экваториальная Гвинея,赤道几内亚,غينيا الاستوائية,the Republic of Equatorial Guinea,Equatorial Guinea,Guinée équatoriale,Guinea Ecuatorial,Экваториальная Гвинея,赤道几内亚,غينيا الاستوائية,0,1.412936146,10.61572825,2,Africa,202,Sub-Saharan Africa,17,Middle Africa,guine.*eq|eq.*guine|^(?=.*span).*guinea,Upper middle,XAF,1974-01-01,68 - Equatorial Guinea +69,85,232,69,Y,Y,Y,N,,,ER,ERI,,,Eritrea,,,,,,Eritrea,Érythrée,Eritrea,Эритрея,厄立特里亚,إريتريا,the State of Eritrea,Eritrea,Érythrée,Eritrea,Эритрея,厄立特里亚,إريتريا,0,15.37695899,38.82792338,2,Africa,202,Sub-Saharan Africa,14,Eastern Africa,eritrea,Low,ERN,2012-08-02,69 - Eritrea +70,86,233,70,Y,Y,Y,N,,Y,EE,EST,,,Estonia,,,,,,Estonia,Estonie,Estonia,Эстония,爱沙尼亚,إستونيا,the Republic of Estonia,Estonia,Estonie,Estonia,Эстония,爱沙尼亚,إستونيا,0,58.70758667,26.168216,150,Europe,154,Northern Europe,,,estonia,High,EUR,1992-06-15,70 - Estonia +71,87,231,71,Y,Y,Y,N,Y,Y,ET,ETH,,,Ethiopia,,,,,,Ethiopia,Éthiopie,Etiopía,Эфиопия,埃塞俄比亚,إثيوبيا,the Federal Democratic Republic of Ethiopia,Ethiopia,Éthiopie,Etiopía,Эфиопия,埃塞俄比亚,إثيوبيا,0,8.633664665,39.61587345,2,Africa,202,Sub-Saharan Africa,14,Eastern Africa,ethiopia|abyssinia,Low,ETB,1993-07-16,71 - Ethiopia +72,88,238,72,,,N,N,,,FK,FLK,,,Falkland Islands (Malvinas),Falkland Islands (the) [Malvinas],,,,Falkland Islands (Malvinas),Falkland Islands,,,,,,,Falkland Islands (Malvinas),Îles Falkland (Malvinas),Islas Malvinas (Falkland),Фолклендские (Мальвинские) острова,福克兰群岛(马尔维纳斯),جزر فوكلاند (مالفيناس),0,-51.7638724,-55.8098409,19,Americas,419,Latin America and the Caribbean,5,South America,falkland|malvinas,,FKP,1974-01-01,72 - Falkland Islands (Malvinas) +73,89,234,73,,,N,N,,,FO,FRO,,,Faroe Islands,Faroe Islands (the),,,,Faroe Islands (Denmark),Faroe Islands,,,,,,,Faroe Islands,Îles Féroé,Islas Feroe,Фарерские острова,法罗群岛,جزر فايرو,0,61.64924758,-6.548553177,150,Europe,154,Northern Europe,,,faroe|faeroe,High,DKK,1974-01-01,73 - Faroe Islands +74,90,242,74,Y,Y,Y,N,,,FJ,FJI,,,Fiji,,,,,,Fiji,Fidji,Fiji,Фиджи,斐济,فيجي,the Republic of Fiji,Fiji,Fidji,Fiji,Фиджи,斐济,فيجي,0,-19.0190607,195.3435043,9,Oceania,54,Melanesia,,,fiji,Upper middle,FJD,2011-06-12,74 - Fiji +75,91,246,75,Y,Y,Y,N,,,FI,FIN,,,Finland,,,,,,Finland,Finlande,Finlandia,Финляндия,芬兰,فنلندا,the Republic of Finland,Finland,Finlande,Finlandia,Финляндия,芬兰,فنلندا,0,64.52173893,26.29452799,150,Europe,154,Northern Europe,,,finland,High,EUR,1974-01-01,75 - Finland +76,92,250,76,Y,Y,Y,N,,,FR,FRA,,,France,,,,,,France,France,Francia,Франция,法国,فرنسا,the French Republic,France,France,Francia,Франция,法国,فرنسا,0,46.6984015,2.350055968,150,Europe,155,Western Europe,,,^(?!.*\bdep)(?!.*martinique).*france|french.?republic|\bgaul,High,EUR,1974-01-01,76 - France +77,93,254,77,,,N,N,,,GF,GUF,,,French Guiana,,,,,French Guiana (France),French Guiana,,,,,,,French Guiana,Guyane française,Guayana Francesa,Французская Гвиана,法属圭亚那,غيانا الفرنسية,0,3.928100844,-53.24266781,19,Americas,419,Latin America and the Caribbean,5,South America,french.?gu(y|i)ana,,EUR,1974-01-01,77 - French Guiana +78,94,258,78,,,N,N,,,PF,PYF,,,French Polynesia,,,,,French Polynesia (France),French Polynesia,,,,,,,French Polynesia,Polynésie française,Polinesia Francesa,Французская Полинезия,法属波利尼西亚,بولينيزيا الفرنسية,0,-24.06211632,-156.7187297,9,Oceania,61,Polynesia,,,french.?polynesia|tahiti,High,XPF,1974-01-01,78 - French Polynesia +79,,260,79,,,N,N,,,TF,ATF,,,French Southern Territories,French Southern Territories (the),,,,,French Southern Territories,,,,,,,French Southern Territories,Terres australes françaises,Territorio de las Tierras Australes Francesas,Южные земли (французская заморская территория),法属南方领地,الأراضي الفرنسية الجنوبية الجنوبية,0,-49.32257975,69.49884805,2,Africa,202,Sub-Saharan Africa,14,Eastern Africa,french.?southern,,EUR,1979-01-01,79 - French Southern Territories +80,96,266,80,Y,Y,Y,N,,,GA,GAB,,,Gabon,,,,,,Gabon,Gabon,Gabón,Габон,加蓬,غابون,the Gabonese Republic,Gabon,Gabon,Gabón,Габон,加蓬,غابون,0,-0.595400581,11.79997877,2,Africa,202,Sub-Saharan Africa,17,Middle Africa,gabon,Upper middle,XAF,1974-01-01,80 - Gabon +81,98,270,81,Y,Y,Y,N,,,GM,GMB,,,Gambia,Gambia (the),,Gambia,,,Gambia,Gambie,Gambia,Гамбия,冈比亚,غامبيا,the Republic of the Gambia,Gambia,Gambie,Gambia,Гамбия,冈比亚,غامبيا,0,13.44470328,-15.44718402,2,Africa,202,Sub-Saharan Africa,11,Western Africa,gambia,Low,GMD,1974-01-01,81 - Gambia +82,100,268,82,Y,Y,Y,N,,,GE,GEO,,,Georgia,,,,,,Georgia,Géorgie,Georgia,Грузия,格鲁吉亚,جورجيا,Georgia,Georgia,Géorgie,Georgia,Грузия,格鲁吉亚,جورجيا,0,42.17290221,43.5117089,142,Asia,145,Western Asia,,,^(?!.*south).*georgia,Upper middle,GEL,1992-08-28,82 - Georgia +83,101,276,83,Y,Y,Y,N,,,DE,DEU,,,Germany,,,,,,Germany,Allemagne,Alemania,Германия,德国,ألمانيا,the Federal Republic of Germany,Germany,Allemagne,Alemania,Германия,德国,ألمانيا,0,51.08227882,10.37515859,150,Europe,155,Western Europe,,,^(?!.*east).*germany|^(?=.*\bfed.*\brep).*german,High,EUR,1990-10-30,83 - Germany +84,102,288,84,Y,Y,Y,N,,,GH,GHA,,,Ghana,,,,,,Ghana,Ghana,Ghana,Гана,加纳,غانا,the Republic of Ghana,Ghana,Ghana,Ghana,Гана,加纳,غانا,0,7.956118608,-1.209564758,2,Africa,202,Sub-Saharan Africa,11,Western Africa,ghana|gold.?coast,Lower middle,GHS,1974-01-01,84 - Ghana +85,103,292,85,,,N,N,,,GI,GIB,,,Gibraltar,,,,,,Gibraltar,,,,,,,Gibraltar,Gibraltar,Gibraltar,Гибралтар,直布罗陀,جبل طارق,0,36.13872267,-5.34508156,150,Europe,39,Southern Europe,,,gibraltar,High,GIP,1974-01-01,85 - Gibraltar +86,104,300,86,Y,Y,Y,N,,,GR,GRC,,,Greece,,,,,,Greece,Grèce,Grecia,Греция,希腊,اليونان,the Hellenic Republic,Greece,Grèce,Grecia,Греция,希腊,اليونان,0,39.99547189,22.15714659,150,Europe,39,Southern Europe,,,greece|hellenic|hellas,High,EUR,1974-01-01,86 - Greece +87,105,304,87,,,N,N,,,GL,GRL,,,Greenland,,,,,Greenland (Denmark),Greenland,,,,,,,Greenland,Groenland,Groenlandia,Гренландия,格陵兰,غرينلند,0,74.714673,-41.37858526,19,Americas,21,Northern America,,,greenland,High,DKK,1974-01-01,87 - Greenland +88,106,308,88,Y,Y,Y,N,,,GD,GRD,,,Grenada,,,,,,Grenada,Grenade,Granada,Гренада,格林纳达,غرينادا,Grenada,Grenada,Grenade,Granada,Гренада,格林纳达,غرينادا,0,12.11295969,-61.67937955,19,Americas,419,Latin America and the Caribbean,29,Caribbean,grenada,Upper middle,XCD,1974-01-01,88 - Grenada +89,107,312,89,,,N,N,,,GP,GLP,,,Guadeloupe,,,Guadeloupe (France),,Guadeloupe (France),Guadeloupe,,,,,,,Guadeloupe,Guadeloupe,Guadalupe,Гваделупа,瓜德罗普,غوادلوب,0,16.40393131,-61.75296289,19,Americas,419,Latin America and the Caribbean,29,Caribbean,guadeloupe,,EUR,1974-01-01,89 - Guadeloupe +90,108,316,90,,,N,N,,,GU,GUM,,,Guam,,,,,,Guam,,,,,,,Guam,Guam,Guam,Гуам,关岛,غوام,0,13.47185432,144.784677,9,Oceania,57,Micronesia,,,\bguam,High,USD,1974-01-01,90 - Guam +91,109,320,91,Y,Y,Y,N,Y,Y,GT,GTM,,,Guatemala,,,,,,Guatemala,Guatemala,Guatemala,Гватемала,危地马拉,غواتيمالا,the Republic of Guatemala,Guatemala,Guatemala,Guatemala,Гватемала,危地马拉,غواتيمالا,0,15.699081,-90.35850945,19,Americas,419,Latin America and the Caribbean,13,Central America,guatemala,Upper middle,GTQ,1974-01-01,91 - Guatemala +92,,831,92,,,N,N,,,GG,GGY,,,Guernsey,,,,,,Guernsey,,,,,,,Guernsey,Guernesey,Guernsey,Гернси,格恩西,غيرنسي,0,49.46819115,-2.59052163,150,Europe,154,Northern Europe,830,Channel Islands,guernsey,,GBP,2006-03-29,92 - Guernsey +93,110,324,93,Y,Y,Y,N,,,GN,GIN,,,Guinea,,,,,,Guinea,Guinée,Guinea,Гвинея,几内亚,غينيا,the Republic of Guinea,Guinea,Guinée,Guinea,Гвинея,几内亚,غينيا,0,10.43642262,-10.95068301,2,Africa,202,Sub-Saharan Africa,11,Western Africa,^(?!.*eq)(?!.*span)(?!.*bissau)(?!.*portu)(?!.*new).*guinea,Lower middle,GNF,1974-01-01,93 - Guinea +94,111,624,94,Y,Y,Y,N,,,GW,GNB,,,Guinea-Bissau,,,,,,Guinea-Bissau,Guinée-Bissau,Guinea-Bissau,Гвинея-Бисау,几内亚比绍,غينيا - بيساو,the Republic of Guinea-Bissau,Guinea-Bissau,Guinée-Bissau,Guinea-Bissau,Гвинея-Бисау,几内亚比绍,غينيا - بيساو,0,12.05479161,-14.94108332,2,Africa,202,Sub-Saharan Africa,11,Western Africa,bissau|^(?=.*portu).*guinea,Low,XOF,1974-01-01,94 - Guinea-Bissau +95,112,328,95,Y,Y,Y,N,,Y,GY,GUY,,,Guyana,,,,,,Guyana,Guyana,Guyana,Гайана,圭亚那,غيانا,the Co-operative Republic of Guyana,Guyana,Guyana,Guyana,Гайана,圭亚那,غيانا,0,4.800395012,-58.97699814,19,Americas,419,Latin America and the Caribbean,5,South America,^guyana|british.?gu(y|i)ana,High,GYD,2018-10-11,95 - Guyana +96,113,332,96,Y,Y,Y,N,Y,Y,HT,HTI,,,Haiti,,,,,,Haiti,Haïti,Haití,Гаити,海地,هايتي,the Republic of Haiti,Haiti,Haïti,Haití,Гаити,海地,هايتي,0,18.94164176,-72.65840205,19,Americas,419,Latin America and the Caribbean,29,Caribbean,haiti,Lower middle,HTG,1974-01-01,96 - Haiti +97,114,334,97,,,N,N,,,HM,HMD,,,Heard Island and McDonald Islands,,,,,Heard Island and McDonald Islands (Australia),Heard Island and McDonald Islands,,,,,,,Heard Island and McDonald Islands,Île Heard-et-Îles MacDonald,Islas Heard y McDonald,Остров Херд и острова Макдональд,赫德岛和麦克唐纳岛,جزيرة هيرد وجزر ماكدونالد,0,-53.0998917,73.52881216,9,Oceania,53,Australia and New Zealand,,,heard.*mcdonald,,AUD,1974-01-01,97 - Heard Island and McDonald Islands +98,115,336,98,Y,,Y,N,,,VA,VAT,,,Holy See,Holy See (the),,Holy See (Vatican City State),,,Holy See,Saint-Siège,Santa Sede,Святой Престол,罗马教廷,الكرسي الرسولي,the Holy See,Holy See,Saint-Siège,Santa Sede,Святой Престол,教廷,الكرسي الرسولي,0,41.90336493,12.45225447,150,Europe,39,Southern Europe,,,holy.?see|vatican|papal.?st,,EUR,1996-04-03,98 - Holy See +99,116,340,99,Y,Y,Y,N,Y,Y,HN,HND,,,Honduras,,,,,,Honduras,Honduras,Honduras,Гондурас,洪都拉斯,هندوراس,the Republic of Honduras,Honduras,Honduras,Honduras,Гондурас,洪都拉斯,هندوراس,0,14.80908243,-86.63495948,19,Americas,419,Latin America and the Caribbean,13,Central America,^(?!.*brit).*honduras,Lower middle,HNL,1974-01-01,99 - Honduras +100,59,344,100,,,N,N,,,HK,HKG,,,"China, Hong Kong Special Administrative Region",Hong Kong,,Hong Kong,,China - Hong Kong (Special Administrative Region),"China, Hong Kong Special Administrative Region",,,,,,,"China, Hong Kong Special Administrative Region","Chine, région administrative spéciale de Hong Kong","China, región administrativa especial de Hong Kong","Китай, Специальный административный район Гонконг",中国香港特别行政区,الصين، منطقة هونغ كونغ الإدارية الخاصة,0,22.4216098,114.1539976,142,Asia,30,Eastern Asia,,,hong.?kong,High,HKD,1974-01-01,"100 - China, Hong Kong Special Administrative Region" +101,117,348,101,Y,Y,Y,N,,Y,HU,HUN,,,Hungary,,,,,,Hungary,Hongrie,Hungría,Венгрия,匈牙利,هنغاريا,Hungary,Hungary,Hongrie,Hungría,Венгрия,匈牙利,هنغاريا,0,47.16567815,19.42172591,150,Europe,151,Eastern Europe,,,^(?!.*austr).*hungary,High,HUF,2012-02-15,101 - Hungary +102,118,352,102,Y,Y,Y,N,,,IS,ISL,,,Iceland,,,,,,Iceland,Islande,Islandia,Исландия,冰岛,آيسلندا,Iceland,Iceland,Islande,Islandia,Исландия,冰岛,آيسلندا,0,64.99668622,-18.61425416,150,Europe,154,Northern Europe,,,iceland,High,ISK,2022-10-20,102 - Iceland +103,119,356,103,Y,Y,Y,N,,,IN,IND,,,India,,,,,,India,Inde,India,Индия,印度,الهند,the Republic of India,India,Inde,India,Индия,印度,الهند,0,22.37137039,79.32792202,142,Asia,34,Southern Asia,,,^(?!\D*(?:bassas))\D*india(?!.*ocea)(?!na),Lower middle,INR,1975-01-01,103 - India +104,120,360,104,Y,Y,Y,N,,,ID,IDN,,,Indonesia,,,,,,Indonesia,Indonésie,Indonesia,Индонезия,印度尼西亚,إندونيسيا,the Republic of Indonesia,Indonesia,Indonésie,Indonesia,Индонезия,印度尼西亚,إندونيسيا,0,-2.21433486,117.2844335,142,Asia,35,South-eastern Asia,,,indonesia,Upper middle,IDR,1974-01-01,104 - Indonesia +105,121,364,105,Y,Y,Y,N,,Y,IR,IRN,,,Iran (Islamic Republic of),,,"Iran, Islamic Republic of",Iran,,Iran (Islamic Republic of),Iran (République islamique d'),Irán (República Islámica del),Иран (Исламская Республика),伊朗伊斯兰共和国,إيران (جمهورية - الإسلامية),the Islamic Republic of Iran,Iran (Islamic Republic of),Iran (République islamique d’),Irán (República Islámica del),Иран (Исламская Республика),伊朗伊斯兰共和国,إيران (جمهورية - الإسلامية),0,32.57533772,54.2973284,142,Asia,34,Southern Asia,,,\biran|persia,Lower middle,IRR,1974-01-01,105 - Iran (Islamic Republic of) +106,122,368,106,Y,Y,Y,N,,,IQ,IRQ,,,Iraq,,,,,,Iraq,Iraq,Iraq,Ирак,伊拉克,العراق,the Republic of Iraq,Iraq,Iraq,Iraq,Ирак,伊拉克,العراق,0,33.04497404,43.77207391,142,Asia,145,Western Asia,,,\biraq|mesopotamia,Upper middle,IQD,1974-01-01,106 - Iraq +107,123,372,107,Y,Y,Y,N,,,IE,IRL,,,Ireland,,,,,,Ireland,Irlande,Irlanda,Ирландия,爱尔兰,أيرلندا,Ireland,Ireland,Irlande,Irlanda,Ирландия,爱尔兰,آيرلندا,0,53.16969376,-8.154213185,150,Europe,154,Northern Europe,,,^(?!.*north).*\bireland,High,EUR,1974-01-01,107 - Ireland +108,124,833,108,,,N,N,,,IM,IMN,,,Isle of Man,,,,,Isle of Man (The United Kingdom of Great Britain and Northern Ireland),Isle of Man,,,,,,,Isle of Man,Île de Man,Isla de Man,Остров Мэн,马恩岛,جزيرة مان,0,54.23948288,-4.51817639,150,Europe,154,Northern Europe,,,^(?=.*isle).*\bman,High,GBP,2006-03-29,108 - Isle of Man +109,125,376,109,Y,Y,Y,N,,,IL,ISR,,,Israel,,,,,,Israel,Israël,Israel,Израиль,以色列,إسرائيل,the State of Israel,Israel,Israël,Israel,Израиль,以色列,إسرائيل,0,31.33857325,34.96023155,142,Asia,145,Western Asia,,,israel,High,ILS,1974-01-01,109 - Israel +110,126,380,110,Y,Y,Y,N,,,IT,ITA,,,Italy,,,,,,Italy,Italie,Italia,Италия,意大利,إيطاليا,the Republic of Italy,Italy,Italie,Italia,Италия,意大利,إيطاليا,0,43.76610159,11.68396919,150,Europe,39,Southern Europe,,,italy|italian.?republic,High,EUR,1974-01-01,110 - Italy +111,127,388,111,Y,Y,Y,N,,,JM,JAM,,,Jamaica,,,,,,Jamaica,Jamaïque,Jamaica,Ямайка,牙买加,جامايكا,Jamaica,Jamaica,Jamaïque,Jamaica,Ямайка,牙买加,جامايكا,0,18.15206196,-77.31137184,19,Americas,419,Latin America and the Caribbean,29,Caribbean,jamaica,Upper middle,JMD,1974-01-01,111 - Jamaica +112,128,392,112,Y,Y,Y,N,,,JP,JPN,,,Japan,,,,,,Japan,Japon,Japón,Япония,日本,اليابان,Japan,Japan,Japon,Japón,Япония,日本,اليابان,0,37.63209801,138.0812256,142,Asia,30,Eastern Asia,,,japan,High,JPY,1974-01-01,112 - Japan +113,,832,113,,,N,N,,,JE,JEY,,,Jersey,,,,,,Jersey,,,,,,,Jersey,Jersey,Jersey,Джерси,泽西,جيرسي,0,49.21921539,-2.12999674,150,Europe,154,Northern Europe,830,Channel Islands,jersey,,GBP,2006-03-29,113 - Jersey +114,129,400,114,Y,Y,Y,N,,Y,JO,JOR,,,Jordan,,,,,,Jordan,Jordanie,Jordania,Иордания,约旦,الأردن,the Hashemite Kingdom of Jordan,Jordan,Jordanie,Jordania,Иордания,约旦,الأردن,0,31.25223934,36.78497101,142,Asia,145,Western Asia,,,jordan,Lower middle,JOD,1974-01-01,114 - Jordan +115,130,398,115,Y,Y,Y,N,,,KZ,KAZ,,,Kazakhstan,,,,,,Kazakhstan,Kazakhstan,Kazajstán,Казахстан,哈萨克斯坦,كازاخستان,the Republic of Kazakhstan,Kazakhstan,Kazakhstan,Kazajstán,Казахстан,哈萨克斯坦,كازاخستان,0,48.16011678,67.30440515,142,Asia,143,Central Asia,,,kazak,Upper middle,KZT,2002-05-20,115 - Kazakhstan +116,131,404,116,Y,Y,Y,N,,Y,KE,KEN,,,Kenya,,,,,,Kenya,Kenya,Kenya,Кения,肯尼亚,كينيا,the Republic of Kenya,Kenya,Kenya,Kenya,Кения,肯尼亚,كينيا,0,0.529620946,37.85784174,2,Africa,202,Sub-Saharan Africa,14,Eastern Africa,kenya|british.?east.?africa|east.?africa.?prot,Lower middle,KES,1974-01-01,116 - Kenya +117,132,296,117,Y,Y,Y,N,,,KI,KIR,,,Kiribati,,,,,,Kiribati,Kiribati,Kiribati,Кирибати,基里巴斯,كيريباس,the Republic of Kiribati,Kiribati,Kiribati,Kiribati,Кирибати,基里巴斯,كيريباس,0,1.844810739,-160.2677952,9,Oceania,57,Micronesia,,,kiribati,Lower middle,AUD,1984-01-01,117 - Kiribati +118,74,408,118,Y,Y,Y,N,,,KP,PRK,,,Democratic People's Republic of Korea,Korea (the Democratic People's Republic of),,"Korea, Democratic People's Republic of",DPRK,,Democratic People's Republic of Korea,République populaire démocratique de Corée,República Popular Democrática de Corea,Корейская Народно-Демократическая Республика,朝鲜民主主义人民共和国,جمهورية كوريا الشعبية الديمقراطية,the Democratic People's Republic of Korea,Democratic People's Republic of Korea,République populaire démocratique de Corée,República Popular Democrática de Corea,Корейская Народно-Демократическая Республика,朝鲜民主主义人民共和国,جمهورية كوريا الشعبية الديمقراطية,0,40.14251168,127.1828259,142,Asia,30,Eastern Asia,,,korea.*people|dprk|d.p.r.k|korea.+(d.p.r|dpr|north|dem.*rep.*)|(d.p.r|dpr|north|dem.*rep.*).+korea,Low,KPW,1974-01-01,118 - Democratic People's Republic of Korea +119,194,410,119,Y,Y,Y,N,,,KR,KOR,,,Republic of Korea,Korea (the Republic of),,"Korea, Republic of",,,Republic of Korea,République de Corée,República de Corea,Республика Корея,大韩民国,جمهورية كوريا,the Republic of Korea,Republic of Korea,République de Corée,República de Corea,Республика Корея,大韩民国,جمهورية كوريا,0,36.52377792,127.8821461,142,Asia,30,Eastern Asia,,,^(?!.*d.*p.*r)(?!.*democrat)(?!.*dem.*rep)(?!.*people)(?!.*north).*\bkorea(?!.*d.*p.*r)(?!.*dem.*rep),High,KRW,1974-01-01,119 - Republic of Korea +120,133,414,120,Y,Y,Y,N,,,KW,KWT,,,Kuwait,,,,,,Kuwait,Koweït,Kuwait,Кувейт,科威特,الكويت,the State of Kuwait,Kuwait,Koweït,Kuwait,Кувейт,科威特,الكويت,0,29.29832118,47.53304536,142,Asia,145,Western Asia,,,kuwait,High,KWD,1974-01-01,120 - Kuwait +121,134,417,121,Y,Y,Y,N,,,KG,KGZ,,,Kyrgyzstan,,,,,,Kyrgyzstan,Kirghizistan,Kirguistán,Кыргызстан,吉尔吉斯斯坦,قيرغيزستان,the Kyrgyz Republic,Kyrgyzstan,Kirghizistan,Kirguistán,Кыргызстан,吉尔吉斯斯坦,قيرغيزستان,0,41.46387775,74.55247592,142,Asia,143,Central Asia,,,kyrgyz|kirghiz,Lower middle,KGS,1993-07-25,121 - Kyrgyzstan +122,135,418,122,Y,Y,Y,N,,,LA,LAO,,,Lao People's Democratic Republic,Lao People's Democratic Republic (the),,,Lao PDR,,Lao People's Democratic Republic,République démocratique populaire lao,República Democrática Popular Lao,Лаосская Народно-Демократическая Республика,老挝人民民主共和国,جمهورية لاو الديمقراطية الشعبية,the Lao People's Democratic Republic,Lao People's Democratic Republic,République démocratique populaire lao,República Democrática Popular Lao,Лаосская Народно-Демократическая Республика,老挝人民民主共和国,جمهورية لاو الديمقراطية الشعبية,0,18.50518622,103.7662533,142,Asia,35,South-eastern Asia,,,\blaos?\b,Lower middle,LAK,1974-01-01,122 - Lao People's Democratic Republic +123,136,428,123,Y,Y,Y,N,,Y,LV,LVA,,,Latvia,,,,,,Latvia,Lettonie,Letonia,Латвия,拉脱维亚,لاتفيا,the Republic of Latvia,Latvia,Lettonie,Letonia,Латвия,拉脱维亚,لاتفيا,0,56.85765774,24.92335393,150,Europe,154,Northern Europe,,,latvia,High,EUR,1992-06-15,123 - Latvia +124,137,422,124,Y,Y,Y,N,,Y,LB,LBN,,,Lebanon,,,,,,Lebanon,Liban,Líbano,Ливан,黎巴嫩,لبنان,the Lebanese Republic,Lebanon,Liban,Líbano,Ливан,黎巴嫩,لبنان,0,33.91995955,35.88513386,142,Asia,145,Western Asia,,,lebanon,Lower middle,LBP,1974-01-01,124 - Lebanon +125,138,426,125,Y,Y,Y,N,,,LS,LSO,,,Lesotho,,,,,,Lesotho,Lesotho,Lesotho,Лесото,莱索托,ليسوتو,the Kingdom of Lesotho,Lesotho,Lesotho,Lesotho,Лесото,莱索托,ليسوتو,0,-29.58448841,28.24105147,2,Africa,202,Sub-Saharan Africa,18,Southern Africa,lesotho|basuto,Lower middle,LSL,1974-01-01,125 - Lesotho +126,139,430,126,Y,Y,Y,N,,,LR,LBR,,,Liberia,,,,,,Liberia,Libéria,Liberia,Либерия,利比里亚,ليبريا,the Republic of Liberia,Liberia,Libéria,Liberia,Либерия,利比里亚,ليبريا,0,6.445498409,-9.307443775,2,Africa,202,Sub-Saharan Africa,11,Western Africa,liberia,Low,LRD,1974-01-01,126 - Liberia +127,140,434,127,Y,Y,Y,N,,Y,LY,LBY,,,Libya,,,,,,Libya,Libye,Libia,Ливия,利比亚,ليبيا,the State of Libya,Libya,Libye,Libia,Ливия,利比亚,ليبيا,0,27.04420762,18.02212777,2,Africa,15,Northern Africa,,,libya,Upper middle,LYD,2018-01-03,127 - Libya +128,141,438,128,Y,Y,Y,N,,,LI,LIE,,,Liechtenstein,,,,,,Liechtenstein,Liechtenstein,Liechtenstein,Лихтенштейн,列支敦士登,ليختنشتاين,the Principality of Liechtenstein,Liechtenstein,Liechtenstein,Liechtenstein,Лихтенштейн,列支敦士登,ليختنشتاين,0,47.16457362,9.558885464,150,Europe,155,Western Europe,,,liechtenstein,High,CHF,1974-01-01,128 - Liechtenstein +129,142,440,129,Y,Y,Y,N,,Y,LT,LTU,,,Lithuania,,,,,,Lithuania,Lituanie,Lituania,Литва,立陶宛,ليتوانيا,the Republic of Lithuania,Lithuania,Lituanie,Lituania,Литва,立陶宛,ليتوانيا,0,55.3344892,23.90739502,150,Europe,154,Northern Europe,,,lithuania,High,EUR,1992-06-15,129 - Lithuania +130,143,442,130,Y,Y,Y,N,,,LU,LUX,,,Luxembourg,,,,,,Luxembourg,Luxembourg,Luxemburgo,Люксембург,卢森堡,لكسمبرغ,the Grand Duchy of Luxembourg,Luxembourg,Luxembourg,Luxemburgo,Люксембург,卢森堡,لكسمبرغ,0,49.77027091,6.08637699,150,Europe,155,Western Europe,,,^(?!.*belg).*luxem,High,EUR,1974-01-01,130 - Luxembourg +131,60,446,131,,,N,N,,,MO,MAC,,,"China, Macao Special Administrative Region",Macao,,Macao,,China - Macau (Special Administrative Region),Macao,,,,,,,"China, Macao Special Administrative Region","Chine, région administrative spéciale de Macao","China, región administrativa especial de Macao","Китай, Специальный административный район Макао",中国澳门特别行政区,الصين، منطقة ماكاو الإدارية الخاصة,0,22.1985265,113.5450075,142,Asia,30,Eastern Asia,,,maca(o|u),High,MOP,1974-01-01,"131 - China, Macao Special Administrative Region" +132,229,807,132,Y,Y,Y,N,,,MK,MKD,,,North Macedonia,,,"North Macedonia, Republic of",,the Republic of North Macedonia,North Macedonia,Macédoine du Nord,Macedonia del Norte,Северная Македония,北马其顿,مقدونيا الشمالية,the Republic of North Macedonia,North Macedonia,Macédoine du Nord,Macedonia del Norte,Северная Македония,北马其顿,مقدونيا الشمالية,0,41.59654823,21.69480535,150,Europe,39,Southern Europe,,,macedonia|^f\.?y\.?r\.?o\.?m\.?$,Upper middle,MKD,2019-02-14,132 - North Macedonia +133,144,450,133,Y,Y,Y,N,,,MG,MDG,,,Madagascar,,,,,,Madagascar,Madagascar,Madagascar,Мадагаскар,马达加斯加,مدغشقر,the Republic of Madagascar,Madagascar,Madagascar,Madagascar,Мадагаскар,马达加斯加,مدغشقر,0,-19.37969027,46.70406219,2,Africa,202,Sub-Saharan Africa,14,Eastern Africa,madagascar|malagasy,Low,MGA,1993-07-12,133 - Madagascar +134,146,454,134,Y,Y,Y,N,,Y,MW,MWI,,,Malawi,,,,,,Malawi,Malawi,Malawi,Малави,马拉维,ملاوي,the Republic of Malawi,Malawi,Malawi,Malawi,Малави,马拉维,ملاوي,0,-13.21991287,34.31171876,2,Africa,202,Sub-Saharan Africa,14,Eastern Africa,malawi|nyasa,Low,MWK,1974-01-01,134 - Malawi +135,147,458,135,Y,Y,Y,N,,,MY,MYS,,,Malaysia,,,,,,Malaysia,Malaisie,Malasia,Малайзия,马来西亚,ماليزيا,Malaysia,Malaysia,Malaisie,Malasia,Малайзия,马来西亚,ماليزيا,0,2.745185714,140.4915783,142,Asia,35,South-eastern Asia,,,malaysia,Upper middle,MYR,1974-01-01,135 - Malaysia +136,148,462,136,Y,Y,Y,N,,,MV,MDV,,,Maldives,,,,,,Maldives,Maldives,Maldivas,Мальдивские Острова,马尔代夫,ملديف,the Republic of Maldives,Maldives,Maldives,Maldivas,Мальдивские Острова,马尔代夫,ملديف,0,5.068606213,73.32614511,142,Asia,34,Southern Asia,,,maldive,Upper middle,MVR,1974-01-01,136 - Maldives +137,149,466,137,Y,Y,Y,N,Y,Y,ML,MLI,,,Mali,,,,,,Mali,Mali,Malí,Мали,马里,مالي,the Republic of Mali,Mali,Mali,Malí,Мали,马里,مالي,0,17.34640627,-3.525051581,2,Africa,202,Sub-Saharan Africa,11,Western Africa,\bmali\b,Low,XOF,1974-01-01,137 - Mali +138,150,470,138,Y,Y,Y,N,,,MT,MLT,,,Malta,,,,,,Malta,Malte,Malta,Мальта,马耳他,مالطة,the Republic of Malta,Malta,Malte,Malta,Мальта,马耳他,مالطة,0,35.90417953,14.42365795,150,Europe,39,Southern Europe,,,\bmalta,High,EUR,1974-01-01,138 - Malta +139,151,584,139,Y,Y,Y,N,,,MH,MHL,,,Marshall Islands,Marshall Islands (the),,,,,Marshall Islands,Îles Marshall,Islas Marshall,Маршалловы Острова,马绍尔群岛,جزر مارشال,the Republic of the Marshall Islands,Marshall Islands,Îles Marshall,Islas Marshall,Маршалловы Острова,马绍尔群岛,جزر مارشال,0,9.499091883,169.0954645,9,Oceania,57,Micronesia,,,marshall,Upper middle,USD,1986-01-01,139 - Marshall Islands +140,152,474,140,,,N,N,,,MQ,MTQ,,,Martinique,,,Martinique (France),,Martinique (France),Martinique,,,,,,,Martinique,Martinique,Martinica,Мартиника,马提尼克,مارتينيك,0,14.65403719,-61.02842534,19,Americas,419,Latin America and the Caribbean,29,Caribbean,martinique,,EUR,1974-01-01,140 - Martinique +141,153,478,141,Y,Y,Y,N,,,MR,MRT,,,Mauritania,,,,,,Mauritania,Mauritanie,Mauritania,Мавритания,毛里塔尼亚,موريتانيا,the Islamic Republic of Mauritania,Mauritania,Mauritanie,Mauritania,Мавритания,毛里塔尼亚,موريتانيا,0,20.25780429,-10.33010275,2,Africa,202,Sub-Saharan Africa,11,Western Africa,mauritania,Lower middle,MRU,1974-01-01,141 - Mauritania +142,154,480,142,Y,Y,Y,N,,,MU,MUS,,,Mauritius,,,,,,Mauritius,Maurice,Mauricio,Маврикий,毛里求斯,موريشيوس,the Republic of Mauritius,Mauritius,Maurice,Mauricio,Маврикий,毛里求斯,موريشيوس,0,-20.27530781,57.56676664,2,Africa,202,Sub-Saharan Africa,14,Eastern Africa,mauritius,Upper middle,MUR,1974-01-01,142 - Mauritius +143,155,175,143,,,N,N,,,YT,MYT,,,Mayotte,,,,,Mayotte (France),Mayotte,,,,,,,Mayotte,Mayotte,Mayotte,Остров Майотта,马约特,مايوت,0,-12.81970382,45.13516865,2,Africa,202,Sub-Saharan Africa,14,Eastern Africa,\bmayotte,,EUR,1993-07-12,143 - Mayotte +144,156,484,144,Y,Y,Y,N,,Y,MX,MEX,,,Mexico,,,,,,Mexico,Mexique,México,Мексика,墨西哥,المكسيك,the United Mexican States,Mexico,Mexique,México,Мексика,墨西哥,المكسيك,0,23.93832004,-102.5023164,19,Americas,419,Latin America and the Caribbean,13,Central America,\bmexic,Upper middle,MXN,1974-01-01,144 - Mexico +145,157,583,145,Y,Y,Y,N,,,FM,FSM,,,Micronesia (Federated States of),,,"Micronesia, Federated States of",Micronesia,,Micronesia (Federated States of),Micronésie (États fédérés de),Micronesia (Estados Federados de),Микронезия (Федеративные Штаты),密克罗尼西亚联邦,ميكرونيزيا (ولايات - الموحدة),the Federated States of Micronesia,Micronesia (Federated States of),Micronésie (États fédérés de),Micronesia (Estados Federados de),Микронезия (Федеративные Штаты),密克罗尼西亚联邦,ميكرونيزيا (ولايات - الموحدة),0,6.879864281,158.2381178,9,Oceania,57,Micronesia,,,fed.*micronesia|micronesia.*fed,Lower middle,USD,1992-04-19,145 - Micronesia (Federated States of) +146,158,498,146,Y,Y,Y,N,,Y,MD,MDA,,,Republic of Moldova,Moldova (the Republic of),,"Moldova, Republic of",,Moldova,Republic of Moldova,République de Moldova,República de Moldova,Республика Молдова,摩尔多瓦共和国,جمهورية مولدوفا,the Republic of Moldova,Republic of Moldova,République de Moldova,República de Moldova,Республика Молдова,摩尔多瓦共和国,جمهورية مولدوفا,0,47.19293174,28.47499987,150,Europe,151,Eastern Europe,,,moldov|b(a|e)ssarabia,Upper middle,MDL,2009-01-07,146 - Republic of Moldova +147,159,492,147,Y,Y,Y,N,,,MC,MCO,,,Monaco,,,,,,Monaco,Monaco,Mónaco,Монако,摩纳哥,موناكو,the Principality of Monaco,Monaco,Monaco,Mónaco,Монако,摩纳哥,موناكو,0,43.74830756,7.410882167,150,Europe,155,Western Europe,,,monaco,High,EUR,1974-01-01,147 - Monaco +148,160,496,148,Y,Y,Y,N,,,MN,MNG,,,Mongolia,,,,,,Mongolia,Mongolie,Mongolia,Монголия,蒙古,منغوليا,Mongolia,Mongolia,Mongolie,Mongolia,Монголия,蒙古,منغوليا,0,46.83576732,103.0813238,142,Asia,30,Eastern Asia,,,mongolia,Lower middle,MNT,1974-01-01,148 - Mongolia +149,161,499,149,Y,Y,Y,N,,,ME,MNE,,,Montenegro,,,,,,Montenegro,Monténégro,Montenegro,Черногория,黑山,الجبل الأسود,Montenegro,Montenegro,Monténégro,Montenegro,Черногория,黑山,الجبل الأسود,0,42.78905871,19.26989732,150,Europe,39,Southern Europe,,,^(?!.*serbia).*montenegro,Upper middle,EUR,2006-09-26,149 - Montenegro +150,162,500,150,,,N,N,,,MS,MSR,,,Montserrat,,,,,,Montserrat,,,,,,,Montserrat,Montserrat,Montserrat,Монтсеррат,蒙特塞拉特,مونتسيرات,0,16.73536624,-62.18693595,19,Americas,419,Latin America and the Caribbean,29,Caribbean,montserrat,,XCD,1974-01-01,150 - Montserrat +151,163,504,151,Y,Y,Y,N,,,MA,MAR,,,Morocco,,,,,,Morocco,Maroc,Marruecos,Марокко,摩洛哥,المغرب,the Kingdom of Morocco,Morocco,Maroc,Marruecos,Марокко,摩洛哥,المغرب,0,31.8836769,-6.317283613,2,Africa,15,Northern Africa,,,morocco|\bmaroc,Lower middle,MAD,1974-01-01,151 - Morocco +152,164,508,152,Y,Y,Y,N,Y,Y,MZ,MOZ,,,Mozambique,,,,,,Mozambique,Mozambique,Mozambique,Мозамбик,莫桑比克,موزامبيق,the Republic of Mozambique,Mozambique,Mozambique,Mozambique,Мозамбик,莫桑比克,موزامبيق,0,-17.2617763,35.55202528,2,Africa,202,Sub-Saharan Africa,14,Eastern Africa,mozambique,Low,MZM,1974-01-01,152 - Mozambique +153,165,104,153,Y,Y,Y,N,Y,Y,MM,MMR,,,Myanmar,,,,,,Myanmar,Myanmar,Myanmar,Мьянма,缅甸,ميانمار,the Republic of the Union of Myanmar,Myanmar,Myanmar,Myanmar,Мьянма,缅甸,ميانمار,0,21.17952353,96.50232755,142,Asia,35,South-eastern Asia,,,myanmar|burma,Lower middle,MMK,2011-06-12,153 - Myanmar +154,166,516,154,Y,Y,Y,N,,,NA,NAM,,,Namibia,,,,,,Namibia,Namibie,Namibia,Намибия,纳米比亚,ناميبيا,the Republic of Namibia,Namibia,Namibie,Namibia,Намибия,纳米比亚,ناميبيا,0,-22.13362728,17.21558466,2,Africa,202,Sub-Saharan Africa,18,Southern Africa,namibia,Upper middle,NAD,1974-01-01,154 - Namibia +155,167,520,155,Y,Y,Y,N,,,NR,NRU,,,Nauru,,,,,,Nauru,Nauru,Nauru,Науру,瑙鲁,ناورو,the Republic of Nauru,Nauru,Nauru,Nauru,Науру,瑙鲁,ناورو,0,-0.528781574,166.9232132,9,Oceania,57,Micronesia,,,nauru,High,AUD,1974-01-01,155 - Nauru +156,168,524,156,Y,Y,Y,N,,,NP,NPL,,,Nepal,,,,,,Nepal,Népal,Nepal,Непал,尼泊尔,نيبال,Nepal,Nepal,Népal,Nepal,Непал,尼泊尔,نيبال,0,28.25396507,83.9316657,142,Asia,34,Southern Asia,,,nepal,Lower middle,NPR,2020-12-15,156 - Nepal +157,169,528,157,Y,Y,Y,N,,,NL,NLD,,,Netherlands (Kingdom of the),,Netherlands,Netherlands,,,Netherlands (Kingdom of the),Pays-Bas (Royaume des),Países Bajos (Reino de los),Нидерланды (Королевство),荷兰王国,هولندا (مملكة _),the Kingdom of the Netherlands,Netherlands (Kingdom of the),Pays-Bas (Royaume des),Países Bajos (Reino de los),Нидерланды (Королевство),荷兰王国,هولندا (مملكة _),0,52.26998137,5.675062933,150,Europe,155,Western Europe,,,^(?!.*\bant)(?!.*\bcarib).*netherlands|holland,High,EUR,2023-03-10,157 - Netherlands (Kingdom of the) +158,170,,158,,,N,Y,,,,,AN,ANT,Netherlands Antilles (The Netherlands),,,,,Netherlands Antilles (The Netherlands),Netherlands Antilles,,,,,,,,,,,,,0,15.49421103,-67.12509177,19,Americas,419,Latin America and the Caribbean,29,Caribbean,netherlands.antil|dutch.antil,,ANG,1974-01-01,158 - Netherlands Antilles (The Netherlands) +159,171,540,159,,,N,N,,,NC,NCL,,,New Caledonia,,,,,New Caledonia (France),New Caledonia,,,,,,,New Caledonia,Nouvelle-Calédonie,Nueva Caledonia,Новая Каледония,新喀里多尼亚,كاليدونيا الجديدة,0,-21.33942425,165.2996228,9,Oceania,54,Melanesia,,,new.?caledonia,High,XPF,1974-01-01,159 - New Caledonia +160,172,554,160,Y,Y,Y,N,,,NZ,NZL,,,New Zealand,,,,,,New Zealand,Nouvelle-Zélande,Nueva Zelandia,Новая Зеландия,新西兰,نيوزيلندا,New Zealand,New Zealand,Nouvelle-Zélande,Nueva Zelandia,Новая Зеландия,新西兰,نيوزيلندا,0,-56.5161571,161.1190313,9,Oceania,53,Australia and New Zealand,,,new.?zealand,High,NZD,1974-01-01,160 - New Zealand +161,173,558,161,Y,Y,Y,N,,,NI,NIC,,,Nicaragua,,,,,,Nicaragua,Nicaragua,Nicaragua,Никарагуа,尼加拉瓜,نيكاراغوا,the Republic of Nicaragua,Nicaragua,Nicaragua,Nicaragua,Никарагуа,尼加拉瓜,نيكاراغوا,0,12.83712778,-85.03655572,19,Americas,419,Latin America and the Caribbean,13,Central America,nicaragua,Lower middle,NIO,1974-01-01,161 - Nicaragua +162,174,562,162,Y,Y,Y,N,Y,Y,NE,NER,,,Niger,Niger (the),,,,,Niger,Niger,Níger,Нигер,尼日尔,النيجر,the Republic of the Niger,Niger,Niger,Níger,Нигер,尼日尔,النيجر,0,17.42463558,9.397470038,2,Africa,202,Sub-Saharan Africa,11,Western Africa,\bniger(?!ia),Low,XOF,1974-01-01,162 - Niger +163,175,566,163,Y,Y,Y,N,Y,Y,NG,NGA,,,Nigeria,,,,,,Nigeria,Nigéria,Nigeria,Нигерия,尼日利亚,نيجيريا,the Federal Republic of Nigeria,Nigeria,Nigéria,Nigeria,Нигерия,尼日利亚,نيجيريا,0,9.590667555,8.10605344,2,Africa,202,Sub-Saharan Africa,11,Western Africa,nigeria,Lower middle,NGN,1974-01-01,163 - Nigeria +164,176,570,164,Y,,Y,N,,,NU,NIU,,,Niue,,,,,Niue (New Zealand),Niue,Nioué,Niue,Ниуэ,纽埃,نيوي,Niue,Niue,Nioué,Niue,Ниуэ,纽埃,نيوي,0,-19.05213426,-169.8688481,9,Oceania,61,Polynesia,,,niue,,NZD,2011-06-12,164 - Niue +165,177,574,165,,,N,N,,,NF,NFK,,,Norfolk Island,,,,,Norfolk Island (Australia),Norfolk Island,,,,,,,Norfolk Island,Île Norfolk,Isla Norfolk,Остров Норфолк,诺福克岛,جزيرة نورفولك,0,-29.0376577,167.952597,9,Oceania,53,Australia and New Zealand,,,norfolk,,AUD,1974-01-01,165 - Norfolk Island +166,179,578,167,Y,Y,Y,N,,,NO,NOR,,,Norway,,,,,,Norway,Norvège,Noruega,Норвегия,挪威,النرويج,the Kingdom of Norway,Norway,Norvège,Noruega,Норвегия,挪威,النرويج,0,64.41197955,14.06269622,150,Europe,154,Northern Europe,,,norway,High,NOK,1974-01-01,166 - Norway +167,181,512,168,Y,Y,Y,N,,,OM,OMN,,,Oman,,,,,,Oman,Oman,Omán,Оман,阿曼,عمان,the Sultanate of Oman,Oman,Oman,Omán,Оман,阿曼,عمان,0,20.53707855,56.1036955,142,Asia,145,Western Asia,,,\boman|trucial,High,OMR,1974-01-01,167 - Oman +168,182,586,169,Y,Y,Y,N,,Y,PK,PAK,,,Pakistan,,,,,,Pakistan,Pakistan,Pakistán,Пакистан,巴基斯坦,باكستان,the Islamic Republic of Pakistan,Pakistan,Pakistan,Pakistán,Пакистан,巴基斯坦,باكستان,0,29.35468377,68.78655545,142,Asia,34,Southern Asia,,,^(?!.*east).*paki?stan,Lower middle,PKR,1974-01-01,168 - Pakistan +169,183,585,170,Y,Y,Y,N,,,PW,PLW,,,Palau,,,,,,Palau,Palaos,Palau,Палау,帕劳,بالاو,the Republic of Palau,Palau,Palaos,Palau,Палау,帕劳,بالاو,0,7.514890523,134.5751097,9,Oceania,57,Micronesia,,,palau,Upper middle,USD,1986-01-01,169 - Palau +170,180,275,171,Y,,Y,N,,Y,PS,PSE,,,State of Palestine,"Palestine, State of",,occupied Palestinian territory,oPt,occupied Palestinian territory,State of Palestine,État de Palestine,Estado de Palestina,Государство Палестина,巴勒斯坦国,دولة فلسطين,the State of Palestine,State of Palestine,État de Palestine,Estado de Palestina,Государство Палестина,巴勒斯坦国,دولة فلسطين,0,31.99084142,35.30744047,142,Asia,145,Western Asia,,,palestin|\bgaza|west.?bank,Upper middle,ILS,2013-02-06,170 - State of Palestine +171,184,591,172,Y,Y,Y,N,,Y,PA,PAN,,,Panama,,,,,,Panama,Panama,Panamá,Панама,巴拿马,بنما,the Republic of Panama,Panama,Panama,Panamá,Панама,巴拿马,بنما,0,8.518057314,-80.07104511,19,Americas,419,Latin America and the Caribbean,13,Central America,panama,High,PAB,1993-07-22,171 - Panama +172,185,598,173,Y,Y,Y,N,,,PG,PNG,,,Papua New Guinea,,,,PNG,,Papua New Guinea,Papouasie-Nouvelle-Guinée,Papua Nueva Guinea,Папуа — Новая Гвинея,巴布亚新几内亚,بابوا غينيا الجديدة,the Independent State of Papua New Guinea,Papua New Guinea,Papouasie-Nouvelle-Guinée,Papua Nueva Guinea,Папуа-Новая Гвинея,巴布亚新几内亚,بابوا غينيا الجديدة,0,-6.834760878,143.0464597,9,Oceania,54,Melanesia,,,papua|new.?guinea,Lower middle,PGK,1974-01-01,172 - Papua New Guinea +173,186,600,174,Y,Y,Y,N,,Y,PY,PRY,,,Paraguay,,,,,,Paraguay,Paraguay,Paraguay,Парагвай,巴拉圭,باراغواي,the Republic of Paraguay,Paraguay,Paraguay,Paraguay,Парагвай,巴拉圭,باراغواي,0,-23.23840821,-58.39126243,19,Americas,419,Latin America and the Caribbean,5,South America,paraguay,Upper middle,PYG,1974-01-01,173 - Paraguay +174,187,604,175,Y,Y,Y,N,,Y,PE,PER,,,Peru,,,,,,Peru,Pérou,Perú,Перу,秘鲁,بيرو,the Republic of Peru,Peru,Pérou,Perú,Перу,秘鲁,بيرو,0,-9.167216491,-74.37537796,19,Americas,419,Latin America and the Caribbean,5,South America,peru,Upper middle,PEN,1974-01-01,174 - Peru +175,188,608,176,Y,Y,Y,N,,Y,PH,PHL,,,Philippines,Philippines (the),,,,,Philippines,Philippines,Filipinas,Филиппины,菲律宾,الفلبين,the Republic of the Philippines,Philippines,Philippines,Filipinas,Филиппины,菲律宾,الفلبين,0,-0.736653675,127.2358509,142,Asia,35,South-eastern Asia,,,philippines,Lower middle,PHP,1976-01-01,175 - Philippines +176,189,612,177,,,N,N,,,PN,PCN,,,Pitcairn,,,,,Pitcairn Islands,Pitcairn,,,,,,,Pitcairn,Pitcairn,Pitcairn,Питкэрн,皮特凯恩,بيتكرن,0,-24.2051566,-127.9093208,9,Oceania,61,Polynesia,,,pitcairn,,NZD,1974-01-01,176 - Pitcairn +177,190,616,178,Y,Y,Y,N,,Y,PL,POL,,,Poland,,,,,,Poland,Pologne,Polonia,Польша,波兰,بولندا,the Republic of Poland,Poland,Pologne,Polonia,Польша,波兰,بولندا,0,52.12847492,19.40086,150,Europe,151,Eastern Europe,,,poland,High,PLN,1974-01-01,177 - Poland +178,191,620,179,Y,Y,Y,N,,,PT,PRT,,,Portugal,,,,,,Portugal,Portugal,Portugal,Португалия,葡萄牙,البرتغال,the Portuguese Republic,Portugal,Portugal,Portugal,Португалия,葡萄牙,البرتغال,0,39.23901506,-30.21832194,150,Europe,39,Southern Europe,,,portugal,High,EUR,1974-01-01,178 - Portugal +179,192,630,180,,,N,N,,,PR,PRI,,,Puerto Rico,,,Puerto Rico (United States),,Puerto Rico (The United States of America),Puerto Rico,,,,,,,Puerto Rico,Porto Rico,Puerto Rico,Пуэрто-Рико,波多黎各,بورتوريكو,0,18.22412124,-66.47814528,19,Americas,419,Latin America and the Caribbean,29,Caribbean,puerto.?rico,High,USD,1974-01-01,179 - Puerto Rico +180,193,634,181,Y,Y,Y,N,,,QA,QAT,,,Qatar,,,,,,Qatar,Qatar,Qatar,Катар,卡塔尔,قطر,the State of Qatar,Qatar,Qatar,Qatar,Катар,卡塔尔,قطر,0,25.29089005,51.1841661,142,Asia,145,Western Asia,,,qatar,High,QAR,1974-01-01,180 - Qatar +181,195,638,182,,,N,N,,,RE,REU,,,Réunion,,,,,Réunion (France),Réunion,,,,,,,Réunion,Réunion,Reunión,Реюньон,留尼汪,ريونيون,0,-21.12280909,55.55123933,2,Africa,202,Sub-Saharan Africa,14,Eastern Africa,r(e|é)union,,EUR,1974-01-01,181 - Réunion +182,196,642,183,Y,Y,Y,N,,Y,RO,ROU,,,Romania,,,,,,Romania,Roumanie,Rumania,Румыния,罗马尼亚,رومانيا,Romania,Romania,Roumanie,Rumania,Румыния,罗马尼亚,رومانيا,0,45.84314501,24.96613666,150,Europe,151,Eastern Europe,,,r(o|u|ou)mania,High,RON,2002-02-01,182 - Romania +183,197,643,184,Y,Y,Y,N,,,RU,RUS,,,Russian Federation,Russian Federation (the),,,Russia,,Russian Federation,Fédération de Russie,Federación de Rusia,Российская Федерация,俄罗斯联邦,الاتحاد الروسي,the Russian Federation,Russian Federation,Fédération de Russie,Federación de Rusia,Российская Федерация,俄罗斯联邦,الاتحاد الروسي,0,61.97564081,96.67837519,150,Europe,151,Eastern Europe,,,\brussia,Upper middle,RUB,1992-06-15,183 - Russian Federation +184,198,646,185,Y,Y,Y,N,,Y,RW,RWA,,,Rwanda,,,,,,Rwanda,Rwanda,Rwanda,Руанда,卢旺达,رواندا,the Republic of Rwanda,Rwanda,Rwanda,Rwanda,Руанда,卢旺达,رواندا,0,-1.991722808,29.92068123,2,Africa,202,Sub-Saharan Africa,14,Eastern Africa,rwanda,Low,RWF,1974-01-01,184 - Rwanda +185,14890,652,186,,,N,N,,,BL,BLM,,,Saint Barthélemy,,,Saint Barthélemy (France),,Saint Barthélemy (France),Saint Barthélemy,,,,,,,Saint Barthélemy,Saint-Barthélemy,San Barthélemy,Сен-Бартелеми,圣巴泰勒米,سان بارتليمي,0,17.90896225,-62.82613534,19,Americas,419,Latin America and the Caribbean,29,Caribbean,barth(e|é)lemy,,EUR,2007-09-21,185 - Saint Barthélemy +186,199,654,187,,,N,N,,,SH,SHN,,,Saint Helena,"Saint Helena, Ascension and Tristan da Cunha",,"Saint Helena, Ascension and Tristan da Cunha",,,Saint Helena,,,,,,,Saint Helena,Sainte-Hélène,Santa Elena,Остров Святой Елены,圣赫勒拿,سانت هيلانة,0,-37.11173844,-12.28290657,2,Africa,202,Sub-Saharan Africa,11,Western Africa,helena,,SHP,1974-01-01,186 - Saint Helena +187,200,659,188,Y,Y,Y,N,,,KN,KNA,,,Saint Kitts and Nevis,,,,,,Saint Kitts and Nevis,Saint-Kitts-et-Nevis,Saint Kitts y Nevis,Сент-Китс и Невис,圣基茨和尼维斯,سانت كيتس ونيفس,Saint Kitts and Nevis,Saint Kitts and Nevis,Saint-Kitts-et-Nevis,Saint Kitts y Nevis,Сент-Китс и Невис,圣基茨和尼维斯,سانت كيتس ونيفس,0,17.32619066,-62.7533967,19,Americas,419,Latin America and the Caribbean,29,Caribbean,kitts|\bnevis,High,XCD,1985-01-01,187 - Saint Kitts and Nevis +188,201,662,189,Y,Y,Y,N,,,LC,LCA,,,Saint Lucia,,,,,,Saint Lucia,Sainte-Lucie,Santa Lucía,Сент-Люсия,圣卢西亚,سانت لوسيا,Saint Lucia,Saint Lucia,Sainte-Lucie,Santa Lucía,Сент-Люсия,圣卢西亚,سانت لوسيا,0,13.90391475,-60.96175259,19,Americas,419,Latin America and the Caribbean,29,Caribbean,\blucia,Upper middle,XCD,1974-01-01,188 - Saint Lucia +189,14891,663,190,,,N,N,,,MF,MAF,,,Saint Martin (French part),,,Saint Martin (France),,Saint Martin (France),Saint Martin,,,,,,,Saint Martin (French Part),Saint-Martin (partie française),San Martín (parte francesa),Сен-Мартен (французская часть),圣马丁(法属),سانت مارتن (الجزء الفرنسي),0,18.09128952,-63.05163864,19,Americas,419,Latin America and the Caribbean,29,Caribbean,saint.martin.*FR|^(?=.*collectivity).*martin|^(?=.*france).*martin(?!ique)|^(?=.*french).*martin(?!ique),High,EUR,2007-09-21,189 - Saint Martin (French part) +190,202,666,191,,,N,N,,,PM,SPM,,,Saint Pierre and Miquelon,,,,,Saint Pierre and Miquelon (France),Saint Pierre and Miquelon,,,,,,,Saint Pierre and Miquelon,Saint-Pierre-et-Miquelon,San Pedro y Miquelón,Сен-Пьер и Микелон,圣皮埃尔和密克隆,سان بيير وميكلون,0,46.78737259,-56.21105237,19,Americas,21,Northern America,,,miquelon,,EUR,1974-01-01,190 - Saint Pierre and Miquelon +191,203,670,192,Y,Y,Y,N,,,VC,VCT,,,Saint Vincent and the Grenadines,,,,St. Vincent & Grenadines,,Saint Vincent and the Grenadines,Saint-Vincent-et-les Grenadines,San Vicente y las Granadinas,Сент-Винсент и Гренадины,圣文森特和格林纳丁斯,سانت فنسنت وجزر غرينادين,Saint Vincent and the Grenadines,Saint Vincent and the Grenadines,Saint-Vincent-et-les Grenadines,San Vicente y las Granadinas,Сент-Винсент и Гренадины,圣文森特和格林纳丁斯,سانت فنسنت وجزر غرينادين,0,13.25481082,-61.19376585,19,Americas,419,Latin America and the Caribbean,29,Caribbean,vincent,Upper middle,XCD,1974-01-01,191 - Saint Vincent and the Grenadines +192,204,882,193,Y,Y,Y,N,,,WS,WSM,,,Samoa,,,,,,Samoa,Samoa,Samoa,Самоа,萨摩亚,ساموا,the Independent State of Samoa,Samoa,Samoa,Samoa,Самоа,萨摩亚,ساموا,0,-13.16992041,-173.5139768,9,Oceania,61,Polynesia,,,^(?!.*amer).*samoa,Lower middle,WST,1998-02-05,192 - Samoa +193,205,674,194,Y,Y,Y,N,,,SM,SMR,,,San Marino,,,,,,San Marino,Saint-Marin,San Marino,Сан-Марино,圣马力诺,سان مارينو,the Republic of San Marino,San Marino,Saint-Marin,San Marino,Сан-Марино,圣马力诺,سان مارينو,0,43.94362477,12.45862763,150,Europe,39,Southern Europe,,,san.?marino,High,EUR,1974-01-01,193 - San Marino +194,206,678,195,Y,Y,Y,N,,,ST,STP,,,Sao Tome and Principe,,,São Tomé and Príncipe,,,Sao Tome and Principe,Sao Tomé-et-Principe,Santo Tomé y Príncipe,Сан-Томе и Принсипи,圣多美和普林西比,سان تومي وبرينسيبي,the Democratic Republic of Sao Tome and Principe,Sao Tome and Principe,Sao Tomé-et-Principe,Santo Tomé y Príncipe,Сан-Томе и Принсипи,圣多美和普林西比,سان تومي وبرينسيبي,0,0.227069777,6.614376446,2,Africa,202,Sub-Saharan Africa,17,Middle Africa,\bs(a|ã)o.?tom(e|é),Lower middle,STN,1974-01-01,194 - Sao Tome and Principe +195,207,682,196,Y,Y,Y,N,,,SA,SAU,,,Saudi Arabia,,,,,,Saudi Arabia,Arabie saoudite,Arabia Saudita,Саудовская Аравия,沙特阿拉伯,المملكة العربية السعودية,the Kingdom of Saudi Arabia,Saudi Arabia,Arabie saoudite,Arabia Saudita,Саудовская Аравия,沙特阿拉伯,المملكة العربية السعودية,0,24.12628999,44.54637538,142,Asia,145,Western Asia,,,\bsa\w*.?arabia,High,SAR,1974-01-01,195 - Saudi Arabia +196,208,686,197,Y,Y,Y,N,,,SN,SEN,,,Senegal,,,,,,Senegal,Sénégal,Senegal,Сенегал,塞内加尔,السنغال,the Republic of Senegal,Senegal,Sénégal,Senegal,Сенегал,塞内加尔,السنغال,0,14.35710542,-14.4780169,2,Africa,202,Sub-Saharan Africa,11,Western Africa,senegal,Lower middle,XOF,1974-01-01,196 - Senegal +197,209,688,198,Y,Y,Y,N,,,RS,SRB,,,Serbia,,,,,,Serbia,Serbie,Serbia,Сербия,塞尔维亚,صربيا,the Republic of Serbia,Serbia,Serbie,Serbia,Сербия,塞尔维亚,صربيا,0,44.03017332,20.80259395,150,Europe,39,Southern Europe,,,^(?!.*monte).*serbia.*,Upper middle,RSD,2006-09-26,197 - Serbia +198,210,690,199,Y,Y,Y,N,,,SC,SYC,,,Seychelles,,,,,,Seychelles,Seychelles,Seychelles,Сейшельские Острова,塞舌尔,سيشيل,the Republic of Seychelles,Seychelles,Seychelles,Seychelles,Сейшельские Острова,塞舌尔,سيشيل,0,-4.651257344,55.46250801,2,Africa,202,Sub-Saharan Africa,14,Eastern Africa,seychell,High,SCR,1974-01-01,198 - Seychelles +199,211,694,200,Y,Y,Y,N,,,SL,SLE,,,Sierra Leone,,,,,,Sierra Leone,Sierra Leone,Sierra Leona,Сьерра-Леоне,塞拉利昂,سيراليون,the Republic of Sierra Leone,Sierra Leone,Sierra Leone,Sierra Leona,Сьерра-Леоне,塞拉利昂,سيراليون,0,8.571898577,-11.77850059,2,Africa,202,Sub-Saharan Africa,11,Western Africa,sierra,Low,SLL,1974-01-01,199 - Sierra Leone +200,212,702,201,Y,Y,Y,N,,,SG,SGP,,,Singapore,,,,,,Singapore,Singapour,Singapur,Сингапур,新加坡,سنغافورة,the Republic of Singapore,Singapore,Singapour,Singapur,Сингапур,新加坡,سنغافورة,0,1.344965221,103.8094495,142,Asia,35,South-eastern Asia,,,singapore,High,SGD,1974-01-01,200 - Singapore +201,14892,534,202,,,N,N,,,SX,SXM,,,Sint Maarten (Dutch part),,,,,Sint Maarten (The Netherlands),Sint Maarten,,,,,,,Sint Maarten (Dutch part),Saint-Martin (partie néerlandaise),San Martín (parte Holandesa),Синт-Мартен (нидерландская часть),圣马丁(荷属),سانت مارتن (الجزء الهولندي),0,18.04006004,-63.06246961,19,Americas,419,Latin America and the Caribbean,29,Caribbean,^(?!.*martin)(?!.*saba).*maarten,High,ANG,2010-12-15,201 - Sint Maarten (Dutch part) +202,213,703,203,Y,Y,Y,N,,Y,SK,SVK,,,Slovakia,,,,,,Slovakia,Slovaquie,Eslovaquia,Словакия,斯洛伐克,سلوفاكيا,the Slovak Republic,Slovakia,Slovaquie,Eslovaquia,Словакия,斯洛伐克,سلوفاكيا,0,48.70609262,19.49110883,150,Europe,151,Eastern Europe,,,^(?!.*cze).*slovak,High,EUR,1974-01-01,202 - Slovakia +203,214,705,204,Y,Y,Y,N,,,SI,SVN,,,Slovenia,,,,,,Slovenia,Slovénie,Eslovenia,Словения,斯洛文尼亚,سلوفينيا,the Republic of Slovenia,Slovenia,Slovénie,Eslovenia,Словения,斯洛文尼亚,سلوفينيا,0,46.123589,14.82836958,150,Europe,39,Southern Europe,,,slovenia,High,EUR,1993-06-15,203 - Slovenia +204,215,90,205,Y,Y,Y,N,,,SB,SLB,,,Solomon Islands,,,,,,Solomon Islands,Îles Salomon,Islas Salomón,Соломоновы Острова,所罗门群岛,جزر سليمان,Solomon Islands,Solomon Islands,Îles Salomon,Islas Salomón,Соломоновы Острова,所罗门群岛,جزر سليمان,0,-8.823576119,159.6577946,9,Oceania,54,Melanesia,,,solomon,Lower middle,SBD,1974-01-01,204 - Solomon Islands +205,216,706,206,Y,Y,Y,N,Y,Y,SO,SOM,,,Somalia,,,,,,Somalia,Somalie,Somalia,Сомали,索马里,الصومال,the Federal Republic of Somalia,Somalia,Somalie,Somalia,Сомали,索马里,الصومال,0,6.070298569,45.86808802,2,Africa,202,Sub-Saharan Africa,14,Eastern Africa,somali,Low,SOS,1974-01-01,205 - Somalia +206,217,710,207,Y,Y,Y,N,,,ZA,ZAF,,,South Africa,,,,,,South Africa,Afrique du Sud,Sudáfrica,Южная Африка,南非,جنوب أفريقيا,the Republic of South Africa,South Africa,Afrique du Sud,Sudáfrica,Южная Африка,南非,جنوب أفريقيا,0,-28.99235649,25.09025016,2,Africa,202,Sub-Saharan Africa,18,Southern Africa,south.africa|s\\..?africa,Upper middle,ZAR,1974-01-01,206 - South Africa +207,,239,208,,,N,N,,,GS,SGS,,,South Georgia and the South Sandwich Islands,,,,,,South Georgia and the South Sandwich Islands,,,,,,,South Georgia and the South Sandwich Islands,Géorgie du Sud-et-les Îles Sandwich du Sud,Georgia del Sur y las Islas Sandwich del Sur,Южная Джорджия и Южные Сандвичевы острова,南乔治亚岛和南桑德韦奇岛,جورجيا الجنوبية وجزر ساندويتش الجنوبية,0,-54.42976761,-36.49759369,19,Americas,419,Latin America and the Caribbean,5,South America,south.?georgia|sandwich,,GBP,1993-07-23,207 - South Georgia and the South Sandwich Islands +208,218,724,209,Y,Y,Y,N,,,ES,ESP,,,Spain,,,,,,Spain,Espagne,España,Испания,西班牙,إسبانيا,the Kingdom of Spain,Spain,Espagne,España,Испания,西班牙,إسبانيا,0,40.3097875,-3.578125378,150,Europe,39,Southern Europe,,,spain,High,EUR,1974-01-01,208 - Spain +209,219,144,210,Y,Y,Y,N,,,LK,LKA,,,Sri Lanka,,,,,,Sri Lanka,Sri Lanka,Sri Lanka,Шри-Ланка,斯里兰卡,سري لانكا,the Democratic Socialist Republic of Sri Lanka,Sri Lanka,Sri Lanka,Sri Lanka,Шри-Ланка,斯里兰卡,سري لانكا,0,7.617249894,80.70787736,142,Asia,34,Southern Asia,,,sri.?lanka|ceylon,Lower middle,LKR,1974-01-01,209 - Sri Lanka +210,8657,728,211,Y,Y,Y,N,Y,Y,SS,SSD,,,South Sudan,,,,,,South Sudan,Soudan du Sud,Sudán del Sur,Южный Судан,南苏丹,جنوب السودان,the Republic of South Sudan,South Sudan,Soudan du Sud,Sudán del Sur,Южный Судан,南苏丹,جنوب السودان,0,7.295889595,30.30870192,2,Africa,202,Sub-Saharan Africa,14,Eastern Africa,\bs\w*.?sudan,Low,SSP,2011-09-08,210 - South Sudan +211,220,729,212,Y,Y,Y,N,Y,Y,SD,SDN,,,Sudan,Sudan (the),,,,,Sudan,Soudan,Sudán,Судан,苏丹,السودان,the Republic of the Sudan,Sudan,Soudan,Sudán,Судан,苏丹,السودان,0,16.04892872,30.00339118,2,Africa,15,Northern Africa,,,^(?!.*\bs(?!u)).*sudan,Low,SDG,1974-01-01,211 - Sudan +212,221,740,213,Y,Y,Y,N,,,SR,SUR,,,Suriname,,,,,,Suriname,Suriname,Suriname,Суринам,苏里南,سورينام,the Republic of Suriname,Suriname,Suriname,Suriname,Суринам,苏里南,سورينام,0,4.125518847,-55.91480138,19,Americas,419,Latin America and the Caribbean,5,South America,surinam|dutch.?gu(y|i)ana,Upper middle,SRD,1974-01-01,212 - Suriname +213,222,744,214,,,N,N,,,SJ,SJM,,,Svalbard and Jan Mayen Islands,Svalbard and Jan Mayen,,Svalbard and Jan Mayen,,,Svalbard and Jan Mayen Islands,,,,,,,Svalbard and Jan Mayen Islands,Îles Svalbard-et-Jan Mayen,Islas Svalbard y Jan Mayen,Острова Свальбард и Ян-Майен,斯瓦尔巴群岛和扬马延岛,جزيرتي سفالبارد وجان مايِن,0,77.62362195,6.012261852,150,Europe,154,Northern Europe,,,svalbard,,NOK,1974-01-01,213 - Svalbard and Jan Mayen Islands +214,223,748,215,Y,Y,Y,N,,,SZ,SWZ,,,Eswatini,,,,,,Eswatini,Eswatini,Eswatini,Эсватини,斯威士兰,إسواتيني,the Kingdom of Eswatini,Eswatini,Eswatini,Eswatini,Эсватини,斯威士兰,إسواتيني,0,-26.56643647,31.50113832,2,Africa,202,Sub-Saharan Africa,18,Southern Africa,swaziland|eswatini,Lower middle,SZL,2018-06-02,214 - Eswatini +215,224,752,216,Y,Y,Y,N,,,SE,SWE,,,Sweden,,,,,,Sweden,Suède,Suecia,Швеция,瑞典,السويد,the Kingdom of Sweden,Sweden,Suède,Suecia,Швеция,瑞典,السويد,0,62.88018421,16.72425629,150,Europe,154,Northern Europe,,,sweden,High,SEK,1974-01-01,215 - Sweden +216,225,756,217,Y,Y,Y,N,,,CH,CHE,,,Switzerland,,,,,,Switzerland,Suisse,Suiza,Швейцария,瑞士,سويسرا,the Swiss Confederation,Switzerland,Suisse,Suiza,Швейцария,瑞士,سويسرا,0,46.80615952,8.243637777,150,Europe,155,Western Europe,,,switz|swiss,High,CHF,1974-01-01,216 - Switzerland +217,226,760,218,Y,Y,Y,N,Y,Y,SY,SYR,,,Syrian Arab Republic,Syrian Arab Republic (the),,,Syria,,Syrian Arab Republic,République arabe syrienne,República Árabe Siria,Сирийская Арабская Республика,阿拉伯叙利亚共和国,الجمهورية العربية السورية,the Syrian Arab Republic,Syrian Arab Republic,République arabe syrienne,República Árabe Siria,Сирийская Арабская Республика,阿拉伯叙利亚共和国,الجمهورية العربية السورية,0,35.01105189,38.51123805,142,Asia,145,Western Asia,,,syria,Low,SYP,1974-01-01,217 - Syrian Arab Republic +218,61,158,219,,,N,N,,,TW,TWN,,,Taiwan (Province of China),,,"Taiwan, Province of China",,China - Taiwan Province,Taiwan (Province of China),,,,,,,,,,,,,0,23.74652012,120.9621301,142,Asia,30,Eastern Asia,,,taiwan|taipei|formosa|^(?!.*peo)(?=.*rep).*china,High,TWD,1974-01-01,218 - Taiwan (Province of China) +219,227,762,220,Y,Y,Y,N,,,TJ,TJK,,,Tajikistan,,,,,,Tajikistan,Tadjikistan,Tayikistán,Таджикистан,塔吉克斯坦,طاجيكستان,the Republic of Tajikistan,Tajikistan,Tadjikistan,Tayikistán,Таджикистан,塔吉克斯坦,طاجيكستان,0,38.52699814,71.04232577,142,Asia,143,Central Asia,,,tajik,Lower middle,TJS,1992-06-15,219 - Tajikistan +220,244,834,221,Y,Y,Y,N,,Y,TZ,TZA,,,United Republic of Tanzania,"Tanzania, United Republic of",,"Tanzania, United Republic of",Tanzania,,United Republic of Tanzania,République-Unie de Tanzanie,República Unida de Tanzanía,Объединенная Республика Танзания,坦桑尼亚联合共和国,جمهورية تنزانيا المتحدة,the United Republic of Tanzania,United Republic of Tanzania,République-Unie de Tanzanie,República Unida de Tanzanía,Объединенная Республика Танзания,坦桑尼亚联合共和国,جمهورية تنزانيا المتحدة,0,-6.273241244,34.79620168,2,Africa,202,Sub-Saharan Africa,14,Eastern Africa,tanzania,Lower middle,TZS,1974-01-01,220 - United Republic of Tanzania +221,228,764,222,Y,Y,Y,N,,,TH,THA,,,Thailand,,,,,,Thailand,Thaïlande,Tailandia,Таиланд,泰国,تايلند,the Kingdom of Thailand,Thailand,Thaïlande,Tailandia,Таиланд,泰国,تايلند,0,15.15949511,101.020107,142,Asia,35,South-eastern Asia,,,thailand|\bsiam,Upper middle,THB,1974-01-01,221 - Thailand +222,230,626,223,Y,Y,Y,N,,,TL,TLS,,,Timor-Leste,,,,,,Timor-Leste,Timor-Leste,Timor-Leste,Тимор-Лешти,东帝汶,تيمور- ليشتي,the Democratic Republic of Timor-Leste,Timor-Leste,Timor-Leste,Timor-Leste,Тимор-Лешти,东帝汶,تيمور - ليشتي,0,-8.767718612,126.0420452,142,Asia,35,South-eastern Asia,,,^(?=.*leste).*timor|^(?=.*east).*timor,Lower middle,USD,2002-11-15,222 - Timor-Leste +223,231,768,224,Y,Y,Y,N,,,TG,TGO,,,Togo,,,,,,Togo,Togo,Togo,Того,多哥,توغو,the Togolese Republic,Togo,Togo,Togo,Того,多哥,توغو,0,8.541637601,0.97409513,2,Africa,202,Sub-Saharan Africa,11,Western Africa,togo,Low,XOF,1974-01-01,223 - Togo +224,232,772,225,,,N,N,,,TK,TKL,,,Tokelau,,,,,,Tokelau,,,,,,,Tokelau,Tokélaou,Tokelau,Токелау,托克劳,توكيلاو,0,-9.195175351,-171.8526597,9,Oceania,61,Polynesia,,,tokelau,,NZD,1974-01-01,224 - Tokelau +225,233,776,226,Y,Y,Y,N,,,TO,TON,,,Tonga,,,,,,Tonga,Tonga,Tonga,Тонга,汤加,تونغا,the Kingdom of Tonga,Tonga,Tonga,Tonga,Тонга,汤加,تونغا,0,-22.92273894,-176.0448464,9,Oceania,61,Polynesia,,,tonga,Upper middle,TOP,1974-01-01,225 - Tonga +226,234,780,227,Y,Y,Y,N,,Y,TT,TTO,,,Trinidad and Tobago,,,,,,Trinidad and Tobago,Trinité-et-Tobago,Trinidad y Tabago,Тринидад и Тобаго,特立尼达和多巴哥,ترينيداد وتوباغو,the Republic of Trinidad and Tobago,Trinidad and Tobago,Trinité-et-Tobago,Trinidad y Tabago,Тринидад и Тобаго,特立尼达和多巴哥,ترينيداد وتوباغو,0,10.40535665,-61.29228487,19,Americas,419,Latin America and the Caribbean,29,Caribbean,trinidad|tobago,High,TTD,1974-01-01,226 - Trinidad and Tobago +227,235,788,228,Y,Y,Y,N,,,TN,TUN,,,Tunisia,,,,,,Tunisia,Tunisie,Túnez,Тунис,突尼斯,تونس,the Republic of Tunisia,Tunisia,Tunisie,Túnez,Тунис,突尼斯,تونس,0,34.10810736,9.557630913,2,Africa,15,Northern Africa,,,tunisia,Lower middle,TND,1974-01-01,227 - Tunisia +228,236,792,229,Y,Y,Y,N,,Y,TR,TUR,,,Türkiye,,,,,,Türkiye,Türkiye,Türkiye,Турция,土耳其,تركيا,the Republic of Türkiye,Türkiye,Türkiye,Türkiye,Турция,土耳其,تركيا,0,38.91218946,35.69849765,142,Asia,145,Western Asia,,,turkey|t(ü|u)rkiye,Upper middle,TRY,2022-06-02,228 - Türkiye +229,237,795,230,Y,Y,Y,N,,,TM,TKM,,,Turkmenistan,,,,,,Turkmenistan,Turkménistan,Turkmenistán,Туркменистан,土库曼斯坦,تركمانستان,Turkmenistan,Turkmenistan,Turkménistan,Turkmenistán,Туркменистан,土库曼斯坦,تركمانستان,0,39.12455662,59.38935348,142,Asia,143,Central Asia,,,turkmen,Upper middle,TMT,1992-06-15,229 - Turkmenistan +230,238,796,231,,,N,N,,,TC,TCA,,,Turks and Caicos Islands,Turks and Caicos Islands (the),,,,,Turks and Caicos Islands,,,,,,,Turks and Caicos Islands,Îles Turques-et-Caïques,Islas Turcas y Caicos,Острова Теркс и Кайкос,特克斯和凯科斯群岛,جزر تركس وكايكوس,0,21.81744592,-71.77770318,19,Americas,419,Latin America and the Caribbean,29,Caribbean,turks,High,USD,1974-01-01,230 - Turks and Caicos Islands +231,239,798,232,Y,Y,Y,N,,,TV,TUV,,,Tuvalu,,,,,,Tuvalu,Tuvalu,Tuvalu,Тувалу,图瓦卢,توفالو,Tuvalu,Tuvalu,Tuvalu,Tuvalu,Тувалу,图瓦卢,توفالو,0,-10.46069351,181.0881855,9,Oceania,61,Polynesia,,,tuvalu,Upper middle,AUD,1979-01-01,231 - Tuvalu +232,240,800,233,Y,Y,Y,N,,Y,UG,UGA,,,Uganda,,,,,,Uganda,Ouganda,Uganda,Уганда,乌干达,أوغندا,the Republic of Uganda,Uganda,Ouganda,Uganda,Уганда,乌干达,أوغندا,0,1.280667326,32.38662225,2,Africa,202,Sub-Saharan Africa,14,Eastern Africa,uganda,Low,UGX,1974-01-01,232 - Uganda +233,241,804,234,Y,Y,Y,N,Y,Y,UA,UKR,,,Ukraine,,,,,,Ukraine,Ukraine,Ucrania,Украина,乌克兰,أوكرانيا,Ukraine,Ukraine,Ukraine,Ucrania,Украина,乌克兰,أوكرانيا,0,49.01900507,31.37809941,150,Europe,151,Eastern Europe,,,ukrain,Lower middle,UAH,1992-04-19,233 - Ukraine +234,242,784,235,Y,Y,Y,N,,,AE,ARE,,,United Arab Emirates,United Arab Emirates (the),,,UAE,,United Arab Emirates,Émirats arabes unis,Emiratos Árabes Unidos,Объединенные Арабские Эмираты,阿拉伯联合酋长国,الإمارات العربية المتحدة,the United Arab Emirates,United Arab Emirates,Émirats arabes unis,Emiratos Árabes Unidos,Объединенные Арабские Эмираты,阿拉伯联合酋长国,الإمارات العربية المتحدة,0,23.90525867,54.35072869,142,Asia,145,Western Asia,,,emirates|^u\.?a\.?e\.?$|united.?arab.?em,High,AED,1974-01-01,234 - United Arab Emirates +235,243,826,236,Y,Y,Y,N,,,GB,GBR,,,United Kingdom of Great Britain and Northern Ireland,United Kingdom of Great Britain and Northern Ireland (the),,United Kingdom,UK,,United Kingdom of Great Britain and Northern Ireland,Royaume-Uni de Grande-Bretagne et d'Irlande du Nord,Reino Unido de Gran Bretaña e Irlanda del Norte,Соединенное Королевство Великобритании и Северной Ирландии,大不列颠及北爱尔兰联合王国,المملكة المتحدة لبريطانيا العظمى وأيرلندا الشمالية,the United Kingdom of Great Britain and Northern Ireland,United Kingdom of Great Britain and Northern Ireland,Royaume-Uni de Grande-Bretagne et d’Irlande du Nord,Reino Unido de Gran Bretaña e Irlanda del Norte,Соединенное Королевство Великобритании и Северной Ирландии,大不列颠及北爱尔兰联合王国,المملكة المتحدة لبريطانيا العظمى وآيرلندا الشمالية,0,53.75504855,-2.103843405,150,Europe,154,Northern Europe,,,united.?kingdom|britain|^u\.?k\.?$,High,GBP,1974-01-01,235 - United Kingdom of Great Britain and Northern Ireland +236,245,840,237,Y,Y,Y,N,,,US,USA,,,United States of America,United States of America (the),,United States,USA,,United States of America,États-Unis d'Amérique,Estados Unidos de América,Соединенные Штаты Америки,美利坚合众国,الولايات المتحدة الأمريكية,the United States of America,United States of America,États-Unis d’Amérique,Estados Unidos de América,Соединенные Штаты Америки,美利坚合众国,الولايات المتحدة الأمريكية,0,45.73643438,-112.404207,19,Americas,21,Northern America,,,united.?states\b(?!.*islands)|\bu\.?s\.?a\.?\b|^\s*u\.?s\.?\b(?!.*islands),High,USD,1974-01-01,236 - United States of America +237,,581,238,,,N,N,,,UM,UMI,,,United States Minor Outlying Islands,United States Minor Outlying Islands (the),,,,,United States Minor Outlying Islands,,,,,,,United States Minor Outlying Islands,Îles mineures éloignées des États-Unis,Islas menores alejadas de Estados Unidos,Внешние малые острова Соединенных Штатов,美国本土外小岛屿,نائية التابعة للولايات المتحدة,0,,,9,Oceania,57,Micronesia,,,minor.?outlying.?is,,USD,1986-01-01,237 - United States Minor Outlying Islands +238,247,858,239,Y,Y,Y,N,,Y,UY,URY,,,Uruguay,,,,,,Uruguay,Uruguay,Uruguay,Уругвай,乌拉圭,أوروغواي,the Eastern Republic of Uruguay,Uruguay,Uruguay,Uruguay,Уругвай,乌拉圭,أوروغواي,0,-32.80198719,-56.01417232,19,Americas,419,Latin America and the Caribbean,5,South America,uruguay,High,UYU,1974-01-01,238 - Uruguay +239,248,860,240,Y,Y,Y,N,,,UZ,UZB,,,Uzbekistan,,,,,,Uzbekistan,Ouzbékistan,Uzbekistán,Узбекистан,乌兹别克斯坦,أوزبكستان,the Republic of Uzbekistan,Uzbekistan,Ouzbékistan,Uzbekistán,Узбекистан,乌兹别克斯坦,أوزبكستان,0,41.74950759,63.17455249,142,Asia,143,Central Asia,,,uzbek,Lower middle,UZS,1992-06-15,239 - Uzbekistan +240,249,548,241,Y,Y,Y,N,,,VU,VUT,,,Vanuatu,,,,,,Vanuatu,Vanuatu,Vanuatu,Вануату,瓦努阿图,فانواتو,the Republic of Vanuatu,Vanuatu,Vanuatu,Vanuatu,Вануату,瓦努阿图,فانواتو,0,-21.04390394,171.2797047,9,Oceania,54,Melanesia,,,vanuatu|new.?hebrides,Lower middle,VUV,1980-01-01,240 - Vanuatu +241,250,862,242,Y,Y,Y,N,Y,Y,VE,VEN,,,Venezuela (Bolivarian Republic of),,,"Venezuela, Bolivarian Republic of",Venezuela,,Venezuela (Bolivarian Republic of),Venezuela (République bolivarienne du),Venezuela (República Bolivariana de),Венесуэла (Боливарианская Республика),委内瑞拉玻利瓦尔共和国,فنزويلا (جمهورية - البوليفارية),the Bolivarian Republic of Venezuela,Venezuela (Bolivarian Republic of),Venezuela (République bolivarienne du),Venezuela (República Bolivariana de),Венесуэла (Боливарианская Республика),委内瑞拉玻利瓦尔共和国,فنزويلا (جمهورية - البوليفارية),0,7.115201972,-66.18367077,19,Americas,419,Latin America and the Caribbean,5,South America,venezuela,,VEF,2009-03-03,241 - Venezuela (Bolivarian Republic of) +242,251,704,243,Y,Y,Y,N,,Y,VN,VNM,,,Viet Nam,,,,,,Viet Nam,Viet Nam,Viet Nam,Вьетнам,越南,فييت نام,the Socialist Republic of Viet Nam,Viet Nam,Viet Nam,Viet Nam,Вьетнам,越南,فييت نام,0,16.64893259,106.3103686,142,Asia,35,South-eastern Asia,,,^(?!south)(?!republic).*viet.?nam(?!.*south)|democratic.republic.of.vietnam|socialist.republic.of.viet.?nam|north.viet.?nam|viet.?nam.north,Lower middle,VND,1977-01-01,242 - Viet Nam +243,43,92,244,,,N,N,,,VG,VGB,,,British Virgin Islands,Virgin Islands (British),,"Virgin Islands, British",,,British Virgin Islands,,,,,,,British Virgin Islands,Îles Vierges britanniques,Islas Vírgenes Británicas,Британские Виргинские острова,英属维尔京群岛,جزر فرجن البريطانية,0,18.30332154,-65.11493198,19,Americas,419,Latin America and the Caribbean,29,Caribbean,^(?=.*\bu\.?\s?k).*virgin|^(?=.*brit).*virgin|^(?=.*kingdom).*virgin,High,USD,1974-01-01,243 - British Virgin Islands +244,252,876,246,,,N,N,,,WF,WLF,,,Wallis and Futuna Islands,Wallis and Futuna,,Wallis and Futuna,,Wallis and Futuna (France),Wallis and Futuna Islands,,,,,,,Wallis and Futuna Islands,Îles Wallis-et-Futuna,Islas Wallis y Futuna,Острова Уоллис и Футуна,瓦利斯群岛和富图纳群岛,جزر واليس وفوتونا,0,-14.36099529,-178.0421057,9,Oceania,61,Polynesia,,,futuna|wallis,,XPF,1974-01-01,244 - Wallis and Futuna Islands +245,253,732,247,,,N,N,,,EH,ESH,,,Western Sahara,,,"Western Sahara, non-self-governing territory",,,Western Sahara,,,,,,,Western Sahara,Sahara occidental,Sáhara Occidental,Западная Сахара,西撒哈拉,الصحراء الغربية,0,24.66295331,-13.13425705,2,Africa,15,Northern Africa,,,western.sahara,,MAD,1985-01-01,245 - Western Sahara +246,255,887,248,Y,Y,Y,N,Y,Y,YE,YEM,,,Yemen,,,,,,Yemen,Yémen,Yemen,Йемен,也门,اليمن,the Republic of Yemen,Yemen,Yémen,Yemen,Йемен,也门,اليمن,0,15.96506363,47.50305348,142,Asia,145,Western Asia,,,yemen,Low,YER,1993-07-12,246 - Yemen +247,256,894,249,Y,Y,Y,N,,Y,ZM,ZMB,,,Zambia,,,,,,Zambia,Zambie,Zambia,Замбия,赞比亚,زامبيا,the Republic of Zambia,Zambia,Zambie,Zambia,Замбия,赞比亚,زامبيا,0,-13.45369192,27.80039565,2,Africa,202,Sub-Saharan Africa,14,Eastern Africa,zambia|northern.?rhodesia,Lower middle,ZMK,1974-01-01,247 - Zambia +248,257,716,250,Y,Y,Y,N,,Y,ZW,ZWE,,,Zimbabwe,,,,,,Zimbabwe,Zimbabwe,Zimbabwe,Зимбабве,津巴布韦,زمبابوي,the Republic of Zimbabwe,Zimbabwe,Zimbabwe,Zimbabwe,Зимбабве,津巴布韦,زمبابوي,0,-19.00126774,29.86951021,2,Africa,202,Sub-Saharan Africa,14,Eastern Africa,zimbabwe|^(?!.*northern).*rhodesia,Lower middle,ZWL,1980-01-01,248 - Zimbabwe +249,28,,,,,N,N,,,,,,AZO,Azores Islands (Portugal),,,,,,Azores Islands,,,,,,,,,,,,,,38.72708329,-27.26017212,150,Europe,39,Southern Europe,,,azores,,EUR,1974-01-01,249 - Azores Islands (Portugal) +251,51,,,,,N,N,,,,,,CAI,Canary Islands (Spain),,,,,,Canary Islands,,,,,,,,,,,,,,27.95390989,-15.57918031,2,Africa,15,Northern Africa,,,canary,,EUR,1974-01-01,251 - Canary Islands (Spain) +252,56,,,,,N,N,,,,,,CHI,Channel Islands,,,,,,Channel Islands,,,,,,,,,,,,,,49.34370327,-2.36025919,150,Europe,154,Northern Europe,,,\bchannel.islands,,GBP,1974-01-01,252 - Channel Islands +254,97,,,,,N,N,,,,,,GLI,Galapagos Islands (Ecuador),,,,,,Galapagos Islands,,,,,,,,,,,,,,-0.62999148,-90.35775677,19,Americas,419,Latin America and the Caribbean,5,South America,galapagos,,USD,1974-01-01,254 - Galapagos Islands (Ecuador) +255,178,580,166,,,N,N,,,MP,MNP,,,Northern Mariana Islands,Northern Mariana Islands (the),,,,Northern Mariana Islands (The United States of America),Northern Mariana Islands,,,,,,,Northern Mariana Islands,Îles Mariannes du Nord,Islas Marianas Septentrionales,Северные Марианские острова,北马里亚纳群岛,جزر ماريانا الشمالية,0,25.56053736,152.1251419,9,Oceania,57,Micronesia,,,mariana,High,USD,1986-01-01,255 - Northern Mariana Islands +256,,680,,,,N,N,,,,,,,Sark,,,,,,Sark,,,,,,,,,,,,,,49.4347717,-2.36987152,150,Europe,154,Northern Europe,830,Channel Islands,sark,,GBP,1974-01-01,256 - Sark +265,246,850,245,,,N,N,,,VI,VIR,,,United States Virgin Islands,Virgin Islands (U.S.),,"Virgin Islands, U.S.",,,United States Virgin Islands,,,,,,,United States Virgin Islands,Îles Vierges américaines,Islas Vírgenes de los Estados Unidos,Виргинские острова Соединенных Штатов,美属维尔京群岛,جزر فرجن التابعة للولايات المتحدة,0,17.39137826,-64.67699419,19,Americas,419,Latin America and the Caribbean,29,Caribbean,^(?=.*\bu\.?\s?s).*virgin|^(?=.*states).*virgin,High,USD,1974-01-01,265 - United States Virgin Islands +266,,,,,,N,N,,,,,XK,XKX,Kosovo,,,,,,Kosovo,,,,,,,,,,,,,,42.61901705,20.90987836,150,Europe,39,Southern Europe,,,kosovo,,EUR,1974-01-01,266 - Kosovo \ No newline at end of file diff --git a/src/hdx/location/adminlevel.py b/src/hdx/location/adminlevel.py index 2d6ae61..179e6ac 100755 --- a/src/hdx/location/adminlevel.py +++ b/src/hdx/location/adminlevel.py @@ -4,14 +4,11 @@ from pathlib import Path from typing import Any -import hxl from hdx.utilities.base_downloader import DownloadError from hdx.utilities.dictandlist import dict_of_sets_add from hdx.utilities.matching import Phonetics, multiple_replace from hdx.utilities.retriever import Retrieve from hdx.utilities.text import normalise -from hxl import InputOptions -from hxl.input import HXLIOException from hdx.location.country import Country diff --git a/src/hdx/location/country.py b/src/hdx/location/country.py index 00e90d0..cef3d8e 100755 --- a/src/hdx/location/country.py +++ b/src/hdx/location/country.py @@ -4,11 +4,12 @@ import os.path import re from pathlib import Path +from typing import Iterator -import hxl +from hdx.utilities.base_downloader import BaseDownload, DownloadError +from hdx.utilities.downloader import Download from hdx.utilities.path import script_dir_plus_file from hdx.utilities.text import get_words_in_sentence -from hxl import Dataset, InputOptions logger = logging.getLogger(__name__) @@ -71,61 +72,82 @@ class Country: _use_live_default = True _use_live = _use_live_default _countriesdata = None - _ochaurl_default = "https://docs.google.com/spreadsheets/d/1NjSI2LaS3SqbgYc0HdD8oIb7lofGtiHgoKKATCpwVdY/export?format=csv&gid=1088874596" + _ochaurl_default = "https://docs.google.com/spreadsheets/d/e/2PACX-1vSIIswgPn6oc_Ui3hCl2RTAdVZEw2sx4GjgqWFywrr8dt9R9B-p6Cs3jKeJigDguIbOjMxYtnloLlmI/pub?gid=1528390745&single=true&output=csv" _ochaurl = _ochaurl_default _ochapath_default = script_dir_plus_file( - "Countries & Territories Taxonomy MVP - C&T Taxonomy with HXL Tags.csv", + "Countries & Territories Taxonomy MVP - C&T Taxonomy.csv", CountryError, ) _ochapath = _ochapath_default _country_name_overrides = {} _country_name_mappings = {} + _country_name_keys = ( + "Preferred Term", + "ISO Alt Term", + "DGACM Alt Term", + "HPC Tools Alt Term", + "RW Short Name", + "RW API Alt Term", + "English Short", + "French Short", + "Spanish Short", + "Russian Short", + "Chinese Short", + "Arabic Short", + "English Formal", + "M49 English", + "M49 French", + "M49 Spanish", + "M49 Russian", + "M49 Chinese", + "M49 Arabic", +) @classmethod - def _add_countriesdata(cls, iso3: str, hxlcountry: hxl.Row) -> dict: + def _add_countriesdata(cls, iso3: str, country: dict) -> dict: """ Set up countries data from data in form provided by UNStats and World Bank Args: iso3: ISO3 code for country - hxlcountry: Country information + country: Country information Returns: Country dictionary """ - country = hxlcountry.dictionary - for value in hxlcountry.get_all("#country+name"): + for key in cls._country_name_keys: + value = country[key] if value: cls._countriesdata["countrynames2iso3"][value.upper()] = iso3 countryname = cls._country_name_overrides.get(iso3) if countryname is not None: - country["#country+name+override"] = countryname - iso2 = hxlcountry.get("#country+code+v_iso2") + country["Name Override"] = countryname + iso2 = country.get("ISO 3166-1 Alpha 2-Codes") if not iso2 and cls._include_unofficial: - iso2 = hxlcountry.get("#country+code+alpha2") + iso2 = country.get("x Alpha2 codes") if iso2: cls._countriesdata["iso2iso3"][iso2] = iso3 # different types so keys won't clash cls._countriesdata["iso2iso3"][iso3] = iso2 - m49 = hxlcountry.get("#country+code+num+v_m49") + m49 = country.get("m49 numerical code") if m49: m49 = int(m49) cls._countriesdata["m49iso3"][m49] = iso3 # different types so keys won't clash cls._countriesdata["m49iso3"][iso3] = m49 cls._countriesdata["aliases"][iso3] = re.compile( - hxlcountry.get("#country+regex"), re.IGNORECASE + country.get("Regex"), re.IGNORECASE ) - regionname = hxlcountry.get("#region+main+name+preferred") - sub_regionname = hxlcountry.get("#region+name+preferred+sub") - intermediate_regionname = hxlcountry.get("#region+intermediate+name+preferred") - regionid = hxlcountry.get("#region+code+main") + regionname = country.get("Region Name") + sub_regionname = country.get("Sub-region Name") + intermediate_regionname = country.get("Intermediate Region Name") + regionid = country.get("Region Code") if regionid: regionid = int(regionid) - sub_regionid = hxlcountry.get("#region+code+sub") + sub_regionid = country.get("Sub-region Code") if sub_regionid: sub_regionid = int(sub_regionid) - intermediate_regionid = hxlcountry.get("#region+code+intermediate") + intermediate_regionid = country.get("Intermediate Region Code") if intermediate_regionid: intermediate_regionid = int(intermediate_regionid) @@ -155,12 +177,12 @@ def add_country_to_set(colname, idval, iso3): cls._countriesdata["regionnames2codes"][intermediate_regionname.upper()] = ( intermediate_regionid ) - currency = hxlcountry.get("#currency+code") + currency = country.get("Currency") cls._countriesdata["currencies"][iso3] = currency return country @classmethod - def set_countriesdata(cls, countries: Dataset) -> None: + def set_countriesdata(cls, countries: Iterator[dict]) -> None: """ Set up countries data from OCHA countries and territories dataset @@ -185,10 +207,10 @@ def set_countriesdata(cls, countries: Dataset) -> None: cls._countriesdata["countrynames2iso3"][key.upper()] = value.upper() for country in countries: - iso3 = country.get("#country+code+v_iso3") + iso3 = country.get("ISO 3166-1 Alpha 3-Codes") if not iso3: if cls._include_unofficial: - iso3 = country.get("#country+code+alpha3") + iso3 = country.get("x Alpha3 codes") if not iso3: continue else: @@ -212,6 +234,7 @@ def countriesdata( use_live: bool | None = None, country_name_overrides: dict | None = None, country_name_mappings: dict | None = None, + downloader: BaseDownload | None = None, ) -> list[dict[str, dict]]: """ Read countries data from OCHA countries feed (falling back to file). @@ -224,6 +247,7 @@ def countriesdata( use_live: Try to get latest data from web rather than file in package. Defaults to True. country_name_overrides: Dictionary of mappings from iso3 to country name country_name_mappings: Dictionary of mappings from country name to iso3 + downloader: Download or Retrieve object. Defaults to None. Returns: Countries dictionaries @@ -238,20 +262,16 @@ def countriesdata( cls.set_country_name_overrides(country_name_overrides) if country_name_mappings is not None: cls.set_country_name_mappings(country_name_mappings) + if downloader is None: + downloader = Download(user_agent="HDXPythonCountry") if cls._use_live: try: - countries = hxl.data( - str(cls._ochaurl), InputOptions(encoding="utf-8") - ) - except OSError: - logger.exception( - "Download from OCHA feed failed! Falling back to stored file." - ) + _, countries = downloader.get_tabular_rows(cls._ochaurl, dict_form=True) + except DownloadError: + countries = None + logger.warning(f"Download of {cls._ochaurl} failed. Will use internal static file.") if countries is None: - countries = hxl.data( - str(cls._ochapath), - InputOptions(allow_local=True, encoding="utf-8"), - ) + _, countries = downloader.get_tabular_rows(cls._ochapath, dict_form=True) cls.set_countriesdata(countries) return cls._countriesdata @@ -351,6 +371,7 @@ def get_country_info_from_iso3( iso3: str, use_live: bool = None, exception: Exception | None = None, + downloader: BaseDownload | None = None, ) -> dict[str, str] | None: """Get country information from ISO3 code @@ -358,11 +379,12 @@ def get_country_info_from_iso3( iso3: ISO3 code for which to get country information use_live: Try to get use latest data from web rather than file in package. Defaults to True. exception: An exception to raise if country not found. Defaults to None. + downloader: Download or Retrieve object. Defaults to None. Returns: country information """ - countriesdata = cls.countriesdata(use_live=use_live) + countriesdata = cls.countriesdata(use_live=use_live, downloader=downloader) country = countriesdata["countries"].get(iso3.upper()) if country is not None: return country @@ -378,6 +400,7 @@ def get_country_name_from_iso3( use_live: bool = None, exception: Exception | None = None, formal: bool = False, + downloader: BaseDownload | None = None, ) -> str | None: """Get country name from ISO3 code @@ -386,24 +409,25 @@ def get_country_name_from_iso3( use_live: Try to get use latest data from web rather than file in package. Defaults to True. exception: An exception to raise if country not found. Defaults to None. formal: Return preferred name if False, formal name if True. Defaults to False. + downloader: Download or Retrieve object. Defaults to None. Returns: Country name """ countryinfo = cls.get_country_info_from_iso3( - iso3, use_live=use_live, exception=exception + iso3, use_live=use_live, exception=exception, downloader=downloader ) if countryinfo is not None: - countryname = countryinfo.get("#country+name+override") + countryname = countryinfo.get("Name Override") if countryname is not None: return countryname if formal: - countryname = countryinfo.get("#country+formal+i_en+name+v_unterm") + countryname = countryinfo.get("English Formal") if countryname is None or countryname == "": - countryname = countryinfo.get("#country+name+preferred") + countryname = countryinfo.get("Preferred Term") return countryname else: - return countryinfo.get("#country+name+preferred") + return countryinfo.get("Preferred Term") return None @classmethod @@ -412,6 +436,7 @@ def get_currency_from_iso3( iso3: str, use_live: bool = None, exception: Exception | None = None, + downloader: BaseDownload | None = None, ) -> int | None: """Get currency code from ISO3 code @@ -419,11 +444,12 @@ def get_currency_from_iso3( iso3: ISO3 code for which to get M49 code use_live: Try to get use latest data from web rather than file in package. Defaults to True. exception: An exception to raise if country not found. Defaults to None. + downloader: Download or Retrieve object. Defaults to None. Returns: Currency code """ - countriesdata = cls.countriesdata(use_live=use_live) + countriesdata = cls.countriesdata(use_live=use_live, downloader=downloader) currency = countriesdata["currencies"].get(iso3.upper()) if currency is not None: return currency @@ -438,6 +464,7 @@ def get_iso2_from_iso3( iso3: str, use_live: bool = None, exception: Exception | None = None, + downloader: BaseDownload | None = None, ) -> str | None: """Get ISO2 from ISO3 code @@ -445,11 +472,12 @@ def get_iso2_from_iso3( iso3: ISO3 code for which to get ISO2 code use_live: Try to get use latest data from web rather than file in package. Defaults to True. exception: An exception to raise if country not found. Defaults to None. + downloader: Download or Retrieve object. Defaults to None. Returns: ISO2 code """ - countriesdata = cls.countriesdata(use_live=use_live) + countriesdata = cls.countriesdata(use_live=use_live, downloader=downloader) iso2 = countriesdata["iso2iso3"].get(iso3.upper()) if iso2 is not None: return iso2 @@ -464,6 +492,7 @@ def get_iso3_from_iso2( iso2: str, use_live: bool = None, exception: Exception | None = None, + downloader: BaseDownload | None = None, ) -> str | None: """Get ISO3 from ISO2 code @@ -471,11 +500,12 @@ def get_iso3_from_iso2( iso2: ISO2 code for which to get ISO3 code use_live: Try to get use latest data from web rather than file in package. Defaults to True. exception: An exception to raise if country not found. Defaults to None. + downloader: Download or Retrieve object. Defaults to None. Returns: ISO3 code """ - countriesdata = cls.countriesdata(use_live=use_live) + countriesdata = cls.countriesdata(use_live=use_live, downloader=downloader) iso3 = countriesdata["iso2iso3"].get(iso2.upper()) if iso3 is not None: return iso3 @@ -490,6 +520,7 @@ def get_country_info_from_iso2( iso2: str, use_live: bool = None, exception: Exception | None = None, + downloader: BaseDownload | None = None, ) -> dict[str, str] | None: """Get country name from ISO2 code @@ -497,14 +528,17 @@ def get_country_info_from_iso2( iso2: ISO2 code for which to get country information use_live: Try to get use latest data from web rather than file in package. Defaults to True. exception: An exception to raise if country not found. Defaults to None. + downloader: Download or Retrieve object. Defaults to None. Returns: Country information """ - iso3 = cls.get_iso3_from_iso2(iso2, use_live=use_live, exception=exception) + iso3 = cls.get_iso3_from_iso2( + iso2, use_live=use_live, exception=exception, downloader=downloader + ) if iso3 is not None: return cls.get_country_info_from_iso3( - iso3, use_live=use_live, exception=exception + iso3, use_live=use_live, exception=exception, downloader=downloader ) return None @@ -515,6 +549,7 @@ def get_country_name_from_iso2( use_live: bool = None, exception: Exception | None = None, formal: bool = False, + downloader: BaseDownload | None = None, ) -> str | None: """Get country name from ISO2 code @@ -523,14 +558,17 @@ def get_country_name_from_iso2( use_live: Try to get use latest data from web rather than file in package. Defaults to True. exception: An exception to raise if country not found. Defaults to None. formal: Return preferred name if False, formal name if True. Defaults to False. + downloader: Download or Retrieve object. Defaults to None. Returns: Country name """ - iso3 = cls.get_iso3_from_iso2(iso2, use_live=use_live, exception=exception) + iso3 = cls.get_iso3_from_iso2( + iso2, use_live=use_live, exception=exception, downloader=downloader + ) if iso3 is not None: return cls.get_country_name_from_iso3( - iso3, exception=exception, formal=formal + iso3, exception=exception, formal=formal, downloader=downloader ) return None @@ -540,6 +578,7 @@ def get_currency_from_iso2( iso2: str, use_live: bool = None, exception: Exception | None = None, + downloader: BaseDownload | None = None, ) -> str | None: """Get currency from ISO2 code @@ -547,14 +586,17 @@ def get_currency_from_iso2( iso2: ISO2 code for which to get country information use_live: Try to get use latest data from web rather than file in package. Defaults to True. exception: An exception to raise if country not found. Defaults to None. + downloader: Download or Retrieve object. Defaults to None. Returns: Currency """ - iso3 = cls.get_iso3_from_iso2(iso2, use_live=use_live, exception=exception) + iso3 = cls.get_iso3_from_iso2( + iso2, use_live=use_live, exception=exception, downloader=downloader + ) if iso3 is not None: return cls.get_currency_from_iso3( - iso3, use_live=use_live, exception=exception + iso3, use_live=use_live, exception=exception, downloader=downloader ) return None @@ -564,6 +606,7 @@ def get_m49_from_iso3( iso3: str, use_live: bool = None, exception: Exception | None = None, + downloader: BaseDownload | None = None, ) -> int | None: """Get M49 from ISO3 code @@ -571,11 +614,12 @@ def get_m49_from_iso3( iso3: ISO3 code for which to get M49 code use_live: Try to get use latest data from web rather than file in package. Defaults to True. exception: An exception to raise if country not found. Defaults to None. + downloader: Download or Retrieve object. Defaults to None. Returns: M49 code """ - countriesdata = cls.countriesdata(use_live=use_live) + countriesdata = cls.countriesdata(use_live=use_live, downloader=downloader) m49 = countriesdata["m49iso3"].get(iso3) if m49 is not None: return m49 @@ -590,6 +634,7 @@ def get_iso3_from_m49( m49: int, use_live: bool = None, exception: Exception | None = None, + downloader: BaseDownload | None = None, ) -> str | None: """Get ISO3 from M49 code @@ -597,11 +642,12 @@ def get_iso3_from_m49( m49: M49 numeric code for which to get ISO3 code use_live: Try to get use latest data from web rather than file in package. Defaults to True. exception: An exception to raise if country not found. Defaults to None. + downloader: Download or Retrieve object. Defaults to None. Returns: ISO3 code """ - countriesdata = cls.countriesdata(use_live=use_live) + countriesdata = cls.countriesdata(use_live=use_live, downloader=downloader) iso3 = countriesdata["m49iso3"].get(m49) if iso3 is not None: return iso3 @@ -616,6 +662,7 @@ def get_country_info_from_m49( m49: int, use_live: bool = None, exception: Exception | None = None, + downloader: BaseDownload | None = None, ) -> dict[str, str] | None: """Get country name from M49 code @@ -623,13 +670,18 @@ def get_country_info_from_m49( m49: M49 numeric code for which to get country information use_live: Try to get use latest data from web rather than file in package. Defaults to True. exception: An exception to raise if country not found. Defaults to None. + downloader: Download or Retrieve object. Defaults to None. Returns: Country information """ - iso3 = cls.get_iso3_from_m49(m49, use_live=use_live, exception=exception) + iso3 = cls.get_iso3_from_m49( + m49, use_live=use_live, exception=exception, downloader=downloader + ) if iso3 is not None: - return cls.get_country_info_from_iso3(iso3, exception=exception) + return cls.get_country_info_from_iso3( + iso3, exception=exception, downloader=downloader + ) return None @classmethod @@ -639,6 +691,7 @@ def get_country_name_from_m49( use_live: bool = None, exception: Exception | None = None, formal: bool = False, + downloader: BaseDownload | None = None, ) -> str | None: """Get country name from M49 code @@ -647,14 +700,17 @@ def get_country_name_from_m49( use_live: Try to get use latest data from web rather than file in package. Defaults to True. exception: An exception to raise if country not found. Defaults to None. formal: Return preferred name if False, formal name if True. Defaults to False. + downloader: Download or Retrieve object. Defaults to None. Returns: Country name """ - iso3 = cls.get_iso3_from_m49(m49, use_live=use_live, exception=exception) + iso3 = cls.get_iso3_from_m49( + m49, use_live=use_live, exception=exception, downloader=downloader + ) if iso3 is not None: return cls.get_country_name_from_iso3( - iso3, exception=exception, formal=formal + iso3, exception=exception, formal=formal, downloader=downloader ) return None @@ -664,6 +720,7 @@ def get_currency_from_m49( m49: int, use_live: bool = None, exception: Exception | None = None, + downloader: BaseDownload | None = None, ) -> str | None: """Get currency from M49 code @@ -671,14 +728,17 @@ def get_currency_from_m49( m49: M49 numeric code for which to get country name use_live: Try to get use latest data from web rather than file in package. Defaults to True. exception: An exception to raise if country not found. Defaults to None. + downloader: Download or Retrieve object. Defaults to None. Returns: Currency """ - iso3 = cls.get_iso3_from_m49(m49, use_live=use_live, exception=exception) + iso3 = cls.get_iso3_from_m49( + m49, use_live=use_live, exception=exception, downloader=downloader + ) if iso3 is not None: return cls.get_currency_from_iso3( - iso3, use_live=use_live, exception=exception + iso3, use_live=use_live, exception=exception, downloader=downloader ) return None @@ -711,7 +771,7 @@ def replace_ensure_space(word, replace, replacement): return candidates @classmethod - def simplify_countryname(cls, country: str) -> (str, list[str]): + def simplify_countryname(cls, country: str) -> tuple[str, list[str]]: """Simplifies country name by removing descriptive text eg. DEMOCRATIC, REPUBLIC OF etc. Args: @@ -811,6 +871,7 @@ def get_iso3_country_code( country: str, use_live: bool = None, exception: Exception | None = None, + downloader: BaseDownload | None = None, ) -> str | None: """Get ISO3 code for cls. Only exact matches or None are returned. @@ -818,11 +879,12 @@ def get_iso3_country_code( country: Country for which to get ISO3 code use_live: Try to get use latest data from web rather than file in package. Defaults to True. exception: An exception to raise if country not found. Defaults to None. + downloader: Download or Retrieve object. Defaults to None. Returns: ISO3 country code or None """ - countriesdata = cls.countriesdata(use_live=use_live) + countriesdata = cls.countriesdata(use_live=use_live, downloader=downloader) countryupper = country.strip().upper() if countryupper.isupper(): len_countryupper = len(countryupper) @@ -846,7 +908,7 @@ def get_iso3_country_code( for country in countriesdata["countries"]: if ( countriesdata["countries"][country][ - "#country+alt+i_zh+name+v_unterm" + "Chinese Short" ] == countryupper ): @@ -855,7 +917,7 @@ def get_iso3_country_code( for country in countriesdata["countries"]: if ( countriesdata["countries"][country][ - "#country+alt+i_ar+name+v_unterm" + "Arabic Short" ] == countryupper ): @@ -872,6 +934,7 @@ def get_iso3_country_code_fuzzy( use_live: bool = None, exception: Exception | None = None, min_chars: int = 5, + downloader: BaseDownload | None = None, ) -> tuple[str | None, bool]: """Get ISO3 code for cls. A tuple is returned with the first value being the ISO3 code and the second showing if the match is exact or not. @@ -881,16 +944,19 @@ def get_iso3_country_code_fuzzy( use_live: Try to get use latest data from web rather than file in package. Defaults to True. exception: An exception to raise if country not found. Defaults to None. min_chars: Minimum number of characters for fuzzy matching to be tried. Defaults to 5. + downloader: Download or Retrieve object. Defaults to None. Returns: ISO3 code and if the match is exact or (None, False). """ - countriesdata = cls.countriesdata(use_live=use_live) + countriesdata = cls.countriesdata(use_live=use_live, downloader=downloader) country = country.strip() if not country.upper().isupper(): return None, False - iso3 = cls.get_iso3_country_code(country, use_live=use_live) + iso3 = cls.get_iso3_country_code( + country, use_live=use_live, downloader=downloader + ) # don't put exception param here as we don't want it to throw if iso3 is not None: @@ -959,6 +1025,7 @@ def get_countries_in_region( region: int | str, use_live: bool = None, exception: Exception | None = None, + downloader: BaseDownload | None = None, ) -> list[str]: """Get countries (ISO3 codes) in region @@ -966,11 +1033,12 @@ def get_countries_in_region( region: Three digit UNStats M49 region code or region name use_live: Try to get use latest data from web rather than file in package. Defaults to True. exception: An exception to raise if region not found. Defaults to None. + downloader: Download or Retrieve object. Defaults to None. Returns: Sorted list of ISO3 country names """ - countriesdata = cls.countriesdata(use_live=use_live) + countriesdata = cls.countriesdata(use_live=use_live, downloader=downloader) if isinstance(region, int): regioncode = region else: @@ -990,28 +1058,25 @@ def get_hrp_status_from_iso3( iso3: str, use_live: bool = None, exception: Exception | None = None, - ) -> int | None: + downloader: BaseDownload | None = None, + ) -> bool | None: """Get HRP status from ISO3 code Args: iso3: ISO3 code for which to get M49 code use_live: Try to get use latest data from web rather than file in package. Defaults to True. exception: An exception to raise if country not found. Defaults to None. + downloader: Download or Retrieve object. Defaults to None. Returns: - Has HRP (true or false) + Has HRP (True, False or None) """ countryinfo = cls.get_country_info_from_iso3( - iso3, use_live=use_live, exception=exception + iso3, use_live=use_live, exception=exception, downloader=downloader ) - if countryinfo is not None: - hrp = countryinfo.get("#indicator+bool+hrp") - if hrp is not None: - if hrp == "": - return False - if hrp == "Y": - return True - return None + if not countryinfo: + return None + return countryinfo.get("Has HRP") == "Y" @classmethod def get_gho_status_from_iso3( @@ -1019,25 +1084,22 @@ def get_gho_status_from_iso3( iso3: str, use_live: bool = None, exception: Exception | None = None, - ) -> int | None: + downloader: BaseDownload | None = None, + ) -> bool | None: """Get GHO status from ISO3 code Args: iso3: ISO3 code for which to get M49 code use_live: Try to get use latest data from web rather than file in package. Defaults to True. exception: An exception to raise if country not found. Defaults to None. + downloader: Download or Retrieve object. Defaults to None. Returns: - In GHO (true or false) + In GHO (True, False or None) """ countryinfo = cls.get_country_info_from_iso3( - iso3, use_live=use_live, exception=exception + iso3, use_live=use_live, exception=exception, downloader=downloader ) - if countryinfo is not None: - gho = countryinfo.get("#indicator+bool+gho") - if gho is not None: - if gho == "": - return False - if gho == "Y": - return True - return None + if not countryinfo: + return None + return countryinfo.get("In GHO") == "Y" diff --git a/tests/hdx/location/Countries_UZB_Deleted.csv b/tests/hdx/location/Countries_UZB_Deleted.csv index a951a50..83728cc 100644 --- a/tests/hdx/location/Countries_UZB_Deleted.csv +++ b/tests/hdx/location/Countries_UZB_Deleted.csv @@ -1,5 +1,4 @@ ID,RW ID,m49 numerical code,HPC Tools API ID,Appears in UNTERM list,Appears in DGACM list,Independent,Deprecated,Has HRP,In GHO,ISO 3166-1 Alpha 2-Codes,ISO 3166-1 Alpha 3-Codes,x Alpha2 codes,x Alpha3 codes,Preferred Term,ISO Alt Term,DGACM Alt Term,HPC Tools Alt Term,RW Short Name,RW API Alt Term,English Short,French Short,Spanish Short,Russian Short,Chinese Short,Arabic Short,English Formal,M49 English,M49 French,M49 Spanish,M49 Russian,M49 Chinese,M49 Arabic,Admin Level,Latitude,Longitude,Region Code,Region Name,Sub-region Code,Sub-region Name,Intermediate Region Code,Intermediate Region Name,Regex,World Bank Income Level,Currency,Reference Period Start,Concatenation -#meta +id,#country +code +v_reliefweb,#country +code +num +v_m49,#country +code +v_hpctools,,,#meta+independent+bool,#meta+deprecated+bool,#indicator+hrp+bool,#indicator+gho+bool,#country +code +v_iso2,#country +code +v_iso3,#country +code +alpha2,#country +code +alpha3,#country +name +preferred,#country +name +alt +v_iso,#country +name +alt +v_dgacm,#country +name +alt +v_hpctools,#country +name +short +v_reliefweb,#country +name +alt +v_reliefweb,#country +name +i_en +alt +v_unterm,#country +name +i_fr +alt +v_unterm,#country +name +i_es +alt +v_unterm,#country +name +i_ru +alt +v_unterm,#country +name +i_zh +alt +v_unterm,#country +name +i_ar +alt +v_unterm,#country +name +i_en +formal +v_unterm,#country +name +i_en +alt +v_m49,#country +name +i_fr +alt +v_m49,#country +name +i_es +alt +v_m49,#country +name +i_ru +alt +v_m49,#country +name +i_zh +alt +v_m49,#country +name +i_ar +alt +v_m49,#geo +admin_level,#geo +lat,#geo +lon,#region +main +code,#region +main +name +preferred,#region +sub +code,#region +sub +name +preferred,#region +intermediate +code,#region +intermediate +name +preferred,#country +regex,#indicator+incomelevel,#currency +code,#date+start, 1,13,4,1,Y,Y,Y,N,Y,Y,AF,AFG,,,Afghanistan,,,,,,Afghanistan,Afghanistan,Afganistán,Афганистан,阿富汗,أفغانستان,the Islamic Republic of Afghanistan,Afghanistan,Afghanistan,Afganistán,Афганистан,阿富汗,أفغانستان,0,33.83147477,66.02621828,142,Asia,34,Southern Asia,,,afghan,Low,AFN,2004-01-26,1 - Afghanistan 2,14,248,2,,,N,N,,,AX,ALA,,,Åland Islands,,,,,Aland Islands (Finland),Åland Islands,,,,,,,Åland Islands,Îles d’Åland,Islas Åland,Аландских островов,奥兰群岛,جزر ألاند,0,60.18121338,19.89649072,150,Europe,154,Northern Europe,,,^[å|a]land,,EUR,2004-02-13,2 - Åland Islands 3,15,8,3,Y,Y,Y,N,,,AL,ALB,,,Albania,,,,,,Albania,Albanie,Albania,Албания,阿尔巴尼亚,ألبانيا,the Republic of Albania,Albania,Albanie,Albania,Албания,阿尔巴尼亚,ألبانيا,0,41.13180899,20.06882519,150,Europe,39,Southern Europe,,,albania,Upper middle,ALL,1974-01-01,3 - Albania @@ -62,8 +61,8 @@ ID,RW ID,m49 numerical code,HPC Tools API ID,Appears in UNTERM list,Appears in D 60,73,203,60,Y,Y,Y,N,,Y,CZ,CZE,,,Czechia,,Czech Republic,Czech Republic,,,Czechia,Tchéquie,Chequia,Чехия,捷克,تشيكيا,the Czech Republic,Czechia,Tchéquie,Chequia,Чехия,捷克,تشيكيا,0,49.74240068,15.34943448,150,Europe,151,Eastern Europe,,,^(?=.*rep).*czech|czechia|bohemia,High,CZK,2016-08-29,60 - Czechia 61,76,208,61,Y,Y,Y,N,,,DK,DNK,,,Denmark,,,,,,Denmark,Danemark,Dinamarca,Дания,丹麦,الدانمرك,the Kingdom of Denmark,Denmark,Danemark,Dinamarca,Дания,丹麦,الدانمرك,0,56.06439188,9.942213684,150,Europe,154,Northern Europe,,,denmark,High,DKK,1974-01-01,61 - Denmark 62,77,262,62,Y,Y,Y,N,,Y,DJ,DJI,,,Djibouti,,,,,,Djibouti,Djibouti,Djibouti,Джибути,吉布提,جيبوتي,the Republic of Djibouti,Djibouti,Djibouti,Djibouti,Джибути,吉布提,جيبوتي,0,11.74658946,42.58022315,2,Africa,202,Sub-Saharan Africa,14,Eastern Africa,djibouti,Lower middle,DJF,1977-01-01,62 - Djibouti -63,78,212,63,Y,Y,Y,N,,,DM,DMA,,,Dominica,,,,,,Dominica,Dominique,Dominica,Доминика,多米尼克,دومينيكا,the Commonwealth of Dominica,Dominica,Dominique,Dominica,Доминика,多米尼克,دومينيكا,0,15.42468124,-61.36047599,19,Americas,419,Latin America and the Caribbean,29,Caribbean,dominican.rep,Upper middle,XCD,1974-01-01,63 - Dominica -64,79,214,64,Y,Y,Y,N,,Y,DO,DOM,,,Dominican Republic,Dominican Republic (the),,,Dominican Rep.,,Dominican Republic,République dominicaine,República Dominicana,Доминиканская Республика,多米尼加共和国,الجمهورية الدومينيكية,the Dominican Republic,Dominican Republic,République dominicaine,República Dominicana,Доминиканская Республика,多米尼加,الجمهورية الدومينيكية,0,18.89453409,-70.49429315,19,Americas,419,Latin America and the Caribbean,29,Caribbean,#REF!,Upper middle,DOP,1974-01-01,64 - Dominican Republic +63,78,212,63,Y,Y,Y,N,,,DM,DMA,,,Dominica,,,,,,Dominica,Dominique,Dominica,Доминика,多米尼克,دومينيكا,the Commonwealth of Dominica,Dominica,Dominique,Dominica,Доминика,多米尼克,دومينيكا,0,15.42468124,-61.36047599,19,Americas,419,Latin America and the Caribbean,29,Caribbean,dominica(?!n),Upper middle,XCD,1974-01-01,63 - Dominica +64,79,214,64,Y,Y,Y,N,,Y,DO,DOM,,,Dominican Republic,Dominican Republic (the),,,Dominican Rep.,,Dominican Republic,République dominicaine,República Dominicana,Доминиканская Республика,多米尼加共和国,الجمهورية الدومينيكية,the Dominican Republic,Dominican Republic,République dominicaine,República Dominicana,Доминиканская Республика,多米尼加,الجمهورية الدومينيكية,0,18.89453409,-70.49429315,19,Americas,419,Latin America and the Caribbean,29,Caribbean,dominican.rep,Upper middle,DOP,1974-01-01,64 - Dominican Republic 65,81,218,65,Y,Y,Y,N,,Y,EC,ECU,,,Ecuador,,,,,,Ecuador,Équateur,Ecuador,Эквадор,厄瓜多尔,إكوادور,the Republic of Ecuador,Ecuador,Équateur,Ecuador,Эквадор,厄瓜多尔,إكوادور,0,-1.464036749,-78.05190165,19,Americas,419,Latin America and the Caribbean,5,South America,ecuador,Upper middle,USD,1974-01-01,65 - Ecuador 66,82,818,66,Y,Y,Y,N,,Y,EG,EGY,,,Egypt,,,,,,Egypt,Égypte,Egipto,Египет,埃及,مصر,the Arab Republic of Egypt,Egypt,Égypte,Egipto,Египет,埃及,مصر,0,26.55281781,29.78562814,2,Africa,15,Northern Africa,,,egypt,Lower middle,EGP,1974-01-01,66 - Egypt 67,83,222,67,Y,Y,Y,N,Y,Y,SV,SLV,,,El Salvador,,,,,,El Salvador,El Salvador,El Salvador,Сальвадор,萨尔瓦多,السلفادور,the Republic of El Salvador,El Salvador,El Salvador,El Salvador,Сальвадор,萨尔瓦多,السلفادور,0,13.72764125,-88.86315324,19,Americas,419,Latin America and the Caribbean,13,Central America,el.?salvador,Upper middle,USD,1974-01-01,67 - El Salvador @@ -254,4 +253,4 @@ ID,RW ID,m49 numerical code,HPC Tools API ID,Appears in UNTERM list,Appears in D 255,178,580,166,,,N,N,,,MP,MNP,,,Northern Mariana Islands,Northern Mariana Islands (the),,,,Northern Mariana Islands (The United States of America),Northern Mariana Islands,,,,,,,Northern Mariana Islands,Îles Mariannes du Nord,Islas Marianas Septentrionales,Северные Марианские острова,北马里亚纳群岛,جزر ماريانا الشمالية,0,25.56053736,152.1251419,9,Oceania,57,Micronesia,,,mariana,High,USD,1986-01-01,255 - Northern Mariana Islands 256,,680,,,,N,N,,,,,,,Sark,,,,,,Sark,,,,,,,,,,,,,,49.4347717,-2.36987152,150,Europe,154,Northern Europe,830,Channel Islands,sark,,GBP,1974-01-01,256 - Sark 265,246,850,245,,,N,N,,,VI,VIR,,,United States Virgin Islands,Virgin Islands (U.S.),,"Virgin Islands, U.S.",,,United States Virgin Islands,,,,,,,United States Virgin Islands,Îles Vierges américaines,Islas Vírgenes de los Estados Unidos,Виргинские острова Соединенных Штатов,美属维尔京群岛,جزر فرجن التابعة للولايات المتحدة,0,17.39137826,-64.67699419,19,Americas,419,Latin America and the Caribbean,29,Caribbean,^(?=.*\bu\.?\s?s).*virgin|^(?=.*states).*virgin,High,USD,1974-01-01,265 - United States Virgin Islands -266,,,,,,N,N,,,,,XK,XKX,Kosovo,,,,,,Kosovo,,,,,,,,,,,,,,42.61901705,20.90987836,150,Europe,39,Southern Europe,,,kosovo,,EUR,1974-01-01,266 - Kosovo +266,,,,,,N,N,,,,,XK,XKX,Kosovo,,,,,,Kosovo,,,,,,,,,,,,,,42.61901705,20.90987836,150,Europe,39,Southern Europe,,,kosovo,,EUR,1974-01-01,266 - Kosovo \ No newline at end of file diff --git a/tests/hdx/location/test_country.py b/tests/hdx/location/test_country.py index f18ae4f..862a4a1 100755 --- a/tests/hdx/location/test_country.py +++ b/tests/hdx/location/test_country.py @@ -1,9 +1,8 @@ """location Tests""" -import hxl import pytest +from hdx.utilities.downloader import Download from hdx.utilities.path import script_dir_plus_file -from hxl import InputOptions from hdx.location.country import Country @@ -79,148 +78,151 @@ def test_get_iso3_from_iso2(self): Country.get_iso3_from_iso2("ab", exception=LocationError) def test_get_country_info_from_iso3(self): - assert Country.get_country_info_from_iso3("bih") == { - "#country+alpha2+code": "", - "#country+alpha3+code": "", - "#country+alt+i_ar+name+v_m49": "البوسنة والهرسك", - "#country+alt+i_ar+name+v_unterm": "البوسنة والهرسك", - "#country+alt+i_en+name+v_m49": "Bosnia and Herzegovina", - "#country+alt+i_en+name+v_unterm": "Bosnia and Herzegovina", - "#country+alt+i_es+name+v_m49": "Bosnia y Herzegovina", - "#country+alt+i_es+name+v_unterm": "Bosnia y Herzegovina", - "#country+alt+i_fr+name+v_m49": "Bosnie-Herzégovine", - "#country+alt+i_fr+name+v_unterm": "Bosnie-Herzégovine", - "#country+alt+i_ru+name+v_m49": "Босния и Герцеговина", - "#country+alt+i_ru+name+v_unterm": "Босния и Герцеговина", - "#country+alt+i_zh+name+v_m49": "波斯尼亚和黑塞哥维那", - "#country+alt+i_zh+name+v_unterm": "波斯尼亚和黑塞哥维那", - "#country+alt+name+v_dgacm": "", - "#country+alt+name+v_hpctools": "", - "#country+alt+name+v_iso": "", - "#country+alt+name+v_reliefweb": "", - "#country+code+num+v_m49": "70", - "#country+code+v_hpctools": "28", - "#country+code+v_iso2": "BA", - "#country+code+v_iso3": "BIH", - "#country+code+v_reliefweb": "40", - "#country+formal+i_en+name+v_unterm": "Bosnia and Herzegovina", - "#country+name+preferred": "Bosnia and Herzegovina", - "#country+name+short+v_reliefweb": "", - "#country+regex": "herzegovina|bosnia", - "#currency+code": "BAM", - "#date+start": "1993-01-01", - "#geo+admin_level": "0", - "#geo+lat": "44.16506495", - "#geo+lon": "17.79105724", - "#indicator+bool+gho": "", - "#indicator+bool+hrp": "", - "#indicator+incomelevel": "Upper middle", - "#meta+bool+deprecated": "N", - "#meta+bool+independent": "Y", - "#meta+id": "28", - "#region+code+intermediate": "", - "#region+code+main": "150", - "#region+code+sub": "39", - "#region+intermediate+name+preferred": "", - "#region+main+name+preferred": "Europe", - "#region+name+preferred+sub": "Southern Europe", - } - assert Country.get_country_info_from_iso3("PSE") == { - "#country+alpha2+code": "", - "#country+alpha3+code": "", - "#country+alt+i_ar+name+v_m49": "دولة فلسطين", - "#country+alt+i_ar+name+v_unterm": "دولة فلسطين", - "#country+alt+i_en+name+v_m49": "State of Palestine", - "#country+alt+i_en+name+v_unterm": "State of Palestine", - "#country+alt+i_es+name+v_m49": "Estado de Palestina", - "#country+alt+i_es+name+v_unterm": "Estado de Palestina", - "#country+alt+i_fr+name+v_m49": "État de Palestine", - "#country+alt+i_fr+name+v_unterm": "État de Palestine", - "#country+alt+i_ru+name+v_m49": "Государство Палестина", - "#country+alt+i_ru+name+v_unterm": "Государство Палестина", - "#country+alt+i_zh+name+v_m49": "巴勒斯坦国", - "#country+alt+i_zh+name+v_unterm": "巴勒斯坦国", - "#country+alt+name+v_dgacm": "", - "#country+alt+name+v_hpctools": "occupied Palestinian territory", - "#country+alt+name+v_iso": "Palestine, State of", - "#country+alt+name+v_reliefweb": "occupied Palestinian territory", - "#country+code+num+v_m49": "275", - "#country+code+v_hpctools": "171", - "#country+code+v_iso2": "PS", - "#country+code+v_iso3": "PSE", - "#country+code+v_reliefweb": "180", - "#country+formal+i_en+name+v_unterm": "the State of Palestine", - "#country+name+override": "oPt", - "#country+name+preferred": "State of Palestine", - "#country+name+short+v_reliefweb": "oPt", - "#country+regex": "palestin|\\bgaza|west.?bank", - "#currency+code": "ILS", - "#date+start": "2013-02-06", - "#geo+admin_level": "0", - "#geo+lat": "31.99084142", - "#geo+lon": "35.30744047", - "#indicator+bool+gho": "Y", - "#indicator+bool+hrp": "", - "#indicator+incomelevel": "Upper middle", - "#meta+bool+deprecated": "N", - "#meta+bool+independent": "Y", - "#meta+id": "170", - "#region+code+intermediate": "", - "#region+code+main": "142", - "#region+code+sub": "145", - "#region+intermediate+name+preferred": "", - "#region+main+name+preferred": "Asia", - "#region+name+preferred+sub": "Western Asia", - } + assert Country.get_country_info_from_iso3("bih") == {'Admin Level': '0', + 'Appears in DGACM list': 'Y', + 'Appears in UNTERM list': 'Y', + 'Arabic Short': 'البوسنة والهرسك', + 'Chinese Short': '波斯尼亚和黑塞哥维那', + 'Concatenation': '28 - Bosnia and Herzegovina', + 'Currency': 'BAM', + 'DGACM Alt Term': None, + 'Deprecated': 'N', + 'English Formal': 'Bosnia and Herzegovina', + 'English Short': 'Bosnia and Herzegovina', + 'French Short': 'Bosnie-Herzégovine', + 'HPC Tools API ID': '28', + 'HPC Tools Alt Term': None, + 'Has HRP': None, + 'ID': '28', + 'ISO 3166-1 Alpha 2-Codes': 'BA', + 'ISO 3166-1 Alpha 3-Codes': 'BIH', + 'ISO Alt Term': None, + 'In GHO': None, + 'Independent': 'Y', + 'Intermediate Region Code': None, + 'Intermediate Region Name': None, + 'Latitude': '44.16506495', + 'Longitude': '17.79105724', + 'M49 Arabic': 'البوسنة والهرسك', + 'M49 Chinese': '波斯尼亚和黑塞哥维那', + 'M49 English': 'Bosnia and Herzegovina', + 'M49 French': 'Bosnie-Herzégovine', + 'M49 Russian': 'Босния и Герцеговина', + 'M49 Spanish': 'Bosnia y Herzegovina', + 'Preferred Term': 'Bosnia and Herzegovina', + 'RW API Alt Term': None, + 'RW ID': '40', + 'RW Short Name': None, + 'Reference Period Start': '1993-01-01', + 'Regex': 'herzegovina|bosnia', + 'Region Code': '150', + 'Region Name': 'Europe', + 'Russian Short': 'Босния и Герцеговина', + 'Spanish Short': 'Bosnia y Herzegovina', + 'Sub-region Code': '39', + 'Sub-region Name': 'Southern Europe', + 'World Bank Income Level': 'Upper middle', + 'm49 numerical code': '70', + 'x Alpha2 codes': None, + 'x Alpha3 codes': None} + assert Country.get_country_info_from_iso3("PSE") == {'Admin Level': '0', + 'Appears in DGACM list': None, + 'Appears in UNTERM list': 'Y', + 'Arabic Short': 'دولة فلسطين', + 'Chinese Short': '巴勒斯坦国', + 'Concatenation': '170 - State of Palestine', + 'Currency': 'ILS', + 'DGACM Alt Term': None, + 'Deprecated': 'N', + 'English Formal': 'the State of Palestine', + 'English Short': 'State of Palestine', + 'French Short': 'État de Palestine', + 'HPC Tools API ID': '171', + 'HPC Tools Alt Term': 'occupied Palestinian territory', + 'Has HRP': None, + 'ID': '170', + 'ISO 3166-1 Alpha 2-Codes': 'PS', + 'ISO 3166-1 Alpha 3-Codes': 'PSE', + 'ISO Alt Term': 'Palestine, State of', + 'In GHO': 'Y', + 'Independent': 'Y', + 'Intermediate Region Code': None, + 'Intermediate Region Name': None, + 'Latitude': '31.99084142', + 'Longitude': '35.30744047', + 'M49 Arabic': 'دولة فلسطين', + 'M49 Chinese': '巴勒斯坦国', + 'M49 English': 'State of Palestine', + 'M49 French': 'État de Palestine', + 'M49 Russian': 'Государство Палестина', + 'M49 Spanish': 'Estado de Palestina', + 'Name Override': 'oPt', + 'Preferred Term': 'State of Palestine', + 'RW API Alt Term': 'occupied Palestinian territory', + 'RW ID': '180', + 'RW Short Name': 'oPt', + 'Reference Period Start': '2013-02-06', + 'Regex': 'palestin|\\bgaza|west.?bank', + 'Region Code': '142', + 'Region Name': 'Asia', + 'Russian Short': 'Государство Палестина', + 'Spanish Short': 'Estado de Palestina', + 'Sub-region Code': '145', + 'Sub-region Name': 'Western Asia', + 'World Bank Income Level': 'Upper middle', + 'm49 numerical code': '275', + 'x Alpha2 codes': None, + 'x Alpha3 codes': None} with pytest.raises(LocationError): Country.get_country_name_from_iso2("AZO", exception=LocationError) self.setup_unofficial_date() - assert Country.get_country_info_from_iso3("AZO") == { - "#country+alpha2+code": "", - "#country+alpha3+code": "AZO", - "#country+alt+i_ar+name+v_m49": "", - "#country+alt+i_ar+name+v_unterm": "", - "#country+alt+i_en+name+v_m49": "", - "#country+alt+i_en+name+v_unterm": "Azores Islands", - "#country+alt+i_es+name+v_m49": "", - "#country+alt+i_es+name+v_unterm": "", - "#country+alt+i_fr+name+v_m49": "", - "#country+alt+i_fr+name+v_unterm": "", - "#country+alt+i_ru+name+v_m49": "", - "#country+alt+i_ru+name+v_unterm": "", - "#country+alt+i_zh+name+v_m49": "", - "#country+alt+i_zh+name+v_unterm": "", - "#country+alt+name+v_dgacm": "", - "#country+alt+name+v_hpctools": "", - "#country+alt+name+v_iso": "", - "#country+alt+name+v_reliefweb": "", - "#country+code+num+v_m49": "", - "#country+code+v_hpctools": "", - "#country+code+v_iso2": "", - "#country+code+v_iso3": "", - "#country+code+v_reliefweb": "28", - "#country+formal+i_en+name+v_unterm": "", - "#country+name+preferred": "Azores Islands (Portugal)", - "#country+name+short+v_reliefweb": "", - "#country+regex": "azores", - "#currency+code": "EUR", - "#date+start": "1974-01-01", - "#geo+admin_level": "", - "#geo+lat": "38.72708329", - "#geo+lon": "-27.26017212", - "#indicator+bool+gho": "", - "#indicator+bool+hrp": "", - "#indicator+incomelevel": "", - "#meta+bool+deprecated": "N", - "#meta+bool+independent": "N", - "#meta+id": "249", - "#region+code+intermediate": "", - "#region+code+main": "150", - "#region+code+sub": "39", - "#region+intermediate+name+preferred": "", - "#region+main+name+preferred": "Europe", - "#region+name+preferred+sub": "Southern Europe", - } + assert Country.get_country_info_from_iso3("AZO") == {'Admin Level': None, + 'Appears in DGACM list': None, + 'Appears in UNTERM list': None, + 'Arabic Short': None, + 'Chinese Short': None, + 'Concatenation': '249 - Azores Islands (Portugal)', + 'Currency': 'EUR', + 'DGACM Alt Term': None, + 'Deprecated': 'N', + 'English Formal': None, + 'English Short': 'Azores Islands', + 'French Short': None, + 'HPC Tools API ID': None, + 'HPC Tools Alt Term': None, + 'Has HRP': None, + 'ID': '249', + 'ISO 3166-1 Alpha 2-Codes': None, + 'ISO 3166-1 Alpha 3-Codes': None, + 'ISO Alt Term': None, + 'In GHO': None, + 'Independent': 'N', + 'Intermediate Region Code': None, + 'Intermediate Region Name': None, + 'Latitude': '38.72708329', + 'Longitude': '-27.26017212', + 'M49 Arabic': None, + 'M49 Chinese': None, + 'M49 English': None, + 'M49 French': None, + 'M49 Russian': None, + 'M49 Spanish': None, + 'Preferred Term': 'Azores Islands (Portugal)', + 'RW API Alt Term': None, + 'RW ID': '28', + 'RW Short Name': None, + 'Reference Period Start': '1974-01-01', + 'Regex': 'azores', + 'Region Code': '150', + 'Region Name': 'Europe', + 'Russian Short': None, + 'Spanish Short': None, + 'Sub-region Code': '39', + 'Sub-region Name': 'Southern Europe', + 'World Bank Income Level': None, + 'm49 numerical code': None, + 'x Alpha2 codes': None, + 'x Alpha3 codes': 'AZO'} def test_get_currency_from_iso3(self): assert Country.get_currency_from_iso3("jpn") == "JPY" @@ -229,196 +231,200 @@ def test_get_currency_from_iso3(self): Country.get_currency_from_iso3("abc", exception=LocationError) def test_get_country_info_from_iso2(self): - assert Country.get_country_info_from_iso2("jp") == { - "#country+alpha2+code": "", - "#country+alpha3+code": "", - "#country+alt+i_ar+name+v_m49": "اليابان", - "#country+alt+i_ar+name+v_unterm": "اليابان", - "#country+alt+i_en+name+v_m49": "Japan", - "#country+alt+i_en+name+v_unterm": "Japan", - "#country+alt+i_es+name+v_m49": "Japón", - "#country+alt+i_es+name+v_unterm": "Japón", - "#country+alt+i_fr+name+v_m49": "Japon", - "#country+alt+i_fr+name+v_unterm": "Japon", - "#country+alt+i_ru+name+v_m49": "Япония", - "#country+alt+i_ru+name+v_unterm": "Япония", - "#country+alt+i_zh+name+v_m49": "日本", - "#country+alt+i_zh+name+v_unterm": "日本", - "#country+alt+name+v_dgacm": "", - "#country+alt+name+v_hpctools": "", - "#country+alt+name+v_iso": "", - "#country+alt+name+v_reliefweb": "", - "#country+code+num+v_m49": "392", - "#country+code+v_hpctools": "112", - "#country+code+v_iso2": "JP", - "#country+code+v_iso3": "JPN", - "#country+code+v_reliefweb": "128", - "#country+formal+i_en+name+v_unterm": "Japan", - "#country+name+preferred": "Japan", - "#country+name+short+v_reliefweb": "", - "#country+regex": "japan", - "#currency+code": "JPY", - "#date+start": "1974-01-01", - "#geo+admin_level": "0", - "#geo+lat": "37.63209801", - "#geo+lon": "138.0812256", - "#indicator+bool+gho": "", - "#indicator+bool+hrp": "", - "#indicator+incomelevel": "High", - "#meta+bool+deprecated": "N", - "#meta+bool+independent": "Y", - "#meta+id": "112", - "#region+code+intermediate": "", - "#region+code+main": "142", - "#region+code+sub": "30", - "#region+intermediate+name+preferred": "", - "#region+main+name+preferred": "Asia", - "#region+name+preferred+sub": "Eastern Asia", - } + assert Country.get_country_info_from_iso2("jp") == {'Admin Level': '0', + 'Appears in DGACM list': 'Y', + 'Appears in UNTERM list': 'Y', + 'Arabic Short': 'اليابان', + 'Chinese Short': '日本', + 'Concatenation': '112 - Japan', + 'Currency': 'JPY', + 'DGACM Alt Term': None, + 'Deprecated': 'N', + 'English Formal': 'Japan', + 'English Short': 'Japan', + 'French Short': 'Japon', + 'HPC Tools API ID': '112', + 'HPC Tools Alt Term': None, + 'Has HRP': None, + 'ID': '112', + 'ISO 3166-1 Alpha 2-Codes': 'JP', + 'ISO 3166-1 Alpha 3-Codes': 'JPN', + 'ISO Alt Term': None, + 'In GHO': None, + 'Independent': 'Y', + 'Intermediate Region Code': None, + 'Intermediate Region Name': None, + 'Latitude': '37.63209801', + 'Longitude': '138.0812256', + 'M49 Arabic': 'اليابان', + 'M49 Chinese': '日本', + 'M49 English': 'Japan', + 'M49 French': 'Japon', + 'M49 Russian': 'Япония', + 'M49 Spanish': 'Japón', + 'Preferred Term': 'Japan', + 'RW API Alt Term': None, + 'RW ID': '128', + 'RW Short Name': None, + 'Reference Period Start': '1974-01-01', + 'Regex': 'japan', + 'Region Code': '142', + 'Region Name': 'Asia', + 'Russian Short': 'Япония', + 'Spanish Short': 'Japón', + 'Sub-region Code': '30', + 'Sub-region Name': 'Eastern Asia', + 'World Bank Income Level': 'High', + 'm49 numerical code': '392', + 'x Alpha2 codes': None, + 'x Alpha3 codes': None} assert Country.get_country_info_from_iso2("ab") is None - assert Country.get_country_info_from_iso2("TW") == { - "#country+alpha2+code": "", - "#country+alpha3+code": "", - "#country+alt+i_ar+name+v_m49": "", - "#country+alt+i_ar+name+v_unterm": "", - "#country+alt+i_en+name+v_m49": "", - "#country+alt+i_en+name+v_unterm": "Taiwan (Province of China)", - "#country+alt+i_es+name+v_m49": "", - "#country+alt+i_es+name+v_unterm": "", - "#country+alt+i_fr+name+v_m49": "", - "#country+alt+i_fr+name+v_unterm": "", - "#country+alt+i_ru+name+v_m49": "", - "#country+alt+i_ru+name+v_unterm": "", - "#country+alt+i_zh+name+v_m49": "", - "#country+alt+i_zh+name+v_unterm": "", - "#country+alt+name+v_dgacm": "", - "#country+alt+name+v_hpctools": "Taiwan, Province of China", - "#country+alt+name+v_iso": "", - "#country+alt+name+v_reliefweb": "China - Taiwan Province", - "#country+code+num+v_m49": "158", - "#country+code+v_hpctools": "219", - "#country+code+v_iso2": "TW", - "#country+code+v_iso3": "TWN", - "#country+code+v_reliefweb": "61", - "#country+formal+i_en+name+v_unterm": "", - "#country+name+preferred": "Taiwan (Province of China)", - "#country+name+short+v_reliefweb": "", - "#country+regex": "taiwan|taipei|formosa|^(?!.*peo)(?=.*rep).*china", - "#currency+code": "TWD", - "#date+start": "1974-01-01", - "#geo+admin_level": "0", - "#geo+lat": "23.74652012", - "#geo+lon": "120.9621301", - "#indicator+bool+gho": "", - "#indicator+bool+hrp": "", - "#indicator+incomelevel": "High", - "#meta+bool+deprecated": "N", - "#meta+bool+independent": "N", - "#meta+id": "218", - "#region+code+intermediate": "", - "#region+code+main": "142", - "#region+code+sub": "30", - "#region+intermediate+name+preferred": "", - "#region+main+name+preferred": "Asia", - "#region+name+preferred+sub": "Eastern Asia", - } - - assert Country.get_country_info_from_iso2("PS") == { - "#country+alpha2+code": "", - "#country+alpha3+code": "", - "#country+alt+i_ar+name+v_m49": "دولة فلسطين", - "#country+alt+i_ar+name+v_unterm": "دولة فلسطين", - "#country+alt+i_en+name+v_m49": "State of Palestine", - "#country+alt+i_en+name+v_unterm": "State of Palestine", - "#country+alt+i_es+name+v_m49": "Estado de Palestina", - "#country+alt+i_es+name+v_unterm": "Estado de Palestina", - "#country+alt+i_fr+name+v_m49": "État de Palestine", - "#country+alt+i_fr+name+v_unterm": "État de Palestine", - "#country+alt+i_ru+name+v_m49": "Государство Палестина", - "#country+alt+i_ru+name+v_unterm": "Государство Палестина", - "#country+alt+i_zh+name+v_m49": "巴勒斯坦国", - "#country+alt+i_zh+name+v_unterm": "巴勒斯坦国", - "#country+alt+name+v_dgacm": "", - "#country+alt+name+v_hpctools": "occupied Palestinian territory", - "#country+alt+name+v_iso": "Palestine, State of", - "#country+alt+name+v_reliefweb": "occupied Palestinian territory", - "#country+code+num+v_m49": "275", - "#country+code+v_hpctools": "171", - "#country+code+v_iso2": "PS", - "#country+code+v_iso3": "PSE", - "#country+code+v_reliefweb": "180", - "#country+formal+i_en+name+v_unterm": "the State of Palestine", - "#country+name+override": "oPt", - "#country+name+preferred": "State of Palestine", - "#country+name+short+v_reliefweb": "oPt", - "#country+regex": "palestin|\\bgaza|west.?bank", - "#currency+code": "ILS", - "#date+start": "2013-02-06", - "#geo+admin_level": "0", - "#geo+lat": "31.99084142", - "#geo+lon": "35.30744047", - "#indicator+bool+gho": "Y", - "#indicator+bool+hrp": "", - "#indicator+incomelevel": "Upper middle", - "#meta+bool+deprecated": "N", - "#meta+bool+independent": "Y", - "#meta+id": "170", - "#region+code+intermediate": "", - "#region+code+main": "142", - "#region+code+sub": "145", - "#region+intermediate+name+preferred": "", - "#region+main+name+preferred": "Asia", - "#region+name+preferred+sub": "Western Asia", - } + assert Country.get_country_info_from_iso2("TW") == {'Admin Level': '0', + 'Appears in DGACM list': None, + 'Appears in UNTERM list': None, + 'Arabic Short': None, + 'Chinese Short': None, + 'Concatenation': '218 - Taiwan (Province of China)', + 'Currency': 'TWD', + 'DGACM Alt Term': None, + 'Deprecated': 'N', + 'English Formal': None, + 'English Short': 'Taiwan (Province of China)', + 'French Short': None, + 'HPC Tools API ID': '219', + 'HPC Tools Alt Term': 'Taiwan, Province of China', + 'Has HRP': None, + 'ID': '218', + 'ISO 3166-1 Alpha 2-Codes': 'TW', + 'ISO 3166-1 Alpha 3-Codes': 'TWN', + 'ISO Alt Term': None, + 'In GHO': None, + 'Independent': 'N', + 'Intermediate Region Code': None, + 'Intermediate Region Name': None, + 'Latitude': '23.74652012', + 'Longitude': '120.9621301', + 'M49 Arabic': None, + 'M49 Chinese': None, + 'M49 English': None, + 'M49 French': None, + 'M49 Russian': None, + 'M49 Spanish': None, + 'Preferred Term': 'Taiwan (Province of China)', + 'RW API Alt Term': 'China - Taiwan Province', + 'RW ID': '61', + 'RW Short Name': None, + 'Reference Period Start': '1974-01-01', + 'Regex': 'taiwan|taipei|formosa|^(?!.*peo)(?=.*rep).*china', + 'Region Code': '142', + 'Region Name': 'Asia', + 'Russian Short': None, + 'Spanish Short': None, + 'Sub-region Code': '30', + 'Sub-region Name': 'Eastern Asia', + 'World Bank Income Level': 'High', + 'm49 numerical code': '158', + 'x Alpha2 codes': None, + 'x Alpha3 codes': None} + + assert Country.get_country_info_from_iso2("PS") == {'Admin Level': '0', + 'Appears in DGACM list': None, + 'Appears in UNTERM list': 'Y', + 'Arabic Short': 'دولة فلسطين', + 'Chinese Short': '巴勒斯坦国', + 'Concatenation': '170 - State of Palestine', + 'Currency': 'ILS', + 'DGACM Alt Term': None, + 'Deprecated': 'N', + 'English Formal': 'the State of Palestine', + 'English Short': 'State of Palestine', + 'French Short': 'État de Palestine', + 'HPC Tools API ID': '171', + 'HPC Tools Alt Term': 'occupied Palestinian territory', + 'Has HRP': None, + 'ID': '170', + 'ISO 3166-1 Alpha 2-Codes': 'PS', + 'ISO 3166-1 Alpha 3-Codes': 'PSE', + 'ISO Alt Term': 'Palestine, State of', + 'In GHO': 'Y', + 'Independent': 'Y', + 'Intermediate Region Code': None, + 'Intermediate Region Name': None, + 'Latitude': '31.99084142', + 'Longitude': '35.30744047', + 'M49 Arabic': 'دولة فلسطين', + 'M49 Chinese': '巴勒斯坦国', + 'M49 English': 'State of Palestine', + 'M49 French': 'État de Palestine', + 'M49 Russian': 'Государство Палестина', + 'M49 Spanish': 'Estado de Palestina', + 'Name Override': 'oPt', + 'Preferred Term': 'State of Palestine', + 'RW API Alt Term': 'occupied Palestinian territory', + 'RW ID': '180', + 'RW Short Name': 'oPt', + 'Reference Period Start': '2013-02-06', + 'Regex': 'palestin|\\bgaza|west.?bank', + 'Region Code': '142', + 'Region Name': 'Asia', + 'Russian Short': 'Государство Палестина', + 'Spanish Short': 'Estado de Palestina', + 'Sub-region Code': '145', + 'Sub-region Name': 'Western Asia', + 'World Bank Income Level': 'Upper middle', + 'm49 numerical code': '275', + 'x Alpha2 codes': None, + 'x Alpha3 codes': None} with pytest.raises(LocationError): Country.get_country_info_from_iso2("XK", exception=LocationError) self.setup_unofficial_date() - assert Country.get_country_info_from_iso2("XK") == { - "#country+alpha2+code": "XK", - "#country+alpha3+code": "XKX", - "#country+alt+i_ar+name+v_m49": "", - "#country+alt+i_ar+name+v_unterm": "", - "#country+alt+i_en+name+v_m49": "", - "#country+alt+i_en+name+v_unterm": "Kosovo", - "#country+alt+i_es+name+v_m49": "", - "#country+alt+i_es+name+v_unterm": "", - "#country+alt+i_fr+name+v_m49": "", - "#country+alt+i_fr+name+v_unterm": "", - "#country+alt+i_ru+name+v_m49": "", - "#country+alt+i_ru+name+v_unterm": "", - "#country+alt+i_zh+name+v_m49": "", - "#country+alt+i_zh+name+v_unterm": "", - "#country+alt+name+v_dgacm": "", - "#country+alt+name+v_hpctools": "", - "#country+alt+name+v_iso": "", - "#country+alt+name+v_reliefweb": "", - "#country+code+num+v_m49": "", - "#country+code+v_hpctools": "", - "#country+code+v_iso2": "", - "#country+code+v_iso3": "", - "#country+code+v_reliefweb": "", - "#country+formal+i_en+name+v_unterm": "", - "#country+name+preferred": "Kosovo", - "#country+name+short+v_reliefweb": "", - "#country+regex": "kosovo", - "#currency+code": "EUR", - "#date+start": "1974-01-01", - "#geo+admin_level": "", - "#geo+lat": "42.61901705", - "#geo+lon": "20.90987836", - "#indicator+bool+gho": "", - "#indicator+bool+hrp": "", - "#indicator+incomelevel": "", - "#meta+bool+deprecated": "N", - "#meta+bool+independent": "N", - "#meta+id": "266", - "#region+code+intermediate": "", - "#region+code+main": "150", - "#region+code+sub": "39", - "#region+intermediate+name+preferred": "", - "#region+main+name+preferred": "Europe", - "#region+name+preferred+sub": "Southern Europe", - } + assert Country.get_country_info_from_iso2("XK") == {'Admin Level': None, + 'Appears in DGACM list': None, + 'Appears in UNTERM list': None, + 'Arabic Short': None, + 'Chinese Short': None, + 'Concatenation': '266 - Kosovo', + 'Currency': 'EUR', + 'DGACM Alt Term': None, + 'Deprecated': 'N', + 'English Formal': None, + 'English Short': 'Kosovo', + 'French Short': None, + 'HPC Tools API ID': None, + 'HPC Tools Alt Term': None, + 'Has HRP': None, + 'ID': '266', + 'ISO 3166-1 Alpha 2-Codes': None, + 'ISO 3166-1 Alpha 3-Codes': None, + 'ISO Alt Term': None, + 'In GHO': None, + 'Independent': 'N', + 'Intermediate Region Code': None, + 'Intermediate Region Name': None, + 'Latitude': '42.61901705', + 'Longitude': '20.90987836', + 'M49 Arabic': None, + 'M49 Chinese': None, + 'M49 English': None, + 'M49 French': None, + 'M49 Russian': None, + 'M49 Spanish': None, + 'Preferred Term': 'Kosovo', + 'RW API Alt Term': None, + 'RW ID': None, + 'RW Short Name': None, + 'Reference Period Start': '1974-01-01', + 'Regex': 'kosovo', + 'Region Code': '150', + 'Region Name': 'Europe', + 'Russian Short': None, + 'Spanish Short': None, + 'Sub-region Code': '39', + 'Sub-region Name': 'Southern Europe', + 'World Bank Income Level': None, + 'm49 numerical code': None, + 'x Alpha2 codes': 'XK', + 'x Alpha3 codes': 'XKX'} with pytest.raises(LocationError): Country.get_country_info_from_iso2("ab", exception=LocationError) @@ -471,145 +477,148 @@ def test_get_iso3_from_m49(self): Country.get_iso3_from_m49(9999, exception=LocationError) def test_get_country_info_from_m49(self): - assert Country.get_country_info_from_m49(4) == { - "#country+alpha2+code": "", - "#country+alpha3+code": "", - "#country+alt+i_ar+name+v_m49": "أفغانستان", - "#country+alt+i_ar+name+v_unterm": "أفغانستان", - "#country+alt+i_en+name+v_m49": "Afghanistan", - "#country+alt+i_en+name+v_unterm": "Afghanistan", - "#country+alt+i_es+name+v_m49": "Afganistán", - "#country+alt+i_es+name+v_unterm": "Afganistán", - "#country+alt+i_fr+name+v_m49": "Afghanistan", - "#country+alt+i_fr+name+v_unterm": "Afghanistan", - "#country+alt+i_ru+name+v_m49": "Афганистан", - "#country+alt+i_ru+name+v_unterm": "Афганистан", - "#country+alt+i_zh+name+v_m49": "阿富汗", - "#country+alt+i_zh+name+v_unterm": "阿富汗", - "#country+alt+name+v_dgacm": "", - "#country+alt+name+v_hpctools": "", - "#country+alt+name+v_iso": "", - "#country+alt+name+v_reliefweb": "", - "#country+code+num+v_m49": "4", - "#country+code+v_hpctools": "1", - "#country+code+v_iso2": "AF", - "#country+code+v_iso3": "AFG", - "#country+code+v_reliefweb": "13", - "#country+formal+i_en+name+v_unterm": "the Islamic Republic of Afghanistan", - "#country+name+preferred": "Afghanistan", - "#country+name+short+v_reliefweb": "", - "#country+regex": "afghan", - "#currency+code": "AFN", - "#date+start": "2004-01-26", - "#geo+admin_level": "0", - "#geo+lat": "33.83147477", - "#geo+lon": "66.02621828", - "#indicator+bool+gho": "Y", - "#indicator+bool+hrp": "Y", - "#indicator+incomelevel": "Low", - "#meta+bool+deprecated": "N", - "#meta+bool+independent": "Y", - "#meta+id": "1", - "#region+code+intermediate": "", - "#region+code+main": "142", - "#region+code+sub": "34", - "#region+intermediate+name+preferred": "", - "#region+main+name+preferred": "Asia", - "#region+name+preferred+sub": "Southern Asia", - } - assert Country.get_country_info_from_m49(882) == { - "#country+alpha2+code": "", - "#country+alpha3+code": "", - "#country+alt+i_ar+name+v_m49": "ساموا", - "#country+alt+i_ar+name+v_unterm": "ساموا", - "#country+alt+i_en+name+v_m49": "Samoa", - "#country+alt+i_en+name+v_unterm": "Samoa", - "#country+alt+i_es+name+v_m49": "Samoa", - "#country+alt+i_es+name+v_unterm": "Samoa", - "#country+alt+i_fr+name+v_m49": "Samoa", - "#country+alt+i_fr+name+v_unterm": "Samoa", - "#country+alt+i_ru+name+v_m49": "Самоа", - "#country+alt+i_ru+name+v_unterm": "Самоа", - "#country+alt+i_zh+name+v_m49": "萨摩亚", - "#country+alt+i_zh+name+v_unterm": "萨摩亚", - "#country+alt+name+v_dgacm": "", - "#country+alt+name+v_hpctools": "", - "#country+alt+name+v_iso": "", - "#country+alt+name+v_reliefweb": "", - "#country+code+num+v_m49": "882", - "#country+code+v_hpctools": "193", - "#country+code+v_iso2": "WS", - "#country+code+v_iso3": "WSM", - "#country+code+v_reliefweb": "204", - "#country+formal+i_en+name+v_unterm": "the Independent State of Samoa", - "#country+name+preferred": "Samoa", - "#country+name+short+v_reliefweb": "", - "#country+regex": "^(?!.*amer).*samoa", - "#currency+code": "WST", - "#date+start": "1998-02-05", - "#geo+admin_level": "0", - "#geo+lat": "-13.16992041", - "#geo+lon": "-173.5139768", - "#indicator+bool+gho": "", - "#indicator+bool+hrp": "", - "#indicator+incomelevel": "Lower middle", - "#meta+bool+deprecated": "N", - "#meta+bool+independent": "Y", - "#meta+id": "192", - "#region+code+intermediate": "", - "#region+code+main": "9", - "#region+code+sub": "61", - "#region+intermediate+name+preferred": "", - "#region+main+name+preferred": "Oceania", - "#region+name+preferred+sub": "Polynesia", - } - assert Country.get_country_info_from_m49(275) == { - "#country+alpha2+code": "", - "#country+alpha3+code": "", - "#country+alt+i_ar+name+v_m49": "دولة فلسطين", - "#country+alt+i_ar+name+v_unterm": "دولة فلسطين", - "#country+alt+i_en+name+v_m49": "State of Palestine", - "#country+alt+i_en+name+v_unterm": "State of Palestine", - "#country+alt+i_es+name+v_m49": "Estado de Palestina", - "#country+alt+i_es+name+v_unterm": "Estado de Palestina", - "#country+alt+i_fr+name+v_m49": "État de Palestine", - "#country+alt+i_fr+name+v_unterm": "État de Palestine", - "#country+alt+i_ru+name+v_m49": "Государство Палестина", - "#country+alt+i_ru+name+v_unterm": "Государство Палестина", - "#country+alt+i_zh+name+v_m49": "巴勒斯坦国", - "#country+alt+i_zh+name+v_unterm": "巴勒斯坦国", - "#country+alt+name+v_dgacm": "", - "#country+alt+name+v_hpctools": "occupied Palestinian territory", - "#country+alt+name+v_iso": "Palestine, State of", - "#country+alt+name+v_reliefweb": "occupied Palestinian territory", - "#country+code+num+v_m49": "275", - "#country+code+v_hpctools": "171", - "#country+code+v_iso2": "PS", - "#country+code+v_iso3": "PSE", - "#country+code+v_reliefweb": "180", - "#country+formal+i_en+name+v_unterm": "the State of Palestine", - "#country+name+override": "oPt", - "#country+name+preferred": "State of Palestine", - "#country+name+short+v_reliefweb": "oPt", - "#country+regex": "palestin|\\bgaza|west.?bank", - "#currency+code": "ILS", - "#date+start": "2013-02-06", - "#geo+admin_level": "0", - "#geo+lat": "31.99084142", - "#geo+lon": "35.30744047", - "#indicator+bool+gho": "Y", - "#indicator+bool+hrp": "", - "#indicator+incomelevel": "Upper middle", - "#meta+bool+deprecated": "N", - "#meta+bool+independent": "Y", - "#meta+id": "170", - "#region+code+intermediate": "", - "#region+code+main": "142", - "#region+code+sub": "145", - "#region+intermediate+name+preferred": "", - "#region+main+name+preferred": "Asia", - "#region+name+preferred+sub": "Western Asia", - } + assert Country.get_country_info_from_m49(4) == {'Admin Level': '0', + 'Appears in DGACM list': 'Y', + 'Appears in UNTERM list': 'Y', + 'Arabic Short': 'أفغانستان', + 'Chinese Short': '阿富汗', + 'Concatenation': '1 - Afghanistan', + 'Currency': 'AFN', + 'DGACM Alt Term': None, + 'Deprecated': 'N', + 'English Formal': 'the Islamic Republic of Afghanistan', + 'English Short': 'Afghanistan', + 'French Short': 'Afghanistan', + 'HPC Tools API ID': '1', + 'HPC Tools Alt Term': None, + 'Has HRP': 'Y', + 'ID': '1', + 'ISO 3166-1 Alpha 2-Codes': 'AF', + 'ISO 3166-1 Alpha 3-Codes': 'AFG', + 'ISO Alt Term': None, + 'In GHO': 'Y', + 'Independent': 'Y', + 'Intermediate Region Code': None, + 'Intermediate Region Name': None, + 'Latitude': '33.83147477', + 'Longitude': '66.02621828', + 'M49 Arabic': 'أفغانستان', + 'M49 Chinese': '阿富汗', + 'M49 English': 'Afghanistan', + 'M49 French': 'Afghanistan', + 'M49 Russian': 'Афганистан', + 'M49 Spanish': 'Afganistán', + 'Preferred Term': 'Afghanistan', + 'RW API Alt Term': None, + 'RW ID': '13', + 'RW Short Name': None, + 'Reference Period Start': '2004-01-26', + 'Regex': 'afghan', + 'Region Code': '142', + 'Region Name': 'Asia', + 'Russian Short': 'Афганистан', + 'Spanish Short': 'Afganistán', + 'Sub-region Code': '34', + 'Sub-region Name': 'Southern Asia', + 'World Bank Income Level': 'Low', + 'm49 numerical code': '4', + 'x Alpha2 codes': None, + 'x Alpha3 codes': None} + assert Country.get_country_info_from_m49(882) == {'Admin Level': '0', + 'Appears in DGACM list': 'Y', + 'Appears in UNTERM list': 'Y', + 'Arabic Short': 'ساموا', + 'Chinese Short': '萨摩亚', + 'Concatenation': '192 - Samoa', + 'Currency': 'WST', + 'DGACM Alt Term': None, + 'Deprecated': 'N', + 'English Formal': 'the Independent State of Samoa', + 'English Short': 'Samoa', + 'French Short': 'Samoa', + 'HPC Tools API ID': '193', + 'HPC Tools Alt Term': None, + 'Has HRP': None, + 'ID': '192', + 'ISO 3166-1 Alpha 2-Codes': 'WS', + 'ISO 3166-1 Alpha 3-Codes': 'WSM', + 'ISO Alt Term': None, + 'In GHO': None, + 'Independent': 'Y', + 'Intermediate Region Code': None, + 'Intermediate Region Name': None, + 'Latitude': '-13.16992041', + 'Longitude': '-173.5139768', + 'M49 Arabic': 'ساموا', + 'M49 Chinese': '萨摩亚', + 'M49 English': 'Samoa', + 'M49 French': 'Samoa', + 'M49 Russian': 'Самоа', + 'M49 Spanish': 'Samoa', + 'Preferred Term': 'Samoa', + 'RW API Alt Term': None, + 'RW ID': '204', + 'RW Short Name': None, + 'Reference Period Start': '1998-02-05', + 'Regex': '^(?!.*amer).*samoa', + 'Region Code': '9', + 'Region Name': 'Oceania', + 'Russian Short': 'Самоа', + 'Spanish Short': 'Samoa', + 'Sub-region Code': '61', + 'Sub-region Name': 'Polynesia', + 'World Bank Income Level': 'Lower middle', + 'm49 numerical code': '882', + 'x Alpha2 codes': None, + 'x Alpha3 codes': None} + assert Country.get_country_info_from_m49(275) == {'Admin Level': '0', + 'Appears in DGACM list': None, + 'Appears in UNTERM list': 'Y', + 'Arabic Short': 'دولة فلسطين', + 'Chinese Short': '巴勒斯坦国', + 'Concatenation': '170 - State of Palestine', + 'Currency': 'ILS', + 'DGACM Alt Term': None, + 'Deprecated': 'N', + 'English Formal': 'the State of Palestine', + 'English Short': 'State of Palestine', + 'French Short': 'État de Palestine', + 'HPC Tools API ID': '171', + 'HPC Tools Alt Term': 'occupied Palestinian territory', + 'Has HRP': None, + 'ID': '170', + 'ISO 3166-1 Alpha 2-Codes': 'PS', + 'ISO 3166-1 Alpha 3-Codes': 'PSE', + 'ISO Alt Term': 'Palestine, State of', + 'In GHO': 'Y', + 'Independent': 'Y', + 'Intermediate Region Code': None, + 'Intermediate Region Name': None, + 'Latitude': '31.99084142', + 'Longitude': '35.30744047', + 'M49 Arabic': 'دولة فلسطين', + 'M49 Chinese': '巴勒斯坦国', + 'M49 English': 'State of Palestine', + 'M49 French': 'État de Palestine', + 'M49 Russian': 'Государство Палестина', + 'M49 Spanish': 'Estado de Palestina', + 'Name Override': 'oPt', + 'Preferred Term': 'State of Palestine', + 'RW API Alt Term': 'occupied Palestinian territory', + 'RW ID': '180', + 'RW Short Name': 'oPt', + 'Reference Period Start': '2013-02-06', + 'Regex': 'palestin|\\bgaza|west.?bank', + 'Region Code': '142', + 'Region Name': 'Asia', + 'Russian Short': 'Государство Палестина', + 'Spanish Short': 'Estado de Palestina', + 'Sub-region Code': '145', + 'Sub-region Name': 'Western Asia', + 'World Bank Income Level': 'Upper middle', + 'm49 numerical code': '275', + 'x Alpha2 codes': None, + 'x Alpha3 codes': None} assert Country.get_country_info_from_m49(9999) is None with pytest.raises(LocationError): @@ -995,11 +1004,9 @@ def test_use_live_default(self): Country._countriesdata = None def test_ocha_feed_file_working(self): - countries = hxl.data( - str(script_dir_plus_file("Countries_UZB_Deleted.csv", TestCountry)), - InputOptions(allow_local=True, encoding="utf-8"), - ) - Country.set_countriesdata(countries) + with Download(user_agent="test") as downloader: + _, countries = downloader.get_tabular_rows(script_dir_plus_file("Countries_UZB_Deleted.csv", TestCountry), dict_form=True) + Country.set_countriesdata(countries) assert Country.get_iso3_country_code("UZBEKISTAN") is None assert Country.get_iso3_country_code("south sudan") == "SSD" Country.set_ocha_url() diff --git a/uv.lock b/uv.lock new file mode 100644 index 0000000..0b74481 --- /dev/null +++ b/uv.lock @@ -0,0 +1,1749 @@ +version = 1 +revision = 3 +requires-python = ">=3.10" + +[[package]] +name = "annotated-types" +version = "0.7.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/ee/67/531ea369ba64dcff5ec9c3402f9f51bf748cec26dde048a2f973a4eea7f5/annotated_types-0.7.0.tar.gz", hash = "sha256:aff07c09a53a08bc8cfccb9c85b05f1aa9a2a6f23728d790723543408344ce89", size = 16081, upload-time = "2024-05-20T21:33:25.928Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/78/b6/6307fbef88d9b5ee7421e68d78a9f162e0da4900bc5f5793f6d3d0e34fb8/annotated_types-0.7.0-py3-none-any.whl", hash = "sha256:1f02e8b43a8fbbc3f3e0d4f0f4bfc8131bcb4eebe8849b8e5c773f3a1c582a53", size = 13643, upload-time = "2024-05-20T21:33:24.1Z" }, +] + +[[package]] +name = "astdoc" +version = "1.3.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/ff/30/59731db1342957b1d035b16c515c75aeb0b3111159838e58e7a68256745a/astdoc-1.3.2.tar.gz", hash = "sha256:adcc6a5cecdbd23ea25b095bd3ebb183c2c73fae03499c3d8e0ae932d73e8bb2", size = 39697, upload-time = "2025-08-22T23:03:46.428Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/4e/c2/b90bfe4fd68d5baf2ea7514f62bfd0c8ad20820a433d696a0dd49b13f08a/astdoc-1.3.2-py3-none-any.whl", hash = "sha256:68d4c19fbb9e78d9acde21806d9688ec403c9a5a87f09ec4695d8ad607df2056", size = 43440, upload-time = "2025-08-22T23:03:45.257Z" }, +] + +[[package]] +name = "attrs" +version = "25.4.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/6b/5c/685e6633917e101e5dcb62b9dd76946cbb57c26e133bae9e0cd36033c0a9/attrs-25.4.0.tar.gz", hash = "sha256:16d5969b87f0859ef33a48b35d55ac1be6e42ae49d5e853b597db70c35c57e11", size = 934251, upload-time = "2025-10-06T13:54:44.725Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/3a/2a/7cc015f5b9f5db42b7d48157e23356022889fc354a2813c15934b7cb5c0e/attrs-25.4.0-py3-none-any.whl", hash = "sha256:adcf7e2a1fb3b36ac48d97835bb6d8ade15b8dcce26aba8bf1d14847b57a3373", size = 67615, upload-time = "2025-10-06T13:54:43.17Z" }, +] + +[[package]] +name = "babel" +version = "2.17.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/7d/6b/d52e42361e1aa00709585ecc30b3f9684b3ab62530771402248b1b1d6240/babel-2.17.0.tar.gz", hash = "sha256:0c54cffb19f690cdcc52a3b50bcbf71e07a808d1c80d549f2459b9d2cf0afb9d", size = 9951852, upload-time = "2025-02-01T15:17:41.026Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/b7/b8/3fe70c75fe32afc4bb507f75563d39bc5642255d1d94f1f23604725780bf/babel-2.17.0-py3-none-any.whl", hash = "sha256:4d0b53093fdfb4b21c92b5213dba5a1b23885afa8383709427046b21c366e5f2", size = 10182537, upload-time = "2025-02-01T15:17:37.39Z" }, +] + +[[package]] +name = "backrefs" +version = "6.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/86/e3/bb3a439d5cb255c4774724810ad8073830fac9c9dee123555820c1bcc806/backrefs-6.1.tar.gz", hash = "sha256:3bba1749aafe1db9b915f00e0dd166cba613b6f788ffd63060ac3485dc9be231", size = 7011962, upload-time = "2025-11-15T14:52:08.323Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/3b/ee/c216d52f58ea75b5e1841022bbae24438b19834a29b163cb32aa3a2a7c6e/backrefs-6.1-py310-none-any.whl", hash = "sha256:2a2ccb96302337ce61ee4717ceacfbf26ba4efb1d55af86564b8bbaeda39cac1", size = 381059, upload-time = "2025-11-15T14:51:59.758Z" }, + { url = "https://files.pythonhosted.org/packages/e6/9a/8da246d988ded941da96c7ed945d63e94a445637eaad985a0ed88787cb89/backrefs-6.1-py311-none-any.whl", hash = "sha256:e82bba3875ee4430f4de4b6db19429a27275d95a5f3773c57e9e18abc23fd2b7", size = 392854, upload-time = "2025-11-15T14:52:01.194Z" }, + { url = "https://files.pythonhosted.org/packages/37/c9/fd117a6f9300c62bbc33bc337fd2b3c6bfe28b6e9701de336b52d7a797ad/backrefs-6.1-py312-none-any.whl", hash = "sha256:c64698c8d2269343d88947c0735cb4b78745bd3ba590e10313fbf3f78c34da5a", size = 398770, upload-time = "2025-11-15T14:52:02.584Z" }, + { url = "https://files.pythonhosted.org/packages/eb/95/7118e935b0b0bd3f94dfec2d852fd4e4f4f9757bdb49850519acd245cd3a/backrefs-6.1-py313-none-any.whl", hash = "sha256:4c9d3dc1e2e558965202c012304f33d4e0e477e1c103663fd2c3cc9bb18b0d05", size = 400726, upload-time = "2025-11-15T14:52:04.093Z" }, + { url = "https://files.pythonhosted.org/packages/1d/72/6296bad135bfafd3254ae3648cd152980a424bd6fed64a101af00cc7ba31/backrefs-6.1-py314-none-any.whl", hash = "sha256:13eafbc9ccd5222e9c1f0bec563e6d2a6d21514962f11e7fc79872fd56cbc853", size = 412584, upload-time = "2025-11-15T14:52:05.233Z" }, + { url = "https://files.pythonhosted.org/packages/02/e3/a4fa1946722c4c7b063cc25043a12d9ce9b4323777f89643be74cef2993c/backrefs-6.1-py39-none-any.whl", hash = "sha256:a9e99b8a4867852cad177a6430e31b0f6e495d65f8c6c134b68c14c3c95bf4b0", size = 381058, upload-time = "2025-11-15T14:52:06.698Z" }, +] + +[[package]] +name = "certifi" +version = "2026.1.4" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/e0/2d/a891ca51311197f6ad14a7ef42e2399f36cf2f9bd44752b3dc4eab60fdc5/certifi-2026.1.4.tar.gz", hash = "sha256:ac726dd470482006e014ad384921ed6438c457018f4b3d204aea4281258b2120", size = 154268, upload-time = "2026-01-04T02:42:41.825Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/e6/ad/3cc14f097111b4de0040c83a525973216457bbeeb63739ef1ed275c1c021/certifi-2026.1.4-py3-none-any.whl", hash = "sha256:9943707519e4add1115f44c2bc244f782c0249876bf51b6599fee1ffbedd685c", size = 152900, upload-time = "2026-01-04T02:42:40.15Z" }, +] + +[[package]] +name = "cfgv" +version = "3.5.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/4e/b5/721b8799b04bf9afe054a3899c6cf4e880fcf8563cc71c15610242490a0c/cfgv-3.5.0.tar.gz", hash = "sha256:d5b1034354820651caa73ede66a6294d6e95c1b00acc5e9b098e917404669132", size = 7334, upload-time = "2025-11-19T20:55:51.612Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/db/3c/33bac158f8ab7f89b2e59426d5fe2e4f63f7ed25df84c036890172b412b5/cfgv-3.5.0-py2.py3-none-any.whl", hash = "sha256:a8dc6b26ad22ff227d2634a65cb388215ce6cc96bbcc5cfde7641ae87e8dacc0", size = 7445, upload-time = "2025-11-19T20:55:50.744Z" }, +] + +[[package]] +name = "chardet" +version = "5.2.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/f3/0d/f7b6ab21ec75897ed80c17d79b15951a719226b9fababf1e40ea74d69079/chardet-5.2.0.tar.gz", hash = "sha256:1b3b6ff479a8c414bc3fa2c0852995695c4a026dcd6d0633b2dd092ca39c1cf7", size = 2069618, upload-time = "2023-08-01T19:23:02.662Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/38/6f/f5fbc992a329ee4e0f288c1fe0e2ad9485ed064cac731ed2fe47dcc38cbf/chardet-5.2.0-py3-none-any.whl", hash = "sha256:e1cf59446890a00105fe7b7912492ea04b6e6f06d4b742b2c788469e34c82970", size = 199385, upload-time = "2023-08-01T19:23:00.661Z" }, +] + +[[package]] +name = "charset-normalizer" +version = "3.4.4" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/13/69/33ddede1939fdd074bce5434295f38fae7136463422fe4fd3e0e89b98062/charset_normalizer-3.4.4.tar.gz", hash = "sha256:94537985111c35f28720e43603b8e7b43a6ecfb2ce1d3058bbe955b73404e21a", size = 129418, upload-time = "2025-10-14T04:42:32.879Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/1f/b8/6d51fc1d52cbd52cd4ccedd5b5b2f0f6a11bbf6765c782298b0f3e808541/charset_normalizer-3.4.4-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:e824f1492727fa856dd6eda4f7cee25f8518a12f3c4a56a74e8095695089cf6d", size = 209709, upload-time = "2025-10-14T04:40:11.385Z" }, + { url = "https://files.pythonhosted.org/packages/5c/af/1f9d7f7faafe2ddfb6f72a2e07a548a629c61ad510fe60f9630309908fef/charset_normalizer-3.4.4-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:4bd5d4137d500351a30687c2d3971758aac9a19208fc110ccb9d7188fbe709e8", size = 148814, upload-time = "2025-10-14T04:40:13.135Z" }, + { url = "https://files.pythonhosted.org/packages/79/3d/f2e3ac2bbc056ca0c204298ea4e3d9db9b4afe437812638759db2c976b5f/charset_normalizer-3.4.4-cp310-cp310-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:027f6de494925c0ab2a55eab46ae5129951638a49a34d87f4c3eda90f696b4ad", size = 144467, upload-time = "2025-10-14T04:40:14.728Z" }, + { url = "https://files.pythonhosted.org/packages/ec/85/1bf997003815e60d57de7bd972c57dc6950446a3e4ccac43bc3070721856/charset_normalizer-3.4.4-cp310-cp310-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:f820802628d2694cb7e56db99213f930856014862f3fd943d290ea8438d07ca8", size = 162280, upload-time = "2025-10-14T04:40:16.14Z" }, + { url = "https://files.pythonhosted.org/packages/3e/8e/6aa1952f56b192f54921c436b87f2aaf7c7a7c3d0d1a765547d64fd83c13/charset_normalizer-3.4.4-cp310-cp310-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:798d75d81754988d2565bff1b97ba5a44411867c0cf32b77a7e8f8d84796b10d", size = 159454, upload-time = "2025-10-14T04:40:17.567Z" }, + { url = "https://files.pythonhosted.org/packages/36/3b/60cbd1f8e93aa25d1c669c649b7a655b0b5fb4c571858910ea9332678558/charset_normalizer-3.4.4-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:9d1bb833febdff5c8927f922386db610b49db6e0d4f4ee29601d71e7c2694313", size = 153609, upload-time = "2025-10-14T04:40:19.08Z" }, + { url = "https://files.pythonhosted.org/packages/64/91/6a13396948b8fd3c4b4fd5bc74d045f5637d78c9675585e8e9fbe5636554/charset_normalizer-3.4.4-cp310-cp310-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:9cd98cdc06614a2f768d2b7286d66805f94c48cde050acdbbb7db2600ab3197e", size = 151849, upload-time = "2025-10-14T04:40:20.607Z" }, + { url = "https://files.pythonhosted.org/packages/b7/7a/59482e28b9981d105691e968c544cc0df3b7d6133152fb3dcdc8f135da7a/charset_normalizer-3.4.4-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:077fbb858e903c73f6c9db43374fd213b0b6a778106bc7032446a8e8b5b38b93", size = 151586, upload-time = "2025-10-14T04:40:21.719Z" }, + { url = "https://files.pythonhosted.org/packages/92/59/f64ef6a1c4bdd2baf892b04cd78792ed8684fbc48d4c2afe467d96b4df57/charset_normalizer-3.4.4-cp310-cp310-musllinux_1_2_armv7l.whl", hash = "sha256:244bfb999c71b35de57821b8ea746b24e863398194a4014e4c76adc2bbdfeff0", size = 145290, upload-time = "2025-10-14T04:40:23.069Z" }, + { url = "https://files.pythonhosted.org/packages/6b/63/3bf9f279ddfa641ffa1962b0db6a57a9c294361cc2f5fcac997049a00e9c/charset_normalizer-3.4.4-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:64b55f9dce520635f018f907ff1b0df1fdc31f2795a922fb49dd14fbcdf48c84", size = 163663, upload-time = "2025-10-14T04:40:24.17Z" }, + { url = "https://files.pythonhosted.org/packages/ed/09/c9e38fc8fa9e0849b172b581fd9803bdf6e694041127933934184e19f8c3/charset_normalizer-3.4.4-cp310-cp310-musllinux_1_2_riscv64.whl", hash = "sha256:faa3a41b2b66b6e50f84ae4a68c64fcd0c44355741c6374813a800cd6695db9e", size = 151964, upload-time = "2025-10-14T04:40:25.368Z" }, + { url = "https://files.pythonhosted.org/packages/d2/d1/d28b747e512d0da79d8b6a1ac18b7ab2ecfd81b2944c4c710e166d8dd09c/charset_normalizer-3.4.4-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:6515f3182dbe4ea06ced2d9e8666d97b46ef4c75e326b79bb624110f122551db", size = 161064, upload-time = "2025-10-14T04:40:26.806Z" }, + { url = "https://files.pythonhosted.org/packages/bb/9a/31d62b611d901c3b9e5500c36aab0ff5eb442043fb3a1c254200d3d397d9/charset_normalizer-3.4.4-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:cc00f04ed596e9dc0da42ed17ac5e596c6ccba999ba6bd92b0e0aef2f170f2d6", size = 155015, upload-time = "2025-10-14T04:40:28.284Z" }, + { url = "https://files.pythonhosted.org/packages/1f/f3/107e008fa2bff0c8b9319584174418e5e5285fef32f79d8ee6a430d0039c/charset_normalizer-3.4.4-cp310-cp310-win32.whl", hash = "sha256:f34be2938726fc13801220747472850852fe6b1ea75869a048d6f896838c896f", size = 99792, upload-time = "2025-10-14T04:40:29.613Z" }, + { url = "https://files.pythonhosted.org/packages/eb/66/e396e8a408843337d7315bab30dbf106c38966f1819f123257f5520f8a96/charset_normalizer-3.4.4-cp310-cp310-win_amd64.whl", hash = "sha256:a61900df84c667873b292c3de315a786dd8dac506704dea57bc957bd31e22c7d", size = 107198, upload-time = "2025-10-14T04:40:30.644Z" }, + { url = "https://files.pythonhosted.org/packages/b5/58/01b4f815bf0312704c267f2ccb6e5d42bcc7752340cd487bc9f8c3710597/charset_normalizer-3.4.4-cp310-cp310-win_arm64.whl", hash = "sha256:cead0978fc57397645f12578bfd2d5ea9138ea0fac82b2f63f7f7c6877986a69", size = 100262, upload-time = "2025-10-14T04:40:32.108Z" }, + { url = "https://files.pythonhosted.org/packages/ed/27/c6491ff4954e58a10f69ad90aca8a1b6fe9c5d3c6f380907af3c37435b59/charset_normalizer-3.4.4-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:6e1fcf0720908f200cd21aa4e6750a48ff6ce4afe7ff5a79a90d5ed8a08296f8", size = 206988, upload-time = "2025-10-14T04:40:33.79Z" }, + { url = "https://files.pythonhosted.org/packages/94/59/2e87300fe67ab820b5428580a53cad894272dbb97f38a7a814a2a1ac1011/charset_normalizer-3.4.4-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:5f819d5fe9234f9f82d75bdfa9aef3a3d72c4d24a6e57aeaebba32a704553aa0", size = 147324, upload-time = "2025-10-14T04:40:34.961Z" }, + { url = "https://files.pythonhosted.org/packages/07/fb/0cf61dc84b2b088391830f6274cb57c82e4da8bbc2efeac8c025edb88772/charset_normalizer-3.4.4-cp311-cp311-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:a59cb51917aa591b1c4e6a43c132f0cdc3c76dbad6155df4e28ee626cc77a0a3", size = 142742, upload-time = "2025-10-14T04:40:36.105Z" }, + { url = "https://files.pythonhosted.org/packages/62/8b/171935adf2312cd745d290ed93cf16cf0dfe320863ab7cbeeae1dcd6535f/charset_normalizer-3.4.4-cp311-cp311-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:8ef3c867360f88ac904fd3f5e1f902f13307af9052646963ee08ff4f131adafc", size = 160863, upload-time = "2025-10-14T04:40:37.188Z" }, + { url = "https://files.pythonhosted.org/packages/09/73/ad875b192bda14f2173bfc1bc9a55e009808484a4b256748d931b6948442/charset_normalizer-3.4.4-cp311-cp311-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:d9e45d7faa48ee908174d8fe84854479ef838fc6a705c9315372eacbc2f02897", size = 157837, upload-time = "2025-10-14T04:40:38.435Z" }, + { url = "https://files.pythonhosted.org/packages/6d/fc/de9cce525b2c5b94b47c70a4b4fb19f871b24995c728e957ee68ab1671ea/charset_normalizer-3.4.4-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:840c25fb618a231545cbab0564a799f101b63b9901f2569faecd6b222ac72381", size = 151550, upload-time = "2025-10-14T04:40:40.053Z" }, + { url = "https://files.pythonhosted.org/packages/55/c2/43edd615fdfba8c6f2dfbd459b25a6b3b551f24ea21981e23fb768503ce1/charset_normalizer-3.4.4-cp311-cp311-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:ca5862d5b3928c4940729dacc329aa9102900382fea192fc5e52eb69d6093815", size = 149162, upload-time = "2025-10-14T04:40:41.163Z" }, + { url = "https://files.pythonhosted.org/packages/03/86/bde4ad8b4d0e9429a4e82c1e8f5c659993a9a863ad62c7df05cf7b678d75/charset_normalizer-3.4.4-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:d9c7f57c3d666a53421049053eaacdd14bbd0a528e2186fcb2e672effd053bb0", size = 150019, upload-time = "2025-10-14T04:40:42.276Z" }, + { url = "https://files.pythonhosted.org/packages/1f/86/a151eb2af293a7e7bac3a739b81072585ce36ccfb4493039f49f1d3cae8c/charset_normalizer-3.4.4-cp311-cp311-musllinux_1_2_armv7l.whl", hash = "sha256:277e970e750505ed74c832b4bf75dac7476262ee2a013f5574dd49075879e161", size = 143310, upload-time = "2025-10-14T04:40:43.439Z" }, + { url = "https://files.pythonhosted.org/packages/b5/fe/43dae6144a7e07b87478fdfc4dbe9efd5defb0e7ec29f5f58a55aeef7bf7/charset_normalizer-3.4.4-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:31fd66405eaf47bb62e8cd575dc621c56c668f27d46a61d975a249930dd5e2a4", size = 162022, upload-time = "2025-10-14T04:40:44.547Z" }, + { url = "https://files.pythonhosted.org/packages/80/e6/7aab83774f5d2bca81f42ac58d04caf44f0cc2b65fc6db2b3b2e8a05f3b3/charset_normalizer-3.4.4-cp311-cp311-musllinux_1_2_riscv64.whl", hash = "sha256:0d3d8f15c07f86e9ff82319b3d9ef6f4bf907608f53fe9d92b28ea9ae3d1fd89", size = 149383, upload-time = "2025-10-14T04:40:46.018Z" }, + { url = "https://files.pythonhosted.org/packages/4f/e8/b289173b4edae05c0dde07f69f8db476a0b511eac556dfe0d6bda3c43384/charset_normalizer-3.4.4-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:9f7fcd74d410a36883701fafa2482a6af2ff5ba96b9a620e9e0721e28ead5569", size = 159098, upload-time = "2025-10-14T04:40:47.081Z" }, + { url = "https://files.pythonhosted.org/packages/d8/df/fe699727754cae3f8478493c7f45f777b17c3ef0600e28abfec8619eb49c/charset_normalizer-3.4.4-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:ebf3e58c7ec8a8bed6d66a75d7fb37b55e5015b03ceae72a8e7c74495551e224", size = 152991, upload-time = "2025-10-14T04:40:48.246Z" }, + { url = "https://files.pythonhosted.org/packages/1a/86/584869fe4ddb6ffa3bd9f491b87a01568797fb9bd8933f557dba9771beaf/charset_normalizer-3.4.4-cp311-cp311-win32.whl", hash = "sha256:eecbc200c7fd5ddb9a7f16c7decb07b566c29fa2161a16cf67b8d068bd21690a", size = 99456, upload-time = "2025-10-14T04:40:49.376Z" }, + { url = "https://files.pythonhosted.org/packages/65/f6/62fdd5feb60530f50f7e38b4f6a1d5203f4d16ff4f9f0952962c044e919a/charset_normalizer-3.4.4-cp311-cp311-win_amd64.whl", hash = "sha256:5ae497466c7901d54b639cf42d5b8c1b6a4fead55215500d2f486d34db48d016", size = 106978, upload-time = "2025-10-14T04:40:50.844Z" }, + { url = "https://files.pythonhosted.org/packages/7a/9d/0710916e6c82948b3be62d9d398cb4fcf4e97b56d6a6aeccd66c4b2f2bd5/charset_normalizer-3.4.4-cp311-cp311-win_arm64.whl", hash = "sha256:65e2befcd84bc6f37095f5961e68a6f077bf44946771354a28ad434c2cce0ae1", size = 99969, upload-time = "2025-10-14T04:40:52.272Z" }, + { url = "https://files.pythonhosted.org/packages/f3/85/1637cd4af66fa687396e757dec650f28025f2a2f5a5531a3208dc0ec43f2/charset_normalizer-3.4.4-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:0a98e6759f854bd25a58a73fa88833fba3b7c491169f86ce1180c948ab3fd394", size = 208425, upload-time = "2025-10-14T04:40:53.353Z" }, + { url = "https://files.pythonhosted.org/packages/9d/6a/04130023fef2a0d9c62d0bae2649b69f7b7d8d24ea5536feef50551029df/charset_normalizer-3.4.4-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:b5b290ccc2a263e8d185130284f8501e3e36c5e02750fc6b6bdeb2e9e96f1e25", size = 148162, upload-time = "2025-10-14T04:40:54.558Z" }, + { url = "https://files.pythonhosted.org/packages/78/29/62328d79aa60da22c9e0b9a66539feae06ca0f5a4171ac4f7dc285b83688/charset_normalizer-3.4.4-cp312-cp312-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:74bb723680f9f7a6234dcf67aea57e708ec1fbdf5699fb91dfd6f511b0a320ef", size = 144558, upload-time = "2025-10-14T04:40:55.677Z" }, + { url = "https://files.pythonhosted.org/packages/86/bb/b32194a4bf15b88403537c2e120b817c61cd4ecffa9b6876e941c3ee38fe/charset_normalizer-3.4.4-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:f1e34719c6ed0b92f418c7c780480b26b5d9c50349e9a9af7d76bf757530350d", size = 161497, upload-time = "2025-10-14T04:40:57.217Z" }, + { url = "https://files.pythonhosted.org/packages/19/89/a54c82b253d5b9b111dc74aca196ba5ccfcca8242d0fb64146d4d3183ff1/charset_normalizer-3.4.4-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:2437418e20515acec67d86e12bf70056a33abdacb5cb1655042f6538d6b085a8", size = 159240, upload-time = "2025-10-14T04:40:58.358Z" }, + { url = "https://files.pythonhosted.org/packages/c0/10/d20b513afe03acc89ec33948320a5544d31f21b05368436d580dec4e234d/charset_normalizer-3.4.4-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:11d694519d7f29d6cd09f6ac70028dba10f92f6cdd059096db198c283794ac86", size = 153471, upload-time = "2025-10-14T04:40:59.468Z" }, + { url = "https://files.pythonhosted.org/packages/61/fa/fbf177b55bdd727010f9c0a3c49eefa1d10f960e5f09d1d887bf93c2e698/charset_normalizer-3.4.4-cp312-cp312-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:ac1c4a689edcc530fc9d9aa11f5774b9e2f33f9a0c6a57864e90908f5208d30a", size = 150864, upload-time = "2025-10-14T04:41:00.623Z" }, + { url = "https://files.pythonhosted.org/packages/05/12/9fbc6a4d39c0198adeebbde20b619790e9236557ca59fc40e0e3cebe6f40/charset_normalizer-3.4.4-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:21d142cc6c0ec30d2efee5068ca36c128a30b0f2c53c1c07bd78cb6bc1d3be5f", size = 150647, upload-time = "2025-10-14T04:41:01.754Z" }, + { url = "https://files.pythonhosted.org/packages/ad/1f/6a9a593d52e3e8c5d2b167daf8c6b968808efb57ef4c210acb907c365bc4/charset_normalizer-3.4.4-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:5dbe56a36425d26d6cfb40ce79c314a2e4dd6211d51d6d2191c00bed34f354cc", size = 145110, upload-time = "2025-10-14T04:41:03.231Z" }, + { url = "https://files.pythonhosted.org/packages/30/42/9a52c609e72471b0fc54386dc63c3781a387bb4fe61c20231a4ebcd58bdd/charset_normalizer-3.4.4-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:5bfbb1b9acf3334612667b61bd3002196fe2a1eb4dd74d247e0f2a4d50ec9bbf", size = 162839, upload-time = "2025-10-14T04:41:04.715Z" }, + { url = "https://files.pythonhosted.org/packages/c4/5b/c0682bbf9f11597073052628ddd38344a3d673fda35a36773f7d19344b23/charset_normalizer-3.4.4-cp312-cp312-musllinux_1_2_riscv64.whl", hash = "sha256:d055ec1e26e441f6187acf818b73564e6e6282709e9bcb5b63f5b23068356a15", size = 150667, upload-time = "2025-10-14T04:41:05.827Z" }, + { url = "https://files.pythonhosted.org/packages/e4/24/a41afeab6f990cf2daf6cb8c67419b63b48cf518e4f56022230840c9bfb2/charset_normalizer-3.4.4-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:af2d8c67d8e573d6de5bc30cdb27e9b95e49115cd9baad5ddbd1a6207aaa82a9", size = 160535, upload-time = "2025-10-14T04:41:06.938Z" }, + { url = "https://files.pythonhosted.org/packages/2a/e5/6a4ce77ed243c4a50a1fecca6aaaab419628c818a49434be428fe24c9957/charset_normalizer-3.4.4-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:780236ac706e66881f3b7f2f32dfe90507a09e67d1d454c762cf642e6e1586e0", size = 154816, upload-time = "2025-10-14T04:41:08.101Z" }, + { url = "https://files.pythonhosted.org/packages/a8/ef/89297262b8092b312d29cdb2517cb1237e51db8ecef2e9af5edbe7b683b1/charset_normalizer-3.4.4-cp312-cp312-win32.whl", hash = "sha256:5833d2c39d8896e4e19b689ffc198f08ea58116bee26dea51e362ecc7cd3ed26", size = 99694, upload-time = "2025-10-14T04:41:09.23Z" }, + { url = "https://files.pythonhosted.org/packages/3d/2d/1e5ed9dd3b3803994c155cd9aacb60c82c331bad84daf75bcb9c91b3295e/charset_normalizer-3.4.4-cp312-cp312-win_amd64.whl", hash = "sha256:a79cfe37875f822425b89a82333404539ae63dbdddf97f84dcbc3d339aae9525", size = 107131, upload-time = "2025-10-14T04:41:10.467Z" }, + { url = "https://files.pythonhosted.org/packages/d0/d9/0ed4c7098a861482a7b6a95603edce4c0d9db2311af23da1fb2b75ec26fc/charset_normalizer-3.4.4-cp312-cp312-win_arm64.whl", hash = "sha256:376bec83a63b8021bb5c8ea75e21c4ccb86e7e45ca4eb81146091b56599b80c3", size = 100390, upload-time = "2025-10-14T04:41:11.915Z" }, + { url = "https://files.pythonhosted.org/packages/97/45/4b3a1239bbacd321068ea6e7ac28875b03ab8bc0aa0966452db17cd36714/charset_normalizer-3.4.4-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:e1f185f86a6f3403aa2420e815904c67b2f9ebc443f045edd0de921108345794", size = 208091, upload-time = "2025-10-14T04:41:13.346Z" }, + { url = "https://files.pythonhosted.org/packages/7d/62/73a6d7450829655a35bb88a88fca7d736f9882a27eacdca2c6d505b57e2e/charset_normalizer-3.4.4-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:6b39f987ae8ccdf0d2642338faf2abb1862340facc796048b604ef14919e55ed", size = 147936, upload-time = "2025-10-14T04:41:14.461Z" }, + { url = "https://files.pythonhosted.org/packages/89/c5/adb8c8b3d6625bef6d88b251bbb0d95f8205831b987631ab0c8bb5d937c2/charset_normalizer-3.4.4-cp313-cp313-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:3162d5d8ce1bb98dd51af660f2121c55d0fa541b46dff7bb9b9f86ea1d87de72", size = 144180, upload-time = "2025-10-14T04:41:15.588Z" }, + { url = "https://files.pythonhosted.org/packages/91/ed/9706e4070682d1cc219050b6048bfd293ccf67b3d4f5a4f39207453d4b99/charset_normalizer-3.4.4-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:81d5eb2a312700f4ecaa977a8235b634ce853200e828fbadf3a9c50bab278328", size = 161346, upload-time = "2025-10-14T04:41:16.738Z" }, + { url = "https://files.pythonhosted.org/packages/d5/0d/031f0d95e4972901a2f6f09ef055751805ff541511dc1252ba3ca1f80cf5/charset_normalizer-3.4.4-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:5bd2293095d766545ec1a8f612559f6b40abc0eb18bb2f5d1171872d34036ede", size = 158874, upload-time = "2025-10-14T04:41:17.923Z" }, + { url = "https://files.pythonhosted.org/packages/f5/83/6ab5883f57c9c801ce5e5677242328aa45592be8a00644310a008d04f922/charset_normalizer-3.4.4-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:a8a8b89589086a25749f471e6a900d3f662d1d3b6e2e59dcecf787b1cc3a1894", size = 153076, upload-time = "2025-10-14T04:41:19.106Z" }, + { url = "https://files.pythonhosted.org/packages/75/1e/5ff781ddf5260e387d6419959ee89ef13878229732732ee73cdae01800f2/charset_normalizer-3.4.4-cp313-cp313-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:bc7637e2f80d8530ee4a78e878bce464f70087ce73cf7c1caf142416923b98f1", size = 150601, upload-time = "2025-10-14T04:41:20.245Z" }, + { url = "https://files.pythonhosted.org/packages/d7/57/71be810965493d3510a6ca79b90c19e48696fb1ff964da319334b12677f0/charset_normalizer-3.4.4-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:f8bf04158c6b607d747e93949aa60618b61312fe647a6369f88ce2ff16043490", size = 150376, upload-time = "2025-10-14T04:41:21.398Z" }, + { url = "https://files.pythonhosted.org/packages/e5/d5/c3d057a78c181d007014feb7e9f2e65905a6c4ef182c0ddf0de2924edd65/charset_normalizer-3.4.4-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:554af85e960429cf30784dd47447d5125aaa3b99a6f0683589dbd27e2f45da44", size = 144825, upload-time = "2025-10-14T04:41:22.583Z" }, + { url = "https://files.pythonhosted.org/packages/e6/8c/d0406294828d4976f275ffbe66f00266c4b3136b7506941d87c00cab5272/charset_normalizer-3.4.4-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:74018750915ee7ad843a774364e13a3db91682f26142baddf775342c3f5b1133", size = 162583, upload-time = "2025-10-14T04:41:23.754Z" }, + { url = "https://files.pythonhosted.org/packages/d7/24/e2aa1f18c8f15c4c0e932d9287b8609dd30ad56dbe41d926bd846e22fb8d/charset_normalizer-3.4.4-cp313-cp313-musllinux_1_2_riscv64.whl", hash = "sha256:c0463276121fdee9c49b98908b3a89c39be45d86d1dbaa22957e38f6321d4ce3", size = 150366, upload-time = "2025-10-14T04:41:25.27Z" }, + { url = "https://files.pythonhosted.org/packages/e4/5b/1e6160c7739aad1e2df054300cc618b06bf784a7a164b0f238360721ab86/charset_normalizer-3.4.4-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:362d61fd13843997c1c446760ef36f240cf81d3ebf74ac62652aebaf7838561e", size = 160300, upload-time = "2025-10-14T04:41:26.725Z" }, + { url = "https://files.pythonhosted.org/packages/7a/10/f882167cd207fbdd743e55534d5d9620e095089d176d55cb22d5322f2afd/charset_normalizer-3.4.4-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:9a26f18905b8dd5d685d6d07b0cdf98a79f3c7a918906af7cc143ea2e164c8bc", size = 154465, upload-time = "2025-10-14T04:41:28.322Z" }, + { url = "https://files.pythonhosted.org/packages/89/66/c7a9e1b7429be72123441bfdbaf2bc13faab3f90b933f664db506dea5915/charset_normalizer-3.4.4-cp313-cp313-win32.whl", hash = "sha256:9b35f4c90079ff2e2edc5b26c0c77925e5d2d255c42c74fdb70fb49b172726ac", size = 99404, upload-time = "2025-10-14T04:41:29.95Z" }, + { url = "https://files.pythonhosted.org/packages/c4/26/b9924fa27db384bdcd97ab83b4f0a8058d96ad9626ead570674d5e737d90/charset_normalizer-3.4.4-cp313-cp313-win_amd64.whl", hash = "sha256:b435cba5f4f750aa6c0a0d92c541fb79f69a387c91e61f1795227e4ed9cece14", size = 107092, upload-time = "2025-10-14T04:41:31.188Z" }, + { url = "https://files.pythonhosted.org/packages/af/8f/3ed4bfa0c0c72a7ca17f0380cd9e4dd842b09f664e780c13cff1dcf2ef1b/charset_normalizer-3.4.4-cp313-cp313-win_arm64.whl", hash = "sha256:542d2cee80be6f80247095cc36c418f7bddd14f4a6de45af91dfad36d817bba2", size = 100408, upload-time = "2025-10-14T04:41:32.624Z" }, + { url = "https://files.pythonhosted.org/packages/2a/35/7051599bd493e62411d6ede36fd5af83a38f37c4767b92884df7301db25d/charset_normalizer-3.4.4-cp314-cp314-macosx_10_13_universal2.whl", hash = "sha256:da3326d9e65ef63a817ecbcc0df6e94463713b754fe293eaa03da99befb9a5bd", size = 207746, upload-time = "2025-10-14T04:41:33.773Z" }, + { url = "https://files.pythonhosted.org/packages/10/9a/97c8d48ef10d6cd4fcead2415523221624bf58bcf68a802721a6bc807c8f/charset_normalizer-3.4.4-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:8af65f14dc14a79b924524b1e7fffe304517b2bff5a58bf64f30b98bbc5079eb", size = 147889, upload-time = "2025-10-14T04:41:34.897Z" }, + { url = "https://files.pythonhosted.org/packages/10/bf/979224a919a1b606c82bd2c5fa49b5c6d5727aa47b4312bb27b1734f53cd/charset_normalizer-3.4.4-cp314-cp314-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:74664978bb272435107de04e36db5a9735e78232b85b77d45cfb38f758efd33e", size = 143641, upload-time = "2025-10-14T04:41:36.116Z" }, + { url = "https://files.pythonhosted.org/packages/ba/33/0ad65587441fc730dc7bd90e9716b30b4702dc7b617e6ba4997dc8651495/charset_normalizer-3.4.4-cp314-cp314-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:752944c7ffbfdd10c074dc58ec2d5a8a4cd9493b314d367c14d24c17684ddd14", size = 160779, upload-time = "2025-10-14T04:41:37.229Z" }, + { url = "https://files.pythonhosted.org/packages/67/ed/331d6b249259ee71ddea93f6f2f0a56cfebd46938bde6fcc6f7b9a3d0e09/charset_normalizer-3.4.4-cp314-cp314-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:d1f13550535ad8cff21b8d757a3257963e951d96e20ec82ab44bc64aeb62a191", size = 159035, upload-time = "2025-10-14T04:41:38.368Z" }, + { url = "https://files.pythonhosted.org/packages/67/ff/f6b948ca32e4f2a4576aa129d8bed61f2e0543bf9f5f2b7fc3758ed005c9/charset_normalizer-3.4.4-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:ecaae4149d99b1c9e7b88bb03e3221956f68fd6d50be2ef061b2381b61d20838", size = 152542, upload-time = "2025-10-14T04:41:39.862Z" }, + { url = "https://files.pythonhosted.org/packages/16/85/276033dcbcc369eb176594de22728541a925b2632f9716428c851b149e83/charset_normalizer-3.4.4-cp314-cp314-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:cb6254dc36b47a990e59e1068afacdcd02958bdcce30bb50cc1700a8b9d624a6", size = 149524, upload-time = "2025-10-14T04:41:41.319Z" }, + { url = "https://files.pythonhosted.org/packages/9e/f2/6a2a1f722b6aba37050e626530a46a68f74e63683947a8acff92569f979a/charset_normalizer-3.4.4-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:c8ae8a0f02f57a6e61203a31428fa1d677cbe50c93622b4149d5c0f319c1d19e", size = 150395, upload-time = "2025-10-14T04:41:42.539Z" }, + { url = "https://files.pythonhosted.org/packages/60/bb/2186cb2f2bbaea6338cad15ce23a67f9b0672929744381e28b0592676824/charset_normalizer-3.4.4-cp314-cp314-musllinux_1_2_armv7l.whl", hash = "sha256:47cc91b2f4dd2833fddaedd2893006b0106129d4b94fdb6af1f4ce5a9965577c", size = 143680, upload-time = "2025-10-14T04:41:43.661Z" }, + { url = "https://files.pythonhosted.org/packages/7d/a5/bf6f13b772fbb2a90360eb620d52ed8f796f3c5caee8398c3b2eb7b1c60d/charset_normalizer-3.4.4-cp314-cp314-musllinux_1_2_ppc64le.whl", hash = "sha256:82004af6c302b5d3ab2cfc4cc5f29db16123b1a8417f2e25f9066f91d4411090", size = 162045, upload-time = "2025-10-14T04:41:44.821Z" }, + { url = "https://files.pythonhosted.org/packages/df/c5/d1be898bf0dc3ef9030c3825e5d3b83f2c528d207d246cbabe245966808d/charset_normalizer-3.4.4-cp314-cp314-musllinux_1_2_riscv64.whl", hash = "sha256:2b7d8f6c26245217bd2ad053761201e9f9680f8ce52f0fcd8d0755aeae5b2152", size = 149687, upload-time = "2025-10-14T04:41:46.442Z" }, + { url = "https://files.pythonhosted.org/packages/a5/42/90c1f7b9341eef50c8a1cb3f098ac43b0508413f33affd762855f67a410e/charset_normalizer-3.4.4-cp314-cp314-musllinux_1_2_s390x.whl", hash = "sha256:799a7a5e4fb2d5898c60b640fd4981d6a25f1c11790935a44ce38c54e985f828", size = 160014, upload-time = "2025-10-14T04:41:47.631Z" }, + { url = "https://files.pythonhosted.org/packages/76/be/4d3ee471e8145d12795ab655ece37baed0929462a86e72372fd25859047c/charset_normalizer-3.4.4-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:99ae2cffebb06e6c22bdc25801d7b30f503cc87dbd283479e7b606f70aff57ec", size = 154044, upload-time = "2025-10-14T04:41:48.81Z" }, + { url = "https://files.pythonhosted.org/packages/b0/6f/8f7af07237c34a1defe7defc565a9bc1807762f672c0fde711a4b22bf9c0/charset_normalizer-3.4.4-cp314-cp314-win32.whl", hash = "sha256:f9d332f8c2a2fcbffe1378594431458ddbef721c1769d78e2cbc06280d8155f9", size = 99940, upload-time = "2025-10-14T04:41:49.946Z" }, + { url = "https://files.pythonhosted.org/packages/4b/51/8ade005e5ca5b0d80fb4aff72a3775b325bdc3d27408c8113811a7cbe640/charset_normalizer-3.4.4-cp314-cp314-win_amd64.whl", hash = "sha256:8a6562c3700cce886c5be75ade4a5db4214fda19fede41d9792d100288d8f94c", size = 107104, upload-time = "2025-10-14T04:41:51.051Z" }, + { url = "https://files.pythonhosted.org/packages/da/5f/6b8f83a55bb8278772c5ae54a577f3099025f9ade59d0136ac24a0df4bde/charset_normalizer-3.4.4-cp314-cp314-win_arm64.whl", hash = "sha256:de00632ca48df9daf77a2c65a484531649261ec9f25489917f09e455cb09ddb2", size = 100743, upload-time = "2025-10-14T04:41:52.122Z" }, + { url = "https://files.pythonhosted.org/packages/0a/4c/925909008ed5a988ccbb72dcc897407e5d6d3bd72410d69e051fc0c14647/charset_normalizer-3.4.4-py3-none-any.whl", hash = "sha256:7a32c560861a02ff789ad905a2fe94e3f840803362c84fecf1851cb4cf3dc37f", size = 53402, upload-time = "2025-10-14T04:42:31.76Z" }, +] + +[[package]] +name = "click" +version = "8.3.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "colorama", marker = "sys_platform == 'win32'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/3d/fa/656b739db8587d7b5dfa22e22ed02566950fbfbcdc20311993483657a5c0/click-8.3.1.tar.gz", hash = "sha256:12ff4785d337a1bb490bb7e9c2b1ee5da3112e94a8622f26a6c77f5d2fc6842a", size = 295065, upload-time = "2025-11-15T20:45:42.706Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/98/78/01c019cdb5d6498122777c1a43056ebb3ebfeef2076d9d026bfe15583b2b/click-8.3.1-py3-none-any.whl", hash = "sha256:981153a64e25f12d547d3426c367a4857371575ee7ad18df2a6183ab0545b2a6", size = 108274, upload-time = "2025-11-15T20:45:41.139Z" }, +] + +[[package]] +name = "colorama" +version = "0.4.6" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/d8/53/6f443c9a4a8358a93a6792e2acffb9d9d5cb0a5cfd8802644b7b1c9a02e4/colorama-0.4.6.tar.gz", hash = "sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44", size = 27697, upload-time = "2022-10-25T02:36:22.414Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/d1/d6/3965ed04c63042e047cb6a3e6ed1a63a35087b6a609aa3a15ed8ac56c221/colorama-0.4.6-py2.py3-none-any.whl", hash = "sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6", size = 25335, upload-time = "2022-10-25T02:36:20.889Z" }, +] + +[[package]] +name = "coverage" +version = "7.13.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/ad/49/349848445b0e53660e258acbcc9b0d014895b6739237920886672240f84b/coverage-7.13.2.tar.gz", hash = "sha256:044c6951ec37146b72a50cc81ef02217d27d4c3640efd2640311393cbbf143d3", size = 826523, upload-time = "2026-01-25T13:00:04.889Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/a4/2d/63e37369c8e81a643afe54f76073b020f7b97ddbe698c5c944b51b0a2bc5/coverage-7.13.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:f4af3b01763909f477ea17c962e2cca8f39b350a4e46e3a30838b2c12e31b81b", size = 218842, upload-time = "2026-01-25T12:57:15.3Z" }, + { url = "https://files.pythonhosted.org/packages/57/06/86ce882a8d58cbcb3030e298788988e618da35420d16a8c66dac34f138d0/coverage-7.13.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:36393bd2841fa0b59498f75466ee9bdec4f770d3254f031f23e8fd8e140ffdd2", size = 219360, upload-time = "2026-01-25T12:57:17.572Z" }, + { url = "https://files.pythonhosted.org/packages/cd/84/70b0eb1ee19ca4ef559c559054c59e5b2ae4ec9af61398670189e5d276e9/coverage-7.13.2-cp310-cp310-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:9cc7573518b7e2186bd229b1a0fe24a807273798832c27032c4510f47ffdb896", size = 246123, upload-time = "2026-01-25T12:57:19.087Z" }, + { url = "https://files.pythonhosted.org/packages/35/fb/05b9830c2e8275ebc031e0019387cda99113e62bb500ab328bb72578183b/coverage-7.13.2-cp310-cp310-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:ca9566769b69a5e216a4e176d54b9df88f29d750c5b78dbb899e379b4e14b30c", size = 247930, upload-time = "2026-01-25T12:57:20.929Z" }, + { url = "https://files.pythonhosted.org/packages/81/aa/3f37858ca2eed4f09b10ca3c6ddc9041be0a475626cd7fd2712f4a2d526f/coverage-7.13.2-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:9c9bdea644e94fd66d75a6f7e9a97bb822371e1fe7eadae2cacd50fcbc28e4dc", size = 249804, upload-time = "2026-01-25T12:57:22.904Z" }, + { url = "https://files.pythonhosted.org/packages/b6/b3/c904f40c56e60a2d9678a5ee8df3d906d297d15fb8bec5756c3b0a67e2df/coverage-7.13.2-cp310-cp310-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:5bd447332ec4f45838c1ad42268ce21ca87c40deb86eabd59888859b66be22a5", size = 246815, upload-time = "2026-01-25T12:57:24.314Z" }, + { url = "https://files.pythonhosted.org/packages/41/91/ddc1c5394ca7fd086342486440bfdd6b9e9bda512bf774599c7c7a0081e0/coverage-7.13.2-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:7c79ad5c28a16a1277e1187cf83ea8dafdcc689a784228a7d390f19776db7c31", size = 247843, upload-time = "2026-01-25T12:57:26.544Z" }, + { url = "https://files.pythonhosted.org/packages/87/d2/cdff8f4cd33697883c224ea8e003e9c77c0f1a837dc41d95a94dd26aad67/coverage-7.13.2-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:76e06ccacd1fb6ada5d076ed98a8c6f66e2e6acd3df02819e2ee29fd637b76ad", size = 245850, upload-time = "2026-01-25T12:57:28.507Z" }, + { url = "https://files.pythonhosted.org/packages/f5/42/e837febb7866bf2553ab53dd62ed52f9bb36d60c7e017c55376ad21fbb05/coverage-7.13.2-cp310-cp310-musllinux_1_2_riscv64.whl", hash = "sha256:49d49e9a5e9f4dc3d3dac95278a020afa6d6bdd41f63608a76fa05a719d5b66f", size = 246116, upload-time = "2026-01-25T12:57:30.16Z" }, + { url = "https://files.pythonhosted.org/packages/09/b1/4a3f935d7df154df02ff4f71af8d61298d713a7ba305d050ae475bfbdde2/coverage-7.13.2-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:ed2bce0e7bfa53f7b0b01c722da289ef6ad4c18ebd52b1f93704c21f116360c8", size = 246720, upload-time = "2026-01-25T12:57:32.165Z" }, + { url = "https://files.pythonhosted.org/packages/e1/fe/538a6fd44c515f1c5197a3f078094cbaf2ce9f945df5b44e29d95c864bff/coverage-7.13.2-cp310-cp310-win32.whl", hash = "sha256:1574983178b35b9af4db4a9f7328a18a14a0a0ce76ffaa1c1bacb4cc82089a7c", size = 221465, upload-time = "2026-01-25T12:57:33.511Z" }, + { url = "https://files.pythonhosted.org/packages/5e/09/4b63a024295f326ec1a40ec8def27799300ce8775b1cbf0d33b1790605c4/coverage-7.13.2-cp310-cp310-win_amd64.whl", hash = "sha256:a360a8baeb038928ceb996f5623a4cd508728f8f13e08d4e96ce161702f3dd99", size = 222397, upload-time = "2026-01-25T12:57:34.927Z" }, + { url = "https://files.pythonhosted.org/packages/6c/01/abca50583a8975bb6e1c59eff67ed8e48bb127c07dad5c28d9e96ccc09ec/coverage-7.13.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:060ebf6f2c51aff5ba38e1f43a2095e087389b1c69d559fde6049a4b0001320e", size = 218971, upload-time = "2026-01-25T12:57:36.953Z" }, + { url = "https://files.pythonhosted.org/packages/eb/0e/b6489f344d99cd1e5b4d5e1be52dfd3f8a3dc5112aa6c33948da8cabad4e/coverage-7.13.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:c1ea8ca9db5e7469cd364552985e15911548ea5b69c48a17291f0cac70484b2e", size = 219473, upload-time = "2026-01-25T12:57:38.934Z" }, + { url = "https://files.pythonhosted.org/packages/17/11/db2f414915a8e4ec53f60b17956c27f21fb68fcf20f8a455ce7c2ccec638/coverage-7.13.2-cp311-cp311-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:b780090d15fd58f07cf2011943e25a5f0c1c894384b13a216b6c86c8a8a7c508", size = 249896, upload-time = "2026-01-25T12:57:40.365Z" }, + { url = "https://files.pythonhosted.org/packages/80/06/0823fe93913663c017e508e8810c998c8ebd3ec2a5a85d2c3754297bdede/coverage-7.13.2-cp311-cp311-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:88a800258d83acb803c38175b4495d293656d5fac48659c953c18e5f539a274b", size = 251810, upload-time = "2026-01-25T12:57:42.045Z" }, + { url = "https://files.pythonhosted.org/packages/61/dc/b151c3cc41b28cdf7f0166c5fa1271cbc305a8ec0124cce4b04f74791a18/coverage-7.13.2-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:6326e18e9a553e674d948536a04a80d850a5eeefe2aae2e6d7cf05d54046c01b", size = 253920, upload-time = "2026-01-25T12:57:44.026Z" }, + { url = "https://files.pythonhosted.org/packages/2d/35/e83de0556e54a4729a2b94ea816f74ce08732e81945024adee46851c2264/coverage-7.13.2-cp311-cp311-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:59562de3f797979e1ff07c587e2ac36ba60ca59d16c211eceaa579c266c5022f", size = 250025, upload-time = "2026-01-25T12:57:45.624Z" }, + { url = "https://files.pythonhosted.org/packages/39/67/af2eb9c3926ce3ea0d58a0d2516fcbdacf7a9fc9559fe63076beaf3f2596/coverage-7.13.2-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:27ba1ed6f66b0e2d61bfa78874dffd4f8c3a12f8e2b5410e515ab345ba7bc9c3", size = 251612, upload-time = "2026-01-25T12:57:47.713Z" }, + { url = "https://files.pythonhosted.org/packages/26/62/5be2e25f3d6c711d23b71296f8b44c978d4c8b4e5b26871abfc164297502/coverage-7.13.2-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:8be48da4d47cc68754ce643ea50b3234557cbefe47c2f120495e7bd0a2756f2b", size = 249670, upload-time = "2026-01-25T12:57:49.378Z" }, + { url = "https://files.pythonhosted.org/packages/b3/51/400d1b09a8344199f9b6a6fc1868005d766b7ea95e7882e494fa862ca69c/coverage-7.13.2-cp311-cp311-musllinux_1_2_riscv64.whl", hash = "sha256:2a47a4223d3361b91176aedd9d4e05844ca67d7188456227b6bf5e436630c9a1", size = 249395, upload-time = "2026-01-25T12:57:50.86Z" }, + { url = "https://files.pythonhosted.org/packages/e0/36/f02234bc6e5230e2f0a63fd125d0a2093c73ef20fdf681c7af62a140e4e7/coverage-7.13.2-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:c6f141b468740197d6bd38f2b26ade124363228cc3f9858bd9924ab059e00059", size = 250298, upload-time = "2026-01-25T12:57:52.287Z" }, + { url = "https://files.pythonhosted.org/packages/b0/06/713110d3dd3151b93611c9cbfc65c15b4156b44f927fced49ac0b20b32a4/coverage-7.13.2-cp311-cp311-win32.whl", hash = "sha256:89567798404af067604246e01a49ef907d112edf2b75ef814b1364d5ce267031", size = 221485, upload-time = "2026-01-25T12:57:53.876Z" }, + { url = "https://files.pythonhosted.org/packages/16/0c/3ae6255fa1ebcb7dec19c9a59e85ef5f34566d1265c70af5b2fc981da834/coverage-7.13.2-cp311-cp311-win_amd64.whl", hash = "sha256:21dd57941804ae2ac7e921771a5e21bbf9aabec317a041d164853ad0a96ce31e", size = 222421, upload-time = "2026-01-25T12:57:55.433Z" }, + { url = "https://files.pythonhosted.org/packages/b5/37/fabc3179af4d61d89ea47bd04333fec735cd5e8b59baad44fed9fc4170d7/coverage-7.13.2-cp311-cp311-win_arm64.whl", hash = "sha256:10758e0586c134a0bafa28f2d37dd2cdb5e4a90de25c0fc0c77dabbad46eca28", size = 221088, upload-time = "2026-01-25T12:57:57.41Z" }, + { url = "https://files.pythonhosted.org/packages/46/39/e92a35f7800222d3f7b2cbb7bbc3b65672ae8d501cb31801b2d2bd7acdf1/coverage-7.13.2-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:f106b2af193f965d0d3234f3f83fc35278c7fb935dfbde56ae2da3dd2c03b84d", size = 219142, upload-time = "2026-01-25T12:58:00.448Z" }, + { url = "https://files.pythonhosted.org/packages/45/7a/8bf9e9309c4c996e65c52a7c5a112707ecdd9fbaf49e10b5a705a402bbb4/coverage-7.13.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:78f45d21dc4d5d6bd29323f0320089ef7eae16e4bef712dff79d184fa7330af3", size = 219503, upload-time = "2026-01-25T12:58:02.451Z" }, + { url = "https://files.pythonhosted.org/packages/87/93/17661e06b7b37580923f3f12406ac91d78aeed293fb6da0b69cc7957582f/coverage-7.13.2-cp312-cp312-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:fae91dfecd816444c74531a9c3d6ded17a504767e97aa674d44f638107265b99", size = 251006, upload-time = "2026-01-25T12:58:04.059Z" }, + { url = "https://files.pythonhosted.org/packages/12/f0/f9e59fb8c310171497f379e25db060abef9fa605e09d63157eebec102676/coverage-7.13.2-cp312-cp312-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:264657171406c114787b441484de620e03d8f7202f113d62fcd3d9688baa3e6f", size = 253750, upload-time = "2026-01-25T12:58:05.574Z" }, + { url = "https://files.pythonhosted.org/packages/e5/b1/1935e31add2232663cf7edd8269548b122a7d100047ff93475dbaaae673e/coverage-7.13.2-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:ae47d8dcd3ded0155afbb59c62bd8ab07ea0fd4902e1c40567439e6db9dcaf2f", size = 254862, upload-time = "2026-01-25T12:58:07.647Z" }, + { url = "https://files.pythonhosted.org/packages/af/59/b5e97071ec13df5f45da2b3391b6cdbec78ba20757bc92580a5b3d5fa53c/coverage-7.13.2-cp312-cp312-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:8a0b33e9fd838220b007ce8f299114d406c1e8edb21336af4c97a26ecfd185aa", size = 251420, upload-time = "2026-01-25T12:58:09.309Z" }, + { url = "https://files.pythonhosted.org/packages/3f/75/9495932f87469d013dc515fb0ce1aac5fa97766f38f6b1a1deb1ee7b7f3a/coverage-7.13.2-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:b3becbea7f3ce9a2d4d430f223ec15888e4deb31395840a79e916368d6004cce", size = 252786, upload-time = "2026-01-25T12:58:10.909Z" }, + { url = "https://files.pythonhosted.org/packages/6a/59/af550721f0eb62f46f7b8cb7e6f1860592189267b1c411a4e3a057caacee/coverage-7.13.2-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:f819c727a6e6eeb8711e4ce63d78c620f69630a2e9d53bc95ca5379f57b6ba94", size = 250928, upload-time = "2026-01-25T12:58:12.449Z" }, + { url = "https://files.pythonhosted.org/packages/9b/b1/21b4445709aae500be4ab43bbcfb4e53dc0811c3396dcb11bf9f23fd0226/coverage-7.13.2-cp312-cp312-musllinux_1_2_riscv64.whl", hash = "sha256:4f7b71757a3ab19f7ba286e04c181004c1d61be921795ee8ba6970fd0ec91da5", size = 250496, upload-time = "2026-01-25T12:58:14.047Z" }, + { url = "https://files.pythonhosted.org/packages/ba/b1/0f5d89dfe0392990e4f3980adbde3eb34885bc1effb2dc369e0bf385e389/coverage-7.13.2-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:b7fc50d2afd2e6b4f6f2f403b70103d280a8e0cb35320cbbe6debcda02a1030b", size = 252373, upload-time = "2026-01-25T12:58:15.976Z" }, + { url = "https://files.pythonhosted.org/packages/01/c9/0cf1a6a57a9968cc049a6b896693faa523c638a5314b1fc374eb2b2ac904/coverage-7.13.2-cp312-cp312-win32.whl", hash = "sha256:292250282cf9bcf206b543d7608bda17ca6fc151f4cbae949fc7e115112fbd41", size = 221696, upload-time = "2026-01-25T12:58:17.517Z" }, + { url = "https://files.pythonhosted.org/packages/4d/05/d7540bf983f09d32803911afed135524570f8c47bb394bf6206c1dc3a786/coverage-7.13.2-cp312-cp312-win_amd64.whl", hash = "sha256:eeea10169fac01549a7921d27a3e517194ae254b542102267bef7a93ed38c40e", size = 222504, upload-time = "2026-01-25T12:58:19.115Z" }, + { url = "https://files.pythonhosted.org/packages/15/8b/1a9f037a736ced0a12aacf6330cdaad5008081142a7070bc58b0f7930cbc/coverage-7.13.2-cp312-cp312-win_arm64.whl", hash = "sha256:2a5b567f0b635b592c917f96b9a9cb3dbd4c320d03f4bf94e9084e494f2e8894", size = 221120, upload-time = "2026-01-25T12:58:21.334Z" }, + { url = "https://files.pythonhosted.org/packages/a7/f0/3d3eac7568ab6096ff23791a526b0048a1ff3f49d0e236b2af6fb6558e88/coverage-7.13.2-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:ed75de7d1217cf3b99365d110975f83af0528c849ef5180a12fd91b5064df9d6", size = 219168, upload-time = "2026-01-25T12:58:23.376Z" }, + { url = "https://files.pythonhosted.org/packages/a3/a6/f8b5cfeddbab95fdef4dcd682d82e5dcff7a112ced57a959f89537ee9995/coverage-7.13.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:97e596de8fa9bada4d88fde64a3f4d37f1b6131e4faa32bad7808abc79887ddc", size = 219537, upload-time = "2026-01-25T12:58:24.932Z" }, + { url = "https://files.pythonhosted.org/packages/7b/e6/8d8e6e0c516c838229d1e41cadcec91745f4b1031d4db17ce0043a0423b4/coverage-7.13.2-cp313-cp313-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:68c86173562ed4413345410c9480a8d64864ac5e54a5cda236748031e094229f", size = 250528, upload-time = "2026-01-25T12:58:26.567Z" }, + { url = "https://files.pythonhosted.org/packages/8e/78/befa6640f74092b86961f957f26504c8fba3d7da57cc2ab7407391870495/coverage-7.13.2-cp313-cp313-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:7be4d613638d678b2b3773b8f687537b284d7074695a43fe2fbbfc0e31ceaed1", size = 253132, upload-time = "2026-01-25T12:58:28.251Z" }, + { url = "https://files.pythonhosted.org/packages/9d/10/1630db1edd8ce675124a2ee0f7becc603d2bb7b345c2387b4b95c6907094/coverage-7.13.2-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:d7f63ce526a96acd0e16c4af8b50b64334239550402fb1607ce6a584a6d62ce9", size = 254374, upload-time = "2026-01-25T12:58:30.294Z" }, + { url = "https://files.pythonhosted.org/packages/ed/1d/0d9381647b1e8e6d310ac4140be9c428a0277330991e0c35bdd751e338a4/coverage-7.13.2-cp313-cp313-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:406821f37f864f968e29ac14c3fccae0fec9fdeba48327f0341decf4daf92d7c", size = 250762, upload-time = "2026-01-25T12:58:32.036Z" }, + { url = "https://files.pythonhosted.org/packages/43/e4/5636dfc9a7c871ee8776af83ee33b4c26bc508ad6cee1e89b6419a366582/coverage-7.13.2-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:ee68e5a4e3e5443623406b905db447dceddffee0dceb39f4e0cd9ec2a35004b5", size = 252502, upload-time = "2026-01-25T12:58:33.961Z" }, + { url = "https://files.pythonhosted.org/packages/02/2a/7ff2884d79d420cbb2d12fed6fff727b6d0ef27253140d3cdbbd03187ee0/coverage-7.13.2-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:2ee0e58cca0c17dd9c6c1cdde02bb705c7b3fbfa5f3b0b5afeda20d4ebff8ef4", size = 250463, upload-time = "2026-01-25T12:58:35.529Z" }, + { url = "https://files.pythonhosted.org/packages/91/c0/ba51087db645b6c7261570400fc62c89a16278763f36ba618dc8657a187b/coverage-7.13.2-cp313-cp313-musllinux_1_2_riscv64.whl", hash = "sha256:6e5bbb5018bf76a56aabdb64246b5288d5ae1b7d0dd4d0534fe86df2c2992d1c", size = 250288, upload-time = "2026-01-25T12:58:37.226Z" }, + { url = "https://files.pythonhosted.org/packages/03/07/44e6f428551c4d9faf63ebcefe49b30e5c89d1be96f6a3abd86a52da9d15/coverage-7.13.2-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:a55516c68ef3e08e134e818d5e308ffa6b1337cc8b092b69b24287bf07d38e31", size = 252063, upload-time = "2026-01-25T12:58:38.821Z" }, + { url = "https://files.pythonhosted.org/packages/c2/67/35b730ad7e1859dd57e834d1bc06080d22d2f87457d53f692fce3f24a5a9/coverage-7.13.2-cp313-cp313-win32.whl", hash = "sha256:5b20211c47a8abf4abc3319d8ce2464864fa9f30c5fcaf958a3eed92f4f1fef8", size = 221716, upload-time = "2026-01-25T12:58:40.484Z" }, + { url = "https://files.pythonhosted.org/packages/0d/82/e5fcf5a97c72f45fc14829237a6550bf49d0ab882ac90e04b12a69db76b4/coverage-7.13.2-cp313-cp313-win_amd64.whl", hash = "sha256:14f500232e521201cf031549fb1ebdfc0a40f401cf519157f76c397e586c3beb", size = 222522, upload-time = "2026-01-25T12:58:43.247Z" }, + { url = "https://files.pythonhosted.org/packages/b1/f1/25d7b2f946d239dd2d6644ca2cc060d24f97551e2af13b6c24c722ae5f97/coverage-7.13.2-cp313-cp313-win_arm64.whl", hash = "sha256:9779310cb5a9778a60c899f075a8514c89fa6d10131445c2207fc893e0b14557", size = 221145, upload-time = "2026-01-25T12:58:45Z" }, + { url = "https://files.pythonhosted.org/packages/9e/f7/080376c029c8f76fadfe43911d0daffa0cbdc9f9418a0eead70c56fb7f4b/coverage-7.13.2-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:e64fa5a1e41ce5df6b547cbc3d3699381c9e2c2c369c67837e716ed0f549d48e", size = 219861, upload-time = "2026-01-25T12:58:46.586Z" }, + { url = "https://files.pythonhosted.org/packages/42/11/0b5e315af5ab35f4c4a70e64d3314e4eec25eefc6dec13be3a7d5ffe8ac5/coverage-7.13.2-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:b01899e82a04085b6561eb233fd688474f57455e8ad35cd82286463ba06332b7", size = 220207, upload-time = "2026-01-25T12:58:48.277Z" }, + { url = "https://files.pythonhosted.org/packages/b2/0c/0874d0318fb1062117acbef06a09cf8b63f3060c22265adaad24b36306b7/coverage-7.13.2-cp313-cp313t-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:838943bea48be0e2768b0cf7819544cdedc1bbb2f28427eabb6eb8c9eb2285d3", size = 261504, upload-time = "2026-01-25T12:58:49.904Z" }, + { url = "https://files.pythonhosted.org/packages/83/5e/1cd72c22ecb30751e43a72f40ba50fcef1b7e93e3ea823bd9feda8e51f9a/coverage-7.13.2-cp313-cp313t-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:93d1d25ec2b27e90bcfef7012992d1f5121b51161b8bffcda756a816cf13c2c3", size = 263582, upload-time = "2026-01-25T12:58:51.582Z" }, + { url = "https://files.pythonhosted.org/packages/9b/da/8acf356707c7a42df4d0657020308e23e5a07397e81492640c186268497c/coverage-7.13.2-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:93b57142f9621b0d12349c43fc7741fe578e4bc914c1e5a54142856cfc0bf421", size = 266008, upload-time = "2026-01-25T12:58:53.234Z" }, + { url = "https://files.pythonhosted.org/packages/41/41/ea1730af99960309423c6ea8d6a4f1fa5564b2d97bd1d29dda4b42611f04/coverage-7.13.2-cp313-cp313t-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:f06799ae1bdfff7ccb8665d75f8291c69110ba9585253de254688aa8a1ccc6c5", size = 260762, upload-time = "2026-01-25T12:58:55.372Z" }, + { url = "https://files.pythonhosted.org/packages/22/fa/02884d2080ba71db64fdc127b311db60e01fe6ba797d9c8363725e39f4d5/coverage-7.13.2-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:7f9405ab4f81d490811b1d91c7a20361135a2df4c170e7f0b747a794da5b7f23", size = 263571, upload-time = "2026-01-25T12:58:57.52Z" }, + { url = "https://files.pythonhosted.org/packages/d2/6b/4083aaaeba9b3112f55ac57c2ce7001dc4d8fa3fcc228a39f09cc84ede27/coverage-7.13.2-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:f9ab1d5b86f8fbc97a5b3cd6280a3fd85fef3b028689d8a2c00918f0d82c728c", size = 261200, upload-time = "2026-01-25T12:58:59.255Z" }, + { url = "https://files.pythonhosted.org/packages/e9/d2/aea92fa36d61955e8c416ede9cf9bf142aa196f3aea214bb67f85235a050/coverage-7.13.2-cp313-cp313t-musllinux_1_2_riscv64.whl", hash = "sha256:f674f59712d67e841525b99e5e2b595250e39b529c3bda14764e4f625a3fa01f", size = 260095, upload-time = "2026-01-25T12:59:01.066Z" }, + { url = "https://files.pythonhosted.org/packages/0d/ae/04ffe96a80f107ea21b22b2367175c621da920063260a1c22f9452fd7866/coverage-7.13.2-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:c6cadac7b8ace1ba9144feb1ae3cb787a6065ba6d23ffc59a934b16406c26573", size = 262284, upload-time = "2026-01-25T12:59:02.802Z" }, + { url = "https://files.pythonhosted.org/packages/1c/7a/6f354dcd7dfc41297791d6fb4e0d618acb55810bde2c1fd14b3939e05c2b/coverage-7.13.2-cp313-cp313t-win32.whl", hash = "sha256:14ae4146465f8e6e6253eba0cccd57423e598a4cb925958b240c805300918343", size = 222389, upload-time = "2026-01-25T12:59:04.563Z" }, + { url = "https://files.pythonhosted.org/packages/8d/d5/080ad292a4a3d3daf411574be0a1f56d6dee2c4fdf6b005342be9fac807f/coverage-7.13.2-cp313-cp313t-win_amd64.whl", hash = "sha256:9074896edd705a05769e3de0eac0a8388484b503b68863dd06d5e473f874fd47", size = 223450, upload-time = "2026-01-25T12:59:06.677Z" }, + { url = "https://files.pythonhosted.org/packages/88/96/df576fbacc522e9fb8d1c4b7a7fc62eb734be56e2cba1d88d2eabe08ea3f/coverage-7.13.2-cp313-cp313t-win_arm64.whl", hash = "sha256:69e526e14f3f854eda573d3cf40cffd29a1a91c684743d904c33dbdcd0e0f3e7", size = 221707, upload-time = "2026-01-25T12:59:08.363Z" }, + { url = "https://files.pythonhosted.org/packages/55/53/1da9e51a0775634b04fcc11eb25c002fc58ee4f92ce2e8512f94ac5fc5bf/coverage-7.13.2-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:387a825f43d680e7310e6f325b2167dd093bc8ffd933b83e9aa0983cf6e0a2ef", size = 219213, upload-time = "2026-01-25T12:59:11.909Z" }, + { url = "https://files.pythonhosted.org/packages/46/35/b3caac3ebbd10230fea5a33012b27d19e999a17c9285c4228b4b2e35b7da/coverage-7.13.2-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:f0d7fea9d8e5d778cd5a9e8fc38308ad688f02040e883cdc13311ef2748cb40f", size = 219549, upload-time = "2026-01-25T12:59:13.638Z" }, + { url = "https://files.pythonhosted.org/packages/76/9c/e1cf7def1bdc72c1907e60703983a588f9558434a2ff94615747bd73c192/coverage-7.13.2-cp314-cp314-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:e080afb413be106c95c4ee96b4fffdc9e2fa56a8bbf90b5c0918e5c4449412f5", size = 250586, upload-time = "2026-01-25T12:59:15.808Z" }, + { url = "https://files.pythonhosted.org/packages/ba/49/f54ec02ed12be66c8d8897270505759e057b0c68564a65c429ccdd1f139e/coverage-7.13.2-cp314-cp314-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:a7fc042ba3c7ce25b8a9f097eb0f32a5ce1ccdb639d9eec114e26def98e1f8a4", size = 253093, upload-time = "2026-01-25T12:59:17.491Z" }, + { url = "https://files.pythonhosted.org/packages/fb/5e/aaf86be3e181d907e23c0f61fccaeb38de8e6f6b47aed92bf57d8fc9c034/coverage-7.13.2-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:d0ba505e021557f7f8173ee8cd6b926373d8653e5ff7581ae2efce1b11ef4c27", size = 254446, upload-time = "2026-01-25T12:59:19.752Z" }, + { url = "https://files.pythonhosted.org/packages/28/c8/a5fa01460e2d75b0c853b392080d6829d3ca8b5ab31e158fa0501bc7c708/coverage-7.13.2-cp314-cp314-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:7de326f80e3451bd5cc7239ab46c73ddb658fe0b7649476bc7413572d36cd548", size = 250615, upload-time = "2026-01-25T12:59:21.928Z" }, + { url = "https://files.pythonhosted.org/packages/86/0b/6d56315a55f7062bb66410732c24879ccb2ec527ab6630246de5fe45a1df/coverage-7.13.2-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:abaea04f1e7e34841d4a7b343904a3f59481f62f9df39e2cd399d69a187a9660", size = 252452, upload-time = "2026-01-25T12:59:23.592Z" }, + { url = "https://files.pythonhosted.org/packages/30/19/9bc550363ebc6b0ea121977ee44d05ecd1e8bf79018b8444f1028701c563/coverage-7.13.2-cp314-cp314-musllinux_1_2_i686.whl", hash = "sha256:9f93959ee0c604bccd8e0697be21de0887b1f73efcc3aa73a3ec0fd13feace92", size = 250418, upload-time = "2026-01-25T12:59:25.392Z" }, + { url = "https://files.pythonhosted.org/packages/1f/53/580530a31ca2f0cc6f07a8f2ab5460785b02bb11bdf815d4c4d37a4c5169/coverage-7.13.2-cp314-cp314-musllinux_1_2_riscv64.whl", hash = "sha256:13fe81ead04e34e105bf1b3c9f9cdf32ce31736ee5d90a8d2de02b9d3e1bcb82", size = 250231, upload-time = "2026-01-25T12:59:27.888Z" }, + { url = "https://files.pythonhosted.org/packages/e2/42/dd9093f919dc3088cb472893651884bd675e3df3d38a43f9053656dca9a2/coverage-7.13.2-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:d6d16b0f71120e365741bca2cb473ca6fe38930bc5431c5e850ba949f708f892", size = 251888, upload-time = "2026-01-25T12:59:29.636Z" }, + { url = "https://files.pythonhosted.org/packages/fa/a6/0af4053e6e819774626e133c3d6f70fae4d44884bfc4b126cb647baee8d3/coverage-7.13.2-cp314-cp314-win32.whl", hash = "sha256:9b2f4714bb7d99ba3790ee095b3b4ac94767e1347fe424278a0b10acb3ff04fe", size = 221968, upload-time = "2026-01-25T12:59:31.424Z" }, + { url = "https://files.pythonhosted.org/packages/c4/cc/5aff1e1f80d55862442855517bb8ad8ad3a68639441ff6287dde6a58558b/coverage-7.13.2-cp314-cp314-win_amd64.whl", hash = "sha256:e4121a90823a063d717a96e0a0529c727fb31ea889369a0ee3ec00ed99bf6859", size = 222783, upload-time = "2026-01-25T12:59:33.118Z" }, + { url = "https://files.pythonhosted.org/packages/de/20/09abafb24f84b3292cc658728803416c15b79f9ee5e68d25238a895b07d9/coverage-7.13.2-cp314-cp314-win_arm64.whl", hash = "sha256:6873f0271b4a15a33e7590f338d823f6f66f91ed147a03938d7ce26efd04eee6", size = 221348, upload-time = "2026-01-25T12:59:34.939Z" }, + { url = "https://files.pythonhosted.org/packages/b6/60/a3820c7232db63be060e4019017cd3426751c2699dab3c62819cdbcea387/coverage-7.13.2-cp314-cp314t-macosx_10_15_x86_64.whl", hash = "sha256:f61d349f5b7cd95c34017f1927ee379bfbe9884300d74e07cf630ccf7a610c1b", size = 219950, upload-time = "2026-01-25T12:59:36.624Z" }, + { url = "https://files.pythonhosted.org/packages/fd/37/e4ef5975fdeb86b1e56db9a82f41b032e3d93a840ebaf4064f39e770d5c5/coverage-7.13.2-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:a43d34ce714f4ca674c0d90beb760eb05aad906f2c47580ccee9da8fe8bfb417", size = 220209, upload-time = "2026-01-25T12:59:38.339Z" }, + { url = "https://files.pythonhosted.org/packages/54/df/d40e091d00c51adca1e251d3b60a8b464112efa3004949e96a74d7c19a64/coverage-7.13.2-cp314-cp314t-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:bff1b04cb9d4900ce5c56c4942f047dc7efe57e2608cb7c3c8936e9970ccdbee", size = 261576, upload-time = "2026-01-25T12:59:40.446Z" }, + { url = "https://files.pythonhosted.org/packages/c5/44/5259c4bed54e3392e5c176121af9f71919d96dde853386e7730e705f3520/coverage-7.13.2-cp314-cp314t-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:6ae99e4560963ad8e163e819e5d77d413d331fd00566c1e0856aa252303552c1", size = 263704, upload-time = "2026-01-25T12:59:42.346Z" }, + { url = "https://files.pythonhosted.org/packages/16/bd/ae9f005827abcbe2c70157459ae86053971c9fa14617b63903abbdce26d9/coverage-7.13.2-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:e79a8c7d461820257d9aa43716c4efc55366d7b292e46b5b37165be1d377405d", size = 266109, upload-time = "2026-01-25T12:59:44.073Z" }, + { url = "https://files.pythonhosted.org/packages/a2/c0/8e279c1c0f5b1eaa3ad9b0fb7a5637fc0379ea7d85a781c0fe0bb3cfc2ab/coverage-7.13.2-cp314-cp314t-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:060ee84f6a769d40c492711911a76811b4befb6fba50abb450371abb720f5bd6", size = 260686, upload-time = "2026-01-25T12:59:45.804Z" }, + { url = "https://files.pythonhosted.org/packages/b2/47/3a8112627e9d863e7cddd72894171c929e94491a597811725befdcd76bce/coverage-7.13.2-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:3bca209d001fd03ea2d978f8a4985093240a355c93078aee3f799852c23f561a", size = 263568, upload-time = "2026-01-25T12:59:47.929Z" }, + { url = "https://files.pythonhosted.org/packages/92/bc/7ea367d84afa3120afc3ce6de294fd2dcd33b51e2e7fbe4bbfd200f2cb8c/coverage-7.13.2-cp314-cp314t-musllinux_1_2_i686.whl", hash = "sha256:6b8092aa38d72f091db61ef83cb66076f18f02da3e1a75039a4f218629600e04", size = 261174, upload-time = "2026-01-25T12:59:49.717Z" }, + { url = "https://files.pythonhosted.org/packages/33/b7/f1092dcecb6637e31cc2db099581ee5c61a17647849bae6b8261a2b78430/coverage-7.13.2-cp314-cp314t-musllinux_1_2_riscv64.whl", hash = "sha256:4a3158dc2dcce5200d91ec28cd315c999eebff355437d2765840555d765a6e5f", size = 260017, upload-time = "2026-01-25T12:59:51.463Z" }, + { url = "https://files.pythonhosted.org/packages/2b/cd/f3d07d4b95fbe1a2ef0958c15da614f7e4f557720132de34d2dc3aa7e911/coverage-7.13.2-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:3973f353b2d70bd9796cc12f532a05945232ccae966456c8ed7034cb96bbfd6f", size = 262337, upload-time = "2026-01-25T12:59:53.407Z" }, + { url = "https://files.pythonhosted.org/packages/e0/db/b0d5b2873a07cb1e06a55d998697c0a5a540dcefbf353774c99eb3874513/coverage-7.13.2-cp314-cp314t-win32.whl", hash = "sha256:79f6506a678a59d4ded048dc72f1859ebede8ec2b9a2d509ebe161f01c2879d3", size = 222749, upload-time = "2026-01-25T12:59:56.316Z" }, + { url = "https://files.pythonhosted.org/packages/e5/2f/838a5394c082ac57d85f57f6aba53093b30d9089781df72412126505716f/coverage-7.13.2-cp314-cp314t-win_amd64.whl", hash = "sha256:196bfeabdccc5a020a57d5a368c681e3a6ceb0447d153aeccc1ab4d70a5032ba", size = 223857, upload-time = "2026-01-25T12:59:58.201Z" }, + { url = "https://files.pythonhosted.org/packages/44/d4/b608243e76ead3a4298824b50922b89ef793e50069ce30316a65c1b4d7ef/coverage-7.13.2-cp314-cp314t-win_arm64.whl", hash = "sha256:69269ab58783e090bfbf5b916ab3d188126e22d6070bbfc93098fdd474ef937c", size = 221881, upload-time = "2026-01-25T13:00:00.449Z" }, + { url = "https://files.pythonhosted.org/packages/d2/db/d291e30fdf7ea617a335531e72294e0c723356d7fdde8fba00610a76bda9/coverage-7.13.2-py3-none-any.whl", hash = "sha256:40ce1ea1e25125556d8e76bd0b61500839a07944cc287ac21d5626f3e620cad5", size = 210943, upload-time = "2026-01-25T13:00:02.388Z" }, +] + +[package.optional-dependencies] +toml = [ + { name = "tomli", marker = "python_full_version <= '3.11'" }, +] + +[[package]] +name = "distlib" +version = "0.4.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/96/8e/709914eb2b5749865801041647dc7f4e6d00b549cfe88b65ca192995f07c/distlib-0.4.0.tar.gz", hash = "sha256:feec40075be03a04501a973d81f633735b4b69f98b05450592310c0f401a4e0d", size = 614605, upload-time = "2025-07-17T16:52:00.465Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/33/6b/e0547afaf41bf2c42e52430072fa5658766e3d65bd4b03a563d1b6336f57/distlib-0.4.0-py2.py3-none-any.whl", hash = "sha256:9659f7d87e46584a30b5780e43ac7a2143098441670ff0a49d5f9034c54a6c16", size = 469047, upload-time = "2025-07-17T16:51:58.613Z" }, +] + +[[package]] +name = "et-xmlfile" +version = "2.0.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/d3/38/af70d7ab1ae9d4da450eeec1fa3918940a5fafb9055e934af8d6eb0c2313/et_xmlfile-2.0.0.tar.gz", hash = "sha256:dab3f4764309081ce75662649be815c4c9081e88f0837825f90fd28317d4da54", size = 17234, upload-time = "2024-10-25T17:25:40.039Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/c1/8b/5fe2cc11fee489817272089c4203e679c63b570a5aaeb18d852ae3cbba6a/et_xmlfile-2.0.0-py3-none-any.whl", hash = "sha256:7a91720bc756843502c3b7504c77b8fe44217c85c537d85037f0f536151b2caa", size = 18059, upload-time = "2024-10-25T17:25:39.051Z" }, +] + +[[package]] +name = "exceptiongroup" +version = "1.3.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "typing-extensions", marker = "python_full_version < '3.13'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/50/79/66800aadf48771f6b62f7eb014e352e5d06856655206165d775e675a02c9/exceptiongroup-1.3.1.tar.gz", hash = "sha256:8b412432c6055b0b7d14c310000ae93352ed6754f70fa8f7c34141f91c4e3219", size = 30371, upload-time = "2025-11-21T23:01:54.787Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/8a/0e/97c33bf5009bdbac74fd2beace167cab3f978feb69cc36f1ef79360d6c4e/exceptiongroup-1.3.1-py3-none-any.whl", hash = "sha256:a7a39a3bd276781e98394987d3a5701d0c4edffb633bb7a5144577f82c773598", size = 16740, upload-time = "2025-11-21T23:01:53.443Z" }, +] + +[[package]] +name = "filelock" +version = "3.20.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/1d/65/ce7f1b70157833bf3cb851b556a37d4547ceafc158aa9b34b36782f23696/filelock-3.20.3.tar.gz", hash = "sha256:18c57ee915c7ec61cff0ecf7f0f869936c7c30191bb0cf406f1341778d0834e1", size = 19485, upload-time = "2026-01-09T17:55:05.421Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/b5/36/7fb70f04bf00bc646cd5bb45aa9eddb15e19437a28b8fb2b4a5249fac770/filelock-3.20.3-py3-none-any.whl", hash = "sha256:4b0dda527ee31078689fc205ec4f1c1bf7d56cf88b6dc9426c4f230e46c2dce1", size = 16701, upload-time = "2026-01-09T17:55:04.334Z" }, +] + +[[package]] +name = "frictionless" +version = "5.18.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "attrs" }, + { name = "chardet" }, + { name = "humanize" }, + { name = "isodate" }, + { name = "jinja2" }, + { name = "jsonschema" }, + { name = "marko" }, + { name = "petl" }, + { name = "pydantic" }, + { name = "python-dateutil" }, + { name = "python-slugify" }, + { name = "pyyaml" }, + { name = "requests" }, + { name = "rfc3986" }, + { name = "simpleeval" }, + { name = "tabulate" }, + { name = "typer" }, + { name = "typing-extensions" }, + { name = "validators" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/11/d0/c94675a1c1b8c12fd68489e2b4a924f80a2b122199cd986c58a5136197d2/frictionless-5.18.1.tar.gz", hash = "sha256:daeaf55f896eeb52b43e62600466af9528fe0aeeebd28b1b917e13322f370a8b", size = 74372478, upload-time = "2025-03-25T21:32:50.081Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/a9/7a/dac76d31584bb4f874ae860490c9465f5b59bd8c110f68fbbb07aba48845/frictionless-5.18.1-py3-none-any.whl", hash = "sha256:3f4c87469a89bdb88e9cc318088553a26f3d14839098f95c183ea01fc89628dd", size = 531615, upload-time = "2025-03-25T21:32:45.534Z" }, +] + +[[package]] +name = "ghp-import" +version = "2.1.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "python-dateutil" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/d9/29/d40217cbe2f6b1359e00c6c307bb3fc876ba74068cbab3dde77f03ca0dc4/ghp-import-2.1.0.tar.gz", hash = "sha256:9c535c4c61193c2df8871222567d7fd7e5014d835f97dc7b7439069e2413d343", size = 10943, upload-time = "2022-05-02T15:47:16.11Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/f7/ec/67fbef5d497f86283db54c22eec6f6140243aae73265799baaaa19cd17fb/ghp_import-2.1.0-py3-none-any.whl", hash = "sha256:8337dd7b50877f163d4c0289bc1f1c7f127550241988d568c1db512c4324a619", size = 11034, upload-time = "2022-05-02T15:47:14.552Z" }, +] + +[[package]] +name = "hdx-python-country" +source = { editable = "." } +dependencies = [ + { name = "hdx-python-utilities" }, + { name = "tenacity" }, +] + +[package.optional-dependencies] +docs = [ + { name = "mkapi" }, +] + +[package.dev-dependencies] +dev = [ + { name = "pre-commit" }, + { name = "pytest" }, + { name = "pytest-cov" }, + { name = "ruff" }, +] + +[package.metadata] +requires-dist = [ + { name = "hdx-python-utilities", specifier = ">=4.0.4" }, + { name = "mkapi", marker = "extra == 'docs'" }, + { name = "tenacity" }, +] +provides-extras = ["docs"] + +[package.metadata.requires-dev] +dev = [ + { name = "pre-commit" }, + { name = "pytest" }, + { name = "pytest-cov" }, + { name = "ruff", specifier = "==0.14.13" }, +] + +[[package]] +name = "hdx-python-utilities" +version = "4.0.4" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "frictionless" }, + { name = "ijson" }, + { name = "jsonlines" }, + { name = "loguru" }, + { name = "openpyxl" }, + { name = "pyphonetics" }, + { name = "python-dateutil" }, + { name = "ratelimit" }, + { name = "requests-file" }, + { name = "ruamel-yaml" }, + { name = "tableschema-to-template" }, + { name = "typing-extensions" }, + { name = "xlrd" }, + { name = "xlsx2csv" }, + { name = "xlwt" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/92/fb/771c502dad4abcc7e309aca1edf27ebce2465174c179b7558d0f99b61d45/hdx_python_utilities-4.0.4.tar.gz", hash = "sha256:63b0d859076df4b700f5e08a22124617ff7d55b8491823f85984441d11debbf1", size = 2061336, upload-time = "2026-01-26T04:04:15.702Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/f3/3b/134a5f3700cc03b26020a692037b32b3cc772302cc010c5f35576bfd87dc/hdx_python_utilities-4.0.4-py3-none-any.whl", hash = "sha256:f6d83a6582d706dc041658523a96795da0bd0458b724489b6f6a3a2bac128cff", size = 64585, upload-time = "2026-01-26T04:04:13.792Z" }, +] + +[[package]] +name = "humanize" +version = "4.15.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/ba/66/a3921783d54be8a6870ac4ccffcd15c4dc0dd7fcce51c6d63b8c63935276/humanize-4.15.0.tar.gz", hash = "sha256:1dd098483eb1c7ee8e32eb2e99ad1910baefa4b75c3aff3a82f4d78688993b10", size = 83599, upload-time = "2025-12-20T20:16:13.19Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/c5/7b/bca5613a0c3b542420cf92bd5e5fb8ebd5435ce1011a091f66bb7693285e/humanize-4.15.0-py3-none-any.whl", hash = "sha256:b1186eb9f5a9749cd9cb8565aee77919dd7c8d076161cf44d70e59e3301e1769", size = 132203, upload-time = "2025-12-20T20:16:11.67Z" }, +] + +[[package]] +name = "identify" +version = "2.6.16" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/5b/8d/e8b97e6bd3fb6fb271346f7981362f1e04d6a7463abd0de79e1fda17c067/identify-2.6.16.tar.gz", hash = "sha256:846857203b5511bbe94d5a352a48ef2359532bc8f6727b5544077a0dcfb24980", size = 99360, upload-time = "2026-01-12T18:58:58.201Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/b8/58/40fbbcefeda82364720eba5cf2270f98496bdfa19ea75b4cccae79c698e6/identify-2.6.16-py2.py3-none-any.whl", hash = "sha256:391ee4d77741d994189522896270b787aed8670389bfd60f326d677d64a6dfb0", size = 99202, upload-time = "2026-01-12T18:58:56.627Z" }, +] + +[[package]] +name = "idna" +version = "3.11" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/6f/6d/0703ccc57f3a7233505399edb88de3cbd678da106337b9fcde432b65ed60/idna-3.11.tar.gz", hash = "sha256:795dafcc9c04ed0c1fb032c2aa73654d8e8c5023a7df64a53f39190ada629902", size = 194582, upload-time = "2025-10-12T14:55:20.501Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/0e/61/66938bbb5fc52dbdf84594873d5b51fb1f7c7794e9c0f5bd885f30bc507b/idna-3.11-py3-none-any.whl", hash = "sha256:771a87f49d9defaf64091e6e6fe9c18d4833f140bd19464795bc32d966ca37ea", size = 71008, upload-time = "2025-10-12T14:55:18.883Z" }, +] + +[[package]] +name = "ijson" +version = "3.4.0.post0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/2d/30/7ab4b9e88e7946f6beef419f74edcc541df3ea562c7882257b4eaa82417d/ijson-3.4.0.post0.tar.gz", hash = "sha256:9aa02dc70bb245670a6ca7fba737b992aeeb4895360980622f7e568dbf23e41e", size = 67216, upload-time = "2025-10-10T05:29:25.62Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/b5/15/4f4921ed9ab94032fd0b03ecb211ff9dbd5cc9953463f5b5c4ddeab406fc/ijson-3.4.0.post0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:8f904a405b58a04b6ef0425f1babbc5c65feb66b0a4cc7f214d4ad7de106f77d", size = 88244, upload-time = "2025-10-10T05:27:42.001Z" }, + { url = "https://files.pythonhosted.org/packages/af/d6/b85d4da1752362a789bc3e0fc4b55e812a374a50d2fe1c06cab2e2bcb170/ijson-3.4.0.post0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:a07dcc1a8a1ddd76131a7c7528cbd12951c2e34eb3c3d63697b905069a2d65b1", size = 59880, upload-time = "2025-10-10T05:27:44.791Z" }, + { url = "https://files.pythonhosted.org/packages/c3/96/e1027e6d0efb5b9192bdc9f0af5633c20a56999cce4cf7ad35427f823138/ijson-3.4.0.post0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:ab3be841b8c430c1883b8c0775eb551f21b5500c102c7ee828afa35ddd701bdd", size = 59939, upload-time = "2025-10-10T05:27:45.66Z" }, + { url = "https://files.pythonhosted.org/packages/e3/71/b9ca0a19afb2f36be35c6afa2c4d1c19950dc45f6a50b483b56082b3e165/ijson-3.4.0.post0-cp310-cp310-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:43059ae0d657b11c5ddb11d149bc400c44f9e514fb8663057e9b2ea4d8d44c1f", size = 125894, upload-time = "2025-10-10T05:27:46.551Z" }, + { url = "https://files.pythonhosted.org/packages/02/1b/f7356de078d85564829c5e2a2a31473ee0ad1876258ceecf550b582e57b7/ijson-3.4.0.post0-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:0d3e82963096579d1385c06b2559570d7191e225664b7fa049617da838e1a4a4", size = 132385, upload-time = "2025-10-10T05:27:48Z" }, + { url = "https://files.pythonhosted.org/packages/57/7b/08f86eed5df0849b673260dd2943b6a7367a55b5a4b6e73ddbfbdf4206f1/ijson-3.4.0.post0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:461ce4e87a21a261b60c0a68a2ad17c7dd214f0b90a0bec7e559a66b6ae3bd7e", size = 129567, upload-time = "2025-10-10T05:27:49.188Z" }, + { url = "https://files.pythonhosted.org/packages/96/e1/69672d95b1a16e7c6bf89cef6c892b228cc84b484945a731786a425700d2/ijson-3.4.0.post0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:890cf6610c9554efcb9765a93e368efeb5bb6135f59ce0828d92eaefff07fde5", size = 132821, upload-time = "2025-10-10T05:27:50.342Z" }, + { url = "https://files.pythonhosted.org/packages/0b/15/9ed4868e2e92db2454508f7ea1282bec0b039bd344ac0cbac4a2de16786d/ijson-3.4.0.post0-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:6793c29a5728e7751a7df01be58ba7da9b9690c12bf79d32094c70a908fa02b9", size = 127757, upload-time = "2025-10-10T05:27:51.203Z" }, + { url = "https://files.pythonhosted.org/packages/5b/aa/08a308d3aaa6e98511f3100f8a1e4e8ff8c853fa4ec3f18b71094ac36bbe/ijson-3.4.0.post0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:a56b6674d7feec0401c91f86c376f4e3d8ff8129128a8ad21ca43ec0b1242f79", size = 130439, upload-time = "2025-10-10T05:27:52.123Z" }, + { url = "https://files.pythonhosted.org/packages/56/46/3da05a044f335b97635d59eede016ea158fbf1b59e584149177b6524e1e5/ijson-3.4.0.post0-cp310-cp310-win32.whl", hash = "sha256:01767fcbd75a5fa5a626069787b41f04681216b798510d5f63bcf66884386368", size = 52004, upload-time = "2025-10-10T05:27:53.441Z" }, + { url = "https://files.pythonhosted.org/packages/60/d7/a126d58f379df16fa9a0c2532ac00ae3debf1d28c090020775bc735032b8/ijson-3.4.0.post0-cp310-cp310-win_amd64.whl", hash = "sha256:09127c06e5dec753feb9e4b8c5f6a23603d1cd672d098159a17e53a73b898eec", size = 54407, upload-time = "2025-10-10T05:27:54.259Z" }, + { url = "https://files.pythonhosted.org/packages/a7/ac/3d57249d4acba66a33eaef794edb5b2a2222ca449ae08800f8abe9286645/ijson-3.4.0.post0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:0b473112e72c0c506da425da3278367b6680f340ecc093084693a1e819d28435", size = 88278, upload-time = "2025-10-10T05:27:55.403Z" }, + { url = "https://files.pythonhosted.org/packages/12/fb/2d068d23d1a665f500282ceb6f2473952a95fc7107d739fd629b4ab41959/ijson-3.4.0.post0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:043f9b7cf9cc744263a78175e769947733710d2412d25180df44b1086b23ebd5", size = 59898, upload-time = "2025-10-10T05:27:56.361Z" }, + { url = "https://files.pythonhosted.org/packages/26/3d/8b14589dfb0e5dbb7bcf9063e53d3617c041cf315ff3dfa60945382237ce/ijson-3.4.0.post0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:b55e49045f4c8031f3673f56662fd828dc9e8d65bd3b03a9420dda0d370e64ba", size = 59945, upload-time = "2025-10-10T05:27:57.581Z" }, + { url = "https://files.pythonhosted.org/packages/77/57/086a75094397d4b7584698a540a279689e12905271af78cdfc903bf9eaf8/ijson-3.4.0.post0-cp311-cp311-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:11f13b73194ea2a5a8b4a2863f25b0b4624311f10db3a75747b510c4958179b0", size = 131318, upload-time = "2025-10-10T05:27:58.453Z" }, + { url = "https://files.pythonhosted.org/packages/df/35/7f61e9ce4a9ff1306ec581eb851f8a660439126d92ee595c6dc8084aac97/ijson-3.4.0.post0-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:659acb2843433e080c271ecedf7d19c71adde1ee5274fc7faa2fec0a793f9f1c", size = 137990, upload-time = "2025-10-10T05:27:59.328Z" }, + { url = "https://files.pythonhosted.org/packages/59/bf/590bbc3c3566adce5e2f43ba5894520cbaf19a3e7f38c1250926ba67eee4/ijson-3.4.0.post0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:deda4cfcaafa72ca3fa845350045b1d0fef9364ec9f413241bb46988afbe6ee6", size = 134416, upload-time = "2025-10-10T05:28:00.317Z" }, + { url = "https://files.pythonhosted.org/packages/24/c1/fb719049851979df71f3e039d6f1a565d349c9cb1b29c0f8775d9db141b4/ijson-3.4.0.post0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:47352563e8c594360bacee2e0753e97025f0861234722d02faace62b1b6d2b2a", size = 138034, upload-time = "2025-10-10T05:28:01.627Z" }, + { url = "https://files.pythonhosted.org/packages/10/ce/ccda891f572876aaf2c43f0b2079e31d5b476c3ae53196187eab1a788eff/ijson-3.4.0.post0-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:5a48b9486242d1295abe7fd0fbb6308867da5ca3f69b55c77922a93c2b6847aa", size = 132510, upload-time = "2025-10-10T05:28:03.141Z" }, + { url = "https://files.pythonhosted.org/packages/11/b5/ca8e64ab7cf5252f358e467be767630f085b5bbcd3c04333a3a5f36c3dd3/ijson-3.4.0.post0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:9c0886234d1fae15cf4581a430bdba03d79251c1ab3b07e30aa31b13ef28d01c", size = 134907, upload-time = "2025-10-10T05:28:04.438Z" }, + { url = "https://files.pythonhosted.org/packages/93/14/63a4d5dc548690f29f0c2fc9cabd5ecbb37532547439c05f5b3b9ce73021/ijson-3.4.0.post0-cp311-cp311-win32.whl", hash = "sha256:fecae19b5187d92900c73debb3a979b0b3290a53f85df1f8f3c5ba7d1e9fb9cb", size = 52006, upload-time = "2025-10-10T05:28:05.424Z" }, + { url = "https://files.pythonhosted.org/packages/fa/bf/932740899e572a97f9be0c6cd64ebda557eae7701ac216fc284aba21786d/ijson-3.4.0.post0-cp311-cp311-win_amd64.whl", hash = "sha256:b39dbf87071f23a23c8077eea2ae7cfeeca9ff9ffec722dfc8b5f352e4dd729c", size = 54410, upload-time = "2025-10-10T05:28:06.264Z" }, + { url = "https://files.pythonhosted.org/packages/7d/fe/3b6af0025288e769dbfa30485dae1b3bd3f33f00390f3ee532cbb1c33e9b/ijson-3.4.0.post0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:b607a500fca26101be47d2baf7cddb457b819ab60a75ce51ed1092a40da8b2f9", size = 87847, upload-time = "2025-10-10T05:28:07.229Z" }, + { url = "https://files.pythonhosted.org/packages/6e/a5/95ee2ca82f3b1a57892452f6e5087607d56c620beb8ce625475194568698/ijson-3.4.0.post0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:4827d9874a6a81625412c59f7ca979a84d01f7f6bfb3c6d4dc4c46d0382b14e0", size = 59815, upload-time = "2025-10-10T05:28:08.448Z" }, + { url = "https://files.pythonhosted.org/packages/51/8d/5a704ab3c17c55c21c86423458db8610626ca99cc9086a74dfeb7ee9054c/ijson-3.4.0.post0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:d4d4afec780881edb2a0d2dd40b1cdbe246e630022d5192f266172a0307986a7", size = 59648, upload-time = "2025-10-10T05:28:09.307Z" }, + { url = "https://files.pythonhosted.org/packages/25/56/ca5d6ca145d007f30b44e747f3c163bc08710ce004af0deaad4a2301339b/ijson-3.4.0.post0-cp312-cp312-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:432fb60ffb952926f9438e0539011e2dfcd108f8426ee826ccc6173308c3ff2c", size = 138279, upload-time = "2025-10-10T05:28:10.489Z" }, + { url = "https://files.pythonhosted.org/packages/c3/d3/22e3cc806fcdda7ad4c8482ed74db7a017d4a1d49b4300c7bc07052fb561/ijson-3.4.0.post0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:54a0e3e05d9a0c95ecba73d9579f146cf6d5c5874116c849dba2d39a5f30380e", size = 149110, upload-time = "2025-10-10T05:28:12.263Z" }, + { url = "https://files.pythonhosted.org/packages/3e/04/efb30f413648b9267f5a33920ac124d7ebef3bc4063af8f6ffc8ca11ddcb/ijson-3.4.0.post0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:05807edc0bcbd222dc6ea32a2b897f0c81dc7f12c8580148bc82f6d7f5e7ec7b", size = 149026, upload-time = "2025-10-10T05:28:13.557Z" }, + { url = "https://files.pythonhosted.org/packages/2d/cf/481165f7046ade32488719300a3994a437020bc41cfbb54334356348f513/ijson-3.4.0.post0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:a5269af16f715855d9864937f9dd5c348ca1ac49cee6a2c7a1b7091c159e874f", size = 150012, upload-time = "2025-10-10T05:28:14.859Z" }, + { url = "https://files.pythonhosted.org/packages/0f/24/642e3289917ecf860386e26dfde775f9962d26ab7f6c2e364ed3ca3c25d8/ijson-3.4.0.post0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:b200df83c901f5bfa416d069ac71077aa1608f854a4c50df1b84ced560e9c9ec", size = 142193, upload-time = "2025-10-10T05:28:16.131Z" }, + { url = "https://files.pythonhosted.org/packages/0f/f5/fd2f038abe95e553e1c3ee207cda19db9196eb416e63c7c89699a8cf0db7/ijson-3.4.0.post0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:6458bd8e679cdff459a0a5e555b107c3bbacb1f382da3fe0f40e392871eb518d", size = 150904, upload-time = "2025-10-10T05:28:17.401Z" }, + { url = "https://files.pythonhosted.org/packages/49/35/24259d22519987928164e6cb8fe3486e1df0899b2999ada4b0498639b463/ijson-3.4.0.post0-cp312-cp312-win32.whl", hash = "sha256:55f7f656b5986326c978cbb3a9eea9e33f3ef6ecc4535b38f1d452c731da39ab", size = 52358, upload-time = "2025-10-10T05:28:18.315Z" }, + { url = "https://files.pythonhosted.org/packages/a1/2b/6f7ade27a8ff5758fc41006dadd2de01730def84fe3e60553b329c59e0d4/ijson-3.4.0.post0-cp312-cp312-win_amd64.whl", hash = "sha256:e15833dcf6f6d188fdc624a31cd0520c3ba21b6855dc304bc7c1a8aeca02d4ac", size = 54789, upload-time = "2025-10-10T05:28:19.552Z" }, + { url = "https://files.pythonhosted.org/packages/1b/20/aaec6977f9d538bbadd760c7fa0f6a0937742abdcc920ec6478a8576e55f/ijson-3.4.0.post0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:114ed248166ac06377e87a245a158d6b98019d2bdd3bb93995718e0bd996154f", size = 87863, upload-time = "2025-10-10T05:28:20.786Z" }, + { url = "https://files.pythonhosted.org/packages/5b/29/06bf56a866e2fe21453a1ad8f3a5d7bca3c723f73d96329656dfee969783/ijson-3.4.0.post0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:ffb21203736b08fe27cb30df6a4f802fafb9ef7646c5ff7ef79569b63ea76c57", size = 59806, upload-time = "2025-10-10T05:28:21.596Z" }, + { url = "https://files.pythonhosted.org/packages/ba/ae/e1d0fda91ba7a444b75f0d60cb845fdb1f55d3111351529dcbf4b1c276fe/ijson-3.4.0.post0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:07f20ecd748602ac7f18c617637e53bd73ded7f3b22260bba3abe401a7fc284e", size = 59643, upload-time = "2025-10-10T05:28:22.45Z" }, + { url = "https://files.pythonhosted.org/packages/4d/24/5a24533be2726396cc1724dc237bada09b19715b5bfb0e7b9400db0901ad/ijson-3.4.0.post0-cp313-cp313-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:27aa193d47ffc6bc4e45453896ad98fb089a367e8283b973f1fe5c0198b60b4e", size = 138082, upload-time = "2025-10-10T05:28:23.319Z" }, + { url = "https://files.pythonhosted.org/packages/05/60/026c3efcec23c329657e878cbc0a9a25b42e7eb3971e8c2377cb3284e2b7/ijson-3.4.0.post0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:ccddb2894eb7af162ba43b9475ac5825d15d568832f82eb8783036e5d2aebd42", size = 149145, upload-time = "2025-10-10T05:28:24.279Z" }, + { url = "https://files.pythonhosted.org/packages/ed/c2/036499909b7a1bc0bcd85305e4348ad171aeb9df57581287533bdb3497e9/ijson-3.4.0.post0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:61ab0b8c5bf707201dc67e02c116f4b6545c4afd7feb2264b989d242d9c4348a", size = 149046, upload-time = "2025-10-10T05:28:25.186Z" }, + { url = "https://files.pythonhosted.org/packages/ba/75/e7736073ad96867c129f9e799e3e65086badd89dbf3911f76d9b3bf8a115/ijson-3.4.0.post0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:254cfb8c124af68327a0e7a49b50bbdacafd87c4690a3d62c96eb01020a685ef", size = 150356, upload-time = "2025-10-10T05:28:26.135Z" }, + { url = "https://files.pythonhosted.org/packages/9d/1b/1c1575d2cda136985561fcf774fe6c54412cd0fa08005342015af0403193/ijson-3.4.0.post0-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:04ac9ca54db20f82aeda6379b5f4f6112fdb150d09ebce04affeab98a17b4ed3", size = 142322, upload-time = "2025-10-10T05:28:27.125Z" }, + { url = "https://files.pythonhosted.org/packages/28/4d/aba9871feb624df8494435d1a9ddc7b6a4f782c6044bfc0d770a4b59f145/ijson-3.4.0.post0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:a603d7474bf35e7b3a8e49c8dabfc4751841931301adff3f3318171c4e407f32", size = 151386, upload-time = "2025-10-10T05:28:28.274Z" }, + { url = "https://files.pythonhosted.org/packages/3f/9a/791baa83895fb6e492bce2c7a0ea6427b6a41fe854349e62a37d0c9deaf0/ijson-3.4.0.post0-cp313-cp313-win32.whl", hash = "sha256:ec5bb1520cb212ebead7dba048bb9b70552c3440584f83b01b0abc96862e2a09", size = 52352, upload-time = "2025-10-10T05:28:29.191Z" }, + { url = "https://files.pythonhosted.org/packages/a9/0c/061f51493e1da21116d74ee8f6a6b9ae06ca5fa2eb53c3b38b64f9a9a5ae/ijson-3.4.0.post0-cp313-cp313-win_amd64.whl", hash = "sha256:3505dff18bdeb8b171eb28af6df34857e2be80dc01e2e3b624e77215ad58897f", size = 54783, upload-time = "2025-10-10T05:28:30.048Z" }, + { url = "https://files.pythonhosted.org/packages/c7/89/4344e176f2c5f5ef3251c9bfa4ddd5b4cf3f9601fd6ec3f677a3ba0b9c71/ijson-3.4.0.post0-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:45a0b1c833ed2620eaf8da958f06ac8351c59e5e470e078400d23814670ed708", size = 92342, upload-time = "2025-10-10T05:28:31.389Z" }, + { url = "https://files.pythonhosted.org/packages/d4/b1/85012c586a6645f9fb8bfa3ef62ed2f303c8d73fc7c2f705111582925980/ijson-3.4.0.post0-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:7809ec8c8f40228edaaa089f33e811dff4c5b8509702652870d3f286c9682e27", size = 62028, upload-time = "2025-10-10T05:28:32.849Z" }, + { url = "https://files.pythonhosted.org/packages/65/ea/7b7e2815c101d78b33e74d64ddb70cccc377afccd5dda76e566ed3fcb56f/ijson-3.4.0.post0-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:cf4a34c2cfe852aee75c89c05b0a4531c49dc0be27eeed221afd6fbf9c3e149c", size = 61773, upload-time = "2025-10-10T05:28:34.016Z" }, + { url = "https://files.pythonhosted.org/packages/59/7d/2175e599cb77a64f528629bad3ce95dfdf2aa6171d313c1fc00bbfaf0d22/ijson-3.4.0.post0-cp313-cp313t-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:a39d5d36067604b26b78de70b8951c90e9272450642661fe531a8f7a6936a7fa", size = 198562, upload-time = "2025-10-10T05:28:34.878Z" }, + { url = "https://files.pythonhosted.org/packages/13/97/82247c501c92405bb2fc44ab5efb497335bcb9cf0f5d3a0b04a800737bd8/ijson-3.4.0.post0-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:83fc738d81c9ea686b452996110b8a6678296c481e0546857db24785bff8da92", size = 216212, upload-time = "2025-10-10T05:28:36.208Z" }, + { url = "https://files.pythonhosted.org/packages/95/ca/b956f507bb02e05ce109fd11ab6a2c054f8b686cc5affe41afe50630984d/ijson-3.4.0.post0-cp313-cp313t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:b2a81aee91633868f5b40280e2523f7c5392e920a5082f47c5e991e516b483f6", size = 206618, upload-time = "2025-10-10T05:28:37.243Z" }, + { url = "https://files.pythonhosted.org/packages/3e/12/e827840ab81d86a9882e499097934df53294f05155f1acfcb9a211ac1142/ijson-3.4.0.post0-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:56169e298c5a2e7196aaa55da78ddc2415876a74fe6304f81b1eb0d3273346f7", size = 210689, upload-time = "2025-10-10T05:28:38.252Z" }, + { url = "https://files.pythonhosted.org/packages/1b/3b/59238d9422c31a4aefa22ebeb8e599e706158a0ab03669ef623be77a499a/ijson-3.4.0.post0-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:eeb9540f0b1a575cbb5968166706946458f98c16e7accc6f2fe71efa29864241", size = 199927, upload-time = "2025-10-10T05:28:39.233Z" }, + { url = "https://files.pythonhosted.org/packages/b6/0f/ec01c36c128c37edb8a5ae8f3de3256009f886338d459210dfe121ee4ba9/ijson-3.4.0.post0-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:ba3478ff0bb49d7ba88783f491a99b6e3fa929c930ab062d2bb7837e6a38fe88", size = 204455, upload-time = "2025-10-10T05:28:40.644Z" }, + { url = "https://files.pythonhosted.org/packages/c8/cf/5560e1db96c6d10a5313be76bf5a1754266cbfb5cc13ff64d107829e07b1/ijson-3.4.0.post0-cp313-cp313t-win32.whl", hash = "sha256:b005ce84e82f28b00bf777a464833465dfe3efa43a0a26c77b5ac40723e1a728", size = 54566, upload-time = "2025-10-10T05:28:41.663Z" }, + { url = "https://files.pythonhosted.org/packages/22/5a/cbb69144c3b25dd56f5421ff7dc0cf3051355579062024772518e4f4b3c5/ijson-3.4.0.post0-cp313-cp313t-win_amd64.whl", hash = "sha256:fe9c84c9b1c8798afa407be1cea1603401d99bfc7c34497e19f4f5e5ddc9b441", size = 57298, upload-time = "2025-10-10T05:28:42.881Z" }, + { url = "https://files.pythonhosted.org/packages/af/0b/a4ce8524fd850302bbf5d9f38d07c0fa981fdbe44951d2fcd036935b67dd/ijson-3.4.0.post0-cp314-cp314-macosx_10_13_universal2.whl", hash = "sha256:da6a21b88cbf5ecbc53371283988d22c9643aa71ae2873bbeaefd2dea3b6160b", size = 88361, upload-time = "2025-10-10T05:28:43.73Z" }, + { url = "https://files.pythonhosted.org/packages/be/90/a5e5f33e46f28174a9c8142d12dcb3d26ce358d9a2230b9b15f5c987b3a5/ijson-3.4.0.post0-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:cf24a48a1c3ca9d44a04feb59ccefeb9aa52bb49b9cb70ad30518c25cce74bb7", size = 59960, upload-time = "2025-10-10T05:28:44.585Z" }, + { url = "https://files.pythonhosted.org/packages/83/e2/551dd7037dda759aa0ce53f0d3d7be03b03c6b05c0b0a5d5ab7a47e6b4b1/ijson-3.4.0.post0-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:d14427d366f95f21adcb97d0ed1f6d30f6fdc04d0aa1e4de839152c50c2b8d65", size = 59957, upload-time = "2025-10-10T05:28:45.748Z" }, + { url = "https://files.pythonhosted.org/packages/ac/b9/3006384f85cc26cf83dbbd542d362cc336f1e1ddd491e32147cfa46ea8ae/ijson-3.4.0.post0-cp314-cp314-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:339d49f6c5d24051c85d9226be96d2d56e633cb8b7d09dd8099de8d8b51a97e2", size = 139967, upload-time = "2025-10-10T05:28:47.229Z" }, + { url = "https://files.pythonhosted.org/packages/77/3b/b5234add8115cbfe8635b6c152fb527327f45e4c0f0bf2e93844b36b5217/ijson-3.4.0.post0-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:7206afcb396aaef66c2b066997b4e9d9042c4b7d777f4d994e9cec6d322c2fe6", size = 149196, upload-time = "2025-10-10T05:28:48.226Z" }, + { url = "https://files.pythonhosted.org/packages/a2/d2/c4ae543e37d7a9fba09740c221976a63705dbad23a9cda9022fc9fa0f3de/ijson-3.4.0.post0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:c8dd327da225887194fe8b93f2b3c9c256353e14a6b9eefc940ed17fde38f5b8", size = 148516, upload-time = "2025-10-10T05:28:49.237Z" }, + { url = "https://files.pythonhosted.org/packages/0d/a1/914b5fb1c26af2474cd04841626e0e95576499a4ca940661fb105ee12dd2/ijson-3.4.0.post0-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:4810546e66128af51fd4a0c9a640e84e8508e9c15c4f247d8a3e3253b20e1465", size = 149770, upload-time = "2025-10-10T05:28:50.501Z" }, + { url = "https://files.pythonhosted.org/packages/7a/c1/51c3584102d0d85d4aa10cc88dbbe431ecb9fe98160a9e2fad62a4456aed/ijson-3.4.0.post0-cp314-cp314-musllinux_1_2_i686.whl", hash = "sha256:103a0838061297d063bca81d724b0958b616f372bd893bbc278320152252c652", size = 143688, upload-time = "2025-10-10T05:28:51.823Z" }, + { url = "https://files.pythonhosted.org/packages/47/3d/a54f13d766332620bded8ee76bcdd274509ecc53cf99573450f95b3ad910/ijson-3.4.0.post0-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:40007c977e230e04118b27322f25a72ae342a3d61464b2057fcd9b21eeb7427a", size = 150688, upload-time = "2025-10-10T05:28:52.757Z" }, + { url = "https://files.pythonhosted.org/packages/72/49/43d97cccf3266da7c044bd42e5083340ad1fd97fbb16d1bcd6791fd8918f/ijson-3.4.0.post0-cp314-cp314-win32.whl", hash = "sha256:f932969fc1fd4449ca141cf5f47ff357656a154a361f28d9ebca0badc5b02297", size = 52882, upload-time = "2025-10-10T05:28:53.708Z" }, + { url = "https://files.pythonhosted.org/packages/e9/f0/008f1ed4e0fc6f6dc7a5a82ecf08a59bb212514e158954374d440d700e6c/ijson-3.4.0.post0-cp314-cp314-win_amd64.whl", hash = "sha256:3ed19b1e4349240773a8ce4a4bfa450892d4a57949c02c515cd6be5a46b7696a", size = 55568, upload-time = "2025-10-10T05:28:54.79Z" }, + { url = "https://files.pythonhosted.org/packages/69/1c/8a199fded709e762aced89bb7086973c837e432dd714bbad78a6ac789c23/ijson-3.4.0.post0-cp314-cp314t-macosx_10_13_universal2.whl", hash = "sha256:226447e40ca9340a39ed07d68ea02ee14b52cb4fe649425b256c1f0073531c83", size = 92345, upload-time = "2025-10-10T05:28:55.657Z" }, + { url = "https://files.pythonhosted.org/packages/be/60/04e97f6a403203bd2eb8849570bdce5719d696b5fb96aa2a62566fe7a1d9/ijson-3.4.0.post0-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:2c88f0669d45d4b1aa017c9b68d378e7cd15d188dfb6f0209adc78b7f45590a7", size = 62029, upload-time = "2025-10-10T05:28:56.561Z" }, + { url = "https://files.pythonhosted.org/packages/2a/97/e88295f9456ba939d90d4603af28fcabda3b443ef55e709e9381df3daa58/ijson-3.4.0.post0-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:56b3089dc28c12492d92cc4896d2be585a89ecae34e25d08c1df88f21815cb50", size = 61776, upload-time = "2025-10-10T05:28:57.401Z" }, + { url = "https://files.pythonhosted.org/packages/1b/9f/0e9c236e720c2de887ab0d7cad8a15d2aa55fb449f792437fc99899957a9/ijson-3.4.0.post0-cp314-cp314t-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:c117321cfa7b749cc1213f9b4c80dc958f0a206df98ec038ae4bcbbdb8463a15", size = 199808, upload-time = "2025-10-10T05:28:58.62Z" }, + { url = "https://files.pythonhosted.org/packages/0e/70/c21de30e7013e074924cd82057acfc5760e7b2cc41180f80770621b0ad36/ijson-3.4.0.post0-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:8311f48db6a33116db5c81682f08b6e2405501a4b4e460193ae69fec3cd1f87a", size = 217152, upload-time = "2025-10-10T05:28:59.656Z" }, + { url = "https://files.pythonhosted.org/packages/64/78/63a0bcc0707037df4e22bb836451279d850592258c859685a402c27f5d6d/ijson-3.4.0.post0-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:91c61a3e63e04da648737e6b4abd537df1b46fb8cdf3219b072e790bb3c1a46b", size = 207663, upload-time = "2025-10-10T05:29:00.73Z" }, + { url = "https://files.pythonhosted.org/packages/7d/85/834e9838d69893cb7567e1210be044444213c78f7414aaf1cd241df16078/ijson-3.4.0.post0-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:1709171023ce82651b2f132575c2e6282e47f64ad67bd3260da476418d0e7895", size = 211157, upload-time = "2025-10-10T05:29:01.87Z" }, + { url = "https://files.pythonhosted.org/packages/2e/9b/9fda503799ebc30397710552e5dedc1d98d9ea6a694e5717415892623a94/ijson-3.4.0.post0-cp314-cp314t-musllinux_1_2_i686.whl", hash = "sha256:5f0a72b1e3c0f78551670c12b2fdc1bf05f2796254d9c2055ba319bec2216020", size = 200231, upload-time = "2025-10-10T05:29:02.883Z" }, + { url = "https://files.pythonhosted.org/packages/15/f3/6419d1d5795a16591233d3aa3747b084e82c0c1d7184bdad9be638174560/ijson-3.4.0.post0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:b982a3597b0439ce9c8f4cfc929d86c6ed43907908be1e8463a34dc35fe5b258", size = 204825, upload-time = "2025-10-10T05:29:04.242Z" }, + { url = "https://files.pythonhosted.org/packages/1f/8d/a520e6902129c55fa94428ea0a22e8547540d5e7ca30f18b39594a5feea2/ijson-3.4.0.post0-cp314-cp314t-win32.whl", hash = "sha256:4e39bfdc36b0b460ef15a06550a6a385c64c81f7ac205ccff39bd45147918912", size = 55559, upload-time = "2025-10-10T05:29:05.681Z" }, + { url = "https://files.pythonhosted.org/packages/20/67/0ac6dd0045957ba1270b7b1860864f7d8cea4062e70b1083134c587e5768/ijson-3.4.0.post0-cp314-cp314t-win_amd64.whl", hash = "sha256:17e45262a5ddef39894013fb1548ee7094e444c8389eb1a97f86708b19bea03e", size = 58238, upload-time = "2025-10-10T05:29:06.656Z" }, + { url = "https://files.pythonhosted.org/packages/43/66/27cfcea16e85b95e33814eae2052dab187206b8820cdd90aa39d32ffb441/ijson-3.4.0.post0-pp311-pypy311_pp73-macosx_10_15_x86_64.whl", hash = "sha256:add9242f886eae844a7410b84aee2bbb8bdc83c624f227cb1fdb2d0476a96cb1", size = 57029, upload-time = "2025-10-10T05:29:19.733Z" }, + { url = "https://files.pythonhosted.org/packages/b8/1b/df3f1561c6629241fb2f8bd7ea1da14e3c2dd16fe9d7cbc97120870ed09c/ijson-3.4.0.post0-pp311-pypy311_pp73-macosx_11_0_arm64.whl", hash = "sha256:69718ed41710dfcaa7564b0af42abc05875d4f7aaa24627c808867ef32634bc7", size = 56523, upload-time = "2025-10-10T05:29:20.641Z" }, + { url = "https://files.pythonhosted.org/packages/39/0a/6c6a3221ddecf62b696fde0e864415237e05b9a36ab6685a606b8fb3b5a2/ijson-3.4.0.post0-pp311-pypy311_pp73-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:636b6eca96c6c43c04629c6b37fad0181662eaacf9877c71c698485637f752f9", size = 70546, upload-time = "2025-10-10T05:29:21.526Z" }, + { url = "https://files.pythonhosted.org/packages/42/cb/edf69755e86a3a9f8b418efd60239cb308af46c7c8e12f869423f51c9851/ijson-3.4.0.post0-pp311-pypy311_pp73-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:eb5e73028f6e63d27b3d286069fe350ed80a4ccc493b022b590fea4bb086710d", size = 70532, upload-time = "2025-10-10T05:29:22.718Z" }, + { url = "https://files.pythonhosted.org/packages/96/7e/c8730ea39b8712622cd5a1bdff676098208400e37bb92052ba52f93e2aa1/ijson-3.4.0.post0-pp311-pypy311_pp73-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:461acf4320219459dabe5ed90a45cb86c9ba8cc6d6db9dad0d9427d42f57794c", size = 67927, upload-time = "2025-10-10T05:29:23.596Z" }, + { url = "https://files.pythonhosted.org/packages/ec/f2/53b6e9bdd2a91202066764eaa74b572ba4dede0fe47a5a26f4de34b7541a/ijson-3.4.0.post0-pp311-pypy311_pp73-win_amd64.whl", hash = "sha256:a0fedf09c0f6ffa2a99e7e7fd9c5f3caf74e655c1ee015a0797383e99382ebc3", size = 54657, upload-time = "2025-10-10T05:29:24.482Z" }, +] + +[[package]] +name = "iniconfig" +version = "2.3.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/72/34/14ca021ce8e5dfedc35312d08ba8bf51fdd999c576889fc2c24cb97f4f10/iniconfig-2.3.0.tar.gz", hash = "sha256:c76315c77db068650d49c5b56314774a7804df16fee4402c1f19d6d15d8c4730", size = 20503, upload-time = "2025-10-18T21:55:43.219Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/cb/b1/3846dd7f199d53cb17f49cba7e651e9ce294d8497c8c150530ed11865bb8/iniconfig-2.3.0-py3-none-any.whl", hash = "sha256:f631c04d2c48c52b84d0d0549c99ff3859c98df65b3101406327ecc7d53fbf12", size = 7484, upload-time = "2025-10-18T21:55:41.639Z" }, +] + +[[package]] +name = "isodate" +version = "0.7.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/54/4d/e940025e2ce31a8ce1202635910747e5a87cc3a6a6bb2d00973375014749/isodate-0.7.2.tar.gz", hash = "sha256:4cd1aa0f43ca76f4a6c6c0292a85f40b35ec2e43e315b59f06e6d32171a953e6", size = 29705, upload-time = "2024-10-08T23:04:11.5Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/15/aa/0aca39a37d3c7eb941ba736ede56d689e7be91cab5d9ca846bde3999eba6/isodate-0.7.2-py3-none-any.whl", hash = "sha256:28009937d8031054830160fce6d409ed342816b543597cece116d966c6d99e15", size = 22320, upload-time = "2024-10-08T23:04:09.501Z" }, +] + +[[package]] +name = "jinja2" +version = "3.1.6" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "markupsafe" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/df/bf/f7da0350254c0ed7c72f3e33cef02e048281fec7ecec5f032d4aac52226b/jinja2-3.1.6.tar.gz", hash = "sha256:0137fb05990d35f1275a587e9aee6d56da821fc83491a0fb838183be43f66d6d", size = 245115, upload-time = "2025-03-05T20:05:02.478Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/62/a1/3d680cbfd5f4b8f15abc1d571870c5fc3e594bb582bc3b64ea099db13e56/jinja2-3.1.6-py3-none-any.whl", hash = "sha256:85ece4451f492d0c13c5dd7c13a64681a86afae63a5f347908daf103ce6d2f67", size = 134899, upload-time = "2025-03-05T20:05:00.369Z" }, +] + +[[package]] +name = "jsonlines" +version = "4.0.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "attrs" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/35/87/bcda8e46c88d0e34cad2f09ee2d0c7f5957bccdb9791b0b934ec84d84be4/jsonlines-4.0.0.tar.gz", hash = "sha256:0c6d2c09117550c089995247f605ae4cf77dd1533041d366351f6f298822ea74", size = 11359, upload-time = "2023-09-01T12:34:44.187Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/f8/62/d9ba6323b9202dd2fe166beab8a86d29465c41a0288cbe229fac60c1ab8d/jsonlines-4.0.0-py3-none-any.whl", hash = "sha256:185b334ff2ca5a91362993f42e83588a360cf95ce4b71a73548502bda52a7c55", size = 8701, upload-time = "2023-09-01T12:34:42.563Z" }, +] + +[[package]] +name = "jsonschema" +version = "4.26.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "attrs" }, + { name = "jsonschema-specifications" }, + { name = "referencing" }, + { name = "rpds-py" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/b3/fc/e067678238fa451312d4c62bf6e6cf5ec56375422aee02f9cb5f909b3047/jsonschema-4.26.0.tar.gz", hash = "sha256:0c26707e2efad8aa1bfc5b7ce170f3fccc2e4918ff85989ba9ffa9facb2be326", size = 366583, upload-time = "2026-01-07T13:41:07.246Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/69/90/f63fb5873511e014207a475e2bb4e8b2e570d655b00ac19a9a0ca0a385ee/jsonschema-4.26.0-py3-none-any.whl", hash = "sha256:d489f15263b8d200f8387e64b4c3a75f06629559fb73deb8fdfb525f2dab50ce", size = 90630, upload-time = "2026-01-07T13:41:05.306Z" }, +] + +[[package]] +name = "jsonschema-specifications" +version = "2025.9.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "referencing" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/19/74/a633ee74eb36c44aa6d1095e7cc5569bebf04342ee146178e2d36600708b/jsonschema_specifications-2025.9.1.tar.gz", hash = "sha256:b540987f239e745613c7a9176f3edb72b832a4ac465cf02712288397832b5e8d", size = 32855, upload-time = "2025-09-08T01:34:59.186Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/41/45/1a4ed80516f02155c51f51e8cedb3c1902296743db0bbc66608a0db2814f/jsonschema_specifications-2025.9.1-py3-none-any.whl", hash = "sha256:98802fee3a11ee76ecaca44429fda8a41bff98b00a0f2838151b113f210cc6fe", size = 18437, upload-time = "2025-09-08T01:34:57.871Z" }, +] + +[[package]] +name = "loguru" +version = "0.7.3" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "colorama", marker = "sys_platform == 'win32'" }, + { name = "win32-setctime", marker = "sys_platform == 'win32'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/3a/05/a1dae3dffd1116099471c643b8924f5aa6524411dc6c63fdae648c4f1aca/loguru-0.7.3.tar.gz", hash = "sha256:19480589e77d47b8d85b2c827ad95d49bf31b0dcde16593892eb51dd18706eb6", size = 63559, upload-time = "2024-12-06T11:20:56.608Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/0c/29/0348de65b8cc732daa3e33e67806420b2ae89bdce2b04af740289c5c6c8c/loguru-0.7.3-py3-none-any.whl", hash = "sha256:31a33c10c8e1e10422bfd431aeb5d351c7cf7fa671e3c4df004162264b28220c", size = 61595, upload-time = "2024-12-06T11:20:54.538Z" }, +] + +[[package]] +name = "markdown" +version = "3.10.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/b7/b1/af95bcae8549f1f3fd70faacb29075826a0d689a27f232e8cee315efa053/markdown-3.10.1.tar.gz", hash = "sha256:1c19c10bd5c14ac948c53d0d762a04e2fa35a6d58a6b7b1e6bfcbe6fefc0001a", size = 365402, upload-time = "2026-01-21T18:09:28.206Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/59/1b/6ef961f543593969d25b2afe57a3564200280528caa9bd1082eecdd7b3bc/markdown-3.10.1-py3-none-any.whl", hash = "sha256:867d788939fe33e4b736426f5b9f651ad0c0ae0ecf89df0ca5d1176c70812fe3", size = 107684, upload-time = "2026-01-21T18:09:27.203Z" }, +] + +[[package]] +name = "markdown-it-py" +version = "4.0.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "mdurl" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/5b/f5/4ec618ed16cc4f8fb3b701563655a69816155e79e24a17b651541804721d/markdown_it_py-4.0.0.tar.gz", hash = "sha256:cb0a2b4aa34f932c007117b194e945bd74e0ec24133ceb5bac59009cda1cb9f3", size = 73070, upload-time = "2025-08-11T12:57:52.854Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/94/54/e7d793b573f298e1c9013b8c4dade17d481164aa517d1d7148619c2cedbf/markdown_it_py-4.0.0-py3-none-any.whl", hash = "sha256:87327c59b172c5011896038353a81343b6754500a08cd7a4973bb48c6d578147", size = 87321, upload-time = "2025-08-11T12:57:51.923Z" }, +] + +[[package]] +name = "marko" +version = "2.2.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/e3/2f/050b6d485f052ddf17d76a41f9334d6fb2a8a85df35347a12d97ed3bc5c1/marko-2.2.2.tar.gz", hash = "sha256:6940308e655f63733ca518c47a68ec9510279dbb916c83616e4c4b5829f052e8", size = 143641, upload-time = "2026-01-05T11:04:41.935Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/83/f8/36d79bac5701e6786f9880c61bbe57574760a13c1af84ab71e5ed21faecc/marko-2.2.2-py3-none-any.whl", hash = "sha256:f064ae8c10416285ad1d96048dc11e98ef04e662d3342ae416f662b70aa7959e", size = 42701, upload-time = "2026-01-05T11:04:40.75Z" }, +] + +[[package]] +name = "markupsafe" +version = "3.0.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/7e/99/7690b6d4034fffd95959cbe0c02de8deb3098cc577c67bb6a24fe5d7caa7/markupsafe-3.0.3.tar.gz", hash = "sha256:722695808f4b6457b320fdc131280796bdceb04ab50fe1795cd540799ebe1698", size = 80313, upload-time = "2025-09-27T18:37:40.426Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/e8/4b/3541d44f3937ba468b75da9eebcae497dcf67adb65caa16760b0a6807ebb/markupsafe-3.0.3-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:2f981d352f04553a7171b8e44369f2af4055f888dfb147d55e42d29e29e74559", size = 11631, upload-time = "2025-09-27T18:36:05.558Z" }, + { url = "https://files.pythonhosted.org/packages/98/1b/fbd8eed11021cabd9226c37342fa6ca4e8a98d8188a8d9b66740494960e4/markupsafe-3.0.3-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:e1c1493fb6e50ab01d20a22826e57520f1284df32f2d8601fdd90b6304601419", size = 12057, upload-time = "2025-09-27T18:36:07.165Z" }, + { url = "https://files.pythonhosted.org/packages/40/01/e560d658dc0bb8ab762670ece35281dec7b6c1b33f5fbc09ebb57a185519/markupsafe-3.0.3-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:1ba88449deb3de88bd40044603fafffb7bc2b055d626a330323a9ed736661695", size = 22050, upload-time = "2025-09-27T18:36:08.005Z" }, + { url = "https://files.pythonhosted.org/packages/af/cd/ce6e848bbf2c32314c9b237839119c5a564a59725b53157c856e90937b7a/markupsafe-3.0.3-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:f42d0984e947b8adf7dd6dde396e720934d12c506ce84eea8476409563607591", size = 20681, upload-time = "2025-09-27T18:36:08.881Z" }, + { url = "https://files.pythonhosted.org/packages/c9/2a/b5c12c809f1c3045c4d580b035a743d12fcde53cf685dbc44660826308da/markupsafe-3.0.3-cp310-cp310-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:c0c0b3ade1c0b13b936d7970b1d37a57acde9199dc2aecc4c336773e1d86049c", size = 20705, upload-time = "2025-09-27T18:36:10.131Z" }, + { url = "https://files.pythonhosted.org/packages/cf/e3/9427a68c82728d0a88c50f890d0fc072a1484de2f3ac1ad0bfc1a7214fd5/markupsafe-3.0.3-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:0303439a41979d9e74d18ff5e2dd8c43ed6c6001fd40e5bf2e43f7bd9bbc523f", size = 21524, upload-time = "2025-09-27T18:36:11.324Z" }, + { url = "https://files.pythonhosted.org/packages/bc/36/23578f29e9e582a4d0278e009b38081dbe363c5e7165113fad546918a232/markupsafe-3.0.3-cp310-cp310-musllinux_1_2_riscv64.whl", hash = "sha256:d2ee202e79d8ed691ceebae8e0486bd9a2cd4794cec4824e1c99b6f5009502f6", size = 20282, upload-time = "2025-09-27T18:36:12.573Z" }, + { url = "https://files.pythonhosted.org/packages/56/21/dca11354e756ebd03e036bd8ad58d6d7168c80ce1fe5e75218e4945cbab7/markupsafe-3.0.3-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:177b5253b2834fe3678cb4a5f0059808258584c559193998be2601324fdeafb1", size = 20745, upload-time = "2025-09-27T18:36:13.504Z" }, + { url = "https://files.pythonhosted.org/packages/87/99/faba9369a7ad6e4d10b6a5fbf71fa2a188fe4a593b15f0963b73859a1bbd/markupsafe-3.0.3-cp310-cp310-win32.whl", hash = "sha256:2a15a08b17dd94c53a1da0438822d70ebcd13f8c3a95abe3a9ef9f11a94830aa", size = 14571, upload-time = "2025-09-27T18:36:14.779Z" }, + { url = "https://files.pythonhosted.org/packages/d6/25/55dc3ab959917602c96985cb1253efaa4ff42f71194bddeb61eb7278b8be/markupsafe-3.0.3-cp310-cp310-win_amd64.whl", hash = "sha256:c4ffb7ebf07cfe8931028e3e4c85f0357459a3f9f9490886198848f4fa002ec8", size = 15056, upload-time = "2025-09-27T18:36:16.125Z" }, + { url = "https://files.pythonhosted.org/packages/d0/9e/0a02226640c255d1da0b8d12e24ac2aa6734da68bff14c05dd53b94a0fc3/markupsafe-3.0.3-cp310-cp310-win_arm64.whl", hash = "sha256:e2103a929dfa2fcaf9bb4e7c091983a49c9ac3b19c9061b6d5427dd7d14d81a1", size = 13932, upload-time = "2025-09-27T18:36:17.311Z" }, + { url = "https://files.pythonhosted.org/packages/08/db/fefacb2136439fc8dd20e797950e749aa1f4997ed584c62cfb8ef7c2be0e/markupsafe-3.0.3-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:1cc7ea17a6824959616c525620e387f6dd30fec8cb44f649e31712db02123dad", size = 11631, upload-time = "2025-09-27T18:36:18.185Z" }, + { url = "https://files.pythonhosted.org/packages/e1/2e/5898933336b61975ce9dc04decbc0a7f2fee78c30353c5efba7f2d6ff27a/markupsafe-3.0.3-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:4bd4cd07944443f5a265608cc6aab442e4f74dff8088b0dfc8238647b8f6ae9a", size = 12058, upload-time = "2025-09-27T18:36:19.444Z" }, + { url = "https://files.pythonhosted.org/packages/1d/09/adf2df3699d87d1d8184038df46a9c80d78c0148492323f4693df54e17bb/markupsafe-3.0.3-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:6b5420a1d9450023228968e7e6a9ce57f65d148ab56d2313fcd589eee96a7a50", size = 24287, upload-time = "2025-09-27T18:36:20.768Z" }, + { url = "https://files.pythonhosted.org/packages/30/ac/0273f6fcb5f42e314c6d8cd99effae6a5354604d461b8d392b5ec9530a54/markupsafe-3.0.3-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:0bf2a864d67e76e5c9a34dc26ec616a66b9888e25e7b9460e1c76d3293bd9dbf", size = 22940, upload-time = "2025-09-27T18:36:22.249Z" }, + { url = "https://files.pythonhosted.org/packages/19/ae/31c1be199ef767124c042c6c3e904da327a2f7f0cd63a0337e1eca2967a8/markupsafe-3.0.3-cp311-cp311-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:bc51efed119bc9cfdf792cdeaa4d67e8f6fcccab66ed4bfdd6bde3e59bfcbb2f", size = 21887, upload-time = "2025-09-27T18:36:23.535Z" }, + { url = "https://files.pythonhosted.org/packages/b2/76/7edcab99d5349a4532a459e1fe64f0b0467a3365056ae550d3bcf3f79e1e/markupsafe-3.0.3-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:068f375c472b3e7acbe2d5318dea141359e6900156b5b2ba06a30b169086b91a", size = 23692, upload-time = "2025-09-27T18:36:24.823Z" }, + { url = "https://files.pythonhosted.org/packages/a4/28/6e74cdd26d7514849143d69f0bf2399f929c37dc2b31e6829fd2045b2765/markupsafe-3.0.3-cp311-cp311-musllinux_1_2_riscv64.whl", hash = "sha256:7be7b61bb172e1ed687f1754f8e7484f1c8019780f6f6b0786e76bb01c2ae115", size = 21471, upload-time = "2025-09-27T18:36:25.95Z" }, + { url = "https://files.pythonhosted.org/packages/62/7e/a145f36a5c2945673e590850a6f8014318d5577ed7e5920a4b3448e0865d/markupsafe-3.0.3-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:f9e130248f4462aaa8e2552d547f36ddadbeaa573879158d721bbd33dfe4743a", size = 22923, upload-time = "2025-09-27T18:36:27.109Z" }, + { url = "https://files.pythonhosted.org/packages/0f/62/d9c46a7f5c9adbeeeda52f5b8d802e1094e9717705a645efc71b0913a0a8/markupsafe-3.0.3-cp311-cp311-win32.whl", hash = "sha256:0db14f5dafddbb6d9208827849fad01f1a2609380add406671a26386cdf15a19", size = 14572, upload-time = "2025-09-27T18:36:28.045Z" }, + { url = "https://files.pythonhosted.org/packages/83/8a/4414c03d3f891739326e1783338e48fb49781cc915b2e0ee052aa490d586/markupsafe-3.0.3-cp311-cp311-win_amd64.whl", hash = "sha256:de8a88e63464af587c950061a5e6a67d3632e36df62b986892331d4620a35c01", size = 15077, upload-time = "2025-09-27T18:36:29.025Z" }, + { url = "https://files.pythonhosted.org/packages/35/73/893072b42e6862f319b5207adc9ae06070f095b358655f077f69a35601f0/markupsafe-3.0.3-cp311-cp311-win_arm64.whl", hash = "sha256:3b562dd9e9ea93f13d53989d23a7e775fdfd1066c33494ff43f5418bc8c58a5c", size = 13876, upload-time = "2025-09-27T18:36:29.954Z" }, + { url = "https://files.pythonhosted.org/packages/5a/72/147da192e38635ada20e0a2e1a51cf8823d2119ce8883f7053879c2199b5/markupsafe-3.0.3-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:d53197da72cc091b024dd97249dfc7794d6a56530370992a5e1a08983ad9230e", size = 11615, upload-time = "2025-09-27T18:36:30.854Z" }, + { url = "https://files.pythonhosted.org/packages/9a/81/7e4e08678a1f98521201c3079f77db69fb552acd56067661f8c2f534a718/markupsafe-3.0.3-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:1872df69a4de6aead3491198eaf13810b565bdbeec3ae2dc8780f14458ec73ce", size = 12020, upload-time = "2025-09-27T18:36:31.971Z" }, + { url = "https://files.pythonhosted.org/packages/1e/2c/799f4742efc39633a1b54a92eec4082e4f815314869865d876824c257c1e/markupsafe-3.0.3-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:3a7e8ae81ae39e62a41ec302f972ba6ae23a5c5396c8e60113e9066ef893da0d", size = 24332, upload-time = "2025-09-27T18:36:32.813Z" }, + { url = "https://files.pythonhosted.org/packages/3c/2e/8d0c2ab90a8c1d9a24f0399058ab8519a3279d1bd4289511d74e909f060e/markupsafe-3.0.3-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:d6dd0be5b5b189d31db7cda48b91d7e0a9795f31430b7f271219ab30f1d3ac9d", size = 22947, upload-time = "2025-09-27T18:36:33.86Z" }, + { url = "https://files.pythonhosted.org/packages/2c/54/887f3092a85238093a0b2154bd629c89444f395618842e8b0c41783898ea/markupsafe-3.0.3-cp312-cp312-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:94c6f0bb423f739146aec64595853541634bde58b2135f27f61c1ffd1cd4d16a", size = 21962, upload-time = "2025-09-27T18:36:35.099Z" }, + { url = "https://files.pythonhosted.org/packages/c9/2f/336b8c7b6f4a4d95e91119dc8521402461b74a485558d8f238a68312f11c/markupsafe-3.0.3-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:be8813b57049a7dc738189df53d69395eba14fb99345e0a5994914a3864c8a4b", size = 23760, upload-time = "2025-09-27T18:36:36.001Z" }, + { url = "https://files.pythonhosted.org/packages/32/43/67935f2b7e4982ffb50a4d169b724d74b62a3964bc1a9a527f5ac4f1ee2b/markupsafe-3.0.3-cp312-cp312-musllinux_1_2_riscv64.whl", hash = "sha256:83891d0e9fb81a825d9a6d61e3f07550ca70a076484292a70fde82c4b807286f", size = 21529, upload-time = "2025-09-27T18:36:36.906Z" }, + { url = "https://files.pythonhosted.org/packages/89/e0/4486f11e51bbba8b0c041098859e869e304d1c261e59244baa3d295d47b7/markupsafe-3.0.3-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:77f0643abe7495da77fb436f50f8dab76dbc6e5fd25d39589a0f1fe6548bfa2b", size = 23015, upload-time = "2025-09-27T18:36:37.868Z" }, + { url = "https://files.pythonhosted.org/packages/2f/e1/78ee7a023dac597a5825441ebd17170785a9dab23de95d2c7508ade94e0e/markupsafe-3.0.3-cp312-cp312-win32.whl", hash = "sha256:d88b440e37a16e651bda4c7c2b930eb586fd15ca7406cb39e211fcff3bf3017d", size = 14540, upload-time = "2025-09-27T18:36:38.761Z" }, + { url = "https://files.pythonhosted.org/packages/aa/5b/bec5aa9bbbb2c946ca2733ef9c4ca91c91b6a24580193e891b5f7dbe8e1e/markupsafe-3.0.3-cp312-cp312-win_amd64.whl", hash = "sha256:26a5784ded40c9e318cfc2bdb30fe164bdb8665ded9cd64d500a34fb42067b1c", size = 15105, upload-time = "2025-09-27T18:36:39.701Z" }, + { url = "https://files.pythonhosted.org/packages/e5/f1/216fc1bbfd74011693a4fd837e7026152e89c4bcf3e77b6692fba9923123/markupsafe-3.0.3-cp312-cp312-win_arm64.whl", hash = "sha256:35add3b638a5d900e807944a078b51922212fb3dedb01633a8defc4b01a3c85f", size = 13906, upload-time = "2025-09-27T18:36:40.689Z" }, + { url = "https://files.pythonhosted.org/packages/38/2f/907b9c7bbba283e68f20259574b13d005c121a0fa4c175f9bed27c4597ff/markupsafe-3.0.3-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:e1cf1972137e83c5d4c136c43ced9ac51d0e124706ee1c8aa8532c1287fa8795", size = 11622, upload-time = "2025-09-27T18:36:41.777Z" }, + { url = "https://files.pythonhosted.org/packages/9c/d9/5f7756922cdd676869eca1c4e3c0cd0df60ed30199ffd775e319089cb3ed/markupsafe-3.0.3-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:116bb52f642a37c115f517494ea5feb03889e04df47eeff5b130b1808ce7c219", size = 12029, upload-time = "2025-09-27T18:36:43.257Z" }, + { url = "https://files.pythonhosted.org/packages/00/07/575a68c754943058c78f30db02ee03a64b3c638586fba6a6dd56830b30a3/markupsafe-3.0.3-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:133a43e73a802c5562be9bbcd03d090aa5a1fe899db609c29e8c8d815c5f6de6", size = 24374, upload-time = "2025-09-27T18:36:44.508Z" }, + { url = "https://files.pythonhosted.org/packages/a9/21/9b05698b46f218fc0e118e1f8168395c65c8a2c750ae2bab54fc4bd4e0e8/markupsafe-3.0.3-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:ccfcd093f13f0f0b7fdd0f198b90053bf7b2f02a3927a30e63f3ccc9df56b676", size = 22980, upload-time = "2025-09-27T18:36:45.385Z" }, + { url = "https://files.pythonhosted.org/packages/7f/71/544260864f893f18b6827315b988c146b559391e6e7e8f7252839b1b846a/markupsafe-3.0.3-cp313-cp313-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:509fa21c6deb7a7a273d629cf5ec029bc209d1a51178615ddf718f5918992ab9", size = 21990, upload-time = "2025-09-27T18:36:46.916Z" }, + { url = "https://files.pythonhosted.org/packages/c2/28/b50fc2f74d1ad761af2f5dcce7492648b983d00a65b8c0e0cb457c82ebbe/markupsafe-3.0.3-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:a4afe79fb3de0b7097d81da19090f4df4f8d3a2b3adaa8764138aac2e44f3af1", size = 23784, upload-time = "2025-09-27T18:36:47.884Z" }, + { url = "https://files.pythonhosted.org/packages/ed/76/104b2aa106a208da8b17a2fb72e033a5a9d7073c68f7e508b94916ed47a9/markupsafe-3.0.3-cp313-cp313-musllinux_1_2_riscv64.whl", hash = "sha256:795e7751525cae078558e679d646ae45574b47ed6e7771863fcc079a6171a0fc", size = 21588, upload-time = "2025-09-27T18:36:48.82Z" }, + { url = "https://files.pythonhosted.org/packages/b5/99/16a5eb2d140087ebd97180d95249b00a03aa87e29cc224056274f2e45fd6/markupsafe-3.0.3-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:8485f406a96febb5140bfeca44a73e3ce5116b2501ac54fe953e488fb1d03b12", size = 23041, upload-time = "2025-09-27T18:36:49.797Z" }, + { url = "https://files.pythonhosted.org/packages/19/bc/e7140ed90c5d61d77cea142eed9f9c303f4c4806f60a1044c13e3f1471d0/markupsafe-3.0.3-cp313-cp313-win32.whl", hash = "sha256:bdd37121970bfd8be76c5fb069c7751683bdf373db1ed6c010162b2a130248ed", size = 14543, upload-time = "2025-09-27T18:36:51.584Z" }, + { url = "https://files.pythonhosted.org/packages/05/73/c4abe620b841b6b791f2edc248f556900667a5a1cf023a6646967ae98335/markupsafe-3.0.3-cp313-cp313-win_amd64.whl", hash = "sha256:9a1abfdc021a164803f4d485104931fb8f8c1efd55bc6b748d2f5774e78b62c5", size = 15113, upload-time = "2025-09-27T18:36:52.537Z" }, + { url = "https://files.pythonhosted.org/packages/f0/3a/fa34a0f7cfef23cf9500d68cb7c32dd64ffd58a12b09225fb03dd37d5b80/markupsafe-3.0.3-cp313-cp313-win_arm64.whl", hash = "sha256:7e68f88e5b8799aa49c85cd116c932a1ac15caaa3f5db09087854d218359e485", size = 13911, upload-time = "2025-09-27T18:36:53.513Z" }, + { url = "https://files.pythonhosted.org/packages/e4/d7/e05cd7efe43a88a17a37b3ae96e79a19e846f3f456fe79c57ca61356ef01/markupsafe-3.0.3-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:218551f6df4868a8d527e3062d0fb968682fe92054e89978594c28e642c43a73", size = 11658, upload-time = "2025-09-27T18:36:54.819Z" }, + { url = "https://files.pythonhosted.org/packages/99/9e/e412117548182ce2148bdeacdda3bb494260c0b0184360fe0d56389b523b/markupsafe-3.0.3-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:3524b778fe5cfb3452a09d31e7b5adefeea8c5be1d43c4f810ba09f2ceb29d37", size = 12066, upload-time = "2025-09-27T18:36:55.714Z" }, + { url = "https://files.pythonhosted.org/packages/bc/e6/fa0ffcda717ef64a5108eaa7b4f5ed28d56122c9a6d70ab8b72f9f715c80/markupsafe-3.0.3-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:4e885a3d1efa2eadc93c894a21770e4bc67899e3543680313b09f139e149ab19", size = 25639, upload-time = "2025-09-27T18:36:56.908Z" }, + { url = "https://files.pythonhosted.org/packages/96/ec/2102e881fe9d25fc16cb4b25d5f5cde50970967ffa5dddafdb771237062d/markupsafe-3.0.3-cp313-cp313t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:8709b08f4a89aa7586de0aadc8da56180242ee0ada3999749b183aa23df95025", size = 23569, upload-time = "2025-09-27T18:36:57.913Z" }, + { url = "https://files.pythonhosted.org/packages/4b/30/6f2fce1f1f205fc9323255b216ca8a235b15860c34b6798f810f05828e32/markupsafe-3.0.3-cp313-cp313t-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:b8512a91625c9b3da6f127803b166b629725e68af71f8184ae7e7d54686a56d6", size = 23284, upload-time = "2025-09-27T18:36:58.833Z" }, + { url = "https://files.pythonhosted.org/packages/58/47/4a0ccea4ab9f5dcb6f79c0236d954acb382202721e704223a8aafa38b5c8/markupsafe-3.0.3-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:9b79b7a16f7fedff2495d684f2b59b0457c3b493778c9eed31111be64d58279f", size = 24801, upload-time = "2025-09-27T18:36:59.739Z" }, + { url = "https://files.pythonhosted.org/packages/6a/70/3780e9b72180b6fecb83a4814d84c3bf4b4ae4bf0b19c27196104149734c/markupsafe-3.0.3-cp313-cp313t-musllinux_1_2_riscv64.whl", hash = "sha256:12c63dfb4a98206f045aa9563db46507995f7ef6d83b2f68eda65c307c6829eb", size = 22769, upload-time = "2025-09-27T18:37:00.719Z" }, + { url = "https://files.pythonhosted.org/packages/98/c5/c03c7f4125180fc215220c035beac6b9cb684bc7a067c84fc69414d315f5/markupsafe-3.0.3-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:8f71bc33915be5186016f675cd83a1e08523649b0e33efdb898db577ef5bb009", size = 23642, upload-time = "2025-09-27T18:37:01.673Z" }, + { url = "https://files.pythonhosted.org/packages/80/d6/2d1b89f6ca4bff1036499b1e29a1d02d282259f3681540e16563f27ebc23/markupsafe-3.0.3-cp313-cp313t-win32.whl", hash = "sha256:69c0b73548bc525c8cb9a251cddf1931d1db4d2258e9599c28c07ef3580ef354", size = 14612, upload-time = "2025-09-27T18:37:02.639Z" }, + { url = "https://files.pythonhosted.org/packages/2b/98/e48a4bfba0a0ffcf9925fe2d69240bfaa19c6f7507b8cd09c70684a53c1e/markupsafe-3.0.3-cp313-cp313t-win_amd64.whl", hash = "sha256:1b4b79e8ebf6b55351f0d91fe80f893b4743f104bff22e90697db1590e47a218", size = 15200, upload-time = "2025-09-27T18:37:03.582Z" }, + { url = "https://files.pythonhosted.org/packages/0e/72/e3cc540f351f316e9ed0f092757459afbc595824ca724cbc5a5d4263713f/markupsafe-3.0.3-cp313-cp313t-win_arm64.whl", hash = "sha256:ad2cf8aa28b8c020ab2fc8287b0f823d0a7d8630784c31e9ee5edea20f406287", size = 13973, upload-time = "2025-09-27T18:37:04.929Z" }, + { url = "https://files.pythonhosted.org/packages/33/8a/8e42d4838cd89b7dde187011e97fe6c3af66d8c044997d2183fbd6d31352/markupsafe-3.0.3-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:eaa9599de571d72e2daf60164784109f19978b327a3910d3e9de8c97b5b70cfe", size = 11619, upload-time = "2025-09-27T18:37:06.342Z" }, + { url = "https://files.pythonhosted.org/packages/b5/64/7660f8a4a8e53c924d0fa05dc3a55c9cee10bbd82b11c5afb27d44b096ce/markupsafe-3.0.3-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:c47a551199eb8eb2121d4f0f15ae0f923d31350ab9280078d1e5f12b249e0026", size = 12029, upload-time = "2025-09-27T18:37:07.213Z" }, + { url = "https://files.pythonhosted.org/packages/da/ef/e648bfd021127bef5fa12e1720ffed0c6cbb8310c8d9bea7266337ff06de/markupsafe-3.0.3-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:f34c41761022dd093b4b6896d4810782ffbabe30f2d443ff5f083e0cbbb8c737", size = 24408, upload-time = "2025-09-27T18:37:09.572Z" }, + { url = "https://files.pythonhosted.org/packages/41/3c/a36c2450754618e62008bf7435ccb0f88053e07592e6028a34776213d877/markupsafe-3.0.3-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:457a69a9577064c05a97c41f4e65148652db078a3a509039e64d3467b9e7ef97", size = 23005, upload-time = "2025-09-27T18:37:10.58Z" }, + { url = "https://files.pythonhosted.org/packages/bc/20/b7fdf89a8456b099837cd1dc21974632a02a999ec9bf7ca3e490aacd98e7/markupsafe-3.0.3-cp314-cp314-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:e8afc3f2ccfa24215f8cb28dcf43f0113ac3c37c2f0f0806d8c70e4228c5cf4d", size = 22048, upload-time = "2025-09-27T18:37:11.547Z" }, + { url = "https://files.pythonhosted.org/packages/9a/a7/591f592afdc734f47db08a75793a55d7fbcc6902a723ae4cfbab61010cc5/markupsafe-3.0.3-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:ec15a59cf5af7be74194f7ab02d0f59a62bdcf1a537677ce67a2537c9b87fcda", size = 23821, upload-time = "2025-09-27T18:37:12.48Z" }, + { url = "https://files.pythonhosted.org/packages/7d/33/45b24e4f44195b26521bc6f1a82197118f74df348556594bd2262bda1038/markupsafe-3.0.3-cp314-cp314-musllinux_1_2_riscv64.whl", hash = "sha256:0eb9ff8191e8498cca014656ae6b8d61f39da5f95b488805da4bb029cccbfbaf", size = 21606, upload-time = "2025-09-27T18:37:13.485Z" }, + { url = "https://files.pythonhosted.org/packages/ff/0e/53dfaca23a69fbfbbf17a4b64072090e70717344c52eaaaa9c5ddff1e5f0/markupsafe-3.0.3-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:2713baf880df847f2bece4230d4d094280f4e67b1e813eec43b4c0e144a34ffe", size = 23043, upload-time = "2025-09-27T18:37:14.408Z" }, + { url = "https://files.pythonhosted.org/packages/46/11/f333a06fc16236d5238bfe74daccbca41459dcd8d1fa952e8fbd5dccfb70/markupsafe-3.0.3-cp314-cp314-win32.whl", hash = "sha256:729586769a26dbceff69f7a7dbbf59ab6572b99d94576a5592625d5b411576b9", size = 14747, upload-time = "2025-09-27T18:37:15.36Z" }, + { url = "https://files.pythonhosted.org/packages/28/52/182836104b33b444e400b14f797212f720cbc9ed6ba34c800639d154e821/markupsafe-3.0.3-cp314-cp314-win_amd64.whl", hash = "sha256:bdc919ead48f234740ad807933cdf545180bfbe9342c2bb451556db2ed958581", size = 15341, upload-time = "2025-09-27T18:37:16.496Z" }, + { url = "https://files.pythonhosted.org/packages/6f/18/acf23e91bd94fd7b3031558b1f013adfa21a8e407a3fdb32745538730382/markupsafe-3.0.3-cp314-cp314-win_arm64.whl", hash = "sha256:5a7d5dc5140555cf21a6fefbdbf8723f06fcd2f63ef108f2854de715e4422cb4", size = 14073, upload-time = "2025-09-27T18:37:17.476Z" }, + { url = "https://files.pythonhosted.org/packages/3c/f0/57689aa4076e1b43b15fdfa646b04653969d50cf30c32a102762be2485da/markupsafe-3.0.3-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:1353ef0c1b138e1907ae78e2f6c63ff67501122006b0f9abad68fda5f4ffc6ab", size = 11661, upload-time = "2025-09-27T18:37:18.453Z" }, + { url = "https://files.pythonhosted.org/packages/89/c3/2e67a7ca217c6912985ec766c6393b636fb0c2344443ff9d91404dc4c79f/markupsafe-3.0.3-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:1085e7fbddd3be5f89cc898938f42c0b3c711fdcb37d75221de2666af647c175", size = 12069, upload-time = "2025-09-27T18:37:19.332Z" }, + { url = "https://files.pythonhosted.org/packages/f0/00/be561dce4e6ca66b15276e184ce4b8aec61fe83662cce2f7d72bd3249d28/markupsafe-3.0.3-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:1b52b4fb9df4eb9ae465f8d0c228a00624de2334f216f178a995ccdcf82c4634", size = 25670, upload-time = "2025-09-27T18:37:20.245Z" }, + { url = "https://files.pythonhosted.org/packages/50/09/c419f6f5a92e5fadde27efd190eca90f05e1261b10dbd8cbcb39cd8ea1dc/markupsafe-3.0.3-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:fed51ac40f757d41b7c48425901843666a6677e3e8eb0abcff09e4ba6e664f50", size = 23598, upload-time = "2025-09-27T18:37:21.177Z" }, + { url = "https://files.pythonhosted.org/packages/22/44/a0681611106e0b2921b3033fc19bc53323e0b50bc70cffdd19f7d679bb66/markupsafe-3.0.3-cp314-cp314t-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:f190daf01f13c72eac4efd5c430a8de82489d9cff23c364c3ea822545032993e", size = 23261, upload-time = "2025-09-27T18:37:22.167Z" }, + { url = "https://files.pythonhosted.org/packages/5f/57/1b0b3f100259dc9fffe780cfb60d4be71375510e435efec3d116b6436d43/markupsafe-3.0.3-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:e56b7d45a839a697b5eb268c82a71bd8c7f6c94d6fd50c3d577fa39a9f1409f5", size = 24835, upload-time = "2025-09-27T18:37:23.296Z" }, + { url = "https://files.pythonhosted.org/packages/26/6a/4bf6d0c97c4920f1597cc14dd720705eca0bf7c787aebc6bb4d1bead5388/markupsafe-3.0.3-cp314-cp314t-musllinux_1_2_riscv64.whl", hash = "sha256:f3e98bb3798ead92273dc0e5fd0f31ade220f59a266ffd8a4f6065e0a3ce0523", size = 22733, upload-time = "2025-09-27T18:37:24.237Z" }, + { url = "https://files.pythonhosted.org/packages/14/c7/ca723101509b518797fedc2fdf79ba57f886b4aca8a7d31857ba3ee8281f/markupsafe-3.0.3-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:5678211cb9333a6468fb8d8be0305520aa073f50d17f089b5b4b477ea6e67fdc", size = 23672, upload-time = "2025-09-27T18:37:25.271Z" }, + { url = "https://files.pythonhosted.org/packages/fb/df/5bd7a48c256faecd1d36edc13133e51397e41b73bb77e1a69deab746ebac/markupsafe-3.0.3-cp314-cp314t-win32.whl", hash = "sha256:915c04ba3851909ce68ccc2b8e2cd691618c4dc4c4232fb7982bca3f41fd8c3d", size = 14819, upload-time = "2025-09-27T18:37:26.285Z" }, + { url = "https://files.pythonhosted.org/packages/1a/8a/0402ba61a2f16038b48b39bccca271134be00c5c9f0f623208399333c448/markupsafe-3.0.3-cp314-cp314t-win_amd64.whl", hash = "sha256:4faffd047e07c38848ce017e8725090413cd80cbc23d86e55c587bf979e579c9", size = 15426, upload-time = "2025-09-27T18:37:27.316Z" }, + { url = "https://files.pythonhosted.org/packages/70/bc/6f1c2f612465f5fa89b95bead1f44dcb607670fd42891d8fdcd5d039f4f4/markupsafe-3.0.3-cp314-cp314t-win_arm64.whl", hash = "sha256:32001d6a8fc98c8cb5c947787c5d08b0a50663d139f1305bac5885d98d9b40fa", size = 14146, upload-time = "2025-09-27T18:37:28.327Z" }, +] + +[[package]] +name = "mdurl" +version = "0.1.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/d6/54/cfe61301667036ec958cb99bd3efefba235e65cdeb9c84d24a8293ba1d90/mdurl-0.1.2.tar.gz", hash = "sha256:bb413d29f5eea38f31dd4754dd7377d4465116fb207585f97bf925588687c1ba", size = 8729, upload-time = "2022-08-14T12:40:10.846Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/b3/38/89ba8ad64ae25be8de66a6d463314cf1eb366222074cfda9ee839c56a4b4/mdurl-0.1.2-py3-none-any.whl", hash = "sha256:84008a41e51615a49fc9966191ff91509e3c40b939176e643fd50a5c2196b8f8", size = 9979, upload-time = "2022-08-14T12:40:09.779Z" }, +] + +[[package]] +name = "mergedeep" +version = "1.3.4" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/3a/41/580bb4006e3ed0361b8151a01d324fb03f420815446c7def45d02f74c270/mergedeep-1.3.4.tar.gz", hash = "sha256:0096d52e9dad9939c3d975a774666af186eda617e6ca84df4c94dec30004f2a8", size = 4661, upload-time = "2021-02-05T18:55:30.623Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/2c/19/04f9b178c2d8a15b076c8b5140708fa6ffc5601fb6f1e975537072df5b2a/mergedeep-1.3.4-py3-none-any.whl", hash = "sha256:70775750742b25c0d8f36c55aed03d24c3384d17c951b3175d898bd778ef0307", size = 6354, upload-time = "2021-02-05T18:55:29.583Z" }, +] + +[[package]] +name = "mkapi" +version = "4.5.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "astdoc" }, + { name = "jinja2" }, + { name = "mkdocs" }, + { name = "mkdocs-material" }, + { name = "tomli", marker = "python_full_version < '3.11'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/3f/84/0b8514d277cde5f20463b6622b816270e93f569945d6fac93e26fc3fe094/mkapi-4.5.0.tar.gz", hash = "sha256:214c34c223d7e33ac966175365ef672d5133154784589416960333ce48a21265", size = 24183, upload-time = "2025-10-11T21:40:15.93Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/2b/73/09023a08566a8ee09348fa373ea22d8d2f6410c0ee62f44b3ab3629d1e8e/mkapi-4.5.0-py3-none-any.whl", hash = "sha256:2747b69a4d9bd7d46312d604f9eeb51a740db5d345cd3d37cf03f38c9cfe98fd", size = 28421, upload-time = "2025-10-11T21:40:14.91Z" }, +] + +[[package]] +name = "mkdocs" +version = "1.6.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "click" }, + { name = "colorama", marker = "sys_platform == 'win32'" }, + { name = "ghp-import" }, + { name = "jinja2" }, + { name = "markdown" }, + { name = "markupsafe" }, + { name = "mergedeep" }, + { name = "mkdocs-get-deps" }, + { name = "packaging" }, + { name = "pathspec" }, + { name = "pyyaml" }, + { name = "pyyaml-env-tag" }, + { name = "watchdog" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/bc/c6/bbd4f061bd16b378247f12953ffcb04786a618ce5e904b8c5a01a0309061/mkdocs-1.6.1.tar.gz", hash = "sha256:7b432f01d928c084353ab39c57282f29f92136665bdd6abf7c1ec8d822ef86f2", size = 3889159, upload-time = "2024-08-30T12:24:06.899Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/22/5b/dbc6a8cddc9cfa9c4971d59fb12bb8d42e161b7e7f8cc89e49137c5b279c/mkdocs-1.6.1-py3-none-any.whl", hash = "sha256:db91759624d1647f3f34aa0c3f327dd2601beae39a366d6e064c03468d35c20e", size = 3864451, upload-time = "2024-08-30T12:24:05.054Z" }, +] + +[[package]] +name = "mkdocs-get-deps" +version = "0.2.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "mergedeep" }, + { name = "platformdirs" }, + { name = "pyyaml" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/98/f5/ed29cd50067784976f25ed0ed6fcd3c2ce9eb90650aa3b2796ddf7b6870b/mkdocs_get_deps-0.2.0.tar.gz", hash = "sha256:162b3d129c7fad9b19abfdcb9c1458a651628e4b1dea628ac68790fb3061c60c", size = 10239, upload-time = "2023-11-20T17:51:09.981Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/9f/d4/029f984e8d3f3b6b726bd33cafc473b75e9e44c0f7e80a5b29abc466bdea/mkdocs_get_deps-0.2.0-py3-none-any.whl", hash = "sha256:2bf11d0b133e77a0dd036abeeb06dec8775e46efa526dc70667d8863eefc6134", size = 9521, upload-time = "2023-11-20T17:51:08.587Z" }, +] + +[[package]] +name = "mkdocs-material" +version = "9.7.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "babel" }, + { name = "backrefs" }, + { name = "colorama" }, + { name = "jinja2" }, + { name = "markdown" }, + { name = "mkdocs" }, + { name = "mkdocs-material-extensions" }, + { name = "paginate" }, + { name = "pygments" }, + { name = "pymdown-extensions" }, + { name = "requests" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/27/e2/2ffc356cd72f1473d07c7719d82a8f2cbd261666828614ecb95b12169f41/mkdocs_material-9.7.1.tar.gz", hash = "sha256:89601b8f2c3e6c6ee0a918cc3566cb201d40bf37c3cd3c2067e26fadb8cce2b8", size = 4094392, upload-time = "2025-12-18T09:49:00.308Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/3e/32/ed071cb721aca8c227718cffcf7bd539620e9799bbf2619e90c757bfd030/mkdocs_material-9.7.1-py3-none-any.whl", hash = "sha256:3f6100937d7d731f87f1e3e3b021c97f7239666b9ba1151ab476cabb96c60d5c", size = 9297166, upload-time = "2025-12-18T09:48:56.664Z" }, +] + +[[package]] +name = "mkdocs-material-extensions" +version = "1.3.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/79/9b/9b4c96d6593b2a541e1cb8b34899a6d021d208bb357042823d4d2cabdbe7/mkdocs_material_extensions-1.3.1.tar.gz", hash = "sha256:10c9511cea88f568257f960358a467d12b970e1f7b2c0e5fb2bb48cab1928443", size = 11847, upload-time = "2023-11-22T19:09:45.208Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/5b/54/662a4743aa81d9582ee9339d4ffa3c8fd40a4965e033d77b9da9774d3960/mkdocs_material_extensions-1.3.1-py3-none-any.whl", hash = "sha256:adff8b62700b25cb77b53358dad940f3ef973dd6db797907c49e3c2ef3ab4e31", size = 8728, upload-time = "2023-11-22T19:09:43.465Z" }, +] + +[[package]] +name = "nodeenv" +version = "1.10.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/24/bf/d1bda4f6168e0b2e9e5958945e01910052158313224ada5ce1fb2e1113b8/nodeenv-1.10.0.tar.gz", hash = "sha256:996c191ad80897d076bdfba80a41994c2b47c68e224c542b48feba42ba00f8bb", size = 55611, upload-time = "2025-12-20T14:08:54.006Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/88/b2/d0896bdcdc8d28a7fc5717c305f1a861c26e18c05047949fb371034d98bd/nodeenv-1.10.0-py2.py3-none-any.whl", hash = "sha256:5bb13e3eed2923615535339b3c620e76779af4cb4c6a90deccc9e36b274d3827", size = 23438, upload-time = "2025-12-20T14:08:52.782Z" }, +] + +[[package]] +name = "openpyxl" +version = "3.1.5" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "et-xmlfile" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/3d/f9/88d94a75de065ea32619465d2f77b29a0469500e99012523b91cc4141cd1/openpyxl-3.1.5.tar.gz", hash = "sha256:cf0e3cf56142039133628b5acffe8ef0c12bc902d2aadd3e0fe5878dc08d1050", size = 186464, upload-time = "2024-06-28T14:03:44.161Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/c0/da/977ded879c29cbd04de313843e76868e6e13408a94ed6b987245dc7c8506/openpyxl-3.1.5-py2.py3-none-any.whl", hash = "sha256:5282c12b107bffeef825f4617dc029afaf41d0ea60823bbb665ef3079dc79de2", size = 250910, upload-time = "2024-06-28T14:03:41.161Z" }, +] + +[[package]] +name = "packaging" +version = "26.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/65/ee/299d360cdc32edc7d2cf530f3accf79c4fca01e96ffc950d8a52213bd8e4/packaging-26.0.tar.gz", hash = "sha256:00243ae351a257117b6a241061796684b084ed1c516a08c48a3f7e147a9d80b4", size = 143416, upload-time = "2026-01-21T20:50:39.064Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/b7/b9/c538f279a4e237a006a2c98387d081e9eb060d203d8ed34467cc0f0b9b53/packaging-26.0-py3-none-any.whl", hash = "sha256:b36f1fef9334a5588b4166f8bcd26a14e521f2b55e6b9de3aaa80d3ff7a37529", size = 74366, upload-time = "2026-01-21T20:50:37.788Z" }, +] + +[[package]] +name = "paginate" +version = "0.5.7" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/ec/46/68dde5b6bc00c1296ec6466ab27dddede6aec9af1b99090e1107091b3b84/paginate-0.5.7.tar.gz", hash = "sha256:22bd083ab41e1a8b4f3690544afb2c60c25e5c9a63a30fa2f483f6c60c8e5945", size = 19252, upload-time = "2024-08-25T14:17:24.139Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/90/96/04b8e52da071d28f5e21a805b19cb9390aa17a47462ac87f5e2696b9566d/paginate-0.5.7-py2.py3-none-any.whl", hash = "sha256:b885e2af73abcf01d9559fd5216b57ef722f8c42affbb63942377668e35c7591", size = 13746, upload-time = "2024-08-25T14:17:22.55Z" }, +] + +[[package]] +name = "pathspec" +version = "1.0.4" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/fa/36/e27608899f9b8d4dff0617b2d9ab17ca5608956ca44461ac14ac48b44015/pathspec-1.0.4.tar.gz", hash = "sha256:0210e2ae8a21a9137c0d470578cb0e595af87edaa6ebf12ff176f14a02e0e645", size = 131200, upload-time = "2026-01-27T03:59:46.938Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ef/3c/2c197d226f9ea224a9ab8d197933f9da0ae0aac5b6e0f884e2b8d9c8e9f7/pathspec-1.0.4-py3-none-any.whl", hash = "sha256:fb6ae2fd4e7c921a165808a552060e722767cfa526f99ca5156ed2ce45a5c723", size = 55206, upload-time = "2026-01-27T03:59:45.137Z" }, +] + +[[package]] +name = "petl" +version = "1.7.17" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/a5/07/16a40e30700f7c6975e62cba01c2f94afbb347dd8ed224a5918c686a47fe/petl-1.7.17.tar.gz", hash = "sha256:802696187c2ef35894c4acf3c0ff9fecff6035cb335944c194416b9a18e8390b", size = 424376, upload-time = "2025-07-10T20:47:13.523Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/9f/5c/ea831abc18dd3268046d7d9a0119f1f8ddc69642e0a5245f839602b8114d/petl-1.7.17-py3-none-any.whl", hash = "sha256:53785128bcdf46eb4472638ad572acc6d87cc83f80b567fed06ee4a947eea5d1", size = 233093, upload-time = "2025-07-10T20:47:12.03Z" }, +] + +[[package]] +name = "platformdirs" +version = "4.5.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/cf/86/0248f086a84f01b37aaec0fa567b397df1a119f73c16f6c7a9aac73ea309/platformdirs-4.5.1.tar.gz", hash = "sha256:61d5cdcc6065745cdd94f0f878977f8de9437be93de97c1c12f853c9c0cdcbda", size = 21715, upload-time = "2025-12-05T13:52:58.638Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/cb/28/3bfe2fa5a7b9c46fe7e13c97bda14c895fb10fa2ebf1d0abb90e0cea7ee1/platformdirs-4.5.1-py3-none-any.whl", hash = "sha256:d03afa3963c806a9bed9d5125c8f4cb2fdaf74a55ab60e5d59b3fde758104d31", size = 18731, upload-time = "2025-12-05T13:52:56.823Z" }, +] + +[[package]] +name = "pluggy" +version = "1.6.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/f9/e2/3e91f31a7d2b083fe6ef3fa267035b518369d9511ffab804f839851d2779/pluggy-1.6.0.tar.gz", hash = "sha256:7dcc130b76258d33b90f61b658791dede3486c3e6bfb003ee5c9bfb396dd22f3", size = 69412, upload-time = "2025-05-15T12:30:07.975Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/54/20/4d324d65cc6d9205fabedc306948156824eb9f0ee1633355a8f7ec5c66bf/pluggy-1.6.0-py3-none-any.whl", hash = "sha256:e920276dd6813095e9377c0bc5566d94c932c33b27a3e3945d8389c374dd4746", size = 20538, upload-time = "2025-05-15T12:30:06.134Z" }, +] + +[[package]] +name = "pre-commit" +version = "4.5.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "cfgv" }, + { name = "identify" }, + { name = "nodeenv" }, + { name = "pyyaml" }, + { name = "virtualenv" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/40/f1/6d86a29246dfd2e9b6237f0b5823717f60cad94d47ddc26afa916d21f525/pre_commit-4.5.1.tar.gz", hash = "sha256:eb545fcff725875197837263e977ea257a402056661f09dae08e4b149b030a61", size = 198232, upload-time = "2025-12-16T21:14:33.552Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/5d/19/fd3ef348460c80af7bb4669ea7926651d1f95c23ff2df18b9d24bab4f3fa/pre_commit-4.5.1-py2.py3-none-any.whl", hash = "sha256:3b3afd891e97337708c1674210f8eba659b52a38ea5f822ff142d10786221f77", size = 226437, upload-time = "2025-12-16T21:14:32.409Z" }, +] + +[[package]] +name = "pydantic" +version = "2.12.5" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "annotated-types" }, + { name = "pydantic-core" }, + { name = "typing-extensions" }, + { name = "typing-inspection" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/69/44/36f1a6e523abc58ae5f928898e4aca2e0ea509b5aa6f6f392a5d882be928/pydantic-2.12.5.tar.gz", hash = "sha256:4d351024c75c0f085a9febbb665ce8c0c6ec5d30e903bdb6394b7ede26aebb49", size = 821591, upload-time = "2025-11-26T15:11:46.471Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/5a/87/b70ad306ebb6f9b585f114d0ac2137d792b48be34d732d60e597c2f8465a/pydantic-2.12.5-py3-none-any.whl", hash = "sha256:e561593fccf61e8a20fc46dfc2dfe075b8be7d0188df33f221ad1f0139180f9d", size = 463580, upload-time = "2025-11-26T15:11:44.605Z" }, +] + +[[package]] +name = "pydantic-core" +version = "2.41.5" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "typing-extensions" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/71/70/23b021c950c2addd24ec408e9ab05d59b035b39d97cdc1130e1bce647bb6/pydantic_core-2.41.5.tar.gz", hash = "sha256:08daa51ea16ad373ffd5e7606252cc32f07bc72b28284b6bc9c6df804816476e", size = 460952, upload-time = "2025-11-04T13:43:49.098Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/c6/90/32c9941e728d564b411d574d8ee0cf09b12ec978cb22b294995bae5549a5/pydantic_core-2.41.5-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:77b63866ca88d804225eaa4af3e664c5faf3568cea95360d21f4725ab6e07146", size = 2107298, upload-time = "2025-11-04T13:39:04.116Z" }, + { url = "https://files.pythonhosted.org/packages/fb/a8/61c96a77fe28993d9a6fb0f4127e05430a267b235a124545d79fea46dd65/pydantic_core-2.41.5-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:dfa8a0c812ac681395907e71e1274819dec685fec28273a28905df579ef137e2", size = 1901475, upload-time = "2025-11-04T13:39:06.055Z" }, + { url = "https://files.pythonhosted.org/packages/5d/b6/338abf60225acc18cdc08b4faef592d0310923d19a87fba1faf05af5346e/pydantic_core-2.41.5-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5921a4d3ca3aee735d9fd163808f5e8dd6c6972101e4adbda9a4667908849b97", size = 1918815, upload-time = "2025-11-04T13:39:10.41Z" }, + { url = "https://files.pythonhosted.org/packages/d1/1c/2ed0433e682983d8e8cba9c8d8ef274d4791ec6a6f24c58935b90e780e0a/pydantic_core-2.41.5-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:e25c479382d26a2a41b7ebea1043564a937db462816ea07afa8a44c0866d52f9", size = 2065567, upload-time = "2025-11-04T13:39:12.244Z" }, + { url = "https://files.pythonhosted.org/packages/b3/24/cf84974ee7d6eae06b9e63289b7b8f6549d416b5c199ca2d7ce13bbcf619/pydantic_core-2.41.5-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f547144f2966e1e16ae626d8ce72b4cfa0caedc7fa28052001c94fb2fcaa1c52", size = 2230442, upload-time = "2025-11-04T13:39:13.962Z" }, + { url = "https://files.pythonhosted.org/packages/fd/21/4e287865504b3edc0136c89c9c09431be326168b1eb7841911cbc877a995/pydantic_core-2.41.5-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:6f52298fbd394f9ed112d56f3d11aabd0d5bd27beb3084cc3d8ad069483b8941", size = 2350956, upload-time = "2025-11-04T13:39:15.889Z" }, + { url = "https://files.pythonhosted.org/packages/a8/76/7727ef2ffa4b62fcab916686a68a0426b9b790139720e1934e8ba797e238/pydantic_core-2.41.5-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:100baa204bb412b74fe285fb0f3a385256dad1d1879f0a5cb1499ed2e83d132a", size = 2068253, upload-time = "2025-11-04T13:39:17.403Z" }, + { url = "https://files.pythonhosted.org/packages/d5/8c/a4abfc79604bcb4c748e18975c44f94f756f08fb04218d5cb87eb0d3a63e/pydantic_core-2.41.5-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:05a2c8852530ad2812cb7914dc61a1125dc4e06252ee98e5638a12da6cc6fb6c", size = 2177050, upload-time = "2025-11-04T13:39:19.351Z" }, + { url = "https://files.pythonhosted.org/packages/67/b1/de2e9a9a79b480f9cb0b6e8b6ba4c50b18d4e89852426364c66aa82bb7b3/pydantic_core-2.41.5-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:29452c56df2ed968d18d7e21f4ab0ac55e71dc59524872f6fc57dcf4a3249ed2", size = 2147178, upload-time = "2025-11-04T13:39:21Z" }, + { url = "https://files.pythonhosted.org/packages/16/c1/dfb33f837a47b20417500efaa0378adc6635b3c79e8369ff7a03c494b4ac/pydantic_core-2.41.5-cp310-cp310-musllinux_1_1_armv7l.whl", hash = "sha256:d5160812ea7a8a2ffbe233d8da666880cad0cbaf5d4de74ae15c313213d62556", size = 2341833, upload-time = "2025-11-04T13:39:22.606Z" }, + { url = "https://files.pythonhosted.org/packages/47/36/00f398642a0f4b815a9a558c4f1dca1b4020a7d49562807d7bc9ff279a6c/pydantic_core-2.41.5-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:df3959765b553b9440adfd3c795617c352154e497a4eaf3752555cfb5da8fc49", size = 2321156, upload-time = "2025-11-04T13:39:25.843Z" }, + { url = "https://files.pythonhosted.org/packages/7e/70/cad3acd89fde2010807354d978725ae111ddf6d0ea46d1ea1775b5c1bd0c/pydantic_core-2.41.5-cp310-cp310-win32.whl", hash = "sha256:1f8d33a7f4d5a7889e60dc39856d76d09333d8a6ed0f5f1190635cbec70ec4ba", size = 1989378, upload-time = "2025-11-04T13:39:27.92Z" }, + { url = "https://files.pythonhosted.org/packages/76/92/d338652464c6c367e5608e4488201702cd1cbb0f33f7b6a85a60fe5f3720/pydantic_core-2.41.5-cp310-cp310-win_amd64.whl", hash = "sha256:62de39db01b8d593e45871af2af9e497295db8d73b085f6bfd0b18c83c70a8f9", size = 2013622, upload-time = "2025-11-04T13:39:29.848Z" }, + { url = "https://files.pythonhosted.org/packages/e8/72/74a989dd9f2084b3d9530b0915fdda64ac48831c30dbf7c72a41a5232db8/pydantic_core-2.41.5-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:a3a52f6156e73e7ccb0f8cced536adccb7042be67cb45f9562e12b319c119da6", size = 2105873, upload-time = "2025-11-04T13:39:31.373Z" }, + { url = "https://files.pythonhosted.org/packages/12/44/37e403fd9455708b3b942949e1d7febc02167662bf1a7da5b78ee1ea2842/pydantic_core-2.41.5-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:7f3bf998340c6d4b0c9a2f02d6a400e51f123b59565d74dc60d252ce888c260b", size = 1899826, upload-time = "2025-11-04T13:39:32.897Z" }, + { url = "https://files.pythonhosted.org/packages/33/7f/1d5cab3ccf44c1935a359d51a8a2a9e1a654b744b5e7f80d41b88d501eec/pydantic_core-2.41.5-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:378bec5c66998815d224c9ca994f1e14c0c21cb95d2f52b6021cc0b2a58f2a5a", size = 1917869, upload-time = "2025-11-04T13:39:34.469Z" }, + { url = "https://files.pythonhosted.org/packages/6e/6a/30d94a9674a7fe4f4744052ed6c5e083424510be1e93da5bc47569d11810/pydantic_core-2.41.5-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:e7b576130c69225432866fe2f4a469a85a54ade141d96fd396dffcf607b558f8", size = 2063890, upload-time = "2025-11-04T13:39:36.053Z" }, + { url = "https://files.pythonhosted.org/packages/50/be/76e5d46203fcb2750e542f32e6c371ffa9b8ad17364cf94bb0818dbfb50c/pydantic_core-2.41.5-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:6cb58b9c66f7e4179a2d5e0f849c48eff5c1fca560994d6eb6543abf955a149e", size = 2229740, upload-time = "2025-11-04T13:39:37.753Z" }, + { url = "https://files.pythonhosted.org/packages/d3/ee/fed784df0144793489f87db310a6bbf8118d7b630ed07aa180d6067e653a/pydantic_core-2.41.5-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:88942d3a3dff3afc8288c21e565e476fc278902ae4d6d134f1eeda118cc830b1", size = 2350021, upload-time = "2025-11-04T13:39:40.94Z" }, + { url = "https://files.pythonhosted.org/packages/c8/be/8fed28dd0a180dca19e72c233cbf58efa36df055e5b9d90d64fd1740b828/pydantic_core-2.41.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f31d95a179f8d64d90f6831d71fa93290893a33148d890ba15de25642c5d075b", size = 2066378, upload-time = "2025-11-04T13:39:42.523Z" }, + { url = "https://files.pythonhosted.org/packages/b0/3b/698cf8ae1d536a010e05121b4958b1257f0b5522085e335360e53a6b1c8b/pydantic_core-2.41.5-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:c1df3d34aced70add6f867a8cf413e299177e0c22660cc767218373d0779487b", size = 2175761, upload-time = "2025-11-04T13:39:44.553Z" }, + { url = "https://files.pythonhosted.org/packages/b8/ba/15d537423939553116dea94ce02f9c31be0fa9d0b806d427e0308ec17145/pydantic_core-2.41.5-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:4009935984bd36bd2c774e13f9a09563ce8de4abaa7226f5108262fa3e637284", size = 2146303, upload-time = "2025-11-04T13:39:46.238Z" }, + { url = "https://files.pythonhosted.org/packages/58/7f/0de669bf37d206723795f9c90c82966726a2ab06c336deba4735b55af431/pydantic_core-2.41.5-cp311-cp311-musllinux_1_1_armv7l.whl", hash = "sha256:34a64bc3441dc1213096a20fe27e8e128bd3ff89921706e83c0b1ac971276594", size = 2340355, upload-time = "2025-11-04T13:39:48.002Z" }, + { url = "https://files.pythonhosted.org/packages/e5/de/e7482c435b83d7e3c3ee5ee4451f6e8973cff0eb6007d2872ce6383f6398/pydantic_core-2.41.5-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:c9e19dd6e28fdcaa5a1de679aec4141f691023916427ef9bae8584f9c2fb3b0e", size = 2319875, upload-time = "2025-11-04T13:39:49.705Z" }, + { url = "https://files.pythonhosted.org/packages/fe/e6/8c9e81bb6dd7560e33b9053351c29f30c8194b72f2d6932888581f503482/pydantic_core-2.41.5-cp311-cp311-win32.whl", hash = "sha256:2c010c6ded393148374c0f6f0bf89d206bf3217f201faa0635dcd56bd1520f6b", size = 1987549, upload-time = "2025-11-04T13:39:51.842Z" }, + { url = "https://files.pythonhosted.org/packages/11/66/f14d1d978ea94d1bc21fc98fcf570f9542fe55bfcc40269d4e1a21c19bf7/pydantic_core-2.41.5-cp311-cp311-win_amd64.whl", hash = "sha256:76ee27c6e9c7f16f47db7a94157112a2f3a00e958bc626e2f4ee8bec5c328fbe", size = 2011305, upload-time = "2025-11-04T13:39:53.485Z" }, + { url = "https://files.pythonhosted.org/packages/56/d8/0e271434e8efd03186c5386671328154ee349ff0354d83c74f5caaf096ed/pydantic_core-2.41.5-cp311-cp311-win_arm64.whl", hash = "sha256:4bc36bbc0b7584de96561184ad7f012478987882ebf9f9c389b23f432ea3d90f", size = 1972902, upload-time = "2025-11-04T13:39:56.488Z" }, + { url = "https://files.pythonhosted.org/packages/5f/5d/5f6c63eebb5afee93bcaae4ce9a898f3373ca23df3ccaef086d0233a35a7/pydantic_core-2.41.5-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:f41a7489d32336dbf2199c8c0a215390a751c5b014c2c1c5366e817202e9cdf7", size = 2110990, upload-time = "2025-11-04T13:39:58.079Z" }, + { url = "https://files.pythonhosted.org/packages/aa/32/9c2e8ccb57c01111e0fd091f236c7b371c1bccea0fa85247ac55b1e2b6b6/pydantic_core-2.41.5-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:070259a8818988b9a84a449a2a7337c7f430a22acc0859c6b110aa7212a6d9c0", size = 1896003, upload-time = "2025-11-04T13:39:59.956Z" }, + { url = "https://files.pythonhosted.org/packages/68/b8/a01b53cb0e59139fbc9e4fda3e9724ede8de279097179be4ff31f1abb65a/pydantic_core-2.41.5-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e96cea19e34778f8d59fe40775a7a574d95816eb150850a85a7a4c8f4b94ac69", size = 1919200, upload-time = "2025-11-04T13:40:02.241Z" }, + { url = "https://files.pythonhosted.org/packages/38/de/8c36b5198a29bdaade07b5985e80a233a5ac27137846f3bc2d3b40a47360/pydantic_core-2.41.5-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:ed2e99c456e3fadd05c991f8f437ef902e00eedf34320ba2b0842bd1c3ca3a75", size = 2052578, upload-time = "2025-11-04T13:40:04.401Z" }, + { url = "https://files.pythonhosted.org/packages/00/b5/0e8e4b5b081eac6cb3dbb7e60a65907549a1ce035a724368c330112adfdd/pydantic_core-2.41.5-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:65840751b72fbfd82c3c640cff9284545342a4f1eb1586ad0636955b261b0b05", size = 2208504, upload-time = "2025-11-04T13:40:06.072Z" }, + { url = "https://files.pythonhosted.org/packages/77/56/87a61aad59c7c5b9dc8caad5a41a5545cba3810c3e828708b3d7404f6cef/pydantic_core-2.41.5-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:e536c98a7626a98feb2d3eaf75944ef6f3dbee447e1f841eae16f2f0a72d8ddc", size = 2335816, upload-time = "2025-11-04T13:40:07.835Z" }, + { url = "https://files.pythonhosted.org/packages/0d/76/941cc9f73529988688a665a5c0ecff1112b3d95ab48f81db5f7606f522d3/pydantic_core-2.41.5-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:eceb81a8d74f9267ef4081e246ffd6d129da5d87e37a77c9bde550cb04870c1c", size = 2075366, upload-time = "2025-11-04T13:40:09.804Z" }, + { url = "https://files.pythonhosted.org/packages/d3/43/ebef01f69baa07a482844faaa0a591bad1ef129253ffd0cdaa9d8a7f72d3/pydantic_core-2.41.5-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:d38548150c39b74aeeb0ce8ee1d8e82696f4a4e16ddc6de7b1d8823f7de4b9b5", size = 2171698, upload-time = "2025-11-04T13:40:12.004Z" }, + { url = "https://files.pythonhosted.org/packages/b1/87/41f3202e4193e3bacfc2c065fab7706ebe81af46a83d3e27605029c1f5a6/pydantic_core-2.41.5-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:c23e27686783f60290e36827f9c626e63154b82b116d7fe9adba1fda36da706c", size = 2132603, upload-time = "2025-11-04T13:40:13.868Z" }, + { url = "https://files.pythonhosted.org/packages/49/7d/4c00df99cb12070b6bccdef4a195255e6020a550d572768d92cc54dba91a/pydantic_core-2.41.5-cp312-cp312-musllinux_1_1_armv7l.whl", hash = "sha256:482c982f814460eabe1d3bb0adfdc583387bd4691ef00b90575ca0d2b6fe2294", size = 2329591, upload-time = "2025-11-04T13:40:15.672Z" }, + { url = "https://files.pythonhosted.org/packages/cc/6a/ebf4b1d65d458f3cda6a7335d141305dfa19bdc61140a884d165a8a1bbc7/pydantic_core-2.41.5-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:bfea2a5f0b4d8d43adf9d7b8bf019fb46fdd10a2e5cde477fbcb9d1fa08c68e1", size = 2319068, upload-time = "2025-11-04T13:40:17.532Z" }, + { url = "https://files.pythonhosted.org/packages/49/3b/774f2b5cd4192d5ab75870ce4381fd89cf218af999515baf07e7206753f0/pydantic_core-2.41.5-cp312-cp312-win32.whl", hash = "sha256:b74557b16e390ec12dca509bce9264c3bbd128f8a2c376eaa68003d7f327276d", size = 1985908, upload-time = "2025-11-04T13:40:19.309Z" }, + { url = "https://files.pythonhosted.org/packages/86/45/00173a033c801cacf67c190fef088789394feaf88a98a7035b0e40d53dc9/pydantic_core-2.41.5-cp312-cp312-win_amd64.whl", hash = "sha256:1962293292865bca8e54702b08a4f26da73adc83dd1fcf26fbc875b35d81c815", size = 2020145, upload-time = "2025-11-04T13:40:21.548Z" }, + { url = "https://files.pythonhosted.org/packages/f9/22/91fbc821fa6d261b376a3f73809f907cec5ca6025642c463d3488aad22fb/pydantic_core-2.41.5-cp312-cp312-win_arm64.whl", hash = "sha256:1746d4a3d9a794cacae06a5eaaccb4b8643a131d45fbc9af23e353dc0a5ba5c3", size = 1976179, upload-time = "2025-11-04T13:40:23.393Z" }, + { url = "https://files.pythonhosted.org/packages/87/06/8806241ff1f70d9939f9af039c6c35f2360cf16e93c2ca76f184e76b1564/pydantic_core-2.41.5-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:941103c9be18ac8daf7b7adca8228f8ed6bb7a1849020f643b3a14d15b1924d9", size = 2120403, upload-time = "2025-11-04T13:40:25.248Z" }, + { url = "https://files.pythonhosted.org/packages/94/02/abfa0e0bda67faa65fef1c84971c7e45928e108fe24333c81f3bfe35d5f5/pydantic_core-2.41.5-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:112e305c3314f40c93998e567879e887a3160bb8689ef3d2c04b6cc62c33ac34", size = 1896206, upload-time = "2025-11-04T13:40:27.099Z" }, + { url = "https://files.pythonhosted.org/packages/15/df/a4c740c0943e93e6500f9eb23f4ca7ec9bf71b19e608ae5b579678c8d02f/pydantic_core-2.41.5-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0cbaad15cb0c90aa221d43c00e77bb33c93e8d36e0bf74760cd00e732d10a6a0", size = 1919307, upload-time = "2025-11-04T13:40:29.806Z" }, + { url = "https://files.pythonhosted.org/packages/9a/e3/6324802931ae1d123528988e0e86587c2072ac2e5394b4bc2bc34b61ff6e/pydantic_core-2.41.5-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:03ca43e12fab6023fc79d28ca6b39b05f794ad08ec2feccc59a339b02f2b3d33", size = 2063258, upload-time = "2025-11-04T13:40:33.544Z" }, + { url = "https://files.pythonhosted.org/packages/c9/d4/2230d7151d4957dd79c3044ea26346c148c98fbf0ee6ebd41056f2d62ab5/pydantic_core-2.41.5-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:dc799088c08fa04e43144b164feb0c13f9a0bc40503f8df3e9fde58a3c0c101e", size = 2214917, upload-time = "2025-11-04T13:40:35.479Z" }, + { url = "https://files.pythonhosted.org/packages/e6/9f/eaac5df17a3672fef0081b6c1bb0b82b33ee89aa5cec0d7b05f52fd4a1fa/pydantic_core-2.41.5-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:97aeba56665b4c3235a0e52b2c2f5ae9cd071b8a8310ad27bddb3f7fb30e9aa2", size = 2332186, upload-time = "2025-11-04T13:40:37.436Z" }, + { url = "https://files.pythonhosted.org/packages/cf/4e/35a80cae583a37cf15604b44240e45c05e04e86f9cfd766623149297e971/pydantic_core-2.41.5-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:406bf18d345822d6c21366031003612b9c77b3e29ffdb0f612367352aab7d586", size = 2073164, upload-time = "2025-11-04T13:40:40.289Z" }, + { url = "https://files.pythonhosted.org/packages/bf/e3/f6e262673c6140dd3305d144d032f7bd5f7497d3871c1428521f19f9efa2/pydantic_core-2.41.5-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:b93590ae81f7010dbe380cdeab6f515902ebcbefe0b9327cc4804d74e93ae69d", size = 2179146, upload-time = "2025-11-04T13:40:42.809Z" }, + { url = "https://files.pythonhosted.org/packages/75/c7/20bd7fc05f0c6ea2056a4565c6f36f8968c0924f19b7d97bbfea55780e73/pydantic_core-2.41.5-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:01a3d0ab748ee531f4ea6c3e48ad9dac84ddba4b0d82291f87248f2f9de8d740", size = 2137788, upload-time = "2025-11-04T13:40:44.752Z" }, + { url = "https://files.pythonhosted.org/packages/3a/8d/34318ef985c45196e004bc46c6eab2eda437e744c124ef0dbe1ff2c9d06b/pydantic_core-2.41.5-cp313-cp313-musllinux_1_1_armv7l.whl", hash = "sha256:6561e94ba9dacc9c61bce40e2d6bdc3bfaa0259d3ff36ace3b1e6901936d2e3e", size = 2340133, upload-time = "2025-11-04T13:40:46.66Z" }, + { url = "https://files.pythonhosted.org/packages/9c/59/013626bf8c78a5a5d9350d12e7697d3d4de951a75565496abd40ccd46bee/pydantic_core-2.41.5-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:915c3d10f81bec3a74fbd4faebe8391013ba61e5a1a8d48c4455b923bdda7858", size = 2324852, upload-time = "2025-11-04T13:40:48.575Z" }, + { url = "https://files.pythonhosted.org/packages/1a/d9/c248c103856f807ef70c18a4f986693a46a8ffe1602e5d361485da502d20/pydantic_core-2.41.5-cp313-cp313-win32.whl", hash = "sha256:650ae77860b45cfa6e2cdafc42618ceafab3a2d9a3811fcfbd3bbf8ac3c40d36", size = 1994679, upload-time = "2025-11-04T13:40:50.619Z" }, + { url = "https://files.pythonhosted.org/packages/9e/8b/341991b158ddab181cff136acd2552c9f35bd30380422a639c0671e99a91/pydantic_core-2.41.5-cp313-cp313-win_amd64.whl", hash = "sha256:79ec52ec461e99e13791ec6508c722742ad745571f234ea6255bed38c6480f11", size = 2019766, upload-time = "2025-11-04T13:40:52.631Z" }, + { url = "https://files.pythonhosted.org/packages/73/7d/f2f9db34af103bea3e09735bb40b021788a5e834c81eedb541991badf8f5/pydantic_core-2.41.5-cp313-cp313-win_arm64.whl", hash = "sha256:3f84d5c1b4ab906093bdc1ff10484838aca54ef08de4afa9de0f5f14d69639cd", size = 1981005, upload-time = "2025-11-04T13:40:54.734Z" }, + { url = "https://files.pythonhosted.org/packages/ea/28/46b7c5c9635ae96ea0fbb779e271a38129df2550f763937659ee6c5dbc65/pydantic_core-2.41.5-cp314-cp314-macosx_10_12_x86_64.whl", hash = "sha256:3f37a19d7ebcdd20b96485056ba9e8b304e27d9904d233d7b1015db320e51f0a", size = 2119622, upload-time = "2025-11-04T13:40:56.68Z" }, + { url = "https://files.pythonhosted.org/packages/74/1a/145646e5687e8d9a1e8d09acb278c8535ebe9e972e1f162ed338a622f193/pydantic_core-2.41.5-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:1d1d9764366c73f996edd17abb6d9d7649a7eb690006ab6adbda117717099b14", size = 1891725, upload-time = "2025-11-04T13:40:58.807Z" }, + { url = "https://files.pythonhosted.org/packages/23/04/e89c29e267b8060b40dca97bfc64a19b2a3cf99018167ea1677d96368273/pydantic_core-2.41.5-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:25e1c2af0fce638d5f1988b686f3b3ea8cd7de5f244ca147c777769e798a9cd1", size = 1915040, upload-time = "2025-11-04T13:41:00.853Z" }, + { url = "https://files.pythonhosted.org/packages/84/a3/15a82ac7bd97992a82257f777b3583d3e84bdb06ba6858f745daa2ec8a85/pydantic_core-2.41.5-cp314-cp314-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:506d766a8727beef16b7adaeb8ee6217c64fc813646b424d0804d67c16eddb66", size = 2063691, upload-time = "2025-11-04T13:41:03.504Z" }, + { url = "https://files.pythonhosted.org/packages/74/9b/0046701313c6ef08c0c1cf0e028c67c770a4e1275ca73131563c5f2a310a/pydantic_core-2.41.5-cp314-cp314-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:4819fa52133c9aa3c387b3328f25c1facc356491e6135b459f1de698ff64d869", size = 2213897, upload-time = "2025-11-04T13:41:05.804Z" }, + { url = "https://files.pythonhosted.org/packages/8a/cd/6bac76ecd1b27e75a95ca3a9a559c643b3afcd2dd62086d4b7a32a18b169/pydantic_core-2.41.5-cp314-cp314-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2b761d210c9ea91feda40d25b4efe82a1707da2ef62901466a42492c028553a2", size = 2333302, upload-time = "2025-11-04T13:41:07.809Z" }, + { url = "https://files.pythonhosted.org/packages/4c/d2/ef2074dc020dd6e109611a8be4449b98cd25e1b9b8a303c2f0fca2f2bcf7/pydantic_core-2.41.5-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:22f0fb8c1c583a3b6f24df2470833b40207e907b90c928cc8d3594b76f874375", size = 2064877, upload-time = "2025-11-04T13:41:09.827Z" }, + { url = "https://files.pythonhosted.org/packages/18/66/e9db17a9a763d72f03de903883c057b2592c09509ccfe468187f2a2eef29/pydantic_core-2.41.5-cp314-cp314-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:2782c870e99878c634505236d81e5443092fba820f0373997ff75f90f68cd553", size = 2180680, upload-time = "2025-11-04T13:41:12.379Z" }, + { url = "https://files.pythonhosted.org/packages/d3/9e/3ce66cebb929f3ced22be85d4c2399b8e85b622db77dad36b73c5387f8f8/pydantic_core-2.41.5-cp314-cp314-musllinux_1_1_aarch64.whl", hash = "sha256:0177272f88ab8312479336e1d777f6b124537d47f2123f89cb37e0accea97f90", size = 2138960, upload-time = "2025-11-04T13:41:14.627Z" }, + { url = "https://files.pythonhosted.org/packages/a6/62/205a998f4327d2079326b01abee48e502ea739d174f0a89295c481a2272e/pydantic_core-2.41.5-cp314-cp314-musllinux_1_1_armv7l.whl", hash = "sha256:63510af5e38f8955b8ee5687740d6ebf7c2a0886d15a6d65c32814613681bc07", size = 2339102, upload-time = "2025-11-04T13:41:16.868Z" }, + { url = "https://files.pythonhosted.org/packages/3c/0d/f05e79471e889d74d3d88f5bd20d0ed189ad94c2423d81ff8d0000aab4ff/pydantic_core-2.41.5-cp314-cp314-musllinux_1_1_x86_64.whl", hash = "sha256:e56ba91f47764cc14f1daacd723e3e82d1a89d783f0f5afe9c364b8bb491ccdb", size = 2326039, upload-time = "2025-11-04T13:41:18.934Z" }, + { url = "https://files.pythonhosted.org/packages/ec/e1/e08a6208bb100da7e0c4b288eed624a703f4d129bde2da475721a80cab32/pydantic_core-2.41.5-cp314-cp314-win32.whl", hash = "sha256:aec5cf2fd867b4ff45b9959f8b20ea3993fc93e63c7363fe6851424c8a7e7c23", size = 1995126, upload-time = "2025-11-04T13:41:21.418Z" }, + { url = "https://files.pythonhosted.org/packages/48/5d/56ba7b24e9557f99c9237e29f5c09913c81eeb2f3217e40e922353668092/pydantic_core-2.41.5-cp314-cp314-win_amd64.whl", hash = "sha256:8e7c86f27c585ef37c35e56a96363ab8de4e549a95512445b85c96d3e2f7c1bf", size = 2015489, upload-time = "2025-11-04T13:41:24.076Z" }, + { url = "https://files.pythonhosted.org/packages/4e/bb/f7a190991ec9e3e0ba22e4993d8755bbc4a32925c0b5b42775c03e8148f9/pydantic_core-2.41.5-cp314-cp314-win_arm64.whl", hash = "sha256:e672ba74fbc2dc8eea59fb6d4aed6845e6905fc2a8afe93175d94a83ba2a01a0", size = 1977288, upload-time = "2025-11-04T13:41:26.33Z" }, + { url = "https://files.pythonhosted.org/packages/92/ed/77542d0c51538e32e15afe7899d79efce4b81eee631d99850edc2f5e9349/pydantic_core-2.41.5-cp314-cp314t-macosx_10_12_x86_64.whl", hash = "sha256:8566def80554c3faa0e65ac30ab0932b9e3a5cd7f8323764303d468e5c37595a", size = 2120255, upload-time = "2025-11-04T13:41:28.569Z" }, + { url = "https://files.pythonhosted.org/packages/bb/3d/6913dde84d5be21e284439676168b28d8bbba5600d838b9dca99de0fad71/pydantic_core-2.41.5-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:b80aa5095cd3109962a298ce14110ae16b8c1aece8b72f9dafe81cf597ad80b3", size = 1863760, upload-time = "2025-11-04T13:41:31.055Z" }, + { url = "https://files.pythonhosted.org/packages/5a/f0/e5e6b99d4191da102f2b0eb9687aaa7f5bea5d9964071a84effc3e40f997/pydantic_core-2.41.5-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3006c3dd9ba34b0c094c544c6006cc79e87d8612999f1a5d43b769b89181f23c", size = 1878092, upload-time = "2025-11-04T13:41:33.21Z" }, + { url = "https://files.pythonhosted.org/packages/71/48/36fb760642d568925953bcc8116455513d6e34c4beaa37544118c36aba6d/pydantic_core-2.41.5-cp314-cp314t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:72f6c8b11857a856bcfa48c86f5368439f74453563f951e473514579d44aa612", size = 2053385, upload-time = "2025-11-04T13:41:35.508Z" }, + { url = "https://files.pythonhosted.org/packages/20/25/92dc684dd8eb75a234bc1c764b4210cf2646479d54b47bf46061657292a8/pydantic_core-2.41.5-cp314-cp314t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:5cb1b2f9742240e4bb26b652a5aeb840aa4b417c7748b6f8387927bc6e45e40d", size = 2218832, upload-time = "2025-11-04T13:41:37.732Z" }, + { url = "https://files.pythonhosted.org/packages/e2/09/f53e0b05023d3e30357d82eb35835d0f6340ca344720a4599cd663dca599/pydantic_core-2.41.5-cp314-cp314t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:bd3d54f38609ff308209bd43acea66061494157703364ae40c951f83ba99a1a9", size = 2327585, upload-time = "2025-11-04T13:41:40Z" }, + { url = "https://files.pythonhosted.org/packages/aa/4e/2ae1aa85d6af35a39b236b1b1641de73f5a6ac4d5a7509f77b814885760c/pydantic_core-2.41.5-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2ff4321e56e879ee8d2a879501c8e469414d948f4aba74a2d4593184eb326660", size = 2041078, upload-time = "2025-11-04T13:41:42.323Z" }, + { url = "https://files.pythonhosted.org/packages/cd/13/2e215f17f0ef326fc72afe94776edb77525142c693767fc347ed6288728d/pydantic_core-2.41.5-cp314-cp314t-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:d0d2568a8c11bf8225044aa94409e21da0cb09dcdafe9ecd10250b2baad531a9", size = 2173914, upload-time = "2025-11-04T13:41:45.221Z" }, + { url = "https://files.pythonhosted.org/packages/02/7a/f999a6dcbcd0e5660bc348a3991c8915ce6599f4f2c6ac22f01d7a10816c/pydantic_core-2.41.5-cp314-cp314t-musllinux_1_1_aarch64.whl", hash = "sha256:a39455728aabd58ceabb03c90e12f71fd30fa69615760a075b9fec596456ccc3", size = 2129560, upload-time = "2025-11-04T13:41:47.474Z" }, + { url = "https://files.pythonhosted.org/packages/3a/b1/6c990ac65e3b4c079a4fb9f5b05f5b013afa0f4ed6780a3dd236d2cbdc64/pydantic_core-2.41.5-cp314-cp314t-musllinux_1_1_armv7l.whl", hash = "sha256:239edca560d05757817c13dc17c50766136d21f7cd0fac50295499ae24f90fdf", size = 2329244, upload-time = "2025-11-04T13:41:49.992Z" }, + { url = "https://files.pythonhosted.org/packages/d9/02/3c562f3a51afd4d88fff8dffb1771b30cfdfd79befd9883ee094f5b6c0d8/pydantic_core-2.41.5-cp314-cp314t-musllinux_1_1_x86_64.whl", hash = "sha256:2a5e06546e19f24c6a96a129142a75cee553cc018ffee48a460059b1185f4470", size = 2331955, upload-time = "2025-11-04T13:41:54.079Z" }, + { url = "https://files.pythonhosted.org/packages/5c/96/5fb7d8c3c17bc8c62fdb031c47d77a1af698f1d7a406b0f79aaa1338f9ad/pydantic_core-2.41.5-cp314-cp314t-win32.whl", hash = "sha256:b4ececa40ac28afa90871c2cc2b9ffd2ff0bf749380fbdf57d165fd23da353aa", size = 1988906, upload-time = "2025-11-04T13:41:56.606Z" }, + { url = "https://files.pythonhosted.org/packages/22/ed/182129d83032702912c2e2d8bbe33c036f342cc735737064668585dac28f/pydantic_core-2.41.5-cp314-cp314t-win_amd64.whl", hash = "sha256:80aa89cad80b32a912a65332f64a4450ed00966111b6615ca6816153d3585a8c", size = 1981607, upload-time = "2025-11-04T13:41:58.889Z" }, + { url = "https://files.pythonhosted.org/packages/9f/ed/068e41660b832bb0b1aa5b58011dea2a3fe0ba7861ff38c4d4904c1c1a99/pydantic_core-2.41.5-cp314-cp314t-win_arm64.whl", hash = "sha256:35b44f37a3199f771c3eaa53051bc8a70cd7b54f333531c59e29fd4db5d15008", size = 1974769, upload-time = "2025-11-04T13:42:01.186Z" }, + { url = "https://files.pythonhosted.org/packages/11/72/90fda5ee3b97e51c494938a4a44c3a35a9c96c19bba12372fb9c634d6f57/pydantic_core-2.41.5-graalpy311-graalpy242_311_native-macosx_10_12_x86_64.whl", hash = "sha256:b96d5f26b05d03cc60f11a7761a5ded1741da411e7fe0909e27a5e6a0cb7b034", size = 2115441, upload-time = "2025-11-04T13:42:39.557Z" }, + { url = "https://files.pythonhosted.org/packages/1f/53/8942f884fa33f50794f119012dc6a1a02ac43a56407adaac20463df8e98f/pydantic_core-2.41.5-graalpy311-graalpy242_311_native-macosx_11_0_arm64.whl", hash = "sha256:634e8609e89ceecea15e2d61bc9ac3718caaaa71963717bf3c8f38bfde64242c", size = 1930291, upload-time = "2025-11-04T13:42:42.169Z" }, + { url = "https://files.pythonhosted.org/packages/79/c8/ecb9ed9cd942bce09fc888ee960b52654fbdbede4ba6c2d6e0d3b1d8b49c/pydantic_core-2.41.5-graalpy311-graalpy242_311_native-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:93e8740d7503eb008aa2df04d3b9735f845d43ae845e6dcd2be0b55a2da43cd2", size = 1948632, upload-time = "2025-11-04T13:42:44.564Z" }, + { url = "https://files.pythonhosted.org/packages/2e/1b/687711069de7efa6af934e74f601e2a4307365e8fdc404703afc453eab26/pydantic_core-2.41.5-graalpy311-graalpy242_311_native-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f15489ba13d61f670dcc96772e733aad1a6f9c429cc27574c6cdaed82d0146ad", size = 2138905, upload-time = "2025-11-04T13:42:47.156Z" }, + { url = "https://files.pythonhosted.org/packages/09/32/59b0c7e63e277fa7911c2fc70ccfb45ce4b98991e7ef37110663437005af/pydantic_core-2.41.5-graalpy312-graalpy250_312_native-macosx_10_12_x86_64.whl", hash = "sha256:7da7087d756b19037bc2c06edc6c170eeef3c3bafcb8f532ff17d64dc427adfd", size = 2110495, upload-time = "2025-11-04T13:42:49.689Z" }, + { url = "https://files.pythonhosted.org/packages/aa/81/05e400037eaf55ad400bcd318c05bb345b57e708887f07ddb2d20e3f0e98/pydantic_core-2.41.5-graalpy312-graalpy250_312_native-macosx_11_0_arm64.whl", hash = "sha256:aabf5777b5c8ca26f7824cb4a120a740c9588ed58df9b2d196ce92fba42ff8dc", size = 1915388, upload-time = "2025-11-04T13:42:52.215Z" }, + { url = "https://files.pythonhosted.org/packages/6e/0d/e3549b2399f71d56476b77dbf3cf8937cec5cd70536bdc0e374a421d0599/pydantic_core-2.41.5-graalpy312-graalpy250_312_native-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c007fe8a43d43b3969e8469004e9845944f1a80e6acd47c150856bb87f230c56", size = 1942879, upload-time = "2025-11-04T13:42:56.483Z" }, + { url = "https://files.pythonhosted.org/packages/f7/07/34573da085946b6a313d7c42f82f16e8920bfd730665de2d11c0c37a74b5/pydantic_core-2.41.5-graalpy312-graalpy250_312_native-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:76d0819de158cd855d1cbb8fcafdf6f5cf1eb8e470abe056d5d161106e38062b", size = 2139017, upload-time = "2025-11-04T13:42:59.471Z" }, + { url = "https://files.pythonhosted.org/packages/e6/b0/1a2aa41e3b5a4ba11420aba2d091b2d17959c8d1519ece3627c371951e73/pydantic_core-2.41.5-pp310-pypy310_pp73-macosx_10_12_x86_64.whl", hash = "sha256:b5819cd790dbf0c5eb9f82c73c16b39a65dd6dd4d1439dcdea7816ec9adddab8", size = 2103351, upload-time = "2025-11-04T13:43:02.058Z" }, + { url = "https://files.pythonhosted.org/packages/a4/ee/31b1f0020baaf6d091c87900ae05c6aeae101fa4e188e1613c80e4f1ea31/pydantic_core-2.41.5-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:5a4e67afbc95fa5c34cf27d9089bca7fcab4e51e57278d710320a70b956d1b9a", size = 1925363, upload-time = "2025-11-04T13:43:05.159Z" }, + { url = "https://files.pythonhosted.org/packages/e1/89/ab8e86208467e467a80deaca4e434adac37b10a9d134cd2f99b28a01e483/pydantic_core-2.41.5-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ece5c59f0ce7d001e017643d8d24da587ea1f74f6993467d85ae8a5ef9d4f42b", size = 2135615, upload-time = "2025-11-04T13:43:08.116Z" }, + { url = "https://files.pythonhosted.org/packages/99/0a/99a53d06dd0348b2008f2f30884b34719c323f16c3be4e6cc1203b74a91d/pydantic_core-2.41.5-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:16f80f7abe3351f8ea6858914ddc8c77e02578544a0ebc15b4c2e1a0e813b0b2", size = 2175369, upload-time = "2025-11-04T13:43:12.49Z" }, + { url = "https://files.pythonhosted.org/packages/6d/94/30ca3b73c6d485b9bb0bc66e611cff4a7138ff9736b7e66bcf0852151636/pydantic_core-2.41.5-pp310-pypy310_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:33cb885e759a705b426baada1fe68cbb0a2e68e34c5d0d0289a364cf01709093", size = 2144218, upload-time = "2025-11-04T13:43:15.431Z" }, + { url = "https://files.pythonhosted.org/packages/87/57/31b4f8e12680b739a91f472b5671294236b82586889ef764b5fbc6669238/pydantic_core-2.41.5-pp310-pypy310_pp73-musllinux_1_1_armv7l.whl", hash = "sha256:c8d8b4eb992936023be7dee581270af5c6e0697a8559895f527f5b7105ecd36a", size = 2329951, upload-time = "2025-11-04T13:43:18.062Z" }, + { url = "https://files.pythonhosted.org/packages/7d/73/3c2c8edef77b8f7310e6fb012dbc4b8551386ed575b9eb6fb2506e28a7eb/pydantic_core-2.41.5-pp310-pypy310_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:242a206cd0318f95cd21bdacff3fcc3aab23e79bba5cac3db5a841c9ef9c6963", size = 2318428, upload-time = "2025-11-04T13:43:20.679Z" }, + { url = "https://files.pythonhosted.org/packages/2f/02/8559b1f26ee0d502c74f9cca5c0d2fd97e967e083e006bbbb4e97f3a043a/pydantic_core-2.41.5-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:d3a978c4f57a597908b7e697229d996d77a6d3c94901e9edee593adada95ce1a", size = 2147009, upload-time = "2025-11-04T13:43:23.286Z" }, + { url = "https://files.pythonhosted.org/packages/5f/9b/1b3f0e9f9305839d7e84912f9e8bfbd191ed1b1ef48083609f0dabde978c/pydantic_core-2.41.5-pp311-pypy311_pp73-macosx_10_12_x86_64.whl", hash = "sha256:b2379fa7ed44ddecb5bfe4e48577d752db9fc10be00a6b7446e9663ba143de26", size = 2101980, upload-time = "2025-11-04T13:43:25.97Z" }, + { url = "https://files.pythonhosted.org/packages/a4/ed/d71fefcb4263df0da6a85b5d8a7508360f2f2e9b3bf5814be9c8bccdccc1/pydantic_core-2.41.5-pp311-pypy311_pp73-macosx_11_0_arm64.whl", hash = "sha256:266fb4cbf5e3cbd0b53669a6d1b039c45e3ce651fd5442eff4d07c2cc8d66808", size = 1923865, upload-time = "2025-11-04T13:43:28.763Z" }, + { url = "https://files.pythonhosted.org/packages/ce/3a/626b38db460d675f873e4444b4bb030453bbe7b4ba55df821d026a0493c4/pydantic_core-2.41.5-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:58133647260ea01e4d0500089a8c4f07bd7aa6ce109682b1426394988d8aaacc", size = 2134256, upload-time = "2025-11-04T13:43:31.71Z" }, + { url = "https://files.pythonhosted.org/packages/83/d9/8412d7f06f616bbc053d30cb4e5f76786af3221462ad5eee1f202021eb4e/pydantic_core-2.41.5-pp311-pypy311_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:287dad91cfb551c363dc62899a80e9e14da1f0e2b6ebde82c806612ca2a13ef1", size = 2174762, upload-time = "2025-11-04T13:43:34.744Z" }, + { url = "https://files.pythonhosted.org/packages/55/4c/162d906b8e3ba3a99354e20faa1b49a85206c47de97a639510a0e673f5da/pydantic_core-2.41.5-pp311-pypy311_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:03b77d184b9eb40240ae9fd676ca364ce1085f203e1b1256f8ab9984dca80a84", size = 2143141, upload-time = "2025-11-04T13:43:37.701Z" }, + { url = "https://files.pythonhosted.org/packages/1f/f2/f11dd73284122713f5f89fc940f370d035fa8e1e078d446b3313955157fe/pydantic_core-2.41.5-pp311-pypy311_pp73-musllinux_1_1_armv7l.whl", hash = "sha256:a668ce24de96165bb239160b3d854943128f4334822900534f2fe947930e5770", size = 2330317, upload-time = "2025-11-04T13:43:40.406Z" }, + { url = "https://files.pythonhosted.org/packages/88/9d/b06ca6acfe4abb296110fb1273a4d848a0bfb2ff65f3ee92127b3244e16b/pydantic_core-2.41.5-pp311-pypy311_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:f14f8f046c14563f8eb3f45f499cc658ab8d10072961e07225e507adb700e93f", size = 2316992, upload-time = "2025-11-04T13:43:43.602Z" }, + { url = "https://files.pythonhosted.org/packages/36/c7/cfc8e811f061c841d7990b0201912c3556bfeb99cdcb7ed24adc8d6f8704/pydantic_core-2.41.5-pp311-pypy311_pp73-win_amd64.whl", hash = "sha256:56121965f7a4dc965bff783d70b907ddf3d57f6eba29b6d2e5dabfaf07799c51", size = 2145302, upload-time = "2025-11-04T13:43:46.64Z" }, +] + +[[package]] +name = "pygments" +version = "2.19.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/b0/77/a5b8c569bf593b0140bde72ea885a803b82086995367bf2037de0159d924/pygments-2.19.2.tar.gz", hash = "sha256:636cb2477cec7f8952536970bc533bc43743542f70392ae026374600add5b887", size = 4968631, upload-time = "2025-06-21T13:39:12.283Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/c7/21/705964c7812476f378728bdf590ca4b771ec72385c533964653c68e86bdc/pygments-2.19.2-py3-none-any.whl", hash = "sha256:86540386c03d588bb81d44bc3928634ff26449851e99741617ecb9037ee5ec0b", size = 1225217, upload-time = "2025-06-21T13:39:07.939Z" }, +] + +[[package]] +name = "pymdown-extensions" +version = "10.20.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "markdown" }, + { name = "pyyaml" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/1e/6c/9e370934bfa30e889d12e61d0dae009991294f40055c238980066a7fbd83/pymdown_extensions-10.20.1.tar.gz", hash = "sha256:e7e39c865727338d434b55f1dd8da51febcffcaebd6e1a0b9c836243f660740a", size = 852860, upload-time = "2026-01-24T05:56:56.758Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/40/6d/b6ee155462a0156b94312bdd82d2b92ea56e909740045a87ccb98bf52405/pymdown_extensions-10.20.1-py3-none-any.whl", hash = "sha256:24af7feacbca56504b313b7b418c4f5e1317bb5fea60f03d57be7fcc40912aa0", size = 268768, upload-time = "2026-01-24T05:56:54.537Z" }, +] + +[[package]] +name = "pyphonetics" +version = "0.5.3" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "unidecode" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/d6/7c/7c45a9e9bf6ddb57b67e66cf4e8076a7baf3a790a3411daac1a7a2df0c5b/pyphonetics-0.5.3.tar.gz", hash = "sha256:2d3c2e359fde91a3c57914f0b5468bba7a5daf38e7927fd999992ea68990fbe4", size = 10314, upload-time = "2020-02-25T12:08:31.049Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/bd/dd/a7d0a860efd3d4335d538b4361b8e9af8311f2aba2e8c7e4c7a47d623b6e/pyphonetics-0.5.3-py2.py3-none-any.whl", hash = "sha256:e6b29671d0d624dda1cac59c0c5a8a7216d8db504bae4941bfc482e04a0621d1", size = 10729, upload-time = "2020-02-25T12:08:25.368Z" }, +] + +[[package]] +name = "pytest" +version = "9.0.2" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "colorama", marker = "sys_platform == 'win32'" }, + { name = "exceptiongroup", marker = "python_full_version < '3.11'" }, + { name = "iniconfig" }, + { name = "packaging" }, + { name = "pluggy" }, + { name = "pygments" }, + { name = "tomli", marker = "python_full_version < '3.11'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/d1/db/7ef3487e0fb0049ddb5ce41d3a49c235bf9ad299b6a25d5780a89f19230f/pytest-9.0.2.tar.gz", hash = "sha256:75186651a92bd89611d1d9fc20f0b4345fd827c41ccd5c299a868a05d70edf11", size = 1568901, upload-time = "2025-12-06T21:30:51.014Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/3b/ab/b3226f0bd7cdcf710fbede2b3548584366da3b19b5021e74f5bde2a8fa3f/pytest-9.0.2-py3-none-any.whl", hash = "sha256:711ffd45bf766d5264d487b917733b453d917afd2b0ad65223959f59089f875b", size = 374801, upload-time = "2025-12-06T21:30:49.154Z" }, +] + +[[package]] +name = "pytest-cov" +version = "7.0.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "coverage", extra = ["toml"] }, + { name = "pluggy" }, + { name = "pytest" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/5e/f7/c933acc76f5208b3b00089573cf6a2bc26dc80a8aece8f52bb7d6b1855ca/pytest_cov-7.0.0.tar.gz", hash = "sha256:33c97eda2e049a0c5298e91f519302a1334c26ac65c1a483d6206fd458361af1", size = 54328, upload-time = "2025-09-09T10:57:02.113Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ee/49/1377b49de7d0c1ce41292161ea0f721913fa8722c19fb9c1e3aa0367eecb/pytest_cov-7.0.0-py3-none-any.whl", hash = "sha256:3b8e9558b16cc1479da72058bdecf8073661c7f57f7d3c5f22a1c23507f2d861", size = 22424, upload-time = "2025-09-09T10:57:00.695Z" }, +] + +[[package]] +name = "python-dateutil" +version = "2.9.0.post0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "six" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/66/c0/0c8b6ad9f17a802ee498c46e004a0eb49bc148f2fd230864601a86dcf6db/python-dateutil-2.9.0.post0.tar.gz", hash = "sha256:37dd54208da7e1cd875388217d5e00ebd4179249f90fb72437e91a35459a0ad3", size = 342432, upload-time = "2024-03-01T18:36:20.211Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ec/57/56b9bcc3c9c6a792fcbaf139543cee77261f3651ca9da0c93f5c1221264b/python_dateutil-2.9.0.post0-py2.py3-none-any.whl", hash = "sha256:a8b2bc7bffae282281c8140a97d3aa9c14da0b136dfe83f850eea9a5f7470427", size = 229892, upload-time = "2024-03-01T18:36:18.57Z" }, +] + +[[package]] +name = "python-slugify" +version = "8.0.4" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "text-unidecode" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/87/c7/5e1547c44e31da50a460df93af11a535ace568ef89d7a811069ead340c4a/python-slugify-8.0.4.tar.gz", hash = "sha256:59202371d1d05b54a9e7720c5e038f928f45daaffe41dd10822f3907b937c856", size = 10921, upload-time = "2024-02-08T18:32:45.488Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/a4/62/02da182e544a51a5c3ccf4b03ab79df279f9c60c5e82d5e8bec7ca26ac11/python_slugify-8.0.4-py2.py3-none-any.whl", hash = "sha256:276540b79961052b66b7d116620b36518847f52d5fd9e3a70164fc8c50faa6b8", size = 10051, upload-time = "2024-02-08T18:32:43.911Z" }, +] + +[[package]] +name = "pyyaml" +version = "6.0.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/05/8e/961c0007c59b8dd7729d542c61a4d537767a59645b82a0b521206e1e25c2/pyyaml-6.0.3.tar.gz", hash = "sha256:d76623373421df22fb4cf8817020cbb7ef15c725b9d5e45f17e189bfc384190f", size = 130960, upload-time = "2025-09-25T21:33:16.546Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/f4/a0/39350dd17dd6d6c6507025c0e53aef67a9293a6d37d3511f23ea510d5800/pyyaml-6.0.3-cp310-cp310-macosx_10_13_x86_64.whl", hash = "sha256:214ed4befebe12df36bcc8bc2b64b396ca31be9304b8f59e25c11cf94a4c033b", size = 184227, upload-time = "2025-09-25T21:31:46.04Z" }, + { url = "https://files.pythonhosted.org/packages/05/14/52d505b5c59ce73244f59c7a50ecf47093ce4765f116cdb98286a71eeca2/pyyaml-6.0.3-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:02ea2dfa234451bbb8772601d7b8e426c2bfa197136796224e50e35a78777956", size = 174019, upload-time = "2025-09-25T21:31:47.706Z" }, + { url = "https://files.pythonhosted.org/packages/43/f7/0e6a5ae5599c838c696adb4e6330a59f463265bfa1e116cfd1fbb0abaaae/pyyaml-6.0.3-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:b30236e45cf30d2b8e7b3e85881719e98507abed1011bf463a8fa23e9c3e98a8", size = 740646, upload-time = "2025-09-25T21:31:49.21Z" }, + { url = "https://files.pythonhosted.org/packages/2f/3a/61b9db1d28f00f8fd0ae760459a5c4bf1b941baf714e207b6eb0657d2578/pyyaml-6.0.3-cp310-cp310-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:66291b10affd76d76f54fad28e22e51719ef9ba22b29e1d7d03d6777a9174198", size = 840793, upload-time = "2025-09-25T21:31:50.735Z" }, + { url = "https://files.pythonhosted.org/packages/7a/1e/7acc4f0e74c4b3d9531e24739e0ab832a5edf40e64fbae1a9c01941cabd7/pyyaml-6.0.3-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:9c7708761fccb9397fe64bbc0395abcae8c4bf7b0eac081e12b809bf47700d0b", size = 770293, upload-time = "2025-09-25T21:31:51.828Z" }, + { url = "https://files.pythonhosted.org/packages/8b/ef/abd085f06853af0cd59fa5f913d61a8eab65d7639ff2a658d18a25d6a89d/pyyaml-6.0.3-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:418cf3f2111bc80e0933b2cd8cd04f286338bb88bdc7bc8e6dd775ebde60b5e0", size = 732872, upload-time = "2025-09-25T21:31:53.282Z" }, + { url = "https://files.pythonhosted.org/packages/1f/15/2bc9c8faf6450a8b3c9fc5448ed869c599c0a74ba2669772b1f3a0040180/pyyaml-6.0.3-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:5e0b74767e5f8c593e8c9b5912019159ed0533c70051e9cce3e8b6aa699fcd69", size = 758828, upload-time = "2025-09-25T21:31:54.807Z" }, + { url = "https://files.pythonhosted.org/packages/a3/00/531e92e88c00f4333ce359e50c19b8d1de9fe8d581b1534e35ccfbc5f393/pyyaml-6.0.3-cp310-cp310-win32.whl", hash = "sha256:28c8d926f98f432f88adc23edf2e6d4921ac26fb084b028c733d01868d19007e", size = 142415, upload-time = "2025-09-25T21:31:55.885Z" }, + { url = "https://files.pythonhosted.org/packages/2a/fa/926c003379b19fca39dd4634818b00dec6c62d87faf628d1394e137354d4/pyyaml-6.0.3-cp310-cp310-win_amd64.whl", hash = "sha256:bdb2c67c6c1390b63c6ff89f210c8fd09d9a1217a465701eac7316313c915e4c", size = 158561, upload-time = "2025-09-25T21:31:57.406Z" }, + { url = "https://files.pythonhosted.org/packages/6d/16/a95b6757765b7b031c9374925bb718d55e0a9ba8a1b6a12d25962ea44347/pyyaml-6.0.3-cp311-cp311-macosx_10_13_x86_64.whl", hash = "sha256:44edc647873928551a01e7a563d7452ccdebee747728c1080d881d68af7b997e", size = 185826, upload-time = "2025-09-25T21:31:58.655Z" }, + { url = "https://files.pythonhosted.org/packages/16/19/13de8e4377ed53079ee996e1ab0a9c33ec2faf808a4647b7b4c0d46dd239/pyyaml-6.0.3-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:652cb6edd41e718550aad172851962662ff2681490a8a711af6a4d288dd96824", size = 175577, upload-time = "2025-09-25T21:32:00.088Z" }, + { url = "https://files.pythonhosted.org/packages/0c/62/d2eb46264d4b157dae1275b573017abec435397aa59cbcdab6fc978a8af4/pyyaml-6.0.3-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:10892704fc220243f5305762e276552a0395f7beb4dbf9b14ec8fd43b57f126c", size = 775556, upload-time = "2025-09-25T21:32:01.31Z" }, + { url = "https://files.pythonhosted.org/packages/10/cb/16c3f2cf3266edd25aaa00d6c4350381c8b012ed6f5276675b9eba8d9ff4/pyyaml-6.0.3-cp311-cp311-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:850774a7879607d3a6f50d36d04f00ee69e7fc816450e5f7e58d7f17f1ae5c00", size = 882114, upload-time = "2025-09-25T21:32:03.376Z" }, + { url = "https://files.pythonhosted.org/packages/71/60/917329f640924b18ff085ab889a11c763e0b573da888e8404ff486657602/pyyaml-6.0.3-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:b8bb0864c5a28024fac8a632c443c87c5aa6f215c0b126c449ae1a150412f31d", size = 806638, upload-time = "2025-09-25T21:32:04.553Z" }, + { url = "https://files.pythonhosted.org/packages/dd/6f/529b0f316a9fd167281a6c3826b5583e6192dba792dd55e3203d3f8e655a/pyyaml-6.0.3-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:1d37d57ad971609cf3c53ba6a7e365e40660e3be0e5175fa9f2365a379d6095a", size = 767463, upload-time = "2025-09-25T21:32:06.152Z" }, + { url = "https://files.pythonhosted.org/packages/f2/6a/b627b4e0c1dd03718543519ffb2f1deea4a1e6d42fbab8021936a4d22589/pyyaml-6.0.3-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:37503bfbfc9d2c40b344d06b2199cf0e96e97957ab1c1b546fd4f87e53e5d3e4", size = 794986, upload-time = "2025-09-25T21:32:07.367Z" }, + { url = "https://files.pythonhosted.org/packages/45/91/47a6e1c42d9ee337c4839208f30d9f09caa9f720ec7582917b264defc875/pyyaml-6.0.3-cp311-cp311-win32.whl", hash = "sha256:8098f252adfa6c80ab48096053f512f2321f0b998f98150cea9bd23d83e1467b", size = 142543, upload-time = "2025-09-25T21:32:08.95Z" }, + { url = "https://files.pythonhosted.org/packages/da/e3/ea007450a105ae919a72393cb06f122f288ef60bba2dc64b26e2646fa315/pyyaml-6.0.3-cp311-cp311-win_amd64.whl", hash = "sha256:9f3bfb4965eb874431221a3ff3fdcddc7e74e3b07799e0e84ca4a0f867d449bf", size = 158763, upload-time = "2025-09-25T21:32:09.96Z" }, + { url = "https://files.pythonhosted.org/packages/d1/33/422b98d2195232ca1826284a76852ad5a86fe23e31b009c9886b2d0fb8b2/pyyaml-6.0.3-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:7f047e29dcae44602496db43be01ad42fc6f1cc0d8cd6c83d342306c32270196", size = 182063, upload-time = "2025-09-25T21:32:11.445Z" }, + { url = "https://files.pythonhosted.org/packages/89/a0/6cf41a19a1f2f3feab0e9c0b74134aa2ce6849093d5517a0c550fe37a648/pyyaml-6.0.3-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:fc09d0aa354569bc501d4e787133afc08552722d3ab34836a80547331bb5d4a0", size = 173973, upload-time = "2025-09-25T21:32:12.492Z" }, + { url = "https://files.pythonhosted.org/packages/ed/23/7a778b6bd0b9a8039df8b1b1d80e2e2ad78aa04171592c8a5c43a56a6af4/pyyaml-6.0.3-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:9149cad251584d5fb4981be1ecde53a1ca46c891a79788c0df828d2f166bda28", size = 775116, upload-time = "2025-09-25T21:32:13.652Z" }, + { url = "https://files.pythonhosted.org/packages/65/30/d7353c338e12baef4ecc1b09e877c1970bd3382789c159b4f89d6a70dc09/pyyaml-6.0.3-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:5fdec68f91a0c6739b380c83b951e2c72ac0197ace422360e6d5a959d8d97b2c", size = 844011, upload-time = "2025-09-25T21:32:15.21Z" }, + { url = "https://files.pythonhosted.org/packages/8b/9d/b3589d3877982d4f2329302ef98a8026e7f4443c765c46cfecc8858c6b4b/pyyaml-6.0.3-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:ba1cc08a7ccde2d2ec775841541641e4548226580ab850948cbfda66a1befcdc", size = 807870, upload-time = "2025-09-25T21:32:16.431Z" }, + { url = "https://files.pythonhosted.org/packages/05/c0/b3be26a015601b822b97d9149ff8cb5ead58c66f981e04fedf4e762f4bd4/pyyaml-6.0.3-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:8dc52c23056b9ddd46818a57b78404882310fb473d63f17b07d5c40421e47f8e", size = 761089, upload-time = "2025-09-25T21:32:17.56Z" }, + { url = "https://files.pythonhosted.org/packages/be/8e/98435a21d1d4b46590d5459a22d88128103f8da4c2d4cb8f14f2a96504e1/pyyaml-6.0.3-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:41715c910c881bc081f1e8872880d3c650acf13dfa8214bad49ed4cede7c34ea", size = 790181, upload-time = "2025-09-25T21:32:18.834Z" }, + { url = "https://files.pythonhosted.org/packages/74/93/7baea19427dcfbe1e5a372d81473250b379f04b1bd3c4c5ff825e2327202/pyyaml-6.0.3-cp312-cp312-win32.whl", hash = "sha256:96b533f0e99f6579b3d4d4995707cf36df9100d67e0c8303a0c55b27b5f99bc5", size = 137658, upload-time = "2025-09-25T21:32:20.209Z" }, + { url = "https://files.pythonhosted.org/packages/86/bf/899e81e4cce32febab4fb42bb97dcdf66bc135272882d1987881a4b519e9/pyyaml-6.0.3-cp312-cp312-win_amd64.whl", hash = "sha256:5fcd34e47f6e0b794d17de1b4ff496c00986e1c83f7ab2fb8fcfe9616ff7477b", size = 154003, upload-time = "2025-09-25T21:32:21.167Z" }, + { url = "https://files.pythonhosted.org/packages/1a/08/67bd04656199bbb51dbed1439b7f27601dfb576fb864099c7ef0c3e55531/pyyaml-6.0.3-cp312-cp312-win_arm64.whl", hash = "sha256:64386e5e707d03a7e172c0701abfb7e10f0fb753ee1d773128192742712a98fd", size = 140344, upload-time = "2025-09-25T21:32:22.617Z" }, + { url = "https://files.pythonhosted.org/packages/d1/11/0fd08f8192109f7169db964b5707a2f1e8b745d4e239b784a5a1dd80d1db/pyyaml-6.0.3-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:8da9669d359f02c0b91ccc01cac4a67f16afec0dac22c2ad09f46bee0697eba8", size = 181669, upload-time = "2025-09-25T21:32:23.673Z" }, + { url = "https://files.pythonhosted.org/packages/b1/16/95309993f1d3748cd644e02e38b75d50cbc0d9561d21f390a76242ce073f/pyyaml-6.0.3-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:2283a07e2c21a2aa78d9c4442724ec1eb15f5e42a723b99cb3d822d48f5f7ad1", size = 173252, upload-time = "2025-09-25T21:32:25.149Z" }, + { url = "https://files.pythonhosted.org/packages/50/31/b20f376d3f810b9b2371e72ef5adb33879b25edb7a6d072cb7ca0c486398/pyyaml-6.0.3-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:ee2922902c45ae8ccada2c5b501ab86c36525b883eff4255313a253a3160861c", size = 767081, upload-time = "2025-09-25T21:32:26.575Z" }, + { url = "https://files.pythonhosted.org/packages/49/1e/a55ca81e949270d5d4432fbbd19dfea5321eda7c41a849d443dc92fd1ff7/pyyaml-6.0.3-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:a33284e20b78bd4a18c8c2282d549d10bc8408a2a7ff57653c0cf0b9be0afce5", size = 841159, upload-time = "2025-09-25T21:32:27.727Z" }, + { url = "https://files.pythonhosted.org/packages/74/27/e5b8f34d02d9995b80abcef563ea1f8b56d20134d8f4e5e81733b1feceb2/pyyaml-6.0.3-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:0f29edc409a6392443abf94b9cf89ce99889a1dd5376d94316ae5145dfedd5d6", size = 801626, upload-time = "2025-09-25T21:32:28.878Z" }, + { url = "https://files.pythonhosted.org/packages/f9/11/ba845c23988798f40e52ba45f34849aa8a1f2d4af4b798588010792ebad6/pyyaml-6.0.3-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:f7057c9a337546edc7973c0d3ba84ddcdf0daa14533c2065749c9075001090e6", size = 753613, upload-time = "2025-09-25T21:32:30.178Z" }, + { url = "https://files.pythonhosted.org/packages/3d/e0/7966e1a7bfc0a45bf0a7fb6b98ea03fc9b8d84fa7f2229e9659680b69ee3/pyyaml-6.0.3-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:eda16858a3cab07b80edaf74336ece1f986ba330fdb8ee0d6c0d68fe82bc96be", size = 794115, upload-time = "2025-09-25T21:32:31.353Z" }, + { url = "https://files.pythonhosted.org/packages/de/94/980b50a6531b3019e45ddeada0626d45fa85cbe22300844a7983285bed3b/pyyaml-6.0.3-cp313-cp313-win32.whl", hash = "sha256:d0eae10f8159e8fdad514efdc92d74fd8d682c933a6dd088030f3834bc8e6b26", size = 137427, upload-time = "2025-09-25T21:32:32.58Z" }, + { url = "https://files.pythonhosted.org/packages/97/c9/39d5b874e8b28845e4ec2202b5da735d0199dbe5b8fb85f91398814a9a46/pyyaml-6.0.3-cp313-cp313-win_amd64.whl", hash = "sha256:79005a0d97d5ddabfeeea4cf676af11e647e41d81c9a7722a193022accdb6b7c", size = 154090, upload-time = "2025-09-25T21:32:33.659Z" }, + { url = "https://files.pythonhosted.org/packages/73/e8/2bdf3ca2090f68bb3d75b44da7bbc71843b19c9f2b9cb9b0f4ab7a5a4329/pyyaml-6.0.3-cp313-cp313-win_arm64.whl", hash = "sha256:5498cd1645aa724a7c71c8f378eb29ebe23da2fc0d7a08071d89469bf1d2defb", size = 140246, upload-time = "2025-09-25T21:32:34.663Z" }, + { url = "https://files.pythonhosted.org/packages/9d/8c/f4bd7f6465179953d3ac9bc44ac1a8a3e6122cf8ada906b4f96c60172d43/pyyaml-6.0.3-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:8d1fab6bb153a416f9aeb4b8763bc0f22a5586065f86f7664fc23339fc1c1fac", size = 181814, upload-time = "2025-09-25T21:32:35.712Z" }, + { url = "https://files.pythonhosted.org/packages/bd/9c/4d95bb87eb2063d20db7b60faa3840c1b18025517ae857371c4dd55a6b3a/pyyaml-6.0.3-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:34d5fcd24b8445fadc33f9cf348c1047101756fd760b4dacb5c3e99755703310", size = 173809, upload-time = "2025-09-25T21:32:36.789Z" }, + { url = "https://files.pythonhosted.org/packages/92/b5/47e807c2623074914e29dabd16cbbdd4bf5e9b2db9f8090fa64411fc5382/pyyaml-6.0.3-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:501a031947e3a9025ed4405a168e6ef5ae3126c59f90ce0cd6f2bfc477be31b7", size = 766454, upload-time = "2025-09-25T21:32:37.966Z" }, + { url = "https://files.pythonhosted.org/packages/02/9e/e5e9b168be58564121efb3de6859c452fccde0ab093d8438905899a3a483/pyyaml-6.0.3-cp314-cp314-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:b3bc83488de33889877a0f2543ade9f70c67d66d9ebb4ac959502e12de895788", size = 836355, upload-time = "2025-09-25T21:32:39.178Z" }, + { url = "https://files.pythonhosted.org/packages/88/f9/16491d7ed2a919954993e48aa941b200f38040928474c9e85ea9e64222c3/pyyaml-6.0.3-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:c458b6d084f9b935061bc36216e8a69a7e293a2f1e68bf956dcd9e6cbcd143f5", size = 794175, upload-time = "2025-09-25T21:32:40.865Z" }, + { url = "https://files.pythonhosted.org/packages/dd/3f/5989debef34dc6397317802b527dbbafb2b4760878a53d4166579111411e/pyyaml-6.0.3-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:7c6610def4f163542a622a73fb39f534f8c101d690126992300bf3207eab9764", size = 755228, upload-time = "2025-09-25T21:32:42.084Z" }, + { url = "https://files.pythonhosted.org/packages/d7/ce/af88a49043cd2e265be63d083fc75b27b6ed062f5f9fd6cdc223ad62f03e/pyyaml-6.0.3-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:5190d403f121660ce8d1d2c1bb2ef1bd05b5f68533fc5c2ea899bd15f4399b35", size = 789194, upload-time = "2025-09-25T21:32:43.362Z" }, + { url = "https://files.pythonhosted.org/packages/23/20/bb6982b26a40bb43951265ba29d4c246ef0ff59c9fdcdf0ed04e0687de4d/pyyaml-6.0.3-cp314-cp314-win_amd64.whl", hash = "sha256:4a2e8cebe2ff6ab7d1050ecd59c25d4c8bd7e6f400f5f82b96557ac0abafd0ac", size = 156429, upload-time = "2025-09-25T21:32:57.844Z" }, + { url = "https://files.pythonhosted.org/packages/f4/f4/a4541072bb9422c8a883ab55255f918fa378ecf083f5b85e87fc2b4eda1b/pyyaml-6.0.3-cp314-cp314-win_arm64.whl", hash = "sha256:93dda82c9c22deb0a405ea4dc5f2d0cda384168e466364dec6255b293923b2f3", size = 143912, upload-time = "2025-09-25T21:32:59.247Z" }, + { url = "https://files.pythonhosted.org/packages/7c/f9/07dd09ae774e4616edf6cda684ee78f97777bdd15847253637a6f052a62f/pyyaml-6.0.3-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:02893d100e99e03eda1c8fd5c441d8c60103fd175728e23e431db1b589cf5ab3", size = 189108, upload-time = "2025-09-25T21:32:44.377Z" }, + { url = "https://files.pythonhosted.org/packages/4e/78/8d08c9fb7ce09ad8c38ad533c1191cf27f7ae1effe5bb9400a46d9437fcf/pyyaml-6.0.3-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:c1ff362665ae507275af2853520967820d9124984e0f7466736aea23d8611fba", size = 183641, upload-time = "2025-09-25T21:32:45.407Z" }, + { url = "https://files.pythonhosted.org/packages/7b/5b/3babb19104a46945cf816d047db2788bcaf8c94527a805610b0289a01c6b/pyyaml-6.0.3-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:6adc77889b628398debc7b65c073bcb99c4a0237b248cacaf3fe8a557563ef6c", size = 831901, upload-time = "2025-09-25T21:32:48.83Z" }, + { url = "https://files.pythonhosted.org/packages/8b/cc/dff0684d8dc44da4d22a13f35f073d558c268780ce3c6ba1b87055bb0b87/pyyaml-6.0.3-cp314-cp314t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:a80cb027f6b349846a3bf6d73b5e95e782175e52f22108cfa17876aaeff93702", size = 861132, upload-time = "2025-09-25T21:32:50.149Z" }, + { url = "https://files.pythonhosted.org/packages/b1/5e/f77dc6b9036943e285ba76b49e118d9ea929885becb0a29ba8a7c75e29fe/pyyaml-6.0.3-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:00c4bdeba853cc34e7dd471f16b4114f4162dc03e6b7afcc2128711f0eca823c", size = 839261, upload-time = "2025-09-25T21:32:51.808Z" }, + { url = "https://files.pythonhosted.org/packages/ce/88/a9db1376aa2a228197c58b37302f284b5617f56a5d959fd1763fb1675ce6/pyyaml-6.0.3-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:66e1674c3ef6f541c35191caae2d429b967b99e02040f5ba928632d9a7f0f065", size = 805272, upload-time = "2025-09-25T21:32:52.941Z" }, + { url = "https://files.pythonhosted.org/packages/da/92/1446574745d74df0c92e6aa4a7b0b3130706a4142b2d1a5869f2eaa423c6/pyyaml-6.0.3-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:16249ee61e95f858e83976573de0f5b2893b3677ba71c9dd36b9cf8be9ac6d65", size = 829923, upload-time = "2025-09-25T21:32:54.537Z" }, + { url = "https://files.pythonhosted.org/packages/f0/7a/1c7270340330e575b92f397352af856a8c06f230aa3e76f86b39d01b416a/pyyaml-6.0.3-cp314-cp314t-win_amd64.whl", hash = "sha256:4ad1906908f2f5ae4e5a8ddfce73c320c2a1429ec52eafd27138b7f1cbe341c9", size = 174062, upload-time = "2025-09-25T21:32:55.767Z" }, + { url = "https://files.pythonhosted.org/packages/f1/12/de94a39c2ef588c7e6455cfbe7343d3b2dc9d6b6b2f40c4c6565744c873d/pyyaml-6.0.3-cp314-cp314t-win_arm64.whl", hash = "sha256:ebc55a14a21cb14062aa4162f906cd962b28e2e9ea38f9b4391244cd8de4ae0b", size = 149341, upload-time = "2025-09-25T21:32:56.828Z" }, +] + +[[package]] +name = "pyyaml-env-tag" +version = "1.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "pyyaml" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/eb/2e/79c822141bfd05a853236b504869ebc6b70159afc570e1d5a20641782eaa/pyyaml_env_tag-1.1.tar.gz", hash = "sha256:2eb38b75a2d21ee0475d6d97ec19c63287a7e140231e4214969d0eac923cd7ff", size = 5737, upload-time = "2025-05-13T15:24:01.64Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/04/11/432f32f8097b03e3cd5fe57e88efb685d964e2e5178a48ed61e841f7fdce/pyyaml_env_tag-1.1-py3-none-any.whl", hash = "sha256:17109e1a528561e32f026364712fee1264bc2ea6715120891174ed1b980d2e04", size = 4722, upload-time = "2025-05-13T15:23:59.629Z" }, +] + +[[package]] +name = "ratelimit" +version = "2.2.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/ab/38/ff60c8fc9e002d50d48822cc5095deb8ebbc5f91a6b8fdd9731c87a147c9/ratelimit-2.2.1.tar.gz", hash = "sha256:af8a9b64b821529aca09ebaf6d8d279100d766f19e90b5059ac6a718ca6dee42", size = 5251, upload-time = "2018-12-17T18:55:49.675Z" } + +[[package]] +name = "referencing" +version = "0.37.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "attrs" }, + { name = "rpds-py" }, + { name = "typing-extensions", marker = "python_full_version < '3.13'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/22/f5/df4e9027acead3ecc63e50fe1e36aca1523e1719559c499951bb4b53188f/referencing-0.37.0.tar.gz", hash = "sha256:44aefc3142c5b842538163acb373e24cce6632bd54bdb01b21ad5863489f50d8", size = 78036, upload-time = "2025-10-13T15:30:48.871Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/2c/58/ca301544e1fa93ed4f80d724bf5b194f6e4b945841c5bfd555878eea9fcb/referencing-0.37.0-py3-none-any.whl", hash = "sha256:381329a9f99628c9069361716891d34ad94af76e461dcb0335825aecc7692231", size = 26766, upload-time = "2025-10-13T15:30:47.625Z" }, +] + +[[package]] +name = "requests" +version = "2.32.5" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "certifi" }, + { name = "charset-normalizer" }, + { name = "idna" }, + { name = "urllib3" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/c9/74/b3ff8e6c8446842c3f5c837e9c3dfcfe2018ea6ecef224c710c85ef728f4/requests-2.32.5.tar.gz", hash = "sha256:dbba0bac56e100853db0ea71b82b4dfd5fe2bf6d3754a8893c3af500cec7d7cf", size = 134517, upload-time = "2025-08-18T20:46:02.573Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/1e/db/4254e3eabe8020b458f1a747140d32277ec7a271daf1d235b70dc0b4e6e3/requests-2.32.5-py3-none-any.whl", hash = "sha256:2462f94637a34fd532264295e186976db0f5d453d1cdd31473c85a6a161affb6", size = 64738, upload-time = "2025-08-18T20:46:00.542Z" }, +] + +[[package]] +name = "requests-file" +version = "3.0.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "requests" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/3c/f8/5dc70102e4d337063452c82e1f0d95e39abfe67aa222ed8a5ddeb9df8de8/requests_file-3.0.1.tar.gz", hash = "sha256:f14243d7796c588f3521bd423c5dea2ee4cc730e54a3cac9574d78aca1272576", size = 6967, upload-time = "2025-10-20T18:56:42.279Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/e1/d5/de8f089119205a09da657ed4784c584ede8381a0ce6821212a6d4ca47054/requests_file-3.0.1-py2.py3-none-any.whl", hash = "sha256:d0f5eb94353986d998f80ac63c7f146a307728be051d4d1cd390dbdb59c10fa2", size = 4514, upload-time = "2025-10-20T18:56:41.184Z" }, +] + +[[package]] +name = "rfc3986" +version = "2.0.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/85/40/1520d68bfa07ab5a6f065a186815fb6610c86fe957bc065754e47f7b0840/rfc3986-2.0.0.tar.gz", hash = "sha256:97aacf9dbd4bfd829baad6e6309fa6573aaf1be3f6fa735c8ab05e46cecb261c", size = 49026, upload-time = "2022-01-10T00:52:30.832Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ff/9a/9afaade874b2fa6c752c36f1548f718b5b83af81ed9b76628329dab81c1b/rfc3986-2.0.0-py2.py3-none-any.whl", hash = "sha256:50b1502b60e289cb37883f3dfd34532b8873c7de9f49bb546641ce9cbd256ebd", size = 31326, upload-time = "2022-01-10T00:52:29.594Z" }, +] + +[[package]] +name = "rich" +version = "14.3.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "markdown-it-py" }, + { name = "pygments" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/a1/84/4831f881aa6ff3c976f6d6809b58cdfa350593ffc0dc3c58f5f6586780fb/rich-14.3.1.tar.gz", hash = "sha256:b8c5f568a3a749f9290ec6bddedf835cec33696bfc1e48bcfecb276c7386e4b8", size = 230125, upload-time = "2026-01-24T21:40:44.847Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/87/2a/a1810c8627b9ec8c57ec5ec325d306701ae7be50235e8fd81266e002a3cc/rich-14.3.1-py3-none-any.whl", hash = "sha256:da750b1aebbff0b372557426fb3f35ba56de8ef954b3190315eb64076d6fb54e", size = 309952, upload-time = "2026-01-24T21:40:42.969Z" }, +] + +[[package]] +name = "rpds-py" +version = "0.30.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/20/af/3f2f423103f1113b36230496629986e0ef7e199d2aa8392452b484b38ced/rpds_py-0.30.0.tar.gz", hash = "sha256:dd8ff7cf90014af0c0f787eea34794ebf6415242ee1d6fa91eaba725cc441e84", size = 69469, upload-time = "2025-11-30T20:24:38.837Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/06/0c/0c411a0ec64ccb6d104dcabe0e713e05e153a9a2c3c2bd2b32ce412166fe/rpds_py-0.30.0-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:679ae98e00c0e8d68a7fda324e16b90fd5260945b45d3b824c892cec9eea3288", size = 370490, upload-time = "2025-11-30T20:21:33.256Z" }, + { url = "https://files.pythonhosted.org/packages/19/6a/4ba3d0fb7297ebae71171822554abe48d7cab29c28b8f9f2c04b79988c05/rpds_py-0.30.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:4cc2206b76b4f576934f0ed374b10d7ca5f457858b157ca52064bdfc26b9fc00", size = 359751, upload-time = "2025-11-30T20:21:34.591Z" }, + { url = "https://files.pythonhosted.org/packages/cd/7c/e4933565ef7f7a0818985d87c15d9d273f1a649afa6a52ea35ad011195ea/rpds_py-0.30.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:389a2d49eded1896c3d48b0136ead37c48e221b391c052fba3f4055c367f60a6", size = 389696, upload-time = "2025-11-30T20:21:36.122Z" }, + { url = "https://files.pythonhosted.org/packages/5e/01/6271a2511ad0815f00f7ed4390cf2567bec1d4b1da39e2c27a41e6e3b4de/rpds_py-0.30.0-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:32c8528634e1bf7121f3de08fa85b138f4e0dc47657866630611b03967f041d7", size = 403136, upload-time = "2025-11-30T20:21:37.728Z" }, + { url = "https://files.pythonhosted.org/packages/55/64/c857eb7cd7541e9b4eee9d49c196e833128a55b89a9850a9c9ac33ccf897/rpds_py-0.30.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f207f69853edd6f6700b86efb84999651baf3789e78a466431df1331608e5324", size = 524699, upload-time = "2025-11-30T20:21:38.92Z" }, + { url = "https://files.pythonhosted.org/packages/9c/ed/94816543404078af9ab26159c44f9e98e20fe47e2126d5d32c9d9948d10a/rpds_py-0.30.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:67b02ec25ba7a9e8fa74c63b6ca44cf5707f2fbfadae3ee8e7494297d56aa9df", size = 412022, upload-time = "2025-11-30T20:21:40.407Z" }, + { url = "https://files.pythonhosted.org/packages/61/b5/707f6cf0066a6412aacc11d17920ea2e19e5b2f04081c64526eb35b5c6e7/rpds_py-0.30.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0c0e95f6819a19965ff420f65578bacb0b00f251fefe2c8b23347c37174271f3", size = 390522, upload-time = "2025-11-30T20:21:42.17Z" }, + { url = "https://files.pythonhosted.org/packages/13/4e/57a85fda37a229ff4226f8cbcf09f2a455d1ed20e802ce5b2b4a7f5ed053/rpds_py-0.30.0-cp310-cp310-manylinux_2_31_riscv64.whl", hash = "sha256:a452763cc5198f2f98898eb98f7569649fe5da666c2dc6b5ddb10fde5a574221", size = 404579, upload-time = "2025-11-30T20:21:43.769Z" }, + { url = "https://files.pythonhosted.org/packages/f9/da/c9339293513ec680a721e0e16bf2bac3db6e5d7e922488de471308349bba/rpds_py-0.30.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:e0b65193a413ccc930671c55153a03ee57cecb49e6227204b04fae512eb657a7", size = 421305, upload-time = "2025-11-30T20:21:44.994Z" }, + { url = "https://files.pythonhosted.org/packages/f9/be/522cb84751114f4ad9d822ff5a1aa3c98006341895d5f084779b99596e5c/rpds_py-0.30.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:858738e9c32147f78b3ac24dc0edb6610000e56dc0f700fd5f651d0a0f0eb9ff", size = 572503, upload-time = "2025-11-30T20:21:46.91Z" }, + { url = "https://files.pythonhosted.org/packages/a2/9b/de879f7e7ceddc973ea6e4629e9b380213a6938a249e94b0cdbcc325bb66/rpds_py-0.30.0-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:da279aa314f00acbb803da1e76fa18666778e8a8f83484fba94526da5de2cba7", size = 598322, upload-time = "2025-11-30T20:21:48.709Z" }, + { url = "https://files.pythonhosted.org/packages/48/ac/f01fc22efec3f37d8a914fc1b2fb9bcafd56a299edbe96406f3053edea5a/rpds_py-0.30.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:7c64d38fb49b6cdeda16ab49e35fe0da2e1e9b34bc38bd78386530f218b37139", size = 560792, upload-time = "2025-11-30T20:21:50.024Z" }, + { url = "https://files.pythonhosted.org/packages/e2/da/4e2b19d0f131f35b6146425f846563d0ce036763e38913d917187307a671/rpds_py-0.30.0-cp310-cp310-win32.whl", hash = "sha256:6de2a32a1665b93233cde140ff8b3467bdb9e2af2b91079f0333a0974d12d464", size = 221901, upload-time = "2025-11-30T20:21:51.32Z" }, + { url = "https://files.pythonhosted.org/packages/96/cb/156d7a5cf4f78a7cc571465d8aec7a3c447c94f6749c5123f08438bcf7bc/rpds_py-0.30.0-cp310-cp310-win_amd64.whl", hash = "sha256:1726859cd0de969f88dc8673bdd954185b9104e05806be64bcd87badbe313169", size = 235823, upload-time = "2025-11-30T20:21:52.505Z" }, + { url = "https://files.pythonhosted.org/packages/4d/6e/f964e88b3d2abee2a82c1ac8366da848fce1c6d834dc2132c3fda3970290/rpds_py-0.30.0-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:a2bffea6a4ca9f01b3f8e548302470306689684e61602aa3d141e34da06cf425", size = 370157, upload-time = "2025-11-30T20:21:53.789Z" }, + { url = "https://files.pythonhosted.org/packages/94/ba/24e5ebb7c1c82e74c4e4f33b2112a5573ddc703915b13a073737b59b86e0/rpds_py-0.30.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:dc4f992dfe1e2bc3ebc7444f6c7051b4bc13cd8e33e43511e8ffd13bf407010d", size = 359676, upload-time = "2025-11-30T20:21:55.475Z" }, + { url = "https://files.pythonhosted.org/packages/84/86/04dbba1b087227747d64d80c3b74df946b986c57af0a9f0c98726d4d7a3b/rpds_py-0.30.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:422c3cb9856d80b09d30d2eb255d0754b23e090034e1deb4083f8004bd0761e4", size = 389938, upload-time = "2025-11-30T20:21:57.079Z" }, + { url = "https://files.pythonhosted.org/packages/42/bb/1463f0b1722b7f45431bdd468301991d1328b16cffe0b1c2918eba2c4eee/rpds_py-0.30.0-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:07ae8a593e1c3c6b82ca3292efbe73c30b61332fd612e05abee07c79359f292f", size = 402932, upload-time = "2025-11-30T20:21:58.47Z" }, + { url = "https://files.pythonhosted.org/packages/99/ee/2520700a5c1f2d76631f948b0736cdf9b0acb25abd0ca8e889b5c62ac2e3/rpds_py-0.30.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:12f90dd7557b6bd57f40abe7747e81e0c0b119bef015ea7726e69fe550e394a4", size = 525830, upload-time = "2025-11-30T20:21:59.699Z" }, + { url = "https://files.pythonhosted.org/packages/e0/ad/bd0331f740f5705cc555a5e17fdf334671262160270962e69a2bdef3bf76/rpds_py-0.30.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:99b47d6ad9a6da00bec6aabe5a6279ecd3c06a329d4aa4771034a21e335c3a97", size = 412033, upload-time = "2025-11-30T20:22:00.991Z" }, + { url = "https://files.pythonhosted.org/packages/f8/1e/372195d326549bb51f0ba0f2ecb9874579906b97e08880e7a65c3bef1a99/rpds_py-0.30.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:33f559f3104504506a44bb666b93a33f5d33133765b0c216a5bf2f1e1503af89", size = 390828, upload-time = "2025-11-30T20:22:02.723Z" }, + { url = "https://files.pythonhosted.org/packages/ab/2b/d88bb33294e3e0c76bc8f351a3721212713629ffca1700fa94979cb3eae8/rpds_py-0.30.0-cp311-cp311-manylinux_2_31_riscv64.whl", hash = "sha256:946fe926af6e44f3697abbc305ea168c2c31d3e3ef1058cf68f379bf0335a78d", size = 404683, upload-time = "2025-11-30T20:22:04.367Z" }, + { url = "https://files.pythonhosted.org/packages/50/32/c759a8d42bcb5289c1fac697cd92f6fe01a018dd937e62ae77e0e7f15702/rpds_py-0.30.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:495aeca4b93d465efde585977365187149e75383ad2684f81519f504f5c13038", size = 421583, upload-time = "2025-11-30T20:22:05.814Z" }, + { url = "https://files.pythonhosted.org/packages/2b/81/e729761dbd55ddf5d84ec4ff1f47857f4374b0f19bdabfcf929164da3e24/rpds_py-0.30.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:d9a0ca5da0386dee0655b4ccdf46119df60e0f10da268d04fe7cc87886872ba7", size = 572496, upload-time = "2025-11-30T20:22:07.713Z" }, + { url = "https://files.pythonhosted.org/packages/14/f6/69066a924c3557c9c30baa6ec3a0aa07526305684c6f86c696b08860726c/rpds_py-0.30.0-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:8d6d1cc13664ec13c1b84241204ff3b12f9bb82464b8ad6e7a5d3486975c2eed", size = 598669, upload-time = "2025-11-30T20:22:09.312Z" }, + { url = "https://files.pythonhosted.org/packages/5f/48/905896b1eb8a05630d20333d1d8ffd162394127b74ce0b0784ae04498d32/rpds_py-0.30.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:3896fa1be39912cf0757753826bc8bdc8ca331a28a7c4ae46b7a21280b06bb85", size = 561011, upload-time = "2025-11-30T20:22:11.309Z" }, + { url = "https://files.pythonhosted.org/packages/22/16/cd3027c7e279d22e5eb431dd3c0fbc677bed58797fe7581e148f3f68818b/rpds_py-0.30.0-cp311-cp311-win32.whl", hash = "sha256:55f66022632205940f1827effeff17c4fa7ae1953d2b74a8581baaefb7d16f8c", size = 221406, upload-time = "2025-11-30T20:22:13.101Z" }, + { url = "https://files.pythonhosted.org/packages/fa/5b/e7b7aa136f28462b344e652ee010d4de26ee9fd16f1bfd5811f5153ccf89/rpds_py-0.30.0-cp311-cp311-win_amd64.whl", hash = "sha256:a51033ff701fca756439d641c0ad09a41d9242fa69121c7d8769604a0a629825", size = 236024, upload-time = "2025-11-30T20:22:14.853Z" }, + { url = "https://files.pythonhosted.org/packages/14/a6/364bba985e4c13658edb156640608f2c9e1d3ea3c81b27aa9d889fff0e31/rpds_py-0.30.0-cp311-cp311-win_arm64.whl", hash = "sha256:47b0ef6231c58f506ef0b74d44e330405caa8428e770fec25329ed2cb971a229", size = 229069, upload-time = "2025-11-30T20:22:16.577Z" }, + { url = "https://files.pythonhosted.org/packages/03/e7/98a2f4ac921d82f33e03f3835f5bf3a4a40aa1bfdc57975e74a97b2b4bdd/rpds_py-0.30.0-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:a161f20d9a43006833cd7068375a94d035714d73a172b681d8881820600abfad", size = 375086, upload-time = "2025-11-30T20:22:17.93Z" }, + { url = "https://files.pythonhosted.org/packages/4d/a1/bca7fd3d452b272e13335db8d6b0b3ecde0f90ad6f16f3328c6fb150c889/rpds_py-0.30.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:6abc8880d9d036ecaafe709079969f56e876fcf107f7a8e9920ba6d5a3878d05", size = 359053, upload-time = "2025-11-30T20:22:19.297Z" }, + { url = "https://files.pythonhosted.org/packages/65/1c/ae157e83a6357eceff62ba7e52113e3ec4834a84cfe07fa4b0757a7d105f/rpds_py-0.30.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ca28829ae5f5d569bb62a79512c842a03a12576375d5ece7d2cadf8abe96ec28", size = 390763, upload-time = "2025-11-30T20:22:21.661Z" }, + { url = "https://files.pythonhosted.org/packages/d4/36/eb2eb8515e2ad24c0bd43c3ee9cd74c33f7ca6430755ccdb240fd3144c44/rpds_py-0.30.0-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:a1010ed9524c73b94d15919ca4d41d8780980e1765babf85f9a2f90d247153dd", size = 408951, upload-time = "2025-11-30T20:22:23.408Z" }, + { url = "https://files.pythonhosted.org/packages/d6/65/ad8dc1784a331fabbd740ef6f71ce2198c7ed0890dab595adb9ea2d775a1/rpds_py-0.30.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f8d1736cfb49381ba528cd5baa46f82fdc65c06e843dab24dd70b63d09121b3f", size = 514622, upload-time = "2025-11-30T20:22:25.16Z" }, + { url = "https://files.pythonhosted.org/packages/63/8e/0cfa7ae158e15e143fe03993b5bcd743a59f541f5952e1546b1ac1b5fd45/rpds_py-0.30.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d948b135c4693daff7bc2dcfc4ec57237a29bd37e60c2fabf5aff2bbacf3e2f1", size = 414492, upload-time = "2025-11-30T20:22:26.505Z" }, + { url = "https://files.pythonhosted.org/packages/60/1b/6f8f29f3f995c7ffdde46a626ddccd7c63aefc0efae881dc13b6e5d5bb16/rpds_py-0.30.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:47f236970bccb2233267d89173d3ad2703cd36a0e2a6e92d0560d333871a3d23", size = 394080, upload-time = "2025-11-30T20:22:27.934Z" }, + { url = "https://files.pythonhosted.org/packages/6d/d5/a266341051a7a3ca2f4b750a3aa4abc986378431fc2da508c5034d081b70/rpds_py-0.30.0-cp312-cp312-manylinux_2_31_riscv64.whl", hash = "sha256:2e6ecb5a5bcacf59c3f912155044479af1d0b6681280048b338b28e364aca1f6", size = 408680, upload-time = "2025-11-30T20:22:29.341Z" }, + { url = "https://files.pythonhosted.org/packages/10/3b/71b725851df9ab7a7a4e33cf36d241933da66040d195a84781f49c50490c/rpds_py-0.30.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:a8fa71a2e078c527c3e9dc9fc5a98c9db40bcc8a92b4e8858e36d329f8684b51", size = 423589, upload-time = "2025-11-30T20:22:31.469Z" }, + { url = "https://files.pythonhosted.org/packages/00/2b/e59e58c544dc9bd8bd8384ecdb8ea91f6727f0e37a7131baeff8d6f51661/rpds_py-0.30.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:73c67f2db7bc334e518d097c6d1e6fed021bbc9b7d678d6cc433478365d1d5f5", size = 573289, upload-time = "2025-11-30T20:22:32.997Z" }, + { url = "https://files.pythonhosted.org/packages/da/3e/a18e6f5b460893172a7d6a680e86d3b6bc87a54c1f0b03446a3c8c7b588f/rpds_py-0.30.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:5ba103fb455be00f3b1c2076c9d4264bfcb037c976167a6047ed82f23153f02e", size = 599737, upload-time = "2025-11-30T20:22:34.419Z" }, + { url = "https://files.pythonhosted.org/packages/5c/e2/714694e4b87b85a18e2c243614974413c60aa107fd815b8cbc42b873d1d7/rpds_py-0.30.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:7cee9c752c0364588353e627da8a7e808a66873672bcb5f52890c33fd965b394", size = 563120, upload-time = "2025-11-30T20:22:35.903Z" }, + { url = "https://files.pythonhosted.org/packages/6f/ab/d5d5e3bcedb0a77f4f613706b750e50a5a3ba1c15ccd3665ecc636c968fd/rpds_py-0.30.0-cp312-cp312-win32.whl", hash = "sha256:1ab5b83dbcf55acc8b08fc62b796ef672c457b17dbd7820a11d6c52c06839bdf", size = 223782, upload-time = "2025-11-30T20:22:37.271Z" }, + { url = "https://files.pythonhosted.org/packages/39/3b/f786af9957306fdc38a74cef405b7b93180f481fb48453a114bb6465744a/rpds_py-0.30.0-cp312-cp312-win_amd64.whl", hash = "sha256:a090322ca841abd453d43456ac34db46e8b05fd9b3b4ac0c78bcde8b089f959b", size = 240463, upload-time = "2025-11-30T20:22:39.021Z" }, + { url = "https://files.pythonhosted.org/packages/f3/d2/b91dc748126c1559042cfe41990deb92c4ee3e2b415f6b5234969ffaf0cc/rpds_py-0.30.0-cp312-cp312-win_arm64.whl", hash = "sha256:669b1805bd639dd2989b281be2cfd951c6121b65e729d9b843e9639ef1fd555e", size = 230868, upload-time = "2025-11-30T20:22:40.493Z" }, + { url = "https://files.pythonhosted.org/packages/ed/dc/d61221eb88ff410de3c49143407f6f3147acf2538c86f2ab7ce65ae7d5f9/rpds_py-0.30.0-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:f83424d738204d9770830d35290ff3273fbb02b41f919870479fab14b9d303b2", size = 374887, upload-time = "2025-11-30T20:22:41.812Z" }, + { url = "https://files.pythonhosted.org/packages/fd/32/55fb50ae104061dbc564ef15cc43c013dc4a9f4527a1f4d99baddf56fe5f/rpds_py-0.30.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:e7536cd91353c5273434b4e003cbda89034d67e7710eab8761fd918ec6c69cf8", size = 358904, upload-time = "2025-11-30T20:22:43.479Z" }, + { url = "https://files.pythonhosted.org/packages/58/70/faed8186300e3b9bdd138d0273109784eea2396c68458ed580f885dfe7ad/rpds_py-0.30.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2771c6c15973347f50fece41fc447c054b7ac2ae0502388ce3b6738cd366e3d4", size = 389945, upload-time = "2025-11-30T20:22:44.819Z" }, + { url = "https://files.pythonhosted.org/packages/bd/a8/073cac3ed2c6387df38f71296d002ab43496a96b92c823e76f46b8af0543/rpds_py-0.30.0-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:0a59119fc6e3f460315fe9d08149f8102aa322299deaa5cab5b40092345c2136", size = 407783, upload-time = "2025-11-30T20:22:46.103Z" }, + { url = "https://files.pythonhosted.org/packages/77/57/5999eb8c58671f1c11eba084115e77a8899d6e694d2a18f69f0ba471ec8b/rpds_py-0.30.0-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:76fec018282b4ead0364022e3c54b60bf368b9d926877957a8624b58419169b7", size = 515021, upload-time = "2025-11-30T20:22:47.458Z" }, + { url = "https://files.pythonhosted.org/packages/e0/af/5ab4833eadc36c0a8ed2bc5c0de0493c04f6c06de223170bd0798ff98ced/rpds_py-0.30.0-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:692bef75a5525db97318e8cd061542b5a79812d711ea03dbc1f6f8dbb0c5f0d2", size = 414589, upload-time = "2025-11-30T20:22:48.872Z" }, + { url = "https://files.pythonhosted.org/packages/b7/de/f7192e12b21b9e9a68a6d0f249b4af3fdcdff8418be0767a627564afa1f1/rpds_py-0.30.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9027da1ce107104c50c81383cae773ef5c24d296dd11c99e2629dbd7967a20c6", size = 394025, upload-time = "2025-11-30T20:22:50.196Z" }, + { url = "https://files.pythonhosted.org/packages/91/c4/fc70cd0249496493500e7cc2de87504f5aa6509de1e88623431fec76d4b6/rpds_py-0.30.0-cp313-cp313-manylinux_2_31_riscv64.whl", hash = "sha256:9cf69cdda1f5968a30a359aba2f7f9aa648a9ce4b580d6826437f2b291cfc86e", size = 408895, upload-time = "2025-11-30T20:22:51.87Z" }, + { url = "https://files.pythonhosted.org/packages/58/95/d9275b05ab96556fefff73a385813eb66032e4c99f411d0795372d9abcea/rpds_py-0.30.0-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:a4796a717bf12b9da9d3ad002519a86063dcac8988b030e405704ef7d74d2d9d", size = 422799, upload-time = "2025-11-30T20:22:53.341Z" }, + { url = "https://files.pythonhosted.org/packages/06/c1/3088fc04b6624eb12a57eb814f0d4997a44b0d208d6cace713033ff1a6ba/rpds_py-0.30.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:5d4c2aa7c50ad4728a094ebd5eb46c452e9cb7edbfdb18f9e1221f597a73e1e7", size = 572731, upload-time = "2025-11-30T20:22:54.778Z" }, + { url = "https://files.pythonhosted.org/packages/d8/42/c612a833183b39774e8ac8fecae81263a68b9583ee343db33ab571a7ce55/rpds_py-0.30.0-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:ba81a9203d07805435eb06f536d95a266c21e5b2dfbf6517748ca40c98d19e31", size = 599027, upload-time = "2025-11-30T20:22:56.212Z" }, + { url = "https://files.pythonhosted.org/packages/5f/60/525a50f45b01d70005403ae0e25f43c0384369ad24ffe46e8d9068b50086/rpds_py-0.30.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:945dccface01af02675628334f7cf49c2af4c1c904748efc5cf7bbdf0b579f95", size = 563020, upload-time = "2025-11-30T20:22:58.2Z" }, + { url = "https://files.pythonhosted.org/packages/0b/5d/47c4655e9bcd5ca907148535c10e7d489044243cc9941c16ed7cd53be91d/rpds_py-0.30.0-cp313-cp313-win32.whl", hash = "sha256:b40fb160a2db369a194cb27943582b38f79fc4887291417685f3ad693c5a1d5d", size = 223139, upload-time = "2025-11-30T20:23:00.209Z" }, + { url = "https://files.pythonhosted.org/packages/f2/e1/485132437d20aa4d3e1d8b3fb5a5e65aa8139f1e097080c2a8443201742c/rpds_py-0.30.0-cp313-cp313-win_amd64.whl", hash = "sha256:806f36b1b605e2d6a72716f321f20036b9489d29c51c91f4dd29a3e3afb73b15", size = 240224, upload-time = "2025-11-30T20:23:02.008Z" }, + { url = "https://files.pythonhosted.org/packages/24/95/ffd128ed1146a153d928617b0ef673960130be0009c77d8fbf0abe306713/rpds_py-0.30.0-cp313-cp313-win_arm64.whl", hash = "sha256:d96c2086587c7c30d44f31f42eae4eac89b60dabbac18c7669be3700f13c3ce1", size = 230645, upload-time = "2025-11-30T20:23:03.43Z" }, + { url = "https://files.pythonhosted.org/packages/ff/1b/b10de890a0def2a319a2626334a7f0ae388215eb60914dbac8a3bae54435/rpds_py-0.30.0-cp313-cp313t-macosx_10_12_x86_64.whl", hash = "sha256:eb0b93f2e5c2189ee831ee43f156ed34e2a89a78a66b98cadad955972548be5a", size = 364443, upload-time = "2025-11-30T20:23:04.878Z" }, + { url = "https://files.pythonhosted.org/packages/0d/bf/27e39f5971dc4f305a4fb9c672ca06f290f7c4e261c568f3dea16a410d47/rpds_py-0.30.0-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:922e10f31f303c7c920da8981051ff6d8c1a56207dbdf330d9047f6d30b70e5e", size = 353375, upload-time = "2025-11-30T20:23:06.342Z" }, + { url = "https://files.pythonhosted.org/packages/40/58/442ada3bba6e8e6615fc00483135c14a7538d2ffac30e2d933ccf6852232/rpds_py-0.30.0-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cdc62c8286ba9bf7f47befdcea13ea0e26bf294bda99758fd90535cbaf408000", size = 383850, upload-time = "2025-11-30T20:23:07.825Z" }, + { url = "https://files.pythonhosted.org/packages/14/14/f59b0127409a33c6ef6f5c1ebd5ad8e32d7861c9c7adfa9a624fc3889f6c/rpds_py-0.30.0-cp313-cp313t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:47f9a91efc418b54fb8190a6b4aa7813a23fb79c51f4bb84e418f5476c38b8db", size = 392812, upload-time = "2025-11-30T20:23:09.228Z" }, + { url = "https://files.pythonhosted.org/packages/b3/66/e0be3e162ac299b3a22527e8913767d869e6cc75c46bd844aa43fb81ab62/rpds_py-0.30.0-cp313-cp313t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1f3587eb9b17f3789ad50824084fa6f81921bbf9a795826570bda82cb3ed91f2", size = 517841, upload-time = "2025-11-30T20:23:11.186Z" }, + { url = "https://files.pythonhosted.org/packages/3d/55/fa3b9cf31d0c963ecf1ba777f7cf4b2a2c976795ac430d24a1f43d25a6ba/rpds_py-0.30.0-cp313-cp313t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:39c02563fc592411c2c61d26b6c5fe1e51eaa44a75aa2c8735ca88b0d9599daa", size = 408149, upload-time = "2025-11-30T20:23:12.864Z" }, + { url = "https://files.pythonhosted.org/packages/60/ca/780cf3b1a32b18c0f05c441958d3758f02544f1d613abf9488cd78876378/rpds_py-0.30.0-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:51a1234d8febafdfd33a42d97da7a43f5dcb120c1060e352a3fbc0c6d36e2083", size = 383843, upload-time = "2025-11-30T20:23:14.638Z" }, + { url = "https://files.pythonhosted.org/packages/82/86/d5f2e04f2aa6247c613da0c1dd87fcd08fa17107e858193566048a1e2f0a/rpds_py-0.30.0-cp313-cp313t-manylinux_2_31_riscv64.whl", hash = "sha256:eb2c4071ab598733724c08221091e8d80e89064cd472819285a9ab0f24bcedb9", size = 396507, upload-time = "2025-11-30T20:23:16.105Z" }, + { url = "https://files.pythonhosted.org/packages/4b/9a/453255d2f769fe44e07ea9785c8347edaf867f7026872e76c1ad9f7bed92/rpds_py-0.30.0-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:6bdfdb946967d816e6adf9a3d8201bfad269c67efe6cefd7093ef959683c8de0", size = 414949, upload-time = "2025-11-30T20:23:17.539Z" }, + { url = "https://files.pythonhosted.org/packages/a3/31/622a86cdc0c45d6df0e9ccb6becdba5074735e7033c20e401a6d9d0e2ca0/rpds_py-0.30.0-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:c77afbd5f5250bf27bf516c7c4a016813eb2d3e116139aed0096940c5982da94", size = 565790, upload-time = "2025-11-30T20:23:19.029Z" }, + { url = "https://files.pythonhosted.org/packages/1c/5d/15bbf0fb4a3f58a3b1c67855ec1efcc4ceaef4e86644665fff03e1b66d8d/rpds_py-0.30.0-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:61046904275472a76c8c90c9ccee9013d70a6d0f73eecefd38c1ae7c39045a08", size = 590217, upload-time = "2025-11-30T20:23:20.885Z" }, + { url = "https://files.pythonhosted.org/packages/6d/61/21b8c41f68e60c8cc3b2e25644f0e3681926020f11d06ab0b78e3c6bbff1/rpds_py-0.30.0-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:4c5f36a861bc4b7da6516dbdf302c55313afa09b81931e8280361a4f6c9a2d27", size = 555806, upload-time = "2025-11-30T20:23:22.488Z" }, + { url = "https://files.pythonhosted.org/packages/f9/39/7e067bb06c31de48de3eb200f9fc7c58982a4d3db44b07e73963e10d3be9/rpds_py-0.30.0-cp313-cp313t-win32.whl", hash = "sha256:3d4a69de7a3e50ffc214ae16d79d8fbb0922972da0356dcf4d0fdca2878559c6", size = 211341, upload-time = "2025-11-30T20:23:24.449Z" }, + { url = "https://files.pythonhosted.org/packages/0a/4d/222ef0b46443cf4cf46764d9c630f3fe4abaa7245be9417e56e9f52b8f65/rpds_py-0.30.0-cp313-cp313t-win_amd64.whl", hash = "sha256:f14fc5df50a716f7ece6a80b6c78bb35ea2ca47c499e422aa4463455dd96d56d", size = 225768, upload-time = "2025-11-30T20:23:25.908Z" }, + { url = "https://files.pythonhosted.org/packages/86/81/dad16382ebbd3d0e0328776d8fd7ca94220e4fa0798d1dc5e7da48cb3201/rpds_py-0.30.0-cp314-cp314-macosx_10_12_x86_64.whl", hash = "sha256:68f19c879420aa08f61203801423f6cd5ac5f0ac4ac82a2368a9fcd6a9a075e0", size = 362099, upload-time = "2025-11-30T20:23:27.316Z" }, + { url = "https://files.pythonhosted.org/packages/2b/60/19f7884db5d5603edf3c6bce35408f45ad3e97e10007df0e17dd57af18f8/rpds_py-0.30.0-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:ec7c4490c672c1a0389d319b3a9cfcd098dcdc4783991553c332a15acf7249be", size = 353192, upload-time = "2025-11-30T20:23:29.151Z" }, + { url = "https://files.pythonhosted.org/packages/bf/c4/76eb0e1e72d1a9c4703c69607cec123c29028bff28ce41588792417098ac/rpds_py-0.30.0-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f251c812357a3fed308d684a5079ddfb9d933860fc6de89f2b7ab00da481e65f", size = 384080, upload-time = "2025-11-30T20:23:30.785Z" }, + { url = "https://files.pythonhosted.org/packages/72/87/87ea665e92f3298d1b26d78814721dc39ed8d2c74b86e83348d6b48a6f31/rpds_py-0.30.0-cp314-cp314-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:ac98b175585ecf4c0348fd7b29c3864bda53b805c773cbf7bfdaffc8070c976f", size = 394841, upload-time = "2025-11-30T20:23:32.209Z" }, + { url = "https://files.pythonhosted.org/packages/77/ad/7783a89ca0587c15dcbf139b4a8364a872a25f861bdb88ed99f9b0dec985/rpds_py-0.30.0-cp314-cp314-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3e62880792319dbeb7eb866547f2e35973289e7d5696c6e295476448f5b63c87", size = 516670, upload-time = "2025-11-30T20:23:33.742Z" }, + { url = "https://files.pythonhosted.org/packages/5b/3c/2882bdac942bd2172f3da574eab16f309ae10a3925644e969536553cb4ee/rpds_py-0.30.0-cp314-cp314-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:4e7fc54e0900ab35d041b0601431b0a0eb495f0851a0639b6ef90f7741b39a18", size = 408005, upload-time = "2025-11-30T20:23:35.253Z" }, + { url = "https://files.pythonhosted.org/packages/ce/81/9a91c0111ce1758c92516a3e44776920b579d9a7c09b2b06b642d4de3f0f/rpds_py-0.30.0-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:47e77dc9822d3ad616c3d5759ea5631a75e5809d5a28707744ef79d7a1bcfcad", size = 382112, upload-time = "2025-11-30T20:23:36.842Z" }, + { url = "https://files.pythonhosted.org/packages/cf/8e/1da49d4a107027e5fbc64daeab96a0706361a2918da10cb41769244b805d/rpds_py-0.30.0-cp314-cp314-manylinux_2_31_riscv64.whl", hash = "sha256:b4dc1a6ff022ff85ecafef7979a2c6eb423430e05f1165d6688234e62ba99a07", size = 399049, upload-time = "2025-11-30T20:23:38.343Z" }, + { url = "https://files.pythonhosted.org/packages/df/5a/7ee239b1aa48a127570ec03becbb29c9d5a9eb092febbd1699d567cae859/rpds_py-0.30.0-cp314-cp314-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:4559c972db3a360808309e06a74628b95eaccbf961c335c8fe0d590cf587456f", size = 415661, upload-time = "2025-11-30T20:23:40.263Z" }, + { url = "https://files.pythonhosted.org/packages/70/ea/caa143cf6b772f823bc7929a45da1fa83569ee49b11d18d0ada7f5ee6fd6/rpds_py-0.30.0-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:0ed177ed9bded28f8deb6ab40c183cd1192aa0de40c12f38be4d59cd33cb5c65", size = 565606, upload-time = "2025-11-30T20:23:42.186Z" }, + { url = "https://files.pythonhosted.org/packages/64/91/ac20ba2d69303f961ad8cf55bf7dbdb4763f627291ba3d0d7d67333cced9/rpds_py-0.30.0-cp314-cp314-musllinux_1_2_i686.whl", hash = "sha256:ad1fa8db769b76ea911cb4e10f049d80bf518c104f15b3edb2371cc65375c46f", size = 591126, upload-time = "2025-11-30T20:23:44.086Z" }, + { url = "https://files.pythonhosted.org/packages/21/20/7ff5f3c8b00c8a95f75985128c26ba44503fb35b8e0259d812766ea966c7/rpds_py-0.30.0-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:46e83c697b1f1c72b50e5ee5adb4353eef7406fb3f2043d64c33f20ad1c2fc53", size = 553371, upload-time = "2025-11-30T20:23:46.004Z" }, + { url = "https://files.pythonhosted.org/packages/72/c7/81dadd7b27c8ee391c132a6b192111ca58d866577ce2d9b0ca157552cce0/rpds_py-0.30.0-cp314-cp314-win32.whl", hash = "sha256:ee454b2a007d57363c2dfd5b6ca4a5d7e2c518938f8ed3b706e37e5d470801ed", size = 215298, upload-time = "2025-11-30T20:23:47.696Z" }, + { url = "https://files.pythonhosted.org/packages/3e/d2/1aaac33287e8cfb07aab2e6b8ac1deca62f6f65411344f1433c55e6f3eb8/rpds_py-0.30.0-cp314-cp314-win_amd64.whl", hash = "sha256:95f0802447ac2d10bcc69f6dc28fe95fdf17940367b21d34e34c737870758950", size = 228604, upload-time = "2025-11-30T20:23:49.501Z" }, + { url = "https://files.pythonhosted.org/packages/e8/95/ab005315818cc519ad074cb7784dae60d939163108bd2b394e60dc7b5461/rpds_py-0.30.0-cp314-cp314-win_arm64.whl", hash = "sha256:613aa4771c99f03346e54c3f038e4cc574ac09a3ddfb0e8878487335e96dead6", size = 222391, upload-time = "2025-11-30T20:23:50.96Z" }, + { url = "https://files.pythonhosted.org/packages/9e/68/154fe0194d83b973cdedcdcc88947a2752411165930182ae41d983dcefa6/rpds_py-0.30.0-cp314-cp314t-macosx_10_12_x86_64.whl", hash = "sha256:7e6ecfcb62edfd632e56983964e6884851786443739dbfe3582947e87274f7cb", size = 364868, upload-time = "2025-11-30T20:23:52.494Z" }, + { url = "https://files.pythonhosted.org/packages/83/69/8bbc8b07ec854d92a8b75668c24d2abcb1719ebf890f5604c61c9369a16f/rpds_py-0.30.0-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:a1d0bc22a7cdc173fedebb73ef81e07faef93692b8c1ad3733b67e31e1b6e1b8", size = 353747, upload-time = "2025-11-30T20:23:54.036Z" }, + { url = "https://files.pythonhosted.org/packages/ab/00/ba2e50183dbd9abcce9497fa5149c62b4ff3e22d338a30d690f9af970561/rpds_py-0.30.0-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0d08f00679177226c4cb8c5265012eea897c8ca3b93f429e546600c971bcbae7", size = 383795, upload-time = "2025-11-30T20:23:55.556Z" }, + { url = "https://files.pythonhosted.org/packages/05/6f/86f0272b84926bcb0e4c972262f54223e8ecc556b3224d281e6598fc9268/rpds_py-0.30.0-cp314-cp314t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:5965af57d5848192c13534f90f9dd16464f3c37aaf166cc1da1cae1fd5a34898", size = 393330, upload-time = "2025-11-30T20:23:57.033Z" }, + { url = "https://files.pythonhosted.org/packages/cb/e9/0e02bb2e6dc63d212641da45df2b0bf29699d01715913e0d0f017ee29438/rpds_py-0.30.0-cp314-cp314t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:9a4e86e34e9ab6b667c27f3211ca48f73dba7cd3d90f8d5b11be56e5dbc3fb4e", size = 518194, upload-time = "2025-11-30T20:23:58.637Z" }, + { url = "https://files.pythonhosted.org/packages/ee/ca/be7bca14cf21513bdf9c0606aba17d1f389ea2b6987035eb4f62bd923f25/rpds_py-0.30.0-cp314-cp314t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:e5d3e6b26f2c785d65cc25ef1e5267ccbe1b069c5c21b8cc724efee290554419", size = 408340, upload-time = "2025-11-30T20:24:00.2Z" }, + { url = "https://files.pythonhosted.org/packages/c2/c7/736e00ebf39ed81d75544c0da6ef7b0998f8201b369acf842f9a90dc8fce/rpds_py-0.30.0-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:626a7433c34566535b6e56a1b39a7b17ba961e97ce3b80ec62e6f1312c025551", size = 383765, upload-time = "2025-11-30T20:24:01.759Z" }, + { url = "https://files.pythonhosted.org/packages/4a/3f/da50dfde9956aaf365c4adc9533b100008ed31aea635f2b8d7b627e25b49/rpds_py-0.30.0-cp314-cp314t-manylinux_2_31_riscv64.whl", hash = "sha256:acd7eb3f4471577b9b5a41baf02a978e8bdeb08b4b355273994f8b87032000a8", size = 396834, upload-time = "2025-11-30T20:24:03.687Z" }, + { url = "https://files.pythonhosted.org/packages/4e/00/34bcc2565b6020eab2623349efbdec810676ad571995911f1abdae62a3a0/rpds_py-0.30.0-cp314-cp314t-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:fe5fa731a1fa8a0a56b0977413f8cacac1768dad38d16b3a296712709476fbd5", size = 415470, upload-time = "2025-11-30T20:24:05.232Z" }, + { url = "https://files.pythonhosted.org/packages/8c/28/882e72b5b3e6f718d5453bd4d0d9cf8df36fddeb4ddbbab17869d5868616/rpds_py-0.30.0-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:74a3243a411126362712ee1524dfc90c650a503502f135d54d1b352bd01f2404", size = 565630, upload-time = "2025-11-30T20:24:06.878Z" }, + { url = "https://files.pythonhosted.org/packages/3b/97/04a65539c17692de5b85c6e293520fd01317fd878ea1995f0367d4532fb1/rpds_py-0.30.0-cp314-cp314t-musllinux_1_2_i686.whl", hash = "sha256:3e8eeb0544f2eb0d2581774be4c3410356eba189529a6b3e36bbbf9696175856", size = 591148, upload-time = "2025-11-30T20:24:08.445Z" }, + { url = "https://files.pythonhosted.org/packages/85/70/92482ccffb96f5441aab93e26c4d66489eb599efdcf96fad90c14bbfb976/rpds_py-0.30.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:dbd936cde57abfee19ab3213cf9c26be06d60750e60a8e4dd85d1ab12c8b1f40", size = 556030, upload-time = "2025-11-30T20:24:10.956Z" }, + { url = "https://files.pythonhosted.org/packages/20/53/7c7e784abfa500a2b6b583b147ee4bb5a2b3747a9166bab52fec4b5b5e7d/rpds_py-0.30.0-cp314-cp314t-win32.whl", hash = "sha256:dc824125c72246d924f7f796b4f63c1e9dc810c7d9e2355864b3c3a73d59ade0", size = 211570, upload-time = "2025-11-30T20:24:12.735Z" }, + { url = "https://files.pythonhosted.org/packages/d0/02/fa464cdfbe6b26e0600b62c528b72d8608f5cc49f96b8d6e38c95d60c676/rpds_py-0.30.0-cp314-cp314t-win_amd64.whl", hash = "sha256:27f4b0e92de5bfbc6f86e43959e6edd1425c33b5e69aab0984a72047f2bcf1e3", size = 226532, upload-time = "2025-11-30T20:24:14.634Z" }, + { url = "https://files.pythonhosted.org/packages/69/71/3f34339ee70521864411f8b6992e7ab13ac30d8e4e3309e07c7361767d91/rpds_py-0.30.0-pp311-pypy311_pp73-macosx_10_12_x86_64.whl", hash = "sha256:c2262bdba0ad4fc6fb5545660673925c2d2a5d9e2e0fb603aad545427be0fc58", size = 372292, upload-time = "2025-11-30T20:24:16.537Z" }, + { url = "https://files.pythonhosted.org/packages/57/09/f183df9b8f2d66720d2ef71075c59f7e1b336bec7ee4c48f0a2b06857653/rpds_py-0.30.0-pp311-pypy311_pp73-macosx_11_0_arm64.whl", hash = "sha256:ee6af14263f25eedc3bb918a3c04245106a42dfd4f5c2285ea6f997b1fc3f89a", size = 362128, upload-time = "2025-11-30T20:24:18.086Z" }, + { url = "https://files.pythonhosted.org/packages/7a/68/5c2594e937253457342e078f0cc1ded3dd7b2ad59afdbf2d354869110a02/rpds_py-0.30.0-pp311-pypy311_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3adbb8179ce342d235c31ab8ec511e66c73faa27a47e076ccc92421add53e2bb", size = 391542, upload-time = "2025-11-30T20:24:20.092Z" }, + { url = "https://files.pythonhosted.org/packages/49/5c/31ef1afd70b4b4fbdb2800249f34c57c64beb687495b10aec0365f53dfc4/rpds_py-0.30.0-pp311-pypy311_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:250fa00e9543ac9b97ac258bd37367ff5256666122c2d0f2bc97577c60a1818c", size = 404004, upload-time = "2025-11-30T20:24:22.231Z" }, + { url = "https://files.pythonhosted.org/packages/e3/63/0cfbea38d05756f3440ce6534d51a491d26176ac045e2707adc99bb6e60a/rpds_py-0.30.0-pp311-pypy311_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:9854cf4f488b3d57b9aaeb105f06d78e5529d3145b1e4a41750167e8c213c6d3", size = 527063, upload-time = "2025-11-30T20:24:24.302Z" }, + { url = "https://files.pythonhosted.org/packages/42/e6/01e1f72a2456678b0f618fc9a1a13f882061690893c192fcad9f2926553a/rpds_py-0.30.0-pp311-pypy311_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:993914b8e560023bc0a8bf742c5f303551992dcb85e247b1e5c7f4a7d145bda5", size = 413099, upload-time = "2025-11-30T20:24:25.916Z" }, + { url = "https://files.pythonhosted.org/packages/b8/25/8df56677f209003dcbb180765520c544525e3ef21ea72279c98b9aa7c7fb/rpds_py-0.30.0-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:58edca431fb9b29950807e301826586e5bbf24163677732429770a697ffe6738", size = 392177, upload-time = "2025-11-30T20:24:27.834Z" }, + { url = "https://files.pythonhosted.org/packages/4a/b4/0a771378c5f16f8115f796d1f437950158679bcd2a7c68cf251cfb00ed5b/rpds_py-0.30.0-pp311-pypy311_pp73-manylinux_2_31_riscv64.whl", hash = "sha256:dea5b552272a944763b34394d04577cf0f9bd013207bc32323b5a89a53cf9c2f", size = 406015, upload-time = "2025-11-30T20:24:29.457Z" }, + { url = "https://files.pythonhosted.org/packages/36/d8/456dbba0af75049dc6f63ff295a2f92766b9d521fa00de67a2bd6427d57a/rpds_py-0.30.0-pp311-pypy311_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:ba3af48635eb83d03f6c9735dfb21785303e73d22ad03d489e88adae6eab8877", size = 423736, upload-time = "2025-11-30T20:24:31.22Z" }, + { url = "https://files.pythonhosted.org/packages/13/64/b4d76f227d5c45a7e0b796c674fd81b0a6c4fbd48dc29271857d8219571c/rpds_py-0.30.0-pp311-pypy311_pp73-musllinux_1_2_aarch64.whl", hash = "sha256:dff13836529b921e22f15cb099751209a60009731a68519630a24d61f0b1b30a", size = 573981, upload-time = "2025-11-30T20:24:32.934Z" }, + { url = "https://files.pythonhosted.org/packages/20/91/092bacadeda3edf92bf743cc96a7be133e13a39cdbfd7b5082e7ab638406/rpds_py-0.30.0-pp311-pypy311_pp73-musllinux_1_2_i686.whl", hash = "sha256:1b151685b23929ab7beec71080a8889d4d6d9fa9a983d213f07121205d48e2c4", size = 599782, upload-time = "2025-11-30T20:24:35.169Z" }, + { url = "https://files.pythonhosted.org/packages/d1/b7/b95708304cd49b7b6f82fdd039f1748b66ec2b21d6a45180910802f1abf1/rpds_py-0.30.0-pp311-pypy311_pp73-musllinux_1_2_x86_64.whl", hash = "sha256:ac37f9f516c51e5753f27dfdef11a88330f04de2d564be3991384b2f3535d02e", size = 562191, upload-time = "2025-11-30T20:24:36.853Z" }, +] + +[[package]] +name = "ruamel-yaml" +version = "0.19.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/c7/3b/ebda527b56beb90cb7652cb1c7e4f91f48649fbcd8d2eb2fb6e77cd3329b/ruamel_yaml-0.19.1.tar.gz", hash = "sha256:53eb66cd27849eff968ebf8f0bf61f46cdac2da1d1f3576dd4ccee9b25c31993", size = 142709, upload-time = "2026-01-02T16:50:31.84Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/b8/0c/51f6841f1d84f404f92463fc2b1ba0da357ca1e3db6b7fbda26956c3b82a/ruamel_yaml-0.19.1-py3-none-any.whl", hash = "sha256:27592957fedf6e0b62f281e96effd28043345e0e66001f97683aa9a40c667c93", size = 118102, upload-time = "2026-01-02T16:50:29.201Z" }, +] + +[[package]] +name = "ruff" +version = "0.14.13" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/50/0a/1914efb7903174b381ee2ffeebb4253e729de57f114e63595114c8ca451f/ruff-0.14.13.tar.gz", hash = "sha256:83cd6c0763190784b99650a20fec7633c59f6ebe41c5cc9d45ee42749563ad47", size = 6059504, upload-time = "2026-01-15T20:15:16.918Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/c3/ae/0deefbc65ca74b0ab1fd3917f94dc3b398233346a74b8bbb0a916a1a6bf6/ruff-0.14.13-py3-none-linux_armv6l.whl", hash = "sha256:76f62c62cd37c276cb03a275b198c7c15bd1d60c989f944db08a8c1c2dbec18b", size = 13062418, upload-time = "2026-01-15T20:14:50.779Z" }, + { url = "https://files.pythonhosted.org/packages/47/df/5916604faa530a97a3c154c62a81cb6b735c0cb05d1e26d5ad0f0c8ac48a/ruff-0.14.13-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:914a8023ece0528d5cc33f5a684f5f38199bbb566a04815c2c211d8f40b5d0ed", size = 13442344, upload-time = "2026-01-15T20:15:07.94Z" }, + { url = "https://files.pythonhosted.org/packages/4c/f3/e0e694dd69163c3a1671e102aa574a50357536f18a33375050334d5cd517/ruff-0.14.13-py3-none-macosx_11_0_arm64.whl", hash = "sha256:d24899478c35ebfa730597a4a775d430ad0d5631b8647a3ab368c29b7e7bd063", size = 12354720, upload-time = "2026-01-15T20:15:09.854Z" }, + { url = "https://files.pythonhosted.org/packages/c3/e8/67f5fcbbaee25e8fc3b56cc33e9892eca7ffe09f773c8e5907757a7e3bdb/ruff-0.14.13-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9aaf3870f14d925bbaf18b8a2347ee0ae7d95a2e490e4d4aea6813ed15ebc80e", size = 12774493, upload-time = "2026-01-15T20:15:20.908Z" }, + { url = "https://files.pythonhosted.org/packages/6b/ce/d2e9cb510870b52a9565d885c0d7668cc050e30fa2c8ac3fb1fda15c083d/ruff-0.14.13-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:ac5b7f63dd3b27cc811850f5ffd8fff845b00ad70e60b043aabf8d6ecc304e09", size = 12815174, upload-time = "2026-01-15T20:15:05.74Z" }, + { url = "https://files.pythonhosted.org/packages/88/00/c38e5da58beebcf4fa32d0ddd993b63dfacefd02ab7922614231330845bf/ruff-0.14.13-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:78d2b1097750d90ba82ce4ba676e85230a0ed694178ca5e61aa9b459970b3eb9", size = 13680909, upload-time = "2026-01-15T20:15:14.537Z" }, + { url = "https://files.pythonhosted.org/packages/61/61/cd37c9dd5bd0a3099ba79b2a5899ad417d8f3b04038810b0501a80814fd7/ruff-0.14.13-py3-none-manylinux_2_17_ppc64.manylinux2014_ppc64.whl", hash = "sha256:7d0bf87705acbbcb8d4c24b2d77fbb73d40210a95c3903b443cd9e30824a5032", size = 15144215, upload-time = "2026-01-15T20:15:22.886Z" }, + { url = "https://files.pythonhosted.org/packages/56/8a/85502d7edbf98c2df7b8876f316c0157359165e16cdf98507c65c8d07d3d/ruff-0.14.13-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a3eb5da8e2c9e9f13431032fdcbe7681de9ceda5835efee3269417c13f1fed5c", size = 14706067, upload-time = "2026-01-15T20:14:48.271Z" }, + { url = "https://files.pythonhosted.org/packages/7e/2f/de0df127feb2ee8c1e54354dc1179b4a23798f0866019528c938ba439aca/ruff-0.14.13-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:642442b42957093811cd8d2140dfadd19c7417030a7a68cf8d51fcdd5f217427", size = 14133916, upload-time = "2026-01-15T20:14:57.357Z" }, + { url = "https://files.pythonhosted.org/packages/0d/77/9b99686bb9fe07a757c82f6f95e555c7a47801a9305576a9c67e0a31d280/ruff-0.14.13-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4acdf009f32b46f6e8864af19cbf6841eaaed8638e65c8dac845aea0d703c841", size = 13859207, upload-time = "2026-01-15T20:14:55.111Z" }, + { url = "https://files.pythonhosted.org/packages/7d/46/2bdcb34a87a179a4d23022d818c1c236cb40e477faf0d7c9afb6813e5876/ruff-0.14.13-py3-none-manylinux_2_31_riscv64.whl", hash = "sha256:591a7f68860ea4e003917d19b5c4f5ac39ff558f162dc753a2c5de897fd5502c", size = 14043686, upload-time = "2026-01-15T20:14:52.841Z" }, + { url = "https://files.pythonhosted.org/packages/1a/a9/5c6a4f56a0512c691cf143371bcf60505ed0f0860f24a85da8bd123b2bf1/ruff-0.14.13-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:774c77e841cc6e046fc3e91623ce0903d1cd07e3a36b1a9fe79b81dab3de506b", size = 12663837, upload-time = "2026-01-15T20:15:18.921Z" }, + { url = "https://files.pythonhosted.org/packages/fe/bb/b920016ece7651fa7fcd335d9d199306665486694d4361547ccb19394c44/ruff-0.14.13-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:61f4e40077a1248436772bb6512db5fc4457fe4c49e7a94ea7c5088655dd21ae", size = 12805867, upload-time = "2026-01-15T20:14:59.272Z" }, + { url = "https://files.pythonhosted.org/packages/7d/b3/0bd909851e5696cd21e32a8fc25727e5f58f1934b3596975503e6e85415c/ruff-0.14.13-py3-none-musllinux_1_2_i686.whl", hash = "sha256:6d02f1428357fae9e98ac7aa94b7e966fd24151088510d32cf6f902d6c09235e", size = 13208528, upload-time = "2026-01-15T20:15:03.732Z" }, + { url = "https://files.pythonhosted.org/packages/3b/3b/e2d94cb613f6bbd5155a75cbe072813756363eba46a3f2177a1fcd0cd670/ruff-0.14.13-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:e399341472ce15237be0c0ae5fbceca4b04cd9bebab1a2b2c979e015455d8f0c", size = 13929242, upload-time = "2026-01-15T20:15:11.918Z" }, + { url = "https://files.pythonhosted.org/packages/6a/c5/abd840d4132fd51a12f594934af5eba1d5d27298a6f5b5d6c3be45301caf/ruff-0.14.13-py3-none-win32.whl", hash = "sha256:ef720f529aec113968b45dfdb838ac8934e519711da53a0456038a0efecbd680", size = 12919024, upload-time = "2026-01-15T20:14:43.647Z" }, + { url = "https://files.pythonhosted.org/packages/c2/55/6384b0b8ce731b6e2ade2b5449bf07c0e4c31e8a2e68ea65b3bafadcecc5/ruff-0.14.13-py3-none-win_amd64.whl", hash = "sha256:6070bd026e409734b9257e03e3ef18c6e1a216f0435c6751d7a8ec69cb59abef", size = 14097887, upload-time = "2026-01-15T20:15:01.48Z" }, + { url = "https://files.pythonhosted.org/packages/4d/e1/7348090988095e4e39560cfc2f7555b1b2a7357deba19167b600fdf5215d/ruff-0.14.13-py3-none-win_arm64.whl", hash = "sha256:7ab819e14f1ad9fe39f246cfcc435880ef7a9390d81a2b6ac7e01039083dd247", size = 13080224, upload-time = "2026-01-15T20:14:45.853Z" }, +] + +[[package]] +name = "shellingham" +version = "1.5.4" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/58/15/8b3609fd3830ef7b27b655beb4b4e9c62313a4e8da8c676e142cc210d58e/shellingham-1.5.4.tar.gz", hash = "sha256:8dbca0739d487e5bd35ab3ca4b36e11c4078f3a234bfce294b0a0291363404de", size = 10310, upload-time = "2023-10-24T04:13:40.426Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/e0/f9/0595336914c5619e5f28a1fb793285925a8cd4b432c9da0a987836c7f822/shellingham-1.5.4-py2.py3-none-any.whl", hash = "sha256:7ecfff8f2fd72616f7481040475a65b2bf8af90a56c89140852d1120324e8686", size = 9755, upload-time = "2023-10-24T04:13:38.866Z" }, +] + +[[package]] +name = "simpleeval" +version = "1.0.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/ff/6f/15be211749430f52f2c8f0c69158a6fc961c03aac93fa28d44d1a6f5ebc7/simpleeval-1.0.3.tar.gz", hash = "sha256:67bbf246040ac3b57c29cf048657b9cf31d4e7b9d6659684daa08ca8f1e45829", size = 24358, upload-time = "2024-11-02T10:29:46.912Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/a0/e9/e58082fbb8cecbb6fb4133033c40cc50c248b1a331582be3a0f39138d65b/simpleeval-1.0.3-py3-none-any.whl", hash = "sha256:e3bdbb8c82c26297c9a153902d0fd1858a6c3774bf53ff4f134788c3f2035c38", size = 15762, upload-time = "2024-11-02T10:29:45.706Z" }, +] + +[[package]] +name = "six" +version = "1.17.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/94/e7/b2c673351809dca68a0e064b6af791aa332cf192da575fd474ed7d6f16a2/six-1.17.0.tar.gz", hash = "sha256:ff70335d468e7eb6ec65b95b99d3a2836546063f63acc5171de367e834932a81", size = 34031, upload-time = "2024-12-04T17:35:28.174Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/b7/ce/149a00dd41f10bc29e5921b496af8b574d8413afcd5e30dfa0ed46c2cc5e/six-1.17.0-py2.py3-none-any.whl", hash = "sha256:4721f391ed90541fddacab5acf947aa0d3dc7d27b2e1e8eda2be8970586c3274", size = 11050, upload-time = "2024-12-04T17:35:26.475Z" }, +] + +[[package]] +name = "tableschema-to-template" +version = "0.0.13" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "jsonschema" }, + { name = "pyyaml" }, + { name = "xlsxwriter" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/23/2d/5b5c0127e959a715c5365b3b491846fba5bc1fb7f94370cc3a4fb3f51f68/tableschema-to-template-0.0.13.tar.gz", hash = "sha256:2d8d2250efb840e0ecb9012c5e879a82ef68f65dd86bdff574200fdfc978ff1c", size = 13564, upload-time = "2023-02-01T21:53:17.238Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/9f/7f/3c129377d9b815c0bb92b8c24bbecabe5e6b13b831f38924f80d2e5b40b2/tableschema_to_template-0.0.13-py3-none-any.whl", hash = "sha256:4905500a4235740654230c3223629d26fdccb7a0457ec1d0110ea102c4f1146c", size = 14860, upload-time = "2023-02-01T21:53:16.02Z" }, +] + +[[package]] +name = "tabulate" +version = "0.9.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/ec/fe/802052aecb21e3797b8f7902564ab6ea0d60ff8ca23952079064155d1ae1/tabulate-0.9.0.tar.gz", hash = "sha256:0095b12bf5966de529c0feb1fa08671671b3368eec77d7ef7ab114be2c068b3c", size = 81090, upload-time = "2022-10-06T17:21:48.54Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/40/44/4a5f08c96eb108af5cb50b41f76142f0afa346dfa99d5296fe7202a11854/tabulate-0.9.0-py3-none-any.whl", hash = "sha256:024ca478df22e9340661486f85298cff5f6dcdba14f3813e8830015b9ed1948f", size = 35252, upload-time = "2022-10-06T17:21:44.262Z" }, +] + +[[package]] +name = "tenacity" +version = "9.1.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/0a/d4/2b0cd0fe285e14b36db076e78c93766ff1d529d70408bd1d2a5a84f1d929/tenacity-9.1.2.tar.gz", hash = "sha256:1169d376c297e7de388d18b4481760d478b0e99a777cad3a9c86e556f4b697cb", size = 48036, upload-time = "2025-04-02T08:25:09.966Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/e5/30/643397144bfbfec6f6ef821f36f33e57d35946c44a2352d3c9f0ae847619/tenacity-9.1.2-py3-none-any.whl", hash = "sha256:f77bf36710d8b73a50b2dd155c97b870017ad21afe6ab300326b0371b3b05138", size = 28248, upload-time = "2025-04-02T08:25:07.678Z" }, +] + +[[package]] +name = "text-unidecode" +version = "1.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/ab/e2/e9a00f0ccb71718418230718b3d900e71a5d16e701a3dae079a21e9cd8f8/text-unidecode-1.3.tar.gz", hash = "sha256:bad6603bb14d279193107714b288be206cac565dfa49aa5b105294dd5c4aab93", size = 76885, upload-time = "2019-08-30T21:36:45.405Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/a6/a5/c0b6468d3824fe3fde30dbb5e1f687b291608f9473681bbf7dabbf5a87d7/text_unidecode-1.3-py2.py3-none-any.whl", hash = "sha256:1311f10e8b895935241623731c2ba64f4c455287888b18189350b67134a822e8", size = 78154, upload-time = "2019-08-30T21:37:03.543Z" }, +] + +[[package]] +name = "tomli" +version = "2.4.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/82/30/31573e9457673ab10aa432461bee537ce6cef177667deca369efb79df071/tomli-2.4.0.tar.gz", hash = "sha256:aa89c3f6c277dd275d8e243ad24f3b5e701491a860d5121f2cdd399fbb31fc9c", size = 17477, upload-time = "2026-01-11T11:22:38.165Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/3c/d9/3dc2289e1f3b32eb19b9785b6a006b28ee99acb37d1d47f78d4c10e28bf8/tomli-2.4.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:b5ef256a3fd497d4973c11bf142e9ed78b150d36f5773f1ca6088c230ffc5867", size = 153663, upload-time = "2026-01-11T11:21:45.27Z" }, + { url = "https://files.pythonhosted.org/packages/51/32/ef9f6845e6b9ca392cd3f64f9ec185cc6f09f0a2df3db08cbe8809d1d435/tomli-2.4.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:5572e41282d5268eb09a697c89a7bee84fae66511f87533a6f88bd2f7b652da9", size = 148469, upload-time = "2026-01-11T11:21:46.873Z" }, + { url = "https://files.pythonhosted.org/packages/d6/c2/506e44cce89a8b1b1e047d64bd495c22c9f71f21e05f380f1a950dd9c217/tomli-2.4.0-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:551e321c6ba03b55676970b47cb1b73f14a0a4dce6a3e1a9458fd6d921d72e95", size = 236039, upload-time = "2026-01-11T11:21:48.503Z" }, + { url = "https://files.pythonhosted.org/packages/b3/40/e1b65986dbc861b7e986e8ec394598187fa8aee85b1650b01dd925ca0be8/tomli-2.4.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:5e3f639a7a8f10069d0e15408c0b96a2a828cfdec6fca05296ebcdcc28ca7c76", size = 243007, upload-time = "2026-01-11T11:21:49.456Z" }, + { url = "https://files.pythonhosted.org/packages/9c/6f/6e39ce66b58a5b7ae572a0f4352ff40c71e8573633deda43f6a379d56b3e/tomli-2.4.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:1b168f2731796b045128c45982d3a4874057626da0e2ef1fdd722848b741361d", size = 240875, upload-time = "2026-01-11T11:21:50.755Z" }, + { url = "https://files.pythonhosted.org/packages/aa/ad/cb089cb190487caa80204d503c7fd0f4d443f90b95cf4ef5cf5aa0f439b0/tomli-2.4.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:133e93646ec4300d651839d382d63edff11d8978be23da4cc106f5a18b7d0576", size = 246271, upload-time = "2026-01-11T11:21:51.81Z" }, + { url = "https://files.pythonhosted.org/packages/0b/63/69125220e47fd7a3a27fd0de0c6398c89432fec41bc739823bcc66506af6/tomli-2.4.0-cp311-cp311-win32.whl", hash = "sha256:b6c78bdf37764092d369722d9946cb65b8767bfa4110f902a1b2542d8d173c8a", size = 96770, upload-time = "2026-01-11T11:21:52.647Z" }, + { url = "https://files.pythonhosted.org/packages/1e/0d/a22bb6c83f83386b0008425a6cd1fa1c14b5f3dd4bad05e98cf3dbbf4a64/tomli-2.4.0-cp311-cp311-win_amd64.whl", hash = "sha256:d3d1654e11d724760cdb37a3d7691f0be9db5fbdaef59c9f532aabf87006dbaa", size = 107626, upload-time = "2026-01-11T11:21:53.459Z" }, + { url = "https://files.pythonhosted.org/packages/2f/6d/77be674a3485e75cacbf2ddba2b146911477bd887dda9d8c9dfb2f15e871/tomli-2.4.0-cp311-cp311-win_arm64.whl", hash = "sha256:cae9c19ed12d4e8f3ebf46d1a75090e4c0dc16271c5bce1c833ac168f08fb614", size = 94842, upload-time = "2026-01-11T11:21:54.831Z" }, + { url = "https://files.pythonhosted.org/packages/3c/43/7389a1869f2f26dba52404e1ef13b4784b6b37dac93bac53457e3ff24ca3/tomli-2.4.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:920b1de295e72887bafa3ad9f7a792f811847d57ea6b1215154030cf131f16b1", size = 154894, upload-time = "2026-01-11T11:21:56.07Z" }, + { url = "https://files.pythonhosted.org/packages/e9/05/2f9bf110b5294132b2edf13fe6ca6ae456204f3d749f623307cbb7a946f2/tomli-2.4.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:7d6d9a4aee98fac3eab4952ad1d73aee87359452d1c086b5ceb43ed02ddb16b8", size = 149053, upload-time = "2026-01-11T11:21:57.467Z" }, + { url = "https://files.pythonhosted.org/packages/e8/41/1eda3ca1abc6f6154a8db4d714a4d35c4ad90adc0bcf700657291593fbf3/tomli-2.4.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:36b9d05b51e65b254ea6c2585b59d2c4cb91c8a3d91d0ed0f17591a29aaea54a", size = 243481, upload-time = "2026-01-11T11:21:58.661Z" }, + { url = "https://files.pythonhosted.org/packages/d2/6d/02ff5ab6c8868b41e7d4b987ce2b5f6a51d3335a70aa144edd999e055a01/tomli-2.4.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:1c8a885b370751837c029ef9bc014f27d80840e48bac415f3412e6593bbc18c1", size = 251720, upload-time = "2026-01-11T11:22:00.178Z" }, + { url = "https://files.pythonhosted.org/packages/7b/57/0405c59a909c45d5b6f146107c6d997825aa87568b042042f7a9c0afed34/tomli-2.4.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:8768715ffc41f0008abe25d808c20c3d990f42b6e2e58305d5da280ae7d1fa3b", size = 247014, upload-time = "2026-01-11T11:22:01.238Z" }, + { url = "https://files.pythonhosted.org/packages/2c/0e/2e37568edd944b4165735687cbaf2fe3648129e440c26d02223672ee0630/tomli-2.4.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:7b438885858efd5be02a9a133caf5812b8776ee0c969fea02c45e8e3f296ba51", size = 251820, upload-time = "2026-01-11T11:22:02.727Z" }, + { url = "https://files.pythonhosted.org/packages/5a/1c/ee3b707fdac82aeeb92d1a113f803cf6d0f37bdca0849cb489553e1f417a/tomli-2.4.0-cp312-cp312-win32.whl", hash = "sha256:0408e3de5ec77cc7f81960c362543cbbd91ef883e3138e81b729fc3eea5b9729", size = 97712, upload-time = "2026-01-11T11:22:03.777Z" }, + { url = "https://files.pythonhosted.org/packages/69/13/c07a9177d0b3bab7913299b9278845fc6eaaca14a02667c6be0b0a2270c8/tomli-2.4.0-cp312-cp312-win_amd64.whl", hash = "sha256:685306e2cc7da35be4ee914fd34ab801a6acacb061b6a7abca922aaf9ad368da", size = 108296, upload-time = "2026-01-11T11:22:04.86Z" }, + { url = "https://files.pythonhosted.org/packages/18/27/e267a60bbeeee343bcc279bb9e8fbed0cbe224bc7b2a3dc2975f22809a09/tomli-2.4.0-cp312-cp312-win_arm64.whl", hash = "sha256:5aa48d7c2356055feef06a43611fc401a07337d5b006be13a30f6c58f869e3c3", size = 94553, upload-time = "2026-01-11T11:22:05.854Z" }, + { url = "https://files.pythonhosted.org/packages/34/91/7f65f9809f2936e1f4ce6268ae1903074563603b2a2bd969ebbda802744f/tomli-2.4.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:84d081fbc252d1b6a982e1870660e7330fb8f90f676f6e78b052ad4e64714bf0", size = 154915, upload-time = "2026-01-11T11:22:06.703Z" }, + { url = "https://files.pythonhosted.org/packages/20/aa/64dd73a5a849c2e8f216b755599c511badde80e91e9bc2271baa7b2cdbb1/tomli-2.4.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:9a08144fa4cba33db5255f9b74f0b89888622109bd2776148f2597447f92a94e", size = 149038, upload-time = "2026-01-11T11:22:07.56Z" }, + { url = "https://files.pythonhosted.org/packages/9e/8a/6d38870bd3d52c8d1505ce054469a73f73a0fe62c0eaf5dddf61447e32fa/tomli-2.4.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:c73add4bb52a206fd0c0723432db123c0c75c280cbd67174dd9d2db228ebb1b4", size = 242245, upload-time = "2026-01-11T11:22:08.344Z" }, + { url = "https://files.pythonhosted.org/packages/59/bb/8002fadefb64ab2669e5b977df3f5e444febea60e717e755b38bb7c41029/tomli-2.4.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:1fb2945cbe303b1419e2706e711b7113da57b7db31ee378d08712d678a34e51e", size = 250335, upload-time = "2026-01-11T11:22:09.951Z" }, + { url = "https://files.pythonhosted.org/packages/a5/3d/4cdb6f791682b2ea916af2de96121b3cb1284d7c203d97d92d6003e91c8d/tomli-2.4.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:bbb1b10aa643d973366dc2cb1ad94f99c1726a02343d43cbc011edbfac579e7c", size = 245962, upload-time = "2026-01-11T11:22:11.27Z" }, + { url = "https://files.pythonhosted.org/packages/f2/4a/5f25789f9a460bd858ba9756ff52d0830d825b458e13f754952dd15fb7bb/tomli-2.4.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:4cbcb367d44a1f0c2be408758b43e1ffb5308abe0ea222897d6bfc8e8281ef2f", size = 250396, upload-time = "2026-01-11T11:22:12.325Z" }, + { url = "https://files.pythonhosted.org/packages/aa/2f/b73a36fea58dfa08e8b3a268750e6853a6aac2a349241a905ebd86f3047a/tomli-2.4.0-cp313-cp313-win32.whl", hash = "sha256:7d49c66a7d5e56ac959cb6fc583aff0651094ec071ba9ad43df785abc2320d86", size = 97530, upload-time = "2026-01-11T11:22:13.865Z" }, + { url = "https://files.pythonhosted.org/packages/3b/af/ca18c134b5d75de7e8dc551c5234eaba2e8e951f6b30139599b53de9c187/tomli-2.4.0-cp313-cp313-win_amd64.whl", hash = "sha256:3cf226acb51d8f1c394c1b310e0e0e61fecdd7adcb78d01e294ac297dd2e7f87", size = 108227, upload-time = "2026-01-11T11:22:15.224Z" }, + { url = "https://files.pythonhosted.org/packages/22/c3/b386b832f209fee8073c8138ec50f27b4460db2fdae9ffe022df89a57f9b/tomli-2.4.0-cp313-cp313-win_arm64.whl", hash = "sha256:d20b797a5c1ad80c516e41bc1fb0443ddb5006e9aaa7bda2d71978346aeb9132", size = 94748, upload-time = "2026-01-11T11:22:16.009Z" }, + { url = "https://files.pythonhosted.org/packages/f3/c4/84047a97eb1004418bc10bdbcfebda209fca6338002eba2dc27cc6d13563/tomli-2.4.0-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:26ab906a1eb794cd4e103691daa23d95c6919cc2fa9160000ac02370cc9dd3f6", size = 154725, upload-time = "2026-01-11T11:22:17.269Z" }, + { url = "https://files.pythonhosted.org/packages/a8/5d/d39038e646060b9d76274078cddf146ced86dc2b9e8bbf737ad5983609a0/tomli-2.4.0-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:20cedb4ee43278bc4f2fee6cb50daec836959aadaf948db5172e776dd3d993fc", size = 148901, upload-time = "2026-01-11T11:22:18.287Z" }, + { url = "https://files.pythonhosted.org/packages/73/e5/383be1724cb30f4ce44983d249645684a48c435e1cd4f8b5cded8a816d3c/tomli-2.4.0-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:39b0b5d1b6dd03684b3fb276407ebed7090bbec989fa55838c98560c01113b66", size = 243375, upload-time = "2026-01-11T11:22:19.154Z" }, + { url = "https://files.pythonhosted.org/packages/31/f0/bea80c17971c8d16d3cc109dc3585b0f2ce1036b5f4a8a183789023574f2/tomli-2.4.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:a26d7ff68dfdb9f87a016ecfd1e1c2bacbe3108f4e0f8bcd2228ef9a766c787d", size = 250639, upload-time = "2026-01-11T11:22:20.168Z" }, + { url = "https://files.pythonhosted.org/packages/2c/8f/2853c36abbb7608e3f945d8a74e32ed3a74ee3a1f468f1ffc7d1cb3abba6/tomli-2.4.0-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:20ffd184fb1df76a66e34bd1b36b4a4641bd2b82954befa32fe8163e79f1a702", size = 246897, upload-time = "2026-01-11T11:22:21.544Z" }, + { url = "https://files.pythonhosted.org/packages/49/f0/6c05e3196ed5337b9fe7ea003e95fd3819a840b7a0f2bf5a408ef1dad8ed/tomli-2.4.0-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:75c2f8bbddf170e8effc98f5e9084a8751f8174ea6ccf4fca5398436e0320bc8", size = 254697, upload-time = "2026-01-11T11:22:23.058Z" }, + { url = "https://files.pythonhosted.org/packages/f3/f5/2922ef29c9f2951883525def7429967fc4d8208494e5ab524234f06b688b/tomli-2.4.0-cp314-cp314-win32.whl", hash = "sha256:31d556d079d72db7c584c0627ff3a24c5d3fb4f730221d3444f3efb1b2514776", size = 98567, upload-time = "2026-01-11T11:22:24.033Z" }, + { url = "https://files.pythonhosted.org/packages/7b/31/22b52e2e06dd2a5fdbc3ee73226d763b184ff21fc24e20316a44ccc4d96b/tomli-2.4.0-cp314-cp314-win_amd64.whl", hash = "sha256:43e685b9b2341681907759cf3a04e14d7104b3580f808cfde1dfdb60ada85475", size = 108556, upload-time = "2026-01-11T11:22:25.378Z" }, + { url = "https://files.pythonhosted.org/packages/48/3d/5058dff3255a3d01b705413f64f4306a141a8fd7a251e5a495e3f192a998/tomli-2.4.0-cp314-cp314-win_arm64.whl", hash = "sha256:3d895d56bd3f82ddd6faaff993c275efc2ff38e52322ea264122d72729dca2b2", size = 96014, upload-time = "2026-01-11T11:22:26.138Z" }, + { url = "https://files.pythonhosted.org/packages/b8/4e/75dab8586e268424202d3a1997ef6014919c941b50642a1682df43204c22/tomli-2.4.0-cp314-cp314t-macosx_10_15_x86_64.whl", hash = "sha256:5b5807f3999fb66776dbce568cc9a828544244a8eb84b84b9bafc080c99597b9", size = 163339, upload-time = "2026-01-11T11:22:27.143Z" }, + { url = "https://files.pythonhosted.org/packages/06/e3/b904d9ab1016829a776d97f163f183a48be6a4deb87304d1e0116a349519/tomli-2.4.0-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:c084ad935abe686bd9c898e62a02a19abfc9760b5a79bc29644463eaf2840cb0", size = 159490, upload-time = "2026-01-11T11:22:28.399Z" }, + { url = "https://files.pythonhosted.org/packages/e3/5a/fc3622c8b1ad823e8ea98a35e3c632ee316d48f66f80f9708ceb4f2a0322/tomli-2.4.0-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:0f2e3955efea4d1cfbcb87bc321e00dc08d2bcb737fd1d5e398af111d86db5df", size = 269398, upload-time = "2026-01-11T11:22:29.345Z" }, + { url = "https://files.pythonhosted.org/packages/fd/33/62bd6152c8bdd4c305ad9faca48f51d3acb2df1f8791b1477d46ff86e7f8/tomli-2.4.0-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:0e0fe8a0b8312acf3a88077a0802565cb09ee34107813bba1c7cd591fa6cfc8d", size = 276515, upload-time = "2026-01-11T11:22:30.327Z" }, + { url = "https://files.pythonhosted.org/packages/4b/ff/ae53619499f5235ee4211e62a8d7982ba9e439a0fb4f2f351a93d67c1dd2/tomli-2.4.0-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:413540dce94673591859c4c6f794dfeaa845e98bf35d72ed59636f869ef9f86f", size = 273806, upload-time = "2026-01-11T11:22:32.56Z" }, + { url = "https://files.pythonhosted.org/packages/47/71/cbca7787fa68d4d0a9f7072821980b39fbb1b6faeb5f5cf02f4a5559fa28/tomli-2.4.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:0dc56fef0e2c1c470aeac5b6ca8cc7b640bb93e92d9803ddaf9ea03e198f5b0b", size = 281340, upload-time = "2026-01-11T11:22:33.505Z" }, + { url = "https://files.pythonhosted.org/packages/f5/00/d595c120963ad42474cf6ee7771ad0d0e8a49d0f01e29576ee9195d9ecdf/tomli-2.4.0-cp314-cp314t-win32.whl", hash = "sha256:d878f2a6707cc9d53a1be1414bbb419e629c3d6e67f69230217bb663e76b5087", size = 108106, upload-time = "2026-01-11T11:22:34.451Z" }, + { url = "https://files.pythonhosted.org/packages/de/69/9aa0c6a505c2f80e519b43764f8b4ba93b5a0bbd2d9a9de6e2b24271b9a5/tomli-2.4.0-cp314-cp314t-win_amd64.whl", hash = "sha256:2add28aacc7425117ff6364fe9e06a183bb0251b03f986df0e78e974047571fd", size = 120504, upload-time = "2026-01-11T11:22:35.764Z" }, + { url = "https://files.pythonhosted.org/packages/b3/9f/f1668c281c58cfae01482f7114a4b88d345e4c140386241a1a24dcc9e7bc/tomli-2.4.0-cp314-cp314t-win_arm64.whl", hash = "sha256:2b1e3b80e1d5e52e40e9b924ec43d81570f0e7d09d11081b797bc4692765a3d4", size = 99561, upload-time = "2026-01-11T11:22:36.624Z" }, + { url = "https://files.pythonhosted.org/packages/23/d1/136eb2cb77520a31e1f64cbae9d33ec6df0d78bdf4160398e86eec8a8754/tomli-2.4.0-py3-none-any.whl", hash = "sha256:1f776e7d669ebceb01dee46484485f43a4048746235e683bcdffacdf1fb4785a", size = 14477, upload-time = "2026-01-11T11:22:37.446Z" }, +] + +[[package]] +name = "typer" +version = "0.21.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "click" }, + { name = "rich" }, + { name = "shellingham" }, + { name = "typing-extensions" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/36/bf/8825b5929afd84d0dabd606c67cd57b8388cb3ec385f7ef19c5cc2202069/typer-0.21.1.tar.gz", hash = "sha256:ea835607cd752343b6b2b7ce676893e5a0324082268b48f27aa058bdb7d2145d", size = 110371, upload-time = "2026-01-06T11:21:10.989Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/a0/1d/d9257dd49ff2ca23ea5f132edf1281a0c4f9de8a762b9ae399b670a59235/typer-0.21.1-py3-none-any.whl", hash = "sha256:7985e89081c636b88d172c2ee0cfe33c253160994d47bdfdc302defd7d1f1d01", size = 47381, upload-time = "2026-01-06T11:21:09.824Z" }, +] + +[[package]] +name = "typing-extensions" +version = "4.15.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/72/94/1a15dd82efb362ac84269196e94cf00f187f7ed21c242792a923cdb1c61f/typing_extensions-4.15.0.tar.gz", hash = "sha256:0cea48d173cc12fa28ecabc3b837ea3cf6f38c6d1136f85cbaaf598984861466", size = 109391, upload-time = "2025-08-25T13:49:26.313Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/18/67/36e9267722cc04a6b9f15c7f3441c2363321a3ea07da7ae0c0707beb2a9c/typing_extensions-4.15.0-py3-none-any.whl", hash = "sha256:f0fa19c6845758ab08074a0cfa8b7aecb71c999ca73d62883bc25cc018c4e548", size = 44614, upload-time = "2025-08-25T13:49:24.86Z" }, +] + +[[package]] +name = "typing-inspection" +version = "0.4.2" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "typing-extensions" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/55/e3/70399cb7dd41c10ac53367ae42139cf4b1ca5f36bb3dc6c9d33acdb43655/typing_inspection-0.4.2.tar.gz", hash = "sha256:ba561c48a67c5958007083d386c3295464928b01faa735ab8547c5692e87f464", size = 75949, upload-time = "2025-10-01T02:14:41.687Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/dc/9b/47798a6c91d8bdb567fe2698fe81e0c6b7cb7ef4d13da4114b41d239f65d/typing_inspection-0.4.2-py3-none-any.whl", hash = "sha256:4ed1cacbdc298c220f1bd249ed5287caa16f34d44ef4e9c3d0cbad5b521545e7", size = 14611, upload-time = "2025-10-01T02:14:40.154Z" }, +] + +[[package]] +name = "unidecode" +version = "1.4.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/94/7d/a8a765761bbc0c836e397a2e48d498305a865b70a8600fd7a942e85dcf63/Unidecode-1.4.0.tar.gz", hash = "sha256:ce35985008338b676573023acc382d62c264f307c8f7963733405add37ea2b23", size = 200149, upload-time = "2025-04-24T08:45:03.798Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/8f/b7/559f59d57d18b44c6d1250d2eeaa676e028b9c527431f5d0736478a73ba1/Unidecode-1.4.0-py3-none-any.whl", hash = "sha256:c3c7606c27503ad8d501270406e345ddb480a7b5f38827eafe4fa82a137f0021", size = 235837, upload-time = "2025-04-24T08:45:01.609Z" }, +] + +[[package]] +name = "urllib3" +version = "2.6.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/c7/24/5f1b3bdffd70275f6661c76461e25f024d5a38a46f04aaca912426a2b1d3/urllib3-2.6.3.tar.gz", hash = "sha256:1b62b6884944a57dbe321509ab94fd4d3b307075e0c2eae991ac71ee15ad38ed", size = 435556, upload-time = "2026-01-07T16:24:43.925Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/39/08/aaaad47bc4e9dc8c725e68f9d04865dbcb2052843ff09c97b08904852d84/urllib3-2.6.3-py3-none-any.whl", hash = "sha256:bf272323e553dfb2e87d9bfd225ca7b0f467b919d7bbd355436d3fd37cb0acd4", size = 131584, upload-time = "2026-01-07T16:24:42.685Z" }, +] + +[[package]] +name = "validators" +version = "0.35.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/53/66/a435d9ae49850b2f071f7ebd8119dd4e84872b01630d6736761e6e7fd847/validators-0.35.0.tar.gz", hash = "sha256:992d6c48a4e77c81f1b4daba10d16c3a9bb0dbb79b3a19ea847ff0928e70497a", size = 73399, upload-time = "2025-05-01T05:42:06.7Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/fa/6e/3e955517e22cbdd565f2f8b2e73d52528b14b8bcfdb04f62466b071de847/validators-0.35.0-py3-none-any.whl", hash = "sha256:e8c947097eae7892cb3d26868d637f79f47b4a0554bc6b80065dfe5aac3705dd", size = 44712, upload-time = "2025-05-01T05:42:04.203Z" }, +] + +[[package]] +name = "virtualenv" +version = "20.36.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "distlib" }, + { name = "filelock" }, + { name = "platformdirs" }, + { name = "typing-extensions", marker = "python_full_version < '3.11'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/aa/a3/4d310fa5f00863544e1d0f4de93bddec248499ccf97d4791bc3122c9d4f3/virtualenv-20.36.1.tar.gz", hash = "sha256:8befb5c81842c641f8ee658481e42641c68b5eab3521d8e092d18320902466ba", size = 6032239, upload-time = "2026-01-09T18:21:01.296Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/6a/2a/dc2228b2888f51192c7dc766106cd475f1b768c10caaf9727659726f7391/virtualenv-20.36.1-py3-none-any.whl", hash = "sha256:575a8d6b124ef88f6f51d56d656132389f961062a9177016a50e4f507bbcc19f", size = 6008258, upload-time = "2026-01-09T18:20:59.425Z" }, +] + +[[package]] +name = "watchdog" +version = "6.0.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/db/7d/7f3d619e951c88ed75c6037b246ddcf2d322812ee8ea189be89511721d54/watchdog-6.0.0.tar.gz", hash = "sha256:9ddf7c82fda3ae8e24decda1338ede66e1c99883db93711d8fb941eaa2d8c282", size = 131220, upload-time = "2024-11-01T14:07:13.037Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/0c/56/90994d789c61df619bfc5ce2ecdabd5eeff564e1eb47512bd01b5e019569/watchdog-6.0.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:d1cdb490583ebd691c012b3d6dae011000fe42edb7a82ece80965b42abd61f26", size = 96390, upload-time = "2024-11-01T14:06:24.793Z" }, + { url = "https://files.pythonhosted.org/packages/55/46/9a67ee697342ddf3c6daa97e3a587a56d6c4052f881ed926a849fcf7371c/watchdog-6.0.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:bc64ab3bdb6a04d69d4023b29422170b74681784ffb9463ed4870cf2f3e66112", size = 88389, upload-time = "2024-11-01T14:06:27.112Z" }, + { url = "https://files.pythonhosted.org/packages/44/65/91b0985747c52064d8701e1075eb96f8c40a79df889e59a399453adfb882/watchdog-6.0.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:c897ac1b55c5a1461e16dae288d22bb2e412ba9807df8397a635d88f671d36c3", size = 89020, upload-time = "2024-11-01T14:06:29.876Z" }, + { url = "https://files.pythonhosted.org/packages/e0/24/d9be5cd6642a6aa68352ded4b4b10fb0d7889cb7f45814fb92cecd35f101/watchdog-6.0.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:6eb11feb5a0d452ee41f824e271ca311a09e250441c262ca2fd7ebcf2461a06c", size = 96393, upload-time = "2024-11-01T14:06:31.756Z" }, + { url = "https://files.pythonhosted.org/packages/63/7a/6013b0d8dbc56adca7fdd4f0beed381c59f6752341b12fa0886fa7afc78b/watchdog-6.0.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:ef810fbf7b781a5a593894e4f439773830bdecb885e6880d957d5b9382a960d2", size = 88392, upload-time = "2024-11-01T14:06:32.99Z" }, + { url = "https://files.pythonhosted.org/packages/d1/40/b75381494851556de56281e053700e46bff5b37bf4c7267e858640af5a7f/watchdog-6.0.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:afd0fe1b2270917c5e23c2a65ce50c2a4abb63daafb0d419fde368e272a76b7c", size = 89019, upload-time = "2024-11-01T14:06:34.963Z" }, + { url = "https://files.pythonhosted.org/packages/39/ea/3930d07dafc9e286ed356a679aa02d777c06e9bfd1164fa7c19c288a5483/watchdog-6.0.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:bdd4e6f14b8b18c334febb9c4425a878a2ac20efd1e0b231978e7b150f92a948", size = 96471, upload-time = "2024-11-01T14:06:37.745Z" }, + { url = "https://files.pythonhosted.org/packages/12/87/48361531f70b1f87928b045df868a9fd4e253d9ae087fa4cf3f7113be363/watchdog-6.0.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:c7c15dda13c4eb00d6fb6fc508b3c0ed88b9d5d374056b239c4ad1611125c860", size = 88449, upload-time = "2024-11-01T14:06:39.748Z" }, + { url = "https://files.pythonhosted.org/packages/5b/7e/8f322f5e600812e6f9a31b75d242631068ca8f4ef0582dd3ae6e72daecc8/watchdog-6.0.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:6f10cb2d5902447c7d0da897e2c6768bca89174d0c6e1e30abec5421af97a5b0", size = 89054, upload-time = "2024-11-01T14:06:41.009Z" }, + { url = "https://files.pythonhosted.org/packages/68/98/b0345cabdce2041a01293ba483333582891a3bd5769b08eceb0d406056ef/watchdog-6.0.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:490ab2ef84f11129844c23fb14ecf30ef3d8a6abafd3754a6f75ca1e6654136c", size = 96480, upload-time = "2024-11-01T14:06:42.952Z" }, + { url = "https://files.pythonhosted.org/packages/85/83/cdf13902c626b28eedef7ec4f10745c52aad8a8fe7eb04ed7b1f111ca20e/watchdog-6.0.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:76aae96b00ae814b181bb25b1b98076d5fc84e8a53cd8885a318b42b6d3a5134", size = 88451, upload-time = "2024-11-01T14:06:45.084Z" }, + { url = "https://files.pythonhosted.org/packages/fe/c4/225c87bae08c8b9ec99030cd48ae9c4eca050a59bf5c2255853e18c87b50/watchdog-6.0.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:a175f755fc2279e0b7312c0035d52e27211a5bc39719dd529625b1930917345b", size = 89057, upload-time = "2024-11-01T14:06:47.324Z" }, + { url = "https://files.pythonhosted.org/packages/30/ad/d17b5d42e28a8b91f8ed01cb949da092827afb9995d4559fd448d0472763/watchdog-6.0.0-pp310-pypy310_pp73-macosx_10_15_x86_64.whl", hash = "sha256:c7ac31a19f4545dd92fc25d200694098f42c9a8e391bc00bdd362c5736dbf881", size = 87902, upload-time = "2024-11-01T14:06:53.119Z" }, + { url = "https://files.pythonhosted.org/packages/5c/ca/c3649991d140ff6ab67bfc85ab42b165ead119c9e12211e08089d763ece5/watchdog-6.0.0-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:9513f27a1a582d9808cf21a07dae516f0fab1cf2d7683a742c498b93eedabb11", size = 88380, upload-time = "2024-11-01T14:06:55.19Z" }, + { url = "https://files.pythonhosted.org/packages/a9/c7/ca4bf3e518cb57a686b2feb4f55a1892fd9a3dd13f470fca14e00f80ea36/watchdog-6.0.0-py3-none-manylinux2014_aarch64.whl", hash = "sha256:7607498efa04a3542ae3e05e64da8202e58159aa1fa4acddf7678d34a35d4f13", size = 79079, upload-time = "2024-11-01T14:06:59.472Z" }, + { url = "https://files.pythonhosted.org/packages/5c/51/d46dc9332f9a647593c947b4b88e2381c8dfc0942d15b8edc0310fa4abb1/watchdog-6.0.0-py3-none-manylinux2014_armv7l.whl", hash = "sha256:9041567ee8953024c83343288ccc458fd0a2d811d6a0fd68c4c22609e3490379", size = 79078, upload-time = "2024-11-01T14:07:01.431Z" }, + { url = "https://files.pythonhosted.org/packages/d4/57/04edbf5e169cd318d5f07b4766fee38e825d64b6913ca157ca32d1a42267/watchdog-6.0.0-py3-none-manylinux2014_i686.whl", hash = "sha256:82dc3e3143c7e38ec49d61af98d6558288c415eac98486a5c581726e0737c00e", size = 79076, upload-time = "2024-11-01T14:07:02.568Z" }, + { url = "https://files.pythonhosted.org/packages/ab/cc/da8422b300e13cb187d2203f20b9253e91058aaf7db65b74142013478e66/watchdog-6.0.0-py3-none-manylinux2014_ppc64.whl", hash = "sha256:212ac9b8bf1161dc91bd09c048048a95ca3a4c4f5e5d4a7d1b1a7d5752a7f96f", size = 79077, upload-time = "2024-11-01T14:07:03.893Z" }, + { url = "https://files.pythonhosted.org/packages/2c/3b/b8964e04ae1a025c44ba8e4291f86e97fac443bca31de8bd98d3263d2fcf/watchdog-6.0.0-py3-none-manylinux2014_ppc64le.whl", hash = "sha256:e3df4cbb9a450c6d49318f6d14f4bbc80d763fa587ba46ec86f99f9e6876bb26", size = 79078, upload-time = "2024-11-01T14:07:05.189Z" }, + { url = "https://files.pythonhosted.org/packages/62/ae/a696eb424bedff7407801c257d4b1afda455fe40821a2be430e173660e81/watchdog-6.0.0-py3-none-manylinux2014_s390x.whl", hash = "sha256:2cce7cfc2008eb51feb6aab51251fd79b85d9894e98ba847408f662b3395ca3c", size = 79077, upload-time = "2024-11-01T14:07:06.376Z" }, + { url = "https://files.pythonhosted.org/packages/b5/e8/dbf020b4d98251a9860752a094d09a65e1b436ad181faf929983f697048f/watchdog-6.0.0-py3-none-manylinux2014_x86_64.whl", hash = "sha256:20ffe5b202af80ab4266dcd3e91aae72bf2da48c0d33bdb15c66658e685e94e2", size = 79078, upload-time = "2024-11-01T14:07:07.547Z" }, + { url = "https://files.pythonhosted.org/packages/07/f6/d0e5b343768e8bcb4cda79f0f2f55051bf26177ecd5651f84c07567461cf/watchdog-6.0.0-py3-none-win32.whl", hash = "sha256:07df1fdd701c5d4c8e55ef6cf55b8f0120fe1aef7ef39a1c6fc6bc2e606d517a", size = 79065, upload-time = "2024-11-01T14:07:09.525Z" }, + { url = "https://files.pythonhosted.org/packages/db/d9/c495884c6e548fce18a8f40568ff120bc3a4b7b99813081c8ac0c936fa64/watchdog-6.0.0-py3-none-win_amd64.whl", hash = "sha256:cbafb470cf848d93b5d013e2ecb245d4aa1c8fd0504e863ccefa32445359d680", size = 79070, upload-time = "2024-11-01T14:07:10.686Z" }, + { url = "https://files.pythonhosted.org/packages/33/e8/e40370e6d74ddba47f002a32919d91310d6074130fe4e17dabcafc15cbf1/watchdog-6.0.0-py3-none-win_ia64.whl", hash = "sha256:a1914259fa9e1454315171103c6a30961236f508b9b623eae470268bbcc6a22f", size = 79067, upload-time = "2024-11-01T14:07:11.845Z" }, +] + +[[package]] +name = "win32-setctime" +version = "1.2.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/b3/8f/705086c9d734d3b663af0e9bb3d4de6578d08f46b1b101c2442fd9aecaa2/win32_setctime-1.2.0.tar.gz", hash = "sha256:ae1fdf948f5640aae05c511ade119313fb6a30d7eabe25fef9764dca5873c4c0", size = 4867, upload-time = "2024-12-07T15:28:28.314Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/e1/07/c6fe3ad3e685340704d314d765b7912993bcb8dc198f0e7a89382d37974b/win32_setctime-1.2.0-py3-none-any.whl", hash = "sha256:95d644c4e708aba81dc3704a116d8cbc974d70b3bdb8be1d150e36be6e9d1390", size = 4083, upload-time = "2024-12-07T15:28:26.465Z" }, +] + +[[package]] +name = "xlrd" +version = "2.0.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/07/5a/377161c2d3538d1990d7af382c79f3b2372e880b65de21b01b1a2b78691e/xlrd-2.0.2.tar.gz", hash = "sha256:08b5e25de58f21ce71dc7db3b3b8106c1fa776f3024c54e45b45b374e89234c9", size = 100167, upload-time = "2025-06-14T08:46:39.039Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/1a/62/c8d562e7766786ba6587d09c5a8ba9f718ed3fa8af7f4553e8f91c36f302/xlrd-2.0.2-py2.py3-none-any.whl", hash = "sha256:ea762c3d29f4cca48d82df517b6d89fbce4db3107f9d78713e48cd321d5c9aa9", size = 96555, upload-time = "2025-06-14T08:46:37.766Z" }, +] + +[[package]] +name = "xlsx2csv" +version = "0.8.4" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/36/20/94860286a308a4213581c1beacd4fc7be724250c03583fcff23aaa6107bb/xlsx2csv-0.8.4.tar.gz", hash = "sha256:2aa809888826f6af5b26c77fc7f613f2bbeada0d8cc09e5a58e0f59684bb6911", size = 221390, upload-time = "2024-11-19T17:06:07.818Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/c4/c0/15c21556362c67f1155f3643a375d50ac67559b82c768e64e800a42a2577/xlsx2csv-0.8.4-py3-none-any.whl", hash = "sha256:52ab873fc7b2f2ca75d14aee8bd1985a9f5c1bcb3cc7b80df7a5d57a40a67473", size = 15904, upload-time = "2024-11-19T17:06:05.362Z" }, +] + +[[package]] +name = "xlsxwriter" +version = "3.2.9" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/46/2c/c06ef49dc36e7954e55b802a8b231770d286a9758b3d936bd1e04ce5ba88/xlsxwriter-3.2.9.tar.gz", hash = "sha256:254b1c37a368c444eac6e2f867405cc9e461b0ed97a3233b2ac1e574efb4140c", size = 215940, upload-time = "2025-09-16T00:16:21.63Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/3a/0c/3662f4a66880196a590b202f0db82d919dd2f89e99a27fadef91c4a33d41/xlsxwriter-3.2.9-py3-none-any.whl", hash = "sha256:9a5db42bc5dff014806c58a20b9eae7322a134abb6fce3c92c181bfb275ec5b3", size = 175315, upload-time = "2025-09-16T00:16:20.108Z" }, +] + +[[package]] +name = "xlwt" +version = "1.3.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/06/97/56a6f56ce44578a69343449aa5a0d98eefe04085d69da539f3034e2cd5c1/xlwt-1.3.0.tar.gz", hash = "sha256:c59912717a9b28f1a3c2a98fd60741014b06b043936dcecbc113eaaada156c88", size = 153929, upload-time = "2017-08-22T06:47:16.498Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/44/48/def306413b25c3d01753603b1a222a011b8621aed27cd7f89cbc27e6b0f4/xlwt-1.3.0-py2.py3-none-any.whl", hash = "sha256:a082260524678ba48a297d922cc385f58278b8aa68741596a87de01a9c628b2e", size = 99981, upload-time = "2017-08-22T06:47:15.281Z" }, +] From cb40c348ae1e05b29c300ca306bb47618a0871c3 Mon Sep 17 00:00:00 2001 From: mcarans Date: Fri, 30 Jan 2026 10:29:14 +1300 Subject: [PATCH 2/2] Removed HXL from country.py and added documentation --- documentation/index.md | 50 +- pyproject.toml | 1 + ...erritories Taxonomy MVP - C&T Taxonomy.csv | 2 +- src/hdx/location/adminlevel.py | 3 + src/hdx/location/country.py | 68 +- tests/hdx/location/Countries_UZB_Deleted.csv | 2 +- tests/hdx/location/test_country.py | 971 +++++++++--------- uv.lock | 80 ++ 8 files changed, 645 insertions(+), 532 deletions(-) diff --git a/documentation/index.md b/documentation/index.md index e01db54..f399402 100644 --- a/documentation/index.md +++ b/documentation/index.md @@ -42,6 +42,9 @@ The code for the library is [here](https://github.com/OCHA-DAP/hdx-python-countr The library has detailed API documentation which can be found in the menu at the top. ## Breaking Changes +From 4.1.0, HXL hashtags no longer used in Country class. The header names are used +instead. + From 4.0.0, Python 3.10 or later is required as well as HDX Python Utilities >= 4. To continue using HDX Python Country < 4, please pin to HDX Python Utilities < 4. @@ -92,26 +95,33 @@ The usage of the country mappings functionality is best illustrated by some exam # returns ("CZE", False) Country.get_country_info_from_iso2("jp") - # Returns dictionary with HXL hashtags as keys. For more on HXL, see http://hxlstandard.org/ - # {"#country+alt+i_ar+name+v_m49": "اليابان", "#country+alt+i_ar+name+v_unterm": "اليابان", - # "#country+alt+i_en+name+v_m49": "Japan", "#country+alt+i_en+name+v_unterm": "Japan", - # "#country+alt+i_es+name+v_m49": "Japón", "#country+alt+i_es+name+v_unterm": "Japón", - # "#country+alt+i_fr+name+v_m49": "Japon", "#country+alt+i_fr+name+v_unterm": "Japon", - # "#country+alt+i_ru+name+v_m49": "Япония", "#country+alt+i_ru+name+v_unterm": "Япония", - # "#country+alt+i_zh+name+v_m49": "日本", "#country+alt+i_zh+name+v_unterm": "日本", - # "#country+alt+name+v_dgacm": "", "#country+alt+name+v_hpctools": "", - # "#country+alt+name+v_iso": "", "#country+alt+name+v_reliefweb": "", - # "#country+code+num+v_m49": "392", "#country+code+v_hpctools": "112", - # "#country+code+v_iso2": "JP", "#country+code+v_iso3": "JPN", - # "#country+code+v_reliefweb": "128", "#country+formal+i_en+name+v_unterm": "Japan", - # "#country+name+preferred": "Japan", "#country+name+short+v_reliefweb": "", - # "#country+regex": "japan", "#currency+code": "JPY", "#date+start": "1974-01-01", - # "#geo+admin_level": "0", "#geo+lat": "37.63209801", "#geo+lon": "138.0812256", - # "#indicator+bool+hrp": "", "#indicator+bool+gho": "", "#indicator+incomelevel": "High", - # "#meta+bool+deprecated": "N", "#meta+bool+independent": "Y", "#meta+id": "112", - # "#region+code+intermediate": "", "#region+code+main": "142", "#region+code+sub": "30", - # "#region+intermediate+name+preferred": "", "#region+main+name+preferred": "Asia", - # "#region+name+preferred+sub": "Eastern Asia"} + # Returns dictionary of country data + # { + # "Admin Level": "0", "Appears in DGACM list": "Y", + # "Appears in UNTERM list": "Y", "Arabic Short": "اليابان", + # "Chinese Short": "日本", "Concatenation": "112 - Japan", + # "Currency": "JPY", "DGACM Alt Term": None, + # "Deprecated": "N", "English Formal": "Japan", + # "English Short": "Japan", "French Short": "Japon", + # "HPC Tools API ID": "112", "HPC Tools Alt Term": None, + # "Has HRP": None, "ID": "112", + # "ISO 3166-1 Alpha 2-Codes": "JP", "ISO 3166-1 Alpha 3-Codes": "JPN", + # "ISO Alt Term": None, "In GHO": None, + # "Independent": "Y", "Intermediate Region Code": None, + # "Intermediate Region Name": None, "Latitude": "37.63209801", + # "Longitude": "138.0812256", "M49 Arabic": "اليابان", + # "M49 Chinese": "日本", "M49 English": "Japan", + # "M49 French": "Japon", "M49 Russian": "Япония", + # "M49 Spanish": "Japón", "Preferred Term": "Japan", + # "RW API Alt Term": None, "RW ID": "128", + # "RW Short Name": None, "Reference Period Start": "1974-01-01", + # "Regex": "japan", "Region Code": "142", + # "Region Name": "Asia", "Russian Short": "Япония", + # "Spanish Short": "Japón", "Sub-region Code": "30", + # "Sub-region Name": "Eastern Asia", "World Bank Income Level": "High", + # "m49 numerical code": "392", "x Alpha2 codes": None, + # "x Alpha3 codes": None + # } Country.get_countries_in_region("Channel Islands") # ["GGY", "JEY"] len(Country.get_countries_in_region("Africa")) diff --git a/pyproject.toml b/pyproject.toml index e924ead..2fe4efc 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -37,6 +37,7 @@ requires-python = ">=3.10" dependencies = [ "hdx-python-utilities>=4.0.4", + "libhxl>=5.2.2", "tenacity", ] diff --git a/src/hdx/location/Countries & Territories Taxonomy MVP - C&T Taxonomy.csv b/src/hdx/location/Countries & Territories Taxonomy MVP - C&T Taxonomy.csv index 0982cfc..a0d7d27 100644 --- a/src/hdx/location/Countries & Territories Taxonomy MVP - C&T Taxonomy.csv +++ b/src/hdx/location/Countries & Territories Taxonomy MVP - C&T Taxonomy.csv @@ -254,4 +254,4 @@ ID,RW ID,m49 numerical code,HPC Tools API ID,Appears in UNTERM list,Appears in D 255,178,580,166,,,N,N,,,MP,MNP,,,Northern Mariana Islands,Northern Mariana Islands (the),,,,Northern Mariana Islands (The United States of America),Northern Mariana Islands,,,,,,,Northern Mariana Islands,Îles Mariannes du Nord,Islas Marianas Septentrionales,Северные Марианские острова,北马里亚纳群岛,جزر ماريانا الشمالية,0,25.56053736,152.1251419,9,Oceania,57,Micronesia,,,mariana,High,USD,1986-01-01,255 - Northern Mariana Islands 256,,680,,,,N,N,,,,,,,Sark,,,,,,Sark,,,,,,,,,,,,,,49.4347717,-2.36987152,150,Europe,154,Northern Europe,830,Channel Islands,sark,,GBP,1974-01-01,256 - Sark 265,246,850,245,,,N,N,,,VI,VIR,,,United States Virgin Islands,Virgin Islands (U.S.),,"Virgin Islands, U.S.",,,United States Virgin Islands,,,,,,,United States Virgin Islands,Îles Vierges américaines,Islas Vírgenes de los Estados Unidos,Виргинские острова Соединенных Штатов,美属维尔京群岛,جزر فرجن التابعة للولايات المتحدة,0,17.39137826,-64.67699419,19,Americas,419,Latin America and the Caribbean,29,Caribbean,^(?=.*\bu\.?\s?s).*virgin|^(?=.*states).*virgin,High,USD,1974-01-01,265 - United States Virgin Islands -266,,,,,,N,N,,,,,XK,XKX,Kosovo,,,,,,Kosovo,,,,,,,,,,,,,,42.61901705,20.90987836,150,Europe,39,Southern Europe,,,kosovo,,EUR,1974-01-01,266 - Kosovo \ No newline at end of file +266,,,,,,N,N,,,,,XK,XKX,Kosovo,,,,,,Kosovo,,,,,,,,,,,,,,42.61901705,20.90987836,150,Europe,39,Southern Europe,,,kosovo,,EUR,1974-01-01,266 - Kosovo diff --git a/src/hdx/location/adminlevel.py b/src/hdx/location/adminlevel.py index 179e6ac..2d6ae61 100755 --- a/src/hdx/location/adminlevel.py +++ b/src/hdx/location/adminlevel.py @@ -4,11 +4,14 @@ from pathlib import Path from typing import Any +import hxl from hdx.utilities.base_downloader import DownloadError from hdx.utilities.dictandlist import dict_of_sets_add from hdx.utilities.matching import Phonetics, multiple_replace from hdx.utilities.retriever import Retrieve from hdx.utilities.text import normalise +from hxl import InputOptions +from hxl.input import HXLIOException from hdx.location.country import Country diff --git a/src/hdx/location/country.py b/src/hdx/location/country.py index cef3d8e..407e126 100755 --- a/src/hdx/location/country.py +++ b/src/hdx/location/country.py @@ -3,8 +3,8 @@ import logging import os.path import re +from collections.abc import Iterator from pathlib import Path -from typing import Iterator from hdx.utilities.base_downloader import BaseDownload, DownloadError from hdx.utilities.downloader import Download @@ -82,26 +82,26 @@ class Country: _country_name_overrides = {} _country_name_mappings = {} _country_name_keys = ( - "Preferred Term", - "ISO Alt Term", - "DGACM Alt Term", - "HPC Tools Alt Term", - "RW Short Name", - "RW API Alt Term", - "English Short", - "French Short", - "Spanish Short", - "Russian Short", - "Chinese Short", - "Arabic Short", - "English Formal", - "M49 English", - "M49 French", - "M49 Spanish", - "M49 Russian", - "M49 Chinese", - "M49 Arabic", -) + "Preferred Term", + "ISO Alt Term", + "DGACM Alt Term", + "HPC Tools Alt Term", + "RW Short Name", + "RW API Alt Term", + "English Short", + "French Short", + "Spanish Short", + "Russian Short", + "Chinese Short", + "Arabic Short", + "English Formal", + "M49 English", + "M49 French", + "M49 Spanish", + "M49 Russian", + "M49 Chinese", + "M49 Arabic", + ) @classmethod def _add_countriesdata(cls, iso3: str, country: dict) -> dict: @@ -266,12 +266,18 @@ def countriesdata( downloader = Download(user_agent="HDXPythonCountry") if cls._use_live: try: - _, countries = downloader.get_tabular_rows(cls._ochaurl, dict_form=True) + _, countries = downloader.get_tabular_rows( + cls._ochaurl, dict_form=True + ) except DownloadError: countries = None - logger.warning(f"Download of {cls._ochaurl} failed. Will use internal static file.") + logger.warning( + f"Download of {cls._ochaurl} failed. Will use internal static file." + ) if countries is None: - _, countries = downloader.get_tabular_rows(cls._ochapath, dict_form=True) + _, countries = downloader.get_tabular_rows( + cls._ochapath, dict_form=True + ) cls.set_countriesdata(countries) return cls._countriesdata @@ -906,21 +912,11 @@ def get_iso3_country_code( return iso3 elif re.search(r"[\u4e00-\u9fff]+", countryupper): for country in countriesdata["countries"]: - if ( - countriesdata["countries"][country][ - "Chinese Short" - ] - == countryupper - ): + if countriesdata["countries"][country]["Chinese Short"] == countryupper: return country elif re.search(r"[\u0600-\u06FF]+", countryupper): for country in countriesdata["countries"]: - if ( - countriesdata["countries"][country][ - "Arabic Short" - ] - == countryupper - ): + if countriesdata["countries"][country]["Arabic Short"] == countryupper: return country if exception is not None: diff --git a/tests/hdx/location/Countries_UZB_Deleted.csv b/tests/hdx/location/Countries_UZB_Deleted.csv index 83728cc..5fbadae 100644 --- a/tests/hdx/location/Countries_UZB_Deleted.csv +++ b/tests/hdx/location/Countries_UZB_Deleted.csv @@ -253,4 +253,4 @@ ID,RW ID,m49 numerical code,HPC Tools API ID,Appears in UNTERM list,Appears in D 255,178,580,166,,,N,N,,,MP,MNP,,,Northern Mariana Islands,Northern Mariana Islands (the),,,,Northern Mariana Islands (The United States of America),Northern Mariana Islands,,,,,,,Northern Mariana Islands,Îles Mariannes du Nord,Islas Marianas Septentrionales,Северные Марианские острова,北马里亚纳群岛,جزر ماريانا الشمالية,0,25.56053736,152.1251419,9,Oceania,57,Micronesia,,,mariana,High,USD,1986-01-01,255 - Northern Mariana Islands 256,,680,,,,N,N,,,,,,,Sark,,,,,,Sark,,,,,,,,,,,,,,49.4347717,-2.36987152,150,Europe,154,Northern Europe,830,Channel Islands,sark,,GBP,1974-01-01,256 - Sark 265,246,850,245,,,N,N,,,VI,VIR,,,United States Virgin Islands,Virgin Islands (U.S.),,"Virgin Islands, U.S.",,,United States Virgin Islands,,,,,,,United States Virgin Islands,Îles Vierges américaines,Islas Vírgenes de los Estados Unidos,Виргинские острова Соединенных Штатов,美属维尔京群岛,جزر فرجن التابعة للولايات المتحدة,0,17.39137826,-64.67699419,19,Americas,419,Latin America and the Caribbean,29,Caribbean,^(?=.*\bu\.?\s?s).*virgin|^(?=.*states).*virgin,High,USD,1974-01-01,265 - United States Virgin Islands -266,,,,,,N,N,,,,,XK,XKX,Kosovo,,,,,,Kosovo,,,,,,,,,,,,,,42.61901705,20.90987836,150,Europe,39,Southern Europe,,,kosovo,,EUR,1974-01-01,266 - Kosovo \ No newline at end of file +266,,,,,,N,N,,,,,XK,XKX,Kosovo,,,,,,Kosovo,,,,,,,,,,,,,,42.61901705,20.90987836,150,Europe,39,Southern Europe,,,kosovo,,EUR,1974-01-01,266 - Kosovo diff --git a/tests/hdx/location/test_country.py b/tests/hdx/location/test_country.py index 862a4a1..d244b89 100755 --- a/tests/hdx/location/test_country.py +++ b/tests/hdx/location/test_country.py @@ -78,151 +78,157 @@ def test_get_iso3_from_iso2(self): Country.get_iso3_from_iso2("ab", exception=LocationError) def test_get_country_info_from_iso3(self): - assert Country.get_country_info_from_iso3("bih") == {'Admin Level': '0', - 'Appears in DGACM list': 'Y', - 'Appears in UNTERM list': 'Y', - 'Arabic Short': 'البوسنة والهرسك', - 'Chinese Short': '波斯尼亚和黑塞哥维那', - 'Concatenation': '28 - Bosnia and Herzegovina', - 'Currency': 'BAM', - 'DGACM Alt Term': None, - 'Deprecated': 'N', - 'English Formal': 'Bosnia and Herzegovina', - 'English Short': 'Bosnia and Herzegovina', - 'French Short': 'Bosnie-Herzégovine', - 'HPC Tools API ID': '28', - 'HPC Tools Alt Term': None, - 'Has HRP': None, - 'ID': '28', - 'ISO 3166-1 Alpha 2-Codes': 'BA', - 'ISO 3166-1 Alpha 3-Codes': 'BIH', - 'ISO Alt Term': None, - 'In GHO': None, - 'Independent': 'Y', - 'Intermediate Region Code': None, - 'Intermediate Region Name': None, - 'Latitude': '44.16506495', - 'Longitude': '17.79105724', - 'M49 Arabic': 'البوسنة والهرسك', - 'M49 Chinese': '波斯尼亚和黑塞哥维那', - 'M49 English': 'Bosnia and Herzegovina', - 'M49 French': 'Bosnie-Herzégovine', - 'M49 Russian': 'Босния и Герцеговина', - 'M49 Spanish': 'Bosnia y Herzegovina', - 'Preferred Term': 'Bosnia and Herzegovina', - 'RW API Alt Term': None, - 'RW ID': '40', - 'RW Short Name': None, - 'Reference Period Start': '1993-01-01', - 'Regex': 'herzegovina|bosnia', - 'Region Code': '150', - 'Region Name': 'Europe', - 'Russian Short': 'Босния и Герцеговина', - 'Spanish Short': 'Bosnia y Herzegovina', - 'Sub-region Code': '39', - 'Sub-region Name': 'Southern Europe', - 'World Bank Income Level': 'Upper middle', - 'm49 numerical code': '70', - 'x Alpha2 codes': None, - 'x Alpha3 codes': None} - assert Country.get_country_info_from_iso3("PSE") == {'Admin Level': '0', - 'Appears in DGACM list': None, - 'Appears in UNTERM list': 'Y', - 'Arabic Short': 'دولة فلسطين', - 'Chinese Short': '巴勒斯坦国', - 'Concatenation': '170 - State of Palestine', - 'Currency': 'ILS', - 'DGACM Alt Term': None, - 'Deprecated': 'N', - 'English Formal': 'the State of Palestine', - 'English Short': 'State of Palestine', - 'French Short': 'État de Palestine', - 'HPC Tools API ID': '171', - 'HPC Tools Alt Term': 'occupied Palestinian territory', - 'Has HRP': None, - 'ID': '170', - 'ISO 3166-1 Alpha 2-Codes': 'PS', - 'ISO 3166-1 Alpha 3-Codes': 'PSE', - 'ISO Alt Term': 'Palestine, State of', - 'In GHO': 'Y', - 'Independent': 'Y', - 'Intermediate Region Code': None, - 'Intermediate Region Name': None, - 'Latitude': '31.99084142', - 'Longitude': '35.30744047', - 'M49 Arabic': 'دولة فلسطين', - 'M49 Chinese': '巴勒斯坦国', - 'M49 English': 'State of Palestine', - 'M49 French': 'État de Palestine', - 'M49 Russian': 'Государство Палестина', - 'M49 Spanish': 'Estado de Palestina', - 'Name Override': 'oPt', - 'Preferred Term': 'State of Palestine', - 'RW API Alt Term': 'occupied Palestinian territory', - 'RW ID': '180', - 'RW Short Name': 'oPt', - 'Reference Period Start': '2013-02-06', - 'Regex': 'palestin|\\bgaza|west.?bank', - 'Region Code': '142', - 'Region Name': 'Asia', - 'Russian Short': 'Государство Палестина', - 'Spanish Short': 'Estado de Palestina', - 'Sub-region Code': '145', - 'Sub-region Name': 'Western Asia', - 'World Bank Income Level': 'Upper middle', - 'm49 numerical code': '275', - 'x Alpha2 codes': None, - 'x Alpha3 codes': None} + assert Country.get_country_info_from_iso3("bih") == { + "Admin Level": "0", + "Appears in DGACM list": "Y", + "Appears in UNTERM list": "Y", + "Arabic Short": "البوسنة والهرسك", + "Chinese Short": "波斯尼亚和黑塞哥维那", + "Concatenation": "28 - Bosnia and Herzegovina", + "Currency": "BAM", + "DGACM Alt Term": None, + "Deprecated": "N", + "English Formal": "Bosnia and Herzegovina", + "English Short": "Bosnia and Herzegovina", + "French Short": "Bosnie-Herzégovine", + "HPC Tools API ID": "28", + "HPC Tools Alt Term": None, + "Has HRP": None, + "ID": "28", + "ISO 3166-1 Alpha 2-Codes": "BA", + "ISO 3166-1 Alpha 3-Codes": "BIH", + "ISO Alt Term": None, + "In GHO": None, + "Independent": "Y", + "Intermediate Region Code": None, + "Intermediate Region Name": None, + "Latitude": "44.16506495", + "Longitude": "17.79105724", + "M49 Arabic": "البوسنة والهرسك", + "M49 Chinese": "波斯尼亚和黑塞哥维那", + "M49 English": "Bosnia and Herzegovina", + "M49 French": "Bosnie-Herzégovine", + "M49 Russian": "Босния и Герцеговина", + "M49 Spanish": "Bosnia y Herzegovina", + "Preferred Term": "Bosnia and Herzegovina", + "RW API Alt Term": None, + "RW ID": "40", + "RW Short Name": None, + "Reference Period Start": "1993-01-01", + "Regex": "herzegovina|bosnia", + "Region Code": "150", + "Region Name": "Europe", + "Russian Short": "Босния и Герцеговина", + "Spanish Short": "Bosnia y Herzegovina", + "Sub-region Code": "39", + "Sub-region Name": "Southern Europe", + "World Bank Income Level": "Upper middle", + "m49 numerical code": "70", + "x Alpha2 codes": None, + "x Alpha3 codes": None, + } + assert Country.get_country_info_from_iso3("PSE") == { + "Admin Level": "0", + "Appears in DGACM list": None, + "Appears in UNTERM list": "Y", + "Arabic Short": "دولة فلسطين", + "Chinese Short": "巴勒斯坦国", + "Concatenation": "170 - State of Palestine", + "Currency": "ILS", + "DGACM Alt Term": None, + "Deprecated": "N", + "English Formal": "the State of Palestine", + "English Short": "State of Palestine", + "French Short": "État de Palestine", + "HPC Tools API ID": "171", + "HPC Tools Alt Term": "occupied Palestinian territory", + "Has HRP": None, + "ID": "170", + "ISO 3166-1 Alpha 2-Codes": "PS", + "ISO 3166-1 Alpha 3-Codes": "PSE", + "ISO Alt Term": "Palestine, State of", + "In GHO": "Y", + "Independent": "Y", + "Intermediate Region Code": None, + "Intermediate Region Name": None, + "Latitude": "31.99084142", + "Longitude": "35.30744047", + "M49 Arabic": "دولة فلسطين", + "M49 Chinese": "巴勒斯坦国", + "M49 English": "State of Palestine", + "M49 French": "État de Palestine", + "M49 Russian": "Государство Палестина", + "M49 Spanish": "Estado de Palestina", + "Name Override": "oPt", + "Preferred Term": "State of Palestine", + "RW API Alt Term": "occupied Palestinian territory", + "RW ID": "180", + "RW Short Name": "oPt", + "Reference Period Start": "2013-02-06", + "Regex": "palestin|\\bgaza|west.?bank", + "Region Code": "142", + "Region Name": "Asia", + "Russian Short": "Государство Палестина", + "Spanish Short": "Estado de Palestina", + "Sub-region Code": "145", + "Sub-region Name": "Western Asia", + "World Bank Income Level": "Upper middle", + "m49 numerical code": "275", + "x Alpha2 codes": None, + "x Alpha3 codes": None, + } with pytest.raises(LocationError): Country.get_country_name_from_iso2("AZO", exception=LocationError) self.setup_unofficial_date() - assert Country.get_country_info_from_iso3("AZO") == {'Admin Level': None, - 'Appears in DGACM list': None, - 'Appears in UNTERM list': None, - 'Arabic Short': None, - 'Chinese Short': None, - 'Concatenation': '249 - Azores Islands (Portugal)', - 'Currency': 'EUR', - 'DGACM Alt Term': None, - 'Deprecated': 'N', - 'English Formal': None, - 'English Short': 'Azores Islands', - 'French Short': None, - 'HPC Tools API ID': None, - 'HPC Tools Alt Term': None, - 'Has HRP': None, - 'ID': '249', - 'ISO 3166-1 Alpha 2-Codes': None, - 'ISO 3166-1 Alpha 3-Codes': None, - 'ISO Alt Term': None, - 'In GHO': None, - 'Independent': 'N', - 'Intermediate Region Code': None, - 'Intermediate Region Name': None, - 'Latitude': '38.72708329', - 'Longitude': '-27.26017212', - 'M49 Arabic': None, - 'M49 Chinese': None, - 'M49 English': None, - 'M49 French': None, - 'M49 Russian': None, - 'M49 Spanish': None, - 'Preferred Term': 'Azores Islands (Portugal)', - 'RW API Alt Term': None, - 'RW ID': '28', - 'RW Short Name': None, - 'Reference Period Start': '1974-01-01', - 'Regex': 'azores', - 'Region Code': '150', - 'Region Name': 'Europe', - 'Russian Short': None, - 'Spanish Short': None, - 'Sub-region Code': '39', - 'Sub-region Name': 'Southern Europe', - 'World Bank Income Level': None, - 'm49 numerical code': None, - 'x Alpha2 codes': None, - 'x Alpha3 codes': 'AZO'} + assert Country.get_country_info_from_iso3("AZO") == { + "Admin Level": None, + "Appears in DGACM list": None, + "Appears in UNTERM list": None, + "Arabic Short": None, + "Chinese Short": None, + "Concatenation": "249 - Azores Islands (Portugal)", + "Currency": "EUR", + "DGACM Alt Term": None, + "Deprecated": "N", + "English Formal": None, + "English Short": "Azores Islands", + "French Short": None, + "HPC Tools API ID": None, + "HPC Tools Alt Term": None, + "Has HRP": None, + "ID": "249", + "ISO 3166-1 Alpha 2-Codes": None, + "ISO 3166-1 Alpha 3-Codes": None, + "ISO Alt Term": None, + "In GHO": None, + "Independent": "N", + "Intermediate Region Code": None, + "Intermediate Region Name": None, + "Latitude": "38.72708329", + "Longitude": "-27.26017212", + "M49 Arabic": None, + "M49 Chinese": None, + "M49 English": None, + "M49 French": None, + "M49 Russian": None, + "M49 Spanish": None, + "Preferred Term": "Azores Islands (Portugal)", + "RW API Alt Term": None, + "RW ID": "28", + "RW Short Name": None, + "Reference Period Start": "1974-01-01", + "Regex": "azores", + "Region Code": "150", + "Region Name": "Europe", + "Russian Short": None, + "Spanish Short": None, + "Sub-region Code": "39", + "Sub-region Name": "Southern Europe", + "World Bank Income Level": None, + "m49 numerical code": None, + "x Alpha2 codes": None, + "x Alpha3 codes": "AZO", + } def test_get_currency_from_iso3(self): assert Country.get_currency_from_iso3("jpn") == "JPY" @@ -231,200 +237,208 @@ def test_get_currency_from_iso3(self): Country.get_currency_from_iso3("abc", exception=LocationError) def test_get_country_info_from_iso2(self): - assert Country.get_country_info_from_iso2("jp") == {'Admin Level': '0', - 'Appears in DGACM list': 'Y', - 'Appears in UNTERM list': 'Y', - 'Arabic Short': 'اليابان', - 'Chinese Short': '日本', - 'Concatenation': '112 - Japan', - 'Currency': 'JPY', - 'DGACM Alt Term': None, - 'Deprecated': 'N', - 'English Formal': 'Japan', - 'English Short': 'Japan', - 'French Short': 'Japon', - 'HPC Tools API ID': '112', - 'HPC Tools Alt Term': None, - 'Has HRP': None, - 'ID': '112', - 'ISO 3166-1 Alpha 2-Codes': 'JP', - 'ISO 3166-1 Alpha 3-Codes': 'JPN', - 'ISO Alt Term': None, - 'In GHO': None, - 'Independent': 'Y', - 'Intermediate Region Code': None, - 'Intermediate Region Name': None, - 'Latitude': '37.63209801', - 'Longitude': '138.0812256', - 'M49 Arabic': 'اليابان', - 'M49 Chinese': '日本', - 'M49 English': 'Japan', - 'M49 French': 'Japon', - 'M49 Russian': 'Япония', - 'M49 Spanish': 'Japón', - 'Preferred Term': 'Japan', - 'RW API Alt Term': None, - 'RW ID': '128', - 'RW Short Name': None, - 'Reference Period Start': '1974-01-01', - 'Regex': 'japan', - 'Region Code': '142', - 'Region Name': 'Asia', - 'Russian Short': 'Япония', - 'Spanish Short': 'Japón', - 'Sub-region Code': '30', - 'Sub-region Name': 'Eastern Asia', - 'World Bank Income Level': 'High', - 'm49 numerical code': '392', - 'x Alpha2 codes': None, - 'x Alpha3 codes': None} + assert Country.get_country_info_from_iso2("jp") == { + "Admin Level": "0", + "Appears in DGACM list": "Y", + "Appears in UNTERM list": "Y", + "Arabic Short": "اليابان", + "Chinese Short": "日本", + "Concatenation": "112 - Japan", + "Currency": "JPY", + "DGACM Alt Term": None, + "Deprecated": "N", + "English Formal": "Japan", + "English Short": "Japan", + "French Short": "Japon", + "HPC Tools API ID": "112", + "HPC Tools Alt Term": None, + "Has HRP": None, + "ID": "112", + "ISO 3166-1 Alpha 2-Codes": "JP", + "ISO 3166-1 Alpha 3-Codes": "JPN", + "ISO Alt Term": None, + "In GHO": None, + "Independent": "Y", + "Intermediate Region Code": None, + "Intermediate Region Name": None, + "Latitude": "37.63209801", + "Longitude": "138.0812256", + "M49 Arabic": "اليابان", + "M49 Chinese": "日本", + "M49 English": "Japan", + "M49 French": "Japon", + "M49 Russian": "Япония", + "M49 Spanish": "Japón", + "Preferred Term": "Japan", + "RW API Alt Term": None, + "RW ID": "128", + "RW Short Name": None, + "Reference Period Start": "1974-01-01", + "Regex": "japan", + "Region Code": "142", + "Region Name": "Asia", + "Russian Short": "Япония", + "Spanish Short": "Japón", + "Sub-region Code": "30", + "Sub-region Name": "Eastern Asia", + "World Bank Income Level": "High", + "m49 numerical code": "392", + "x Alpha2 codes": None, + "x Alpha3 codes": None, + } assert Country.get_country_info_from_iso2("ab") is None - assert Country.get_country_info_from_iso2("TW") == {'Admin Level': '0', - 'Appears in DGACM list': None, - 'Appears in UNTERM list': None, - 'Arabic Short': None, - 'Chinese Short': None, - 'Concatenation': '218 - Taiwan (Province of China)', - 'Currency': 'TWD', - 'DGACM Alt Term': None, - 'Deprecated': 'N', - 'English Formal': None, - 'English Short': 'Taiwan (Province of China)', - 'French Short': None, - 'HPC Tools API ID': '219', - 'HPC Tools Alt Term': 'Taiwan, Province of China', - 'Has HRP': None, - 'ID': '218', - 'ISO 3166-1 Alpha 2-Codes': 'TW', - 'ISO 3166-1 Alpha 3-Codes': 'TWN', - 'ISO Alt Term': None, - 'In GHO': None, - 'Independent': 'N', - 'Intermediate Region Code': None, - 'Intermediate Region Name': None, - 'Latitude': '23.74652012', - 'Longitude': '120.9621301', - 'M49 Arabic': None, - 'M49 Chinese': None, - 'M49 English': None, - 'M49 French': None, - 'M49 Russian': None, - 'M49 Spanish': None, - 'Preferred Term': 'Taiwan (Province of China)', - 'RW API Alt Term': 'China - Taiwan Province', - 'RW ID': '61', - 'RW Short Name': None, - 'Reference Period Start': '1974-01-01', - 'Regex': 'taiwan|taipei|formosa|^(?!.*peo)(?=.*rep).*china', - 'Region Code': '142', - 'Region Name': 'Asia', - 'Russian Short': None, - 'Spanish Short': None, - 'Sub-region Code': '30', - 'Sub-region Name': 'Eastern Asia', - 'World Bank Income Level': 'High', - 'm49 numerical code': '158', - 'x Alpha2 codes': None, - 'x Alpha3 codes': None} + assert Country.get_country_info_from_iso2("TW") == { + "Admin Level": "0", + "Appears in DGACM list": None, + "Appears in UNTERM list": None, + "Arabic Short": None, + "Chinese Short": None, + "Concatenation": "218 - Taiwan (Province of China)", + "Currency": "TWD", + "DGACM Alt Term": None, + "Deprecated": "N", + "English Formal": None, + "English Short": "Taiwan (Province of China)", + "French Short": None, + "HPC Tools API ID": "219", + "HPC Tools Alt Term": "Taiwan, Province of China", + "Has HRP": None, + "ID": "218", + "ISO 3166-1 Alpha 2-Codes": "TW", + "ISO 3166-1 Alpha 3-Codes": "TWN", + "ISO Alt Term": None, + "In GHO": None, + "Independent": "N", + "Intermediate Region Code": None, + "Intermediate Region Name": None, + "Latitude": "23.74652012", + "Longitude": "120.9621301", + "M49 Arabic": None, + "M49 Chinese": None, + "M49 English": None, + "M49 French": None, + "M49 Russian": None, + "M49 Spanish": None, + "Preferred Term": "Taiwan (Province of China)", + "RW API Alt Term": "China - Taiwan Province", + "RW ID": "61", + "RW Short Name": None, + "Reference Period Start": "1974-01-01", + "Regex": "taiwan|taipei|formosa|^(?!.*peo)(?=.*rep).*china", + "Region Code": "142", + "Region Name": "Asia", + "Russian Short": None, + "Spanish Short": None, + "Sub-region Code": "30", + "Sub-region Name": "Eastern Asia", + "World Bank Income Level": "High", + "m49 numerical code": "158", + "x Alpha2 codes": None, + "x Alpha3 codes": None, + } - assert Country.get_country_info_from_iso2("PS") == {'Admin Level': '0', - 'Appears in DGACM list': None, - 'Appears in UNTERM list': 'Y', - 'Arabic Short': 'دولة فلسطين', - 'Chinese Short': '巴勒斯坦国', - 'Concatenation': '170 - State of Palestine', - 'Currency': 'ILS', - 'DGACM Alt Term': None, - 'Deprecated': 'N', - 'English Formal': 'the State of Palestine', - 'English Short': 'State of Palestine', - 'French Short': 'État de Palestine', - 'HPC Tools API ID': '171', - 'HPC Tools Alt Term': 'occupied Palestinian territory', - 'Has HRP': None, - 'ID': '170', - 'ISO 3166-1 Alpha 2-Codes': 'PS', - 'ISO 3166-1 Alpha 3-Codes': 'PSE', - 'ISO Alt Term': 'Palestine, State of', - 'In GHO': 'Y', - 'Independent': 'Y', - 'Intermediate Region Code': None, - 'Intermediate Region Name': None, - 'Latitude': '31.99084142', - 'Longitude': '35.30744047', - 'M49 Arabic': 'دولة فلسطين', - 'M49 Chinese': '巴勒斯坦国', - 'M49 English': 'State of Palestine', - 'M49 French': 'État de Palestine', - 'M49 Russian': 'Государство Палестина', - 'M49 Spanish': 'Estado de Palestina', - 'Name Override': 'oPt', - 'Preferred Term': 'State of Palestine', - 'RW API Alt Term': 'occupied Palestinian territory', - 'RW ID': '180', - 'RW Short Name': 'oPt', - 'Reference Period Start': '2013-02-06', - 'Regex': 'palestin|\\bgaza|west.?bank', - 'Region Code': '142', - 'Region Name': 'Asia', - 'Russian Short': 'Государство Палестина', - 'Spanish Short': 'Estado de Palestina', - 'Sub-region Code': '145', - 'Sub-region Name': 'Western Asia', - 'World Bank Income Level': 'Upper middle', - 'm49 numerical code': '275', - 'x Alpha2 codes': None, - 'x Alpha3 codes': None} + assert Country.get_country_info_from_iso2("PS") == { + "Admin Level": "0", + "Appears in DGACM list": None, + "Appears in UNTERM list": "Y", + "Arabic Short": "دولة فلسطين", + "Chinese Short": "巴勒斯坦国", + "Concatenation": "170 - State of Palestine", + "Currency": "ILS", + "DGACM Alt Term": None, + "Deprecated": "N", + "English Formal": "the State of Palestine", + "English Short": "State of Palestine", + "French Short": "État de Palestine", + "HPC Tools API ID": "171", + "HPC Tools Alt Term": "occupied Palestinian territory", + "Has HRP": None, + "ID": "170", + "ISO 3166-1 Alpha 2-Codes": "PS", + "ISO 3166-1 Alpha 3-Codes": "PSE", + "ISO Alt Term": "Palestine, State of", + "In GHO": "Y", + "Independent": "Y", + "Intermediate Region Code": None, + "Intermediate Region Name": None, + "Latitude": "31.99084142", + "Longitude": "35.30744047", + "M49 Arabic": "دولة فلسطين", + "M49 Chinese": "巴勒斯坦国", + "M49 English": "State of Palestine", + "M49 French": "État de Palestine", + "M49 Russian": "Государство Палестина", + "M49 Spanish": "Estado de Palestina", + "Name Override": "oPt", + "Preferred Term": "State of Palestine", + "RW API Alt Term": "occupied Palestinian territory", + "RW ID": "180", + "RW Short Name": "oPt", + "Reference Period Start": "2013-02-06", + "Regex": "palestin|\\bgaza|west.?bank", + "Region Code": "142", + "Region Name": "Asia", + "Russian Short": "Государство Палестина", + "Spanish Short": "Estado de Palestina", + "Sub-region Code": "145", + "Sub-region Name": "Western Asia", + "World Bank Income Level": "Upper middle", + "m49 numerical code": "275", + "x Alpha2 codes": None, + "x Alpha3 codes": None, + } with pytest.raises(LocationError): Country.get_country_info_from_iso2("XK", exception=LocationError) self.setup_unofficial_date() - assert Country.get_country_info_from_iso2("XK") == {'Admin Level': None, - 'Appears in DGACM list': None, - 'Appears in UNTERM list': None, - 'Arabic Short': None, - 'Chinese Short': None, - 'Concatenation': '266 - Kosovo', - 'Currency': 'EUR', - 'DGACM Alt Term': None, - 'Deprecated': 'N', - 'English Formal': None, - 'English Short': 'Kosovo', - 'French Short': None, - 'HPC Tools API ID': None, - 'HPC Tools Alt Term': None, - 'Has HRP': None, - 'ID': '266', - 'ISO 3166-1 Alpha 2-Codes': None, - 'ISO 3166-1 Alpha 3-Codes': None, - 'ISO Alt Term': None, - 'In GHO': None, - 'Independent': 'N', - 'Intermediate Region Code': None, - 'Intermediate Region Name': None, - 'Latitude': '42.61901705', - 'Longitude': '20.90987836', - 'M49 Arabic': None, - 'M49 Chinese': None, - 'M49 English': None, - 'M49 French': None, - 'M49 Russian': None, - 'M49 Spanish': None, - 'Preferred Term': 'Kosovo', - 'RW API Alt Term': None, - 'RW ID': None, - 'RW Short Name': None, - 'Reference Period Start': '1974-01-01', - 'Regex': 'kosovo', - 'Region Code': '150', - 'Region Name': 'Europe', - 'Russian Short': None, - 'Spanish Short': None, - 'Sub-region Code': '39', - 'Sub-region Name': 'Southern Europe', - 'World Bank Income Level': None, - 'm49 numerical code': None, - 'x Alpha2 codes': 'XK', - 'x Alpha3 codes': 'XKX'} + assert Country.get_country_info_from_iso2("XK") == { + "Admin Level": None, + "Appears in DGACM list": None, + "Appears in UNTERM list": None, + "Arabic Short": None, + "Chinese Short": None, + "Concatenation": "266 - Kosovo", + "Currency": "EUR", + "DGACM Alt Term": None, + "Deprecated": "N", + "English Formal": None, + "English Short": "Kosovo", + "French Short": None, + "HPC Tools API ID": None, + "HPC Tools Alt Term": None, + "Has HRP": None, + "ID": "266", + "ISO 3166-1 Alpha 2-Codes": None, + "ISO 3166-1 Alpha 3-Codes": None, + "ISO Alt Term": None, + "In GHO": None, + "Independent": "N", + "Intermediate Region Code": None, + "Intermediate Region Name": None, + "Latitude": "42.61901705", + "Longitude": "20.90987836", + "M49 Arabic": None, + "M49 Chinese": None, + "M49 English": None, + "M49 French": None, + "M49 Russian": None, + "M49 Spanish": None, + "Preferred Term": "Kosovo", + "RW API Alt Term": None, + "RW ID": None, + "RW Short Name": None, + "Reference Period Start": "1974-01-01", + "Regex": "kosovo", + "Region Code": "150", + "Region Name": "Europe", + "Russian Short": None, + "Spanish Short": None, + "Sub-region Code": "39", + "Sub-region Name": "Southern Europe", + "World Bank Income Level": None, + "m49 numerical code": None, + "x Alpha2 codes": "XK", + "x Alpha3 codes": "XKX", + } with pytest.raises(LocationError): Country.get_country_info_from_iso2("ab", exception=LocationError) @@ -477,148 +491,154 @@ def test_get_iso3_from_m49(self): Country.get_iso3_from_m49(9999, exception=LocationError) def test_get_country_info_from_m49(self): - assert Country.get_country_info_from_m49(4) == {'Admin Level': '0', - 'Appears in DGACM list': 'Y', - 'Appears in UNTERM list': 'Y', - 'Arabic Short': 'أفغانستان', - 'Chinese Short': '阿富汗', - 'Concatenation': '1 - Afghanistan', - 'Currency': 'AFN', - 'DGACM Alt Term': None, - 'Deprecated': 'N', - 'English Formal': 'the Islamic Republic of Afghanistan', - 'English Short': 'Afghanistan', - 'French Short': 'Afghanistan', - 'HPC Tools API ID': '1', - 'HPC Tools Alt Term': None, - 'Has HRP': 'Y', - 'ID': '1', - 'ISO 3166-1 Alpha 2-Codes': 'AF', - 'ISO 3166-1 Alpha 3-Codes': 'AFG', - 'ISO Alt Term': None, - 'In GHO': 'Y', - 'Independent': 'Y', - 'Intermediate Region Code': None, - 'Intermediate Region Name': None, - 'Latitude': '33.83147477', - 'Longitude': '66.02621828', - 'M49 Arabic': 'أفغانستان', - 'M49 Chinese': '阿富汗', - 'M49 English': 'Afghanistan', - 'M49 French': 'Afghanistan', - 'M49 Russian': 'Афганистан', - 'M49 Spanish': 'Afganistán', - 'Preferred Term': 'Afghanistan', - 'RW API Alt Term': None, - 'RW ID': '13', - 'RW Short Name': None, - 'Reference Period Start': '2004-01-26', - 'Regex': 'afghan', - 'Region Code': '142', - 'Region Name': 'Asia', - 'Russian Short': 'Афганистан', - 'Spanish Short': 'Afganistán', - 'Sub-region Code': '34', - 'Sub-region Name': 'Southern Asia', - 'World Bank Income Level': 'Low', - 'm49 numerical code': '4', - 'x Alpha2 codes': None, - 'x Alpha3 codes': None} - assert Country.get_country_info_from_m49(882) == {'Admin Level': '0', - 'Appears in DGACM list': 'Y', - 'Appears in UNTERM list': 'Y', - 'Arabic Short': 'ساموا', - 'Chinese Short': '萨摩亚', - 'Concatenation': '192 - Samoa', - 'Currency': 'WST', - 'DGACM Alt Term': None, - 'Deprecated': 'N', - 'English Formal': 'the Independent State of Samoa', - 'English Short': 'Samoa', - 'French Short': 'Samoa', - 'HPC Tools API ID': '193', - 'HPC Tools Alt Term': None, - 'Has HRP': None, - 'ID': '192', - 'ISO 3166-1 Alpha 2-Codes': 'WS', - 'ISO 3166-1 Alpha 3-Codes': 'WSM', - 'ISO Alt Term': None, - 'In GHO': None, - 'Independent': 'Y', - 'Intermediate Region Code': None, - 'Intermediate Region Name': None, - 'Latitude': '-13.16992041', - 'Longitude': '-173.5139768', - 'M49 Arabic': 'ساموا', - 'M49 Chinese': '萨摩亚', - 'M49 English': 'Samoa', - 'M49 French': 'Samoa', - 'M49 Russian': 'Самоа', - 'M49 Spanish': 'Samoa', - 'Preferred Term': 'Samoa', - 'RW API Alt Term': None, - 'RW ID': '204', - 'RW Short Name': None, - 'Reference Period Start': '1998-02-05', - 'Regex': '^(?!.*amer).*samoa', - 'Region Code': '9', - 'Region Name': 'Oceania', - 'Russian Short': 'Самоа', - 'Spanish Short': 'Samoa', - 'Sub-region Code': '61', - 'Sub-region Name': 'Polynesia', - 'World Bank Income Level': 'Lower middle', - 'm49 numerical code': '882', - 'x Alpha2 codes': None, - 'x Alpha3 codes': None} - assert Country.get_country_info_from_m49(275) == {'Admin Level': '0', - 'Appears in DGACM list': None, - 'Appears in UNTERM list': 'Y', - 'Arabic Short': 'دولة فلسطين', - 'Chinese Short': '巴勒斯坦国', - 'Concatenation': '170 - State of Palestine', - 'Currency': 'ILS', - 'DGACM Alt Term': None, - 'Deprecated': 'N', - 'English Formal': 'the State of Palestine', - 'English Short': 'State of Palestine', - 'French Short': 'État de Palestine', - 'HPC Tools API ID': '171', - 'HPC Tools Alt Term': 'occupied Palestinian territory', - 'Has HRP': None, - 'ID': '170', - 'ISO 3166-1 Alpha 2-Codes': 'PS', - 'ISO 3166-1 Alpha 3-Codes': 'PSE', - 'ISO Alt Term': 'Palestine, State of', - 'In GHO': 'Y', - 'Independent': 'Y', - 'Intermediate Region Code': None, - 'Intermediate Region Name': None, - 'Latitude': '31.99084142', - 'Longitude': '35.30744047', - 'M49 Arabic': 'دولة فلسطين', - 'M49 Chinese': '巴勒斯坦国', - 'M49 English': 'State of Palestine', - 'M49 French': 'État de Palestine', - 'M49 Russian': 'Государство Палестина', - 'M49 Spanish': 'Estado de Palestina', - 'Name Override': 'oPt', - 'Preferred Term': 'State of Palestine', - 'RW API Alt Term': 'occupied Palestinian territory', - 'RW ID': '180', - 'RW Short Name': 'oPt', - 'Reference Period Start': '2013-02-06', - 'Regex': 'palestin|\\bgaza|west.?bank', - 'Region Code': '142', - 'Region Name': 'Asia', - 'Russian Short': 'Государство Палестина', - 'Spanish Short': 'Estado de Palestina', - 'Sub-region Code': '145', - 'Sub-region Name': 'Western Asia', - 'World Bank Income Level': 'Upper middle', - 'm49 numerical code': '275', - 'x Alpha2 codes': None, - 'x Alpha3 codes': None} + assert Country.get_country_info_from_m49(4) == { + "Admin Level": "0", + "Appears in DGACM list": "Y", + "Appears in UNTERM list": "Y", + "Arabic Short": "أفغانستان", + "Chinese Short": "阿富汗", + "Concatenation": "1 - Afghanistan", + "Currency": "AFN", + "DGACM Alt Term": None, + "Deprecated": "N", + "English Formal": "the Islamic Republic of Afghanistan", + "English Short": "Afghanistan", + "French Short": "Afghanistan", + "HPC Tools API ID": "1", + "HPC Tools Alt Term": None, + "Has HRP": "Y", + "ID": "1", + "ISO 3166-1 Alpha 2-Codes": "AF", + "ISO 3166-1 Alpha 3-Codes": "AFG", + "ISO Alt Term": None, + "In GHO": "Y", + "Independent": "Y", + "Intermediate Region Code": None, + "Intermediate Region Name": None, + "Latitude": "33.83147477", + "Longitude": "66.02621828", + "M49 Arabic": "أفغانستان", + "M49 Chinese": "阿富汗", + "M49 English": "Afghanistan", + "M49 French": "Afghanistan", + "M49 Russian": "Афганистан", + "M49 Spanish": "Afganistán", + "Preferred Term": "Afghanistan", + "RW API Alt Term": None, + "RW ID": "13", + "RW Short Name": None, + "Reference Period Start": "2004-01-26", + "Regex": "afghan", + "Region Code": "142", + "Region Name": "Asia", + "Russian Short": "Афганистан", + "Spanish Short": "Afganistán", + "Sub-region Code": "34", + "Sub-region Name": "Southern Asia", + "World Bank Income Level": "Low", + "m49 numerical code": "4", + "x Alpha2 codes": None, + "x Alpha3 codes": None, + } + assert Country.get_country_info_from_m49(882) == { + "Admin Level": "0", + "Appears in DGACM list": "Y", + "Appears in UNTERM list": "Y", + "Arabic Short": "ساموا", + "Chinese Short": "萨摩亚", + "Concatenation": "192 - Samoa", + "Currency": "WST", + "DGACM Alt Term": None, + "Deprecated": "N", + "English Formal": "the Independent State of Samoa", + "English Short": "Samoa", + "French Short": "Samoa", + "HPC Tools API ID": "193", + "HPC Tools Alt Term": None, + "Has HRP": None, + "ID": "192", + "ISO 3166-1 Alpha 2-Codes": "WS", + "ISO 3166-1 Alpha 3-Codes": "WSM", + "ISO Alt Term": None, + "In GHO": None, + "Independent": "Y", + "Intermediate Region Code": None, + "Intermediate Region Name": None, + "Latitude": "-13.16992041", + "Longitude": "-173.5139768", + "M49 Arabic": "ساموا", + "M49 Chinese": "萨摩亚", + "M49 English": "Samoa", + "M49 French": "Samoa", + "M49 Russian": "Самоа", + "M49 Spanish": "Samoa", + "Preferred Term": "Samoa", + "RW API Alt Term": None, + "RW ID": "204", + "RW Short Name": None, + "Reference Period Start": "1998-02-05", + "Regex": "^(?!.*amer).*samoa", + "Region Code": "9", + "Region Name": "Oceania", + "Russian Short": "Самоа", + "Spanish Short": "Samoa", + "Sub-region Code": "61", + "Sub-region Name": "Polynesia", + "World Bank Income Level": "Lower middle", + "m49 numerical code": "882", + "x Alpha2 codes": None, + "x Alpha3 codes": None, + } + assert Country.get_country_info_from_m49(275) == { + "Admin Level": "0", + "Appears in DGACM list": None, + "Appears in UNTERM list": "Y", + "Arabic Short": "دولة فلسطين", + "Chinese Short": "巴勒斯坦国", + "Concatenation": "170 - State of Palestine", + "Currency": "ILS", + "DGACM Alt Term": None, + "Deprecated": "N", + "English Formal": "the State of Palestine", + "English Short": "State of Palestine", + "French Short": "État de Palestine", + "HPC Tools API ID": "171", + "HPC Tools Alt Term": "occupied Palestinian territory", + "Has HRP": None, + "ID": "170", + "ISO 3166-1 Alpha 2-Codes": "PS", + "ISO 3166-1 Alpha 3-Codes": "PSE", + "ISO Alt Term": "Palestine, State of", + "In GHO": "Y", + "Independent": "Y", + "Intermediate Region Code": None, + "Intermediate Region Name": None, + "Latitude": "31.99084142", + "Longitude": "35.30744047", + "M49 Arabic": "دولة فلسطين", + "M49 Chinese": "巴勒斯坦国", + "M49 English": "State of Palestine", + "M49 French": "État de Palestine", + "M49 Russian": "Государство Палестина", + "M49 Spanish": "Estado de Palestina", + "Name Override": "oPt", + "Preferred Term": "State of Palestine", + "RW API Alt Term": "occupied Palestinian territory", + "RW ID": "180", + "RW Short Name": "oPt", + "Reference Period Start": "2013-02-06", + "Regex": "palestin|\\bgaza|west.?bank", + "Region Code": "142", + "Region Name": "Asia", + "Russian Short": "Государство Палестина", + "Spanish Short": "Estado de Palestina", + "Sub-region Code": "145", + "Sub-region Name": "Western Asia", + "World Bank Income Level": "Upper middle", + "m49 numerical code": "275", + "x Alpha2 codes": None, + "x Alpha3 codes": None, + } assert Country.get_country_info_from_m49(9999) is None with pytest.raises(LocationError): @@ -1005,7 +1025,10 @@ def test_use_live_default(self): def test_ocha_feed_file_working(self): with Download(user_agent="test") as downloader: - _, countries = downloader.get_tabular_rows(script_dir_plus_file("Countries_UZB_Deleted.csv", TestCountry), dict_form=True) + _, countries = downloader.get_tabular_rows( + script_dir_plus_file("Countries_UZB_Deleted.csv", TestCountry), + dict_form=True, + ) Country.set_countriesdata(countries) assert Country.get_iso3_country_code("UZBEKISTAN") is None assert Country.get_iso3_country_code("south sudan") == "SSD" diff --git a/uv.lock b/uv.lock index 0b74481..979fc0c 100644 --- a/uv.lock +++ b/uv.lock @@ -379,6 +379,7 @@ name = "hdx-python-country" source = { editable = "." } dependencies = [ { name = "hdx-python-utilities" }, + { name = "libhxl" }, { name = "tenacity" }, ] @@ -398,6 +399,7 @@ dev = [ [package.metadata] requires-dist = [ { name = "hdx-python-utilities", specifier = ">=4.0.4" }, + { name = "libhxl", specifier = ">=5.2.2" }, { name = "mkapi", marker = "extra == 'docs'" }, { name = "tenacity" }, ] @@ -597,6 +599,18 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/f8/62/d9ba6323b9202dd2fe166beab8a86d29465c41a0288cbe229fac60c1ab8d/jsonlines-4.0.0-py3-none-any.whl", hash = "sha256:185b334ff2ca5a91362993f42e83588a360cf95ce4b71a73548502bda52a7c55", size = 8701, upload-time = "2023-09-01T12:34:42.563Z" }, ] +[[package]] +name = "jsonpath-ng" +version = "1.7.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "ply" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/6d/86/08646239a313f895186ff0a4573452038eed8c86f54380b3ebac34d32fb2/jsonpath-ng-1.7.0.tar.gz", hash = "sha256:f6f5f7fd4e5ff79c785f1573b394043b39849fb2bb47bcead935d12b00beab3c", size = 37838, upload-time = "2024-10-11T15:41:42.404Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/35/5a/73ecb3d82f8615f32ccdadeb9356726d6cae3a4bbc840b437ceb95708063/jsonpath_ng-1.7.0-py3-none-any.whl", hash = "sha256:f3d7f9e848cba1b6da28c55b1c26ff915dc9e0b1ba7e752a53d6da8d5cbd00b6", size = 30105, upload-time = "2024-11-20T17:58:30.418Z" }, +] + [[package]] name = "jsonschema" version = "4.26.0" @@ -624,6 +638,24 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/41/45/1a4ed80516f02155c51f51e8cedb3c1902296743db0bbc66608a0db2814f/jsonschema_specifications-2025.9.1-py3-none-any.whl", hash = "sha256:98802fee3a11ee76ecaca44429fda8a41bff98b00a0f2838151b113f210cc6fe", size = 18437, upload-time = "2025-09-08T01:34:57.871Z" }, ] +[[package]] +name = "libhxl" +version = "5.2.2" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "jsonpath-ng" }, + { name = "ply" }, + { name = "python-dateutil" }, + { name = "python-io-wrapper" }, + { name = "requests" }, + { name = "structlog" }, + { name = "unidecode" }, + { name = "urllib3" }, + { name = "wheel" }, + { name = "xlrd3" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/63/ad/c1dafb7c59e685692a2eeafce83245b7c5f46e05881fdb77a0cbb7c19c74/libhxl-5.2.2.tar.gz", hash = "sha256:3a74d9f23561bfcefd20e5229c574bc68dfc114fdb6ba1ba684d9e9d7ea52483", size = 127736, upload-time = "2024-10-25T09:19:11.202Z" } + [[package]] name = "loguru" version = "0.7.3" @@ -930,6 +962,15 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/54/20/4d324d65cc6d9205fabedc306948156824eb9f0ee1633355a8f7ec5c66bf/pluggy-1.6.0-py3-none-any.whl", hash = "sha256:e920276dd6813095e9377c0bc5566d94c932c33b27a3e3945d8389c374dd4746", size = 20538, upload-time = "2025-05-15T12:30:06.134Z" }, ] +[[package]] +name = "ply" +version = "3.11" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/e5/69/882ee5c9d017149285cab114ebeab373308ef0f874fcdac9beb90e0ac4da/ply-3.11.tar.gz", hash = "sha256:00c7c1aaa88358b9c765b6d3000c6eec0ba42abca5351b095321aef446081da3", size = 159130, upload-time = "2018-02-15T19:01:31.097Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/a3/58/35da89ee790598a0700ea49b2a66594140f44dec458c07e8e3d4979137fc/ply-3.11-py2.py3-none-any.whl", hash = "sha256:096f9b8350b65ebd2fd1346b12452efe5b9607f7482813ffca50c22722a807ce", size = 49567, upload-time = "2018-02-15T19:01:27.172Z" }, +] + [[package]] name = "pre-commit" version = "4.5.1" @@ -1157,6 +1198,12 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/ec/57/56b9bcc3c9c6a792fcbaf139543cee77261f3651ca9da0c93f5c1221264b/python_dateutil-2.9.0.post0-py2.py3-none-any.whl", hash = "sha256:a8b2bc7bffae282281c8140a97d3aa9c14da0b136dfe83f850eea9a5f7470427", size = 229892, upload-time = "2024-03-01T18:36:18.57Z" }, ] +[[package]] +name = "python-io-wrapper" +version = "0.3.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/d7/74/8dc5f7d0b7cc1a0ca9e5c320abf11adee2094998c93ae8c9c80d9a8323ff/python-io-wrapper-0.3.1.tar.gz", hash = "sha256:e3391787ff0d9870e739294c6392437915502153e695a017450aa46b6d091762", size = 3271, upload-time = "2022-11-14T15:00:10.932Z" } + [[package]] name = "python-slugify" version = "8.0.4" @@ -1498,6 +1545,18 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/b7/ce/149a00dd41f10bc29e5921b496af8b574d8413afcd5e30dfa0ed46c2cc5e/six-1.17.0-py2.py3-none-any.whl", hash = "sha256:4721f391ed90541fddacab5acf947aa0d3dc7d27b2e1e8eda2be8970586c3274", size = 11050, upload-time = "2024-12-04T17:35:26.475Z" }, ] +[[package]] +name = "structlog" +version = "25.5.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "typing-extensions", marker = "python_full_version < '3.11'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/ef/52/9ba0f43b686e7f3ddfeaa78ac3af750292662284b3661e91ad5494f21dbc/structlog-25.5.0.tar.gz", hash = "sha256:098522a3bebed9153d4570c6d0288abf80a031dfdb2048d59a49e9dc2190fc98", size = 1460830, upload-time = "2025-10-27T08:28:23.028Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/a8/45/a132b9074aa18e799b891b91ad72133c98d8042c70f6240e4c5f9dabee2f/structlog-25.5.0-py3-none-any.whl", hash = "sha256:a8453e9b9e636ec59bd9e79bbd4a72f025981b3ba0f5837aebf48f02f37a7f9f", size = 72510, upload-time = "2025-10-27T08:28:21.535Z" }, +] + [[package]] name = "tableschema-to-template" version = "0.0.13" @@ -1703,6 +1762,18 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/33/e8/e40370e6d74ddba47f002a32919d91310d6074130fe4e17dabcafc15cbf1/watchdog-6.0.0-py3-none-win_ia64.whl", hash = "sha256:a1914259fa9e1454315171103c6a30961236f508b9b623eae470268bbcc6a22f", size = 79067, upload-time = "2024-11-01T14:07:11.845Z" }, ] +[[package]] +name = "wheel" +version = "0.46.3" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "packaging" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/89/24/a2eb353a6edac9a0303977c4cb048134959dd2a51b48a269dfc9dde00c8a/wheel-0.46.3.tar.gz", hash = "sha256:e3e79874b07d776c40bd6033f8ddf76a7dad46a7b8aa1b2787a83083519a1803", size = 60605, upload-time = "2026-01-22T12:39:49.136Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/87/22/b76d483683216dde3d67cba61fb2444be8d5be289bf628c13fc0fd90e5f9/wheel-0.46.3-py3-none-any.whl", hash = "sha256:4b399d56c9d9338230118d705d9737a2a468ccca63d5e813e2a4fc7815d8bc4d", size = 30557, upload-time = "2026-01-22T12:39:48.099Z" }, +] + [[package]] name = "win32-setctime" version = "1.2.0" @@ -1721,6 +1792,15 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/1a/62/c8d562e7766786ba6587d09c5a8ba9f718ed3fa8af7f4553e8f91c36f302/xlrd-2.0.2-py2.py3-none-any.whl", hash = "sha256:ea762c3d29f4cca48d82df517b6d89fbce4db3107f9d78713e48cd321d5c9aa9", size = 96555, upload-time = "2025-06-14T08:46:37.766Z" }, ] +[[package]] +name = "xlrd3" +version = "1.1.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/79/db/88d8d49ddacc203956ecb98dc86c6ffeee6e933ef1f50da9b369de518f7f/xlrd3-1.1.0.tar.gz", hash = "sha256:20e6ed2e5f7f8b4ab61e30faffebceff6fab348332b4c915373f0a72742dc177", size = 58919847, upload-time = "2021-04-25T12:27:10.03Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/5d/08/fce745025e58f160e7dcb5a45d4d43eb0bd44c0d8851425be87ef90271fa/xlrd3-1.1.0-py2.py3-none-any.whl", hash = "sha256:8e8e808f938144e7936a6e07c1d57be7a0f6c6f5b37c9c67974b43246d8aacb6", size = 105268, upload-time = "2021-04-25T12:26:55.264Z" }, +] + [[package]] name = "xlsx2csv" version = "0.8.4"