From f96b7a9ed38bc90334deff71d00bfeb97bcb3e13 Mon Sep 17 00:00:00 2001 From: baiqwerdvd <158065462+baiqwerdvd@users.noreply.github.com> Date: Sat, 27 Apr 2024 17:10:31 +0800 Subject: [PATCH] Bump to 1.5.4 --- pdm.lock | 431 +++++++++--------- pyproject.toml | 6 +- .../damage/AvatarDamage/AvatarDamage.py | 265 +++++------ starrail_damage_cal/damage/Base/AvatarBase.py | 9 +- starrail_damage_cal/damage/Base/RelicBase.py | 17 +- starrail_damage_cal/damage/Base/WeaponBase.py | 7 +- starrail_damage_cal/damage/Relic/Relic.py | 40 +- starrail_damage_cal/damage/Role.py | 30 +- starrail_damage_cal/damage/Weapon/Weapon.py | 215 ++++----- starrail_damage_cal/exception.py | 1 + starrail_damage_cal/mihomo/__init__.py | 1 + starrail_damage_cal/mono/Character.py | 9 +- starrail_damage_cal/to_data.py | 12 +- 13 files changed, 518 insertions(+), 525 deletions(-) diff --git a/pdm.lock b/pdm.lock index 2544e8a..ad5a6ba 100644 --- a/pdm.lock +++ b/pdm.lock @@ -3,34 +3,34 @@ [metadata] groups = ["default", "test", "lint"] -cross_platform = true -static_urls = false -lock_version = "4.3" +strategy = ["cross_platform"] +lock_version = "4.4.1" content_hash = "sha256:1b338e97a2e31cf80be528667db03a0aaf04dec9a222fc70c4bb9c326736b754" [[package]] name = "anyio" -version = "4.0.0" +version = "4.3.0" requires_python = ">=3.8" summary = "High level compatibility layer for multiple asynchronous event loop implementations" dependencies = [ "exceptiongroup>=1.0.2; python_version < \"3.11\"", "idna>=2.8", "sniffio>=1.1", + "typing-extensions>=4.1; python_version < \"3.11\"", ] files = [ - {file = "anyio-4.0.0-py3-none-any.whl", hash = "sha256:cfdb2b588b9fc25ede96d8db56ed50848b0b649dca3dd1df0b11f683bb9e0b5f"}, - {file = "anyio-4.0.0.tar.gz", hash = "sha256:f7ed51751b2c2add651e5747c891b47e26d2a21be5d32d9311dfe9692f3e5d7a"}, + {file = "anyio-4.3.0-py3-none-any.whl", hash = "sha256:048e05d0f6caeed70d731f3db756d35dcc1f35747c8c403364a8332c630441b8"}, + {file = "anyio-4.3.0.tar.gz", hash = "sha256:f75253795a87df48568485fd18cdd2a3fa5c4f7c5be8e5e36637733fce06fed6"}, ] [[package]] name = "certifi" -version = "2023.7.22" +version = "2024.2.2" requires_python = ">=3.6" summary = "Python package for providing Mozilla's CA Bundle." files = [ - {file = "certifi-2023.7.22-py3-none-any.whl", hash = "sha256:92d6037539857d8206b8f6ae472e8b77db8058fec5937a1ef3f54304089edbb9"}, - {file = "certifi-2023.7.22.tar.gz", hash = "sha256:539cc1d13202e33ca466e88b2807e29f4c13049d6d87031a3c110744495cb082"}, + {file = "certifi-2024.2.2-py3-none-any.whl", hash = "sha256:dc383c07b76109f368f6106eee2b593b04a011ea4d55f652c6ca24a754d1cdd1"}, + {file = "certifi-2024.2.2.tar.gz", hash = "sha256:0569859f95fc761b18b45ef421b1290a0f65f147e92a1e5eb3e635f9a5e4e66f"}, ] [[package]] @@ -45,137 +45,137 @@ files = [ [[package]] name = "coverage" -version = "7.3.2" +version = "7.5.0" requires_python = ">=3.8" summary = "Code coverage measurement for Python" files = [ - {file = "coverage-7.3.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:d872145f3a3231a5f20fd48500274d7df222e291d90baa2026cc5152b7ce86bf"}, - {file = "coverage-7.3.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:310b3bb9c91ea66d59c53fa4989f57d2436e08f18fb2f421a1b0b6b8cc7fffda"}, - {file = "coverage-7.3.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f47d39359e2c3779c5331fc740cf4bce6d9d680a7b4b4ead97056a0ae07cb49a"}, - {file = "coverage-7.3.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:aa72dbaf2c2068404b9870d93436e6d23addd8bbe9295f49cbca83f6e278179c"}, - {file = "coverage-7.3.2-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:beaa5c1b4777f03fc63dfd2a6bd820f73f036bfb10e925fce067b00a340d0f3f"}, - {file = "coverage-7.3.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:dbc1b46b92186cc8074fee9d9fbb97a9dd06c6cbbef391c2f59d80eabdf0faa6"}, - {file = "coverage-7.3.2-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:315a989e861031334d7bee1f9113c8770472db2ac484e5b8c3173428360a9148"}, - {file = "coverage-7.3.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:d1bc430677773397f64a5c88cb522ea43175ff16f8bfcc89d467d974cb2274f9"}, - {file = "coverage-7.3.2-cp310-cp310-win32.whl", hash = "sha256:a889ae02f43aa45032afe364c8ae84ad3c54828c2faa44f3bfcafecb5c96b02f"}, - {file = "coverage-7.3.2-cp310-cp310-win_amd64.whl", hash = "sha256:c0ba320de3fb8c6ec16e0be17ee1d3d69adcda99406c43c0409cb5c41788a611"}, - {file = "coverage-7.3.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:ac8c802fa29843a72d32ec56d0ca792ad15a302b28ca6203389afe21f8fa062c"}, - {file = "coverage-7.3.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:89a937174104339e3a3ffcf9f446c00e3a806c28b1841c63edb2b369310fd074"}, - {file = "coverage-7.3.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e267e9e2b574a176ddb983399dec325a80dbe161f1a32715c780b5d14b5f583a"}, - {file = "coverage-7.3.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:2443cbda35df0d35dcfb9bf8f3c02c57c1d6111169e3c85fc1fcc05e0c9f39a3"}, - {file = "coverage-7.3.2-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4175e10cc8dda0265653e8714b3174430b07c1dca8957f4966cbd6c2b1b8065a"}, - {file = "coverage-7.3.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:0cbf38419fb1a347aaf63481c00f0bdc86889d9fbf3f25109cf96c26b403fda1"}, - {file = "coverage-7.3.2-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:5c913b556a116b8d5f6ef834038ba983834d887d82187c8f73dec21049abd65c"}, - {file = "coverage-7.3.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:1981f785239e4e39e6444c63a98da3a1db8e971cb9ceb50a945ba6296b43f312"}, - {file = "coverage-7.3.2-cp311-cp311-win32.whl", hash = "sha256:43668cabd5ca8258f5954f27a3aaf78757e6acf13c17604d89648ecc0cc66640"}, - {file = "coverage-7.3.2-cp311-cp311-win_amd64.whl", hash = "sha256:e10c39c0452bf6e694511c901426d6b5ac005acc0f78ff265dbe36bf81f808a2"}, - {file = "coverage-7.3.2-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:4cbae1051ab791debecc4a5dcc4a1ff45fc27b91b9aee165c8a27514dd160836"}, - {file = "coverage-7.3.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:12d15ab5833a997716d76f2ac1e4b4d536814fc213c85ca72756c19e5a6b3d63"}, - {file = "coverage-7.3.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3c7bba973ebee5e56fe9251300c00f1579652587a9f4a5ed8404b15a0471f216"}, - {file = "coverage-7.3.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:fe494faa90ce6381770746077243231e0b83ff3f17069d748f645617cefe19d4"}, - {file = "coverage-7.3.2-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f6e9589bd04d0461a417562649522575d8752904d35c12907d8c9dfeba588faf"}, - {file = "coverage-7.3.2-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:d51ac2a26f71da1b57f2dc81d0e108b6ab177e7d30e774db90675467c847bbdf"}, - {file = "coverage-7.3.2-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:99b89d9f76070237975b315b3d5f4d6956ae354a4c92ac2388a5695516e47c84"}, - {file = "coverage-7.3.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:fa28e909776dc69efb6ed975a63691bc8172b64ff357e663a1bb06ff3c9b589a"}, - {file = "coverage-7.3.2-cp312-cp312-win32.whl", hash = "sha256:289fe43bf45a575e3ab10b26d7b6f2ddb9ee2dba447499f5401cfb5ecb8196bb"}, - {file = "coverage-7.3.2-cp312-cp312-win_amd64.whl", hash = "sha256:7dbc3ed60e8659bc59b6b304b43ff9c3ed858da2839c78b804973f613d3e92ed"}, - {file = "coverage-7.3.2-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:f94b734214ea6a36fe16e96a70d941af80ff3bfd716c141300d95ebc85339738"}, - {file = "coverage-7.3.2-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:af3d828d2c1cbae52d34bdbb22fcd94d1ce715d95f1a012354a75e5913f1bda2"}, - {file = "coverage-7.3.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:630b13e3036e13c7adc480ca42fa7afc2a5d938081d28e20903cf7fd687872e2"}, - {file = "coverage-7.3.2-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c9eacf273e885b02a0273bb3a2170f30e2d53a6d53b72dbe02d6701b5296101c"}, - {file = "coverage-7.3.2-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d8f17966e861ff97305e0801134e69db33b143bbfb36436efb9cfff6ec7b2fd9"}, - {file = "coverage-7.3.2-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:b4275802d16882cf9c8b3d057a0839acb07ee9379fa2749eca54efbce1535b82"}, - {file = "coverage-7.3.2-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:72c0cfa5250f483181e677ebc97133ea1ab3eb68645e494775deb6a7f6f83901"}, - {file = "coverage-7.3.2-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:cb536f0dcd14149425996821a168f6e269d7dcd2c273a8bff8201e79f5104e76"}, - {file = "coverage-7.3.2-cp38-cp38-win32.whl", hash = "sha256:307adb8bd3abe389a471e649038a71b4eb13bfd6b7dd9a129fa856f5c695cf92"}, - {file = "coverage-7.3.2-cp38-cp38-win_amd64.whl", hash = "sha256:88ed2c30a49ea81ea3b7f172e0269c182a44c236eb394718f976239892c0a27a"}, - {file = "coverage-7.3.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:b631c92dfe601adf8f5ebc7fc13ced6bb6e9609b19d9a8cd59fa47c4186ad1ce"}, - {file = "coverage-7.3.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:d3d9df4051c4a7d13036524b66ecf7a7537d14c18a384043f30a303b146164e9"}, - {file = "coverage-7.3.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5f7363d3b6a1119ef05015959ca24a9afc0ea8a02c687fe7e2d557705375c01f"}, - {file = "coverage-7.3.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:2f11cc3c967a09d3695d2a6f03fb3e6236622b93be7a4b5dc09166a861be6d25"}, - {file = "coverage-7.3.2-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:149de1d2401ae4655c436a3dced6dd153f4c3309f599c3d4bd97ab172eaf02d9"}, - {file = "coverage-7.3.2-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:3a4006916aa6fee7cd38db3bfc95aa9c54ebb4ffbfc47c677c8bba949ceba0a6"}, - {file = "coverage-7.3.2-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:9028a3871280110d6e1aa2df1afd5ef003bab5fb1ef421d6dc748ae1c8ef2ebc"}, - {file = "coverage-7.3.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:9f805d62aec8eb92bab5b61c0f07329275b6f41c97d80e847b03eb894f38d083"}, - {file = "coverage-7.3.2-cp39-cp39-win32.whl", hash = "sha256:d1c88ec1a7ff4ebca0219f5b1ef863451d828cccf889c173e1253aa84b1e07ce"}, - {file = "coverage-7.3.2-cp39-cp39-win_amd64.whl", hash = "sha256:b4767da59464bb593c07afceaddea61b154136300881844768037fd5e859353f"}, - {file = "coverage-7.3.2-pp38.pp39.pp310-none-any.whl", hash = "sha256:ae97af89f0fbf373400970c0a21eef5aa941ffeed90aee43650b81f7d7f47637"}, - {file = "coverage-7.3.2.tar.gz", hash = "sha256:be32ad29341b0170e795ca590e1c07e81fc061cb5b10c74ce7203491484404ef"}, + {file = "coverage-7.5.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:432949a32c3e3f820af808db1833d6d1631664d53dd3ce487aa25d574e18ad1c"}, + {file = "coverage-7.5.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:2bd7065249703cbeb6d4ce679c734bef0ee69baa7bff9724361ada04a15b7e3b"}, + {file = "coverage-7.5.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bbfe6389c5522b99768a93d89aca52ef92310a96b99782973b9d11e80511f932"}, + {file = "coverage-7.5.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:39793731182c4be939b4be0cdecde074b833f6171313cf53481f869937129ed3"}, + {file = "coverage-7.5.0-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:85a5dbe1ba1bf38d6c63b6d2c42132d45cbee6d9f0c51b52c59aa4afba057517"}, + {file = "coverage-7.5.0-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:357754dcdfd811462a725e7501a9b4556388e8ecf66e79df6f4b988fa3d0b39a"}, + {file = "coverage-7.5.0-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:a81eb64feded34f40c8986869a2f764f0fe2db58c0530d3a4afbcde50f314880"}, + {file = "coverage-7.5.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:51431d0abbed3a868e967f8257c5faf283d41ec882f58413cf295a389bb22e58"}, + {file = "coverage-7.5.0-cp310-cp310-win32.whl", hash = "sha256:f609ebcb0242d84b7adeee2b06c11a2ddaec5464d21888b2c8255f5fd6a98ae4"}, + {file = "coverage-7.5.0-cp310-cp310-win_amd64.whl", hash = "sha256:6782cd6216fab5a83216cc39f13ebe30adfac2fa72688c5a4d8d180cd52e8f6a"}, + {file = "coverage-7.5.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:e768d870801f68c74c2b669fc909839660180c366501d4cc4b87efd6b0eee375"}, + {file = "coverage-7.5.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:84921b10aeb2dd453247fd10de22907984eaf80901b578a5cf0bb1e279a587cb"}, + {file = "coverage-7.5.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:710c62b6e35a9a766b99b15cdc56d5aeda0914edae8bb467e9c355f75d14ee95"}, + {file = "coverage-7.5.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c379cdd3efc0658e652a14112d51a7668f6bfca7445c5a10dee7eabecabba19d"}, + {file = "coverage-7.5.0-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fea9d3ca80bcf17edb2c08a4704259dadac196fe5e9274067e7a20511fad1743"}, + {file = "coverage-7.5.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:41327143c5b1d715f5f98a397608f90ab9ebba606ae4e6f3389c2145410c52b1"}, + {file = "coverage-7.5.0-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:565b2e82d0968c977e0b0f7cbf25fd06d78d4856289abc79694c8edcce6eb2de"}, + {file = "coverage-7.5.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:cf3539007202ebfe03923128fedfdd245db5860a36810136ad95a564a2fdffff"}, + {file = "coverage-7.5.0-cp311-cp311-win32.whl", hash = "sha256:bf0b4b8d9caa8d64df838e0f8dcf68fb570c5733b726d1494b87f3da85db3a2d"}, + {file = "coverage-7.5.0-cp311-cp311-win_amd64.whl", hash = "sha256:9c6384cc90e37cfb60435bbbe0488444e54b98700f727f16f64d8bfda0b84656"}, + {file = "coverage-7.5.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:fed7a72d54bd52f4aeb6c6e951f363903bd7d70bc1cad64dd1f087980d309ab9"}, + {file = "coverage-7.5.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:cbe6581fcff7c8e262eb574244f81f5faaea539e712a058e6707a9d272fe5b64"}, + {file = "coverage-7.5.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ad97ec0da94b378e593ef532b980c15e377df9b9608c7c6da3506953182398af"}, + {file = "coverage-7.5.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:bd4bacd62aa2f1a1627352fe68885d6ee694bdaebb16038b6e680f2924a9b2cc"}, + {file = "coverage-7.5.0-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:adf032b6c105881f9d77fa17d9eebe0ad1f9bfb2ad25777811f97c5362aa07f2"}, + {file = "coverage-7.5.0-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:4ba01d9ba112b55bfa4b24808ec431197bb34f09f66f7cb4fd0258ff9d3711b1"}, + {file = "coverage-7.5.0-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:f0bfe42523893c188e9616d853c47685e1c575fe25f737adf473d0405dcfa7eb"}, + {file = "coverage-7.5.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:a9a7ef30a1b02547c1b23fa9a5564f03c9982fc71eb2ecb7f98c96d7a0db5cf2"}, + {file = "coverage-7.5.0-cp312-cp312-win32.whl", hash = "sha256:3c2b77f295edb9fcdb6a250f83e6481c679335ca7e6e4a955e4290350f2d22a4"}, + {file = "coverage-7.5.0-cp312-cp312-win_amd64.whl", hash = "sha256:427e1e627b0963ac02d7c8730ca6d935df10280d230508c0ba059505e9233475"}, + {file = "coverage-7.5.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:9dd88fce54abbdbf4c42fb1fea0e498973d07816f24c0e27a1ecaf91883ce69e"}, + {file = "coverage-7.5.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:a898c11dca8f8c97b467138004a30133974aacd572818c383596f8d5b2eb04a9"}, + {file = "coverage-7.5.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:07dfdd492d645eea1bd70fb1d6febdcf47db178b0d99161d8e4eed18e7f62fe7"}, + {file = "coverage-7.5.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d3d117890b6eee85887b1eed41eefe2e598ad6e40523d9f94c4c4b213258e4a4"}, + {file = "coverage-7.5.0-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6afd2e84e7da40fe23ca588379f815fb6dbbb1b757c883935ed11647205111cb"}, + {file = "coverage-7.5.0-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:a9960dd1891b2ddf13a7fe45339cd59ecee3abb6b8326d8b932d0c5da208104f"}, + {file = "coverage-7.5.0-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:ced268e82af993d7801a9db2dbc1d2322e786c5dc76295d8e89473d46c6b84d4"}, + {file = "coverage-7.5.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:e7c211f25777746d468d76f11719e64acb40eed410d81c26cefac641975beb88"}, + {file = "coverage-7.5.0-cp38-cp38-win32.whl", hash = "sha256:262fffc1f6c1a26125d5d573e1ec379285a3723363f3bd9c83923c9593a2ac25"}, + {file = "coverage-7.5.0-cp38-cp38-win_amd64.whl", hash = "sha256:eed462b4541c540d63ab57b3fc69e7d8c84d5957668854ee4e408b50e92ce26a"}, + {file = "coverage-7.5.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:d0194d654e360b3e6cc9b774e83235bae6b9b2cac3be09040880bb0e8a88f4a1"}, + {file = "coverage-7.5.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:33c020d3322662e74bc507fb11488773a96894aa82a622c35a5a28673c0c26f5"}, + {file = "coverage-7.5.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0cbdf2cae14a06827bec50bd58e49249452d211d9caddd8bd80e35b53cb04631"}, + {file = "coverage-7.5.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:3235d7c781232e525b0761730e052388a01548bd7f67d0067a253887c6e8df46"}, + {file = "coverage-7.5.0-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:db2de4e546f0ec4b2787d625e0b16b78e99c3e21bc1722b4977c0dddf11ca84e"}, + {file = "coverage-7.5.0-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:4d0e206259b73af35c4ec1319fd04003776e11e859936658cb6ceffdeba0f5be"}, + {file = "coverage-7.5.0-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:2055c4fb9a6ff624253d432aa471a37202cd8f458c033d6d989be4499aed037b"}, + {file = "coverage-7.5.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:075299460948cd12722a970c7eae43d25d37989da682997687b34ae6b87c0ef0"}, + {file = "coverage-7.5.0-cp39-cp39-win32.whl", hash = "sha256:280132aada3bc2f0fac939a5771db4fbb84f245cb35b94fae4994d4c1f80dae7"}, + {file = "coverage-7.5.0-cp39-cp39-win_amd64.whl", hash = "sha256:c58536f6892559e030e6924896a44098bc1290663ea12532c78cef71d0df8493"}, + {file = "coverage-7.5.0-pp38.pp39.pp310-none-any.whl", hash = "sha256:2b57780b51084d5223eee7b59f0d4911c31c16ee5aa12737c7a02455829ff067"}, + {file = "coverage-7.5.0.tar.gz", hash = "sha256:cf62d17310f34084c59c01e027259076479128d11e4661bb6c9acb38c5e19bb8"}, ] [[package]] name = "coverage" -version = "7.3.2" +version = "7.5.0" extras = ["toml"] requires_python = ">=3.8" summary = "Code coverage measurement for Python" dependencies = [ - "coverage==7.3.2", + "coverage==7.5.0", "tomli; python_full_version <= \"3.11.0a6\"", ] files = [ - {file = "coverage-7.3.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:d872145f3a3231a5f20fd48500274d7df222e291d90baa2026cc5152b7ce86bf"}, - {file = "coverage-7.3.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:310b3bb9c91ea66d59c53fa4989f57d2436e08f18fb2f421a1b0b6b8cc7fffda"}, - {file = "coverage-7.3.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f47d39359e2c3779c5331fc740cf4bce6d9d680a7b4b4ead97056a0ae07cb49a"}, - {file = "coverage-7.3.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:aa72dbaf2c2068404b9870d93436e6d23addd8bbe9295f49cbca83f6e278179c"}, - {file = "coverage-7.3.2-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:beaa5c1b4777f03fc63dfd2a6bd820f73f036bfb10e925fce067b00a340d0f3f"}, - {file = "coverage-7.3.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:dbc1b46b92186cc8074fee9d9fbb97a9dd06c6cbbef391c2f59d80eabdf0faa6"}, - {file = "coverage-7.3.2-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:315a989e861031334d7bee1f9113c8770472db2ac484e5b8c3173428360a9148"}, - {file = "coverage-7.3.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:d1bc430677773397f64a5c88cb522ea43175ff16f8bfcc89d467d974cb2274f9"}, - {file = "coverage-7.3.2-cp310-cp310-win32.whl", hash = "sha256:a889ae02f43aa45032afe364c8ae84ad3c54828c2faa44f3bfcafecb5c96b02f"}, - {file = "coverage-7.3.2-cp310-cp310-win_amd64.whl", hash = "sha256:c0ba320de3fb8c6ec16e0be17ee1d3d69adcda99406c43c0409cb5c41788a611"}, - {file = "coverage-7.3.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:ac8c802fa29843a72d32ec56d0ca792ad15a302b28ca6203389afe21f8fa062c"}, - {file = "coverage-7.3.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:89a937174104339e3a3ffcf9f446c00e3a806c28b1841c63edb2b369310fd074"}, - {file = "coverage-7.3.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e267e9e2b574a176ddb983399dec325a80dbe161f1a32715c780b5d14b5f583a"}, - {file = "coverage-7.3.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:2443cbda35df0d35dcfb9bf8f3c02c57c1d6111169e3c85fc1fcc05e0c9f39a3"}, - {file = "coverage-7.3.2-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4175e10cc8dda0265653e8714b3174430b07c1dca8957f4966cbd6c2b1b8065a"}, - {file = "coverage-7.3.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:0cbf38419fb1a347aaf63481c00f0bdc86889d9fbf3f25109cf96c26b403fda1"}, - {file = "coverage-7.3.2-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:5c913b556a116b8d5f6ef834038ba983834d887d82187c8f73dec21049abd65c"}, - {file = "coverage-7.3.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:1981f785239e4e39e6444c63a98da3a1db8e971cb9ceb50a945ba6296b43f312"}, - {file = "coverage-7.3.2-cp311-cp311-win32.whl", hash = "sha256:43668cabd5ca8258f5954f27a3aaf78757e6acf13c17604d89648ecc0cc66640"}, - {file = "coverage-7.3.2-cp311-cp311-win_amd64.whl", hash = "sha256:e10c39c0452bf6e694511c901426d6b5ac005acc0f78ff265dbe36bf81f808a2"}, - {file = "coverage-7.3.2-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:4cbae1051ab791debecc4a5dcc4a1ff45fc27b91b9aee165c8a27514dd160836"}, - {file = "coverage-7.3.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:12d15ab5833a997716d76f2ac1e4b4d536814fc213c85ca72756c19e5a6b3d63"}, - {file = "coverage-7.3.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3c7bba973ebee5e56fe9251300c00f1579652587a9f4a5ed8404b15a0471f216"}, - {file = "coverage-7.3.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:fe494faa90ce6381770746077243231e0b83ff3f17069d748f645617cefe19d4"}, - {file = "coverage-7.3.2-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f6e9589bd04d0461a417562649522575d8752904d35c12907d8c9dfeba588faf"}, - {file = "coverage-7.3.2-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:d51ac2a26f71da1b57f2dc81d0e108b6ab177e7d30e774db90675467c847bbdf"}, - {file = "coverage-7.3.2-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:99b89d9f76070237975b315b3d5f4d6956ae354a4c92ac2388a5695516e47c84"}, - {file = "coverage-7.3.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:fa28e909776dc69efb6ed975a63691bc8172b64ff357e663a1bb06ff3c9b589a"}, - {file = "coverage-7.3.2-cp312-cp312-win32.whl", hash = "sha256:289fe43bf45a575e3ab10b26d7b6f2ddb9ee2dba447499f5401cfb5ecb8196bb"}, - {file = "coverage-7.3.2-cp312-cp312-win_amd64.whl", hash = "sha256:7dbc3ed60e8659bc59b6b304b43ff9c3ed858da2839c78b804973f613d3e92ed"}, - {file = "coverage-7.3.2-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:f94b734214ea6a36fe16e96a70d941af80ff3bfd716c141300d95ebc85339738"}, - {file = "coverage-7.3.2-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:af3d828d2c1cbae52d34bdbb22fcd94d1ce715d95f1a012354a75e5913f1bda2"}, - {file = "coverage-7.3.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:630b13e3036e13c7adc480ca42fa7afc2a5d938081d28e20903cf7fd687872e2"}, - {file = "coverage-7.3.2-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c9eacf273e885b02a0273bb3a2170f30e2d53a6d53b72dbe02d6701b5296101c"}, - {file = "coverage-7.3.2-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d8f17966e861ff97305e0801134e69db33b143bbfb36436efb9cfff6ec7b2fd9"}, - {file = "coverage-7.3.2-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:b4275802d16882cf9c8b3d057a0839acb07ee9379fa2749eca54efbce1535b82"}, - {file = "coverage-7.3.2-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:72c0cfa5250f483181e677ebc97133ea1ab3eb68645e494775deb6a7f6f83901"}, - {file = "coverage-7.3.2-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:cb536f0dcd14149425996821a168f6e269d7dcd2c273a8bff8201e79f5104e76"}, - {file = "coverage-7.3.2-cp38-cp38-win32.whl", hash = "sha256:307adb8bd3abe389a471e649038a71b4eb13bfd6b7dd9a129fa856f5c695cf92"}, - {file = "coverage-7.3.2-cp38-cp38-win_amd64.whl", hash = "sha256:88ed2c30a49ea81ea3b7f172e0269c182a44c236eb394718f976239892c0a27a"}, - {file = "coverage-7.3.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:b631c92dfe601adf8f5ebc7fc13ced6bb6e9609b19d9a8cd59fa47c4186ad1ce"}, - {file = "coverage-7.3.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:d3d9df4051c4a7d13036524b66ecf7a7537d14c18a384043f30a303b146164e9"}, - {file = "coverage-7.3.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5f7363d3b6a1119ef05015959ca24a9afc0ea8a02c687fe7e2d557705375c01f"}, - {file = "coverage-7.3.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:2f11cc3c967a09d3695d2a6f03fb3e6236622b93be7a4b5dc09166a861be6d25"}, - {file = "coverage-7.3.2-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:149de1d2401ae4655c436a3dced6dd153f4c3309f599c3d4bd97ab172eaf02d9"}, - {file = "coverage-7.3.2-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:3a4006916aa6fee7cd38db3bfc95aa9c54ebb4ffbfc47c677c8bba949ceba0a6"}, - {file = "coverage-7.3.2-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:9028a3871280110d6e1aa2df1afd5ef003bab5fb1ef421d6dc748ae1c8ef2ebc"}, - {file = "coverage-7.3.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:9f805d62aec8eb92bab5b61c0f07329275b6f41c97d80e847b03eb894f38d083"}, - {file = "coverage-7.3.2-cp39-cp39-win32.whl", hash = "sha256:d1c88ec1a7ff4ebca0219f5b1ef863451d828cccf889c173e1253aa84b1e07ce"}, - {file = "coverage-7.3.2-cp39-cp39-win_amd64.whl", hash = "sha256:b4767da59464bb593c07afceaddea61b154136300881844768037fd5e859353f"}, - {file = "coverage-7.3.2-pp38.pp39.pp310-none-any.whl", hash = "sha256:ae97af89f0fbf373400970c0a21eef5aa941ffeed90aee43650b81f7d7f47637"}, - {file = "coverage-7.3.2.tar.gz", hash = "sha256:be32ad29341b0170e795ca590e1c07e81fc061cb5b10c74ce7203491484404ef"}, + {file = "coverage-7.5.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:432949a32c3e3f820af808db1833d6d1631664d53dd3ce487aa25d574e18ad1c"}, + {file = "coverage-7.5.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:2bd7065249703cbeb6d4ce679c734bef0ee69baa7bff9724361ada04a15b7e3b"}, + {file = "coverage-7.5.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bbfe6389c5522b99768a93d89aca52ef92310a96b99782973b9d11e80511f932"}, + {file = "coverage-7.5.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:39793731182c4be939b4be0cdecde074b833f6171313cf53481f869937129ed3"}, + {file = "coverage-7.5.0-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:85a5dbe1ba1bf38d6c63b6d2c42132d45cbee6d9f0c51b52c59aa4afba057517"}, + {file = "coverage-7.5.0-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:357754dcdfd811462a725e7501a9b4556388e8ecf66e79df6f4b988fa3d0b39a"}, + {file = "coverage-7.5.0-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:a81eb64feded34f40c8986869a2f764f0fe2db58c0530d3a4afbcde50f314880"}, + {file = "coverage-7.5.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:51431d0abbed3a868e967f8257c5faf283d41ec882f58413cf295a389bb22e58"}, + {file = "coverage-7.5.0-cp310-cp310-win32.whl", hash = "sha256:f609ebcb0242d84b7adeee2b06c11a2ddaec5464d21888b2c8255f5fd6a98ae4"}, + {file = "coverage-7.5.0-cp310-cp310-win_amd64.whl", hash = "sha256:6782cd6216fab5a83216cc39f13ebe30adfac2fa72688c5a4d8d180cd52e8f6a"}, + {file = "coverage-7.5.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:e768d870801f68c74c2b669fc909839660180c366501d4cc4b87efd6b0eee375"}, + {file = "coverage-7.5.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:84921b10aeb2dd453247fd10de22907984eaf80901b578a5cf0bb1e279a587cb"}, + {file = "coverage-7.5.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:710c62b6e35a9a766b99b15cdc56d5aeda0914edae8bb467e9c355f75d14ee95"}, + {file = "coverage-7.5.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c379cdd3efc0658e652a14112d51a7668f6bfca7445c5a10dee7eabecabba19d"}, + {file = "coverage-7.5.0-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fea9d3ca80bcf17edb2c08a4704259dadac196fe5e9274067e7a20511fad1743"}, + {file = "coverage-7.5.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:41327143c5b1d715f5f98a397608f90ab9ebba606ae4e6f3389c2145410c52b1"}, + {file = "coverage-7.5.0-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:565b2e82d0968c977e0b0f7cbf25fd06d78d4856289abc79694c8edcce6eb2de"}, + {file = "coverage-7.5.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:cf3539007202ebfe03923128fedfdd245db5860a36810136ad95a564a2fdffff"}, + {file = "coverage-7.5.0-cp311-cp311-win32.whl", hash = "sha256:bf0b4b8d9caa8d64df838e0f8dcf68fb570c5733b726d1494b87f3da85db3a2d"}, + {file = "coverage-7.5.0-cp311-cp311-win_amd64.whl", hash = "sha256:9c6384cc90e37cfb60435bbbe0488444e54b98700f727f16f64d8bfda0b84656"}, + {file = "coverage-7.5.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:fed7a72d54bd52f4aeb6c6e951f363903bd7d70bc1cad64dd1f087980d309ab9"}, + {file = "coverage-7.5.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:cbe6581fcff7c8e262eb574244f81f5faaea539e712a058e6707a9d272fe5b64"}, + {file = "coverage-7.5.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ad97ec0da94b378e593ef532b980c15e377df9b9608c7c6da3506953182398af"}, + {file = "coverage-7.5.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:bd4bacd62aa2f1a1627352fe68885d6ee694bdaebb16038b6e680f2924a9b2cc"}, + {file = "coverage-7.5.0-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:adf032b6c105881f9d77fa17d9eebe0ad1f9bfb2ad25777811f97c5362aa07f2"}, + {file = "coverage-7.5.0-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:4ba01d9ba112b55bfa4b24808ec431197bb34f09f66f7cb4fd0258ff9d3711b1"}, + {file = "coverage-7.5.0-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:f0bfe42523893c188e9616d853c47685e1c575fe25f737adf473d0405dcfa7eb"}, + {file = "coverage-7.5.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:a9a7ef30a1b02547c1b23fa9a5564f03c9982fc71eb2ecb7f98c96d7a0db5cf2"}, + {file = "coverage-7.5.0-cp312-cp312-win32.whl", hash = "sha256:3c2b77f295edb9fcdb6a250f83e6481c679335ca7e6e4a955e4290350f2d22a4"}, + {file = "coverage-7.5.0-cp312-cp312-win_amd64.whl", hash = "sha256:427e1e627b0963ac02d7c8730ca6d935df10280d230508c0ba059505e9233475"}, + {file = "coverage-7.5.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:9dd88fce54abbdbf4c42fb1fea0e498973d07816f24c0e27a1ecaf91883ce69e"}, + {file = "coverage-7.5.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:a898c11dca8f8c97b467138004a30133974aacd572818c383596f8d5b2eb04a9"}, + {file = "coverage-7.5.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:07dfdd492d645eea1bd70fb1d6febdcf47db178b0d99161d8e4eed18e7f62fe7"}, + {file = "coverage-7.5.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d3d117890b6eee85887b1eed41eefe2e598ad6e40523d9f94c4c4b213258e4a4"}, + {file = "coverage-7.5.0-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6afd2e84e7da40fe23ca588379f815fb6dbbb1b757c883935ed11647205111cb"}, + {file = "coverage-7.5.0-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:a9960dd1891b2ddf13a7fe45339cd59ecee3abb6b8326d8b932d0c5da208104f"}, + {file = "coverage-7.5.0-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:ced268e82af993d7801a9db2dbc1d2322e786c5dc76295d8e89473d46c6b84d4"}, + {file = "coverage-7.5.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:e7c211f25777746d468d76f11719e64acb40eed410d81c26cefac641975beb88"}, + {file = "coverage-7.5.0-cp38-cp38-win32.whl", hash = "sha256:262fffc1f6c1a26125d5d573e1ec379285a3723363f3bd9c83923c9593a2ac25"}, + {file = "coverage-7.5.0-cp38-cp38-win_amd64.whl", hash = "sha256:eed462b4541c540d63ab57b3fc69e7d8c84d5957668854ee4e408b50e92ce26a"}, + {file = "coverage-7.5.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:d0194d654e360b3e6cc9b774e83235bae6b9b2cac3be09040880bb0e8a88f4a1"}, + {file = "coverage-7.5.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:33c020d3322662e74bc507fb11488773a96894aa82a622c35a5a28673c0c26f5"}, + {file = "coverage-7.5.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0cbdf2cae14a06827bec50bd58e49249452d211d9caddd8bd80e35b53cb04631"}, + {file = "coverage-7.5.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:3235d7c781232e525b0761730e052388a01548bd7f67d0067a253887c6e8df46"}, + {file = "coverage-7.5.0-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:db2de4e546f0ec4b2787d625e0b16b78e99c3e21bc1722b4977c0dddf11ca84e"}, + {file = "coverage-7.5.0-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:4d0e206259b73af35c4ec1319fd04003776e11e859936658cb6ceffdeba0f5be"}, + {file = "coverage-7.5.0-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:2055c4fb9a6ff624253d432aa471a37202cd8f458c033d6d989be4499aed037b"}, + {file = "coverage-7.5.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:075299460948cd12722a970c7eae43d25d37989da682997687b34ae6b87c0ef0"}, + {file = "coverage-7.5.0-cp39-cp39-win32.whl", hash = "sha256:280132aada3bc2f0fac939a5771db4fbb84f245cb35b94fae4994d4c1f80dae7"}, + {file = "coverage-7.5.0-cp39-cp39-win_amd64.whl", hash = "sha256:c58536f6892559e030e6924896a44098bc1290663ea12532c78cef71d0df8493"}, + {file = "coverage-7.5.0-pp38.pp39.pp310-none-any.whl", hash = "sha256:2b57780b51084d5223eee7b59f0d4911c31c16ee5aa12737c7a02455829ff067"}, + {file = "coverage-7.5.0.tar.gz", hash = "sha256:cf62d17310f34084c59c01e027259076479128d11e4661bb6c9acb38c5e19bb8"}, ] [[package]] name = "exceptiongroup" -version = "1.1.3" +version = "1.2.1" requires_python = ">=3.7" summary = "Backport of PEP 654 (exception groups)" files = [ - {file = "exceptiongroup-1.1.3-py3-none-any.whl", hash = "sha256:343280667a4585d195ca1cf9cef84a4e178c4b6cf2274caef9859782b567d5e3"}, - {file = "exceptiongroup-1.1.3.tar.gz", hash = "sha256:097acd85d473d75af5bb98e41b61ff7fe35efe6675e4f9370ec6ec5126d160e9"}, + {file = "exceptiongroup-1.2.1-py3-none-any.whl", hash = "sha256:5258b9ed329c5bbdd31a309f53cbfb0b155341807f6ff7606a1e801a891b29ad"}, + {file = "exceptiongroup-1.2.1.tar.gz", hash = "sha256:a4785e48b045528f5bfe627b6ad554ff32def154f42372786903b7abcfe1aa16"}, ] [[package]] @@ -190,44 +190,43 @@ files = [ [[package]] name = "httpcore" -version = "0.18.0" +version = "1.0.5" requires_python = ">=3.8" summary = "A minimal low-level HTTP client." dependencies = [ - "anyio<5.0,>=3.0", "certifi", "h11<0.15,>=0.13", - "sniffio==1.*", ] files = [ - {file = "httpcore-0.18.0-py3-none-any.whl", hash = "sha256:adc5398ee0a476567bf87467063ee63584a8bce86078bf748e48754f60202ced"}, - {file = "httpcore-0.18.0.tar.gz", hash = "sha256:13b5e5cd1dca1a6636a6aaea212b19f4f85cd88c366a2b82304181b769aab3c9"}, + {file = "httpcore-1.0.5-py3-none-any.whl", hash = "sha256:421f18bac248b25d310f3cacd198d55b8e6125c107797b609ff9b7a6ba7991b5"}, + {file = "httpcore-1.0.5.tar.gz", hash = "sha256:34a38e2f9291467ee3b44e89dd52615370e152954ba21721378a87b2960f7a61"}, ] [[package]] name = "httpx" -version = "0.25.0" +version = "0.27.0" requires_python = ">=3.8" summary = "The next generation HTTP client." dependencies = [ + "anyio", "certifi", - "httpcore<0.19.0,>=0.18.0", + "httpcore==1.*", "idna", "sniffio", ] files = [ - {file = "httpx-0.25.0-py3-none-any.whl", hash = "sha256:181ea7f8ba3a82578be86ef4171554dd45fec26a02556a744db029a0a27b7100"}, - {file = "httpx-0.25.0.tar.gz", hash = "sha256:47ecda285389cb32bb2691cc6e069e3ab0205956f681c5b2ad2325719751d875"}, + {file = "httpx-0.27.0-py3-none-any.whl", hash = "sha256:71d5465162c13681bff01ad59b2cc68dd838ea1f10e51574bac27103f00c91a5"}, + {file = "httpx-0.27.0.tar.gz", hash = "sha256:a0cb88a46f32dc874e04ee956e4c2764aba2aa228f650b06788ba6bda2962ab5"}, ] [[package]] name = "idna" -version = "3.4" +version = "3.7" requires_python = ">=3.5" summary = "Internationalized Domain Names in Applications (IDNA)" files = [ - {file = "idna-3.4-py3-none-any.whl", hash = "sha256:90b77e79eaa3eba6de819a0c442c0b4ceefc341a7a2ab77d7562bf49f425c5c2"}, - {file = "idna-3.4.tar.gz", hash = "sha256:814f528e8dead7d329833b91c5faa87d60bf71824cd12a7530b5526063d02cb4"}, + {file = "idna-3.7-py3-none-any.whl", hash = "sha256:82fee1fc78add43492d3a1898bfa6d8a904cc97d8427f683ed8e798d07761aa0"}, + {file = "idna-3.7.tar.gz", hash = "sha256:028ff3aadf0609c1fd278d8ea3089299412a7a8b9bd005dd08b9f8285bcb5cfc"}, ] [[package]] @@ -242,146 +241,146 @@ files = [ [[package]] name = "msgspec" -version = "0.18.4" +version = "0.18.6" requires_python = ">=3.8" summary = "A fast serialization and validation library, with builtin support for JSON, MessagePack, YAML, and TOML." files = [ - {file = "msgspec-0.18.4-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:4d24a291a3c94a7f5e26e8f5ef93e72bf26c10dfeed4d6ae8fc87ead02f4e265"}, - {file = "msgspec-0.18.4-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:9714b78965047638c01c818b4b418133d77e849017de17b0655ee37b714b47a6"}, - {file = "msgspec-0.18.4-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:241277eed9fd91037372519fca62aecf823f7229c1d351030d0be5e3302580c1"}, - {file = "msgspec-0.18.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d08175cbb55c1a87dd258645dce6cd00705d6088bf88e7cf510a9d5c24b0720b"}, - {file = "msgspec-0.18.4-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:da13a06e77d683204eee3b134b08ecd5e4759a79014027b1bcd7a12c614b466d"}, - {file = "msgspec-0.18.4-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:73e70217ff5e4ac244c8f1b0769215cbc81e1c904e135597a5b71162857e6c27"}, - {file = "msgspec-0.18.4-cp310-cp310-win_amd64.whl", hash = "sha256:dc25e6100026f5e1ecb5120150f4e78beb909cbeb0eb724b9982361b75c86c6b"}, - {file = "msgspec-0.18.4-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:e14287c3405093645b3812e3436598edd383b9ed724c686852e65d569f39f953"}, - {file = "msgspec-0.18.4-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:acdcef2fccfff02f80ac8673dbeab205c288b680d81e05bfb5ae0be6b1502a7e"}, - {file = "msgspec-0.18.4-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b052fd7d25a8aa2ffde10126ee1d97b4c6f3d81f3f3ab1258ff759a2bd794874"}, - {file = "msgspec-0.18.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:826dcb0dfaac0abbcf3a3ae991749900671796eb688b017a69a82bde1e624662"}, - {file = "msgspec-0.18.4-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:86800265f87f192a0daefe668e0a9634c35bf8af94b1f297e1352ac62d2e26da"}, - {file = "msgspec-0.18.4-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:227fee75a25080a8b3677cdd95b9c0c3652e27869004a084886c65eb558b3dd6"}, - {file = "msgspec-0.18.4-cp311-cp311-win_amd64.whl", hash = "sha256:828ef92f6654915c36ef6c7d8fec92404a13be48f9ff85f060e73b30299bafe1"}, - {file = "msgspec-0.18.4-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:8476848f4937da8faec53700891694df2e412453cb7445991f0664cdd1e2dd16"}, - {file = "msgspec-0.18.4-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:f668102958841c5bbd3ba7cf569a65d17aa3bdcf22124f394dfcfcf53cc5a9b9"}, - {file = "msgspec-0.18.4-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cc2405dba5af6478dedd3512bb92197b6f9d1bc0095655afbe9b54d7a426f19f"}, - {file = "msgspec-0.18.4-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d99f3c13569a5add0980b0d8c6e0bd94a656f6363b26107435b3091df979d228"}, - {file = "msgspec-0.18.4-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:8a198409f672f93534c9c36bdc9eea9fb536827bd63ea846882365516a961356"}, - {file = "msgspec-0.18.4-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:e21bc5aae6b80dfe4eb75dc1bb29af65483f967d5522e9e3812115a0ba285cac"}, - {file = "msgspec-0.18.4-cp312-cp312-win_amd64.whl", hash = "sha256:44d551aee1ec8aa2d7b64762557c266bcbf7d5109f2246955718d05becc509d6"}, - {file = "msgspec-0.18.4-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:bbbc08d59f74de5791bda63569f26a35ae1dd6bd20c55c3ceba5567b0e5a8ef1"}, - {file = "msgspec-0.18.4-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:87bc01949a35970398f5267df8ed4189c340727bb6feec99efdb9969dd05cf30"}, - {file = "msgspec-0.18.4-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:96ccaef83adc0ce96d95328a03289cd5aead4fe400aac21fbe2008855a124a01"}, - {file = "msgspec-0.18.4-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f6229dd49438d81ed7a3470e3cbc9646b1cc1b120d415a1786df880dabb1d1c4"}, - {file = "msgspec-0.18.4-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:55e578fd921c88de0d3a209fe5fd392bb66623924c6525b42cea37c72bf8d558"}, - {file = "msgspec-0.18.4-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:e95bd0a946b5b7206f27c0f654f490231c9ad5e5a4ff65af8c986f5114dfaf0e"}, - {file = "msgspec-0.18.4-cp38-cp38-win_amd64.whl", hash = "sha256:7e95817021db96c43fd81244228e185b13b085cca3d5169af4e2dfe3ff412954"}, - {file = "msgspec-0.18.4-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:847d79f6f0b698671ff390aa5a66e207108f2c23b077ef9314ca4fe7819fa4ec"}, - {file = "msgspec-0.18.4-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:e4294158c233884f3b3220f0e96a30d3e916a4781f9502ae6d477bd57bbc80ad"}, - {file = "msgspec-0.18.4-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:deb11ba2709019192636042df5c8db8738e45946735627021b7e7934714526e4"}, - {file = "msgspec-0.18.4-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b01efbf80a987a99e9079257c893c026dc661d4cd05caa1f7eabf4accc7f1fbc"}, - {file = "msgspec-0.18.4-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:991aa3c76d1b1ec84e840d0b3c96692af834e1f8a1e1a3974cbd189eaf0f2276"}, - {file = "msgspec-0.18.4-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:8064908ddb3d95d3261aaca48fd38abb16ccf59dc3f2d01eb4e04591fc1e9bd4"}, - {file = "msgspec-0.18.4-cp39-cp39-win_amd64.whl", hash = "sha256:5f446f16ea57d70cceec29b7cb85ec0b3bea032e3dec316806e38575ea3a69b4"}, - {file = "msgspec-0.18.4.tar.gz", hash = "sha256:cb62030bd6b1a00b01a2fcb09735016011696304e6b1d3321e58022548268d3e"}, + {file = "msgspec-0.18.6-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:77f30b0234eceeff0f651119b9821ce80949b4d667ad38f3bfed0d0ebf9d6d8f"}, + {file = "msgspec-0.18.6-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:1a76b60e501b3932782a9da039bd1cd552b7d8dec54ce38332b87136c64852dd"}, + {file = "msgspec-0.18.6-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:06acbd6edf175bee0e36295d6b0302c6de3aaf61246b46f9549ca0041a9d7177"}, + {file = "msgspec-0.18.6-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:40a4df891676d9c28a67c2cc39947c33de516335680d1316a89e8f7218660410"}, + {file = "msgspec-0.18.6-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:a6896f4cd5b4b7d688018805520769a8446df911eb93b421c6c68155cdf9dd5a"}, + {file = "msgspec-0.18.6-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:3ac4dd63fd5309dd42a8c8c36c1563531069152be7819518be0a9d03be9788e4"}, + {file = "msgspec-0.18.6-cp310-cp310-win_amd64.whl", hash = "sha256:fda4c357145cf0b760000c4ad597e19b53adf01382b711f281720a10a0fe72b7"}, + {file = "msgspec-0.18.6-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:e77e56ffe2701e83a96e35770c6adb655ffc074d530018d1b584a8e635b4f36f"}, + {file = "msgspec-0.18.6-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:d5351afb216b743df4b6b147691523697ff3a2fc5f3d54f771e91219f5c23aaa"}, + {file = "msgspec-0.18.6-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c3232fabacef86fe8323cecbe99abbc5c02f7698e3f5f2e248e3480b66a3596b"}, + {file = "msgspec-0.18.6-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e3b524df6ea9998bbc99ea6ee4d0276a101bcc1aa8d14887bb823914d9f60d07"}, + {file = "msgspec-0.18.6-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:37f67c1d81272131895bb20d388dd8d341390acd0e192a55ab02d4d6468b434c"}, + {file = "msgspec-0.18.6-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:d0feb7a03d971c1c0353de1a8fe30bb6579c2dc5ccf29b5f7c7ab01172010492"}, + {file = "msgspec-0.18.6-cp311-cp311-win_amd64.whl", hash = "sha256:41cf758d3f40428c235c0f27bc6f322d43063bc32da7b9643e3f805c21ed57b4"}, + {file = "msgspec-0.18.6-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:d86f5071fe33e19500920333c11e2267a31942d18fed4d9de5bc2fbab267d28c"}, + {file = "msgspec-0.18.6-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:ce13981bfa06f5eb126a3a5a38b1976bddb49a36e4f46d8e6edecf33ccf11df1"}, + {file = "msgspec-0.18.6-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e97dec6932ad5e3ee1e3c14718638ba333befc45e0661caa57033cd4cc489466"}, + {file = "msgspec-0.18.6-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ad237100393f637b297926cae1868b0d500f764ccd2f0623a380e2bcfb2809ca"}, + {file = "msgspec-0.18.6-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:db1d8626748fa5d29bbd15da58b2d73af25b10aa98abf85aab8028119188ed57"}, + {file = "msgspec-0.18.6-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:d70cb3d00d9f4de14d0b31d38dfe60c88ae16f3182988246a9861259c6722af6"}, + {file = "msgspec-0.18.6-cp312-cp312-win_amd64.whl", hash = "sha256:1003c20bfe9c6114cc16ea5db9c5466e49fae3d7f5e2e59cb70693190ad34da0"}, + {file = "msgspec-0.18.6-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:f7d9faed6dfff654a9ca7d9b0068456517f63dbc3aa704a527f493b9200b210a"}, + {file = "msgspec-0.18.6-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:9da21f804c1a1471f26d32b5d9bc0480450ea77fbb8d9db431463ab64aaac2cf"}, + {file = "msgspec-0.18.6-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:46eb2f6b22b0e61c137e65795b97dc515860bf6ec761d8fb65fdb62aa094ba61"}, + {file = "msgspec-0.18.6-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c8355b55c80ac3e04885d72db515817d9fbb0def3bab936bba104e99ad22cf46"}, + {file = "msgspec-0.18.6-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:9080eb12b8f59e177bd1eb5c21e24dd2ba2fa88a1dbc9a98e05ad7779b54c681"}, + {file = "msgspec-0.18.6-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:cc001cf39becf8d2dcd3f413a4797c55009b3a3cdbf78a8bf5a7ca8fdb76032c"}, + {file = "msgspec-0.18.6-cp38-cp38-win_amd64.whl", hash = "sha256:fac5834e14ac4da1fca373753e0c4ec9c8069d1fe5f534fa5208453b6065d5be"}, + {file = "msgspec-0.18.6-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:974d3520fcc6b824a6dedbdf2b411df31a73e6e7414301abac62e6b8d03791b4"}, + {file = "msgspec-0.18.6-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:fd62e5818731a66aaa8e9b0a1e5543dc979a46278da01e85c3c9a1a4f047ef7e"}, + {file = "msgspec-0.18.6-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7481355a1adcf1f08dedd9311193c674ffb8bf7b79314b4314752b89a2cf7f1c"}, + {file = "msgspec-0.18.6-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6aa85198f8f154cf35d6f979998f6dadd3dc46a8a8c714632f53f5d65b315c07"}, + {file = "msgspec-0.18.6-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:0e24539b25c85c8f0597274f11061c102ad6b0c56af053373ba4629772b407be"}, + {file = "msgspec-0.18.6-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:c61ee4d3be03ea9cd089f7c8e36158786cd06e51fbb62529276452bbf2d52ece"}, + {file = "msgspec-0.18.6-cp39-cp39-win_amd64.whl", hash = "sha256:b5c390b0b0b7da879520d4ae26044d74aeee5144f83087eb7842ba59c02bc090"}, + {file = "msgspec-0.18.6.tar.gz", hash = "sha256:a59fc3b4fcdb972d09138cb516dbde600c99d07c38fd9372a6ef500d2d031b4e"}, ] [[package]] name = "packaging" -version = "23.2" +version = "24.0" requires_python = ">=3.7" summary = "Core utilities for Python packages" files = [ - {file = "packaging-23.2-py3-none-any.whl", hash = "sha256:8c491190033a9af7e1d931d0b5dacc2ef47509b34dd0de67ed209b5203fc88c7"}, - {file = "packaging-23.2.tar.gz", hash = "sha256:048fb0e9405036518eaaf48a55953c750c11e1a1b68e0dd1a9d62ed0c092cfc5"}, + {file = "packaging-24.0-py3-none-any.whl", hash = "sha256:2ddfb553fdf02fb784c234c7ba6ccc288296ceabec964ad2eae3777778130bc5"}, + {file = "packaging-24.0.tar.gz", hash = "sha256:eb82c5e3e56209074766e6885bb04b8c38a0c015d0a30036ebe7ece34c9989e9"}, ] [[package]] name = "pluggy" -version = "1.3.0" +version = "1.5.0" requires_python = ">=3.8" summary = "plugin and hook calling mechanisms for python" files = [ - {file = "pluggy-1.3.0-py3-none-any.whl", hash = "sha256:d89c696a773f8bd377d18e5ecda92b7a3793cbe66c87060a6fb58c7b6e1061f7"}, - {file = "pluggy-1.3.0.tar.gz", hash = "sha256:cf61ae8f126ac6f7c451172cf30e3e43d3ca77615509771b3a984a0730651e12"}, + {file = "pluggy-1.5.0-py3-none-any.whl", hash = "sha256:44e1ad92c8ca002de6377e165f3e0f1be63266ab4d554740532335b9d75ea669"}, + {file = "pluggy-1.5.0.tar.gz", hash = "sha256:2cffa88e94fdc978c4c574f15f9e59b7f4201d439195c3715ca9e2486f1d0cf1"}, ] [[package]] name = "pytest" -version = "7.4.3" -requires_python = ">=3.7" +version = "8.1.2" +requires_python = ">=3.8" summary = "pytest: simple powerful testing with Python" dependencies = [ "colorama; sys_platform == \"win32\"", "exceptiongroup>=1.0.0rc8; python_version < \"3.11\"", "iniconfig", "packaging", - "pluggy<2.0,>=0.12", - "tomli>=1.0.0; python_version < \"3.11\"", + "pluggy<2.0,>=1.4", + "tomli>=1; python_version < \"3.11\"", ] files = [ - {file = "pytest-7.4.3-py3-none-any.whl", hash = "sha256:0d009c083ea859a71b76adf7c1d502e4bc170b80a8ef002da5806527b9591fac"}, - {file = "pytest-7.4.3.tar.gz", hash = "sha256:d989d136982de4e3b29dabcc838ad581c64e8ed52c11fbe86ddebd9da0818cd5"}, + {file = "pytest-8.1.2-py3-none-any.whl", hash = "sha256:6c06dc309ff46a05721e6fd48e492a775ed8165d2ecdf57f156a80c7e95bb142"}, + {file = "pytest-8.1.2.tar.gz", hash = "sha256:f3c45d1d5eed96b01a2aea70dee6a4a366d51d38f9957768083e4fecfc77f3ef"}, ] [[package]] name = "pytest-asyncio" -version = "0.21.1" -requires_python = ">=3.7" +version = "0.23.6" +requires_python = ">=3.8" summary = "Pytest support for asyncio" dependencies = [ - "pytest>=7.0.0", + "pytest<9,>=7.0.0", ] files = [ - {file = "pytest-asyncio-0.21.1.tar.gz", hash = "sha256:40a7eae6dded22c7b604986855ea48400ab15b069ae38116e8c01238e9eeb64d"}, - {file = "pytest_asyncio-0.21.1-py3-none-any.whl", hash = "sha256:8666c1c8ac02631d7c51ba282e0c69a8a452b211ffedf2599099845da5c5c37b"}, + {file = "pytest-asyncio-0.23.6.tar.gz", hash = "sha256:ffe523a89c1c222598c76856e76852b787504ddb72dd5d9b6617ffa8aa2cde5f"}, + {file = "pytest_asyncio-0.23.6-py3-none-any.whl", hash = "sha256:68516fdd1018ac57b846c9846b954f0393b26f094764a28c955eabb0536a4e8a"}, ] [[package]] name = "pytest-cov" -version = "4.1.0" -requires_python = ">=3.7" +version = "5.0.0" +requires_python = ">=3.8" summary = "Pytest plugin for measuring coverage." dependencies = [ "coverage[toml]>=5.2.1", "pytest>=4.6", ] files = [ - {file = "pytest-cov-4.1.0.tar.gz", hash = "sha256:3904b13dfbfec47f003b8e77fd5b589cd11904a21ddf1ab38a64f204d6a10ef6"}, - {file = "pytest_cov-4.1.0-py3-none-any.whl", hash = "sha256:6ba70b9e97e69fcc3fb45bfeab2d0a138fb65c4d0d6a41ef33983ad114be8c3a"}, + {file = "pytest-cov-5.0.0.tar.gz", hash = "sha256:5837b58e9f6ebd335b0f8060eecce69b662415b16dc503883a02f45dfeb14857"}, + {file = "pytest_cov-5.0.0-py3-none-any.whl", hash = "sha256:4f0764a1219df53214206bf1feea4633c3b558a2925c8b59f144f682861ce652"}, ] [[package]] name = "ruff" -version = "0.1.3" +version = "0.4.2" requires_python = ">=3.7" -summary = "An extremely fast Python linter, written in Rust." +summary = "An extremely fast Python linter and code formatter, written in Rust." files = [ - {file = "ruff-0.1.3-py3-none-macosx_10_7_x86_64.whl", hash = "sha256:b46d43d51f7061652eeadb426a9e3caa1e0002470229ab2fc19de8a7b0766901"}, - {file = "ruff-0.1.3-py3-none-macosx_10_9_x86_64.macosx_11_0_arm64.macosx_10_9_universal2.whl", hash = "sha256:b8afeb9abd26b4029c72adc9921b8363374f4e7edb78385ffaa80278313a15f9"}, - {file = "ruff-0.1.3-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ca3cf365bf32e9ba7e6db3f48a4d3e2c446cd19ebee04f05338bc3910114528b"}, - {file = "ruff-0.1.3-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:4874c165f96c14a00590dcc727a04dca0cfd110334c24b039458c06cf78a672e"}, - {file = "ruff-0.1.3-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:eec2dd31eed114e48ea42dbffc443e9b7221976554a504767ceaee3dd38edeb8"}, - {file = "ruff-0.1.3-py3-none-manylinux_2_17_ppc64.manylinux2014_ppc64.whl", hash = "sha256:dc3ec4edb3b73f21b4aa51337e16674c752f1d76a4a543af56d7d04e97769613"}, - {file = "ruff-0.1.3-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:2e3de9ed2e39160800281848ff4670e1698037ca039bda7b9274f849258d26ce"}, - {file = "ruff-0.1.3-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:1c595193881922cc0556a90f3af99b1c5681f0c552e7a2a189956141d8666fe8"}, - {file = "ruff-0.1.3-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0f75e670d529aa2288cd00fc0e9b9287603d95e1536d7a7e0cafe00f75e0dd9d"}, - {file = "ruff-0.1.3-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:76dd49f6cd945d82d9d4a9a6622c54a994689d8d7b22fa1322983389b4892e20"}, - {file = "ruff-0.1.3-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:918b454bc4f8874a616f0d725590277c42949431ceb303950e87fef7a7d94cb3"}, - {file = "ruff-0.1.3-py3-none-musllinux_1_2_i686.whl", hash = "sha256:d8859605e729cd5e53aa38275568dbbdb4fe882d2ea2714c5453b678dca83784"}, - {file = "ruff-0.1.3-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:0b6c55f5ef8d9dd05b230bb6ab80bc4381ecb60ae56db0330f660ea240cb0d4a"}, - {file = "ruff-0.1.3-py3-none-win32.whl", hash = "sha256:3e7afcbdcfbe3399c34e0f6370c30f6e529193c731b885316c5a09c9e4317eef"}, - {file = "ruff-0.1.3-py3-none-win_amd64.whl", hash = "sha256:7a18df6638cec4a5bd75350639b2bb2a2366e01222825562c7346674bdceb7ea"}, - {file = "ruff-0.1.3-py3-none-win_arm64.whl", hash = "sha256:12fd53696c83a194a2db7f9a46337ce06445fb9aa7d25ea6f293cf75b21aca9f"}, - {file = "ruff-0.1.3.tar.gz", hash = "sha256:3ba6145369a151401d5db79f0a47d50e470384d0d89d0d6f7fab0b589ad07c34"}, + {file = "ruff-0.4.2-py3-none-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl", hash = "sha256:8d14dc8953f8af7e003a485ef560bbefa5f8cc1ad994eebb5b12136049bbccc5"}, + {file = "ruff-0.4.2-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:24016ed18db3dc9786af103ff49c03bdf408ea253f3cb9e3638f39ac9cf2d483"}, + {file = "ruff-0.4.2-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0e2e06459042ac841ed510196c350ba35a9b24a643e23db60d79b2db92af0c2b"}, + {file = "ruff-0.4.2-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:3afabaf7ba8e9c485a14ad8f4122feff6b2b93cc53cd4dad2fd24ae35112d5c5"}, + {file = "ruff-0.4.2-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:799eb468ea6bc54b95527143a4ceaf970d5aa3613050c6cff54c85fda3fde480"}, + {file = "ruff-0.4.2-py3-none-manylinux_2_17_ppc64.manylinux2014_ppc64.whl", hash = "sha256:ec4ba9436a51527fb6931a8839af4c36a5481f8c19e8f5e42c2f7ad3a49f5069"}, + {file = "ruff-0.4.2-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:6a2243f8f434e487c2a010c7252150b1fdf019035130f41b77626f5655c9ca22"}, + {file = "ruff-0.4.2-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:8772130a063f3eebdf7095da00c0b9898bd1774c43b336272c3e98667d4fb8fa"}, + {file = "ruff-0.4.2-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6ab165ef5d72392b4ebb85a8b0fbd321f69832a632e07a74794c0e598e7a8376"}, + {file = "ruff-0.4.2-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:1f32cadf44c2020e75e0c56c3408ed1d32c024766bd41aedef92aa3ca28eef68"}, + {file = "ruff-0.4.2-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:22e306bf15e09af45ca812bc42fa59b628646fa7c26072555f278994890bc7ac"}, + {file = "ruff-0.4.2-py3-none-musllinux_1_2_i686.whl", hash = "sha256:82986bb77ad83a1719c90b9528a9dd663c9206f7c0ab69282af8223566a0c34e"}, + {file = "ruff-0.4.2-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:652e4ba553e421a6dc2a6d4868bc3b3881311702633eb3672f9f244ded8908cd"}, + {file = "ruff-0.4.2-py3-none-win32.whl", hash = "sha256:7891ee376770ac094da3ad40c116258a381b86c7352552788377c6eb16d784fe"}, + {file = "ruff-0.4.2-py3-none-win_amd64.whl", hash = "sha256:5ec481661fb2fd88a5d6cf1f83403d388ec90f9daaa36e40e2c003de66751798"}, + {file = "ruff-0.4.2-py3-none-win_arm64.whl", hash = "sha256:cbd1e87c71bca14792948c4ccb51ee61c3296e164019d2d484f3eaa2d360dfaf"}, + {file = "ruff-0.4.2.tar.gz", hash = "sha256:33bcc160aee2520664bc0859cfeaebc84bb7323becff3f303b8f1f2d81cb4edc"}, ] [[package]] name = "sniffio" -version = "1.3.0" +version = "1.3.1" requires_python = ">=3.7" summary = "Sniff out which async library your code is running under" files = [ - {file = "sniffio-1.3.0-py3-none-any.whl", hash = "sha256:eecefdce1e5bbfb7ad2eeaabf7c1eeb404d7757c379bd1f7e5cce9d8bf425384"}, - {file = "sniffio-1.3.0.tar.gz", hash = "sha256:e60305c5e5d314f5389259b7f22aaa33d8f7dee49763119234af3755c55b9101"}, + {file = "sniffio-1.3.1-py3-none-any.whl", hash = "sha256:2f6da418d1f1e0fddd844478f41680e794e6051915791a034ff65e5f100525a2"}, + {file = "sniffio-1.3.1.tar.gz", hash = "sha256:f4324edc670a0f49750a81b895f35c3adb843cca46f0530f79fc1babb23789dc"}, ] [[package]] @@ -393,3 +392,13 @@ files = [ {file = "tomli-2.0.1-py3-none-any.whl", hash = "sha256:939de3e7a6161af0c887ef91b7d41a53e7c5a1ca976325f429cb46ea9bc30ecc"}, {file = "tomli-2.0.1.tar.gz", hash = "sha256:de526c12914f0c550d15924c62d72abc48d6fe7364aa87328337a31007fe8a4f"}, ] + +[[package]] +name = "typing-extensions" +version = "4.11.0" +requires_python = ">=3.8" +summary = "Backported and Experimental Type Hints for Python 3.8+" +files = [ + {file = "typing_extensions-4.11.0-py3-none-any.whl", hash = "sha256:c1f94d72897edaf4ce775bb7558d5b79d8126906a14ea5ed1635921406c0387a"}, + {file = "typing_extensions-4.11.0.tar.gz", hash = "sha256:83f085bd5ca59c80295fc2a82ab5dac679cbe02b9f33f7d83af68e241bea51b0"}, +] diff --git a/pyproject.toml b/pyproject.toml index f6e4494..81b710f 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,13 +1,13 @@ [project] name = "starrail_damage_cal" -version = "1.5.3" +version = "1.5.4" description = "For StarRail Role Damage Cal" authors = [ {name = "qwerdvd", email = "105906879+qwerdvd@users.noreply.github.com"}, ] dependencies = [ - "msgspec>=0.18.4", - "httpx>=0.25.0", + "msgspec>=0.18.6", + "httpx>=0.27.0", ] repository = "https://github.com/baiqwerdvd/StarRailDamageCal" requires-python = ">=3.8" diff --git a/starrail_damage_cal/damage/AvatarDamage/AvatarDamage.py b/starrail_damage_cal/damage/AvatarDamage/AvatarDamage.py index d0d7758..37eac0b 100644 --- a/starrail_damage_cal/damage/AvatarDamage/AvatarDamage.py +++ b/starrail_damage_cal/damage/AvatarDamage/AvatarDamage.py @@ -54,8 +54,6 @@ class Seele(BaseAvatar): "Talent", ) + attribute_bonus.get("AllDamageAddedRatio", 0) - - skill_info_list = [] # 计算普攻伤害 skill_multiplier = self.Skill_num("Normal", "Normal") @@ -153,8 +151,6 @@ class JingYuan(BaseAvatar): base_attr: Dict[str, float], attribute_bonus: Dict[str, float], ): - - skill_info_list = [] # 计算普攻伤害 skill_multiplier = self.Skill_num("Normal", "Normal") @@ -240,8 +236,6 @@ class Welt(BaseAvatar): base_attr: Dict[str, float], attribute_bonus: Dict[str, float], ): - - skill_info_list = [] # 计算普攻伤害 skill_multiplier = self.Skill_num("Normal", "Normal") @@ -581,8 +575,6 @@ class Argenti(BaseAvatar): talent_cc_add * 2 + attribute_bonus.get("CriticalChanceBase", 0) ) - - skill_info_list = [] # 计算普攻伤害 skill_multiplier = self.Skill_num("Normal", "Normal") @@ -681,8 +673,6 @@ class Clara(BaseAvatar): base_attr: Dict[str, float], attribute_bonus: Dict[str, float], ): - - skill_info_list = [] # 计算普攻伤害 skill_multiplier = self.Skill_num("Normal", "Normal") @@ -807,9 +797,9 @@ class Silverwolf(BaseAvatar): logger.info("战技降抗") logger.info("战技使目标全属性抗性降低的效果额外降低3%") enemy_status_resistance = self.Skill_num("BPSkill", "BPSkill_D") + 0.03 - self.extra_ability_attribute[ - "QuantumResistancePenetration" - ] = enemy_status_resistance + self.extra_ability_attribute["QuantumResistancePenetration"] = ( + enemy_status_resistance + ) logger.info("终结技降防") ultra_defence = self.Skill_num("Ultra", "Ultra_D") logger.info("天赋降防") @@ -822,8 +812,6 @@ class Silverwolf(BaseAvatar): base_attr: Dict[str, float], attribute_bonus: Dict[str, float], ): - - skill_info_list = [] # 计算普攻伤害 skill_multiplier = self.Skill_num("Normal", "Normal") @@ -896,8 +884,6 @@ class Kafka(BaseAvatar): base_attr: Dict[str, float], attribute_bonus: Dict[str, float], ): - - skill_info_list = [] # 计算普攻伤害 skill_multiplier = self.Skill_num("Normal", "Normal") @@ -1003,8 +989,6 @@ class Blade(BaseAvatar): base_attr: Dict[str, float], attribute_bonus: Dict[str, float], ): - - skill_info_list = [] # 计算普攻伤害 skill_multiplier = self.Skill_num("Normal", "Normal") @@ -1150,8 +1134,6 @@ class Fuxuan(BaseAvatar): base_attr: Dict[str, float], attribute_bonus: Dict[str, float], ): - - skill_info_list = [] # 计算普攻伤害 skill_multiplier = self.Skill_num("Normal", "Normal_HP") @@ -1232,8 +1214,6 @@ class Yanqing(BaseAvatar): base_attr: Dict[str, float], attribute_bonus: Dict[str, float], ): - - skill_info_list = [] # 计算普攻伤害 skill_multiplier = self.Skill_num("Normal", "Normal") @@ -1325,8 +1305,6 @@ class Himeko(BaseAvatar): base_attr: Dict[str, float], attribute_bonus: Dict[str, float], ): - - skill_info_list = [] # 计算普攻伤害 skill_multiplier = self.Skill_num("Normal", "Normal") @@ -1418,8 +1396,6 @@ class Qingque(BaseAvatar): base_attr: Dict[str, float], attribute_bonus: Dict[str, float], ): - - skill_info_list = [] # 计算普攻伤害 skill_multiplier = self.Skill_num("Normal", "Normal") @@ -1496,9 +1472,9 @@ class Jingliu(BaseAvatar): self.extra_ability_attribute["UltraDmgAdd"] = 0.2 critical_chance_base = self.Skill_num("Talent", "Talent_CC") self.extra_ability_attribute["Ultra_CriticalChanceBase"] = critical_chance_base - self.extra_ability_attribute[ - "BPSkill1_CriticalChanceBase" - ] = critical_chance_base + self.extra_ability_attribute["BPSkill1_CriticalChanceBase"] = ( + critical_chance_base + ) attack_added_ratio = self.Skill_num("Talent", "Talent_atk") self.extra_ability_attribute["BPSkill1AttackAddedRatio"] = attack_added_ratio self.extra_ability_attribute["UltraAttackAddedRatio"] = attack_added_ratio @@ -1508,8 +1484,6 @@ class Jingliu(BaseAvatar): base_attr: Dict[str, float], attribute_bonus: Dict[str, float], ): - - skill_info_list = [] # 计算普攻伤害 skill_multiplier = self.Skill_num("Normal", "Normal") @@ -1609,8 +1583,6 @@ class Topaz(BaseAvatar): base_attr: Dict[str, float], attribute_bonus: Dict[str, float], ): - - skill_info_list = [] # 计算普攻伤害 skill_multiplier = self.Skill_num("Normal", "Normal") @@ -1689,8 +1661,6 @@ class Guinaifen(BaseAvatar): base_attr: Dict[str, float], attribute_bonus: Dict[str, float], ): - - skill_info_list = [] # 计算普攻伤害 skill_multiplier = self.Skill_num("Normal", "Normal") @@ -1773,8 +1743,6 @@ class Gepard(BaseAvatar): base_attr: Dict[str, float], attribute_bonus: Dict[str, float], ): - - skill_info_list = [] # 计算普攻伤害 skill_multiplier = self.Skill_num("Normal", "Normal") @@ -1843,8 +1811,6 @@ class Luocha(BaseAvatar): base_attr: Dict[str, float], attribute_bonus: Dict[str, float], ): - - skill_info_list = [] # 计算普攻伤害 skill_multiplier = self.Skill_num("Normal", "Normal") @@ -1972,8 +1938,6 @@ class Bailu(BaseAvatar): base_attr: Dict[str, float], attribute_bonus: Dict[str, float], ): - - skill_info_list = [] # 计算普攻伤害 skill_multiplier = self.Skill_num("Normal", "Normal") @@ -2068,8 +2032,6 @@ class Lynx(BaseAvatar): base_attr: Dict[str, float], attribute_bonus: Dict[str, float], ): - - # 计算战技生命上限 skill_multiplier = self.Skill_num("BPSkill", "BPSkill_HP") skill_num = self.Skill_num("BPSkill", "BPSkill_HP_G") @@ -2188,8 +2150,6 @@ class Natasha(BaseAvatar): base_attr: Dict[str, float], attribute_bonus: Dict[str, float], ): - - skill_info_list = [] # 计算普攻伤害 skill_multiplier = self.Skill_num("Normal", "Normal") @@ -2281,8 +2241,6 @@ class Mar7th(BaseAvatar): base_attr: Dict[str, float], attribute_bonus: Dict[str, float], ): - - skill_info_list = [] # 计算普攻伤害 skill_multiplier = self.Skill_num("Normal", "Normal") @@ -2383,8 +2341,6 @@ class Bronya(BaseAvatar): base_attr: Dict[str, float], attribute_bonus: Dict[str, float], ): - - # 终结技增加伤害 attribute_bonus["AttackAddedRatio"] = attribute_bonus.get( "AttackAddedRatio", @@ -2448,8 +2404,6 @@ class Yukong(BaseAvatar): base_attr: Dict[str, float], attribute_bonus: Dict[str, float], ): - - # 终结技增加伤害 attribute_bonus["AttackAddedRatio"] = attribute_bonus.get( "AttackAddedRatio", @@ -2535,8 +2489,6 @@ class Sushang(BaseAvatar): base_attr: Dict[str, float], attribute_bonus: Dict[str, float], ): - - skill_info_list = [] # 计算普攻伤害 skill_multiplier = self.Skill_num("Normal", "Normal") @@ -2644,8 +2596,6 @@ class Luka(BaseAvatar): 0, ) + self.Skill_num("Ultra", "Ultra_d") - - skill_info_list = [] # 计算普攻伤害 skill_multiplier = self.Skill_num("Normal", "Normal") @@ -2763,8 +2713,6 @@ class DanHeng(BaseAvatar): 0, ) + self.Skill_num("Talent", "Talent") - - skill_info_list = [] # 计算普攻伤害 skill_multiplier = self.Skill_num("Normal", "Normal") @@ -2844,8 +2792,6 @@ class Arlan(BaseAvatar): 0, ) + self.Skill_num("Talent", "Talent") - - skill_info_list = [] # 计算普攻伤害 skill_multiplier = self.Skill_num("Normal", "Normal") @@ -2923,8 +2869,6 @@ class Asta(BaseAvatar): 0, ) + self.Skill_num("Ultra", "Ultra") - - skill_info_list = [] # 计算普攻伤害 skill_multiplier = self.Skill_num("Normal", "Normal") @@ -2991,8 +2935,6 @@ class Herta(BaseAvatar): base_attr: Dict[str, float], attribute_bonus: Dict[str, float], ): - - skill_info_list = [] # 计算普攻伤害 skill_multiplier = self.Skill_num("Normal", "Normal") @@ -3077,8 +3019,6 @@ class Serval(BaseAvatar): base_attr: Dict[str, float], attribute_bonus: Dict[str, float], ): - - skill_info_list = [] # 计算普攻伤害 skill_multiplier = self.Skill_num("Normal", "Normal") @@ -3182,8 +3122,6 @@ class Pela(BaseAvatar): 0, ) + self.Skill_num("Ultra", "Ultra_d") - - skill_info_list = [] # 计算普攻伤害 skill_multiplier = self.Skill_num("Normal", "Normal") @@ -3270,8 +3208,6 @@ class Sampo(BaseAvatar): 0, ) + self.Skill_num("Ultra", "Ultra_d") - - skill_info_list = [] # 计算普攻伤害 skill_multiplier = self.Skill_num("Normal", "Normal") @@ -3360,8 +3296,6 @@ class Hook(BaseAvatar): base_attr: Dict[str, float], attribute_bonus: Dict[str, float], ): - - skill_info_list = [] # 计算普攻伤害 skill_multiplier = self.Skill_num("Normal", "Normal") @@ -3470,8 +3404,6 @@ class Tingyun(BaseAvatar): base_attr: Dict[str, float], attribute_bonus: Dict[str, float], ): - - skill_info_list = [] # 计算普攻伤害 skill_multiplier = self.Skill_num("Normal", "Normal") @@ -3532,8 +3464,6 @@ class Trailblazer(BaseAvatar): + self.Skill_num("Talent", "Talent") * 2 ) - - skill_info_list = [] # 计算普攻伤害 skill_multiplier = self.Skill_num("Normal", "Normal") @@ -3615,8 +3545,6 @@ class Trailblazer_K(BaseAvatar): base_attr: Dict[str, float], attribute_bonus: Dict[str, float], ): - - skill_info_list = [] # 计算普攻伤害 skill_multiplier = self.Skill_num("Normal", "Normal") @@ -3744,8 +3672,6 @@ class Huohuo(BaseAvatar): base_attr: Dict[str, float], attribute_bonus: Dict[str, float], ): - - skill_info_list = [] # 计算普攻伤害 skill_multiplier = self.Skill_num("Normal", "Normal") @@ -3861,8 +3787,6 @@ class Hanya(BaseAvatar): 0, ) + self.Skill_num("Ultra", "Ultra_A") - - skill_info_list = [] # 计算普攻伤害 skill_multiplier = self.Skill_num("Normal", "Normal") @@ -3934,8 +3858,6 @@ class DrRatio(BaseAvatar): base_attr: Dict[str, float], attribute_bonus: Dict[str, float], ): - - skill_info_list = [] # 计算普攻伤害 skill_multiplier = self.Skill_num("Normal", "Normal") @@ -4058,8 +3980,6 @@ class RuanMei(BaseAvatar): + add_all_damage_added_ratio ) - - skill_info_list = [] # 计算普攻伤害 skill_multiplier = self.Skill_num("Normal", "Normal") @@ -4140,8 +4060,6 @@ class XueYi(BaseAvatar): "AllDamageAddedRatio", 0 ) + min(2.4, Break_Damage_Added_Ratio) - - skill_info_list = [] # 计算普攻伤害 skill_multiplier = self.Skill_num("Normal", "Normal") @@ -4200,6 +4118,7 @@ class XueYi(BaseAvatar): return skill_info_list + class BlackSwan(BaseAvatar): Buff: BaseAvatarBuff @@ -4221,24 +4140,24 @@ class BlackSwan(BaseAvatar): self.eidolon_attribute["ThunderResistancePenetration"] = 0.25 def extra_ability(self): - #战技降防计算 + # 战技降防计算 bpskill_defence = self.Skill_num("BPSkill", "BPSkill_D") self.extra_ability_attribute["ignore_defence"] = bpskill_defence - #终结技加伤害 - self.extra_ability_attribute["AllDamageAddedRatio"] = self.Skill_num("Ultra", "Ultra_A") + # 终结技加伤害 + self.extra_ability_attribute["AllDamageAddedRatio"] = self.Skill_num( + "Ultra", "Ultra_A" + ) async def getdamage( self, base_attr: Dict[str, float], attribute_bonus: Dict[str, float], ): - # 使自身造成的伤害提高,提高数值等同于效果命中的60%,最多使造成的伤害提高72%。 + # 使自身造成的伤害提高, 提高数值等同于效果命中的60%, 最多使造成的伤害提高72%。 Break_Damage_Added_Ratio = attribute_bonus.get("StatusProbabilityBase", 0) * 0.6 attribute_bonus["AllDamageAddedRatio"] = attribute_bonus.get( "AllDamageAddedRatio", 0 ) + min(0.72, Break_Damage_Added_Ratio) - - skill_info_list = [] # 计算普攻伤害 @@ -4293,14 +4212,12 @@ class BlackSwan(BaseAvatar): self.avatar_level, ) skill_info_list.append({"name": "1层奥迹伤害", "damagelist": damagelist4}) - + # 计算50层奥迹持续伤害 skill_multiplier = self.Skill_num("Talent", "Talent") skill_multiplier += self.Skill_num("Talent", "Talent_UP") * 50 add_attr_bonus = copy.deepcopy(attribute_bonus) - add_attr_bonus["ignore_defence"] = ( - add_attr_bonus.get("ignore_defence", 0) + 0.2 - ) + add_attr_bonus["ignore_defence"] = add_attr_bonus.get("ignore_defence", 0) + 0.2 damagelist5 = await calculate_damage( base_attr, add_attr_bonus, @@ -4313,6 +4230,7 @@ class BlackSwan(BaseAvatar): skill_info_list.append({"name": "50层奥迹伤害", "damagelist": damagelist5}) return skill_info_list + class Sparkle(BaseAvatar): Buff: BaseAvatarBuff @@ -4337,23 +4255,28 @@ class Sparkle(BaseAvatar): base_attr: Dict[str, float], attribute_bonus: Dict[str, float], ): - # 终结技天赋增加伤害 - All_Damage_Add = (self.Skill_num("Talent", "Talent") + self.Skill_num("Ultra", "Ultra")) * 3 - attribute_bonus["AllDamageAddedRatio"] = attribute_bonus.get( - "AllDamageAddedRatio", 0 - ) + All_Damage_Add - - #战技增加暴击伤害 + All_Damage_Add = ( + self.Skill_num("Talent", "Talent") + self.Skill_num("Ultra", "Ultra") + ) * 3 + attribute_bonus["AllDamageAddedRatio"] = ( + attribute_bonus.get("AllDamageAddedRatio", 0) + All_Damage_Add + ) + + # 战技增加暴击伤害 if self.avatar_rank >= 6: - add_critical_damage_base = attribute_bonus.get("CriticalDamageBase", 0) * (self.Skill_num("BPSkill", "BPSkill") + 0.3) + self.Skill_num("BPSkill", "BPSkill_G") + add_critical_damage_base = attribute_bonus.get("CriticalDamageBase", 0) * ( + self.Skill_num("BPSkill", "BPSkill") + 0.3 + ) + self.Skill_num("BPSkill", "BPSkill_G") else: - add_critical_damage_base = attribute_bonus.get("CriticalDamageBase", 0) * self.Skill_num("BPSkill", "BPSkill") + self.Skill_num("BPSkill", "BPSkill_G") + add_critical_damage_base = attribute_bonus.get( + "CriticalDamageBase", 0 + ) * self.Skill_num("BPSkill", "BPSkill") + self.Skill_num( + "BPSkill", "BPSkill_G" + ) attribute_bonus["CriticalDamageBase"] = ( attribute_bonus.get("CriticalDamageBase", 0) + add_critical_damage_base ) - - skill_info_list = [] # 计算普攻伤害 @@ -4377,6 +4300,7 @@ class Sparkle(BaseAvatar): return skill_info_list + class Acheron(BaseAvatar): Buff: BaseAvatarBuff @@ -4406,10 +4330,9 @@ class Acheron(BaseAvatar): base_attr: Dict[str, float], attribute_bonus: Dict[str, float], ): - - attribute_bonus["AllDamageAddedRatio"] = attribute_bonus.get("AllDamageAddedRatio", 0) + 0.9 - - + attribute_bonus["AllDamageAddedRatio"] = ( + attribute_bonus.get("AllDamageAddedRatio", 0) + 0.9 + ) skill_info_list = [] # 计算普攻伤害 @@ -4438,7 +4361,7 @@ class Acheron(BaseAvatar): damagelist1[1] = damagelist1[1] * 1.6 damagelist1[2] = damagelist1[2] * 1.6 skill_info_list.append({"name": "普攻", "damagelist": damagelist1}) - + # 计算战技伤害 skill_multiplier = self.Skill_num("BPSkill", "BPSkill") if self.avatar_rank >= 6: @@ -4465,13 +4388,13 @@ class Acheron(BaseAvatar): damagelist2[1] = damagelist2[1] * 1.6 damagelist2[2] = damagelist2[2] * 1.6 skill_info_list.append({"name": "战技", "damagelist": damagelist2}) - + # 计算终结技 add_attr_bonus = copy.deepcopy(attribute_bonus) add_attr_bonus["AllDamageResistancePenetration"] = ( add_attr_bonus.get("AllDamageResistancePenetration", 0) + 0.2 ) - #啼泽雨斩 + # 啼泽雨斩 skill_multiplier = self.Skill_num("Ultra", "Ultra_1_d") damagelist_u_1_d = await calculate_damage( base_attr, @@ -4495,7 +4418,7 @@ class Acheron(BaseAvatar): damagelist_u_1_d[1] = damagelist_u_1_d[1] * 1.6 + damagelist_u_2_d[1] * 1.6 damagelist_u_1_d[2] = damagelist_u_1_d[2] * 1.6 + damagelist_u_2_d[2] * 1.6 skill_info_list.append({"name": "啼泽雨斩", "damagelist": damagelist_u_1_d}) - #黄泉返渡 + # 黄泉返渡 skill_multiplier = self.Skill_num("Ultra", "Ultra_1_a") damagelist_u_1_a = await calculate_damage( base_attr, @@ -4515,12 +4438,18 @@ class Acheron(BaseAvatar): 0.25, self.avatar_level, ) - damagelist_u_1_a[0] = damagelist_u_1_a[0] * 1.6 + (damagelist_u_1_a_e[0] * 1.6) * 6 - damagelist_u_1_a[1] = damagelist_u_1_a[1] * 1.6 + (damagelist_u_1_a_e[1] * 1.6) * 6 - damagelist_u_1_a[2] = damagelist_u_1_a[2] * 1.6 + (damagelist_u_1_a_e[2] * 1.6) * 6 + damagelist_u_1_a[0] = ( + damagelist_u_1_a[0] * 1.6 + (damagelist_u_1_a_e[0] * 1.6) * 6 + ) + damagelist_u_1_a[1] = ( + damagelist_u_1_a[1] * 1.6 + (damagelist_u_1_a_e[1] * 1.6) * 6 + ) + damagelist_u_1_a[2] = ( + damagelist_u_1_a[2] * 1.6 + (damagelist_u_1_a_e[2] * 1.6) * 6 + ) skill_info_list.append({"name": "黄泉返渡", "damagelist": damagelist_u_1_a}) - - #总伤害 + + # 总伤害 damagelist_u = {} damagelist_u[0] = damagelist_u_1_d[0] * 3 + damagelist_u_1_a[0] damagelist_u[1] = damagelist_u_1_d[1] * 3 + damagelist_u_1_a[1] @@ -4528,6 +4457,7 @@ class Acheron(BaseAvatar): skill_info_list.append({"name": "终结技总伤", "damagelist": damagelist_u}) return skill_info_list + class Aventurine(BaseAvatar): Buff: BaseAvatarBuff @@ -4559,19 +4489,23 @@ class Aventurine(BaseAvatar): base_attr: Dict[str, float], attribute_bonus: Dict[str, float], ): - # 天赋增加暴击 - defence = base_attr["defence"] * (1 + attribute_bonus["DefenceAddedRatio"]) + attribute_bonus["DefenceDelta"] + defence = ( + base_attr["defence"] * (1 + attribute_bonus["DefenceAddedRatio"]) + + attribute_bonus["DefenceDelta"] + ) if defence > 1600: adddefrnce = defence - 1600 - Critical_Chance_Base = (defence/100) * 0.02 + Critical_Chance_Base = (defence / 100) * 0.02 Critical_Chance_Base = min(Critical_Chance_Base, 0.48) - attribute_bonus["CriticalChanceBase"] = attribute_bonus.get("CriticalChanceBase", 0) + Critical_Chance_Base - - #终结技增加暴击伤害 - attribute_bonus["CriticalDamageBase"] = attribute_bonus.get("CriticalDamageBase", 0) + self.Skill_num("Ultra", "Ultra_CD") - - + attribute_bonus["CriticalChanceBase"] = ( + attribute_bonus.get("CriticalChanceBase", 0) + Critical_Chance_Base + ) + + # 终结技增加暴击伤害 + attribute_bonus["CriticalDamageBase"] = attribute_bonus.get( + "CriticalDamageBase", 0 + ) + self.Skill_num("Ultra", "Ultra_CD") skill_info_list = [] # 计算普攻伤害 @@ -4598,7 +4532,7 @@ class Aventurine(BaseAvatar): skill_num, ) skill_info_list.append({"name": "战技(护盾)", "damagelist": damagelist2}) - + # 计算终结技伤害 skill_multiplier = self.Skill_num("Ultra", "Ultra") damagelist3 = await calculate_damage( @@ -4612,7 +4546,7 @@ class Aventurine(BaseAvatar): 2, ) skill_info_list.append({"name": "终结技", "damagelist": damagelist3}) - + duanshu = 7 if self.avatar_rank >= 4: duanshu = 10 @@ -4634,9 +4568,10 @@ class Aventurine(BaseAvatar): damagelist5[2] = damagelist4[2] * duanshu skill_info_list.append({"name": "单层【盲注】追击", "damagelist": damagelist4}) skill_info_list.append({"name": "满层【盲注】追击", "damagelist": damagelist5}) - + return skill_info_list + class Gallagher(BaseAvatar): Buff: BaseAvatarBuff @@ -4662,14 +4597,15 @@ class Gallagher(BaseAvatar): base_attr: Dict[str, float], attribute_bonus: Dict[str, float], ): - - # 使自身提供的治疗量提高,提高数值等同于击破特攻的50%,最多使提供的治疗量提高75% - Break_Damage_Added_Ratio_Base = attribute_bonus.get("BreakDamageAddedRatioBase", 0) + # 使自身提供的治疗量提高, 提高数值等同于击破特攻的50%, 最多使提供的治疗量提高75% + Break_Damage_Added_Ratio_Base = attribute_bonus.get( + "BreakDamageAddedRatioBase", 0 + ) Heal_Ratio_Base = Break_Damage_Added_Ratio_Base * 0.5 Heal_Ratio_Base = min(0.75, Heal_Ratio_Base) - attribute_bonus["HealRatioBase"] = attribute_bonus.get("HealRatioBase", 0) + Heal_Ratio_Base - - + attribute_bonus["HealRatioBase"] = ( + attribute_bonus.get("HealRatioBase", 0) + Heal_Ratio_Base + ) skill_info_list = [] # 计算普攻伤害 @@ -4684,7 +4620,7 @@ class Gallagher(BaseAvatar): self.avatar_level, ) skill_info_list.append({"name": "普攻", "damagelist": damagelist1}) - + # 计算强化普攻伤害 skill_multiplier = self.Skill_num("Normal", "Normal1") damagelist2 = await calculate_damage( @@ -4697,7 +4633,7 @@ class Gallagher(BaseAvatar): self.avatar_level, ) skill_info_list.append({"name": "强化普攻", "damagelist": damagelist2}) - + # 计算战技治疗量 skill_num = self.Skill_num("BPSkill", "BPSkill") damagelist3 = await calculate_heal( @@ -4708,7 +4644,7 @@ class Gallagher(BaseAvatar): skill_num, ) skill_info_list.append({"name": "战技治疗量", "damagelist": damagelist3}) - + # 计算终结技伤害 skill_multiplier = self.Skill_num("Ultra", "Ultra") damagelist4 = await calculate_damage( @@ -4721,7 +4657,7 @@ class Gallagher(BaseAvatar): self.avatar_level, ) skill_info_list.append({"name": "结技", "damagelist": damagelist4}) - + # 计算天赋治疗量 skill_num = self.Skill_num("Talent", "Talent") damagelist5 = await calculate_heal( @@ -4732,9 +4668,10 @@ class Gallagher(BaseAvatar): skill_num, ) skill_info_list.append({"name": "天赋治疗量", "damagelist": damagelist5}) - + return skill_info_list + class Robin(BaseAvatar): Buff: BaseAvatarBuff @@ -4753,7 +4690,7 @@ class Robin(BaseAvatar): self.eidolon_attribute["CriticalDamageBase"] = 0.2 if self.avatar_rank >= 6: self.eidolon_attribute["AllDamageResistancePenetration"] = 0.2 - + def extra_ability(self): pass @@ -4762,24 +4699,29 @@ class Robin(BaseAvatar): base_attr: Dict[str, float], attribute_bonus: Dict[str, float], ): - # 战技伤害加成 all_damage_added_ratio = attribute_bonus.get("AllDamageAddedRatio", 0) - attribute_bonus["AllDamageAddedRatio"] = all_damage_added_ratio + self.Skill_num("BPSkill", "BPSkill") - + attribute_bonus["AllDamageAddedRatio"] = ( + all_damage_added_ratio + self.Skill_num("BPSkill", "BPSkill") + ) + # 终结技攻击加成计算 attack = ( base_attr["attack"] * (1 + attribute_bonus["AttackAddedRatio"]) + attribute_bonus["AttackDelta"] ) - add_attack = (attack * self.Skill_num("Ultra", "Ultra_A")) + self.Skill_num("Ultra", "Ultra_G") - attribute_bonus["AttackDelta"] = attribute_bonus.get("AttackDelta", 0) + add_attack - + add_attack = (attack * self.Skill_num("Ultra", "Ultra_A")) + self.Skill_num( + "Ultra", "Ultra_G" + ) + attribute_bonus["AttackDelta"] = ( + attribute_bonus.get("AttackDelta", 0) + add_attack + ) + # 天赋爆伤加成 Critical_Damage_Base = attribute_bonus.get("CriticalDamageBase", 0) - attribute_bonus["CriticalDamageBase"] = Critical_Damage_Base + self.Skill_num("Talent", "Talent") - - + attribute_bonus["CriticalDamageBase"] = Critical_Damage_Base + self.Skill_num( + "Talent", "Talent" + ) skill_info_list = [] # 计算普攻伤害 @@ -4794,22 +4736,22 @@ class Robin(BaseAvatar): self.avatar_level, ) skill_info_list.append({"name": "普攻", "damagelist": damagelist1}) - + # 计算战技治疗量 skill_num = self.Skill_num("BPSkill", "BPSkill") damagelist2 = {} damagelist2[0] = add_attack skill_info_list.append({"name": "终结技攻击提高", "damagelist": damagelist2}) - + # 计算追击伤害 skill_multiplier = self.Skill_num("Ultra", "Ultra") add_attr_bonus = copy.deepcopy(attribute_bonus) - add_attr_bonus['CriticalDamageBase'] = 1 - add_attr_bonus['CriticalChanceBase'] = 0.95 + add_attr_bonus["CriticalDamageBase"] = 1 + add_attr_bonus["CriticalChanceBase"] = 0.95 if self.avatar_rank >= 1: skill_multiplier = skill_multiplier + 0.72 if self.avatar_rank >= 6: - add_attr_bonus['CriticalDamageBase'] = 3 + add_attr_bonus["CriticalDamageBase"] = 3 damagelist4 = await calculate_damage( base_attr, add_attr_bonus, @@ -4820,9 +4762,10 @@ class Robin(BaseAvatar): self.avatar_level, ) skill_info_list.append({"name": "【协奏】追加伤害", "damagelist": damagelist4}) - + return skill_info_list + class AvatarDamage: @classmethod def create(cls, char: DamageInstanceAvatar, skills: List[DamageInstanceSkill]): diff --git a/starrail_damage_cal/damage/Base/AvatarBase.py b/starrail_damage_cal/damage/Base/AvatarBase.py index 048349b..f38abfc 100644 --- a/starrail_damage_cal/damage/Base/AvatarBase.py +++ b/starrail_damage_cal/damage/Base/AvatarBase.py @@ -49,16 +49,13 @@ class BaseAvatarBuff: return cls @abstractmethod - async def Technique(self): - ... + async def Technique(self): ... @abstractmethod - async def eidolons(self): - ... + async def eidolons(self): ... @abstractmethod - async def extra_ability(self): - ... + async def extra_ability(self): ... class BaseAvatarinfo: diff --git a/starrail_damage_cal/damage/Base/RelicBase.py b/starrail_damage_cal/damage/Base/RelicBase.py index 017aa60..4d59077 100644 --- a/starrail_damage_cal/damage/Base/RelicBase.py +++ b/starrail_damage_cal/damage/Base/RelicBase.py @@ -19,13 +19,13 @@ class SingleRelic: def get_attribute_(self): # MainAffix if self.raw_relic.MainAffix.Property in self.relic_attribute_bonus: - self.relic_attribute_bonus[ - self.raw_relic.MainAffix.Property - ] += self.raw_relic.MainAffix.Value + self.relic_attribute_bonus[self.raw_relic.MainAffix.Property] += ( + self.raw_relic.MainAffix.Value + ) else: - self.relic_attribute_bonus[ - self.raw_relic.MainAffix.Property - ] = self.raw_relic.MainAffix.Value + self.relic_attribute_bonus[self.raw_relic.MainAffix.Property] = ( + self.raw_relic.MainAffix.Value + ) # SubAffix if self.raw_relic.SubAffixList: @@ -58,15 +58,14 @@ class BaseRelicSetSkill: self, base_attr: Dict[str, float], attribute_bonus: Dict[str, float], - ): - ... + ) -> bool: ... @abstractmethod async def set_skill_ability( self, base_attr: Dict[str, float], attribute_bonus: Dict[str, float], - ): + ) -> Dict[str, float]: """战斗加成属性, 与 set_skill_property() 互斥""" ... diff --git a/starrail_damage_cal/damage/Base/WeaponBase.py b/starrail_damage_cal/damage/Base/WeaponBase.py index 02604f4..c3ef6ac 100644 --- a/starrail_damage_cal/damage/Base/WeaponBase.py +++ b/starrail_damage_cal/damage/Base/WeaponBase.py @@ -33,7 +33,9 @@ class BaseWeapon: self.weapon_property_ability() @abstractmethod - async def weapon_ability(self, base_attr: Dict, attribute_bonus: Dict): + async def weapon_ability( + self, Ultra_Use: float, base_attr: Dict[str, float], attribute_bonus: Dict + ) -> Dict[str, float]: """战斗加成属性, 与 weapon_property_ability() 互斥""" ... @@ -50,8 +52,7 @@ class BaseWeapon: self.weapon_attribute[property_type] = value @abstractmethod - async def check(self): - ... + async def check(self) -> bool: ... def get_attribute(self): promotion = EquipmentPromotionConfig.Equipment[str(self.weapon_id)][ diff --git a/starrail_damage_cal/damage/Relic/Relic.py b/starrail_damage_cal/damage/Relic/Relic.py index fc92bdf..4f511b6 100644 --- a/starrail_damage_cal/damage/Relic/Relic.py +++ b/starrail_damage_cal/damage/Relic/Relic.py @@ -428,6 +428,7 @@ class Relic116(BaseRelicSetSkill): attribute_bonus["ignore_defence"] = ignore_defence + 0.06000000009313226 * 3 return attribute_bonus + class Relic117(BaseRelicSetSkill): def __init__(self, set_id: int, count: int): super().__init__(set_id, count) @@ -439,7 +440,7 @@ class Relic117(BaseRelicSetSkill): attribute_bonus: Dict[str, float], ): """2件: 对受负面状态影响的敌人造成的伤害提高12%。""" - # 暴击率提高4%,装备者对陷入不少于2/3个负面效果的敌方目标造成的暴击伤害提高8%/12%。装备者对敌方目标施加负面效果后,上述效果提高100%,持续1回合 + # 暴击率提高4%, 装备者对陷入不少于2/3个负面效果的敌方目标造成的暴击伤害提高8%/12%。装备者对敌方目标施加负面效果后, 上述效果提高100%, 持续1回合 logger.info("Relic114 check success") return True @@ -450,14 +451,21 @@ class Relic117(BaseRelicSetSkill): ): if self.pieces2 and await self.check(base_attr, attribute_bonus): All_Damage_Added_Ratio = attribute_bonus.get("AllDamageAddedRatio", 0) - attribute_bonus["AllDamageAddedRatio"] = All_Damage_Added_Ratio + 0.12000000011175871 + attribute_bonus["AllDamageAddedRatio"] = ( + All_Damage_Added_Ratio + 0.12000000011175871 + ) if self.pieces4 and await self.check(base_attr, attribute_bonus): Critical_Chance_Base = attribute_bonus.get("CriticalChanceBase", 0) - attribute_bonus["CriticalChanceBase"] = Critical_Chance_Base + 0.0400000000372529 + attribute_bonus["CriticalChanceBase"] = ( + Critical_Chance_Base + 0.0400000000372529 + ) Critical_Damage_Base = attribute_bonus.get("CriticalDamageBase", 0) - attribute_bonus["CriticalDamageBase"] = Critical_Damage_Base + 0.12000000011175871 * 2 + attribute_bonus["CriticalDamageBase"] = ( + Critical_Damage_Base + 0.12000000011175871 * 2 + ) return attribute_bonus + class Relic118(BaseRelicSetSkill): def __init__(self, set_id: int, count: int): super().__init__(set_id, count) @@ -468,7 +476,7 @@ class Relic118(BaseRelicSetSkill): base_attr: Dict[str, float], attribute_bonus: Dict[str, float], ): - """当装备者对我方目标施放终结技时,我方全体击破特攻提高30%,持续2回合,该效果无法叠加。""" + """当装备者对我方目标施放终结技时, 我方全体击破特攻提高30%, 持续2回合, 该效果无法叠加。""" logger.info("Relic114 check success") return True @@ -478,10 +486,15 @@ class Relic118(BaseRelicSetSkill): attribute_bonus: Dict[str, float], ): if self.pieces4 and await self.check(base_attr, attribute_bonus): - Break_Damage_Added_Ratio_Base = attribute_bonus.get("BreakDamageAddedRatioBase", 0) - attribute_bonus["BreakDamageAddedRatioBase"] = Break_Damage_Added_Ratio_Base + 0.3000000002793968 + Break_Damage_Added_Ratio_Base = attribute_bonus.get( + "BreakDamageAddedRatioBase", 0 + ) + attribute_bonus["BreakDamageAddedRatioBase"] = ( + Break_Damage_Added_Ratio_Base + 0.3000000002793968 + ) return attribute_bonus + class Relic301(BaseRelicSetSkill): def __init__(self, set_id: int, count: int): super().__init__(set_id, count) @@ -831,6 +844,7 @@ class Relic312(BaseRelicSetSkill): return attribute_bonus + class Relic313(BaseRelicSetSkill): def __init__(self, set_id: int, count: int): super().__init__(set_id, count) @@ -840,7 +854,7 @@ class Relic313(BaseRelicSetSkill): base_attr: Dict[str, float], attribute_bonus: Dict[str, float], ): - """当敌方目标被消灭时,装备者暴击伤害提高4%,最多叠加10层。""" + """当敌方目标被消灭时, 装备者暴击伤害提高4%, 最多叠加10层。""" return True async def set_skill_ability( @@ -849,12 +863,13 @@ class Relic313(BaseRelicSetSkill): attribute_bonus: Dict[str, float], ): if self.pieces2 and await self.check(base_attr, attribute_bonus): - attribute_bonus["CriticalDamageBase"] = ( - attribute_bonus.get("CriticalDamageBase", 0) + (0.0400000000372529 * 10) - ) + attribute_bonus["CriticalDamageBase"] = attribute_bonus.get( + "CriticalDamageBase", 0 + ) + (0.0400000000372529 * 10) return attribute_bonus + class Relic314(BaseRelicSetSkill): def __init__(self, set_id: int, count: int): super().__init__(set_id, count) @@ -864,7 +879,7 @@ class Relic314(BaseRelicSetSkill): base_attr: Dict[str, float], attribute_bonus: Dict[str, float], ): - """若至少存在一名与装备者命途相同的队友,装备者的暴击率提高12%。""" + """若至少存在一名与装备者命途相同的队友, 装备者的暴击率提高12%。""" return True async def set_skill_ability( @@ -879,6 +894,7 @@ class Relic314(BaseRelicSetSkill): return attribute_bonus + class RelicSet: HEAD: SingleRelic HAND: SingleRelic diff --git a/starrail_damage_cal/damage/Role.py b/starrail_damage_cal/damage/Role.py index 32a0cb6..4a6018a 100644 --- a/starrail_damage_cal/damage/Role.py +++ b/starrail_damage_cal/damage/Role.py @@ -68,7 +68,7 @@ async def get_damage( merged_attr = await merge_attribute(base_attr, add_attr_bonus) - injury_area, element_area = calculate_injury_area( + injury_area = calculate_injury_area( merged_attr, skill_type, add_skill_type, @@ -442,11 +442,21 @@ async def calculate_damage_tz( is_hp=0, ): add_attr_bonus_tz = copy.deepcopy(add_attr_bonus) - add_attr_bonus_tz['AttackAddedRatio'] = add_attr_bonus_tz.get('AttackAddedRatio',0) + 1.694 - add_attr_bonus_tz['ignore_defence'] = add_attr_bonus_tz.get('ignore_defence',0) + 0.44 - add_attr_bonus_tz['AllDamageResistancePenetration'] = add_attr_bonus_tz.get('AllDamageResistancePenetration',0) + 0.27 - add_attr_bonus_tz['AllDamageAddedRatio'] = add_attr_bonus_tz.get('AllDamageAddedRatio',0) + 2.06 - add_attr_bonus_tz['CriticalDamageBase'] = add_attr_bonus_tz.get('CriticalDamageBase',0) + 4.578 + add_attr_bonus_tz["AttackAddedRatio"] = ( + add_attr_bonus_tz.get("AttackAddedRatio", 0) + 1.694 + ) + add_attr_bonus_tz["ignore_defence"] = ( + add_attr_bonus_tz.get("ignore_defence", 0) + 0.44 + ) + add_attr_bonus_tz["AllDamageResistancePenetration"] = ( + add_attr_bonus_tz.get("AllDamageResistancePenetration", 0) + 0.27 + ) + add_attr_bonus_tz["AllDamageAddedRatio"] = ( + add_attr_bonus_tz.get("AllDamageAddedRatio", 0) + 2.06 + ) + add_attr_bonus_tz["CriticalDamageBase"] = ( + add_attr_bonus_tz.get("CriticalDamageBase", 0) + 4.578 + ) merged_attr_tz = await merge_attribute(base_attr, add_attr_bonus_tz) if is_hp == 1: attack_tz = merged_attr_tz.get("hp", 0) @@ -454,7 +464,7 @@ async def calculate_damage_tz( attack_tz = merged_attr_tz.get("defence", 0) else: attack_tz = merged_attr_tz.get("attack", 0) - + resistance_area_tz = calculate_resistance_area( merged_attr_tz, skill_type, @@ -473,9 +483,11 @@ async def calculate_damage_tz( element, ) # print(f'增伤区:{injury_area_tz}') - critical_damage_tz = calculate_critical_damage(merged_attr_tz, skill_type, add_skill_type) + critical_damage_tz = calculate_critical_damage( + merged_attr_tz, skill_type, add_skill_type + ) # print(f'爆伤区:{critical_damage_tz}') - + return ( attack_tz * skill_multiplier diff --git a/starrail_damage_cal/damage/Weapon/Weapon.py b/starrail_damage_cal/damage/Weapon/Weapon.py index 51fdf94..0b287ba 100644 --- a/starrail_damage_cal/damage/Weapon/Weapon.py +++ b/starrail_damage_cal/damage/Weapon/Weapon.py @@ -246,7 +246,7 @@ class BeforeDawn(BaseWeapon): super().__init__(weapon) async def check(self): - pass + return True async def weapon_ability( self, @@ -279,7 +279,7 @@ class IntheNight(BaseWeapon): super().__init__(weapon) async def check(self): - pass + return True async def weapon_ability( self, @@ -430,7 +430,7 @@ class TodayIsAnotherPeacefulDay(BaseWeapon): async def check(self): # 根据装备者的能量上限, 提高装备者造成的伤害: 每点能量提高0.2%, 最多计入160点 - pass + return True async def weapon_ability( self, @@ -491,7 +491,7 @@ class MaketheWorldClamor(BaseWeapon): async def check(self): # 终结技造成的伤害提高32%。 - pass + return True async def weapon_ability( self, @@ -705,7 +705,7 @@ class NowheretoRun(BaseWeapon): async def check(self): # 使装备者的攻击力提高24% - pass + return True async def weapon_ability( self, @@ -951,7 +951,7 @@ class SolitaryHealing(BaseWeapon): async def check(self): # 使装备者的击破特攻提高20% # 装备者施放终结技时, 使装备者造成的持续伤害提高24% - pass + return True async def weapon_ability( self, @@ -971,7 +971,7 @@ class BeforetheTutorialMissionStarts(BaseWeapon): async def check(self): # 当装备者攻击防御力被降低的敌方目标后, 恢复4点能量。 - pass + return True async def weapon_ability( self, @@ -992,7 +992,7 @@ class WeWillMeetAgain(BaseWeapon): async def check(self): # 装备者施放普攻或战技后, # 对随机1个受到攻击的敌方目标造成等同于自身48%攻击力的附加伤害。 - pass + return True async def weapon_ability( self, @@ -1068,7 +1068,7 @@ class EyesofthePrey(BaseWeapon): async def check(self): # 造成的持续伤害提高24%。 - pass + return True async def weapon_ability( self, @@ -1183,7 +1183,7 @@ class TextureofMemories(BaseWeapon): async def check(self): # ... - pass + return True async def weapon_ability( self, @@ -1203,7 +1203,7 @@ class ThisIsMe(BaseWeapon): async def check(self): # 装备者施放终结技时造成的伤害值提高, 提高数值等同于装备者防御力的60% - pass + return True async def weapon_ability( self, @@ -1223,7 +1223,7 @@ class WeAreWildfire(BaseWeapon): async def check(self): # 战斗开始时, 使我方全体受到的伤害降低8% - pass + return True async def weapon_ability( self, @@ -1244,7 +1244,7 @@ class TrendoftheUniversalMarket(BaseWeapon): async def check(self): # 当装备者受到攻击后, 有100%的基础概率使敌方目标陷入灼烧状态, # 每回合造成等同于装备者40%防御力的持续伤害 - pass + return True async def weapon_ability( self, @@ -1264,7 +1264,7 @@ class LandausChoice(BaseWeapon): async def check(self): # 装备者受到攻击的概率提高, 同时受到的伤害降低16%。 - pass + return True async def weapon_ability( self, @@ -1284,7 +1284,7 @@ class DayOneofMyNewLife(BaseWeapon): async def check(self): # 进入战斗后, 使我方全体的全属性抗性提高8% - pass + return True async def weapon_ability( self, @@ -1304,7 +1304,7 @@ class Pioneering(BaseWeapon): async def check(self): # 进入战斗后, 使我方全体的全属性抗性提高8% - pass + return True async def weapon_ability( self, @@ -1324,7 +1324,7 @@ class Defense(BaseWeapon): async def check(self): # 进入战斗后, 使我方全体的全属性抗性提高8% - pass + return True async def weapon_ability( self, @@ -1428,7 +1428,7 @@ class CollapsingSky(BaseWeapon): async def check(self): # 使装备者普攻和战技造成的伤害提高20%。 - pass + return True async def weapon_ability( self, @@ -1458,7 +1458,7 @@ class HiddenShadow(BaseWeapon): async def check(self): # 施放战技后, 使装备者的下一次普攻对敌方目标造成等同于自身60%攻击力的附加伤害。 - pass + return True async def weapon_ability( self, @@ -1562,7 +1562,7 @@ class Passkey(BaseWeapon): async def check(self): # 使装备者施放战技后额外恢复8点能量 - pass + return True async def weapon_ability( self, @@ -1582,7 +1582,7 @@ class DataBank(BaseWeapon): async def check(self): # 使装备者终结技造成的伤害提高28%。 - pass + return True async def weapon_ability( self, @@ -1609,7 +1609,7 @@ class Thisbodyisasword(BaseWeapon): # 当队友受到攻击或消耗生命值后, 装备者获得1层【月蚀】, # 最多叠加3层。每层【月蚀】使装备者下一次攻击造成的伤害提高14%。 # 叠满3层时, 额外使该次攻击无视目标12%的防御力。该效果在装备者施放攻击后解除。 - pass + return True async def weapon_ability( self, @@ -1743,7 +1743,7 @@ class TimeWaitsforNoOne(BaseWeapon): async def check(self): # 当装备者对我方目标提供治疗时,记录治疗量。当任意我方目标施放攻击后,根据记录治疗量的36%,对随机1个受到攻击的敌方目标造成基于装备者属性的附加伤害 - pass + return True async def weapon_ability( self, @@ -1850,7 +1850,7 @@ class SharedFeeling(BaseWeapon): async def check(self): # 在施放战技时为我方全体恢复2点能量。 - pass + return True async def weapon_ability( self, @@ -1906,7 +1906,7 @@ class QuidProQuo(BaseWeapon): async def check(self): # 随机为1个当前能量百分比小于50%的我方其他目标恢复8点能量。 - pass + return True async def weapon_ability( self, @@ -1926,7 +1926,7 @@ class WarmthShortensColdNights(BaseWeapon): async def check(self): # 施放普攻或战技后, 为我方全体回复等同于各自生命上限2%的生命值。 - pass + return True async def weapon_ability( self, @@ -2015,7 +2015,7 @@ class FineFruit(BaseWeapon): async def check(self): # 战斗开始时, 立即为我方全体恢复6点能量。 - pass + return True async def weapon_ability( self, @@ -2035,7 +2035,7 @@ class Multiplication(BaseWeapon): async def check(self): # 战斗开始时, 立即为我方全体恢复6点能量。 - pass + return True async def weapon_ability( self, @@ -2055,7 +2055,7 @@ class ButtheBattleIsnotOver(BaseWeapon): async def check(self): # 当装备者施放战技后, 使下一个行动的我方【其他目标】造成的伤害提高30% - pass + return True async def weapon_ability( self, @@ -2075,7 +2075,7 @@ class MemoriesofthePast(BaseWeapon): async def check(self): # 装备者施放攻击后, 额外恢复4点能量 - pass + return True async def weapon_ability( self, @@ -2095,7 +2095,7 @@ class PlanetaryRendezvous(BaseWeapon): async def check(self): # 当我方目标造成与装备者相同属性的伤害时, 造成的伤害提高12%。 - pass + return True async def weapon_ability( self, @@ -2124,7 +2124,7 @@ class DanceDanceDance(BaseWeapon): async def check(self): # 当装备者施放终结技后, 我方全体行动提前16%。 - pass + return True async def weapon_ability( self, @@ -2144,7 +2144,7 @@ class PastandFuture(BaseWeapon): async def check(self): # 使下一个行动的我方【其他目标】造成的伤害提高16% - pass + return True async def weapon_ability( self, @@ -2167,7 +2167,7 @@ class CarvetheMoonWeavetheClouds(BaseWeapon): # 使我方全体攻击力提高10% # 使我方全体暴击伤害提高12% # 暂时固定只算攻击 - pass + return True async def weapon_ability( self, @@ -2196,7 +2196,7 @@ class Chorus(BaseWeapon): async def check(self): # 进入战斗后,使我方全体的攻击力提高8% - pass + return True async def weapon_ability( self, @@ -2225,7 +2225,7 @@ class MeshingCogs(BaseWeapon): async def check(self): # 使装备者施放攻击或受到攻击后,额外恢复4点能量 - pass + return True async def weapon_ability( self, @@ -2342,6 +2342,7 @@ class PastSelfinMirror(BaseWeapon): ) return attribute_bonus + # 游戏尘寰 class EarthlyEscapade(BaseWeapon): weapon_base_attributes: Dict @@ -2350,7 +2351,7 @@ class EarthlyEscapade(BaseWeapon): super().__init__(weapon) async def check(self): - # 战斗开始时,使装备者获得【假面】,持续3回合。当装备者持有【假面】时,装备者的队友暴击率提高10%,暴击伤害提高28%。 + # 战斗开始时, 使装备者获得【假面】, 持续3回合。当装备者持有【假面】时, 装备者的队友暴击率提高10%, 暴击伤害提高28%。 return True async def weapon_ability( @@ -2363,16 +2364,21 @@ class EarthlyEscapade(BaseWeapon): critical_damage_base = attribute_bonus.get("CriticalDamageBase", 0) attribute_bonus["CriticalDamageBase"] = ( critical_damage_base - + weapon_effect["23021"]["Param"]["CriticalDamageBase"][self.weapon_rank - 1] + + weapon_effect["23021"]["Param"]["CriticalDamageBase"][ + self.weapon_rank - 1 + ] ) - + critical_chance_base = attribute_bonus.get("CriticalChanceBase", 0) attribute_bonus["CriticalChanceBase"] = ( critical_chance_base - + weapon_effect["23021"]["Param"]["CriticalChance"][self.weapon_rank - 1] + + weapon_effect["23021"]["Param"]["CriticalChance"][ + self.weapon_rank - 1 + ] ) return attribute_bonus + # 重塑时光之忆 class ReforgedRemembrance(BaseWeapon): weapon_base_attributes: Dict @@ -2381,7 +2387,7 @@ class ReforgedRemembrance(BaseWeapon): super().__init__(weapon) async def check(self): - # 装备者对陷入风化、灼烧、触电、裂伤状态的敌方目标造成伤害时,分别获得1层【先知】,最多叠加4层。单场战斗中,每种持续伤害状态类型仅可叠加1次【先知】效果。每层【先知】使装备者的攻击力提高5%,造成的持续伤害无视目标7.2%的防御力。 + # 装备者对陷入风化、灼烧、触电、裂伤状态的敌方目标造成伤害时, 分别获得1层【先知】, 最多叠加4层。单场战斗中, 每种持续伤害状态类型仅可叠加1次【先知】效果。每层【先知】使装备者的攻击力提高5%, 造成的持续伤害无视目标7.2%的防御力。 return True async def weapon_ability( @@ -2401,7 +2407,7 @@ class ReforgedRemembrance(BaseWeapon): ) * 4 ) - + resistance_penetration = attribute_bonus.get("DOTignore_defence", 0) attribute_bonus["DOTignore_defence"] = ( resistance_penetration @@ -2414,6 +2420,7 @@ class ReforgedRemembrance(BaseWeapon): ) return attribute_bonus + # 何物为真 class WhatIsReal(BaseWeapon): weapon_base_attributes: Dict @@ -2422,8 +2429,8 @@ class WhatIsReal(BaseWeapon): super().__init__(weapon) async def check(self): - # 施放普攻后,装备者回复等同于2%生命上限+800点的生命值。 - pass + # 施放普攻后, 装备者回复等同于2%生命上限+800点的生命值。 + return True async def weapon_ability( self, @@ -2433,6 +2440,7 @@ class WhatIsReal(BaseWeapon): ): return attribute_bonus + # 美梦小镇大冒险 class DreamvilleAdventure(BaseWeapon): weapon_base_attributes: Dict @@ -2441,7 +2449,7 @@ class DreamvilleAdventure(BaseWeapon): super().__init__(weapon) async def check(self): - # 装备者施放普攻、战技、终结技中某一类型的技能后,为我方全体附加【童心】,【童心】可以使我方目标对应类型的技能所造成的伤害提高12% + # 装备者施放普攻、战技、终结技中某一类型的技能后, 为我方全体附加【童心】, 【童心】可以使我方目标对应类型的技能所造成的伤害提高12% return True async def weapon_ability( @@ -2462,6 +2470,7 @@ class DreamvilleAdventure(BaseWeapon): ) return attribute_bonus + # 最后的赢家 class FinalVictor(BaseWeapon): weapon_base_attributes: Dict @@ -2470,7 +2479,7 @@ class FinalVictor(BaseWeapon): super().__init__(weapon) async def check(self): - # 当装备者对敌方目标造成暴击后获得一层【好运】,最多叠加4层。每层【好运】使装备者的暴击伤害提高8% + # 当装备者对敌方目标造成暴击后获得一层【好运】, 最多叠加4层。每层【好运】使装备者的暴击伤害提高8% return True async def weapon_ability( @@ -2481,17 +2490,15 @@ class FinalVictor(BaseWeapon): ): if await self.check(): Critical_Damage_Base = attribute_bonus.get("CriticalDamageBase", 0) - attribute_bonus["CriticalDamageBase"] = ( - Critical_Damage_Base - + ( - weapon_effect["21037"]["Param"]["CriticalDamageBase"][ - self.weapon_rank - 1 - ] - * 4 - ) + attribute_bonus["CriticalDamageBase"] = Critical_Damage_Base + ( + weapon_effect["21037"]["Param"]["CriticalDamageBase"][ + self.weapon_rank - 1 + ] + * 4 ) return attribute_bonus + # 在火的远处 class FlamesAfar(BaseWeapon): weapon_base_attributes: Dict @@ -2521,6 +2528,7 @@ class FlamesAfar(BaseWeapon): ) return attribute_bonus + # 织造命运之线 class DestinysThreadsForewoven(BaseWeapon): weapon_base_attributes: Dict @@ -2529,7 +2537,7 @@ class DestinysThreadsForewoven(BaseWeapon): super().__init__(weapon) async def check(self): - # 装备者每有100点防御力,使装备者造成的伤害提高0.8%,最多使造成的伤害提高32%。 + # 装备者每有100点防御力, 使装备者造成的伤害提高0.8%, 最多使造成的伤害提高32%。 return True async def weapon_ability( @@ -2539,13 +2547,26 @@ class DestinysThreadsForewoven(BaseWeapon): attribute_bonus: Dict[str, float], ): if await self.check(): - defence = base_attr["defence"] * (1 + attribute_bonus["DefenceAddedRatio"]) + attribute_bonus["DefenceDelta"] - damage_added = (defence/100) * weapon_effect["21039"]["Param"]["AllDamageAddedRatio"][self.weapon_rank - 1] - damage_added = min(damage_added, weapon_effect["21039"]["Param"]["AllDamageAddedRatio_max"][self.weapon_rank - 1]) + defence = ( + base_attr["defence"] * (1 + attribute_bonus["DefenceAddedRatio"]) + + attribute_bonus["DefenceDelta"] + ) + damage_added = (defence / 100) * weapon_effect["21039"]["Param"][ + "AllDamageAddedRatio" + ][self.weapon_rank - 1] + damage_added = min( + damage_added, + weapon_effect["21039"]["Param"]["AllDamageAddedRatio_max"][ + self.weapon_rank - 1 + ], + ) all_damage_added_ratio = attribute_bonus.get("AllDamageAddedRatio", 0) - attribute_bonus["AllDamageAddedRatio"] = all_damage_added_ratio + damage_added + attribute_bonus["AllDamageAddedRatio"] = ( + all_damage_added_ratio + damage_added + ) return attribute_bonus + # 银河沦陷日 class TheDayTheCosmosFell(BaseWeapon): weapon_base_attributes: Dict @@ -2554,7 +2575,7 @@ class TheDayTheCosmosFell(BaseWeapon): super().__init__(weapon) async def check(self): - # 装备者施放攻击后,若有不少于2个被攻击的敌方目标具有对应属性弱点,装备者的暴击伤害提高20%,持续2回合。 + # 装备者施放攻击后, 若有不少于2个被攻击的敌方目标具有对应属性弱点, 装备者的暴击伤害提高20%, 持续2回合。 return True async def weapon_ability( @@ -2575,6 +2596,7 @@ class TheDayTheCosmosFell(BaseWeapon): ) return attribute_bonus + # 好戏开演 class ItsShowtime(BaseWeapon): weapon_base_attributes: Dict @@ -2583,7 +2605,7 @@ class ItsShowtime(BaseWeapon): super().__init__(weapon) async def check(self): - # 装备者对敌方目标施加负面状态后,获得一层【戏法】,每层【戏法】使装备者造成的伤害提高6%,最多叠加3层,持续1回合。当装备者的效果命中大于等于80%时,攻击力提高20%。 + # 装备者对敌方目标施加负面状态后, 获得一层【戏法】, 每层【戏法】使装备者造成的伤害提高6%, 最多叠加3层, 持续1回合。当装备者的效果命中大于等于80%时, 攻击力提高20%。 return True async def weapon_ability( @@ -2594,14 +2616,11 @@ class ItsShowtime(BaseWeapon): ): if await self.check(): all_damage_added_ratio = attribute_bonus.get("AllDamageAddedRatio", 0) - attribute_bonus["AllDamageAddedRatio"] = ( - all_damage_added_ratio - + ( - weapon_effect["21041"]["Param"]["AllDamageAddedRatio"][ - self.weapon_rank - 1 - ] - * 3 - ) + attribute_bonus["AllDamageAddedRatio"] = all_damage_added_ratio + ( + weapon_effect["21041"]["Param"]["AllDamageAddedRatio"][ + self.weapon_rank - 1 + ] + * 3 ) Status_Probability_Base = attribute_bonus.get("StatusProbabilityBase", 0) if Status_Probability_Base >= 0.8: @@ -2616,6 +2635,7 @@ class ItsShowtime(BaseWeapon): ) return attribute_bonus + # 铭记于心的约定 class IndeliblePromise(BaseWeapon): weapon_base_attributes: Dict @@ -2624,7 +2644,7 @@ class IndeliblePromise(BaseWeapon): super().__init__(weapon) async def check(self): - # 当装备者释放终结技时,暴击率提高15%,持续2回合。 + # 当装备者释放终结技时, 暴击率提高15%, 持续2回合。 return True async def weapon_ability( @@ -2645,6 +2665,7 @@ class IndeliblePromise(BaseWeapon): ) return attribute_bonus + # 两个人的演唱会 class ConcertforTwo(BaseWeapon): weapon_base_attributes: Dict @@ -2653,7 +2674,7 @@ class ConcertforTwo(BaseWeapon): super().__init__(weapon) async def check(self): - # 场上每有一名持有护盾的角色,装备者造成的伤害提高4%。 + # 场上每有一名持有护盾的角色, 装备者造成的伤害提高4%。 return True async def weapon_ability( @@ -2664,17 +2685,15 @@ class ConcertforTwo(BaseWeapon): ): if await self.check(): all_damage_added_ratio = attribute_bonus.get("AllDamageAddedRatio", 0) - attribute_bonus["AllDamageAddedRatio"] = ( - all_damage_added_ratio - + ( - weapon_effect["21043"]["Param"]["AllDamageAddedRatio"][ - self.weapon_rank - 1 - ] - * 4 - ) + attribute_bonus["AllDamageAddedRatio"] = all_damage_added_ratio + ( + weapon_effect["21043"]["Param"]["AllDamageAddedRatio"][ + self.weapon_rank - 1 + ] + * 4 ) return attribute_bonus + # 行于流逝的岸 class AlongthePassingShore(BaseWeapon): weapon_base_attributes: Dict @@ -2683,7 +2702,7 @@ class AlongthePassingShore(BaseWeapon): super().__init__(weapon) async def check(self): - # 装备者对陷入【泡影】状态的目标造成的伤害提高24%,终结技造成的伤害额外提高24% + # 装备者对陷入【泡影】状态的目标造成的伤害提高24%, 终结技造成的伤害额外提高24% return True async def weapon_ability( @@ -2705,14 +2724,11 @@ class AlongthePassingShore(BaseWeapon): Ultra_Dmg_Add = attribute_bonus.get("UltraDmgAdd", 0) attribute_bonus["UltraDmgAdd"] = ( Ultra_Dmg_Add - + ( - weapon_effect["23024"]["Param"]["UltraDmgAdd"][ - self.weapon_rank - 1 - ] - ) + + (weapon_effect["23024"]["Param"]["UltraDmgAdd"][self.weapon_rank - 1]) ) return attribute_bonus + # 命运从未公平 class InherentlyUnjustDestiny(BaseWeapon): weapon_base_attributes: Dict @@ -2721,7 +2737,7 @@ class InherentlyUnjustDestiny(BaseWeapon): super().__init__(weapon) async def check(self): - # 当装备者为我方目标提供护盾时,使装备者的暴击伤害提高40%,持续2回合。当装备者发动追加攻击击中敌方目标时,有100%的基础概率使受到攻击的敌方目标受到的伤害提高10%,持续2回合。 + # 当装备者为我方目标提供护盾时, 使装备者的暴击伤害提高40%, 持续2回合。当装备者发动追加攻击击中敌方目标时, 有100%的基础概率使受到攻击的敌方目标受到的伤害提高10%, 持续2回合。 return True async def weapon_ability( @@ -2743,14 +2759,11 @@ class InherentlyUnjustDestiny(BaseWeapon): Dmg_Ratio = attribute_bonus.get("DmgRatio", 0) attribute_bonus["DmgRatio"] = ( Dmg_Ratio - + ( - weapon_effect["23023"]["Param"]["DmgRatio"][ - self.weapon_rank - 1 - ] - ) + + (weapon_effect["23023"]["Param"]["DmgRatio"][self.weapon_rank - 1]) ) return attribute_bonus + # 夜色流光溢彩 class FlowingNightglow(BaseWeapon): weapon_base_attributes: Dict @@ -2759,7 +2772,7 @@ class FlowingNightglow(BaseWeapon): super().__init__(weapon) async def check(self): - # 【华彩】使装备者的攻击力提高48%,使我方全体造成的伤害提高24%,持续1回合。 + # 【华彩】使装备者的攻击力提高48%, 使我方全体造成的伤害提高24%, 持续1回合。 return True async def weapon_ability( @@ -2789,6 +2802,7 @@ class FlowingNightglow(BaseWeapon): ) return attribute_bonus + # 驶向第二次生命 class SailingTowardsASecondLife(BaseWeapon): weapon_base_attributes: Dict @@ -2797,7 +2811,7 @@ class SailingTowardsASecondLife(BaseWeapon): super().__init__(weapon) async def check(self): - # 造成的击破伤害无视目标20%的防御力。当装备者击中敌方目标时,使目标受到的伤害提高1%,该状态最多叠加6层 + # 造成的击破伤害无视目标20%的防御力。当装备者击中敌方目标时, 使目标受到的伤害提高1%, 该状态最多叠加6层 return True async def weapon_ability( @@ -2817,17 +2831,12 @@ class SailingTowardsASecondLife(BaseWeapon): ) ) Dmg_Ratio = attribute_bonus.get("DmgRatio", 0) - attribute_bonus["DmgRatio"] = ( - Dmg_Ratio - + ( - weapon_effect["23027"]["Param"]["DmgRatio"][ - self.weapon_rank - 1 - ] - * 6 - ) + attribute_bonus["DmgRatio"] = Dmg_Ratio + ( + weapon_effect["23027"]["Param"]["DmgRatio"][self.weapon_rank - 1] * 6 ) return attribute_bonus + # 无边曼舞 class BoundlessChoreo(BaseWeapon): weapon_base_attributes: Dict @@ -2857,6 +2866,7 @@ class BoundlessChoreo(BaseWeapon): ) return attribute_bonus + # 为了明日的旅途 class ForTomorrowsJourney(BaseWeapon): weapon_base_attributes: Dict @@ -2865,7 +2875,7 @@ class ForTomorrowsJourney(BaseWeapon): super().__init__(weapon) async def check(self): - # 装备者施放终结技后,造成的伤害提高18% + # 装备者施放终结技后, 造成的伤害提高18% return True async def weapon_ability( @@ -2886,6 +2896,7 @@ class ForTomorrowsJourney(BaseWeapon): ) return attribute_bonus + class Weapon: @classmethod def create(cls, weapon: DamageInstanceWeapon): diff --git a/starrail_damage_cal/exception.py b/starrail_damage_cal/exception.py index bc95917..f298a43 100644 --- a/starrail_damage_cal/exception.py +++ b/starrail_damage_cal/exception.py @@ -8,6 +8,7 @@ class UidNotfoundError(Exception): def __str__(self): return self.uid + class InvalidUidError(Exception): def __init__(self, uid: str): self.uid = uid diff --git a/starrail_damage_cal/mihomo/__init__.py b/starrail_damage_cal/mihomo/__init__.py index 3a47b6b..3c8b93b 100644 --- a/starrail_damage_cal/mihomo/__init__.py +++ b/starrail_damage_cal/mihomo/__init__.py @@ -1,4 +1,5 @@ """Mihomo.me api 包装""" + from starrail_damage_cal.mihomo.models import MihomoData from starrail_damage_cal.mihomo.requests import get_char_card_info as requests diff --git a/starrail_damage_cal/mono/Character.py b/starrail_damage_cal/mono/Character.py index 5018c8d..2c36838 100644 --- a/starrail_damage_cal/mono/Character.py +++ b/starrail_damage_cal/mono/Character.py @@ -10,7 +10,7 @@ from starrail_damage_cal.map.SR_MAP_PATH import ( class Character: def __init__(self, card_prop: Dict): self.char_level: int = int(card_prop["avatarLevel"]) - self.char_id: str = card_prop["avatarId"] + self.char_id: int = card_prop["avatarId"] self.char_name: str = card_prop["avatarName"] self.char_rank = card_prop["rank"] if card_prop.get("rank") else 0 self.char_rarity = card_prop["avatarRarity"] @@ -28,7 +28,7 @@ class Character: async def get_equipment_info(self): if self.equipment == {}: - return + return None base_attr = self.base_attributes equip = self.equipment ability_property = EquipmentID2AbilityProperty[str(equip["equipmentID"])] @@ -43,9 +43,10 @@ class Character: self.base_attributes = base_attr for equip_ability in equip_ability_property: - property_type = equip_ability["PropertyType"] - value = equip_ability["Value"]["Value"] + property_type: str = equip_ability["PropertyType"] + value: float = equip_ability["Value"]["Value"] self.add_attr[property_type] = value + self.add_attr.get(property_type, 0) + return self.add_attr async def get_char_attribute_bonus(self): attribute_bonus = self.attribute_bonus diff --git a/starrail_damage_cal/to_data.py b/starrail_damage_cal/to_data.py index 0d1848e..fc3aab4 100644 --- a/starrail_damage_cal/to_data.py +++ b/starrail_damage_cal/to_data.py @@ -65,10 +65,12 @@ async def api_to_dict( char_id_list: List[str] = [] char_data_list: Dict[str, Dict] = {} nickName = PlayerDetailInfo.nickname - avatarList = (PlayerDetailInfo.avatarDetailList if PlayerDetailInfo.avatarDetailList else []) + (PlayerDetailInfo.assistAvatarList if PlayerDetailInfo.assistAvatarList else []) + avatarList = ( + PlayerDetailInfo.avatarDetailList if PlayerDetailInfo.avatarDetailList else [] + ) + (PlayerDetailInfo.assistAvatarList if PlayerDetailInfo.assistAvatarList else []) for char in avatarList: if str(char.avatarId) in char_id_list: - continue + continue char_data, avatarName = await get_data( char, nickName, @@ -211,9 +213,9 @@ async def get_data( # 查找skill_id在不在avatarSkill中 for index, skill_item in enumerate(char_data["avatarSkill"]): if str(skill_id) == str(skill_item["skillId"]): - char_data["avatarSkill"][index][ - "skillLevel" - ] += skill_up_num + char_data["avatarSkill"][index]["skillLevel"] += ( + skill_up_num + ) break # 处理基础属性