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.
- 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 (:pr:`4565` by Snehashish06, :pr:`4573`)
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.
- 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)
- Allow
Sequence
inApplication.add_handlers
(:pr:`4531` by 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 (:pr:`4536` by Ecode2, :pr:`4556`)
- Fix Linkcheck Workflow (:pr:`4545`)
- Use
sphinx-build-compatibility
to Keep Sphinx Compatibility (:pr:`4492`)
- 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`)
- 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`)
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.
- Full Support for Bot API 7.10 (:pr:`4461` closes :issue:`4459`, :pr:`4460`, :pr:`4463` by aelkheir, :pr:`4464`)
- Add Parameter
httpx_kwargs
toHTTPXRequest
(:pr:`4451` closes :issue:`4424`)
- Improve Type Completeness (:pr:`4466`)
- Update Python 3.13 Test Suite to RC2 (:pr:`4471`)
- Enforce the
offline_bot
Fixture inTest*WithoutRequest
(:pr:`4465`) - Make Tests for
telegram.ext
Independent of Networking (:pr:`4454`) - Rename Testing Base Classes (:pr:`4453`)
- Bump
pytest
from 8.3.2 to 8.3.3 (:pr:`4475`)
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.
- Full Support for Bot API 7.9 (:pr:`4429`)
- Full Support for Bot API 7.8 (:pr:`4408`)
- Add
MessageEntity.shift_entities
andMessageEntity.concatenate
(:pr:`4376` closes :issue:`4372`) - Add Parameter
game_pattern
toCallbackQueryHandler
(:pr:`4353` by jainamoswal closes :issue:`4269`) - Add Parameter
read_file_handle
toInputFile
(:pr:`4388` closes :issue:`4339`)
- Bugfix for "Available In" Admonitions (:pr:`4413`)
- Documentation Improvements (:pr:`4400` closes :issue:`4446`, :pr:`4448` by Palaptin)
- Document Return Types of
RequestData
Members (:pr:`4396`) - Add Introductory Paragraphs to Telegram Types Subsections (:pr:`4389` by mohdyusuf2312 closes :issue:`4380`)
- Start Adapting to RTD Addons (:pr:`4386`)
- Remove Surplus Logging from
Updater
Network Loop (:pr:`4432` by MartinHjelmare) - Add Internal Constants for Encodings (:pr:`4378` by 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) - Update Python 3.13 Test Suite to RC1 (:pr:`4415`)
- Bump
ruff
and Add New Rules (:pr:`4416`)
- 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 andfuro
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`)
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.
- 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 topyproject.toml
Based Packaging (:pr:`4288` closes :issue:`4129` and :issue:`4296`) - Deprecate Inclusion of
successful_payment
inMessage.effective_attachment
(:pr:`4365` closes :issue:`4350`)
- 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 closes :issue:`4319`) - Make Argument
bot
ofTelegramObject.de_json
Optional (:pr:`4320`)
- Documentation Improvements (:pr:`4303` closes :issue:`4301`)
- Restructure Readme (:pr:`4362`)
- Fix Link-Check Workflow (:pr:`4332`)
- 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`)
- 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) - Bump
pytest
from 8.2.1 to 8.2.2 (:pr:`4294`)
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.
- 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`)
- Add Parameter
chat_id
toChatMemberHandler
(:pr:`4290` by uniquetrij closes :issue:`4287`)
- Documentation Improvements (:pr:`4264` closes :issue:`4240`)
- Add
setuptools
torequirements-dev.txt
(:pr:`4282`) - Update Settings for pre-commit.ci (:pr:`4265`)
- Bump
pytest
from 8.2.0 to 8.2.1 (:pr:`4272`)
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.
- Full Support for Bot API 7.3 (:pr:`4246`, :pr:`4260`, :pr:`4243`, :pr:`4248`, :pr:`4242` closes :issue:`4236`, :pr:`4247` by aelkheir)
- Remove Functionality Deprecated by Bot API 7.2 (:pr:`4245`)
- Add Version to
PTBDeprecationWarning
(:pr:`4262` closes :issue:`4261`) - Handle Exceptions in building
CallbackContext
(:pr:`4222`)
- Call
Application.post_stop
Only ifApplication.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 adatetime.date
Object (:pr:`4251`)
- Documentation Improvements (:pr:`4217`)
- Add New Rules to
ruff
Config (:pr:`4250`) - Adapt Test Suite to Changes in Error Messages (:pr:`4238`)
- 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`)
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.
- Fix Bug With Parameter
message_thread_id
ofMessage.reply_*
(:pr:`4207` closes :issue:`4205`)
- Remove Deprecation Warning in
JobQueue.run_daily
(:pr:`4206` by @Konano) - Fix Annotation of
EncryptedCredentials.decrypted_secret
(:pr:`4199` by @marinelay closes :issue:`4198`)
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.
- API 7.2 (:pr:`4180` closes :issue:`4179` and :issue:`4181`, :issue:`4181`)
- Make
ChatAdministratorRights/ChatMemberAdministrator.can_*_stories
Required (API 7.1) (:pr:`4192`)
- Refactor Debug logging in
Bot
to Improve Type Hinting (:pr:`4151` closes :issue:`4010`)
- Make
Message.reply_*
Reply in the Same Topic by Default (:pr:`4170` by @aelkheir closes :issue:`4139`) - Accept Socket Objects for Webhooks (:pr:`4161` closes :issue:`4078`)
- Add
Update.effective_sender
(:pr:`4168` by @aelkheir closes :issue:`4085`)
- Documentation Improvements (:pr:`4171`, :pr:`4158` by @teslaedison)
- Temporarily Mark Tests with
get_sticker_set
as XFAIL due to API 7.2 Update (:pr:`4190`)
pre-commit
autoupdate (:pr:`4184`)- Bump
dependabot/fetch-metadata
from 1.6.0 to 2.0.0 (:pr:`4185`)
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.
- Remove
docs
from Package (:pr:`4150`)
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.
- Remove Functionality Deprecated in API 7.0 (:pr:`4114` closes :issue:`4099`)
- API 7.1 (:pr:`4118`)
- Add Parameter
media_write_timeout
toHTTPXRequest
and MethodApplicationBuilder.media_write_timeout
(:pr:`4120` closes :issue:`3864`) - Handle Properties in
TelegramObject.__setstate__
(:pr:`4134` closes :issue:`4111`)
- Add Missing Slot to
Updater
(:pr:`4130` closes :issue:`4127`)
- Improve HTML Download of Documentation (:pr:`4146` closes :issue:`4050`)
- Documentation Improvements (:pr:`4109`, :issue:`4116`)
- Update Copyright to 2024 (:pr:`4121` by @aelkheir closes :issue:`4041`)
- 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 ofCancelledError
(:pr:`4126`)
- 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`)
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.
- API 7.0 (:pr:`4034` closes :issue:`4033`, :pr:`4038` by @aelkheir)
- Fix Type Hint for
filters
Parameter ofMessageHandler
(:pr:`4039` by @Palaptin) - Deprecate
filters.CHAT
(:pr:`4083` closes :issue:`4062`) - Improve Error Handling in Built-In Webhook Handler (:pr:`3987` closes :issue:`3979`)
- Add Parameter
pattern
toPreCheckoutQueryHandler
andfilters.SuccessfulPayment
(:pr:`4005` by @aelkheir closes :issue:`3752`) - Add Missing Conversions of
type
to Corresponding Enum fromtelegram.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 toBaseUpdateProcessor
(:pr:`4001`)
- Documentation Improvements (:pr:`3919`)
- Add Docstring to Dunder Methods (:pr:`3929` closes :issue:`3926`)
- Documentation Improvements (:pr:`4002`, :pr:`4079` by @kenjitagawa, :pr:`4104` by @xTudoS)
- Drop Usage of DeepSource (:pr:`4100`)
- Improve Type Completeness & Corresponding Workflow (:pr:`4035`)
- Bump
ruff
and Removesort-all
(:pr:`4075`) - Move Handler Files to
_handlers
Subdirectory (:pr:`4064` by @lucasmolinari closes :issue:`4060`) - Introduce
sort-all
Hook forpre-commit
(:pr:`4052`) - Use Recommended
pre-commit
Mirror forblack
(:pr:`4051`) - Remove Unused
DEFAULT_20
(:pr:`3997`) - Migrate From
setup.cfg
topyproject.toml
Where Possible (:pr:`4088`)
- Bump
black
andruff
(: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`)
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.
- Add
JobQueue.scheduler_configuration
and Corresponding Warnings (:pr:`3913` closes :issue:`3837`) - Add Parameter
socket_options
toHTTPXRequest
(: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
toproxy
and Allowhttpx.{Proxy, URL}
as Input (:pr:`3939` closes :issue:`3844`)
- Adjust
read_timeout
Behavior forBot.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`)
- Add Documentation for
__aenter__
and__aexit__
Methods (:pr:`3907` closes :issue:`3886`) - Improve Insertion of Kwargs into
Bot
Methods (:pr:`3965`)
- Adjust Tests to New Error Messages (:pr:`3970`)
- 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`)
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.
- Drop Backward Compatibility Layer Introduced in :pr:`3853` (API 6.8) (:pr:`3873`)
- Full Support for Bot API 6.9 (:pr:`3898`)
- 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`)
- Add Support Python 3.12 (:pr:`3915`)
- Documentation Improvements (:pr:`3910`)
- 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 ofblack
(:pr:`3882`) - Move Dunder Methods to the Top of Class Bodies (:pr:`3883`)
- Remove Superfluous
Defaults.__ne__
(:pr:`3884`)
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`)
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.
- API 6.8 (:pr:`3853`)
- Remove Functionality Deprecated Since Bot API 6.5, 6.6 or 6.7 (:pr:`3858`)
- Extend Allowed Values for HTTP Version (:pr:`3823` closes :issue:`3821`)
- Add
has_args
Parameter toCommandHandler
(:pr:`3854` by @thatguylah closes :issue:`3798`) - Add
Application.stop_running()
and Improve Marking Updates as Read onUpdater.stop()
(:pr:`3804`)
- Type Hinting Fixes for
WebhookInfo
(:pr:`3871`) - Test and Document
Exception.__cause__
onNetworkError
(:pr:`3792` closes :issue:`3778`) - Add Support for Python 3.12 RC (:pr:`3847`)
- Remove Version Check from Examples (:pr:`3846`)
- Documentation Improvements (:pr:`3803`, :pr:`3797`, :pr:`3816` by @trim21, :pr:`3829` by @aelkheir)
- Provide Versions of
customwebhookbot.py
with Different Frameworks (:pr:`3820` closes :issue:`3717`)
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`)
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.
- Drop Support for Python 3.7 (:pr:`3728`, :pr:`3742` by @Trifase, :pr:`3749` by @thefunkycat, :pr:`3740` closes :issue:`3732`, :pr:`3754` closes :issue:`3731`, :pr:`3753`, :pr:`3764`, :pr:`3762`, :pr:`3759` closes :issue:`3733`)
- Make Integration of
APScheduler
intoJobQueue
More Explicit (:pr:`3695`) - Introduce
BaseUpdateProcessor
for Customized Concurrent Handling of Updates (:pr:`3654` closes :issue:`3509`)
- Fix Inconsistent Type Hints for
timeout
Parameter ofBot.get_updates
(:pr:`3709` by @revolter) - Use Explicit Optionals (:pr:`3692` by @MiguelX413)
- Fix Wrong Warning Text in
KeyboardButton.__eq__
(:pr:`3768`)
- Explicitly set
allowed_updates
in Examples (:pr:`3741` by @Trifase closes :issue:`3726`) - Bump
furo
andsphinx
(:pr:`3719`) - Documentation Improvements (:pr:`3698`, :pr:`3708` by @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`)
- 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`)
- 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`)
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.
- Full support for API 6.7 (:pr:`3673`)
- Add a Stability Policy (:pr:`3622`)
- 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 toDefaults.tzinfo
(:pr:`3632`)
- 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`)
- 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`)
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.
- Full Support for API 6.6 (:pr:`3584`)
- Revert to HTTP/1.1 as Default and make HTTP/2 an Optional Dependency (:pr:`3576`)
- 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`)
- 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`)
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.
- Full Support for Bot API 6.5 (:pr:`3530`)
- 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`)
- 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`)
- 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
topre-commit
Hooks (:pr:`3488`) - Improve Warning for
days
Parameter ofJobQueue.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`)
- 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 tov0.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`)
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.
- Full Support For Bot API 6.4 (:pr:`3449`)
- 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 RaiseTypeError
(: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`)
- Downgrade
sphinx
to 5.3.0 to Fix Search (:pr:`3457`) - Bump
sphinx
from 5.3.0 to 6.0.0 (:pr:`3450`)
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.
- Make
TelegramObject
Immutable (:pr:`3249`)
- 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`)
- 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`)
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.
- Only Persist Arbitrary
callback_data
ifExtBot.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`)
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.
- 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
IntoFile.download_to_drive
AndFile.download_to_memory
(:pr:`3223`)
- Add Properties for API Settings of
Bot
(:pr:`3247`) - Add
chat_id
andusername
Parameters toChatJoinRequestHandler
(:pr:`3261`) - Introduce
TelegramObject.api_kwargs
(:pr:`3233`) - Add Two Constants Related to Local Bot API Servers (:pr:`3296`)
- Add
recursive
Parameter toTelegramObject.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
andcaption_entities
toBot.send_media_group
(:pr:`3295`) - Add Several New Enums To Constants (:pr:`3351`)
- Fix
CallbackQueryHandler
Not Handling Non-String Data Correctly With Regex Patterns (:pr:`3252`) - Fix Defaults Handling in
Bot.answer_web_app_query
(:pr:`3362`)
- 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`)
- 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 MakeJobs
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 IntoChatLimit
(:pr:`3377`)
- 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`)
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.
- Fix a Bug in
setup.py
Regarding Optional Dependencies (:pr:`3209`)
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.
- Full Support for API 6.2 (:pr:`3195`)
- 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`)
- Fix
helpers.mention_markdown
for Markdown V1 and Improve Related Unit Tests (:pr:`3155`) - Add
api_kwargs
Parameter toBot.log_out
and Improve Related Unit Tests (:pr:`3147`) - Make
Bot.delete_my_commands
a Coroutine Function (:pr:`3136`) - Fix
ConversationHandler.check_update
not respectingper_user
(:pr:`3128`)
- 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 fromrequirements-dev.txt
(:pr:`3120`) - Change Default Values for
concurrent_updates
andconnection_pool_size
(:pr:`3127`) - Documentation Improvements (:pr:`3139`, :pr:`3153`, :pr:`3135`)
- Type Hinting Fixes (:pr:`3202`)
- 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`)
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.
- Full Support for API 6.1 (:pr:`3112`)
- Add Additional Shortcut Methods to
Chat
(:pr:`3115`) - Mermaid-based Example State Diagrams (:pr:`3090`)
- 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`)
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.
- Drop Support for
ujson
and insteadBaseRequest.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
Withcron
(: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 toContextTypes.DEFAULT_TYPE
(:pr:`3017`, :pr:`3023`) - Rename
Job.context
toJob.data
(:pr:`3028`) - Rename
Handler
toBaseHandler
(:pr:`3019`)
- Add
Application.post_init
(:pr:`3078`) - Add Arguments
chat/user_id
toCallbackContext
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
totelegram.__bot_api_version__
(:pr:`3030`)
- Fix Non-Blocking Entry Point in
ConversationHandler
(:pr:`3068`) - Escape Backslashes in
escape_markdown
(:pr:`3055`)
- 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`)
- 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 Updatepre-commit.ci
Configuration (:pr:`3049`) - Adjust
pre-commit
Settings forisort
(:pr:`3043`) - Add Version Check to Examples (:pr:`3036`)
- Use
Collection
Instead ofList
andTuple
(: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`)
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.
- 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
totelegram.error.PassportDecryptionError
(:pr:`2621`) - Make
BasePersistence
Methods Abstract (:pr:`2624`) - Remove
day_is_strict
argument ofJobQueue.run_monthly
(:pr:`2634` by iota-008) - Move
Defaults
totelegram.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 withTelegramObject
(:pr:`2893`)
- Introduce Builder Pattern (:pr:`2646`)
- Add
Filters.update.edited
(:pr:`2705` by PhilippFr) - Introduce
Enums
fortelegram.constants
(:pr:`2708`) - Accept File Paths for
private_key
(:pr:`2724`) - Associate
Jobs
withchat/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) - Add Method
drop_chat/user_data
toDispatcher
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`)
- Improve Type Hinting for
CallbackContext
(:pr:`2587` by revolter) - Fix Signatures and Improve
test_official
(:pr:`2643`) - Refine
Dispatcher.dispatch_error
(:pr:`2660`) - Make
InlineQuery.answer
RaiseValueError
(:pr:`2675`) - Improve Signature Inspection for Bot Methods (:pr:`2686`)
- Introduce
TelegramObject.set/get_bot
(:pr:`2712` by zpavloudis) - Improve Subscription of
TelegramObject
(:pr:`2719` by 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`)
- 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)
- Handle Filepaths via the
pathlib
Module (:pr:`2688` by eldbud) - Refactor MRO of
InputMedia*
and Some File-Like Classes (:pr:`2717` by eldbud) - Update Exceptions for Immutable Attributes (:pr:`2749`)
- Refactor Warnings in
ConversationHandler
(:pr:`2755`, :pr:`2784`) - Use
__all__
Consistently (:pr:`2805`)
- 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) - Make Tests Agnostic of the CWD (:pr:`2727` by 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`)
- 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, :pr:`2739` by 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) - Overhaul Readmes, Update RTD Startpage & Other Improvements (:pr:`2969`)
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.
Major Changes:
- Full Support for Bot API 5.7 (:pr:`2881`)
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.
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`)
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.
Major Changes:
- Full Support for Api 5.5 (:pr:`2809`)
Minor Changes
- Adjust Automated Locking of Inactive Issues (:pr:`2775`)
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.
Doc fixes:
- Add
ChatJoinRequest(Handler)
to Docs (:pr:`2771`)
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.
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 inExtBot
(: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`)
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.
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
andExtBot
(: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`)
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 toChosenInlineResultHandler
(: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 toUpdater.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 forBot.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`)
Released 2021-04-30
Major Changes:
Full support of Bot API 5.2 (:pr:`2489`).
Note
The
start_parameter
argument ofBot.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
, DeprecatingChatAction.RECORD_AUDIO
andChatAction.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`)
Released 2021-03-14
Hot fix release:
- Fixed a bug in
setup.py
(:pr:`2431`)
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`)
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`)
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 toConversationHandler
(: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 toMessage.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`)
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
tov13.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`)
Released 2020-10-07
For a detailed guide on how to migrate from v12 to v13, see this wiki page.
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
inConversationHandler
(: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 forFilters.update
first (:pr:`2085`) - Fix
PicklePersistence.flush()
with onlybot_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`)
Released 2020-06-22
Major Changes:
- Remove Python 2 support (:pr:`1715`)
- Bot API 4.9 support (:pr:`1980`)
- IDs/Usernames of
Filters.user
andFilters.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`)
Released 2020-05-02
Major Changes:
- Bot API 4.8 support. Note: The
Dice
object now has a second positional argumentemoji
. This is relevant, if you instantiateDice
objects manually. (:pr:`1917`) - Added
tzinfo
argument tohelpers.from_timestamp
. It now returns an timezone aware object. This is relevant forMessage.{date,forward_date,edit_date}
,Poll.close_date
andChatMember.until_date
(:pr:`1621`)
New Features:
- New method
run_monthly
for theJobQueue
(: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 raisingNotImplementedError
forHandler
,BasePersistence
andBaseFilter
(:pr:`1905`) - Doc fixes (:pr:`1914`, :pr:`1902`, :pr:`1910`)
Released 2020-04-11
Bug fixes:
- Fix serialization of
reply_markup
in media messages (:pr:`1889`)
Released 2020-04-10
Major Changes:
- Bot API 4.7 support. Note: In
Bot.create_new_sticker_set
andBot.add_sticker_to_set
, the order of the parameters had be changed, as thepng_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
toTIMEOUT
handlers ofConversationHandler
(:pr:`1826`) - Tweak handling of persistence and update persistence after job calls (:pr:`1827`)
- Use checkout@v2 for GitHub actions (:pr:`1887`)
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`)
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`)
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`)
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.
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, becauseCommandHandler
checks forMessageEntity.BOT_COMMAND
since v12. This might lead to your MessageHandlers receiving more updates than before (:pr:`1680`).Filters.command
new checks forMessageEntity.BOT_COMMAND
instead of just a leading slash. Also byFilters.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 toUpdater
to allow passing a customizedDispatcher
(: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 inJobQueue._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`)
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`).
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`).
Released 2019-09-18
Hot fix release
Fixed regression in the vendored urllib3 (:pr:`1517`).
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`)
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
onUpdater
orDispatcher
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!
- Remove
run_async_timeout
andtimed_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`)
- 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`)
- 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`)
- 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
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
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`)
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`)
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.
Released 2018-03-05
Fixes:
- Fix conversationhandler timeout (PR :pr:`1032`)
- Add missing docs utils (PR :pr:`912`)
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`)
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.
Released 2017-10-15
- Fix Commandhandler crashing on single character messages (PR :pr:`873`).
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.
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.
Released 2017-07-28
- Fix TypeError exception in RegexHandler (PR #751).
- Small documentation fix (PR #749).
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 fromutils
(Botan
is still available throughcontrib
). - Removed deprecated
ReplyKeyboardHide
. - Removed deprecated
edit_message
argument ofbot.set_game_score
. - Internal restructure of files.
- Improved documentation.
- Improved unitests.
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 vendoredurllib3
toptb_urllib3
2017-05-19
Released 6.0.1
- Add support for
User.language_code
- Fix
Message.text_html
andMessage.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
andtext_html
properties toMessage
- :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
andFilters.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 supportsdatetime.timedelta
in addition to secondsJobQueue
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
andCallbackQuery
- RegEx filtering for
CallbackQueryHandler
andInlineQueryHandler
- New
MessageHandler
filters:forwarded
andentity
- Add
Message.get_entity
to correctly handle UTF-16 codepoints andMessageEntity
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
andcertifi
2016-06-10
Released 4.2.1
- Fix
CallbackQuery.to_dict()
bug (thanks to @jlmadurga) - Fix
editMessageText
exception when receiving aCallbackQuery
2016-05-28
Released 4.2
- Implement Bot API 2.1
- Move
botan
module totelegram.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
withclean=True
- Methods now have snake_case equivalent, for example
telegram.Bot.send_message
is the same astelegram.Bot.sendMessage
2016-05-01
Released 4.0.3
- Add missing attribute
location
toInlineQuery
2016-04-29
Released 4.0.2
- Bugfixes
KeyboardReplyMarkup
now acceptsstr
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
- Changes from 4.0rc1
- The syntax of filters for
MessageHandler
(upper/lower cases) - Handler groups are now identified by
int
only, and ordered
- The syntax of filters for
- 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
2016-03-22
Released 3.4
- Move
Updater
,Dispatcher
andJobQueue
to newtelegram.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
andTimedOut
- 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
andDispatcher
start
andstop
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
andgroupdict
as additional arguments for regex-based handlers
2015-12-16
Released 3.1.0
- The
chat
-field inMessage
is now of typeChat
. (API update Oct 8 2015) Message
now contains the optional fieldssupergroup_chat_created
,migrate_to_chat_id
,migrate_from_chat_id
andchannel_chat_created
. (API update Nov 2015)
2015-12-08
Released 3.0.0
- Introducing the
Updater
andDispatcher
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
fromfuture
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
andGroupChat
classes (pre-release Telegram feature)
2015-09-24
Released 2.8.5
- Handles HTTP Bad Gateway (503) errors on request
- Fixes regression on
Audio
andDocument
for unicode fields
2015-09-20
Released 2.8.4
getFile
andFile.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 handlingIOError
orURLError
)
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 andsendVoice
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
andclearCredentials
methods - Giving
AUTHORS
the proper credits for their contribution for this project Message.date
andMessage.forward_date
are nowdatetime
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
insteadNone
whenmessage.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 initializingtelegram.Bot
2015-07-20
Released 2.1
- Fix
to_dict
forDocument
andVideo
2015-07-19
Released 2.0
- Fixes bugs
- Improves
__str__
overto_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 onchat
(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