This is the technical changelog for version 21.5. More elaborate release notes can be found in the news channel @pythontelegrambotchannel <https://t.me/pythontelegrambotchannel>_.
Major Changes
Full Support for Bot API 7.9 (:pr:4429)
Full Support for Bot API 7.8 (:pr:4408)
New Features
Add MessageEntity.shift_entities and MessageEntity.concatenate (:pr:4376 closes :issue:4372)
Add Parameter game_pattern to CallbackQueryHandler (:pr:4353 by jainamoswal <https://github.com/jainamoswal>_ closes :issue:4269)
Add Parameter read_file_handle to InputFile (:pr:4388 closes :issue:4339)
Documentation Improvements
Bugfix for "Available In" Admonitions (:pr:4413)
Documentation Improvements (:pr:4400 closes :issue:4446, :pr:4448 by Palaptin <https://github.com/Palaptin>_)
Document Return Types of RequestData Members (:pr:4396)
Add Introductory Paragraphs to Telegram Types Subsections (:pr:4389 by mohdyusuf2312 <https://github.com/mohdyusuf2312>_ closes :issue:4380)
Start Adapting to RTD Addons (:pr:4386)
Minor and Internal Changes
Remove Surplus Logging from Updater Network Loop (:pr:4432 by MartinHjelmare <https://github.com/MartinHjelmare>_)
Add Internal Constants for Encodings (:pr:4378 by elpekenin <https://github.com/elpekenin>_)
[orm] [usecase] The _orm.aliased.name parameter to _orm.aliased() may now
be combined with the _orm.aliased.flat parameter, producing
per-table names based on a name-prefixed naming convention. Pull request
courtesy Eric Atkin.
[orm] [bug] [regression] Fixed regression going back to 1.4 where accessing a collection using the
"dynamic" strategy on a transient object and attempting to query would
raise an internal error rather than the expected NoResultFound
that occurred in 1.3.
[orm] [bug] Fixed issue where using the _orm.Query.enable_eagerloads() and
_orm.Query.yield_per() methods at the same time, in order to disable
eager loading that's configured on the mapper directly, would be silently
ignored, leading to errors or unexpected eager population of attributes.
[orm] [bug] [regression] Fixed regression appearing in 2.0.21 caused by #10279 where using
a _sql.delete() or _sql.update() against an ORM class that is
the base of an inheritance hierarchy, while also specifying that subclasses
should be loaded polymorphically, would leak the polymorphic joins into the
UPDATE or DELETE statement as well creating incorrect SQL.
[flake8-simplify] Extend open-file-with-context-handler to work with dbm.sqlite3 (SIM115) (#13104)
[pycodestyle] Disable E741 in stub files (.pyi) (#13119)
[pydoclint] Avoid DOC201 on explicit returns in functions that only return None (#13064)
Rule changes
[flake8-async] Disable check for asyncio before Python 3.11 (ASYNC109) (#13023)
Bug fixes
[FastAPI] Avoid introducing invalid syntax in fix for fast-api-non-annotated-dependency (FAST002) (#13133)
[flake8-implicit-str-concat] Normalize octals before merging concatenated strings in single-line-implicit-string-concatenation (ISC001) (#13118)
[flake8-pytest-style] Improve help message for pytest-incorrect-mark-parentheses-style (PT023) (#13092)
[pylint] Avoid autofix for calls that aren't min or max as starred expression (PLW3301) (#13089)
[ruff] Add datetime.time, datetime.tzinfo, and datetime.timezone as immutable function calls (RUF009) (#13109)
[ruff] Extend comment deletion for RUF100 to include trailing text from noqa directives while preserving any following comments on the same line, if any (#13105)
Fix dark theme on initial page load for the Ruff playground (#13077)
[flake8-simplify] Extend open-file-with-context-handler to work with dbm.sqlite3 (SIM115) (#13104)
[pycodestyle] Disable E741 in stub files (.pyi) (#13119)
[pydoclint] Avoid DOC201 on explicit returns in functions that only return None (#13064)
Rule changes
[flake8-async] Disable check for asyncio before Python 3.11 (ASYNC109) (#13023)
Bug fixes
[FastAPI] Avoid introducing invalid syntax in fix for fast-api-non-annotated-dependency (FAST002) (#13133)
[flake8-implicit-str-concat] Normalize octals before merging concatenated strings in single-line-implicit-string-concatenation (ISC001) (#13118)
[flake8-pytest-style] Improve help message for pytest-incorrect-mark-parentheses-style (PT023) (#13092)
[pylint] Avoid autofix for calls that aren't min or max as starred expression (PLW3301) (#13089)
[ruff] Add datetime.time, datetime.tzinfo, and datetime.timezone as immutable function calls (RUF009) (#13109)
[ruff] Extend comment deletion for RUF100 to include trailing text from noqa directives while preserving any following comments on the same line, if any (#13105)
Fix dark theme on initial page load for the Ruff playground (#13077)
0.6.2
Preview features
[flake8-simplify] Extend open-file-with-context-handler to work with other standard-library IO modules (SIM115) (#12959)
[ruff] Avoid unused-async for functions with FastAPI route decorator (RUF029) (#12938)
[ruff] Ignore fstring-missing-syntax (RUF027) for fastAPI paths (#12939)
[ruff] Implement check for Decimal called with a float literal (RUF032) (#12909)
Rule changes
[flake8-bugbear] Update diagnostic message when expression is at the end of function (B015) (#12944)
[flake8-pyi] Skip type annotations in string-or-bytes-too-long (PYI053) (#13002)
[flake8-type-checking] Always recognise relative imports as first-party (#12994)
[flake8-unused-arguments] Ignore unused arguments on stub functions (ARG001) (#12966)
[pylint] Ignore augmented assignment for self-cls-assignment (PLW0642) (#12957)
[pep8-naming] Don't flag from imports following conventional import names (N817) (#12946)
[pylint] - Allow __new__ methods to have cls as their first argument even if decorated with @staticmethod for bad-staticmethod-argument (PLW0211) (#12958)
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot show ignore conditions` will show all of the ignore conditions of the specified dependency
- `@dependabot ignore major version` will close this group update PR and stop Dependabot creating any more for the specific dependency's major version (unless you unignore this specific dependency's major version or upgrade to it yourself)
- `@dependabot ignore minor version` will close this group update PR and stop Dependabot creating any more for the specific dependency's minor version (unless you unignore this specific dependency's minor version or upgrade to it yourself)
- `@dependabot ignore ` will close this group update PR and stop Dependabot creating any more for the specific dependency (unless you unignore this specific dependency or upgrade to it yourself)
- `@dependabot unignore ` will remove all of the ignore conditions of the specified dependency
- `@dependabot unignore ` will remove the ignore condition of the specified dependency and ignore conditions
Bumps the python group with 6 updates:
3.10.2
3.11.0
21.4
21.5
2.12.0
2.13.0
2.0.31
2.0.32
0.12.3
0.12.5
0.5.5
0.6.3
Updates
prettytable
from 3.10.2 to 3.11.0Release notes
Sourced from prettytable's releases.
Commits
cb498ad
Attest build provenance of artifacts (#308)5fb898f
Add field selection to CSV and JSON outputs (#307)e26318f
Makerows
arg ofhelper_table
into keyword arg (#306)467dcc3
Add escaping options to HTML tables (#305)Updates
python-telegram-bot
from 21.4 to 21.5Release notes
Sourced from python-telegram-bot's releases.
Changelog
Sourced from python-telegram-bot's changelog.
... (truncated)
Commits
8c692d1
Bump Version to v21.5 (#4449)970d2ab
Documentation Improvements (#4400, #4448)60b439f
Updatecachetools
requirement from <5.5.0,>=5.3.3 to >=5.3.3,<5.6.0 (#4437)b17b0d2
Improve PyPI Automation (#4375)e0f3686
AddMessageEntity.shift_entities
andMessageEntity.concatenate
(#4376)01f6893
Bot API 7.9 (#4429)1e05381
Update Test Suite to New Test Channel Setup (#4435)a05362c
Remove Surplus Logging fromUpdater
Network Loop (#4432)fbf07bf
Improve Fixture Usage intest_message.py
(#4431)3017bf0
Update Python 3.13 Test Suite to RC1 (#4415)Updates
sentry-sdk
from 2.12.0 to 2.13.0Release notes
Sourced from sentry-sdk's releases.
... (truncated)
Changelog
Sourced from sentry-sdk's changelog.
... (truncated)
Commits
570307c
Updated changelog4c1ea7a
release: 2.13.017a6cf0
feat: Add ray integration support (#2400) (#2444)4858996
Expose custom_repr function that precedes safe_repr invocation in serializer ...275c63e
ref(sessions): Deprecate hub-basedsessions.py
logic (#3419)6a4e729
ref(sessions): Deprecateis_auto_session_tracking_enabled
(#3428)a6cb9b1
Add note to generated yaml files (#3423)19c4069
test(sessions): Remove unnecessary line (#3418)da0392f
Dramatiq integration from@jacobsvante
(#3397)7d46709
Serialize vars early to avoid living references (#3409)Updates
sqlalchemy
from 2.0.31 to 2.0.32Release notes
Sourced from sqlalchemy's releases.
... (truncated)
Commits
Updates
typer
from 0.12.3 to 0.12.5Release notes
Sourced from typer's releases.
... (truncated)
Changelog
Sourced from typer's changelog.
... (truncated)
Commits
88aefd4
🔖 Release version 0.12.53ac3644
📝 Update release notesd93c0ac
🔨 Pre-install dependencies in Docker so that testing in Docker is faster (#954)a337850
📝 Update release notesa5b7557
✅ Addneeds_bash
test fixture (#888)6cc1f9a
📝 Update release notesfc2c54f
🐛 Ensurerich_markup_mode=None
disables Rich formatting (#859)f17bb06
📝 Update release notesafac2b8
🐛 Fix sourcing of completion path for Git Bash (#801)6b35a70
📝 Update release notesUpdates
ruff
from 0.5.5 to 0.6.3Release notes
Sourced from ruff's releases.
... (truncated)
Changelog
Sourced from ruff's changelog.
... (truncated)
Commits
ee258ca
Bump version to 0.6.3 (#13152)b4d9d26
Update faq.md to highlight changes to src (#13145)a998320
[ruff
] - extend comment deletions for unused-noqa (RUF100
) (#13105)770ef2a
[red-knot] support deferred evaluation of type expressions (#13131)c6023c0
[red-knot] Add docs on usingRAYON_NUM_THREADS
for better logging (#13140)df694ca
[FastAPI
] Avoid introducing invalid syntax in fix for `fast-api-non-annotat...2e75cfb
FormatPYI
examples in docs as.pyi
-file snippets (#13116)cfafaa7
[red-knot] Remove very noisy tracing call when resolvingImportFrom
stateme...3e9c7ad
Replace crates by dependi for VS Code Dev Container (#13125)81cd438
red-knot: infer and display ellipsis type (#13124)Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting
@dependabot rebase
.Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show