* Added "startapp" deep link support
* Remove link_type param, added create_startapp_link method
* Write tests for create_startapp_link method
* Refactor with black & isort
* Added CHANGELOG
* Added support of direct mini app links
* Added CHANGELOG
* Update translation files with new creation dates.
This update includes newly added and corrected translation entries for various .po files in the Ukrainian locale. It ensures consistency with updated source files and aligns with the latest Telegram bot API changes.
* Update Ukrainian documentation translation
* Added "startapp" deep link support
* Remove link_type param, added create_startapp_link method
* Write tests for create_startapp_link method
* Refactor with black & isort
* Added CHANGELOG
* Refactor: Introduce Union types for streamlined type handling
Implemented Union types across various modules to consolidate and simplify type annotations. This change replaces repetitive union declarations with reusable Union aliases, improving code readability and maintainability. Updates applied to affected classes, methods, and imports accordingly.
* Refactor unions into type aliases for better reusability
Replaced inline `Union` types with predefined aliases like `MediaUnion`, `ReplyMarkupUnion`, and `ChatIdUnion`. Simplifies type annotations, improves code readability, and reduces duplication. Added `media_union.py` for grouping related media types.
* Refactor type unions with ResultChatMemberUnion and ResultMenuButtonUnion
Replaced verbose type definitions of chat member and menu button unions with `ResultChatMemberUnion` and `ResultMenuButtonUnion` for improved readability and maintainability. Updated relevant methods, modules, and documentation to use the new type aliases consistently.
* Added changelog
* Add TypedDict support for middleware context data
Introduced `MiddlewareData` and associated TypedDicts to type-hint middleware context data. Updated documentation to include usage examples and guidelines for extending the default middleware data. Also adjusted coverage configuration to exclude the new data module.
* Added more docstrings
* Typo fixes
* Fix handler registration order in `Scene`
Previously, `Scene` handlers were registered based on the sorted output of `inspect.getmembers`, causing incorrect execution order. Now, handlers are registered in the order they are defined in the class, ensuring reliable behavior and proper sequence when handling filters with varying specificity. Added test cases to validate the correct handler ordering.
* Add dynamic dataclass and class attribute resolvers
Introduced `dataclass_kwargs` to ensure compatibility with different Python versions and modular attribute handling. Added utilities for resolving class attributes dynamically, enhancing flexibility with MRO-based resolvers. Updated tests to verify new features and ensure proper functionality across various scenarios.
* Update changelog
* Add business_connection_id to message API methods
Integrated the business_connection_id attribute into various message manipulation methods, ensuring consistent data handling. This update eliminates the need to pass the business_connection_id as a parameter, instead directly accessing it from the instance attributes.
* Added changelog
* Add function `get_value` to all built-in storage implementations, `FSMContext` and `SceneWizard` (#1431)
* Fix type hints
* Split up return statements in `get_value` functions
* Implement `get_value` method in `BaseStorage` and remove redundant implementations
* Try to enable tests on Python 3.13
* Remove support for Python 3.8 and PyPy 3.8
Dropped Python 3.8 and PyPy 3.8 from the CI workflow and updated the minimum required Python version to 3.9 in pyproject.toml. Also updated dependencies and tools to align with the new minimum Python version.
* Added changelog
* Reformat code
* Bump mypy python version
* #1583 Improved Scene handler and action inheritance mechanism
Enhanced the inheritance of handlers and actions in scenes. Refactored to eliminate the copying of previously connected handlers and actions from parent scenes. Now, handlers are dynamically rebuilt based on the current class, properly utilizing class inheritance and enabling handler overrides.
* Added more tests
* Added more tests for non-function handlers
Add new version details to CHANGES.rst and update __meta__.py. Removed individual CHANGES/* feature and bugfix files, merging their content into the main CHANGES.rst.
* #1579 Fixed `Default` object annotation resolution in `pydantic` models. Reformat code.
* Bump mongo and Redis dependencies
* Update pydantic version constraints based on Python version
Adjusted the version constraints for the pydantic library in `pyproject.toml` to ensure compatibility with different Python versions. This helps maintain stability and compatibility across various development environments.
* Adjust version
* Fixed typo
* feature: add aliases for InaccessibleMessage type
* add changelog
* fix changelog
* remove methods that may not be accessible for the InaccessibleMessage type, add tests
* apply black isort
* update docs with InaccessibleMessage aliases
* Bump to the latest schema
* Added full support ob Bot API 7.10
* Add support for purchased paid media events
Enhanced the router to include `purchased_paid_media` handling. Added corresponding test cases to verify the new functionality and updated middleware to return the appropriate `EventContext`.
* Added changelog
* #1543 Fixed link preview options to use global defaults
Refactor various classes to use global defaults for `link_preview_options`. This change ensures consistency and enhances flexibility in handling link preview options across different components.
* Added changelog
* Added message_thread_id to url of chats with topics for message.get_url() (#1451)
* Added tests for message.get_url()
* Added tests for message.get_url()
* Changed tests for message.get_url()
* Added full support of Bot API 7.8
* Added changelog
* Try to fix tests on Windows
* scope=session?
* Try another way
* Just try to set custom event loop policy manually
* Revert "Just try to set custom event loop policy manually"
This reverts commit 04ee60d878.
* Just try to set custom event loop policy manually