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
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 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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3de9e33f6624563ae347416c6145ac4ec5a6c09d233e210f4da8a4ed17dcd405
|
|
| MD5 |
bd2d24ec04f90ab31916a62300b37069
|
|
| BLAKE2b-256 |
858c3485903dbcda9b6b9e8017e7d9b59530fab1412831484da1cc01dfc895ea
|
File details
Details for the file assistagro_client-0.3.1-py3-none-any.whl.
File metadata
- Download URL: assistagro_client-0.3.1-py3-none-any.whl
- Upload date:
- Size: 27.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.7.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3b4b264c5dc58e8543d846b3cbcda3279e009855eb96e49b995bee6a713fb243
|
|
| MD5 |
5b8cdf3a0dd9372079f5f51d97931f77
|
|
| BLAKE2b-256 |
f2fa8fab7f53beb727f8c4141287ed7220c99c669f2d9c72bf65de9256ecb906
|