{"id":16024451,"url":"https://github.com/ricco386/identifier-tools","last_synced_at":"2025-11-08T22:30:35.297Z","repository":{"id":59672285,"uuid":"537503143","full_name":"ricco386/identifier-tools","owner":"ricco386","description":"Library that helps working with different subject identifier types. Purpose of this library is to validate string if it matches the identifier format and if possible calculate checksum if it is correct for identifier.","archived":false,"fork":false,"pushed_at":"2023-01-03T15:55:41.000Z","size":88,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-01-28T10:17:38.212Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ricco386.png","metadata":{"files":{"readme":"README.rst","changelog":"CHANGELOG","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2022-09-16T14:54:20.000Z","updated_at":"2022-09-16T16:40:33.000Z","dependencies_parsed_at":"2023-02-01T07:31:06.592Z","dependency_job_id":null,"html_url":"https://github.com/ricco386/identifier-tools","commit_stats":null,"previous_names":[],"tags_count":17,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ricco386%2Fidentifier-tools","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ricco386%2Fidentifier-tools/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ricco386%2Fidentifier-tools/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ricco386%2Fidentifier-tools/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ricco386","download_url":"https://codeload.github.com/ricco386/identifier-tools/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":239565650,"owners_count":19660154,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-10-08T19:20:44.354Z","updated_at":"2025-11-08T22:30:35.266Z","avatar_url":"https://github.com/ricco386.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"Identifier Tools\n################\n\nLibrary that helps working with different entity (legal person, entrepreneur, subject, etc.) identifier types.\n\nPurpose of this library is to validate string if it matches the identifier format and if possible calculate checksum\nif it is correct for identifier.\n\nIdentifier format checking is based on European Central Bank - `List of national identifiers\n\u003chttps://www.ecb.europa.eu/stats/money/aggregates/anacredit/shared/pdf/List_of_national_identifiers.xlsx\u003e`_ spreadsheet.\n\nIdentifier format is extended by identifiers issued by Národná banka Slovenska - `Národné voľby a špecifiká v projekte\nAnaCredit\n\u003chttps://nbs.sk/dohlad-nad-financnym-trhom/registre/register-bankovych-uverov-a-zaruk-rbuz/projekt-anacredit/\u003e`_.\n\nCurrently supported identifiers for checksum calculation: IČO, IČO NI, LEI, NIČ, all available identifiers and their\nformat is listed in file `identifier_tools/formats_constants.py\n\u003chttps://github.com/ricco386/identifier-tools/blob/main/identifier_tools/formats_constants.py#L193\u003e`_.\n\nIdentifier Tools library has support for ISO 7064 standard that is used to validate NIČ, LEI, IBAN among other things...\nRead more at wikipedia: https://en.wikipedia.org/wiki/ISO_7064\n\n\nInstallation\n------------\n\nInstall the released version::\n\n    pip install identifier-tools\n\nUsage\n-----\n\nBasic usage is to verify if the identifier has correct format, or if the identifier can be used in particular country:\n\n    \u003e\u003e\u003e from identifier_tools.formats import verify_identifier_format, verify_national_identifier_country\n    \u003e\u003e\u003e verify_identifier_format(identifier_type=\"GEN_VAT_CD\", identifier=\"1111\")\n    True\n    \u003e\u003e\u003e verify_national_identifier_country(country_code=\"SK\", national_id_type=\"SK_ICO_CD\")\n    True\n\nYou can list all available identifiers in a particular country. Some countries has multiple identifiers with\ndifferent priority, you can get the identifier rank as well:\n\n    \u003e\u003e\u003e from identifier_tools.formats import get_country_identifiers, get_identifier_rank\n    \u003e\u003e\u003e get_country_identifiers(\"DE\")\n    [(1, 'DE_TRD_RGSTR_CD'), (2, 'DE_VAT_CD'), (3, 'DE_TAX_CD'), (4, 'DE_NOTAP_CD')]\n    \u003e\u003e\u003e get_identifier_rank(\"DE_TAX_CD\")\n    3\n\nIf you want to manually verify the identifier, it is possible to find a link provided by ECB:\n\n    \u003e\u003e\u003e from identifier_tools.mappers import get_verification_register\n    \u003e\u003e\u003e get_verification_register('SK_ICO_CD')\n    'https://rpo.statistics.sk/rpo'\n    \u003e\u003e\u003e get_verification_register('US_EIN_CD')\n    ('https://www.irs.gov/businesses/small-businesses-self-employed/employer-id-numbers-eins', 'https://eintaxid.com/')\n\n\nDevelopment\n-----------\n\n**We look forward to any kind of improvements and support for new identifiers.**\n\nIf you do add support for any identifier, checksum, etc. please add a link to the specific documentation that was\nused for implementation, so we can reference to it.\n\nClone a repository locally and make sure you work in your own branch and once you are happy with the functionality\ncreate pull request. All new code should be covered with tests. We try to use test driven development for the project.\n\n**If you find a bug feel free to create an issue with description**, how ever we appreciate even more if you create\nfailing test.\n\nRelease\n-------\n\nRelease is done via `twine \u003chttps://pypi.org/project/twine/\u003e`_. The whole package is uploaded in the form of .dist file.\n\nTo create .dist file use command::\n\n    python setup.py sdist bdist_wheel\n\nNow our binary .dist file is created, now we need to upload it using the below command::\n\n    python -m twine dist/*\n\nAlternatively if you want to selfhost in a custom PyPI repo you can also upload there as well::\n\n    python -m twine upload--repository-url https://gitlab.com/custom/repo/path dist/* --cert /custom/cert\n\n\nTesting\n=======\n\nTests are written in pytest and stored in tests directory. Library has 100% test coverage.\n**If you found an error, write a failing test first.**\n\nRun the tests by following command::\n\n    pytest identifier_tools\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fricco386%2Fidentifier-tools","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fricco386%2Fidentifier-tools","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fricco386%2Fidentifier-tools/lists"}