Skip to main content

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:

  1. Запустите workflow Release Bump And Tag.
  2. Workflow увеличит patch-версию в pyproject.toml, создаст commit и тег vX.Y.Z.
  3. По тегу автоматически запускается 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


Download files

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

Source Distribution

avito_python_sdk-0.2.3.tar.gz (512.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

avito_python_sdk-0.2.3-py3-none-any.whl (88.0 kB view details)

Uploaded Python 3

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

Hashes for avito_python_sdk-0.2.3.tar.gz
Algorithm Hash digest
SHA256 89d42ab81dd90a8e4142176c37d8e491742b0858e1039728b6b039cfe0cb93e7
MD5 b2383eee64754c3d21f8a7370333b333
BLAKE2b-256 8289cd746fdb967957eb8b42c574ef7cf693d4161b3ccbb36be73eb1d5e17ab4

See more details on using hashes here.

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

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file avito_python_sdk-0.2.3-py3-none-any.whl.

File metadata

File hashes

Hashes for avito_python_sdk-0.2.3-py3-none-any.whl
Algorithm Hash digest
SHA256 af29fd18297feb0b9817b898476c082d19fb777ca18659ea59f20e007ae6c3ce
MD5 83580c86264b1f525133f53a1ce387dd
BLAKE2b-256 744aba944d9191b504d271516074332729b9eaf68802c1c089fee29b6effc27b

See more details on using hashes here.

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

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

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