Metadata-Version: 2.4
Name: loya-client
Version: 0.2.10
Summary: Асинхронный клиент для Loya Loyalty API
Author-email: Alexander Shangin <alex@alexshangin.ru>
License: MIT
Project-URL: Homepage, https://gitlab.s-globus.ru/globus/loya-client
Project-URL: Repository, https://gitlab.s-globus.ru/globus/loya-client
Project-URL: Issues, https://gitlab.s-globus.ru/globus/loya-client/-/issues
Keywords: loya,loyalty,api,async,fastapi
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Operating System :: OS Independent
Classifier: Development Status :: 4 - Beta
Requires-Python: >=3.11
Description-Content-Type: text/markdown
Requires-Dist: httpx>=0.27
Requires-Dist: pydantic>=2.9
Requires-Dist: PyMySQL>=1.1
Provides-Extra: dev
Requires-Dist: ruff>=0.6; extra == "dev"
Requires-Dist: mypy>=1.11; extra == "dev"
Requires-Dist: pre-commit>=4.0; extra == "dev"
Requires-Dist: pytest>=8.3; extra == "dev"
Requires-Dist: pytest-asyncio>=0.24; extra == "dev"
Requires-Dist: pytest-cov>=5.0; extra == "dev"
Provides-Extra: test
Requires-Dist: pytest>=8.3; extra == "test"
Requires-Dist: pytest-asyncio>=0.24; extra == "test"
Requires-Dist: pytest-cov>=5.0; extra == "test"
Requires-Dist: httpx[test]>=0.27; extra == "test"

# loya-client

Асинхронный Python-клиент для Loya Loyalty API с автоматической авторизацией через PLAY2AUTH_SESS_ID.

## Установка

```bash
pip install loya-client
```

## Быстрый старт

```python
from functools import lru_cache
from loya_client import LoyaClient, LoyaClientConfig
import os


@lru_cache()
def get_loya_client() -> LoyaClient:
    config = LoyaClientConfig(
            base_url=os.getenv("LOYA_BASE_URL", "http://loya-backend:9000"),
            email=os.getenv("LOYA_EMAIL", "apiuser@example.com"),
            password_hash=os.getenv(
                "LOYA_PASSWORD_HASH", "hash"
            ),
            apikey=os.getenv("LOYA_APIKEY", "apikey"),
            timeout=float(os.getenv("LOYA_TIMEOUT", "20.0")),
        )

    return LoyaClient(config)

client = get_loya_client()
card = await client.get_card_by_number("7770000002302")
print(card)
```

## Особенности

- Автоматический логин и релогин
- Поддержка сессий через куки
- Чистый, модульный код
- Полная поддержка async/await
- Готов к использованию в FastAPI
