py-cz-api


Namepy-cz-api JSON
Version 0.3.0 PyPI version JSON
download
home_pagehttps://github.com/jqxl/py_cz_api
SummaryБиблиотека для автоматизации работы с Честным Знаком через True API
upload_time2024-09-01 17:20:00
maintainerNone
docs_urlNone
authorjqxl
requires_python>=3.10
licenseGNU General Public License v3.0
keywords
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # Личный проект для автоматизации работы с Честным Знаком через True API

### **<ins>Только для ОС Windows с установленной КриптоПро SCP</ins>**

## Описание

Этот проект предназначен для автоматизации взаимодействия с системой "Честный Знак" через True API. Последняя версия используемого API — 399.0.

Основная цель проекта - упростить процесс получения статусов и владельцев кодов маркировки.

## Подготовка
### Установка КриптоПро SCP
Скачать можно по [ссылке](https://www.cryptopro.ru/downloads)

### Установка зависимостей

Требуется установить вспомогательные библиотеки
```bash
pip install aiohttp, pywin32, PyJWT
```

### Установка библиотеки
Установть `py_cz_api` можно с помощью менеджера пакетов [pip](https://pypi.org/project/py-cz-api/)
```bash
pip install py-cz-api
```

### Инициализация классов и опрос ЧЗ о статусе марок:

```python
import py_cz_api

essep = '01EB1AA50033B12D894A535821B96C26C0'
certificate = py_cz_api.Certificate(essep)
token = py_cz_api.Token.create_from_cert(certificate)
api = py_cz_api.Api(token, py_cz_api.Pgs.ncp)

# Список марок для запроса
mark_list = ['01230000157926=Mflh=dAAAA']

# Выполнение запроса
ans = api.cises_info(mark_list)

# Печать dict ответа от API
print(ans)
```

### Просмотр сертификатов в личном хранилище:
Посмотреть список сертификатов в хранилище
*Только для ОС Windows*
```python
import py_cz_api
py_cz_api.show_certs()
```

## Классы
Каждый элемент автономен и допускает свою реализацию через наследование
- `Certificate` - ЭЦП для шифрования данных __исключено для корректной работы PyPi__
- `Token` - авторизационный токен ЧЗ
- `Api` - отправка запросов в ЧЗ
- `ApiDispenser` - формирование и скачивание Документов выгрузки
- `ApiExtended` - добавление стобцам pandas.DataFrame данные от `Api`

## Реализованный список эндпоинтов:

### class: `Api`
- `/cises/short/list`
- `/cises/info`
- `/cises/history`
- `/product/info`
- `/doc/{documentId}/info`
- `/doc/cises`
### class: `ApiDispenser`
- `/dispenser/tasks`
- `/dispenser/tasks/{taskId}`
- `/dispenser/results/{taskId}`
- `/dispenser/results/{taskId}/file`

## Дополнительная информация

Для получения дополнительной информации и документации по использованию True API, пожалуйста, обратитесь к официальной документации True API версии 418.0.

            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/jqxl/py_cz_api",
    "name": "py-cz-api",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.10",
    "maintainer_email": null,
    "keywords": null,
    "author": "jqxl",
    "author_email": "jqxl+git@ya.ru",
    "download_url": "https://files.pythonhosted.org/packages/1f/3d/d527630b08885dd01132040073717902939e6ef7b976645013121ab6c54c/py_cz_api-0.3.0.tar.gz",
    "platform": null,
    "description": "# \u041b\u0438\u0447\u043d\u044b\u0439 \u043f\u0440\u043e\u0435\u043a\u0442 \u0434\u043b\u044f \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0437\u0430\u0446\u0438\u0438 \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u0427\u0435\u0441\u0442\u043d\u044b\u043c \u0417\u043d\u0430\u043a\u043e\u043c \u0447\u0435\u0440\u0435\u0437 True API\r\n\r\n### **<ins>\u0422\u043e\u043b\u044c\u043a\u043e \u0434\u043b\u044f \u041e\u0421 Windows \u0441 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u043d\u043e\u0439 \u041a\u0440\u0438\u043f\u0442\u043e\u041f\u0440\u043e SCP</ins>**\r\n\r\n## \u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435\r\n\r\n\u042d\u0442\u043e\u0442 \u043f\u0440\u043e\u0435\u043a\u0442 \u043f\u0440\u0435\u0434\u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d \u0434\u043b\u044f \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0437\u0430\u0446\u0438\u0438 \u0432\u0437\u0430\u0438\u043c\u043e\u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f \u0441 \u0441\u0438\u0441\u0442\u0435\u043c\u043e\u0439 \"\u0427\u0435\u0441\u0442\u043d\u044b\u0439 \u0417\u043d\u0430\u043a\" \u0447\u0435\u0440\u0435\u0437 True API. \u041f\u043e\u0441\u043b\u0435\u0434\u043d\u044f\u044f \u0432\u0435\u0440\u0441\u0438\u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u043e\u0433\u043e API \u2014 399.0.\r\n\r\n\u041e\u0441\u043d\u043e\u0432\u043d\u0430\u044f \u0446\u0435\u043b\u044c \u043f\u0440\u043e\u0435\u043a\u0442\u0430 - \u0443\u043f\u0440\u043e\u0441\u0442\u0438\u0442\u044c \u043f\u0440\u043e\u0446\u0435\u0441\u0441 \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u044f \u0441\u0442\u0430\u0442\u0443\u0441\u043e\u0432 \u0438 \u0432\u043b\u0430\u0434\u0435\u043b\u044c\u0446\u0435\u0432 \u043a\u043e\u0434\u043e\u0432 \u043c\u0430\u0440\u043a\u0438\u0440\u043e\u0432\u043a\u0438.\r\n\r\n## \u041f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043a\u0430\r\n### \u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 \u041a\u0440\u0438\u043f\u0442\u043e\u041f\u0440\u043e SCP\r\n\u0421\u043a\u0430\u0447\u0430\u0442\u044c \u043c\u043e\u0436\u043d\u043e \u043f\u043e [\u0441\u0441\u044b\u043b\u043a\u0435](https://www.cryptopro.ru/downloads)\r\n\r\n### \u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0435\u0439\r\n\r\n\u0422\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u0432\u0441\u043f\u043e\u043c\u043e\u0433\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438\r\n```bash\r\npip install aiohttp, pywin32, PyJWT\r\n```\r\n\r\n### \u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438\r\n\u0423\u0441\u0442\u0430\u043d\u043e\u0432\u0442\u044c `py_cz_api` \u043c\u043e\u0436\u043d\u043e \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043c\u0435\u043d\u0435\u0434\u0436\u0435\u0440\u0430 \u043f\u0430\u043a\u0435\u0442\u043e\u0432 [pip](https://pypi.org/project/py-cz-api/)\r\n```bash\r\npip install py-cz-api\r\n```\r\n\r\n### \u0418\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u043a\u043b\u0430\u0441\u0441\u043e\u0432 \u0438 \u043e\u043f\u0440\u043e\u0441 \u0427\u0417 \u043e \u0441\u0442\u0430\u0442\u0443\u0441\u0435 \u043c\u0430\u0440\u043e\u043a:\r\n\r\n```python\r\nimport py_cz_api\r\n\r\nessep = '01EB1AA50033B12D894A535821B96C26C0'\r\ncertificate = py_cz_api.Certificate(essep)\r\ntoken = py_cz_api.Token.create_from_cert(certificate)\r\napi = py_cz_api.Api(token, py_cz_api.Pgs.ncp)\r\n\r\n# \u0421\u043f\u0438\u0441\u043e\u043a \u043c\u0430\u0440\u043e\u043a \u0434\u043b\u044f \u0437\u0430\u043f\u0440\u043e\u0441\u0430\r\nmark_list = ['01230000157926=Mflh=dAAAA']\r\n\r\n# \u0412\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 \u0437\u0430\u043f\u0440\u043e\u0441\u0430\r\nans = api.cises_info(mark_list)\r\n\r\n# \u041f\u0435\u0447\u0430\u0442\u044c dict \u043e\u0442\u0432\u0435\u0442\u0430 \u043e\u0442 API\r\nprint(ans)\r\n```\r\n\r\n### \u041f\u0440\u043e\u0441\u043c\u043e\u0442\u0440 \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0432 \u0432 \u043b\u0438\u0447\u043d\u043e\u043c \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0435:\r\n\u041f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u0441\u043f\u0438\u0441\u043e\u043a \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0432 \u0432 \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0435\r\n*\u0422\u043e\u043b\u044c\u043a\u043e \u0434\u043b\u044f \u041e\u0421 Windows*\r\n```python\r\nimport py_cz_api\r\npy_cz_api.show_certs()\r\n```\r\n\r\n## \u041a\u043b\u0430\u0441\u0441\u044b\r\n\u041a\u0430\u0436\u0434\u044b\u0439 \u044d\u043b\u0435\u043c\u0435\u043d\u0442 \u0430\u0432\u0442\u043e\u043d\u043e\u043c\u0435\u043d \u0438 \u0434\u043e\u043f\u0443\u0441\u043a\u0430\u0435\u0442 \u0441\u0432\u043e\u044e \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044e \u0447\u0435\u0440\u0435\u0437 \u043d\u0430\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u043d\u0438\u0435\r\n- `Certificate` - \u042d\u0426\u041f \u0434\u043b\u044f \u0448\u0438\u0444\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0434\u0430\u043d\u043d\u044b\u0445 __\u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u043e \u0434\u043b\u044f \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u043e\u0439 \u0440\u0430\u0431\u043e\u0442\u044b PyPi__\r\n- `Token` - \u0430\u0432\u0442\u043e\u0440\u0438\u0437\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u0439 \u0442\u043e\u043a\u0435\u043d \u0427\u0417\r\n- `Api` - \u043e\u0442\u043f\u0440\u0430\u0432\u043a\u0430 \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432 \u0432 \u0427\u0417\r\n- `ApiDispenser` - \u0444\u043e\u0440\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0438 \u0441\u043a\u0430\u0447\u0438\u0432\u0430\u043d\u0438\u0435 \u0414\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u043e\u0432 \u0432\u044b\u0433\u0440\u0443\u0437\u043a\u0438\r\n- `ApiExtended` - \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0441\u0442\u043e\u0431\u0446\u0430\u043c pandas.DataFrame \u0434\u0430\u043d\u043d\u044b\u0435 \u043e\u0442 `Api`\r\n\r\n## \u0420\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u0441\u043f\u0438\u0441\u043e\u043a \u044d\u043d\u0434\u043f\u043e\u0438\u043d\u0442\u043e\u0432:\r\n\r\n### class: `Api`\r\n- `/cises/short/list`\r\n- `/cises/info`\r\n- `/cises/history`\r\n- `/product/info`\r\n- `/doc/{documentId}/info`\r\n- `/doc/cises`\r\n### class: `ApiDispenser`\r\n- `/dispenser/tasks`\r\n- `/dispenser/tasks/{taskId}`\r\n- `/dispenser/results/{taskId}`\r\n- `/dispenser/results/{taskId}/file`\r\n\r\n## \u0414\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u0430\u044f \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f\r\n\r\n\u0414\u043b\u044f \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u044f \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0439 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438 \u0438 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438 \u043f\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044e True API, \u043f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430, \u043e\u0431\u0440\u0430\u0442\u0438\u0442\u0435\u0441\u044c \u043a \u043e\u0444\u0438\u0446\u0438\u0430\u043b\u044c\u043d\u043e\u0439 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438 True API \u0432\u0435\u0440\u0441\u0438\u0438 418.0.\r\n",
    "bugtrack_url": null,
    "license": "GNU General Public License v3.0",
    "summary": "\u0411\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430 \u0434\u043b\u044f \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0437\u0430\u0446\u0438\u0438 \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u0427\u0435\u0441\u0442\u043d\u044b\u043c \u0417\u043d\u0430\u043a\u043e\u043c \u0447\u0435\u0440\u0435\u0437 True API",
    "version": "0.3.0",
    "project_urls": {
        "Download": "https://codeload.github.com/jqxl/py_cz_api/zip/refs/heads/main",
        "Homepage": "https://github.com/jqxl/py_cz_api"
    },
    "split_keywords": [],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "1f3dd527630b08885dd01132040073717902939e6ef7b976645013121ab6c54c",
                "md5": "97f05b7a4e7e833e677089e77d0c5cc2",
                "sha256": "bce17c2201679ac588555a14353ab3fe3cb547fdb2b164b5bc74d24f93f67e3e"
            },
            "downloads": -1,
            "filename": "py_cz_api-0.3.0.tar.gz",
            "has_sig": false,
            "md5_digest": "97f05b7a4e7e833e677089e77d0c5cc2",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.10",
            "size": 32364,
            "upload_time": "2024-09-01T17:20:00",
            "upload_time_iso_8601": "2024-09-01T17:20:00.568205Z",
            "url": "https://files.pythonhosted.org/packages/1f/3d/d527630b08885dd01132040073717902939e6ef7b976645013121ab6c54c/py_cz_api-0.3.0.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-09-01 17:20:00",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "jqxl",
    "github_project": "py_cz_api",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": false,
    "requirements": [],
    "lcname": "py-cz-api"
}
        
Elapsed time: 0.30830s