Repository navigation
Releases: kurigram-org/kurigram
Releases · kurigram-org/kurigram
Release list
v2.2.26
What's Changed
- fix: docstrings for send_paid_media and send_web_page by @penggrin12 in #329
- refactor: plugin loading handler existence checks by @itisFarzin in #135
- feat(proxy): add WEB proxy support with
WINDOWflow control and per-kind proxy types by @Danipulok in #364 - feat(proxy): add classic MTProxy support with fake-TLS (
ee) secrets by @Danipulok in #365 - chore(lint): add a
ruffcheck, run frommake lintin CI andpre-commitby @Danipulok in #366 - ci(build): run the unit suite in CI and fix its failures below 3.12 by @Danipulok in #371
- refactor(tests): put every test under
tests/unitortests/integrationsby @Danipulok in #372 - fix(typing): accept a built
JsonValueininit_connection_paramsby @Danipulok in #367 - fix(typing):
Message.topicalso holds aDirectMessagesTopicby @Danipulok in #368 - fix(typing): drop
Optionalfrom two_parse()helpers that always return an object by @Danipulok in #369 - fix(typing): reword the comment
mypyreads as a# type:comment by @Danipulok in #370 - fix(filters): let the chat filters see
MessageGenerationStoppedby @Danipulok in #374 - fix(upload): raise the failure that
save_file()used to log and hide by @Danipulok in #373 - fix(typing): keep the callback signature that the handler decorators erased by @Danipulok in #376
- fix(users): give
Noneback fromget_users()when the id belongs to no user by @Danipulok in #378 - fix(invite_links): stop
get_chat_admins_with_invite_links()handingtypes.Listan async generator by @Danipulok in #379 - fix(typing): annotate the return of the 45 public methods that document one by @Danipulok in #377
- chore(comments): drop the
NOTE:prefix and the dashes standing in for punctuation by @Danipulok in #380 - fix(docs): point the dead Sphinx cross-references at names that exist by @Danipulok in #383
- fix(filters): read the sender and sender chat the remaining update types already carry by @Danipulok in #381
- feat: update message bound methods params by @asadofc in #385
- fix(typing): default
effect_idandis_enabledtoNone, not to theNoneTypeclass by @Danipulok in #390 - feat(message): accept the target's remaining parameters in the
reply_*/answer_*shortcuts by @Danipulok in #391 - fix(typing): stream_media return type annotation to AsyncGenerator by @KrimsN in #387
- fix(typing): annotate the async generators as
AsyncGenerator[T, None], notAsyncIterator[T]by @Danipulok in #392 - fix: dispatcher TypeError when user typing update parser returns None by @AnonymousX1025 in #384
- test(docs): fail when a cross-reference label is not a suffix of its target by @Danipulok in #395
- fix(keyboards): send
KeyboardInlineButtonRowinReplyInlineMarkupby @Danipulok in #396 - fix(plugins): read
handlersonly when it is a list of handler pairs by @Danipulok in #397 - fix(session): await the tasks
stop()spawned instead of orphaning them by @Danipulok in #398 - fix(session): keep a queued
restart()from reconnecting a stopped session by @Danipulok in #399 - fix(types): make
repr()of aListwork for items that are notObjects by @Danipulok in #401 - fix(typing): declare what
save_file()andInputChatPhoto.write()actually return by @Danipulok in #403 - fix(decorators): register the plugin handlers an unbound
@Client.on_*()call declares by @Danipulok in #402 - fix(typing): name the types the seven dead annotations were meant to name by @Danipulok in #404
- fix(types): make the three update types that reach a handler
Updates by @Danipulok in #405 - fix(upload): annotate
selfon thesave_file()overloads as the implementation does by @Danipulok in #410 - chore(typing): introduce ty static type checking, fix diagnostics incrementally by @KrimsN in #394
- feat(deps): declare optional qrcode extra by @KrimsN in #408
- fix(typing): drop
Optionalwhere the default rules outNoneby @Danipulok in #412 - docs(contributing): add setup, workflow, and review-derived conventions by @KrimsN in #406
- refactor(tests): give the whole-tree sweeps their own
tests/guardslayer by @Danipulok in #413 - refactor(tests): name every client double
FakeClientby @Danipulok in #414 - chore(build): move the toolchain onto
uv, dropping the hand-builtvenvandhatchby @Danipulok in #415 - chore(deps): replace every
<=ceiling with a tested>=floor by @Danipulok in #419 - ci(deps): run the suite at both ends of every dependency range by @Danipulok in #420
- chore(python): raise the floor to
3.10, dropping3.8and3.9by @Danipulok in #421 - chore(metadata): list a second maintainer by @Danipulok in #422
- refactor(typing): adopt the builtin generics and defer every annotation by @Danipulok in #424
- test(guards): sweep the suite and the compilers for the future import, not only the package by @Danipulok in #425
- chore(ruff): format the whole tree at 100 columns and gate the formatter by @Danipulok in #426
- chore(lint): enable the rule families the tree already passes by @KrimsN in #427
- test(guards): fail on a long dash or a
--used as punctuation in a comment by @Danipulok in #439 - fix(lint): drop dead imports, unused locals and wildcard imports by @KrimsN in #428
- docs(contributing): state the
__all__rule the public exports guard enforces by @Danipulok in #440 - chore(lint): group pyupgrade rules under UP, fix remaining UP032 by @KrimsN in #429
- chore(lint): enable PYI, convert namedtuple, widen eq annotation by @KrimsN in #430
- chore(lint): enable C4, drop unnecessary comprehension and map() by @KrimsN in #431
- chore(lint): enable PLC, fix dict-items and split-maxsplit findings by @KrimsN in #432
- fix(client): name the
kurigram[qrcode]extra when QR login cannot import it by @Danipulok in #442 - chore(lint): enable PLW, drop dead loop-else and self-assignment by @KrimsN in #433
- chore(lint): enable ISC, join two explicitly-concatenated strings by @KrimsN in #434
- chore(lint): enable SLOT, add slots to the str subclasses by @KrimsN in #435
- chore(lint): enable PIE, drop redundant range() start argument by @KrimsN in #436
- chore(lint): enable INP, add missing init.py under tests/unit by @KrimsN in #437
- feat: Bot API 10.2 (3/3 - Rich Messages) by @Danipulok in #443
- chore(lint): enable flake8-bugbear (B), fix its findings, ignore B009 by @KrimsN in #441
- docs: mark get_stickers as usable by bots as well by @asadofc in #416
- test(errors): count the expected rows off the table instead of hardcoding 936 by @Danipulok in #445
- test(bots): guard the
restoremapping inedit_user_star_subscription()by @Danipulok in #444 - build(sdist): list what the archive holds instead of excluding what it must not by @Danipulok in #446
- fix(filters): escape the command name before mat...
v2.2.25
What's Changed
- feat: add TCPIntermediatePadded transport by @UserN0tAdmin in #330
- feat: add rich_message in CallbackQuery.edit_message_text bound method by @Kanha-XD in #334
- fix(download): resolve relative download paths against
workdirby @Danipulok in #339 - fix(typing): annotate every parameter that defaults to
NoneasOptionalby @Danipulok in #343 - fix: require the parameters that cannot default to None by @Danipulok in #345
- fix(message): guard the optional
saved_peer_idin a direct-messages chat by @Danipulok in #350 - fix(compiler): stop writing an empty
flags.N?Vectorthe flags call absent by @Danipulok in #352 - fix(file-id): decode photo file ids minted from minor 32 onwards by @Danipulok in #348
- fix(filters): read the sender and the chat from any update, not only
Messageby @Danipulok in #346 - fix(typing): overload the shape-dependent methods and stop hiding the
Nones by @Danipulok in #341 - fix(filters): let
business,linked_channelandtopicread the message an update is about by @Danipulok in #354 - fix(errors): raise the verification errors instead of a bare
Forbidden, and annotateRPCErrorby @Danipulok in #353 - feat(errors): name the value each parameterised error carries by @Danipulok in #356
- refactor(messages): cache the
messages.GetSplitRangesresult by @ZeN220 in #358 - fix(errors): stop errors that share a class name from shadowing each other by @Danipulok in #357
- feat: add return type hints to Update propagation methods by @zrekryu in #288
- feat: add MessageIdsEmpty exception by @shhimmery in #294
New Contributors
- @UserN0tAdmin made their first contribution in #330
Full Changelog: v2.2.24...v2.2.25
v2.2.24
What's Changed
- feat: add waveform parameter in send_voice method by @MarsBatya in #321
Full Changelog: v2.2.23...v2.2.24
v2.2.23
What's Changed
- Make possible to attach photos, videos, stickers and locations to polls by @MarsBatya in #306
- feat: make translate_to_language_code optional by @BREEZE07-TG in #309
- fix: raise error instead of swallowing it in handle_download() by @AnonymousProDev in #310
- feat: update reply_poll and answer_poll with media support by @asadofc in #311
- docs: fix send_checklist example by @AnonymousProDev in #313
- fix: parse reply_to_message for guest messages by @omg-xtao in #314
- fix: handle optional foursquare_id or foursquare_type in send_venue by @AnonymousProDev in #315
New Contributors
- @AnonymousProDev made their first contribution in #310
Full Changelog: v2.2.22...v2.2.23
v2.2.22
What's Changed
- fix: stop_poll by @MarsBatya in #301
- fix: stop_poll.py by @BREEZE07-TG in #302
New Contributors
- @BREEZE07-TG made their first contribution in #302
Full Changelog: v2.2.21...v2.2.22
v2.2.21
v2.2.19
What's Changed
- Add BlockList enumeration and get_blocked_message_senders method by @m2k7m in #282
- Update return types for chat methods, Remove "All Members Are Admins" Note by @m2k7m in #276
- Make ChatMemberUpdated's attributes old_chat_member and new_chat_member Optional. by @zrekryu in #269
- Fix: preserve link previews when editing messages by @FakeScoutBot in #283
- Add protect_content parameter to copy_media_group method by @Kanha-XD in #271
- Add Error Handler support for handling unexpected update handler exceptions by @zrekryu in #285
- Add overloads for get_messages to correctly IDE hints by @Alekzum in #281
New Contributors
- @FakeScoutBot made their first contribution in #283
- @Kanha-XD made their first contribution in #271
- @Alekzum made their first contribution in #281
Full Changelog: v2.2.18...v2.2.19
v2.2.18
What's Changed
Full Changelog: v2.2.17...v2.2.18
v2.2.17
v2.2.16
What's Changed
- fix: set description correctly when send InlineQueryResultAnimation by @krau in #262
- [keyboard button] added support for
request_name,request_usernameandrequest_photoby @yehuda-lev in #263 - Typing/add optional handler filters and command filter prefixes by @zrekryu in #268
- Export base class Handler in pyrogram.handlers package for direct import by @SastaDev in #251
New Contributors
- @krau made their first contribution in #262
- @zrekryu made their first contribution in #268
- @SastaDev made their first contribution in #251
Full Changelog: v2.2.15...v2.2.16