From a371dbc15489ab7d24f66db49fe6250477787cc5 Mon Sep 17 00:00:00 2001 From: Cowan Macady Date: Thu, 22 Jan 2026 11:42:49 +0100 Subject: [PATCH] fix: fix security issues implement [ENG-8022] --- Pipfile | 2 +- Pipfile.lock | 1320 +++++++++++++++++++------------------ codecov.yaml | 4 +- tests/test_app_space.py | 322 --------- tests/test_config_node.py | 1053 ----------------------------- tests/test_ingest.py | 262 -------- tests/test_tda.py | 208 ------ 7 files changed, 693 insertions(+), 2478 deletions(-) delete mode 100644 tests/test_app_space.py delete mode 100644 tests/test_config_node.py delete mode 100644 tests/test_ingest.py delete mode 100644 tests/test_tda.py diff --git a/Pipfile b/Pipfile index 3b34e1e..2809b3c 100644 --- a/Pipfile +++ b/Pipfile @@ -25,4 +25,4 @@ urllib3 = "*" numpy = "*" [requires] -python_version = "3.11" +python_version = "3.14" diff --git a/Pipfile.lock b/Pipfile.lock index 6419153..878cb52 100644 --- a/Pipfile.lock +++ b/Pipfile.lock @@ -1,11 +1,11 @@ { "_meta": { "hash": { - "sha256": "f1260c181b277af8203c034e37e6c7b597f4b90669a83b697a0bf2f6d9b56045" + "sha256": "d2a2f57d12d56b822c1ffbad8ea0bebecacb43f7efb5278fcbe5112fe6765373" }, "pipfile-spec": 6, "requires": { - "python_version": "3.11" + "python_version": "3.14" }, "sources": [ { @@ -18,28 +18,20 @@ "default": { "authlib": { "hashes": [ - "sha256:104b0442a43061dc8bc23b133d1d06a2b0a9c2e3e33f34c4338929e816287649", - "sha256:39313d2a2caac3ecf6d8f95fbebdfd30ae6ea6ae6a6db794d976405fdd9aa796" + "sha256:45770e8e056d0f283451d9996fbb59b70d45722b45d854d58f32878d0a40c38e", + "sha256:7d9e9bc535c13974313a87f53e8430eb6ea3d1cf6ae4f6efcd793f2e949143fd" ], "index": "pypi", "markers": "python_version >= '3.9'", - "version": "==1.6.4" - }, - "cachetools": { - "hashes": [ - "sha256:1a661caa9175d26759571b2e19580f9d6393969e5dfca11fdb1f947a23e640d4", - "sha256:d26a22bcc62eb95c3beabd9f1ee5e820d3d2704fe2967cbe350e20c8ffcd3f0a" - ], - "markers": "python_version >= '3.7'", - "version": "==5.5.2" + "version": "==1.6.6" }, "certifi": { "hashes": [ - "sha256:e564105f78ded564e3ae7c923924435e1daa7463faeab5bb932bc53ffae63407", - "sha256:f6c12493cfb1b06ba2ff328595af9350c65d6644968e5d3a2ffd78699af217a5" + "sha256:9943707519e4add1115f44c2bc244f782c0249876bf51b6599fee1ffbedd685c", + "sha256:ac726dd470482006e014ad384921ed6438c457018f4b3d204aea4281258b2120" ], "markers": "python_version >= '3.7'", - "version": "==2025.8.3" + "version": "==2026.1.4" }, "cffi": { "hashes": [ @@ -133,509 +125,550 @@ }, "charset-normalizer": { "hashes": [ - "sha256:00237675befef519d9af72169d8604a067d92755e84fe76492fef5441db05b91", - "sha256:02425242e96bcf29a49711b0ca9f37e451da7c70562bc10e8ed992a5a7a25cc0", - "sha256:027b776c26d38b7f15b26a5da1044f376455fb3766df8fc38563b4efbc515154", - "sha256:07a0eae9e2787b586e129fdcbe1af6997f8d0e5abaa0bc98c0e20e124d67e601", - "sha256:0cacf8f7297b0c4fcb74227692ca46b4a5852f8f4f24b3c766dd94a1075c4884", - "sha256:0e78314bdc32fa80696f72fa16dc61168fda4d6a0c014e0380f9d02f0e5d8a07", - "sha256:0f2be7e0cf7754b9a30eb01f4295cc3d4358a479843b31f328afd210e2c7598c", - "sha256:13faeacfe61784e2559e690fc53fa4c5ae97c6fcedb8eb6fb8d0a15b475d2c64", - "sha256:14c2a87c65b351109f6abfc424cab3927b3bdece6f706e4d12faaf3d52ee5efe", - "sha256:1606f4a55c0fd363d754049cdf400175ee96c992b1f8018b993941f221221c5f", - "sha256:16a8770207946ac75703458e2c743631c79c59c5890c80011d536248f8eaa432", - "sha256:18343b2d246dc6761a249ba1fb13f9ee9a2bcd95decc767319506056ea4ad4dc", - "sha256:18b97b8404387b96cdbd30ad660f6407799126d26a39ca65729162fd810a99aa", - "sha256:1bb60174149316da1c35fa5233681f7c0f9f514509b8e399ab70fea5f17e45c9", - "sha256:1e8ac75d72fa3775e0b7cb7e4629cec13b7514d928d15ef8ea06bca03ef01cae", - "sha256:1ef99f0456d3d46a50945c98de1774da86f8e992ab5c77865ea8b8195341fc19", - "sha256:2001a39612b241dae17b4687898843f254f8748b796a2e16f1051a17078d991d", - "sha256:23b6b24d74478dc833444cbd927c338349d6ae852ba53a0d02a2de1fce45b96e", - "sha256:252098c8c7a873e17dd696ed98bbe91dbacd571da4b87df3736768efa7a792e4", - "sha256:257f26fed7d7ff59921b78244f3cd93ed2af1800ff048c33f624c87475819dd7", - "sha256:2c322db9c8c89009a990ef07c3bcc9f011a3269bc06782f916cd3d9eed7c9312", - "sha256:30a96e1e1f865f78b030d65241c1ee850cdf422d869e9028e2fc1d5e4db73b92", - "sha256:30d006f98569de3459c2fc1f2acde170b7b2bd265dc1943e87e1a4efe1b67c31", - "sha256:31a9a6f775f9bcd865d88ee350f0ffb0e25936a7f930ca98995c05abf1faf21c", - "sha256:320e8e66157cc4e247d9ddca8e21f427efc7a04bbd0ac8a9faf56583fa543f9f", - "sha256:34a7f768e3f985abdb42841e20e17b330ad3aaf4bb7e7aeeb73db2e70f077b99", - "sha256:3653fad4fe3ed447a596ae8638b437f827234f01a8cd801842e43f3d0a6b281b", - "sha256:3cd35b7e8aedeb9e34c41385fda4f73ba609e561faedfae0a9e75e44ac558a15", - "sha256:3cfb2aad70f2c6debfbcb717f23b7eb55febc0bb23dcffc0f076009da10c6392", - "sha256:416175faf02e4b0810f1f38bcb54682878a4af94059a1cd63b8747244420801f", - "sha256:41d1fc408ff5fdfb910200ec0e74abc40387bccb3252f3f27c0676731df2b2c8", - "sha256:42e5088973e56e31e4fa58eb6bd709e42fc03799c11c42929592889a2e54c491", - "sha256:4ca4c094de7771a98d7fbd67d9e5dbf1eb73efa4f744a730437d8a3a5cf994f0", - "sha256:511729f456829ef86ac41ca78c63a5cb55240ed23b4b737faca0eb1abb1c41bc", - "sha256:53cd68b185d98dde4ad8990e56a58dea83a4162161b1ea9272e5c9182ce415e0", - "sha256:585f3b2a80fbd26b048a0be90c5aae8f06605d3c92615911c3a2b03a8a3b796f", - "sha256:5b413b0b1bfd94dbf4023ad6945889f374cd24e3f62de58d6bb102c4d9ae534a", - "sha256:5d8d01eac18c423815ed4f4a2ec3b439d654e55ee4ad610e153cf02faf67ea40", - "sha256:6aab0f181c486f973bc7262a97f5aca3ee7e1437011ef0c2ec04b5a11d16c927", - "sha256:6cf8fd4c04756b6b60146d98cd8a77d0cdae0e1ca20329da2ac85eed779b6849", - "sha256:6fb70de56f1859a3f71261cbe41005f56a7842cc348d3aeb26237560bfa5e0ce", - "sha256:6fce4b8500244f6fcb71465d4a4930d132ba9ab8e71a7859e6a5d59851068d14", - "sha256:70bfc5f2c318afece2f5838ea5e4c3febada0be750fcf4775641052bbba14d05", - "sha256:73dc19b562516fc9bcf6e5d6e596df0b4eb98d87e4f79f3ae71840e6ed21361c", - "sha256:74d77e25adda8581ffc1c720f1c81ca082921329452eba58b16233ab1842141c", - "sha256:78deba4d8f9590fe4dae384aeff04082510a709957e968753ff3c48399f6f92a", - "sha256:86df271bf921c2ee3818f0522e9a5b8092ca2ad8b065ece5d7d9d0e9f4849bcc", - "sha256:88ab34806dea0671532d3f82d82b85e8fc23d7b2dd12fa837978dad9bb392a34", - "sha256:8999f965f922ae054125286faf9f11bc6932184b93011d138925a1773830bbe9", - "sha256:8dcfc373f888e4fb39a7bc57e93e3b845e7f462dacc008d9749568b1c4ece096", - "sha256:939578d9d8fd4299220161fdd76e86c6a251987476f5243e8864a7844476ba14", - "sha256:96b2b3d1a83ad55310de8c7b4a2d04d9277d5591f40761274856635acc5fcb30", - "sha256:a2d08ac246bb48479170408d6c19f6385fa743e7157d716e144cad849b2dd94b", - "sha256:b256ee2e749283ef3ddcff51a675ff43798d92d746d1a6e4631bf8c707d22d0b", - "sha256:b5e3b2d152e74e100a9e9573837aba24aab611d39428ded46f4e4022ea7d1942", - "sha256:b89bc04de1d83006373429975f8ef9e7932534b8cc9ca582e4db7d20d91816db", - "sha256:bd28b817ea8c70215401f657edef3a8aa83c29d447fb0b622c35403780ba11d5", - "sha256:c60e092517a73c632ec38e290eba714e9627abe9d301c8c8a12ec32c314a2a4b", - "sha256:c6dbd0ccdda3a2ba7c2ecd9d77b37f3b5831687d8dc1b6ca5f56a4880cc7b7ce", - "sha256:c6e490913a46fa054e03699c70019ab869e990270597018cef1d8562132c2669", - "sha256:c6f162aabe9a91a309510d74eeb6507fab5fff92337a15acbe77753d88d9dcf0", - "sha256:c6fd51128a41297f5409deab284fecbe5305ebd7e5a1f959bee1c054622b7018", - "sha256:cc34f233c9e71701040d772aa7490318673aa7164a0efe3172b2981218c26d93", - "sha256:cc9370a2da1ac13f0153780040f465839e6cccb4a1e44810124b4e22483c93fe", - "sha256:ccf600859c183d70eb47e05a44cd80a4ce77394d1ac0f79dbd2dd90a69a3a049", - "sha256:ce571ab16d890d23b5c278547ba694193a45011ff86a9162a71307ed9f86759a", - "sha256:cf1ebb7d78e1ad8ec2a8c4732c7be2e736f6e5123a4146c5b89c9d1f585f8cef", - "sha256:d0e909868420b7049dafd3a31d45125b31143eec59235311fc4c57ea26a4acd2", - "sha256:d22dbedd33326a4a5190dd4fe9e9e693ef12160c77382d9e87919bce54f3d4ca", - "sha256:d716a916938e03231e86e43782ca7878fb602a125a91e7acb8b5112e2e96ac16", - "sha256:d79c198e27580c8e958906f803e63cddb77653731be08851c7df0b1a14a8fc0f", - "sha256:d95bfb53c211b57198bb91c46dd5a2d8018b3af446583aab40074bf7988401cb", - "sha256:e28e334d3ff134e88989d90ba04b47d84382a828c061d0d1027b1b12a62b39b1", - "sha256:ec557499516fc90fd374bf2e32349a2887a876fbf162c160e3c01b6849eaf557", - "sha256:fb6fecfd65564f208cbf0fba07f107fb661bcd1a7c389edbced3f7a493f70e37", - "sha256:fb731e5deb0c7ef82d698b0f4c5bb724633ee2a489401594c5c88b02e6cb15f7", - "sha256:fb7f67a1bfa6e40b438170ebdc8158b78dc465a5a67b6dde178a46987b244a72", - "sha256:fd10de089bcdcd1be95a2f73dbe6254798ec1bda9f450d5828c96f93e2536b9c", - "sha256:fdabf8315679312cfa71302f9bd509ded4f2f263fb5b765cf1433b39106c3cc9" + "sha256:027f6de494925c0ab2a55eab46ae5129951638a49a34d87f4c3eda90f696b4ad", + "sha256:077fbb858e903c73f6c9db43374fd213b0b6a778106bc7032446a8e8b5b38b93", + "sha256:0a98e6759f854bd25a58a73fa88833fba3b7c491169f86ce1180c948ab3fd394", + "sha256:0d3d8f15c07f86e9ff82319b3d9ef6f4bf907608f53fe9d92b28ea9ae3d1fd89", + "sha256:0f04b14ffe5fdc8c4933862d8306109a2c51e0704acfa35d51598eb45a1e89fc", + "sha256:11d694519d7f29d6cd09f6ac70028dba10f92f6cdd059096db198c283794ac86", + "sha256:194f08cbb32dc406d6e1aea671a68be0823673db2832b38405deba2fb0d88f63", + "sha256:1bee1e43c28aa63cb16e5c14e582580546b08e535299b8b6158a7c9c768a1f3d", + "sha256:21d142cc6c0ec30d2efee5068ca36c128a30b0f2c53c1c07bd78cb6bc1d3be5f", + "sha256:2437418e20515acec67d86e12bf70056a33abdacb5cb1655042f6538d6b085a8", + "sha256:244bfb999c71b35de57821b8ea746b24e863398194a4014e4c76adc2bbdfeff0", + "sha256:2677acec1a2f8ef614c6888b5b4ae4060cc184174a938ed4e8ef690e15d3e505", + "sha256:277e970e750505ed74c832b4bf75dac7476262ee2a013f5574dd49075879e161", + "sha256:2aaba3b0819274cc41757a1da876f810a3e4d7b6eb25699253a4effef9e8e4af", + "sha256:2b7d8f6c26245217bd2ad053761201e9f9680f8ce52f0fcd8d0755aeae5b2152", + "sha256:2c9d3c380143a1fedbff95a312aa798578371eb29da42106a29019368a475318", + "sha256:3162d5d8ce1bb98dd51af660f2121c55d0fa541b46dff7bb9b9f86ea1d87de72", + "sha256:31fd66405eaf47bb62e8cd575dc621c56c668f27d46a61d975a249930dd5e2a4", + "sha256:362d61fd13843997c1c446760ef36f240cf81d3ebf74ac62652aebaf7838561e", + "sha256:376bec83a63b8021bb5c8ea75e21c4ccb86e7e45ca4eb81146091b56599b80c3", + "sha256:44c2a8734b333e0578090c4cd6b16f275e07aa6614ca8715e6c038e865e70576", + "sha256:47cc91b2f4dd2833fddaedd2893006b0106129d4b94fdb6af1f4ce5a9965577c", + "sha256:4902828217069c3c5c71094537a8e623f5d097858ac6ca8252f7b4d10b7560f1", + "sha256:4bd5d4137d500351a30687c2d3971758aac9a19208fc110ccb9d7188fbe709e8", + "sha256:4fe7859a4e3e8457458e2ff592f15ccb02f3da787fcd31e0183879c3ad4692a1", + "sha256:542d2cee80be6f80247095cc36c418f7bddd14f4a6de45af91dfad36d817bba2", + "sha256:554af85e960429cf30784dd47447d5125aaa3b99a6f0683589dbd27e2f45da44", + "sha256:5833d2c39d8896e4e19b689ffc198f08ea58116bee26dea51e362ecc7cd3ed26", + "sha256:5947809c8a2417be3267efc979c47d76a079758166f7d43ef5ae8e9f92751f88", + "sha256:5ae497466c7901d54b639cf42d5b8c1b6a4fead55215500d2f486d34db48d016", + "sha256:5bd2293095d766545ec1a8f612559f6b40abc0eb18bb2f5d1171872d34036ede", + "sha256:5bfbb1b9acf3334612667b61bd3002196fe2a1eb4dd74d247e0f2a4d50ec9bbf", + "sha256:5cb4d72eea50c8868f5288b7f7f33ed276118325c1dfd3957089f6b519e1382a", + "sha256:5dbe56a36425d26d6cfb40ce79c314a2e4dd6211d51d6d2191c00bed34f354cc", + "sha256:5f819d5fe9234f9f82d75bdfa9aef3a3d72c4d24a6e57aeaebba32a704553aa0", + "sha256:64b55f9dce520635f018f907ff1b0df1fdc31f2795a922fb49dd14fbcdf48c84", + "sha256:6515f3182dbe4ea06ced2d9e8666d97b46ef4c75e326b79bb624110f122551db", + "sha256:65e2befcd84bc6f37095f5961e68a6f077bf44946771354a28ad434c2cce0ae1", + "sha256:6aee717dcfead04c6eb1ce3bd29ac1e22663cdea57f943c87d1eab9a025438d7", + "sha256:6b39f987ae8ccdf0d2642338faf2abb1862340facc796048b604ef14919e55ed", + "sha256:6e1fcf0720908f200cd21aa4e6750a48ff6ce4afe7ff5a79a90d5ed8a08296f8", + "sha256:74018750915ee7ad843a774364e13a3db91682f26142baddf775342c3f5b1133", + "sha256:74664978bb272435107de04e36db5a9735e78232b85b77d45cfb38f758efd33e", + "sha256:74bb723680f9f7a6234dcf67aea57e708ec1fbdf5699fb91dfd6f511b0a320ef", + "sha256:752944c7ffbfdd10c074dc58ec2d5a8a4cd9493b314d367c14d24c17684ddd14", + "sha256:778d2e08eda00f4256d7f672ca9fef386071c9202f5e4607920b86d7803387f2", + "sha256:780236ac706e66881f3b7f2f32dfe90507a09e67d1d454c762cf642e6e1586e0", + "sha256:798d75d81754988d2565bff1b97ba5a44411867c0cf32b77a7e8f8d84796b10d", + "sha256:799a7a5e4fb2d5898c60b640fd4981d6a25f1c11790935a44ce38c54e985f828", + "sha256:7a32c560861a02ff789ad905a2fe94e3f840803362c84fecf1851cb4cf3dc37f", + "sha256:7c308f7e26e4363d79df40ca5b2be1c6ba9f02bdbccfed5abddb7859a6ce72cf", + "sha256:7fa17817dc5625de8a027cb8b26d9fefa3ea28c8253929b8d6649e705d2835b6", + "sha256:81d5eb2a312700f4ecaa977a8235b634ce853200e828fbadf3a9c50bab278328", + "sha256:82004af6c302b5d3ab2cfc4cc5f29db16123b1a8417f2e25f9066f91d4411090", + "sha256:837c2ce8c5a65a2035be9b3569c684358dfbf109fd3b6969630a87535495ceaa", + "sha256:840c25fb618a231545cbab0564a799f101b63b9901f2569faecd6b222ac72381", + "sha256:8a6562c3700cce886c5be75ade4a5db4214fda19fede41d9792d100288d8f94c", + "sha256:8af65f14dc14a79b924524b1e7fffe304517b2bff5a58bf64f30b98bbc5079eb", + "sha256:8ef3c867360f88ac904fd3f5e1f902f13307af9052646963ee08ff4f131adafc", + "sha256:94537985111c35f28720e43603b8e7b43a6ecfb2ce1d3058bbe955b73404e21a", + "sha256:99ae2cffebb06e6c22bdc25801d7b30f503cc87dbd283479e7b606f70aff57ec", + "sha256:9a26f18905b8dd5d685d6d07b0cdf98a79f3c7a918906af7cc143ea2e164c8bc", + "sha256:9b35f4c90079ff2e2edc5b26c0c77925e5d2d255c42c74fdb70fb49b172726ac", + "sha256:9cd98cdc06614a2f768d2b7286d66805f94c48cde050acdbbb7db2600ab3197e", + "sha256:9d1bb833febdff5c8927f922386db610b49db6e0d4f4ee29601d71e7c2694313", + "sha256:9f7fcd74d410a36883701fafa2482a6af2ff5ba96b9a620e9e0721e28ead5569", + "sha256:a59cb51917aa591b1c4e6a43c132f0cdc3c76dbad6155df4e28ee626cc77a0a3", + "sha256:a61900df84c667873b292c3de315a786dd8dac506704dea57bc957bd31e22c7d", + "sha256:a79cfe37875f822425b89a82333404539ae63dbdddf97f84dcbc3d339aae9525", + "sha256:a8a8b89589086a25749f471e6a900d3f662d1d3b6e2e59dcecf787b1cc3a1894", + "sha256:a8bf8d0f749c5757af2142fe7903a9df1d2e8aa3841559b2bad34b08d0e2bcf3", + "sha256:a9768c477b9d7bd54bc0c86dbaebdec6f03306675526c9927c0e8a04e8f94af9", + "sha256:ac1c4a689edcc530fc9d9aa11f5774b9e2f33f9a0c6a57864e90908f5208d30a", + "sha256:af2d8c67d8e573d6de5bc30cdb27e9b95e49115cd9baad5ddbd1a6207aaa82a9", + "sha256:b435cba5f4f750aa6c0a0d92c541fb79f69a387c91e61f1795227e4ed9cece14", + "sha256:b5b290ccc2a263e8d185130284f8501e3e36c5e02750fc6b6bdeb2e9e96f1e25", + "sha256:b5d84d37db046c5ca74ee7bb47dd6cbc13f80665fdde3e8040bdd3fb015ecb50", + "sha256:b7cf1017d601aa35e6bb650b6ad28652c9cd78ee6caff19f3c28d03e1c80acbf", + "sha256:bc7637e2f80d8530ee4a78e878bce464f70087ce73cf7c1caf142416923b98f1", + "sha256:c0463276121fdee9c49b98908b3a89c39be45d86d1dbaa22957e38f6321d4ce3", + "sha256:c4ef880e27901b6cc782f1b95f82da9313c0eb95c3af699103088fa0ac3ce9ac", + "sha256:c8ae8a0f02f57a6e61203a31428fa1d677cbe50c93622b4149d5c0f319c1d19e", + "sha256:ca5862d5b3928c4940729dacc329aa9102900382fea192fc5e52eb69d6093815", + "sha256:cb01158d8b88ee68f15949894ccc6712278243d95f344770fa7593fa2d94410c", + "sha256:cb6254dc36b47a990e59e1068afacdcd02958bdcce30bb50cc1700a8b9d624a6", + "sha256:cc00f04ed596e9dc0da42ed17ac5e596c6ccba999ba6bd92b0e0aef2f170f2d6", + "sha256:cd09d08005f958f370f539f186d10aec3377d55b9eeb0d796025d4886119d76e", + "sha256:cd4b7ca9984e5e7985c12bc60a6f173f3c958eae74f3ef6624bb6b26e2abbae4", + "sha256:ce8a0633f41a967713a59c4139d29110c07e826d131a316b50ce11b1d79b4f84", + "sha256:cead0978fc57397645f12578bfd2d5ea9138ea0fac82b2f63f7f7c6877986a69", + "sha256:d055ec1e26e441f6187acf818b73564e6e6282709e9bcb5b63f5b23068356a15", + "sha256:d1f13550535ad8cff21b8d757a3257963e951d96e20ec82ab44bc64aeb62a191", + "sha256:d9c7f57c3d666a53421049053eaacdd14bbd0a528e2186fcb2e672effd053bb0", + "sha256:d9e45d7faa48ee908174d8fe84854479ef838fc6a705c9315372eacbc2f02897", + "sha256:da3326d9e65ef63a817ecbcc0df6e94463713b754fe293eaa03da99befb9a5bd", + "sha256:de00632ca48df9daf77a2c65a484531649261ec9f25489917f09e455cb09ddb2", + "sha256:e1f185f86a6f3403aa2420e815904c67b2f9ebc443f045edd0de921108345794", + "sha256:e824f1492727fa856dd6eda4f7cee25f8518a12f3c4a56a74e8095695089cf6d", + "sha256:e912091979546adf63357d7e2ccff9b44f026c075aeaf25a52d0e95ad2281074", + "sha256:eaabd426fe94daf8fd157c32e571c85cb12e66692f15516a83a03264b08d06c3", + "sha256:ebf3e58c7ec8a8bed6d66a75d7fb37b55e5015b03ceae72a8e7c74495551e224", + "sha256:ecaae4149d99b1c9e7b88bb03e3221956f68fd6d50be2ef061b2381b61d20838", + "sha256:eecbc200c7fd5ddb9a7f16c7decb07b566c29fa2161a16cf67b8d068bd21690a", + "sha256:f155a433c2ec037d4e8df17d18922c3a0d9b3232a396690f17175d2946f0218d", + "sha256:f1e34719c6ed0b92f418c7c780480b26b5d9c50349e9a9af7d76bf757530350d", + "sha256:f34be2938726fc13801220747472850852fe6b1ea75869a048d6f896838c896f", + "sha256:f820802628d2694cb7e56db99213f930856014862f3fd943d290ea8438d07ca8", + "sha256:f8bf04158c6b607d747e93949aa60618b61312fe647a6369f88ce2ff16043490", + "sha256:f8e160feb2aed042cd657a72acc0b481212ed28b1b9a95c0cee1621b524e1966", + "sha256:f9d332f8c2a2fcbffe1378594431458ddbef721c1769d78e2cbc06280d8155f9", + "sha256:fa09f53c465e532f4d3db095e0c55b615f010ad81803d383195b6b5ca6cbf5f3", + "sha256:faa3a41b2b66b6e50f84ae4a68c64fcd0c44355741c6374813a800cd6695db9e", + "sha256:fd44c878ea55ba351104cb93cc85e74916eb8fa440ca7903e57575e97394f608" ], "markers": "python_version >= '3.7'", - "version": "==3.4.3" + "version": "==3.4.4" }, "coverage": { "extras": [ "toml" ], "hashes": [ - "sha256:03ffc58aacdf65d2a82bbeb1ffe4d01ead4017a21bfd0454983b88ca73af94b9", - "sha256:097c1591f5af4496226d5783d036bf6fd6cd0cbc132e071b33861de756efb880", - "sha256:0b944ee8459f515f28b851728ad224fa2d068f1513ef6b7ff1efafeb2185f999", - "sha256:0ebbaddb2c19b71912c6f2518e791aa8b9f054985a0769bdb3a53ebbc765c6a1", - "sha256:10b24412692df990dbc34f8fb1b6b13d236ace9dfdd68df5b28c2e39cafbba13", - "sha256:10b6ba00ab1132a0ce4428ff68cf50a25efd6840a42cdf4239c9b99aad83be8b", - "sha256:121da30abb574f6ce6ae09840dae322bef734480ceafe410117627aa54f76d82", - "sha256:18afb24843cbc175687225cab1138c95d262337f5473512010e46831aa0c2973", - "sha256:1b4fd784344d4e52647fd7857b2af5b3fbe6c239b0b5fa63e94eb67320770e0f", - "sha256:1ca6db7c8807fb9e755d0379ccc39017ce0a84dcd26d14b5a03b78563776f681", - "sha256:1ef2319dd15a0b009667301a3f84452a4dc6fddfd06b0c5c53ea472d3989fbf0", - "sha256:2120043f147bebb41c85b97ac45dd173595ff14f2a584f2963891cbcc3091541", - "sha256:212f8f2e0612778f09c55dd4872cb1f64a1f2b074393d139278ce902064d5b32", - "sha256:240af60539987ced2c399809bd34f7c78e8abe0736af91c3d7d0e795df633d17", - "sha256:2a78cd46550081a7909b3329e2266204d584866e8d97b898cd7fb5ac8d888b1a", - "sha256:2af88deffcc8a4d5974cf2d502251bc3b2db8461f0b66d80a449c33757aa9f40", - "sha256:2c8b9a0636f94c43cd3576811e05b89aa9bc2d0a85137affc544ae5cb0e4bfbd", - "sha256:2fafd773231dd0378fdba66d339f84904a8e57a262f583530f4f156ab83863e6", - "sha256:314f2c326ded3f4b09be11bc282eb2fc861184bc95748ae67b360ac962770be7", - "sha256:33a5e6396ab684cb43dc7befa386258acb2d7fae7f67330ebb85ba4ea27938eb", - "sha256:3445258bcded7d4aa630ab8296dea4d3f15a255588dd535f980c193ab6b95f3f", - "sha256:35f5e3f9e455bb17831876048355dca0f758b6df22f49258cb5a91da23ef437d", - "sha256:39508ffda4f343c35f3236fe8d1a6634a51f4581226a1262769d7f970e73bffe", - "sha256:399a0b6347bcd3822be369392932884b8216d0944049ae22925631a9b3d4ba4c", - "sha256:3a622ac801b17198020f09af3eaf45666b344a0d69fc2a6ffe2ea83aeef1d807", - "sha256:4376538f36b533b46f8971d3a3e63464f2c7905c9800db97361c43a2b14792ab", - "sha256:4b583b97ab2e3efe1b3e75248a9b333bd3f8b0b1b8e5b45578e05e5850dfb2c2", - "sha256:4b6f236edf6e2f9ae8fcd1332da4e791c1b6ba0dc16a2dc94590ceccb482e546", - "sha256:4da86b6d62a496e908ac2898243920c7992499c1712ff7c2b6d837cc69d9467e", - "sha256:50aa94fb1fb9a397eaa19c0d5ec15a5edd03a47bf1a3a6111a16b36e190cff65", - "sha256:567f5c155eda8df1d3d439d40a45a6a5f029b429b06648235f1e7e51b522b396", - "sha256:5a02d5a850e2979b0a014c412573953995174743a3f7fa4ea5a6e9a3c5617431", - "sha256:5e1e9802121405ede4b0133aa4340ad8186a1d2526de5b7c3eca519db7bb89fb", - "sha256:5f33166f0dfcce728191f520bd2692914ec70fac2713f6bf3ce59c3deacb4699", - "sha256:606cc265adc9aaedcc84f1f064f0e8736bc45814f15a357e30fca7ecc01504e0", - "sha256:635adb9a4507c9fd2ed65f39693fa31c9a3ee3a8e6dc64df033e8fdf52a7003f", - "sha256:65646bb0359386e07639c367a22cf9b5bf6304e8630b565d0626e2bdf329227a", - "sha256:67f8c5cbcd3deb7a60b3345dffc89a961a484ed0af1f6f73de91705cc6e31235", - "sha256:69212fbccdbd5b0e39eac4067e20a4a5256609e209547d86f740d68ad4f04911", - "sha256:6b8b09c1fad947c84bbbc95eca841350fad9cbfa5a2d7ca88ac9f8d836c92e23", - "sha256:6be8ed3039ae7f7ac5ce058c308484787c86e8437e72b30bf5e88b8ea10f3c87", - "sha256:6e16e07d85ca0cf8bafe5f5d23a0b850064e8e945d5677492b06bbe6f09cc699", - "sha256:736f227fb490f03c6488f9b6d45855f8e0fd749c007f9303ad30efab0e73c05a", - "sha256:73ab1601f84dc804f7812dc297e93cd99381162da39c47040a827d4e8dafe63b", - "sha256:77eb4c747061a6af8d0f7bdb31f1e108d172762ef579166ec84542f711d90256", - "sha256:78a384e49f46b80fb4c901d52d92abe098e78768ed829c673fbb53c498bef73a", - "sha256:7bb3b9ddb87ef7725056572368040c32775036472d5a033679d1fa6c8dc08417", - "sha256:7ea7c6c9d0d286d04ed3541747e6597cbe4971f22648b68248f7ddcd329207f0", - "sha256:7fe650342addd8524ca63d77b2362b02345e5f1a093266787d210c70a50b471a", - "sha256:813922f35bd800dca9994c5971883cbc0d291128a5de6b167c7aa697fcf59360", - "sha256:83082a57783239717ceb0ad584de3c69cf581b2a95ed6bf81ea66034f00401c0", - "sha256:8421e088bc051361b01c4b3a50fd39a4b9133079a2229978d9d30511fd05231b", - "sha256:86b0e7308289ddde73d863b7683f596d8d21c7d8664ce1dee061d0bcf3fbb4bb", - "sha256:88127d40df529336a9836870436fc2751c339fbaed3a836d42c93f3e4bd1d0a2", - "sha256:8fb190658865565c549b6b4706856d6a7b09302c797eb2cf8e7fe9dabb043f0d", - "sha256:912e6ebc7a6e4adfdbb1aec371ad04c68854cd3bf3608b3514e7ff9062931d8a", - "sha256:925a1edf3d810537c5a3abe78ec5530160c5f9a26b1f4270b40e62cc79304a1e", - "sha256:93c1b03552081b2a4423091d6fb3787265b8f86af404cff98d1b5342713bdd69", - "sha256:972b9e3a4094b053a4e46832b4bc829fc8a8d347160eb39d03f1690316a99c14", - "sha256:981a651f543f2854abd3b5fcb3263aac581b18209be49863ba575de6edf4c14d", - "sha256:99e4aa63097ab1118e75a848a28e40d68b08a5e19ce587891ab7fd04475e780f", - "sha256:9fa6e4dd51fe15d8738708a973470f67a855ca50002294852e9571cdbd9433f2", - "sha256:a0ec07fd264d0745ee396b666d47cef20875f4ff2375d7c4f58235886cc1ef0c", - "sha256:a2d9a3b260cc1d1dbdb1c582e63ddcf5363426a1a68faa0f5da28d8ee3c722a0", - "sha256:a3cc8638b2480865eaa3926d192e64ce6c51e3d29c849e09d5b4ad95efae5399", - "sha256:a609f9c93113be646f44c2a0256d6ea375ad047005d7f57a5c15f614dc1b2f59", - "sha256:a62c6ef0d50e6de320c270ff91d9dd0a05e7250cac2a800b7784bae474506e63", - "sha256:a6442c59a8ac8b85812ce33bc4d05bde3fb22321fa8294e2a5b487c3505f611b", - "sha256:a7b55a944a7f43892e28ad4bc0561dfd5f0d73e605d1aa5c3c976b52aea121d2", - "sha256:a8b6f03672aa6734e700bbcd65ff050fd19cddfec4b031cc8cf1c6967de5a68e", - "sha256:affef7c76a9ef259187ef31599a9260330e0335a3011732c4b9effa01e1cd6e0", - "sha256:b06f260b16ead11643a5a9f955bd4b5fd76c1a4c6796aeade8520095b75de520", - "sha256:b1c81d0e5e160651879755c9c675b974276f135558cf4ba79fee7b8413a515df", - "sha256:b281d5eca50189325cfe1f365fafade89b14b4a78d9b40b05ddd1fc7d2a10a9c", - "sha256:b51dcd060f18c19290d9b8a9dd1e0181538df2ce0717f562fff6cf74d9fc0b5b", - "sha256:b7b8288eb7cdd268b0304632da8cb0bb93fadcfec2fe5712f7b9cc8f4d487be2", - "sha256:b9be91986841a75042b3e3243d0b3cb0b2434252b977baaf0cd56e960fe1e46f", - "sha256:ba58bbcd1b72f136080c0bccc2400d66cc6115f3f906c499013d065ac33a4b61", - "sha256:bb45474711ba385c46a0bfe696c695a929ae69ac636cda8f532be9e8c93d720a", - "sha256:bc01f57ca26269c2c706e838f6422e2a8788e41b3e3c65e2f41148212e57cd59", - "sha256:bc91b314cef27742da486d6839b677b3f2793dfe52b51bbbb7cf736d5c29281c", - "sha256:bda5e34f8a75721c96085903c6f2197dc398c20ffd98df33f866a9c8fd95f4bf", - "sha256:c134869d5ffe34547d14e174c866fd8fe2254918cc0a95e99052903bc1543e07", - "sha256:c41e71c9cfb854789dee6fc51e46743a6d138b1803fab6cb860af43265b42ea6", - "sha256:c4e16bd7761c5e454f4efd36f345286d6f7c5fa111623c355691e2755cae3b9e", - "sha256:c7315339eae3b24c2d2fa1ed7d7a38654cba34a13ef19fbcb9425da46d3dc594", - "sha256:c79124f70465a150e89340de5963f936ee97097d2ef76c869708c4248c63ca49", - "sha256:cac0fdca17b036af3881a9d2729a850b76553f3f716ccb0360ad4dbc06b3b843", - "sha256:cc87dd1b6eaf0b848eebb1c86469b9f72a1891cb42ac7adcfbce75eadb13dd14", - "sha256:cce2109b6219f22ece99db7644b9622f54a4e915dad65660ec435e89a3ea7cc3", - "sha256:d41213ea25a86f69efd1575073d34ea11aabe075604ddf3d148ecfec9e1e96a1", - "sha256:dc7c389dce432500273eaf48f410b37886be9208b2dd5710aaf7c57fd442c698", - "sha256:dd5e856ebb7bfb7672b0086846db5afb4567a7b9714b8a0ebafd211ec7ce6a15", - "sha256:e1ed71194ef6dea7ed2d5cb5f7243d4bcd334bfb63e59878519be558078f848d", - "sha256:e201e015644e207139f7e2351980feb7040e6f4b2c2978892f3e3789d1c125e5", - "sha256:e28299d9f2e889e6d51b1f043f58d5f997c373cc12e6403b90df95b8b047c13e", - "sha256:f3c887f96407cea3916294046fc7dab611c2552beadbed4ea901cbc6a40cc7a0", - "sha256:f49a05acd3dfe1ce9715b657e28d138578bc40126760efb962322c56e9ca344b", - "sha256:f4ab143ab113be368a3e9b795f9cd7906c5ef407d6173fe9675a902e1fffc239", - "sha256:f51328ffe987aecf6d09f3cd9d979face89a617eacdaea43e7b3080777f647ba", - "sha256:f57b2a3c8353d3e04acf75b3fed57ba41f5c0646bbf1d10c7c282291c97936b4", - "sha256:f7941f6f2fe6dd6807a1208737b8a0cbcf1cc6d7b07d24998ad2d63590868260", - "sha256:fc04cc7a3db33664e0c2d10eb8990ff6b3536f6842c9590ae8da4c614b9ed05a", - "sha256:fff7b9c3f19957020cac546c70025331113d2e61537f6e2441bc7657913de7d3" + "sha256:0403f647055de2609be776965108447deb8e384fe4a553c119e3ff6bfbab4784", + "sha256:0642eae483cc8c2902e4af7298bf886d605e80f26382124cddc3967c2a3df09e", + "sha256:0b609fc9cdbd1f02e51f67f51e5aee60a841ef58a68d00d5ee2c0faf357481a3", + "sha256:0d2c11f3ea4db66b5cbded23b20185c35066892c67d80ec4be4bab257b9ad1e0", + "sha256:0e42e0ec0cd3e0d851cb3c91f770c9301f48647cb2877cb78f74bdaa07639a79", + "sha256:132718176cc723026d201e347f800cd1a9e4b62ccd3f82476950834dad501c75", + "sha256:16cc1da46c04fb0fb128b4dc430b78fa2aba8a6c0c9f8eb391fd5103409a6ac6", + "sha256:18be793c4c87de2965e1c0f060f03d9e5aff66cfeae8e1dbe6e5b88056ec153f", + "sha256:1a55d509a1dc5a5b708b5dad3b5334e07a16ad4c2185e27b40e4dba796ab7f88", + "sha256:1dcb645d7e34dcbcc96cd7c132b1fc55c39263ca62eb961c064eb3928997363b", + "sha256:2016745cb3ba554469d02819d78958b571792bb68e31302610e898f80dd3a573", + "sha256:228b90f613b25ba0019361e4ab81520b343b622fc657daf7e501c4ed6a2366c0", + "sha256:309ef5706e95e62578cda256b97f5e097916a2c26247c287bbe74794e7150df2", + "sha256:339dc63b3eba969067b00f41f15ad161bf2946613156fb131266d8debc8e44d0", + "sha256:3820778ea1387c2b6a818caec01c63adc5b3750211af6447e8dcfb9b6f08dbba", + "sha256:3d42df8201e00384736f0df9be2ced39324c3907607d17d50d50116c989d84cd", + "sha256:3e7b8bd70c48ffb28461ebe092c2345536fb18bbbf19d287c8913699735f505c", + "sha256:3f2f725aa3e909b3c5fdb8192490bdd8e1495e85906af74fe6e34a2a77ba0673", + "sha256:3fc6a169517ca0d7ca6846c3c5392ef2b9e38896f61d615cb75b9e7134d4ee1e", + "sha256:45980ea19277dc0a579e432aef6a504fe098ef3a9032ead15e446eb0f1191aee", + "sha256:4d010d080c4888371033baab27e47c9df7d6fb28d0b7b7adf85a4a49be9298b3", + "sha256:4de84e71173d4dada2897e5a0e1b7877e5eefbfe0d6a44edee6ce31d9b8ec09e", + "sha256:549d195116a1ba1e1ae2f5ca143f9777800f6636eab917d4f02b5310d6d73461", + "sha256:562ec27dfa3f311e0db1ba243ec6e5f6ab96b1edfcfc6cf86f28038bc4961ce6", + "sha256:57dfc8048c72ba48a8c45e188d811e5efd7e49b387effc8fb17e97936dde5bf6", + "sha256:5899d28b5276f536fcf840b18b61a9fce23cc3aec1d114c44c07fe94ebeaa500", + "sha256:60cfb538fe9ef86e5b2ab0ca8fc8d62524777f6c611dcaf76dc16fbe9b8e698a", + "sha256:623dcc6d7a7ba450bbdbeedbaa0c42b329bdae16491af2282f12a7e809be7eb9", + "sha256:67170979de0dacac3f3097d02b0ad188d8edcea44ccc44aaa0550af49150c7dc", + "sha256:6e73ebb44dca5f708dc871fe0b90cf4cff1a13f9956f747cc87b535a840386f5", + "sha256:6f34591000f06e62085b1865c9bc5f7858df748834662a51edadfd2c3bfe0dd3", + "sha256:724b1b270cb13ea2e6503476e34541a0b1f62280bc997eab443f87790202033d", + "sha256:75a6f4aa904301dab8022397a22c0039edc1f51e90b83dbd4464b8a38dc87842", + "sha256:77545b5dcda13b70f872c3b5974ac64c21d05e65b1590b441c8560115dc3a0d1", + "sha256:776483fd35b58d8afe3acbd9988d5de592ab6da2d2a865edfdbc9fdb43e7c486", + "sha256:77cc258aeb29a3417062758975521eae60af6f79e930d6993555eeac6a8eac29", + "sha256:794f7c05af0763b1bbd1b9e6eff0e52ad068be3b12cd96c87de037b01390c968", + "sha256:868a2fae76dfb06e87291bcbd4dcbcc778a8500510b618d50496e520bd94d9b9", + "sha256:8842af7f175078456b8b17f1b73a0d16a65dcbdc653ecefeb00a56b3c8c298c4", + "sha256:8d9bc218650022a768f3775dd7fdac1886437325d8d295d923ebcfef4892ad5c", + "sha256:8f572d989142e0908e6acf57ad1b9b86989ff057c006d13b76c146ec6a20216a", + "sha256:90480b2134999301eea795b3a9dbf606c6fbab1b489150c501da84a959442465", + "sha256:916abf1ac5cf7eb16bc540a5bf75c71c43a676f5c52fcb9fe75a2bd75fb944e8", + "sha256:92f980729e79b5d16d221038dbf2e8f9a9136afa072f9d5d6ed4cb984b126a09", + "sha256:933082f161bbb3e9f90d00990dc956120f608cdbcaeea15c4d897f56ef4fe416", + "sha256:97ab3647280d458a1f9adb85244e81587505a43c0c7cff851f5116cd2814b894", + "sha256:985b7836931d033570b94c94713c6dba5f9d3ff26045f72c3e5dbc5fe3361e5a", + "sha256:9e549d642426e3579b3f4b92d0431543b012dcb6e825c91619d4e93b7363c3f9", + "sha256:9edd0e01a343766add6817bc448408858ba6b489039eaaa2018474e4001651a4", + "sha256:9ee68b21909686eeb21dfcba2c3b81fee70dcf38b140dcd5aa70680995fa3aa5", + "sha256:9f5e772ed5fef25b3de9f2008fe67b92d46831bd2bc5bdc5dd6bfd06b83b316f", + "sha256:a03a4f3a19a189919c7055098790285cc5c5b0b3976f8d227aea39dbf9f8bfdb", + "sha256:a4d240d260a1aed814790bbe1f10a5ff31ce6c21bc78f0da4a1e8268d6c80dbd", + "sha256:a5a68357f686f8c4d527a2dc04f52e669c2fc1cbde38f6f7eb6a0e58cbd17cae", + "sha256:a998cc0aeeea4c6d5622a3754da5a493055d2d95186bad877b0a34ea6e6dbe0a", + "sha256:b67e47c5595b9224599016e333f5ec25392597a89d5744658f837d204e16c63e", + "sha256:b6f3b96617e9852703f5b633ea01315ca45c77e879584f283c44127f0f1ec564", + "sha256:b7593fe7eb5feaa3fbb461ac79aac9f9fc0387a5ca8080b0c6fe2ca27b091afd", + "sha256:bb3f6562e89bad0110afbe64e485aac2462efdce6232cdec7862a095dc3412f6", + "sha256:bb4f8c3c9a9f34423dba193f241f617b08ffc63e27f67159f60ae6baf2dcfe0f", + "sha256:bd63e7b74661fed317212fab774e2a648bc4bb09b35f25474f8e3325d2945cd7", + "sha256:be753b225d159feb397bd0bf91ae86f689bad0da09d3b301478cd39b878ab31a", + "sha256:bf100a3288f9bb7f919b87eb84f87101e197535b9bd0e2c2b5b3179633324fee", + "sha256:c223d078112e90dc0e5c4e35b98b9584164bea9fbbd221c0b21c5241f6d51b62", + "sha256:c3d8c679607220979434f494b139dfb00131ebf70bb406553d69c1ff01a5c33d", + "sha256:c43257717611ff5e9a1d79dce8e47566235ebda63328718d9b65dd640bc832ef", + "sha256:c832ec92c4499ac463186af72f9ed4d8daec15499b16f0a879b0d1c8e5cf4a3b", + "sha256:c8e2706ceb622bc63bac98ebb10ef5da80ed70fbd8a7999a5076de3afaef0fb1", + "sha256:cb237bfd0ef4d5eb6a19e29f9e528ac67ac3be932ea6b44fb6cc09b9f3ecff78", + "sha256:ccd7a6fca48ca9c131d9b0a2972a581e28b13416fc313fb98b6d24a03ce9a398", + "sha256:d10a2ed46386e850bb3de503a54f9fe8192e5917fcbb143bfef653a9355e9a53", + "sha256:d1443ba9acbb593fa7c1c29e011d7c9761545fe35e7652e85ce7f51a16f7e08d", + "sha256:d2287ac9360dec3837bfdad969963a5d073a09a85d898bd86bea82aa8876ef3c", + "sha256:d3c9f051b028810f5a87c88e5d6e9af3c0ff32ef62763bf15d29f740453ca909", + "sha256:d72140ccf8a147e94274024ff6fd8fb7811354cf7ef88b1f0a988ebaa5bc774f", + "sha256:d938b4a840fb1523b9dfbbb454f652967f18e197569c32266d4d13f37244c3d9", + "sha256:db622b999ffe49cb891f2fff3b340cdc2f9797d01a0a202a0973ba2562501d90", + "sha256:e09fbecc007f7b6afdfb3b07ce5bd9f8494b6856dd4f577d26c66c391b829851", + "sha256:e1fa280b3ad78eea5be86f94f461c04943d942697e0dac889fa18fff8f5f9147", + "sha256:e4f18eca6028ffa62adbd185a8f1e1dd242f2e68164dba5c2b74a5204850b4cf", + "sha256:e825dbb7f84dfa24663dd75835e7257f8882629fc11f03ecf77d84a75134b864", + "sha256:eaecf47ef10c72ece9a2a92118257da87e460e113b83cc0d2905cbbe931792b4", + "sha256:ef6688db9bf91ba111ae734ba6ef1a063304a881749726e0d3575f5c10a9facf", + "sha256:f398ba4df52d30b1763f62eed9de5620dcde96e6f491f4c62686736b155aa6e4", + "sha256:f80e2bb21bfab56ed7405c2d79d34b5dc0bc96c2c1d2a067b643a09fb756c43a", + "sha256:f83351e0f7dcdb14d7326c3d8d8c4e915fa685cbfdc6281f9470d97a04e9dfe4", + "sha256:f8dca5590fec7a89ed6826fce625595279e586ead52e9e958d3237821fbc750c", + "sha256:fa3edde1aa8807de1d05934982416cb3ec46d1d4d91e280bcce7cca01c507992", + "sha256:fea07c1a39a22614acb762e3fbbb4011f65eedafcb2948feeef641ac78b4ee5c", + "sha256:ff10896fa55167371960c5908150b434b71c876dfab97b69478f22c8b445ea19", + "sha256:ff86d4e85188bba72cfb876df3e11fa243439882c55957184af44a35bd5880b7", + "sha256:ffed1e4980889765c84a5d1a566159e363b71d6b6fbaf0bebc9d3c30bc016766" ], - "markers": "python_version >= '3.9'", - "version": "==7.10.7" + "markers": "python_version >= '3.10'", + "version": "==7.13.1" }, "cryptography": { "hashes": [ - "sha256:0a17377fa52563d730248ba1f68185461fff36e8bc75d8787a7dd2e20a802b7a", - "sha256:0ca4be2af48c24df689a150d9cd37404f689e2968e247b6b8ff09bff5bcd786f", - "sha256:0d1922d9280e08cde90b518a10cd66831f632960a8d08cb3418922d83fce6f12", - "sha256:0dfb7c88d4462a0cfdd0d87a3c245a7bc3feb59de101f6ff88194f740f72eda6", - "sha256:0ff483716be32690c14636e54a1f6e2e1b7bf8e22ca50b989f88fa1b2d287080", - "sha256:13e67c4d3fb8b6bc4ef778a7ccdd8df4cd15b4bcc18f4239c8440891a11245cc", - "sha256:15b5fd9358803b0d1cc42505a18d8bca81dabb35b5cfbfea1505092e13a9d96d", - "sha256:1cd6d50c1a8b79af1a6f703709d8973845f677c8e97b1268f5ff323d38ce8475", - "sha256:2dd339ba3345b908fa3141ddba4025568fa6fd398eabce3ef72a29ac2d73ad75", - "sha256:341fb7a26bc9d6093c1b124b9f13acc283d2d51da440b98b55ab3f79f2522ead", - "sha256:34f04b7311174469ab3ac2647469743720f8b6c8b046f238e5cb27905695eb2a", - "sha256:41c281a74df173876da1dc9a9b6953d387f06e3d3ed9284e3baae3ab3f40883a", - "sha256:449ef2b321bec7d97ef2c944173275ebdab78f3abdd005400cc409e27cd159ab", - "sha256:45f790934ac1018adeba46a0f7289b2b8fe76ba774a88c7f1922213a56c98bc1", - "sha256:48948940d0ae00483e85e9154bb42997d0b77c21e43a77b7773c8c80de532ac5", - "sha256:4c49eda9a23019e11d32a0eb51a27b3e7ddedde91e099c0ac6373e3aacc0d2ee", - "sha256:504e464944f2c003a0785b81668fe23c06f3b037e9cb9f68a7c672246319f277", - "sha256:534b96c0831855e29fc3b069b085fd185aa5353033631a585d5cd4dd5d40d657", - "sha256:6ef1488967e729948d424d09c94753d0167ce59afba8d0f6c07a22b629c557b2", - "sha256:7176a5ab56fac98d706921f6416a05e5aff7df0e4b91516f450f8627cda22af3", - "sha256:7411c910fb2a412053cf33cfad0153ee20d27e256c6c3f14d7d7d1d9fec59fd5", - "sha256:757af4f6341ce7a1e47c326ca2a81f41d236070217e5fbbad61bbfe299d55d28", - "sha256:7823bc7cdf0b747ecfb096d004cc41573c2f5c7e3a29861603a2871b43d3ef32", - "sha256:7fab1187b6c6b2f11a326f33b036f7168f5b996aedd0c059f9738915e4e8f53a", - "sha256:84ef1f145de5aee82ea2447224dc23f065ff4cc5791bb3b506615957a6ba8128", - "sha256:92e8cfe8bd7dd86eac0a677499894862cd5cc2fd74de917daa881d00871ac8e7", - "sha256:9394c7d5a7565ac5f7d9ba38b2617448eba384d7b107b262d63890079fad77ca", - "sha256:9495d78f52c804b5ec8878b5b8c7873aa8e63db9cd9ee387ff2db3fffe4df784", - "sha256:9873bf7c1f2a6330bdfe8621e7ce64b725784f9f0c3a6a55c3047af5849f920e", - "sha256:9babb7818fdd71394e576cf26c5452df77a355eac1a27ddfa24096665a27f8fd", - "sha256:9e8776dac9e660c22241b6587fae51a67b4b0147daa4d176b172c3ff768ad736", - "sha256:9ed64e5083fa806709e74fc5ea067dfef9090e5b7a2320a49be3c9df3583a2d8", - "sha256:9f2c4cc63be3ef43c0221861177cee5d14b505cd4d4599a89e2cd273c4d3542a", - "sha256:9f40642a140c0c8649987027867242b801486865277cbabc8c6059ddef16dc8b", - "sha256:af84e8e99f1a82cea149e253014ea9dc89f75b82c87bb6c7242203186f465129", - "sha256:b9c79af2c3058430d911ff1a5b2b96bbfe8da47d5ed961639ce4681886614e70", - "sha256:c52fded6383f7e20eaf70a60aeddd796b3677c3ad2922c801be330db62778e05", - "sha256:cbb8e769d4cac884bb28e3ff620ef1001b75588a5c83c9c9f1fdc9afbe7f29b0", - "sha256:d84c40bdb8674c29fa192373498b6cb1e84f882889d21a471b45d1f868d8d44b", - "sha256:db5597a4c7353b2e5fb05a8e6cb74b56a4658a2b7bf3cb6b1821ae7e7fd6eaa0", - "sha256:e22801b61613ebdebf7deb18b507919e107547a1d39a3b57f5f855032dd7cfb8", - "sha256:e34da95e29daf8a71cb2841fd55df0511539a6cdf33e6f77c1e95e44006b9b46", - "sha256:e46710a240a41d594953012213ea8ca398cd2448fbc5d0f1be8160b5511104a0", - "sha256:e94eb5fa32a8a9f9bf991f424f002913e3dd7c699ef552db9b14ba6a76a6313b", - "sha256:ec13b7105117dbc9afd023300fb9954d72ca855c274fe563e72428ece10191c0", - "sha256:ed570874e88f213437f5cf758f9ef26cbfc3f336d889b1e592ee11283bb8d1c7", - "sha256:ed957044e368ed295257ae3d212b95456bd9756df490e1ac4538857f67531fcc", - "sha256:ef648d2c690703501714588b2ba640facd50fd16548133b11b2859e8655a69da", - "sha256:efc9e51c3e595267ff84adf56e9b357db89ab2279d7e375ffcaf8f678606f3d9", - "sha256:f736ab8036796f5a119ff8211deda416f8c15ce03776db704a7a4e17381cb2ef", - "sha256:f7a24ea78de345cfa7f6a8d3bde8b242c7fac27f2bd78fa23474ca38dfaeeab9", - "sha256:f7de12fa0eee6234de9a9ce0ffcfa6ce97361db7a50b09b65c63ac58e5f22fc7", - "sha256:f9b55038b5c6c47559aa33626d8ecd092f354e23de3c6975e4bb205df128a2a0", - "sha256:fd4b5e2ee4e60425711ec65c33add4e7a626adef79d66f62ba0acfd493af282d" + "sha256:00a5e7e87938e5ff9ff5447ab086a5706a957137e6e433841e9d24f38a065217", + "sha256:01ca9ff2885f3acc98c29f1860552e37f6d7c7d013d7334ff2a9de43a449315d", + "sha256:09859af8466b69bc3c27bdf4f5d84a665e0f7ab5088412e9e2ec49758eca5cbc", + "sha256:0abf1ffd6e57c67e92af68330d05760b7b7efb243aab8377e583284dbab72c71", + "sha256:1000713389b75c449a6e979ffc7dcc8ac90b437048766cef052d4d30b8220971", + "sha256:109d4ddfadf17e8e7779c39f9b18111a09efb969a301a31e987416a0191ed93a", + "sha256:10b01676fc208c3e6feeb25a8b83d81767e8059e1fe86e1dc62d10a3018fa926", + "sha256:10ca84c4668d066a9878890047f03546f3ae0a6b8b39b697457b7757aaf18dbc", + "sha256:15ab9b093e8f09daab0f2159bb7e47532596075139dd74365da52ecc9cb46c5d", + "sha256:191bb60a7be5e6f54e30ba16fdfae78ad3a342a0599eb4193ba88e3f3d6e185b", + "sha256:22d7e97932f511d6b0b04f2bfd818d73dcd5928db509460aaf48384778eb6d20", + "sha256:23b1a8f26e43f47ceb6d6a43115f33a5a37d57df4ea0ca295b780ae8546e8044", + "sha256:36e627112085bb3b81b19fed209c05ce2a52ee8b15d161b7c643a7d5a88491f3", + "sha256:39b6755623145ad5eff1dab323f4eae2a32a77a7abef2c5089a04a3d04366715", + "sha256:3b51b8ca4f1c6453d8829e1eb7299499ca7f313900dd4d89a24b8b87c0a780d4", + "sha256:402b58fc32614f00980b66d6e56a5b4118e6cb362ae8f3fda141ba4689bd4506", + "sha256:416260257577718c05135c55958b674000baef9a1c7d9e8f306ec60d71db850f", + "sha256:46acf53b40ea38f9c6c229599a4a13f0d46a6c3fa9ef19fc1a124d62e338dfa0", + "sha256:4b7387121ac7d15e550f5cb4a43aef2559ed759c35df7336c402bb8275ac9683", + "sha256:50fc3343ac490c6b08c0cf0d704e881d0d660be923fd3076db3e932007e726e3", + "sha256:516ea134e703e9fe26bcd1277a4b59ad30586ea90c365a87781d7887a646fe21", + "sha256:549e234ff32571b1f4076ac269fcce7a808d3bf98b76c8dd560e42dbc66d7d91", + "sha256:5d7f93296ee28f68447397bf5198428c9aeeab45705a55d53a6343455dcb2c3c", + "sha256:5ecfccd2329e37e9b7112a888e76d9feca2347f12f37918facbb893d7bb88ee8", + "sha256:6276eb85ef938dc035d59b87c8a7dc559a232f954962520137529d77b18ff1df", + "sha256:6b5063083824e5509fdba180721d55909ffacccc8adbec85268b48439423d78c", + "sha256:6eae65d4c3d33da080cff9c4ab1f711b15c1d9760809dad6ea763f3812d254cb", + "sha256:6f61efb26e76c45c4a227835ddeae96d83624fb0d29eb5df5b96e14ed1a0afb7", + "sha256:71e842ec9bc7abf543b47cf86b9a743baa95f4677d22baa4c7d5c69e49e9bc04", + "sha256:760f83faa07f8b64e9c33fc963d790a2edb24efb479e3520c14a45741cd9b2db", + "sha256:78a97cf6a8839a48c49271cdcbd5cf37ca2c1d6b7fdd86cc864f302b5e9bf459", + "sha256:7ce938a99998ed3c8aa7e7272dca1a610401ede816d36d0693907d863b10d9ea", + "sha256:8a6e050cb6164d3f830453754094c086ff2d0b2f3a897a1d9820f6139a1f0914", + "sha256:9394673a9f4de09e28b5356e7fff97d778f8abad85c9d5ac4a4b7e25a0de7717", + "sha256:94cd0549accc38d1494e1f8de71eca837d0509d0d44bf11d158524b0e12cebf9", + "sha256:a04bee9ab6a4da801eb9b51f1b708a1b5b5c9eb48c03f74198464c66f0d344ac", + "sha256:a23582810fedb8c0bc47524558fb6c56aac3fc252cb306072fd2815da2a47c32", + "sha256:a2c0cd47381a3229c403062f764160d57d4d175e022c1df84e168c6251a22eec", + "sha256:a8b17438104fed022ce745b362294d9ce35b4c2e45c1d958ad4a4b019285f4a1", + "sha256:a9a3008438615669153eb86b26b61e09993921ebdd75385ddd748702c5adfddb", + "sha256:b02cf04496f6576afffef5ddd04a0cb7d49cf6be16a9059d793a30b035f6b6ac", + "sha256:b419ae593c86b87014b9be7396b385491ad7f320bde96826d0dd174459e54665", + "sha256:c0a7bb1a68a5d3471880e264621346c48665b3bf1c3759d682fc0864c540bd9e", + "sha256:c70cc23f12726be8f8bc72e41d5065d77e4515efae3690326764ea1b07845cfb", + "sha256:c8daeb2d2174beb4575b77482320303f3d39b8e81153da4f0fb08eb5fe86a6c5", + "sha256:cb3d760a6117f621261d662bccc8ef5bc32ca673e037c83fbe565324f5c46936", + "sha256:d55f3dffadd674514ad19451161118fd010988540cee43d8bc20675e775925de", + "sha256:d89c3468de4cdc4f08a57e214384d0471911a3830fcdaf7a8cc587e42a866372", + "sha256:db391fa7c66df6762ee3f00c95a89e6d428f4d60e7abc8328f4fe155b5ac6e54", + "sha256:dfb781ff7eaa91a6f7fd41776ec37c5853c795d3b358d4896fdbb5df168af422", + "sha256:e5bf0ed4490068a2e72ac03d786693adeb909981cc596425d09032d372bcc849", + "sha256:e7aec276d68421f9574040c26e2a7c3771060bc0cff408bae1dcb19d3ab1e63c", + "sha256:ef639cb3372f69ec44915fafcd6698b6cc78fbe0c2ea41be867f6ed612811963", + "sha256:f260d0d41e9b4da1ed1e0f1ce571f97fe370b152ab18778e9e8f67d6af432018" ], "markers": "python_version >= '3.8' and python_full_version not in '3.9.0, 3.9.1'", - "version": "==46.0.1" + "version": "==46.0.3" }, "google-api-core": { "hashes": [ - "sha256:8a2a56c1fef82987a524371f99f3bd0143702fecc670c72e600c1cda6bf8dbb7", - "sha256:d2aaa0b13c78c61cb3f4282c464c046e45fbd75755683c9c525e6e8f7ed0a5e8" + "sha256:84181be0f8e6b04006df75ddfe728f24489f0af57c96a529ff7cf45bc28797f7", + "sha256:d30bc60980daa36e314b5d5a3e5958b0200cb44ca8fa1be2b614e932b75a3ea9" ], "markers": "python_version >= '3.7'", - "version": "==2.25.1" + "version": "==2.29.0" }, "google-api-python-client": { "hashes": [ - "sha256:2005b6e86c27be1db1a43f43e047a0f8e004159f3cceddecb08cf1624bddba31", - "sha256:abae37e04fecf719388e5c02f707ed9cdf952f10b217c79a3e76c636762e3ea9" + "sha256:3cad1b68f9d48b82b93d77927e8370a6f43f33d97848242601f14a93a1c70ef5", + "sha256:5c469db6614f071009e3e5bb8b6aeeccae3beb3647fa9c6cd97f0d551edde0b6" ], "markers": "python_version >= '3.7'", - "version": "==2.183.0" + "version": "==2.188.0" }, "google-auth": { "hashes": [ - "sha256:1370d4593e86213563547f97a92752fc658456fe4514c809544f330fed45a7ca", - "sha256:500c3a29adedeb36ea9cf24b8d10858e152f2412e3ca37829b3fa18e33d63b77" + "sha256:833229070a9dfee1a353ae9877dcd2dec069a8281a4e72e72f77d4a70ff945da", + "sha256:c516d68336bfde7cf0da26aab674a36fedcf04b37ac4edd59c597178760c3498" ], - "markers": "python_version >= '3.7'", - "version": "==2.40.3" + "markers": "python_version >= '3.8'", + "version": "==2.47.0" }, "google-auth-httplib2": { "hashes": [ - "sha256:38aa7badf48f974f1eb9861794e9c0cb2a0511a4ec0679b1f886d108f5640e05", - "sha256:b65a0a2123300dd71281a7bf6e64d65a0759287df52729bdd1ae2e47dc311a3d" + "sha256:177898a0175252480d5ed916aeea183c2df87c1f9c26705d74ae6b951c268b0b", + "sha256:426167e5df066e3f5a0fc7ea18768c08e7296046594ce4c8c409c2457dd1f776" ], - "version": "==0.2.0" + "markers": "python_version >= '3.7'", + "version": "==0.3.0" }, "google-cloud-core": { "hashes": [ - "sha256:1fab62d7102844b278fe6dead3af32408b1df3eb06f5c7e8634cbd40edc4da53", - "sha256:5130f9f4c14b4fafdff75c79448f9495cfade0d8775facf1b09c3bf67e027f6e" + "sha256:67d977b41ae6c7211ee830c7912e41003ea8194bff15ae7d72fd6f51e57acabc", + "sha256:7c1b7ef5c92311717bd05301aa1a91ffbc565673d3b0b4163a52d8413a186963" ], "markers": "python_version >= '3.7'", - "version": "==2.4.3" + "version": "==2.5.0" }, "google-cloud-storage": { "hashes": [ - "sha256:16eeca305e4747a6871f8f7627eef3b862fdd365b872ca74d4a89e9841d0f8e8", - "sha256:4c77ec00c98ccc6428e4c39404926f41e2152f48809b02af29d5116645c3c317" + "sha256:78cfeae7cac2ca9441d0d0271c2eb4ebfa21aa4c6944dd0ccac0389e81d955a7", + "sha256:cc67952dce84ebc9d44970e24647a58260630b7b64d72360cedaf422d6727f28" ], "markers": "python_version >= '3.7'", - "version": "==3.4.0" + "version": "==3.8.0" }, "google-crc32c": { "hashes": [ - "sha256:0f99eaa09a9a7e642a61e06742856eec8b19fc0037832e03f941fe7cf0c8e4db", - "sha256:19eafa0e4af11b0a4eb3974483d55d2d77ad1911e6cf6f832e1574f6781fd337", - "sha256:1c67ca0a1f5b56162951a9dae987988679a7db682d6f97ce0f6381ebf0fbea4c", - "sha256:1f2b3522222746fff0e04a9bd0a23ea003ba3cccc8cf21385c564deb1f223242", - "sha256:22beacf83baaf59f9d3ab2bbb4db0fb018da8e5aebdce07ef9f09fce8220285e", - "sha256:2bff2305f98846f3e825dbeec9ee406f89da7962accdb29356e4eadc251bd472", - "sha256:2d73a68a653c57281401871dd4aeebbb6af3191dcac751a76ce430df4d403194", - "sha256:32d1da0d74ec5634a05f53ef7df18fc646666a25efaaca9fc7dcfd4caf1d98c3", - "sha256:3bda0fcb632d390e3ea8b6b07bf6b4f4a66c9d02dcd6fbf7ba00a197c143f582", - "sha256:6335de12921f06e1f774d0dd1fbea6bf610abe0887a1638f64d694013138be5d", - "sha256:6b211ddaf20f7ebeec5c333448582c224a7c90a9d98826fbab82c0ddc11348e6", - "sha256:6efb97eb4369d52593ad6f75e7e10d053cf00c48983f7a973105bc70b0ac4d82", - "sha256:6fbab4b935989e2c3610371963ba1b86afb09537fd0c633049be82afe153ac06", - "sha256:713121af19f1a617054c41f952294764e0c5443d5a5d9034b2cd60f5dd7e0349", - "sha256:754561c6c66e89d55754106739e22fdaa93fafa8da7221b29c8b8e8270c6ec8a", - "sha256:7cc81b3a2fbd932a4313eb53cc7d9dde424088ca3a0337160f35d91826880c1d", - "sha256:85fef7fae11494e747c9fd1359a527e5970fc9603c90764843caabd3a16a0a48", - "sha256:905a385140bf492ac300026717af339790921f411c0dfd9aa5a9e69a08ed32eb", - "sha256:9fc196f0b8d8bd2789352c6a522db03f89e83a0ed6b64315923c396d7a932315", - "sha256:a8e9afc74168b0b2232fb32dd202c93e46b7d5e4bf03e66ba5dc273bb3559589", - "sha256:b07d48faf8292b4db7c3d64ab86f950c2e94e93a11fd47271c28ba458e4a0d76", - "sha256:b6d86616faaea68101195c6bdc40c494e4d76f41e07a37ffdef270879c15fb65", - "sha256:b7491bdc0c7564fcf48c0179d2048ab2f7c7ba36b84ccd3a3e1c3f7a72d3bba6", - "sha256:bb5e35dcd8552f76eed9461a23de1030920a3c953c1982f324be8f97946e7127", - "sha256:d68e17bad8f7dd9a49181a1f5a8f4b251c6dbc8cc96fb79f1d321dfd57d66f53", - "sha256:dcdf5a64adb747610140572ed18d011896e3b9ae5195f2514b7ff678c80f1603", - "sha256:df8b38bdaf1629d62d51be8bdd04888f37c451564c2042d36e5812da9eff3c35", - "sha256:e10554d4abc5238823112c2ad7e4560f96c7bf3820b202660373d769d9e6e4c9", - "sha256:e42e20a83a29aa2709a0cf271c7f8aefaa23b7ab52e53b322585297bb94d4638", - "sha256:ed66cbe1ed9cbaaad9392b5259b3eba4a9e565420d734e6238813c428c3336c9", - "sha256:ee6547b657621b6cbed3562ea7826c3e11cab01cd33b74e1f677690652883e77", - "sha256:f2226b6a8da04f1d9e61d3e357f2460b9551c5e6950071437e122c958a18ae14", - "sha256:fa8136cc14dd27f34a3221c0f16fd42d8a40e4778273e61a3c19aedaa44daf6b", - "sha256:fc5319db92daa516b653600794d5b9f9439a9a121f3e162f94b0e1891c7933cb" + "sha256:014a7e68d623e9a4222d663931febc3033c5c7c9730785727de2a81f87d5bab8", + "sha256:01f126a5cfddc378290de52095e2c7052be2ba7656a9f0caf4bcd1bfb1833f8a", + "sha256:0470b8c3d73b5f4e3300165498e4cf25221c7eb37f1159e221d1825b6df8a7ff", + "sha256:119fcd90c57c89f30040b47c211acee231b25a45d225e3225294386f5d258288", + "sha256:14f87e04d613dfa218d6135e81b78272c3b904e2a7053b841481b38a7d901411", + "sha256:17446feb05abddc187e5441a45971b8394ea4c1b6efd88ab0af393fd9e0a156a", + "sha256:19b40d637a54cb71e0829179f6cb41835f0fbd9e8eb60552152a8b52c36cbe15", + "sha256:2a3dc3318507de089c5384cc74d54318401410f82aa65b2d9cdde9d297aca7cb", + "sha256:3b9776774b24ba76831609ffbabce8cdf6fa2bd5e9df37b594221c7e333a81fa", + "sha256:3cc0c8912038065eafa603b238abf252e204accab2a704c63b9e14837a854962", + "sha256:3d488e98b18809f5e322978d4506373599c0c13e6c5ad13e53bb44758e18d215", + "sha256:3ebb04528e83b2634857f43f9bb8ef5b2bbe7f10f140daeb01b58f972d04736b", + "sha256:450dc98429d3e33ed2926fc99ee81001928d63460f8538f21a5d6060912a8e27", + "sha256:4b8286b659c1335172e39563ab0a768b8015e88e08329fa5321f774275fc3113", + "sha256:57a50a9035b75643996fbf224d6661e386c7162d1dfdab9bc4ca790947d1007f", + "sha256:61f58b28e0b21fcb249a8247ad0db2e64114e201e2e9b4200af020f3b6242c9f", + "sha256:6f35aaffc8ccd81ba3162443fabb920e65b1f20ab1952a31b13173a67811467d", + "sha256:71734788a88f551fbd6a97be9668a0020698e07b2bf5b3aa26a36c10cdfb27b2", + "sha256:864abafe7d6e2c4c66395c1eb0fe12dc891879769b52a3d56499612ca93b6092", + "sha256:86cfc00fe45a0ac7359e5214a1704e51a99e757d0272554874f419f79838c5f7", + "sha256:87b0072c4ecc9505cfa16ee734b00cd7721d20a0f595be4d40d3d21b41f65ae2", + "sha256:87fa445064e7db928226b2e6f0d5304ab4cd0339e664a4e9a25029f384d9bb93", + "sha256:89c17d53d75562edfff86679244830599ee0a48efc216200691de8b02ab6b2b8", + "sha256:8b3f68782f3cbd1bce027e48768293072813469af6a61a86f6bb4977a4380f21", + "sha256:a428e25fb7691024de47fecfbff7ff957214da51eddded0da0ae0e0f03a2cf79", + "sha256:b0d1a7afc6e8e4635564ba8aa5c0548e3173e41b6384d7711a9123165f582de2", + "sha256:ba6aba18daf4d36ad4412feede6221414692f44d17e5428bdd81ad3fc1eee5dc", + "sha256:cb5c869c2923d56cb0c8e6bcdd73c009c36ae39b652dbe46a05eb4ef0ad01454", + "sha256:d511b3153e7011a27ab6ee6bb3a5404a55b994dc1a7322c0b87b29606d9790e2", + "sha256:db3fe8eaf0612fc8b20fa21a5f25bd785bc3cd5be69f8f3412b0ac2ffd49e733", + "sha256:e6584b12cb06796d285d09e33f63309a09368b9d806a551d8036a4207ea43697", + "sha256:f4b51844ef67d6cf2e9425983274da75f18b1597bb2c998e1c0a0e8d46f8f651", + "sha256:f639065ea2042d5c034bf258a9f085eaa7af0cd250667c0635a3118e8f92c69c" ], "markers": "python_version >= '3.9'", - "version": "==1.7.1" + "version": "==1.8.0" }, "google-resumable-media": { "hashes": [ - "sha256:3ce7551e9fe6d99e9a126101d2536612bb73486721951e9562fee0f90c6ababa", - "sha256:5280aed4629f2b60b847b0d42f9857fd4935c11af266744df33d8074cae92fe0" + "sha256:dd14a116af303845a8d932ddae161a26e86cc229645bc98b39f026f9b1717582", + "sha256:f1157ed8b46994d60a1bc432544db62352043113684d4e030ee02e77ebe9a1ae" ], "markers": "python_version >= '3.7'", - "version": "==2.7.2" + "version": "==2.8.0" }, "googleapis-common-protos": { "hashes": [ - "sha256:0e1b44e0ea153e6594f9f394fef15193a68aaaea2d843f83e2742717ca753257", - "sha256:b8bfcca8c25a2bb253e0e0b0adaf8c00773e5e6af6fd92397576680b807e0fd8" + "sha256:4299c5a82d5ae1a9702ada957347726b167f9f8d1fc352477702a1e851ff4038", + "sha256:e55a601c1b32b52d7a3e65f43563e2aa61bcd737998ee672ac9b951cd49319f5" ], "markers": "python_version >= '3.7'", - "version": "==1.70.0" + "version": "==1.72.0" }, "grpcio": { "hashes": [ - "sha256:050760fd29c8508844a720f06c5827bb00de8f5e02f58587eb21a4444ad706e5", - "sha256:06d22e1d8645e37bc110f4c589cb22c283fd3de76523065f821d6e81de33f5d4", - "sha256:0aa795198b28807d28570c0a5f07bb04d5facca7d3f27affa6ae247bbd7f312a", - "sha256:0b85f4ebe6b56d2a512201bb0e5f192c273850d349b0a74ac889ab5d38959d16", - "sha256:0c40f368541945bb664857ecd7400acb901053a1abbcf9f7896361b2cfa66798", - "sha256:0c91d5b16eff3cbbe76b7a1eaaf3d91e7a954501e9d4f915554f87c470475c3d", - "sha256:0fcb77f2d718c1e58cc04ef6d3b51e0fa3b26cf926446e86c7eba105727b6cd4", - "sha256:153c5a7655022c3626ad70be3d4c2974cb0967f3670ee49ece8b45b7a139665f", - "sha256:1bb78d052948d8272c820bb928753f16a614bb2c42fbf56ad56636991b427518", - "sha256:1ec2937fd92b5b4598cbe65f7e57d66039f82b9e2b7f7a5f9149374057dde77d", - "sha256:1ec9cbaec18d9597c718b1ed452e61748ac0b36ba350d558f9ded1a94cc15ec7", - "sha256:222b0851e20c04900c63f60153503e918b08a5a0fad8198401c0b1be13c6815b", - "sha256:266fa6209b68a537b2728bb2552f970e7e78c77fe43c6e9cbbe1f476e9e5c35f", - "sha256:2e8e752ab5cc0a9c5b949808c000ca7586223be4f877b729f034b912364c3964", - "sha256:352dbdf25495eef584c8de809db280582093bc3961d95a9d78f0dfb7274023a2", - "sha256:36764a4ad9dc1eb891042fab51e8cdf7cc014ad82cee807c10796fb708455041", - "sha256:38d665f44b980acdbb2f0e1abf67605ba1899f4d2443908df9ec8a6f26d2ed88", - "sha256:3a6788b30aa8e6f207c417874effe3f79c2aa154e91e78e477c4825e8b431ce0", - "sha256:437eeb16091d31498585d73b133b825dc80a8db43311e332c08facf820d36894", - "sha256:494dcbade5606128cb9f530ce00331a90ecf5e7c5b243d373aebdb18e503c346", - "sha256:50a6e43a9adc6938e2a16c9d9f8a2da9dd557ddd9284b73b07bd03d0e098d1e9", - "sha256:53067c590ac3638ad0c04272f2a5e7e32a99fec8824c31b73bc3ef93160511fa", - "sha256:55a2d5ae79cd0f68783fb6ec95509be23746e3c239290b2ee69c69a38daa961a", - "sha256:55dfb9122973cc69520b23d39867726722cafb32e541435707dc10249a1bdbc6", - "sha256:585147859ff4603798e92605db28f4a97c821c69908e7754c44771c27b239bbd", - "sha256:597340a41ad4b619aaa5c9b94f7e6ba4067885386342ab0af039eda945c255cd", - "sha256:678b649171f229fb16bda1a2473e820330aa3002500c4f9fd3a74b786578e90f", - "sha256:68c95b1c1e3bf96ceadf98226e9dfe2bc92155ce352fa0ee32a1603040e61856", - "sha256:6b365f37a9c9543a9e91c6b4103d68d38d5bcb9965b11d5092b3c157bd6a5ee7", - "sha256:725e67c010f63ef17fc052b261004942763c0b18dcd84841e6578ddacf1f9d10", - "sha256:78dcc025a144319b66df6d088bd0eda69e1719eb6ac6127884a36188f336df19", - "sha256:7a9337ac4ce61c388e02019d27fa837496c4b7837cbbcec71b05934337e51531", - "sha256:7ee5ee42bfae8238b66a275f9ebcf6f295724375f2fa6f3b52188008b6380faf", - "sha256:7f89d6d0cd43170a80ebb4605cad54c7d462d21dc054f47688912e8bf08164af", - "sha256:851194eec47755101962da423f575ea223c9dd7f487828fe5693920e8745227e", - "sha256:9146e40378f551eed66c887332afc807fcce593c43c698e21266a4227d4e20d2", - "sha256:91fbfc43f605c5ee015c9056d580a70dd35df78a7bad97e05426795ceacdb59f", - "sha256:9880c323595d851292785966cadb6c708100b34b163cab114e3933f5773cba2d", - "sha256:9dc4a02796394dd04de0b9673cb79a78901b90bb16bf99ed8cb528c61ed9372e", - "sha256:b989e8b09489478c2d19fecc744a298930f40d8b27c3638afbfe84d22f36ce4e", - "sha256:bb58e38a50baed9b21492c4b3f3263462e4e37270b7ea152fc10124b4bd1c318", - "sha256:c2c39984e846bd5da45c5f7bcea8fafbe47c98e1ff2b6f40e57921b0c23a52d0", - "sha256:c8cfc780b7a15e06253aae5f228e1e84c0d3c4daa90faf5bc26b751174da4bf9", - "sha256:ca123db0813eef80625a4242a0c37563cb30a3edddebe5ee65373854cf187215", - "sha256:cb6c5b075c2d092f81138646a755f0dad94e4622300ebef089f94e6308155d82", - "sha256:dce15597ca11913b78e1203c042d5723e3ea7f59e7095a1abd0621be0e05b895", - "sha256:eafbe3563f9cb378370a3fa87ef4870539cf158124721f3abee9f11cd8162460", - "sha256:ee16e232e3d0974750ab5f4da0ab92b59d6473872690b5e40dcec9a22927f22e", - "sha256:fa35ccd9501ffdd82b861809cbfc4b5b13f4b4c5dc3434d2d9170b9ed38a9054", - "sha256:fb64dd62face3d687a7b56cd881e2ea39417af80f75e8b36f0f81dfd93071651", - "sha256:ffc33e67cab6141c54e75d85acd5dec616c5095a957ff997b4330a6395aa9b51" + "sha256:035d90bc79eaa4bed83f524331d55e35820725c9fbb00ffa1904d5550ed7ede3", + "sha256:04bbe1bfe3a68bbfd4e52402ab7d4eb59d72d02647ae2042204326cf4bbad280", + "sha256:063065249d9e7e0782d03d2bca50787f53bd0fb89a67de9a7b521c4a01f1989b", + "sha256:06c3d6b076e7b593905d04fdba6a0525711b3466f43b3400266f04ff735de0cd", + "sha256:08caea849a9d3c71a542827d6df9d5a69067b0a1efbea8a855633ff5d9571465", + "sha256:0aaa82d0813fd4c8e589fac9b65d7dd88702555f702fb10417f96e2a2a6d4c0f", + "sha256:0b7604868b38c1bfd5cf72d768aedd7db41d78cb6a4a18585e33fb0f9f2363fd", + "sha256:0c37db8606c258e2ee0c56b78c62fc9dee0e901b5dbdcf816c2dd4ad652b8b0c", + "sha256:1c9b93f79f48b03ada57ea24725d83a30284a012ec27eab2cf7e50a550cbbbcc", + "sha256:2107b0c024d1b35f4083f11245c0e23846ae64d02f40b2b226684840260ed054", + "sha256:2229ae655ec4e8999599469559e97630185fdd53ae1e8997d147b7c9b2b72cba", + "sha256:25a18e9810fbc7e7f03ec2516addc116a957f8cbb8cbc95ccc80faa072743d03", + "sha256:26ef06c73eb53267c2b319f43e6634c7556ea37672029241a056629af27c10e2", + "sha256:2e1743fbd7f5fa713a1b0a8ac8ebabf0ec980b5d8809ec358d488e273b9cf02a", + "sha256:32483fe2aab2c3794101c2a159070584e5db11d0aa091b2c0ea9c4fc43d0d749", + "sha256:3bf0f392c0b806905ed174dcd8bdd5e418a40d5567a05615a030a5aeddea692d", + "sha256:3e2a27c89eb9ac3d81ec8835e12414d73536c6e620355d65102503064a4ed6eb", + "sha256:40ad3afe81676fd9ec6d9d406eda00933f218038433980aa19d401490e46ecde", + "sha256:4215d3a102bd95e2e11b5395c78562967959824156af11fa93d18fdd18050990", + "sha256:45d59a649a82df5718fd9527ce775fd66d1af35e6d31abdcdc906a49c6822958", + "sha256:45e0111e73f43f735d70786557dc38141185072d7ff8dc1829d6a77ac1471468", + "sha256:479496325ce554792dba6548fae3df31a72cef7bad71ca2e12b0e58f9b336bfc", + "sha256:490fa6d203992c47c7b9e4a9d39003a0c2bcc1c9aa3c058730884bbbb0ee9f09", + "sha256:49ce47231818806067aea3324d4bf13825b658ad662d3b25fada0bdad9b8a6af", + "sha256:4baf3cbe2f0be3289eb68ac8ae771156971848bb8aaff60bad42005539431980", + "sha256:522175aba7af9113c48ec10cc471b9b9bd4f6ceb36aeb4544a8e2c80ed9d252d", + "sha256:5e8571632780e08526f118f74170ad8d50fb0a48c23a746bef2a6ebade3abd6f", + "sha256:615ba64c208aaceb5ec83bfdce7728b80bfeb8be97562944836a7a0a9647d882", + "sha256:61f69297cba3950a524f61c7c8ee12e55c486cb5f7db47ff9dcee33da6f0d3ae", + "sha256:65a20de41e85648e00305c1bb09a3598f840422e522277641145a32d42dcefcc", + "sha256:6a15c17af8839b6801d554263c546c69c4d7718ad4321e3166175b37eaacca77", + "sha256:747fa73efa9b8b1488a95d0ba1039c8e2dca0f741612d80415b1e1c560febf4e", + "sha256:7be78388d6da1a25c0d5ec506523db58b18be22d9c37d8d3a32c08be4987bd73", + "sha256:81fd9652b37b36f16138611c7e884eb82e0cec137c40d3ef7c3f9b3ed00f6ed8", + "sha256:83d57312a58dcfe2a3a0f9d1389b299438909a02db60e2f2ea2ae2d8034909d3", + "sha256:8843114c0cfce61b40ad48df65abcfc00d4dba82eae8718fab5352390848c5da", + "sha256:8cc3309d8e08fd79089e13ed4819d0af72aa935dd8f435a195fd152796752ff2", + "sha256:8ebe63ee5f8fa4296b1b8cfc743f870d10e902ca18afc65c68cf46fd39bb0783", + "sha256:8eddfb4d203a237da6f3cc8a540dad0517d274b5a1e9e636fd8d2c79b5c1d397", + "sha256:922fa70ba549fce362d2e2871ab542082d66e2aaf0c19480ea453905b01f384e", + "sha256:931091142fd8cc14edccc0845a79248bc155425eee9a98b2db2ea4f00a235a42", + "sha256:971fd5a1d6e62e00d945423a567e42eb1fa678ba89072832185ca836a94daaa6", + "sha256:980a846182ce88c4f2f7e2c22c56aefd515daeb36149d1c897f83cf57999e0b6", + "sha256:9d9adda641db7207e800a7f089068f6f645959f2df27e870ee81d44701dd9db3", + "sha256:9f8f757bebaaea112c00dba718fc0d3260052ce714e25804a03f93f5d1c6cc11", + "sha256:a6ae758eb08088d36812dd5d9af7a9859c05b1e0f714470ea243694b49278e7b", + "sha256:a8c2cf1209497cf659a667d7dea88985e834c24b7c3b605e6254cbb5076d985c", + "sha256:acab0277c40eff7143c2323190ea57b9ee5fd353d8190ee9652369fae735668a", + "sha256:b331680e46239e090f5b3cead313cc772f6caa7d0fc8de349337563125361a4a", + "sha256:c088e7a90b6017307f423efbb9d1ba97a22aa2170876223f9709e9d1de0b5347", + "sha256:d099566accf23d21037f18a2a63d323075bebace807742e4b0ac210971d4dd70", + "sha256:d388087771c837cdb6515539f43b9d4bf0b0f23593a24054ac16f7a960be16f4", + "sha256:dcfe41187da8992c5f40aa8c5ec086fa3672834d2be57a32384c08d5a05b4c00", + "sha256:e6d1db20594d9daba22f90da738b1a0441a7427552cc6e2e3d1297aeddc00378", + "sha256:ebea5cc3aa8ea72e04df9913492f9a96d9348db876f9dda3ad729cfedf7ac416", + "sha256:ebebf83299b0cb1721a8859ea98f3a77811e35dce7609c5c963b9ad90728f886", + "sha256:f0e34c2079d47ae9f6188211db9e777c619a21d4faba6977774e8fa43b085e48", + "sha256:f92f88e6c033db65a5ae3d97905c8fea9c725b63e28d5a75cb73b49bda5024d8", + "sha256:f9f7bd5faab55f47231ad8dba7787866b69f5e93bc306e3915606779bbfb4ba8", + "sha256:fd5ef5932f6475c436c4a55e4336ebbe47bd3272be04964a03d316bbf4afbcbc", + "sha256:ff8a59ea85a1f2191a0ffcc61298c571bc566332f82e5f5be1b83c9d8e668a62" ], "index": "pypi", "markers": "python_version >= '3.9'", - "version": "==1.75.0" + "version": "==1.76.0" }, "grpcio-tools": { "hashes": [ - "sha256:05087b1879b3f32a2182f1365e34233236c22e1a1e8cc448b5d29ea58d661846", - "sha256:08cc1b8a1364a5b8f975e6a7273684d13630caab76c209a201464ad05f826eb9", - "sha256:0a0c899175dd23e96f61b3ab8153642e0ae0182b9c9a582cd0cc4702a056d845", - "sha256:0f4f31035a5178acd924a052b8954d5ac71319092b57e3711438ca6518b71017", - "sha256:1241f8c65f2429f00d9e15e819aca2138c5aa571f0ac644ab658a0281dc177d9", - "sha256:16a9597d1bd4143a71bfae341a32952a64c094a63d3d0bdd24b21fdc8b843846", - "sha256:186c11fe9c8ef90b0862013b61876693644c952fda8fffef6ab0de0a83f90479", - "sha256:193ce6aef33417849289cbb518402fe60c00d0fa66d68ea9a30c98cb8818280c", - "sha256:26f1f3cedebe465f97b5aad312fb775a4bd53a0e88d08c4000e588c195519eca", - "sha256:3072b10f4ad82739650aa9d667b536de8d4973083236215b7bf2389ba75bb507", - "sha256:3351acef4b8897e99bdceae5cfcc300e1e5c1d88c0fc2ffc2b5ca1bd5ce4ced8", - "sha256:35d4368794506db2b0acde60e7e2bae21255cc0d05db9ffc078510ab6a84ff4f", - "sha256:39c6ff052960a3301cd920549384a2ad7cb3165c778feed601cae2a2131b63f8", - "sha256:3ac8a663e955bf3188f76d93d7fdc656f346ff54ea7e512eb034374c6fd61b50", - "sha256:3c30cb36ae1a4ed5fb1960f4bc0000548fecb9ff21a51d78a1f54e3424f971c0", - "sha256:495ce168f996d4c42328e17b788d51d808fc585a80612fe70943c00ac16d0fca", - "sha256:4d28cb03efb871a0ce13dc0fe1416c237ed6d70c42f19a64cef24aba88dd7c5f", - "sha256:509ec0ce7c4269c2bea6015efcdcde00a5d55d97c88ad17587b4247cdc3d2fe8", - "sha256:53c116d0d5df70845330eefb98ef4242ff09be264a22bc5e18f171a3047c9e66", - "sha256:5c5465cd7b83c34f3c987a235fe3b04012411502d4bc66de5a34b238617ded4c", - "sha256:5ca29b0ae735044c6a48072cf7bf53e34ce9ab03eec66acaf2173071d4f66d8a", - "sha256:5e0c8d5d4bdce7f32e2fef3e2304cdca1fbb16a6469c7d3bce38884ee4c449d1", - "sha256:60bd449814fe3cebeda11c0cda3a3adffd81941559aa254e6d153751baa0cffc", - "sha256:688668666265a8f3e5eb86f73694e8adac2d2cc5f40c90249ce80bf6c6cec9ea", - "sha256:69742254df93323275b7ee5ac017e3b9fdba8ecc6dca00bd6b2cd1c70c80a9c2", - "sha256:6c3b8dbe8b2ad7df4ba661b5ee29ae8fe79d2715aade519847deaef26f5c1a06", - "sha256:6ded12c79fb56ceae0ce60e653453159bfc2ccb044922b7e7d721de6c8e04506", - "sha256:7154a35243a49704782b39e8780d9a0adb393a9cedba2ab65c352e94ff42fe8c", - "sha256:82692be482cdcf7ac9b79563dbea99333835aaa3f5e7f0641689766b64b91543", - "sha256:8707b63acb1e08c4031e959936af45487bc185a3fa1ae37fdac465e8ab311774", - "sha256:899c46520446ad1935f5899729746b390e13085e9757d043401298b18fa37d99", - "sha256:9083fe53cbe17b972d9ede47b1e6c82ec532a91770d41c790c4f9b39291041c3", - "sha256:91e430e9368afc38e94645f744840ab06995cfb7312233623c5d7370f8c0dd7c", - "sha256:93b297f77a3f9fe99ea30597e98fd62d3d40bc2520f3e6c6c12b202710a2581d", - "sha256:990d183fee5a2ef9d4f3a220b6506f5da740271da175efcb7e4e34ebc3191a12", - "sha256:9a620de24caa85b102d2416c3f679260d1d4103edcc2806d7dda43aad1913e01", - "sha256:a07aa71ad96103b18bb84dc069dd139897356116d2aaa68d3df84d4d59701ae8", - "sha256:a68a8dcbcbd1df33e7c08c2ceeb69ed8fd53e235784ac680dfe3fc1e89aac2ac", - "sha256:aaec9c9b1cb0ff3823961e74b6cf0a1e6b0e7a82fa2fb0b2bc7b312978bd34f7", - "sha256:b9f64ab078f1e8ea09ceb72c3f7a55b9cbec515fd20e804aea78491adf785503", - "sha256:c2bad23bd0d43acd9d7032b6ffb04f5eb176d853cd32967eb2c4a39044c81cfe", - "sha256:c42fc86ab55018ba5afe2aa95d6d34e2e763da06eff23c08bed487a556341071", - "sha256:c49649d2b46a5a09419631adec105b05bcb016e5727c8f1b08ac8e16d9b0e3e0", - "sha256:c944610bc009185f3da399030a2a8a9d550ae3246f93ad20ff63593fa883ddfb", - "sha256:cdbccc5a4809ef9414b7c434dd1aabc94b66a01c01c13ecc1edba9f8f4277b44", - "sha256:d1a224887f70981683dfcaacc253c08f3680b919c0b2353fbb57f89b27e1c9b9", - "sha256:dcfb12654fb1d6ce84f4a55d3dfbc267a04d53dc9b52ee0974b2110d02f68dac", - "sha256:eb5e4025034d92da3c81fd5e3468c33d5ae7571b07a72c385b5ec1746658573f", - "sha256:ebdac7cc820459874f3b19eddddae19c0c7e7cdf228aee8e7567cec1fddb2ae3", - "sha256:edefbb90bb7ddc4eadac3463d5f7084e1d43b1d713254f668dd55c25db5b5ef2", - "sha256:fd038847974aeb883ee0f3b5b535d85618ad32789c15c9bf24af6c12a44f67f1" + "sha256:0071b1c0bd0f5f9d292dca4efab32c92725d418e57f9c60acdc33c0172af8b53", + "sha256:0b018a4b7455a7e8c16d0fdb3655a6ba6c9536da6de6c5d4f11b6bb73378165b", + "sha256:0cd489016766b05f9ed8a6b6596004b62c57d323f49593eac84add032a6d43f7", + "sha256:0d4e4afe9a0e3c24fad2f1af45f98cf8700b2bfc4d790795756ba035d2ea7bdc", + "sha256:105e53435b2eed3961da543db44a2a34479d98d18ea248219856f30a0ca4646b", + "sha256:12e1186b0256414a9153d414e4852e7282863a8173ebcee67b3ebe2e1c47a755", + "sha256:14c17014d2349b9954385bee487f51979b4b7f9067017099ae45c4f93360d373", + "sha256:243af7c8fc7ff22a40a42eb8e0f6f66963c1920b75aae2a2ec503a9c3c8b31c1", + "sha256:2ccd2c8d041351cc29d0fc4a84529b11ee35494a700b535c1f820b642f2a72fc", + "sha256:2ce5e87ec71f2e4041dce4351f2a8e3b713e3bca6b54c69c3fbc6c7ad1f4c386", + "sha256:2d7679680a456528b9a71a2589cb24d3dd82ec34327281f5695077a567dee433", + "sha256:30f1d2dda6ece285b3d9084e94f66fa721ebdba14ae76b2bc4c581c8a166535c", + "sha256:3dafa34c2626a6691d103877e8a145f54c34cf6530975f695b396ed2fc5c98f8", + "sha256:454a1232c7f99410d92fa9923c7851fd4cdaf657ee194eac73ea1fe21b406d6e", + "sha256:479ce02dff684046f909a487d452a83a96b4231f7c70a3b218a075d54e951f56", + "sha256:4ad555b8647de1ebaffb25170249f89057721ffb74f7da96834a07b4855bb46a", + "sha256:4b77ce6b6c17869858cfe14681ad09ed3a8a80e960e96035de1fd87f78158740", + "sha256:5c120c2cf4443121800e7f9bcfe2e94519fa25f3bb0b9882359dd3b252c78a7b", + "sha256:630cd7fd3e8a63e20703a7ad816979073c2253e591b5422583c27cae2570de73", + "sha256:63551f371082173e259e7f6ec24b5f1fe7d66040fadd975c966647bca605a2d3", + "sha256:6a9818ff884796b12dcf8db32126e40ec1098cacf5697f27af9cfccfca1c1fae", + "sha256:6ae1d11477b05baead0fce051dece86a0e79d9b592245e0026c998da11c278c4", + "sha256:75a2c34584c99ff47e5bb267866e7dec68d30cd3b2158e1ee495bfd6db5ad4f0", + "sha256:7fefd41fc4ca11fab36f42bdf0f3812252988f8798fca8bec8eae049418deacd", + "sha256:8207b890f423142cc0025d041fb058f7286318df6a049565c27869d73534228b", + "sha256:888346b8b3f4152953626e38629ade9d79940ae85c8fd539ce39b72602191fb2", + "sha256:8b7df5591d699cd9076065f1f15049e9c3597e0771bea51c8c97790caf5e4197", + "sha256:8d95b5c2394bbbe911cbfc88d15e24c9e174958cb44dad6aa8c46fe367f6cc2a", + "sha256:908758789b0a612102c88e8055b7191eb2c4290d5d6fc50fb9cac737f8011ef1", + "sha256:9b99086080ca394f1da9894ee20dedf7292dd614e985dcba58209a86a42de602", + "sha256:9ba4bb539936642a44418b38ee6c3e8823c037699e2cb282bd8a44d76a4be833", + "sha256:a25048c5f984d33e3f5b6ad7618e98736542461213ade1bd6f2fcfe8ce804e3d", + "sha256:a83c87513b708228b4cad7619311daba65b40937745103cadca3db94a6472d9c", + "sha256:a889af059dc6dbb82d7b417aa581601316e364fe12eb54c1b8d95311ea50916d", + "sha256:aa2f030fd0ef17926026ee8e2b700e388d3439155d145c568fa6b32693277613", + "sha256:b05efe5a59883ab8292d596657273a60e0c3e4f5a9723c32feb9fc3a06f2f3ef", + "sha256:b598fdcebffa931c7da5c9e90b5805fff7e9bc6cf238319358a1b85704c57d33", + "sha256:b8da4d828883913f1852bdd67383713ae5c11842f6c70f93f31893eab530aead", + "sha256:bacbf3c54f88c38de8e28f8d9b97c90b76b105fb9ddef05d2c50df01b32b92af", + "sha256:be480142fae0d986d127d6cb5cbc0357e4124ba22e96bb8b9ece32c48bc2c8ea", + "sha256:be483b90e62b7892eb71fa1fc49750bee5b2ee35b5ec99dd2b32bed4bedb5d71", + "sha256:c3f2c3c44c56eb5d479ab178f0174595d0a974c37dade442f05bb73dfec02f31", + "sha256:c53c5719ef2a435997755abde3826ba4087174bd432aa721d8fac781fcea79e4", + "sha256:c6480f6af6833850a85cca1c6b435ef4ffd2ac8e88ef683b4065233827950243", + "sha256:c7c23fe1dc09818e16a48853477806ad77dd628b33996f78c05a293065f8210c", + "sha256:c83f39f64c2531336bd8d5c846a2159c9ea6635508b0f8ed3ad0d433e25b53c9", + "sha256:ca9ccf667afc0268d45ab202af4556c72e57ea36ebddc93535e1a25cbd4f8aba", + "sha256:cb0cc0b3edf1f076b2475a98122a51f3f3358b9a740dedff1a9a4dec6477ef96", + "sha256:cbc16156ba2533e5bad16ff1648213dc3b0a0b0e4de6d17b65e8d60578014002", + "sha256:ce80169b5e6adf3e8302f3ebb6cb0c3a9f08089133abca4b76ad67f751f5ad88", + "sha256:d54e9ce2ffc5d01341f0c8898c1471d887ae93d77451884797776e0a505bd503", + "sha256:e3db1300d7282264639eeee7243f5de7e6a7c0283f8bf05d66c0315b7b0f0b36", + "sha256:eb2567280f9f6da5444043f0e84d8408c7a10df9ba3201026b30e40ef3814736", + "sha256:ec6e49e7c4b2a222eb26d1e1726a07a572b6e629b2cf37e6bb784c9687904a52", + "sha256:ec6e4de3866e47cfde56607b1fae83ecc5aa546e06dec53de11f88063f4b5275", + "sha256:f919e480983e610263846dbeab22ad808ad0fac6d4bd15c52e9f7f80d1f08479", + "sha256:fbbd4e1fc5af98001ceef5e780e8c10921d94941c3809238081e73818ef707f1", + "sha256:fcdce7f7770ff052cd4e60161764b0b3498c909bde69138f8bd2e7b24a3ecd8f", + "sha256:fdd8b382ed21d7d429a9879198743abead0b08ad2249b554fd2f2395450bcdf1", + "sha256:fe0cc10dd31ac01cadc8af1ce7877cc770bc2a71aa96569bc3c1897c1eac0116", + "sha256:ff48969f81858397ef33a36b326f2dbe2053a48b254593785707845db73c8f44" ], "index": "pypi", "markers": "python_version >= '3.9'", - "version": "==1.75.0" + "version": "==1.76.0" }, "httplib2": { "hashes": [ - "sha256:ac7ab497c50975147d4f7b1ade44becc7df2f8954d42b38b3d69c515f531135c", - "sha256:b9cd78abea9b4e43a7714c6e0f8b6b8561a6fc1e95d5dbd367f5bf0ef35f5d24" + "sha256:21591655ac54953624c6ab8d587c71675e379e31e2cfe3147c83c11e9ef41f92", + "sha256:d520d22fa7e50c746a7ed856bac298c4300105d01bc2d8c2580a9b57fb9ed617" ], "markers": "python_version >= '3.6'", - "version": "==0.31.0" + "version": "==0.31.1" }, "idna": { "hashes": [ - "sha256:12f65c9b470abda6dc35cf8e63cc574b1c52b11df2c86030af0ac09b01b13ea9", - "sha256:946d195a0d259cbba61165e88e65941f16e9b36ea6ddb97f00452bae8b1287d3" + "sha256:771a87f49d9defaf64091e6e6fe9c18d4833f140bd19464795bc32d966ca37ea", + "sha256:795dafcc9c04ed0c1fb032c2aa73654d8e8c5023a7df64a53f39190ada629902" ], - "markers": "python_version >= '3.6'", - "version": "==3.10" + "markers": "python_version >= '3.8'", + "version": "==3.11" }, "indykite-sdk-python": { "editable": true, - "markers": "python_version ~= '3.11'", "path": "." }, "iniconfig": { "hashes": [ - "sha256:3abbd2e30b36733fee78f9c7f7308f2d0050e88f0087fd25c2645f63c773e1c7", - "sha256:9deba5723312380e77435581c6bf4935c94cbfab9b1ed33ef8d238ea168eb760" + "sha256:c76315c77db068650d49c5b56314774a7804df16fee4402c1f19d6d15d8c4730", + "sha256:f631c04d2c48c52b84d0d0549c99ff3859c98df65b3101406327ecc7d53fbf12" ], - "markers": "python_version >= '3.8'", - "version": "==2.1.0" + "markers": "python_version >= '3.10'", + "version": "==2.3.0" }, "ipaddress": { "hashes": [ @@ -656,71 +689,99 @@ }, "markupsafe": { "hashes": [ - "sha256:0bff5e0ae4ef2e1ae4fdf2dfd5b76c75e5c2fa4132d05fc1b0dabcd20c7e28c4", - "sha256:0f4ca02bea9a23221c0182836703cbf8930c5e9454bacce27e767509fa286a30", - "sha256:1225beacc926f536dc82e45f8a4d68502949dc67eea90eab715dea3a21c1b5f0", - "sha256:131a3c7689c85f5ad20f9f6fb1b866f402c445b220c19fe4308c0b147ccd2ad9", - "sha256:15ab75ef81add55874e7ab7055e9c397312385bd9ced94920f2802310c930396", - "sha256:1a9d3f5f0901fdec14d8d2f66ef7d035f2157240a433441719ac9a3fba440b13", - "sha256:1c99d261bd2d5f6b59325c92c73df481e05e57f19837bdca8413b9eac4bd8028", - "sha256:1e084f686b92e5b83186b07e8a17fc09e38fff551f3602b249881fec658d3eca", - "sha256:2181e67807fc2fa785d0592dc2d6206c019b9502410671cc905d132a92866557", - "sha256:2cb8438c3cbb25e220c2ab33bb226559e7afb3baec11c4f218ffa7308603c832", - "sha256:3169b1eefae027567d1ce6ee7cae382c57fe26e82775f460f0b2778beaad66c0", - "sha256:3809ede931876f5b2ec92eef964286840ed3540dadf803dd570c3b7e13141a3b", - "sha256:38a9ef736c01fccdd6600705b09dc574584b89bea478200c5fbf112a6b0d5579", - "sha256:3d79d162e7be8f996986c064d1c7c817f6df3a77fe3d6859f6f9e7be4b8c213a", - "sha256:444dcda765c8a838eaae23112db52f1efaf750daddb2d9ca300bcae1039adc5c", - "sha256:48032821bbdf20f5799ff537c7ac3d1fba0ba032cfc06194faffa8cda8b560ff", - "sha256:4aa4e5faecf353ed117801a068ebab7b7e09ffb6e1d5e412dc852e0da018126c", - "sha256:52305740fe773d09cffb16f8ed0427942901f00adedac82ec8b67752f58a1b22", - "sha256:569511d3b58c8791ab4c2e1285575265991e6d8f8700c7be0e88f86cb0672094", - "sha256:57cb5a3cf367aeb1d316576250f65edec5bb3be939e9247ae594b4bcbc317dfb", - "sha256:5b02fb34468b6aaa40dfc198d813a641e3a63b98c2b05a16b9f80b7ec314185e", - "sha256:6381026f158fdb7c72a168278597a5e3a5222e83ea18f543112b2662a9b699c5", - "sha256:6af100e168aa82a50e186c82875a5893c5597a0c1ccdb0d8b40240b1f28b969a", - "sha256:6c89876f41da747c8d3677a2b540fb32ef5715f97b66eeb0c6b66f5e3ef6f59d", - "sha256:6e296a513ca3d94054c2c881cc913116e90fd030ad1c656b3869762b754f5f8a", - "sha256:70a87b411535ccad5ef2f1df5136506a10775d267e197e4cf531ced10537bd6b", - "sha256:7e94c425039cde14257288fd61dcfb01963e658efbc0ff54f5306b06054700f8", - "sha256:846ade7b71e3536c4e56b386c2a47adf5741d2d8b94ec9dc3e92e5e1ee1e2225", - "sha256:88416bd1e65dcea10bc7569faacb2c20ce071dd1f87539ca2ab364bf6231393c", - "sha256:88b49a3b9ff31e19998750c38e030fc7bb937398b1f78cfa599aaef92d693144", - "sha256:8c4e8c3ce11e1f92f6536ff07154f9d49677ebaaafc32db9db4620bc11ed480f", - "sha256:8e06879fc22a25ca47312fbe7c8264eb0b662f6db27cb2d3bbbc74b1df4b9b87", - "sha256:9025b4018f3a1314059769c7bf15441064b2207cb3f065e6ea1e7359cb46db9d", - "sha256:93335ca3812df2f366e80509ae119189886b0f3c2b81325d39efdb84a1e2ae93", - "sha256:9778bd8ab0a994ebf6f84c2b949e65736d5575320a17ae8984a77fab08db94cf", - "sha256:9e2d922824181480953426608b81967de705c3cef4d1af983af849d7bd619158", - "sha256:a123e330ef0853c6e822384873bef7507557d8e4a082961e1defa947aa59ba84", - "sha256:a904af0a6162c73e3edcb969eeeb53a63ceeb5d8cf642fade7d39e7963a22ddb", - "sha256:ad10d3ded218f1039f11a75f8091880239651b52e9bb592ca27de44eed242a48", - "sha256:b424c77b206d63d500bcb69fa55ed8d0e6a3774056bdc4839fc9298a7edca171", - "sha256:b5a6b3ada725cea8a5e634536b1b01c30bcdcd7f9c6fff4151548d5bf6b3a36c", - "sha256:ba8062ed2cf21c07a9e295d5b8a2a5ce678b913b45fdf68c32d95d6c1291e0b6", - "sha256:ba9527cdd4c926ed0760bc301f6728ef34d841f405abf9d4f959c478421e4efd", - "sha256:bbcb445fa71794da8f178f0f6d66789a28d7319071af7a496d4d507ed566270d", - "sha256:bcf3e58998965654fdaff38e58584d8937aa3096ab5354d493c77d1fdd66d7a1", - "sha256:c0ef13eaeee5b615fb07c9a7dadb38eac06a0608b41570d8ade51c56539e509d", - "sha256:cabc348d87e913db6ab4aa100f01b08f481097838bdddf7c7a84b7575b7309ca", - "sha256:cdb82a876c47801bb54a690c5ae105a46b392ac6099881cdfb9f6e95e4014c6a", - "sha256:cfad01eed2c2e0c01fd0ecd2ef42c492f7f93902e39a42fc9ee1692961443a29", - "sha256:d16a81a06776313e817c951135cf7340a3e91e8c1ff2fac444cfd75fffa04afe", - "sha256:d8213e09c917a951de9d09ecee036d5c7d36cb6cb7dbaece4c71a60d79fb9798", - "sha256:e07c3764494e3776c602c1e78e298937c3315ccc9043ead7e685b7f2b8d47b3c", - "sha256:e17c96c14e19278594aa4841ec148115f9c7615a47382ecb6b82bd8fea3ab0c8", - "sha256:e444a31f8db13eb18ada366ab3cf45fd4b31e4db1236a4448f68778c1d1a5a2f", - "sha256:e6a2a455bd412959b57a172ce6328d2dd1f01cb2135efda2e4576e8a23fa3b0f", - "sha256:eaa0a10b7f72326f1372a713e73c3f739b524b3af41feb43e4921cb529f5929a", - "sha256:eb7972a85c54febfb25b5c4b4f3af4dcc731994c7da0d8a0b4a6eb0640e1d178", - "sha256:ee55d3edf80167e48ea11a923c7386f4669df67d7994554387f84e7d8b0a2bf0", - "sha256:f3818cb119498c0678015754eba762e0d61e5b52d34c8b13d770f0719f7b1d79", - "sha256:f8b3d067f2e40fe93e1ccdd6b2e1d16c43140e76f02fb1319a05cf2b79d99430", - "sha256:fcabf5ff6eea076f859677f5f0b6b5c1a51e70a376b0579e0eadef8db48c6b50" + "sha256:0303439a41979d9e74d18ff5e2dd8c43ed6c6001fd40e5bf2e43f7bd9bbc523f", + "sha256:068f375c472b3e7acbe2d5318dea141359e6900156b5b2ba06a30b169086b91a", + "sha256:0bf2a864d67e76e5c9a34dc26ec616a66b9888e25e7b9460e1c76d3293bd9dbf", + "sha256:0db14f5dafddbb6d9208827849fad01f1a2609380add406671a26386cdf15a19", + "sha256:0eb9ff8191e8498cca014656ae6b8d61f39da5f95b488805da4bb029cccbfbaf", + "sha256:0f4b68347f8c5eab4a13419215bdfd7f8c9b19f2b25520968adfad23eb0ce60c", + "sha256:1085e7fbddd3be5f89cc898938f42c0b3c711fdcb37d75221de2666af647c175", + "sha256:116bb52f642a37c115f517494ea5feb03889e04df47eeff5b130b1808ce7c219", + "sha256:12c63dfb4a98206f045aa9563db46507995f7ef6d83b2f68eda65c307c6829eb", + "sha256:133a43e73a802c5562be9bbcd03d090aa5a1fe899db609c29e8c8d815c5f6de6", + "sha256:1353ef0c1b138e1907ae78e2f6c63ff67501122006b0f9abad68fda5f4ffc6ab", + "sha256:15d939a21d546304880945ca1ecb8a039db6b4dc49b2c5a400387cdae6a62e26", + "sha256:177b5253b2834fe3678cb4a5f0059808258584c559193998be2601324fdeafb1", + "sha256:1872df69a4de6aead3491198eaf13810b565bdbeec3ae2dc8780f14458ec73ce", + "sha256:1b4b79e8ebf6b55351f0d91fe80f893b4743f104bff22e90697db1590e47a218", + "sha256:1b52b4fb9df4eb9ae465f8d0c228a00624de2334f216f178a995ccdcf82c4634", + "sha256:1ba88449deb3de88bd40044603fafffb7bc2b055d626a330323a9ed736661695", + "sha256:1cc7ea17a6824959616c525620e387f6dd30fec8cb44f649e31712db02123dad", + "sha256:218551f6df4868a8d527e3062d0fb968682fe92054e89978594c28e642c43a73", + "sha256:26a5784ded40c9e318cfc2bdb30fe164bdb8665ded9cd64d500a34fb42067b1c", + "sha256:2713baf880df847f2bece4230d4d094280f4e67b1e813eec43b4c0e144a34ffe", + "sha256:2a15a08b17dd94c53a1da0438822d70ebcd13f8c3a95abe3a9ef9f11a94830aa", + "sha256:2f981d352f04553a7171b8e44369f2af4055f888dfb147d55e42d29e29e74559", + "sha256:32001d6a8fc98c8cb5c947787c5d08b0a50663d139f1305bac5885d98d9b40fa", + "sha256:3524b778fe5cfb3452a09d31e7b5adefeea8c5be1d43c4f810ba09f2ceb29d37", + "sha256:3537e01efc9d4dccdf77221fb1cb3b8e1a38d5428920e0657ce299b20324d758", + "sha256:35add3b638a5d900e807944a078b51922212fb3dedb01633a8defc4b01a3c85f", + "sha256:38664109c14ffc9e7437e86b4dceb442b0096dfe3541d7864d9cbe1da4cf36c8", + "sha256:3a7e8ae81ae39e62a41ec302f972ba6ae23a5c5396c8e60113e9066ef893da0d", + "sha256:3b562dd9e9ea93f13d53989d23a7e775fdfd1066c33494ff43f5418bc8c58a5c", + "sha256:457a69a9577064c05a97c41f4e65148652db078a3a509039e64d3467b9e7ef97", + "sha256:4bd4cd07944443f5a265608cc6aab442e4f74dff8088b0dfc8238647b8f6ae9a", + "sha256:4e885a3d1efa2eadc93c894a21770e4bc67899e3543680313b09f139e149ab19", + "sha256:4faffd047e07c38848ce017e8725090413cd80cbc23d86e55c587bf979e579c9", + "sha256:509fa21c6deb7a7a273d629cf5ec029bc209d1a51178615ddf718f5918992ab9", + "sha256:5678211cb9333a6468fb8d8be0305520aa073f50d17f089b5b4b477ea6e67fdc", + "sha256:591ae9f2a647529ca990bc681daebdd52c8791ff06c2bfa05b65163e28102ef2", + "sha256:5a7d5dc5140555cf21a6fefbdbf8723f06fcd2f63ef108f2854de715e4422cb4", + "sha256:69c0b73548bc525c8cb9a251cddf1931d1db4d2258e9599c28c07ef3580ef354", + "sha256:6b5420a1d9450023228968e7e6a9ce57f65d148ab56d2313fcd589eee96a7a50", + "sha256:722695808f4b6457b320fdc131280796bdceb04ab50fe1795cd540799ebe1698", + "sha256:729586769a26dbceff69f7a7dbbf59ab6572b99d94576a5592625d5b411576b9", + "sha256:77f0643abe7495da77fb436f50f8dab76dbc6e5fd25d39589a0f1fe6548bfa2b", + "sha256:795e7751525cae078558e679d646ae45574b47ed6e7771863fcc079a6171a0fc", + "sha256:7be7b61bb172e1ed687f1754f8e7484f1c8019780f6f6b0786e76bb01c2ae115", + "sha256:7c3fb7d25180895632e5d3148dbdc29ea38ccb7fd210aa27acbd1201a1902c6e", + "sha256:7e68f88e5b8799aa49c85cd116c932a1ac15caaa3f5db09087854d218359e485", + "sha256:83891d0e9fb81a825d9a6d61e3f07550ca70a076484292a70fde82c4b807286f", + "sha256:8485f406a96febb5140bfeca44a73e3ce5116b2501ac54fe953e488fb1d03b12", + "sha256:8709b08f4a89aa7586de0aadc8da56180242ee0ada3999749b183aa23df95025", + "sha256:8f71bc33915be5186016f675cd83a1e08523649b0e33efdb898db577ef5bb009", + "sha256:915c04ba3851909ce68ccc2b8e2cd691618c4dc4c4232fb7982bca3f41fd8c3d", + "sha256:949b8d66bc381ee8b007cd945914c721d9aba8e27f71959d750a46f7c282b20b", + "sha256:94c6f0bb423f739146aec64595853541634bde58b2135f27f61c1ffd1cd4d16a", + "sha256:9a1abfdc021a164803f4d485104931fb8f8c1efd55bc6b748d2f5774e78b62c5", + "sha256:9b79b7a16f7fedff2495d684f2b59b0457c3b493778c9eed31111be64d58279f", + "sha256:a320721ab5a1aba0a233739394eb907f8c8da5c98c9181d1161e77a0c8e36f2d", + "sha256:a4afe79fb3de0b7097d81da19090f4df4f8d3a2b3adaa8764138aac2e44f3af1", + "sha256:ad2cf8aa28b8c020ab2fc8287b0f823d0a7d8630784c31e9ee5edea20f406287", + "sha256:b8512a91625c9b3da6f127803b166b629725e68af71f8184ae7e7d54686a56d6", + "sha256:bc51efed119bc9cfdf792cdeaa4d67e8f6fcccab66ed4bfdd6bde3e59bfcbb2f", + "sha256:bdc919ead48f234740ad807933cdf545180bfbe9342c2bb451556db2ed958581", + "sha256:bdd37121970bfd8be76c5fb069c7751683bdf373db1ed6c010162b2a130248ed", + "sha256:be8813b57049a7dc738189df53d69395eba14fb99345e0a5994914a3864c8a4b", + "sha256:c0c0b3ade1c0b13b936d7970b1d37a57acde9199dc2aecc4c336773e1d86049c", + "sha256:c47a551199eb8eb2121d4f0f15ae0f923d31350ab9280078d1e5f12b249e0026", + "sha256:c4ffb7ebf07cfe8931028e3e4c85f0357459a3f9f9490886198848f4fa002ec8", + "sha256:ccfcd093f13f0f0b7fdd0f198b90053bf7b2f02a3927a30e63f3ccc9df56b676", + "sha256:d2ee202e79d8ed691ceebae8e0486bd9a2cd4794cec4824e1c99b6f5009502f6", + "sha256:d53197da72cc091b024dd97249dfc7794d6a56530370992a5e1a08983ad9230e", + "sha256:d6dd0be5b5b189d31db7cda48b91d7e0a9795f31430b7f271219ab30f1d3ac9d", + "sha256:d88b440e37a16e651bda4c7c2b930eb586fd15ca7406cb39e211fcff3bf3017d", + "sha256:de8a88e63464af587c950061a5e6a67d3632e36df62b986892331d4620a35c01", + "sha256:df2449253ef108a379b8b5d6b43f4b1a8e81a061d6537becd5582fba5f9196d7", + "sha256:e1c1493fb6e50ab01d20a22826e57520f1284df32f2d8601fdd90b6304601419", + "sha256:e1cf1972137e83c5d4c136c43ced9ac51d0e124706ee1c8aa8532c1287fa8795", + "sha256:e2103a929dfa2fcaf9bb4e7c091983a49c9ac3b19c9061b6d5427dd7d14d81a1", + "sha256:e56b7d45a839a697b5eb268c82a71bd8c7f6c94d6fd50c3d577fa39a9f1409f5", + "sha256:e8afc3f2ccfa24215f8cb28dcf43f0113ac3c37c2f0f0806d8c70e4228c5cf4d", + "sha256:e8fc20152abba6b83724d7ff268c249fa196d8259ff481f3b1476383f8f24e42", + "sha256:eaa9599de571d72e2daf60164784109f19978b327a3910d3e9de8c97b5b70cfe", + "sha256:ec15a59cf5af7be74194f7ab02d0f59a62bdcf1a537677ce67a2537c9b87fcda", + "sha256:f190daf01f13c72eac4efd5c430a8de82489d9cff23c364c3ea822545032993e", + "sha256:f34c41761022dd093b4b6896d4810782ffbabe30f2d443ff5f083e0cbbb8c737", + "sha256:f3e98bb3798ead92273dc0e5fd0f31ade220f59a266ffd8a4f6065e0a3ce0523", + "sha256:f42d0984e947b8adf7dd6dde396e720934d12c506ce84eea8476409563607591", + "sha256:f71a396b3bf33ecaa1626c255855702aca4d3d9fea5e051b41ac59a9c1c41edc", + "sha256:f9e130248f4462aaa8e2552d547f36ddadbeaa573879158d721bbd33dfe4743a", + "sha256:fed51ac40f757d41b7c48425901843666a6677e3e8eb0abcff09e4ba6e664f50" ], "index": "pypi", "markers": "python_version >= '3.9'", - "version": "==3.0.2" + "version": "==3.0.3" }, "mock": { "hashes": [ @@ -733,92 +794,90 @@ }, "numpy": { "hashes": [ - "sha256:067e3d7159a5d8f8a0b46ee11148fc35ca9b21f61e3c49fbd0a027450e65a33b", - "sha256:0edd58682a399824633b66885d699d7de982800053acf20be1eaa46d92009c54", - "sha256:0ffc4f5caba7dfcbe944ed674b7eef683c7e94874046454bb79ed7ee0236f59d", - "sha256:1250c5d3d2562ec4174bce2e3a1523041595f9b651065e4a4473f5f48a6bc8a5", - "sha256:179a42101b845a816d464b6fe9a845dfaf308fdfc7925387195570789bb2c970", - "sha256:1c02d0629d25d426585fb2e45a66154081b9fa677bc92a881ff1d216bc9919a8", - "sha256:1e02c7159791cd481e1e6d5ddd766b62a4d5acf8df4d4d1afe35ee9c5c33a41e", - "sha256:2990adf06d1ecee3b3dcbb4977dfab6e9f09807598d647f04d385d29e7a3c3d3", - "sha256:2e267c7da5bf7309670523896df97f93f6e469fb931161f483cd6882b3b1a5dc", - "sha256:367ad5d8fbec5d9296d18478804a530f1191e24ab4d75ab408346ae88045d25e", - "sha256:396b254daeb0a57b1fe0ecb5e3cff6fa79a380fa97c8f7781a6d08cd429418fe", - "sha256:3c7cf302ac6e0b76a64c4aecf1a09e51abd9b01fc7feee80f6c43e3ab1b1dbc5", - "sha256:40051003e03db4041aa325da2a0971ba41cf65714e65d296397cc0e32de6018b", - "sha256:414a97499480067d305fcac9716c29cf4d0d76db6ebf0bf3cbce666677f12652", - "sha256:433bf137e338677cebdd5beac0199ac84712ad9d630b74eceeb759eaa45ddf30", - "sha256:4384a169c4d8f97195980815d6fcad04933a7e1ab3b530921c3fef7a1c63426d", - "sha256:497d7cad08e7092dba36e3d296fe4c97708c93daf26643a1ae4b03f6294d30eb", - "sha256:50a5fe69f135f88a2be9b6ca0481a68a136f6febe1916e4920e12f1a34e708a7", - "sha256:533ca5f6d325c80b6007d4d7fb1984c303553534191024ec6a524a4c92a5935a", - "sha256:5534ed6b92f9b7dca6c0a19d6df12d41c68b991cef051d108f6dbff3babc4ebf", - "sha256:5b83648633d46f77039c29078751f80da65aa64d5622a3cd62aaef9d835b6c93", - "sha256:691808c2b26b0f002a032c73255d0bd89751425f379f7bcd22d140db593a96e8", - "sha256:6ee9086235dd6ab7ae75aba5662f582a81ced49f0f1c6de4260a78d8f2d91a19", - "sha256:74c2a948d02f88c11a3c075d9733f1ae67d97c6bdb97f2bb542f980458b257e7", - "sha256:75370986cc0bc66f4ce5110ad35aae6d182cc4ce6433c40ad151f53690130bf1", - "sha256:78c9f6560dc7e6b3990e32df7ea1a50bbd0e2a111e05209963f5ddcab7073b0b", - "sha256:7af05ed4dc19f308e1d9fc759f36f21921eb7bbfc82843eeec6b2a2863a0aefa", - "sha256:7f025652034199c301049296b59fa7d52c7e625017cae4c75d8662e377bf487d", - "sha256:823d04112bc85ef5c4fda73ba24e6096c8f869931405a80aa8b0e604510a26bc", - "sha256:8596ba2f8af5f93b01d97563832686d20206d303024777f6dfc2e7c7c3f1850e", - "sha256:8e9aced64054739037d42fb84c54dd38b81ee238816c948c8f3ed134665dcd86", - "sha256:8f6ac61a217437946a1fa48d24c47c91a0c4f725237871117dea264982128097", - "sha256:901bf6123879b7f251d3631967fd574690734236075082078e0571977c6a8e6a", - "sha256:93d4962d8f82af58f0b2eb85daaf1b3ca23fe0a85d0be8f1f2b7bb46034e56d7", - "sha256:94fcaa68757c3e2e668ddadeaa86ab05499a70725811e582b6a9858dd472fb30", - "sha256:952cfd0748514ea7c3afc729a0fc639e61655ce4c55ab9acfab14bda4f402b4c", - "sha256:9591e1221db3f37751e6442850429b3aabf7026d3b05542d102944ca7f00c8a8", - "sha256:99683cbe0658f8271b333a1b1b4bb3173750ad59c0c61f5bbdc5b318918fffe3", - "sha256:9ad12e976ca7b10f1774b03615a2a4bab8addce37ecc77394d8e986927dc0dfe", - "sha256:9cc48e09feb11e1db00b320e9d30a4151f7369afb96bd0e48d942d09da3a0d00", - "sha256:9dc13c6a5829610cc07422bc74d3ac083bd8323f14e2827d992f9e52e22cd6a6", - "sha256:9e318ee0596d76d4cb3d78535dc005fa60e5ea348cd131a51e99d0bdbe0b54fe", - "sha256:a333b4ed33d8dc2b373cc955ca57babc00cd6f9009991d9edc5ddbc1bac36bcd", - "sha256:afd07d377f478344ec6ca2b8d4ca08ae8bd44706763d1efb56397de606393f48", - "sha256:b001bae8cea1c7dfdb2ae2b017ed0a6f2102d7a70059df1e338e307a4c78a8ae", - "sha256:b37a0b2e5935409daebe82c1e42274d30d9dd355852529eab91dab8dcca7419f", - "sha256:b912f2ed2b67a129e6a601e9d93d4fa37bef67e54cac442a2f588a54afe5c67a", - "sha256:bc92a5dedcc53857249ca51ef29f5e5f2f8c513e22cfb90faeb20343b8c6f7a6", - "sha256:ca0309a18d4dfea6fc6262a66d06c26cfe4640c3926ceec90e57791a82b6eee5", - "sha256:cb248499b0bc3be66ebd6578b83e5acacf1d6cb2a77f2248ce0e40fbec5a76d0", - "sha256:cb32e3cf0f762aee47ad1ddc6672988f7f27045b0783c887190545baba73aa25", - "sha256:cd052f1fa6a78dee696b58a914b7229ecfa41f0a6d96dc663c1220a55e137593", - "sha256:cd4260f64bc794c3390a63bf0728220dd1a68170c169088a1e0dfa2fde1be12f", - "sha256:cd7de500a5b66319db419dc3c345244404a164beae0d0937283b907d8152e6ea", - "sha256:ce020080e4a52426202bdb6f7691c65bb55e49f261f31a8f506c9f6bc7450421", - "sha256:cfdd09f9c84a1a934cde1eec2267f0a43a7cd44b2cca4ff95b7c0d14d144b0bf", - "sha256:d00de139a3324e26ed5b95870ce63be7ec7352171bc69a4cf1f157a48e3eb6b7", - "sha256:d79715d95f1894771eb4e60fb23f065663b2298f7d22945d66877aadf33d00c7", - "sha256:d8f3b1080782469fdc1718c4ed1d22549b5fb12af0d57d35e992158a772a37cf", - "sha256:d9192da52b9745f7f0766531dcfa978b7763916f158bb63bdb8a1eca0068ab20", - "sha256:d9d537a39cc9de668e5cd0e25affb17aec17b577c6b3ae8a3d866b479fbe88d0", - "sha256:da1a74b90e7483d6ce5244053399a614b1d6b7bc30a60d2f570e5071f8959d3e", - "sha256:dca2d0fc80b3893ae72197b39f69d55a3cd8b17ea1b50aa4c62de82419936150", - "sha256:ddc7c39727ba62b80dfdbedf400d1c10ddfa8eefbd7ec8dcb118be8b56d31029", - "sha256:e1ec5615b05369925bd1125f27df33f3b6c8bc10d788d5999ecd8769a1fa04db", - "sha256:e6687dc183aa55dae4a705b35f9c0f8cb178bcaa2f029b241ac5356221d5c021", - "sha256:e7e946c7170858a0295f79a60214424caac2ffdb0063d4d79cb681f9aa0aa569", - "sha256:eb63d443d7b4ffd1e873f8155260d7f58e7e4b095961b01c91062935c2491e57", - "sha256:ec9d249840f6a565f58d8f913bccac2444235025bbb13e9a4681783572ee3caa", - "sha256:ed635ff692483b8e3f0fcaa8e7eb8a75ee71aa6d975388224f70821421800cea", - "sha256:eda59e44957d272846bb407aad19f89dc6f58fecf3504bd144f4c5cf81a7eacc", - "sha256:f0dadeb302887f07431910f67a14d57209ed91130be0adea2f9793f1a4f817cf", - "sha256:f0ddb4b96a87b6728df9362135e764eac3cfa674499943ebc44ce96c478ab125", - "sha256:f5415fb78995644253370985342cd03572ef8620b934da27d77377a2285955bf" + "sha256:0093e85df2960d7e4049664b26afc58b03236e967fb942354deef3208857a04c", + "sha256:09aa8a87e45b55a1c2c205d42e2808849ece5c484b2aab11fecabec3841cafba", + "sha256:0cce2a669e3c8ba02ee563c7835f92c153cf02edff1ae05e1823f1dde21b16a5", + "sha256:0e6e8f9d9ecf95399982019c01223dc130542960a12edfa8edd1122dfa66a8a8", + "sha256:0f118ce6b972080ba0758c6087c3617b5ba243d806268623dc34216d69099ba0", + "sha256:178de8f87948163d98a4c9ab5bee4ce6519ca918926ec8df195af582de28544d", + "sha256:18e14c4d09d55eef39a6ab5b08406e84bc6869c1e34eef45564804f90b7e0574", + "sha256:2023ef86243690c2791fd6353e5b4848eedaa88ca8a2d129f462049f6d484696", + "sha256:20d4649c773f66cc2fc36f663e091f57c3b7655f936a4c681b4250855d1da8f5", + "sha256:2302dc0224c1cbc49bb94f7064f3f923a971bfae45c33870dcbff63a2a550505", + "sha256:26f0bcd9c79a00e339565b303badc74d3ea2bd6d52191eeca5f95936cad107d0", + "sha256:297c72b1b98100c2e8f873d5d35fb551fce7040ade83d67dd51d38c8d42a2162", + "sha256:2f44de05659b67d20499cbc96d49f2650769afcb398b79b324bb6e297bfe3844", + "sha256:2ffd257026eb1b34352e749d7cc1678b5eeec3e329ad8c9965a797e08ccba205", + "sha256:382ad67d99ef49024f11d1ce5dcb5ad8432446e4246a4b014418ba3a1175a1f4", + "sha256:3869ea1ee1a1edc16c29bbe3a2f2a4e515cc3a44d43903ad41e0cacdbaf733dc", + "sha256:3d1a100e48cb266090a031397863ff8a30050ceefd798f686ff92c67a486753d", + "sha256:423797bdab2eeefbe608d7c1ec7b2b4fd3c58d51460f1ee26c7500a1d9c9ee93", + "sha256:42d7dd5fa36d16d52a84f821eb96031836fd405ee6955dd732f2023724d0aa01", + "sha256:49e792ec351315e16da54b543db06ca8a86985ab682602d90c60ef4ff4db2a9c", + "sha256:4e53170557d37ae404bf8d542ca5b7c629d6efa1117dac6a83e394142ea0a43f", + "sha256:4f1b68ff47680c2925f8063402a693ede215f0257f02596b1318ecdfb1d79e33", + "sha256:4f9c360ecef085e5841c539a9a12b883dff005fbd7ce46722f5e9cef52634d82", + "sha256:529050522e983e00a6c1c6b67411083630de8b57f65e853d7b03d9281b8694d2", + "sha256:52b5f61bdb323b566b528899cc7db2ba5d1015bda7ea811a8bcf3c89c331fa42", + "sha256:538bf4ec353709c765ff75ae616c34d3c3dca1a68312727e8f2676ea644f8509", + "sha256:5adf01965456a664fc727ed69cc71848f28d063217c63e1a0e200a118d5eec9a", + "sha256:5b55aa56165b17aaf15520beb9cbd33c9039810e0d9643dd4379e44294c7303e", + "sha256:5d558123217a83b2d1ba316b986e9248a1ed1971ad495963d555ccd75dcb1556", + "sha256:5de60946f14ebe15e713a6f22850c2372fa72f4ff9a432ab44aa90edcadaa65a", + "sha256:62fea415f83ad8fdb6c20840578e5fbaf5ddd65e0ec6c3c47eda0f69da172510", + "sha256:6436cffb4f2bf26c974344439439c95e152c9a527013f26b3577be6c2ca64295", + "sha256:6461de5113088b399d655d45c3897fa188766415d0f568f175ab071c8873bd73", + "sha256:69e7419c9012c4aaf695109564e3387f1259f001b4326dfa55907b098af082d3", + "sha256:71abbea030f2cfc3092a0ff9f8c8fdefdc5e0bf7d9d9c99663538bb0ecdac0b9", + "sha256:7211b95ca365519d3596a1d8688a95874cc94219d417504d9ecb2df99fa7bfa8", + "sha256:727c6c3275ddefa0dc078524a85e064c057b4f4e71ca5ca29a19163c607be745", + "sha256:79e9e06c4c2379db47f3f6fc7a8652e7498251789bf8ff5bd43bf478ef314ca2", + "sha256:7ad270f438cbdd402c364980317fb6b117d9ec5e226fff5b4148dd9aa9fc6e02", + "sha256:7d5d7999df434a038d75a748275cd6c0094b0ecdb0837342b332a82defc4dc4d", + "sha256:8097529164c0f3e32bb89412a0905d9100bf434d9692d9fc275e18dcf53c9344", + "sha256:82c55962006156aeef1629b953fd359064aa47e4d82cfc8e67f0918f7da3344f", + "sha256:8361ea4220d763e54cff2fbe7d8c93526b744f7cd9ddab47afeff7e14e8503be", + "sha256:899d2c18024984814ac7e83f8f49d8e8180e2fbe1b2e252f2e7f1d06bea92425", + "sha256:8ad35f20be147a204e28b6a0575fbf3540c5e5f802634d4258d55b1ff5facce1", + "sha256:8f085da926c0d491ffff3096f91078cc97ea67e7e6b65e490bc8dcda65663be2", + "sha256:9171a42fcad32dcf3fa86f0a4faa5e9f8facefdb276f54b8b390d90447cff4e2", + "sha256:92a0e65272fd60bfa0d9278e0484c2f52fe03b97aedc02b357f33fe752c52ffb", + "sha256:941c2a93313d030f219f3a71fd3d91a728b82979a5e8034eb2e60d394a2b83f9", + "sha256:98b35775e03ab7f868908b524fc0a84d38932d8daf7b7e1c3c3a1b6c7a2c9f15", + "sha256:a1ceafc5042451a858231588a104093474c6a5c57dcc724841f5c888d237d690", + "sha256:a73044b752f5d34d4232f25f18160a1cc418ea4507f5f11e299d8ac36875f8a0", + "sha256:a7870e8c5fc11aef57d6fea4b4085e537a3a60ad2cdd14322ed531fdca68d261", + "sha256:a92f227dbcdc9e4c3e193add1a189a9909947d4f8504c576f4a732fd0b54240a", + "sha256:ac08c63cb7779b85e9d5318e6c3518b424bc1f364ac4cb2c6136f12e5ff2dccc", + "sha256:b6bcf39112e956594b3331316d90c90c90fb961e39696bda97b89462f5f3943f", + "sha256:c0faba4a331195bfa96f93dd9dfaa10b2c7aa8cda3a02b7fd635e588fe821bf5", + "sha256:ce9ce141a505053b3c7bce3216071f3bf5c182b8b28930f14cd24d43932cd2df", + "sha256:cf6470d91d34bf669f61d515499859fa7a4c2f7c36434afb70e82df7217933f9", + "sha256:d3703409aac693fa82c0aee023a1ae06a6e9d065dba10f5e8e80f642f1e9d0a2", + "sha256:d3e3087f53e2b4428766b54932644d148613c5a595150533ae7f00dab2f319a8", + "sha256:d3f8f0df9f4b8be57b3bf74a1d087fec68f927a2fab68231fdb442bf2c12e426", + "sha256:d797454e37570cfd61143b73b8debd623c3c0952959adb817dd310a483d58a1b", + "sha256:e1a27bb1b2dee45a2a53f5ca6ff2d1a7f135287883a1689e930d44d1ff296c87", + "sha256:e3bd2cb07841166420d2fa7146c96ce00cb3410664cbc1a6be028e456c4ee220", + "sha256:e7b6b5e28bbd47b7532698e5db2fe1db693d84b58c254e4389d99a27bb9b8f6b", + "sha256:e867df947d427cdd7a60e3e271729090b0f0df80f5f10ab7dd436f40811699c3", + "sha256:ea66d2b41ca4a1630aae5507ee0a71647d3124d1741980138aa8f28f44dac36e", + "sha256:edee228f76ee2dab4579fad6f51f6a305de09d444280109e0f75df247ff21501", + "sha256:f0a90aba7d521e6954670550e561a4cb925713bd944445dbe9e729b71f6cabee", + "sha256:f93bc6892fe7b0663e5ffa83b61aab510aacffd58c16e012bb9352d489d90cb7", + "sha256:fb1461c99de4d040666ca0444057b06541e5642f800b71c56e6ea92d6a853a0c" ], "index": "pypi", "markers": "python_version >= '3.11'", - "version": "==2.3.3" + "version": "==2.4.1" }, "packaging": { "hashes": [ - "sha256:29572ef2b1f17581046b3a2227d5c611fb25ec70ca1ba8554b24b0e69331a484", - "sha256:d443872c98d677bf60f6a1f2f8c1cb748e8fe762d2bf9d3148b5599295b0fc4f" + "sha256:00243ae351a257117b6a241061796684b084ed1c516a08c48a3f7e147a9d80b4", + "sha256:b36f1fef9334a5588b4166f8bcd26a14e521f2b55e6b9de3aaa80d3ff7a37529" ], "markers": "python_version >= '3.8'", - "version": "==25.0" + "version": "==26.0" }, "pluggy": { "hashes": [ @@ -830,35 +889,36 @@ }, "proto-plus": { "hashes": [ - "sha256:13285478c2dcf2abb829db158e1047e2f1e8d63a077d94263c2b88b043c75a66", - "sha256:21a515a4c4c0088a773899e23c7bbade3d18f9c66c73edd4c7ee3816bc96a012" + "sha256:1baa7f81cf0f8acb8bc1f6d085008ba4171eaf669629d1b6d1673b21ed1c0a82", + "sha256:873af56dd0d7e91836aee871e5799e1c6f1bda86ac9a983e0bb9f0c266a568c4" ], "markers": "python_version >= '3.7'", - "version": "==1.26.1" + "version": "==1.27.0" }, "protobuf": { "hashes": [ - "sha256:2601b779fc7d32a866c6b4404f9d42a3f67c5b9f3f15b4db3cccabe06b95c346", - "sha256:2f5b80a49e1eb7b86d85fcd23fe92df154b9730a725c3b38c4e43b9d77018bf4", - "sha256:68ff170bac18c8178f130d1ccb94700cf72852298e016a2443bdb9502279e5f1", - "sha256:a8a32a84bc9f2aad712041b8b366190f71dde248926da517bde9e832e4412085", - "sha256:b00a7d8c25fa471f16bc8153d0e53d6c9e827f0953f3c09aaa4331c718cae5e1", - "sha256:b1864818300c297265c83a4982fd3169f97122c299f56a56e2445c3698d34710", - "sha256:d0975d0b2f3e6957111aa3935d08a0eb7e006b1505d825f862a1fffc8348e122", - "sha256:d8c7e6eb619ffdf105ee4ab76af5a68b60a9d0f66da3ea12d1640e6d8dab7281", - "sha256:ee2469e4a021474ab9baafea6cd070e5bf27c7d29433504ddea1a4ee5850f68d" + "sha256:0f12ddbf96912690c3582f9dffb55530ef32015ad8e678cd494312bd78314c4f", + "sha256:1fe3730068fcf2e595816a6c34fe66eeedd37d51d0400b72fabc848811fdc1bc", + "sha256:2fe67f6c014c84f655ee06f6f66213f9254b3a8b6bda6cda0ccd4232c73c06f0", + "sha256:3df850c2f8db9934de4cf8f9152f8dc2558f49f298f37f90c517e8e5c84c30e9", + "sha256:757c978f82e74d75cba88eddec479df9b99a42b31193313b75e492c06a51764e", + "sha256:8f11ffae31ec67fc2554c2ef891dcb561dae9a2a3ed941f9e134c2db06657dbc", + "sha256:918966612c8232fc6c24c78e1cd89784307f5814ad7506c308ee3cf86662850d", + "sha256:955478a89559fa4568f5a81dce77260eabc5c686f9e8366219ebd30debf06aa6", + "sha256:c7c64f259c618f0bef7bee042075e390debbf9682334be2b67408ec7c1c09ee6", + "sha256:dc2e61bca3b10470c1912d166fe0af67bfc20eb55971dcef8dfa48ce14f0ed91" ], "index": "pypi", "markers": "python_version >= '3.9'", - "version": "==6.32.1" + "version": "==6.33.4" }, "pyasn1": { "hashes": [ - "sha256:0d632f46f2ba09143da3a8afe9e33fb6f92fa2320ab7e886e2d0f7672af84629", - "sha256:6f580d2bdd84365380830acf45550f2511469f673cb4a5ae3857a3170128b034" + "sha256:1eb26d860996a18e9b6ed05e7aae0e9fc21619fcee6af91cca9bad4fbea224bf", + "sha256:9b59a2b25ba7e4f8197db7686c09fb33e658b98339fadb826e9512629017833b" ], "markers": "python_version >= '3.8'", - "version": "==0.6.1" + "version": "==0.6.2" }, "pyasn1-modules": { "hashes": [ @@ -870,11 +930,11 @@ }, "pycparser": { "hashes": [ - "sha256:78816d4f24add8f10a06d6f05b4d424ad9e96cfebf68a4ddc99c65c0720d00c2", - "sha256:e5c6e8d3fbad53479cab09ac03729e0a9faf2bee3db8208a550daf5af81a5934" + "sha256:600f49d217304a5902ac3c37e1281c9fe94e4d0489de643a9504c5cdfdfc6b29", + "sha256:b727414169a36b7d524c1c3e31839a521725078d7b2ff038656844266160a992" ], - "markers": "python_version >= '3.8'", - "version": "==2.23" + "markers": "python_version >= '3.10'", + "version": "==3.0" }, "pygments": { "hashes": [ @@ -886,20 +946,20 @@ }, "pyparsing": { "hashes": [ - "sha256:2df8d5b7b2802ef88e8d016a2eb9c7aeaa923529cd251ed0fe4608275d4105b6", - "sha256:e38a4f02064cf41fe6593d328d0512495ad1f3d8a91c4f73fc401b3079a59a5e" + "sha256:850ba148bd908d7e2411587e247a1e4f0327839c40e2e5e6d05a007ecc69911d", + "sha256:c777f4d763f140633dcb6d8a3eda953bf7a214dc4eff598413c070bcdc117cbc" ], "markers": "python_version >= '3.9'", - "version": "==3.2.5" + "version": "==3.3.2" }, "pytest": { "hashes": [ - "sha256:86c0d0b93306b961d58d62a4db4879f27fe25513d4b969df351abdddb3c30e01", - "sha256:872f880de3fc3a5bdc88a11b39c9710c3497a547cfa9320bc3c5e62fbf272e79" + "sha256:711ffd45bf766d5264d487b917733b453d917afd2b0ad65223959f59089f875b", + "sha256:75186651a92bd89611d1d9fc20f0b4345fd827c41ccd5c299a868a05d70edf11" ], "index": "pypi", - "markers": "python_version >= '3.9'", - "version": "==8.4.2" + "markers": "python_version >= '3.10'", + "version": "==9.0.2" }, "pytest-cov": { "hashes": [ @@ -929,11 +989,11 @@ }, "setuptools": { "hashes": [ - "sha256:062d34222ad13e0cc312a4c02d73f059e86a4acbfbdea8f8f76b28c99f306922", - "sha256:f36b47402ecde768dbfafc46e8e4207b4360c654f1f3bb84475f0a28628fb19c" + "sha256:bf2e513eb8144c3298a3bd28ab1a5edb739131ec5c22e045ff93cd7f5319703a", + "sha256:fc30c51cbcb8199a219c12cc9c281b5925a4978d212f84229c909636d9f6984e" ], "markers": "python_version >= '3.9'", - "version": "==80.9.0" + "version": "==80.10.1" }, "typing-extensions": { "hashes": [ @@ -953,12 +1013,12 @@ }, "urllib3": { "hashes": [ - "sha256:3fc47733c7e419d4bc3f6b3dc2b4f890bb743906a30d56ba4a5bfa4bbff92760", - "sha256:e6b01673c0fa6a13e374b50871808eb3bf7046c4b125b216f6bf1cc604cff0dc" + "sha256:1b62b6884944a57dbe321509ab94fd4d3b307075e0c2eae991ac71ee15ad38ed", + "sha256:bf272323e553dfb2e87d9bfd225ca7b0f467b919d7bbd355436d3fd37cb0acd4" ], "index": "pypi", "markers": "python_version >= '3.9'", - "version": "==2.5.0" + "version": "==2.6.3" }, "validate-email": { "hashes": [ @@ -971,11 +1031,11 @@ "develop": { "astroid": { "hashes": [ - "sha256:1e5a5011af2920c7c67a53f65d536d65bfa7116feeaf2354d8b94f29573bb0ce", - "sha256:54c760ae8322ece1abd213057c4b5bba7c49818853fc901ef09719a60dbf9dec" + "sha256:08d1de40d251cc3dc4a7a12726721d475ac189e4e583d596ece7422bc176bda3", + "sha256:864a0a34af1bd70e1049ba1e61cee843a7252c826d97825fcee9b2fcbd9e1b14" ], - "markers": "python_full_version >= '3.9.0'", - "version": "==3.3.11" + "markers": "python_full_version >= '3.10.0'", + "version": "==4.0.3" }, "autopep8": { "hashes": [ @@ -988,19 +1048,19 @@ }, "dill": { "hashes": [ - "sha256:0633f1d2df477324f53a895b02c901fb961bdbf65a17122586ea7019292cbcf0", - "sha256:44f54bf6412c2c8464c14e8243eb163690a9800dbe2c367330883b19c7561049" + "sha256:1e1ce33e978ae97fcfcff5638477032b801c46c7c65cf717f95fbc2248f79a9d", + "sha256:423092df4182177d4d8ba8290c8a5b640c66ab35ec7da59ccfa00f6fa3eea5fa" ], - "markers": "python_version >= '3.8'", - "version": "==0.4.0" + "markers": "python_version >= '3.9'", + "version": "==0.4.1" }, "isort": { "hashes": [ - "sha256:1cb5df28dfbc742e490c5e41bad6da41b805b0a8be7bc93cd0fb2a8a890ac450", - "sha256:2dc5d7f65c9678d94c88dfc29161a320eec67328bc97aad576874cb4be1e9615" + "sha256:1bcabac8bc3c36c7fb7b98a76c8abb18e0f841a3ba81decac7691008592499c1", + "sha256:5513527951aadb3ac4292a41a16cbc50dd1642432f5e8c20057d414bdafb4187" ], - "markers": "python_full_version >= '3.9.0'", - "version": "==6.0.1" + "markers": "python_full_version >= '3.10.0'", + "version": "==7.0.0" }, "mccabe": { "hashes": [ @@ -1012,11 +1072,11 @@ }, "platformdirs": { "hashes": [ - "sha256:abd01743f24e5287cd7a5db3752faf1a2d65353f38ec26d98e25a6db65958c85", - "sha256:ca753cf4d81dc309bc67b0ea38fd15dc97bc30ce419a7f58d13eb3bf14c4febf" + "sha256:61d5cdcc6065745cdd94f0f878977f8de9437be93de97c1c12f853c9c0cdcbda", + "sha256:d03afa3963c806a9bed9d5125c8f4cb2fdaf74a55ab60e5d59b3fde758104d31" ], - "markers": "python_version >= '3.9'", - "version": "==4.4.0" + "markers": "python_version >= '3.10'", + "version": "==4.5.1" }, "pycodestyle": { "hashes": [ @@ -1028,20 +1088,20 @@ }, "pylint": { "hashes": [ - "sha256:26698de19941363037e2937d3db9ed94fb3303fdadf7d98847875345a8bb6b05", - "sha256:7ef94aa692a600e82fabdd17102b73fc226758218c97473c7ad67bd4cb905d83" + "sha256:63e06a37d5922555ee2c20963eb42559918c20bd2b21244e4ef426e7c43b92e0", + "sha256:d9b71674e19b1c36d79265b5887bf8e55278cbe236c9e95d22dc82cf044fdbd2" ], "index": "pypi", - "markers": "python_full_version >= '3.9.0'", - "version": "==3.3.8" + "markers": "python_full_version >= '3.10.0'", + "version": "==4.0.4" }, "tomlkit": { "hashes": [ - "sha256:430cf247ee57df2b94ee3fbe588e71d362a941ebb545dec29b53961d61add2a1", - "sha256:c89c649d79ee40629a9fda55f8ace8c6a1b42deb912b2a8fd8d942ddadb606b0" + "sha256:592064ed85b40fa213469f81ac584f67a4f2992509a7c3ea2d632208623a3680", + "sha256:cf00efca415dbd57575befb1f6634c4f42d2d87dbba376128adb42c121b87064" ], - "markers": "python_version >= '3.8'", - "version": "==0.13.3" + "markers": "python_version >= '3.9'", + "version": "==0.14.0" } } } diff --git a/codecov.yaml b/codecov.yaml index eb69486..50c7f07 100644 --- a/codecov.yaml +++ b/codecov.yaml @@ -3,11 +3,11 @@ coverage: status: project: default: - target: 75% + target: 50% threshold: 3% patch: default: - target: 75% + target: 50% threshold: 10% ignore: diff --git a/tests/test_app_space.py b/tests/test_app_space.py deleted file mode 100644 index 68574a2..0000000 --- a/tests/test_app_space.py +++ /dev/null @@ -1,322 +0,0 @@ -import time - -import pytest -from helpers import data - -from indykite_sdk.config import ConfigClient -from indykite_sdk.indykite.config.v1beta1 import config_management_api_pb2 as pb2 -from indykite_sdk.model.app_space import ApplicationSpace -from indykite_sdk.model.create_app_space import CreateApplicationSpace -from indykite_sdk.model.update_app_space import UpdateApplicationSpace - - -@pytest.fixture -def client(): - return ConfigClient() - - -@pytest.fixture -def app_space_id(): - return data.get_app_space_id() - - -@pytest.fixture -def customer_id(): - return data.get_customer_id() - - -def test_read_app_space_by_id_wrong_id(client, capsys): - app_space_id = "aaaaaaaaaaaaaaa" - - response = client.read_app_space_by_id(app_space_id) - captured = capsys.readouterr() - assert ( - "invalid ReadApplicationSpaceRequest.Id: value length must be between 22 and 254 runes, inclusive" - in captured.err - ) - - -def test_read_app_space_id_success(client, app_space_id, capsys): - app_space = client.read_app_space_by_id(app_space_id) - captured = capsys.readouterr() - - assert app_space is not None - assert "invalid or expired access_token" not in captured.out - - -def test_read_app_space_by_id_empty(client, app_space_id): - def mocked_read_app_space_by_id(request: pb2.ReadApplicationSpaceRequest): - return None - - client.stub.ReadApplicationSpace = mocked_read_app_space_by_id - app_space = client.read_app_space_by_id(app_space_id) - - assert app_space is None - - -def test_read_app_space_by_name_wrong_name(client, customer_id, capsys): - app_space_name = "aaaaaaaaaaaaaaa" - - response = client.read_app_space_by_name(customer_id, app_space_name) - captured = capsys.readouterr() - assert "NOT_FOUND" in captured.err - - -def test_read_app_space_by_name_wrong_customer_id(client, capsys): - app_space_name = "do-not-delete" - - customer_id = "gid:AAAAAmluZHlraURlgAABDwAAAAA" - response = client.read_app_space_by_name(customer_id, app_space_name) - captured = capsys.readouterr() - assert "invalid id value was provided for name.location" in captured.err - - -def test_read_app_space_by_name_wrong_customer_size(client, capsys): - app_space_name = data.get_app_space_name() - customer_id = "12546" - response = client.read_app_space_by_name(customer_id, app_space_name) - captured = capsys.readouterr() - assert "invalid ReadApplicationSpaceRequest.Name" in captured.err - - -def test_read_app_space_name_success(client, customer_id, capsys): - app_space_name = data.get_app_space_name() - app_space = client.read_app_space_by_name(customer_id, app_space_name) - captured = capsys.readouterr() - - assert app_space is not None - assert "invalid or expired access_token" not in captured.out - assert isinstance(app_space, ApplicationSpace) - - -def test_read_app_space_by_name_empty(client, customer_id): - app_space_name = data.get_app_space_name() - - def mocked_read_app_space_by_name(request: pb2.ReadApplicationSpaceRequest): - return None - - client.stub.ReadApplicationSpace = mocked_read_app_space_by_name - app_space = client.read_app_space_by_name(customer_id, app_space_name) - - assert app_space is None - - -def test_create_app_space_success(client, customer_id, capsys): - right_now = str(int(time.time())) - - app_space = client.create_app_space( - customer_id, - "automation-" + right_now, - "Automation " + right_now, - "description", - ) - captured = capsys.readouterr() - assert "invalid or expired access_token" not in captured.out - assert app_space is not None - assert isinstance(app_space, CreateApplicationSpace) - response = client.delete_app_space(app_space.id, app_space.etag) - assert response is not None - - -def test_create_app_space_empty(client, customer_id): - right_now = str(int(time.time())) - - def mocked_create_app_space(request: pb2.CreateApplicationSpaceRequest): - return None - - client.stub.CreateApplicationSpace = mocked_create_app_space - app_space = client.create_app_space( - customer_id, - "automation-" + right_now, - "Automation " + right_now, - "description", - ) - - assert app_space is None - - -def test_create_app_space_already_exists(client, customer_id, capsys): - app_space = client.create_app_space(customer_id, "appspacetest", "app space test sdk ", "description") - captured = capsys.readouterr() - assert "config entity with given name already exist" in captured.err - - -def test_create_app_space_fail_invalid_customer(client, capsys): - customer_id = "gid:AAAAAdM5d45g4j5lIW1Ma1nFAA" - app_space = client.create_app_space(customer_id, "appspacetestsdk5", "app space test sdk 5", "description") - captured = capsys.readouterr() - assert "invalid id value was provided for customer_id" in captured.err - - -def test_create_app_space_fail_not_allowed_customer(client, capsys): - customer_id = "gid:AAAAAcsuX7kYWE3ioXQHUBbAIu8" - app_space = client.create_app_space(customer_id, "test-create", "test create", "description") - captured = capsys.readouterr() - assert "insufficient permission to perform requested action" in captured.err - - -def test_create_app_space_name_fail_type_parameter(client, customer_id, capsys): - app_space = client.create_app_space(customer_id, ["test"], "test create", "description") - captured = capsys.readouterr() - assert "bad argument type for built-in operation" in captured.err - - -def test_create_app_space_wrong_region(client, customer_id, capsys): - right_now = str(int(time.time())) - app_space = client.create_app_space( - customer_id, - "automation-" + right_now, - "Automation " + right_now, - "description", - "wrong-region", - ) - captured = capsys.readouterr() - assert "value must be in list [europe-west1 us-east1]" in captured.err - - -def test_update_app_space_success(client, customer_id, capsys): - app_space_name = "appspacetest" - response = client.read_app_space_by_name(customer_id, app_space_name) - assert response is not None - - app_space = client.update_app_space(response.id, response.etag, response.display_name, "description") - captured = capsys.readouterr() - - assert "invalid or expired access_token" not in captured.out - assert app_space is not None - assert isinstance(app_space, UpdateApplicationSpace) - - -def test_update_app_space_empty(client, customer_id): - app_space_name = "appspacetest" - response = client.read_app_space_by_name(customer_id, app_space_name) - assert response is not None - - def mocked_update_app_space(request: pb2.UpdateApplicationSpaceRequest): - return None - - client.stub.UpdateApplicationSpace = mocked_update_app_space - app_space = client.update_app_space(response.id, response.etag, response.display_name, "description") - - assert app_space is None - - -def test_update_app_space_fail_invalid_app_space(client, customer_id, capsys): - app_space_name = "appspacetest" - response = client.read_app_space_by_name(customer_id, app_space_name) - assert response is not None - app_space_id = "gid:AAAAAdM5d45g4j5lIW1Ma1nFAA" - - app_space = client.update_app_space(app_space_id, response.etag, response.display_name, "description update") - captured = capsys.readouterr() - assert "invalid id value was provided for id" in captured.err - - -def test_update_app_space_fail_not_allowed_app_space_id(client, customer_id, capsys): - app_space_name = "appspacetest" - response = client.read_app_space_by_name(customer_id, app_space_name) - assert response is not None - app_space_id = "gid:AAAAAlrNh6beFUSNk6tTtka8dwg" - - app_space = client.update_app_space(app_space_id, response.etag, response.display_name, "description update") - captured = capsys.readouterr() - assert "NOT_FOUND" in captured.err - - -def test_update_app_space_name_fail_type_parameter(client, customer_id, capsys): - app_space_name = "appspacetest" - response = client.read_app_space_by_name(customer_id, app_space_name) - assert response is not None - - app_space = client.update_app_space(response.id, [response.etag], response.display_name, "description update") - captured = capsys.readouterr() - assert "bad argument type for built-in operation" in captured.err - - -def test_read_app_space_list_success(client, customer_id, capsys): - app_space_name = data.get_app_space_name() - match = [app_space_name] - - app_space = client.list_app_spaces(customer_id, match) - captured = capsys.readouterr() - - assert app_space is not None - assert "invalid or expired access_token" not in captured.out - - -def test_get_app_space_list_wrong_customer(client, capsys): - customer_id = "gid:AAAAAjUIwqhDT00ikJnfNwyeXF0" - app_space_name = data.get_app_space_name() - match = [app_space_name] - app_space = client.list_app_spaces(customer_id, match) - captured = capsys.readouterr() - assert "invalid id value was provided for customer_id" in captured.err - - -def test_get_app_space_list_wrong_type(client, customer_id, capsys): - app_space_name = data.get_app_space_name() - match = app_space_name - - app_space = client.list_app_spaces(customer_id, match) - captured = capsys.readouterr() - assert "value length must be between 2 and 254 runes" in captured.err - - -def test_get_app_space_list_empty_match(client, customer_id, capsys): - match = [] - app_space = client.list_app_spaces(customer_id, match) - captured = capsys.readouterr() - assert "value must contain at least 1 item" in captured.err - - -def test_get_app_space_list_raise_exception(client, customer_id, capsys): - match = "" - app_space = client.list_app_spaces(customer_id, match) - captured = capsys.readouterr() - assert "value must contain at least 1 item" in captured.err - - -def test_get_app_space_list_empty(client, customer_id): - app_space_name = data.get_app_space_name() - match = [] - match.append(app_space_name) - - def mocked_get_app_space_list(request: pb2.ListApplicationSpacesRequest): - return None - - client.stub.ListApplicationSpaces = mocked_get_app_space_list - app_space = client.list_app_spaces(customer_id, match) - - assert app_space is None - - -def test_del_app_space_success(client, customer_id, capsys): - right_now = str(int(time.time())) - app_space = client.create_app_space( - customer_id, - "automation-" + right_now, - "Automation " + right_now, - "description", - ) - assert app_space is not None - response = client.delete_app_space(app_space.id, app_space.etag) - captured = capsys.readouterr() - assert response is not None - - -def test_del_app_space_wrong_space_id(client, customer_id, capsys): - response = client.delete_app_space(customer_id, "oeprbUOYHUIYI75U") - captured = capsys.readouterr() - assert "invalid id value was provided for id" in captured.err - - -def test_del_app_space_empty(client): - id = "gid:AAAAAXX66V2_Jk3kjCCPThMQGaw" - etag = "oeprbUOYHUIYI75U" - - def mocked_delete_app_space(request: pb2.DeleteApplicationSpaceRequest): - return None - - client.stub.DeleteApplicationSpace = mocked_delete_app_space - response = client.delete_app_space(id, etag) - assert response is None diff --git a/tests/test_config_node.py b/tests/test_config_node.py deleted file mode 100644 index 16fafae..0000000 --- a/tests/test_config_node.py +++ /dev/null @@ -1,1053 +0,0 @@ -import time - -import numpy as np -import pytest -from helpers import data - -from indykite_sdk.config import ConfigClient -from indykite_sdk.indykite.config.v1beta1 import config_management_api_pb2 as pb2 -from indykite_sdk.indykite.config.v1beta1 import model_pb2 -from indykite_sdk.model.create_config_node import CreateConfigNode -from indykite_sdk.model.update_config_node import UpdateConfigNode - - -@pytest.fixture -def client(): - return ConfigClient() - - -@pytest.fixture -def right_now(): - return str(int(time.time()) + 2) - - -@pytest.fixture -def app_space_id(): - return data.get_app_space_id() - - -def test_read_config_node_success(client, capsys): - config_node_id = data.get_authz_policy() - config_node = client.read_config_node(config_node_id) - captured = capsys.readouterr() - assert config_node is not None - assert "invalid or expired access_token" not in captured.out - - -def test_read_config_node_empty(client): - config_node_id = data.get_authz_policy() - - def mocked_read_config_node(request: pb2.ReadConfigNodeRequest): - return None - - client.stub.ReadConfigNode = mocked_read_config_node - config_node = client.read_config_node(config_node_id) - assert config_node is None - - -def test_read_config_node_wrong_id(client, capsys): - config_node_id = "aaaaaaaaaaaaaaa" - response = client.read_config_node(config_node_id) - captured = capsys.readouterr() - assert "invalid ReadConfigNodeRequest.Id: value length must be between 22 and 254 runes, inclusive" in captured.err - - -def test_read_config_node_version_not_authz(client, capsys): - config_node_id = data.get_authz_policy() - config_node = client.read_config_node(config_node_id, 0) - captured = capsys.readouterr() - assert config_node is not None - assert "invalid or expired access_token" not in captured.out - - -def test_del_config_node_success(client, right_now, app_space_id, capsys): - authorization_policy_config = data.get_authz_policy() - config_node = client.create_authorization_policy_config_node( - app_space_id, - "automation-" + right_now, - "Automation " + right_now, - "description", - authorization_policy_config, - ) - - assert config_node is not None - response = client.delete_config_node(config_node.id, config_node.etag) - captured = capsys.readouterr() - assert response is not None - - -def test_del_config_node_empty(client, capsys): - id = "gid:AAAAAjLRnbbaJE53rrjm_NJXyO" - etag = "HcQ77D8CUWV" - - def mocked_delete_config_node(request: pb2.DeleteConfigNodeRequest): - return None - - client.stub.DeleteConfigNode = mocked_delete_config_node - response = client.delete_config_node(id, etag) - assert response is None - - -def test_create_authorization_policy_config_node_success(client, right_now, app_space_id, capsys): - authorization_policy_config = data.get_authz_policy() - config_node = client.create_authorization_policy_config_node( - app_space_id, - "automation-" + right_now, - "Automation " + right_now, - "description", - authorization_policy_config, - ) - captured = capsys.readouterr() - assert "invalid or expired access_token" not in captured.out - assert config_node is not None - assert isinstance(config_node, CreateConfigNode) - response = client.delete_config_node(config_node.id, config_node.etag) - - -def test_create_authorization_policy_config_node_empty(client, right_now, app_space_id, capsys): - authorization_policy_config = data.get_authz_policy() - - def mocked_create_config_node(request: pb2.CreateConfigNodeRequest): - return None - - client.stub.CreateConfigNode = mocked_create_config_node - config_node = client.create_authorization_policy_config_node( - app_space_id, - "automation-" + right_now, - "Automation " + right_now, - "description", - authorization_policy_config, - ) - - assert config_node is None - - -def test_create_authorization_policy_config_node_exception(client, right_now, app_space_id, capsys): - config_node = client.create_authorization_policy_config_node( - app_space_id, - "automation-" + right_now, - "Automation " + right_now, - "description", - "description", - ) - - captured = capsys.readouterr() - assert "'str' object has no attribute 'status'" in captured.err - - -def test_update_authorization_policy_config_node_success(client, right_now, capsys): - config_node_id = data.get_authz_policy_config_node_id() - response = client.read_config_node(config_node_id) - assert response is not None - authorization_policy_config = data.get_authz_policy() - config_node_response = client.update_authorization_policy_config_node( - response.id, - response.etag, - "Automation " + right_now, - "description " + right_now, - authorization_policy_config, - ) - - captured = capsys.readouterr() - assert "invalid or expired access_token" not in captured.out - assert config_node_response is not None - assert isinstance(config_node_response, UpdateConfigNode) - - -def test_update_authorization_policy_config_node_empty(client, right_now, capsys): - config_node_id = data.get_authz_policy_config_node_id() - response = client.read_config_node(config_node_id) - assert response is not None - authorization_policy_config = data.get_authz_policy() - - def mocked_update_config_node(request: pb2.UpdateConfigNodeRequest): - return None - - client.stub.UpdateConfigNode = mocked_update_config_node - config_node_response = client.update_authorization_policy_config_node( - response.id, - response.etag, - "Automation " + right_now, - "description " + right_now, - authorization_policy_config, - ) - - assert config_node_response is None - - -def test_update_authorization_policy_config_node_exception(client, right_now, capsys): - config_node_id = data.get_authz_policy_config_node_id() - response = client.read_config_node(config_node_id) - assert response is not None - config_node_response = client.update_authorization_policy_config_node( - response.id, - response.etag, - "Automation " + right_now, - "description " + right_now, - "description", - ) - - captured = capsys.readouterr() - assert "'str' object has no attribute 'status'" in captured.err - - -def test_create_consent_config_node_success(client, right_now, app_space_id, capsys): - consent_config = data.get_consent_config() - config_node = client.create_consent_config_node( - app_space_id, - "automation-" + right_now, - "Automation " + right_now, - "description", - consent_config, - ) - captured = capsys.readouterr() - assert config_node is not None - assert isinstance(config_node, CreateConfigNode) - response = client.delete_config_node(config_node.id, config_node.etag) - assert response is not None - - -def test_create_consent_config_node_empty(client, right_now, app_space_id, capsys): - consent_config = data.get_consent_config() - - def mocked_create_config_node(request: pb2.CreateConfigNodeRequest): - return None - - client.stub.CreateConfigNode = mocked_create_config_node - config_node = client.create_consent_config_node( - app_space_id, - "automation-" + right_now, - "Automation " + right_now, - "description", - consent_config, - ) - - assert config_node is None - - -def test_create_consent_config_node_exception(client, right_now, app_space_id, capsys): - config_node = client.create_consent_config_node( - app_space_id, - "automation-" + right_now, - "Automation " + right_now, - "description", - "description", - ) - - captured = capsys.readouterr() - assert "Message must be initialized with a dict" in captured.err - - -def test_create_token_introspect_config_node_success(client, app_space_id, capsys): - right_now = str(int(time.time()) + 2) - token_introspect_config = data.get_token_introspect_config() - - config_node = client.create_token_introspect_config_node( - app_space_id, - "automation-" + right_now, - "Automation " + right_now, - "description", - token_introspect_config, - ) - captured = capsys.readouterr() - assert config_node is not None - assert isinstance(config_node, CreateConfigNode) - response = client.delete_config_node(config_node.id, config_node.etag) - assert response is not None - - -def test_create_token_introspect_config_node_empty(client, app_space_id, capsys): - right_now = str(int(time.time()) + 4) - token_introspect_config = data.get_token_introspect_config() - - def mocked_create_config_node(request: pb2.CreateConfigNodeRequest): - return None - - client.stub.CreateConfigNode = mocked_create_config_node - config_node = client.create_token_introspect_config_node( - app_space_id, - "automation-" + right_now, - "Automation " + right_now, - "description", - token_introspect_config, - ) - assert config_node is None - - -def test_create_token_introspect_config_node_exception(client, app_space_id, capsys): - right_now = str(int(time.time()) + 6) - config_node = client.create_token_introspect_config_node( - app_space_id, - "automation-" + right_now, - "Automation " + right_now, - "description", - "description", - ) - - captured = capsys.readouterr() - assert "Message must be initialized with a dict" in captured.err - - -def test_create_token_introspect_config_node_wrong_app_space(client, capsys): - right_now = str(int(time.time()) + 2) - app_space_id = data.get_identity_node() - token_introspect_config = data.get_token_introspect_config() - - config_node = client.create_token_introspect_config_node( - app_space_id, - "automation-" + right_now, - "Automation " + right_now, - "description", - token_introspect_config, - ) - captured = capsys.readouterr() - assert "StatusCode.NOT_FOUND" in captured.err - - -def test_create_token_introspect_config_node_app_space_other_customer(client, capsys): - right_now = str(int(time.time()) + 2) - app_space_id = "gid:AAAAAoQaR-cpn0jcmWkW_HV1c6g" - token_introspect_config = data.get_token_introspect_config() - - config_node = client.create_token_introspect_config_node( - app_space_id, - "automation-" + right_now, - "Automation " + right_now, - "description", - token_introspect_config, - ) - captured = capsys.readouterr() - assert "StatusCode.PERMISSION_DENIED" in captured.err - - -def test_update_token_introspect_config_node_success( - client, - right_now, - app_space_id, -): - token_introspect_config = data.get_token_introspect_config() - config_node = client.create_token_introspect_config_node( - app_space_id, - "automation-" + right_now, - "Automation " + right_now, - "description", - token_introspect_config, - ) - assert config_node is not None - assert isinstance(config_node, CreateConfigNode) - right_now = str(int(time.time())) - token_introspect_config = data.get_token_introspect_config() - config_node_response = client.update_token_introspect_config_node( - config_node.id, - config_node.etag, - "Automation " + right_now, - "description " + right_now, - token_introspect_config, - ) - assert config_node_response is not None - assert isinstance(config_node_response, UpdateConfigNode) - response = client.delete_config_node(config_node.id, config_node.etag) - - -def test_update_token_introspect_config_node_wrong_etag(client, right_now, capsys): - token_introspect_config = data.get_token_introspect_config() - config_node_response = client.update_token_introspect_config_node( - "gid:AAAAAuCBOLvwzUuWvKB1jWznHSM", - "JD5ikook6kjiof", - "Automation " + right_now, - "description " + right_now, - token_introspect_config, - ) - captured = capsys.readouterr() - assert "invalid eTag value" in captured.err - - -def test_create_external_data_resolver_config_node_success(client, app_space_id, capsys): - right_now = str(int(time.time()) + 2) - external_data_resolver_config = data.get_external_data_resolver_config(right_now) - - config_node = client.create_external_data_resolver_config_node( - app_space_id, - "automation-" + right_now, - "Automation " + right_now, - "description", - external_data_resolver_config, - ) - captured = capsys.readouterr() - assert config_node is not None - assert isinstance(config_node, CreateConfigNode) - response = client.delete_config_node(config_node.id, config_node.etag) - assert response is not None - - -def test_create_external_data_resolver_config_node_empty(client, app_space_id, capsys): - right_now = str(int(time.time()) + 4) - external_data_resolver_config = data.get_external_data_resolver_config(right_now) - - def mocked_create_config_node(request: pb2.CreateConfigNodeRequest): - return None - - client.stub.CreateConfigNode = mocked_create_config_node - config_node = client.create_external_data_resolver_config_node( - app_space_id, - "automation-" + right_now, - "Automation " + right_now, - "description", - external_data_resolver_config, - ) - assert config_node is None - - -def test_create_external_data_resolver_config_node_exception(client, app_space_id, capsys): - right_now = str(int(time.time()) + 6) - config_node = client.create_external_data_resolver_config_node( - app_space_id, - "automation-" + right_now, - "Automation " + right_now, - "description", - "description", - ) - - captured = capsys.readouterr() - assert "ExternalDataResolverConfig must be an object" in captured.err - - -def test_create_external_data_resolver_config_node_wrong_app_space(client, capsys): - right_now = str(int(time.time()) + 2) - app_space_id = data.get_identity_node() - external_data_resolver_config = data.get_external_data_resolver_config(right_now) - - config_node = client.create_external_data_resolver_config_node( - app_space_id, - "automation-" + right_now, - "Automation " + right_now, - "description", - external_data_resolver_config, - ) - captured = capsys.readouterr() - assert "StatusCode.NOT_FOUND" in captured.err - - -def test_create_external_data_resolver_config_node_app_space_other_customer(client, capsys): - right_now = str(int(time.time()) + 2) - app_space_id = "gid:AAAAAoQaR-cpn0jcmWkW_HV1c6g" - external_data_resolver_config = data.get_external_data_resolver_config(right_now) - - config_node = client.create_external_data_resolver_config_node( - app_space_id, - "automation-" + right_now, - "Automation " + right_now, - "description", - external_data_resolver_config, - ) - captured = capsys.readouterr() - assert "StatusCode.PERMISSION_DENIED" in captured.err - - -def test_update_external_data_resolver_config_node_success(client, right_now, app_space_id): - external_data_resolver_config = data.get_external_data_resolver_config(right_now) - config_node = client.create_external_data_resolver_config_node( - app_space_id, - "automation-" + right_now, - "Automation " + right_now, - "description", - external_data_resolver_config, - ) - assert config_node is not None - assert isinstance(config_node, CreateConfigNode) - - right_now = str(int(time.time())) - external_data_resolver_config = data.get_external_data_resolver_config(right_now) - config_node_response = client.update_external_data_resolver_config_node( - config_node.id, - config_node.etag, - "Automation " + right_now, - "description " + right_now, - external_data_resolver_config, - ) - assert config_node_response is not None - assert isinstance(config_node_response, UpdateConfigNode) - response = client.delete_config_node(config_node.id, config_node.etag) - - -def test_update_external_data_resolver_config_node_wrong_id(client, right_now, capsys): - external_data_resolver_config = data.get_external_data_resolver_config(right_now) - config_node_response = client.update_external_data_resolver_config_node( - "gid:AAAAAuCBOLvwzUuWvKB1jWznHSM", - "eyouyuuinjk", - "Automation " + right_now, - "description " + right_now, - external_data_resolver_config, - ) - captured = capsys.readouterr() - assert "invalid eTag value" in captured.err - - -def test_create_entity_matching_pipeline_config_node_success(client, app_space_id, capsys): - right_now = str(int(time.time()) + 2) - entity_matching_pipeline_config = data.get_entity_matching_pipeline_config(right_now) - - config_node = client.create_entity_matching_pipeline_config_node( - app_space_id, - "automation-" + right_now, - "Automation " + right_now, - "description", - entity_matching_pipeline_config, - ) - captured = capsys.readouterr() - assert config_node is not None - assert isinstance(config_node, CreateConfigNode) - response = client.delete_config_node(config_node.id, config_node.etag) - - -def test_create_entity_matching_pipeline_config_node_empty(client, app_space_id, capsys): - right_now = str(int(time.time()) + 4) - entity_matching_pipeline_config = data.get_entity_matching_pipeline_config(right_now) - - def mocked_create_config_node(request: pb2.CreateConfigNodeRequest): - return None - - client.stub.CreateConfigNode = mocked_create_config_node - config_node = client.create_entity_matching_pipeline_config_node( - app_space_id, - "automation-" + right_now, - "Automation " + right_now, - "description", - entity_matching_pipeline_config, - ) - assert config_node is None - - -def test_create_entity_matching_pipeline_config_node_exception(client, app_space_id, capsys): - right_now = str(int(time.time()) + 6) - config_node = client.create_entity_matching_pipeline_config_node( - app_space_id, - "automation-" + right_now, - "Automation " + right_now, - "description", - "description", - ) - - captured = capsys.readouterr() - assert "EntityMatchingPipelineConfig must be an object" in captured.err - - -def test_create_entity_matching_pipeline_config_node_wrong_app_space(client, capsys): - right_now = str(int(time.time()) + 2) - app_space_id = data.get_identity_node() - entity_matching_pipeline_config = data.get_entity_matching_pipeline_config(right_now) - config_node = client.create_entity_matching_pipeline_config_node( - app_space_id, - "automation-" + right_now, - "Automation " + right_now, - "description", - entity_matching_pipeline_config, - ) - captured = capsys.readouterr() - assert "StatusCode.NOT_FOUND" in captured.err - - -def test_create_entity_matching_pipeline_config_node_app_space_other_customer(client, capsys): - right_now = str(int(time.time()) + 2) - app_space_id = "gid:AAAAAoQaR-cpn0jcmWkW_HV1c6g" - entity_matching_pipeline_config = data.get_entity_matching_pipeline_config(right_now) - - config_node = client.create_entity_matching_pipeline_config_node( - app_space_id, - "automation-" + right_now, - "Automation " + right_now, - "description", - entity_matching_pipeline_config, - ) - captured = capsys.readouterr() - assert "StatusCode.PERMISSION_DENIED" in captured.err - - -def test_update_entity_matching_pipeline_config_node_success( - client, - right_now, - app_space_id, -): - entity_matching_pipeline_config = data.get_entity_matching_pipeline_config(right_now) - config_node = client.create_entity_matching_pipeline_config_node( - app_space_id, - "automation-" + right_now, - "Automation " + right_now, - "description", - entity_matching_pipeline_config, - ) - assert config_node is not None - assert isinstance(config_node, CreateConfigNode) - - right_now = str(int(time.time())) - config_node_response = client.update_entity_matching_pipeline_config_node( - config_node.id, - config_node.etag, - "Automation " + right_now, - "description " + right_now, - model_pb2.EntityMatchingPipelineConfig(similarity_score_cutoff=np.float32(0.9)), - ) - assert config_node_response is not None - assert isinstance(config_node_response, UpdateConfigNode) - response = client.delete_config_node(config_node.id, config_node.etag) - - -def test_update_entity_matching_pipeline_config_node_wrong_id(client, right_now, capsys): - config_node_response = client.update_entity_matching_pipeline_config_node( - "gid:AAAAAuCBOLvwzUuWvKB1jWznHSM", - "eyouyuuinjk", - "Automation " + right_now, - "description " + right_now, - model_pb2.EntityMatchingPipelineConfig(similarity_score_cutoff=np.float32(0.9)), - ) - captured = capsys.readouterr() - assert "invalid eTag value" in captured.err - - -def test_create_trust_score_profile_config_node_success(client, app_space_id, capsys): - right_now = str(int(time.time()) + 2) - trust_score_profile_config = data.get_trust_score_profile_config(right_now) - - config_node = client.create_trust_score_profile_config_node( - app_space_id, - "automation-" + right_now, - "Automation " + right_now, - "description", - trust_score_profile_config, - ) - captured = capsys.readouterr() - assert config_node is not None - assert isinstance(config_node, CreateConfigNode) - response = client.delete_config_node(config_node.id, config_node.etag) - assert response is not None - - -def test_create_trust_score_profile_config_node_empty(client, app_space_id, capsys): - right_now = str(int(time.time()) + 4) - trust_score_profile_config = data.get_trust_score_profile_config(right_now) - - def mocked_create_config_node(request: pb2.CreateConfigNodeRequest): - return None - - client.stub.CreateConfigNode = mocked_create_config_node - config_node = client.create_trust_score_profile_config_node( - app_space_id, - "automation-" + right_now, - "Automation " + right_now, - "description", - trust_score_profile_config, - ) - assert config_node is None - - -def test_create_trust_score_profile_config_node_exception(client, app_space_id, capsys): - right_now = str(int(time.time()) + 6) - config_node = client.create_trust_score_profile_config_node( - app_space_id, - "automation-" + right_now, - "Automation " + right_now, - "description", - "description", - ) - - captured = capsys.readouterr() - assert "TrustScoreProfileConfig must be an object" in captured.err - - -def test_create_trust_score_profile_config_node_wrong_app_space(client, capsys): - right_now = str(int(time.time()) + 2) - app_space_id = data.get_identity_node() - trust_score_profile_config = data.get_trust_score_profile_config(right_now) - config_node = client.create_trust_score_profile_config_node( - app_space_id, - "automation-" + right_now, - "Automation " + right_now, - "description", - trust_score_profile_config, - ) - captured = capsys.readouterr() - assert "StatusCode.NOT_FOUND" in captured.err - - -def test_create_trust_score_profile_config_node_app_space_other_customer(client, capsys): - right_now = str(int(time.time()) + 2) - app_space_id = "gid:AAAAAoQaR-cpn0jcmWkW_HV1c6g" - trust_score_profile_config = data.get_trust_score_profile_config(right_now) - - config_node = client.create_trust_score_profile_config_node( - app_space_id, - "automation-" + right_now, - "Automation " + right_now, - "description", - trust_score_profile_config, - ) - captured = capsys.readouterr() - assert "StatusCode.PERMISSION_DENIED" in captured.err - - -def test_update_trust_score_profile_config_node_success(client, right_now, app_space_id, capsys): - trust_score_profile_config = data.get_trust_score_profile_config(right_now) - config_node = client.create_trust_score_profile_config_node( - app_space_id, - "automation-" + right_now, - "Automation " + right_now, - "description", - trust_score_profile_config, - ) - assert config_node is not None - assert isinstance(config_node, CreateConfigNode) - - right_now = str(int(time.time())) - config_node_response = client.update_trust_score_profile_config_node( - config_node.id, - config_node.etag, - "Automation " + right_now, - "description " + right_now, - model_pb2.TrustScoreProfileConfig(dimensions=[model_pb2.TrustScoreDimension(name=5, weight=0.9)], schedule=4), - ) - assert config_node_response is not None - assert isinstance(config_node_response, UpdateConfigNode) - response = client.delete_config_node(config_node.id, config_node.etag) - - -def test_update_trust_score_profile_config_node_wrong_id(client, right_now, capsys): - config_node_response = client.update_trust_score_profile_config_node( - "gid:AAAAAuCBOLvwzUuWvKB1jWznHSM", - "eyouyuuinjk", - "Automation " + right_now, - "description " + right_now, - model_pb2.TrustScoreProfileConfig(dimensions=[model_pb2.TrustScoreDimension(name=5, weight=0.9)], schedule=4), - ) - captured = capsys.readouterr() - assert "invalid eTag value" in captured.err - - -def test_create_knowledge_query_config_node_success(client, app_space_id, capsys): - right_now = str(int(time.time()) + 2) - knowledge_query_config = data.get_knowledge_query_config(right_now) - - config_node = client.create_knowledge_query_config_node( - app_space_id, - "automation-" + right_now, - "Automation " + right_now, - "description", - knowledge_query_config, - ) - captured = capsys.readouterr() - assert config_node is not None - assert isinstance(config_node, CreateConfigNode) - response = client.delete_config_node(config_node.id, config_node.etag) - assert response is not None - - -def test_create_knowledge_query_config_node_empty(client, app_space_id, capsys): - right_now = str(int(time.time()) + 4) - knowledge_query_config = data.get_knowledge_query_config(right_now) - - def mocked_create_config_node(request: pb2.CreateConfigNodeRequest): - return None - - client.stub.CreateConfigNode = mocked_create_config_node - config_node = client.create_knowledge_query_config_node( - app_space_id, - "automation-" + right_now, - "Automation " + right_now, - "description", - knowledge_query_config, - ) - assert config_node is None - - -def test_create_knowledge_query_config_node_exception(client, app_space_id, capsys): - right_now = str(int(time.time()) + 6) - config_node = client.create_knowledge_query_config_node( - app_space_id, - "automation-" + right_now, - "Automation " + right_now, - "description", - "description", - ) - - captured = capsys.readouterr() - assert "Message must be initialized with a dict" in captured.err - - -def test_create_knowledge_query_config_node_wrong_app_space(client, capsys): - right_now = str(int(time.time()) + 2) - app_space_id = data.get_identity_node() - knowledge_query_config = data.get_knowledge_query_config(right_now) - config_node = client.create_knowledge_query_config_node( - app_space_id, - "automation-" + right_now, - "Automation " + right_now, - "description", - knowledge_query_config, - ) - captured = capsys.readouterr() - assert "location must be DOCUMENT_TYPE_APP_SPACE" in captured.err - - -def test_knowledge_query_config_node_app_space_other_customer(client, capsys): - right_now = str(int(time.time()) + 2) - app_space_id = "gid:AAAAAoQaR-cpn0jcmWkW_HV1c6g" - knowledge_query_config = data.get_knowledge_query_config(right_now) - - config_node = client.create_knowledge_query_config_node( - app_space_id, - "automation-" + right_now, - "Automation " + right_now, - "description", - knowledge_query_config, - ) - captured = capsys.readouterr() - assert "StatusCode.INVALID_ARGUMENT" in captured.err - - -def test_update_knowledge_query_config_node_success(client, right_now, app_space_id, capsys): - knowledge_query_config = data.get_knowledge_query_config(right_now) - config_node = client.create_knowledge_query_config_node( - app_space_id, - "automation-" + right_now, - "Automation " + right_now, - "description", - knowledge_query_config, - ) - assert config_node is not None - assert isinstance(config_node, CreateConfigNode) - - right_now = str(int(time.time())) - config_node_response = client.update_knowledge_query_config_node( - config_node.id, - config_node.etag, - "Automation " + right_now, - "description " + right_now, - data.get_knowledge_query_config_upd(right_now), - ) - assert config_node_response is not None - assert isinstance(config_node_response, UpdateConfigNode) - response = client.delete_config_node(config_node.id, config_node.etag) - - -def test_update_knowledge_query_config_node_wrong_id(client, right_now, capsys): - config_node_response = client.update_knowledge_query_config_node( - "gid:AAAAAuCBOLvwzUuWvKB1jWznHSM", - "eyouyuuinjk", - "Automation " + right_now, - "description " + right_now, - data.get_knowledge_query_config_upd(right_now), - ) - captured = capsys.readouterr() - assert "invalid eTag value" in captured.err - - -def test_create_event_sink_config_node_success(client, app_space_id, capsys): - right_now = str(int(time.time()) + 2) - event_sink_config = data.get_event_sink_config(right_now) - - config_node = client.create_event_sink_config_node( - app_space_id, - "automation-" + right_now, - "Automation " + right_now, - "description", - event_sink_config, - ) - captured = capsys.readouterr() - assert config_node is not None - assert isinstance(config_node, CreateConfigNode) - response = client.delete_config_node(config_node.id, config_node.etag) - assert response is not None - - -def test_create_event_sink_config_node_empty(client, app_space_id, capsys): - right_now = str(int(time.time()) + 4) - event_sink_config = data.get_event_sink_config(right_now) - - def mocked_create_config_node(request: pb2.CreateConfigNodeRequest): - return None - - client.stub.CreateConfigNode = mocked_create_config_node - config_node = client.create_event_sink_config_node( - app_space_id, - "automation-" + right_now, - "Automation " + right_now, - "description", - event_sink_config, - ) - assert config_node is None - - -def test_create_event_sink_config_node_exception(client, app_space_id, capsys): - right_now = str(int(time.time()) + 6) - config_node = client.create_event_sink_config_node( - app_space_id, - "automation-" + right_now, - "Automation " + right_now, - "description", - "description", - ) - - captured = capsys.readouterr() - assert "Message must be initialized with a dict" in captured.err - - -def test_create_event_sink_config_node_wrong_app_space(client, capsys): - right_now = str(int(time.time()) + 2) - app_space_id = data.get_identity_node() - event_sink_config = data.get_event_sink_config(right_now) - config_node = client.create_event_sink_config_node( - app_space_id, - "automation-" + right_now, - "Automation " + right_now, - "description", - event_sink_config, - ) - captured = capsys.readouterr() - assert "StatusCode.NOT_FOUND" in captured.err - - -def test_event_sink_config_node_app_space_other_customer(client, capsys): - right_now = str(int(time.time()) + 2) - app_space_id = "gid:AAAAAoQaR-cpn0jcmWkW_HV1c6g" - event_sink_config = data.get_event_sink_config(right_now) - - config_node = client.create_event_sink_config_node( - app_space_id, - "automation-" + right_now, - "Automation " + right_now, - "description", - event_sink_config, - ) - captured = capsys.readouterr() - assert "StatusCode.PERMISSION_DENIED" in captured.err - - -def test_update_event_sink_config_node_success(client, app_space_id, capsys): - right_now = str(int(time.time()) + 2) - event_sink_config = data.get_event_sink_config(right_now) - config_node = client.create_event_sink_config_node( - app_space_id, - "automation-" + right_now, - "Automation " + right_now, - "description", - event_sink_config, - ) - assert config_node is not None - assert isinstance(config_node, CreateConfigNode) - - right_now = str(int(time.time())) - config_node_response = client.update_event_sink_config_node( - config_node.id, - config_node.etag, - "Automation " + right_now, - "description " + right_now, - data.get_event_sink_config(right_now), - ) - assert config_node_response is not None - assert isinstance(config_node_response, UpdateConfigNode) - response = client.delete_config_node(config_node.id, config_node.etag) - - -def test_update_event_sink_config_node_wrong_id(client, right_now, capsys): - config_node_response = client.update_event_sink_config_node( - "gid:AAAAAuCBOLvwzUuWvKB1jWznHSM", - "eyouyuuinjk", - "Automation " + right_now, - "description " + right_now, - data.get_event_sink_config(right_now), - ) - captured = capsys.readouterr() - assert "StatusCode.INVALID_ARGUMENT" in captured.err - - -def test_validate_authorization_policy_status(client, capsys): - response = client.validate_authorization_policy_status("wrong") - captured = capsys.readouterr() - assert "status must be a member of AuthorizationPolicyConfig.Status" in captured.err - - -def test_validate_data_points(client, capsys): - response = client.validate_data_points(False) - captured = capsys.readouterr() - assert "ERROR" in captured.err - - -def test_validate_entity_matching_status(client, capsys): - response = client.validate_entity_matching_status("wrong") - captured = capsys.readouterr() - assert "status must be a member of EntityMatchingPipelineConfig.Status" in captured.err - - -def test_validate_trust_score_profile_dimension(client, capsys): - response = client.validate_trust_score_profile_dimension("wrong") - captured = capsys.readouterr() - assert "dimension must be a member of TrustScoreDimension.Name" in captured.err - - -def test_validate_trust_score_profile_update_frequency(client, capsys): - response = client.validate_trust_score_profile_update_frequency("wrong") - captured = capsys.readouterr() - assert "update_frequency must be a member of TrustScoreProfileConfig.UpdateFrequency" in captured.err - - -def test_validate_knowledge_query_status(client, capsys): - response = client.validate_knowledge_query_status("wrong") - captured = capsys.readouterr() - assert "status must be a member of KnowledgeQueryStatus" in captured.err - - -def test_get_list_config_node_success(client, right_now, app_space_id, capsys): - authorization_policy_config = data.get_authz_policy() - config_node = client.create_authorization_policy_config_node( - app_space_id, - "automation-" + right_now, - "Automation " + right_now, - "description", - authorization_policy_config, - ) - captured = capsys.readouterr() - assert config_node is not None - assert isinstance(config_node, CreateConfigNode) - config_node_id = config_node.id - list_config_nodes = client.list_config_node_versions(config_node_id) - assert list_config_nodes is not None - assert list_config_nodes[0].id == config_node_id - # assert list_config_nodes[0].version is not None - response = client.delete_config_node(config_node.id, config_node.etag) - - -def test_get_list_config_node_empty(client, app_space_id, capsys): - right_now = str(int(time.time() + 12)) - authorization_policy_config = data.get_authz_policy() - config_node = client.create_authorization_policy_config_node( - app_space_id, - "automation-" + right_now, - "Automation " + right_now, - "description", - authorization_policy_config, - ) - captured = capsys.readouterr() - assert config_node is not None - assert isinstance(config_node, CreateConfigNode) - config_node_id = config_node.id - list_config_nodes = client.list_config_node_versions(config_node_id) - assert list_config_nodes is not None - response = client.delete_config_node(config_node.id, config_node.etag) - - -def test_get_list_config_node_exception(client, app_space_id, capsys): - right_now = str(int(time.time() + 15)) - authorization_policy_config = data.get_authz_policy() - config_node = client.create_authorization_policy_config_node( - app_space_id, - "automation-" + right_now, - "Automation " + right_now, - "description", - authorization_policy_config, - ) - captured = capsys.readouterr() - assert config_node is not None - assert isinstance(config_node, CreateConfigNode) - config_node_id = config_node.id - list_config_nodes = client.list_config_node_versions(app_space_id) - assert "" in captured.err - response = client.delete_config_node(config_node.id, config_node.etag) diff --git a/tests/test_ingest.py b/tests/test_ingest.py deleted file mode 100644 index e40bd94..0000000 --- a/tests/test_ingest.py +++ /dev/null @@ -1,262 +0,0 @@ -from indykite_sdk.indykite.ingest.v1beta3 import model_pb2 -from indykite_sdk.indykite.knowledge.objects.v1beta1 import ikg_pb2 -from indykite_sdk.ingest import IngestClient -from indykite_sdk.model.ingest_record import IngestRecordResponse - - -def test_ingest_record_identity_node_success(): - client = IngestClient() - assert client is not None - record_id = "745898" - external_id = "external-dt-id345" - type = "Owner" - ingest_property = client.ingest_property("customProp2", "742") - assert isinstance(ingest_property, ikg_pb2.Property) - properties = [ingest_property] - upsert = client.upsert_data_node(external_id, type, [], properties, "", True) - assert isinstance(upsert, model_pb2.UpsertData) - record = client.record_upsert(record_id, upsert) - assert isinstance(record, model_pb2.Record) - response = client.ingest_record(record) - assert isinstance(response, IngestRecordResponse) - - -def test_ingest_record_resource_success(): - client = IngestClient() - assert client is not None - record_id = "745899" - external_id = "lot-1" - type = "ParkingLot" - ingest_property = client.ingest_property("customProp", "9654") - assert isinstance(ingest_property, ikg_pb2.Property) - properties = [ingest_property] - upsert = client.upsert_data_node(external_id, type, [], properties, "", False) - assert isinstance(upsert, model_pb2.UpsertData) - record = client.record_upsert(record_id, upsert) - assert isinstance(record, model_pb2.Record) - response = client.ingest_record(record) - assert isinstance(response, IngestRecordResponse) - - -def test_ingest_record_relationship_success(): - client = IngestClient() - assert client is not None - record_id = "745890" - type = "CAN_USE" - source_match = client.node_match("vehicle-1", "Vehicle") - assert isinstance(source_match, model_pb2.NodeMatch) - target_match = client.node_match("lot-1", "ParkingLot") - assert isinstance(target_match, model_pb2.NodeMatch) - ingest_property = client.ingest_property("customProp", "8742") - assert isinstance(ingest_property, ikg_pb2.Property) - properties = [ingest_property] - upsert = client.upsert_data_relationship(source_match, target_match, type, properties) - assert isinstance(upsert, model_pb2.UpsertData) - record = client.record_upsert(record_id, upsert) - assert isinstance(record, model_pb2.Record) - response = client.ingest_record(record) - assert isinstance(response, IngestRecordResponse) - - node = client.node_match("vehicle-1", "Vehicle") - delete = client.delete_data_node(node) - assert isinstance(delete, model_pb2.DeleteData) - record = client.record_delete(record_id, delete) - assert isinstance(record, model_pb2.Record) - response = client.ingest_record(record) - assert isinstance(response, IngestRecordResponse) - - -def test_ingest_record_relationship_delete(): - client = IngestClient() - assert client is not None - record_id = "856921" - type = "CAN_DRIVE" - source_match = client.node_match("vehicle-465", "Vehicle") - assert isinstance(source_match, model_pb2.NodeMatch) - target_match = client.node_match("lot-4645", "ParkingLot") - assert isinstance(target_match, model_pb2.NodeMatch) - ingest_property = client.ingest_property("customProp", "4412512") - properties = [ingest_property] - upsert = client.upsert_data_relationship(source_match, target_match, type, properties) - assert isinstance(upsert, model_pb2.UpsertData) - record = client.record_upsert(record_id, upsert) - assert isinstance(record, model_pb2.Record) - response = client.ingest_record(record) - assert isinstance(response, IngestRecordResponse) - relationship = model_pb2.Relationship(source=source_match, target=target_match, type=type, properties=properties) - assert isinstance(relationship, model_pb2.Relationship) - delete = client.delete_data_relationship(relationship) - assert isinstance(delete, model_pb2.DeleteData) - record = client.record_delete(record_id, delete) - assert isinstance(record, model_pb2.Record) - response = client.ingest_record(record) - assert isinstance(response, IngestRecordResponse) - - -def test_delete_record_node_property(): - client = IngestClient() - assert client is not None - record_id = "589623" - type = "CAN_DRIVE" - source_match = client.node_match("vehicle-555", "Vehicle") - assert isinstance(source_match, model_pb2.NodeMatch) - target_match = client.node_match("lot-555", "ParkingLot") - assert isinstance(target_match, model_pb2.NodeMatch) - ingest_property = client.ingest_property("customProp", "777447") - properties = [ingest_property] - upsert = client.upsert_data_relationship(source_match, target_match, type, properties) - assert isinstance(upsert, model_pb2.UpsertData) - record = client.record_upsert(record_id, upsert) - assert isinstance(record, model_pb2.Record) - response = client.ingest_record(record) - assert isinstance(response, IngestRecordResponse) - - property_type = "nodePropertyName" - node_property = client.node_property_match(source_match, property_type) - delete = client.delete_data_node_property(node_property) - assert isinstance(delete, model_pb2.DeleteData) - record = client.record_delete(record_id, delete) - assert isinstance(record, model_pb2.Record) - response = client.ingest_record(record) - assert isinstance(response, IngestRecordResponse) - - -def test_delete_record_relationship_property(): - client = IngestClient() - assert client is not None - record_id = "6523145" - type = "CAN_DRIVE" - source_match = client.node_match("vehicle-656", "Vehicle") - assert isinstance(source_match, model_pb2.NodeMatch) - target_match = client.node_match("lot-656", "ParkingLot") - assert isinstance(target_match, model_pb2.NodeMatch) - ingest_property = client.ingest_property("customProp", "665874") - properties = [ingest_property] - upsert = client.upsert_data_relationship(source_match, target_match, type, properties) - assert isinstance(upsert, model_pb2.UpsertData) - record = client.record_upsert(record_id, upsert) - response = client.ingest_record(record) - assert isinstance(response, IngestRecordResponse) - - property_type = "relationPropertyName" - relationship_property = client.relationship_property_match(source_match, target_match, type, property_type) - delete = client.delete_data_relationship_property(relationship_property) - assert isinstance(delete, model_pb2.DeleteData) - record = client.record_delete(record_id, delete) - assert isinstance(record, model_pb2.Record) - response = client.ingest_record(record) - assert isinstance(response, IngestRecordResponse) - - -def test_ingest_property_no_type(capsys): - client = IngestClient() - assert client is not None - ing_property = client.ingest_property("", "") - captured = capsys.readouterr() - assert "type is missing" in captured.err - - -def test_ingest_property_no_value(capsys): - client = IngestClient() - assert client is not None - ing_property = client.ingest_property("role", "") - captured = capsys.readouterr() - assert "you need oneof value / external_value" in captured.err - - -def test_upsert_node_error(capsys): - client = IngestClient() - assert client is not None - source_match = client.node_match("vehicle-5", "Vehicle") - upsert = client.upsert_data_node(source_match, source_match, source_match, source_match, source_match, source_match) - captured = capsys.readouterr() - assert not isinstance(upsert, model_pb2.UpsertData) - assert "ERROR" in captured.err - - -def test_upsert_relationship_error(capsys): - client = IngestClient() - assert client is not None - ingest_property = client.ingest_property("customProp", "665874") - properties = [ingest_property] - upsert = client.upsert_data_relationship({}, "", "", properties) - captured = capsys.readouterr() - assert not isinstance(upsert, model_pb2.UpsertData) - assert "ERROR" in captured.err - - -def test_node_property_match_error(capsys): - client = IngestClient() - assert client is not None - type_property = "nodePropertyName" - node_property = client.node_property_match("", type_property) - captured = capsys.readouterr() - assert not isinstance(node_property, model_pb2.DeleteData.NodePropertyMatch) - assert "ERROR" in captured.err - - -def test_relationship_property_match_error(capsys): - client = IngestClient() - assert client is not None - type_property = "relationshipPropertyName" - node_property = client.relationship_property_match("", "", type_property) - captured = capsys.readouterr() - assert not isinstance(node_property, model_pb2.DeleteData.RelationshipPropertyMatch) - assert "ERROR" in captured.err - - -def test_delete_data_node_error(capsys): - client = IngestClient() - assert client is not None - delete = client.delete_data_node("") - captured = capsys.readouterr() - assert not isinstance(delete, model_pb2.DeleteData) - assert "ERROR" in captured.err - - -def test_delete_data_relationship_error(capsys): - client = IngestClient() - assert client is not None - delete = client.delete_data_relationship("") - captured = capsys.readouterr() - assert not isinstance(delete, model_pb2.DeleteData) - assert "ERROR" in captured.err - - -def test_delete_data_node_property_error(capsys): - client = IngestClient() - assert client is not None - delete = client.delete_data_node_property("") - captured = capsys.readouterr() - assert not isinstance(delete, model_pb2.DeleteData) - assert "ERROR" in captured.err - - -def test_delete_data_relationship_property_error(capsys): - client = IngestClient() - assert client is not None - delete = client.delete_data_relationship_property("") - captured = capsys.readouterr() - assert not isinstance(delete, model_pb2.DeleteData) - assert "ERROR" in captured.err - - -def test_record_upsert_error(capsys): - client = IngestClient() - assert client is not None - record = client.record_upsert("4521", "") - captured = capsys.readouterr() - assert not isinstance(record, model_pb2.Record) - assert "ERROR" in captured.err - - -def test_ingest_record_delete_error(capsys): - client = IngestClient() - assert client is not None - record_id = "745890" - node = client.node_match("vehicle-11111111111", "Vehicle111111111") - delete = client.delete_data_node(node) - record = client.record_delete(record_id, delete) - delete_record_node = client.ingest_record(record) - captured = capsys.readouterr() - assert "ERROR" in captured.err diff --git a/tests/test_tda.py b/tests/test_tda.py deleted file mode 100644 index 3e17aba..0000000 --- a/tests/test_tda.py +++ /dev/null @@ -1,208 +0,0 @@ -import pytest -from helpers import data - -from indykite_sdk.indykite.tda.v1beta1 import trusted_data_access_api_pb2 as pb2 -from indykite_sdk.model.data_access import DataAccessResponse, ListConsentsResponse -from indykite_sdk.tda import DataAccessClient - - -@pytest.fixture -def client(): - return DataAccessClient() - - -def test_grant_consent_success(client): - user_id = data.get_identity_node_consent() - consent_id = data.get_consent_config_node_id() - validity_period = 86400 - user = {"user_id": user_id} - - def mocked_grant_consent(request: pb2.GrantConsentRequest): - assert request.user == user - assert request.consent_id == consent_id - assert request.validity_period == validity_period - return pb2.GrantConsentResponse() - - client.stub.GrantConsent = mocked_grant_consent - response = client.grant_consent(user, consent_id, validity_period) - assert response is not None - - -def test_grant_consent_empty(client): - user_id = data.get_identity_node_consent() - consent_id = data.get_consent_config_node_id() - validity_period = 86400 - user = {"user_id": user_id} - - def mocked_grant_consent(request: pb2.GrantConsentRequest): - return None - - client.stub.GrantConsent = mocked_grant_consent - response = client.grant_consent(user, consent_id, validity_period) - assert response is None - - -def test_grant_consent_fail_invalid_user_id(client, capsys): - user_id = "gid:AAAAFJ6iGHyG8Ee8tIvW7DQ1hkE" - consent_id = data.get_consent_config_node_id() - validity_period = 86400 - user = {"user_id": user_id} - - consent = client.grant_consent(user, consent_id, validity_period) - captured = capsys.readouterr() - assert "INVALID_ARGUMENT" in captured.err - - -def test_list_consents_success(client): - user_id = data.get_identity_node_consent() - user = {"user_id": user_id} - application_id = data.get_application_id() - consents = client.list_consents(user, application_id) - assert isinstance(consents, ListConsentsResponse) - - -def test_list_consents_no_user(client, capsys): - application_id = data.get_application_id() - consents = client.list_consents(["bbbb"], application_id) - captured = capsys.readouterr() - assert "invalid ListConsentsRequest.User: value is required" in captured.err - - -def test_list_consents_wrong_user(client, capsys): - user_id = "gid:AAAAFJ6iGHyG8Ee8tIvW7DQ1hkE" - user = {"user_id": user_id} - application_id = data.get_application_id() - - consent = client.list_consents(user, application_id) - captured = capsys.readouterr() - assert "INVALID_ARGUMENT" in captured.err - - -def test_list_consents_empty(client): - user_id = data.get_identity_node_consent() - user = {"user_id": user_id} - application_id = data.get_application_id() - - def mocked_list_consents(request: pb2.ListConsentsRequest): - return None - - client.stub.ListConsents = mocked_list_consents - consent = client.list_consents(user, application_id) - assert consent is None - - -def test_revoke_consent_success(client): - user_id = data.get_identity_node_consent() - consent_id = data.get_consent_config_node_id() - user = {"user_id": user_id} - - def mocked_revoke_consent(request: pb2.RevokeConsentRequest): - assert request.user == user - assert request.consent_id == consent_id - return pb2.RevokeConsentResponse() - - client.stub.RevokeConsent = mocked_revoke_consent - response = client.revoke_consent(user, consent_id) - assert response is not None - - -def test_revoke_consent_empty(client): - user_id = data.get_identity_node_consent() - consent_id = data.get_consent_config_node_id() - user = {"user_id": user_id} - - def mocked_revoke_consent(request: pb2.RevokeConsentRequest): - return None - - client.stub.RevokeConsent = mocked_revoke_consent - response = client.revoke_consent(user, consent_id) - assert response is None - - -def test_revoke_consent_fail_invalid_user_id(client, capsys): - user_id = "gid:AAAAFJ6iGHyG8Ee8tIvW7DQ1hkE" - consent_id = data.get_consent_config_node_id() - user = {"user_id": user_id} - - consent = client.revoke_consent(user, consent_id) - captured = capsys.readouterr() - assert "UNKNOWN" in captured.err - - -def test_data_access_success(client): - user_id = data.get_identity_node_consent() - user = {"user_id": user_id} - application_id = data.get_application_id() - consent_id = data.get_consent_config_node_id() - nodes = client.data_access(consent_id, application_id, user) - assert isinstance(nodes, DataAccessResponse) - - -def test_data_access_external_id_success(client): - user = {"external_id": {"external_id": "lSPmCXIPRXppszf", "type": "Person"}} - application_id = data.get_application_id() - consent_id = data.get_consent_config_node_id() - nodes = client.data_access(consent_id, application_id, user) - assert isinstance(nodes, DataAccessResponse) - - -def test_data_access_no_user(client, capsys): - user = {} - application_id = data.get_application_id() - consent_id = data.get_consent_config_node_id() - nodes = client.data_access(consent_id, application_id, user) - captured = capsys.readouterr() - assert "ERROR" in captured.err - - -def test_data_access_wrong_user(client, capsys): - user_id = "gid:AAAAFJ6iGHyG8Ee8tIvW7DQ1hkE" - user = {"user_id": user_id} - application_id = data.get_application_id() - consent_id = data.get_consent_config_node_id() - nodes = client.data_access(consent_id, application_id, user) - captured = capsys.readouterr() - assert "INVALID_ARGUMENT" in captured.err - - -def test_data_access_external_id_wrong_user(client, capsys): - user = {"external_id": data.get_identity_node_external_id()} - application_id = data.get_application_id() - consent_id = data.get_consent_config_node_id() - nodes = client.data_access(consent_id, application_id, user) - captured = capsys.readouterr() - assert "should be a dictionary" in captured.err - - -def test_data_access_property_wrong_user(client, capsys): - user = {"property": "last_name"} - application_id = data.get_application_id() - consent_id = data.get_consent_config_node_id() - nodes = client.data_access(consent_id, application_id, user) - captured = capsys.readouterr() - assert "should be a dictionary" in captured.err - - -def test_data_access_other_wrong_user(client, capsys): - user = {"other": "last_name"} - application_id = data.get_application_id() - consent_id = data.get_consent_config_node_id() - nodes = client.data_access(consent_id, application_id, user) - captured = capsys.readouterr() - assert "Key should be" in captured.err - - -def test_data_access_empty(client): - user_id = data.get_identity_node_consent() - user = {"user_id": user_id} - application_id = data.get_application_id() - consent_id = data.get_consent_config_node_id() - nodes = client.data_access(consent_id, application_id, user) - - def mocked_data_access(request: pb2.DataAccessRequest): - return None - - client.stub.DataAccess = mocked_data_access - consent = client.data_access(consent_id, application_id, user) - - assert consent is None