Skip to content

Releases: kurigram-org/kurigram

v2.2.26

Choose a tag to compare

@github-actions github-actions released this 12 Sep 17:45

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 WINDOW flow 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 ruff check, run from make lint in CI and pre-commit by @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/unit or tests/integrations by @Danipulok in #372
  • fix(typing): accept a built JsonValue in init_connection_params by @Danipulok in #367
  • fix(typing): Message.topic also holds a DirectMessagesTopic by @Danipulok in #368
  • fix(typing): drop Optional from two _parse() helpers that always return an object by @Danipulok in #369
  • fix(typing): reword the comment mypy reads as a # type: comment by @Danipulok in #370
  • fix(filters): let the chat filters see MessageGenerationStopped by @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 None back from get_users() when the id belongs to no user by @Danipulok in #378
  • fix(invite_links): stop get_chat_admins_with_invite_links() handing types.List an 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_id and is_enabled to None, not to the NoneType class 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], not AsyncIterator[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 KeyboardInlineButtonRow in ReplyInlineMarkup by @Danipulok in #396
  • fix(plugins): read handlers only 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 a List work for items that are not Objects by @Danipulok in #401
  • fix(typing): declare what save_file() and InputChatPhoto.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 self on the save_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 Optional where the default rules out None by @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/guards layer by @Danipulok in #413
  • refactor(tests): name every client double FakeClient by @Danipulok in #414
  • chore(build): move the toolchain onto uv, dropping the hand-built venv and hatch by @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, dropping 3.8 and 3.9 by @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 restore mapping in edit_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...
Read more

v2.2.25

Choose a tag to compare

@github-actions github-actions released this 21 Aug 11:01

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 workdir by @Danipulok in #339
  • fix(typing): annotate every parameter that defaults to None as Optional by @Danipulok in #343
  • fix: require the parameters that cannot default to None by @Danipulok in #345
  • fix(message): guard the optional saved_peer_id in a direct-messages chat by @Danipulok in #350
  • fix(compiler): stop writing an empty flags.N?Vector the 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 Message by @Danipulok in #346
  • fix(typing): overload the shape-dependent methods and stop hiding the Nones by @Danipulok in #341
  • fix(filters): let business, linked_channel and topic read the message an update is about by @Danipulok in #354
  • fix(errors): raise the verification errors instead of a bare Forbidden, and annotate RPCError by @Danipulok in #353
  • feat(errors): name the value each parameterised error carries by @Danipulok in #356
  • refactor(messages): cache the messages.GetSplitRanges result 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

Full Changelog: v2.2.24...v2.2.25

v2.2.24

Choose a tag to compare

@github-actions github-actions released this 11 Jul 11:29

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

Choose a tag to compare

@github-actions github-actions released this 21 May 15:12

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

Full Changelog: v2.2.22...v2.2.23

v2.2.22

Choose a tag to compare

@github-actions github-actions released this 17 Apr 21:33

What's Changed

New Contributors

  • @BREEZE07-TG made their first contribution in #302

Full Changelog: v2.2.21...v2.2.22

v2.2.21

Choose a tag to compare

@github-actions github-actions released this 11 Apr 09:56

Full Changelog: v2.2.20...v2.2.21

v2.2.19

Choose a tag to compare

@github-actions github-actions released this 20 Feb 09:36

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

Full Changelog: v2.2.18...v2.2.19

v2.2.18

Choose a tag to compare

@github-actions github-actions released this 28 Jan 12:35

What's Changed

  • add overloads for download_media method to support in-memory and file… by @ZeN220 in #275

Full Changelog: v2.2.17...v2.2.18

v2.2.17

Choose a tag to compare

@github-actions github-actions released this 29 Dec 14:58

Full Changelog: v2.2.16...v2.2.17

v2.2.16

Choose a tag to compare

@github-actions github-actions released this 29 Dec 14:14

What's Changed

  • fix: set description correctly when send InlineQueryResultAnimation by @krau in #262
  • [keyboard button] added support for request_name, request_username and request_photo by @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

Full Changelog: v2.2.15...v2.2.16