Metadata-Version: 2.4
Name: libretranslate-aio
Version: 0.1.0
Summary: Cliente Python sync e async para a API do LibreTranslate (httpx)
Project-URL: Homepage, https://github.com/joaob/libretranslate-aio
Project-URL: Documentation, https://github.com/joaob/libretranslate-aio#readme
Project-URL: Repository, https://github.com/joaob/libretranslate-aio
Project-URL: Issues, https://github.com/joaob/libretranslate-aio/issues
Project-URL: Changelog, https://github.com/joaob/libretranslate-aio/blob/main/CHANGELOG.md
Author: João
License-Expression: MIT
License-File: LICENSE
Keywords: api,async,httpx,libretranslate,translation
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Typing :: Typed
Requires-Python: >=3.9
Requires-Dist: httpx>=0.27
Provides-Extra: dev
Requires-Dist: pytest-asyncio>=0.24; extra == 'dev'
Requires-Dist: pytest>=8.0; extra == 'dev'
Requires-Dist: respx>=0.21; extra == 'dev'
Requires-Dist: ruff>=0.8; extra == 'dev'
Description-Content-Type: text/markdown

# libretranslate-aio

Cliente Python **síncrono** e **assíncrono** para a [API do LibreTranslate](https://libretranslate.com/docs/), baseado em [httpx](https://www.python-httpx.org/).

## Instalação

```bash
pip install libretranslate-aio
```

## Uso rápido (sync)

```python
from libretranslate_aio import LibreTranslate

with LibreTranslate() as client:
    result = client.translate("Hello world!", source="en", target="pt")
    print(result.translated_text)  # Olá mundo!
```

## Uso rápido (async)

```python
import asyncio
from libretranslate_aio import AsyncLibreTranslate


async def main():
    async with AsyncLibreTranslate() as client:
        result = await client.translate("Hello world!", source="en", target="pt")
        print(result.translated_text)


asyncio.run(main())
```

## Configuração

```python
LibreTranslate(
    base_url="https://libretranslate.com",  # ou sua instância self-hosted
    api_key="xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",  # opcional
    timeout=30.0,
)
```

Variáveis de ambiente (usadas pela CLI):

- `LIBRETRANSLATE_URL` — URL base da API
- `LIBRETRANSLATE_API_KEY` — chave de API

## API

| Método | Descrição |
|--------|-----------|
| `translate(q, source, target, format="text", alternatives=0)` | Traduz texto (`str` ou `list[str]`) |
| `translate_file(file, source, target)` | Traduz um arquivo |
| `detect(q)` | Detecta o idioma do texto |
| `languages()` | Lista idiomas suportados |
| `suggest(q, s, source, target)` | Envia sugestão de tradução |
| `frontend_settings()` | Configurações do frontend |
| `health()` | Health check (`True` se `ok`) |

## CLI

```bash
# Traduzir
libretranslate translate "Hello world!" --source en --target pt

# Detectar idioma
libretranslate detect "Bonjour le monde"

# Listar idiomas
libretranslate languages

# Traduzir arquivo
libretranslate translate-file documento.txt --source en --target es -o saida.txt

# Opções globais
libretranslate --url https://minha-instancia.local --api-key KEY translate "Hi" -t pt
```

## Desenvolvimento

```bash
uv sync --all-extras
uv run ruff check .
uv run pytest
uv build
```

## Publicação no PyPI

1. Crie o repositório no GitHub e faça push.
2. No [PyPI](https://pypi.org/manage/account/publishing/), configure *Trusted Publishing* apontando para o workflow `publish.yml`.
3. Crie uma release/tag `vX.Y.Z` — o GitHub Actions publica automaticamente.

## Licença

MIT
