Skip to main content

Python package for validating Uruguayan identity document numbers.

Project description

ciuy

🇺🇾 🇪🇸 Documentación en español disponible aquí / Spanish documentation is available here.


Package for validating Uruguayan identity document numbers. Full documentation is available here.

The functions in this package work with strings and ignore any non-digit characters. Numbers are valid too. So for example, the following expressions represent the same document number:

'1.234.567-2'
'12345672'
12345672

This package includes the following functions:

validate_ci(ci: str) -> bool: Returns true if ci is a valid document number, returns false otherwise. ci is a string which represents a document number, including the validation digit. ci can be a number as well.

validation_digit(ci: str) -> str: Returns the validation digit for ci.

random() -> str: Returns a random document number (including validation digit) in the (100.000, 9.999.999) range.

Installation

$ pip install ciuy

Usage

>>> import ciuy
>>> ciuy.validate_ci("1.234.567-2")
True
>>> ciuy.validation_digit("1.234.567")
'2'
>>> ciuy.random()
'82405816'

Testing

This package includes some doctests, as well as unit tests that can be run with pytest.

After cloning the repository, you can run the doctests with:

$ python3 -m doctest ./ciuy/__init__.py -v
 (several lines ommited)
11 passed and 0 failed.
Test passed.

Use py.test to run the unit tests:

$ py.test
============================= test session starts ==============================
platform linux -- Python 3.8.1, pytest-5.3.5, py-1.8.1, pluggy-0.13.1
rootdir: /home/ciuy
collected 98 items     

tests\test_clean.py ..........                                           [ 10%]
tests\test_command_line.py ........................                      [ 34%]
tests\test_random_ci.py ..                                               [ 36%]
tests\test_validate_ci.py .......................................        [ 76%]
tests\test_validation_digit.py .......................                   [100%]

============================== 98 passed in 1.09s =============================

You can also use pytest to run all tests, including doctests, with:

$ py.test --doctest-modules

Command line

After installation, the following commands become available:

$ validate_ci 1.234.567-2
True
$ validation_digit 1.234.567
2
$ random_ci
82405816

Based on the ci_uy Ruby gem by Fernando Briano (link).

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ciuy-1.0.0.tar.gz (3.7 kB view details)

Uploaded Source

Built Distribution

ciuy-1.0.0-py3-none-any.whl (5.1 kB view details)

Uploaded Python 3

File details

Details for the file ciuy-1.0.0.tar.gz.

File metadata

  • Download URL: ciuy-1.0.0.tar.gz
  • Upload date:
  • Size: 3.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.21.0 setuptools/45.2.0 requests-toolbelt/0.9.1 tqdm/4.42.1 CPython/3.6.4

File hashes

Hashes for ciuy-1.0.0.tar.gz
Algorithm Hash digest
SHA256 3b9c1b314b44d6e559cd3ac40492595f1e5c0157128acf2c67e0ec7a7dc44c9c
MD5 97460ffa27f2c6db5dced619eae5649c
BLAKE2b-256 856819eaca0886a7fddb465efde3fd7a37835cde75cb3cc7fd4b93a9af22eb40

See more details on using hashes here.

File details

Details for the file ciuy-1.0.0-py3-none-any.whl.

File metadata

  • Download URL: ciuy-1.0.0-py3-none-any.whl
  • Upload date:
  • Size: 5.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.21.0 setuptools/45.2.0 requests-toolbelt/0.9.1 tqdm/4.42.1 CPython/3.6.4

File hashes

Hashes for ciuy-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 e073cfb5758d0f8c943bcf4c5cb8f362901f91e242c1577245ba60b4c433e375
MD5 9cfc00cde7fff3f146d06448f05cfb67
BLAKE2b-256 729209afe2888190a68d0bc767d7d1ec89f731767952df527ebb6e6396909c42

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page