Skip to main content

HTTP client for AssistAgro API

Project description

AssistAgro API Client

Синхронный и асинхронный HTTP-клиент для AssistAgro API.

Установка

pip install assistagro-client

Асинхронное использование

import asyncio
from assistagro_client import AssistAgroClient

async def main():
    async with AssistAgroClient(base_url="https://gateway-frontend.agroassist.ru") as client:
        tokens = await client.auth.sign_in(
            email="user@example.com",
            password="password123"
        )
        print(f"Access token: {tokens.access_token[:20]}...")

        structures = await client.structures.list_()
        structure_guid = structures[0].structure_guid

        season = await client.seasons.get_current()

        fields = await client.fields.list_(
            structure_guids=[structure_guid],
            season_id=season.season_id,
        )
        print(f"Найдено полей: {len(fields)}")

        crops_response = await client.dictionaries.get_crops()
        print(f"Культур: {len(crops_response.crops)}")

        tasks = await client.tasks.list_(structure_guid=structure_guid)
        print(f"Найдено задач: {len(tasks)}")

if __name__ == "__main__":
    asyncio.run(main())

Синхронное использование

from assistagro_client import AssistAgroSyncClient

with AssistAgroSyncClient(base_url="https://gateway-frontend.agroassist.ru") as client:
    tokens = client.auth.sign_in(
        email="user@example.com",
        password="password123",
    )
    print(f"Access token: {tokens.access_token[:20]}...")

    structures = client.structures.list_()
    print(f"Найдено структур: {len(structures)}")

AssistAgroClient остается асинхронным клиентом для обратной совместимости. AssistAgroSyncClient предоставляет тот же набор API-разделов для обычного синхронного кода. Если нужно передать контекст пользователя в x-user-data, используйте set_user_data(...); заголовок сериализуется как компактный JSON, например {"company_guid":"...","user_guid":"..."}.

TLS/SSL сертификаты

По умолчанию клиент проверяет TLS-сертификат сервера. Если окружение использует свой CA-bundle, передайте путь к нему:

client = AssistAgroClient(verify="/path/to/ca-bundle.pem")

Если сервер временно отдает некорректную цепочку сертификатов, проверку можно отключить явно:

client = AssistAgroClient(verify=False)

То же доступно для AssistAgroSyncClient и через переменную окружения ASSISTAGRO_VERIFY_SSL=false.

API эндпоинты

Модуль Описание Основные методы
auth Аутентификация sign_in, refresh_tokens, logout
accounts Пользователи get_current_user, get_users
companies Компании list_(), list_all, get, get_license, get_license_metadata, get_activities, get_dashboards
structures Структуры list_(), list_plain
seasons Сезоны list, get_current, get_by_name, get_season_id_by_name
fields Поля list_(), get_contours, get_phenophases, get_monitoring, list_meta
tasks Задачи list_(), create, get_list_meta
reports Отчёты list_(), create, get_metadata, get_problems, get_list_meta
techmaps Технологические карты list_(), create
meteostations Метеостанции list_(), get, get_by_field, get_manufacturers, get_providers, get_sensors, get_coordinates_history, get_history
dictionaries Справочники get_crops, get_crop_products, get_techoperations, get_pesticides, get_fertilizers, get_machines, get_tools, get_units, get_regions, get_countries, и др.

Примеры

Скопируйте .env.example в .env и заполните переменные:

cp .env.example .env
ASSISTAGRO_EMAIL=user@example.com
ASSISTAGRO_PASSWORD=your-password
ASSISTAGRO_BASE_URL=https://gateway-frontend.agroassist.ru
ASSISTAGRO_DEBUG=false

Запуск примеров:

# Запустить все модули
uv run python examples/run_tests.py

# Запустить конкретный модуль
uv run python examples/run_tests.py --module structures
uv run python examples/run_tests.py -m auth

# Доступные модули:
# auth, structures, companies, current_user, users,
# dictionaries, meteostations, tasks, fields, reports, techmaps, seasons

Разработка

# Установить зависимости
uv sync

# Запустить тесты
uv run pytest

# Запустить линтер
uv run ruff check .
uv run ruff check --fix .

# Проверка типов
uv run mypy src/

# Форматирование
uv run black .

Лицензия

MIT

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

assistagro_client-0.3.1.tar.gz (21.6 kB view details)

Uploaded Source

Built Distribution

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

assistagro_client-0.3.1-py3-none-any.whl (27.7 kB view details)

Uploaded Python 3

File details

Details for the file assistagro_client-0.3.1.tar.gz.

File metadata

  • Download URL: assistagro_client-0.3.1.tar.gz
  • Upload date:
  • Size: 21.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.7.9

File hashes

Hashes for assistagro_client-0.3.1.tar.gz
Algorithm Hash digest
SHA256 3de9e33f6624563ae347416c6145ac4ec5a6c09d233e210f4da8a4ed17dcd405
MD5 bd2d24ec04f90ab31916a62300b37069
BLAKE2b-256 858c3485903dbcda9b6b9e8017e7d9b59530fab1412831484da1cc01dfc895ea

See more details on using hashes here.

File details

Details for the file assistagro_client-0.3.1-py3-none-any.whl.

File metadata

File hashes

Hashes for assistagro_client-0.3.1-py3-none-any.whl
Algorithm Hash digest
SHA256 3b4b264c5dc58e8543d846b3cbcda3279e009855eb96e49b995bee6a713fb243
MD5 5b8cdf3a0dd9372079f5f51d97931f77
BLAKE2b-256 f2fa8fab7f53beb727f8c4141287ed7220c99c669f2d9c72bf65de9256ecb906

See more details on using hashes here.

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