aiogram is a modern and fully asynchronous framework for Telegram Bot API written in Python using asyncio
Find a file
zemf4you 6f4452f4e0 refactor(backend): implement default value handling in serialization
The `json_serialize` method has been added to the `TelegramMethod` and
`TelegramObject` classes to replace `Default` placeholders with actual
values from the bot's defaults during JSON serialization. This change
ensures that non-standard objects are handled correctly, maintaining
backward compatibility for built-in pydantic json serialization.

This modification is beneficial as it centralizes the handling of
default values when serializing objects to JSON, making the code more
maintainable and robust against future changes in serialization logic.
2024-04-06 03:27:01 +07:00
.butcher Added full support of Bot API 7.1 (#1417) 2024-02-16 23:44:35 +02:00
.github Merge test+pypy tests but with separated jobs 2023-11-18 21:45:22 +02:00
aiogram refactor(backend): implement default value handling in serialization 2024-04-06 03:27:01 +07:00
CHANGES Added message_thread_id parameter to ChatActionSender class methods (#1437) 2024-03-11 21:53:17 +02:00
docs chore: remove repetitive words (#1438) 2024-03-17 02:20:29 +02:00
examples PoC Scenes (#1280) 2023-11-23 00:41:21 +02:00
scripts #1191 Added possibility to pass custom headers to URLInputFile object (#1197) 2023-06-25 01:39:26 +03:00
tests refactor(backend): implement default value handling in serialization 2024-04-06 03:27:01 +07:00
.apiversion Bump API version in the docs 2024-02-16 23:48:54 +02:00
.editorconfig Adding new code-generator (Butcher) (#1069) 2022-11-21 01:06:55 +02:00
.gitignore Migrate to hatchling (#1095) 2023-01-12 02:49:58 +02:00
.pre-commit-config.yaml Migrate to hatchling (#1095) 2023-01-12 02:49:58 +02:00
.readthedocs.yml Update ReadTheDocs configuration (#1345) 2023-10-21 19:31:48 +03:00
CHANGES.rst chore: remove repetitive words (#1438) 2024-03-17 02:20:29 +02:00
CITATION.cff Update citation 2023-10-27 00:50:21 +03:00
codecov.yaml Remove compatibility with Python 3.7 2021-05-25 01:00:36 +03:00
CONTRIBUTING.md Fixed contributing URL 2023-04-13 00:02:15 +03:00
HISTORY.rst towncrier integration (#647) 2021-08-01 19:08:03 +03:00
LICENSE Update dates interval in license file 2023-09-03 03:16:48 +03:00
Makefile Added support for Bot API 7.0 (#1387) 2023-12-31 01:40:44 +02:00
pyproject.toml Bump pydantic version 2024-03-09 00:38:37 +02:00
README.rst Bump API version in the docs 2024-02-16 23:48:54 +02:00

#######
aiogram
#######

.. image:: https://img.shields.io/pypi/l/aiogram.svg?style=flat-square
    :target: https://opensource.org/licenses/MIT
    :alt: MIT License

.. image:: https://img.shields.io/pypi/status/aiogram.svg?style=flat-square
    :target: https://pypi.python.org/pypi/aiogram
    :alt: PyPi status

.. image:: https://img.shields.io/pypi/v/aiogram.svg?style=flat-square
    :target: https://pypi.python.org/pypi/aiogram
    :alt: PyPi Package Version

.. image:: https://img.shields.io/pypi/dm/aiogram.svg?style=flat-square
    :target: https://pypi.python.org/pypi/aiogram
    :alt: Downloads

.. image:: https://img.shields.io/pypi/pyversions/aiogram.svg?style=flat-square
    :target: https://pypi.python.org/pypi/aiogram
    :alt: Supported python versions

.. 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

.. 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
`Telegram Bot API <https://core.telegram.org/bots/api>`_ written in Python 3.8 using
`asyncio <https://docs.python.org/3/library/asyncio.html>`_ and
`aiohttp <https://github.com/aio-libs/aiohttp>`_.

Make your bots faster and more powerful!

Documentation:
 - 🇺🇸 `English <https://docs.aiogram.dev/en/dev-3.x/>`_
 - 🇺🇦 `Ukrainian <https://docs.aiogram.dev/uk_UA/dev-3.x/>`_


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 7.1 <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
- Updates router (Blueprints)
- Has Finite State Machine
- Uses powerful `magic filters <https://docs.aiogram.dev/en/latest/dispatcher/filters/magic_filters.html#magic-filters>`_
- 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)


.. warning::

    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**.

    If you have any questions, you can visit our community chats on Telegram:

    - 🇺🇸 `@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>`_