Skip to content

Latest commit

 

History

History
2526 lines (1828 loc) · 86.8 KB

CHANGES.rst

File metadata and controls

2526 lines (1828 loc) · 86.8 KB

Changelog

Version 21.3

Released 2024-06-07

This is the technical changelog for version 21.3. More elaborate release notes can be found in the news channel @pythontelegrambotchannel.

Major Changes

New Features

Documentation Improvements

Internal Changes

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

Dependency Updates

Version 21.2

Released 2024-05-20

This is the technical changelog for version 21.2. More elaborate release notes can be found in the news channel @pythontelegrambotchannel.

Major Changes

New Features

Bug Fixes

Documentation Improvements

Internal Changes

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

Dependency Updates

Version 21.1.1

Released 2024-04-15

This is the technical changelog for version 21.1.1. More elaborate release notes can be found in the news channel @pythontelegrambotchannel.

Bug Fixes

Minor Changes

Version 21.1

Released 2024-04-12

This is the technical changelog for version 21.1. More elaborate release notes can be found in the news channel @pythontelegrambotchannel.

Major Changes

Minor Changes

New Features

Documentation Improvements

Internal Changes

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

Dependency Updates

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

Version 21.0.1

Released 2024-03-06

This is the technical changelog for version 21.0.1. More elaborate release notes can be found in the news channel @pythontelegrambotchannel.

Bug Fixes

Version 21.0

Released 2024-03-06

This is the technical changelog for version 21.0. More elaborate release notes can be found in the news channel @pythontelegrambotchannel.

Major Changes

New Features

Bug Fixes

Documentation Improvements

Internal Changes

Dependency Updates

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

Version 20.8

Released 2024-02-08

This is the technical changelog for version 20.8. More elaborate release notes can be found in the news channel @pythontelegrambotchannel.

Major Changes

Minor Changes

New Features

Documentation Improvements

Internal Changes

Dependency Updates

Version 20.7

Released 2023-11-27

This is the technical changelog for version 20.7. More elaborate release notes can be found in the news channel @pythontelegrambotchannel.

New Features

Bug Fixes & Changes

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

Documentation Improvements

Internal Changes

Dependency Updates

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

Version 20.6

Released 2023-10-03

This is the technical changelog for version 20.6. More elaborate release notes can be found in the news channel @pythontelegrambotchannel.

Major Changes

New Features

Minor Changes

Internal Changes

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

Dependency Updates

Version 20.5

Released 2023-09-03

This is the technical changelog for version 20.5. More elaborate release notes can be found in the news channel @pythontelegrambotchannel.

Major Changes

New Features

Minor Changes

Documentation Improvements

Dependency Updates

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

Version 20.4

Released 2023-07-09

This is the technical changelog for version 20.4. More elaborate release notes can be found in the news channel @pythontelegrambotchannel.

Major Changes

New Features

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

Minor Changes

Bug Fixes

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

Documentation Improvements

Internal Changes

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

Dependency Updates

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

Version 20.3

Released 2023-05-07

This is the technical changelog for version 20.3. More elaborate release notes can be found in the news channel @pythontelegrambotchannel.

Major Changes

New Features

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

Minor Changes, Documentation Improvements and CI

Dependencies

Version 20.2

Released 2023-03-25

This is the technical changelog for version 20.2. More elaborate release notes can be found in the news channel @pythontelegrambotchannel.

Major Changes

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

Minor Changes, Documentation Improvements and CI

Dependencies

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

Version 20.1

Released 2023-02-09

This is the technical changelog for version 20.1. More elaborate release notes can be found in the news channel @pythontelegrambotchannel.

Major Changes

New Features

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

Documentation Improvements

Minor Changes, Documentation Improvements and CI

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

Dependencies

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

Version 20.0

Released 2023-01-01

This is the technical changelog for version 20.0. More elaborate release notes can be found in the news channel @pythontelegrambotchannel.

Major Changes

Minor Changes, Documentation Improvements and CI

Dependencies

Version 20.0b0

Released 2022-12-15

This is the technical changelog for version 20.0b0. More elaborate release notes can be found in the news channel @pythontelegrambotchannel.

Major Changes

Minor Changes, Documentation Improvements and CI

Dependencies

Version 20.0a6

Released 2022-11-24

This is the technical changelog for version 20.0a6. More elaborate release notes can be found in the news channel @pythontelegrambotchannel.

Bug Fixes

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

Version 20.0a5

Released 2022-11-22

This is the technical changelog for version 20.0a5. More elaborate release notes can be found in the news channel @pythontelegrambotchannel.

Major Changes

New Features

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

Bug Fixes

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

Documentation Improvements

Minor Changes, Documentation Improvements and CI

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

Dependencies

Version 20.0a4

Released 2022-08-27

This is the technical changelog for version 20.0a4. More elaborate release notes can be found in the news channel @pythontelegrambotchannel.

Hot Fixes

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

Version 20.0a3

Released 2022-08-27

This is the technical changelog for version 20.0a3. More elaborate release notes can be found in the news channel @pythontelegrambotchannel.

Major Changes

New Features

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

Bug Fixes

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

Minor Changes, Documentation Improvements and CI

Dependencies

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

Version 20.0a2

Released 2022-06-27

This is the technical changelog for version 20.0a2. More elaborate release notes can be found in the news channel @pythontelegrambotchannel.

Major Changes

New Features

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

Minor Changes, Documentation Improvements and CI

Version 20.0a1

Released 2022-06-09

This is the technical changelog for version 20.0a1. More elaborate release notes can be found in the news channel @pythontelegrambotchannel.

Major Changes:

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

New Features:

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

Bug Fixes:

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

Dependencies:

Minor Changes, Documentation Improvements and CI:

Version 20.0a0

Released 2022-05-06

This is the technical changelog for version 20.0a0. More elaborate release notes can be found in the news channel @pythontelegrambotchannel.

Major Changes:

New Features:

Bug Fixes & Minor Changes:

Internal Restructurings & Improvements:

CI, Code Quality & Test Suite Improvements:

Documentation Improvements:

Version 13.11

Released 2022-02-02

This is the technical changelog for version 13.11. More elaborate release notes can be found in the news channel @pythontelegrambotchannel.

Major Changes:

Version 13.10

Released 2022-01-03

This is the technical changelog for version 13.10. More elaborate release notes can be found in the news channel @pythontelegrambotchannel.

Major Changes:

Minor Changes & Doc fixes:

Version 13.9

Released 2021-12-11

This is the technical changelog for version 13.9. More elaborate release notes can be found in the news channel @pythontelegrambotchannel.

Major Changes:

Minor Changes

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

Version 13.8.1

Released 2021-11-08

This is the technical changelog for version 13.8.1. More elaborate release notes can be found in the news channel @pythontelegrambotchannel.

Doc fixes:

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

Version 13.8

Released 2021-11-08

This is the technical changelog for version 13.8. More elaborate release notes can be found in the news channel @pythontelegrambotchannel.

Major Changes:

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

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

Version 13.7

Released 2021-07-01

This is the technical changelog for version 13.7. More elaborate release notes can be found in the news channel @pythontelegrambotchannel.

Major Changes:

Bug Fixes:

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

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

Version 13.6

Released 2021-06-06

New Features:

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

Major Changes:

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

Version 13.5

Released 2021-04-30

Major Changes:

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

    Note

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

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

New Features:

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

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

Version 13.4.1

Released 2021-03-14

Hot fix release:

Version 13.4

Released 2021-03-14

Major Changes:

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

Version 13.3

Released 2021-02-19

Major Changes:

Bug Fixes:

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

Minor changes:

Version 13.2

Released 2021-02-02

Major Changes:

New Features:

Bug Fixes:

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

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

Version 13.1

Released 2020-11-29

Major Changes:

New Features:

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:

Version 13.0

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:

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

Version 12.8

Released 2020-06-22

Major Changes:

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

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

Version 12.7

Released 2020-05-02

Major Changes:

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

New Features:

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

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

Version 12.6.1

Released 2020-04-11

Bug fixes:

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

Version 12.6

Released 2020-04-10

Major Changes:

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

Minor changes, CI improvements or bug fixes:

Version 12.5.1

Released 2020-03-30

Minor changes, doc fixes or bug fixes:

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

Version 12.5

Released 2020-03-29

New Features:

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

Major Changes:

Minor changes, CI improvements or bug fixes:

Version 12.4.2

Released 2020-02-10

Bug Fixes

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

Version 12.4.1

Released 2020-02-08

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

Version 12.4.0

Released 2020-02-08

New features:

Major changes:

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

Minor changes, CI improvements or bug fixes:

Version 12.3.0

Released 2020-01-11

New features:

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

Major changes:

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

Minor changes, CI improvements or bug fixes:

Version 12.2.0

Released 2019-10-14

New features:

Minor changes, CI improvments or bug fixes:

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

Version 12.1.1

Released 2019-09-18

Hot fix release

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

Version 12.1.0

Released 2019-09-13

Major changes:

Minor changes and/or bug fixes:

Version 12.0.0

Released 2019-08-29

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

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

Major and/or breaking changes:

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

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

Context based callbacks (:pr:`1100`)

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

Persistence (:pr:`1017`)

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

Handler overhaul (:pr:`1114`)

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

Filter overhaul (:pr:`1221`)

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

ConversationHandler

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

Bug fixes & improvements

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

Buf fixes since v12.0.0b1

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

Internal improvements

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

Version 11.1.0

Released 2018-09-01

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

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

Version 11.0.0

Released 2018-08-29

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

Telegram Passport (:pr:`1174`):

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

Inputfile rework (:pr:`1184`):

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

Other Bot API 4.0 changes:

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

Non Bot API 4.0 changes:

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

Version 10.1.0

Released 2018-05-02

Fixes changing previous behaviour:

Fixes:

Version 10.0.2

Released 2018-04-17

Important fix:

New features:

Fixes:

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

Version 10.0.1

Released 2018-03-05

Fixes:

Version 10.0.0

Released 2018-03-02

Non backward compatabile changes and changed defaults

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

New Features

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

Changes

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

Version 9.0.0

Released 2017-12-08

Breaking changes (possibly)

New Features

Changes

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

Version 8.1.1

Released 2017-10-15

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

Version 8.1.0

Released 2017-10-14

New features - Support Bot API 3.4 (PR :pr:`865`).

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

Version 8.0.0

Released 2017-09-01

New features

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

Non backward compatible changes

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.

Version 7.0.1

Released 2017-07-28

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

Version 7.0.0

Released 2017-07-25

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

Pre-version 7.0

2017-06-18

Released 6.1.0

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

2017-05-29

Released 6.0.3

  • Faulty PyPI release

2017-05-29

Released 6.0.2

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

2017-05-19

Released 6.0.1

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

2017-05-19

Released 6.0.0

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

2017-04-17

Released 5.3.1

  • Hotfix release due to bug introduced by urllib3 version 1.21

2016-12-11

Released 5.3

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

2016-10-25

Released 5.2

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

2016-09-24

Released 5.1

  • Drop Python 2.6 support
  • Deprecate telegram.Emoji
  • Use ujson if available
  • Add instance methods to Message, Chat, User, InlineQuery and CallbackQuery
  • RegEx filtering for CallbackQueryHandler and InlineQueryHandler
  • New MessageHandler filters: forwarded and entity
  • Add Message.get_entity to correctly handle UTF-16 codepoints and MessageEntity offsets
  • Fix bug in ConversationHandler when first handler ends the conversation
  • Allow multiple Dispatcher instances
  • Add ChatMigrated Exception
  • Properly split and handle arguments in CommandHandler

2016-07-15

Released 5.0

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

2016-07-12

Released 4.3.4

  • Fix proxy support with urllib3 when proxy requires auth

2016-07-08

Released 4.3.3

  • Fix proxy support with urllib3

2016-07-04

Released 4.3.2

  • Fix: Use timeout parameter in all API methods

2016-06-29

Released 4.3.1

  • Update wrong requirement: urllib3>=1.10

2016-06-28

Released 4.3

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

2016-06-10

Released 4.2.1

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

2016-05-28

Released 4.2

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

2016-05-22

Released 4.1.2

  • Fix MessageEntity decoding with Bot API 2.1 changes

2016-05-16

Released 4.1.1

  • Fix deprecation warning in Dispatcher

2016-05-15

Released 4.1

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

2016-05-01

Released 4.0.3

  • Add missing attribute location to InlineQuery

2016-04-29

Released 4.0.2

  • Bugfixes
  • KeyboardReplyMarkup now accepts str again

2016-04-27

Released 4.0.1

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

2016-04-22

Released 4.0rc1

2016-03-22

Released 3.4

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

2016-02-28

Released 3.3

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

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

2016-01-09

Released 3.3b1

  • Implement inline bots (beta)

2016-01-05

Released 3.2.0

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

2015-12-29

Released 3.1.2

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

2015-12-21

Released 3.1.1

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

2015-12-16

Released 3.1.0

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

2015-12-08

Released 3.0.0

  • Introducing the Updater and Dispatcher classes

2015-11-11

Released 2.9.2

  • Error handling on request timeouts has been improved

2015-11-10

Released 2.9.1

  • Add parameter network_delay to Bot.getUpdates for slow connections

2015-11-10

Released 2.9

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

Special thanks to @jh0ker for all hard work

2015-10-08

Released 2.8.7

  • Type as optional for GroupChat class

2015-10-08

Released 2.8.6

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

2015-09-24

Released 2.8.5

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

2015-09-20

Released 2.8.4

  • getFile and File.download is now fully supported

2015-09-10

Released 2.8.3

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

2015-09-05

Released 2.8.2

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

2015-09-05

Released 2.8.1

  • Fix regression on Telegram objects with thumb properties

2015-09-04

Released 2.8

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

2015-08-19

Released 2.7.1

  • Fixed JSON serialization for message

2015-08-17

Released 2.7

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

2015-08-15

Released 2.6.1

  • Fixed parsing image header issue on < Python 2.7.3

2015-08-14

Released 2.6.0

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

2015-08-12

Released 2.5.3

  • telegram.Bot now supports to be unpickled

2015-08-11

Released 2.5.2

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

2015-08-10

Released 2.5.1

  • Moved from GPLv2 to LGPLv3

2015-08-09

Released 2.5

  • Fixes logging calls in API

2015-08-08

Released 2.4

  • Fixes Emoji class for Python 3
  • PEP8 improvements

2015-08-08

Released 2.3

  • Fixes ForceReply class
  • Remove logging.basicConfig from library

2015-07-25

Released 2.2

  • Allows debug=True when initializing telegram.Bot

2015-07-20

Released 2.1

  • Fix to_dict for Document and Video

2015-07-19

Released 2.0

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

2015-07-15

Released 1.9

  • Python 3 officially supported
  • PEP8 improvements

2015-07-12

Released 1.8

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

2015-07-11

Released 1.7

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

2015-07-10

Released 1.6

  • Improvements for GAE support

2015-07-10

Released 1.5

  • Fixes randomly unicode issues when using InputFile

2015-07-10

Released 1.4

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

2015-07-10

Released 1.3

  • Added support to setWebhook (special thanks to macrojames)

2015-07-09

Released 1.2

  • CustomKeyboard classes now available
  • Emojis available
  • PEP8 improvements

2015-07-08

Released 1.1

  • PyPi package now available

2015-07-08

Released 1.0

  • Initial checkin of python-telegram-bot