From 01ed49f28bfce8123ef2318a3e6a6507a6293346 Mon Sep 17 00:00:00 2001 From: omg-xtao <100690902+omg-xtao@users.noreply.github.com> Date: Tue, 11 Jun 2024 00:58:39 +0800 Subject: [PATCH] :arrow_up: Upgrade python-telegram-bot to 21.x --- gram_core | 2 +- pdm.lock | 176 ++++++++++++++++----------------- plugins/genshin/abyss.py | 8 +- plugins/genshin/abyss_team.py | 2 +- plugins/genshin/avatar_list.py | 4 +- plugins/genshin/daily_note.py | 1 - plugins/genshin/help.py | 2 +- plugins/genshin/help_raw.py | 2 +- plugins/genshin/ledger.py | 2 +- plugins/genshin/sign.py | 11 +-- plugins/genshin/stats.py | 2 +- plugins/genshin/strategy.py | 1 - plugins/genshin/weapon.py | 1 - plugins/system/errorhandler.py | 2 +- pyproject.toml | 2 +- requirements.txt | 26 ++--- utils/patch/httpx_jsonlib.py | 17 ++++ 17 files changed, 134 insertions(+), 127 deletions(-) create mode 100644 utils/patch/httpx_jsonlib.py diff --git a/gram_core b/gram_core index 213ae6e..4d2069e 160000 --- a/gram_core +++ b/gram_core @@ -1 +1 @@ -Subproject commit 213ae6eda5b29da7f736b1a393771195158c26dc +Subproject commit 4d2069e202b344a473f85cc0a0c830b953a3565f diff --git a/pdm.lock b/pdm.lock index 87c2aca..7731022 100644 --- a/pdm.lock +++ b/pdm.lock @@ -5,7 +5,7 @@ groups = ["default", "genshin-artifact", "pyro", "test"] strategy = ["cross_platform", "inherit_metadata"] lock_version = "4.4.1" -content_hash = "sha256:943b481a4ae18a9edf9d0c16667549756d983ac5c3aac65ee1f1e0ae916c06df" +content_hash = "sha256:fa169470a7f7e959018fc8106d803c8aba2e404f7de821556e94942f4dd3109d" [[package]] name = "aiofiles" @@ -524,7 +524,7 @@ files = [ [[package]] name = "cryptography" -version = "42.0.7" +version = "42.0.8" requires_python = ">=3.7" summary = "cryptography is a package which provides cryptographic recipes and primitives to Python developers." groups = ["default"] @@ -532,38 +532,38 @@ dependencies = [ "cffi>=1.12; platform_python_implementation != \"PyPy\"", ] files = [ - {file = "cryptography-42.0.7-cp37-abi3-macosx_10_12_universal2.whl", hash = "sha256:a987f840718078212fdf4504d0fd4c6effe34a7e4740378e59d47696e8dfb477"}, - {file = "cryptography-42.0.7-cp37-abi3-macosx_10_12_x86_64.whl", hash = "sha256:bd13b5e9b543532453de08bcdc3cc7cebec6f9883e886fd20a92f26940fd3e7a"}, - {file = "cryptography-42.0.7-cp37-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a79165431551042cc9d1d90e6145d5d0d3ab0f2d66326c201d9b0e7f5bf43604"}, - {file = "cryptography-42.0.7-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a47787a5e3649008a1102d3df55424e86606c9bae6fb77ac59afe06d234605f8"}, - {file = "cryptography-42.0.7-cp37-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:02c0eee2d7133bdbbc5e24441258d5d2244beb31da5ed19fbb80315f4bbbff55"}, - {file = "cryptography-42.0.7-cp37-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:5e44507bf8d14b36b8389b226665d597bc0f18ea035d75b4e53c7b1ea84583cc"}, - {file = "cryptography-42.0.7-cp37-abi3-musllinux_1_1_aarch64.whl", hash = "sha256:7f8b25fa616d8b846aef64b15c606bb0828dbc35faf90566eb139aa9cff67af2"}, - {file = "cryptography-42.0.7-cp37-abi3-musllinux_1_1_x86_64.whl", hash = "sha256:93a3209f6bb2b33e725ed08ee0991b92976dfdcf4e8b38646540674fc7508e13"}, - {file = "cryptography-42.0.7-cp37-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:e6b8f1881dac458c34778d0a424ae5769de30544fc678eac51c1c8bb2183e9da"}, - {file = "cryptography-42.0.7-cp37-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:3de9a45d3b2b7d8088c3fbf1ed4395dfeff79d07842217b38df14ef09ce1d8d7"}, - {file = "cryptography-42.0.7-cp37-abi3-win32.whl", hash = "sha256:789caea816c6704f63f6241a519bfa347f72fbd67ba28d04636b7c6b7da94b0b"}, - {file = "cryptography-42.0.7-cp37-abi3-win_amd64.whl", hash = "sha256:8cb8ce7c3347fcf9446f201dc30e2d5a3c898d009126010cbd1f443f28b52678"}, - {file = "cryptography-42.0.7-cp39-abi3-macosx_10_12_universal2.whl", hash = "sha256:a3a5ac8b56fe37f3125e5b72b61dcde43283e5370827f5233893d461b7360cd4"}, - {file = "cryptography-42.0.7-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:779245e13b9a6638df14641d029add5dc17edbef6ec915688f3acb9e720a5858"}, - {file = "cryptography-42.0.7-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0d563795db98b4cd57742a78a288cdbdc9daedac29f2239793071fe114f13785"}, - {file = "cryptography-42.0.7-cp39-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:31adb7d06fe4383226c3e963471f6837742889b3c4caa55aac20ad951bc8ffda"}, - {file = "cryptography-42.0.7-cp39-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:efd0bf5205240182e0f13bcaea41be4fdf5c22c5129fc7ced4a0282ac86998c9"}, - {file = "cryptography-42.0.7-cp39-abi3-musllinux_1_1_aarch64.whl", hash = "sha256:a9bc127cdc4ecf87a5ea22a2556cab6c7eda2923f84e4f3cc588e8470ce4e42e"}, - {file = "cryptography-42.0.7-cp39-abi3-musllinux_1_1_x86_64.whl", hash = "sha256:3577d029bc3f4827dd5bf8bf7710cac13527b470bbf1820a3f394adb38ed7d5f"}, - {file = "cryptography-42.0.7-cp39-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:2e47577f9b18723fa294b0ea9a17d5e53a227867a0a4904a1a076d1646d45ca1"}, - {file = "cryptography-42.0.7-cp39-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:1a58839984d9cb34c855197043eaae2c187d930ca6d644612843b4fe8513c886"}, - {file = "cryptography-42.0.7-cp39-abi3-win32.whl", hash = "sha256:e6b79d0adb01aae87e8a44c2b64bc3f3fe59515280e00fb6d57a7267a2583cda"}, - {file = "cryptography-42.0.7-cp39-abi3-win_amd64.whl", hash = "sha256:16268d46086bb8ad5bf0a2b5544d8a9ed87a0e33f5e77dd3c3301e63d941a83b"}, - {file = "cryptography-42.0.7-pp310-pypy310_pp73-macosx_10_12_x86_64.whl", hash = "sha256:2954fccea107026512b15afb4aa664a5640cd0af630e2ee3962f2602693f0c82"}, - {file = "cryptography-42.0.7-pp310-pypy310_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:362e7197754c231797ec45ee081f3088a27a47c6c01eff2ac83f60f85a50fe60"}, - {file = "cryptography-42.0.7-pp310-pypy310_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:4f698edacf9c9e0371112792558d2f705b5645076cc0aaae02f816a0171770fd"}, - {file = "cryptography-42.0.7-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:5482e789294854c28237bba77c4c83be698be740e31a3ae5e879ee5444166582"}, - {file = "cryptography-42.0.7-pp39-pypy39_pp73-macosx_10_12_x86_64.whl", hash = "sha256:e9b2a6309f14c0497f348d08a065d52f3020656f675819fc405fb63bbcd26562"}, - {file = "cryptography-42.0.7-pp39-pypy39_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:d8e3098721b84392ee45af2dd554c947c32cc52f862b6a3ae982dbb90f577f14"}, - {file = "cryptography-42.0.7-pp39-pypy39_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:c65f96dad14f8528a447414125e1fc8feb2ad5a272b8f68477abbcc1ea7d94b9"}, - {file = "cryptography-42.0.7-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:36017400817987670037fbb0324d71489b6ead6231c9604f8fc1f7d008087c68"}, - {file = "cryptography-42.0.7.tar.gz", hash = "sha256:ecbfbc00bf55888edda9868a4cf927205de8499e7fabe6c050322298382953f2"}, + {file = "cryptography-42.0.8-cp37-abi3-macosx_10_12_universal2.whl", hash = "sha256:81d8a521705787afe7a18d5bfb47ea9d9cc068206270aad0b96a725022e18d2e"}, + {file = "cryptography-42.0.8-cp37-abi3-macosx_10_12_x86_64.whl", hash = "sha256:961e61cefdcb06e0c6d7e3a1b22ebe8b996eb2bf50614e89384be54c48c6b63d"}, + {file = "cryptography-42.0.8-cp37-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e3ec3672626e1b9e55afd0df6d774ff0e953452886e06e0f1eb7eb0c832e8902"}, + {file = "cryptography-42.0.8-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e599b53fd95357d92304510fb7bda8523ed1f79ca98dce2f43c115950aa78801"}, + {file = "cryptography-42.0.8-cp37-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:5226d5d21ab681f432a9c1cf8b658c0cb02533eece706b155e5fbd8a0cdd3949"}, + {file = "cryptography-42.0.8-cp37-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:6b7c4f03ce01afd3b76cf69a5455caa9cfa3de8c8f493e0d3ab7d20611c8dae9"}, + {file = "cryptography-42.0.8-cp37-abi3-musllinux_1_1_aarch64.whl", hash = "sha256:2346b911eb349ab547076f47f2e035fc8ff2c02380a7cbbf8d87114fa0f1c583"}, + {file = "cryptography-42.0.8-cp37-abi3-musllinux_1_1_x86_64.whl", hash = "sha256:ad803773e9df0b92e0a817d22fd8a3675493f690b96130a5e24f1b8fabbea9c7"}, + {file = "cryptography-42.0.8-cp37-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:2f66d9cd9147ee495a8374a45ca445819f8929a3efcd2e3df6428e46c3cbb10b"}, + {file = "cryptography-42.0.8-cp37-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:d45b940883a03e19e944456a558b67a41160e367a719833c53de6911cabba2b7"}, + {file = "cryptography-42.0.8-cp37-abi3-win32.whl", hash = "sha256:a0c5b2b0585b6af82d7e385f55a8bc568abff8923af147ee3c07bd8b42cda8b2"}, + {file = "cryptography-42.0.8-cp37-abi3-win_amd64.whl", hash = "sha256:57080dee41209e556a9a4ce60d229244f7a66ef52750f813bfbe18959770cfba"}, + {file = "cryptography-42.0.8-cp39-abi3-macosx_10_12_universal2.whl", hash = "sha256:dea567d1b0e8bc5764b9443858b673b734100c2871dc93163f58c46a97a83d28"}, + {file = "cryptography-42.0.8-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c4783183f7cb757b73b2ae9aed6599b96338eb957233c58ca8f49a49cc32fd5e"}, + {file = "cryptography-42.0.8-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a0608251135d0e03111152e41f0cc2392d1e74e35703960d4190b2e0f4ca9c70"}, + {file = "cryptography-42.0.8-cp39-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:dc0fdf6787f37b1c6b08e6dfc892d9d068b5bdb671198c72072828b80bd5fe4c"}, + {file = "cryptography-42.0.8-cp39-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:9c0c1716c8447ee7dbf08d6db2e5c41c688544c61074b54fc4564196f55c25a7"}, + {file = "cryptography-42.0.8-cp39-abi3-musllinux_1_1_aarch64.whl", hash = "sha256:fff12c88a672ab9c9c1cf7b0c80e3ad9e2ebd9d828d955c126be4fd3e5578c9e"}, + {file = "cryptography-42.0.8-cp39-abi3-musllinux_1_1_x86_64.whl", hash = "sha256:cafb92b2bc622cd1aa6a1dce4b93307792633f4c5fe1f46c6b97cf67073ec961"}, + {file = "cryptography-42.0.8-cp39-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:31f721658a29331f895a5a54e7e82075554ccfb8b163a18719d342f5ffe5ecb1"}, + {file = "cryptography-42.0.8-cp39-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:b297f90c5723d04bcc8265fc2a0f86d4ea2e0f7ab4b6994459548d3a6b992a14"}, + {file = "cryptography-42.0.8-cp39-abi3-win32.whl", hash = "sha256:2f88d197e66c65be5e42cd72e5c18afbfae3f741742070e3019ac8f4ac57262c"}, + {file = "cryptography-42.0.8-cp39-abi3-win_amd64.whl", hash = "sha256:fa76fbb7596cc5839320000cdd5d0955313696d9511debab7ee7278fc8b5c84a"}, + {file = "cryptography-42.0.8-pp310-pypy310_pp73-macosx_10_12_x86_64.whl", hash = "sha256:ba4f0a211697362e89ad822e667d8d340b4d8d55fae72cdd619389fb5912eefe"}, + {file = "cryptography-42.0.8-pp310-pypy310_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:81884c4d096c272f00aeb1f11cf62ccd39763581645b0812e99a91505fa48e0c"}, + {file = "cryptography-42.0.8-pp310-pypy310_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:c9bb2ae11bfbab395bdd072985abde58ea9860ed84e59dbc0463a5d0159f5b71"}, + {file = "cryptography-42.0.8-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:7016f837e15b0a1c119d27ecd89b3515f01f90a8615ed5e9427e30d9cdbfed3d"}, + {file = "cryptography-42.0.8-pp39-pypy39_pp73-macosx_10_12_x86_64.whl", hash = "sha256:5a94eccb2a81a309806027e1670a358b99b8fe8bfe9f8d329f27d72c094dde8c"}, + {file = "cryptography-42.0.8-pp39-pypy39_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:dec9b018df185f08483f294cae6ccac29e7a6e0678996587363dc352dc65c842"}, + {file = "cryptography-42.0.8-pp39-pypy39_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:343728aac38decfdeecf55ecab3264b015be68fc2816ca800db649607aeee648"}, + {file = "cryptography-42.0.8-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:013629ae70b40af70c9a7a5db40abe5d9054e6f4380e50ce769947b73bf3caad"}, + {file = "cryptography-42.0.8.tar.gz", hash = "sha256:8d09d05439ce7baa8e9e95b07ec5b6c886f548deb7e0f69ef25f64b3bce842f2"}, ] [[package]] @@ -597,7 +597,7 @@ name = "enkanetwork-py" version = "1.4.4" requires_python = ">=3.6" git = "https://github.com/PaiGramTeam/EnkaNetwork.py" -revision = "71de88274d8bf11e1d91fd7782c7cdafb9bbd325" +revision = "ca2d8e5fa14714755c6990e986fc30fe430b0e4a" summary = "Library for fetching JSON data from site https://enka.network/" groups = ["default"] dependencies = [ @@ -782,13 +782,13 @@ files = [ [[package]] name = "gcsim-pypi" -version = "2.22.23" +version = "2.22.25" requires_python = "<4.0,>=3.6" summary = "gcsim binary for pypi" groups = ["default"] files = [ - {file = "gcsim_pypi-2.22.23-py3-none-any.whl", hash = "sha256:54c898353d5a4f1013d3c027dceb09e4ea502ae9d205fe671e1abc9022f985ae"}, - {file = "gcsim_pypi-2.22.23.tar.gz", hash = "sha256:5dd9e509624a15f4aded0f9e7cfd8bab15208b5128aba3d03fd5118bd56164c2"}, + {file = "gcsim_pypi-2.22.25-py3-none-any.whl", hash = "sha256:f46293d8c3e41bf4770a67334b1aca663dfc8ac7ec2914c71e6fd4dc1f2f11c5"}, + {file = "gcsim_pypi-2.22.25.tar.gz", hash = "sha256:51561d4c665c7b6c51b6d82ac6d0c156fce3a4d8f765ae32354052e393b3c725"}, ] [[package]] @@ -953,7 +953,7 @@ files = [ [[package]] name = "httpx" -version = "0.26.0" +version = "0.27.0" requires_python = ">=3.8" summary = "The next generation HTTP client." groups = ["default"] @@ -965,8 +965,8 @@ dependencies = [ "sniffio", ] files = [ - {file = "httpx-0.26.0-py3-none-any.whl", hash = "sha256:8915f5a3627c4d47b73e8202457cb28f1266982d1159bd5779d86a80c0eab1cd"}, - {file = "httpx-0.26.0.tar.gz", hash = "sha256:451b55c30d5185ea6b23c2c793abf9bb237d2a7dfb901ced6ff69ad37ec1dfaf"}, + {file = "httpx-0.27.0-py3-none-any.whl", hash = "sha256:71d5465162c13681bff01ad59b2cc68dd838ea1f10e51574bac27103f00c91a5"}, + {file = "httpx-0.27.0.tar.gz", hash = "sha256:a0cb88a46f32dc874e04ee956e4c2764aba2aa228f650b06788ba6bda2962ab5"}, ] [[package]] @@ -1432,13 +1432,13 @@ files = [ [[package]] name = "packaging" -version = "24.0" -requires_python = ">=3.7" +version = "24.1" +requires_python = ">=3.8" summary = "Core utilities for Python packages" groups = ["default", "test"] files = [ - {file = "packaging-24.0-py3-none-any.whl", hash = "sha256:2ddfb553fdf02fb784c234c7ba6ccc288296ceabec964ad2eae3777778130bc5"}, - {file = "packaging-24.0.tar.gz", hash = "sha256:eb82c5e3e56209074766e6885bb04b8c38a0c015d0a30036ebe7ece34c9989e9"}, + {file = "packaging-24.1-py3-none-any.whl", hash = "sha256:5b8f2217dbdbd2f7f384c41c628544e6d52f2d0f53c6d0c3ea61aa5d1d7ff124"}, + {file = "packaging-24.1.tar.gz", hash = "sha256:026ed72c8ed3fcce5bf8950572258698927fd1dbda10a5e981cdf0ac37f4f002"}, ] [[package]] @@ -1790,21 +1790,21 @@ files = [ [[package]] name = "python-telegram-bot" -version = "20.8" +version = "21.3" requires_python = ">=3.8" summary = "We have made you a wrapper you can't refuse" groups = ["default"] dependencies = [ - "httpx~=0.26.0", + "httpx~=0.27", ] files = [ - {file = "python-telegram-bot-20.8.tar.gz", hash = "sha256:0e1e4a6dbce3f4ba606990d66467a5a2d2018368fe44756fae07410a74e960dc"}, - {file = "python_telegram_bot-20.8-py3-none-any.whl", hash = "sha256:a98ddf2f237d6584b03a2f8b20553e1b5e02c8d3a1ea8e17fd06cc955af78c14"}, + {file = "python-telegram-bot-21.3.tar.gz", hash = "sha256:1be3c8b6f2b7354418109daa3f23c522e82ed22e7fc904346bee0c7b4aab52ae"}, + {file = "python_telegram_bot-21.3-py3-none-any.whl", hash = "sha256:8f575e6da903edd1e78967b5b481455ee6b27f2804d2384029177eab165f2e93"}, ] [[package]] name = "python-telegram-bot" -version = "20.8" +version = "21.3" extras = ["ext", "rate-limiter"] requires_python = ">=3.8" summary = "We have made you a wrapper you can't refuse" @@ -1813,14 +1813,14 @@ dependencies = [ "APScheduler~=3.10.4", "aiolimiter~=1.1.0", "aiolimiter~=1.1.0", - "cachetools~=5.3.2", - "python-telegram-bot==20.8", + "cachetools~=5.3.3", + "python-telegram-bot==21.3", "pytz>=2018.6", "tornado~=6.4", ] files = [ - {file = "python-telegram-bot-20.8.tar.gz", hash = "sha256:0e1e4a6dbce3f4ba606990d66467a5a2d2018368fe44756fae07410a74e960dc"}, - {file = "python_telegram_bot-20.8-py3-none-any.whl", hash = "sha256:a98ddf2f237d6584b03a2f8b20553e1b5e02c8d3a1ea8e17fd06cc955af78c14"}, + {file = "python-telegram-bot-21.3.tar.gz", hash = "sha256:1be3c8b6f2b7354418109daa3f23c522e82ed22e7fc904346bee0c7b4aab52ae"}, + {file = "python_telegram_bot-21.3-py3-none-any.whl", hash = "sha256:8f575e6da903edd1e78967b5b481455ee6b27f2804d2384029177eab165f2e93"}, ] [[package]] @@ -1985,7 +1985,7 @@ files = [ [[package]] name = "redis" -version = "5.0.4" +version = "5.0.5" requires_python = ">=3.7" summary = "Python client for Redis database and key-value store" groups = ["default"] @@ -1993,8 +1993,8 @@ dependencies = [ "async-timeout>=4.0.3; python_full_version < \"3.11.3\"", ] files = [ - {file = "redis-5.0.4-py3-none-any.whl", hash = "sha256:7adc2835c7a9b5033b7ad8f8918d09b7344188228809c98df07af226d39dec91"}, - {file = "redis-5.0.4.tar.gz", hash = "sha256:ec31f2ed9675cc54c21ba854cfe0462e6faf1d83c8ce5944709db8a4700b9c61"}, + {file = "redis-5.0.5-py3-none-any.whl", hash = "sha256:30b47d4ebb6b7a0b9b40c1275a19b87bb6f46b3bed82a89012cf56dea4024ada"}, + {file = "redis-5.0.5.tar.gz", hash = "sha256:3417688621acf6ee368dec4a04dd95881be24efd34c79f00d31f62bb528800ae"}, ] [[package]] @@ -2043,7 +2043,7 @@ name = "simnet" version = "0.1.21" requires_python = "<4.0,>=3.8" git = "https://github.com/PaiGramTeam/SIMNet" -revision = "5c02e769820f005a9b81ca954bd454b521acca4b" +revision = "a3eb0bcfa5dca0a930ff61e5c66082c3cfc58953" summary = "Modern API wrapper for Genshin Impact & Honkai: Star Rail built on asyncio and pydantic." groups = ["default"] dependencies = [ @@ -2162,17 +2162,17 @@ files = [ [[package]] name = "sqlmodel" -version = "0.0.18" +version = "0.0.19" requires_python = ">=3.7" summary = "SQLModel, SQL databases in Python, designed for simplicity, compatibility, and robustness." groups = ["default"] dependencies = [ - "SQLAlchemy<2.1.0,>=2.0.0", + "SQLAlchemy<2.1.0,>=2.0.14", "pydantic<3.0.0,>=1.10.13", ] files = [ - {file = "sqlmodel-0.0.18-py3-none-any.whl", hash = "sha256:d70fdf8fe595e30a918660cf4537b9c5fc2fffdbfcba851a0135de73c3ebcbb7"}, - {file = "sqlmodel-0.0.18.tar.gz", hash = "sha256:2e520efe03810ef2c268a1004cfc5ef8f8a936312232f38d6c8e62c11af2cac3"}, + {file = "sqlmodel-0.0.19-py3-none-any.whl", hash = "sha256:6c8125d4101970d031e9aae970b20cbeaf44149989f8366d939f4ab21aab8763"}, + {file = "sqlmodel-0.0.19.tar.gz", hash = "sha256:95449b0b48a40a3eecf0a629fa5735b9dfc8a5574a91090d24ca17f02246ad96"}, ] [[package]] @@ -2276,22 +2276,22 @@ files = [ [[package]] name = "tornado" -version = "6.4" -requires_python = ">= 3.8" +version = "6.4.1" +requires_python = ">=3.8" summary = "Tornado is a Python web framework and asynchronous networking library, originally developed at FriendFeed." groups = ["default"] files = [ - {file = "tornado-6.4-cp38-abi3-macosx_10_9_universal2.whl", hash = "sha256:02ccefc7d8211e5a7f9e8bc3f9e5b0ad6262ba2fbb683a6443ecc804e5224ce0"}, - {file = "tornado-6.4-cp38-abi3-macosx_10_9_x86_64.whl", hash = "sha256:27787de946a9cffd63ce5814c33f734c627a87072ec7eed71f7fc4417bb16263"}, - {file = "tornado-6.4-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f7894c581ecdcf91666a0912f18ce5e757213999e183ebfc2c3fdbf4d5bd764e"}, - {file = "tornado-6.4-cp38-abi3-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e43bc2e5370a6a8e413e1e1cd0c91bedc5bd62a74a532371042a18ef19e10579"}, - {file = "tornado-6.4-cp38-abi3-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f0251554cdd50b4b44362f73ad5ba7126fc5b2c2895cc62b14a1c2d7ea32f212"}, - {file = "tornado-6.4-cp38-abi3-musllinux_1_1_aarch64.whl", hash = "sha256:fd03192e287fbd0899dd8f81c6fb9cbbc69194d2074b38f384cb6fa72b80e9c2"}, - {file = "tornado-6.4-cp38-abi3-musllinux_1_1_i686.whl", hash = "sha256:88b84956273fbd73420e6d4b8d5ccbe913c65d31351b4c004ae362eba06e1f78"}, - {file = "tornado-6.4-cp38-abi3-musllinux_1_1_x86_64.whl", hash = "sha256:71ddfc23a0e03ef2df1c1397d859868d158c8276a0603b96cf86892bff58149f"}, - {file = "tornado-6.4-cp38-abi3-win32.whl", hash = "sha256:6f8a6c77900f5ae93d8b4ae1196472d0ccc2775cc1dfdc9e7727889145c45052"}, - {file = "tornado-6.4-cp38-abi3-win_amd64.whl", hash = "sha256:10aeaa8006333433da48dec9fe417877f8bcc21f48dda8d661ae79da357b2a63"}, - {file = "tornado-6.4.tar.gz", hash = "sha256:72291fa6e6bc84e626589f1c29d90a5a6d593ef5ae68052ee2ef000dfd273dee"}, + {file = "tornado-6.4.1-cp38-abi3-macosx_10_9_universal2.whl", hash = "sha256:163b0aafc8e23d8cdc3c9dfb24c5368af84a81e3364745ccb4427669bf84aec8"}, + {file = "tornado-6.4.1-cp38-abi3-macosx_10_9_x86_64.whl", hash = "sha256:6d5ce3437e18a2b66fbadb183c1d3364fb03f2be71299e7d10dbeeb69f4b2a14"}, + {file = "tornado-6.4.1-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e2e20b9113cd7293f164dc46fffb13535266e713cdb87bd2d15ddb336e96cfc4"}, + {file = "tornado-6.4.1-cp38-abi3-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:8ae50a504a740365267b2a8d1a90c9fbc86b780a39170feca9bcc1787ff80842"}, + {file = "tornado-6.4.1-cp38-abi3-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:613bf4ddf5c7a95509218b149b555621497a6cc0d46ac341b30bd9ec19eac7f3"}, + {file = "tornado-6.4.1-cp38-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:25486eb223babe3eed4b8aecbac33b37e3dd6d776bc730ca14e1bf93888b979f"}, + {file = "tornado-6.4.1-cp38-abi3-musllinux_1_2_i686.whl", hash = "sha256:454db8a7ecfcf2ff6042dde58404164d969b6f5d58b926da15e6b23817950fc4"}, + {file = "tornado-6.4.1-cp38-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:a02a08cc7a9314b006f653ce40483b9b3c12cda222d6a46d4ac63bb6c9057698"}, + {file = "tornado-6.4.1-cp38-abi3-win32.whl", hash = "sha256:d9a566c40b89757c9aa8e6f032bcdb8ca8795d7c1a9762910c722b1635c9de4d"}, + {file = "tornado-6.4.1-cp38-abi3-win_amd64.whl", hash = "sha256:b24b8982ed444378d7f21d563f4180a2de31ced9d8d84443907a0a64da2072e7"}, + {file = "tornado-6.4.1.tar.gz", hash = "sha256:92d3ab53183d8c50f8204a51e6f91d18a15d5ef261e84d452800d4ff6fc504e9"}, ] [[package]] @@ -2313,13 +2313,13 @@ files = [ [[package]] name = "typing-extensions" -version = "4.12.1" +version = "4.12.2" requires_python = ">=3.8" summary = "Backported and Experimental Type Hints for Python 3.8+" groups = ["default"] files = [ - {file = "typing_extensions-4.12.1-py3-none-any.whl", hash = "sha256:6024b58b69089e5a89c347397254e35f1bf02a907728ec7fee9bf0fe837d203a"}, - {file = "typing_extensions-4.12.1.tar.gz", hash = "sha256:915f5e35ff76f56588223f15fdd5938f9a1cf9195c0de25130c627e4d597f6d1"}, + {file = "typing_extensions-4.12.2-py3-none-any.whl", hash = "sha256:04e5ca0351e0f3f85c6853954072df659d0d13fac324d0072316b67d7794700d"}, + {file = "typing_extensions-4.12.2.tar.gz", hash = "sha256:1a7ead55c7e559dd4dee8856e3a88b41225abfe1ce8df57b7c13915fe121ffb8"}, ] [[package]] @@ -2450,7 +2450,7 @@ files = [ [[package]] name = "uvicorn" -version = "0.30.0" +version = "0.30.1" requires_python = ">=3.8" summary = "The lightning-fast ASGI server." groups = ["default"] @@ -2460,13 +2460,13 @@ dependencies = [ "typing-extensions>=4.0; python_version < \"3.11\"", ] files = [ - {file = "uvicorn-0.30.0-py3-none-any.whl", hash = "sha256:78fa0b5f56abb8562024a59041caeb555c86e48d0efdd23c3fe7de7a4075bdab"}, - {file = "uvicorn-0.30.0.tar.gz", hash = "sha256:f678dec4fa3a39706bbf49b9ec5fc40049d42418716cea52b53f07828a60aa37"}, + {file = "uvicorn-0.30.1-py3-none-any.whl", hash = "sha256:cd17daa7f3b9d7a24de3617820e634d0933b69eed8e33a516071174427238c81"}, + {file = "uvicorn-0.30.1.tar.gz", hash = "sha256:d46cd8e0fd80240baffbcd9ec1012a712938754afcf81bce56c024c1656aece8"}, ] [[package]] name = "uvicorn" -version = "0.30.0" +version = "0.30.1" extras = ["standard"] requires_python = ">=3.8" summary = "The lightning-fast ASGI server." @@ -2476,14 +2476,14 @@ dependencies = [ "httptools>=0.5.0", "python-dotenv>=0.13", "pyyaml>=5.1", - "uvicorn==0.30.0", + "uvicorn==0.30.1", "uvloop!=0.15.0,!=0.15.1,>=0.14.0; (sys_platform != \"cygwin\" and sys_platform != \"win32\") and platform_python_implementation != \"PyPy\"", "watchfiles>=0.13", "websockets>=10.4", ] files = [ - {file = "uvicorn-0.30.0-py3-none-any.whl", hash = "sha256:78fa0b5f56abb8562024a59041caeb555c86e48d0efdd23c3fe7de7a4075bdab"}, - {file = "uvicorn-0.30.0.tar.gz", hash = "sha256:f678dec4fa3a39706bbf49b9ec5fc40049d42418716cea52b53f07828a60aa37"}, + {file = "uvicorn-0.30.1-py3-none-any.whl", hash = "sha256:cd17daa7f3b9d7a24de3617820e634d0933b69eed8e33a516071174427238c81"}, + {file = "uvicorn-0.30.1.tar.gz", hash = "sha256:d46cd8e0fd80240baffbcd9ec1012a712938754afcf81bce56c024c1656aece8"}, ] [[package]] @@ -2787,12 +2787,12 @@ files = [ [[package]] name = "zipp" -version = "3.19.1" +version = "3.19.2" requires_python = ">=3.8" summary = "Backport of pathlib-compatible object wrapper for zip files" groups = ["default"] marker = "python_version < \"3.9\"" files = [ - {file = "zipp-3.19.1-py3-none-any.whl", hash = "sha256:2828e64edb5386ea6a52e7ba7cdb17bb30a73a858f5eb6eb93d8d36f5ea26091"}, - {file = "zipp-3.19.1.tar.gz", hash = "sha256:35427f6d5594f4acf82d25541438348c26736fa9b3afa2754bcd63cdb99d8e8f"}, + {file = "zipp-3.19.2-py3-none-any.whl", hash = "sha256:f091755f667055f2d02b32c53771a7a6c8b47e1fdbc4b72a8b9072b3eef8015c"}, + {file = "zipp-3.19.2.tar.gz", hash = "sha256:bf1dcf6450f873a13e952a29504887c89e6de7506209e5b1bcc3460135d4de19"}, ] diff --git a/plugins/genshin/abyss.py b/plugins/genshin/abyss.py index a0ca756..f33bd07 100644 --- a/plugins/genshin/abyss.py +++ b/plugins/genshin/abyss.py @@ -170,9 +170,7 @@ class AbyssPlugin(Plugin): await message.reply_chat_action(ChatAction.UPLOAD_PHOTO) for group in ArkoWrapper(images).group(10): # 每 10 张图片分一个组 - await RenderGroupResult(results=group).reply_media_group( - message, allow_sending_without_reply=True, write_timeout=60 - ) + await RenderGroupResult(results=group).reply_media_group(message, write_timeout=60) self.log_user(update, logger.info, "[bold]深渊挑战数据[/bold]: 成功发送图片", extra={"markup": True}) @@ -536,9 +534,7 @@ class AbyssPlugin(Plugin): await message.reply_chat_action(ChatAction.UPLOAD_PHOTO) for group in ArkoWrapper(images).group(10): # 每 10 张图片分一个组 - await RenderGroupResult(results=group).reply_media_group( - reply or message, allow_sending_without_reply=True, write_timeout=60 - ) + await RenderGroupResult(results=group).reply_media_group(reply or message, write_timeout=60) self.log_user(update, logger.info, "[bold]深渊挑战数据[/bold]: 成功发送图片", extra={"markup": True}) self.add_delete_message_job(message, delay=1) diff --git a/plugins/genshin/abyss_team.py b/plugins/genshin/abyss_team.py index 6f995f3..f30de93 100644 --- a/plugins/genshin/abyss_team.py +++ b/plugins/genshin/abyss_team.py @@ -128,4 +128,4 @@ class AbyssTeamPlugin(Plugin): full_page=True, query_selector=".bg-contain", ) - await render_result.reply_photo(message, filename=f"abyss_team_{user_id}.png", allow_sending_without_reply=True) + await render_result.reply_photo(message, filename=f"abyss_team_{user_id}.png") diff --git a/plugins/genshin/avatar_list.py b/plugins/genshin/avatar_list.py index a72a1ee..68e0377 100644 --- a/plugins/genshin/avatar_list.py +++ b/plugins/genshin/avatar_list.py @@ -213,9 +213,7 @@ class AvatarListPlugin(Plugin): images = await self.avatar_list_render(base_render_data, avatar_datas, not all_avatars) for group in ArkoWrapper(images).group(10): # 每 10 张图片分一个组 - await RenderGroupResult(results=group).reply_media_group( - message, allow_sending_without_reply=True, write_timeout=60 - ) + await RenderGroupResult(results=group).reply_media_group(message, write_timeout=60) self.log_user( update, diff --git a/plugins/genshin/daily_note.py b/plugins/genshin/daily_note.py index 8f866ae..e5ecb07 100644 --- a/plugins/genshin/daily_note.py +++ b/plugins/genshin/daily_note.py @@ -124,6 +124,5 @@ class DailyNotePlugin(Plugin): await render_result.reply_photo( message, filename=f"{client.player_id}.png", - allow_sending_without_reply=True, reply_markup=self.get_task_button(context.bot.username), ) diff --git a/plugins/genshin/help.py b/plugins/genshin/help.py index d10c784..20c253d 100644 --- a/plugins/genshin/help.py +++ b/plugins/genshin/help.py @@ -28,4 +28,4 @@ class HelpPlugin(Plugin): ttl=30 * 24 * 60 * 60, ) await message.reply_chat_action(ChatAction.UPLOAD_PHOTO) - await render_result.reply_photo(message, filename="help.png", allow_sending_without_reply=True) + await render_result.reply_photo(message, filename="help.png") diff --git a/plugins/genshin/help_raw.py b/plugins/genshin/help_raw.py index 85a13a1..8447472 100644 --- a/plugins/genshin/help_raw.py +++ b/plugins/genshin/help_raw.py @@ -47,4 +47,4 @@ class HelpRawPlugin(Plugin): if self.help_raw is None: await message.reply_text(f"出错了呜呜呜~ {config.notice.bot_name}没有找到任何帮助信息") return - await message.reply_text(self.help_raw, allow_sending_without_reply=True) + await message.reply_text(self.help_raw) diff --git a/plugins/genshin/ledger.py b/plugins/genshin/ledger.py index 48e8f81..80f8b78 100644 --- a/plugins/genshin/ledger.py +++ b/plugins/genshin/ledger.py @@ -144,7 +144,7 @@ class LedgerPlugin(Plugin): return raise exc await message.reply_chat_action(ChatAction.UPLOAD_PHOTO) - await render_result.reply_photo(message, filename=f"{client.player_id}.png", allow_sending_without_reply=True) + await render_result.reply_photo(message, filename=f"{client.player_id}.png") @staticmethod async def save_ledger_data( diff --git a/plugins/genshin/sign.py b/plugins/genshin/sign.py index 50737d1..56fa6af 100644 --- a/plugins/genshin/sign.py +++ b/plugins/genshin/sign.py @@ -104,13 +104,13 @@ class Sign(Plugin): if challenge: sign_text = await self.sign_system.start_sign(client, challenge=challenge, validate=validate) else: - reply_message = await message.reply_text("请求已经过期", allow_sending_without_reply=True) + reply_message = await message.reply_text("请求已经过期") if filters.ChatType.GROUPS.filter(reply_message): self.add_delete_message_job(reply_message) return else: sign_text = await self.sign_system.start_sign(client) - reply_message = await message.reply_text(sign_text, allow_sending_without_reply=True) + reply_message = await message.reply_text(sign_text) if filters.ChatType.GROUPS.filter(reply_message): self.add_delete_message_job(reply_message) except NeedChallenge as exc: @@ -124,7 +124,6 @@ class Sign(Plugin): ) reply_message = await message.reply_text( "签到失败,触发验证码风控,请尝试点击下方按钮重新签到", - allow_sending_without_reply=True, reply_markup=button, ) if filters.ChatType.GROUPS.filter(reply_message): @@ -143,12 +142,12 @@ class Sign(Plugin): await message.reply_chat_action(ChatAction.TYPING) _, challenge = await self.sign_system.get_challenge(client.player_id) if not challenge: - await message.reply_text("验证请求已过期。", allow_sending_without_reply=True) + await message.reply_text("验证请求已过期。") return sign_text = await self.sign_system.start_sign(client, challenge=challenge, validate=validate) - await message.reply_text(sign_text, allow_sending_without_reply=True) + await message.reply_text(sign_text) except NeedChallenge: - await message.reply_text("回调错误,请重新签到", allow_sending_without_reply=True) + await message.reply_text("回调错误,请重新签到") @handler(CallbackQueryHandler, pattern=r"^sign\|", block=False) async def sign_gen_link(self, update: Update, context: CallbackContext) -> None: diff --git a/plugins/genshin/stats.py b/plugins/genshin/stats.py index 62ea6da..cd7207b 100644 --- a/plugins/genshin/stats.py +++ b/plugins/genshin/stats.py @@ -56,7 +56,7 @@ class PlayerStatsPlugins(Plugin): await message.reply_text("输入错误") return await message.reply_chat_action(ChatAction.UPLOAD_PHOTO) - await render_result.reply_photo(message, filename=f"{client.player_id}.png", allow_sending_without_reply=True) + await render_result.reply_photo(message, filename=f"{client.player_id}.png") async def render(self, client: "GenshinClient", uid: Optional[int] = None) -> RenderResult: if uid is None: diff --git a/plugins/genshin/strategy.py b/plugins/genshin/strategy.py index e8a6568..5950552 100644 --- a/plugins/genshin/strategy.py +++ b/plugins/genshin/strategy.py @@ -58,7 +58,6 @@ class StrategyPlugin(Plugin): photo=open(file_path, "rb"), caption=caption, filename=f"{character_name}.png", - allow_sending_without_reply=True, parse_mode=ParseMode.HTML, ) if reply_photo.photo: diff --git a/plugins/genshin/weapon.py b/plugins/genshin/weapon.py index 8b467e2..3d37494 100644 --- a/plugins/genshin/weapon.py +++ b/plugins/genshin/weapon.py @@ -129,7 +129,6 @@ class WeaponPlugin(Plugin): reply_photo = await png_data.reply_photo( message, filename=f"{template_data['weapon_name']}.png", - allow_sending_without_reply=True, ) if reply_photo.photo: description = weapon_data.story diff --git a/plugins/system/errorhandler.py b/plugins/system/errorhandler.py index c240c2d..54831f3 100644 --- a/plugins/system/errorhandler.py +++ b/plugins/system/errorhandler.py @@ -121,7 +121,7 @@ class ErrorHandler(Plugin): await update.callback_query.answer(content, show_alert=True) return if message: - reply_text = await message.reply_text(content, reply_markup=buttons, allow_sending_without_reply=True) + reply_text = await message.reply_text(content, reply_markup=buttons) if filters.ChatType.GROUPS.filter(reply_text): self.add_delete_message_job(reply_text, context=context) self.add_delete_message_job(message, context=context) diff --git a/pyproject.toml b/pyproject.toml index a2ac54d..95ffab4 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -16,7 +16,7 @@ dependencies = [ "httpx<1.0.0,>=0.25.0", "ujson<6.0.0,>=5.9.0", "Jinja2<4.0.0,>=3.1.2", - "python-telegram-bot[ext,rate-limiter]<21.0,>=20.7", + "python-telegram-bot[ext,rate-limiter]<22.0,>=21.3", "sqlmodel<1.0.0,>=0.0.16", "colorlog<7.0.0,>=6.8.0", "fakeredis<3.0.0,>=2.19.0", diff --git a/requirements.txt b/requirements.txt index 1c29260..883c76b 100644 --- a/requirements.txt +++ b/requirements.txt @@ -23,10 +23,10 @@ cffi==1.16.0; platform_python_implementation != "PyPy" click==8.1.7 colorama==0.4.6; sys_platform == "win32" or platform_system == "Windows" colorlog==6.8.2 -cryptography==42.0.7 +cryptography==42.0.8 dnspython==2.6.1 email-validator==2.1.1 -enkanetwork-py @ git+https://github.com/PaiGramTeam/EnkaNetwork.py@71de88274d8bf11e1d91fd7782c7cdafb9bbd325 +enkanetwork-py @ git+https://github.com/PaiGramTeam/EnkaNetwork.py@ca2d8e5fa14714755c6990e986fc30fe430b0e4a et-xmlfile==1.1.0 exceptiongroup==1.2.1; python_version < "3.11" fakeredis==2.23.2 @@ -34,14 +34,14 @@ fastapi==0.111.0 fastapi-cli==0.0.4 flaky==3.8.1 frozenlist==1.4.1 -gcsim-pypi==2.22.23 +gcsim-pypi==2.22.25 gitdb==4.0.11 gitpython==3.1.43 greenlet==3.0.0 h11==0.14.0 httpcore==1.0.5 httptools==0.6.1 -httpx==0.26.0 +httpx==0.27.0 idna==3.7 importlib-metadata==7.1.0; python_version < "3.9" importlib-resources==6.4.0; python_version < "3.9" @@ -56,7 +56,7 @@ multidict==6.0.5 mypy-extensions==1.0.0 openpyxl==3.1.3 orjson==3.10.3 -packaging==24.0 +packaging==24.1 pathspec==0.12.1 pillow==10.3.0 platformdirs==4.2.2 @@ -75,36 +75,36 @@ pytest-asyncio==0.23.7 python-dotenv==1.0.1 python-genshin-artifact==1.0.7 python-multipart==0.0.9 -python-telegram-bot==20.8 +python-telegram-bot==21.3 pytz==2024.1 pyyaml==6.0.1 rapidfuzz==3.9.3 -redis==5.0.4 +redis==5.0.5 rich==13.7.1 sentry-sdk==1.45.0 shellingham==1.5.4 -simnet @ git+https://github.com/PaiGramTeam/SIMNet@5c02e769820f005a9b81ca954bd454b521acca4b +simnet @ git+https://github.com/PaiGramTeam/SIMNet@a3eb0bcfa5dca0a930ff61e5c66082c3cfc58953 six==1.16.0 smmap==5.0.1 sniffio==1.3.1 sortedcontainers==2.4.0 soupsieve==2.5 sqlalchemy==2.0.30 -sqlmodel==0.0.18 +sqlmodel==0.0.19 starlette==0.37.2 tgcrypto==1.2.5 thefuzz==0.22.1 tomli==2.0.1; python_version < "3.11" -tornado==6.4 +tornado==6.4.1 typer==0.12.3 -typing-extensions==4.12.1 +typing-extensions==4.12.2 tzdata==2024.1; platform_system == "Windows" tzlocal==5.2 ujson==5.10.0 urllib3==2.2.1; python_version >= "3.6" -uvicorn==0.30.0 +uvicorn==0.30.1 uvloop==0.19.0; (sys_platform != "cygwin" and sys_platform != "win32") and platform_python_implementation != "PyPy" watchfiles==0.22.0 websockets==12.0 yarl==1.9.4 -zipp==3.19.1; python_version < "3.9" +zipp==3.19.2; python_version < "3.9" diff --git a/utils/patch/httpx_jsonlib.py b/utils/patch/httpx_jsonlib.py new file mode 100644 index 0000000..b4055fd --- /dev/null +++ b/utils/patch/httpx_jsonlib.py @@ -0,0 +1,17 @@ +import typing + +import httpx + +from utils.patch.methods import patch, patchable + +try: + import ujson as jsonlib +except ImportError: + import json as jsonlib + + +@patch(httpx.Response) +class Response: + @patchable + def json(self, **kwargs: typing.Any) -> typing.Any: + return jsonlib.loads(self.content, **kwargs)