Async Python SDK for Avito OpenAPI (full endpoint coverage)
Project description
pyAvitoApi
Асинхронная Python SDK-библиотека для Avito API с полным покрытием операций на основе официальных OpenAPI-снимков.
Что входит
- Покрытие всех API-групп из
https://developers.avito.ru/web/1/openapi/list. - Генерация per-slug API-классов из нормализованных (
patched) OpenAPI-спецификаций. - Typed response models на Pydantic для всех сгенерированных методов.
- Детерминированный pipeline снимков и генерации.
Структура проекта
specs/raw— сырой snapshot OpenAPI.specs/patched— нормализованные спеки для генерации.tools/fetch_specs.py— загрузка snapshot + manifest.tools/patch_specs.py— нормализация известных дефектов OpenAPI.tools/generate_clients.py— генерация async API-модулей.tools/build_coverage_report.py— сборка отчета покрытия.src/pyavitoapi/generated— сгенерированные API-модули по slug.src/pyavitoapi/generated_models— сгенерированные typed response models.src/pyavitoapi/client.py— фасадAvitoAsyncClient.
Быстрый старт
from pyavitoapi import AvitoAsyncClient
async def main() -> None:
async with AvitoAsyncClient(client_id="...", client_secret="...") as client:
token = await client.auth.get_client_credentials_token()
me = await client.user.get_user_info_self(path_params={}, query=None)
print(token.access_token[:8], me.model_dump(exclude_none=True))
Установка из пакетного менеджера
pip install pyAvitoApi
Для фиксации версии в requirements.txt:
pyAvitoApi==0.2.0
Перегенерация
python tools/fetch_specs.py
python tools/patch_specs.py
python tools/generate_clients.py
python tools/build_coverage_report.py
Релиз и публикация в PyPI
Пайплайн релиза автоматизирован через GitHub Actions:
- Запустите workflow
Release Bump And Tag. - Workflow увеличит patch-версию в
pyproject.toml, создаст commit и тегvX.Y.Z. - По тегу автоматически запускается
Publish To PyPI, который собирает и публикует пакет.
Публикация использует Trusted Publishing (OIDC) без API-токенов в GitHub Secrets.
Тесты
pytest -q
Примечания
- Метрика покрытия считается относительно
specs/patched(нормализованные уникальные операции). - Raw-спеки могут содержать дубликаты token-операций из-за известных upstream-особенностей.
- Сгенерированные методы валидируют ответы по typed-моделям и бросают
AvitoValidationError, если payload не соответствует схеме.
Документация
- Руководство по использованию:
docs/USAGE.md - Матрица endpoint-ов:
docs/endpoint-matrix.md - Известные особенности OpenAPI:
docs/known-quirks.md - Отчет покрытия:
docs/final-compliance-report.md - Карта typed-ответов:
docs/typed-response-map.json - История релизов:
RELEASE_NOTES.md
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file avito_python_sdk-0.2.3.tar.gz.
File metadata
- Download URL: avito_python_sdk-0.2.3.tar.gz
- Upload date:
- Size: 512.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
89d42ab81dd90a8e4142176c37d8e491742b0858e1039728b6b039cfe0cb93e7
|
|
| MD5 |
b2383eee64754c3d21f8a7370333b333
|
|
| BLAKE2b-256 |
8289cd746fdb967957eb8b42c574ef7cf693d4161b3ccbb36be73eb1d5e17ab4
|
Provenance
The following attestation bundles were made for avito_python_sdk-0.2.3.tar.gz:
Publisher:
publish-pypi.yml on kozandlov/avito-python-sdk
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
avito_python_sdk-0.2.3.tar.gz -
Subject digest:
89d42ab81dd90a8e4142176c37d8e491742b0858e1039728b6b039cfe0cb93e7 - Sigstore transparency entry: 993856716
- Sigstore integration time:
-
Permalink:
kozandlov/avito-python-sdk@63145f768138585617e5d6ef29f8f6c8d3eb3a14 -
Branch / Tag:
refs/tags/v0.2.3 - Owner: https://github.com/kozandlov
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-pypi.yml@63145f768138585617e5d6ef29f8f6c8d3eb3a14 -
Trigger Event:
workflow_dispatch
-
Statement type:
File details
Details for the file avito_python_sdk-0.2.3-py3-none-any.whl.
File metadata
- Download URL: avito_python_sdk-0.2.3-py3-none-any.whl
- Upload date:
- Size: 88.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
af29fd18297feb0b9817b898476c082d19fb777ca18659ea59f20e007ae6c3ce
|
|
| MD5 |
83580c86264b1f525133f53a1ce387dd
|
|
| BLAKE2b-256 |
744aba944d9191b504d271516074332729b9eaf68802c1c089fee29b6effc27b
|
Provenance
The following attestation bundles were made for avito_python_sdk-0.2.3-py3-none-any.whl:
Publisher:
publish-pypi.yml on kozandlov/avito-python-sdk
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
avito_python_sdk-0.2.3-py3-none-any.whl -
Subject digest:
af29fd18297feb0b9817b898476c082d19fb777ca18659ea59f20e007ae6c3ce - Sigstore transparency entry: 993856834
- Sigstore integration time:
-
Permalink:
kozandlov/avito-python-sdk@63145f768138585617e5d6ef29f8f6c8d3eb3a14 -
Branch / Tag:
refs/tags/v0.2.3 - Owner: https://github.com/kozandlov
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-pypi.yml@63145f768138585617e5d6ef29f8f6c8d3eb3a14 -
Trigger Event:
workflow_dispatch
-
Statement type: