Metadata-Version: 2.4
Name: peyk
Version: 1.0.0.post35462291290
Summary: An aiogram-style async bot library for Telegram, Bale, and Rubika.
License-Expression: MIT
Project-URL: Homepage, https://github.com/amirhossein-ahmadi-ah/peyk
Project-URL: Documentation, https://amirhossein-ahmadi-ah.github.io/peyk/
Project-URL: Repository, https://github.com/amirhossein-ahmadi-ah/peyk
Project-URL: Issues, https://github.com/amirhossein-ahmadi-ah/peyk/issues
Project-URL: Changelog, https://github.com/amirhossein-ahmadi-ah/peyk/blob/main/CHANGES.md
Keywords: telegram,bale,rubika,bot,asyncio,aiogram
Classifier: Development Status :: 5 - Production/Stable
Classifier: Intended Audience :: Developers
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Topic :: Communications :: Chat
Requires-Python: >=3.10
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: aiohttp>=3.9
Requires-Dist: orjson>=3.9
Requires-Dist: magic-filter>=1.0
Provides-Extra: docs
Requires-Dist: sphinx<9,>=8; extra == "docs"
Requires-Dist: furo>=2024.8.6; extra == "docs"
Provides-Extra: dev
Requires-Dist: pytest>=8.0; extra == "dev"
Requires-Dist: pytest-asyncio>=0.23; extra == "dev"
Requires-Dist: fakeredis>=2.20; extra == "dev"
Requires-Dist: mypy>=1.11; extra == "dev"
Provides-Extra: bale
Provides-Extra: telegram
Provides-Extra: rubika
Provides-Extra: fsm-redis
Requires-Dist: redis>=5.0; extra == "fsm-redis"
Dynamic: license-file

<p align="center">
  <img src="assets/logo-source.png" alt="peyk logo" width="160">
</p>

<h1 align="center">peyk</h1>

<p align="center">An aiogram-style async bot library for Telegram, Bale, and Rubika.</p>

## 10-line quickstart

```python
from peyk import Bot

bot = Bot("TOKEN", platform="telegram")

@bot.command("start")
async def start(message):
    await message.answer("Hello from peyk!")

@bot.message()
async def echo(message):
    await message.answer(message.text or "")

bot.run()
```

`platform=` is selected once when the bot is created; handlers, filters, keyboards, and normalized message objects stay platform-neutral.

## Install

```bash
pip install peyk
```

For development:

```bash
pip install -e ".[dev]"
```

## Documentation

- [Capabilities](docs/capabilities.md) — audited feature support and UNKNOWN areas.
- [Migration from aiogram](docs/migration_aiogram.rst) — import mapping, compatible surfaces, and Peyk-specific differences.
- [Quickstart](docs/quickstart.rst) — simple `bot.run()` first, then Dispatcher/Router.
- [Examples](examples/) — runnable examples using public imports.

## Tests

```bash
pytest
```

The test suite is offline and uses local/fake servers and in-memory/fakeredis fixtures.

## Project record

See `docs/decisions.md` for the architectural decision record and capability evidence.

## Publishing

See [`PUBLISHING.md`](PUBLISHING.md) for the one-time GitHub/PyPI setup and
the release checklist for every version after that.

## License

MIT — see [`LICENSE`](LICENSE).
