python-trueconf-bot 1.5.1__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.1 → python_trueconf_bot-1.5.3}/.github/workflows/docs.yml +1 -1
- {python_trueconf_bot-1.5.1 → python_trueconf_bot-1.5.3}/.github/workflows/release-test.yml +2 -2
- {python_trueconf_bot-1.5.1 → 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.1 → python_trueconf_bot-1.5.3}/.gitignore +2 -4
- {python_trueconf_bot-1.5.1 → python_trueconf_bot-1.5.3}/PKG-INFO +12 -8
- {python_trueconf_bot-1.5.1 → python_trueconf_bot-1.5.3}/README-PyPI.md +9 -6
- {python_trueconf_bot-1.5.1 → python_trueconf_bot-1.5.3}/README-ru.md +9 -6
- {python_trueconf_bot-1.5.1 → python_trueconf_bot-1.5.3}/README.md +9 -6
- {python_trueconf_bot-1.5.1 → python_trueconf_bot-1.5.3}/pyproject.toml +2 -1
- {python_trueconf_bot-1.5.1 → python_trueconf_bot-1.5.3}/python_trueconf_bot.egg-info/PKG-INFO +12 -8
- {python_trueconf_bot-1.5.1 → python_trueconf_bot-1.5.3}/python_trueconf_bot.egg-info/SOURCES.txt +3 -0
- {python_trueconf_bot-1.5.1 → python_trueconf_bot-1.5.3}/python_trueconf_bot.egg-info/requires.txt +1 -1
- {python_trueconf_bot-1.5.1 → python_trueconf_bot-1.5.3}/python_trueconf_bot.egg-info/scm_file_list.json +4 -1
- python_trueconf_bot-1.5.3/python_trueconf_bot.egg-info/scm_version.json +8 -0
- python_trueconf_bot-1.5.3/tests/test_httpx2_compat.py +70 -0
- {python_trueconf_bot-1.5.1 → python_trueconf_bot-1.5.3}/trueconf/_version.py +3 -3
- {python_trueconf_bot-1.5.1 → 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.1/python_trueconf_bot.egg-info/scm_version.json +0 -8
- {python_trueconf_bot-1.5.1 → python_trueconf_bot-1.5.3}/LICENSE +0 -0
- {python_trueconf_bot-1.5.1 → python_trueconf_bot-1.5.3}/assets/head_en.png +0 -0
- {python_trueconf_bot-1.5.1 → python_trueconf_bot-1.5.3}/assets/head_ru.png +0 -0
- {python_trueconf_bot-1.5.1 → python_trueconf_bot-1.5.3}/assets/logo.svg +0 -0
- {python_trueconf_bot-1.5.1 → python_trueconf_bot-1.5.3}/context7.json +0 -0
- {python_trueconf_bot-1.5.1 → python_trueconf_bot-1.5.3}/docs/context7.json +0 -0
- {python_trueconf_bot-1.5.1 → python_trueconf_bot-1.5.3}/docs/en/examples/index.md +0 -0
- {python_trueconf_bot-1.5.1 → python_trueconf_bot-1.5.3}/docs/en/features.md +0 -0
- {python_trueconf_bot-1.5.1 → python_trueconf_bot-1.5.3}/docs/en/img/head.png +0 -0
- {python_trueconf_bot-1.5.1 → python_trueconf_bot-1.5.3}/docs/en/img/router_scheme_en.svg +0 -0
- {python_trueconf_bot-1.5.1 → python_trueconf_bot-1.5.3}/docs/en/index.md +0 -0
- {python_trueconf_bot-1.5.1 → python_trueconf_bot-1.5.3}/docs/en/learn/authentication.md +0 -0
- {python_trueconf_bot-1.5.1 → python_trueconf_bot-1.5.3}/docs/en/learn/buttons.md +0 -0
- {python_trueconf_bot-1.5.1 → python_trueconf_bot-1.5.3}/docs/en/learn/enums.md +0 -0
- {python_trueconf_bot-1.5.1 → python_trueconf_bot-1.5.3}/docs/en/learn/files.md +0 -0
- {python_trueconf_bot-1.5.1 → python_trueconf_bot-1.5.3}/docs/en/learn/filters.md +0 -0
- {python_trueconf_bot-1.5.1 → python_trueconf_bot-1.5.3}/docs/en/learn/fsm.md +0 -0
- {python_trueconf_bot-1.5.1 → python_trueconf_bot-1.5.3}/docs/en/learn/getting-started.md +0 -0
- {python_trueconf_bot-1.5.1 → python_trueconf_bot-1.5.3}/docs/en/learn/middleware.md +0 -0
- {python_trueconf_bot-1.5.1 → python_trueconf_bot-1.5.3}/docs/en/learn/parse-messages.md +0 -0
- {python_trueconf_bot-1.5.1 → python_trueconf_bot-1.5.3}/docs/en/learn/restrictions.md +0 -0
- {python_trueconf_bot-1.5.1 → python_trueconf_bot-1.5.3}/docs/en/learn/send_message.md +0 -0
- {python_trueconf_bot-1.5.1 → python_trueconf_bot-1.5.3}/docs/en/learn/shortcuts.md +0 -0
- {python_trueconf_bot-1.5.1 → python_trueconf_bot-1.5.3}/docs/en/learn/types.md +0 -0
- {python_trueconf_bot-1.5.1 → python_trueconf_bot-1.5.3}/docs/en/learn/typing_indicator.md +0 -0
- {python_trueconf_bot-1.5.1 → python_trueconf_bot-1.5.3}/docs/en/reference/Bot.md +0 -0
- {python_trueconf_bot-1.5.1 → python_trueconf_bot-1.5.3}/docs/en/reference/Dispatcher.md +0 -0
- {python_trueconf_bot-1.5.1 → python_trueconf_bot-1.5.3}/docs/en/reference/Enums.md +0 -0
- {python_trueconf_bot-1.5.1 → python_trueconf_bot-1.5.3}/docs/en/reference/Exceptions.md +0 -0
- {python_trueconf_bot-1.5.1 → python_trueconf_bot-1.5.3}/docs/en/reference/Formatting.md +0 -0
- {python_trueconf_bot-1.5.1 → python_trueconf_bot-1.5.3}/docs/en/reference/Responses.md +0 -0
- {python_trueconf_bot-1.5.1 → python_trueconf_bot-1.5.3}/docs/en/reference/Router.md +0 -0
- {python_trueconf_bot-1.5.1 → python_trueconf_bot-1.5.3}/docs/en/reference/Types.md +0 -0
- {python_trueconf_bot-1.5.1 → python_trueconf_bot-1.5.3}/docs/en/reference/chat_activity.md +0 -0
- {python_trueconf_bot-1.5.1 → python_trueconf_bot-1.5.3}/docs/en/reference/index.md +0 -0
- {python_trueconf_bot-1.5.1 → python_trueconf_bot-1.5.3}/docs/en/release_notes.md +0 -0
- {python_trueconf_bot-1.5.1 → python_trueconf_bot-1.5.3}/docs/hooks/llms_txt.py +0 -0
- {python_trueconf_bot-1.5.1 → python_trueconf_bot-1.5.3}/docs/hooks/sitemap_dates.py +0 -0
- {python_trueconf_bot-1.5.1 → python_trueconf_bot-1.5.3}/docs/img/chatbot.svg +0 -0
- {python_trueconf_bot-1.5.1 → python_trueconf_bot-1.5.3}/docs/img/favicon.ico +0 -0
- {python_trueconf_bot-1.5.1 → python_trueconf_bot-1.5.3}/docs/img/logo.svg +0 -0
- {python_trueconf_bot-1.5.1 → python_trueconf_bot-1.5.3}/docs/overrides/main.html +0 -0
- {python_trueconf_bot-1.5.1 → python_trueconf_bot-1.5.3}/docs/overrides/sitemap.xml +0 -0
- {python_trueconf_bot-1.5.1 → python_trueconf_bot-1.5.3}/docs/ru/examples/index.md +0 -0
- {python_trueconf_bot-1.5.1 → python_trueconf_bot-1.5.3}/docs/ru/features.md +0 -0
- {python_trueconf_bot-1.5.1 → python_trueconf_bot-1.5.3}/docs/ru/img/head.png +0 -0
- {python_trueconf_bot-1.5.1 → python_trueconf_bot-1.5.3}/docs/ru/img/router_scheme_ru.svg +0 -0
- {python_trueconf_bot-1.5.1 → python_trueconf_bot-1.5.3}/docs/ru/index.md +0 -0
- {python_trueconf_bot-1.5.1 → python_trueconf_bot-1.5.3}/docs/ru/learn/authentication.md +0 -0
- {python_trueconf_bot-1.5.1 → python_trueconf_bot-1.5.3}/docs/ru/learn/buttons.md +0 -0
- {python_trueconf_bot-1.5.1 → python_trueconf_bot-1.5.3}/docs/ru/learn/enums.md +0 -0
- {python_trueconf_bot-1.5.1 → python_trueconf_bot-1.5.3}/docs/ru/learn/files.md +0 -0
- {python_trueconf_bot-1.5.1 → python_trueconf_bot-1.5.3}/docs/ru/learn/filters.md +0 -0
- {python_trueconf_bot-1.5.1 → python_trueconf_bot-1.5.3}/docs/ru/learn/fsm.md +0 -0
- {python_trueconf_bot-1.5.1 → python_trueconf_bot-1.5.3}/docs/ru/learn/getting-started.md +0 -0
- {python_trueconf_bot-1.5.1 → python_trueconf_bot-1.5.3}/docs/ru/learn/middleware.md +0 -0
- {python_trueconf_bot-1.5.1 → python_trueconf_bot-1.5.3}/docs/ru/learn/parse-messages.md +0 -0
- {python_trueconf_bot-1.5.1 → python_trueconf_bot-1.5.3}/docs/ru/learn/restrictions.md +0 -0
- {python_trueconf_bot-1.5.1 → python_trueconf_bot-1.5.3}/docs/ru/learn/send_message.md +0 -0
- {python_trueconf_bot-1.5.1 → python_trueconf_bot-1.5.3}/docs/ru/learn/shortcuts.md +0 -0
- {python_trueconf_bot-1.5.1 → python_trueconf_bot-1.5.3}/docs/ru/learn/types.md +0 -0
- {python_trueconf_bot-1.5.1 → python_trueconf_bot-1.5.3}/docs/ru/learn/typing_indicator.md +0 -0
- {python_trueconf_bot-1.5.1 → python_trueconf_bot-1.5.3}/docs/ru/release_notes.md +0 -0
- {python_trueconf_bot-1.5.1 → python_trueconf_bot-1.5.3}/docs/stylesheets/extra.css +0 -0
- {python_trueconf_bot-1.5.1 → python_trueconf_bot-1.5.3}/examples/README-ru.md +0 -0
- {python_trueconf_bot-1.5.1 → python_trueconf_bot-1.5.3}/examples/README.md +0 -0
- {python_trueconf_bot-1.5.1 → python_trueconf_bot-1.5.3}/examples/add_big_list_users_to_channel.py +0 -0
- {python_trueconf_bot-1.5.1 → python_trueconf_bot-1.5.3}/examples/buttons_bot.py +0 -0
- {python_trueconf_bot-1.5.1 → python_trueconf_bot-1.5.3}/examples/contacts.py +0 -0
- {python_trueconf_bot-1.5.1 → python_trueconf_bot-1.5.3}/examples/filters.py +0 -0
- {python_trueconf_bot-1.5.1 → python_trueconf_bot-1.5.3}/examples/report_bot.py +0 -0
- {python_trueconf_bot-1.5.1 → python_trueconf_bot-1.5.3}/examples/update_token.py +0 -0
- {python_trueconf_bot-1.5.1 → python_trueconf_bot-1.5.3}/examples/webhook.py +0 -0
- {python_trueconf_bot-1.5.1 → python_trueconf_bot-1.5.3}/justfile +0 -0
- {python_trueconf_bot-1.5.1 → python_trueconf_bot-1.5.3}/mkdocs.yml +0 -0
- {python_trueconf_bot-1.5.1 → python_trueconf_bot-1.5.3}/python_trueconf_bot.egg-info/dependency_links.txt +0 -0
- {python_trueconf_bot-1.5.1 → python_trueconf_bot-1.5.3}/python_trueconf_bot.egg-info/top_level.txt +0 -0
- {python_trueconf_bot-1.5.1 → python_trueconf_bot-1.5.3}/setup.cfg +0 -0
- {python_trueconf_bot-1.5.1 → python_trueconf_bot-1.5.3}/tests/test_answer_command.py +0 -0
- {python_trueconf_bot-1.5.1 → python_trueconf_bot-1.5.3}/tests/test_auth_via_oauth.py +0 -0
- {python_trueconf_bot-1.5.1 → python_trueconf_bot-1.5.3}/tests/test_callback_query_edit.py +0 -0
- {python_trueconf_bot-1.5.1 → python_trueconf_bot-1.5.3}/tests/test_callback_query_routing.py +0 -0
- {python_trueconf_bot-1.5.1 → python_trueconf_bot-1.5.3}/tests/test_chat_activity.py +0 -0
- {python_trueconf_bot-1.5.1 → python_trueconf_bot-1.5.3}/tests/test_download_limit.py +0 -0
- {python_trueconf_bot-1.5.1 → python_trueconf_bot-1.5.3}/tests/test_download_url_logging.py +0 -0
- {python_trueconf_bot-1.5.1 → python_trueconf_bot-1.5.3}/tests/test_event_raw_routing.py +0 -0
- {python_trueconf_bot-1.5.1 → python_trueconf_bot-1.5.3}/tests/test_formatting.py +0 -0
- {python_trueconf_bot-1.5.1 → python_trueconf_bot-1.5.3}/tests/test_fsm.py +0 -0
- {python_trueconf_bot-1.5.1 → python_trueconf_bot-1.5.3}/tests/test_inline_keyboard.py +0 -0
- {python_trueconf_bot-1.5.1 → python_trueconf_bot-1.5.3}/tests/test_last_message.py +0 -0
- {python_trueconf_bot-1.5.1 → python_trueconf_bot-1.5.3}/tests/test_message_binding.py +0 -0
- {python_trueconf_bot-1.5.1 → python_trueconf_bot-1.5.3}/tests/test_parse_update.py +0 -0
- {python_trueconf_bot-1.5.1 → python_trueconf_bot-1.5.3}/tests/test_public_contract_blockers.py +0 -0
- {python_trueconf_bot-1.5.1 → python_trueconf_bot-1.5.3}/tests/test_reply_quote.py +0 -0
- {python_trueconf_bot-1.5.1 → python_trueconf_bot-1.5.3}/tests/test_send_file_response.py +0 -0
- {python_trueconf_bot-1.5.1 → python_trueconf_bot-1.5.3}/tests/test_shutdown.py +0 -0
- {python_trueconf_bot-1.5.1 → python_trueconf_bot-1.5.3}/tests/test_split_text.py +0 -0
- {python_trueconf_bot-1.5.1 → python_trueconf_bot-1.5.3}/tests/test_system_message_routing.py +0 -0
- {python_trueconf_bot-1.5.1 → python_trueconf_bot-1.5.3}/tests/test_upload_errors.py +0 -0
- {python_trueconf_bot-1.5.1 → python_trueconf_bot-1.5.3}/tests/test_user_agent.py +0 -0
- {python_trueconf_bot-1.5.1 → python_trueconf_bot-1.5.3}/tests/test_vcard.py +0 -0
- {python_trueconf_bot-1.5.1 → python_trueconf_bot-1.5.3}/tests/test_ws_retries.py +0 -0
- {python_trueconf_bot-1.5.1 → python_trueconf_bot-1.5.3}/trueconf/__init__.py +0 -0
- {python_trueconf_bot-1.5.1 → python_trueconf_bot-1.5.3}/trueconf/client/__init__.py +0 -0
- {python_trueconf_bot-1.5.1 → python_trueconf_bot-1.5.3}/trueconf/client/context_controller.py +0 -0
- {python_trueconf_bot-1.5.1 → python_trueconf_bot-1.5.3}/trueconf/client/session.py +0 -0
- {python_trueconf_bot-1.5.1 → python_trueconf_bot-1.5.3}/trueconf/dispatcher/__init__.py +0 -0
- {python_trueconf_bot-1.5.1 → python_trueconf_bot-1.5.3}/trueconf/dispatcher/dispatcher.py +0 -0
- {python_trueconf_bot-1.5.1 → python_trueconf_bot-1.5.3}/trueconf/dispatcher/router.py +0 -0
- {python_trueconf_bot-1.5.1 → python_trueconf_bot-1.5.3}/trueconf/enums/__init__.py +0 -0
- {python_trueconf_bot-1.5.1 → python_trueconf_bot-1.5.3}/trueconf/enums/aouth_error.py +0 -0
- {python_trueconf_bot-1.5.1 → python_trueconf_bot-1.5.3}/trueconf/enums/button.py +0 -0
- {python_trueconf_bot-1.5.1 → python_trueconf_bot-1.5.3}/trueconf/enums/chat_activity.py +0 -0
- {python_trueconf_bot-1.5.1 → python_trueconf_bot-1.5.3}/trueconf/enums/chat_participant_role.py +0 -0
- {python_trueconf_bot-1.5.1 → python_trueconf_bot-1.5.3}/trueconf/enums/chat_type.py +0 -0
- {python_trueconf_bot-1.5.1 → python_trueconf_bot-1.5.3}/trueconf/enums/command.py +0 -0
- {python_trueconf_bot-1.5.1 → python_trueconf_bot-1.5.3}/trueconf/enums/envelope_author_type.py +0 -0
- {python_trueconf_bot-1.5.1 → python_trueconf_bot-1.5.3}/trueconf/enums/file_ready_state.py +0 -0
- {python_trueconf_bot-1.5.1 → python_trueconf_bot-1.5.3}/trueconf/enums/incoming_update_method.py +0 -0
- {python_trueconf_bot-1.5.1 → python_trueconf_bot-1.5.3}/trueconf/enums/message_type.py +0 -0
- {python_trueconf_bot-1.5.1 → python_trueconf_bot-1.5.3}/trueconf/enums/parse_mode.py +0 -0
- {python_trueconf_bot-1.5.1 → python_trueconf_bot-1.5.3}/trueconf/enums/survey_type.py +0 -0
- {python_trueconf_bot-1.5.1 → python_trueconf_bot-1.5.3}/trueconf/enums/update_type.py +0 -0
- {python_trueconf_bot-1.5.1 → python_trueconf_bot-1.5.3}/trueconf/exceptions.py +0 -0
- {python_trueconf_bot-1.5.1 → python_trueconf_bot-1.5.3}/trueconf/filters/__init__.py +0 -0
- {python_trueconf_bot-1.5.1 → python_trueconf_bot-1.5.3}/trueconf/filters/base.py +0 -0
- {python_trueconf_bot-1.5.1 → python_trueconf_bot-1.5.3}/trueconf/filters/command.py +0 -0
- {python_trueconf_bot-1.5.1 → python_trueconf_bot-1.5.3}/trueconf/filters/instance_of.py +0 -0
- {python_trueconf_bot-1.5.1 → python_trueconf_bot-1.5.3}/trueconf/filters/message.py +0 -0
- {python_trueconf_bot-1.5.1 → python_trueconf_bot-1.5.3}/trueconf/filters/raw_update.py +0 -0
- {python_trueconf_bot-1.5.1 → python_trueconf_bot-1.5.3}/trueconf/fsm/__init__.py +0 -0
- {python_trueconf_bot-1.5.1 → python_trueconf_bot-1.5.3}/trueconf/fsm/context.py +0 -0
- {python_trueconf_bot-1.5.1 → python_trueconf_bot-1.5.3}/trueconf/fsm/filters.py +0 -0
- {python_trueconf_bot-1.5.1 → python_trueconf_bot-1.5.3}/trueconf/fsm/key_builder.py +0 -0
- {python_trueconf_bot-1.5.1 → python_trueconf_bot-1.5.3}/trueconf/fsm/manager.py +0 -0
- {python_trueconf_bot-1.5.1 → python_trueconf_bot-1.5.3}/trueconf/fsm/middleware.py +0 -0
- {python_trueconf_bot-1.5.1 → python_trueconf_bot-1.5.3}/trueconf/fsm/state.py +0 -0
- {python_trueconf_bot-1.5.1 → python_trueconf_bot-1.5.3}/trueconf/fsm/storage/__init__.py +0 -0
- {python_trueconf_bot-1.5.1 → python_trueconf_bot-1.5.3}/trueconf/fsm/storage/base.py +0 -0
- {python_trueconf_bot-1.5.1 → python_trueconf_bot-1.5.3}/trueconf/fsm/storage/memory.py +0 -0
- {python_trueconf_bot-1.5.1 → python_trueconf_bot-1.5.3}/trueconf/fsm/strategy.py +0 -0
- {python_trueconf_bot-1.5.1 → python_trueconf_bot-1.5.3}/trueconf/loggers.py +0 -0
- {python_trueconf_bot-1.5.1 → python_trueconf_bot-1.5.3}/trueconf/methods/__init__.py +0 -0
- {python_trueconf_bot-1.5.1 → python_trueconf_bot-1.5.3}/trueconf/methods/add_participant_to_chat.py +0 -0
- {python_trueconf_bot-1.5.1 → python_trueconf_bot-1.5.3}/trueconf/methods/answer_command.py +0 -0
- {python_trueconf_bot-1.5.1 → python_trueconf_bot-1.5.3}/trueconf/methods/auth.py +0 -0
- {python_trueconf_bot-1.5.1 → python_trueconf_bot-1.5.3}/trueconf/methods/base.py +0 -0
- {python_trueconf_bot-1.5.1 → python_trueconf_bot-1.5.3}/trueconf/methods/change_participant_role.py +0 -0
- {python_trueconf_bot-1.5.1 → python_trueconf_bot-1.5.3}/trueconf/methods/clear_chat_history.py +0 -0
- {python_trueconf_bot-1.5.1 → python_trueconf_bot-1.5.3}/trueconf/methods/create_channel.py +0 -0
- {python_trueconf_bot-1.5.1 → python_trueconf_bot-1.5.3}/trueconf/methods/create_favorites_chat.py +0 -0
- {python_trueconf_bot-1.5.1 → python_trueconf_bot-1.5.3}/trueconf/methods/create_group_chat.py +0 -0
- {python_trueconf_bot-1.5.1 → python_trueconf_bot-1.5.3}/trueconf/methods/create_p2p_chat.py +0 -0
- {python_trueconf_bot-1.5.1 → python_trueconf_bot-1.5.3}/trueconf/methods/edit_chat_avatar.py +0 -0
- {python_trueconf_bot-1.5.1 → python_trueconf_bot-1.5.3}/trueconf/methods/edit_chat_title.py +0 -0
- {python_trueconf_bot-1.5.1 → python_trueconf_bot-1.5.3}/trueconf/methods/edit_message.py +0 -0
- {python_trueconf_bot-1.5.1 → python_trueconf_bot-1.5.3}/trueconf/methods/edit_survey.py +0 -0
- {python_trueconf_bot-1.5.1 → python_trueconf_bot-1.5.3}/trueconf/methods/forward_message.py +0 -0
- {python_trueconf_bot-1.5.1 → python_trueconf_bot-1.5.3}/trueconf/methods/get_chat_by_id.py +0 -0
- {python_trueconf_bot-1.5.1 → python_trueconf_bot-1.5.3}/trueconf/methods/get_chat_history.py +0 -0
- {python_trueconf_bot-1.5.1 → python_trueconf_bot-1.5.3}/trueconf/methods/get_chat_participant.py +0 -0
- {python_trueconf_bot-1.5.1 → python_trueconf_bot-1.5.3}/trueconf/methods/get_chat_participants.py +0 -0
- {python_trueconf_bot-1.5.1 → python_trueconf_bot-1.5.3}/trueconf/methods/get_chats.py +0 -0
- {python_trueconf_bot-1.5.1 → python_trueconf_bot-1.5.3}/trueconf/methods/get_file_info.py +0 -0
- {python_trueconf_bot-1.5.1 → python_trueconf_bot-1.5.3}/trueconf/methods/get_file_upload_limits.py +0 -0
- {python_trueconf_bot-1.5.1 → python_trueconf_bot-1.5.3}/trueconf/methods/get_message_by_id.py +0 -0
- {python_trueconf_bot-1.5.1 → python_trueconf_bot-1.5.3}/trueconf/methods/get_user_display_name.py +0 -0
- {python_trueconf_bot-1.5.1 → python_trueconf_bot-1.5.3}/trueconf/methods/has_chat_participant.py +0 -0
- {python_trueconf_bot-1.5.1 → python_trueconf_bot-1.5.3}/trueconf/methods/remove_chat.py +0 -0
- {python_trueconf_bot-1.5.1 → python_trueconf_bot-1.5.3}/trueconf/methods/remove_message.py +0 -0
- {python_trueconf_bot-1.5.1 → python_trueconf_bot-1.5.3}/trueconf/methods/remove_participant_from_chat.py +0 -0
- {python_trueconf_bot-1.5.1 → python_trueconf_bot-1.5.3}/trueconf/methods/send_chat_activity.py +0 -0
- {python_trueconf_bot-1.5.1 → python_trueconf_bot-1.5.3}/trueconf/methods/send_file.py +0 -0
- {python_trueconf_bot-1.5.1 → python_trueconf_bot-1.5.3}/trueconf/methods/send_message.py +0 -0
- {python_trueconf_bot-1.5.1 → python_trueconf_bot-1.5.3}/trueconf/methods/send_survey.py +0 -0
- {python_trueconf_bot-1.5.1 → python_trueconf_bot-1.5.3}/trueconf/methods/subscribe_file_progress.py +0 -0
- {python_trueconf_bot-1.5.1 → python_trueconf_bot-1.5.3}/trueconf/methods/unsubscribe_file_progress.py +0 -0
- {python_trueconf_bot-1.5.1 → python_trueconf_bot-1.5.3}/trueconf/methods/upload_file.py +0 -0
- {python_trueconf_bot-1.5.1 → python_trueconf_bot-1.5.3}/trueconf/middleware.py +0 -0
- {python_trueconf_bot-1.5.1 → python_trueconf_bot-1.5.3}/trueconf/py.typed +0 -0
- {python_trueconf_bot-1.5.1 → python_trueconf_bot-1.5.3}/trueconf/types/__init__.py +0 -0
- {python_trueconf_bot-1.5.1 → python_trueconf_bot-1.5.3}/trueconf/types/author_box.py +0 -0
- {python_trueconf_bot-1.5.1 → python_trueconf_bot-1.5.3}/trueconf/types/callback_query.py +0 -0
- {python_trueconf_bot-1.5.1 → python_trueconf_bot-1.5.3}/trueconf/types/chat.py +0 -0
- {python_trueconf_bot-1.5.1 → python_trueconf_bot-1.5.3}/trueconf/types/chat_participant.py +0 -0
- {python_trueconf_bot-1.5.1 → python_trueconf_bot-1.5.3}/trueconf/types/contact.py +0 -0
- {python_trueconf_bot-1.5.1 → python_trueconf_bot-1.5.3}/trueconf/types/content/__init__.py +0 -0
- {python_trueconf_bot-1.5.1 → python_trueconf_bot-1.5.3}/trueconf/types/content/attachment.py +0 -0
- {python_trueconf_bot-1.5.1 → python_trueconf_bot-1.5.3}/trueconf/types/content/base.py +0 -0
- {python_trueconf_bot-1.5.1 → python_trueconf_bot-1.5.3}/trueconf/types/content/chat_created.py +0 -0
- {python_trueconf_bot-1.5.1 → python_trueconf_bot-1.5.3}/trueconf/types/content/clear_chat_history.py +0 -0
- {python_trueconf_bot-1.5.1 → python_trueconf_bot-1.5.3}/trueconf/types/content/document.py +0 -0
- {python_trueconf_bot-1.5.1 → python_trueconf_bot-1.5.3}/trueconf/types/content/edit_chat_avatar.py +0 -0
- {python_trueconf_bot-1.5.1 → python_trueconf_bot-1.5.3}/trueconf/types/content/edit_chat_title.py +0 -0
- {python_trueconf_bot-1.5.1 → python_trueconf_bot-1.5.3}/trueconf/types/content/forward_message.py +0 -0
- {python_trueconf_bot-1.5.1 → python_trueconf_bot-1.5.3}/trueconf/types/content/location.py +0 -0
- {python_trueconf_bot-1.5.1 → python_trueconf_bot-1.5.3}/trueconf/types/content/parser.py +0 -0
- {python_trueconf_bot-1.5.1 → python_trueconf_bot-1.5.3}/trueconf/types/content/photo.py +0 -0
- {python_trueconf_bot-1.5.1 → python_trueconf_bot-1.5.3}/trueconf/types/content/remove_participant.py +0 -0
- {python_trueconf_bot-1.5.1 → python_trueconf_bot-1.5.3}/trueconf/types/content/sticker.py +0 -0
- {python_trueconf_bot-1.5.1 → python_trueconf_bot-1.5.3}/trueconf/types/content/survey.py +0 -0
- {python_trueconf_bot-1.5.1 → python_trueconf_bot-1.5.3}/trueconf/types/content/text.py +0 -0
- {python_trueconf_bot-1.5.1 → python_trueconf_bot-1.5.3}/trueconf/types/content/video.py +0 -0
- {python_trueconf_bot-1.5.1 → python_trueconf_bot-1.5.3}/trueconf/types/content/voice.py +0 -0
- {python_trueconf_bot-1.5.1 → python_trueconf_bot-1.5.3}/trueconf/types/envelope_parser.py +0 -0
- {python_trueconf_bot-1.5.1 → python_trueconf_bot-1.5.3}/trueconf/types/input_file.py +0 -0
- {python_trueconf_bot-1.5.1 → python_trueconf_bot-1.5.3}/trueconf/types/keyboard.py +0 -0
- {python_trueconf_bot-1.5.1 → python_trueconf_bot-1.5.3}/trueconf/types/last_message.py +0 -0
- {python_trueconf_bot-1.5.1 → python_trueconf_bot-1.5.3}/trueconf/types/message.py +0 -0
- {python_trueconf_bot-1.5.1 → python_trueconf_bot-1.5.3}/trueconf/types/parser.py +0 -0
- {python_trueconf_bot-1.5.1 → python_trueconf_bot-1.5.3}/trueconf/types/requests/__init__.py +0 -0
- {python_trueconf_bot-1.5.1 → python_trueconf_bot-1.5.3}/trueconf/types/requests/added_chat_participant.py +0 -0
- {python_trueconf_bot-1.5.1 → python_trueconf_bot-1.5.3}/trueconf/types/requests/changed_file_upload_limits.py +0 -0
- {python_trueconf_bot-1.5.1 → python_trueconf_bot-1.5.3}/trueconf/types/requests/changed_participant_role.py +0 -0
- {python_trueconf_bot-1.5.1 → python_trueconf_bot-1.5.3}/trueconf/types/requests/cleared_chat_history.py +0 -0
- {python_trueconf_bot-1.5.1 → python_trueconf_bot-1.5.3}/trueconf/types/requests/created_channel.py +0 -0
- {python_trueconf_bot-1.5.1 → python_trueconf_bot-1.5.3}/trueconf/types/requests/created_favorites_chat.py +0 -0
- {python_trueconf_bot-1.5.1 → python_trueconf_bot-1.5.3}/trueconf/types/requests/created_group_chat.py +0 -0
- {python_trueconf_bot-1.5.1 → python_trueconf_bot-1.5.3}/trueconf/types/requests/created_personal_chat.py +0 -0
- {python_trueconf_bot-1.5.1 → python_trueconf_bot-1.5.3}/trueconf/types/requests/edited_chat_avatar.py +0 -0
- {python_trueconf_bot-1.5.1 → python_trueconf_bot-1.5.3}/trueconf/types/requests/edited_chat_title.py +0 -0
- {python_trueconf_bot-1.5.1 → python_trueconf_bot-1.5.3}/trueconf/types/requests/edited_message.py +0 -0
- {python_trueconf_bot-1.5.1 → python_trueconf_bot-1.5.3}/trueconf/types/requests/removed_chat.py +0 -0
- {python_trueconf_bot-1.5.1 → python_trueconf_bot-1.5.3}/trueconf/types/requests/removed_chat_participant.py +0 -0
- {python_trueconf_bot-1.5.1 → python_trueconf_bot-1.5.3}/trueconf/types/requests/removed_message.py +0 -0
- {python_trueconf_bot-1.5.1 → python_trueconf_bot-1.5.3}/trueconf/types/requests/uploading_progress.py +0 -0
- {python_trueconf_bot-1.5.1 → python_trueconf_bot-1.5.3}/trueconf/types/responses/__init__.py +0 -0
- {python_trueconf_bot-1.5.1 → python_trueconf_bot-1.5.3}/trueconf/types/responses/add_chat_participant_response.py +0 -0
- {python_trueconf_bot-1.5.1 → python_trueconf_bot-1.5.3}/trueconf/types/responses/answer_command_response.py +0 -0
- {python_trueconf_bot-1.5.1 → python_trueconf_bot-1.5.3}/trueconf/types/responses/api_error.py +0 -0
- {python_trueconf_bot-1.5.1 → python_trueconf_bot-1.5.3}/trueconf/types/responses/auth_response_payload.py +0 -0
- {python_trueconf_bot-1.5.1 → python_trueconf_bot-1.5.3}/trueconf/types/responses/change_participant_role_response.py +0 -0
- {python_trueconf_bot-1.5.1 → python_trueconf_bot-1.5.3}/trueconf/types/responses/clear_chat_history_response.py +0 -0
- {python_trueconf_bot-1.5.1 → python_trueconf_bot-1.5.3}/trueconf/types/responses/create_channel_response.py +0 -0
- {python_trueconf_bot-1.5.1 → python_trueconf_bot-1.5.3}/trueconf/types/responses/create_favorites_chat_response.py +0 -0
- {python_trueconf_bot-1.5.1 → python_trueconf_bot-1.5.3}/trueconf/types/responses/create_group_chat_response.py +0 -0
- {python_trueconf_bot-1.5.1 → python_trueconf_bot-1.5.3}/trueconf/types/responses/create_p2p_chat_response.py +0 -0
- {python_trueconf_bot-1.5.1 → python_trueconf_bot-1.5.3}/trueconf/types/responses/edit_chat_avatar_response.py +0 -0
- {python_trueconf_bot-1.5.1 → python_trueconf_bot-1.5.3}/trueconf/types/responses/edit_chat_title_response.py +0 -0
- {python_trueconf_bot-1.5.1 → python_trueconf_bot-1.5.3}/trueconf/types/responses/edit_message_response.py +0 -0
- {python_trueconf_bot-1.5.1 → python_trueconf_bot-1.5.3}/trueconf/types/responses/edit_survey_response.py +0 -0
- {python_trueconf_bot-1.5.1 → python_trueconf_bot-1.5.3}/trueconf/types/responses/forward_message_response.py +0 -0
- {python_trueconf_bot-1.5.1 → python_trueconf_bot-1.5.3}/trueconf/types/responses/get_chat_by_id_response.py +0 -0
- {python_trueconf_bot-1.5.1 → python_trueconf_bot-1.5.3}/trueconf/types/responses/get_chat_history_response.py +0 -0
- {python_trueconf_bot-1.5.1 → python_trueconf_bot-1.5.3}/trueconf/types/responses/get_chat_participant_response.py +0 -0
- {python_trueconf_bot-1.5.1 → python_trueconf_bot-1.5.3}/trueconf/types/responses/get_chat_participants_response.py +0 -0
- {python_trueconf_bot-1.5.1 → python_trueconf_bot-1.5.3}/trueconf/types/responses/get_chats_response.py +0 -0
- {python_trueconf_bot-1.5.1 → python_trueconf_bot-1.5.3}/trueconf/types/responses/get_file_info_response.py +0 -0
- {python_trueconf_bot-1.5.1 → python_trueconf_bot-1.5.3}/trueconf/types/responses/get_file_upload_limits_response.py +0 -0
- {python_trueconf_bot-1.5.1 → python_trueconf_bot-1.5.3}/trueconf/types/responses/get_message_by_id_response.py +0 -0
- {python_trueconf_bot-1.5.1 → python_trueconf_bot-1.5.3}/trueconf/types/responses/get_user_display_name_response.py +0 -0
- {python_trueconf_bot-1.5.1 → python_trueconf_bot-1.5.3}/trueconf/types/responses/has_chat_participant_response.py +0 -0
- {python_trueconf_bot-1.5.1 → python_trueconf_bot-1.5.3}/trueconf/types/responses/remove_chat_participant_response.py +0 -0
- {python_trueconf_bot-1.5.1 → python_trueconf_bot-1.5.3}/trueconf/types/responses/remove_chat_response.py +0 -0
- {python_trueconf_bot-1.5.1 → python_trueconf_bot-1.5.3}/trueconf/types/responses/remove_message_response.py +0 -0
- {python_trueconf_bot-1.5.1 → python_trueconf_bot-1.5.3}/trueconf/types/responses/send_chat_activity_response.py +0 -0
- {python_trueconf_bot-1.5.1 → python_trueconf_bot-1.5.3}/trueconf/types/responses/send_file_response.py +0 -0
- {python_trueconf_bot-1.5.1 → python_trueconf_bot-1.5.3}/trueconf/types/responses/send_message_response.py +0 -0
- {python_trueconf_bot-1.5.1 → python_trueconf_bot-1.5.3}/trueconf/types/responses/send_survey_response.py +0 -0
- {python_trueconf_bot-1.5.1 → python_trueconf_bot-1.5.3}/trueconf/types/responses/subscribe_file_progress_response.py +0 -0
- {python_trueconf_bot-1.5.1 → python_trueconf_bot-1.5.3}/trueconf/types/responses/unsubscribe_file_progress_response.py +0 -0
- {python_trueconf_bot-1.5.1 → python_trueconf_bot-1.5.3}/trueconf/types/responses/upload_file_response.py +0 -0
- {python_trueconf_bot-1.5.1 → python_trueconf_bot-1.5.3}/trueconf/types/system_message.py +0 -0
- {python_trueconf_bot-1.5.1 → python_trueconf_bot-1.5.3}/trueconf/types/update.py +0 -0
- {python_trueconf_bot-1.5.1 → python_trueconf_bot-1.5.3}/trueconf/utils/__init__.py +0 -0
- {python_trueconf_bot-1.5.1 → python_trueconf_bot-1.5.3}/trueconf/utils/_auth/__init__.py +0 -0
- {python_trueconf_bot-1.5.1 → python_trueconf_bot-1.5.3}/trueconf/utils/_auth/_token.py +0 -0
- {python_trueconf_bot-1.5.1 → python_trueconf_bot-1.5.3}/trueconf/utils/_generate_secret_for_survey.py +0 -0
- {python_trueconf_bot-1.5.1 → python_trueconf_bot-1.5.3}/trueconf/utils/_ssl.py +0 -0
- {python_trueconf_bot-1.5.1 → python_trueconf_bot-1.5.3}/trueconf/utils/_url.py +0 -0
- {python_trueconf_bot-1.5.1 → python_trueconf_bot-1.5.3}/trueconf/utils/_user_agent.py +0 -0
- {python_trueconf_bot-1.5.1 → python_trueconf_bot-1.5.3}/trueconf/utils/_version_checker.py +0 -0
- {python_trueconf_bot-1.5.1 → python_trueconf_bot-1.5.3}/trueconf/utils/chat_activity.py +0 -0
- {python_trueconf_bot-1.5.1 → python_trueconf_bot-1.5.3}/trueconf/utils/formatting/__init__.py +0 -0
- {python_trueconf_bot-1.5.1 → python_trueconf_bot-1.5.3}/trueconf/utils/formatting/decorations.py +0 -0
- {python_trueconf_bot-1.5.1 → python_trueconf_bot-1.5.3}/trueconf/utils/formatting/text.py +0 -0
- {python_trueconf_bot-1.5.1 → 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
|
|
@@ -18,13 +18,14 @@ Classifier: Programming Language :: Python :: 3.10
|
|
|
18
18
|
Classifier: Programming Language :: Python :: 3.11
|
|
19
19
|
Classifier: Programming Language :: Python :: 3.12
|
|
20
20
|
Classifier: Programming Language :: Python :: 3.13
|
|
21
|
+
Classifier: Programming Language :: Python :: 3.14
|
|
21
22
|
Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
|
22
23
|
Classifier: Topic :: Communications :: Chat
|
|
23
24
|
Requires-Python: >=3.10
|
|
24
25
|
Description-Content-Type: text/markdown
|
|
25
26
|
License-File: LICENSE
|
|
26
27
|
Requires-Dist: websockets
|
|
27
|
-
Requires-Dist: httpx2>=2.
|
|
28
|
+
Requires-Dist: httpx2>=2.7.0
|
|
28
29
|
Requires-Dist: mashumaro>=3.23
|
|
29
30
|
Requires-Dist: aiofiles
|
|
30
31
|
Requires-Dist: magic-filter
|
|
@@ -98,12 +99,15 @@ uv add python-trueconf-bot
|
|
|
98
99
|
|
|
99
100
|
## 📦 Version Compatibility
|
|
100
101
|
|
|
101
|
-
| TrueConf Server Version |
|
|
102
|
-
|
|
103
|
-
| < 5.5.0 | ❌ Not supported
|
|
104
|
-
| 5.5.0 — 5.5.2 | v1.1.x
|
|
105
|
-
| 5.5.3 — 5.5.5 | v1.2.1-1.4.x
|
|
106
|
-
| >= 5.5.6 | **v1.5.0
|
|
102
|
+
| TrueConf Server Version | Library Version |
|
|
103
|
+
|:------------------------|:-----------------------------------------|
|
|
104
|
+
| < 5.5.0 | ❌ Not supported |
|
|
105
|
+
| 5.5.0 — 5.5.2 | v1.1.x |
|
|
106
|
+
| 5.5.3 — 5.5.5 | v1.2.1-1.4.x |
|
|
107
|
+
| >= 5.5.6 | v1.4.x — compatible / **v1.5.0+** — full support |
|
|
108
|
+
|
|
109
|
+
> [!NOTE]
|
|
110
|
+
> v1.4.x works with TrueConf Server 5.5.6 for basic messaging (new API fields are simply ignored). **v1.5.0+ is required** to use the new 5.5.6 features: inline buttons, chat activity, voice messages, `message.chat` and `reply_message`. Note that v1.4.x cannot parse voice messages (type 205) — such updates are dropped.
|
|
107
111
|
|
|
108
112
|
## 📌 Key Features
|
|
109
113
|
|
|
@@ -58,12 +58,15 @@ uv add python-trueconf-bot
|
|
|
58
58
|
|
|
59
59
|
## 📦 Version Compatibility
|
|
60
60
|
|
|
61
|
-
| TrueConf Server Version |
|
|
62
|
-
|
|
63
|
-
| < 5.5.0 | ❌ Not supported
|
|
64
|
-
| 5.5.0 — 5.5.2 | v1.1.x
|
|
65
|
-
| 5.5.3 — 5.5.5 | v1.2.1-1.4.x
|
|
66
|
-
| >= 5.5.6 | **v1.5.0
|
|
61
|
+
| TrueConf Server Version | Library Version |
|
|
62
|
+
|:------------------------|:-----------------------------------------|
|
|
63
|
+
| < 5.5.0 | ❌ Not supported |
|
|
64
|
+
| 5.5.0 — 5.5.2 | v1.1.x |
|
|
65
|
+
| 5.5.3 — 5.5.5 | v1.2.1-1.4.x |
|
|
66
|
+
| >= 5.5.6 | v1.4.x — compatible / **v1.5.0+** — full support |
|
|
67
|
+
|
|
68
|
+
> [!NOTE]
|
|
69
|
+
> v1.4.x works with TrueConf Server 5.5.6 for basic messaging (new API fields are simply ignored). **v1.5.0+ is required** to use the new 5.5.6 features: inline buttons, chat activity, voice messages, `message.chat` and `reply_message`. Note that v1.4.x cannot parse voice messages (type 205) — such updates are dropped.
|
|
67
70
|
|
|
68
71
|
## 📌 Key Features
|
|
69
72
|
|
|
@@ -60,12 +60,15 @@ uv add python-trueconf-bot
|
|
|
60
60
|
|
|
61
61
|
## 📦 Совместимость версий
|
|
62
62
|
|
|
63
|
-
| Версия сервера TrueConf |
|
|
64
|
-
|
|
65
|
-
| < 5.5.0 | ❌ Не поддерживается
|
|
66
|
-
| 5.5.0 — 5.5.2 | v1.1.x
|
|
67
|
-
| 5.5.3 — 5.5.5 | v1.2.1-1.4.x
|
|
68
|
-
| >= 5.5.6 | **v1.5.0
|
|
63
|
+
| Версия сервера TrueConf | Версия библиотеки |
|
|
64
|
+
|:------------------------|:-----------------------------------------------|
|
|
65
|
+
| < 5.5.0 | ❌ Не поддерживается |
|
|
66
|
+
| 5.5.0 — 5.5.2 | v1.1.x |
|
|
67
|
+
| 5.5.3 — 5.5.5 | v1.2.1-1.4.x |
|
|
68
|
+
| >= 5.5.6 | v1.4.x — совместима / **v1.5.0+** — полная поддержка |
|
|
69
|
+
|
|
70
|
+
> [!NOTE]
|
|
71
|
+
> v1.4.x работает с TrueConf Server 5.5.6 для базовых сценариев обмена сообщениями (новые поля API просто игнорируются). **v1.5.0+ обязательна** для использования новых функций 5.5.6: инлайн-кнопки, chat activity, голосовые сообщения, `message.chat` и `reply_message`. Обратите внимание: v1.4.x не может разобрать голосовые сообщения (тип 205) — такие апдейты отбрасываются.
|
|
69
72
|
|
|
70
73
|
## 📌 Ключевые возможности
|
|
71
74
|
|
|
@@ -62,12 +62,15 @@ uv add python-trueconf-bot
|
|
|
62
62
|
|
|
63
63
|
## 📦 Version Compatibility
|
|
64
64
|
|
|
65
|
-
| TrueConf Server Version |
|
|
66
|
-
|
|
67
|
-
| < 5.5.0 | ❌ Not supported
|
|
68
|
-
| 5.5.0 — 5.5.2 | v1.1.x
|
|
69
|
-
| 5.5.3 — 5.5.5 | v1.2.1-1.4.x
|
|
70
|
-
| >= 5.5.6 | **v1.5.0
|
|
65
|
+
| TrueConf Server Version | Library Version |
|
|
66
|
+
|:------------------------|:-----------------------------------------|
|
|
67
|
+
| < 5.5.0 | ❌ Not supported |
|
|
68
|
+
| 5.5.0 — 5.5.2 | v1.1.x |
|
|
69
|
+
| 5.5.3 — 5.5.5 | v1.2.1-1.4.x |
|
|
70
|
+
| >= 5.5.6 | v1.4.x — compatible / **v1.5.0+** — full support |
|
|
71
|
+
|
|
72
|
+
> [!NOTE]
|
|
73
|
+
> v1.4.x works with TrueConf Server 5.5.6 for basic messaging (new API fields are simply ignored). **v1.5.0+ is required** to use the new 5.5.6 features: inline buttons, chat activity, voice messages, `message.chat` and `reply_message`. Note that v1.4.x cannot parse voice messages (type 205) — such updates are dropped.
|
|
71
74
|
|
|
72
75
|
## 📌 Key Features
|
|
73
76
|
|
|
@@ -36,13 +36,14 @@ classifiers = [
|
|
|
36
36
|
"Programming Language :: Python :: 3.11",
|
|
37
37
|
"Programming Language :: Python :: 3.12",
|
|
38
38
|
"Programming Language :: Python :: 3.13",
|
|
39
|
+
"Programming Language :: Python :: 3.14",
|
|
39
40
|
"Topic :: Software Development :: Libraries :: Python Modules",
|
|
40
41
|
"Topic :: Communications :: Chat",
|
|
41
42
|
]
|
|
42
43
|
|
|
43
44
|
dependencies = [
|
|
44
45
|
"websockets",
|
|
45
|
-
"httpx2>=2.
|
|
46
|
+
"httpx2>=2.7.0",
|
|
46
47
|
"mashumaro>=3.23",
|
|
47
48
|
"aiofiles",
|
|
48
49
|
"magic-filter",
|
{python_trueconf_bot-1.5.1 → 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
|
|
@@ -18,13 +18,14 @@ Classifier: Programming Language :: Python :: 3.10
|
|
|
18
18
|
Classifier: Programming Language :: Python :: 3.11
|
|
19
19
|
Classifier: Programming Language :: Python :: 3.12
|
|
20
20
|
Classifier: Programming Language :: Python :: 3.13
|
|
21
|
+
Classifier: Programming Language :: Python :: 3.14
|
|
21
22
|
Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
|
22
23
|
Classifier: Topic :: Communications :: Chat
|
|
23
24
|
Requires-Python: >=3.10
|
|
24
25
|
Description-Content-Type: text/markdown
|
|
25
26
|
License-File: LICENSE
|
|
26
27
|
Requires-Dist: websockets
|
|
27
|
-
Requires-Dist: httpx2>=2.
|
|
28
|
+
Requires-Dist: httpx2>=2.7.0
|
|
28
29
|
Requires-Dist: mashumaro>=3.23
|
|
29
30
|
Requires-Dist: aiofiles
|
|
30
31
|
Requires-Dist: magic-filter
|
|
@@ -98,12 +99,15 @@ uv add python-trueconf-bot
|
|
|
98
99
|
|
|
99
100
|
## 📦 Version Compatibility
|
|
100
101
|
|
|
101
|
-
| TrueConf Server Version |
|
|
102
|
-
|
|
103
|
-
| < 5.5.0 | ❌ Not supported
|
|
104
|
-
| 5.5.0 — 5.5.2 | v1.1.x
|
|
105
|
-
| 5.5.3 — 5.5.5 | v1.2.1-1.4.x
|
|
106
|
-
| >= 5.5.6 | **v1.5.0
|
|
102
|
+
| TrueConf Server Version | Library Version |
|
|
103
|
+
|:------------------------|:-----------------------------------------|
|
|
104
|
+
| < 5.5.0 | ❌ Not supported |
|
|
105
|
+
| 5.5.0 — 5.5.2 | v1.1.x |
|
|
106
|
+
| 5.5.3 — 5.5.5 | v1.2.1-1.4.x |
|
|
107
|
+
| >= 5.5.6 | v1.4.x — compatible / **v1.5.0+** — full support |
|
|
108
|
+
|
|
109
|
+
> [!NOTE]
|
|
110
|
+
> v1.4.x works with TrueConf Server 5.5.6 for basic messaging (new API fields are simply ignored). **v1.5.0+ is required** to use the new 5.5.6 features: inline buttons, chat activity, voice messages, `message.chat` and `reply_message`. Note that v1.4.x cannot parse voice messages (type 205) — such updates are dropped.
|
|
107
111
|
|
|
108
112
|
## 📌 Key Features
|
|
109
113
|
|
{python_trueconf_bot-1.5.1 → 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,
|