Back to Python Telegram Bot

Version 21.11.1

changes/LEGACY.rst

22.799.6 KB
Original Source

Version 21.11.1

Released 2025-03-01

This is the technical changelog for version 21.11. More elaborate release notes can be found in the news channel @pythontelegrambotchannel <https://t.me/pythontelegrambotchannel>_.

Documentation Improvements

  • Fix ReadTheDocs Build (:pr:4695)

Version 21.11

Released 2025-03-01

This is the technical changelog for version 21.11. More elaborate release notes can be found in the news channel @pythontelegrambotchannel <https://t.me/pythontelegrambotchannel>_.

Major Changes and New Features

  • Full Support for Bot API 8.3 (:pr:4676 closes :issue:4677, :pr:4682 by aelkheir <https://github.com/aelkheir>, :pr:4690 by aelkheir <https://github.com/aelkheir>, :pr:4691 by aelkheir <https://github.com/aelkheir>_)
  • Make provider_token Argument Optional (:pr:4689)
  • Remove Deprecated InlineQueryResultArticle.hide_url (:pr:4640 closes :issue:4638)
  • Accept datetime.timedelta Input in Bot Method Parameters (:pr:4651)
  • Extend Customization Support for Bot.base_(file_)url (:pr:4632 closes :issue:3355)
  • Support allow_paid_broadcast in AIORateLimiter (:pr:4627 closes :issue:4578)
  • Add BaseUpdateProcessor.current_concurrent_updates (:pr:4626 closes :issue:3984)

Minor Changes and Bug Fixes

  • Add Bootstrapping Logic to Application.run_* (:pr:4673 closes :issue:4657)
  • Fix a Bug in edit_user_star_subscription (:pr:4681 by vavasik800 <https://github.com/vavasik800>_)
  • Simplify Handling of Empty Data in TelegramObject.de_json and Friends (:pr:4617 closes :issue:4614)

Documentation Improvements

  • Documentation Improvements (:pr:4641)
  • Overhaul Admonition Insertion in Documentation (:pr:4462 closes :issue:4414)

Internal Changes

  • Stabilize Linkcheck Test (:pr:4693)
  • Bump pre-commit Hooks to Latest Versions (:pr:4643)
  • Refactor Tests for TelegramObject Classes with Subclasses (:pr:4654 closes :issue:4652)
  • Use Fine Grained Permissions for GitHub Actions Workflows (:pr:4668)

Dependency Updates

  • Bump actions/setup-python from 5.3.0 to 5.4.0 (:pr:4665)
  • Bump dependabot/fetch-metadata from 2.2.0 to 2.3.0 (:pr:4666)
  • Bump actions/stale from 9.0.0 to 9.1.0 (:pr:4667)
  • Bump astral-sh/setup-uv from 5.1.0 to 5.2.2 (:pr:4664)
  • Bump codecov/test-results-action from 1.0.1 to 1.0.2 (:pr:4663)

Version 21.10

Released 2025-01-03

This is the technical changelog for version 21.10. More elaborate release notes can be found in the news channel @pythontelegrambotchannel <https://t.me/pythontelegrambotchannel>_.

Major Changes

  • Full Support for Bot API 8.2 (:pr:4633)
  • Bump apscheduler & Deprecate pytz Support (:pr:4582)

New Features

  • Add Parameter pattern to JobQueue.jobs() (:pr:4613 closes :issue:4544)
  • Allow Input of Type Sticker for Several Methods (:pr:4616 closes :issue:4580)

Bug Fixes

  • Ensure Forward Compatibility of Gift and Gifts (:pr:4634 closes :issue:4637)

Documentation Improvements & Internal Changes

  • Use Custom Labels for dependabot PRs (:pr:4621)
  • Remove Redundant pylint Suppressions (:pr:4628)
  • Update Copyright to 2025 (:pr:4631)
  • Refactor Module Structure and Tests for Star Payments Classes (:pr:4615 closes :issue:4593)
  • Unify datetime Imports (:pr:4605 by cuevasrja <https://github.com/cuevasrja>_ closes :issue:4577)
  • Add Static Security Analysis of GitHub Actions Workflows (:pr:4606)

Dependency Updates

  • Bump astral-sh/setup-uv from 4.2.0 to 5.1.0 (:pr:4625)
  • Bump codecov/codecov-action from 5.1.1 to 5.1.2 (:pr:4622)
  • Bump actions/upload-artifact from 4.4.3 to 4.5.0 (:pr:4623)
  • Bump github/codeql-action from 3.27.9 to 3.28.0 (:pr:4624)

Version 21.9

Released 2024-12-07

This is the technical changelog for version 21.9. More elaborate release notes can be found in the news channel @pythontelegrambotchannel <https://t.me/pythontelegrambotchannel>_.

Major Changes

  • Full Support for Bot API 8.1 (:pr:4594 closes :issue:4592)

Minor Changes

  • Use MessageLimit.DEEP_LINK_LENGTH in helpers.create_deep_linked_url (:pr:4597 by nemacysts <https://github.com/nemacysts>_)
  • Allow Sequence Input for allowed_updates in Application and Updater Methods (:pr:4589 by nemacysts <https://github.com/nemacysts>_)

Dependency Updates

  • Update aiolimiter requirement from ~=1.1.0 to >=1.1,<1.3 (:pr:4595)
  • Bump pytest from 8.3.3 to 8.3.4 (:pr:4596)
  • Bump codecov/codecov-action from 4 to 5 (:pr:4585)
  • Bump pylint to v3.3.2 to Improve Python 3.13 Support (:pr:4590 by nemacysts <https://github.com/nemacysts>_)
  • Bump srvaroa/labeler from 1.11.1 to 1.12.0 (:pr:4586)

Version 21.8

Released 2024-12-01

This is the technical changelog for version 21.8. More elaborate release notes can be found in the news channel @pythontelegrambotchannel <https://t.me/pythontelegrambotchannel>_.

Major Changes

  • Full Support for Bot API 8.0 (:pr:4568, :pr:4566 closes :issue:4567, :pr:4572, :pr:4571, :pr:4570, :pr:4576, :pr:4574)

Documentation Improvements

  • Documentation Improvements (:pr:4565 by Snehashish06, :pr:4573)

Version 21.7

Released 2024-11-04

This is the technical changelog for version 21.7. More elaborate release notes can be found in the news channel @pythontelegrambotchannel <https://t.me/pythontelegrambotchannel>_.

Major Changes

  • Full Support for Bot API 7.11 (:pr:4546 closes :issue:4543)
  • Add Message.reply_paid_media (:pr:4551)
  • Drop Support for Python 3.8 (:pr:4398 by elpekenin <https://github.com/elpekenin>_)

Minor Changes

  • Allow Sequence in Application.add_handlers (:pr:4531 by roast-lord <https://github.com/roast-lord>_ closes :issue:4530)
  • Improve Exception Handling in File.download_* (:pr:4542)
  • Use Stable Python 3.13 Release in Test Suite (:pr:4535)

Documentation Improvements

  • Documentation Improvements (:pr:4536 by Ecode2 <https://github.com/Ecode2>_, :pr:4556)
  • Fix Linkcheck Workflow (:pr:4545)
  • Use sphinx-build-compatibility to Keep Sphinx Compatibility (:pr:4492)

Internal Changes

  • Improve Test Instability Caused by Message Fixtures (:pr:4507)
  • Stabilize Some Flaky Tests (:pr:4500)
  • Reduce Creation of HTTP Clients in Tests (:pr:4493)
  • Update pytest-xdist Usage (:pr:4491)
  • Fix Failing Tests by Making Them Independent (:pr:4494)
  • Introduce Codecov's Test Analysis (:pr:4487)
  • Maintenance Work on Bot Tests (:pr:4489)
  • Introduce conftest.py for File Related Tests (:pr:4488)
  • Update Issue Templates to Use Issue Types (:pr:4553)
  • Update Automation to Label Changes (:pr:4552)

Dependency Updates

  • Bump srvaroa/labeler from 1.11.0 to 1.11.1 (:pr:4549)
  • Bump sphinx from 8.0.2 to 8.1.3 (:pr:4532)
  • Bump sphinxcontrib-mermaid from 0.9.2 to 1.0.0 (:pr:4529)
  • Bump srvaroa/labeler from 1.10.1 to 1.11.0 (:pr:4509)
  • Bump Bibo-Joshi/pyright-type-completeness from 1.0.0 to 1.0.1 (:pr:4510)

Version 21.6

Released 2024-09-19

This is the technical changelog for version 21.6. More elaborate release notes can be found in the news channel @pythontelegrambotchannel <https://t.me/pythontelegrambotchannel>_.

New Features

  • Full Support for Bot API 7.10 (:pr:4461 closes :issue:4459, :pr:4460, :pr:4463 by aelkheir <https://github.com/aelkheir>_, :pr:4464)
  • Add Parameter httpx_kwargs to HTTPXRequest (:pr:4451 closes :issue:4424)

Minor Changes

  • Improve Type Completeness (:pr:4466)

Internal Changes

  • Update Python 3.13 Test Suite to RC2 (:pr:4471)
  • Enforce the offline_bot Fixture in Test*WithoutRequest (:pr:4465)
  • Make Tests for telegram.ext Independent of Networking (:pr:4454)
  • Rename Testing Base Classes (:pr:4453)

Dependency Updates

  • Bump pytest from 8.3.2 to 8.3.3 (:pr:4475)

Version 21.5

Released 2024-09-01

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>_)
  • Improve PyPI Automation (:pr:4375 closes :issue:4373)
  • Update Test Suite to New Test Channel Setup (:pr:4435)
  • Improve Fixture Usage in test_message.py (:pr:4431 by Palaptin <https://github.com/Palaptin>_)
  • Update Python 3.13 Test Suite to RC1 (:pr:4415)
  • Bump ruff and Add New Rules (:pr:4416)

Dependency Updates

  • Update cachetools requirement from <5.5.0,>=5.3.3 to >=5.3.3,<5.6.0 (:pr:4437)
  • Bump sphinx from 7.4.7 to 8.0.2 and furo from 2024.7.18 to 2024.8.6 (:pr:4412)
  • Bump test-summary/action from 2.3 to 2.4 (:pr:4410)
  • Bump pytest from 8.2.2 to 8.3.2 (:pr:4403)
  • Bump dependabot/fetch-metadata from 2.1.0 to 2.2.0 (:pr:4411)
  • Update cachetools requirement from ~=5.3.3 to >=5.3.3,<5.5.0 (:pr:4390)
  • Bump sphinx from 7.3.7 to 7.4.7 (:pr:4395)
  • Bump furo from 2024.5.6 to 2024.7.18 (:pr:4392)

Version 21.4

Released 2024-07-12

This is the technical changelog for version 21.4. More elaborate release notes can be found in the news channel @pythontelegrambotchannel <https://t.me/pythontelegrambotchannel>_.

Major Changes

  • Full Support for Bot API 7.5 (:pr:4328, :pr:4316, :pr:4315, :pr:4312 closes :issue:4310, :pr:4311)
  • Full Support for Bot API 7.6 (:pr:4333 closes :issue:4331, :pr:4344, :pr:4341, :pr:4334, :pr:4335, :pr:4351, :pr:4342, :pr:4348)
  • Full Support for Bot API 7.7 (:pr:4356 closes :issue:4355)
  • Drop python-telegram-bot-raw And Switch to pyproject.toml Based Packaging (:pr:4288 closes :issue:4129 and :issue:4296)
  • Deprecate Inclusion of successful_payment in Message.effective_attachment (:pr:4365 closes :issue:4350)

New Features

  • Add Support for Python 3.13 Beta (:pr:4253)
  • Add filters.PAID_MEDIA (:pr:4357)
  • Log Received Data on Deserialization Errors (:pr:4304)
  • Add MessageEntity.adjust_message_entities_to_utf_16 Utility Function (:pr:4323 by Antares0982 <https://github.com/Antares0982>_ closes :issue:4319)
  • Make Argument bot of TelegramObject.de_json Optional (:pr:4320)

Documentation Improvements

  • Documentation Improvements (:pr:4303 closes :issue:4301)
  • Restructure Readme (:pr:4362)
  • Fix Link-Check Workflow (:pr:4332)

Internal Changes

  • Automate PyPI Releases (:pr:4364 closes :issue:4318)
  • Add mise-en-place to .gitignore (:pr:4300)
  • Use a Composite Action for Testing Type Completeness (:pr:4367)
  • Stabilize Some Concurrency Usages in Test Suite (:pr:4360)
  • Add a Test Case for MenuButton (:pr:4363)
  • Extend SuccessfulPayment Test (:pr:4349)
  • Small Fixes for test_stars.py (:pr:4347)
  • Use Python 3.13 Beta 3 in Test Suite (:pr:4336)

Dependency Updates

  • Bump ruff and Add New Rules (:pr:4329)
  • Bump pre-commit Hooks to Latest Versions (:pr:4337)
  • Add Lower Bound for flaky Dependency (:pr:4322 by Palaptin <https://github.com/Palaptin>_)
  • Bump pytest from 8.2.1 to 8.2.2 (:pr:4294)

Version 21.3

Released 2024-06-07

This is the technical changelog for version 21.3. More elaborate release notes can be found in the news channel @pythontelegrambotchannel <https://t.me/pythontelegrambotchannel>_.

Major Changes

  • Full Support for Bot API 7.4 (:pr:4286, :pr:4276 closes :issue:4275, :pr:4285, :pr:4283, :pr:4280, :pr:4278, :pr:4279)
  • Deprecate python-telegram-bot-raw (:pr:4270)
  • Remove Functionality Deprecated in Bot API 7.3 (:pr:4266 closes :issue:4244)

New Features

  • Add Parameter chat_id to ChatMemberHandler (:pr:4290 by uniquetrij <https://github.com/uniquetrij>_ closes :issue:4287)

Documentation Improvements

  • Documentation Improvements (:pr:4264 closes :issue:4240)

Internal Changes

  • Add setuptools to requirements-dev.txt (:pr:4282)
  • Update Settings for pre-commit.ci (:pr:4265)

Dependency Updates

  • Bump pytest from 8.2.0 to 8.2.1 (:pr:4272)

Version 21.2

Released 2024-05-20

This is the technical changelog for version 21.2. More elaborate release notes can be found in the news channel @pythontelegrambotchannel <https://t.me/pythontelegrambotchannel>_.

Major Changes

  • Full Support for Bot API 7.3 (:pr:4246, :pr:4260, :pr:4243, :pr:4248, :pr:4242 closes :issue:4236, :pr:4247 by aelkheir <https://github.com/aelkheir>_)
  • Remove Functionality Deprecated by Bot API 7.2 (:pr:4245)

New Features

  • Add Version to PTBDeprecationWarning (:pr:4262 closes :issue:4261)
  • Handle Exceptions in building CallbackContext (:pr:4222)

Bug Fixes

  • Call Application.post_stop Only if Application.stop was called (:pr:4211 closes :issue:4210)
  • Handle SystemExit raised in Handlers (:pr:4157 closes :issue:4155 and :issue:4156)
  • Make Birthdate.to_date Return a datetime.date Object (:pr:4251)

Documentation Improvements

  • Documentation Improvements (:pr:4217)

Internal Changes

  • Add New Rules to ruff Config (:pr:4250)
  • Adapt Test Suite to Changes in Error Messages (:pr:4238)

Dependency Updates

  • Bump furo from 2024.4.27 to 2024.5.6 (:pr:4252)
  • pre-commit autoupdate (:pr:4239)
  • Bump pytest from 8.1.1 to 8.2.0 (:pr:4231)
  • Bump dependabot/fetch-metadata from 2.0.0 to 2.1.0 (:pr:4228)
  • Bump pytest-asyncio from 0.21.1 to 0.21.2 (:pr:4232)
  • Bump pytest-xdist from 3.6.0 to 3.6.1 (:pr:4233)
  • Bump furo from 2024.1.29 to 2024.4.27 (:pr:4230)
  • Bump srvaroa/labeler from 1.10.0 to 1.10.1 (:pr:4227)
  • Bump pytest from 7.4.4 to 8.1.1 (:pr:4218)
  • Bump sphinx from 7.2.6 to 7.3.7 (:pr:4215)
  • Bump pytest-xdist from 3.5.0 to 3.6.0 (:pr:4215)

Version 21.1.1

Released 2024-04-15

This is the technical changelog for version 21.1.1. More elaborate release notes can be found in the news channel @pythontelegrambotchannel <https://t.me/pythontelegrambotchannel>__.

Bug Fixes

  • Fix Bug With Parameter message_thread_id of Message.reply_* (:pr:4207 closes :issue:4205)

Minor Changes

  • Remove Deprecation Warning in JobQueue.run_daily (:pr:4206 by @Konano <https://github.com/Konano>__)
  • Fix Annotation of EncryptedCredentials.decrypted_secret (:pr:4199 by @marinelay <https://github.com/marinelay>__ closes :issue:4198)

Version 21.1

Released 2024-04-12

This is the technical changelog for version 21.1. More elaborate release notes can be found in the news channel @pythontelegrambotchannel <https://t.me/pythontelegrambotchannel>__.

Major Changes

  • API 7.2 (:pr:4180 closes :issue:4179 and :issue:4181, :issue:4181)
  • Make ChatAdministratorRights/ChatMemberAdministrator.can_*_stories Required (API 7.1) (:pr:4192)

Minor Changes

  • Refactor Debug logging in Bot to Improve Type Hinting (:pr:4151 closes :issue:4010)

New Features

  • Make Message.reply_* Reply in the Same Topic by Default (:pr:4170 by @aelkheir <https://github.com/aelkheir>__ closes :issue:4139)
  • Accept Socket Objects for Webhooks (:pr:4161 closes :issue:4078)
  • Add Update.effective_sender (:pr:4168 by @aelkheir <https://github.com/aelkheir>__ closes :issue:4085)

Documentation Improvements

  • Documentation Improvements (:pr:4171, :pr:4158 by @teslaedison <https://github.com/teslaedison>__)

Internal Changes

  • Temporarily Mark Tests with get_sticker_set as XFAIL due to API 7.2 Update (:pr:4190)

Dependency Updates

  • pre-commit autoupdate (:pr:4184)
  • Bump dependabot/fetch-metadata from 1.6.0 to 2.0.0 (:pr:4185)

Version 21.0.1

Released 2024-03-06

This is the technical changelog for version 21.0.1. More elaborate release notes can be found in the news channel @pythontelegrambotchannel <https://t.me/pythontelegrambotchannel>__.

Bug Fixes

  • Remove docs from Package (:pr:4150)

Version 21.0

Released 2024-03-06

This is the technical changelog for version 21.0. More elaborate release notes can be found in the news channel @pythontelegrambotchannel <https://t.me/pythontelegrambotchannel>__.

Major Changes

  • Remove Functionality Deprecated in API 7.0 (:pr:4114 closes :issue:4099)
  • API 7.1 (:pr:4118)

New Features

  • Add Parameter media_write_timeout to HTTPXRequest and Method ApplicationBuilder.media_write_timeout (:pr:4120 closes :issue:3864)
  • Handle Properties in TelegramObject.__setstate__ (:pr:4134 closes :issue:4111)

Bug Fixes

  • Add Missing Slot to Updater (:pr:4130 closes :issue:4127)

Documentation Improvements

  • Improve HTML Download of Documentation (:pr:4146 closes :issue:4050)
  • Documentation Improvements (:pr:4109, :issue:4116)
  • Update Copyright to 2024 (:pr:4121 by @aelkheir <https://github.com/aelkheir>__ closes :issue:4041)

Internal Changes

  • Apply pre-commit Checks More Widely (:pr:4135)
  • Refactor and Overhaul test_official (:pr:4087 closes :issue:3874)
  • Run Unit Tests in PRs on Requirements Changes (:pr:4144)
  • Make Updater.stop Independent of CancelledError (:pr:4126)

Dependency Updates

  • Relax Upper Bound for httpx Dependency (:pr:4148)
  • Bump test-summary/action from 2.2 to 2.3 (:pr:4142)
  • Update cachetools requirement from ~=5.3.2 to ~=5.3.3 (:pr:4141)
  • Update httpx requirement from ~=0.26.0 to ~=0.27.0 (:pr:4131)

Version 20.8

Released 2024-02-08

This is the technical changelog for version 20.8. More elaborate release notes can be found in the news channel @pythontelegrambotchannel <https://t.me/pythontelegrambotchannel>__.

Major Changes

  • API 7.0 (:pr:4034 closes :issue:4033, :pr:4038 by @aelkheir <https://github.com/aelkheir>__)

Minor Changes

  • Fix Type Hint for filters Parameter of MessageHandler (:pr:4039 by @Palaptin <https://github.com/Palaptin>__)
  • Deprecate filters.CHAT (:pr:4083 closes :issue:4062)
  • Improve Error Handling in Built-In Webhook Handler (:pr:3987 closes :issue:3979)

New Features

  • Add Parameter pattern to PreCheckoutQueryHandler and filters.SuccessfulPayment (:pr:4005 by @aelkheir <https://github.com/aelkheir>__ closes :issue:3752)
  • Add Missing Conversions of type to Corresponding Enum from telegram.constants (:pr:4067)
  • Add Support for Unix Sockets to Updater.start_webhook (:pr:3986 closes :issue:3978)
  • Add Bot.do_api_request (:pr:4084 closes :issue:4053)
  • Add AsyncContextManager as Parent Class to BaseUpdateProcessor (:pr:4001)

Documentation Improvements

  • Documentation Improvements (:pr:3919)
  • Add Docstring to Dunder Methods (:pr:3929 closes :issue:3926)
  • Documentation Improvements (:pr:4002, :pr:4079 by @kenjitagawa <https://github.com/kenjitagawa>, :pr:4104 by @xTudoS <https://github.com/xTudoS>)

Internal Changes

  • Drop Usage of DeepSource (:pr:4100)
  • Improve Type Completeness & Corresponding Workflow (:pr:4035)
  • Bump ruff and Remove sort-all (:pr:4075)
  • Move Handler Files to _handlers Subdirectory (:pr:4064 by @lucasmolinari <https://github.com/lucasmolinari>__ closes :issue:4060)
  • Introduce sort-all Hook for pre-commit (:pr:4052)
  • Use Recommended pre-commit Mirror for black (:pr:4051)
  • Remove Unused DEFAULT_20 (:pr:3997)
  • Migrate From setup.cfg to pyproject.toml Where Possible (:pr:4088)

Dependency Updates

  • Bump black and ruff (:pr:4089)
  • Bump srvaroa/labeler from 1.8.0 to 1.10.0 (:pr:4048)
  • Update tornado requirement from ~=6.3.3 to ~=6.4 (:pr:3992)
  • Bump actions/stale from 8 to 9 (:pr:4046)
  • Bump actions/setup-python from 4 to 5 (:pr:4047)
  • pre-commit autoupdate (:pr:4101)
  • Bump actions/upload-artifact from 3 to 4 (:pr:4045)
  • pre-commit autoupdate (:pr:3996)
  • Bump furo from 2023.9.10 to 2024.1.29 (:pr:4094)
  • pre-commit autoupdate (:pr:4043)
  • Bump codecov/codecov-action from 3 to 4 (:pr:4091)
  • Bump EndBug/add-and-commit from 9.1.3 to 9.1.4 (:pr:4090)
  • Update httpx requirement from ~=0.25.2 to ~=0.26.0 (:pr:4024)
  • Bump pytest from 7.4.3 to 7.4.4 (:pr:4056)
  • Bump srvaroa/labeler from 1.7.0 to 1.8.0 (:pr:3993)
  • Bump test-summary/action from 2.1 to 2.2 (:pr:4044)
  • Bump dessant/lock-threads from 4.0.1 to 5.0.1 (:pr:3994)

Version 20.7

Released 2023-11-27

This is the technical changelog for version 20.7. More elaborate release notes can be found in the news channel @pythontelegrambotchannel <https://t.me/pythontelegrambotchannel>__.

New Features

  • Add JobQueue.scheduler_configuration and Corresponding Warnings (:pr:3913 closes :issue:3837)
  • Add Parameter socket_options to HTTPXRequest (:pr:3935 closes :issue:2965)
  • Add ApplicationBuilder.(get_updates_)socket_options (:pr:3943)
  • Improve write_timeout Handling for Media Methods (:pr:3952)
  • Add filters.Mention (:pr:3941 closes :issue:3799)
  • Rename proxy_url to proxy and Allow httpx.{Proxy, URL} as Input (:pr:3939 closes :issue:3844)

Bug Fixes & Changes

  • Adjust read_timeout Behavior for Bot.get_updates (:pr:3963 closes :issue:3893)
  • Improve BaseHandler.__repr__ for Callbacks without __qualname__ (:pr:3934)
  • Fix Persistency Issue with Ended Non-Blocking Conversations (:pr:3962)
  • Improve Type Hinting for Arguments with Default Values in Bot (:pr:3942)

Documentation Improvements

  • Add Documentation for __aenter__ and __aexit__ Methods (:pr:3907 closes :issue:3886)
  • Improve Insertion of Kwargs into Bot Methods (:pr:3965)

Internal Changes

  • Adjust Tests to New Error Messages (:pr:3970)

Dependency Updates

  • Bump pytest-xdist from 3.3.1 to 3.4.0 (:pr:3975)
  • pre-commit autoupdate (:pr:3967)
  • Update httpx requirement from ~=0.25.1 to ~=0.25.2 (:pr:3983)
  • Bump pytest-xdist from 3.4.0 to 3.5.0 (:pr:3982)
  • Update httpx requirement from ~=0.25.0 to ~=0.25.1 (:pr:3961)
  • Bump srvaroa/labeler from 1.6.1 to 1.7.0 (:pr:3958)
  • Update cachetools requirement from ~=5.3.1 to ~=5.3.2 (:pr:3954)
  • Bump pytest from 7.4.2 to 7.4.3 (:pr:3953)

Version 20.6

Released 2023-10-03

This is the technical changelog for version 20.6. More elaborate release notes can be found in the news channel @pythontelegrambotchannel <https://t.me/pythontelegrambotchannel>__.

Major Changes

  • Drop Backward Compatibility Layer Introduced in :pr:3853 (API 6.8) (:pr:3873)
  • Full Support for Bot API 6.9 (:pr:3898)

New Features

  • Add Rich Equality Comparison to WriteAccessAllowed (:pr:3911 closes :issue:3909)
  • Add __repr__ Methods Added in :pr:3826 closes :issue:3770 to Sphinx Documentation (:pr:3901 closes :issue:3889)
  • Add String Representation for Selected Classes (:pr:3826 closes :issue:3770)

Minor Changes

  • Add Support Python 3.12 (:pr:3915)
  • Documentation Improvements (:pr:3910)

Internal Changes

  • Verify Type Hints for Bot Method & Telegram Class Parameters (:pr:3868)
  • Move Bot API Tests to Separate Workflow File (:pr:3912)
  • Fix Failing file_size Tests (:pr:3906)
  • Set Threshold for DeepSource’s PY-R1000 to High (:pr:3888)
  • One-Time Code Formatting Improvement via --preview Flag of black (:pr:3882)
  • Move Dunder Methods to the Top of Class Bodies (:pr:3883)
  • Remove Superfluous Defaults.__ne__ (:pr:3884)

Dependency Updates

  • pre-commit autoupdate (:pr:3876)
  • Update pre-commit Dependencies (:pr:3916)
  • Bump actions/checkout from 3 to 4 (:pr:3914)
  • Update httpx requirement from ~=0.24.1 to ~=0.25.0 (:pr:3891)
  • Bump furo from 2023.8.19 to 2023.9.10 (:pr:3890)
  • Bump sphinx from 7.2.5 to 7.2.6 (:pr:3892)
  • Update tornado requirement from ~=6.2 to ~=6.3.3 (:pr:3675)
  • Bump pytest from 7.4.0 to 7.4.2 (:pr:3881)

Version 20.5

Released 2023-09-03

This is the technical changelog for version 20.5. More elaborate release notes can be found in the news channel @pythontelegrambotchannel <https://t.me/pythontelegrambotchannel>__.

Major Changes

  • API 6.8 (:pr:3853)
  • Remove Functionality Deprecated Since Bot API 6.5, 6.6 or 6.7 (:pr:3858)

New Features

  • Extend Allowed Values for HTTP Version (:pr:3823 closes :issue:3821)
  • Add has_args Parameter to CommandHandler (:pr:3854 by @thatguylah <https://github.com/thatguylah>__ closes :issue:3798)
  • Add Application.stop_running() and Improve Marking Updates as Read on Updater.stop() (:pr:3804)

Minor Changes

  • Type Hinting Fixes for WebhookInfo (:pr:3871)
  • Test and Document Exception.__cause__ on NetworkError (:pr:3792 closes :issue:3778)
  • Add Support for Python 3.12 RC (:pr:3847)

Documentation Improvements

  • Remove Version Check from Examples (:pr:3846)
  • Documentation Improvements (:pr:3803, :pr:3797, :pr:3816 by @trim21 <https://github.com/trim21>, :pr:3829 by @aelkheir <https://github.com/aelkheir>)
  • Provide Versions of customwebhookbot.py with Different Frameworks (:pr:3820 closes :issue:3717)

Dependency Updates

  • pre-commit autoupdate (:pr:3824)
  • Bump srvaroa/labeler from 1.6.0 to 1.6.1 (:pr:3870)
  • Bump sphinx from 7.0.1 to 7.1.1 (:pr:3818)
  • Bump sphinx from 7.2.3 to 7.2.5 (:pr:3869)
  • Bump furo from 2023.5.20 to 2023.7.26 (:pr:3817)
  • Update apscheduler requirement from ~=3.10.3 to ~=3.10.4 (:pr:3862)
  • Bump sphinx from 7.2.2 to 7.2.3 (:pr:3861)
  • Bump pytest-asyncio from 0.21.0 to 0.21.1 (:pr:3801)
  • Bump sphinx-paramlinks from 0.5.4 to 0.6.0 (:pr:3840)
  • Update apscheduler requirement from ~=3.10.1 to ~=3.10.3 (:pr:3851)
  • Bump furo from 2023.7.26 to 2023.8.19 (:pr:3850)
  • Bump sphinx from 7.1.2 to 7.2.2 (:pr:3852)
  • Bump sphinx from 7.1.1 to 7.1.2 (:pr:3827)

Version 20.4

Released 2023-07-09

This is the technical changelog for version 20.4. More elaborate release notes can be found in the news channel @pythontelegrambotchannel <https://t.me/pythontelegrambotchannel>__.

Major Changes

  • Drop Support for Python 3.7 (:pr:3728, :pr:3742 by @Trifase <https://github.com/Trifase>, :pr:3749 by @thefunkycat <https://github.com/thefunkycat>, :pr:3740 closes :issue:3732, :pr:3754 closes :issue:3731, :pr:3753, :pr:3764, :pr:3762, :pr:3759 closes :issue:3733)

New Features

  • Make Integration of APScheduler into JobQueue More Explicit (:pr:3695)
  • Introduce BaseUpdateProcessor for Customized Concurrent Handling of Updates (:pr:3654 closes :issue:3509)

Minor Changes

  • Fix Inconsistent Type Hints for timeout Parameter of Bot.get_updates (:pr:3709 by @revolter <https://github.com/revolter>__)
  • Use Explicit Optionals (:pr:3692 by @MiguelX413 <https://github.com/MiguelX413>__)

Bug Fixes

  • Fix Wrong Warning Text in KeyboardButton.__eq__ (:pr:3768)

Documentation Improvements

  • Explicitly set allowed_updates in Examples (:pr:3741 by @Trifase <https://github.com/Trifase>__ closes :issue:3726)
  • Bump furo and sphinx (:pr:3719)
  • Documentation Improvements (:pr:3698, :pr:3708 by @revolter <https://github.com/revolter>__, :pr:3767)
  • Add Quotes for Installation Instructions With Optional Dependencies (:pr:3780)
  • Exclude Type Hints from Stability Policy (:pr:3712)
  • Set httpx Logging Level to Warning in Examples (:pr:3746 closes :issue:3743)

Internal Changes

  • Drop a Legacy pre-commit.ci Configuration (:pr:3697)
  • Add Python 3.12 Beta to the Test Matrix (:pr:3751)
  • Use Temporary Files for Testing File Downloads (:pr:3777)
  • Auto-Update Changed Version in Other Files After Dependabot PRs (:pr:3716)
  • Add More ruff Rules (:pr:3763)
  • Rename _handler.py to _basehandler.py (:pr:3761)
  • Automatically Label pre-commit-ci PRs (:pr:3713)
  • Rework pytest Integration into GitHub Actions (:pr:3776)
  • Fix Two Bugs in GitHub Actions Workflows (:pr:3739)

Dependency Updates

  • Update cachetools requirement from ~=5.3.0 to ~=5.3.1 (:pr:3738)
  • Update aiolimiter requirement from ~=1.0.0 to ~=1.1.0 (:pr:3707)
  • pre-commit autoupdate (:pr:3791)
  • Bump sphinxcontrib-mermaid from 0.8.1 to 0.9.2 (:pr:3737)
  • Bump pytest-xdist from 3.2.1 to 3.3.0 (:pr:3705)
  • Bump srvaroa/labeler from 1.5.0 to 1.6.0 (:pr:3786)
  • Bump dependabot/fetch-metadata from 1.5.1 to 1.6.0 (:pr:3787)
  • Bump dessant/lock-threads from 4.0.0 to 4.0.1 (:pr:3785)
  • Bump pytest from 7.3.2 to 7.4.0 (:pr:3774)
  • Update httpx requirement from ~=0.24.0 to ~=0.24.1 (:pr:3715)
  • Bump pytest-xdist from 3.3.0 to 3.3.1 (:pr:3714)
  • Bump pytest from 7.3.1 to 7.3.2 (:pr:3758)
  • pre-commit autoupdate (:pr:3747)

Version 20.3

Released 2023-05-07

This is the technical changelog for version 20.3. More elaborate release notes can be found in the news channel @pythontelegrambotchannel <https://t.me/pythontelegrambotchannel>_.

Major Changes

  • Full support for API 6.7 (:pr:3673)
  • Add a Stability Policy (:pr:3622)

New Features

  • Add Application.mark_data_for_update_persistence (:pr:3607)
  • Make Message.link Point to Thread View Where Possible (:pr:3640)
  • Localize Received datetime Objects According to Defaults.tzinfo (:pr:3632)

Minor Changes, Documentation Improvements and CI

  • Empower ruff (:pr:3594)
  • Drop Usage of sys.maxunicode (:pr:3630)
  • Add String Representation for RequestParameter (:pr:3634)
  • Stabilize CI by Rerunning Failed Tests (:pr:3631)
  • Give Loggers Better Names (:pr:3623)
  • Add Logging for Invalid JSON Data in BasePersistence.parse_json_payload (:pr:3668)
  • Improve Warning Categories & Stacklevels (:pr:3674)
  • Stabilize test_delete_sticker_set (:pr:3685)
  • Shield Update Fetcher Task in Application.start (:pr:3657)
  • Recover 100% Type Completeness (:pr:3676)
  • Documentation Improvements (:pr:3628, :pr:3636, :pr:3694)

Dependencies

  • Bump actions/stale from 7 to 8 (:pr:3644)
  • Bump furo from 2023.3.23 to 2023.3.27 (:pr:3643)
  • pre-commit autoupdate (:pr:3646, :pr:3688)
  • Remove Deprecated codecov Package from CI (:pr:3664)
  • Bump sphinx-copybutton from 0.5.1 to 0.5.2 (:pr:3662)
  • Update httpx requirement from ~=0.23.3 to ~=0.24.0 (:pr:3660)
  • Bump pytest from 7.2.2 to 7.3.1 (:pr:3661)

Version 20.2

Released 2023-03-25

This is the technical changelog for version 20.2. More elaborate release notes can be found in the news channel @pythontelegrambotchannel <https://t.me/pythontelegrambotchannel>_.

Major Changes

  • Full Support for API 6.6 (:pr:3584)
  • Revert to HTTP/1.1 as Default and make HTTP/2 an Optional Dependency (:pr:3576)

Minor Changes, Documentation Improvements and CI

  • Documentation Improvements (:pr:3565, :pr:3600)
  • Handle Symbolic Links in was_called_by (:pr:3552)
  • Tidy Up Tests Directory (:pr:3553)
  • Enhance Application.create_task (:pr:3543)
  • Make Type Completeness Workflow Usable for PRs from Forks (:pr:3551)
  • Refactor and Overhaul the Test Suite (:pr:3426)

Dependencies

  • Bump pytest-asyncio from 0.20.3 to 0.21.0 (:pr:3624)
  • Bump furo from 2022.12.7 to 2023.3.23 (:pr:3625)
  • Bump pytest-xdist from 3.2.0 to 3.2.1 (:pr:3606)
  • pre-commit autoupdate (:pr:3577)
  • Update apscheduler requirement from ~=3.10.0 to ~=3.10.1 (:pr:3572)
  • Bump pytest from 7.2.1 to 7.2.2 (:pr:3573)
  • Bump pytest-xdist from 3.1.0 to 3.2.0 (:pr:3550)
  • Bump sphinxcontrib-mermaid from 0.7.1 to 0.8 (:pr:3549)

Version 20.1

Released 2023-02-09

This is the technical changelog for version 20.1. More elaborate release notes can be found in the news channel @pythontelegrambotchannel <https://t.me/pythontelegrambotchannel>_.

Major Changes

  • Full Support for Bot API 6.5 (:pr:3530)

New Features

  • Add Application(Builder).post_stop (:pr:3466)
  • Add Chat.effective_name Convenience Property (:pr:3485)
  • Allow to Adjust HTTP Version and Use HTTP/2 by Default (:pr:3506)

Documentation Improvements

  • Enhance chatmemberbot Example (:pr:3500)
  • Automatically Generate Cross-Reference Links (:pr:3501, :pr:3529, :pr:3523)
  • Add Some Graphic Elements to Docs (:pr:3535)
  • Various Smaller Improvements (:pr:3464, :pr:3483, :pr:3484, :pr:3497, :pr:3512, :pr:3515, :pr:3498)

Minor Changes, Documentation Improvements and CI

  • Update Copyright to 2023 (:pr:3459)
  • Stabilize Tests on Closing and Hiding the General Forum Topic (:pr:3460)
  • Fix Dependency Warning Typo (:pr:3474)
  • Cache Dependencies on GitHub Actions (:pr:3469)
  • Store Documentation Builts as GitHub Actions Artifacts (:pr:3468)
  • Add ruff to pre-commit Hooks (:pr:3488)
  • Improve Warning for days Parameter of JobQueue.run_daily (:pr:3503)
  • Improve Error Message for NetworkError (:pr:3505)
  • Lock Inactive Threads Only Once Each Day (:pr:3510)
  • Bump pytest from 7.2.0 to 7.2.1 (:pr:3513)
  • Check for 3D Arrays in check_keyboard_type (:pr:3514)
  • Explicit Type Annotations (:pr:3508)
  • Increase Verbosity of Type Completeness CI Job (:pr:3531)
  • Fix CI on Python 3.11 + Windows (:pr:3547)

Dependencies

  • Bump actions/stale from 6 to 7 (:pr:3461)
  • Bump dessant/lock-threads from 3.0.0 to 4.0.0 (:pr:3462)
  • pre-commit autoupdate (:pr:3470)
  • Update httpx requirement from ~=0.23.1 to ~=0.23.3 (:pr:3489)
  • Update cachetools requirement from ~=5.2.0 to ~=5.2.1 (:pr:3502)
  • Improve Config for ruff and Bump to v0.0.222 (:pr:3507)
  • Update cachetools requirement from ~=5.2.1 to ~=5.3.0 (:pr:3520)
  • Bump isort to 5.12.0 (:pr:3525)
  • Update apscheduler requirement from ~=3.9.1 to ~=3.10.0 (:pr:3532)
  • pre-commit autoupdate (:pr:3537)
  • Update cryptography requirement to >=39.0.1 to address Vulnerability (:pr:3539)

Version 20.0

Released 2023-01-01

This is the technical changelog for version 20.0. More elaborate release notes can be found in the news channel @pythontelegrambotchannel <https://t.me/pythontelegrambotchannel>_.

Major Changes

  • Full Support For Bot API 6.4 (:pr:3449)

Minor Changes, Documentation Improvements and CI

  • Documentation Improvements (:pr:3428, :pr:3423, :pr:3429, :pr:3441, :pr:3404, :pr:3443)
  • Allow Sequence Input for Bot Methods (:pr:3412)
  • Update Link-Check CI and Replace a Dead Link (:pr:3456)
  • Freeze Classes Without Arguments (:pr:3453)
  • Add New Constants (:pr:3444)
  • Override Bot.__deepcopy__ to Raise TypeError (:pr:3446)
  • Add Log Decorator to Bot.get_webhook_info (:pr:3442)
  • Add Documentation On Verifying Releases (:pr:3436)
  • Drop Undocumented Job.__lt__ (:pr:3432)

Dependencies

  • Downgrade sphinx to 5.3.0 to Fix Search (:pr:3457)
  • Bump sphinx from 5.3.0 to 6.0.0 (:pr:3450)

Version 20.0b0

Released 2022-12-15

This is the technical changelog for version 20.0b0. More elaborate release notes can be found in the news channel @pythontelegrambotchannel <https://t.me/pythontelegrambotchannel>_.

Major Changes

  • Make TelegramObject Immutable (:pr:3249)

Minor Changes, Documentation Improvements and CI

  • Reduce Code Duplication in Testing Defaults (:pr:3419)
  • Add Notes and Warnings About Optional Dependencies (:pr:3393)
  • Simplify Internals of Bot Methods (:pr:3396)
  • Reduce Code Duplication in Several Bot Methods (:pr:3385)
  • Documentation Improvements (:pr:3386, :pr:3395, :pr:3398, :pr:3403)

Dependencies

  • Bump pytest-xdist from 3.0.2 to 3.1.0 (:pr:3415)
  • Bump pytest-asyncio from 0.20.2 to 0.20.3 (:pr:3417)
  • pre-commit autoupdate (:pr:3409)

Version 20.0a6

Released 2022-11-24

This is the technical changelog for version 20.0a6. More elaborate release notes can be found in the news channel @pythontelegrambotchannel <https://t.me/pythontelegrambotchannel>_.

Bug Fixes

  • Only Persist Arbitrary callback_data if ExtBot.callback_data_cache is Present (:pr:3384)
  • Improve Backwards Compatibility of TelegramObjects Pickle Behavior (:pr:3382)
  • Fix Naming and Keyword Arguments of File.download_* Methods (:pr:3380)
  • Fix Return Value Annotation of Chat.create_forum_topic (:pr:3381)

Version 20.0a5

Released 2022-11-22

This is the technical changelog for version 20.0a5. More elaborate release notes can be found in the news channel @pythontelegrambotchannel <https://t.me/pythontelegrambotchannel>_.

Major Changes

  • API 6.3 (:pr:3346, :pr:3343, :pr:3342, :pr:3360)
  • Explicit local_mode Setting (:pr:3154)
  • Make Almost All 3rd Party Dependencies Optional (:pr:3267)
  • Split File.download Into File.download_to_drive And File.download_to_memory (:pr:3223)

New Features

  • Add Properties for API Settings of Bot (:pr:3247)
  • Add chat_id and username Parameters to ChatJoinRequestHandler (:pr:3261)
  • Introduce TelegramObject.api_kwargs (:pr:3233)
  • Add Two Constants Related to Local Bot API Servers (:pr:3296)
  • Add recursive Parameter to TelegramObject.to_dict() (:pr:3276)
  • Overhaul String Representation of TelegramObject (:pr:3234)
  • Add Methods Chat.mention_{html, markdown, markdown_v2} (:pr:3308)
  • Add constants.MessageLimit.DEEP_LINK_LENGTH (:pr:3315)
  • Add Shortcut Parameters caption, parse_mode and caption_entities to Bot.send_media_group (:pr:3295)
  • Add Several New Enums To Constants (:pr:3351)

Bug Fixes

  • Fix CallbackQueryHandler Not Handling Non-String Data Correctly With Regex Patterns (:pr:3252)
  • Fix Defaults Handling in Bot.answer_web_app_query (:pr:3362)

Documentation Improvements

  • Update PR Template (:pr:3361)
  • Document Dunder Methods of TelegramObject (:pr:3319)
  • Add Several References to Wiki pages (:pr:3306)
  • Overhaul Search bar (:pr:3218)
  • Unify Documentation of Arguments and Attributes of Telegram Classes (:pr:3217, :pr:3292, :pr:3303, :pr:3312, :pr:3314)
  • Several Smaller Improvements (:pr:3214, :pr:3271, :pr:3289, :pr:3326, :pr:3370, :pr:3376, :pr:3366)

Minor Changes, Documentation Improvements and CI

  • Improve Warning About Unknown ConversationHandler States (:pr:3242)
  • Switch from Stale Bot to GitHub Actions (:pr:3243)
  • Bump Python 3.11 to RC2 in Test Matrix (:pr:3246)
  • Make Job.job a Property and Make Jobs Hashable (:pr:3250)
  • Skip JobQueue Tests on Windows Again (:pr:3280)
  • Read-Only CallbackDataCache (:pr:3266)
  • Type Hinting Fix for Message.effective_attachment (:pr:3294)
  • Run Unit Tests in Parallel (:pr:3283)
  • Update Test Matrix to Use Stable Python 3.11 (:pr:3313)
  • Don't Edit Objects In-Place When Inserting ext.Defaults (:pr:3311)
  • Add a Test for MessageAttachmentType (:pr:3335)
  • Add Three New Test Bots (:pr:3347)
  • Improve Unit Tests Regarding ChatMemberUpdated.difference (:pr:3352)
  • Flaky Unit Tests: Use pytest Marker (:pr:3354)
  • Fix DeepSource Issues (:pr:3357)
  • Handle Lists and Tuples and Datetimes Directly in TelegramObject.to_dict (:pr:3353)
  • Update Meta Config (:pr:3365)
  • Merge ChatDescriptionLimit Enum Into ChatLimit (:pr:3377)

Dependencies

  • Bump pytest from 7.1.2 to 7.1.3 (:pr:3228)
  • pre-commit Updates (:pr:3221)
  • Bump sphinx from 5.1.1 to 5.2.3 (:pr:3269)
  • Bump furo from 2022.6.21 to 2022.9.29 (:pr:3268)
  • Bump actions/stale from 5 to 6 (:pr:3277)
  • pre-commit autoupdate (:pr:3282)
  • Bump sphinx from 5.2.3 to 5.3.0 (:pr:3300)
  • Bump pytest-asyncio from 0.19.0 to 0.20.1 (:pr:3299)
  • Bump pytest from 7.1.3 to 7.2.0 (:pr:3318)
  • Bump pytest-xdist from 2.5.0 to 3.0.2 (:pr:3317)
  • pre-commit autoupdate (:pr:3325)
  • Bump pytest-asyncio from 0.20.1 to 0.20.2 (:pr:3359)
  • Update httpx requirement from ~=0.23.0 to ~=0.23.1 (:pr:3373)

Version 20.0a4

Released 2022-08-27

This is the technical changelog for version 20.0a4. More elaborate release notes can be found in the news channel @pythontelegrambotchannel <https://t.me/pythontelegrambotchannel>_.

Hot Fixes

  • Fix a Bug in setup.py Regarding Optional Dependencies (:pr:3209)

Version 20.0a3

Released 2022-08-27

This is the technical changelog for version 20.0a3. More elaborate release notes can be found in the news channel @pythontelegrambotchannel <https://t.me/pythontelegrambotchannel>_.

Major Changes

  • Full Support for API 6.2 (:pr:3195)

New Features

  • New Rate Limiting Mechanism (:pr:3148)
  • Make chat/user_data Available in Error Handler for Errors in Jobs (:pr:3152)
  • Add Application.post_shutdown (:pr:3126)

Bug Fixes

  • Fix helpers.mention_markdown for Markdown V1 and Improve Related Unit Tests (:pr:3155)
  • Add api_kwargs Parameter to Bot.log_out and Improve Related Unit Tests (:pr:3147)
  • Make Bot.delete_my_commands a Coroutine Function (:pr:3136)
  • Fix ConversationHandler.check_update not respecting per_user (:pr:3128)

Minor Changes, Documentation Improvements and CI

  • Add Python 3.11 to Test Suite & Adapt Enum Behaviour (:pr:3168)
  • Drop Manual Token Validation (:pr:3167)
  • Simplify Unit Tests for Bot.send_chat_action (:pr:3151)
  • Drop pre-commit Dependencies from requirements-dev.txt (:pr:3120)
  • Change Default Values for concurrent_updates and connection_pool_size (:pr:3127)
  • Documentation Improvements (:pr:3139, :pr:3153, :pr:3135)
  • Type Hinting Fixes (:pr:3202)

Dependencies

  • Bump sphinx from 5.0.2 to 5.1.1 (:pr:3177)
  • Update pre-commit Dependencies (:pr:3085)
  • Bump pytest-asyncio from 0.18.3 to 0.19.0 (:pr:3158)
  • Update tornado requirement from ~=6.1 to ~=6.2 (:pr:3149)
  • Bump black from 22.3.0 to 22.6.0 (:pr:3132)
  • Bump actions/setup-python from 3 to 4 (:pr:3131)

Version 20.0a2

Released 2022-06-27

This is the technical changelog for version 20.0a2. More elaborate release notes can be found in the news channel @pythontelegrambotchannel <https://t.me/pythontelegrambotchannel>_.

Major Changes

  • Full Support for API 6.1 (:pr:3112)

New Features

  • Add Additional Shortcut Methods to Chat (:pr:3115)
  • Mermaid-based Example State Diagrams (:pr:3090)

Minor Changes, Documentation Improvements and CI

  • Documentation Improvements (:pr:3103, :pr:3121, :pr:3098)
  • Stabilize CI (:pr:3119)
  • Bump pyupgrade from 2.32.1 to 2.34.0 (:pr:3096)
  • Bump furo from 2022.6.4 to 2022.6.4.1 (:pr:3095)
  • Bump mypy from 0.960 to 0.961 (:pr:3093)

Version 20.0a1

Released 2022-06-09

This is the technical changelog for version 20.0a1. More elaborate release notes can be found in the news channel @pythontelegrambotchannel <https://t.me/pythontelegrambotchannel>_.

Major Changes:

  • Drop Support for ujson and instead BaseRequest.parse_json_payload (:pr:3037, :pr:3072)
  • Drop InputFile.is_image (:pr:3053)
  • Drop Explicit Type conversions in __init__ s (:pr:3056)
  • Handle List-Valued Attributes More Consistently (:pr:3057)
  • Split {Command, Prefix}Handler And Make Attributes Immutable (:pr:3045)
  • Align Behavior Of JobQueue.run_daily With cron (:pr:3046)
  • Make PTB Specific Keyword-Only Arguments for PTB Specific in Bot methods (:pr:3035)
  • Adjust Equality Comparisons to Fit Bot API 6.0 (:pr:3033)
  • Add Tuple Based Version Info (:pr:3030)
  • Improve Type Annotations for CallbackContext and Move Default Type Alias to ContextTypes.DEFAULT_TYPE (:pr:3017, :pr:3023)
  • Rename Job.context to Job.data (:pr:3028)
  • Rename Handler to BaseHandler (:pr:3019)

New Features:

  • Add Application.post_init (:pr:3078)
  • Add Arguments chat/user_id to CallbackContext And Example On Custom Webhook Setups (:pr:3059)
  • Add Convenience Property Message.id (:pr:3077)
  • Add Example for WebApp (:pr:3052)
  • Rename telegram.bot_api_version to telegram.__bot_api_version__ (:pr:3030)

Bug Fixes:

  • Fix Non-Blocking Entry Point in ConversationHandler (:pr:3068)
  • Escape Backslashes in escape_markdown (:pr:3055)

Dependencies:

  • Update httpx requirement from ~=0.22.0 to ~=0.23.0 (:pr:3069)
  • Update cachetools requirement from ~=5.0.0 to ~=5.2.0 (:pr:3058, :pr:3080)

Minor Changes, Documentation Improvements and CI:

  • Move Examples To Documentation (:pr:3089)
  • Documentation Improvements and Update Dependencies (:pr:3010, :pr:3007, :pr:3012, :pr:3067, :pr:3081, :pr:3082)
  • Improve Some Unit Tests (:pr:3026)
  • Update Code Quality dependencies (:pr:3070, :pr:3032,:pr:2998, :pr:2999)
  • Don't Set Signal Handlers On Windows By Default (:pr:3065)
  • Split {Command, Prefix}Handler And Make Attributes Immutable (:pr:3045)
  • Apply isort and Update pre-commit.ci Configuration (:pr:3049)
  • Adjust pre-commit Settings for isort (:pr:3043)
  • Add Version Check to Examples (:pr:3036)
  • Use Collection Instead of List and Tuple (:pr:3025)
  • Remove Client-Side Parameter Validation (:pr:3024)
  • Don't Pass Default Values of Optional Parameters to Telegram (:pr:2978)
  • Stabilize Application.run_* on Python 3.7 (:pr:3009)
  • Ignore Code Style Commits in git blame (:pr:3003)
  • Adjust Tests to Changed API Behavior (:pr:3002)

Version 20.0a0

Released 2022-05-06

This is the technical changelog for version 20.0a0. More elaborate release notes can be found in the news channel @pythontelegrambotchannel <https://t.me/pythontelegrambotchannel>_.

Major Changes:

  • Refactor Initialization of Persistence Classes (:pr:2604)
  • Drop Non-CallbackContext API (:pr:2617)
  • Remove __dict__ from __slots__ and drop Python 3.6 (:pr:2619, :pr:2636)
  • Move and Rename TelegramDecryptionError to telegram.error.PassportDecryptionError (:pr:2621)
  • Make BasePersistence Methods Abstract (:pr:2624)
  • Remove day_is_strict argument of JobQueue.run_monthly (:pr:2634 by iota-008 <https://github.com/iota-008>__)
  • Move Defaults to telegram.ext (:pr:2648)
  • Remove Deprecated Functionality (:pr:2644, :pr:2740, :pr:2745)
  • Overhaul of Filters (:pr:2759, :pr:2922)
  • Switch to asyncio and Refactor PTBs Architecture (:pr:2731)
  • Improve Job.__getattr__ (:pr:2832)
  • Remove telegram.ReplyMarkup (:pr:2870)
  • Persistence of Bots: Refactor Automatic Replacement and Integration with TelegramObject (:pr:2893)

New Features:

  • Introduce Builder Pattern (:pr:2646)
  • Add Filters.update.edited (:pr:2705 by PhilippFr <https://github.com/PhilippFr>__)
  • Introduce Enums for telegram.constants (:pr:2708)
  • Accept File Paths for private_key (:pr:2724)
  • Associate Jobs with chat/user_id (:pr:2731)
  • Convenience Functionality for ChatInviteLinks (:pr:2782)
  • Add Dispatcher.add_handlers (:pr:2823)
  • Improve Error Messages in CommandHandler.__init__ (:pr:2837)
  • Defaults.protect_content (:pr:2840)
  • Add Dispatcher.migrate_chat_data (:pr:2848 by DonalDuck004 <https://github.com/DonalDuck004>__)
  • Add Method drop_chat/user_data to Dispatcher and Persistence (:pr:2852)
  • Add methods ChatPermissions.{all, no}_permissions (:pr:2948)
  • Full Support for API 6.0 (:pr:2956)
  • Add Python 3.10 to Test Suite (:pr:2968)

Bug Fixes & Minor Changes:

  • Improve Type Hinting for CallbackContext (:pr:2587 by revolter <https://github.com/revolter>__)
  • Fix Signatures and Improve test_official (:pr:2643)
  • Refine Dispatcher.dispatch_error (:pr:2660)
  • Make InlineQuery.answer Raise ValueError (:pr:2675)
  • Improve Signature Inspection for Bot Methods (:pr:2686)
  • Introduce TelegramObject.set/get_bot (:pr:2712 by zpavloudis <https://github.com/zpavloudis>__)
  • Improve Subscription of TelegramObject (:pr:2719 by SimonDamberg <https://github.com/SimonDamberg>__)
  • Use Enums for Dynamic Types & Rename Two Attributes in ChatMember (:pr:2817)
  • Return Plain Dicts from BasePersistence.get_*_data (:pr:2873)
  • Fix a Bug in ChatMemberUpdated.difference (:pr:2947)
  • Update Dependency Policy (:pr:2958)

Internal Restructurings & Improvements:

  • Add User Friendly Type Check For Init Of {Inline, Reply}KeyboardMarkup (:pr:2657)
  • Warnings Overhaul (:pr:2662)
  • Clear Up Import Policy (:pr:2671)
  • Mark Internal Modules As Private (:pr:2687 by kencx <https://github.com/kencx>__)
  • Handle Filepaths via the pathlib Module (:pr:2688 by eldbud <https://github.com/eldbud>__)
  • Refactor MRO of InputMedia* and Some File-Like Classes (:pr:2717 by eldbud <https://github.com/eldbud>__)
  • Update Exceptions for Immutable Attributes (:pr:2749)
  • Refactor Warnings in ConversationHandler (:pr:2755, :pr:2784)
  • Use __all__ Consistently (:pr:2805)

CI, Code Quality & Test Suite Improvements:

  • Add Custom pytest Marker to Ease Development (:pr:2628)
  • Pass Failing Jobs to Error Handlers (:pr:2692)
  • Update Notification Workflows (:pr:2695)
  • Use Error Messages for pylint Instead of Codes (:pr:2700 by Piraty <https://github.com/Piraty>__)
  • Make Tests Agnostic of the CWD (:pr:2727 by eldbud <https://github.com/eldbud>__)
  • Update Code Quality Dependencies (:pr:2748)
  • Improve Code Quality (:pr:2783)
  • Update pre-commit Settings & Improve a Test (:pr:2796)
  • Improve Code Quality & Test Suite (:pr:2843)
  • Fix failing animation tests (:pr:2865)
  • Update and Expand Tests & pre-commit Settings and Improve Code Quality (:pr:2925)
  • Extend Code Formatting With Black (:pr:2972)
  • Update Workflow Permissions (:pr:2984)
  • Adapt Tests to Changed Bot.get_file Behavior (:pr:2995)

Documentation Improvements:

  • Doc Fixes (:pr:2597)
  • Add Code Comment Guidelines to Contribution Guide (:pr:2612)
  • Add Cross-References to External Libraries & Other Documentation Improvements (:pr:2693, :pr:2691 by joesinghh <https://github.com/joesinghh>, :pr:2739 by eldbud <https://github.com/eldbud>)
  • Use Furo Theme, Make Parameters Referenceable, Add Documentation Building to CI, Improve Links to Source Code & Other Improvements (:pr:2856, :pr:2798, :pr:2854, :pr:2841)
  • Documentation Fixes & Improvements (:pr:2822)
  • Replace git.io Links (:pr:2872 by murugu-21 <https://github.com/murugu-21>__)
  • Overhaul Readmes, Update RTD Startpage & Other Improvements (:pr:2969)

Version 13.11

Released 2022-02-02

This is the technical changelog for version 13.11. More elaborate release notes can be found in the news channel @pythontelegrambotchannel <https://t.me/pythontelegrambotchannel>_.

Major Changes:

  • Full Support for Bot API 5.7 (:pr:2881)

Version 13.10

Released 2022-01-03

This is the technical changelog for version 13.10. More elaborate release notes can be found in the news channel @pythontelegrambotchannel <https://t.me/pythontelegrambotchannel>_.

Major Changes:

  • Full Support for API 5.6 (:pr:2835)

Minor Changes & Doc fixes:

  • Update Copyright to 2022 (:pr:2836)
  • Update Documentation of BotCommand (:pr:2820)

Version 13.9

Released 2021-12-11

This is the technical changelog for version 13.9. More elaborate release notes can be found in the news channel @pythontelegrambotchannel <https://t.me/pythontelegrambotchannel>_.

Major Changes:

  • Full Support for Api 5.5 (:pr:2809)

Minor Changes

  • Adjust Automated Locking of Inactive Issues (:pr:2775)

Version 13.8.1

Released 2021-11-08

This is the technical changelog for version 13.8.1. More elaborate release notes can be found in the news channel @pythontelegrambotchannel <https://t.me/pythontelegrambotchannel>_.

Doc fixes:

  • Add ChatJoinRequest(Handler) to Docs (:pr:2771)

Version 13.8

Released 2021-11-08

This is the technical changelog for version 13.8. More elaborate release notes can be found in the news channel @pythontelegrambotchannel <https://t.me/pythontelegrambotchannel>_.

Major Changes:

  • Full support for API 5.4 (:pr:2767)

Minor changes, CI improvements, Doc fixes and Type hinting:

  • Create Issue Template Forms (:pr:2689)
  • Fix camelCase Functions in ExtBot (:pr:2659)
  • Fix Empty Captions not Being Passed by Bot.copy_message (:pr:2651)
  • Fix Setting Thumbs When Uploading A Single File (:pr:2583)
  • Fix Bug in BasePersistence.insert/replace_bot for Objects with __dict__ not in __slots__ (:pr:2603)

Version 13.7

Released 2021-07-01

This is the technical changelog for version 13.7. More elaborate release notes can be found in the news channel @pythontelegrambotchannel <https://t.me/pythontelegrambotchannel>_.

Major Changes:

  • Full support for Bot API 5.3 (:pr:2572)

Bug Fixes:

  • Fix Bug in BasePersistence.insert/replace_bot for Objects with __dict__ in their slots (:pr:2561)
  • Remove Incorrect Warning About Defaults and ExtBot (:pr:2553)

Minor changes, CI improvements, Doc fixes and Type hinting:

  • Type Hinting Fixes (:pr:2552)
  • Doc Fixes (:pr:2551)
  • Improve Deprecation Warning for __slots__ (:pr:2574)
  • Stabilize CI (:pr:2575)
  • Fix Coverage Configuration (:pr:2571)
  • Better Exception-Handling for BasePersistence.replace/insert_bot (:pr:2564)
  • Remove Deprecated pass_args from Deeplinking Example (:pr:2550)

Version 13.6

Released 2021-06-06

New Features:

  • Arbitrary callback_data (:pr:1844)
  • Add ContextTypes & BasePersistence.refresh_user/chat/bot_data (:pr:2262)
  • Add Filters.attachment (:pr:2528)
  • Add pattern Argument to ChosenInlineResultHandler (:pr:2517)

Major Changes:

  • Add slots (:pr:2345)

Minor changes, CI improvements, Doc fixes and Type hinting:

  • Doc Fixes (:pr:2495, :pr:2510)
  • Add max_connections Parameter to Updater.start_webhook (:pr:2547)
  • Fix for Promise.done_callback (:pr:2544)
  • Improve Code Quality (:pr:2536, :pr:2454)
  • Increase Test Coverage of CallbackQueryHandler (:pr:2520)
  • Stabilize CI (:pr:2522, :pr:2537, :pr:2541)
  • Fix send_phone_number_to_provider argument for Bot.send_invoice (:pr:2527)
  • Handle Classes as Input for BasePersistence.replace/insert_bot (:pr:2523)
  • Bump Tornado Version and Remove Workaround from :pr:2067 (:pr:2494)

Version 13.5

Released 2021-04-30

Major Changes:

  • Full support of Bot API 5.2 (:pr:2489).

    .. note:: The start_parameter argument of Bot.send_invoice and the corresponding shortcuts is now optional, so the order of parameters had to be changed. Make sure to update your method calls accordingly.

  • Update ChatActions, Deprecating ChatAction.RECORD_AUDIO and ChatAction.UPLOAD_AUDIO (:pr:2460)

New Features:

  • Convenience Utilities & Example for Handling ChatMemberUpdated (:pr:2490)
  • Filters.forwarded_from (:pr:2446)

Minor changes, CI improvements, Doc fixes and Type hinting:

  • Improve Timeouts in ConversationHandler (:pr:2417)
  • Stabilize CI (:pr:2480)
  • Doc Fixes (:pr:2437)
  • Improve Type Hints of Data Filters (:pr:2456)
  • Add Two UserWarnings (:pr:2464)
  • Improve Code Quality (:pr:2450)
  • Update Fallback Test-Bots (:pr:2451)
  • Improve Examples (:pr:2441, :pr:2448)

Version 13.4.1

Released 2021-03-14

Hot fix release:

  • Fixed a bug in setup.py (:pr:2431)

Version 13.4

Released 2021-03-14

Major Changes:

  • Full support of Bot API 5.1 (:pr:2424)

Minor changes, CI improvements, doc fixes and type hinting:

  • Improve Updater.set_webhook (:pr:2419)
  • Doc Fixes (:pr:2404)
  • Type Hinting Fixes (:pr:2425)
  • Update pre-commit Settings (:pr:2415)
  • Fix Logging for Vendored urllib3 (:pr:2427)
  • Stabilize Tests (:pr:2409)

Version 13.3

Released 2021-02-19

Major Changes:

  • Make cryptography Dependency Optional & Refactor Some Tests (:pr:2386, :pr:2370)
  • Deprecate MessageQueue (:pr:2393)

Bug Fixes:

  • Refactor Defaults Integration (:pr:2363)
  • Add Missing telegram.SecureValue to init and Docs (:pr:2398)

Minor changes:

  • Doc Fixes (:pr:2359)

Version 13.2

Released 2021-02-02

Major Changes:

  • Introduce python-telegram-bot-raw (:pr:2324)
  • Explicit Signatures for Shortcuts (:pr:2240)

New Features:

  • Add Missing Shortcuts to Message (:pr:2330)
  • Rich Comparison for Bot (:pr:2320)
  • Add run_async Parameter to ConversationHandler (:pr:2292)
  • Add New Shortcuts to Chat (:pr:2291)
  • Add New Constant MAX_ANSWER_CALLBACK_QUERY_TEXT_LENGTH (:pr:2282)
  • Allow Passing Custom Filename For All Media (:pr:2249)
  • Handle Bytes as File Input (:pr:2233)

Bug Fixes:

  • Fix Escaping in Nested Entities in Message Properties (:pr:2312)
  • Adjust Calling of Dispatcher.update_persistence (:pr:2285)
  • Add quote kwarg to Message.reply_copy (:pr:2232)
  • ConversationHandler: Docs & edited_channel_post behavior (:pr:2339)

Minor changes, CI improvements, doc fixes and type hinting:

  • Doc Fixes (:pr:2253, :pr:2225)
  • Reduce Usage of typing.Any (:pr:2321)
  • Extend Deeplinking Example (:pr:2335)
  • Add pyupgrade to pre-commit Hooks (:pr:2301)
  • Add PR Template (:pr:2299)
  • Drop Nightly Tests & Update Badges (:pr:2323)
  • Update Copyright (:pr:2289, :pr:2287)
  • Change Order of Class DocStrings (:pr:2256)
  • Add macOS to Test Matrix (:pr:2266)
  • Start Using Versioning Directives in Docs (:pr:2252)
  • Improve Annotations & Docs of Handlers (:pr:2243)

Version 13.1

Released 2020-11-29

Major Changes:

  • Full support of Bot API 5.0 (:pr:2181, :pr:2186, :pr:2190, :pr:2189, :pr:2183, :pr:2184, :pr:2188, :pr:2185, :pr:2192, :pr:2196, :pr:2193, :pr:2223, :pr:2199, :pr:2187, :pr:2147, :pr:2205)

New Features:

  • Add Defaults.run_async (:pr:2210)
  • Improve and Expand CallbackQuery Shortcuts (:pr:2172)
  • Add XOR Filters and make Filters.name a Property (:pr:2179)
  • Add Filters.document.file_extension (:pr:2169)
  • Add Filters.caption_regex (:pr:2163)
  • Add Filters.chat_type (:pr:2128)
  • Handle Non-Binary File Input (:pr:2202)

Bug Fixes:

  • Improve Handling of Custom Objects in BasePersistence.insert/replace_bot (:pr:2151)
  • Fix bugs in replace/insert_bot (:pr:2218)

Minor changes, CI improvements, doc fixes and type hinting:

  • Improve Type hinting (:pr:2204, :pr:2118, :pr:2167, :pr:2136)
  • Doc Fixes & Extensions (:pr:2201, :pr:2161)
  • Use F-Strings Where Possible (:pr:2222)
  • Rename kwargs to _kwargs where possible (:pr:2182)
  • Comply with PEP561 (:pr:2168)
  • Improve Code Quality (:pr:2131)
  • Switch Code Formatting to Black (:pr:2122, :pr:2159, :pr:2158)
  • Update Wheel Settings (:pr:2142)
  • Update timerbot.py to v13.0 (:pr:2149)
  • Overhaul Constants (:pr:2137)
  • Add Python 3.9 to Test Matrix (:pr:2132)
  • Switch Codecov to GitHub Action (:pr:2127)
  • Specify Required pytz Version (:pr:2121)

Version 13.0

Released 2020-10-07

For a detailed guide on how to migrate from v12 to v13, see this wiki page <https://github.com/python-telegram-bot/python-telegram-bot/wiki/Transition-guide-to-Version-13.0>_.

Major Changes:

  • Deprecate old-style callbacks, i.e. set use_context=True by default (:pr:2050)
  • Refactor Handling of Message VS Update Filters (:pr:2032)
  • Deprecate Message.default_quote (:pr:1965)
  • Refactor persistence of Bot instances (:pr:1994)
  • Refactor JobQueue (:pr:1981)
  • Refactor handling of kwargs in Bot methods (:pr:1924)
  • Refactor Dispatcher.run_async, deprecating the @run_async decorator (:pr:2051)

New Features:

  • Type Hinting (:pr:1920)
  • Automatic Pagination for answer_inline_query (:pr:2072)
  • Defaults.tzinfo (:pr:2042)
  • Extend rich comparison of objects (:pr:1724)
  • Add Filters.via_bot (:pr:2009)
  • Add missing shortcuts (:pr:2043)
  • Allow DispatcherHandlerStop in ConversationHandler (:pr:2059)
  • Make Errors picklable (:pr:2106)

Minor changes, CI improvements, doc fixes or bug fixes:

  • Fix Webhook not working on Windows with Python 3.8+ (:pr:2067)
  • Fix setting thumbs with send_media_group (:pr:2093)
  • Make MessageHandler filter for Filters.update first (:pr:2085)
  • Fix PicklePersistence.flush() with only bot_data (:pr:2017)
  • Add test for clean argument of Updater.start_polling/webhook (:pr:2002)
  • Doc fixes, refinements and additions (:pr:2005, :pr:2008, :pr:2089, :pr:2094, :pr:2090)
  • CI fixes (:pr:2018, :pr:2061)
  • Refine pollbot.py example (:pr:2047)
  • Refine Filters in examples (:pr:2027)
  • Rename echobot examples (:pr:2025)
  • Use Lock-Bot to lock old threads (:pr:2048, :pr:2052, :pr:2049, :pr:2053)

Version 12.8

Released 2020-06-22

Major Changes:

  • Remove Python 2 support (:pr:1715)
  • Bot API 4.9 support (:pr:1980)
  • IDs/Usernames of Filters.user and Filters.chat can now be updated (:pr:1757)

Minor changes, CI improvements, doc fixes or bug fixes:

  • Update contribution guide and stale bot (:pr:1937)
  • Remove NullHandlers (:pr:1913)
  • Improve and expand examples (:pr:1943, :pr:1995, :pr:1983, :pr:1997)
  • Doc fixes (:pr:1940, :pr:1962)
  • Add User.send_poll() shortcut (:pr:1968)
  • Ignore private attributes en TelegramObject.to_dict() (:pr:1989)
  • Stabilize CI (:pr:2000)

Version 12.7

Released 2020-05-02

Major Changes:

  • Bot API 4.8 support. Note: The Dice object now has a second positional argument emoji. This is relevant, if you instantiate Dice objects manually. (:pr:1917)
  • Added tzinfo argument to helpers.from_timestamp. It now returns an timezone aware object. This is relevant for Message.{date,forward_date,edit_date}, Poll.close_date and ChatMember.until_date (:pr:1621)

New Features:

  • New method run_monthly for the JobQueue (:pr:1705)
  • Job.next_t now gives the datetime of the jobs next execution (:pr:1685)

Minor changes, CI improvements, doc fixes or bug fixes:

  • Stabalize CI (:pr:1919, :pr:1931)
  • Use ABCs @abstractmethod instead of raising NotImplementedError for Handler, BasePersistence and BaseFilter (:pr:1905)
  • Doc fixes (:pr:1914, :pr:1902, :pr:1910)

Version 12.6.1

Released 2020-04-11

Bug fixes:

  • Fix serialization of reply_markup in media messages (:pr:1889)

Version 12.6

Released 2020-04-10

Major Changes:

  • Bot API 4.7 support. Note: In Bot.create_new_sticker_set and Bot.add_sticker_to_set, the order of the parameters had be changed, as the png_sticker parameter is now optional. (:pr:1858)

Minor changes, CI improvements or bug fixes:

  • Add tests for swtich_inline_query(_current_chat) with empty string (:pr:1635)
  • Doc fixes (:pr:1854, :pr:1874, :pr:1884)
  • Update issue templates (:pr:1880)
  • Favor concrete types over "Iterable" (:pr:1882)
  • Pass last valid CallbackContext to TIMEOUT handlers of ConversationHandler (:pr:1826)
  • Tweak handling of persistence and update persistence after job calls (:pr:1827)
  • Use checkout@v2 for GitHub actions (:pr:1887)

Version 12.5.1

Released 2020-03-30

Minor changes, doc fixes or bug fixes:

  • Add missing docs for PollHandler and PollAnswerHandler (:pr:1853)
  • Fix wording in Filters docs (:pr:1855)
  • Reorder tests to make them more stable (:pr:1835)
  • Make ConversationHandler attributes immutable (:pr:1756)
  • Make PrefixHandler attributes command and prefix editable (:pr:1636)
  • Fix UTC as default tzinfo for Job (:pr:1696)

Version 12.5

Released 2020-03-29

New Features:

  • Bot.link gives the t.me link of the bot (:pr:1770)

Major Changes:

  • Bot API 4.5 and 4.6 support. (:pr:1508, :pr:1723)

Minor changes, CI improvements or bug fixes:

  • Remove legacy CI files (:pr:1783, :pr:1791)
  • Update pre-commit config file (:pr:1787)
  • Remove builtin names (:pr:1792)
  • CI improvements (:pr:1808, :pr:1848)
  • Support Python 3.8 (:pr:1614, :pr:1824)
  • Use stale bot for auto closing stale issues (:pr:1820, :pr:1829, :pr:1840)
  • Doc fixes (:pr:1778, :pr:1818)
  • Fix typo in edit_message_media (:pr:1779)
  • In examples, answer CallbackQueries and use edit_message_text shortcut (:pr:1721)
  • Revert accidental change in vendored urllib3 (:pr:1775)

Version 12.4.2

Released 2020-02-10

Bug Fixes

  • Pass correct parse_mode to InlineResults if bot.defaults is None (:pr:1763)
  • Make sure PP can read files that dont have bot_data (:pr:1760)

Version 12.4.1

Released 2020-02-08

This is a quick release for :pr:1744 which was accidently left out of v12.4.0 though mentioned in the release notes.

Version 12.4.0

Released 2020-02-08

New features:

  • Set default values for arguments appearing repeatedly. We also have a wiki page for the new defaults_. (:pr:1490)
  • Store data in CallbackContext.bot_data to access it in every callback. Also persists. (:pr:1325)
  • Filters.poll allows only messages containing a poll (:pr:1673)

Major changes:

  • Filters.text now accepts messages that start with a slash, because CommandHandler checks for MessageEntity.BOT_COMMAND since v12. This might lead to your MessageHandlers receiving more updates than before (:pr:1680).
  • Filters.command new checks for MessageEntity.BOT_COMMAND instead of just a leading slash. Also by Filters.command(False) you can now filters for messages containing a command anywhere in the text (:pr:1744).

Minor changes, CI improvements or bug fixes:

  • Add disptacher argument to Updater to allow passing a customized Dispatcher (:pr:1484)
  • Add missing names for Filters (:pr:1632)
  • Documentation fixes (:pr:1624, :pr:1647, :pr:1669, :pr:1703, :pr:1718, :pr:1734, :pr:1740, :pr:1642, :pr:1739, :pr:1746)
  • CI improvements (:pr:1716, :pr:1731, :pr:1738, :pr:1748, :pr:1749, :pr:1750, :pr:1752)
  • Fix spelling issue for encode_conversations_to_json (:pr:1661)
  • Remove double assignement of Dispatcher.job_queue (:pr:1698)
  • Expose dispatcher as property for CallbackContext (:pr:1684)
  • Fix None check in JobQueue._put() (:pr:1707)
  • Log datetimes correctly in JobQueue (:pr:1714)
  • Fix false Message.link creation for private groups (:pr:1741)
  • Add option --with-upstream-urllib3 to setup.py to allow using non-vendored version (:pr:1725)
  • Fix persistence for nested ConversationHandlers (:pr:1679)
  • Improve handling of non-decodable server responses (:pr:1623)
  • Fix download for files without file_path (:pr:1591)
  • test_webhook_invalid_posts is now considered flaky and retried on failure (:pr:1758)

.. _wiki page for the new defaults: https://github.com/python-telegram-bot/python-telegram-bot/wiki/Adding-defaults-to-your-bot

Version 12.3.0

Released 2020-01-11

New features:

  • Filters.caption allows only messages with caption (:pr:1631).
  • Filter for exact messages/captions with new capability of Filters.text and Filters.caption. Especially useful in combination with ReplyKeyboardMarkup. (:pr:1631).

Major changes:

  • Fix inconsistent handling of naive datetimes (:pr:1506).

Minor changes, CI improvements or bug fixes:

  • Documentation fixes (:pr:1558, :pr:1569, :pr:1579, :pr:1572, :pr:1566, :pr:1577, :pr:1656).
  • Add mutex protection on ConversationHandler (:pr:1533).
  • Add MAX_PHOTOSIZE_UPLOAD constant (:pr:1560).
  • Add args and kwargs to Message.forward() (:pr:1574).
  • Transfer to GitHub Actions CI (:pr:1555, :pr:1556, :pr:1605, :pr:1606, :pr:1607, :pr:1612, :pr:1615, :pr:1645).
  • Fix deprecation warning with Py3.8 by vendored urllib3 (:pr:1618).
  • Simplify assignements for optional arguments (:pr:1600)
  • Allow private groups for Message.link (:pr:1619).
  • Fix wrong signature call for ConversationHandler.TIMEOUT handlers (:pr:1653).

Version 12.2.0

Released 2019-10-14

New features:

  • Nested ConversationHandlers (:pr:1512).

Minor changes, CI improvments or bug fixes:

  • Fix CI failures due to non-backward compat attrs depndency (:pr:1540).
  • travis.yaml: TEST_OFFICIAL removed from allowed_failures.
  • Fix typos in examples (:pr:1537).
  • Fix Bot.to_dict to use proper first_name (:pr:1525).
  • Refactor test_commandhandler.py (:pr:1408).
  • Add Python 3.8 (RC version) to Travis testing matrix (:pr:1543).
  • test_bot.py: Add to_dict test (:pr:1544).
  • Flake config moved into setup.cfg (:pr:1546).

Version 12.1.1

Released 2019-09-18

Hot fix release

Fixed regression in the vendored urllib3 (:pr:1517).

Version 12.1.0

Released 2019-09-13

Major changes:

  • Bot API 4.4 support (:pr:1464, :pr:1510)
  • Add get_file method to Animation & ChatPhoto. Add, get_small_file & get_big_file methods to ChatPhoto (:pr:1489)
  • Tools for deep linking (:pr:1049)

Minor changes and/or bug fixes:

  • Documentation fixes (:pr:1500, :pr:1499)
  • Improved examples (:pr:1502)

Version 12.0.0

Released 2019-08-29

Well... This felt like decades. But here we are with a new release.

Expect minor releases soon (mainly complete Bot API 4.4 support)

Major and/or breaking changes:

  • Context based callbacks
  • Persistence
  • PrefixHandler added (Handler overhaul)
  • Deprecation of RegexHandler and edited_messages, channel_post, etc. arguments (Filter overhaul)
  • Various ConversationHandler changes and fixes
  • Bot API 4.1, 4.2, 4.3 support
  • Python 3.4 is no longer supported
  • Error Handler now handles all types of exceptions (:pr:1485)
  • Return UTC from from_timestamp() (:pr:1485)

See the wiki page at https://github.com/python-telegram-bot/python-telegram-bot/wiki/Transition-guide-to-Version-12.0 for a detailed guide on how to migrate from version 11 to version 12.

Context based callbacks (:pr:1100)

  • Use of pass_ in handlers is deprecated.
  • Instead use use_context=True on Updater or Dispatcher and change callback from (bot, update, others...) to (update, context).
  • This also applies to error handlers Dispatcher.add_error_handler and JobQueue jobs (change (bot, job) to (context) here).
  • For users with custom handlers subclassing Handler, this is mostly backwards compatible, but to use the new context based callbacks you need to implement the new collect_additional_context method.
  • Passing bot to JobQueue.__init__ is deprecated. Use JobQueue.set_dispatcher with a dispatcher instead.
  • Dispatcher makes sure to use a single CallbackContext for a entire update. This means that if an update is handled by multiple handlers (by using the group argument), you can add custom arguments to the CallbackContext in a lower group handler and use it in higher group handler. NOTE: Never use with @run_async, see docs for more info. (:pr:1283)
  • If you have custom handlers they will need to be updated to support the changes in this release.
  • Update all examples to use context based callbacks.

Persistence (:pr:1017)

  • Added PicklePersistence and DictPersistence for adding persistence to your bots.
  • BasePersistence can be subclassed for all your persistence needs.
  • Add a new example that shows a persistent ConversationHandler bot

Handler overhaul (:pr:1114)

  • CommandHandler now only triggers on actual commands as defined by telegram servers (everything that the clients mark as a tabable link).
  • PrefixHandler can be used if you need to trigger on prefixes (like all messages starting with a "/" (old CommandHandler behaviour) or even custom prefixes like "#" or "!").

Filter overhaul (:pr:1221)

  • RegexHandler is deprecated and should be replaced with a MessageHandler with a regex filter.
  • Use update filters to filter update types instead of arguments (message_updates, channel_post_updates and edited_updates) on the handlers.
  • Completely remove allow_edited argument - it has been deprecated for a while.
  • data_filters now exist which allows filters that return data into the callback function. This is how the regex filter is implemented.
  • All this means that it no longer possible to use a list of filters in a handler. Use bitwise operators instead!

ConversationHandler

  • Remove run_async_timeout and timed_out_behavior arguments (:pr:1344)
  • Replace with WAITING constant and behavior from states (:pr:1344)
  • Only emit one warning for multiple CallbackQueryHandlers in a ConversationHandler (:pr:1319)
  • Use warnings.warn for ConversationHandler warnings (:pr:1343)
  • Fix unresolvable promises (:pr:1270)

Bug fixes & improvements

  • Handlers should be faster due to deduped logic.
  • Avoid compiling compiled regex in regex filter. (:pr:1314)
  • Add missing left_chat_member to Message.MESSAGE_TYPES (:pr:1336)
  • Make custom timeouts actually work properly (:pr:1330)
  • Add convenience classmethods (from_button, from_row and from_column) to InlineKeyboardMarkup
  • Small typo fix in setup.py (:pr:1306)
  • Add Conflict error (HTTP error code 409) (:pr:1154)
  • Change MAX_CAPTION_LENGTH to 1024 (:pr:1262)
  • Remove some unnecessary clauses (:pr:1247, :pr:1239)
  • Allow filenames without dots in them when sending files (:pr:1228)
  • Fix uploading files with unicode filenames (:pr:1214)
  • Replace http.server with Tornado (:pr:1191)
  • Allow SOCKSConnection to parse username and password from URL (:pr:1211)
  • Fix for arguments in passport/data.py (:pr:1213)
  • Improve message entity parsing by adding text_mention (:pr:1206)
  • Documentation fixes (:pr:1348, :pr:1397, :pr:1436)
  • Merged filters short-circuit (:pr:1350)
  • Fix webhook listen with tornado (:pr:1383)
  • Call task_done() on update queue after update processing finished (:pr:1428)
  • Fix send_location() - latitude may be 0 (:pr:1437)
  • Make MessageEntity objects comparable (:pr:1465)
  • Add prefix to thread names (:pr:1358)

Buf fixes since v12.0.0b1

  • Fix setting bot on ShippingQuery (:pr:1355)
  • Fix _trigger_timeout() missing 1 required positional argument: 'job' (:pr:1367)
  • Add missing message.text check in PrefixHandler check_update (:pr:1375)
  • Make updates persist even on DispatcherHandlerStop (:pr:1463)
  • Dispatcher force updating persistence object's chat data attribute(:pr:1462)

Internal improvements

  • Finally fix our CI builds mostly (too many commits and PRs to list)
  • Use multiple bots for CI to improve testing times significantly.
  • Allow pypy to fail in CI.
  • Remove the last CamelCase CheckUpdate methods from the handlers we missed earlier.
  • test_official is now executed in a different job

Version 11.1.0

Released 2018-09-01

Fixes and updates for Telegram Passport: (:pr:1198)

  • Fix passport decryption failing at random times
  • Added support for middle names.
  • Added support for translations for documents
  • Add errors for translations for documents
  • Added support for requesting names in the language of the user's country of residence
  • Replaced the payload parameter with the new parameter nonce
  • Add hash to EncryptedPassportElement

Version 11.0.0

Released 2018-08-29

Fully support Bot API version 4.0! (also some bugfixes :))

Telegram Passport (:pr:1174):

  • Add full support for telegram passport.
    • New types: PassportData, PassportFile, EncryptedPassportElement, EncryptedCredentials, PassportElementError, PassportElementErrorDataField, PassportElementErrorFrontSide, PassportElementErrorReverseSide, PassportElementErrorSelfie, PassportElementErrorFile and PassportElementErrorFiles.
    • New bot method: set_passport_data_errors
    • New filter: Filters.passport_data
    • Field passport_data field on Message
    • PassportData can be easily decrypted.
    • PassportFiles are automatically decrypted if originating from decrypted PassportData.
  • See new passportbot.py example for details on how to use, or go to our telegram passport wiki page_ for more info
  • NOTE: Passport decryption requires new dependency cryptography.

Inputfile rework (:pr:1184):

  • Change how Inputfile is handled internally
  • This allows support for specifying the thumbnails of photos and videos using the thumb= argument in the different send_ methods.
  • Also allows Bot.send_media_group to actually finally send more than one media.
  • Add thumb to Audio, Video and Videonote
  • Add Bot.edit_message_media together with InputMediaAnimation, InputMediaAudio, and inputMediaDocument.

Other Bot API 4.0 changes:

  • Add forusquare_type to Venue, InlineQueryResultVenue, InputVenueMessageContent, and Bot.send_venue. (:pr:1170)
  • Add vCard support by adding vcard field to Contact, InlineQueryResultContact, InputContactMessageContent, and Bot.send_contact. (:pr:1166)
  • Support new message entities: CASHTAG and PHONE_NUMBER. (:pr:1179)
    • Cashtag seems to be things like $USD and $GBP, but it seems telegram doesn't currently send them to bots.
    • Phone number also seems to have limited support for now
  • Add Bot.send_animation, add width, height, and duration to Animation, and add Filters.animation. (:pr:1172)

Non Bot API 4.0 changes:

  • Minor integer comparison fix (:pr:1147)
  • Fix Filters.regex failing on non-text message (:pr:1158)
  • Fix ProcessLookupError if process finishes before we kill it (:pr:1126)
  • Add t.me links for User, Chat and Message if available and update User.mention_* (:pr:1092)
  • Fix mention_markdown/html on py2 (:pr:1112)

.. _our telegram passport wiki page: https://github.com/python-telegram-bot/python-telegram-bot/wiki/Telegram-Passport

Version 10.1.0

Released 2018-05-02

Fixes changing previous behaviour:

  • Add urllib3 fix for socks5h support (:pr:1085)
  • Fix send_sticker() timeout=20 (:pr:1088)

Fixes:

  • Add a caption_entity filter for filtering caption entities (:pr:1068)
  • Inputfile encode filenames (:pr:1086)
  • InputFile: Fix proper naming of file when reading from subprocess.PIPE (:pr:1079)
  • Remove pytest-catchlog from requirements (:pr:1099)
  • Documentation fixes (:pr:1061, :pr:1078, :pr:1081, :pr:1096)

Version 10.0.2

Released 2018-04-17

Important fix:

  • Handle utf8 decoding errors (:pr:1076)

New features:

  • Added Filter.regex (:pr:1028)
  • Filters for Category and file types (:pr:1046)
  • Added video note filter (:pr:1067)

Fixes:

  • Fix in telegram.Message (:pr:1042)
  • Make chat_id a positional argument inside shortcut methods of Chat and User classes (:pr:1050)
  • Make Bot.full_name return a unicode object. (:pr:1063)
  • CommandHandler faster check (:pr:1074)
  • Correct documentation of Dispatcher.add_handler (:pr:1071)
  • Various small fixes to documentation.

Version 10.0.1

Released 2018-03-05

Fixes:

  • Fix conversationhandler timeout (PR :pr:1032)
  • Add missing docs utils (PR :pr:912)

Version 10.0.0

Released 2018-03-02

Non backward compatabile changes and changed defaults

  • JobQueue: Remove deprecated prevent_autostart & put() (PR :pr:1012)
  • Bot, Updater: Remove deprecated network_delay (PR :pr:1012)
  • Remove deprecated Message.new_chat_member (PR :pr:1012)
  • Retry bootstrap phase indefinitely (by default) on network errors (PR :pr:1018)

New Features

  • Support v3.6 API (PR :pr:1006)
  • User.full_name convinience property (PR :pr:949)
  • Add send_phone_number_to_provider and send_email_to_provider arguments to send_invoice (PR :pr:986)
  • Bot: Add shortcut methods reply_{markdown,html} (PR :pr:827)
  • Bot: Add shortcut method reply_media_group (PR :pr:994)
  • Added utils.helpers.effective_message_type (PR :pr:826)
  • Bot.get_file now allows passing a file in addition to file_id (PR :pr:963)
  • Add .get_file() to Audio, Document, PhotoSize, Sticker, Video, VideoNote and Voice (PR :pr:963)
  • Add .send_*() methods to User and Chat (PR :pr:963)
  • Get jobs by name (PR :pr:1011)
  • Add Message caption html/markdown methods (PR :pr:1013)
  • File.download_as_bytearray - new method to get a d/led file as bytearray (PR :pr:1019)
  • File.download(): Now returns a meaningful return value (PR :pr:1019)
  • Added conversation timeout in ConversationHandler (PR :pr:895)

Changes

  • Store bot in PreCheckoutQuery (PR :pr:953)
  • Updater: Issue INFO log upon received signal (PR :pr:951)
  • JobQueue: Thread safety fixes (PR :pr:977)
  • WebhookHandler: Fix exception thrown during error handling (PR :pr:985)
  • Explicitly check update.effective_chat in ConversationHandler.check_update (PR :pr:959)
  • Updater: Better handling of timeouts during get_updates (PR :pr:1007)
  • Remove unnecessary to_dict() (PR :pr:834)
  • CommandHandler - ignore strings in entities and "/" followed by whitespace (PR :pr:1020)
  • Documentation & style fixes (PR :pr:942, PR :pr:956, PR :pr:962, PR :pr:980, PR :pr:983)

Version 9.0.0

Released 2017-12-08

Breaking changes (possibly)

  • Drop support for python 3.3 (PR :pr:930)

New Features

  • Support Bot API 3.5 (PR :pr:920)

Changes

  • Fix race condition in dispatcher start/stop (:pr:887)
  • Log error trace if there is no error handler registered (:pr:694)
  • Update examples with consistent string formatting (:pr:870)
  • Various changes and improvements to the docs.

Version 8.1.1

Released 2017-10-15

  • Fix Commandhandler crashing on single character messages (PR :pr:873).

Version 8.1.0

Released 2017-10-14

New features

  • Support Bot API 3.4 (PR :pr:865).

Changes

  • MessageHandler & RegexHandler now consider channel_updates.
  • Fix command not recognized if it is directly followed by a newline (PR :pr:869).
  • Removed Bot._message_wrapper (PR :pr:822).
  • Unitests are now also running on AppVeyor (Windows VM).
  • Various unitest improvements.
  • Documentation fixes.

Version 8.0.0

Released 2017-09-01

New features

  • Fully support Bot Api 3.3 (PR :pr:806).
  • DispatcherHandlerStop (see docs_).
  • Regression fix for text_html & text_markdown (PR :pr:777).
  • Added effective_attachment to message (PR :pr:766).

Non backward compatible changes

  • Removed Botan support from the library (PR :pr:776).
  • Fully support Bot Api 3.3 (PR :pr:806).
  • Remove de_json() (PR :pr:789).

Changes

  • Sane defaults for tcp socket options on linux (PR :pr:754).
  • Add RESTRICTED as constant to ChatMember (PR :pr:761).
  • Add rich comparison to CallbackQuery (PR :pr:764).
  • Fix get_game_high_scores (PR :pr:771).
  • Warn on small con_pool_size during custom initalization of Updater (PR :pr:793).
  • Catch exceptions in error handlerfor errors that happen during polling (PR :pr:810).
  • For testing we switched to pytest (PR :pr:788).
  • Lots of small improvements to our tests and documentation.

.. _see docs: https://docs.python-telegram-bot.org/en/v13.11/telegram.ext.dispatcher.html?highlight=Dispatcher.add_handler#telegram.ext.Dispatcher.add_handler

Version 7.0.1

Released 2017-07-28

  • Fix TypeError exception in RegexHandler (PR #751).
  • Small documentation fix (PR #749).

Version 7.0.0

Released 2017-07-25

  • Fully support Bot API 3.2.
  • New filters for handling messages from specific chat/user id (PR #677).
  • Add the possibility to add objects as arguments to send_* methods (PR #742).
  • Fixed download of URLs with UTF-8 chars in path (PR #688).
  • Fixed URL parsing for Message text properties (PR #689).
  • Fixed args dispatching in MessageQueue's decorator (PR #705).
  • Fixed regression preventing IPv6 only hosts from connnecting to Telegram servers (Issue #720).
  • ConvesationHandler - check if a user exist before using it (PR #699).
  • Removed deprecated telegram.Emoji.
  • Removed deprecated Botan import from utils (Botan is still available through contrib).
  • Removed deprecated ReplyKeyboardHide.
  • Removed deprecated edit_message argument of bot.set_game_score.
  • Internal restructure of files.
  • Improved documentation.
  • Improved unitests.

Pre-version 7.0

2017-06-18

Released 6.1.0

  • Fully support Bot API 3.0
  • Add more fine-grained filters for status updates
  • Bug fixes and other improvements

2017-05-29

Released 6.0.3

  • Faulty PyPI release

2017-05-29

Released 6.0.2

  • Avoid confusion with user's urllib3 by renaming vendored urllib3 to ptb_urllib3

2017-05-19

Released 6.0.1

  • Add support for User.language_code
  • Fix Message.text_html and Message.text_markdown for messages with emoji

2017-05-19

Released 6.0.0

  • Add support for Bot API 2.3.1
  • Add support for deleteMessage API method
  • New, simpler API for JobQueue - :pr:484
  • Download files into file-like objects - :pr:459
  • Use vendor urllib3 to address issues with timeouts
    • The default timeout for messages is now 5 seconds. For sending media, the default timeout is now 20 seconds.
  • String attributes that are not set are now None by default, instead of empty strings
  • Add text_markdown and text_html properties to Message - :pr:507
  • Add support for Socks5 proxy - :pr:518
  • Add support for filters in CommandHandler - :pr:536
  • Add the ability to invert (not) filters - :pr:552
  • Add Filters.group and Filters.private
  • Compatibility with GAE via urllib3.contrib package - :pr:583
  • Add equality rich comparision operators to telegram objects - :pr:604
  • Several bugfixes and other improvements
  • Remove some deprecated code

2017-04-17

Released 5.3.1

  • Hotfix release due to bug introduced by urllib3 version 1.21

2016-12-11

Released 5.3

  • Implement API changes of November 21st (Bot API 2.3)
  • JobQueue now supports datetime.timedelta in addition to seconds
  • JobQueue now supports running jobs only on certain days
  • New Filters.reply filter
  • Bugfix for Message.edit_reply_markup
  • Other bugfixes

2016-10-25

Released 5.2

  • Implement API changes of October 3rd (games update)
  • Add Message.edit_* methods
  • Filters for the MessageHandler can now be combined using bitwise operators (& and |)
  • Add a way to save user- and chat-related data temporarily
  • Other bugfixes and improvements

2016-09-24

Released 5.1

  • Drop Python 2.6 support

  • Deprecate telegram.Emoji

  • Use ujson if available

  • Add instance methods to Message, Chat, User, InlineQuery and CallbackQuery

  • RegEx filtering for CallbackQueryHandler and InlineQueryHandler

  • New MessageHandler filters: forwarded and entity

  • Add Message.get_entity to correctly handle UTF-16 codepoints and MessageEntity offsets

  • Fix bug in ConversationHandler when first handler ends the conversation

  • Allow multiple Dispatcher instances

  • Add ChatMigrated Exception

  • Properly split and handle arguments in CommandHandler

2016-07-15

Released 5.0

  • Rework JobQueue
  • Introduce ConversationHandler
  • Introduce telegram.constants - :pr:342

2016-07-12

Released 4.3.4

  • Fix proxy support with urllib3 when proxy requires auth

2016-07-08

Released 4.3.3

  • Fix proxy support with urllib3

2016-07-04

Released 4.3.2

  • Fix: Use timeout parameter in all API methods

2016-06-29

Released 4.3.1

  • Update wrong requirement: urllib3>=1.10

2016-06-28

Released 4.3

  • Use urllib3.PoolManager for connection re-use
  • Rewrite run_async decorator to re-use threads
  • New requirements: urllib3 and certifi

2016-06-10

Released 4.2.1

  • Fix CallbackQuery.to_dict() bug (thanks to @jlmadurga)
  • Fix editMessageText exception when receiving a CallbackQuery

2016-05-28

Released 4.2

  • Implement Bot API 2.1
  • Move botan module to telegram.contrib
  • New exception type: BadRequest

2016-05-22

Released 4.1.2

  • Fix MessageEntity decoding with Bot API 2.1 changes

2016-05-16

Released 4.1.1

  • Fix deprecation warning in Dispatcher

2016-05-15

Released 4.1

  • Implement API changes from May 6, 2016
  • Fix bug when start_polling with clean=True
  • Methods now have snake_case equivalent, for example telegram.Bot.send_message is the same as telegram.Bot.sendMessage

2016-05-01

Released 4.0.3

  • Add missing attribute location to InlineQuery

2016-04-29

Released 4.0.2

  • Bugfixes
  • KeyboardReplyMarkup now accepts str again

2016-04-27

Released 4.0.1

  • Implement Bot API 2.0
  • Almost complete recode of Dispatcher
  • Please read the Transition Guide to 4.0 <https://github.com/python-telegram-bot/python-telegram-bot/wiki/Transition-guide-to-Version-4.0>_
  • Changes from 4.0rc1
    • The syntax of filters for MessageHandler (upper/lower cases)
    • Handler groups are now identified by int only, and ordered
  • Note: v4.0 has been skipped due to a PyPI accident

2016-04-22

Released 4.0rc1

  • Implement Bot API 2.0
  • Almost complete recode of Dispatcher
  • Please read the Transistion Guide to 4.0 <https://github.com/python-telegram-bot/python-telegram-bot/wiki/Transition-guide-to-Version-4.0>_

2016-03-22

Released 3.4

  • Move Updater, Dispatcher and JobQueue to new telegram.ext submodule (thanks to @rahiel)
  • Add disable_notification parameter (thanks to @aidarbiktimirov)
  • Fix bug where commands sent by Telegram Web would not be recognized (thanks to @shelomentsevd)
  • Add option to skip old updates on bot startup
  • Send files from BufferedReader

2016-02-28

Released 3.3

  • Inline bots
  • Send any file by URL
  • Specialized exceptions: Unauthorized, InvalidToken, NetworkError and TimedOut
  • Integration for botan.io (thanks to @ollmer)
  • HTML Parsemode (thanks to @jlmadurga)
  • Bugfixes and under-the-hood improvements

Very special thanks to Noam Meltzer (@tsnoam) for all of his work!

2016-01-09

Released 3.3b1

  • Implement inline bots (beta)

2016-01-05

Released 3.2.0

  • Introducing JobQueue (original author: @franciscod)
  • Streamlining all exceptions to TelegramError (Special thanks to @tsnoam)
  • Proper locking of Updater and Dispatcher start and stop methods
  • Small bugfixes

2015-12-29

Released 3.1.2

  • Fix custom path for file downloads
  • Don't stop the dispatcher thread on uncaught errors in handlers

2015-12-21

Released 3.1.1

  • Fix a bug where asynchronous handlers could not have additional arguments
  • Add groups and groupdict as additional arguments for regex-based handlers

2015-12-16

Released 3.1.0

  • The chat-field in Message is now of type Chat. (API update Oct 8 2015)
  • Message now contains the optional fields supergroup_chat_created, migrate_to_chat_id, migrate_from_chat_id and channel_chat_created. (API update Nov 2015)

2015-12-08

Released 3.0.0

  • Introducing the Updater and Dispatcher classes

2015-11-11

Released 2.9.2

  • Error handling on request timeouts has been improved

2015-11-10

Released 2.9.1

  • Add parameter network_delay to Bot.getUpdates for slow connections

2015-11-10

Released 2.9

  • Emoji class now uses bytes_to_native_str from future 3rd party lib
  • Make user_from optional to work with channels
  • Raise exception if Telegram times out on long-polling

Special thanks to @jh0ker for all hard work

2015-10-08

Released 2.8.7

  • Type as optional for GroupChat class

2015-10-08

Released 2.8.6

  • Adds type to User and GroupChat classes (pre-release Telegram feature)

2015-09-24

Released 2.8.5

  • Handles HTTP Bad Gateway (503) errors on request
  • Fixes regression on Audio and Document for unicode fields

2015-09-20

Released 2.8.4

  • getFile and File.download is now fully supported

2015-09-10

Released 2.8.3

  • Moved Bot._requestURL to its own class (telegram.utils.request)
  • Much better, such wow, Telegram Objects tests
  • Add consistency for str properties on Telegram Objects
  • Better design to test if chat_id is invalid
  • Add ability to set custom filename on Bot.sendDocument(..,filename='')
  • Fix Sticker as InputFile
  • Send JSON requests over urlencoded post data
  • Markdown support for Bot.sendMessage(..., parse_mode=ParseMode.MARKDOWN)
  • Refactor of TelegramError class (no more handling IOError or URLError)

2015-09-05

Released 2.8.2

  • Fix regression on Telegram ReplyMarkup
  • Add certificate to is_inputfile method

2015-09-05

Released 2.8.1

  • Fix regression on Telegram objects with thumb properties

2015-09-04

Released 2.8

  • TelegramError when chat_id is empty for send* methods
  • setWebhook now supports sending self-signed certificate
  • Huge redesign of existing Telegram classes
  • Added support for PyPy
  • Added docstring for existing classes

2015-08-19

Released 2.7.1

  • Fixed JSON serialization for message

2015-08-17

Released 2.7

  • Added support for Voice object and sendVoice method
  • Due backward compatibility performer or/and title will be required for sendAudio
  • Fixed JSON serialization when forwarded message

2015-08-15

Released 2.6.1

  • Fixed parsing image header issue on < Python 2.7.3

2015-08-14

Released 2.6.0

  • Depreciation of require_authentication and clearCredentials methods
  • Giving AUTHORS the proper credits for their contribution for this project
  • Message.date and Message.forward_date are now datetime objects

2015-08-12

Released 2.5.3

  • telegram.Bot now supports to be unpickled

2015-08-11

Released 2.5.2

  • New changes from Telegram Bot API have been applied
  • telegram.Bot now supports to be pickled
  • Return empty str instead None when message.text is empty

2015-08-10

Released 2.5.1

  • Moved from GPLv2 to LGPLv3

2015-08-09

Released 2.5

  • Fixes logging calls in API

2015-08-08

Released 2.4

  • Fixes Emoji class for Python 3
  • PEP8 improvements

2015-08-08

Released 2.3

  • Fixes ForceReply class
  • Remove logging.basicConfig from library

2015-07-25

Released 2.2

  • Allows debug=True when initializing telegram.Bot

2015-07-20

Released 2.1

  • Fix to_dict for Document and Video

2015-07-19

Released 2.0

  • Fixes bugs
  • Improves __str__ over to_json()
  • Creates abstract class TelegramObject

2015-07-15

Released 1.9

  • Python 3 officially supported
  • PEP8 improvements

2015-07-12

Released 1.8

  • Fixes crash when replying an unicode text message (special thanks to JRoot3D)

2015-07-11

Released 1.7

  • Fixes crash when username is not defined on chat (special thanks to JRoot3D)

2015-07-10

Released 1.6

  • Improvements for GAE support

2015-07-10

Released 1.5

  • Fixes randomly unicode issues when using InputFile

2015-07-10

Released 1.4

  • requests lib is no longer required
  • Google App Engine (GAE) is supported

2015-07-10

Released 1.3

  • Added support to setWebhook (special thanks to macrojames)

2015-07-09

Released 1.2

  • CustomKeyboard classes now available
  • Emojis available
  • PEP8 improvements

2015-07-08

Released 1.1

  • PyPi package now available

2015-07-08

Released 1.0

  • Initial checkin of python-telegram-bot