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 (#3530)
- Add
Application(Builder).post_stop
(#3466) - Add
Chat.effective_name
Convenience Property (#3485) - Allow to Adjust HTTP Version and Use HTTP/2 by Default (#3506)
- Enhance
chatmemberbot
Example (#3500) - Automatically Generate Cross-Reference Links (#3501, #3529, #3523)
- Add Some Graphic Elements to Docs (#3535)
- Various Smaller Improvements (#3464, #3483, #3484, #3497, #3512, #3515, #3498)
- Update Copyright to 2023 (#3459)
- Stabilize Tests on Closing and Hiding the General Forum Topic (#3460)
- Fix Dependency Warning Typo (#3474)
- Cache Dependencies on
GitHub
Actions (#3469) - Store Documentation Builts as
GitHub
Actions Artifacts (#3468) - Add
ruff
topre-commit
Hooks (#3488) - Improve Warning for
days
Parameter ofJobQueue.run_daily
(#3503) - Improve Error Message for
NetworkError
(#3505) - Lock Inactive Threads Only Once Each Day (#3510)
- Bump
pytest
from 7.2.0 to 7.2.1 (#3513) - Check for 3D Arrays in
check_keyboard_type
(#3514) - Explicit Type Annotations (#3508)
- Increase Verbosity of Type Completeness CI Job (#3531)
- Fix CI on Python 3.11 + Windows (#3547)
- Bump
actions/stale
from 6 to 7 (#3461) - Bump
dessant/lock-threads
from 3.0.0 to 4.0.0 (#3462) pre-commit
autoupdate (#3470)- Update
httpx
requirement from ~=0.23.1 to ~=0.23.3 (#3489) - Update
cachetools
requirement from ~=5.2.0 to ~=5.2.1 (#3502) - Improve Config for
ruff
and Bump tov0.0.222
(#3507) - Update
cachetools
requirement from ~=5.2.1 to ~=5.3.0 (#3520) - Bump
isort
to 5.12.0 (#3525) - Update
apscheduler
requirement from ~=3.9.1 to ~=3.10.0 (#3532) pre-commit
autoupdate (#3537)- Update
cryptography
requirement to >=39.0.1 to address Vulnerability (#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 (#3449)
- Documentation Improvements (#3428, #3423, #3429, #3441, #3404, #3443)
- Allow
Sequence
Input for Bot Methods (#3412) - Update Link-Check CI and Replace a Dead Link (#3456)
- Freeze Classes Without Arguments (#3453)
- Add New Constants (#3444)
- Override
Bot.__deepcopy__
to RaiseTypeError
(#3446) - Add Log Decorator to
Bot.get_webhook_info
(#3442) - Add Documentation On Verifying Releases (#3436)
- Drop Undocumented
Job.__lt__
(#3432)
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 (#3249)
- Reduce Code Duplication in Testing
Defaults
(#3419) - Add Notes and Warnings About Optional Dependencies (#3393)
- Simplify Internals of
Bot
Methods (#3396) - Reduce Code Duplication in Several
Bot
Methods (#3385) - Documentation Improvements (#3386, #3395, #3398, #3403)
- Bump
pytest-xdist
from 3.0.2 to 3.1.0 (#3415) - Bump
pytest-asyncio
from 0.20.2 to 0.20.3 (#3417) pre-commit
autoupdate (#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 (#3384) - Improve Backwards Compatibility of
TelegramObjects
Pickle Behavior (#3382) - Fix Naming and Keyword Arguments of
File.download_*
Methods (#3380) - Fix Return Value Annotation of
Chat.create_forum_topic
(#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 (#3346, #3343, #3342, #3360)
- Explicit
local_mode
Setting (#3154) - Make Almost All 3rd Party Dependencies Optional (#3267)
- Split
File.download
IntoFile.download_to_drive
AndFile.download_to_memory
(#3223)
- Add Properties for API Settings of
Bot
(#3247) - Add
chat_id
andusername
Parameters toChatJoinRequestHandler
(#3261) - Introduce
TelegramObject.api_kwargs
(#3233) - Add Two Constants Related to Local Bot API Servers (#3296)
- Add
recursive
Parameter toTelegramObject.to_dict()
(#3276) - Overhaul String Representation of
TelegramObject
(#3234) - Add Methods
Chat.mention_{html, markdown, markdown_v2}
(#3308) - Add
constants.MessageLimit.DEEP_LINK_LENGTH
(#3315) - Add Shortcut Parameters
caption
,parse_mode
andcaption_entities
toBot.send_media_group
(#3295) - Add Several New Enums To Constants (#3351)
- Fix
CallbackQueryHandler
Not Handling Non-String Data Correctly With Regex Patterns (#3252) - Fix Defaults Handling in
Bot.answer_web_app_query
(#3362)
- Update PR Template (#3361)
- Document Dunder Methods of
TelegramObject
(#3319) - Add Several References to Wiki pages (#3306)
- Overhaul Search bar (#3218)
- Unify Documentation of Arguments and Attributes of Telegram Classes (#3217, #3292, #3303, #3312, #3314)
- Several Smaller Improvements (#3214, #3271, #3289, #3326, #3370, #3376, #3366)
- Improve Warning About Unknown
ConversationHandler
States (#3242) - Switch from Stale Bot to
GitHub
Actions (#3243) - Bump Python 3.11 to RC2 in Test Matrix (#3246)
- Make
Job.job
a Property and MakeJobs
Hashable (#3250) - Skip
JobQueue
Tests on Windows Again (#3280) - Read-Only
CallbackDataCache
(#3266) - Type Hinting Fix for
Message.effective_attachment
(#3294) - Run Unit Tests in Parallel (#3283)
- Update Test Matrix to Use Stable Python 3.11 (#3313)
- Don't Edit Objects In-Place When Inserting
ext.Defaults
(#3311) - Add a Test for
MessageAttachmentType
(#3335) - Add Three New Test Bots (#3347)
- Improve Unit Tests Regarding
ChatMemberUpdated.difference
(#3352) - Flaky Unit Tests: Use
pytest
Marker (#3354) - Fix
DeepSource
Issues (#3357) - Handle Lists and Tuples and Datetimes Directly in
TelegramObject.to_dict
(#3353) - Update Meta Config (#3365)
- Merge
ChatDescriptionLimit
Enum IntoChatLimit
(#3377)
- Bump
pytest
from 7.1.2 to 7.1.3 (#3228) pre-commit
Updates (#3221)- Bump
sphinx
from 5.1.1 to 5.2.3 (#3269) - Bump
furo
from 2022.6.21 to 2022.9.29 (#3268) - Bump
actions/stale
from 5 to 6 (#3277) pre-commit
autoupdate (#3282)- Bump
sphinx
from 5.2.3 to 5.3.0 (#3300) - Bump
pytest-asyncio
from 0.19.0 to 0.20.1 (#3299) - Bump
pytest
from 7.1.3 to 7.2.0 (#3318) - Bump
pytest-xdist
from 2.5.0 to 3.0.2 (#3317) pre-commit
autoupdate (#3325)- Bump
pytest-asyncio
from 0.20.1 to 0.20.2 (#3359) - Update
httpx
requirement from ~=0.23.0 to ~=0.23.1 (#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 (#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 (#3195)
- New Rate Limiting Mechanism (#3148)
- Make
chat/user_data
Available in Error Handler for Errors in Jobs (#3152) - Add
Application.post_shutdown
(#3126)
- Fix
helpers.mention_markdown
for Markdown V1 and Improve Related Unit Tests (#3155) - Add
api_kwargs
Parameter toBot.log_out
and Improve Related Unit Tests (#3147) - Make
Bot.delete_my_commands
a Coroutine Function (#3136) - Fix
ConversationHandler.check_update
not respectingper_user
(#3128)
- Add Python 3.11 to Test Suite & Adapt Enum Behaviour (#3168)
- Drop Manual Token Validation (#3167)
- Simplify Unit Tests for
Bot.send_chat_action
(#3151) - Drop
pre-commit
Dependencies fromrequirements-dev.txt
(#3120) - Change Default Values for
concurrent_updates
andconnection_pool_size
(#3127) - Documentation Improvements (#3139, #3153, #3135)
- Type Hinting Fixes (#3202)
- Bump
sphinx
from 5.0.2 to 5.1.1 (#3177) - Update
pre-commit
Dependencies (#3085) - Bump
pytest-asyncio
from 0.18.3 to 0.19.0 (#3158) - Update
tornado
requirement from ~=6.1 to ~=6.2 (#3149) - Bump
black
from 22.3.0 to 22.6.0 (#3132) - Bump
actions/setup-python
from 3 to 4 (#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 (#3112)
- Documentation Improvements (#3103, #3121, #3098)
- Stabilize CI (#3119)
- Bump
pyupgrade
from 2.32.1 to 2.34.0 (#3096) - Bump
furo
from 2022.6.4 to 2022.6.4.1 (#3095) - Bump
mypy
from 0.960 to 0.961 (#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
(#3037, #3072) - Drop
InputFile.is_image
(#3053) - Drop Explicit Type conversions in
__init__
s (#3056) - Handle List-Valued Attributes More Consistently (#3057)
- Split
{Command, Prefix}Handler
And Make Attributes Immutable (#3045) - Align Behavior Of
JobQueue.run_daily
Withcron
(#3046) - Make PTB Specific Keyword-Only Arguments for PTB Specific in Bot methods (#3035)
- Adjust Equality Comparisons to Fit Bot API 6.0 (#3033)
- Add Tuple Based Version Info (#3030)- Improve Type Annotations for
CallbackContext
and Move Default Type Alias toContextTypes.DEFAULT_TYPE
(#3017, #3023) - Rename
Job.context
toJob.data
(#3028) - Rename
Handler
toBaseHandler
(#3019)
- Add
Application.post_init
(#3078) - Add Arguments
chat/user_id
toCallbackContext
And Example On Custom Webhook Setups (#3059) - Add Convenience Property
Message.id
(#3077) - Add Example for
WebApp
(#3052) - Rename
telegram.bot_api_version
totelegram.__bot_api_version__
(#3030)
- Fix Non-Blocking Entry Point in
ConversationHandler
(#3068) - Escape Backslashes in
escape_markdown
(#3055)
- Update
httpx
requirement from ~=0.22.0 to ~=0.23.0 (#3069) - Update
cachetools
requirement from ~=5.0.0 to ~=5.2.0 (#3058, #3080)
- Move Examples To Documentation (#3089)
- Documentation Improvements and Update Dependencies (#3010, #3007, #3012, #3067, #3081, #3082)
- Improve Some Unit Tests (#3026)
- Update Code Quality dependencies (#3070, #3032,`#2998`_, #2999)
- Don't Set Signal Handlers On Windows By Default (#3065)
- Split
{Command, Prefix}Handler
And Make Attributes Immutable (#3045) - Apply
isort
and Updatepre-commit.ci
Configuration (#3049) - Adjust
pre-commit
Settings forisort
(#3043) - Add Version Check to Examples (#3036)
- Use
Collection
Instead ofList
andTuple
(#3025) - Remove Client-Side Parameter Validation (#3024)
- Don't Pass Default Values of Optional Parameters to Telegram (#2978)
- Stabilize
Application.run_*
on Python 3.7 (#3009) - Ignore Code Style Commits in
git blame
(#3003) - Adjust Tests to Changed API Behavior (#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 (#2604)
- Drop Non-
CallbackContext
API (#2617) - Remove
__dict__
from__slots__
and drop Python 3.6 (#2619, #2636) - Move and Rename
TelegramDecryptionError
totelegram.error.PassportDecryptionError
(#2621) - Make
BasePersistence
Methods Abstract (#2624) - Remove
day_is_strict
argument ofJobQueue.run_monthly
(#2634 by iota-008) - Move
Defaults
totelegram.ext
(#2648) - Remove Deprecated Functionality (#2644, #2740, #2745)
- Overhaul of Filters (#2759, #2922)
- Switch to
asyncio
and Refactor PTBs Architecture (#2731) - Improve
Job.__getattr__
(#2832) - Remove
telegram.ReplyMarkup
(#2870) - Persistence of
Bots
: Refactor Automatic Replacement and Integration withTelegramObject
(#2893)
- Introduce Builder Pattern (#2646)
- Add
Filters.update.edited
(#2705 by PhilippFr) - Introduce
Enums
fortelegram.constants
(#2708) - Accept File Paths for
private_key
(#2724) - Associate
Jobs
withchat/user_id
(#2731) - Convenience Functionality for
ChatInviteLinks
(#2782) - Add
Dispatcher.add_handlers
(#2823) - Improve Error Messages in
CommandHandler.__init__
(#2837) Defaults.protect_content
(#2840)- Add
Dispatcher.migrate_chat_data
(#2848 by DonalDuck004) - Add Method
drop_chat/user_data
toDispatcher
and Persistence (#2852) - Add methods
ChatPermissions.{all, no}_permissions
(#2948) - Full Support for API 6.0 (#2956)
- Add Python 3.10 to Test Suite (#2968)
- Improve Type Hinting for
CallbackContext
(#2587 by revolter) - Fix Signatures and Improve
test_official
(#2643) - Refine
Dispatcher.dispatch_error
(#2660) - Make
InlineQuery.answer
RaiseValueError
(#2675) - Improve Signature Inspection for Bot Methods (#2686)
- Introduce
TelegramObject.set/get_bot
(#2712 by zpavloudis) - Improve Subscription of
TelegramObject
(#2719 by SimonDamberg) - Use Enums for Dynamic Types & Rename Two Attributes in
ChatMember
(#2817) - Return Plain Dicts from
BasePersistence.get_*_data
(#2873) - Fix a Bug in
ChatMemberUpdated.difference
(#2947) - Update Dependency Policy (#2958)
- Add User Friendly Type Check For Init Of
{Inline, Reply}KeyboardMarkup
(#2657) - Warnings Overhaul (#2662)
- Clear Up Import Policy (#2671)
- Mark Internal Modules As Private (#2687 by kencx)
- Handle Filepaths via the
pathlib
Module (#2688 by eldbud) - Refactor MRO of
InputMedia*
and Some File-Like Classes (#2717 by eldbud) - Update Exceptions for Immutable Attributes (#2749)
- Refactor Warnings in
ConversationHandler
(#2755, #2784) - Use
__all__
Consistently (#2805)
- Add Custom
pytest
Marker to Ease Development (#2628) - Pass Failing Jobs to Error Handlers (#2692)
- Update Notification Workflows (#2695)
- Use Error Messages for
pylint
Instead of Codes (#2700 by Piraty) - Make Tests Agnostic of the CWD (#2727 by eldbud)
- Update Code Quality Dependencies (#2748)
- Improve Code Quality (#2783)
- Update
pre-commit
Settings & Improve a Test (#2796) - Improve Code Quality & Test Suite (#2843)
- Fix failing animation tests (#2865)
- Update and Expand Tests & pre-commit Settings and Improve Code Quality (#2925)
- Extend Code Formatting With Black (#2972)
- Update Workflow Permissions (#2984)
- Adapt Tests to Changed
Bot.get_file
Behavior (#2995)
- Doc Fixes (#2597)
- Add Code Comment Guidelines to Contribution Guide (#2612)
- Add Cross-References to External Libraries & Other Documentation Improvements (#2693, #2691 by joesinghh, #2739 by eldbud)
- Use Furo Theme, Make Parameters Referenceable, Add Documentation Building to CI, Improve Links to Source Code & Other Improvements (#2856, #2798, #2854, #2841)
- Documentation Fixes & Improvements (#2822)
- Replace
git.io
Links (#2872 by murugu-21) - Overhaul Readmes, Update RTD Startpage & Other Improvements (#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 (#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 (#2835)
Minor Changes & Doc fixes:
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 (#2809)
Minor Changes
- Adjust Automated Locking of Inactive Issues (#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 (#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 (#2767)
Minor changes, CI improvements, Doc fixes and Type hinting:
- Create Issue Template Forms (#2689)
- Fix
camelCase
Functions inExtBot
(#2659) - Fix Empty Captions not Being Passed by
Bot.copy_message
(#2651) - Fix Setting Thumbs When Uploading A Single File (#2583)
- Fix Bug in
BasePersistence.insert
/replace_bot
for Objects with__dict__
not in__slots__
(#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 (#2572)
Bug Fixes:
- Fix Bug in
BasePersistence.insert/replace_bot
for Objects with__dict__
in their slots (#2561) - Remove Incorrect Warning About
Defaults
andExtBot
(#2553)
Minor changes, CI improvements, Doc fixes and Type hinting:
- Type Hinting Fixes (#2552)
- Doc Fixes (#2551)
- Improve Deprecation Warning for
__slots__
(#2574) - Stabilize CI (#2575)
- Fix Coverage Configuration (#2571)
- Better Exception-Handling for
BasePersistence.replace/insert_bot
(#2564) - Remove Deprecated
pass_args
from Deeplinking Example (#2550)
Released 2021-06-06
New Features:
- Arbitrary
callback_data
(#1844) - Add
ContextTypes
&BasePersistence.refresh_user/chat/bot_data
(#2262) - Add
Filters.attachment
(#2528) - Add
pattern
Argument toChosenInlineResultHandler
(#2517)
Major Changes:
- Add
slots
(#2345)
Minor changes, CI improvements, Doc fixes and Type hinting:
- Doc Fixes (#2495, #2510)
- Add
max_connections
Parameter toUpdater.start_webhook
(#2547) - Fix for
Promise.done_callback
(#2544) - Improve Code Quality (#2536, #2454)
- Increase Test Coverage of
CallbackQueryHandler
(#2520) - Stabilize CI (#2522, #2537, #2541)
- Fix
send_phone_number_to_provider
argument forBot.send_invoice
(#2527) - Handle Classes as Input for
BasePersistence.replace/insert_bot
(#2523) - Bump Tornado Version and Remove Workaround from #2067 (#2494)
Released 2021-04-30
Major Changes:
Full support of Bot API 5.2 (#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
(#2460)
New Features:
- Convenience Utilities & Example for Handling
ChatMemberUpdated
(#2490) Filters.forwarded_from
(#2446)
Minor changes, CI improvements, Doc fixes and Type hinting:
- Improve Timeouts in
ConversationHandler
(#2417) - Stabilize CI (#2480)
- Doc Fixes (#2437)
- Improve Type Hints of Data Filters (#2456)
- Add Two
UserWarnings
(#2464) - Improve Code Quality (#2450)
- Update Fallback Test-Bots (#2451)
- Improve Examples (#2441, #2448)
Released 2021-03-14
Hot fix release:
- Fixed a bug in
setup.py
(#2431)
Released 2021-03-14
Major Changes:
- Full support of Bot API 5.1 (#2424)
Minor changes, CI improvements, doc fixes and type hinting:
- Improve
Updater.set_webhook
(#2419) - Doc Fixes (#2404)
- Type Hinting Fixes (#2425)
- Update
pre-commit
Settings (#2415) - Fix Logging for Vendored
urllib3
(#2427) - Stabilize Tests (#2409)
Released 2021-02-19
Major Changes:
- Make
cryptography
Dependency Optional & Refactor Some Tests (#2386, #2370) - Deprecate
MessageQueue
(#2393)
Bug Fixes:
Minor changes:
- Doc Fixes (#2359)
Released 2021-02-02
Major Changes:
New Features:
- Add Missing Shortcuts to
Message
(#2330) - Rich Comparison for
Bot
(#2320) - Add
run_async
Parameter toConversationHandler
(#2292) - Add New Shortcuts to
Chat
(#2291) - Add New Constant
MAX_ANSWER_CALLBACK_QUERY_TEXT_LENGTH
(#2282) - Allow Passing Custom Filename For All Media (#2249)
- Handle Bytes as File Input (#2233)
Bug Fixes:
- Fix Escaping in Nested Entities in
Message
Properties (#2312) - Adjust Calling of
Dispatcher.update_persistence
(#2285) - Add
quote
kwarg toMessage.reply_copy
(#2232) ConversationHandler
: Docs &edited_channel_post
behavior (#2339)
Minor changes, CI improvements, doc fixes and type hinting:
- Doc Fixes (#2253, #2225)
- Reduce Usage of
typing.Any
(#2321) - Extend Deeplinking Example (#2335)
- Add pyupgrade to pre-commit Hooks (#2301)
- Add PR Template (#2299)
- Drop Nightly Tests & Update Badges (#2323)
- Update Copyright (#2289, #2287)
- Change Order of Class DocStrings (#2256)
- Add macOS to Test Matrix (#2266)
- Start Using Versioning Directives in Docs (#2252)
- Improve Annotations & Docs of Handlers (#2243)
Released 2020-11-29
Major Changes:
- Full support of Bot API 5.0 (#2181, #2186, #2190, #2189, #2183, #2184, #2188, #2185, #2192, #2196, #2193, #2223, #2199, #2187, #2147, #2205)
New Features:
- Add
Defaults.run_async
(#2210) - Improve and Expand
CallbackQuery
Shortcuts (#2172) - Add XOR Filters and make
Filters.name
a Property (#2179) - Add
Filters.document.file_extension
(#2169) - Add
Filters.caption_regex
(#2163) - Add
Filters.chat_type
(#2128) - Handle Non-Binary File Input (#2202)
Bug Fixes:
- Improve Handling of Custom Objects in
BasePersistence.insert
/replace_bot
(#2151) - Fix bugs in
replace/insert_bot
(#2218)
Minor changes, CI improvements, doc fixes and type hinting:
- Improve Type hinting (#2204, #2118, #2167, #2136)
- Doc Fixes & Extensions (#2201, #2161)
- Use F-Strings Where Possible (#2222)
- Rename kwargs to _kwargs where possible (#2182)
- Comply with PEP561 (#2168)
- Improve Code Quality (#2131)
- Switch Code Formatting to Black (#2122, #2159, #2158)
- Update Wheel Settings (#2142)
- Update
timerbot.py
tov13.0
(#2149) - Overhaul Constants (#2137)
- Add Python 3.9 to Test Matrix (#2132)
- Switch Codecov to
GitHub
Action (#2127) - Specify Required pytz Version (#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 (#2050) - Refactor Handling of Message VS Update Filters (#2032)
- Deprecate
Message.default_quote
(#1965) - Refactor persistence of Bot instances (#1994)
- Refactor
JobQueue
(#1981) - Refactor handling of kwargs in Bot methods (#1924)
- Refactor
Dispatcher.run_async
, deprecating the@run_async
decorator (#2051)
New Features:
- Type Hinting (#1920)
- Automatic Pagination for
answer_inline_query
(#2072) Defaults.tzinfo
(#2042)- Extend rich comparison of objects (#1724)
- Add
Filters.via_bot
(#2009) - Add missing shortcuts (#2043)
- Allow
DispatcherHandlerStop
inConversationHandler
(#2059) - Make Errors picklable (#2106)
Minor changes, CI improvements, doc fixes or bug fixes:
- Fix Webhook not working on Windows with Python 3.8+ (#2067)
- Fix setting thumbs with
send_media_group
(#2093) - Make
MessageHandler
filter forFilters.update
first (#2085) - Fix
PicklePersistence.flush()
with onlybot_data
(#2017) - Add test for clean argument of
Updater.start_polling/webhook
(#2002) - Doc fixes, refinements and additions (#2005, #2008, #2089, #2094, #2090)
- CI fixes (#2018, #2061)
- Refine
pollbot.py
example (#2047) - Refine Filters in examples (#2027)
- Rename
echobot
examples (#2025) - Use Lock-Bot to lock old threads (#2048, #2052, #2049, #2053)
Released 2020-06-22
Major Changes:
- Remove Python 2 support (#1715)
- Bot API 4.9 support (#1980)
- IDs/Usernames of
Filters.user
andFilters.chat
can now be updated (#1757)
Minor changes, CI improvements, doc fixes or bug fixes:
- Update contribution guide and stale bot (#1937)
- Remove
NullHandlers
(#1913) - Improve and expand examples (#1943, #1995, #1983, #1997)
- Doc fixes (#1940, #1962)
- Add
User.send_poll()
shortcut (#1968) - Ignore private attributes en
TelegramObject.to_dict()
(#1989) - Stabilize CI (#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. (#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
(#1621)
New Features:
- New method
run_monthly
for theJobQueue
(#1705) Job.next_t
now gives the datetime of the jobs next execution (#1685)
Minor changes, CI improvements, doc fixes or bug fixes:
- Stabalize CI (#1919, #1931)
- Use ABCs
@abstractmethod
instead of raisingNotImplementedError
forHandler
,BasePersistence
andBaseFilter
(#1905) - Doc fixes (#1914, #1902, #1910)
Released 2020-04-11
Bug fixes:
- Fix serialization of
reply_markup
in media messages (#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. (#1858)
Minor changes, CI improvements or bug fixes:
- Add tests for
swtich_inline_query(_current_chat)
with empty string (#1635) - Doc fixes (#1854, #1874, #1884)
- Update issue templates (#1880)
- Favor concrete types over "Iterable" (#1882)
- Pass last valid
CallbackContext
toTIMEOUT
handlers ofConversationHandler
(#1826) - Tweak handling of persistence and update persistence after job calls (#1827)
- Use checkout@v2 for GitHub actions (#1887)
Released 2020-03-30
Minor changes, doc fixes or bug fixes:
- Add missing docs for PollHandler and PollAnswerHandler (#1853)
- Fix wording in Filters docs (#1855)
- Reorder tests to make them more stable (#1835)
- Make ConversationHandler attributes immutable (#1756)
- Make PrefixHandler attributes command and prefix editable (#1636)
- Fix UTC as default tzinfo for Job (#1696)
Released 2020-03-29
New Features:
- Bot.link gives the t.me link of the bot (#1770)
Major Changes:
Minor changes, CI improvements or bug fixes:
- Remove legacy CI files (#1783, #1791)
- Update pre-commit config file (#1787)
- Remove builtin names (#1792)
- CI improvements (#1808, #1848)
- Support Python 3.8 (#1614, #1824)
- Use stale bot for auto closing stale issues (#1820, #1829, #1840)
- Doc fixes (#1778, #1818)
- Fix typo in edit_message_media (#1779)
- In examples, answer CallbackQueries and use edit_message_text shortcut (#1721)
- Revert accidental change in vendored urllib3 (#1775)
Released 2020-02-10
Bug Fixes
- Pass correct parse_mode to InlineResults if bot.defaults is None (#1763)
- Make sure PP can read files that dont have bot_data (#1760)
Released 2020-02-08
This is a quick release for #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. (#1490)
- Store data in
CallbackContext.bot_data
to access it in every callback. Also persists. (#1325) Filters.poll
allows only messages containing a poll (#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 (#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 (#1744).
Minor changes, CI improvements or bug fixes:
- Add
disptacher
argument toUpdater
to allow passing a customizedDispatcher
(#1484) - Add missing names for
Filters
(#1632) - Documentation fixes (#1624, #1647, #1669, #1703, #1718, #1734, #1740, #1642, #1739, #1746)
- CI improvements (#1716, #1731, #1738, #1748, #1749, #1750, #1752)
- Fix spelling issue for
encode_conversations_to_json
(#1661) - Remove double assignement of
Dispatcher.job_queue
(#1698) - Expose dispatcher as property for
CallbackContext
(#1684) - Fix
None
check inJobQueue._put()
(#1707) - Log datetimes correctly in
JobQueue
(#1714) - Fix false
Message.link
creation for private groups (#1741) - Add option
--with-upstream-urllib3
to setup.py to allow using non-vendored version (#1725) - Fix persistence for nested
ConversationHandlers
(#1679) - Improve handling of non-decodable server responses (#1623)
- Fix download for files without
file_path
(#1591) - test_webhook_invalid_posts is now considered flaky and retried on failure (#1758)
Released 2020-01-11
New features:
- Filters.caption allows only messages with caption (#1631).
- Filter for exact messages/captions with new capability of Filters.text and Filters.caption. Especially useful in combination with ReplyKeyboardMarkup. (#1631).
Major changes:
- Fix inconsistent handling of naive datetimes (#1506).
Minor changes, CI improvements or bug fixes:
- Documentation fixes (#1558, #1569, #1579, #1572, #1566, #1577, #1656).
- Add mutex protection on ConversationHandler (#1533).
- Add MAX_PHOTOSIZE_UPLOAD constant (#1560).
- Add args and kwargs to Message.forward() (#1574).
- Transfer to GitHub Actions CI (#1555, #1556, #1605, #1606, #1607, #1612, #1615, #1645).
- Fix deprecation warning with Py3.8 by vendored urllib3 (#1618).
- Simplify assignements for optional arguments (#1600)
- Allow private groups for Message.link (#1619).
- Fix wrong signature call for ConversationHandler.TIMEOUT handlers (#1653).
Released 2019-10-14
New features:
- Nested ConversationHandlers (#1512).
Minor changes, CI improvments or bug fixes:
- Fix CI failures due to non-backward compat attrs depndency (#1540).
- travis.yaml: TEST_OFFICIAL removed from allowed_failures.
- Fix typos in examples (#1537).
- Fix Bot.to_dict to use proper first_name (#1525).
- Refactor
test_commandhandler.py
(#1408). - Add Python 3.8 (RC version) to Travis testing matrix (#1543).
- test_bot.py: Add to_dict test (#1544).
- Flake config moved into setup.cfg (#1546).
Released 2019-09-18
Hot fix release
Fixed regression in the vendored urllib3 (#1517).
Released 2019-09-13
Major changes:
- Bot API 4.4 support (#1464, #1510)
- Add get_file method to Animation & ChatPhoto. Add, get_small_file & get_big_file methods to ChatPhoto (#1489)
- Tools for deep linking (#1049)
Minor changes and/or bug fixes:
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 (#1485)
- Return UTC from from_timestamp() (#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 (#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. (#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 (#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 (#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 (#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 (#1344) - Replace with
WAITING
constant and behavior from states (#1344) - Only emit one warning for multiple CallbackQueryHandlers in a ConversationHandler (#1319)
- Use warnings.warn for ConversationHandler warnings (#1343)
- Fix unresolvable promises (#1270)
- Handlers should be faster due to deduped logic.
- Avoid compiling compiled regex in regex filter. (#1314)
- Add missing
left_chat_member
to Message.MESSAGE_TYPES (#1336) - Make custom timeouts actually work properly (#1330)
- Add convenience classmethods (from_button, from_row and from_column) to InlineKeyboardMarkup
- Small typo fix in setup.py (#1306)
- Add Conflict error (HTTP error code 409) (#1154)
- Change MAX_CAPTION_LENGTH to 1024 (#1262)
- Remove some unnecessary clauses (#1247, #1239)
- Allow filenames without dots in them when sending files (#1228)
- Fix uploading files with unicode filenames (#1214)
- Replace http.server with Tornado (#1191)
- Allow SOCKSConnection to parse username and password from URL (#1211)
- Fix for arguments in passport/data.py (#1213)
- Improve message entity parsing by adding text_mention (#1206)
- Documentation fixes (#1348, #1397, #1436)
- Merged filters short-circuit (#1350)
- Fix webhook listen with tornado (#1383)
- Call task_done() on update queue after update processing finished (#1428)
- Fix send_location() - latitude may be 0 (#1437)
- Make MessageEntity objects comparable (#1465)
- Add prefix to thread names (#1358)
- Fix setting bot on ShippingQuery (#1355)
- Fix _trigger_timeout() missing 1 required positional argument: 'job' (#1367)
- Add missing message.text check in PrefixHandler check_update (#1375)
- Make updates persist even on DispatcherHandlerStop (#1463)
- Dispatcher force updating persistence object's chat data attribute(#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: (#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 (#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 (#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. (#1170)
- Add vCard support by adding vcard field to Contact, InlineQueryResultContact, InputContactMessageContent, and Bot.send_contact. (#1166)
- Support new message entities: CASHTAG and PHONE_NUMBER. (#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. (#1172)
Non Bot API 4.0 changes:
- Minor integer comparison fix (#1147)
- Fix Filters.regex failing on non-text message (#1158)
- Fix ProcessLookupError if process finishes before we kill it (#1126)
- Add t.me links for User, Chat and Message if available and update User.mention_* (#1092)
- Fix mention_markdown/html on py2 (#1112)
Released 2018-05-02
Fixes changing previous behaviour:
Fixes:
- Add a caption_entity filter for filtering caption entities (#1068)
- Inputfile encode filenames (#1086)
- InputFile: Fix proper naming of file when reading from subprocess.PIPE (#1079)
- Remove pytest-catchlog from requirements (#1099)
- Documentation fixes (#1061, #1078, #1081, #1096)
Released 2018-04-17
Important fix:
- Handle utf8 decoding errors (#1076)
New features:
- Added Filter.regex (#1028)
- Filters for Category and file types (#1046)
- Added video note filter (#1067)
Fixes:
- Fix in telegram.Message (#1042)
- Make chat_id a positional argument inside shortcut methods of Chat and User classes (#1050)
- Make Bot.full_name return a unicode object. (#1063)
- CommandHandler faster check (#1074)
- Correct documentation of Dispatcher.add_handler (#1071)
- Various small fixes to documentation.
Released 2018-03-05
Fixes:
Released 2018-03-02
Non backward compatabile changes and changed defaults
- JobQueue: Remove deprecated prevent_autostart & put() (PR #1012)
- Bot, Updater: Remove deprecated network_delay (PR #1012)
- Remove deprecated Message.new_chat_member (PR #1012)
- Retry bootstrap phase indefinitely (by default) on network errors (PR #1018)
New Features
- Support v3.6 API (PR #1006)
- User.full_name convinience property (PR #949)
- Add send_phone_number_to_provider and send_email_to_provider arguments to send_invoice (PR #986)
- Bot: Add shortcut methods reply_{markdown,html} (PR #827)
- Bot: Add shortcut method reply_media_group (PR #994)
- Added utils.helpers.effective_message_type (PR #826)
- Bot.get_file now allows passing a file in addition to file_id (PR #963)
- Add .get_file() to Audio, Document, PhotoSize, Sticker, Video, VideoNote and Voice (PR #963)
- Add .send_*() methods to User and Chat (PR #963)
- Get jobs by name (PR #1011)
- Add Message caption html/markdown methods (PR #1013)
- File.download_as_bytearray - new method to get a d/led file as bytearray (PR #1019)
- File.download(): Now returns a meaningful return value (PR #1019)
- Added conversation timeout in ConversationHandler (PR #895)
Changes
- Store bot in PreCheckoutQuery (PR #953)
- Updater: Issue INFO log upon received signal (PR #951)
- JobQueue: Thread safety fixes (PR #977)
- WebhookHandler: Fix exception thrown during error handling (PR #985)
- Explicitly check update.effective_chat in ConversationHandler.check_update (PR #959)
- Updater: Better handling of timeouts during get_updates (PR #1007)
- Remove unnecessary to_dict() (PR #834)
- CommandHandler - ignore strings in entities and "/" followed by whitespace (PR #1020)
- Documentation & style fixes (PR #942, PR #956, PR #962, PR #980, PR #983)
Released 2017-12-08
Breaking changes (possibly)
- Drop support for python 3.3 (PR #930)
New Features
- Support Bot API 3.5 (PR #920)
Changes
- Fix race condition in dispatcher start/stop (#887)
- Log error trace if there is no error handler registered (#694)
- Update examples with consistent string formatting (#870)
- Various changes and improvements to the docs.
Released 2017-10-15
- Fix Commandhandler crashing on single character messages (PR #873).
Released 2017-10-14
New features - Support Bot API 3.4 (PR #865).
Changes - MessageHandler & RegexHandler now consider channel_updates. - Fix command not recognized if it is directly followed by a newline (PR #869). - Removed Bot._message_wrapper (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 #806).
- DispatcherHandlerStop (see docs).
- Regression fix for text_html & text_markdown (PR #777).
- Added effective_attachment to message (PR #766).
Non backward compatible changes
- Removed Botan support from the library (PR #776).
- Fully support Bot Api 3.3 (PR #806).
- Remove de_json() (PR #789).
Changes
- Sane defaults for tcp socket options on linux (PR #754).
- Add RESTRICTED as constant to ChatMember (PR #761).
- Add rich comparison to CallbackQuery (PR #764).
- Fix get_game_high_scores (PR #771).
- Warn on small con_pool_size during custom initalization of Updater (PR #793).
- Catch exceptions in error handlerfor errors that happen during polling (PR #810).
- For testing we switched to pytest (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
- python-telegram-bot#484 - Download files into file-like objects - python-telegram-bot#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
- python-telegram-bot#507 - Add support for Socks5 proxy - python-telegram-bot#518
- Add support for filters in
CommandHandler
- python-telegram-bot#536 - Add the ability to invert (not) filters - python-telegram-bot#552
- Add
Filters.group
andFilters.private
- Compatibility with GAE via
urllib3.contrib
package - python-telegram-bot#583 - Add equality rich comparision operators to telegram objects - python-telegram-bot#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
- python-telegram-bot#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