aiogram/README.rst

81 lines
3.5 KiB
ReStructuredText
Raw Permalink Normal View History

2023-08-26 22:38:22 +03:00
#######
aiogram
#######
2021-10-11 01:29:06 +03:00
2023-02-12 03:18:53 +02:00
.. image:: https://img.shields.io/pypi/l/aiogram.svg?style=flat-square
2021-10-11 01:29:06 +03:00
:target: https://opensource.org/licenses/MIT
:alt: MIT License
2023-02-12 03:18:53 +02:00
.. image:: https://img.shields.io/pypi/status/aiogram.svg?style=flat-square
2021-10-11 01:29:06 +03:00
:target: https://pypi.python.org/pypi/aiogram
2023-02-12 03:18:53 +02:00
:alt: PyPi status
2021-10-11 01:29:06 +03:00
2023-02-12 03:18:53 +02:00
.. image:: https://img.shields.io/pypi/v/aiogram.svg?style=flat-square
2021-10-11 01:29:06 +03:00
:target: https://pypi.python.org/pypi/aiogram
:alt: PyPi Package Version
2023-02-12 03:18:53 +02:00
.. image:: https://img.shields.io/pypi/dm/aiogram.svg?style=flat-square
2021-10-11 01:29:06 +03:00
:target: https://pypi.python.org/pypi/aiogram
2023-02-12 03:18:53 +02:00
:alt: Downloads
2021-10-11 01:29:06 +03:00
2023-02-12 03:18:53 +02:00
.. image:: https://img.shields.io/pypi/pyversions/aiogram.svg?style=flat-square
2021-10-11 01:29:06 +03:00
:target: https://pypi.python.org/pypi/aiogram
2023-02-12 03:18:53 +02:00
:alt: Supported python versions
2021-10-11 01:29:06 +03:00
2023-02-12 03:18:53 +02:00
.. image:: https://img.shields.io/badge/dynamic/json?color=blue&logo=telegram&label=Telegram%20Bot%20API&query=%24.api.version&url=https%3A%2F%2Fraw.githubusercontent.com%2Faiogram%2Faiogram%2Fdev-3.x%2F.butcher%2Fschema%2Fschema.json&style=flat-square
:target: https://core.telegram.org/bots/api
:alt: Telegram Bot API
.. image:: https://img.shields.io/github/actions/workflow/status/aiogram/aiogram/tests.yml?branch=dev-3.x&style=flat-square
:target: https://github.com/aiogram/aiogram/actions
:alt: Tests
2021-10-11 01:29:06 +03:00
.. image:: https://img.shields.io/codecov/c/github/aiogram/aiogram?style=flat-square
:target: https://app.codecov.io/gh/aiogram/aiogram
:alt: Codecov
**aiogram** is a modern and fully asynchronous framework for
EOL of Py3.9 (#1726) * Drop py3.9 and pypy3.9 Add pypy3.11 (testing) into `tests.yml` Remove py3.9 from matrix in `tests.yml` Refactor not auto-gen code to be compatible with py3.10+, droping ugly 3.9 annotation. Replace some `from typing` imports to `from collections.abc`, due to deprecation Add `from __future__ import annotations` and `if TYPE_CHECKING:` where possible Add some `noqa` to calm down Ruff in some places, if Ruff will be used as default linting+formatting tool in future Replace some relative imports to absolute Sort `__all__` tuples in `__init__.py` and some other `.py` files Sort `__slots__` tuples in classes Split raises into `msg` and `raise` (`EM101`, `EM102`) to not duplicate error message in the traceback Add `Self` from `typing_extenstion` where possible Resolve typing problem in `aiogram/filters/command.py:18` Concatenate nested `if` statements Convert `HandlerContainer` into a dataclass in `aiogram/fsm/scene.py` Bump tests docker-compose.yml `redis:6-alpine` -> `redis:8-alpine` Bump tests docker-compose.yml `mongo:7.0.6` -> `mongo:8.0.14` Bump pre-commit-config `black==24.4.2` -> `black==25.9.0` Bump pre-commit-config `ruff==0.5.1` -> `ruff==0.13.3` Update Makefile lint for ruff to show fixes Add `make outdated` into Makefile Use `pathlib` instead of `os.path` Bump `redis[hiredis]>=5.0.1,<5.3.0` -> `redis[hiredis]>=6.2.0,<7` Bump `cryptography>=43.0.0` -> `cryptography>=46.0.0` due to security reasons Bump `pytz~=2023.3` -> `pytz~=2025.2` Bump `pycryptodomex~=3.19.0` -> `pycryptodomex~=3.23.0` due to security reasons Bump linting and formatting tools * Add `1726.removal.rst` * Update aiogram/utils/dataclass.py Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Update aiogram/filters/callback_data.py Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Update 1726.removal.rst * Remove `outdated` from Makefile * Add `__slots__` to `HandlerContainer` * Remove unused imports * Add `@dataclass` with `slots=True` to `HandlerContainer` --------- Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-10-06 19:19:23 +03:00
`Telegram Bot API <https://core.telegram.org/bots/api>`_ written in Python 3.10+ using
2021-10-11 01:29:06 +03:00
`asyncio <https://docs.python.org/3/library/asyncio.html>`_ and
`aiohttp <https://github.com/aio-libs/aiohttp>`_.
Make your bots faster and more powerful!
2021-10-11 01:29:06 +03:00
2022-10-02 00:49:27 +03:00
Documentation:
- 🇺🇸 `English <https://docs.aiogram.dev/en/dev-3.x/>`_
- 🇺🇦 `Ukrainian <https://docs.aiogram.dev/uk_UA/dev-3.x/>`_
2021-10-11 01:29:06 +03:00
Features
========
- Asynchronous (`asyncio docs <https://docs.python.org/3/library/asyncio.html>`_, :pep:`492`)
- Has type hints (:pep:`484`) and can be used with `mypy <http://mypy-lang.org/>`_
- Supports `PyPy <https://www.pypy.org/>`_
- Supports `Telegram Bot API 9.2 <https://core.telegram.org/bots/api>`_ and gets fast updates to the latest versions of the Bot API
- Telegram Bot API integration code was `autogenerated <https://github.com/aiogram/tg-codegen>`_ and can be easily re-generated when API gets updated
2021-10-11 01:29:06 +03:00
- Updates router (Blueprints)
- Has Finite State Machine
- Uses powerful `magic filters <https://docs.aiogram.dev/en/latest/dispatcher/filters/magic_filters.html#magic-filters>`_
2021-10-11 01:29:06 +03:00
- Middlewares (incoming updates and API calls)
- Provides `Replies into Webhook <https://core.telegram.org/bots/faq#how-can-i-make-requests-in-response-to-updates>`_
- Integrated I18n/L10n support with GNU Gettext (or Fluent)
2021-10-11 01:29:06 +03:00
.. warning::
2022-04-19 22:09:43 +03:00
It is strongly advised that you have prior experience working
with `asyncio <https://docs.python.org/3/library/asyncio.html>`_
before beginning to use **aiogram**.
2021-10-11 01:29:06 +03:00
If you have any questions, you can visit our community chats on Telegram:
2021-10-11 01:29:06 +03:00
2022-08-24 00:43:36 +03:00
- 🇺🇸 `@aiogram <https://t.me/aiogram>`_
- 🇺🇦 `@aiogramua <https://t.me/aiogramua>`_
- 🇺🇿 `@aiogram_uz <https://t.me/aiogram_uz>`_
- 🇰🇿 `@aiogram_kz <https://t.me/aiogram_kz>`_
- 🇷🇺 `@aiogram_ru <https://t.me/aiogram_ru>`_
- 🇮🇷 `@aiogram_fa <https://t.me/aiogram_fa>`_
- 🇮🇹 `@aiogram_it <https://t.me/aiogram_it>`_
- 🇧🇷 `@aiogram_br <https://t.me/aiogram_br>`_