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.3.tar.gz (22.0 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.3-py3-none-any.whl (27.7 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: assistagro_client-0.3.3.tar.gz
  • Upload date:
  • Size: 22.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.10.9

File hashes

Hashes for assistagro_client-0.3.3.tar.gz
Algorithm Hash digest
SHA256 312e10e78bed03a9c02cd572bac877d1bfa88dcf9def3aa40ea1e440db76e7cc
MD5 8d7ba35b6079cf32e18234ffcd437356
BLAKE2b-256 37997257a9d75437d13f3e2122c64ee376528e40efce881ffb4d1794743e062e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for assistagro_client-0.3.3-py3-none-any.whl
Algorithm Hash digest
SHA256 32bf46a167c7315c59fc3938431c2fb6109ae52243ed7b675fcc5516e626e2b1
MD5 8b1ad5e2fd04bca4dc9c5c6bce747170
BLAKE2b-256 42e9242709acd980ed5e8f750b675c6a46dc7c01f93be2b2374d017a700f7d4a

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