Metadata-Version: 2.4
Name: fh-api-client
Version: 0.1.3
Summary: Async typed Python client for the Freelancehunt API v2
Project-URL: Homepage, https://github.com/Solarmove/freelancehunt-api-client
Project-URL: Repository, https://github.com/Solarmove/freelancehunt-api-client
Project-URL: Issues, https://github.com/Solarmove/freelancehunt-api-client/issues
Author: Solarmove
Keywords: api,async,client,freelancehunt,httpx
Classifier: Development Status :: 3 - Alpha
Classifier: Framework :: AsyncIO
Classifier: Intended Audience :: Developers
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: 3.14
Classifier: Typing :: Typed
Requires-Python: >=3.11
Requires-Dist: httpx>=0.28.1
Requires-Dist: pydantic>=2.13.4
Description-Content-Type: text/markdown

# fh-api-client

Асинхронный типизированный Python-клиент для
[Freelancehunt API v2](https://apidocs.freelancehunt.com/).

> Проект находится на ранней стадии разработки и не является официальной
> библиотекой Freelancehunt.

## Установка

```bash
pip install fh-api-client
```

Требуется Python 3.11 или новее.

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

```python
import asyncio

from fh_api_client import FHApiClient


async def main() -> None:
    client = FHApiClient("YOUR_API_TOKEN")

    profile = await client.get_my_profile()
    print(profile.data.attributes.login)

    projects = await client.get_projects()
    for project in projects:
        print(project.data.attributes.name)


asyncio.run(main())
```

Токен API можно получить в настройках профиля Freelancehunt. Не добавляйте токен
в исходный код и не публикуйте его в Git.

## Реализованные методы

- получение списка диалогов и сообщений;
- отправка сообщений и файлов;
- получение ленты и отметка её прочитанной;
- получение собственного профиля;
- получение профилей фрилансеров и заказчиков;
- получение проекта и списка проектов.

Все сетевые методы асинхронные. Ответы проверяются и преобразуются в модели
Pydantic.

## Разработка

Установите [uv](https://docs.astral.sh/uv/), затем выполните:

```bash
uv sync --dev
uv run ruff check .
uv run pytest
uv build
uv run twine check dist/*
```

## Выпуск новой версии

Релизы публикуются автоматически через GitHub Actions и PyPI Trusted Publishing.

1. Измените `version` в `pyproject.toml`.
2. Закоммитьте изменения и убедитесь, что CI прошёл.
3. Создайте и отправьте тег с той же версией:

   ```bash
   git tag v0.1.2
   git push origin v0.1.2
   ```

Workflow проверит совпадение версии и тега, соберёт дистрибутивы и отправит их
в PyPI. Уже опубликованные номера версий повторно использовать нельзя.

## Лицензия

Лицензия пока не выбрана. До её добавления стандартные права на исходный код
сохраняются за автором.
