diff --git a/Pipfile b/Pipfile index a6f1d90b23..f553fb2c6a 100644 --- a/Pipfile +++ b/Pipfile @@ -83,6 +83,7 @@ cachetools = "==5.3.0" pyld = "==2.0.3" types-requests = "==2.31.0.10" types-pytz = "==2023.3.1.1" +gevent = "~=23.9" [requires] python_version = "3.10" diff --git a/Pipfile.lock b/Pipfile.lock index a5e69c37a2..82e5ca9e90 100644 --- a/Pipfile.lock +++ b/Pipfile.lock @@ -1,7 +1,7 @@ { "_meta": { "hash": { - "sha256": "742292a23cdc068307a3f32db0b851d98871df1f1fa6b2b7ee03ece05f34edf7" + "sha256": "4048fbb3741ca28c1b1d1c62ec340f3eaa0c9a8c66824d80e0a9beffd792d892" }, "pipfile-spec": 6, "requires": { @@ -167,11 +167,11 @@ }, "anyio": { "hashes": [ - "sha256:cfdb2b588b9fc25ede96d8db56ed50848b0b649dca3dd1df0b11f683bb9e0b5f", - "sha256:f7ed51751b2c2add651e5747c891b47e26d2a21be5d32d9311dfe9692f3e5d7a" + "sha256:56a415fbc462291813a94528a779597226619c8e78af7de0507333f700011e5f", + "sha256:5a0bec7085176715be77df87fc66d6c9d70626bd752fcc85f57cdbee5b3760da" ], "markers": "python_version >= '3.8'", - "version": "==4.0.0" + "version": "==4.1.0" }, "async-timeout": { "hashes": [ @@ -257,29 +257,24 @@ }, "bcrypt": { "hashes": [ - "sha256:089098effa1bc35dc055366740a067a2fc76987e8ec75349eb9484061c54f535", - "sha256:08d2947c490093a11416df18043c27abe3921558d2c03e2076ccb28a116cb6d0", - "sha256:0eaa47d4661c326bfc9d08d16debbc4edf78778e6aaba29c1bc7ce67214d4410", - "sha256:27d375903ac8261cfe4047f6709d16f7d18d39b1ec92aaf72af989552a650ebd", - "sha256:2b3ac11cf45161628f1f3733263e63194f22664bf4d0c0f3ab34099c02134665", - "sha256:2caffdae059e06ac23fce178d31b4a702f2a3264c20bfb5ff541b338194d8fab", - "sha256:3100851841186c25f127731b9fa11909ab7b1df6fc4b9f8353f4f1fd952fbf71", - "sha256:5ad4d32a28b80c5fa6671ccfb43676e8c1cc232887759d1cd7b6f56ea4355215", - "sha256:67a97e1c405b24f19d08890e7ae0c4f7ce1e56a712a016746c8b2d7732d65d4b", - "sha256:705b2cea8a9ed3d55b4491887ceadb0106acf7c6387699fca771af56b1cdeeda", - "sha256:8a68f4341daf7522fe8d73874de8906f3a339048ba406be6ddc1b3ccb16fc0d9", - "sha256:a522427293d77e1c29e303fc282e2d71864579527a04ddcfda6d4f8396c6c36a", - "sha256:ae88eca3024bb34bb3430f964beab71226e761f51b912de5133470b649d82344", - "sha256:b1023030aec778185a6c16cf70f359cbb6e0c289fd564a7cfa29e727a1c38f8f", - "sha256:b3b85202d95dd568efcb35b53936c5e3b3600c7cdcc6115ba461df3a8e89f38d", - "sha256:b57adba8a1444faf784394de3436233728a1ecaeb6e07e8c22c8848f179b893c", - "sha256:bf4fa8b2ca74381bb5442c089350f09a3f17797829d958fad058d6e44d9eb83c", - "sha256:ca3204d00d3cb2dfed07f2d74a25f12fc12f73e606fcaa6975d1f7ae69cacbb2", - "sha256:cbb03eec97496166b704ed663a53680ab57c5084b2fc98ef23291987b525cb7d", - "sha256:e9a51bbfe7e9802b5f3508687758b564069ba937748ad7b9e890086290d2f79e", - "sha256:fbdaec13c5105f0c4e5c52614d04f0bca5f5af007910daa8b6b12095edaa67b3" + "sha256:12611c4b0a8b1c461646228344784a1089bc0c49975680a2f54f516e71e9b79e", + "sha256:12f40f78dcba4aa7d1354d35acf45fae9488862a4fb695c7eeda5ace6aae273f", + "sha256:14d41933510717f98aac63378b7956bbe548986e435df173c841d7f2bd0b2de7", + "sha256:24c2ebd287b5b11016f31d506ca1052d068c3f9dc817160628504690376ff050", + "sha256:2ade10e8613a3b8446214846d3ddbd56cfe9205a7d64742f0b75458c868f7492", + "sha256:2e197534c884336f9020c1f3a8efbaab0aa96fc798068cb2da9c671818b7fbb0", + "sha256:3d6c4e0d6963c52f8142cdea428e875042e7ce8c84812d8e5507bd1e42534e07", + "sha256:476aa8e8aca554260159d4c7a97d6be529c8e177dbc1d443cb6b471e24e82c74", + "sha256:755b9d27abcab678e0b8fb4d0abdebeea1f68dd1183b3f518bad8d31fa77d8be", + "sha256:a7a7b8a87e51e5e8ca85b9fdaf3a5dc7aaf123365a09be7a27883d54b9a0c403", + "sha256:bab33473f973e8058d1b2df8d6e095d237c49fbf7a02b527541a86a5d1dc4444", + "sha256:c6450538a0fc32fb7ce4c6d511448c54c4ff7640b2ed81badf9898dcb9e5b737", + "sha256:d573885b637815a7f3a3cd5f87724d7d0822da64b0ab0aa7f7c78bae534e86dc", + "sha256:df37f5418d4f1cdcff845f60e747a015389fa4e63703c918330865e06ad80007", + "sha256:f33b385c3e80b5a26b3a5e148e6165f873c1c202423570fdf45fe34e00e5f3e5", + "sha256:fb931cd004a7ad36a89789caf18a54c20287ec1cd62161265344b9c4554fdb2e" ], - "version": "==4.0.1" + "version": "==4.1.1" }, "blinker": { "hashes": [ @@ -588,46 +583,46 @@ }, "frozendict": { "hashes": [ - "sha256:0bc4767e2f83db5b701c787e22380296977368b0c57e485ca71b2eedfa11c4a3", - "sha256:145afd033ebfade28416093335261b8ec1af5cccc593482309e7add062ec8668", - "sha256:23c4bb46e6b8246e1e7e49b5593c2bc09221db0d8f31f7c092be8dfb42b9e620", - "sha256:2b2fd8ce36277919b36e3c834d2389f3cd7ac068ae730c312671dd4439a5dd65", - "sha256:2b3435e5f1ca5ae68a5e95e64b09d6d5c645cadd6b87569a0b3019dd248c8d00", - "sha256:313ed8d9ba6bac35d7635cd9580ee5721a0fb016f4d2d20f0efa05dbecbdb1be", - "sha256:3957d52f1906b0c85f641a1911d214255873f6408ab4e5ad657cc27a247fb145", - "sha256:4742e76c4111bd09198d3ab66cef94be8506212311338f9182d6ef5f5cb60493", - "sha256:47fc26468407fdeb428cfc89495b7921419e670355c21b383765482fdf6c5c14", - "sha256:4c258aab9c8488338634f2ec670ef049dbf0ab0e7a2fa9bc2c7b5009cb614801", - "sha256:5526559eca8f1780a4ee5146896f59afc31435313560208dd394a3a5e537d3ff", - "sha256:5e82befa7c385a668d569cebbebbdf49cee6fea4083f08e869a1b08cfb640a9f", - "sha256:638cf363d3cbca31a341503cf2219eac52a5f5140449676fae3d9644cd3c5487", - "sha256:6ea638228692db2bf94bce40ea4b25f4077588497b516bd16576575560094bd9", - "sha256:72cfe08ab8ae524e54848fa90b22d02c1b1ecfb3064438696bcaa4b953f18772", - "sha256:750632cc890d8ee9484fe6d31b261159144b6efacc08e1317fe46accd1410373", - "sha256:7a75bf87e76c4386caecdbdd02a99e53ad43a6b5c38fb3d5a634a9fc9ce41462", - "sha256:7ee5fe2658a8ac9a57f748acaf563f6a47f80b8308cbf0a04fac0ba057d41f75", - "sha256:80abe81d36e889ceec665e06ec764a7638000fa3e7be09786ac4d3ddc64b76db", - "sha256:8ccc94ac781710db44e142e1a11ff9b31d02c032c01c6868d51fcbef73086225", - "sha256:8cf35ddd25513428ec152614def9696afb93ae5ec0eb54fa6aa6206eda77ac4c", - "sha256:9a506d807858fa961aaa5b48dab6154fdc6bd045bbe9310788bbff141bb42d13", - "sha256:9ea5520e85447ff8d4681e181941e482662817ccba921b7cb3f87922056d892a", - "sha256:ba41a7ed019bd03b62d63ed3f8dea35b8243d1936f7c9ed4b5298ca45a01928e", - "sha256:c31abc8acea309b132dde441856829f6003a3d242da8b54bce4c0f2a3c8c63f0", - "sha256:d086440328a465dea9bef2dbad7548d75d1a0a0d21f43a08c03e1ec79ac5240e", - "sha256:d188d062084fba0e4bf32719ff7380b26c050b932ff164043ce82ab90587c52b", - "sha256:d3c6ce943946c2a61501c8cf116fff0892d11dd579877eb36e2aea2c27fddfef", - "sha256:da98427de26b5a2865727947480cbb53860089c4d195baa29c539da811cea617", - "sha256:e27c5c1d29d0eda7979253ec88abc239da1313b38f39f4b16984db3b3e482300", - "sha256:e4c785de7f1a13f15963945f400656b18f057c2fc76c089dacf127a2bb188c03", - "sha256:e72dbc1bcc2203cef38d205f692396f5505921a5680f66aa9a7e8bb71fd38f28", - "sha256:ed5a6c5c7a0f57269577c2a338a6002949aea21a23b7b7d06da7e7dced8b605b", - "sha256:f0f573dc4861dd7ec9e055c8cceaf45355e894e749f621f199aab7b311ac4bdb", - "sha256:f2a4e818ac457f6354401dcb631527af25e5a20fcfc81e6b5054b45fc245caca", - "sha256:f83fed36497af9562ead5e9fb8443224ba2781786bd3b92b1087cb7d0ff20135", - "sha256:ffc684773de7c88724788fa9787d0016fd75830412d58acbd9ed1a04762c675b" + "sha256:0196d6f50db96b26aa4144782930caf019aabf68c368b66c79490552128e3472", + "sha256:06b586394d8e654558fcf2e79ac8511a47d484de8e55a20ecdc6667d87ec1730", + "sha256:094d43bff2f65371734832385d1a457c5da10399e638e01f85dd71a9e12b9408", + "sha256:1262df1e9bea434d5859398522e8d8e393721ea6a3a1ccb0e36a27022a52fa5e", + "sha256:21af4b67c1bb7075b5a2e5c1d128f69331ee405bd34028416d9106a0ef6c84eb", + "sha256:38f2f43b44d7d3ac4924116017578ec81812ba385c8f710abda58617eae20afe", + "sha256:45071ad048ca6feb4b7a90383aa64377d130b5245bffdd8204debb4f5e9ccf0a", + "sha256:45d517af1aaede930a7b22b21ff80c09f22bd296a902f681ca58fd5acb5dd33b", + "sha256:48e9a94e4beba7dbb880dab9d33b656ef3a608da3d43105335225b06cb6ae139", + "sha256:4a82ffff413d70eab71b9cfcf6f9fb9ad7a1d414a1d664470a214771c332d3c8", + "sha256:525da194ad0407c97d23339c19200fa0b464ff16ca2624f7adfc95ec1da17a42", + "sha256:53fb48e8929309a62f1402f0feb2db76a80faa45b69d9cf23bd1e42de8730c62", + "sha256:56117a0104ce68445d6856b5585133f667ae04098f0dcecd7786a510dc121818", + "sha256:561ddd000da66360142a81996f0ae5b806c267868e77bae2f5ab459334bf6b89", + "sha256:64d0dc4c36c0342c5748aab2fcca0c07f33876e41caf62fbdfeac951c2a3bcb5", + "sha256:6bff7ff522ee2a53103a4ae848826d9212a0d61a025562eaac245e93a6aa6285", + "sha256:75b02cb3473b0da9003b3d71ef8fc76bb97092543035a47000a63352cab2c125", + "sha256:7b57205e9ca00733064e9abfc5b2ced46d65370e5451502a17162d42a7d527d0", + "sha256:7e89b56f3c13749fd1bf8d20325a572063b5ad8dbf880e7881b8eb8cf41e1743", + "sha256:87f6cf5513d0920836df067ae79296e3d52be88abcee1629b7010ed2af1ee121", + "sha256:8c4771eec34a8a47a62d3520465e7ac2d8f583d8ed99fea8dbba4218756e9360", + "sha256:8ce979138e0d5f04e879c9f732a7deba5bf3d55708e1f02533b8301326e1ffda", + "sha256:9286378eecfe993b803842e2c14c65efd1b12e99e3ac5c25d05661630cedff6d", + "sha256:95f2f6def297eaa00e8aff4e72cc251b91c7c318507f15643c8f4b0647248da2", + "sha256:9c63147ce90b2b7e45d3f0923063d624892ed0c7a13fa95787e57dbb27b376a7", + "sha256:9c69650ed54670d73652b0880229c8356defbdc4663cf3cb5f844169c7c71666", + "sha256:a9331ddde2cdf4fc7d5ad09c6078643517663a3028346cc765fc4145be9d8dd2", + "sha256:ac297f91e101b89514e0dbe8a70c3f6a6185107d8306c3b800440bcdab1bd853", + "sha256:bb949eaf12d53b1e4034865516c6a1945d6d6f1cb102fa7417c017d7cefcc7a7", + "sha256:bd12f907e378a9796d449aa292607672ba59e6ba3153d7bfa1d891c0b0a1160b", + "sha256:c04aa367a21bd3af396b64b2021ea13325faa11b832be77791a987dda3fa543c", + "sha256:d3de16b88214874ac1caa1c9527441bdfa0c20bce809d2efbffb307a05f5fafd", + "sha256:e135a2dd22cf668ce45cb697522497ba2e2bd9cf6c239d06856b69eeae0a557b", + "sha256:ecabff354ec0ea070770f6556e6e23deaca2053e18322163fce76cdd93a3845f", + "sha256:f2d2146ae474e3478263932d363128b1bab6e7ddd9cd79fd142247a15c710f76", + "sha256:fa04e7561d10c2feef423963818e43bc24a0fb65f5ea21ffb00f11ae8e6129e3", + "sha256:ff2e07b94abed60ef233117d5ffc6cac6353c6856fbba898b12a556e5698e440" ], "markers": "python_version >= '3.6'", - "version": "==2.3.8" + "version": "==2.3.9" }, "frozenlist": { "hashes": [ @@ -1046,19 +1041,19 @@ }, "httpx": { "hashes": [ - "sha256:fec7d6cc5c27c578a391f7e87b9aa7d3d8fbcd034f6399f9f79b45bcc12a866a", - "sha256:ffd96d5cf901e63863d9f1b4b6807861dbea4d301613415d9e6e57ead15fc5d0" + "sha256:8b8fcaa0c8ea7b05edd69a094e63a2094c4efcb48129fb757361bc423c0ad9e8", + "sha256:a05d3d052d9b2dfce0e3896636467f8a5342fb2b902c819428e1ac65413ca118" ], "index": "pypi", - "version": "==0.25.1" + "version": "==0.25.2" }, "idna": { "hashes": [ - "sha256:814f528e8dead7d329833b91c5faa87d60bf71824cd12a7530b5526063d02cb4", - "sha256:90b77e79eaa3eba6de819a0c442c0b4ceefc341a7a2ab77d7562bf49f425c5c2" + "sha256:9ecdbbd083b06798ae1e86adcbfe8ab1479cf864e4ee30fe4e46a003d12491ca", + "sha256:c05567e9c24a6b9faaa835c4821bad0590fbb9d5779e7caa6e1cc4978e7eb24f" ], "markers": "python_version >= '3.5'", - "version": "==3.4" + "version": "==3.6" }, "importlib-metadata": { "hashes": [ @@ -1815,11 +1810,11 @@ }, "sentry-sdk": { "hashes": [ - "sha256:25d574f94fdf72199e331c2401fdac60d01b5be8f32822174c51c3ff0fc2f8cb", - "sha256:f32dd16547f2f45e1c71a96fd4a48925e629541f7ddfe3d5d25ef7d5e94eb3c8" + "sha256:7cd324dd2877fdc861f75cba4242bce23a58272a6fea581fcb218bb718bd9cc5", + "sha256:a249c7364827ee89daaa078bb8b56ece0b3d52d9130961bef2302b79bdf7fe70" ], "index": "pypi", - "version": "==1.36.0" + "version": "==1.37.1" }, "shellingham": { "hashes": [ @@ -2340,19 +2335,11 @@ "develop": { "anyio": { "hashes": [ - "sha256:cfdb2b588b9fc25ede96d8db56ed50848b0b649dca3dd1df0b11f683bb9e0b5f", - "sha256:f7ed51751b2c2add651e5747c891b47e26d2a21be5d32d9311dfe9692f3e5d7a" + "sha256:56a415fbc462291813a94528a779597226619c8e78af7de0507333f700011e5f", + "sha256:5a0bec7085176715be77df87fc66d6c9d70626bd752fcc85f57cdbee5b3760da" ], "markers": "python_version >= '3.8'", - "version": "==4.0.0" - }, - "appnope": { - "hashes": [ - "sha256:02bd91c4de869fbb1e1c50aafc4098827a7a54ab2f39d9dcba6c9547ed920e24", - "sha256:265a455292d0bd8a72453494fa24df5a11eb18373a60c7c0430889f22548605e" - ], - "markers": "sys_platform == 'darwin'", - "version": "==0.1.3" + "version": "==4.1.0" }, "asttokens": { "hashes": [ @@ -2701,46 +2688,92 @@ }, "frozendict": { "hashes": [ - "sha256:0bc4767e2f83db5b701c787e22380296977368b0c57e485ca71b2eedfa11c4a3", - "sha256:145afd033ebfade28416093335261b8ec1af5cccc593482309e7add062ec8668", - "sha256:23c4bb46e6b8246e1e7e49b5593c2bc09221db0d8f31f7c092be8dfb42b9e620", - "sha256:2b2fd8ce36277919b36e3c834d2389f3cd7ac068ae730c312671dd4439a5dd65", - "sha256:2b3435e5f1ca5ae68a5e95e64b09d6d5c645cadd6b87569a0b3019dd248c8d00", - "sha256:313ed8d9ba6bac35d7635cd9580ee5721a0fb016f4d2d20f0efa05dbecbdb1be", - "sha256:3957d52f1906b0c85f641a1911d214255873f6408ab4e5ad657cc27a247fb145", - "sha256:4742e76c4111bd09198d3ab66cef94be8506212311338f9182d6ef5f5cb60493", - "sha256:47fc26468407fdeb428cfc89495b7921419e670355c21b383765482fdf6c5c14", - "sha256:4c258aab9c8488338634f2ec670ef049dbf0ab0e7a2fa9bc2c7b5009cb614801", - "sha256:5526559eca8f1780a4ee5146896f59afc31435313560208dd394a3a5e537d3ff", - "sha256:5e82befa7c385a668d569cebbebbdf49cee6fea4083f08e869a1b08cfb640a9f", - "sha256:638cf363d3cbca31a341503cf2219eac52a5f5140449676fae3d9644cd3c5487", - "sha256:6ea638228692db2bf94bce40ea4b25f4077588497b516bd16576575560094bd9", - "sha256:72cfe08ab8ae524e54848fa90b22d02c1b1ecfb3064438696bcaa4b953f18772", - "sha256:750632cc890d8ee9484fe6d31b261159144b6efacc08e1317fe46accd1410373", - "sha256:7a75bf87e76c4386caecdbdd02a99e53ad43a6b5c38fb3d5a634a9fc9ce41462", - "sha256:7ee5fe2658a8ac9a57f748acaf563f6a47f80b8308cbf0a04fac0ba057d41f75", - "sha256:80abe81d36e889ceec665e06ec764a7638000fa3e7be09786ac4d3ddc64b76db", - "sha256:8ccc94ac781710db44e142e1a11ff9b31d02c032c01c6868d51fcbef73086225", - "sha256:8cf35ddd25513428ec152614def9696afb93ae5ec0eb54fa6aa6206eda77ac4c", - "sha256:9a506d807858fa961aaa5b48dab6154fdc6bd045bbe9310788bbff141bb42d13", - "sha256:9ea5520e85447ff8d4681e181941e482662817ccba921b7cb3f87922056d892a", - "sha256:ba41a7ed019bd03b62d63ed3f8dea35b8243d1936f7c9ed4b5298ca45a01928e", - "sha256:c31abc8acea309b132dde441856829f6003a3d242da8b54bce4c0f2a3c8c63f0", - "sha256:d086440328a465dea9bef2dbad7548d75d1a0a0d21f43a08c03e1ec79ac5240e", - "sha256:d188d062084fba0e4bf32719ff7380b26c050b932ff164043ce82ab90587c52b", - "sha256:d3c6ce943946c2a61501c8cf116fff0892d11dd579877eb36e2aea2c27fddfef", - "sha256:da98427de26b5a2865727947480cbb53860089c4d195baa29c539da811cea617", - "sha256:e27c5c1d29d0eda7979253ec88abc239da1313b38f39f4b16984db3b3e482300", - "sha256:e4c785de7f1a13f15963945f400656b18f057c2fc76c089dacf127a2bb188c03", - "sha256:e72dbc1bcc2203cef38d205f692396f5505921a5680f66aa9a7e8bb71fd38f28", - "sha256:ed5a6c5c7a0f57269577c2a338a6002949aea21a23b7b7d06da7e7dced8b605b", - "sha256:f0f573dc4861dd7ec9e055c8cceaf45355e894e749f621f199aab7b311ac4bdb", - "sha256:f2a4e818ac457f6354401dcb631527af25e5a20fcfc81e6b5054b45fc245caca", - "sha256:f83fed36497af9562ead5e9fb8443224ba2781786bd3b92b1087cb7d0ff20135", - "sha256:ffc684773de7c88724788fa9787d0016fd75830412d58acbd9ed1a04762c675b" + "sha256:0196d6f50db96b26aa4144782930caf019aabf68c368b66c79490552128e3472", + "sha256:06b586394d8e654558fcf2e79ac8511a47d484de8e55a20ecdc6667d87ec1730", + "sha256:094d43bff2f65371734832385d1a457c5da10399e638e01f85dd71a9e12b9408", + "sha256:1262df1e9bea434d5859398522e8d8e393721ea6a3a1ccb0e36a27022a52fa5e", + "sha256:21af4b67c1bb7075b5a2e5c1d128f69331ee405bd34028416d9106a0ef6c84eb", + "sha256:38f2f43b44d7d3ac4924116017578ec81812ba385c8f710abda58617eae20afe", + "sha256:45071ad048ca6feb4b7a90383aa64377d130b5245bffdd8204debb4f5e9ccf0a", + "sha256:45d517af1aaede930a7b22b21ff80c09f22bd296a902f681ca58fd5acb5dd33b", + "sha256:48e9a94e4beba7dbb880dab9d33b656ef3a608da3d43105335225b06cb6ae139", + "sha256:4a82ffff413d70eab71b9cfcf6f9fb9ad7a1d414a1d664470a214771c332d3c8", + "sha256:525da194ad0407c97d23339c19200fa0b464ff16ca2624f7adfc95ec1da17a42", + "sha256:53fb48e8929309a62f1402f0feb2db76a80faa45b69d9cf23bd1e42de8730c62", + "sha256:56117a0104ce68445d6856b5585133f667ae04098f0dcecd7786a510dc121818", + "sha256:561ddd000da66360142a81996f0ae5b806c267868e77bae2f5ab459334bf6b89", + "sha256:64d0dc4c36c0342c5748aab2fcca0c07f33876e41caf62fbdfeac951c2a3bcb5", + "sha256:6bff7ff522ee2a53103a4ae848826d9212a0d61a025562eaac245e93a6aa6285", + "sha256:75b02cb3473b0da9003b3d71ef8fc76bb97092543035a47000a63352cab2c125", + "sha256:7b57205e9ca00733064e9abfc5b2ced46d65370e5451502a17162d42a7d527d0", + "sha256:7e89b56f3c13749fd1bf8d20325a572063b5ad8dbf880e7881b8eb8cf41e1743", + "sha256:87f6cf5513d0920836df067ae79296e3d52be88abcee1629b7010ed2af1ee121", + "sha256:8c4771eec34a8a47a62d3520465e7ac2d8f583d8ed99fea8dbba4218756e9360", + "sha256:8ce979138e0d5f04e879c9f732a7deba5bf3d55708e1f02533b8301326e1ffda", + "sha256:9286378eecfe993b803842e2c14c65efd1b12e99e3ac5c25d05661630cedff6d", + "sha256:95f2f6def297eaa00e8aff4e72cc251b91c7c318507f15643c8f4b0647248da2", + "sha256:9c63147ce90b2b7e45d3f0923063d624892ed0c7a13fa95787e57dbb27b376a7", + "sha256:9c69650ed54670d73652b0880229c8356defbdc4663cf3cb5f844169c7c71666", + "sha256:a9331ddde2cdf4fc7d5ad09c6078643517663a3028346cc765fc4145be9d8dd2", + "sha256:ac297f91e101b89514e0dbe8a70c3f6a6185107d8306c3b800440bcdab1bd853", + "sha256:bb949eaf12d53b1e4034865516c6a1945d6d6f1cb102fa7417c017d7cefcc7a7", + "sha256:bd12f907e378a9796d449aa292607672ba59e6ba3153d7bfa1d891c0b0a1160b", + "sha256:c04aa367a21bd3af396b64b2021ea13325faa11b832be77791a987dda3fa543c", + "sha256:d3de16b88214874ac1caa1c9527441bdfa0c20bce809d2efbffb307a05f5fafd", + "sha256:e135a2dd22cf668ce45cb697522497ba2e2bd9cf6c239d06856b69eeae0a557b", + "sha256:ecabff354ec0ea070770f6556e6e23deaca2053e18322163fce76cdd93a3845f", + "sha256:f2d2146ae474e3478263932d363128b1bab6e7ddd9cd79fd142247a15c710f76", + "sha256:fa04e7561d10c2feef423963818e43bc24a0fb65f5ea21ffb00f11ae8e6129e3", + "sha256:ff2e07b94abed60ef233117d5ffc6cac6353c6856fbba898b12a556e5698e440" ], "markers": "python_version >= '3.6'", - "version": "==2.3.8" + "version": "==2.3.9" + }, + "gevent": { + "hashes": [ + "sha256:272cffdf535978d59c38ed837916dfd2b5d193be1e9e5dcc60a5f4d5025dd98a", + "sha256:2c7b5c9912378e5f5ccf180d1fdb1e83f42b71823483066eddbe10ef1a2fcaa2", + "sha256:36a549d632c14684bcbbd3014a6ce2666c5f2a500f34d58d32df6c9ea38b6535", + "sha256:4368f341a5f51611411ec3fc62426f52ac3d6d42eaee9ed0f9eebe715c80184e", + "sha256:43daf68496c03a35287b8b617f9f91e0e7c0d042aebcc060cadc3f049aadd653", + "sha256:455e5ee8103f722b503fa45dedb04f3ffdec978c1524647f8ba72b4f08490af1", + "sha256:45792c45d60f6ce3d19651d7fde0bc13e01b56bb4db60d3f32ab7d9ec467374c", + "sha256:4e24c2af9638d6c989caffc691a039d7c7022a31c0363da367c0d32ceb4a0648", + "sha256:52b4abf28e837f1865a9bdeef58ff6afd07d1d888b70b6804557e7908032e599", + "sha256:52e9f12cd1cda96603ce6b113d934f1aafb873e2c13182cf8e86d2c5c41982ea", + "sha256:5f3c781c84794926d853d6fb58554dc0dcc800ba25c41d42f6959c344b4db5a6", + "sha256:62d121344f7465e3739989ad6b91f53a6ca9110518231553fe5846dbe1b4518f", + "sha256:65883ac026731ac112184680d1f0f1e39fa6f4389fd1fc0bf46cc1388e2599f9", + "sha256:707904027d7130ff3e59ea387dddceedb133cc742b00b3ffe696d567147a9c9e", + "sha256:72c002235390d46f94938a96920d8856d4ffd9ddf62a303a0d7c118894097e34", + "sha256:7532c17bc6c1cbac265e751b95000961715adef35a25d2b0b1813aa7263fb397", + "sha256:78eebaf5e73ff91d34df48f4e35581ab4c84e22dd5338ef32714264063c57507", + "sha256:7c1abc6f25f475adc33e5fc2dbcc26a732608ac5375d0d306228738a9ae14d3b", + "sha256:7c28e38dcde327c217fdafb9d5d17d3e772f636f35df15ffae2d933a5587addd", + "sha256:7ccf0fd378257cb77d91c116e15c99e533374a8153632c48a3ecae7f7f4f09fe", + "sha256:921dda1c0b84e3d3b1778efa362d61ed29e2b215b90f81d498eb4d8eafcd0b7a", + "sha256:a2898b7048771917d85a1d548fd378e8a7b2ca963db8e17c6d90c76b495e0e2b", + "sha256:a3c5e9b1f766a7a64833334a18539a362fb563f6c4682f9634dea72cbe24f771", + "sha256:ada07076b380918829250201df1d016bdafb3acf352f35e5693b59dceee8dd2e", + "sha256:b101086f109168b23fa3586fccd1133494bdb97f86920a24dc0b23984dc30b69", + "sha256:bf456bd6b992eb0e1e869e2fd0caf817f0253e55ca7977fd0e72d0336a8c1c6a", + "sha256:bf7af500da05363e66f122896012acb6e101a552682f2352b618e541c941a011", + "sha256:c3e5d2fa532e4d3450595244de8ccf51f5721a05088813c1abd93ad274fe15e7", + "sha256:c84d34256c243b0a53d4335ef0bc76c735873986d478c53073861a92566a8d71", + "sha256:d163d59f1be5a4c4efcdd13c2177baaf24aadf721fdf2e1af9ee54a998d160f5", + "sha256:d57737860bfc332b9b5aa438963986afe90f49645f6e053140cfa0fa1bdae1ae", + "sha256:dbb22a9bbd6a13e925815ce70b940d1578dbe5d4013f20d23e8a11eddf8d14a7", + "sha256:dcb8612787a7f4626aa881ff15ff25439561a429f5b303048f0fca8a1c781c39", + "sha256:dd6c32ab977ecf7c7b8c2611ed95fa4aaebd69b74bf08f4b4960ad516861517d", + "sha256:de350fde10efa87ea60d742901e1053eb2127ebd8b59a7d3b90597eb4e586599", + "sha256:e1ead6863e596a8cc2a03e26a7a0981f84b6b3e956101135ff6d02df4d9a6b07", + "sha256:ed7a048d3e526a5c1d55c44cb3bc06cfdc1947d06d45006cc4cf60dedc628904", + "sha256:f632487c87866094546a74eefbca2c74c1d03638b715b6feb12e80120960185a", + "sha256:fae8d5b5b8fa2a8f63b39f5447168b02db10c888a3e387ed7af2bd1b8612e543", + "sha256:fde6402c5432b835fbb7698f1c7f2809c8d6b2bd9d047ac1f5a7c1d5aa569303" + ], + "index": "pypi", + "version": "==23.9.1" }, "greenlet": { "hashes": [ @@ -2831,11 +2864,11 @@ }, "httpx": { "hashes": [ - "sha256:fec7d6cc5c27c578a391f7e87b9aa7d3d8fbcd034f6399f9f79b45bcc12a866a", - "sha256:ffd96d5cf901e63863d9f1b4b6807861dbea4d301613415d9e6e57ead15fc5d0" + "sha256:8b8fcaa0c8ea7b05edd69a094e63a2094c4efcb48129fb757361bc423c0ad9e8", + "sha256:a05d3d052d9b2dfce0e3896636467f8a5342fb2b902c819428e1ac65413ca118" ], "index": "pypi", - "version": "==0.25.1" + "version": "==0.25.2" }, "identify": { "hashes": [ @@ -2847,11 +2880,11 @@ }, "idna": { "hashes": [ - "sha256:814f528e8dead7d329833b91c5faa87d60bf71824cd12a7530b5526063d02cb4", - "sha256:90b77e79eaa3eba6de819a0c442c0b4ceefc341a7a2ab77d7562bf49f425c5c2" + "sha256:9ecdbbd083b06798ae1e86adcbfe8ab1479cf864e4ee30fe4e46a003d12491ca", + "sha256:c05567e9c24a6b9faaa835c4821bad0590fbb9d5779e7caa6e1cc4978e7eb24f" ], "markers": "python_version >= '3.5'", - "version": "==3.4" + "version": "==3.6" }, "ijson": { "hashes": [ @@ -2974,11 +3007,11 @@ }, "ipython": { "hashes": [ - "sha256:126bb57e1895594bb0d91ea3090bbd39384f6fe87c3d57fd558d0670f50339bb", - "sha256:1e4d1d666a023e3c93585ba0d8e962867f7a111af322efff6b9c58062b3e5444" + "sha256:ca6f079bb33457c66e233e4580ebfc4128855b4cf6370dddd73842a9563e8a27", + "sha256:e8267419d72d81955ec1177f8a29aaa90ac80ad647499201119e2f05e99aa397" ], "markers": "python_version < '3.11' and python_version >= '3.7'", - "version": "==8.17.2" + "version": "==8.18.1" }, "isodate": { "hashes": [ @@ -3306,11 +3339,11 @@ }, "pexpect": { "hashes": [ - "sha256:0b48a55dcb3c05f3329815901ea4fc1537514d6ba867a152b581d69ae3710937", - "sha256:fc65a43959d153d0114afe13997d439c22823a27cefceb5ff35c2178c6784c0c" + "sha256:7236d1e080e4936be2dc3e326cec0af72acf9212a7e1d060210e70a47e253523", + "sha256:ee7d41123f3c9911050ea2c2dac107568dc43b2d3b0c7557a33212c398ead30f" ], "markers": "sys_platform != 'win32'", - "version": "==4.8.0" + "version": "==4.9.0" }, "platformdirs": { "hashes": [ @@ -3641,11 +3674,11 @@ }, "pyshacl": { "hashes": [ - "sha256:274ffbf05ee98c26fd7253d2e430fc8c5fc4887a51b314ab26f8bfbf69b2e104", - "sha256:56416f8c1703d7425e175873a182ec227f0fed2d46805ad6bd1618e9e85088df" + "sha256:716b65397486b1a306efefd018d772d3c112a3828ea4e1be27aae16aee524243", + "sha256:91e87ed04ccb29aa47abfcf8a3e172d35a8831fce23a011cfbf35534ce4c940b" ], - "markers": "python_full_version >= '3.7.0' and python_full_version < '4.0.0'", - "version": "==0.24.0" + "markers": "python_full_version >= '3.8.1' and python_full_version < '4.0.0'", + "version": "==0.25.0" }, "pytest": { "hashes": [ @@ -3869,11 +3902,11 @@ }, "traitlets": { "hashes": [ - "sha256:9b232b9430c8f57288c1024b34a8f0251ddcc47268927367a0dd3eeaca40deb5", - "sha256:baf991e61542da48fe8aef8b779a9ea0aa38d8a54166ee250d5af5ecf4486619" + "sha256:f14949d23829023013c47df20b4a76ccd1a85effb786dc060f34de7948361b33", + "sha256:fcdaa8ac49c04dfa0ed3ee3384ef6dfdb5d6f3741502be247279407679296772" ], "markers": "python_version >= '3.8'", - "version": "==5.13.0" + "version": "==5.14.0" }, "types-passlib": { "hashes": [ @@ -4039,6 +4072,56 @@ ], "markers": "python_version >= '3.8'", "version": "==3.17.0" + }, + "zope.event": { + "hashes": [ + "sha256:2832e95014f4db26c47a13fdaef84cef2f4df37e66b59d8f1f4a8f319a632c26", + "sha256:bac440d8d9891b4068e2b5a2c5e2c9765a9df762944bda6955f96bb9b91e67cd" + ], + "markers": "python_version >= '3.7'", + "version": "==5.0" + }, + "zope.interface": { + "hashes": [ + "sha256:0c8cf55261e15590065039696607f6c9c1aeda700ceee40c70478552d323b3ff", + "sha256:13b7d0f2a67eb83c385880489dbb80145e9d344427b4262c49fbf2581677c11c", + "sha256:1f294a15f7723fc0d3b40701ca9b446133ec713eafc1cc6afa7b3d98666ee1ac", + "sha256:239a4a08525c080ff833560171d23b249f7f4d17fcbf9316ef4159f44997616f", + "sha256:2f8d89721834524a813f37fa174bac074ec3d179858e4ad1b7efd4401f8ac45d", + "sha256:2fdc7ccbd6eb6b7df5353012fbed6c3c5d04ceaca0038f75e601060e95345309", + "sha256:34c15ca9248f2e095ef2e93af2d633358c5f048c49fbfddf5fdfc47d5e263736", + "sha256:387545206c56b0315fbadb0431d5129c797f92dc59e276b3ce82db07ac1c6179", + "sha256:43b576c34ef0c1f5a4981163b551a8781896f2a37f71b8655fd20b5af0386abb", + "sha256:57d0a8ce40ce440f96a2c77824ee94bf0d0925e6089df7366c2272ccefcb7941", + "sha256:5a804abc126b33824a44a7aa94f06cd211a18bbf31898ba04bd0924fbe9d282d", + "sha256:67be3ca75012c6e9b109860820a8b6c9a84bfb036fbd1076246b98e56951ca92", + "sha256:6af47f10cfc54c2ba2d825220f180cc1e2d4914d783d6fc0cd93d43d7bc1c78b", + "sha256:6dc998f6de015723196a904045e5a2217f3590b62ea31990672e31fbc5370b41", + "sha256:70d2cef1bf529bff41559be2de9d44d47b002f65e17f43c73ddefc92f32bf00f", + "sha256:7ebc4d34e7620c4f0da7bf162c81978fce0ea820e4fa1e8fc40ee763839805f3", + "sha256:964a7af27379ff4357dad1256d9f215047e70e93009e532d36dcb8909036033d", + "sha256:97806e9ca3651588c1baaebb8d0c5ee3db95430b612db354c199b57378312ee8", + "sha256:9b9bc671626281f6045ad61d93a60f52fd5e8209b1610972cf0ef1bbe6d808e3", + "sha256:9ffdaa5290422ac0f1688cb8adb1b94ca56cee3ad11f29f2ae301df8aecba7d1", + "sha256:a0da79117952a9a41253696ed3e8b560a425197d4e41634a23b1507efe3273f1", + "sha256:a41f87bb93b8048fe866fa9e3d0c51e27fe55149035dcf5f43da4b56732c0a40", + "sha256:aa6fd016e9644406d0a61313e50348c706e911dca29736a3266fc9e28ec4ca6d", + "sha256:ad54ed57bdfa3254d23ae04a4b1ce405954969c1b0550cc2d1d2990e8b439de1", + "sha256:b012d023b4fb59183909b45d7f97fb493ef7a46d2838a5e716e3155081894605", + "sha256:b51b64432eed4c0744241e9ce5c70dcfecac866dff720e746d0a9c82f371dfa7", + "sha256:bbe81def9cf3e46f16ce01d9bfd8bea595e06505e51b7baf45115c77352675fd", + "sha256:c9559138690e1bd4ea6cd0954d22d1e9251e8025ce9ede5d0af0ceae4a401e43", + "sha256:e30506bcb03de8983f78884807e4fd95d8db6e65b69257eea05d13d519b83ac0", + "sha256:e33e86fd65f369f10608b08729c8f1c92ec7e0e485964670b4d2633a4812d36b", + "sha256:e441e8b7d587af0414d25e8d05e27040d78581388eed4c54c30c0c91aad3a379", + "sha256:e8bb9c990ca9027b4214fa543fd4025818dc95f8b7abce79d61dc8a2112b561a", + "sha256:ef43ee91c193f827e49599e824385ec7c7f3cd152d74cb1dfe02cb135f264d83", + "sha256:ef467d86d3cfde8b39ea1b35090208b0447caaabd38405420830f7fd85fbdd56", + "sha256:f89b28772fc2562ed9ad871c865f5320ef761a7fcc188a935e21fe8b31a38ca9", + "sha256:fddbab55a2473f1d3b8833ec6b7ac31e8211b0aa608df5ab09ce07f3727326de" + ], + "markers": "python_version >= '3.7'", + "version": "==6.1" } } } diff --git a/README.md b/README.md index d6d933945e..3c29f28786 100644 --- a/README.md +++ b/README.md @@ -20,7 +20,7 @@ And - ✅ [The 12-Factor App](https://12factor.net) - ✅ [Domain driven design](https://www.amazon.com/Domain-Driven-Design-Tackling-Complexity-Software-ebook/dp/B00794TAUG) -
+
🔌 **Code quality tools:** - ✅ [flake8](https://github.com/pycqa/flake8) @@ -29,7 +29,7 @@ And - ✅ [mypy](https://github.com/python/mypy) - ✅ [pytest](https://github.com/pytest-dev/pytest) -
+
## ✋ Mandatory steps @@ -51,7 +51,7 @@ git clone git@github.com:ChildMindInstitute/mindlogger-backend-refactor.git #### 2.1 Description 📜 | Key | Default value | Description | | --- |------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| PYTHONPATH | src/ | This variable makes all folders inside `src/` reachable in a runtime.
***NOTE:*** You don't need to do this if you use Docker as far as it is hardcoded in `Dockerfile` | +| PYTHONPATH | src/ | This variable makes all folders inside `src/` reachable in a runtime.
***NOTE:*** You don't need to do this if you use Docker as far as it is hardcoded in `Dockerfile` | | DATABASE__HOST | postgres | Database Host | | DATABASE__USER | postgres | User name for Postgresql Database user | | DATABASE__PASSWORD | postgres | Password for Postgresql Database user | @@ -82,7 +82,7 @@ cp .env.default .env ``` -
+
## 👨‍🦯 Local development @@ -115,7 +115,7 @@ pipenv shell pipenv sync --dev ``` -
+
> 🛑 **NOTE:** if you don't use `pipenv` for some reason remember that you will not have automatically exported variables from your `.env` file. > @@ -136,7 +136,7 @@ set -o allexport; source .env; set +o allexport > 🛑 **NOTE:** Please do not forget about environment variables! Now all environment variables for the Postgres Database which runs in docker are already passed to docker-compose.yaml from the .env file. -
+
### 3. Provide code quality ✨ @@ -177,7 +177,7 @@ P.S. You don't need to do this additional step if you run application via Docker uvicorn src.main:app --proxy-headers --port {PORT} --reload ``` -
+
### 5. Running Tests ▶️ @@ -216,8 +216,18 @@ psql# create user test; # Set password for the user psql# alter user test with password 'test'; ``` -
-
+ +#### Test coverage + +To correctly calculate test coverage, you need to run the coverage with the `--concurrency=thread,gevent` parameter: + +```bash +coverage run --concurrency=thread,gevent -m pytest +coverage report -m +``` + +
+
## 🐳 Docker development diff --git a/src/apps/activities/crud/reusable_item_choices.py b/src/apps/activities/crud/reusable_item_choices.py index 1ce023e4d9..2ec14ff3af 100644 --- a/src/apps/activities/crud/reusable_item_choices.py +++ b/src/apps/activities/crud/reusable_item_choices.py @@ -39,7 +39,6 @@ async def get_item_templates( async def get_item_templates_count(self, user_id_: uuid.UUID) -> int: query: Query = select(count(ReusableItemChoiceSchema.id)) query = query.where(ReusableItemChoiceSchema.user_id == user_id_) - query = query.order_by(ReusableItemChoiceSchema.id) db_result = await self._execute(query) return db_result.scalars().first() or 0 diff --git a/src/apps/activities/services/activity.py b/src/apps/activities/services/activity.py index 8c62617f74..f2cd202180 100644 --- a/src/apps/activities/services/activity.py +++ b/src/apps/activities/services/activity.py @@ -235,25 +235,26 @@ async def update_create( role=Role.RESPONDENT, ) - respondents_with_indvdl_schdl = [] + respondents_with_indvdl_schdl: list[uuid.UUID] = [] for respondent in respondents_in_applet: + respondent_uuid = uuid.UUID(f"{respondent}") number_of_indvdl_events = await EventCRUD( self.session ).count_individual_events_by_user( - applet_id=applet_id, user_id=uuid.UUID(respondent) + applet_id=applet_id, user_id=respondent_uuid ) if number_of_indvdl_events > 0: - respondents_with_indvdl_schdl.append(respondent) + respondents_with_indvdl_schdl.append(respondent_uuid) if respondents_with_indvdl_schdl: - for respondent in respondents_with_indvdl_schdl: + for respondent_uuid in respondents_with_indvdl_schdl: await ScheduleService( self.session ).create_default_schedules( applet_id=applet_id, activity_ids=list(new_activities), is_activity=True, - respondent_id=uuid.UUID(respondent), + respondent_id=respondent_uuid, ) else: await ScheduleService(self.session).create_default_schedules( diff --git a/src/apps/activities/tests/test_reusable_items.py b/src/apps/activities/tests/test_reusable_items.py index c6464dbf92..ee3e3842cd 100644 --- a/src/apps/activities/tests/test_reusable_items.py +++ b/src/apps/activities/tests/test_reusable_items.py @@ -11,6 +11,7 @@ class TestReusableItem(BaseTest): create_url = "activities/item_choices" update_url = "activities/item_choices" delete_url = "activities/item_choices/{id}" + retrieve_url = "activities/item_choices" @rollback async def test_create_item_choice(self): @@ -111,3 +112,24 @@ async def test_create_item_choice_with_long_int_value(self): res_data = response.json() assert response.status_code == 422, res_data + + @rollback + async def test_retrieve_item_choice(self): + await self.client.login( + self.login_url, "tom@mindlogger.com", "Test1234!" + ) + create_data = dict( + token_name="Average age 3", + token_value="21", + input_type="radiobutton", + ) + + response = await self.client.post(self.create_url, data=create_data) + created_data = response.json()["result"] + assert response.status_code == 201, response.json() + assert response.json()["result"]["id"] + + response = await self.client.get(self.retrieve_url) + assert response.status_code == 200, response.json() + assert response.json()["count"] == 1 + assert response.json()["result"][0] == created_data diff --git a/src/apps/activity_flows/service/flow.py b/src/apps/activity_flows/service/flow.py index 63e539cfe5..b8ced3df7b 100644 --- a/src/apps/activity_flows/service/flow.py +++ b/src/apps/activity_flows/service/flow.py @@ -177,23 +177,24 @@ async def update_create( respondents_with_indvdl_schdl = [] for respondent in respondents_in_applet: + respondent_uuid = uuid.UUID(f"{respondent}") number_of_indvdl_events = await EventCRUD( self.session ).count_individual_events_by_user( - applet_id=applet_id, user_id=uuid.UUID(respondent) + applet_id=applet_id, user_id=respondent_uuid ) if number_of_indvdl_events > 0: - respondents_with_indvdl_schdl.append(respondent) + respondents_with_indvdl_schdl.append(respondent_uuid) if respondents_with_indvdl_schdl: - for respondent in respondents_with_indvdl_schdl: + for respondent_uuid in respondents_with_indvdl_schdl: await ScheduleService( self.session ).create_default_schedules( applet_id=applet_id, activity_ids=list(new_flows), is_activity=False, - respondent_id=uuid.UUID(respondent), + respondent_id=respondent_uuid, ) else: await ScheduleService(self.session).create_default_schedules(