Skip to main content

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

Release files for assistagro-client 0.4.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for assistagro-client 0.4.1
File Size Uploaded
assistagro_client-0.4.1.tar.gz 26.8 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for assistagro-client 0.4.1
File Interpreter ABI Platform
assistagro_client-0.4.1-py3-none-any.whl Python 3 none any Details

Total release size: 58.3 kB

Release files / assistagro_client-0.4.1.tar.gz

Download URL assistagro_client-0.4.1.tar.gz
Size 26.8 kB
Tags Source
SHA-256 checksum
How to use checksums
e2eb01d9143d9e6d92ed468c5720e80bd50f289a2d49f682d5e3c29664bb48b9
BLAKE2b-256 checksum
How to use checksums
8d3b0fef28f7fded49cb5fad5b85539e7b00302bfc945f7ebcdf02dbbc2a63c6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.7.9

Release files / assistagro_client-0.4.1-py3-none-any.whl

Download URL assistagro_client-0.4.1-py3-none-any.whl
Size 31.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
a5cacfb34f505da0668232255f380f5de2ce76e178061e86b5bb668b40a79283
BLAKE2b-256 checksum
How to use checksums
26ad8d128863a137ba52b4b054c051f3a438b942f8a15377273e1ca67a8d0eca
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.7.9

Release history Release notifications | RSS feed

This release

0.4.1 This release

2 release files

0.4.0

2 release files

0.3.3

2 release files

0.3.2

2 release files

0.3.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page