{"id":28645085,"url":"https://github.com/harens/checkdigit","last_synced_at":"2025-06-13T00:33:51.470Z","repository":{"id":37083884,"uuid":"166576085","full_name":"harens/checkdigit","owner":"harens","description":"🔒 An easy-to-use check digit library for data validation","archived":false,"fork":false,"pushed_at":"2024-01-11T20:27:12.000Z","size":16004,"stargazers_count":33,"open_issues_count":11,"forks_count":7,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-05-26T17:22:29.396Z","etag":null,"topics":["check-digit","crc","credit-card","ean","gs1","gtin","isbn","luhn","luhn-algorithm","upc","verhoeff"],"latest_commit_sha":null,"homepage":"https://checkdigit.rtfd.io","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/harens.png","metadata":{"files":{"readme":"README.rst","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-01-19T17:50:21.000Z","updated_at":"2024-12-12T09:17:27.000Z","dependencies_parsed_at":"2023-02-14T10:46:49.761Z","dependency_job_id":"457484be-be38-4851-9b30-6b212644ec7a","html_url":"https://github.com/harens/checkdigit","commit_stats":null,"previous_names":[],"tags_count":14,"template":false,"template_full_name":null,"purl":"pkg:github/harens/checkdigit","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/harens%2Fcheckdigit","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/harens%2Fcheckdigit/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/harens%2Fcheckdigit/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/harens%2Fcheckdigit/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/harens","download_url":"https://codeload.github.com/harens/checkdigit/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/harens%2Fcheckdigit/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":259555585,"owners_count":22876035,"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":["check-digit","crc","credit-card","ean","gs1","gtin","isbn","luhn","luhn-algorithm","upc","verhoeff"],"created_at":"2025-06-13T00:33:38.769Z","updated_at":"2025-06-13T00:33:51.459Z","avatar_url":"https://github.com/harens.png","language":"Python","readme":".. raw:: html\n\n    \u003cp align=\"center\"\u003e\n        \u003ca href=\"#readme\"\u003e\n            \u003cimg alt=\"checkdigit logo\" src=\"https://raw.githubusercontent.com/harens/checkdigit/master/art/logo.png\"\u003e\n            \u003c!-- README inspired by loguru --\u003e\n        \u003c/a\u003e\n    \u003c/p\u003e\n    \u003cp align=\"center\"\u003e\n        \u003ca href=\"https://github.com/harens/checkdigit/actions\"\u003e\n            \u003cimg alt=\"GitHub Workflow Status\" src=\"https://img.shields.io/github/actions/workflow/status/harens/checkdigit/test.yml?logo=github\u0026style=flat-square\"\u003e\n        \u003c/a\u003e\n        \u003ca href=\"https://app.codecov.io/gh/harens/checkdigit\"\u003e\n            \u003cimg alt=\"Codecov\" src=\"https://img.shields.io/codecov/c/github/harens/checkdigit?logo=codecov\u0026style=flat-square\"\u003e\n        \u003c/a\u003e\n        \u003ca href=\"https://pepy.tech/project/checkdigit\"\u003e\n            \u003cimg alt=\"PyPI - Downloads\" src=\"https://img.shields.io/pypi/dm/checkdigit?logo=python\u0026logoColor=white\u0026style=flat-square\"\u003e\n        \u003c/a\u003e\n        \u003ca href=\"https://www.codefactor.io/repository/github/harens/checkdigit/\"\u003e\n            \u003cimg alt=\"CodeFactor Grade\" src=\"https://img.shields.io/codefactor/grade/github/harens/checkdigit?logo=codefactor\u0026style=flat-square\"\u003e\n        \u003c/a\u003e\n    \u003c/p\u003e\n    \u003cp align=\"center\"\u003e\n        \u003ca href=\"#readme\"\u003e\n            \u003cimg alt=\"checkdigit example\" src=\"https://raw.githubusercontent.com/harens/checkdigit/master/art/demo.gif\"\u003e\n        \u003c/a\u003e\n    \u003c/p\u003e\n\n=========\n\n.. raw:: html\n\n    \u003ca href=\"https://repology.org/project/python:checkdigit/versions\"\u003e\n        \u003cimg src=\"https://repology.org/badge/vertical-allrepos/python:checkdigit.svg\" alt=\"Packaging status\" align=\"right\"\u003e\n    \u003c/a\u003e\n\n**checkdigit** is a pure Python library built for identification numbers.\nYou want to validate a credit card number, or maybe even calculate a missing digit on an ISBN code?\nWe've got you covered 😎.\n\nWant to know more? Check out the `API Reference and documentation \u003chttps://checkdigit.readthedocs.io/en/latest/reference.html\u003e`_!\n\nInstallation\n------------\n\n`MacPorts \u003chttps://ports.macports.org/port/py-checkdigit/summary\u003e`_ 🍎\n*************************************************************************\n\n.. code-block::\n\n    sudo port install py-checkdigit\n\n`PyPi \u003chttps://pypi.org/project/checkdigit/\u003e`_ 🐍\n**************************************************\n\n.. code-block::\n\n    pip install checkdigit\n\n✨ Features\n------------\n\n* 📦 Works out of the box with all `supported Python versions \u003chttps://endoflife.date/python\u003e`_ (3.7-3.11).\n* ⌨️ `PEP 561 compatible \u003chttps://www.python.org/dev/peps/pep-0561\u003e`_, with built in support for type checking.\n* 🏃 Zero runtime dependencies. What you see is what you get.\n* 🧮 Capable of calculating missing digits or validating a block of data.\n* 📝 Extensive in-code comments and docstrings to explain how it works behind the scenes.\n\n✅ Supported Formats\n---------------------\n\n* `Even/Odd binary parity \u003chttps://checkdigit.readthedocs.io/en/latest/_autosummary/checkdigit.parity.html#module-checkdigit.parity\u003e`_\n* `CRC \u003chttps://checkdigit.readthedocs.io/en/latest/_autosummary/checkdigit.crc.html#module-checkdigit.crc\u003e`_\n* `GS1 Standards \u003chttps://checkdigit.readthedocs.io/en/latest/_autosummary/checkdigit.gs1.html#module-checkdigit.gs1\u003e`_\n    * EAN-8/13\n    * GDTI\n    * GLN\n    * SSCC\n    * UPC-A/E\n    * etc. *(all fixed length numeric GS1 data structures with a check digit)*\n* `ISBN-10/13 \u003chttps://checkdigit.readthedocs.io/en/latest/_autosummary/checkdigit.isbn.html#module-checkdigit.isbn\u003e`_\n* `Luhn \u003chttps://checkdigit.readthedocs.io/en/latest/_autosummary/checkdigit.luhn.html#module-checkdigit.luhn\u003e`_\n* `Verhoeff \u003chttps://checkdigit.readthedocs.io/en/latest/_autosummary/checkdigit.verhoeff.html#module-checkdigit.verhoeff\u003e`_\n\nFor each of these formats, we provide functions to validate them and calculate missing digits.\n\nDo you have any formats that you'd like to see supported? 🤔 Feel free to raise an issue,\nor even to send a pull request!\n\n✨ Contributors\n----------------\n\nThis project follows the `all-contributors \u003chttps://github.com/all-contributors/all-contributors\u003e`_ specification. Contributions of any kind are welcome!\n\nWant to help out? Check out the `contributing page \u003chttps://checkdigit.rtfd.io/en/latest/contributing.html\u003e`_.\n\nThanks goes to these wonderful people (`emoji key \u003chttps://allcontributors.org/docs/en/emoji-key\u003e`_):\n\n.. raw:: html\n\n    \u003c!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section --\u003e\n    \u003c!-- prettier-ignore-start --\u003e\n    \u003c!-- markdownlint-disable --\u003e\n    \u003ctable\u003e\n      \u003ctr\u003e\n        \u003ctd align=\"center\"\u003e\u003ca href=\"https://zeevox.net\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/8385172?v=4?s=100\" width=\"100px;\" alt=\"\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eTimothy Langer\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/harens/checkdigit/commits?author=ZeevoX\" title=\"Tests\"\u003e⚠️\u003c/a\u003e \u003ca href=\"https://github.com/harens/checkdigit/commits?author=ZeevoX\" title=\"Documentation\"\u003e📖\u003c/a\u003e\u003c/td\u003e\n        \u003ctd align=\"center\"\u003e\u003ca href=\"https://github.com/OtherBarry\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/6956537?v=4?s=100\" width=\"100px;\" alt=\"\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eCharlie Wilson\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/harens/checkdigit/commits?author=OtherBarry\" title=\"Code\"\u003e💻\u003c/a\u003e \u003ca href=\"https://github.com/harens/checkdigit/commits?author=OtherBarry\" title=\"Tests\"\u003e⚠️\u003c/a\u003e\u003c/td\u003e\n        \u003ctd align=\"center\"\u003e\u003ca href=\"https://github.com/sapieninja\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/60101890?v=4?s=100\" width=\"100px;\" alt=\"\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eMax Bowman\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/harens/checkdigit/commits?author=sapieninja\" title=\"Code\"\u003e💻\u003c/a\u003e \u003ca href=\"https://github.com/harens/checkdigit/commits?author=sapieninja\" title=\"Tests\"\u003e⚠️\u003c/a\u003e\u003c/td\u003e\n        \u003ctd align=\"center\"\u003e\u003ca href=\"http://mohsen.1.banan.byname.net/contact\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/39976397?v=4?s=100\" width=\"100px;\" alt=\"\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eMohsen BANAN\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/harens/checkdigit/issues?q=author%3AmohsenBanan\" title=\"Bug reports\"\u003e🐛\u003c/a\u003e\u003c/td\u003e\n      \u003c/tr\u003e\n    \u003c/table\u003e\n\n    \u003c!-- markdownlint-restore --\u003e\n    \u003c!-- prettier-ignore-end --\u003e\n\n    \u003c!-- ALL-CONTRIBUTORS-LIST:END --\u003e\n\n📙 License\n-----------\n\nThis project is licensed under `GPL-3.0-or-later \u003chttps://github.com/harens/checkdigit/blob/master/LICENSE\u003e`_.\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fharens%2Fcheckdigit","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fharens%2Fcheckdigit","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fharens%2Fcheckdigit/lists"}