diff --git a/requirements/dev.txt b/requirements/dev.txt index 253969fb6..9a0083001 100644 --- a/requirements/dev.txt +++ b/requirements/dev.txt @@ -403,9 +403,9 @@ distlib==0.3.7 \ --hash=sha256:2e24928bc811348f0feb63014e97aaae3037f2cf48712d51ae61df7fd6075057 \ --hash=sha256:9dafe54b34a028eafd95039d5e5d4851a13734540f1331060d31c9916e7147a8 # via virtualenv -documenteer[guide]==1.0.0a13 \ - --hash=sha256:3d2acd02110751166ea7e8dd7cebed723074afe4346079a816a3f9cd6297d24e \ - --hash=sha256:4dbac173d529d23127138fd45a187a426746ec5f11f94f0b8a02fe088a266381 +documenteer[guide]==1.0.0a15 \ + --hash=sha256:9590ba12c6aca7f76faef5605070059113b1d0a801875f42e69444848c3746ec \ + --hash=sha256:caa258ec5f5f68dca976e56098fa0d8a15974566ecca1df6962419ea27063c27 # via # -r requirements/dev.in # documenteer @@ -572,9 +572,9 @@ jsonschema==4.20.0 \ --hash=sha256:4f614fd46d8d61258610998997743ec5492a648b33cf478c1ddc23ed4598a5fa \ --hash=sha256:ed6231f0429ecf966f5bc8dfef245998220549cbbcf140f913b7464c52c3b6b3 # via sphinxcontrib-redoc -jsonschema-specifications==2023.11.1 \ - --hash=sha256:c9b234904ffe02f079bf91b14d79987faa685fd4b39c377a0996954c0090b9ca \ - --hash=sha256:f596778ab612b3fd29f72ea0d990393d0540a5aab18bf0407a46632eab540779 +jsonschema-specifications==2023.11.2 \ + --hash=sha256:9472fc4fea474cd74bea4a2b190daeccb5a9e4db2ea80efcf7a1b582fc9a81b8 \ + --hash=sha256:e74ba7c0a65e8cb49dc26837d6cfe576557084a8b423ed16a420984228104f93 # via jsonschema kaitaistruct==0.10 \ --hash=sha256:a044dee29173d6afbacf27bcac39daf89b654dd418cfa009ab82d9178a9ae52a \ @@ -723,9 +723,9 @@ packaging==23.2 \ # pytest # pytest-sugar # sphinx -platformdirs==4.0.0 \ - --hash=sha256:118c954d7e949b35437270383a3f2531e99dd93cf7ce4dc8340d3356d30f173b \ - --hash=sha256:cb633b2bcf10c51af60beb0ab06d2f1d69064b43abf4c185ca6b28865f3f9731 +platformdirs==4.1.0 \ + --hash=sha256:11c8f37bcca40db96d8144522d925583bdb7a31f7b0e37e3ed4318400a8e2380 \ + --hash=sha256:906d548203468492d432bcb294d4bc2fff751bf84971fbb2c10918cc206ee420 # via virtualenv pluggy==1.3.0 \ --hash=sha256:cf61ae8f126ac6f7c451172cf30e3e43d3ca77615509771b3a984a0730651e12 \ @@ -912,9 +912,9 @@ pytest==7.4.3 \ # pytest-asyncio # pytest-cov # pytest-sugar -pytest-asyncio==0.21.1 \ - --hash=sha256:40a7eae6dded22c7b604986855ea48400ab15b069ae38116e8c01238e9eeb64d \ - --hash=sha256:8666c1c8ac02631d7c51ba282e0c69a8a452b211ffedf2599099845da5c5c37b +pytest-asyncio==0.23.2 \ + --hash=sha256:c16052382554c7b22d48782ab3438d5b10f8cf7a4bdcae7f0f67f097d95beecc \ + --hash=sha256:ea9021364e32d58f0be43b91c6233fb8d2224ccef2398d6837559e587682808f # via -r requirements/dev.in pytest-cov==4.1.0 \ --hash=sha256:3904b13dfbfec47f003b8e77fd5b589cd11904a21ddf1ab38a64f204d6a10ef6 \ @@ -988,9 +988,9 @@ pyyaml==6.0.1 \ # pre-commit # pybtex # sphinxcontrib-redoc -referencing==0.31.0 \ - --hash=sha256:381b11e53dd93babb55696c71cf42aef2d36b8a150c49bf0bc301e36d536c882 \ - --hash=sha256:cc28f2c88fbe7b961a7817a0abc034c09a1e36358f82fedb4ffdf29a25398863 +referencing==0.31.1 \ + --hash=sha256:81a1471c68c9d5e3831c30ad1dd9815c45b558e596653db751a2bfdd17b3b9ec \ + --hash=sha256:c19c4d006f1757e3dd75c4f784d38f8698d87b649c54f9ace14e5e8c9667c01d # via # jsonschema # jsonschema-specifications @@ -1006,106 +1006,106 @@ respx==0.20.2 \ --hash=sha256:07cf4108b1c88b82010f67d3c831dae33a375c7b436e54d87737c7f9f99be643 \ --hash=sha256:ab8e1cf6da28a5b2dd883ea617f8130f77f676736e6e9e4a25817ad116a172c9 # via -r requirements/dev.in -rpds-py==0.13.1 \ - --hash=sha256:0290712eb5603a725769b5d857f7cf15cf6ca93dda3128065bbafe6fdb709beb \ - --hash=sha256:032c242a595629aacace44128f9795110513ad27217b091e834edec2fb09e800 \ - --hash=sha256:08832078767545c5ee12561ce980714e1e4c6619b5b1e9a10248de60cddfa1fd \ - --hash=sha256:08b335fb0c45f0a9e2478a9ece6a1bfb00b6f4c4780f9be3cf36479c5d8dd374 \ - --hash=sha256:0b70c1f800059c92479dc94dda41288fd6607f741f9b1b8f89a21a86428f6383 \ - --hash=sha256:0d9f8930092558fd15c9e07198625efb698f7cc00b3dc311c83eeec2540226a8 \ - --hash=sha256:181ee352691c4434eb1c01802e9daa5edcc1007ff15023a320e2693fed6a661b \ - --hash=sha256:19f5aa7f5078d35ed8e344bcba40f35bc95f9176dddb33fc4f2084e04289fa63 \ - --hash=sha256:1a3b2583c86bbfbf417304eeb13400ce7f8725376dc7d3efbf35dc5d7052ad48 \ - --hash=sha256:1c9a1dc5e898ce30e2f9c0aa57181cddd4532b22b7780549441d6429d22d3b58 \ - --hash=sha256:1f36a1e80ef4ed1996445698fd91e0d3e54738bf597c9995118b92da537d7a28 \ - --hash=sha256:20147996376be452cd82cd6c17701daba69a849dc143270fa10fe067bb34562a \ - --hash=sha256:249c8e0055ca597707d71c5ad85fd2a1c8fdb99386a8c6c257e1b47b67a9bec1 \ - --hash=sha256:2647192facf63be9ed2d7a49ceb07efe01dc6cfb083bd2cc53c418437400cb99 \ - --hash=sha256:264f3a5906c62b9df3a00ad35f6da1987d321a053895bd85f9d5c708de5c0fbf \ - --hash=sha256:2abd669a39be69cdfe145927c7eb53a875b157740bf1e2d49e9619fc6f43362e \ - --hash=sha256:2b2415d5a7b7ee96aa3a54d4775c1fec140476a17ee12353806297e900eaeddc \ - --hash=sha256:2c173f529666bab8e3f948b74c6d91afa22ea147e6ebae49a48229d9020a47c4 \ - --hash=sha256:2da81c1492291c1a90987d76a47c7b2d310661bf7c93a9de0511e27b796a8b46 \ - --hash=sha256:2eca04a365be380ca1f8fa48b334462e19e3382c0bb7386444d8ca43aa01c481 \ - --hash=sha256:37b08df45f02ff1866043b95096cbe91ac99de05936dd09d6611987a82a3306a \ - --hash=sha256:37f79f4f1f06cc96151f4a187528c3fd4a7e1065538a4af9eb68c642365957f7 \ - --hash=sha256:3dd5fb7737224e1497c886fb3ca681c15d9c00c76171f53b3c3cc8d16ccfa7fb \ - --hash=sha256:3e3ac5b602fea378243f993d8b707189f9061e55ebb4e56cb9fdef8166060f28 \ - --hash=sha256:3f55ae773abd96b1de25fc5c3fb356f491bd19116f8f854ba705beffc1ddc3c5 \ - --hash=sha256:4011d5c854aa804c833331d38a2b6f6f2fe58a90c9f615afdb7aa7cf9d31f721 \ - --hash=sha256:4145172ab59b6c27695db6d78d040795f635cba732cead19c78cede74800949a \ - --hash=sha256:42b9535aa22ab023704cfc6533e968f7e420affe802d85e956d8a7b4c0b0b5ea \ - --hash=sha256:46a07a258bda12270de02b34c4884f200f864bba3dcd6e3a37fef36a168b859d \ - --hash=sha256:4f13d3f6585bd07657a603780e99beda96a36c86acaba841f131e81393958336 \ - --hash=sha256:528e2afaa56d815d2601b857644aeb395afe7e59212ab0659906dc29ae68d9a6 \ - --hash=sha256:545e94c84575057d3d5c62634611858dac859702b1519b6ffc58eca7fb1adfcf \ - --hash=sha256:577d40a72550eac1386b77b43836151cb61ff6700adacda2ad4d883ca5a0b6f2 \ - --hash=sha256:5967fa631d0ed9f8511dede08bc943a9727c949d05d1efac4ac82b2938024fb7 \ - --hash=sha256:5b769396eb358d6b55dbf78f3f7ca631ca1b2fe02136faad5af74f0111b4b6b7 \ - --hash=sha256:63c9e2794329ef070844ff9bfc012004aeddc0468dc26970953709723f76c8a5 \ - --hash=sha256:6574f619e8734140d96c59bfa8a6a6e7a3336820ccd1bfd95ffa610673b650a2 \ - --hash=sha256:6bfe72b249264cc1ff2f3629be240d7d2fdc778d9d298087cdec8524c91cd11f \ - --hash=sha256:736817dbbbd030a69a1faf5413a319976c9c8ba8cdcfa98c022d3b6b2e01eca6 \ - --hash=sha256:74a2044b870df7c9360bb3ce7e12f9ddf8e72e49cd3a353a1528cbf166ad2383 \ - --hash=sha256:74be3b215a5695690a0f1a9f68b1d1c93f8caad52e23242fcb8ba56aaf060281 \ - --hash=sha256:76a8374b294e4ccb39ccaf11d39a0537ed107534139c00b4393ca3b542cc66e5 \ - --hash=sha256:7ba239bb37663b2b4cd08e703e79e13321512dccd8e5f0e9451d9e53a6b8509a \ - --hash=sha256:7c40851b659d958c5245c1236e34f0d065cc53dca8d978b49a032c8e0adfda6e \ - --hash=sha256:7cf241dbb50ea71c2e628ab2a32b5bfcd36e199152fc44e5c1edb0b773f1583e \ - --hash=sha256:7cfae77da92a20f56cf89739a557b76e5c6edc094f6ad5c090b9e15fbbfcd1a4 \ - --hash=sha256:7d152ec7bb431040af2500e01436c9aa0d993f243346f0594a15755016bf0be1 \ - --hash=sha256:80080972e1d000ad0341c7cc58b6855c80bd887675f92871221451d13a975072 \ - --hash=sha256:82dbcd6463e580bcfb7561cece35046aaabeac5a9ddb775020160b14e6c58a5d \ - --hash=sha256:8308a8d49d1354278d5c068c888a58d7158a419b2e4d87c7839ed3641498790c \ - --hash=sha256:839676475ac2ccd1532d36af3d10d290a2ca149b702ed464131e450a767550df \ - --hash=sha256:83feb0f682d75a09ddc11aa37ba5c07dd9b824b22915207f6176ea458474ff75 \ - --hash=sha256:88956c993a20201744282362e3fd30962a9d86dc4f1dcf2bdb31fab27821b61f \ - --hash=sha256:8a6ad8429340e0a4de89353447c6441329def3632e7b2293a7d6e873217d3c2b \ - --hash=sha256:8ba9fbc5d6e36bfeb5292530321cc56c4ef3f98048647fabd8f57543c34174ec \ - --hash=sha256:8c1f6c8df23be165eb0cb78f305483d00c6827a191e3a38394c658d5b9c80bbd \ - --hash=sha256:91276caef95556faeb4b8f09fe4439670d3d6206fee78d47ddb6e6de837f0b4d \ - --hash=sha256:960e7e460fda2d0af18c75585bbe0c99f90b8f09963844618a621b804f8c3abe \ - --hash=sha256:9656a09653b18b80764647d585750df2dff8928e03a706763ab40ec8c4872acc \ - --hash=sha256:9cd935c0220d012a27c20135c140f9cdcbc6249d5954345c81bfb714071b985c \ - --hash=sha256:a2b3c79586636f1fa69a7bd59c87c15fca80c0d34b5c003d57f2f326e5276575 \ - --hash=sha256:a4b9d3f5c48bbe8d9e3758e498b3c34863f2c9b1ac57a4e6310183740e59c980 \ - --hash=sha256:a8c2bf286e5d755a075e5e97ba56b3de08cccdad6b323ab0b21cc98875176b03 \ - --hash=sha256:a90031658805c63fe488f8e9e7a88b260ea121ba3ee9cdabcece9c9ddb50da39 \ - --hash=sha256:ad666a904212aa9a6c77da7dce9d5170008cda76b7776e6731928b3f8a0d40fa \ - --hash=sha256:af2d1648eb625a460eee07d3e1ea3a4a6e84a1fb3a107f6a8e95ac19f7dcce67 \ - --hash=sha256:b3d4b390ee70ca9263b331ccfaf9819ee20e90dfd0201a295e23eb64a005dbef \ - --hash=sha256:ba4432301ad7eeb1b00848cf46fae0e5fecfd18a8cb5fdcf856c67985f79ecc7 \ - --hash=sha256:bc3179e0815827cf963e634095ae5715ee73a5af61defbc8d6ca79f1bdae1d1d \ - --hash=sha256:c5fd099acaee2325f01281a130a39da08d885e4dedf01b84bf156ec2737d78fe \ - --hash=sha256:c797ea56f36c6f248656f0223b11307fdf4a1886f3555eba371f34152b07677f \ - --hash=sha256:cd4ea56c9542ad0091dfdef3e8572ae7a746e1e91eb56c9e08b8d0808b40f1d1 \ - --hash=sha256:cdd6f8738e1f1d9df5b1603bb03cb30e442710e5672262b95d0f9fcb4edb0dab \ - --hash=sha256:d0580faeb9def6d0beb7aa666294d5604e569c4e24111ada423cf9936768d95c \ - --hash=sha256:d11afdc5992bbd7af60ed5eb519873690d921425299f51d80aa3099ed49f2bcc \ - --hash=sha256:d1d388d2f5f5a6065cf83c54dd12112b7389095669ff395e632003ae8999c6b8 \ - --hash=sha256:d20da6b4c7aa9ee75ad0730beaba15d65157f5beeaca54a038bb968f92bf3ce3 \ - --hash=sha256:d22e0660de24bd8e9ac82f4230a22a5fe4e397265709289d61d5fb333839ba50 \ - --hash=sha256:d22f2cb82e0b40e427a74a93c9a4231335bbc548aed79955dde0b64ea7f88146 \ - --hash=sha256:d4fa1eeb9bea6d9b64ac91ec51ee94cc4fc744955df5be393e1c923c920db2b0 \ - --hash=sha256:d9793d46d3e6522ae58e9321032827c9c0df1e56cbe5d3de965facb311aed6aa \ - --hash=sha256:dab979662da1c9fbb464e310c0b06cb5f1d174d09a462553af78f0bfb3e01920 \ - --hash=sha256:db8d0f0ad92f74feb61c4e4a71f1d573ef37c22ef4dc19cab93e501bfdad8cbd \ - --hash=sha256:df2af1180b8eeececf4f819d22cc0668bfadadfd038b19a90bd2fb2ee419ec6f \ - --hash=sha256:dfb5d2ab183c0efe5e7b8917e4eaa2e837aacafad8a69b89aa6bc81550eed857 \ - --hash=sha256:e04f8c76b8d5c70695b4e8f1d0b391d8ef91df00ef488c6c1ffb910176459bc6 \ - --hash=sha256:e4a45ba34f904062c63049a760790c6a2fa7a4cc4bd160d8af243b12371aaa05 \ - --hash=sha256:e9be1f7c5f9673616f875299339984da9447a40e3aea927750c843d6e5e2e029 \ - --hash=sha256:edc91c50e17f5cd945d821f0f1af830522dba0c10267c3aab186dc3dbaab8def \ - --hash=sha256:ee70ee5f4144a45a9e6169000b5b525d82673d5dab9f7587eccc92794814e7ac \ - --hash=sha256:f1059ca9a51c936c9a8d46fbc2c9a6b4c15ab3f13a97f1ad32f024b39666ba85 \ - --hash=sha256:f47eef55297799956464efc00c74ae55c48a7b68236856d56183fe1ddf866205 \ - --hash=sha256:f4ae6f423cb7d1c6256b7482025ace2825728f53b7ac58bcd574de6ee9d242c2 \ - --hash=sha256:f4b15a163448ec79241fb2f1bc5a8ae1a4a304f7a48d948d208a2935b26bf8a5 \ - --hash=sha256:f55601fb58f92e4f4f1d05d80c24cb77505dc42103ddfd63ddfdc51d3da46fa2 \ - --hash=sha256:fa84bbe22ffa108f91631935c28a623001e335d66e393438258501e618fb0dde \ - --hash=sha256:faa12a9f34671a30ea6bb027f04ec4e1fb8fa3fb3ed030893e729d4d0f3a9791 \ - --hash=sha256:fcfd5f91b882eedf8d9601bd21261d6ce0e61a8c66a7152d1f5df08d3f643ab1 \ - --hash=sha256:fe30ef31172bdcf946502a945faad110e8fff88c32c4bec9a593df0280e64d8a +rpds-py==0.13.2 \ + --hash=sha256:06d218e4464d31301e943b65b2c6919318ea6f69703a351961e1baaf60347276 \ + --hash=sha256:12ecf89bd54734c3c2c79898ae2021dca42750c7bcfb67f8fb3315453738ac8f \ + --hash=sha256:15253fff410873ebf3cfba1cc686a37711efcd9b8cb30ea21bb14a973e393f60 \ + --hash=sha256:188435794405c7f0573311747c85a96b63c954a5f2111b1df8018979eca0f2f0 \ + --hash=sha256:1ceebd0ae4f3e9b2b6b553b51971921853ae4eebf3f54086be0565d59291e53d \ + --hash=sha256:244e173bb6d8f3b2f0c4d7370a1aa341f35da3e57ffd1798e5b2917b91731fd3 \ + --hash=sha256:25b28b3d33ec0a78e944aaaed7e5e2a94ac811bcd68b557ca48a0c30f87497d2 \ + --hash=sha256:25ea41635d22b2eb6326f58e608550e55d01df51b8a580ea7e75396bafbb28e9 \ + --hash=sha256:29d311e44dd16d2434d5506d57ef4d7036544fc3c25c14b6992ef41f541b10fb \ + --hash=sha256:2a1472956c5bcc49fb0252b965239bffe801acc9394f8b7c1014ae9258e4572b \ + --hash=sha256:2a7bef6977043673750a88da064fd513f89505111014b4e00fbdd13329cd4e9a \ + --hash=sha256:2ac26f50736324beb0282c819668328d53fc38543fa61eeea2c32ea8ea6eab8d \ + --hash=sha256:2e72f750048b32d39e87fc85c225c50b2a6715034848dbb196bf3348aa761fa1 \ + --hash=sha256:31e220a040b89a01505128c2f8a59ee74732f666439a03e65ccbf3824cdddae7 \ + --hash=sha256:35f53c76a712e323c779ca39b9a81b13f219a8e3bc15f106ed1e1462d56fcfe9 \ + --hash=sha256:38d4f822ee2f338febcc85aaa2547eb5ba31ba6ff68d10b8ec988929d23bb6b4 \ + --hash=sha256:38f9bf2ad754b4a45b8210a6c732fe876b8a14e14d5992a8c4b7c1ef78740f53 \ + --hash=sha256:3a44c8440183b43167fd1a0819e8356692bf5db1ad14ce140dbd40a1485f2dea \ + --hash=sha256:3ab96754d23372009638a402a1ed12a27711598dd49d8316a22597141962fe66 \ + --hash=sha256:3c55d7f2d817183d43220738270efd3ce4e7a7b7cbdaefa6d551ed3d6ed89190 \ + --hash=sha256:46e1ed994a0920f350a4547a38471217eb86f57377e9314fbaaa329b71b7dfe3 \ + --hash=sha256:4a5375c5fff13f209527cd886dc75394f040c7d1ecad0a2cb0627f13ebe78a12 \ + --hash=sha256:4c2d26aa03d877c9730bf005621c92da263523a1e99247590abbbe252ccb7824 \ + --hash=sha256:4c4e314d36d4f31236a545696a480aa04ea170a0b021e9a59ab1ed94d4c3ef27 \ + --hash=sha256:4d0c10d803549427f427085ed7aebc39832f6e818a011dcd8785e9c6a1ba9b3e \ + --hash=sha256:4dcc5ee1d0275cb78d443fdebd0241e58772a354a6d518b1d7af1580bbd2c4e8 \ + --hash=sha256:51967a67ea0d7b9b5cd86036878e2d82c0b6183616961c26d825b8c994d4f2c8 \ + --hash=sha256:530190eb0cd778363bbb7596612ded0bb9fef662daa98e9d92a0419ab27ae914 \ + --hash=sha256:5379e49d7e80dca9811b36894493d1c1ecb4c57de05c36f5d0dd09982af20211 \ + --hash=sha256:5493569f861fb7b05af6d048d00d773c6162415ae521b7010197c98810a14cab \ + --hash=sha256:5a4c1058cdae6237d97af272b326e5f78ee7ee3bbffa6b24b09db4d828810468 \ + --hash=sha256:5d75d6d220d55cdced2f32cc22f599475dbe881229aeddba6c79c2e9df35a2b3 \ + --hash=sha256:5d97e9ae94fb96df1ee3cb09ca376c34e8a122f36927230f4c8a97f469994bff \ + --hash=sha256:5feae2f9aa7270e2c071f488fab256d768e88e01b958f123a690f1cc3061a09c \ + --hash=sha256:603d5868f7419081d616dab7ac3cfa285296735e7350f7b1e4f548f6f953ee7d \ + --hash=sha256:61d42d2b08430854485135504f672c14d4fc644dd243a9c17e7c4e0faf5ed07e \ + --hash=sha256:61dbc1e01dc0c5875da2f7ae36d6e918dc1b8d2ce04e871793976594aad8a57a \ + --hash=sha256:65cfed9c807c27dee76407e8bb29e6f4e391e436774bcc769a037ff25ad8646e \ + --hash=sha256:67a429520e97621a763cf9b3ba27574779c4e96e49a27ff8a1aa99ee70beb28a \ + --hash=sha256:6aadae3042f8e6db3376d9e91f194c606c9a45273c170621d46128f35aef7cd0 \ + --hash=sha256:6ba8858933f0c1a979781272a5f65646fca8c18c93c99c6ddb5513ad96fa54b1 \ + --hash=sha256:6bc568b05e02cd612be53900c88aaa55012e744930ba2eeb56279db4c6676eb3 \ + --hash=sha256:729408136ef8d45a28ee9a7411917c9e3459cf266c7e23c2f7d4bb8ef9e0da42 \ + --hash=sha256:751758d9dd04d548ec679224cc00e3591f5ebf1ff159ed0d4aba6a0746352452 \ + --hash=sha256:76d59d4d451ba77f08cb4cd9268dec07be5bc65f73666302dbb5061989b17198 \ + --hash=sha256:79bf58c08f0756adba691d480b5a20e4ad23f33e1ae121584cf3a21717c36dfa \ + --hash=sha256:7de12b69d95072394998c622cfd7e8cea8f560db5fca6a62a148f902a1029f8b \ + --hash=sha256:7f55cd9cf1564b7b03f238e4c017ca4794c05b01a783e9291065cb2858d86ce4 \ + --hash=sha256:80e5acb81cb49fd9f2d5c08f8b74ffff14ee73b10ca88297ab4619e946bcb1e1 \ + --hash=sha256:87a90f5545fd61f6964e65eebde4dc3fa8660bb7d87adb01d4cf17e0a2b484ad \ + --hash=sha256:881df98f0a8404d32b6de0fd33e91c1b90ed1516a80d4d6dc69d414b8850474c \ + --hash=sha256:8a776a29b77fe0cc28fedfd87277b0d0f7aa930174b7e504d764e0b43a05f381 \ + --hash=sha256:8c2a61c0e4811012b0ba9f6cdcb4437865df5d29eab5d6018ba13cee1c3064a0 \ + --hash=sha256:8fa6bd071ec6d90f6e7baa66ae25820d57a8ab1b0a3c6d3edf1834d4b26fafa2 \ + --hash=sha256:96f2975fb14f39c5fe75203f33dd3010fe37d1c4e33177feef1107b5ced750e3 \ + --hash=sha256:96fb0899bb2ab353f42e5374c8f0789f54e0a94ef2f02b9ac7149c56622eaf31 \ + --hash=sha256:97163a1ab265a1073a6372eca9f4eeb9f8c6327457a0b22ddfc4a17dcd613e74 \ + --hash=sha256:9c95a1a290f9acf7a8f2ebbdd183e99215d491beea52d61aa2a7a7d2c618ddc6 \ + --hash=sha256:9d94d78418203904730585efa71002286ac4c8ac0689d0eb61e3c465f9e608ff \ + --hash=sha256:a6ba2cb7d676e9415b9e9ac7e2aae401dc1b1e666943d1f7bc66223d3d73467b \ + --hash=sha256:aa0379c1935c44053c98826bc99ac95f3a5355675a297ac9ce0dfad0ce2d50ca \ + --hash=sha256:ac96d67b37f28e4b6ecf507c3405f52a40658c0a806dffde624a8fcb0314d5fd \ + --hash=sha256:ade2ccb937060c299ab0dfb2dea3d2ddf7e098ed63ee3d651ebfc2c8d1e8632a \ + --hash=sha256:aefbdc934115d2f9278f153952003ac52cd2650e7313750390b334518c589568 \ + --hash=sha256:b07501b720cf060c5856f7b5626e75b8e353b5f98b9b354a21eb4bfa47e421b1 \ + --hash=sha256:b5267feb19070bef34b8dea27e2b504ebd9d31748e3ecacb3a4101da6fcb255c \ + --hash=sha256:b5f6328e8e2ae8238fc767703ab7b95785521c42bb2b8790984e3477d7fa71ad \ + --hash=sha256:b8996ffb60c69f677245f5abdbcc623e9442bcc91ed81b6cd6187129ad1fa3e7 \ + --hash=sha256:b981a370f8f41c4024c170b42fbe9e691ae2dbc19d1d99151a69e2c84a0d194d \ + --hash=sha256:b9d121be0217787a7d59a5c6195b0842d3f701007333426e5154bf72346aa658 \ + --hash=sha256:bcef4f2d3dc603150421de85c916da19471f24d838c3c62a4f04c1eb511642c1 \ + --hash=sha256:bed0252c85e21cf73d2d033643c945b460d6a02fc4a7d644e3b2d6f5f2956c64 \ + --hash=sha256:bfdfbe6a36bc3059fff845d64c42f2644cf875c65f5005db54f90cdfdf1df815 \ + --hash=sha256:c0095b8aa3e432e32d372e9a7737e65b58d5ed23b9620fea7cb81f17672f1fa1 \ + --hash=sha256:c1f41d32a2ddc5a94df4b829b395916a4b7f103350fa76ba6de625fcb9e773ac \ + --hash=sha256:c45008ca79bad237cbc03c72bc5205e8c6f66403773929b1b50f7d84ef9e4d07 \ + --hash=sha256:c82bbf7e03748417c3a88c1b0b291288ce3e4887a795a3addaa7a1cfd9e7153e \ + --hash=sha256:c918621ee0a3d1fe61c313f2489464f2ae3d13633e60f520a8002a5e910982ee \ + --hash=sha256:d204957169f0b3511fb95395a9da7d4490fb361763a9f8b32b345a7fe119cb45 \ + --hash=sha256:d329896c40d9e1e5c7715c98529e4a188a1f2df51212fd65102b32465612b5dc \ + --hash=sha256:d3a61e928feddc458a55110f42f626a2a20bea942ccedb6fb4cee70b4830ed41 \ + --hash=sha256:d48db29bd47814671afdd76c7652aefacc25cf96aad6daefa82d738ee87461e2 \ + --hash=sha256:d5593855b5b2b73dd8413c3fdfa5d95b99d657658f947ba2c4318591e745d083 \ + --hash=sha256:d79c159adea0f1f4617f54aa156568ac69968f9ef4d1e5fefffc0a180830308e \ + --hash=sha256:db09b98c7540df69d4b47218da3fbd7cb466db0fb932e971c321f1c76f155266 \ + --hash=sha256:ddf23960cb42b69bce13045d5bc66f18c7d53774c66c13f24cf1b9c144ba3141 \ + --hash=sha256:e06cfea0ece444571d24c18ed465bc93afb8c8d8d74422eb7026662f3d3f779b \ + --hash=sha256:e7c564c58cf8f248fe859a4f0fe501b050663f3d7fbc342172f259124fb59933 \ + --hash=sha256:e86593bf8637659e6a6ed58854b6c87ec4e9e45ee8a4adfd936831cef55c2d21 \ + --hash=sha256:eaffbd8814bb1b5dc3ea156a4c5928081ba50419f9175f4fc95269e040eff8f0 \ + --hash=sha256:ee353bb51f648924926ed05e0122b6a0b1ae709396a80eb583449d5d477fcdf7 \ + --hash=sha256:ee6faebb265e28920a6f23a7d4c362414b3f4bb30607141d718b991669e49ddc \ + --hash=sha256:efe093acc43e869348f6f2224df7f452eab63a2c60a6c6cd6b50fd35c4e075ba \ + --hash=sha256:f03a1b3a4c03e3e0161642ac5367f08479ab29972ea0ffcd4fa18f729cd2be0a \ + --hash=sha256:f0d320e70b6b2300ff6029e234e79fe44e9dbbfc7b98597ba28e054bd6606a57 \ + --hash=sha256:f252dfb4852a527987a9156cbcae3022a30f86c9d26f4f17b8c967d7580d65d2 \ + --hash=sha256:f5f4424cb87a20b016bfdc157ff48757b89d2cc426256961643d443c6c277007 \ + --hash=sha256:f8eae66a1304de7368932b42d801c67969fd090ddb1a7a24f27b435ed4bed68f \ + --hash=sha256:fdb82eb60d31b0c033a8e8ee9f3fc7dfbaa042211131c29da29aea8531b4f18f # via # jsonschema # referencing @@ -1332,9 +1332,9 @@ sqlalchemy[mypy]==2.0.23 \ # via # -c requirements/main.txt # -r requirements/dev.in -termcolor==2.3.0 \ - --hash=sha256:3afb05607b89aed0ffe25202399ee0867ad4d3cb4180d98aaf8eefa6a5f7d475 \ - --hash=sha256:b5b08f68937f138fe92f6c089b99f1e2da0ae56c52b78bf7075fd95420fd9a5a +termcolor==2.4.0 \ + --hash=sha256:9297c0df9c99445c2412e832e882a7884038a25617c60cea2ad69488d4040d63 \ + --hash=sha256:aab9e56047c8ac41ed798fa36d892a37aca6b3e9159f3e0c24bc64a9b3ac7b7a # via pytest-sugar trio==0.23.1 \ --hash=sha256:16f89f7dcc8f7b9dcdec1fcd863e0c039af6d0f9a22f8dfd56f75d75ec73fd48 \ @@ -1418,9 +1418,9 @@ urllib3[socks]==2.1.0 \ # documenteer # requests # selenium -virtualenv==20.24.7 \ - --hash=sha256:69050ffb42419c91f6c1284a7b24e0475d793447e35929b488bf6a0aade39353 \ - --hash=sha256:a18b3fd0314ca59a2e9f4b556819ed07183b3e9a3702ecfe213f593d44f7b3fd +virtualenv==20.25.0 \ + --hash=sha256:4238949c5ffe6876362d9c0180fc6c3a824a7b12b80604eeb8085f2ed7460de3 \ + --hash=sha256:bf51c0d9c7dd63ea8e44086fa1e4fb1093a31e963b86959257378aef020e1f1b # via pre-commit wsproto==1.2.0 \ --hash=sha256:ad565f26ecb92588a3e43bc3d96164de84cd9902482b130d0ddbaa9664a85065 \ diff --git a/requirements/main.txt b/requirements/main.txt index 943025426..3b10e9441 100644 --- a/requirements/main.txt +++ b/requirements/main.txt @@ -447,9 +447,9 @@ google-api-core[grpc]==2.14.0 \ # google-api-core # google-cloud-core # google-cloud-firestore -google-auth==2.23.4 \ - --hash=sha256:79905d6b1652187def79d491d6e23d0cbb3a21d3c7ba0dbaa9c8a01906b13ff3 \ - --hash=sha256:d4bbc92fe4b8bfd2f3e8d88e5ba7085935da208ee38a134fc280e7ce682a05f2 +google-auth==2.24.0 \ + --hash=sha256:2ec7b2a506989d7dbfdbe81cb8d0ead8876caaed14f86d29d34483cbe99c57af \ + --hash=sha256:9b82d5c8d3479a5391ea0a46d81cca698d328459da31d4a459d4e901a5d927e0 # via # google-api-core # google-cloud-core diff --git a/tests/conftest.py b/tests/conftest.py index f8c8e132b..987806abd 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -2,7 +2,6 @@ from __future__ import annotations -import asyncio from collections.abc import AsyncIterator, Iterator from pathlib import Path from urllib.parse import urljoin @@ -18,7 +17,6 @@ from safir.dependencies.db_session import db_session_dependency from safir.testing.slack import MockSlackWebhook, mock_slack_webhook from seleniumwire import webdriver -from sqlalchemy import text from sqlalchemy.ext.asyncio import AsyncEngine from gafaelfawr.config import Config @@ -87,9 +85,7 @@ def driver() -> Iterator[webdriver.Chrome]: @pytest_asyncio.fixture -async def empty_database( - initialize_empty_database: None, engine: AsyncEngine, config: Config -) -> None: +async def empty_database(engine: AsyncEngine, config: Config) -> None: """Empty the database before a test. The tables are reset with ``TRUNCATE`` rather than dropping and recreating @@ -104,25 +100,25 @@ async def empty_database( it if control over the configuration prior to database initialization is required. """ - tables = (t.name for t in Base.metadata.sorted_tables) + logger = structlog.get_logger(__name__) + await initialize_database(engine, logger, schema=Base.metadata, reset=True) async with Factory.standalone(config, engine) as factory: admin_service = factory.create_admin_service() async with factory.session.begin(): - stmt = text(f'TRUNCATE TABLE {", ".join(tables)}') - await factory.session.execute(stmt) await admin_service.add_initial_admins(config.initial_admins) await factory._context.redis.flushdb() -@pytest.fixture(scope="session") +@pytest_asyncio.fixture def engine() -> AsyncEngine: """Create a database engine for testing. - Rather than allowing the `~gafaelfawr.factory.Factory` to create - its own database engine, create a single engine at session scope. This - allows all the tests to share a single connection pool and not constantly - open and close connections to the database, which in turn reduces the time - it takes to run tests. + Previously, this fixture was session-scoped so that all tests could share + a single connection pool and not constantly open and close connections to + the database, which made the test suite run faster. However, this approach + broke horribly with confusing asyncio and asyncpg errors when + pytest-asyncio was upgraded from 0.21.1 to 0.23.2 and the maintenance + burden doesn't seem worth it. """ return create_database_engine(TEST_DATABASE_URL, None) @@ -140,30 +136,6 @@ async def factory( yield factory -@pytest.fixture(scope="session") -def event_loop() -> Iterator[asyncio.AbstractEventLoop]: - """Increase the scope of the event loop to the test session. - - If this isn't done, an `~sqlalchemy.ext.asyncio.AsyncEngine` cannot be - used from more than one test because they run in different loops, which in - turn defeats connection pooling to speed up test execution. - """ - loop = asyncio.new_event_loop() - yield loop - loop.close() - - -@pytest_asyncio.fixture(scope="session") -async def initialize_empty_database(engine: AsyncEngine) -> None: - """Initialize the database for testing. - - This sets up the database schema for the tests. The database is then - reset between tests with the `empty_database` fixture. - """ - logger = structlog.get_logger(__name__) - await initialize_database(engine, logger, schema=Base.metadata, reset=True) - - @pytest.fixture def mock_firestore(tmp_path: Path) -> Iterator[MockFirestore]: """Configure Firestore UID/GID assignment and mock the Firestore API."""