Ares_util
+----------------+-----------------------------------------------------------------------------------------------------------------+
| Latest release | .. image:: https://img.shields.io/pypi/v/ares-util.svg |
| | :target: https://pypi.python.org/pypi/ares-util |
| | :alt: PyPi |
| | |
| | .. image:: https://img.shields.io/badge/license-MIT-blue.svg |
| | :target: https://pypi.python.org/pypi/ares-util/ |
| | :alt: MIT License |
| | |
| | .. image:: https://img.shields.io/pypi/implementation/ares-util.svg |
| | :target: https://pypi.python.org/pypi/ares-util/ |
| | :alt: Supported Python implementations |
| | |
| | .. image:: https://img.shields.io/pypi/pyversions/ares-util.svg |
| | :target: https://pypi.python.org/pypi/ares-util/ |
| | :alt: Supported Python versions |
+----------------+-----------------------------------------------------------------------------------------------------------------+
| CI | .. image:: https://img.shields.io/travis/illagrenan/ares_util.svg |
| | :target: https://travis-ci.org/illagrenan/ares_util |
| | :alt: TravisCI |
| | |
| | .. image:: https://img.shields.io/coveralls/illagrenan/ares_util.svg |
| | :target: https://coveralls.io/github/illagrenan/ares_util?branch=master |
| | :alt: Coverage |
+----------------+-----------------------------------------------------------------------------------------------------------------+
| Dependencies | .. image:: https://pyup.io/repos/github/illagrenan/ares_util/shield.svg |
| | :target: https://pyup.io/repos/github/illagrenan/ares_util/ |
| | :alt: Updates |
+----------------+-----------------------------------------------------------------------------------------------------------------+
Představení
Jednoduchý nástroj pro validaci\ :sup:1
českého IČ. U předaného IČ je nejdříve ověřen jeho kontrolní součet (viz Reference <https://github.com/illagrenan/ares_util/master/README.md#reference>
) a dle výsledku se následně zasílá požadavek na ARES XML API <http://wwwinfo.mfcr.cz/ares/ares_xml.html.cz>
.
Pokud je IČ validní, vrací nástroj dict
se základními údaji o firmě (obchodní název, adresa).
Podmínky provozu ARES API
Ministerstvo financí vyhrazuje právo omezit nebo znemožnit přístup k www aplikaci ARES uživatelům, kteří:
- odešlou k vyřízení více než 1000 dotazů v době od 8:00 hod. do 18:00 hod.,
- odešlou k vyřízení více než 5000 dotazů v době od 18:00 hod. do 8:00 hod. rána následujícího dne,
- opakovaně posílají nesprávně vyplněné dotazy,
- opakovaně posílají stejné dotazy,
- mají větší počet současně zadaných dotazů (pro automatizované XML dotazy),
- obcházejí povolené limity využíváním dotazování z většího množství IP adres, -
- automatizovaně propátrávají databázi náhodnými údaji nebo generují většinu nesprávných dotazů.
-- Zdroj: Podmínky provozu ARES API <http://wwwinfo.mfcr.cz/ares/ares_podminky.html.cz>
__.
Instalace
Podporované verze Pythonu jsou pypy
, pypy3
, 2.7
, 3.5
, 3.6
a 3.7
.
.. code:: shell
pip install --upgrade ares-util
Použití
.. code:: shell
python
>>> from ares_util.ares import call_ares
>>> call_ares(42)
False
>>> call_ares('68407700')
{
u'legal': {
u'company_vat_id': u'CZ68407700',
u'company_name': u'České vysoké učení technické v Praze',
u'legal_form': u'601',
u'company_id': u'68407700'
},
u'address': {
u'city': u'Praha',
u'region': u'Hlavní město Praha',
u'street': u'Zikova 1903/4',
u'city_part': u'Dejvice',
u'zip_code': u'16000'
}
}
Django podpora
Podporované verze Djanga jsou 1.11.x
(LTS), 2.0.x
a 2.1.x
.
K dispozi jsou dva Django validátory <https://docs.djangoproject.com/en/dev/ref/validators/>
__ formulářových polí:
czech_company_id_numeric_validator
- Ověřuje, zda IČ splňuje
statické parametry, tj. 7 nebo 8 číslic a kontrolní součet.czech_company_id_ares_api_validator
- Platnost IČ ověřuje pomocí
ARES API. Tento validátor před ARES požadavkem rovněž ověřuje
statické parametry, proto by neměly být použity oba validátory
zároveň.
Použití ve formuláři
.. code:: python
from ares_util.validators import czech_company_id_numeric_validator, czech_company_id_ares_api_validator
from django import forms
# forms.py
class DemoForm(forms.Form):
company_id = forms.IntegerField(required=True, validators=[czech_company_id_ares_api_validator])
Reference
=========
1. http://www.abclinuxu.cz/blog/bloK/2008/10/kontrola-ic,
http://latrine.dgx.cz/jak-overit-platne-ic-a-rodne-cislo
Lokální vývoj
=============
Chcete-li upravit doplněk lokálně, jednoduše stáhněte zdrojové kódy a nainstalujte závislosti:
.. code:: shell
pip install -r requirements.txt --upgrade
Testy spustíte pomocí ``tox`` nebo ``inv test``. Využít můžete i přibalený Flask server pro lokální testování. Stačí spustit:
.. code:: shell
python .\server.py
* Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)
* Restarting with stat
a v prohlížeči otevřít např.: ``http://127.0.0.1:5000/42``.
Technické informace
===================
XML response z ARESu je zpracována pomocí
`xmltodict <https://github.com/martinblech/xmltodict>`__.
Licence
=======
The MIT License (MIT)
Copyright (c) 2013–2019 Vašek Dohnal (@illagrenan)