pyTelegramBotAPI 4.23.0__tar.gz → 4.25.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {pytelegrambotapi-4.23.0 → pytelegrambotapi-4.25.0}/.github/workflows/setup_python.yml +1 -1
- {pytelegrambotapi-4.23.0 → pytelegrambotapi-4.25.0}/.travis.yml +1 -1
- {pytelegrambotapi-4.23.0 → pytelegrambotapi-4.25.0}/PKG-INFO +6 -7
- {pytelegrambotapi-4.23.0 → pytelegrambotapi-4.25.0}/README.md +3 -3
- {pytelegrambotapi-4.23.0 → pytelegrambotapi-4.25.0}/docs/source/conf.py +1 -1
- {pytelegrambotapi-4.23.0 → pytelegrambotapi-4.25.0}/examples/asynchronous_telebot/custom_states.py +10 -7
- {pytelegrambotapi-4.23.0 → pytelegrambotapi-4.25.0}/examples/custom_states.py +10 -7
- {pytelegrambotapi-4.23.0 → pytelegrambotapi-4.25.0}/examples/serverless/flask_google_cloud_bot/requirements.txt +4 -4
- {pytelegrambotapi-4.23.0 → pytelegrambotapi-4.25.0}/pyproject.toml +3 -3
- {pytelegrambotapi-4.23.0 → pytelegrambotapi-4.25.0}/telebot/__init__.py +264 -44
- {pytelegrambotapi-4.23.0 → pytelegrambotapi-4.25.0}/telebot/apihelper.py +111 -19
- {pytelegrambotapi-4.23.0 → pytelegrambotapi-4.25.0}/telebot/async_telebot.py +263 -44
- {pytelegrambotapi-4.23.0 → pytelegrambotapi-4.25.0}/telebot/asyncio_helper.py +114 -19
- {pytelegrambotapi-4.23.0 → pytelegrambotapi-4.25.0}/telebot/asyncio_storage/pickle_storage.py +3 -3
- {pytelegrambotapi-4.23.0 → pytelegrambotapi-4.25.0}/telebot/formatting.py +1 -1
- {pytelegrambotapi-4.23.0 → pytelegrambotapi-4.25.0}/telebot/storage/pickle_storage.py +3 -3
- {pytelegrambotapi-4.23.0 → pytelegrambotapi-4.25.0}/telebot/types.py +357 -83
- {pytelegrambotapi-4.23.0 → pytelegrambotapi-4.25.0}/telebot/version.py +1 -1
- {pytelegrambotapi-4.23.0 → pytelegrambotapi-4.25.0}/.github/ISSUE_TEMPLATE +0 -0
- {pytelegrambotapi-4.23.0 → pytelegrambotapi-4.25.0}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
- {pytelegrambotapi-4.23.0 → pytelegrambotapi-4.25.0}/.gitignore +0 -0
- {pytelegrambotapi-4.23.0 → pytelegrambotapi-4.25.0}/.readthedocs.yml +0 -0
- {pytelegrambotapi-4.23.0 → pytelegrambotapi-4.25.0}/LICENSE +0 -0
- {pytelegrambotapi-4.23.0 → pytelegrambotapi-4.25.0}/doc_req.txt +0 -0
- {pytelegrambotapi-4.23.0 → pytelegrambotapi-4.25.0}/docs/Makefile +0 -0
- {pytelegrambotapi-4.23.0 → pytelegrambotapi-4.25.0}/docs/source/_static/logo.png +0 -0
- {pytelegrambotapi-4.23.0 → pytelegrambotapi-4.25.0}/docs/source/_static/logo2.png +0 -0
- {pytelegrambotapi-4.23.0 → pytelegrambotapi-4.25.0}/docs/source/async_version/index.rst +0 -0
- {pytelegrambotapi-4.23.0 → pytelegrambotapi-4.25.0}/docs/source/calldata.rst +0 -0
- {pytelegrambotapi-4.23.0 → pytelegrambotapi-4.25.0}/docs/source/formatting.rst +0 -0
- {pytelegrambotapi-4.23.0 → pytelegrambotapi-4.25.0}/docs/source/index.rst +0 -0
- {pytelegrambotapi-4.23.0 → pytelegrambotapi-4.25.0}/docs/source/install.rst +0 -0
- {pytelegrambotapi-4.23.0 → pytelegrambotapi-4.25.0}/docs/source/locales/en/LC_MESSAGES/async_version.po +0 -0
- {pytelegrambotapi-4.23.0 → pytelegrambotapi-4.25.0}/docs/source/locales/en/LC_MESSAGES/calldata.po +0 -0
- {pytelegrambotapi-4.23.0 → pytelegrambotapi-4.25.0}/docs/source/locales/en/LC_MESSAGES/formatting.po +0 -0
- {pytelegrambotapi-4.23.0 → pytelegrambotapi-4.25.0}/docs/source/locales/en/LC_MESSAGES/index.po +0 -0
- {pytelegrambotapi-4.23.0 → pytelegrambotapi-4.25.0}/docs/source/locales/en/LC_MESSAGES/install.po +0 -0
- {pytelegrambotapi-4.23.0 → pytelegrambotapi-4.25.0}/docs/source/locales/en/LC_MESSAGES/quick_start.po +0 -0
- {pytelegrambotapi-4.23.0 → pytelegrambotapi-4.25.0}/docs/source/locales/en/LC_MESSAGES/sync_version.po +0 -0
- {pytelegrambotapi-4.23.0 → pytelegrambotapi-4.25.0}/docs/source/locales/en/LC_MESSAGES/types.po +0 -0
- {pytelegrambotapi-4.23.0 → pytelegrambotapi-4.25.0}/docs/source/locales/en/LC_MESSAGES/util.po +0 -0
- {pytelegrambotapi-4.23.0 → pytelegrambotapi-4.25.0}/docs/source/locales/ru/LC_MESSAGES/async_version.po +0 -0
- {pytelegrambotapi-4.23.0 → pytelegrambotapi-4.25.0}/docs/source/locales/ru/LC_MESSAGES/calldata.po +0 -0
- {pytelegrambotapi-4.23.0 → pytelegrambotapi-4.25.0}/docs/source/locales/ru/LC_MESSAGES/formatting.po +0 -0
- {pytelegrambotapi-4.23.0 → pytelegrambotapi-4.25.0}/docs/source/locales/ru/LC_MESSAGES/index.po +0 -0
- {pytelegrambotapi-4.23.0 → pytelegrambotapi-4.25.0}/docs/source/locales/ru/LC_MESSAGES/install.po +0 -0
- {pytelegrambotapi-4.23.0 → pytelegrambotapi-4.25.0}/docs/source/locales/ru/LC_MESSAGES/quick_start.po +0 -0
- {pytelegrambotapi-4.23.0 → pytelegrambotapi-4.25.0}/docs/source/locales/ru/LC_MESSAGES/sync_version.po +0 -0
- {pytelegrambotapi-4.23.0 → pytelegrambotapi-4.25.0}/docs/source/locales/ru/LC_MESSAGES/types.po +0 -0
- {pytelegrambotapi-4.23.0 → pytelegrambotapi-4.25.0}/docs/source/locales/ru/LC_MESSAGES/util.po +0 -0
- {pytelegrambotapi-4.23.0 → pytelegrambotapi-4.25.0}/docs/source/quick_start.rst +0 -0
- {pytelegrambotapi-4.23.0 → pytelegrambotapi-4.25.0}/docs/source/sync_version/index.rst +0 -0
- {pytelegrambotapi-4.23.0 → pytelegrambotapi-4.25.0}/docs/source/types.rst +0 -0
- {pytelegrambotapi-4.23.0 → pytelegrambotapi-4.25.0}/docs/source/util.rst +0 -0
- {pytelegrambotapi-4.23.0 → pytelegrambotapi-4.25.0}/examples/anonymous_bot.py +0 -0
- {pytelegrambotapi-4.23.0 → pytelegrambotapi-4.25.0}/examples/asynchronous_telebot/callback_data_examples/advanced_calendar_example/filters.py +0 -0
- {pytelegrambotapi-4.23.0 → pytelegrambotapi-4.25.0}/examples/asynchronous_telebot/callback_data_examples/advanced_calendar_example/keyboards.py +0 -0
- {pytelegrambotapi-4.23.0 → pytelegrambotapi-4.25.0}/examples/asynchronous_telebot/callback_data_examples/advanced_calendar_example/main.py +0 -0
- {pytelegrambotapi-4.23.0 → pytelegrambotapi-4.25.0}/examples/asynchronous_telebot/callback_data_examples/simple_products_example.py +0 -0
- {pytelegrambotapi-4.23.0 → pytelegrambotapi-4.25.0}/examples/asynchronous_telebot/chat_join_request.py +0 -0
- {pytelegrambotapi-4.23.0 → pytelegrambotapi-4.25.0}/examples/asynchronous_telebot/chat_member_example.py +0 -0
- {pytelegrambotapi-4.23.0 → pytelegrambotapi-4.25.0}/examples/asynchronous_telebot/continue_handling.py +0 -0
- {pytelegrambotapi-4.23.0 → pytelegrambotapi-4.25.0}/examples/asynchronous_telebot/custom_filters/admin_filter_example.py +0 -0
- {pytelegrambotapi-4.23.0 → pytelegrambotapi-4.25.0}/examples/asynchronous_telebot/custom_filters/advanced_text_filter.py +0 -0
- {pytelegrambotapi-4.23.0 → pytelegrambotapi-4.25.0}/examples/asynchronous_telebot/custom_filters/general_custom_filters.py +0 -0
- {pytelegrambotapi-4.23.0 → pytelegrambotapi-4.25.0}/examples/asynchronous_telebot/custom_filters/id_filter_example.py +0 -0
- {pytelegrambotapi-4.23.0 → pytelegrambotapi-4.25.0}/examples/asynchronous_telebot/custom_filters/is_filter_example.py +0 -0
- {pytelegrambotapi-4.23.0 → pytelegrambotapi-4.25.0}/examples/asynchronous_telebot/custom_filters/text_filter_example.py +0 -0
- {pytelegrambotapi-4.23.0 → pytelegrambotapi-4.25.0}/examples/asynchronous_telebot/detect_changes.py +0 -0
- {pytelegrambotapi-4.23.0 → pytelegrambotapi-4.25.0}/examples/asynchronous_telebot/download_file_example.py +0 -0
- {pytelegrambotapi-4.23.0 → pytelegrambotapi-4.25.0}/examples/asynchronous_telebot/echo_bot.py +0 -0
- {pytelegrambotapi-4.23.0 → pytelegrambotapi-4.25.0}/examples/asynchronous_telebot/exception_handler.py +0 -0
- {pytelegrambotapi-4.23.0 → pytelegrambotapi-4.25.0}/examples/asynchronous_telebot/formatting_example.py +0 -0
- {pytelegrambotapi-4.23.0 → pytelegrambotapi-4.25.0}/examples/asynchronous_telebot/message_reaction_example.py +0 -0
- {pytelegrambotapi-4.23.0 → pytelegrambotapi-4.25.0}/examples/asynchronous_telebot/middleware/flooding_middleware.py +0 -0
- {pytelegrambotapi-4.23.0 → pytelegrambotapi-4.25.0}/examples/asynchronous_telebot/middleware/i18n.py +0 -0
- {pytelegrambotapi-4.23.0 → pytelegrambotapi-4.25.0}/examples/asynchronous_telebot/middleware/i18n_middleware_example/i18n_base_midddleware.py +0 -0
- {pytelegrambotapi-4.23.0 → pytelegrambotapi-4.25.0}/examples/asynchronous_telebot/middleware/i18n_middleware_example/keyboards.py +0 -0
- {pytelegrambotapi-4.23.0 → pytelegrambotapi-4.25.0}/examples/asynchronous_telebot/middleware/i18n_middleware_example/locales/en/LC_MESSAGES/messages.po +0 -0
- {pytelegrambotapi-4.23.0 → pytelegrambotapi-4.25.0}/examples/asynchronous_telebot/middleware/i18n_middleware_example/locales/ru/LC_MESSAGES/messages.po +0 -0
- {pytelegrambotapi-4.23.0 → pytelegrambotapi-4.25.0}/examples/asynchronous_telebot/middleware/i18n_middleware_example/locales/uz_Latn/LC_MESSAGES/messages.po +0 -0
- {pytelegrambotapi-4.23.0 → pytelegrambotapi-4.25.0}/examples/asynchronous_telebot/middleware/i18n_middleware_example/main.py +0 -0
- {pytelegrambotapi-4.23.0 → pytelegrambotapi-4.25.0}/examples/asynchronous_telebot/mini_app.py +0 -0
- {pytelegrambotapi-4.23.0 → pytelegrambotapi-4.25.0}/examples/asynchronous_telebot/multibot/README.MD +0 -0
- {pytelegrambotapi-4.23.0 → pytelegrambotapi-4.25.0}/examples/asynchronous_telebot/multibot/config.py +0 -0
- {pytelegrambotapi-4.23.0 → pytelegrambotapi-4.25.0}/examples/asynchronous_telebot/multibot/handlers.py +0 -0
- {pytelegrambotapi-4.23.0 → pytelegrambotapi-4.25.0}/examples/asynchronous_telebot/multibot/main.py +0 -0
- {pytelegrambotapi-4.23.0 → pytelegrambotapi-4.25.0}/examples/asynchronous_telebot/multibot/nginx_conf.conf +0 -0
- {pytelegrambotapi-4.23.0 → pytelegrambotapi-4.25.0}/examples/asynchronous_telebot/register_handler.py +0 -0
- {pytelegrambotapi-4.23.0 → pytelegrambotapi-4.25.0}/examples/asynchronous_telebot/send_file_example.py +0 -0
- {pytelegrambotapi-4.23.0 → pytelegrambotapi-4.25.0}/examples/asynchronous_telebot/set_command_example.py +0 -0
- {pytelegrambotapi-4.23.0 → pytelegrambotapi-4.25.0}/examples/asynchronous_telebot/skip_updates_example.py +0 -0
- {pytelegrambotapi-4.23.0 → pytelegrambotapi-4.25.0}/examples/asynchronous_telebot/timer_bot_async.py +0 -0
- {pytelegrambotapi-4.23.0 → pytelegrambotapi-4.25.0}/examples/asynchronous_telebot/update_listener.py +0 -0
- {pytelegrambotapi-4.23.0 → pytelegrambotapi-4.25.0}/examples/asynchronous_telebot/webhooks/async_webhook_aiohttp_echo_bot.py +0 -0
- {pytelegrambotapi-4.23.0 → pytelegrambotapi-4.25.0}/examples/asynchronous_telebot/webhooks/run_webhooks.py +0 -0
- {pytelegrambotapi-4.23.0 → pytelegrambotapi-4.25.0}/examples/asynchronous_telebot/webhooks/webhook_starlette_echo_bot.py +0 -0
- {pytelegrambotapi-4.23.0 → pytelegrambotapi-4.25.0}/examples/callback_data_examples/advanced_calendar_example/filters.py +0 -0
- {pytelegrambotapi-4.23.0 → pytelegrambotapi-4.25.0}/examples/callback_data_examples/advanced_calendar_example/keyboards.py +0 -0
- {pytelegrambotapi-4.23.0 → pytelegrambotapi-4.25.0}/examples/callback_data_examples/advanced_calendar_example/main.py +0 -0
- {pytelegrambotapi-4.23.0 → pytelegrambotapi-4.25.0}/examples/callback_data_examples/simple_products_example.py +0 -0
- {pytelegrambotapi-4.23.0 → pytelegrambotapi-4.25.0}/examples/chat_join_request.py +0 -0
- {pytelegrambotapi-4.23.0 → pytelegrambotapi-4.25.0}/examples/chat_member_example.py +0 -0
- {pytelegrambotapi-4.23.0 → pytelegrambotapi-4.25.0}/examples/continue_handling.py +0 -0
- {pytelegrambotapi-4.23.0 → pytelegrambotapi-4.25.0}/examples/create_invite_link.py +0 -0
- {pytelegrambotapi-4.23.0 → pytelegrambotapi-4.25.0}/examples/custom_filters/admin_filter_example.py +0 -0
- {pytelegrambotapi-4.23.0 → pytelegrambotapi-4.25.0}/examples/custom_filters/advanced_text_filter.py +0 -0
- {pytelegrambotapi-4.23.0 → pytelegrambotapi-4.25.0}/examples/custom_filters/general_custom_filters.py +0 -0
- {pytelegrambotapi-4.23.0 → pytelegrambotapi-4.25.0}/examples/custom_filters/id_filter_example.py +0 -0
- {pytelegrambotapi-4.23.0 → pytelegrambotapi-4.25.0}/examples/custom_filters/is_filter_example.py +0 -0
- {pytelegrambotapi-4.23.0 → pytelegrambotapi-4.25.0}/examples/custom_filters/text_filter_example.py +0 -0
- {pytelegrambotapi-4.23.0 → pytelegrambotapi-4.25.0}/examples/deep_linking.py +0 -0
- {pytelegrambotapi-4.23.0 → pytelegrambotapi-4.25.0}/examples/detailed_example/detailed_example.py +0 -0
- {pytelegrambotapi-4.23.0 → pytelegrambotapi-4.25.0}/examples/detailed_example/kitten.jpg +0 -0
- {pytelegrambotapi-4.23.0 → pytelegrambotapi-4.25.0}/examples/detailed_example/rooster.jpg +0 -0
- {pytelegrambotapi-4.23.0 → pytelegrambotapi-4.25.0}/examples/detect_changes.py +0 -0
- {pytelegrambotapi-4.23.0 → pytelegrambotapi-4.25.0}/examples/download_file_example.py +0 -0
- {pytelegrambotapi-4.23.0 → pytelegrambotapi-4.25.0}/examples/echo_bot.py +0 -0
- {pytelegrambotapi-4.23.0 → pytelegrambotapi-4.25.0}/examples/formatting_example.py +0 -0
- {pytelegrambotapi-4.23.0 → pytelegrambotapi-4.25.0}/examples/inline_example.py +0 -0
- {pytelegrambotapi-4.23.0 → pytelegrambotapi-4.25.0}/examples/inline_keyboard_example.py +0 -0
- {pytelegrambotapi-4.23.0 → pytelegrambotapi-4.25.0}/examples/message_reaction_example.py +0 -0
- {pytelegrambotapi-4.23.0 → pytelegrambotapi-4.25.0}/examples/middleware/README.md +0 -0
- {pytelegrambotapi-4.23.0 → pytelegrambotapi-4.25.0}/examples/middleware/class_based/antiflood_middleware.py +0 -0
- {pytelegrambotapi-4.23.0 → pytelegrambotapi-4.25.0}/examples/middleware/class_based/basic_example.py +0 -0
- {pytelegrambotapi-4.23.0 → pytelegrambotapi-4.25.0}/examples/middleware/class_based/i18n_middleware/i18n_base_middleware.py +0 -0
- {pytelegrambotapi-4.23.0 → pytelegrambotapi-4.25.0}/examples/middleware/class_based/i18n_middleware/keyboards.py +0 -0
- {pytelegrambotapi-4.23.0 → pytelegrambotapi-4.25.0}/examples/middleware/class_based/i18n_middleware/locales/en/LC_MESSAGES/messages.po +0 -0
- {pytelegrambotapi-4.23.0 → pytelegrambotapi-4.25.0}/examples/middleware/class_based/i18n_middleware/locales/ru/LC_MESSAGES/messages.po +0 -0
- {pytelegrambotapi-4.23.0 → pytelegrambotapi-4.25.0}/examples/middleware/class_based/i18n_middleware/locales/uz_Latn/LC_MESSAGES/messages.po +0 -0
- {pytelegrambotapi-4.23.0 → pytelegrambotapi-4.25.0}/examples/middleware/class_based/i18n_middleware/main.py +0 -0
- {pytelegrambotapi-4.23.0 → pytelegrambotapi-4.25.0}/examples/middleware/function_based/i18n.py +0 -0
- {pytelegrambotapi-4.23.0 → pytelegrambotapi-4.25.0}/examples/middleware/function_based/i18n_gettext/i18n_class.py +0 -0
- {pytelegrambotapi-4.23.0 → pytelegrambotapi-4.25.0}/examples/middleware/function_based/i18n_gettext/keyboards.py +0 -0
- {pytelegrambotapi-4.23.0 → pytelegrambotapi-4.25.0}/examples/middleware/function_based/i18n_gettext/locales/en/LC_MESSAGES/messages.po +0 -0
- {pytelegrambotapi-4.23.0 → pytelegrambotapi-4.25.0}/examples/middleware/function_based/i18n_gettext/locales/ru/LC_MESSAGES/messages.po +0 -0
- {pytelegrambotapi-4.23.0 → pytelegrambotapi-4.25.0}/examples/middleware/function_based/i18n_gettext/locales/uz_Latn/LC_MESSAGES/messages.po +0 -0
- {pytelegrambotapi-4.23.0 → pytelegrambotapi-4.25.0}/examples/middleware/function_based/i18n_gettext/main.py +0 -0
- {pytelegrambotapi-4.23.0 → pytelegrambotapi-4.25.0}/examples/middleware/function_based/session.py +0 -0
- {pytelegrambotapi-4.23.0 → pytelegrambotapi-4.25.0}/examples/mini_app.py +0 -0
- {pytelegrambotapi-4.23.0 → pytelegrambotapi-4.25.0}/examples/mini_app_web/index.html +0 -0
- {pytelegrambotapi-4.23.0 → pytelegrambotapi-4.25.0}/examples/mini_app_web/script.js +0 -0
- {pytelegrambotapi-4.23.0 → pytelegrambotapi-4.25.0}/examples/mini_app_web/style.css +0 -0
- {pytelegrambotapi-4.23.0 → pytelegrambotapi-4.25.0}/examples/multibot/README.MD +0 -0
- {pytelegrambotapi-4.23.0 → pytelegrambotapi-4.25.0}/examples/multibot/config.py +0 -0
- {pytelegrambotapi-4.23.0 → pytelegrambotapi-4.25.0}/examples/multibot/handlers.py +0 -0
- {pytelegrambotapi-4.23.0 → pytelegrambotapi-4.25.0}/examples/multibot/main.py +0 -0
- {pytelegrambotapi-4.23.0 → pytelegrambotapi-4.25.0}/examples/multibot/nginx_conf.conf +0 -0
- {pytelegrambotapi-4.23.0 → pytelegrambotapi-4.25.0}/examples/payments_example.py +0 -0
- {pytelegrambotapi-4.23.0 → pytelegrambotapi-4.25.0}/examples/poll_example.py +0 -0
- {pytelegrambotapi-4.23.0 → pytelegrambotapi-4.25.0}/examples/register_handler.py +0 -0
- {pytelegrambotapi-4.23.0 → pytelegrambotapi-4.25.0}/examples/reply_keyboard_markup_example.py +0 -0
- {pytelegrambotapi-4.23.0 → pytelegrambotapi-4.25.0}/examples/serverless/aws_lambda_function.py +0 -0
- {pytelegrambotapi-4.23.0 → pytelegrambotapi-4.25.0}/examples/serverless/azure_functions +0 -0
- {pytelegrambotapi-4.23.0 → pytelegrambotapi-4.25.0}/examples/serverless/flask_google_cloud_bot/.gcloudignore +0 -0
- {pytelegrambotapi-4.23.0 → pytelegrambotapi-4.25.0}/examples/serverless/flask_google_cloud_bot/app.yaml +0 -0
- {pytelegrambotapi-4.23.0 → pytelegrambotapi-4.25.0}/examples/serverless/flask_google_cloud_bot/main.py +0 -0
- {pytelegrambotapi-4.23.0 → pytelegrambotapi-4.25.0}/examples/set_command_example.py +0 -0
- {pytelegrambotapi-4.23.0 → pytelegrambotapi-4.25.0}/examples/skip_updates_example.py +0 -0
- {pytelegrambotapi-4.23.0 → pytelegrambotapi-4.25.0}/examples/step_example.py +0 -0
- {pytelegrambotapi-4.23.0 → pytelegrambotapi-4.25.0}/examples/telebot_bot/telebot_bot.py +0 -0
- {pytelegrambotapi-4.23.0 → pytelegrambotapi-4.25.0}/examples/timer_bot.py +0 -0
- {pytelegrambotapi-4.23.0 → pytelegrambotapi-4.25.0}/examples/webhook_examples/README.md +0 -0
- {pytelegrambotapi-4.23.0 → pytelegrambotapi-4.25.0}/examples/webhook_examples/run_webhooks.py +0 -0
- {pytelegrambotapi-4.23.0 → pytelegrambotapi-4.25.0}/examples/webhook_examples/webhook_aiohttp_echo_bot.py +0 -0
- {pytelegrambotapi-4.23.0 → pytelegrambotapi-4.25.0}/examples/webhook_examples/webhook_cherrypy_echo_bot.py +0 -0
- {pytelegrambotapi-4.23.0 → pytelegrambotapi-4.25.0}/examples/webhook_examples/webhook_cpython_echo_bot.py +0 -0
- {pytelegrambotapi-4.23.0 → pytelegrambotapi-4.25.0}/examples/webhook_examples/webhook_fastapi_echo_bot.py +0 -0
- {pytelegrambotapi-4.23.0 → pytelegrambotapi-4.25.0}/examples/webhook_examples/webhook_flask_echo_bot.py +0 -0
- {pytelegrambotapi-4.23.0 → pytelegrambotapi-4.25.0}/examples/webhook_examples/webhook_flask_heroku_echo.py +0 -0
- {pytelegrambotapi-4.23.0 → pytelegrambotapi-4.25.0}/examples/webhook_examples/webhook_tornado_echo_bot.py +0 -0
- {pytelegrambotapi-4.23.0 → pytelegrambotapi-4.25.0}/examples/webhook_examples/webhook_twisted_echo_bot.py +0 -0
- {pytelegrambotapi-4.23.0 → pytelegrambotapi-4.25.0}/requirements.txt +0 -0
- {pytelegrambotapi-4.23.0 → pytelegrambotapi-4.25.0}/telebot/asyncio_filters.py +0 -0
- {pytelegrambotapi-4.23.0 → pytelegrambotapi-4.25.0}/telebot/asyncio_handler_backends.py +0 -0
- {pytelegrambotapi-4.23.0 → pytelegrambotapi-4.25.0}/telebot/asyncio_storage/__init__.py +0 -0
- {pytelegrambotapi-4.23.0 → pytelegrambotapi-4.25.0}/telebot/asyncio_storage/base_storage.py +0 -0
- {pytelegrambotapi-4.23.0 → pytelegrambotapi-4.25.0}/telebot/asyncio_storage/memory_storage.py +0 -0
- {pytelegrambotapi-4.23.0 → pytelegrambotapi-4.25.0}/telebot/asyncio_storage/redis_storage.py +0 -0
- {pytelegrambotapi-4.23.0 → pytelegrambotapi-4.25.0}/telebot/callback_data.py +0 -0
- {pytelegrambotapi-4.23.0 → pytelegrambotapi-4.25.0}/telebot/custom_filters.py +0 -0
- {pytelegrambotapi-4.23.0 → pytelegrambotapi-4.25.0}/telebot/ext/__init__.py +0 -0
- {pytelegrambotapi-4.23.0 → pytelegrambotapi-4.25.0}/telebot/ext/aio/__init__.py +0 -0
- {pytelegrambotapi-4.23.0 → pytelegrambotapi-4.25.0}/telebot/ext/aio/webhooks.py +0 -0
- {pytelegrambotapi-4.23.0 → pytelegrambotapi-4.25.0}/telebot/ext/reloader.py +0 -0
- {pytelegrambotapi-4.23.0 → pytelegrambotapi-4.25.0}/telebot/ext/sync/__init__.py +0 -0
- {pytelegrambotapi-4.23.0 → pytelegrambotapi-4.25.0}/telebot/ext/sync/webhooks.py +0 -0
- {pytelegrambotapi-4.23.0 → pytelegrambotapi-4.25.0}/telebot/handler_backends.py +0 -0
- {pytelegrambotapi-4.23.0 → pytelegrambotapi-4.25.0}/telebot/service_utils.py +0 -0
- {pytelegrambotapi-4.23.0 → pytelegrambotapi-4.25.0}/telebot/states/__init__.py +0 -0
- {pytelegrambotapi-4.23.0 → pytelegrambotapi-4.25.0}/telebot/states/asyncio/__init__.py +0 -0
- {pytelegrambotapi-4.23.0 → pytelegrambotapi-4.25.0}/telebot/states/asyncio/context.py +0 -0
- {pytelegrambotapi-4.23.0 → pytelegrambotapi-4.25.0}/telebot/states/asyncio/middleware.py +0 -0
- {pytelegrambotapi-4.23.0 → pytelegrambotapi-4.25.0}/telebot/states/sync/__init__.py +0 -0
- {pytelegrambotapi-4.23.0 → pytelegrambotapi-4.25.0}/telebot/states/sync/context.py +0 -0
- {pytelegrambotapi-4.23.0 → pytelegrambotapi-4.25.0}/telebot/states/sync/middleware.py +0 -0
- {pytelegrambotapi-4.23.0 → pytelegrambotapi-4.25.0}/telebot/storage/__init__.py +0 -0
- {pytelegrambotapi-4.23.0 → pytelegrambotapi-4.25.0}/telebot/storage/base_storage.py +0 -0
- {pytelegrambotapi-4.23.0 → pytelegrambotapi-4.25.0}/telebot/storage/memory_storage.py +0 -0
- {pytelegrambotapi-4.23.0 → pytelegrambotapi-4.25.0}/telebot/storage/redis_storage.py +0 -0
- {pytelegrambotapi-4.23.0 → pytelegrambotapi-4.25.0}/telebot/util.py +0 -0
- {pytelegrambotapi-4.23.0 → pytelegrambotapi-4.25.0}/tests/__init__.py +0 -0
- {pytelegrambotapi-4.23.0 → pytelegrambotapi-4.25.0}/tests/test_data/record.mp3 +0 -0
- {pytelegrambotapi-4.23.0 → pytelegrambotapi-4.25.0}/tests/test_data/record.ogg +0 -0
- {pytelegrambotapi-4.23.0 → pytelegrambotapi-4.25.0}/tests/test_data/record.wav +0 -0
- {pytelegrambotapi-4.23.0 → pytelegrambotapi-4.25.0}/tests/test_data/test_video.mp4 +0 -0
- {pytelegrambotapi-4.23.0 → pytelegrambotapi-4.25.0}/tests/test_handler_backends.py +0 -0
- {pytelegrambotapi-4.23.0 → pytelegrambotapi-4.25.0}/tests/test_telebot.py +0 -0
- {pytelegrambotapi-4.23.0 → pytelegrambotapi-4.25.0}/tests/test_types.py +0 -0
|
@@ -20,7 +20,7 @@ jobs:
|
|
|
20
20
|
runs-on: ubuntu-latest
|
|
21
21
|
strategy:
|
|
22
22
|
matrix:
|
|
23
|
-
python-version: [ '3.
|
|
23
|
+
python-version: [ '3.9', '3.10', '3.11', '3.12', '3.13', 'pypy-3.9', 'pypy-3.10']
|
|
24
24
|
name: ${{ matrix.python-version }} and tests
|
|
25
25
|
steps:
|
|
26
26
|
- uses: actions/checkout@v2
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.3
|
|
2
2
|
Name: pyTelegramBotAPI
|
|
3
|
-
Version: 4.
|
|
3
|
+
Version: 4.25.0
|
|
4
4
|
Summary: Python Telegram bot api.
|
|
5
5
|
Project-URL: Homepage, https://github.com/eternnoir/pyTelegramBotAPI
|
|
6
6
|
Project-URL: Documentation, https://pytba.readthedocs.org
|
|
@@ -8,18 +8,17 @@ Project-URL: Repository, https://github.com/eternnoir/pyTelegramBotAPI
|
|
|
8
8
|
Project-URL: Issues, https://github.com/eternnoir/pyTelegramBotAPI/issues
|
|
9
9
|
Author-email: eternnoir <eternnoir@gmail.com>
|
|
10
10
|
License: GPL2
|
|
11
|
-
License-File: LICENSE
|
|
12
11
|
Keywords: api,bot,telegram,tools
|
|
13
12
|
Classifier: Development Status :: 5 - Production/Stable
|
|
14
13
|
Classifier: Environment :: Console
|
|
15
14
|
Classifier: License :: OSI Approved :: GNU General Public License v2 (GPLv2)
|
|
16
15
|
Classifier: Programming Language :: Python :: 3
|
|
17
|
-
Classifier: Programming Language :: Python :: 3.8
|
|
18
16
|
Classifier: Programming Language :: Python :: 3.9
|
|
19
17
|
Classifier: Programming Language :: Python :: 3.10
|
|
20
18
|
Classifier: Programming Language :: Python :: 3.11
|
|
21
19
|
Classifier: Programming Language :: Python :: 3.12
|
|
22
|
-
|
|
20
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
21
|
+
Requires-Python: >=3.9
|
|
23
22
|
Requires-Dist: requests
|
|
24
23
|
Provides-Extra: aiohttp
|
|
25
24
|
Requires-Dist: aiohttp; extra == 'aiohttp'
|
|
@@ -53,7 +52,7 @@ Description-Content-Type: text/markdown
|
|
|
53
52
|
<p align="center">A simple, but extensible Python implementation for the <a href="https://core.telegram.org/bots/api">Telegram Bot API</a>.</p>
|
|
54
53
|
<p align="center">Both synchronous and asynchronous.</p>
|
|
55
54
|
|
|
56
|
-
## <p align="center">Supported Bot API version: <a href="https://core.telegram.org/bots/api#
|
|
55
|
+
## <p align="center">Supported Bot API version: <a href="https://core.telegram.org/bots/api#november-17-2024"><img src="https://img.shields.io/badge/Bot%20API-8.1-blue?logo=telegram" alt="Supported Bot API version"></a>
|
|
57
56
|
|
|
58
57
|
<h2><a href='https://pytba.readthedocs.io/en/latest/index.html'>Official documentation</a></h2>
|
|
59
58
|
<h2><a href='https://pytba.readthedocs.io/ru/latest/index.html'>Official ru documentation</a></h2>
|
|
@@ -112,7 +111,7 @@ Description-Content-Type: text/markdown
|
|
|
112
111
|
|
|
113
112
|
## Getting started
|
|
114
113
|
|
|
115
|
-
This API is tested with Python 3.
|
|
114
|
+
This API is tested with Python 3.9-3.13 and Pypy 3.
|
|
116
115
|
There are two ways to install the library:
|
|
117
116
|
|
|
118
117
|
* Installation using pip (a Python package manager):
|
|
@@ -873,7 +872,7 @@ Here are some examples of template:
|
|
|
873
872
|
* [RadRetroRobot](https://github.com/Tronikart/RadRetroRobot) by *Tronikart* - Multifunctional Telegram Bot RadRetroRobot.
|
|
874
873
|
* [League of Legends bot](https://telegram.me/League_of_Legends_bot) ([source](https://github.com/i32ropie/lol)) by *i32ropie*
|
|
875
874
|
* [NeoBot](https://github.com/neoranger/NeoBot) by [@NeoRanger](https://github.com/neoranger)
|
|
876
|
-
* [ColorCodeBot](https://t.me/colorcodebot) ([source](https://github.com/andydecleyre/colorcodebot)) - Share code snippets as beautifully syntax-highlighted
|
|
875
|
+
* [ColorCodeBot](https://t.me/colorcodebot) ([source](https://github.com/andydecleyre/colorcodebot)) - Share code snippets as beautifully syntax-highlighted images.
|
|
877
876
|
* [ComedoresUGRbot](http://telegram.me/ComedoresUGRbot) ([source](https://github.com/alejandrocq/ComedoresUGRbot)) by [*alejandrocq*](https://github.com/alejandrocq) - Telegram bot to check the menu of Universidad de Granada dining hall.
|
|
878
877
|
* [proxybot](https://github.com/p-hash/proxybot) - Simple Proxy Bot for Telegram. by p-hash
|
|
879
878
|
* [DonantesMalagaBot](https://github.com/vfranch/DonantesMalagaBot) - DonantesMalagaBot facilitates information to Malaga blood donors about the places where they can donate today or in the incoming days. It also records the date of the last donation so that it helps the donors to know when they can donate again. - by vfranch
|
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
<p align="center">A simple, but extensible Python implementation for the <a href="https://core.telegram.org/bots/api">Telegram Bot API</a>.</p>
|
|
11
11
|
<p align="center">Both synchronous and asynchronous.</p>
|
|
12
12
|
|
|
13
|
-
## <p align="center">Supported Bot API version: <a href="https://core.telegram.org/bots/api#
|
|
13
|
+
## <p align="center">Supported Bot API version: <a href="https://core.telegram.org/bots/api#november-17-2024"><img src="https://img.shields.io/badge/Bot%20API-8.1-blue?logo=telegram" alt="Supported Bot API version"></a>
|
|
14
14
|
|
|
15
15
|
<h2><a href='https://pytba.readthedocs.io/en/latest/index.html'>Official documentation</a></h2>
|
|
16
16
|
<h2><a href='https://pytba.readthedocs.io/ru/latest/index.html'>Official ru documentation</a></h2>
|
|
@@ -69,7 +69,7 @@
|
|
|
69
69
|
|
|
70
70
|
## Getting started
|
|
71
71
|
|
|
72
|
-
This API is tested with Python 3.
|
|
72
|
+
This API is tested with Python 3.9-3.13 and Pypy 3.
|
|
73
73
|
There are two ways to install the library:
|
|
74
74
|
|
|
75
75
|
* Installation using pip (a Python package manager):
|
|
@@ -830,7 +830,7 @@ Here are some examples of template:
|
|
|
830
830
|
* [RadRetroRobot](https://github.com/Tronikart/RadRetroRobot) by *Tronikart* - Multifunctional Telegram Bot RadRetroRobot.
|
|
831
831
|
* [League of Legends bot](https://telegram.me/League_of_Legends_bot) ([source](https://github.com/i32ropie/lol)) by *i32ropie*
|
|
832
832
|
* [NeoBot](https://github.com/neoranger/NeoBot) by [@NeoRanger](https://github.com/neoranger)
|
|
833
|
-
* [ColorCodeBot](https://t.me/colorcodebot) ([source](https://github.com/andydecleyre/colorcodebot)) - Share code snippets as beautifully syntax-highlighted
|
|
833
|
+
* [ColorCodeBot](https://t.me/colorcodebot) ([source](https://github.com/andydecleyre/colorcodebot)) - Share code snippets as beautifully syntax-highlighted images.
|
|
834
834
|
* [ComedoresUGRbot](http://telegram.me/ComedoresUGRbot) ([source](https://github.com/alejandrocq/ComedoresUGRbot)) by [*alejandrocq*](https://github.com/alejandrocq) - Telegram bot to check the menu of Universidad de Granada dining hall.
|
|
835
835
|
* [proxybot](https://github.com/p-hash/proxybot) - Simple Proxy Bot for Telegram. by p-hash
|
|
836
836
|
* [DonantesMalagaBot](https://github.com/vfranch/DonantesMalagaBot) - DonantesMalagaBot facilitates information to Malaga blood donors about the places where they can donate today or in the incoming days. It also records the date of the last donation so that it helps the donors to know when they can donate again. - by vfranch
|
|
@@ -22,7 +22,7 @@ author = 'coder2020official'
|
|
|
22
22
|
copyright = f'2022-{datetime.now().year}, {author}'
|
|
23
23
|
|
|
24
24
|
# The full version, including alpha/beta/rc tags
|
|
25
|
-
release = '4.
|
|
25
|
+
release = '4.25.0'
|
|
26
26
|
|
|
27
27
|
|
|
28
28
|
# -- General configuration ---------------------------------------------------
|
{pytelegrambotapi-4.23.0 → pytelegrambotapi-4.25.0}/examples/asynchronous_telebot/custom_states.py
RENAMED
|
@@ -2,6 +2,7 @@ from telebot import async_telebot, asyncio_filters, types
|
|
|
2
2
|
from telebot.asyncio_storage import StateMemoryStorage
|
|
3
3
|
from telebot.states import State, StatesGroup
|
|
4
4
|
from telebot.states.asyncio.context import StateContext
|
|
5
|
+
from telebot.types import ReplyParameters
|
|
5
6
|
|
|
6
7
|
# Initialize the bot
|
|
7
8
|
state_storage = StateMemoryStorage() # don't use this in production; switch to redis
|
|
@@ -23,7 +24,7 @@ async def start_ex(message: types.Message, state: StateContext):
|
|
|
23
24
|
await bot.send_message(
|
|
24
25
|
message.chat.id,
|
|
25
26
|
"Hello! What is your first name?",
|
|
26
|
-
|
|
27
|
+
reply_parameters=ReplyParameters(message_id=message.message_id),
|
|
27
28
|
)
|
|
28
29
|
|
|
29
30
|
|
|
@@ -34,7 +35,7 @@ async def any_state(message: types.Message, state: StateContext):
|
|
|
34
35
|
await bot.send_message(
|
|
35
36
|
message.chat.id,
|
|
36
37
|
"Your information has been cleared. Type /start to begin again.",
|
|
37
|
-
|
|
38
|
+
reply_parameters=ReplyParameters(message_id=message.message_id),
|
|
38
39
|
)
|
|
39
40
|
|
|
40
41
|
|
|
@@ -43,7 +44,8 @@ async def any_state(message: types.Message, state: StateContext):
|
|
|
43
44
|
async def name_get(message: types.Message, state: StateContext):
|
|
44
45
|
await state.set(MyStates.age)
|
|
45
46
|
await bot.send_message(
|
|
46
|
-
message.chat.id, "How old are you?",
|
|
47
|
+
message.chat.id, "How old are you?",
|
|
48
|
+
reply_parameters=ReplyParameters(message_id=message.message_id),
|
|
47
49
|
)
|
|
48
50
|
await state.add_data(name=message.text)
|
|
49
51
|
|
|
@@ -64,7 +66,7 @@ async def ask_color(message: types.Message, state: StateContext):
|
|
|
64
66
|
message.chat.id,
|
|
65
67
|
"What is your favorite color? Choose from the options below.",
|
|
66
68
|
reply_markup=keyboard,
|
|
67
|
-
|
|
69
|
+
reply_parameters=ReplyParameters(message_id=message.message_id),
|
|
68
70
|
)
|
|
69
71
|
|
|
70
72
|
|
|
@@ -84,7 +86,7 @@ async def ask_hobby(message: types.Message, state: StateContext):
|
|
|
84
86
|
message.chat.id,
|
|
85
87
|
"What is one of your hobbies? Choose from the options below.",
|
|
86
88
|
reply_markup=keyboard,
|
|
87
|
-
|
|
89
|
+
reply_parameters=ReplyParameters(message_id=message.message_id),
|
|
88
90
|
)
|
|
89
91
|
|
|
90
92
|
|
|
@@ -123,7 +125,8 @@ async def finish(message: types.Message, state: StateContext):
|
|
|
123
125
|
)
|
|
124
126
|
|
|
125
127
|
await bot.send_message(
|
|
126
|
-
message.chat.id, msg, parse_mode="html",
|
|
128
|
+
message.chat.id, msg, parse_mode="html",
|
|
129
|
+
reply_parameters=ReplyParameters(message_id=message.message_id),
|
|
127
130
|
)
|
|
128
131
|
await state.delete()
|
|
129
132
|
|
|
@@ -134,7 +137,7 @@ async def age_incorrect(message: types.Message):
|
|
|
134
137
|
await bot.send_message(
|
|
135
138
|
message.chat.id,
|
|
136
139
|
"Please enter a valid number for age.",
|
|
137
|
-
|
|
140
|
+
reply_parameters=ReplyParameters(message_id=message.message_id),
|
|
138
141
|
)
|
|
139
142
|
|
|
140
143
|
|
|
@@ -3,6 +3,7 @@ from telebot import custom_filters, types
|
|
|
3
3
|
from telebot.states import State, StatesGroup
|
|
4
4
|
from telebot.states.sync.context import StateContext
|
|
5
5
|
from telebot.storage import StateMemoryStorage
|
|
6
|
+
from telebot.types import ReplyParameters
|
|
6
7
|
|
|
7
8
|
# Initialize the bot
|
|
8
9
|
state_storage = StateMemoryStorage() # don't use this in production; switch to redis
|
|
@@ -24,7 +25,7 @@ def start_ex(message: types.Message, state: StateContext):
|
|
|
24
25
|
bot.send_message(
|
|
25
26
|
message.chat.id,
|
|
26
27
|
"Hello! What is your first name?",
|
|
27
|
-
|
|
28
|
+
reply_parameters=ReplyParameters(message_id=message.message_id),
|
|
28
29
|
)
|
|
29
30
|
|
|
30
31
|
|
|
@@ -35,7 +36,7 @@ def any_state(message: types.Message, state: StateContext):
|
|
|
35
36
|
bot.send_message(
|
|
36
37
|
message.chat.id,
|
|
37
38
|
"Your information has been cleared. Type /start to begin again.",
|
|
38
|
-
|
|
39
|
+
reply_parameters=ReplyParameters(message_id=message.message_id),
|
|
39
40
|
)
|
|
40
41
|
|
|
41
42
|
|
|
@@ -44,7 +45,8 @@ def any_state(message: types.Message, state: StateContext):
|
|
|
44
45
|
def name_get(message: types.Message, state: StateContext):
|
|
45
46
|
state.set(MyStates.age)
|
|
46
47
|
bot.send_message(
|
|
47
|
-
message.chat.id, "How old are you?",
|
|
48
|
+
message.chat.id, "How old are you?",
|
|
49
|
+
reply_parameters=ReplyParameters(message_id=message.message_id),
|
|
48
50
|
)
|
|
49
51
|
state.add_data(name=message.text)
|
|
50
52
|
|
|
@@ -65,7 +67,7 @@ def ask_color(message: types.Message, state: StateContext):
|
|
|
65
67
|
message.chat.id,
|
|
66
68
|
"What is your favorite color? Choose from the options below.",
|
|
67
69
|
reply_markup=keyboard,
|
|
68
|
-
|
|
70
|
+
reply_parameters=ReplyParameters(message_id=message.message_id),
|
|
69
71
|
)
|
|
70
72
|
|
|
71
73
|
|
|
@@ -85,7 +87,7 @@ def ask_hobby(message: types.Message, state: StateContext):
|
|
|
85
87
|
message.chat.id,
|
|
86
88
|
"What is one of your hobbies? Choose from the options below.",
|
|
87
89
|
reply_markup=keyboard,
|
|
88
|
-
|
|
90
|
+
reply_parameters=ReplyParameters(message_id=message.message_id),
|
|
89
91
|
)
|
|
90
92
|
|
|
91
93
|
|
|
@@ -124,7 +126,8 @@ def finish(message: types.Message, state: StateContext):
|
|
|
124
126
|
)
|
|
125
127
|
|
|
126
128
|
bot.send_message(
|
|
127
|
-
message.chat.id, msg, parse_mode="html",
|
|
129
|
+
message.chat.id, msg, parse_mode="html",
|
|
130
|
+
reply_parameters=ReplyParameters(message_id=message.message_id),
|
|
128
131
|
)
|
|
129
132
|
state.delete()
|
|
130
133
|
|
|
@@ -135,7 +138,7 @@ def age_incorrect(message: types.Message):
|
|
|
135
138
|
bot.send_message(
|
|
136
139
|
message.chat.id,
|
|
137
140
|
"Please enter a valid number for age.",
|
|
138
|
-
|
|
141
|
+
reply_parameters=ReplyParameters(message_id=message.message_id),
|
|
139
142
|
)
|
|
140
143
|
|
|
141
144
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
pyTelegramBotAPI==4.11.0
|
|
2
|
-
Flask==3.0.0
|
|
3
|
-
gunicorn==22.0.0
|
|
4
|
-
Werkzeug==3.0.
|
|
1
|
+
pyTelegramBotAPI==4.11.0
|
|
2
|
+
Flask==3.0.0
|
|
3
|
+
gunicorn==22.0.0
|
|
4
|
+
Werkzeug==3.0.6
|
|
@@ -4,21 +4,21 @@ build-backend = "hatchling.build"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "pyTelegramBotAPI"
|
|
7
|
-
version = "4.
|
|
7
|
+
version = "4.25.0"
|
|
8
8
|
description = "Python Telegram bot api."
|
|
9
9
|
authors = [{name = "eternnoir", email = "eternnoir@gmail.com"}]
|
|
10
10
|
license = {text = "GPL2"}
|
|
11
11
|
readme = "README.md"
|
|
12
|
-
requires-python = ">=3.
|
|
12
|
+
requires-python = ">=3.9"
|
|
13
13
|
keywords = ["telegram", "bot", "api", "tools"]
|
|
14
14
|
classifiers = [
|
|
15
15
|
"Development Status :: 5 - Production/Stable",
|
|
16
16
|
"Programming Language :: Python :: 3",
|
|
17
|
-
"Programming Language :: Python :: 3.8",
|
|
18
17
|
"Programming Language :: Python :: 3.9",
|
|
19
18
|
"Programming Language :: Python :: 3.10",
|
|
20
19
|
"Programming Language :: Python :: 3.11",
|
|
21
20
|
"Programming Language :: Python :: 3.12",
|
|
21
|
+
"Programming Language :: Python :: 3.13",
|
|
22
22
|
"Environment :: Console",
|
|
23
23
|
"License :: OSI Approved :: GNU General Public License v2 (GPLv2)"
|
|
24
24
|
]
|