python-trueconf-bot 1.5.2__tar.gz → 1.5.3__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.
- {python_trueconf_bot-1.5.2 → python_trueconf_bot-1.5.3}/.github/workflows/docs.yml +1 -1
- {python_trueconf_bot-1.5.2 → python_trueconf_bot-1.5.3}/.github/workflows/release-test.yml +2 -2
- {python_trueconf_bot-1.5.2 → python_trueconf_bot-1.5.3}/.github/workflows/release.yml +12 -3
- python_trueconf_bot-1.5.3/.github/workflows/test.yml +73 -0
- {python_trueconf_bot-1.5.2 → python_trueconf_bot-1.5.3}/.gitignore +2 -4
- {python_trueconf_bot-1.5.2 → python_trueconf_bot-1.5.3}/PKG-INFO +2 -2
- {python_trueconf_bot-1.5.2 → python_trueconf_bot-1.5.3}/pyproject.toml +1 -1
- {python_trueconf_bot-1.5.2 → python_trueconf_bot-1.5.3}/python_trueconf_bot.egg-info/PKG-INFO +2 -2
- {python_trueconf_bot-1.5.2 → python_trueconf_bot-1.5.3}/python_trueconf_bot.egg-info/SOURCES.txt +3 -0
- {python_trueconf_bot-1.5.2 → python_trueconf_bot-1.5.3}/python_trueconf_bot.egg-info/requires.txt +1 -1
- {python_trueconf_bot-1.5.2 → python_trueconf_bot-1.5.3}/python_trueconf_bot.egg-info/scm_file_list.json +4 -1
- {python_trueconf_bot-1.5.2 → python_trueconf_bot-1.5.3}/python_trueconf_bot.egg-info/scm_version.json +2 -2
- python_trueconf_bot-1.5.3/tests/test_httpx2_compat.py +70 -0
- {python_trueconf_bot-1.5.2 → python_trueconf_bot-1.5.3}/trueconf/_version.py +3 -3
- {python_trueconf_bot-1.5.2 → python_trueconf_bot-1.5.3}/trueconf/client/bot.py +6 -0
- python_trueconf_bot-1.5.3/uv.lock +2638 -0
- {python_trueconf_bot-1.5.2 → python_trueconf_bot-1.5.3}/LICENSE +0 -0
- {python_trueconf_bot-1.5.2 → python_trueconf_bot-1.5.3}/README-PyPI.md +0 -0
- {python_trueconf_bot-1.5.2 → python_trueconf_bot-1.5.3}/README-ru.md +0 -0
- {python_trueconf_bot-1.5.2 → python_trueconf_bot-1.5.3}/README.md +0 -0
- {python_trueconf_bot-1.5.2 → python_trueconf_bot-1.5.3}/assets/head_en.png +0 -0
- {python_trueconf_bot-1.5.2 → python_trueconf_bot-1.5.3}/assets/head_ru.png +0 -0
- {python_trueconf_bot-1.5.2 → python_trueconf_bot-1.5.3}/assets/logo.svg +0 -0
- {python_trueconf_bot-1.5.2 → python_trueconf_bot-1.5.3}/context7.json +0 -0
- {python_trueconf_bot-1.5.2 → python_trueconf_bot-1.5.3}/docs/context7.json +0 -0
- {python_trueconf_bot-1.5.2 → python_trueconf_bot-1.5.3}/docs/en/examples/index.md +0 -0
- {python_trueconf_bot-1.5.2 → python_trueconf_bot-1.5.3}/docs/en/features.md +0 -0
- {python_trueconf_bot-1.5.2 → python_trueconf_bot-1.5.3}/docs/en/img/head.png +0 -0
- {python_trueconf_bot-1.5.2 → python_trueconf_bot-1.5.3}/docs/en/img/router_scheme_en.svg +0 -0
- {python_trueconf_bot-1.5.2 → python_trueconf_bot-1.5.3}/docs/en/index.md +0 -0
- {python_trueconf_bot-1.5.2 → python_trueconf_bot-1.5.3}/docs/en/learn/authentication.md +0 -0
- {python_trueconf_bot-1.5.2 → python_trueconf_bot-1.5.3}/docs/en/learn/buttons.md +0 -0
- {python_trueconf_bot-1.5.2 → python_trueconf_bot-1.5.3}/docs/en/learn/enums.md +0 -0
- {python_trueconf_bot-1.5.2 → python_trueconf_bot-1.5.3}/docs/en/learn/files.md +0 -0
- {python_trueconf_bot-1.5.2 → python_trueconf_bot-1.5.3}/docs/en/learn/filters.md +0 -0
- {python_trueconf_bot-1.5.2 → python_trueconf_bot-1.5.3}/docs/en/learn/fsm.md +0 -0
- {python_trueconf_bot-1.5.2 → python_trueconf_bot-1.5.3}/docs/en/learn/getting-started.md +0 -0
- {python_trueconf_bot-1.5.2 → python_trueconf_bot-1.5.3}/docs/en/learn/middleware.md +0 -0
- {python_trueconf_bot-1.5.2 → python_trueconf_bot-1.5.3}/docs/en/learn/parse-messages.md +0 -0
- {python_trueconf_bot-1.5.2 → python_trueconf_bot-1.5.3}/docs/en/learn/restrictions.md +0 -0
- {python_trueconf_bot-1.5.2 → python_trueconf_bot-1.5.3}/docs/en/learn/send_message.md +0 -0
- {python_trueconf_bot-1.5.2 → python_trueconf_bot-1.5.3}/docs/en/learn/shortcuts.md +0 -0
- {python_trueconf_bot-1.5.2 → python_trueconf_bot-1.5.3}/docs/en/learn/types.md +0 -0
- {python_trueconf_bot-1.5.2 → python_trueconf_bot-1.5.3}/docs/en/learn/typing_indicator.md +0 -0
- {python_trueconf_bot-1.5.2 → python_trueconf_bot-1.5.3}/docs/en/reference/Bot.md +0 -0
- {python_trueconf_bot-1.5.2 → python_trueconf_bot-1.5.3}/docs/en/reference/Dispatcher.md +0 -0
- {python_trueconf_bot-1.5.2 → python_trueconf_bot-1.5.3}/docs/en/reference/Enums.md +0 -0
- {python_trueconf_bot-1.5.2 → python_trueconf_bot-1.5.3}/docs/en/reference/Exceptions.md +0 -0
- {python_trueconf_bot-1.5.2 → python_trueconf_bot-1.5.3}/docs/en/reference/Formatting.md +0 -0
- {python_trueconf_bot-1.5.2 → python_trueconf_bot-1.5.3}/docs/en/reference/Responses.md +0 -0
- {python_trueconf_bot-1.5.2 → python_trueconf_bot-1.5.3}/docs/en/reference/Router.md +0 -0
- {python_trueconf_bot-1.5.2 → python_trueconf_bot-1.5.3}/docs/en/reference/Types.md +0 -0
- {python_trueconf_bot-1.5.2 → python_trueconf_bot-1.5.3}/docs/en/reference/chat_activity.md +0 -0
- {python_trueconf_bot-1.5.2 → python_trueconf_bot-1.5.3}/docs/en/reference/index.md +0 -0
- {python_trueconf_bot-1.5.2 → python_trueconf_bot-1.5.3}/docs/en/release_notes.md +0 -0
- {python_trueconf_bot-1.5.2 → python_trueconf_bot-1.5.3}/docs/hooks/llms_txt.py +0 -0
- {python_trueconf_bot-1.5.2 → python_trueconf_bot-1.5.3}/docs/hooks/sitemap_dates.py +0 -0
- {python_trueconf_bot-1.5.2 → python_trueconf_bot-1.5.3}/docs/img/chatbot.svg +0 -0
- {python_trueconf_bot-1.5.2 → python_trueconf_bot-1.5.3}/docs/img/favicon.ico +0 -0
- {python_trueconf_bot-1.5.2 → python_trueconf_bot-1.5.3}/docs/img/logo.svg +0 -0
- {python_trueconf_bot-1.5.2 → python_trueconf_bot-1.5.3}/docs/overrides/main.html +0 -0
- {python_trueconf_bot-1.5.2 → python_trueconf_bot-1.5.3}/docs/overrides/sitemap.xml +0 -0
- {python_trueconf_bot-1.5.2 → python_trueconf_bot-1.5.3}/docs/ru/examples/index.md +0 -0
- {python_trueconf_bot-1.5.2 → python_trueconf_bot-1.5.3}/docs/ru/features.md +0 -0
- {python_trueconf_bot-1.5.2 → python_trueconf_bot-1.5.3}/docs/ru/img/head.png +0 -0
- {python_trueconf_bot-1.5.2 → python_trueconf_bot-1.5.3}/docs/ru/img/router_scheme_ru.svg +0 -0
- {python_trueconf_bot-1.5.2 → python_trueconf_bot-1.5.3}/docs/ru/index.md +0 -0
- {python_trueconf_bot-1.5.2 → python_trueconf_bot-1.5.3}/docs/ru/learn/authentication.md +0 -0
- {python_trueconf_bot-1.5.2 → python_trueconf_bot-1.5.3}/docs/ru/learn/buttons.md +0 -0
- {python_trueconf_bot-1.5.2 → python_trueconf_bot-1.5.3}/docs/ru/learn/enums.md +0 -0
- {python_trueconf_bot-1.5.2 → python_trueconf_bot-1.5.3}/docs/ru/learn/files.md +0 -0
- {python_trueconf_bot-1.5.2 → python_trueconf_bot-1.5.3}/docs/ru/learn/filters.md +0 -0
- {python_trueconf_bot-1.5.2 → python_trueconf_bot-1.5.3}/docs/ru/learn/fsm.md +0 -0
- {python_trueconf_bot-1.5.2 → python_trueconf_bot-1.5.3}/docs/ru/learn/getting-started.md +0 -0
- {python_trueconf_bot-1.5.2 → python_trueconf_bot-1.5.3}/docs/ru/learn/middleware.md +0 -0
- {python_trueconf_bot-1.5.2 → python_trueconf_bot-1.5.3}/docs/ru/learn/parse-messages.md +0 -0
- {python_trueconf_bot-1.5.2 → python_trueconf_bot-1.5.3}/docs/ru/learn/restrictions.md +0 -0
- {python_trueconf_bot-1.5.2 → python_trueconf_bot-1.5.3}/docs/ru/learn/send_message.md +0 -0
- {python_trueconf_bot-1.5.2 → python_trueconf_bot-1.5.3}/docs/ru/learn/shortcuts.md +0 -0
- {python_trueconf_bot-1.5.2 → python_trueconf_bot-1.5.3}/docs/ru/learn/types.md +0 -0
- {python_trueconf_bot-1.5.2 → python_trueconf_bot-1.5.3}/docs/ru/learn/typing_indicator.md +0 -0
- {python_trueconf_bot-1.5.2 → python_trueconf_bot-1.5.3}/docs/ru/release_notes.md +0 -0
- {python_trueconf_bot-1.5.2 → python_trueconf_bot-1.5.3}/docs/stylesheets/extra.css +0 -0
- {python_trueconf_bot-1.5.2 → python_trueconf_bot-1.5.3}/examples/README-ru.md +0 -0
- {python_trueconf_bot-1.5.2 → python_trueconf_bot-1.5.3}/examples/README.md +0 -0
- {python_trueconf_bot-1.5.2 → python_trueconf_bot-1.5.3}/examples/add_big_list_users_to_channel.py +0 -0
- {python_trueconf_bot-1.5.2 → python_trueconf_bot-1.5.3}/examples/buttons_bot.py +0 -0
- {python_trueconf_bot-1.5.2 → python_trueconf_bot-1.5.3}/examples/contacts.py +0 -0
- {python_trueconf_bot-1.5.2 → python_trueconf_bot-1.5.3}/examples/filters.py +0 -0
- {python_trueconf_bot-1.5.2 → python_trueconf_bot-1.5.3}/examples/report_bot.py +0 -0
- {python_trueconf_bot-1.5.2 → python_trueconf_bot-1.5.3}/examples/update_token.py +0 -0
- {python_trueconf_bot-1.5.2 → python_trueconf_bot-1.5.3}/examples/webhook.py +0 -0
- {python_trueconf_bot-1.5.2 → python_trueconf_bot-1.5.3}/justfile +0 -0
- {python_trueconf_bot-1.5.2 → python_trueconf_bot-1.5.3}/mkdocs.yml +0 -0
- {python_trueconf_bot-1.5.2 → python_trueconf_bot-1.5.3}/python_trueconf_bot.egg-info/dependency_links.txt +0 -0
- {python_trueconf_bot-1.5.2 → python_trueconf_bot-1.5.3}/python_trueconf_bot.egg-info/top_level.txt +0 -0
- {python_trueconf_bot-1.5.2 → python_trueconf_bot-1.5.3}/setup.cfg +0 -0
- {python_trueconf_bot-1.5.2 → python_trueconf_bot-1.5.3}/tests/test_answer_command.py +0 -0
- {python_trueconf_bot-1.5.2 → python_trueconf_bot-1.5.3}/tests/test_auth_via_oauth.py +0 -0
- {python_trueconf_bot-1.5.2 → python_trueconf_bot-1.5.3}/tests/test_callback_query_edit.py +0 -0
- {python_trueconf_bot-1.5.2 → python_trueconf_bot-1.5.3}/tests/test_callback_query_routing.py +0 -0
- {python_trueconf_bot-1.5.2 → python_trueconf_bot-1.5.3}/tests/test_chat_activity.py +0 -0
- {python_trueconf_bot-1.5.2 → python_trueconf_bot-1.5.3}/tests/test_download_limit.py +0 -0
- {python_trueconf_bot-1.5.2 → python_trueconf_bot-1.5.3}/tests/test_download_url_logging.py +0 -0
- {python_trueconf_bot-1.5.2 → python_trueconf_bot-1.5.3}/tests/test_event_raw_routing.py +0 -0
- {python_trueconf_bot-1.5.2 → python_trueconf_bot-1.5.3}/tests/test_formatting.py +0 -0
- {python_trueconf_bot-1.5.2 → python_trueconf_bot-1.5.3}/tests/test_fsm.py +0 -0
- {python_trueconf_bot-1.5.2 → python_trueconf_bot-1.5.3}/tests/test_inline_keyboard.py +0 -0
- {python_trueconf_bot-1.5.2 → python_trueconf_bot-1.5.3}/tests/test_last_message.py +0 -0
- {python_trueconf_bot-1.5.2 → python_trueconf_bot-1.5.3}/tests/test_message_binding.py +0 -0
- {python_trueconf_bot-1.5.2 → python_trueconf_bot-1.5.3}/tests/test_parse_update.py +0 -0
- {python_trueconf_bot-1.5.2 → python_trueconf_bot-1.5.3}/tests/test_public_contract_blockers.py +0 -0
- {python_trueconf_bot-1.5.2 → python_trueconf_bot-1.5.3}/tests/test_reply_quote.py +0 -0
- {python_trueconf_bot-1.5.2 → python_trueconf_bot-1.5.3}/tests/test_send_file_response.py +0 -0
- {python_trueconf_bot-1.5.2 → python_trueconf_bot-1.5.3}/tests/test_shutdown.py +0 -0
- {python_trueconf_bot-1.5.2 → python_trueconf_bot-1.5.3}/tests/test_split_text.py +0 -0
- {python_trueconf_bot-1.5.2 → python_trueconf_bot-1.5.3}/tests/test_system_message_routing.py +0 -0
- {python_trueconf_bot-1.5.2 → python_trueconf_bot-1.5.3}/tests/test_upload_errors.py +0 -0
- {python_trueconf_bot-1.5.2 → python_trueconf_bot-1.5.3}/tests/test_user_agent.py +0 -0
- {python_trueconf_bot-1.5.2 → python_trueconf_bot-1.5.3}/tests/test_vcard.py +0 -0
- {python_trueconf_bot-1.5.2 → python_trueconf_bot-1.5.3}/tests/test_ws_retries.py +0 -0
- {python_trueconf_bot-1.5.2 → python_trueconf_bot-1.5.3}/trueconf/__init__.py +0 -0
- {python_trueconf_bot-1.5.2 → python_trueconf_bot-1.5.3}/trueconf/client/__init__.py +0 -0
- {python_trueconf_bot-1.5.2 → python_trueconf_bot-1.5.3}/trueconf/client/context_controller.py +0 -0
- {python_trueconf_bot-1.5.2 → python_trueconf_bot-1.5.3}/trueconf/client/session.py +0 -0
- {python_trueconf_bot-1.5.2 → python_trueconf_bot-1.5.3}/trueconf/dispatcher/__init__.py +0 -0
- {python_trueconf_bot-1.5.2 → python_trueconf_bot-1.5.3}/trueconf/dispatcher/dispatcher.py +0 -0
- {python_trueconf_bot-1.5.2 → python_trueconf_bot-1.5.3}/trueconf/dispatcher/router.py +0 -0
- {python_trueconf_bot-1.5.2 → python_trueconf_bot-1.5.3}/trueconf/enums/__init__.py +0 -0
- {python_trueconf_bot-1.5.2 → python_trueconf_bot-1.5.3}/trueconf/enums/aouth_error.py +0 -0
- {python_trueconf_bot-1.5.2 → python_trueconf_bot-1.5.3}/trueconf/enums/button.py +0 -0
- {python_trueconf_bot-1.5.2 → python_trueconf_bot-1.5.3}/trueconf/enums/chat_activity.py +0 -0
- {python_trueconf_bot-1.5.2 → python_trueconf_bot-1.5.3}/trueconf/enums/chat_participant_role.py +0 -0
- {python_trueconf_bot-1.5.2 → python_trueconf_bot-1.5.3}/trueconf/enums/chat_type.py +0 -0
- {python_trueconf_bot-1.5.2 → python_trueconf_bot-1.5.3}/trueconf/enums/command.py +0 -0
- {python_trueconf_bot-1.5.2 → python_trueconf_bot-1.5.3}/trueconf/enums/envelope_author_type.py +0 -0
- {python_trueconf_bot-1.5.2 → python_trueconf_bot-1.5.3}/trueconf/enums/file_ready_state.py +0 -0
- {python_trueconf_bot-1.5.2 → python_trueconf_bot-1.5.3}/trueconf/enums/incoming_update_method.py +0 -0
- {python_trueconf_bot-1.5.2 → python_trueconf_bot-1.5.3}/trueconf/enums/message_type.py +0 -0
- {python_trueconf_bot-1.5.2 → python_trueconf_bot-1.5.3}/trueconf/enums/parse_mode.py +0 -0
- {python_trueconf_bot-1.5.2 → python_trueconf_bot-1.5.3}/trueconf/enums/survey_type.py +0 -0
- {python_trueconf_bot-1.5.2 → python_trueconf_bot-1.5.3}/trueconf/enums/update_type.py +0 -0
- {python_trueconf_bot-1.5.2 → python_trueconf_bot-1.5.3}/trueconf/exceptions.py +0 -0
- {python_trueconf_bot-1.5.2 → python_trueconf_bot-1.5.3}/trueconf/filters/__init__.py +0 -0
- {python_trueconf_bot-1.5.2 → python_trueconf_bot-1.5.3}/trueconf/filters/base.py +0 -0
- {python_trueconf_bot-1.5.2 → python_trueconf_bot-1.5.3}/trueconf/filters/command.py +0 -0
- {python_trueconf_bot-1.5.2 → python_trueconf_bot-1.5.3}/trueconf/filters/instance_of.py +0 -0
- {python_trueconf_bot-1.5.2 → python_trueconf_bot-1.5.3}/trueconf/filters/message.py +0 -0
- {python_trueconf_bot-1.5.2 → python_trueconf_bot-1.5.3}/trueconf/filters/raw_update.py +0 -0
- {python_trueconf_bot-1.5.2 → python_trueconf_bot-1.5.3}/trueconf/fsm/__init__.py +0 -0
- {python_trueconf_bot-1.5.2 → python_trueconf_bot-1.5.3}/trueconf/fsm/context.py +0 -0
- {python_trueconf_bot-1.5.2 → python_trueconf_bot-1.5.3}/trueconf/fsm/filters.py +0 -0
- {python_trueconf_bot-1.5.2 → python_trueconf_bot-1.5.3}/trueconf/fsm/key_builder.py +0 -0
- {python_trueconf_bot-1.5.2 → python_trueconf_bot-1.5.3}/trueconf/fsm/manager.py +0 -0
- {python_trueconf_bot-1.5.2 → python_trueconf_bot-1.5.3}/trueconf/fsm/middleware.py +0 -0
- {python_trueconf_bot-1.5.2 → python_trueconf_bot-1.5.3}/trueconf/fsm/state.py +0 -0
- {python_trueconf_bot-1.5.2 → python_trueconf_bot-1.5.3}/trueconf/fsm/storage/__init__.py +0 -0
- {python_trueconf_bot-1.5.2 → python_trueconf_bot-1.5.3}/trueconf/fsm/storage/base.py +0 -0
- {python_trueconf_bot-1.5.2 → python_trueconf_bot-1.5.3}/trueconf/fsm/storage/memory.py +0 -0
- {python_trueconf_bot-1.5.2 → python_trueconf_bot-1.5.3}/trueconf/fsm/strategy.py +0 -0
- {python_trueconf_bot-1.5.2 → python_trueconf_bot-1.5.3}/trueconf/loggers.py +0 -0
- {python_trueconf_bot-1.5.2 → python_trueconf_bot-1.5.3}/trueconf/methods/__init__.py +0 -0
- {python_trueconf_bot-1.5.2 → python_trueconf_bot-1.5.3}/trueconf/methods/add_participant_to_chat.py +0 -0
- {python_trueconf_bot-1.5.2 → python_trueconf_bot-1.5.3}/trueconf/methods/answer_command.py +0 -0
- {python_trueconf_bot-1.5.2 → python_trueconf_bot-1.5.3}/trueconf/methods/auth.py +0 -0
- {python_trueconf_bot-1.5.2 → python_trueconf_bot-1.5.3}/trueconf/methods/base.py +0 -0
- {python_trueconf_bot-1.5.2 → python_trueconf_bot-1.5.3}/trueconf/methods/change_participant_role.py +0 -0
- {python_trueconf_bot-1.5.2 → python_trueconf_bot-1.5.3}/trueconf/methods/clear_chat_history.py +0 -0
- {python_trueconf_bot-1.5.2 → python_trueconf_bot-1.5.3}/trueconf/methods/create_channel.py +0 -0
- {python_trueconf_bot-1.5.2 → python_trueconf_bot-1.5.3}/trueconf/methods/create_favorites_chat.py +0 -0
- {python_trueconf_bot-1.5.2 → python_trueconf_bot-1.5.3}/trueconf/methods/create_group_chat.py +0 -0
- {python_trueconf_bot-1.5.2 → python_trueconf_bot-1.5.3}/trueconf/methods/create_p2p_chat.py +0 -0
- {python_trueconf_bot-1.5.2 → python_trueconf_bot-1.5.3}/trueconf/methods/edit_chat_avatar.py +0 -0
- {python_trueconf_bot-1.5.2 → python_trueconf_bot-1.5.3}/trueconf/methods/edit_chat_title.py +0 -0
- {python_trueconf_bot-1.5.2 → python_trueconf_bot-1.5.3}/trueconf/methods/edit_message.py +0 -0
- {python_trueconf_bot-1.5.2 → python_trueconf_bot-1.5.3}/trueconf/methods/edit_survey.py +0 -0
- {python_trueconf_bot-1.5.2 → python_trueconf_bot-1.5.3}/trueconf/methods/forward_message.py +0 -0
- {python_trueconf_bot-1.5.2 → python_trueconf_bot-1.5.3}/trueconf/methods/get_chat_by_id.py +0 -0
- {python_trueconf_bot-1.5.2 → python_trueconf_bot-1.5.3}/trueconf/methods/get_chat_history.py +0 -0
- {python_trueconf_bot-1.5.2 → python_trueconf_bot-1.5.3}/trueconf/methods/get_chat_participant.py +0 -0
- {python_trueconf_bot-1.5.2 → python_trueconf_bot-1.5.3}/trueconf/methods/get_chat_participants.py +0 -0
- {python_trueconf_bot-1.5.2 → python_trueconf_bot-1.5.3}/trueconf/methods/get_chats.py +0 -0
- {python_trueconf_bot-1.5.2 → python_trueconf_bot-1.5.3}/trueconf/methods/get_file_info.py +0 -0
- {python_trueconf_bot-1.5.2 → python_trueconf_bot-1.5.3}/trueconf/methods/get_file_upload_limits.py +0 -0
- {python_trueconf_bot-1.5.2 → python_trueconf_bot-1.5.3}/trueconf/methods/get_message_by_id.py +0 -0
- {python_trueconf_bot-1.5.2 → python_trueconf_bot-1.5.3}/trueconf/methods/get_user_display_name.py +0 -0
- {python_trueconf_bot-1.5.2 → python_trueconf_bot-1.5.3}/trueconf/methods/has_chat_participant.py +0 -0
- {python_trueconf_bot-1.5.2 → python_trueconf_bot-1.5.3}/trueconf/methods/remove_chat.py +0 -0
- {python_trueconf_bot-1.5.2 → python_trueconf_bot-1.5.3}/trueconf/methods/remove_message.py +0 -0
- {python_trueconf_bot-1.5.2 → python_trueconf_bot-1.5.3}/trueconf/methods/remove_participant_from_chat.py +0 -0
- {python_trueconf_bot-1.5.2 → python_trueconf_bot-1.5.3}/trueconf/methods/send_chat_activity.py +0 -0
- {python_trueconf_bot-1.5.2 → python_trueconf_bot-1.5.3}/trueconf/methods/send_file.py +0 -0
- {python_trueconf_bot-1.5.2 → python_trueconf_bot-1.5.3}/trueconf/methods/send_message.py +0 -0
- {python_trueconf_bot-1.5.2 → python_trueconf_bot-1.5.3}/trueconf/methods/send_survey.py +0 -0
- {python_trueconf_bot-1.5.2 → python_trueconf_bot-1.5.3}/trueconf/methods/subscribe_file_progress.py +0 -0
- {python_trueconf_bot-1.5.2 → python_trueconf_bot-1.5.3}/trueconf/methods/unsubscribe_file_progress.py +0 -0
- {python_trueconf_bot-1.5.2 → python_trueconf_bot-1.5.3}/trueconf/methods/upload_file.py +0 -0
- {python_trueconf_bot-1.5.2 → python_trueconf_bot-1.5.3}/trueconf/middleware.py +0 -0
- {python_trueconf_bot-1.5.2 → python_trueconf_bot-1.5.3}/trueconf/py.typed +0 -0
- {python_trueconf_bot-1.5.2 → python_trueconf_bot-1.5.3}/trueconf/types/__init__.py +0 -0
- {python_trueconf_bot-1.5.2 → python_trueconf_bot-1.5.3}/trueconf/types/author_box.py +0 -0
- {python_trueconf_bot-1.5.2 → python_trueconf_bot-1.5.3}/trueconf/types/callback_query.py +0 -0
- {python_trueconf_bot-1.5.2 → python_trueconf_bot-1.5.3}/trueconf/types/chat.py +0 -0
- {python_trueconf_bot-1.5.2 → python_trueconf_bot-1.5.3}/trueconf/types/chat_participant.py +0 -0
- {python_trueconf_bot-1.5.2 → python_trueconf_bot-1.5.3}/trueconf/types/contact.py +0 -0
- {python_trueconf_bot-1.5.2 → python_trueconf_bot-1.5.3}/trueconf/types/content/__init__.py +0 -0
- {python_trueconf_bot-1.5.2 → python_trueconf_bot-1.5.3}/trueconf/types/content/attachment.py +0 -0
- {python_trueconf_bot-1.5.2 → python_trueconf_bot-1.5.3}/trueconf/types/content/base.py +0 -0
- {python_trueconf_bot-1.5.2 → python_trueconf_bot-1.5.3}/trueconf/types/content/chat_created.py +0 -0
- {python_trueconf_bot-1.5.2 → python_trueconf_bot-1.5.3}/trueconf/types/content/clear_chat_history.py +0 -0
- {python_trueconf_bot-1.5.2 → python_trueconf_bot-1.5.3}/trueconf/types/content/document.py +0 -0
- {python_trueconf_bot-1.5.2 → python_trueconf_bot-1.5.3}/trueconf/types/content/edit_chat_avatar.py +0 -0
- {python_trueconf_bot-1.5.2 → python_trueconf_bot-1.5.3}/trueconf/types/content/edit_chat_title.py +0 -0
- {python_trueconf_bot-1.5.2 → python_trueconf_bot-1.5.3}/trueconf/types/content/forward_message.py +0 -0
- {python_trueconf_bot-1.5.2 → python_trueconf_bot-1.5.3}/trueconf/types/content/location.py +0 -0
- {python_trueconf_bot-1.5.2 → python_trueconf_bot-1.5.3}/trueconf/types/content/parser.py +0 -0
- {python_trueconf_bot-1.5.2 → python_trueconf_bot-1.5.3}/trueconf/types/content/photo.py +0 -0
- {python_trueconf_bot-1.5.2 → python_trueconf_bot-1.5.3}/trueconf/types/content/remove_participant.py +0 -0
- {python_trueconf_bot-1.5.2 → python_trueconf_bot-1.5.3}/trueconf/types/content/sticker.py +0 -0
- {python_trueconf_bot-1.5.2 → python_trueconf_bot-1.5.3}/trueconf/types/content/survey.py +0 -0
- {python_trueconf_bot-1.5.2 → python_trueconf_bot-1.5.3}/trueconf/types/content/text.py +0 -0
- {python_trueconf_bot-1.5.2 → python_trueconf_bot-1.5.3}/trueconf/types/content/video.py +0 -0
- {python_trueconf_bot-1.5.2 → python_trueconf_bot-1.5.3}/trueconf/types/content/voice.py +0 -0
- {python_trueconf_bot-1.5.2 → python_trueconf_bot-1.5.3}/trueconf/types/envelope_parser.py +0 -0
- {python_trueconf_bot-1.5.2 → python_trueconf_bot-1.5.3}/trueconf/types/input_file.py +0 -0
- {python_trueconf_bot-1.5.2 → python_trueconf_bot-1.5.3}/trueconf/types/keyboard.py +0 -0
- {python_trueconf_bot-1.5.2 → python_trueconf_bot-1.5.3}/trueconf/types/last_message.py +0 -0
- {python_trueconf_bot-1.5.2 → python_trueconf_bot-1.5.3}/trueconf/types/message.py +0 -0
- {python_trueconf_bot-1.5.2 → python_trueconf_bot-1.5.3}/trueconf/types/parser.py +0 -0
- {python_trueconf_bot-1.5.2 → python_trueconf_bot-1.5.3}/trueconf/types/requests/__init__.py +0 -0
- {python_trueconf_bot-1.5.2 → python_trueconf_bot-1.5.3}/trueconf/types/requests/added_chat_participant.py +0 -0
- {python_trueconf_bot-1.5.2 → python_trueconf_bot-1.5.3}/trueconf/types/requests/changed_file_upload_limits.py +0 -0
- {python_trueconf_bot-1.5.2 → python_trueconf_bot-1.5.3}/trueconf/types/requests/changed_participant_role.py +0 -0
- {python_trueconf_bot-1.5.2 → python_trueconf_bot-1.5.3}/trueconf/types/requests/cleared_chat_history.py +0 -0
- {python_trueconf_bot-1.5.2 → python_trueconf_bot-1.5.3}/trueconf/types/requests/created_channel.py +0 -0
- {python_trueconf_bot-1.5.2 → python_trueconf_bot-1.5.3}/trueconf/types/requests/created_favorites_chat.py +0 -0
- {python_trueconf_bot-1.5.2 → python_trueconf_bot-1.5.3}/trueconf/types/requests/created_group_chat.py +0 -0
- {python_trueconf_bot-1.5.2 → python_trueconf_bot-1.5.3}/trueconf/types/requests/created_personal_chat.py +0 -0
- {python_trueconf_bot-1.5.2 → python_trueconf_bot-1.5.3}/trueconf/types/requests/edited_chat_avatar.py +0 -0
- {python_trueconf_bot-1.5.2 → python_trueconf_bot-1.5.3}/trueconf/types/requests/edited_chat_title.py +0 -0
- {python_trueconf_bot-1.5.2 → python_trueconf_bot-1.5.3}/trueconf/types/requests/edited_message.py +0 -0
- {python_trueconf_bot-1.5.2 → python_trueconf_bot-1.5.3}/trueconf/types/requests/removed_chat.py +0 -0
- {python_trueconf_bot-1.5.2 → python_trueconf_bot-1.5.3}/trueconf/types/requests/removed_chat_participant.py +0 -0
- {python_trueconf_bot-1.5.2 → python_trueconf_bot-1.5.3}/trueconf/types/requests/removed_message.py +0 -0
- {python_trueconf_bot-1.5.2 → python_trueconf_bot-1.5.3}/trueconf/types/requests/uploading_progress.py +0 -0
- {python_trueconf_bot-1.5.2 → python_trueconf_bot-1.5.3}/trueconf/types/responses/__init__.py +0 -0
- {python_trueconf_bot-1.5.2 → python_trueconf_bot-1.5.3}/trueconf/types/responses/add_chat_participant_response.py +0 -0
- {python_trueconf_bot-1.5.2 → python_trueconf_bot-1.5.3}/trueconf/types/responses/answer_command_response.py +0 -0
- {python_trueconf_bot-1.5.2 → python_trueconf_bot-1.5.3}/trueconf/types/responses/api_error.py +0 -0
- {python_trueconf_bot-1.5.2 → python_trueconf_bot-1.5.3}/trueconf/types/responses/auth_response_payload.py +0 -0
- {python_trueconf_bot-1.5.2 → python_trueconf_bot-1.5.3}/trueconf/types/responses/change_participant_role_response.py +0 -0
- {python_trueconf_bot-1.5.2 → python_trueconf_bot-1.5.3}/trueconf/types/responses/clear_chat_history_response.py +0 -0
- {python_trueconf_bot-1.5.2 → python_trueconf_bot-1.5.3}/trueconf/types/responses/create_channel_response.py +0 -0
- {python_trueconf_bot-1.5.2 → python_trueconf_bot-1.5.3}/trueconf/types/responses/create_favorites_chat_response.py +0 -0
- {python_trueconf_bot-1.5.2 → python_trueconf_bot-1.5.3}/trueconf/types/responses/create_group_chat_response.py +0 -0
- {python_trueconf_bot-1.5.2 → python_trueconf_bot-1.5.3}/trueconf/types/responses/create_p2p_chat_response.py +0 -0
- {python_trueconf_bot-1.5.2 → python_trueconf_bot-1.5.3}/trueconf/types/responses/edit_chat_avatar_response.py +0 -0
- {python_trueconf_bot-1.5.2 → python_trueconf_bot-1.5.3}/trueconf/types/responses/edit_chat_title_response.py +0 -0
- {python_trueconf_bot-1.5.2 → python_trueconf_bot-1.5.3}/trueconf/types/responses/edit_message_response.py +0 -0
- {python_trueconf_bot-1.5.2 → python_trueconf_bot-1.5.3}/trueconf/types/responses/edit_survey_response.py +0 -0
- {python_trueconf_bot-1.5.2 → python_trueconf_bot-1.5.3}/trueconf/types/responses/forward_message_response.py +0 -0
- {python_trueconf_bot-1.5.2 → python_trueconf_bot-1.5.3}/trueconf/types/responses/get_chat_by_id_response.py +0 -0
- {python_trueconf_bot-1.5.2 → python_trueconf_bot-1.5.3}/trueconf/types/responses/get_chat_history_response.py +0 -0
- {python_trueconf_bot-1.5.2 → python_trueconf_bot-1.5.3}/trueconf/types/responses/get_chat_participant_response.py +0 -0
- {python_trueconf_bot-1.5.2 → python_trueconf_bot-1.5.3}/trueconf/types/responses/get_chat_participants_response.py +0 -0
- {python_trueconf_bot-1.5.2 → python_trueconf_bot-1.5.3}/trueconf/types/responses/get_chats_response.py +0 -0
- {python_trueconf_bot-1.5.2 → python_trueconf_bot-1.5.3}/trueconf/types/responses/get_file_info_response.py +0 -0
- {python_trueconf_bot-1.5.2 → python_trueconf_bot-1.5.3}/trueconf/types/responses/get_file_upload_limits_response.py +0 -0
- {python_trueconf_bot-1.5.2 → python_trueconf_bot-1.5.3}/trueconf/types/responses/get_message_by_id_response.py +0 -0
- {python_trueconf_bot-1.5.2 → python_trueconf_bot-1.5.3}/trueconf/types/responses/get_user_display_name_response.py +0 -0
- {python_trueconf_bot-1.5.2 → python_trueconf_bot-1.5.3}/trueconf/types/responses/has_chat_participant_response.py +0 -0
- {python_trueconf_bot-1.5.2 → python_trueconf_bot-1.5.3}/trueconf/types/responses/remove_chat_participant_response.py +0 -0
- {python_trueconf_bot-1.5.2 → python_trueconf_bot-1.5.3}/trueconf/types/responses/remove_chat_response.py +0 -0
- {python_trueconf_bot-1.5.2 → python_trueconf_bot-1.5.3}/trueconf/types/responses/remove_message_response.py +0 -0
- {python_trueconf_bot-1.5.2 → python_trueconf_bot-1.5.3}/trueconf/types/responses/send_chat_activity_response.py +0 -0
- {python_trueconf_bot-1.5.2 → python_trueconf_bot-1.5.3}/trueconf/types/responses/send_file_response.py +0 -0
- {python_trueconf_bot-1.5.2 → python_trueconf_bot-1.5.3}/trueconf/types/responses/send_message_response.py +0 -0
- {python_trueconf_bot-1.5.2 → python_trueconf_bot-1.5.3}/trueconf/types/responses/send_survey_response.py +0 -0
- {python_trueconf_bot-1.5.2 → python_trueconf_bot-1.5.3}/trueconf/types/responses/subscribe_file_progress_response.py +0 -0
- {python_trueconf_bot-1.5.2 → python_trueconf_bot-1.5.3}/trueconf/types/responses/unsubscribe_file_progress_response.py +0 -0
- {python_trueconf_bot-1.5.2 → python_trueconf_bot-1.5.3}/trueconf/types/responses/upload_file_response.py +0 -0
- {python_trueconf_bot-1.5.2 → python_trueconf_bot-1.5.3}/trueconf/types/system_message.py +0 -0
- {python_trueconf_bot-1.5.2 → python_trueconf_bot-1.5.3}/trueconf/types/update.py +0 -0
- {python_trueconf_bot-1.5.2 → python_trueconf_bot-1.5.3}/trueconf/utils/__init__.py +0 -0
- {python_trueconf_bot-1.5.2 → python_trueconf_bot-1.5.3}/trueconf/utils/_auth/__init__.py +0 -0
- {python_trueconf_bot-1.5.2 → python_trueconf_bot-1.5.3}/trueconf/utils/_auth/_token.py +0 -0
- {python_trueconf_bot-1.5.2 → python_trueconf_bot-1.5.3}/trueconf/utils/_generate_secret_for_survey.py +0 -0
- {python_trueconf_bot-1.5.2 → python_trueconf_bot-1.5.3}/trueconf/utils/_ssl.py +0 -0
- {python_trueconf_bot-1.5.2 → python_trueconf_bot-1.5.3}/trueconf/utils/_url.py +0 -0
- {python_trueconf_bot-1.5.2 → python_trueconf_bot-1.5.3}/trueconf/utils/_user_agent.py +0 -0
- {python_trueconf_bot-1.5.2 → python_trueconf_bot-1.5.3}/trueconf/utils/_version_checker.py +0 -0
- {python_trueconf_bot-1.5.2 → python_trueconf_bot-1.5.3}/trueconf/utils/chat_activity.py +0 -0
- {python_trueconf_bot-1.5.2 → python_trueconf_bot-1.5.3}/trueconf/utils/formatting/__init__.py +0 -0
- {python_trueconf_bot-1.5.2 → python_trueconf_bot-1.5.3}/trueconf/utils/formatting/decorations.py +0 -0
- {python_trueconf_bot-1.5.2 → python_trueconf_bot-1.5.3}/trueconf/utils/formatting/text.py +0 -0
- {python_trueconf_bot-1.5.2 → python_trueconf_bot-1.5.3}/trueconf/utils/split_text.py +0 -0
|
@@ -17,14 +17,14 @@ jobs:
|
|
|
17
17
|
runs-on: ubuntu-latest
|
|
18
18
|
environment: testpypi
|
|
19
19
|
steps:
|
|
20
|
-
- uses: actions/checkout@
|
|
20
|
+
- uses: actions/checkout@v7
|
|
21
21
|
with:
|
|
22
22
|
fetch-depth: 0
|
|
23
23
|
fetch-tags: true
|
|
24
24
|
ref: ${{ github.event.inputs.tag }}
|
|
25
25
|
|
|
26
26
|
- name: Set up Python
|
|
27
|
-
uses: actions/setup-python@
|
|
27
|
+
uses: actions/setup-python@v7
|
|
28
28
|
with:
|
|
29
29
|
python-version: "3.10"
|
|
30
30
|
|
|
@@ -9,11 +9,20 @@ permissions:
|
|
|
9
9
|
id-token: write
|
|
10
10
|
|
|
11
11
|
jobs:
|
|
12
|
+
test:
|
|
13
|
+
name: Tests before release
|
|
14
|
+
uses: ./.github/workflows/test.yml
|
|
15
|
+
with:
|
|
16
|
+
ref: ${{ github.event.release.tag_name }}
|
|
17
|
+
permissions:
|
|
18
|
+
contents: read
|
|
19
|
+
|
|
12
20
|
build-and-publish:
|
|
21
|
+
needs: test
|
|
13
22
|
runs-on: ubuntu-latest
|
|
14
23
|
environment: pypi
|
|
15
24
|
steps:
|
|
16
|
-
- uses: actions/checkout@
|
|
25
|
+
- uses: actions/checkout@v7
|
|
17
26
|
with:
|
|
18
27
|
fetch-depth: 0
|
|
19
28
|
ref: ${{ github.event.release.tag_name }}
|
|
@@ -25,7 +34,7 @@ jobs:
|
|
|
25
34
|
sed -i "s/^version = .*/version = \"${VERSION}\"/" pyproject.toml
|
|
26
35
|
|
|
27
36
|
- name: Set up Python
|
|
28
|
-
uses: actions/setup-python@
|
|
37
|
+
uses: actions/setup-python@v7
|
|
29
38
|
with:
|
|
30
39
|
python-version: "3.11"
|
|
31
40
|
|
|
@@ -35,7 +44,7 @@ jobs:
|
|
|
35
44
|
python -m build
|
|
36
45
|
|
|
37
46
|
- name: Upload artifacts to Actions
|
|
38
|
-
uses: actions/upload-artifact@
|
|
47
|
+
uses: actions/upload-artifact@v7
|
|
39
48
|
with:
|
|
40
49
|
name: dist
|
|
41
50
|
path: dist/*
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
name: Tests
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
branches: [master]
|
|
6
|
+
pull_request:
|
|
7
|
+
workflow_call:
|
|
8
|
+
inputs:
|
|
9
|
+
ref:
|
|
10
|
+
description: "Git ref to check out (used when called from another workflow)"
|
|
11
|
+
type: string
|
|
12
|
+
required: false
|
|
13
|
+
|
|
14
|
+
permissions:
|
|
15
|
+
contents: read
|
|
16
|
+
|
|
17
|
+
jobs:
|
|
18
|
+
test:
|
|
19
|
+
name: pytest (Python ${{ matrix.python-version }})
|
|
20
|
+
runs-on: ubuntu-latest
|
|
21
|
+
strategy:
|
|
22
|
+
fail-fast: false
|
|
23
|
+
matrix:
|
|
24
|
+
python-version: ["3.10", "3.11", "3.12", "3.13", "3.14"]
|
|
25
|
+
steps:
|
|
26
|
+
- uses: actions/checkout@v7
|
|
27
|
+
with:
|
|
28
|
+
fetch-depth: 0
|
|
29
|
+
fetch-tags: true
|
|
30
|
+
ref: ${{ inputs.ref || github.ref }}
|
|
31
|
+
|
|
32
|
+
- name: Install uv
|
|
33
|
+
uses: astral-sh/setup-uv@v10.2.0
|
|
34
|
+
with:
|
|
35
|
+
python-version: ${{ matrix.python-version }}
|
|
36
|
+
|
|
37
|
+
- name: Install dependencies
|
|
38
|
+
run: uv sync --group test
|
|
39
|
+
|
|
40
|
+
- name: Show versions
|
|
41
|
+
run: |
|
|
42
|
+
uv run python -c "import sys, httpx2; print('python', sys.version.split()[0], '| httpx2', httpx2.__version__)"
|
|
43
|
+
|
|
44
|
+
- name: Run tests
|
|
45
|
+
run: uv run pytest tests/ -v
|
|
46
|
+
|
|
47
|
+
test-httpx2-floor:
|
|
48
|
+
name: pytest (Python 3.10, httpx2==2.7.0)
|
|
49
|
+
runs-on: ubuntu-latest
|
|
50
|
+
steps:
|
|
51
|
+
- uses: actions/checkout@v7
|
|
52
|
+
with:
|
|
53
|
+
fetch-depth: 0
|
|
54
|
+
fetch-tags: true
|
|
55
|
+
ref: ${{ inputs.ref || github.ref }}
|
|
56
|
+
|
|
57
|
+
- name: Install uv
|
|
58
|
+
uses: astral-sh/setup-uv@v10.2.0
|
|
59
|
+
with:
|
|
60
|
+
python-version: "3.10"
|
|
61
|
+
cache-suffix: "-httpx2-2.7.0"
|
|
62
|
+
|
|
63
|
+
- name: Create venv with httpx2 pinned to the minimum supported version
|
|
64
|
+
run: |
|
|
65
|
+
uv venv --python 3.10 --clear
|
|
66
|
+
uv pip install --python .venv/bin/python -e . "httpx2==2.7.0" pytest "anyio>=4.10" "trio>=0.34.0"
|
|
67
|
+
|
|
68
|
+
- name: Show versions
|
|
69
|
+
run: |
|
|
70
|
+
.venv/bin/python -c "import sys, httpx2; print('python', sys.version.split()[0], '| httpx2', httpx2.__version__)"
|
|
71
|
+
|
|
72
|
+
- name: Run tests
|
|
73
|
+
run: .venv/bin/python -m pytest tests/ -v
|
|
@@ -95,10 +95,8 @@ ipython_config.py
|
|
|
95
95
|
#Pipfile.lock
|
|
96
96
|
|
|
97
97
|
# UV
|
|
98
|
-
#
|
|
99
|
-
#
|
|
100
|
-
# commonly ignored for libraries.
|
|
101
|
-
uv.lock
|
|
98
|
+
# uv.lock is committed to keep CI reproducible (same approach as aiogram).
|
|
99
|
+
# Run `uv lock` after changing dependencies in pyproject.toml.
|
|
102
100
|
|
|
103
101
|
# poetry
|
|
104
102
|
# Similar to Pipfile.lock, it is generally recommended to include poetry.lock in version control.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: python-trueconf-bot
|
|
3
|
-
Version: 1.5.
|
|
3
|
+
Version: 1.5.3
|
|
4
4
|
Summary: Lightweight and powerful framework for the TrueConf Server Chatbot API
|
|
5
5
|
Author-email: TrueConf LLC <info@trueconf.com>, Anton Baadzhi <baadzhianton@gmail.com>
|
|
6
6
|
License-Expression: BSD-3-Clause-Clear
|
|
@@ -25,7 +25,7 @@ Requires-Python: >=3.10
|
|
|
25
25
|
Description-Content-Type: text/markdown
|
|
26
26
|
License-File: LICENSE
|
|
27
27
|
Requires-Dist: websockets
|
|
28
|
-
Requires-Dist: httpx2>=2.
|
|
28
|
+
Requires-Dist: httpx2>=2.7.0
|
|
29
29
|
Requires-Dist: mashumaro>=3.23
|
|
30
30
|
Requires-Dist: aiofiles
|
|
31
31
|
Requires-Dist: magic-filter
|
{python_trueconf_bot-1.5.2 → python_trueconf_bot-1.5.3}/python_trueconf_bot.egg-info/PKG-INFO
RENAMED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: python-trueconf-bot
|
|
3
|
-
Version: 1.5.
|
|
3
|
+
Version: 1.5.3
|
|
4
4
|
Summary: Lightweight and powerful framework for the TrueConf Server Chatbot API
|
|
5
5
|
Author-email: TrueConf LLC <info@trueconf.com>, Anton Baadzhi <baadzhianton@gmail.com>
|
|
6
6
|
License-Expression: BSD-3-Clause-Clear
|
|
@@ -25,7 +25,7 @@ Requires-Python: >=3.10
|
|
|
25
25
|
Description-Content-Type: text/markdown
|
|
26
26
|
License-File: LICENSE
|
|
27
27
|
Requires-Dist: websockets
|
|
28
|
-
Requires-Dist: httpx2>=2.
|
|
28
|
+
Requires-Dist: httpx2>=2.7.0
|
|
29
29
|
Requires-Dist: mashumaro>=3.23
|
|
30
30
|
Requires-Dist: aiofiles
|
|
31
31
|
Requires-Dist: magic-filter
|
{python_trueconf_bot-1.5.2 → python_trueconf_bot-1.5.3}/python_trueconf_bot.egg-info/SOURCES.txt
RENAMED
|
@@ -7,9 +7,11 @@ context7.json
|
|
|
7
7
|
justfile
|
|
8
8
|
mkdocs.yml
|
|
9
9
|
pyproject.toml
|
|
10
|
+
uv.lock
|
|
10
11
|
.github/workflows/docs.yml
|
|
11
12
|
.github/workflows/release-test.yml
|
|
12
13
|
.github/workflows/release.yml
|
|
14
|
+
.github/workflows/test.yml
|
|
13
15
|
assets/head_en.png
|
|
14
16
|
assets/head_ru.png
|
|
15
17
|
assets/logo.svg
|
|
@@ -98,6 +100,7 @@ tests/test_download_url_logging.py
|
|
|
98
100
|
tests/test_event_raw_routing.py
|
|
99
101
|
tests/test_formatting.py
|
|
100
102
|
tests/test_fsm.py
|
|
103
|
+
tests/test_httpx2_compat.py
|
|
101
104
|
tests/test_inline_keyboard.py
|
|
102
105
|
tests/test_last_message.py
|
|
103
106
|
tests/test_message_binding.py
|
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
".github/workflows/docs.yml",
|
|
4
4
|
".github/workflows/release-test.yml",
|
|
5
5
|
".github/workflows/release.yml",
|
|
6
|
+
".github/workflows/test.yml",
|
|
6
7
|
".gitignore",
|
|
7
8
|
"LICENSE",
|
|
8
9
|
"README-PyPI.md",
|
|
@@ -93,6 +94,7 @@
|
|
|
93
94
|
"tests/test_event_raw_routing.py",
|
|
94
95
|
"tests/test_formatting.py",
|
|
95
96
|
"tests/test_fsm.py",
|
|
97
|
+
"tests/test_httpx2_compat.py",
|
|
96
98
|
"tests/test_inline_keyboard.py",
|
|
97
99
|
"tests/test_last_message.py",
|
|
98
100
|
"tests/test_message_binding.py",
|
|
@@ -282,6 +284,7 @@
|
|
|
282
284
|
"trueconf/utils/formatting/__init__.py",
|
|
283
285
|
"trueconf/utils/formatting/decorations.py",
|
|
284
286
|
"trueconf/utils/formatting/text.py",
|
|
285
|
-
"trueconf/utils/split_text.py"
|
|
287
|
+
"trueconf/utils/split_text.py",
|
|
288
|
+
"uv.lock"
|
|
286
289
|
]
|
|
287
290
|
}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
"""Smoke tests for the public httpx2 API surface used by trueconf.
|
|
2
|
+
|
|
3
|
+
The library depends on a specific subset of httpx2's public API. These tests
|
|
4
|
+
import every symbol the package relies on so that a future httpx2 release
|
|
5
|
+
removing or renaming any of them fails fast here instead of breaking user
|
|
6
|
+
code at runtime.
|
|
7
|
+
"""
|
|
8
|
+
|
|
9
|
+
import httpx2
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
def test_httpx2_minimum_version():
|
|
13
|
+
assert tuple(int(part) for part in httpx2.__version__.split(".")[:2]) >= (2, 7)
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
def test_package_modules_import_httpx2():
|
|
17
|
+
# Every trueconf module that touches httpx2 must import cleanly.
|
|
18
|
+
import importlib
|
|
19
|
+
|
|
20
|
+
for module_name in (
|
|
21
|
+
"trueconf.types.input_file",
|
|
22
|
+
"trueconf.utils._auth._token",
|
|
23
|
+
"trueconf.client.bot",
|
|
24
|
+
):
|
|
25
|
+
importlib.import_module(module_name)
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
def test_symbols_used_by_bot_module():
|
|
29
|
+
# trueconf/client/bot.py uses these via `httpx2.<name>`
|
|
30
|
+
for name in ("AsyncClient", "Timeout", "TimeoutException", "RequestError", "HTTPStatusError"):
|
|
31
|
+
assert hasattr(httpx2, name), f"httpx2 is missing {name!r} required by trueconf.client.bot"
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
def test_symbols_used_by_auth_token():
|
|
35
|
+
# trueconf/utils/_auth/_token.py imports these directly
|
|
36
|
+
from httpx2 import Client, ConnectTimeout, HTTPStatusError # noqa: F401
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
def test_symbols_used_by_input_file():
|
|
40
|
+
# trueconf/types/input_file.py imports AsyncClient directly
|
|
41
|
+
from httpx2 import AsyncClient # noqa: F401
|
|
42
|
+
|
|
43
|
+
|
|
44
|
+
def test_client_constructor_signature():
|
|
45
|
+
# Keywords used by trueconf when creating clients
|
|
46
|
+
client = httpx2.Client(timeout=1.0, verify=True, headers={"User-Agent": "test"})
|
|
47
|
+
try:
|
|
48
|
+
assert client.timeout.read == 1.0
|
|
49
|
+
finally:
|
|
50
|
+
client.close()
|
|
51
|
+
|
|
52
|
+
|
|
53
|
+
def test_async_client_constructor_signature():
|
|
54
|
+
client = httpx2.AsyncClient(timeout=httpx2.Timeout(5.0), verify=True, headers={"User-Agent": "test"})
|
|
55
|
+
assert client.timeout.read == 5.0
|
|
56
|
+
|
|
57
|
+
|
|
58
|
+
def test_request_and_response_roundtrip():
|
|
59
|
+
request = httpx2.Request("POST", "https://example.com")
|
|
60
|
+
response = httpx2.Response(403, request=request)
|
|
61
|
+
error = httpx2.HTTPStatusError("forbidden", request=request, response=response)
|
|
62
|
+
assert error.response.status_code == 403
|
|
63
|
+
assert isinstance(error, httpx2.RequestError) is False
|
|
64
|
+
|
|
65
|
+
|
|
66
|
+
def test_exception_hierarchy():
|
|
67
|
+
# trueconf catches these exception types separately
|
|
68
|
+
assert issubclass(httpx2.ConnectTimeout, httpx2.TimeoutException)
|
|
69
|
+
assert issubclass(httpx2.TimeoutException, httpx2.RequestError)
|
|
70
|
+
assert issubclass(httpx2.HTTPStatusError, httpx2.HTTPError)
|
|
@@ -18,7 +18,7 @@ version_tuple: tuple[int | str, ...]
|
|
|
18
18
|
commit_id: str | None
|
|
19
19
|
__commit_id__: str | None
|
|
20
20
|
|
|
21
|
-
__version__ = version = '1.5.
|
|
22
|
-
__version_tuple__ = version_tuple = (1, 5,
|
|
21
|
+
__version__ = version = '1.5.3'
|
|
22
|
+
__version_tuple__ = version_tuple = (1, 5, 3)
|
|
23
23
|
|
|
24
|
-
__commit_id__ = commit_id = '
|
|
24
|
+
__commit_id__ = commit_id = 'g08c15ffa9'
|
|
@@ -1857,6 +1857,12 @@ class Bot:
|
|
|
1857
1857
|
cancelling = getattr(current_task, "cancelling", None)
|
|
1858
1858
|
if cancelling is not None and cancelling():
|
|
1859
1859
|
raise
|
|
1860
|
+
# Python 3.10 fallback: shutdown() sets self._stop before
|
|
1861
|
+
# cancelling the connect task, so an unset flag means the
|
|
1862
|
+
# cancellation came from outside (task.cancel()) and must
|
|
1863
|
+
# propagate to the caller.
|
|
1864
|
+
if self._connect_task is not None and not self._stop:
|
|
1865
|
+
raise
|
|
1860
1866
|
|
|
1861
1867
|
async def send_document(
|
|
1862
1868
|
self,
|