From 406c2ab151a215ff5a29e5c9fb7b8ef4c8345f80 Mon Sep 17 00:00:00 2001
From: "mark.j0hnst0n"
Date: Thu, 19 Sep 2024 16:45:01 +0100
Subject: [PATCH 01/19] pipfile updated
---
Pipfile | 7 +-
Pipfile.lock | 1304 +++++++++++++++++++++++++++-----------------------
2 files changed, 706 insertions(+), 605 deletions(-)
diff --git a/Pipfile b/Pipfile
index 25f9a840f4..116739631e 100644
--- a/Pipfile
+++ b/Pipfile
@@ -52,18 +52,18 @@ markdown = "~=3.4.1"
mohawk = ">=1.1.0"
munch = "~=2.5.0"
requests = {extras = ["security"], version = "~=2.21"}
-sentry-sdk = "~=1.17.0"
+sentry-sdk = ">=2.8.0"
whitenoise = "~=5.3.0"
crispy-forms-gds = "~=0.2.4"
notifications-python-client = "~=6.4.1"
python-magic = "~=0.4.27"
-Authlib = "==0.15.5"
+Authlib = "==1.3.1"
regex = "==2022.3.2"
deepmerge = "*"
phonenumbers = "~=8.12.57"
setuptools = "~=70.0.0"
rules="~=3.3.0"
-djangorestframework = "~=3.14.0"
+djangorestframework = ">=3.15.2"
django-chunk-upload-handlers = "~=0.0.13"
django-compressor = "~=2.4.1"
django-csp = "~=3.7"
@@ -82,6 +82,7 @@ django-extra-views = "~=0.14.0"
django = "~=4.2.15"
django-log-formatter-asim = "~=0.0.5"
dbt-copilot-python = "~=0.2.1"
+cryptography = ">=43.0.1"
[requires]
python_version = "3.9"
diff --git a/Pipfile.lock b/Pipfile.lock
index cfcb0f7719..0631368902 100644
--- a/Pipfile.lock
+++ b/Pipfile.lock
@@ -1,7 +1,7 @@
{
"_meta": {
"hash": {
- "sha256": "5666ca1558804e42b4bcdd067f4dae341f9d0ed631836587ffa44e28dc781b7a"
+ "sha256": "a14e6d004e06185c2082c3867c7667fcdd687e260668488ef8b00246006ed28e"
},
"pipfile-spec": 6,
"requires": {
@@ -42,11 +42,12 @@
},
"authlib": {
"hashes": [
- "sha256:b83cf6360c8e92b0e9df0d1f32d675790bcc4e3c03977499b1eed24dcdef4252",
- "sha256:ecf4a7a9f2508c0bb07e93a752dd3c495cfaffc20e864ef0ffc95e3f40d2abaf"
+ "sha256:7ae843f03c06c5c0debd63c9db91f9fda64fa62a42a77419fa15fbb7e7a58917",
+ "sha256:d35800b973099bbadc49b42b256ecb80041ad56b7fe1216a362c7943c088f377"
],
"index": "pypi",
- "version": "==0.15.5"
+ "markers": "python_version >= '3.8'",
+ "version": "==1.3.1"
},
"backoff": {
"hashes": [
@@ -109,69 +110,84 @@
},
"certifi": {
"hashes": [
- "sha256:3cd43f1c6fa7dedc5899d69d3ad0398fd018ad1a17fba83ddaf78aa46c747516",
- "sha256:ddc6c8ce995e6987e7faf5e3f1b02b302836a0e5d98ece18392cb1a36c72ad56"
+ "sha256:922820b53db7a7257ffbda3f597266d435245903d80737e34f8a45ff3e3230d8",
+ "sha256:bec941d2aa8195e248a60b31ff9f0558284cf01a52591ceda73ea9afffd69fd9"
],
"markers": "python_version >= '3.6'",
- "version": "==2024.6.2"
+ "version": "==2024.8.30"
},
"cffi": {
"hashes": [
- "sha256:0c9ef6ff37e974b73c25eecc13952c55bceed9112be2d9d938ded8e856138bcc",
- "sha256:131fd094d1065b19540c3d72594260f118b231090295d8c34e19a7bbcf2e860a",
- "sha256:1b8ebc27c014c59692bb2664c7d13ce7a6e9a629be20e54e7271fa696ff2b417",
- "sha256:2c56b361916f390cd758a57f2e16233eb4f64bcbeee88a4881ea90fca14dc6ab",
- "sha256:2d92b25dbf6cae33f65005baf472d2c245c050b1ce709cc4588cdcdd5495b520",
- "sha256:31d13b0f99e0836b7ff893d37af07366ebc90b678b6664c955b54561fc36ef36",
- "sha256:32c68ef735dbe5857c810328cb2481e24722a59a2003018885514d4c09af9743",
- "sha256:3686dffb02459559c74dd3d81748269ffb0eb027c39a6fc99502de37d501faa8",
- "sha256:582215a0e9adbe0e379761260553ba11c58943e4bbe9c36430c4ca6ac74b15ed",
- "sha256:5b50bf3f55561dac5438f8e70bfcdfd74543fd60df5fa5f62d94e5867deca684",
- "sha256:5bf44d66cdf9e893637896c7faa22298baebcd18d1ddb6d2626a6e39793a1d56",
- "sha256:6602bc8dc6f3a9e02b6c22c4fc1e47aa50f8f8e6d3f78a5e16ac33ef5fefa324",
- "sha256:673739cb539f8cdaa07d92d02efa93c9ccf87e345b9a0b556e3ecc666718468d",
- "sha256:68678abf380b42ce21a5f2abde8efee05c114c2fdb2e9eef2efdb0257fba1235",
- "sha256:68e7c44931cc171c54ccb702482e9fc723192e88d25a0e133edd7aff8fcd1f6e",
- "sha256:6b3d6606d369fc1da4fd8c357d026317fbb9c9b75d36dc16e90e84c26854b088",
- "sha256:748dcd1e3d3d7cd5443ef03ce8685043294ad6bd7c02a38d1bd367cfd968e000",
- "sha256:7651c50c8c5ef7bdb41108b7b8c5a83013bfaa8a935590c5d74627c047a583c7",
- "sha256:7b78010e7b97fef4bee1e896df8a4bbb6712b7f05b7ef630f9d1da00f6444d2e",
- "sha256:7e61e3e4fa664a8588aa25c883eab612a188c725755afff6289454d6362b9673",
- "sha256:80876338e19c951fdfed6198e70bc88f1c9758b94578d5a7c4c91a87af3cf31c",
- "sha256:8895613bcc094d4a1b2dbe179d88d7fb4a15cee43c052e8885783fac397d91fe",
- "sha256:88e2b3c14bdb32e440be531ade29d3c50a1a59cd4e51b1dd8b0865c54ea5d2e2",
- "sha256:8f8e709127c6c77446a8c0a8c8bf3c8ee706a06cd44b1e827c3e6a2ee6b8c098",
- "sha256:9cb4a35b3642fc5c005a6755a5d17c6c8b6bcb6981baf81cea8bfbc8903e8ba8",
- "sha256:9f90389693731ff1f659e55c7d1640e2ec43ff725cc61b04b2f9c6d8d017df6a",
- "sha256:a09582f178759ee8128d9270cd1344154fd473bb77d94ce0aeb2a93ebf0feaf0",
- "sha256:a6a14b17d7e17fa0d207ac08642c8820f84f25ce17a442fd15e27ea18d67c59b",
- "sha256:a72e8961a86d19bdb45851d8f1f08b041ea37d2bd8d4fd19903bc3083d80c896",
- "sha256:abd808f9c129ba2beda4cfc53bde801e5bcf9d6e0f22f095e45327c038bfe68e",
- "sha256:ac0f5edd2360eea2f1daa9e26a41db02dd4b0451b48f7c318e217ee092a213e9",
- "sha256:b29ebffcf550f9da55bec9e02ad430c992a87e5f512cd63388abb76f1036d8d2",
- "sha256:b2ca4e77f9f47c55c194982e10f058db063937845bb2b7a86c84a6cfe0aefa8b",
- "sha256:b7be2d771cdba2942e13215c4e340bfd76398e9227ad10402a8767ab1865d2e6",
- "sha256:b84834d0cf97e7d27dd5b7f3aca7b6e9263c56308ab9dc8aae9784abb774d404",
- "sha256:b86851a328eedc692acf81fb05444bdf1891747c25af7529e39ddafaf68a4f3f",
- "sha256:bcb3ef43e58665bbda2fb198698fcae6776483e0c4a631aa5647806c25e02cc0",
- "sha256:c0f31130ebc2d37cdd8e44605fb5fa7ad59049298b3f745c74fa74c62fbfcfc4",
- "sha256:c6a164aa47843fb1b01e941d385aab7215563bb8816d80ff3a363a9f8448a8dc",
- "sha256:d8a9d3ebe49f084ad71f9269834ceccbf398253c9fac910c4fd7053ff1386936",
- "sha256:db8e577c19c0fda0beb7e0d4e09e0ba74b1e4c092e0e40bfa12fe05b6f6d75ba",
- "sha256:dc9b18bf40cc75f66f40a7379f6a9513244fe33c0e8aa72e2d56b0196a7ef872",
- "sha256:e09f3ff613345df5e8c3667da1d918f9149bd623cd9070c983c013792a9a62eb",
- "sha256:e4108df7fe9b707191e55f33efbcb2d81928e10cea45527879a4749cbe472614",
- "sha256:e6024675e67af929088fda399b2094574609396b1decb609c55fa58b028a32a1",
- "sha256:e70f54f1796669ef691ca07d046cd81a29cb4deb1e5f942003f401c0c4a2695d",
- "sha256:e715596e683d2ce000574bae5d07bd522c781a822866c20495e52520564f0969",
- "sha256:e760191dd42581e023a68b758769e2da259b5d52e3103c6060ddc02c9edb8d7b",
- "sha256:ed86a35631f7bfbb28e108dd96773b9d5a6ce4811cf6ea468bb6a359b256b1e4",
- "sha256:ee07e47c12890ef248766a6e55bd38ebfb2bb8edd4142d56db91b21ea68b7627",
- "sha256:fa3a0128b152627161ce47201262d3140edb5a5c3da88d73a1b790a959126956",
- "sha256:fcc8eb6d5902bb1cf6dc4f187ee3ea80a1eba0a89aba40a5cb20a5087d961357"
+ "sha256:045d61c734659cc045141be4bae381a41d89b741f795af1dd018bfb532fd0df8",
+ "sha256:0984a4925a435b1da406122d4d7968dd861c1385afe3b45ba82b750f229811e2",
+ "sha256:0e2b1fac190ae3ebfe37b979cc1ce69c81f4e4fe5746bb401dca63a9062cdaf1",
+ "sha256:0f048dcf80db46f0098ccac01132761580d28e28bc0f78ae0d58048063317e15",
+ "sha256:1257bdabf294dceb59f5e70c64a3e2f462c30c7ad68092d01bbbfb1c16b1ba36",
+ "sha256:1c39c6016c32bc48dd54561950ebd6836e1670f2ae46128f67cf49e789c52824",
+ "sha256:1d599671f396c4723d016dbddb72fe8e0397082b0a77a4fab8028923bec050e8",
+ "sha256:28b16024becceed8c6dfbc75629e27788d8a3f9030691a1dbf9821a128b22c36",
+ "sha256:2bb1a08b8008b281856e5971307cc386a8e9c5b625ac297e853d36da6efe9c17",
+ "sha256:30c5e0cb5ae493c04c8b42916e52ca38079f1b235c2f8ae5f4527b963c401caf",
+ "sha256:31000ec67d4221a71bd3f67df918b1f88f676f1c3b535a7eb473255fdc0b83fc",
+ "sha256:386c8bf53c502fff58903061338ce4f4950cbdcb23e2902d86c0f722b786bbe3",
+ "sha256:3edc8d958eb099c634dace3c7e16560ae474aa3803a5df240542b305d14e14ed",
+ "sha256:45398b671ac6d70e67da8e4224a065cec6a93541bb7aebe1b198a61b58c7b702",
+ "sha256:46bf43160c1a35f7ec506d254e5c890f3c03648a4dbac12d624e4490a7046cd1",
+ "sha256:4ceb10419a9adf4460ea14cfd6bc43d08701f0835e979bf821052f1805850fe8",
+ "sha256:51392eae71afec0d0c8fb1a53b204dbb3bcabcb3c9b807eedf3e1e6ccf2de903",
+ "sha256:5da5719280082ac6bd9aa7becb3938dc9f9cbd57fac7d2871717b1feb0902ab6",
+ "sha256:610faea79c43e44c71e1ec53a554553fa22321b65fae24889706c0a84d4ad86d",
+ "sha256:636062ea65bd0195bc012fea9321aca499c0504409f413dc88af450b57ffd03b",
+ "sha256:6883e737d7d9e4899a8a695e00ec36bd4e5e4f18fabe0aca0efe0a4b44cdb13e",
+ "sha256:6b8b4a92e1c65048ff98cfe1f735ef8f1ceb72e3d5f0c25fdb12087a23da22be",
+ "sha256:6f17be4345073b0a7b8ea599688f692ac3ef23ce28e5df79c04de519dbc4912c",
+ "sha256:706510fe141c86a69c8ddc029c7910003a17353970cff3b904ff0686a5927683",
+ "sha256:72e72408cad3d5419375fc87d289076ee319835bdfa2caad331e377589aebba9",
+ "sha256:733e99bc2df47476e3848417c5a4540522f234dfd4ef3ab7fafdf555b082ec0c",
+ "sha256:7596d6620d3fa590f677e9ee430df2958d2d6d6de2feeae5b20e82c00b76fbf8",
+ "sha256:78122be759c3f8a014ce010908ae03364d00a1f81ab5c7f4a7a5120607ea56e1",
+ "sha256:805b4371bf7197c329fcb3ead37e710d1bca9da5d583f5073b799d5c5bd1eee4",
+ "sha256:85a950a4ac9c359340d5963966e3e0a94a676bd6245a4b55bc43949eee26a655",
+ "sha256:8f2cdc858323644ab277e9bb925ad72ae0e67f69e804f4898c070998d50b1a67",
+ "sha256:9755e4345d1ec879e3849e62222a18c7174d65a6a92d5b346b1863912168b595",
+ "sha256:98e3969bcff97cae1b2def8ba499ea3d6f31ddfdb7635374834cf89a1a08ecf0",
+ "sha256:a08d7e755f8ed21095a310a693525137cfe756ce62d066e53f502a83dc550f65",
+ "sha256:a1ed2dd2972641495a3ec98445e09766f077aee98a1c896dcb4ad0d303628e41",
+ "sha256:a24ed04c8ffd54b0729c07cee15a81d964e6fee0e3d4d342a27b020d22959dc6",
+ "sha256:a45e3c6913c5b87b3ff120dcdc03f6131fa0065027d0ed7ee6190736a74cd401",
+ "sha256:a9b15d491f3ad5d692e11f6b71f7857e7835eb677955c00cc0aefcd0669adaf6",
+ "sha256:ad9413ccdeda48c5afdae7e4fa2192157e991ff761e7ab8fdd8926f40b160cc3",
+ "sha256:b2ab587605f4ba0bf81dc0cb08a41bd1c0a5906bd59243d56bad7668a6fc6c16",
+ "sha256:b62ce867176a75d03a665bad002af8e6d54644fad99a3c70905c543130e39d93",
+ "sha256:c03e868a0b3bc35839ba98e74211ed2b05d2119be4e8a0f224fba9384f1fe02e",
+ "sha256:c59d6e989d07460165cc5ad3c61f9fd8f1b4796eacbd81cee78957842b834af4",
+ "sha256:c7eac2ef9b63c79431bc4b25f1cd649d7f061a28808cbc6c47b534bd789ef964",
+ "sha256:c9c3d058ebabb74db66e431095118094d06abf53284d9c81f27300d0e0d8bc7c",
+ "sha256:ca74b8dbe6e8e8263c0ffd60277de77dcee6c837a3d0881d8c1ead7268c9e576",
+ "sha256:caaf0640ef5f5517f49bc275eca1406b0ffa6aa184892812030f04c2abf589a0",
+ "sha256:cdf5ce3acdfd1661132f2a9c19cac174758dc2352bfe37d98aa7512c6b7178b3",
+ "sha256:d016c76bdd850f3c626af19b0542c9677ba156e4ee4fccfdd7848803533ef662",
+ "sha256:d01b12eeeb4427d3110de311e1774046ad344f5b1a7403101878976ecd7a10f3",
+ "sha256:d63afe322132c194cf832bfec0dc69a99fb9bb6bbd550f161a49e9e855cc78ff",
+ "sha256:da95af8214998d77a98cc14e3a3bd00aa191526343078b530ceb0bd710fb48a5",
+ "sha256:dd398dbc6773384a17fe0d3e7eeb8d1a21c2200473ee6806bb5e6a8e62bb73dd",
+ "sha256:de2ea4b5833625383e464549fec1bc395c1bdeeb5f25c4a3a82b5a8c756ec22f",
+ "sha256:de55b766c7aa2e2a3092c51e0483d700341182f08e67c63630d5b6f200bb28e5",
+ "sha256:df8b1c11f177bc2313ec4b2d46baec87a5f3e71fc8b45dab2ee7cae86d9aba14",
+ "sha256:e03eab0a8677fa80d646b5ddece1cbeaf556c313dcfac435ba11f107ba117b5d",
+ "sha256:e221cf152cff04059d011ee126477f0d9588303eb57e88923578ace7baad17f9",
+ "sha256:e31ae45bc2e29f6b2abd0de1cc3b9d5205aa847cafaecb8af1476a609a2f6eb7",
+ "sha256:edae79245293e15384b51f88b00613ba9f7198016a5948b5dddf4917d4d26382",
+ "sha256:f1e22e8c4419538cb197e4dd60acc919d7696e5ef98ee4da4e01d3f8cfa4cc5a",
+ "sha256:f3a2b4222ce6b60e2e8b337bb9596923045681d71e5a082783484d845390938e",
+ "sha256:f6a16c31041f09ead72d69f583767292f750d24913dadacf5756b966aacb3f1a",
+ "sha256:f75c7ab1f9e4aca5414ed4d8e5c0e303a34f4421f8a0d47a4d019ceff0ab6af4",
+ "sha256:f79fc4fc25f1c8698ff97788206bb3c2598949bfe0fef03d299eb1b5356ada99",
+ "sha256:f7f5baafcc48261359e14bcd6d9bff6d4b28d9103847c9e136694cb0501aef87",
+ "sha256:fc48c783f9c87e60831201f2cce7f3b2e4846bf4d8728eabe54d60700b318a0b"
],
"markers": "platform_python_implementation != 'PyPy'",
- "version": "==1.16.0"
+ "version": "==1.17.1"
},
"cfgv": {
"hashes": [
@@ -319,41 +335,37 @@
},
"cryptography": {
"hashes": [
- "sha256:013629ae70b40af70c9a7a5db40abe5d9054e6f4380e50ce769947b73bf3caad",
- "sha256:2346b911eb349ab547076f47f2e035fc8ff2c02380a7cbbf8d87114fa0f1c583",
- "sha256:2f66d9cd9147ee495a8374a45ca445819f8929a3efcd2e3df6428e46c3cbb10b",
- "sha256:2f88d197e66c65be5e42cd72e5c18afbfae3f741742070e3019ac8f4ac57262c",
- "sha256:31f721658a29331f895a5a54e7e82075554ccfb8b163a18719d342f5ffe5ecb1",
- "sha256:343728aac38decfdeecf55ecab3264b015be68fc2816ca800db649607aeee648",
- "sha256:5226d5d21ab681f432a9c1cf8b658c0cb02533eece706b155e5fbd8a0cdd3949",
- "sha256:57080dee41209e556a9a4ce60d229244f7a66ef52750f813bfbe18959770cfba",
- "sha256:5a94eccb2a81a309806027e1670a358b99b8fe8bfe9f8d329f27d72c094dde8c",
- "sha256:6b7c4f03ce01afd3b76cf69a5455caa9cfa3de8c8f493e0d3ab7d20611c8dae9",
- "sha256:7016f837e15b0a1c119d27ecd89b3515f01f90a8615ed5e9427e30d9cdbfed3d",
- "sha256:81884c4d096c272f00aeb1f11cf62ccd39763581645b0812e99a91505fa48e0c",
- "sha256:81d8a521705787afe7a18d5bfb47ea9d9cc068206270aad0b96a725022e18d2e",
- "sha256:8d09d05439ce7baa8e9e95b07ec5b6c886f548deb7e0f69ef25f64b3bce842f2",
- "sha256:961e61cefdcb06e0c6d7e3a1b22ebe8b996eb2bf50614e89384be54c48c6b63d",
- "sha256:9c0c1716c8447ee7dbf08d6db2e5c41c688544c61074b54fc4564196f55c25a7",
- "sha256:a0608251135d0e03111152e41f0cc2392d1e74e35703960d4190b2e0f4ca9c70",
- "sha256:a0c5b2b0585b6af82d7e385f55a8bc568abff8923af147ee3c07bd8b42cda8b2",
- "sha256:ad803773e9df0b92e0a817d22fd8a3675493f690b96130a5e24f1b8fabbea9c7",
- "sha256:b297f90c5723d04bcc8265fc2a0f86d4ea2e0f7ab4b6994459548d3a6b992a14",
- "sha256:ba4f0a211697362e89ad822e667d8d340b4d8d55fae72cdd619389fb5912eefe",
- "sha256:c4783183f7cb757b73b2ae9aed6599b96338eb957233c58ca8f49a49cc32fd5e",
- "sha256:c9bb2ae11bfbab395bdd072985abde58ea9860ed84e59dbc0463a5d0159f5b71",
- "sha256:cafb92b2bc622cd1aa6a1dce4b93307792633f4c5fe1f46c6b97cf67073ec961",
- "sha256:d45b940883a03e19e944456a558b67a41160e367a719833c53de6911cabba2b7",
- "sha256:dc0fdf6787f37b1c6b08e6dfc892d9d068b5bdb671198c72072828b80bd5fe4c",
- "sha256:dea567d1b0e8bc5764b9443858b673b734100c2871dc93163f58c46a97a83d28",
- "sha256:dec9b018df185f08483f294cae6ccac29e7a6e0678996587363dc352dc65c842",
- "sha256:e3ec3672626e1b9e55afd0df6d774ff0e953452886e06e0f1eb7eb0c832e8902",
- "sha256:e599b53fd95357d92304510fb7bda8523ed1f79ca98dce2f43c115950aa78801",
- "sha256:fa76fbb7596cc5839320000cdd5d0955313696d9511debab7ee7278fc8b5c84a",
- "sha256:fff12c88a672ab9c9c1cf7b0c80e3ad9e2ebd9d828d955c126be4fd3e5578c9e"
+ "sha256:014f58110f53237ace6a408b5beb6c427b64e084eb451ef25a28308270086494",
+ "sha256:1bbcce1a551e262dfbafb6e6252f1ae36a248e615ca44ba302df077a846a8806",
+ "sha256:203e92a75716d8cfb491dc47c79e17d0d9207ccffcbcb35f598fbe463ae3444d",
+ "sha256:27e613d7077ac613e399270253259d9d53872aaf657471473ebfc9a52935c062",
+ "sha256:2bd51274dcd59f09dd952afb696bf9c61a7a49dfc764c04dd33ef7a6b502a1e2",
+ "sha256:38926c50cff6f533f8a2dae3d7f19541432610d114a70808f0926d5aaa7121e4",
+ "sha256:511f4273808ab590912a93ddb4e3914dfd8a388fed883361b02dea3791f292e1",
+ "sha256:58d4e9129985185a06d849aa6df265bdd5a74ca6e1b736a77959b498e0505b85",
+ "sha256:5b43d1ea6b378b54a1dc99dd8a2b5be47658fe9a7ce0a58ff0b55f4b43ef2b84",
+ "sha256:61ec41068b7b74268fa86e3e9e12b9f0c21fcf65434571dbb13d954bceb08042",
+ "sha256:666ae11966643886c2987b3b721899d250855718d6d9ce41b521252a17985f4d",
+ "sha256:68aaecc4178e90719e95298515979814bda0cbada1256a4485414860bd7ab962",
+ "sha256:7c05650fe8023c5ed0d46793d4b7d7e6cd9c04e68eabe5b0aeea836e37bdcec2",
+ "sha256:80eda8b3e173f0f247f711eef62be51b599b5d425c429b5d4ca6a05e9e856baa",
+ "sha256:8385d98f6a3bf8bb2d65a73e17ed87a3ba84f6991c155691c51112075f9ffc5d",
+ "sha256:88cce104c36870d70c49c7c8fd22885875d950d9ee6ab54df2745f83ba0dc365",
+ "sha256:9d3cdb25fa98afdd3d0892d132b8d7139e2c087da1712041f6b762e4f807cc96",
+ "sha256:a575913fb06e05e6b4b814d7f7468c2c660e8bb16d8d5a1faf9b33ccc569dd47",
+ "sha256:ac119bb76b9faa00f48128b7f5679e1d8d437365c5d26f1c2c3f0da4ce1b553d",
+ "sha256:c1332724be35d23a854994ff0b66530119500b6053d0bd3363265f7e5e77288d",
+ "sha256:d03a475165f3134f773d1388aeb19c2d25ba88b6a9733c5c590b9ff7bbfa2e0c",
+ "sha256:d75601ad10b059ec832e78823b348bfa1a59f6b8d545db3a24fd44362a1564cb",
+ "sha256:de41fd81a41e53267cb020bb3a7212861da53a7d39f863585d13ea11049cf277",
+ "sha256:e710bf40870f4db63c3d7d929aa9e09e4e7ee219e703f949ec4073b4294f6172",
+ "sha256:ea25acb556320250756e53f9e20a4177515f012c9eaea17eb7587a8c4d8ae034",
+ "sha256:f98bf604c82c416bc829e490c700ca1553eafdf2912a91e23a79d97d9801372a",
+ "sha256:fba1007b3ef89946dbbb515aeeb41e30203b004f0b4b00e5e16078b518563289"
],
+ "index": "pypi",
"markers": "python_version >= '3.7'",
- "version": "==42.0.8"
+ "version": "==43.0.1"
},
"dateparser": {
"hashes": [
@@ -366,20 +378,21 @@
},
"dbt-copilot-python": {
"hashes": [
- "sha256:8330011cec44c2e6e30f48b3bdb346269a1704eb35ca19f9666509d8b9d39844",
- "sha256:97fa5429ff296e09821b17395f6f6431091a4fa45f21177b19b4a478df49827f"
+ "sha256:529f6638bbdae96687b8c197eb450357dfbb9d7def6ac8bf23e0846d8b0fea73",
+ "sha256:7485ffced952e40bab79801b0b8f5eecfbd602f84a9086238c69e4aacdee23bf"
],
"index": "pypi",
"markers": "python_version >= '3.9' and python_version < '4.0'",
- "version": "==0.2.1"
+ "version": "==0.2.2"
},
"deepmerge": {
"hashes": [
- "sha256:53a489dc9449636e480a784359ae2aab3191748c920649551c8e378622f0eca4",
- "sha256:7219dad9763f15be9dcd4bcb53e00f48e4eed6f5ed8f15824223eb934bb35977"
+ "sha256:5c3d86081fbebd04dd5de03626a0607b809a98fb6ccba5770b62466fe940ff20",
+ "sha256:6de9ce507115cff0bed95ff0ce9ecc31088ef50cbdf09bc90a09349a318b3d00"
],
"index": "pypi",
- "version": "==1.1.1"
+ "markers": "python_version >= '3.8'",
+ "version": "==2.0"
},
"deprecated": {
"hashes": [
@@ -398,12 +411,12 @@
},
"django": {
"hashes": [
- "sha256:61ee4a130efb8c451ef3467c67ca99fdce400fedd768634efc86a68c18d80d30",
- "sha256:c77f926b81129493961e19c0e02188f8d07c112a1162df69bfab178ae447f94a"
+ "sha256:1ddc333a16fc139fd253035a1606bb24261951bbc3a6ca256717fa06cc41a898",
+ "sha256:6f1616c2786c408ce86ab7e10f792b8f15742f7b7b7460243929cb371e7f1dad"
],
"index": "pypi",
"markers": "python_version >= '3.8'",
- "version": "==4.2.15"
+ "version": "==4.2.16"
},
"django-allow-cidr": {
"hashes": [
@@ -513,12 +526,12 @@
},
"django-log-formatter-asim": {
"hashes": [
- "sha256:77501044786d8f5f249ed90f8eca0b7c79e57003519373dc2c69006e546daf3b",
- "sha256:cfa38573db9c973d672b3d517a27994e8b1d794bbdebb8b5ddabe63be02c8af5"
+ "sha256:00923cb95b599082d94895af1333d1bb8fce05a3d742dd571d32b7e0e480ead3",
+ "sha256:ba35df7a8c5f5bad2e006b55dea8e339ef82f7476a93e6cae4d2bbea12938c2b"
],
"index": "pypi",
"markers": "python_version >= '3.9' and python_version < '4'",
- "version": "==0.0.5"
+ "version": "==0.0.6"
},
"django-log-formatter-ecs": {
"hashes": [
@@ -549,12 +562,12 @@
},
"djangorestframework": {
"hashes": [
- "sha256:579a333e6256b09489cbe0a067e66abe55c6595d8926be6b99423786334350c8",
- "sha256:eb63f58c9f218e1a7d064d17a70751f528ed4e1d35547fdade9aaf4cd103fd08"
+ "sha256:2b8871b062ba1aefc2de01f773875441a961fefbf79f5eed1e32b2f096944b20",
+ "sha256:36fe88cd2d6c6bec23dca9804bab2ba5517a8bb9d8f47ebc68981b56840107ad"
],
"index": "pypi",
- "markers": "python_version >= '3.6'",
- "version": "==3.14.0"
+ "markers": "python_version >= '3.8'",
+ "version": "==3.15.2"
},
"docopt": {
"hashes": [
@@ -592,71 +605,71 @@
},
"filelock": {
"hashes": [
- "sha256:0151273e5b5d6cf753a61ec83b3a9b7d8821c39ae9af9d7ecf2f9e2f17404103",
- "sha256:e1199bf5194a2277273dacd50269f0d87d0682088a3c561c15674ea9005d8635"
+ "sha256:2082e5703d51fbf98ea75855d9d5527e33d8ff23099bec374a134febee6946b0",
+ "sha256:c249fbfcd5db47e5e2d6d62198e565475ee65e4831e2561c8e313fa7eb961435"
],
"markers": "python_version >= '3.8'",
- "version": "==3.15.3"
+ "version": "==3.16.1"
},
"googleapis-common-protos": {
"hashes": [
- "sha256:0e1c2cdfcbc354b76e4a211a35ea35d6926a835cba1377073c4861db904a1877",
- "sha256:c6442f7a0a6b2a80369457d79e6672bb7dcbaab88e0848302497e3ec80780a6a"
+ "sha256:2972e6c496f435b92590fd54045060867f3fe9be2c82ab148fc8885035479a63",
+ "sha256:334a29d07cddc3aa01dee4988f9afd9b2916ee2ff49d6b757155dc0d197852c0"
],
"markers": "python_version >= '3.7'",
- "version": "==1.63.1"
+ "version": "==1.65.0"
},
"grpcio": {
"hashes": [
- "sha256:03b43d0ccf99c557ec671c7dede64f023c7da9bb632ac65dbc57f166e4970040",
- "sha256:0a12ddb1678ebc6a84ec6b0487feac020ee2b1659cbe69b80f06dbffdb249122",
- "sha256:0a2813093ddb27418a4c99f9b1c223fab0b053157176a64cc9db0f4557b69bd9",
- "sha256:0cc79c982ccb2feec8aad0e8fb0d168bcbca85bc77b080d0d3c5f2f15c24ea8f",
- "sha256:1257b76748612aca0f89beec7fa0615727fd6f2a1ad580a9638816a4b2eb18fd",
- "sha256:1262402af5a511c245c3ae918167eca57342c72320dffae5d9b51840c4b2f86d",
- "sha256:19264fc964576ddb065368cae953f8d0514ecc6cb3da8903766d9fb9d4554c33",
- "sha256:198908f9b22e2672a998870355e226a725aeab327ac4e6ff3a1399792ece4762",
- "sha256:1de403fc1305fd96cfa75e83be3dee8538f2413a6b1685b8452301c7ba33c294",
- "sha256:20405cb8b13fd779135df23fabadc53b86522d0f1cba8cca0e87968587f50650",
- "sha256:2981c7365a9353f9b5c864595c510c983251b1ab403e05b1ccc70a3d9541a73b",
- "sha256:2c3c1b90ab93fed424e454e93c0ed0b9d552bdf1b0929712b094f5ecfe7a23ad",
- "sha256:39b9d0acaa8d835a6566c640f48b50054f422d03e77e49716d4c4e8e279665a1",
- "sha256:3b64ae304c175671efdaa7ec9ae2cc36996b681eb63ca39c464958396697daff",
- "sha256:4657d24c8063e6095f850b68f2d1ba3b39f2b287a38242dcabc166453e950c59",
- "sha256:4d6dab6124225496010bd22690f2d9bd35c7cbb267b3f14e7a3eb05c911325d4",
- "sha256:55260032b95c49bee69a423c2f5365baa9369d2f7d233e933564d8a47b893027",
- "sha256:55697ecec192bc3f2f3cc13a295ab670f51de29884ca9ae6cd6247df55df2502",
- "sha256:5841dd1f284bd1b3d8a6eca3a7f062b06f1eec09b184397e1d1d43447e89a7ae",
- "sha256:58b1041e7c870bb30ee41d3090cbd6f0851f30ae4eb68228955d973d3efa2e61",
- "sha256:5e42634a989c3aa6049f132266faf6b949ec2a6f7d302dbb5c15395b77d757eb",
- "sha256:5e56462b05a6f860b72f0fa50dca06d5b26543a4e88d0396259a07dc30f4e5aa",
- "sha256:5f8b75f64d5d324c565b263c67dbe4f0af595635bbdd93bb1a88189fc62ed2e5",
- "sha256:62b4e6eb7bf901719fce0ca83e3ed474ae5022bb3827b0a501e056458c51c0a1",
- "sha256:6503b64c8b2dfad299749cad1b595c650c91e5b2c8a1b775380fcf8d2cbba1e9",
- "sha256:6c024ffc22d6dc59000faf8ad781696d81e8e38f4078cb0f2630b4a3cf231a90",
- "sha256:73819689c169417a4f978e562d24f2def2be75739c4bed1992435d007819da1b",
- "sha256:75dbbf415026d2862192fe1b28d71f209e2fd87079d98470db90bebe57b33179",
- "sha256:8caee47e970b92b3dd948371230fcceb80d3f2277b3bf7fbd7c0564e7d39068e",
- "sha256:8d51dd1c59d5fa0f34266b80a3805ec29a1f26425c2a54736133f6d87fc4968a",
- "sha256:940e3ec884520155f68a3b712d045e077d61c520a195d1a5932c531f11883489",
- "sha256:a011ac6c03cfe162ff2b727bcb530567826cec85eb8d4ad2bfb4bd023287a52d",
- "sha256:a3a035c37ce7565b8f4f35ff683a4db34d24e53dc487e47438e434eb3f701b2a",
- "sha256:a5e771d0252e871ce194d0fdcafd13971f1aae0ddacc5f25615030d5df55c3a2",
- "sha256:ac15b6c2c80a4d1338b04d42a02d376a53395ddf0ec9ab157cbaf44191f3ffdd",
- "sha256:b1a82e0b9b3022799c336e1fc0f6210adc019ae84efb7321d668129d28ee1efb",
- "sha256:bac71b4b28bc9af61efcdc7630b166440bbfbaa80940c9a697271b5e1dabbc61",
- "sha256:bbc5b1d78a7822b0a84c6f8917faa986c1a744e65d762ef6d8be9d75677af2ca",
- "sha256:c1a786ac592b47573a5bb7e35665c08064a5d77ab88a076eec11f8ae86b3e3f6",
- "sha256:c84ad903d0d94311a2b7eea608da163dace97c5fe9412ea311e72c3684925602",
- "sha256:d4d29cc612e1332237877dfa7fe687157973aab1d63bd0f84cf06692f04c0367",
- "sha256:e3d9f8d1221baa0ced7ec7322a981e28deb23749c76eeeb3d33e18b72935ab62",
- "sha256:e7cd5c1325f6808b8ae31657d281aadb2a51ac11ab081ae335f4f7fc44c1721d",
- "sha256:ed6091fa0adcc7e4ff944090cf203a52da35c37a130efa564ded02b7aff63bcd",
- "sha256:ee73a2f5ca4ba44fa33b4d7d2c71e2c8a9e9f78d53f6507ad68e7d2ad5f64a22",
- "sha256:f10193c69fc9d3d726e83bbf0f3d316f1847c3071c8c93d8090cf5f326b14309"
+ "sha256:0e6c9b42ded5d02b6b1fea3a25f036a2236eeb75d0579bfd43c0018c88bf0a3e",
+ "sha256:161d5c535c2bdf61b95080e7f0f017a1dfcb812bf54093e71e5562b16225b4ce",
+ "sha256:17663598aadbedc3cacd7bbde432f541c8e07d2496564e22b214b22c7523dac8",
+ "sha256:1c17ebcec157cfb8dd445890a03e20caf6209a5bd4ac5b040ae9dbc59eef091d",
+ "sha256:292a846b92cdcd40ecca46e694997dd6b9be6c4c01a94a0dfb3fcb75d20da858",
+ "sha256:2ca2559692d8e7e245d456877a85ee41525f3ed425aa97eb7a70fc9a79df91a0",
+ "sha256:307b1d538140f19ccbd3aed7a93d8f71103c5d525f3c96f8616111614b14bf2a",
+ "sha256:30a1c2cf9390c894c90bbc70147f2372130ad189cffef161f0432d0157973f45",
+ "sha256:31a049daa428f928f21090403e5d18ea02670e3d5d172581670be006100db9ef",
+ "sha256:35334f9c9745add3e357e3372756fd32d925bd52c41da97f4dfdafbde0bf0ee2",
+ "sha256:3750c5a00bd644c75f4507f77a804d0189d97a107eb1481945a0cf3af3e7a5ac",
+ "sha256:3885f037eb11f1cacc41f207b705f38a44b69478086f40608959bf5ad85826dd",
+ "sha256:4573608e23f7e091acfbe3e84ac2045680b69751d8d67685ffa193a4429fedb1",
+ "sha256:4825a3aa5648010842e1c9d35a082187746aa0cdbf1b7a2a930595a94fb10fce",
+ "sha256:4877ba180591acdf127afe21ec1c7ff8a5ecf0fe2600f0d3c50e8c4a1cbc6492",
+ "sha256:48b0d92d45ce3be2084b92fb5bae2f64c208fea8ceed7fccf6a7b524d3c4942e",
+ "sha256:4d813316d1a752be6f5c4360c49f55b06d4fe212d7df03253dfdae90c8a402bb",
+ "sha256:5dd67ed9da78e5121efc5c510f0122a972216808d6de70953a740560c572eb44",
+ "sha256:6f914386e52cbdeb5d2a7ce3bf1fdfacbe9d818dd81b6099a05b741aaf3848bb",
+ "sha256:7101db1bd4cd9b880294dec41a93fcdce465bdbb602cd8dc5bd2d6362b618759",
+ "sha256:7e06aa1f764ec8265b19d8f00140b8c4b6ca179a6dc67aa9413867c47e1fb04e",
+ "sha256:84ca1be089fb4446490dd1135828bd42a7c7f8421e74fa581611f7afdf7ab761",
+ "sha256:8a1e224ce6f740dbb6b24c58f885422deebd7eb724aff0671a847f8951857c26",
+ "sha256:97ae7edd3f3f91480e48ede5d3e7d431ad6005bfdbd65c1b56913799ec79e791",
+ "sha256:9c9bebc6627873ec27a70fc800f6083a13c70b23a5564788754b9ee52c5aef6c",
+ "sha256:a013c5fbb12bfb5f927444b477a26f1080755a931d5d362e6a9a720ca7dbae60",
+ "sha256:a66fe4dc35d2330c185cfbb42959f57ad36f257e0cc4557d11d9f0a3f14311df",
+ "sha256:a92c4f58c01c77205df6ff999faa008540475c39b835277fb8883b11cada127a",
+ "sha256:aa8ba945c96e73de29d25331b26f3e416e0c0f621e984a3ebdb2d0d0b596a3b3",
+ "sha256:b0aa03d240b5539648d996cc60438f128c7f46050989e35b25f5c18286c86734",
+ "sha256:b1b24c23d51a1e8790b25514157d43f0a4dce1ac12b3f0b8e9f66a5e2c4c132f",
+ "sha256:b7ffb8ea674d68de4cac6f57d2498fef477cef582f1fa849e9f844863af50083",
+ "sha256:b9feb4e5ec8dc2d15709f4d5fc367794d69277f5d680baf1910fc9915c633524",
+ "sha256:bff2096bdba686019fb32d2dde45b95981f0d1490e054400f70fc9a8af34b49d",
+ "sha256:c30aeceeaff11cd5ddbc348f37c58bcb96da8d5aa93fed78ab329de5f37a0d7a",
+ "sha256:c9f80f9fad93a8cf71c7f161778ba47fd730d13a343a46258065c4deb4b550c0",
+ "sha256:cfd349de4158d797db2bd82d2020554a121674e98fbe6b15328456b3bf2495bb",
+ "sha256:d0cd7050397b3609ea51727b1811e663ffda8bda39c6a5bb69525ef12414b503",
+ "sha256:d639c939ad7c440c7b2819a28d559179a4508783f7e5b991166f8d7a34b52815",
+ "sha256:e3ba04659e4fce609de2658fe4dbf7d6ed21987a94460f5f92df7579fd5d0e22",
+ "sha256:ecfe735e7a59e5a98208447293ff8580e9db1e890e232b8b292dc8bd15afc0d2",
+ "sha256:ef82d361ed5849d34cf09105d00b94b6728d289d6b9235513cb2fcc79f7c432c",
+ "sha256:f03a5884c56256e08fd9e262e11b5cfacf1af96e2ce78dc095d2c41ccae2c80d",
+ "sha256:f1fe60d0772831d96d263b53d83fb9a3d050a94b0e94b6d004a5ad111faa5b5b",
+ "sha256:f517fd7259fe823ef3bd21e508b653d5492e706e9f0ef82c16ce3347a8a5620c",
+ "sha256:fdb14bad0835914f325349ed34a51940bc2ad965142eb3090081593c6e347be9"
],
"markers": "python_version >= '3.8'",
- "version": "==1.64.1"
+ "version": "==1.66.1"
},
"gunicorn": {
"hashes": [
@@ -677,19 +690,19 @@
},
"identify": {
"hashes": [
- "sha256:37d93f380f4de590500d9dba7db359d0d3da95ffe7f9de1753faa159e71e7dfa",
- "sha256:e5e00f54165f9047fbebeb4a560f9acfb8af4c88232be60a488e9b68d122745d"
+ "sha256:53863bcac7caf8d2ed85bd20312ea5dcfc22226800f6d6881f232d861db5a8f0",
+ "sha256:91478c5fb7c3aac5ff7bf9b4344f803843dc586832d5f110d672b19aa1984c98"
],
"markers": "python_version >= '3.8'",
- "version": "==2.5.36"
+ "version": "==2.6.1"
},
"idna": {
"hashes": [
- "sha256:028ff3aadf0609c1fd278d8ea3089299412a7a8b9bd005dd08b9f8285bcb5cfc",
- "sha256:82fee1fc78add43492d3a1898bfa6d8a904cc97d8427f683ed8e798d07761aa0"
+ "sha256:12f65c9b470abda6dc35cf8e63cc574b1c52b11df2c86030af0ac09b01b13ea9",
+ "sha256:946d195a0d259cbba61165e88e65941f16e9b36ea6ddb97f00452bae8b1287d3"
],
- "markers": "python_version >= '3.5'",
- "version": "==3.7"
+ "markers": "python_version >= '3.6'",
+ "version": "==3.10"
},
"importlib-metadata": {
"hashes": [
@@ -709,11 +722,11 @@
},
"kombu": {
"hashes": [
- "sha256:011c4cd9a355c14a1de8d35d257314a1d2456d52b7140388561acac3cf1a97bf",
- "sha256:5634c511926309c7f9789f1433e9ed402616b56836ef9878f01bd59267b4c7a9"
+ "sha256:14212f5ccf022fc0a70453bb025a1dcc32782a588c49ea866884047d66e14763",
+ "sha256:eef572dd2fd9fc614b37580e3caeafdd5af46c1eff31e7fba89138cdb406f2cf"
],
"markers": "python_version >= '3.8'",
- "version": "==5.3.7"
+ "version": "==5.4.2"
},
"kubi-ecs-logger": {
"hashes": [
@@ -838,11 +851,11 @@
},
"opentelemetry-propagator-aws-xray": {
"hashes": [
- "sha256:49267a1d72b3f04880ac75e24f9ef38fe323e2f3156c4531e0e00c71c0829c0f",
- "sha256:6e8be667bbcf17c3d81d70b2a7cdec0b11257ff64d3829ffe75b810ba1b49f86"
+ "sha256:1c99181ee228e99bddb638a0c911a297fa21f1c3a0af951f841e79919b5f1934",
+ "sha256:6b2cee5479d2ef0172307b66ed2ed151f598a0fd29b3c01133ac87ca06326260"
],
- "markers": "python_version >= '3.6'",
- "version": "==1.0.1"
+ "markers": "python_version >= '3.8'",
+ "version": "==1.0.2"
},
"opentelemetry-proto": {
"hashes": [
@@ -862,11 +875,11 @@
},
"opentelemetry-sdk-extension-aws": {
"hashes": [
- "sha256:dd7cf6fc0e7c8070dbe179348f2f194ca4555601b60efb7264d82fc8df53f4ba",
- "sha256:f964b0598793ded268d3329c33829fad33f63a8d9299fe51bf3a743e81fd7c67"
+ "sha256:4c6e4b9fec01a4a9cfeac5272ce5aae6bc80e080a6bae1e52098746f53a7b32d",
+ "sha256:9faa9bdf480d1c5c53151dabee75735c94dbde09e4762c68ff5c7bd4aa3408f3"
],
- "markers": "python_version >= '3.6'",
- "version": "==2.0.1"
+ "markers": "python_version >= '3.8'",
+ "version": "==2.0.2"
},
"opentelemetry-semantic-conventions": {
"hashes": [
@@ -902,19 +915,19 @@
},
"platformdirs": {
"hashes": [
- "sha256:2d7a1657e36a80ea911db832a8a6ece5ee53d8de21edd5cc5879af6530b1bfee",
- "sha256:38b7b51f512eed9e84a22788b4bce1de17c0adb134d6becb09836e37d8654cd3"
+ "sha256:357fb2acbc885b0419afd3ce3ed34564c13c9b95c89360cd9563f73aa5e2b907",
+ "sha256:73e575e1408ab8103900836b97580d5307456908a03e92031bab39e4554cc3fb"
],
"markers": "python_version >= '3.8'",
- "version": "==4.2.2"
+ "version": "==4.3.6"
},
"pre-commit": {
"hashes": [
- "sha256:8ca3ad567bc78a4972a3f1a477e94a79d4597e8140a6e0b651c5e33899c3654a",
- "sha256:fae36fd1d7ad7d6a5a1c0b0d5adb2ed1a3bda5a21bf6c3e5372073d7a11cd4c5"
+ "sha256:8bb6494d4a20423842e198980c9ecf9f96607a07ea29549e180eef9ae80fe7af",
+ "sha256:9a90a53bf82fdd8778d58085faf8d83df56e40dfe18f45b19446e26bf1b3a63f"
],
"markers": "python_version >= '3.9'",
- "version": "==3.7.1"
+ "version": "==3.8.0"
},
"prompt-toolkit": {
"hashes": [
@@ -926,20 +939,20 @@
},
"protobuf": {
"hashes": [
- "sha256:19b270aeaa0099f16d3ca02628546b8baefe2955bbe23224aaf856134eccf1e4",
- "sha256:209ba4cc916bab46f64e56b85b090607a676f66b473e6b762e6f1d9d591eb2e8",
- "sha256:25b5d0b42fd000320bd7830b349e3b696435f3b329810427a6bcce6a5492cc5c",
- "sha256:7c8daa26095f82482307bc717364e7c13f4f1c99659be82890dcfc215194554d",
- "sha256:c053062984e61144385022e53678fbded7aea14ebb3e0305ae3592fb219ccfa4",
- "sha256:d4198877797a83cbfe9bffa3803602bbe1625dc30d8a097365dbc762e5790faa",
- "sha256:e3c97a1555fd6388f857770ff8b9703083de6bf1f9274a002a332d65fbb56c8c",
- "sha256:e7cb0ae90dd83727f0c0718634ed56837bfeeee29a5f82a7514c03ee1364c019",
- "sha256:f0700d54bcf45424477e46a9f0944155b46fb0639d69728739c0e47bab83f2b9",
- "sha256:f1279ab38ecbfae7e456a108c5c0681e4956d5b1090027c1de0f934dfdb4b35c",
- "sha256:f4f118245c4a087776e0a8408be33cf09f6c547442c00395fbfb116fac2f8ac2"
+ "sha256:0aebecb809cae990f8129ada5ca273d9d670b76d9bfc9b1809f0a9c02b7dbf41",
+ "sha256:4be0571adcbe712b282a330c6e89eae24281344429ae95c6d85e79e84780f5ea",
+ "sha256:5e61fd921603f58d2f5acb2806a929b4675f8874ff5f330b7d6f7e2e784bbcd8",
+ "sha256:7a183f592dc80aa7c8da7ad9e55091c4ffc9497b3054452d629bb85fa27c2a45",
+ "sha256:7f8249476b4a9473645db7f8ab42b02fe1488cbe5fb72fddd445e0665afd8584",
+ "sha256:919ad92d9b0310070f8356c24b855c98df2b8bd207ebc1c0c6fcc9ab1e007f3d",
+ "sha256:98d8d8aa50de6a2747efd9cceba361c9034050ecce3e09136f90de37ddba66e1",
+ "sha256:abe32aad8561aa7cc94fc7ba4fdef646e576983edb94a73381b03c53728a626f",
+ "sha256:b0234dd5a03049e4ddd94b93400b67803c823cfc405689688f59b34e0742381a",
+ "sha256:b2fde3d805354df675ea4c7c6338c1aecd254dfc9925e88c6d31a2bcb97eb173",
+ "sha256:fe14e16c22be926d3abfcb500e60cab068baf10b542b8c858fa27e098123e331"
],
"markers": "python_version >= '3.8'",
- "version": "==4.25.3"
+ "version": "==4.25.5"
},
"pycparser": {
"hashes": [
@@ -951,18 +964,18 @@
},
"pyjwt": {
"hashes": [
- "sha256:57e28d156e3d5c10088e0c68abb90bfac3df82b40a71bd0daa20c65ccd5c23de",
- "sha256:59127c392cc44c2da5bb3192169a91f429924e17aff6534d70fdc02ab3e04320"
+ "sha256:3b02fb0f44517787776cf48f2ae25d8e14f300e6d7545a4315cee571a415e850",
+ "sha256:7e1e5b56cc735432a7369cbfa0efe50fa113ebecdc04ae6922deba8b84582d0c"
],
- "markers": "python_version >= '3.7'",
- "version": "==2.8.0"
+ "markers": "python_version >= '3.8'",
+ "version": "==2.9.0"
},
"python-dateutil": {
"hashes": [
"sha256:37dd54208da7e1cd875388217d5e00ebd4179249f90fb72437e91a35459a0ad3",
"sha256:a8b2bc7bffae282281c8140a97d3aa9c14da0b136dfe83f850eea9a5f7470427"
],
- "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2'",
+ "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'",
"version": "==2.9.0.post0"
},
"python-magic": {
@@ -976,67 +989,69 @@
},
"pytz": {
"hashes": [
- "sha256:2a29735ea9c18baf14b448846bde5a48030ed267578472d8955cd0e7443a9812",
- "sha256:328171f4e3623139da4983451950b28e95ac706e13f3f2630a879749e7a8b319"
+ "sha256:2aa355083c50a0f93fa581709deac0c9ad65cca8a9e9beac660adcbd493c798a",
+ "sha256:31c7c1817eb7fae7ca4b8c7ee50c72f93aa2dd863de768e1ef4245d426aa0725"
],
- "version": "==2024.1"
+ "version": "==2024.2"
},
"pyyaml": {
"hashes": [
- "sha256:04ac92ad1925b2cff1db0cfebffb6ffc43457495c9b3c39d3fcae417d7125dc5",
- "sha256:062582fca9fabdd2c8b54a3ef1c978d786e0f6b3a1510e0ac93ef59e0ddae2bc",
- "sha256:0d3304d8c0adc42be59c5f8a4d9e3d7379e6955ad754aa9d6ab7a398b59dd1df",
- "sha256:1635fd110e8d85d55237ab316b5b011de701ea0f29d07611174a1b42f1444741",
- "sha256:184c5108a2aca3c5b3d3bf9395d50893a7ab82a38004c8f61c258d4428e80206",
- "sha256:18aeb1bf9a78867dc38b259769503436b7c72f7a1f1f4c93ff9a17de54319b27",
- "sha256:1d4c7e777c441b20e32f52bd377e0c409713e8bb1386e1099c2415f26e479595",
- "sha256:1e2722cc9fbb45d9b87631ac70924c11d3a401b2d7f410cc0e3bbf249f2dca62",
- "sha256:1fe35611261b29bd1de0070f0b2f47cb6ff71fa6595c077e42bd0c419fa27b98",
- "sha256:28c119d996beec18c05208a8bd78cbe4007878c6dd15091efb73a30e90539696",
- "sha256:326c013efe8048858a6d312ddd31d56e468118ad4cdeda36c719bf5bb6192290",
- "sha256:40df9b996c2b73138957fe23a16a4f0ba614f4c0efce1e9406a184b6d07fa3a9",
- "sha256:42f8152b8dbc4fe7d96729ec2b99c7097d656dc1213a3229ca5383f973a5ed6d",
- "sha256:49a183be227561de579b4a36efbb21b3eab9651dd81b1858589f796549873dd6",
- "sha256:4fb147e7a67ef577a588a0e2c17b6db51dda102c71de36f8549b6816a96e1867",
- "sha256:50550eb667afee136e9a77d6dc71ae76a44df8b3e51e41b77f6de2932bfe0f47",
- "sha256:510c9deebc5c0225e8c96813043e62b680ba2f9c50a08d3724c7f28a747d1486",
- "sha256:5773183b6446b2c99bb77e77595dd486303b4faab2b086e7b17bc6bef28865f6",
- "sha256:596106435fa6ad000c2991a98fa58eeb8656ef2325d7e158344fb33864ed87e3",
- "sha256:6965a7bc3cf88e5a1c3bd2e0b5c22f8d677dc88a455344035f03399034eb3007",
- "sha256:69b023b2b4daa7548bcfbd4aa3da05b3a74b772db9e23b982788168117739938",
- "sha256:6c22bec3fbe2524cde73d7ada88f6566758a8f7227bfbf93a408a9d86bcc12a0",
- "sha256:704219a11b772aea0d8ecd7058d0082713c3562b4e271b849ad7dc4a5c90c13c",
- "sha256:7e07cbde391ba96ab58e532ff4803f79c4129397514e1413a7dc761ccd755735",
- "sha256:81e0b275a9ecc9c0c0c07b4b90ba548307583c125f54d5b6946cfee6360c733d",
- "sha256:855fb52b0dc35af121542a76b9a84f8d1cd886ea97c84703eaa6d88e37a2ad28",
- "sha256:8d4e9c88387b0f5c7d5f281e55304de64cf7f9c0021a3525bd3b1c542da3b0e4",
- "sha256:9046c58c4395dff28dd494285c82ba00b546adfc7ef001486fbf0324bc174fba",
- "sha256:9eb6caa9a297fc2c2fb8862bc5370d0303ddba53ba97e71f08023b6cd73d16a8",
- "sha256:a08c6f0fe150303c1c6b71ebcd7213c2858041a7e01975da3a99aed1e7a378ef",
- "sha256:a0cd17c15d3bb3fa06978b4e8958dcdc6e0174ccea823003a106c7d4d7899ac5",
- "sha256:afd7e57eddb1a54f0f1a974bc4391af8bcce0b444685d936840f125cf046d5bd",
- "sha256:b1275ad35a5d18c62a7220633c913e1b42d44b46ee12554e5fd39c70a243d6a3",
- "sha256:b786eecbdf8499b9ca1d697215862083bd6d2a99965554781d0d8d1ad31e13a0",
- "sha256:ba336e390cd8e4d1739f42dfe9bb83a3cc2e80f567d8805e11b46f4a943f5515",
- "sha256:baa90d3f661d43131ca170712d903e6295d1f7a0f595074f151c0aed377c9b9c",
- "sha256:bc1bf2925a1ecd43da378f4db9e4f799775d6367bdb94671027b73b393a7c42c",
- "sha256:bd4af7373a854424dabd882decdc5579653d7868b8fb26dc7d0e99f823aa5924",
- "sha256:bf07ee2fef7014951eeb99f56f39c9bb4af143d8aa3c21b1677805985307da34",
- "sha256:bfdf460b1736c775f2ba9f6a92bca30bc2095067b8a9d77876d1fad6cc3b4a43",
- "sha256:c8098ddcc2a85b61647b2590f825f3db38891662cfc2fc776415143f599bb859",
- "sha256:d2b04aac4d386b172d5b9692e2d2da8de7bfb6c387fa4f801fbf6fb2e6ba4673",
- "sha256:d483d2cdf104e7c9fa60c544d92981f12ad66a457afae824d146093b8c294c54",
- "sha256:d858aa552c999bc8a8d57426ed01e40bef403cd8ccdd0fc5f6f04a00414cac2a",
- "sha256:e7d73685e87afe9f3b36c799222440d6cf362062f78be1013661b00c5c6f678b",
- "sha256:f003ed9ad21d6a4713f0a9b5a7a0a79e08dd0f221aff4525a2be4c346ee60aab",
- "sha256:f22ac1c3cac4dbc50079e965eba2c1058622631e526bd9afd45fedd49ba781fa",
- "sha256:faca3bdcf85b2fc05d06ff3fbc1f83e1391b3e724afa3feba7d13eeab355484c",
- "sha256:fca0e3a251908a499833aa292323f32437106001d436eca0e6e7833256674585",
- "sha256:fd1592b3fdf65fff2ad0004b5e363300ef59ced41c2e6b3a99d4089fa8c5435d",
- "sha256:fd66fc5d0da6d9815ba2cebeb4205f95818ff4b79c3ebe268e75d961704af52f"
+ "sha256:01179a4a8559ab5de078078f37e5c1a30d76bb88519906844fd7bdea1b7729ff",
+ "sha256:0833f8694549e586547b576dcfaba4a6b55b9e96098b36cdc7ebefe667dfed48",
+ "sha256:0a9a2848a5b7feac301353437eb7d5957887edbf81d56e903999a75a3d743086",
+ "sha256:0b69e4ce7a131fe56b7e4d770c67429700908fc0752af059838b1cfb41960e4e",
+ "sha256:0ffe8360bab4910ef1b9e87fb812d8bc0a308b0d0eef8c8f44e0254ab3b07133",
+ "sha256:11d8f3dd2b9c1207dcaf2ee0bbbfd5991f571186ec9cc78427ba5bd32afae4b5",
+ "sha256:17e311b6c678207928d649faa7cb0d7b4c26a0ba73d41e99c4fff6b6c3276484",
+ "sha256:1e2120ef853f59c7419231f3bf4e7021f1b936f6ebd222406c3b60212205d2ee",
+ "sha256:1f71ea527786de97d1a0cc0eacd1defc0985dcf6b3f17bb77dcfc8c34bec4dc5",
+ "sha256:23502f431948090f597378482b4812b0caae32c22213aecf3b55325e049a6c68",
+ "sha256:24471b829b3bf607e04e88d79542a9d48bb037c2267d7927a874e6c205ca7e9a",
+ "sha256:29717114e51c84ddfba879543fb232a6ed60086602313ca38cce623c1d62cfbf",
+ "sha256:2e99c6826ffa974fe6e27cdb5ed0021786b03fc98e5ee3c5bfe1fd5015f42b99",
+ "sha256:39693e1f8320ae4f43943590b49779ffb98acb81f788220ea932a6b6c51004d8",
+ "sha256:3ad2a3decf9aaba3d29c8f537ac4b243e36bef957511b4766cb0057d32b0be85",
+ "sha256:3b1fdb9dc17f5a7677423d508ab4f243a726dea51fa5e70992e59a7411c89d19",
+ "sha256:41e4e3953a79407c794916fa277a82531dd93aad34e29c2a514c2c0c5fe971cc",
+ "sha256:43fa96a3ca0d6b1812e01ced1044a003533c47f6ee8aca31724f78e93ccc089a",
+ "sha256:50187695423ffe49e2deacb8cd10510bc361faac997de9efef88badc3bb9e2d1",
+ "sha256:5ac9328ec4831237bec75defaf839f7d4564be1e6b25ac710bd1a96321cc8317",
+ "sha256:5d225db5a45f21e78dd9358e58a98702a0302f2659a3c6cd320564b75b86f47c",
+ "sha256:6395c297d42274772abc367baaa79683958044e5d3835486c16da75d2a694631",
+ "sha256:688ba32a1cffef67fd2e9398a2efebaea461578b0923624778664cc1c914db5d",
+ "sha256:68ccc6023a3400877818152ad9a1033e3db8625d899c72eacb5a668902e4d652",
+ "sha256:70b189594dbe54f75ab3a1acec5f1e3faa7e8cf2f1e08d9b561cb41b845f69d5",
+ "sha256:797b4f722ffa07cc8d62053e4cff1486fa6dc094105d13fea7b1de7d8bf71c9e",
+ "sha256:7c36280e6fb8385e520936c3cb3b8042851904eba0e58d277dca80a5cfed590b",
+ "sha256:7e7401d0de89a9a855c839bc697c079a4af81cf878373abd7dc625847d25cbd8",
+ "sha256:80bab7bfc629882493af4aa31a4cfa43a4c57c83813253626916b8c7ada83476",
+ "sha256:82d09873e40955485746739bcb8b4586983670466c23382c19cffecbf1fd8706",
+ "sha256:8388ee1976c416731879ac16da0aff3f63b286ffdd57cdeb95f3f2e085687563",
+ "sha256:8824b5a04a04a047e72eea5cec3bc266db09e35de6bdfe34c9436ac5ee27d237",
+ "sha256:8b9c7197f7cb2738065c481a0461e50ad02f18c78cd75775628afb4d7137fb3b",
+ "sha256:9056c1ecd25795207ad294bcf39f2db3d845767be0ea6e6a34d856f006006083",
+ "sha256:936d68689298c36b53b29f23c6dbb74de12b4ac12ca6cfe0e047bedceea56180",
+ "sha256:9b22676e8097e9e22e36d6b7bda33190d0d400f345f23d4065d48f4ca7ae0425",
+ "sha256:a4d3091415f010369ae4ed1fc6b79def9416358877534caf6a0fdd2146c87a3e",
+ "sha256:a8786accb172bd8afb8be14490a16625cbc387036876ab6ba70912730faf8e1f",
+ "sha256:a9f8c2e67970f13b16084e04f134610fd1d374bf477b17ec1599185cf611d725",
+ "sha256:bc2fa7c6b47d6bc618dd7fb02ef6fdedb1090ec036abab80d4681424b84c1183",
+ "sha256:c70c95198c015b85feafc136515252a261a84561b7b1d51e3384e0655ddf25ab",
+ "sha256:cc1c1159b3d456576af7a3e4d1ba7e6924cb39de8f67111c735f6fc832082774",
+ "sha256:ce826d6ef20b1bc864f0a68340c8b3287705cae2f8b4b1d932177dcc76721725",
+ "sha256:d584d9ec91ad65861cc08d42e834324ef890a082e591037abe114850ff7bbc3e",
+ "sha256:d7fded462629cfa4b685c5416b949ebad6cec74af5e2d42905d41e257e0869f5",
+ "sha256:d84a1718ee396f54f3a086ea0a66d8e552b2ab2017ef8b420e92edbc841c352d",
+ "sha256:d8e03406cac8513435335dbab54c0d385e4a49e4945d2909a581c83647ca0290",
+ "sha256:e10ce637b18caea04431ce14fabcf5c64a1c61ec9c56b071a4b7ca131ca52d44",
+ "sha256:ec031d5d2feb36d1d1a24380e4db6d43695f3748343d99434e6f5f9156aaa2ed",
+ "sha256:ef6107725bd54b262d6dedcc2af448a266975032bc85ef0172c5f059da6325b4",
+ "sha256:efdca5630322a10774e8e98e1af481aad470dd62c3170801852d752aa7a783ba",
+ "sha256:f753120cb8181e736c57ef7636e83f31b9c0d1722c516f7e86cf15b7aa57ff12",
+ "sha256:ff3824dc5261f50c9b0dfb3be22b4567a6f938ccce4587b38952d85fd9e9afe4"
],
- "markers": "python_version >= '3.6'",
- "version": "==6.0.1"
+ "markers": "python_version >= '3.8'",
+ "version": "==6.0.2"
},
"rcssmin": {
"hashes": [
@@ -1046,11 +1061,11 @@
},
"redis": {
"hashes": [
- "sha256:38473cd7c6389ad3e44a91f4c3eaf6bcb8a9f746007f29bf4fb20824ff0b2197",
- "sha256:c0d6d990850c627bbf7be01c5c4cbaadf67b48593e913bb71c9819c30df37eee"
+ "sha256:0c5b10d387568dfe0698c6fad6615750c24170e548ca2deac10c649d463e9870",
+ "sha256:56134ee08ea909106090934adc36f65c9bcbbaecea5b21ba704ba6fb561f8eb4"
],
"markers": "python_version >= '3.7'",
- "version": "==5.0.6"
+ "version": "==5.0.8"
},
"regex": {
"hashes": [
@@ -1180,11 +1195,12 @@
},
"sentry-sdk": {
"hashes": [
- "sha256:3c4e898f7a3edf5a2042cd0dcab6ee124e2112189228c272c08ad15d3850c201",
- "sha256:ad40860325c94d1a656da70fba5a7c4dbb2f6809d3cc2d00f74ca0b608330f14"
+ "sha256:1e0e2eaf6dad918c7d1e0edac868a7bf20017b177f242cefe2a6bcd47955961d",
+ "sha256:b8bc3dc51d06590df1291b7519b85c75e2ced4f28d9ea655b6d54033503b5bf4"
],
"index": "pypi",
- "version": "==1.17.0"
+ "markers": "python_version >= '3.6'",
+ "version": "==2.14.0"
},
"setuptools": {
"hashes": [
@@ -1200,16 +1216,16 @@
"sha256:1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926",
"sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254"
],
- "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2'",
+ "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'",
"version": "==1.16.0"
},
"soupsieve": {
"hashes": [
- "sha256:5663d5a7b3bfaeee0bc4372e7fc48f9cff4940b3eec54a6451cc5299f1097690",
- "sha256:eaa337ff55a1579b6549dc679565eac1e3d000563bcb1c8ab0d0fefbc0c2cdc7"
+ "sha256:e2e68417777af359ec65daac1057404a3c8a5455bb8abc36f1a9866ab1a51abb",
+ "sha256:e72c4ff06e4fb6e4b5a9f0f55fe6e81514581fca1515028625d0f299c602ccc9"
],
"markers": "python_version >= '3.8'",
- "version": "==2.5"
+ "version": "==2.6"
},
"sqlparse": {
"hashes": [
@@ -1224,7 +1240,7 @@
"sha256:04e5ca0351e0f3f85c6853954072df659d0d13fac324d0072316b67d7794700d",
"sha256:1a7ead55c7e559dd4dee8856e3a88b41225abfe1ce8df57b7c13915fe121ffb8"
],
- "markers": "python_version < '3.11'",
+ "markers": "python_version < '3.10'",
"version": "==4.12.2"
},
"tzdata": {
@@ -1245,11 +1261,11 @@
},
"urllib3": {
"hashes": [
- "sha256:37a0344459b199fce0e80b0d3569837ec6b6937435c5244e7fd73fa6006830f3",
- "sha256:3e3d753a8618b86d7de333b4223005f68720bcd6a7d2bcb9fbd2229ec7c1e429"
+ "sha256:0ed14ccfbf1c30a9072c7ca157e4319b70d65f623e91e7b32fadb2853431016e",
+ "sha256:40c2dc0c681e47eb8f90e7e27bf6ff7df2e677421fd46756da1161c39ca70d32"
],
- "markers": "python_version >= '3.6'",
- "version": "==1.26.19"
+ "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4, 3.5'",
+ "version": "==1.26.20"
},
"vine": {
"hashes": [
@@ -1261,11 +1277,11 @@
},
"virtualenv": {
"hashes": [
- "sha256:82bf0f4eebbb78d36ddaee0283d43fe5736b53880b8a8cdcd37390a07ac3741c",
- "sha256:a624db5e94f01ad993d476b9ee5346fdf7b9de43ccaee0e0197012dc838a0e9b"
+ "sha256:4f3ac17b81fba3ce3bd6f4ead2749a72da5929c01774948e243db9ba41df4ff6",
+ "sha256:ce489cac131aa58f4b25e321d6d186171f78e6cb13fafbf32a840cee67733ff4"
],
"markers": "python_version >= '3.7'",
- "version": "==20.26.2"
+ "version": "==20.26.5"
},
"wcwidth": {
"hashes": [
@@ -1368,11 +1384,11 @@
},
"zipp": {
"hashes": [
- "sha256:bf1dcf6450f873a13e952a29504887c89e6de7506209e5b1bcc3460135d4de19",
- "sha256:f091755f667055f2d02b32c53771a7a6c8b47e1fdbc4b72a8b9072b3eef8015c"
+ "sha256:a817ac80d6cf4b23bf7f2828b7cabf326f15a001bea8b1f9b49631780ba28350",
+ "sha256:bc9eb26f4506fda01b81bcde0ca78103b6e62f991b381fec825435c836edbc29"
],
"markers": "python_version >= '3.8'",
- "version": "==3.19.2"
+ "version": "==3.20.2"
}
},
"develop": {
@@ -1418,11 +1434,11 @@
},
"attrs": {
"hashes": [
- "sha256:935dc3b529c262f6cf76e50877d35a4bd3c1de194fd41f47a2b7ae8f19971f30",
- "sha256:99b87a485a5820b23b879f04c2305b44b951b502fd64be915879d77a7e8fc6f1"
+ "sha256:5cfb1b9148b5b086569baec03f20d7b6bf3bcacc9a42bebf87ffaaca362f6346",
+ "sha256:81921eb96de3191c8258c199618104dd27ac608d9366f5e35d011eae1867ede2"
],
"markers": "python_version >= '3.7'",
- "version": "==23.2.0"
+ "version": "==24.2.0"
},
"backcall": {
"hashes": [
@@ -1584,69 +1600,84 @@
},
"certifi": {
"hashes": [
- "sha256:3cd43f1c6fa7dedc5899d69d3ad0398fd018ad1a17fba83ddaf78aa46c747516",
- "sha256:ddc6c8ce995e6987e7faf5e3f1b02b302836a0e5d98ece18392cb1a36c72ad56"
+ "sha256:922820b53db7a7257ffbda3f597266d435245903d80737e34f8a45ff3e3230d8",
+ "sha256:bec941d2aa8195e248a60b31ff9f0558284cf01a52591ceda73ea9afffd69fd9"
],
"markers": "python_version >= '3.6'",
- "version": "==2024.6.2"
+ "version": "==2024.8.30"
},
"cffi": {
"hashes": [
- "sha256:0c9ef6ff37e974b73c25eecc13952c55bceed9112be2d9d938ded8e856138bcc",
- "sha256:131fd094d1065b19540c3d72594260f118b231090295d8c34e19a7bbcf2e860a",
- "sha256:1b8ebc27c014c59692bb2664c7d13ce7a6e9a629be20e54e7271fa696ff2b417",
- "sha256:2c56b361916f390cd758a57f2e16233eb4f64bcbeee88a4881ea90fca14dc6ab",
- "sha256:2d92b25dbf6cae33f65005baf472d2c245c050b1ce709cc4588cdcdd5495b520",
- "sha256:31d13b0f99e0836b7ff893d37af07366ebc90b678b6664c955b54561fc36ef36",
- "sha256:32c68ef735dbe5857c810328cb2481e24722a59a2003018885514d4c09af9743",
- "sha256:3686dffb02459559c74dd3d81748269ffb0eb027c39a6fc99502de37d501faa8",
- "sha256:582215a0e9adbe0e379761260553ba11c58943e4bbe9c36430c4ca6ac74b15ed",
- "sha256:5b50bf3f55561dac5438f8e70bfcdfd74543fd60df5fa5f62d94e5867deca684",
- "sha256:5bf44d66cdf9e893637896c7faa22298baebcd18d1ddb6d2626a6e39793a1d56",
- "sha256:6602bc8dc6f3a9e02b6c22c4fc1e47aa50f8f8e6d3f78a5e16ac33ef5fefa324",
- "sha256:673739cb539f8cdaa07d92d02efa93c9ccf87e345b9a0b556e3ecc666718468d",
- "sha256:68678abf380b42ce21a5f2abde8efee05c114c2fdb2e9eef2efdb0257fba1235",
- "sha256:68e7c44931cc171c54ccb702482e9fc723192e88d25a0e133edd7aff8fcd1f6e",
- "sha256:6b3d6606d369fc1da4fd8c357d026317fbb9c9b75d36dc16e90e84c26854b088",
- "sha256:748dcd1e3d3d7cd5443ef03ce8685043294ad6bd7c02a38d1bd367cfd968e000",
- "sha256:7651c50c8c5ef7bdb41108b7b8c5a83013bfaa8a935590c5d74627c047a583c7",
- "sha256:7b78010e7b97fef4bee1e896df8a4bbb6712b7f05b7ef630f9d1da00f6444d2e",
- "sha256:7e61e3e4fa664a8588aa25c883eab612a188c725755afff6289454d6362b9673",
- "sha256:80876338e19c951fdfed6198e70bc88f1c9758b94578d5a7c4c91a87af3cf31c",
- "sha256:8895613bcc094d4a1b2dbe179d88d7fb4a15cee43c052e8885783fac397d91fe",
- "sha256:88e2b3c14bdb32e440be531ade29d3c50a1a59cd4e51b1dd8b0865c54ea5d2e2",
- "sha256:8f8e709127c6c77446a8c0a8c8bf3c8ee706a06cd44b1e827c3e6a2ee6b8c098",
- "sha256:9cb4a35b3642fc5c005a6755a5d17c6c8b6bcb6981baf81cea8bfbc8903e8ba8",
- "sha256:9f90389693731ff1f659e55c7d1640e2ec43ff725cc61b04b2f9c6d8d017df6a",
- "sha256:a09582f178759ee8128d9270cd1344154fd473bb77d94ce0aeb2a93ebf0feaf0",
- "sha256:a6a14b17d7e17fa0d207ac08642c8820f84f25ce17a442fd15e27ea18d67c59b",
- "sha256:a72e8961a86d19bdb45851d8f1f08b041ea37d2bd8d4fd19903bc3083d80c896",
- "sha256:abd808f9c129ba2beda4cfc53bde801e5bcf9d6e0f22f095e45327c038bfe68e",
- "sha256:ac0f5edd2360eea2f1daa9e26a41db02dd4b0451b48f7c318e217ee092a213e9",
- "sha256:b29ebffcf550f9da55bec9e02ad430c992a87e5f512cd63388abb76f1036d8d2",
- "sha256:b2ca4e77f9f47c55c194982e10f058db063937845bb2b7a86c84a6cfe0aefa8b",
- "sha256:b7be2d771cdba2942e13215c4e340bfd76398e9227ad10402a8767ab1865d2e6",
- "sha256:b84834d0cf97e7d27dd5b7f3aca7b6e9263c56308ab9dc8aae9784abb774d404",
- "sha256:b86851a328eedc692acf81fb05444bdf1891747c25af7529e39ddafaf68a4f3f",
- "sha256:bcb3ef43e58665bbda2fb198698fcae6776483e0c4a631aa5647806c25e02cc0",
- "sha256:c0f31130ebc2d37cdd8e44605fb5fa7ad59049298b3f745c74fa74c62fbfcfc4",
- "sha256:c6a164aa47843fb1b01e941d385aab7215563bb8816d80ff3a363a9f8448a8dc",
- "sha256:d8a9d3ebe49f084ad71f9269834ceccbf398253c9fac910c4fd7053ff1386936",
- "sha256:db8e577c19c0fda0beb7e0d4e09e0ba74b1e4c092e0e40bfa12fe05b6f6d75ba",
- "sha256:dc9b18bf40cc75f66f40a7379f6a9513244fe33c0e8aa72e2d56b0196a7ef872",
- "sha256:e09f3ff613345df5e8c3667da1d918f9149bd623cd9070c983c013792a9a62eb",
- "sha256:e4108df7fe9b707191e55f33efbcb2d81928e10cea45527879a4749cbe472614",
- "sha256:e6024675e67af929088fda399b2094574609396b1decb609c55fa58b028a32a1",
- "sha256:e70f54f1796669ef691ca07d046cd81a29cb4deb1e5f942003f401c0c4a2695d",
- "sha256:e715596e683d2ce000574bae5d07bd522c781a822866c20495e52520564f0969",
- "sha256:e760191dd42581e023a68b758769e2da259b5d52e3103c6060ddc02c9edb8d7b",
- "sha256:ed86a35631f7bfbb28e108dd96773b9d5a6ce4811cf6ea468bb6a359b256b1e4",
- "sha256:ee07e47c12890ef248766a6e55bd38ebfb2bb8edd4142d56db91b21ea68b7627",
- "sha256:fa3a0128b152627161ce47201262d3140edb5a5c3da88d73a1b790a959126956",
- "sha256:fcc8eb6d5902bb1cf6dc4f187ee3ea80a1eba0a89aba40a5cb20a5087d961357"
+ "sha256:045d61c734659cc045141be4bae381a41d89b741f795af1dd018bfb532fd0df8",
+ "sha256:0984a4925a435b1da406122d4d7968dd861c1385afe3b45ba82b750f229811e2",
+ "sha256:0e2b1fac190ae3ebfe37b979cc1ce69c81f4e4fe5746bb401dca63a9062cdaf1",
+ "sha256:0f048dcf80db46f0098ccac01132761580d28e28bc0f78ae0d58048063317e15",
+ "sha256:1257bdabf294dceb59f5e70c64a3e2f462c30c7ad68092d01bbbfb1c16b1ba36",
+ "sha256:1c39c6016c32bc48dd54561950ebd6836e1670f2ae46128f67cf49e789c52824",
+ "sha256:1d599671f396c4723d016dbddb72fe8e0397082b0a77a4fab8028923bec050e8",
+ "sha256:28b16024becceed8c6dfbc75629e27788d8a3f9030691a1dbf9821a128b22c36",
+ "sha256:2bb1a08b8008b281856e5971307cc386a8e9c5b625ac297e853d36da6efe9c17",
+ "sha256:30c5e0cb5ae493c04c8b42916e52ca38079f1b235c2f8ae5f4527b963c401caf",
+ "sha256:31000ec67d4221a71bd3f67df918b1f88f676f1c3b535a7eb473255fdc0b83fc",
+ "sha256:386c8bf53c502fff58903061338ce4f4950cbdcb23e2902d86c0f722b786bbe3",
+ "sha256:3edc8d958eb099c634dace3c7e16560ae474aa3803a5df240542b305d14e14ed",
+ "sha256:45398b671ac6d70e67da8e4224a065cec6a93541bb7aebe1b198a61b58c7b702",
+ "sha256:46bf43160c1a35f7ec506d254e5c890f3c03648a4dbac12d624e4490a7046cd1",
+ "sha256:4ceb10419a9adf4460ea14cfd6bc43d08701f0835e979bf821052f1805850fe8",
+ "sha256:51392eae71afec0d0c8fb1a53b204dbb3bcabcb3c9b807eedf3e1e6ccf2de903",
+ "sha256:5da5719280082ac6bd9aa7becb3938dc9f9cbd57fac7d2871717b1feb0902ab6",
+ "sha256:610faea79c43e44c71e1ec53a554553fa22321b65fae24889706c0a84d4ad86d",
+ "sha256:636062ea65bd0195bc012fea9321aca499c0504409f413dc88af450b57ffd03b",
+ "sha256:6883e737d7d9e4899a8a695e00ec36bd4e5e4f18fabe0aca0efe0a4b44cdb13e",
+ "sha256:6b8b4a92e1c65048ff98cfe1f735ef8f1ceb72e3d5f0c25fdb12087a23da22be",
+ "sha256:6f17be4345073b0a7b8ea599688f692ac3ef23ce28e5df79c04de519dbc4912c",
+ "sha256:706510fe141c86a69c8ddc029c7910003a17353970cff3b904ff0686a5927683",
+ "sha256:72e72408cad3d5419375fc87d289076ee319835bdfa2caad331e377589aebba9",
+ "sha256:733e99bc2df47476e3848417c5a4540522f234dfd4ef3ab7fafdf555b082ec0c",
+ "sha256:7596d6620d3fa590f677e9ee430df2958d2d6d6de2feeae5b20e82c00b76fbf8",
+ "sha256:78122be759c3f8a014ce010908ae03364d00a1f81ab5c7f4a7a5120607ea56e1",
+ "sha256:805b4371bf7197c329fcb3ead37e710d1bca9da5d583f5073b799d5c5bd1eee4",
+ "sha256:85a950a4ac9c359340d5963966e3e0a94a676bd6245a4b55bc43949eee26a655",
+ "sha256:8f2cdc858323644ab277e9bb925ad72ae0e67f69e804f4898c070998d50b1a67",
+ "sha256:9755e4345d1ec879e3849e62222a18c7174d65a6a92d5b346b1863912168b595",
+ "sha256:98e3969bcff97cae1b2def8ba499ea3d6f31ddfdb7635374834cf89a1a08ecf0",
+ "sha256:a08d7e755f8ed21095a310a693525137cfe756ce62d066e53f502a83dc550f65",
+ "sha256:a1ed2dd2972641495a3ec98445e09766f077aee98a1c896dcb4ad0d303628e41",
+ "sha256:a24ed04c8ffd54b0729c07cee15a81d964e6fee0e3d4d342a27b020d22959dc6",
+ "sha256:a45e3c6913c5b87b3ff120dcdc03f6131fa0065027d0ed7ee6190736a74cd401",
+ "sha256:a9b15d491f3ad5d692e11f6b71f7857e7835eb677955c00cc0aefcd0669adaf6",
+ "sha256:ad9413ccdeda48c5afdae7e4fa2192157e991ff761e7ab8fdd8926f40b160cc3",
+ "sha256:b2ab587605f4ba0bf81dc0cb08a41bd1c0a5906bd59243d56bad7668a6fc6c16",
+ "sha256:b62ce867176a75d03a665bad002af8e6d54644fad99a3c70905c543130e39d93",
+ "sha256:c03e868a0b3bc35839ba98e74211ed2b05d2119be4e8a0f224fba9384f1fe02e",
+ "sha256:c59d6e989d07460165cc5ad3c61f9fd8f1b4796eacbd81cee78957842b834af4",
+ "sha256:c7eac2ef9b63c79431bc4b25f1cd649d7f061a28808cbc6c47b534bd789ef964",
+ "sha256:c9c3d058ebabb74db66e431095118094d06abf53284d9c81f27300d0e0d8bc7c",
+ "sha256:ca74b8dbe6e8e8263c0ffd60277de77dcee6c837a3d0881d8c1ead7268c9e576",
+ "sha256:caaf0640ef5f5517f49bc275eca1406b0ffa6aa184892812030f04c2abf589a0",
+ "sha256:cdf5ce3acdfd1661132f2a9c19cac174758dc2352bfe37d98aa7512c6b7178b3",
+ "sha256:d016c76bdd850f3c626af19b0542c9677ba156e4ee4fccfdd7848803533ef662",
+ "sha256:d01b12eeeb4427d3110de311e1774046ad344f5b1a7403101878976ecd7a10f3",
+ "sha256:d63afe322132c194cf832bfec0dc69a99fb9bb6bbd550f161a49e9e855cc78ff",
+ "sha256:da95af8214998d77a98cc14e3a3bd00aa191526343078b530ceb0bd710fb48a5",
+ "sha256:dd398dbc6773384a17fe0d3e7eeb8d1a21c2200473ee6806bb5e6a8e62bb73dd",
+ "sha256:de2ea4b5833625383e464549fec1bc395c1bdeeb5f25c4a3a82b5a8c756ec22f",
+ "sha256:de55b766c7aa2e2a3092c51e0483d700341182f08e67c63630d5b6f200bb28e5",
+ "sha256:df8b1c11f177bc2313ec4b2d46baec87a5f3e71fc8b45dab2ee7cae86d9aba14",
+ "sha256:e03eab0a8677fa80d646b5ddece1cbeaf556c313dcfac435ba11f107ba117b5d",
+ "sha256:e221cf152cff04059d011ee126477f0d9588303eb57e88923578ace7baad17f9",
+ "sha256:e31ae45bc2e29f6b2abd0de1cc3b9d5205aa847cafaecb8af1476a609a2f6eb7",
+ "sha256:edae79245293e15384b51f88b00613ba9f7198016a5948b5dddf4917d4d26382",
+ "sha256:f1e22e8c4419538cb197e4dd60acc919d7696e5ef98ee4da4e01d3f8cfa4cc5a",
+ "sha256:f3a2b4222ce6b60e2e8b337bb9596923045681d71e5a082783484d845390938e",
+ "sha256:f6a16c31041f09ead72d69f583767292f750d24913dadacf5756b966aacb3f1a",
+ "sha256:f75c7ab1f9e4aca5414ed4d8e5c0e303a34f4421f8a0d47a4d019ceff0ab6af4",
+ "sha256:f79fc4fc25f1c8698ff97788206bb3c2598949bfe0fef03d299eb1b5356ada99",
+ "sha256:f7f5baafcc48261359e14bcd6d9bff6d4b28d9103847c9e136694cb0501aef87",
+ "sha256:fc48c783f9c87e60831201f2cce7f3b2e4846bf4d8728eabe54d60700b318a0b"
],
"markers": "platform_python_implementation != 'PyPy'",
- "version": "==1.16.0"
+ "version": "==1.17.1"
},
"charset-normalizer": {
"hashes": [
@@ -1757,106 +1788,122 @@
"toml"
],
"hashes": [
- "sha256:015eddc5ccd5364dcb902eaecf9515636806fa1e0d5bef5769d06d0f31b54523",
- "sha256:04aefca5190d1dc7a53a4c1a5a7f8568811306d7a8ee231c42fb69215571944f",
- "sha256:05ac5f60faa0c704c0f7e6a5cbfd6f02101ed05e0aee4d2822637a9e672c998d",
- "sha256:0bbddc54bbacfc09b3edaec644d4ac90c08ee8ed4844b0f86227dcda2d428fcb",
- "sha256:1d2a830ade66d3563bb61d1e3c77c8def97b30ed91e166c67d0632c018f380f0",
- "sha256:239a4e75e09c2b12ea478d28815acf83334d32e722e7433471fbf641c606344c",
- "sha256:244f509f126dc71369393ce5fea17c0592c40ee44e607b6d855e9c4ac57aac98",
- "sha256:25a5caf742c6195e08002d3b6c2dd6947e50efc5fc2c2205f61ecb47592d2d83",
- "sha256:296a7d9bbc598e8744c00f7a6cecf1da9b30ae9ad51c566291ff1314e6cbbed8",
- "sha256:2e079c9ec772fedbade9d7ebc36202a1d9ef7291bc9b3a024ca395c4d52853d7",
- "sha256:33ca90a0eb29225f195e30684ba4a6db05dbef03c2ccd50b9077714c48153cac",
- "sha256:33fc65740267222fc02975c061eb7167185fef4cc8f2770267ee8bf7d6a42f84",
- "sha256:341dd8f61c26337c37988345ca5c8ccabeff33093a26953a1ac72e7d0103c4fb",
- "sha256:34d6d21d8795a97b14d503dcaf74226ae51eb1f2bd41015d3ef332a24d0a17b3",
- "sha256:3538d8fb1ee9bdd2e2692b3b18c22bb1c19ffbefd06880f5ac496e42d7bb3884",
- "sha256:38a3b98dae8a7c9057bd91fbf3415c05e700a5114c5f1b5b0ea5f8f429ba6614",
- "sha256:3d5a67f0da401e105753d474369ab034c7bae51a4c31c77d94030d59e41df5bd",
- "sha256:50084d3516aa263791198913a17354bd1dc627d3c1639209640b9cac3fef5807",
- "sha256:55f689f846661e3f26efa535071775d0483388a1ccfab899df72924805e9e7cd",
- "sha256:5bc5a8c87714b0c67cfeb4c7caa82b2d71e8864d1a46aa990b5588fa953673b8",
- "sha256:62bda40da1e68898186f274f832ef3e759ce929da9a9fd9fcf265956de269dbc",
- "sha256:705f3d7c2b098c40f5b81790a5fedb274113373d4d1a69e65f8b68b0cc26f6db",
- "sha256:75e3f4e86804023e991096b29e147e635f5e2568f77883a1e6eed74512659ab0",
- "sha256:7b2a19e13dfb5c8e145c7a6ea959485ee8e2204699903c88c7d25283584bfc08",
- "sha256:7cec2af81f9e7569280822be68bd57e51b86d42e59ea30d10ebdbb22d2cb7232",
- "sha256:8383a6c8cefba1b7cecc0149415046b6fc38836295bc4c84e820872eb5478b3d",
- "sha256:8c836309931839cca658a78a888dab9676b5c988d0dd34ca247f5f3e679f4e7a",
- "sha256:8e317953bb4c074c06c798a11dbdd2cf9979dbcaa8ccc0fa4701d80042d4ebf1",
- "sha256:923b7b1c717bd0f0f92d862d1ff51d9b2b55dbbd133e05680204465f454bb286",
- "sha256:990fb20b32990b2ce2c5f974c3e738c9358b2735bc05075d50a6f36721b8f303",
- "sha256:9aad68c3f2566dfae84bf46295a79e79d904e1c21ccfc66de88cd446f8686341",
- "sha256:a5812840d1d00eafae6585aba38021f90a705a25b8216ec7f66aebe5b619fb84",
- "sha256:a6519d917abb15e12380406d721e37613e2a67d166f9fb7e5a8ce0375744cd45",
- "sha256:ab0b028165eea880af12f66086694768f2c3139b2c31ad5e032c8edbafca6ffc",
- "sha256:aea7da970f1feccf48be7335f8b2ca64baf9b589d79e05b9397a06696ce1a1ec",
- "sha256:b1196e13c45e327d6cd0b6e471530a1882f1017eb83c6229fc613cd1a11b53cd",
- "sha256:b368e1aee1b9b75757942d44d7598dcd22a9dbb126affcbba82d15917f0cc155",
- "sha256:bde997cac85fcac227b27d4fb2c7608a2c5f6558469b0eb704c5726ae49e1c52",
- "sha256:c4c2872b3c91f9baa836147ca33650dc5c172e9273c808c3c3199c75490e709d",
- "sha256:c59d2ad092dc0551d9f79d9d44d005c945ba95832a6798f98f9216ede3d5f485",
- "sha256:d1da0a2e3b37b745a2b2a678a4c796462cf753aebf94edcc87dcc6b8641eae31",
- "sha256:d8b7339180d00de83e930358223c617cc343dd08e1aa5ec7b06c3a121aec4e1d",
- "sha256:dd4b3355b01273a56b20c219e74e7549e14370b31a4ffe42706a8cda91f19f6d",
- "sha256:e08c470c2eb01977d221fd87495b44867a56d4d594f43739a8028f8646a51e0d",
- "sha256:f5102a92855d518b0996eb197772f5ac2a527c0ec617124ad5242a3af5e25f85",
- "sha256:f542287b1489c7a860d43a7d8883e27ca62ab84ca53c965d11dac1d3a1fab7ce",
- "sha256:f78300789a708ac1f17e134593f577407d52d0417305435b134805c4fb135adb",
- "sha256:f81bc26d609bf0fbc622c7122ba6307993c83c795d2d6f6f6fd8c000a770d974",
- "sha256:f836c174c3a7f639bded48ec913f348c4761cbf49de4a20a956d3431a7c9cb24",
- "sha256:fa21a04112c59ad54f69d80e376f7f9d0f5f9123ab87ecd18fbb9ec3a2beed56",
- "sha256:fcf7d1d6f5da887ca04302db8e0e0cf56ce9a5e05f202720e49b3e8157ddb9a9",
- "sha256:fd27d8b49e574e50caa65196d908f80e4dff64d7e592d0c59788b45aad7e8b35"
+ "sha256:06a737c882bd26d0d6ee7269b20b12f14a8704807a01056c80bb881a4b2ce6ca",
+ "sha256:07e2ca0ad381b91350c0ed49d52699b625aab2b44b65e1b4e02fa9df0e92ad2d",
+ "sha256:0c0420b573964c760df9e9e86d1a9a622d0d27f417e1a949a8a66dd7bcee7bc6",
+ "sha256:0dbde0f4aa9a16fa4d754356a8f2e36296ff4d83994b2c9d8398aa32f222f989",
+ "sha256:1125ca0e5fd475cbbba3bb67ae20bd2c23a98fac4e32412883f9bcbaa81c314c",
+ "sha256:13b0a73a0896988f053e4fbb7de6d93388e6dd292b0d87ee51d106f2c11b465b",
+ "sha256:166811d20dfea725e2e4baa71fffd6c968a958577848d2131f39b60043400223",
+ "sha256:170d444ab405852903b7d04ea9ae9b98f98ab6d7e63e1115e82620807519797f",
+ "sha256:1f4aa8219db826ce6be7099d559f8ec311549bfc4046f7f9fe9b5cea5c581c56",
+ "sha256:225667980479a17db1048cb2bf8bfb39b8e5be8f164b8f6628b64f78a72cf9d3",
+ "sha256:260933720fdcd75340e7dbe9060655aff3af1f0c5d20f46b57f262ab6c86a5e8",
+ "sha256:2bdb062ea438f22d99cba0d7829c2ef0af1d768d1e4a4f528087224c90b132cb",
+ "sha256:2c09f4ce52cb99dd7505cd0fc8e0e37c77b87f46bc9c1eb03fe3bc9991085388",
+ "sha256:3115a95daa9bdba70aea750db7b96b37259a81a709223c8448fa97727d546fe0",
+ "sha256:3e0cadcf6733c09154b461f1ca72d5416635e5e4ec4e536192180d34ec160f8a",
+ "sha256:3f1156e3e8f2872197af3840d8ad307a9dd18e615dc64d9ee41696f287c57ad8",
+ "sha256:4421712dbfc5562150f7554f13dde997a2e932a6b5f352edcce948a815efee6f",
+ "sha256:44df346d5215a8c0e360307d46ffaabe0f5d3502c8a1cefd700b34baf31d411a",
+ "sha256:502753043567491d3ff6d08629270127e0c31d4184c4c8d98f92c26f65019962",
+ "sha256:547f45fa1a93154bd82050a7f3cddbc1a7a4dd2a9bf5cb7d06f4ae29fe94eaf8",
+ "sha256:5621a9175cf9d0b0c84c2ef2b12e9f5f5071357c4d2ea6ca1cf01814f45d2391",
+ "sha256:609b06f178fe8e9f89ef676532760ec0b4deea15e9969bf754b37f7c40326dbc",
+ "sha256:645786266c8f18a931b65bfcefdbf6952dd0dea98feee39bd188607a9d307ed2",
+ "sha256:6878ef48d4227aace338d88c48738a4258213cd7b74fd9a3d4d7582bb1d8a155",
+ "sha256:6a89ecca80709d4076b95f89f308544ec8f7b4727e8a547913a35f16717856cb",
+ "sha256:6db04803b6c7291985a761004e9060b2bca08da6d04f26a7f2294b8623a0c1a0",
+ "sha256:6e2cd258d7d927d09493c8df1ce9174ad01b381d4729a9d8d4e38670ca24774c",
+ "sha256:6e81d7a3e58882450ec4186ca59a3f20a5d4440f25b1cff6f0902ad890e6748a",
+ "sha256:702855feff378050ae4f741045e19a32d57d19f3e0676d589df0575008ea5004",
+ "sha256:78b260de9790fd81e69401c2dc8b17da47c8038176a79092a89cb2b7d945d060",
+ "sha256:7bb65125fcbef8d989fa1dd0e8a060999497629ca5b0efbca209588a73356232",
+ "sha256:7dea0889685db8550f839fa202744652e87c60015029ce3f60e006f8c4462c93",
+ "sha256:8284cf8c0dd272a247bc154eb6c95548722dce90d098c17a883ed36e67cdb129",
+ "sha256:877abb17e6339d96bf08e7a622d05095e72b71f8afd8a9fefc82cf30ed944163",
+ "sha256:8929543a7192c13d177b770008bc4e8119f2e1f881d563fc6b6305d2d0ebe9de",
+ "sha256:8ae539519c4c040c5ffd0632784e21b2f03fc1340752af711f33e5be83a9d6c6",
+ "sha256:8f59d57baca39b32db42b83b2a7ba6f47ad9c394ec2076b084c3f029b7afca23",
+ "sha256:9054a0754de38d9dbd01a46621636689124d666bad1936d76c0341f7d71bf569",
+ "sha256:953510dfb7b12ab69d20135a0662397f077c59b1e6379a768e97c59d852ee51d",
+ "sha256:95cae0efeb032af8458fc27d191f85d1717b1d4e49f7cb226cf526ff28179778",
+ "sha256:9bc572be474cafb617672c43fe989d6e48d3c83af02ce8de73fff1c6bb3c198d",
+ "sha256:9c56863d44bd1c4fe2abb8a4d6f5371d197f1ac0ebdee542f07f35895fc07f36",
+ "sha256:9e0b2df163b8ed01d515807af24f63de04bebcecbd6c3bfeff88385789fdf75a",
+ "sha256:a09ece4a69cf399510c8ab25e0950d9cf2b42f7b3cb0374f95d2e2ff594478a6",
+ "sha256:a1ac0ae2b8bd743b88ed0502544847c3053d7171a3cff9228af618a068ed9c34",
+ "sha256:a318d68e92e80af8b00fa99609796fdbcdfef3629c77c6283566c6f02c6d6704",
+ "sha256:a4acd025ecc06185ba2b801f2de85546e0b8ac787cf9d3b06e7e2a69f925b106",
+ "sha256:a6d3adcf24b624a7b778533480e32434a39ad8fa30c315208f6d3e5542aeb6e9",
+ "sha256:a78d169acd38300060b28d600344a803628c3fd585c912cacc9ea8790fe96862",
+ "sha256:a95324a9de9650a729239daea117df21f4b9868ce32e63f8b650ebe6cef5595b",
+ "sha256:abd5fd0db5f4dc9289408aaf34908072f805ff7792632250dcb36dc591d24255",
+ "sha256:b06079abebbc0e89e6163b8e8f0e16270124c154dc6e4a47b413dd538859af16",
+ "sha256:b43c03669dc4618ec25270b06ecd3ee4fa94c7f9b3c14bae6571ca00ef98b0d3",
+ "sha256:b48f312cca9621272ae49008c7f613337c53fadca647d6384cc129d2996d1133",
+ "sha256:b5d7b556859dd85f3a541db6a4e0167b86e7273e1cdc973e5b175166bb634fdb",
+ "sha256:b9f222de8cded79c49bf184bdbc06630d4c58eec9459b939b4a690c82ed05657",
+ "sha256:c3c02d12f837d9683e5ab2f3d9844dc57655b92c74e286c262e0fc54213c216d",
+ "sha256:c44fee9975f04b33331cb8eb272827111efc8930cfd582e0320613263ca849ca",
+ "sha256:cf4b19715bccd7ee27b6b120e7e9dd56037b9c0681dcc1adc9ba9db3d417fa36",
+ "sha256:d0c212c49b6c10e6951362f7c6df3329f04c2b1c28499563d4035d964ab8e08c",
+ "sha256:d3296782ca4eab572a1a4eca686d8bfb00226300dcefdf43faa25b5242ab8a3e",
+ "sha256:d85f5e9a5f8b73e2350097c3756ef7e785f55bd71205defa0bfdaf96c31616ff",
+ "sha256:da511e6ad4f7323ee5702e6633085fb76c2f893aaf8ce4c51a0ba4fc07580ea7",
+ "sha256:e05882b70b87a18d937ca6768ff33cc3f72847cbc4de4491c8e73880766718e5",
+ "sha256:e61c0abb4c85b095a784ef23fdd4aede7a2628478e7baba7c5e3deba61070a02",
+ "sha256:e6a08c0be454c3b3beb105c0596ebdc2371fab6bb90c0c0297f4e58fd7e1012c",
+ "sha256:e9a6e0eb86070e8ccaedfbd9d38fec54864f3125ab95419970575b42af7541df",
+ "sha256:ed37bd3c3b063412f7620464a9ac1314d33100329f39799255fb8d3027da50d3",
+ "sha256:f1adfc8ac319e1a348af294106bc6a8458a0f1633cc62a1446aebc30c5fa186a",
+ "sha256:f5796e664fe802da4f57a168c85359a8fbf3eab5e55cd4e4569fbacecc903959",
+ "sha256:fc5a77d0c516700ebad189b587de289a20a78324bc54baee03dd486f0855d234",
+ "sha256:fd21f6ae3f08b41004dfb433fa895d858f3f5979e7762d052b12aef444e29afc"
],
"markers": "python_version >= '3.8'",
- "version": "==7.5.3"
+ "version": "==7.6.1"
},
"cryptography": {
"hashes": [
- "sha256:013629ae70b40af70c9a7a5db40abe5d9054e6f4380e50ce769947b73bf3caad",
- "sha256:2346b911eb349ab547076f47f2e035fc8ff2c02380a7cbbf8d87114fa0f1c583",
- "sha256:2f66d9cd9147ee495a8374a45ca445819f8929a3efcd2e3df6428e46c3cbb10b",
- "sha256:2f88d197e66c65be5e42cd72e5c18afbfae3f741742070e3019ac8f4ac57262c",
- "sha256:31f721658a29331f895a5a54e7e82075554ccfb8b163a18719d342f5ffe5ecb1",
- "sha256:343728aac38decfdeecf55ecab3264b015be68fc2816ca800db649607aeee648",
- "sha256:5226d5d21ab681f432a9c1cf8b658c0cb02533eece706b155e5fbd8a0cdd3949",
- "sha256:57080dee41209e556a9a4ce60d229244f7a66ef52750f813bfbe18959770cfba",
- "sha256:5a94eccb2a81a309806027e1670a358b99b8fe8bfe9f8d329f27d72c094dde8c",
- "sha256:6b7c4f03ce01afd3b76cf69a5455caa9cfa3de8c8f493e0d3ab7d20611c8dae9",
- "sha256:7016f837e15b0a1c119d27ecd89b3515f01f90a8615ed5e9427e30d9cdbfed3d",
- "sha256:81884c4d096c272f00aeb1f11cf62ccd39763581645b0812e99a91505fa48e0c",
- "sha256:81d8a521705787afe7a18d5bfb47ea9d9cc068206270aad0b96a725022e18d2e",
- "sha256:8d09d05439ce7baa8e9e95b07ec5b6c886f548deb7e0f69ef25f64b3bce842f2",
- "sha256:961e61cefdcb06e0c6d7e3a1b22ebe8b996eb2bf50614e89384be54c48c6b63d",
- "sha256:9c0c1716c8447ee7dbf08d6db2e5c41c688544c61074b54fc4564196f55c25a7",
- "sha256:a0608251135d0e03111152e41f0cc2392d1e74e35703960d4190b2e0f4ca9c70",
- "sha256:a0c5b2b0585b6af82d7e385f55a8bc568abff8923af147ee3c07bd8b42cda8b2",
- "sha256:ad803773e9df0b92e0a817d22fd8a3675493f690b96130a5e24f1b8fabbea9c7",
- "sha256:b297f90c5723d04bcc8265fc2a0f86d4ea2e0f7ab4b6994459548d3a6b992a14",
- "sha256:ba4f0a211697362e89ad822e667d8d340b4d8d55fae72cdd619389fb5912eefe",
- "sha256:c4783183f7cb757b73b2ae9aed6599b96338eb957233c58ca8f49a49cc32fd5e",
- "sha256:c9bb2ae11bfbab395bdd072985abde58ea9860ed84e59dbc0463a5d0159f5b71",
- "sha256:cafb92b2bc622cd1aa6a1dce4b93307792633f4c5fe1f46c6b97cf67073ec961",
- "sha256:d45b940883a03e19e944456a558b67a41160e367a719833c53de6911cabba2b7",
- "sha256:dc0fdf6787f37b1c6b08e6dfc892d9d068b5bdb671198c72072828b80bd5fe4c",
- "sha256:dea567d1b0e8bc5764b9443858b673b734100c2871dc93163f58c46a97a83d28",
- "sha256:dec9b018df185f08483f294cae6ccac29e7a6e0678996587363dc352dc65c842",
- "sha256:e3ec3672626e1b9e55afd0df6d774ff0e953452886e06e0f1eb7eb0c832e8902",
- "sha256:e599b53fd95357d92304510fb7bda8523ed1f79ca98dce2f43c115950aa78801",
- "sha256:fa76fbb7596cc5839320000cdd5d0955313696d9511debab7ee7278fc8b5c84a",
- "sha256:fff12c88a672ab9c9c1cf7b0c80e3ad9e2ebd9d828d955c126be4fd3e5578c9e"
+ "sha256:014f58110f53237ace6a408b5beb6c427b64e084eb451ef25a28308270086494",
+ "sha256:1bbcce1a551e262dfbafb6e6252f1ae36a248e615ca44ba302df077a846a8806",
+ "sha256:203e92a75716d8cfb491dc47c79e17d0d9207ccffcbcb35f598fbe463ae3444d",
+ "sha256:27e613d7077ac613e399270253259d9d53872aaf657471473ebfc9a52935c062",
+ "sha256:2bd51274dcd59f09dd952afb696bf9c61a7a49dfc764c04dd33ef7a6b502a1e2",
+ "sha256:38926c50cff6f533f8a2dae3d7f19541432610d114a70808f0926d5aaa7121e4",
+ "sha256:511f4273808ab590912a93ddb4e3914dfd8a388fed883361b02dea3791f292e1",
+ "sha256:58d4e9129985185a06d849aa6df265bdd5a74ca6e1b736a77959b498e0505b85",
+ "sha256:5b43d1ea6b378b54a1dc99dd8a2b5be47658fe9a7ce0a58ff0b55f4b43ef2b84",
+ "sha256:61ec41068b7b74268fa86e3e9e12b9f0c21fcf65434571dbb13d954bceb08042",
+ "sha256:666ae11966643886c2987b3b721899d250855718d6d9ce41b521252a17985f4d",
+ "sha256:68aaecc4178e90719e95298515979814bda0cbada1256a4485414860bd7ab962",
+ "sha256:7c05650fe8023c5ed0d46793d4b7d7e6cd9c04e68eabe5b0aeea836e37bdcec2",
+ "sha256:80eda8b3e173f0f247f711eef62be51b599b5d425c429b5d4ca6a05e9e856baa",
+ "sha256:8385d98f6a3bf8bb2d65a73e17ed87a3ba84f6991c155691c51112075f9ffc5d",
+ "sha256:88cce104c36870d70c49c7c8fd22885875d950d9ee6ab54df2745f83ba0dc365",
+ "sha256:9d3cdb25fa98afdd3d0892d132b8d7139e2c087da1712041f6b762e4f807cc96",
+ "sha256:a575913fb06e05e6b4b814d7f7468c2c660e8bb16d8d5a1faf9b33ccc569dd47",
+ "sha256:ac119bb76b9faa00f48128b7f5679e1d8d437365c5d26f1c2c3f0da4ce1b553d",
+ "sha256:c1332724be35d23a854994ff0b66530119500b6053d0bd3363265f7e5e77288d",
+ "sha256:d03a475165f3134f773d1388aeb19c2d25ba88b6a9733c5c590b9ff7bbfa2e0c",
+ "sha256:d75601ad10b059ec832e78823b348bfa1a59f6b8d545db3a24fd44362a1564cb",
+ "sha256:de41fd81a41e53267cb020bb3a7212861da53a7d39f863585d13ea11049cf277",
+ "sha256:e710bf40870f4db63c3d7d929aa9e09e4e7ee219e703f949ec4073b4294f6172",
+ "sha256:ea25acb556320250756e53f9e20a4177515f012c9eaea17eb7587a8c4d8ae034",
+ "sha256:f98bf604c82c416bc829e490c700ca1553eafdf2912a91e23a79d97d9801372a",
+ "sha256:fba1007b3ef89946dbbb515aeeb41e30203b004f0b4b00e5e16078b518563289"
],
+ "index": "pypi",
"markers": "python_version >= '3.7'",
- "version": "==42.0.8"
+ "version": "==43.0.1"
},
"decorator": {
"hashes": [
"sha256:637996211036b6385ef91435e4fae22989472f9d571faba8927ba8253acbc330",
"sha256:b8c3f85900b9dc423225913c5aace94729fe1fa9763b38939a95226f02d37186"
],
- "markers": "python_version > '3.6' and python_version < '3.11'",
+ "markers": "python_version >= '3.5'",
"version": "==5.1.1"
},
"dill": {
@@ -1869,12 +1916,12 @@
},
"django": {
"hashes": [
- "sha256:61ee4a130efb8c451ef3467c67ca99fdce400fedd768634efc86a68c18d80d30",
- "sha256:c77f926b81129493961e19c0e02188f8d07c112a1162df69bfab178ae447f94a"
+ "sha256:1ddc333a16fc139fd253035a1606bb24261951bbc3a6ca256717fa06cc41a898",
+ "sha256:6f1616c2786c408ce86ab7e10f792b8f15742f7b7b7460243929cb371e7f1dad"
],
"index": "pypi",
"markers": "python_version >= '3.8'",
- "version": "==4.2.15"
+ "version": "==4.2.16"
},
"django-debug-toolbar": {
"hashes": [
@@ -1918,11 +1965,11 @@
},
"exceptiongroup": {
"hashes": [
- "sha256:5258b9ed329c5bbdd31a309f53cbfb0b155341807f6ff7606a1e801a891b29ad",
- "sha256:a4785e48b045528f5bfe627b6ad554ff32def154f42372786903b7abcfe1aa16"
+ "sha256:3111b9d131c238bec2f8f516e123e14ba243563fb135d3fe885990585aa7795b",
+ "sha256:47c2edf7c6738fafb49fd34290706d1a1a2f4d1c6df275526b62cbb4aa5393cc"
],
"markers": "python_version < '3.11'",
- "version": "==1.2.1"
+ "version": "==1.2.2"
},
"execnet": {
"hashes": [
@@ -1934,11 +1981,11 @@
},
"executing": {
"hashes": [
- "sha256:35afe2ce3affba8ee97f2d69927fa823b08b472b7b994e36a52a964b93d16147",
- "sha256:eac49ca94516ccc753f9fb5ce82603156e590b27525a8bc32cce8ae302eb61bc"
+ "sha256:8d63781349375b5ebccc3142f4b30350c0cd9c79f921cde38be2be4637e98eaf",
+ "sha256:8ea27ddd260da8150fa5a708269c4a10e76161e2496ec3e587da9e3c0fe4b9ab"
],
- "markers": "python_version >= '3.5'",
- "version": "==2.0.1"
+ "markers": "python_version >= '3.8'",
+ "version": "==2.1.0"
},
"faker": {
"hashes": [
@@ -1999,7 +2046,7 @@
"sha256:03a46bcf682256c95b5fd9e9a99c1323584c3eec6440d379b9903d709476bc6d",
"sha256:a83aca08fbe7aacb79fec788c9c0bac936343560ed9ec18b82a13a12c28d2abb"
],
- "markers": "python_version >= '3.6.0'",
+ "markers": "python_full_version >= '3.6.0'",
"version": "==4.1.0"
},
"hpack": {
@@ -2015,16 +2062,16 @@
"sha256:0ec6bafd80d8ad2195c4f03aacba3a8265e57bc4cff261e802bf39970ed02a15",
"sha256:ae510046231dc8e9ecb1a6586f63d2347bf4c8905914aa84ba585ae85f28a914"
],
- "markers": "python_version >= '3.6.0'",
+ "markers": "python_full_version >= '3.6.0'",
"version": "==6.0.1"
},
"idna": {
"hashes": [
- "sha256:028ff3aadf0609c1fd278d8ea3089299412a7a8b9bd005dd08b9f8285bcb5cfc",
- "sha256:82fee1fc78add43492d3a1898bfa6d8a904cc97d8427f683ed8e798d07761aa0"
+ "sha256:12f65c9b470abda6dc35cf8e63cc574b1c52b11df2c86030af0ac09b01b13ea9",
+ "sha256:946d195a0d259cbba61165e88e65941f16e9b36ea6ddb97f00452bae8b1287d3"
],
- "markers": "python_version >= '3.5'",
- "version": "==3.7"
+ "markers": "python_version >= '3.6'",
+ "version": "==3.10"
},
"ipdb": {
"hashes": [
@@ -2235,11 +2282,11 @@
},
"more-itertools": {
"hashes": [
- "sha256:e5d93ef411224fbcef366a6e8ddc4c5781bc6359d43412a65dd5964e46111463",
- "sha256:ea6a02e24a9161e51faad17a8782b92a0df82c12c1c8886fec7f0c3fa1a1b320"
+ "sha256:037b0d3203ce90cca8ab1defbbdac29d5f993fc20131f3664dc8d6acfa872aef",
+ "sha256:5482bfef7849c25dc3c6dd53a6173ae4795da2a41a80faea6700d9f5846c5da6"
],
"markers": "python_version >= '3.8'",
- "version": "==10.3.0"
+ "version": "==10.5.0"
},
"moto": {
"extras": [
@@ -2285,11 +2332,11 @@
},
"parse-type": {
"hashes": [
- "sha256:06d39a8b70fde873eb2a131141a0e79bb34a432941fb3d66fad247abafc9766c",
- "sha256:79b1f2497060d0928bc46016793f1fca1057c4aacdf15ef876aa48d75a73a355"
+ "sha256:8d94a52e0197fbad63fee8f70df16e6ed689e5e4f105b705c9afa7a30397a5aa",
+ "sha256:8e99d2f52fab2f0f1f3d68ba9d026060140bf0e53680aada0111fb27b2f0e93a"
],
- "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1'",
- "version": "==0.6.2"
+ "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'",
+ "version": "==0.6.3"
},
"parso": {
"hashes": [
@@ -2309,11 +2356,11 @@
},
"pbr": {
"hashes": [
- "sha256:4a7317d5e3b17a3dccb6a8cfe67dab65b20551404c52c8ed41279fa4f0cb4cda",
- "sha256:d1377122a5a00e2f940ee482999518efe16d745d423a670c27773dfbc3c9a7d9"
+ "sha256:788183e382e3d1d7707db08978239965e8b9e4e5ed42669bf4758186734d5f24",
+ "sha256:a776ae228892d8013649c0aeccbb3d5f99ee15e005a4cbb7e61d55a067b28a2a"
],
"markers": "python_version >= '2.6'",
- "version": "==6.0.0"
+ "version": "==6.1.0"
},
"pep8-naming": {
"hashes": [
@@ -2339,11 +2386,11 @@
},
"platformdirs": {
"hashes": [
- "sha256:2d7a1657e36a80ea911db832a8a6ece5ee53d8de21edd5cc5879af6530b1bfee",
- "sha256:38b7b51f512eed9e84a22788b4bce1de17c0adb134d6becb09836e37d8654cd3"
+ "sha256:357fb2acbc885b0419afd3ce3ed34564c13c9b95c89360cd9563f73aa5e2b907",
+ "sha256:73e575e1408ab8103900836b97580d5307456908a03e92031bab39e4554cc3fb"
],
"markers": "python_version >= '3.8'",
- "version": "==4.2.2"
+ "version": "==4.3.6"
},
"pluggy": {
"hashes": [
@@ -2367,7 +2414,7 @@
"sha256:cc8f09e79bdd32247edddf05b666940e88ad96338a84f5717b1e8c0678337821"
],
"index": "pypi",
- "markers": "python_full_version >= '3.7.2' and python_version < '4.0'",
+ "markers": "python_version < '4.0' and python_full_version >= '3.7.2'",
"version": "==1.10.2"
},
"ptyprocess": {
@@ -2379,10 +2426,10 @@
},
"pure-eval": {
"hashes": [
- "sha256:01eaab343580944bc56080ebe0a674b39ec44a945e6d09ba7db3cb8cec289350",
- "sha256:2b45320af6dfaa1750f543d714b6d1c520a1688dec6fd24d339063ce0aaa9ac3"
+ "sha256:1db8e35b67b3d218d818ae653e27f06c3aa420901fa7b081ca98cbedc874e0d0",
+ "sha256:5f4e983f40564c576c7c8635ae88db5956bb2229d7e9237d03b3c0b0190eaf42"
],
- "version": "==0.2.2"
+ "version": "==0.2.3"
},
"py": {
"hashes": [
@@ -2401,11 +2448,11 @@
},
"pyasn1": {
"hashes": [
- "sha256:3a35ab2c4b5ef98e17dfdec8ab074046fbda76e281c5a706ccd82328cfc8f64c",
- "sha256:cca4bb0f2df5504f02f6f8a775b6e416ff9b0b3b16f7ee80b5a3153d9b804473"
+ "sha256:0d632f46f2ba09143da3a8afe9e33fb6f92fa2320ab7e886e2d0f7672af84629",
+ "sha256:6f580d2bdd84365380830acf45550f2511469f673cb4a5ae3857a3170128b034"
],
"markers": "python_version >= '3.8'",
- "version": "==0.6.0"
+ "version": "==0.6.1"
},
"pycodestyle": {
"hashes": [
@@ -2489,19 +2536,19 @@
},
"pyopenssl": {
"hashes": [
- "sha256:17ed5be5936449c5418d1cd269a1a9e9081bc54c17aed272b45856a3d3dc86ad",
- "sha256:cabed4bfaa5df9f1a16c0ef64a0cb65318b5cd077a7eda7d6970131ca2f41a6f"
+ "sha256:4247f0dbe3748d560dcbb2ff3ea01af0f9a1a001ef5f7c4c647956ed8cbf0e95",
+ "sha256:967d5719b12b243588573f39b0c677637145c7a1ffedcd495a487e58177fbb8d"
],
"markers": "python_version >= '3.7'",
- "version": "==24.1.0"
+ "version": "==24.2.1"
},
"pyparsing": {
"hashes": [
- "sha256:a1bac0ce561155ecc3ed78ca94d3c9378656ad4c94c1270de543f621420f94ad",
- "sha256:f9db75911801ed778fe61bb643079ff86601aca99fcae6345aa67292038fb742"
+ "sha256:a6a7ee4235a3f944aa1fa2249307708f893fe5717dc603503c6c7969c070fb7c",
+ "sha256:f86ec8d1a83f11977c9a6ea7598e8c27fc5cddfa5b07ea2241edbbde1d7bc032"
],
"markers": "python_full_version >= '3.6.8'",
- "version": "==3.1.2"
+ "version": "==3.1.4"
},
"pysocks": {
"hashes": [
@@ -2618,7 +2665,7 @@
"sha256:37dd54208da7e1cd875388217d5e00ebd4179249f90fb72437e91a35459a0ad3",
"sha256:a8b2bc7bffae282281c8140a97d3aa9c14da0b136dfe83f850eea9a5f7470427"
],
- "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2'",
+ "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'",
"version": "==2.9.0.post0"
},
"python-dotenv": {
@@ -2641,60 +2688,62 @@
},
"pyyaml": {
"hashes": [
- "sha256:04ac92ad1925b2cff1db0cfebffb6ffc43457495c9b3c39d3fcae417d7125dc5",
- "sha256:062582fca9fabdd2c8b54a3ef1c978d786e0f6b3a1510e0ac93ef59e0ddae2bc",
- "sha256:0d3304d8c0adc42be59c5f8a4d9e3d7379e6955ad754aa9d6ab7a398b59dd1df",
- "sha256:1635fd110e8d85d55237ab316b5b011de701ea0f29d07611174a1b42f1444741",
- "sha256:184c5108a2aca3c5b3d3bf9395d50893a7ab82a38004c8f61c258d4428e80206",
- "sha256:18aeb1bf9a78867dc38b259769503436b7c72f7a1f1f4c93ff9a17de54319b27",
- "sha256:1d4c7e777c441b20e32f52bd377e0c409713e8bb1386e1099c2415f26e479595",
- "sha256:1e2722cc9fbb45d9b87631ac70924c11d3a401b2d7f410cc0e3bbf249f2dca62",
- "sha256:1fe35611261b29bd1de0070f0b2f47cb6ff71fa6595c077e42bd0c419fa27b98",
- "sha256:28c119d996beec18c05208a8bd78cbe4007878c6dd15091efb73a30e90539696",
- "sha256:326c013efe8048858a6d312ddd31d56e468118ad4cdeda36c719bf5bb6192290",
- "sha256:40df9b996c2b73138957fe23a16a4f0ba614f4c0efce1e9406a184b6d07fa3a9",
- "sha256:42f8152b8dbc4fe7d96729ec2b99c7097d656dc1213a3229ca5383f973a5ed6d",
- "sha256:49a183be227561de579b4a36efbb21b3eab9651dd81b1858589f796549873dd6",
- "sha256:4fb147e7a67ef577a588a0e2c17b6db51dda102c71de36f8549b6816a96e1867",
- "sha256:50550eb667afee136e9a77d6dc71ae76a44df8b3e51e41b77f6de2932bfe0f47",
- "sha256:510c9deebc5c0225e8c96813043e62b680ba2f9c50a08d3724c7f28a747d1486",
- "sha256:5773183b6446b2c99bb77e77595dd486303b4faab2b086e7b17bc6bef28865f6",
- "sha256:596106435fa6ad000c2991a98fa58eeb8656ef2325d7e158344fb33864ed87e3",
- "sha256:6965a7bc3cf88e5a1c3bd2e0b5c22f8d677dc88a455344035f03399034eb3007",
- "sha256:69b023b2b4daa7548bcfbd4aa3da05b3a74b772db9e23b982788168117739938",
- "sha256:6c22bec3fbe2524cde73d7ada88f6566758a8f7227bfbf93a408a9d86bcc12a0",
- "sha256:704219a11b772aea0d8ecd7058d0082713c3562b4e271b849ad7dc4a5c90c13c",
- "sha256:7e07cbde391ba96ab58e532ff4803f79c4129397514e1413a7dc761ccd755735",
- "sha256:81e0b275a9ecc9c0c0c07b4b90ba548307583c125f54d5b6946cfee6360c733d",
- "sha256:855fb52b0dc35af121542a76b9a84f8d1cd886ea97c84703eaa6d88e37a2ad28",
- "sha256:8d4e9c88387b0f5c7d5f281e55304de64cf7f9c0021a3525bd3b1c542da3b0e4",
- "sha256:9046c58c4395dff28dd494285c82ba00b546adfc7ef001486fbf0324bc174fba",
- "sha256:9eb6caa9a297fc2c2fb8862bc5370d0303ddba53ba97e71f08023b6cd73d16a8",
- "sha256:a08c6f0fe150303c1c6b71ebcd7213c2858041a7e01975da3a99aed1e7a378ef",
- "sha256:a0cd17c15d3bb3fa06978b4e8958dcdc6e0174ccea823003a106c7d4d7899ac5",
- "sha256:afd7e57eddb1a54f0f1a974bc4391af8bcce0b444685d936840f125cf046d5bd",
- "sha256:b1275ad35a5d18c62a7220633c913e1b42d44b46ee12554e5fd39c70a243d6a3",
- "sha256:b786eecbdf8499b9ca1d697215862083bd6d2a99965554781d0d8d1ad31e13a0",
- "sha256:ba336e390cd8e4d1739f42dfe9bb83a3cc2e80f567d8805e11b46f4a943f5515",
- "sha256:baa90d3f661d43131ca170712d903e6295d1f7a0f595074f151c0aed377c9b9c",
- "sha256:bc1bf2925a1ecd43da378f4db9e4f799775d6367bdb94671027b73b393a7c42c",
- "sha256:bd4af7373a854424dabd882decdc5579653d7868b8fb26dc7d0e99f823aa5924",
- "sha256:bf07ee2fef7014951eeb99f56f39c9bb4af143d8aa3c21b1677805985307da34",
- "sha256:bfdf460b1736c775f2ba9f6a92bca30bc2095067b8a9d77876d1fad6cc3b4a43",
- "sha256:c8098ddcc2a85b61647b2590f825f3db38891662cfc2fc776415143f599bb859",
- "sha256:d2b04aac4d386b172d5b9692e2d2da8de7bfb6c387fa4f801fbf6fb2e6ba4673",
- "sha256:d483d2cdf104e7c9fa60c544d92981f12ad66a457afae824d146093b8c294c54",
- "sha256:d858aa552c999bc8a8d57426ed01e40bef403cd8ccdd0fc5f6f04a00414cac2a",
- "sha256:e7d73685e87afe9f3b36c799222440d6cf362062f78be1013661b00c5c6f678b",
- "sha256:f003ed9ad21d6a4713f0a9b5a7a0a79e08dd0f221aff4525a2be4c346ee60aab",
- "sha256:f22ac1c3cac4dbc50079e965eba2c1058622631e526bd9afd45fedd49ba781fa",
- "sha256:faca3bdcf85b2fc05d06ff3fbc1f83e1391b3e724afa3feba7d13eeab355484c",
- "sha256:fca0e3a251908a499833aa292323f32437106001d436eca0e6e7833256674585",
- "sha256:fd1592b3fdf65fff2ad0004b5e363300ef59ced41c2e6b3a99d4089fa8c5435d",
- "sha256:fd66fc5d0da6d9815ba2cebeb4205f95818ff4b79c3ebe268e75d961704af52f"
+ "sha256:01179a4a8559ab5de078078f37e5c1a30d76bb88519906844fd7bdea1b7729ff",
+ "sha256:0833f8694549e586547b576dcfaba4a6b55b9e96098b36cdc7ebefe667dfed48",
+ "sha256:0a9a2848a5b7feac301353437eb7d5957887edbf81d56e903999a75a3d743086",
+ "sha256:0b69e4ce7a131fe56b7e4d770c67429700908fc0752af059838b1cfb41960e4e",
+ "sha256:0ffe8360bab4910ef1b9e87fb812d8bc0a308b0d0eef8c8f44e0254ab3b07133",
+ "sha256:11d8f3dd2b9c1207dcaf2ee0bbbfd5991f571186ec9cc78427ba5bd32afae4b5",
+ "sha256:17e311b6c678207928d649faa7cb0d7b4c26a0ba73d41e99c4fff6b6c3276484",
+ "sha256:1e2120ef853f59c7419231f3bf4e7021f1b936f6ebd222406c3b60212205d2ee",
+ "sha256:1f71ea527786de97d1a0cc0eacd1defc0985dcf6b3f17bb77dcfc8c34bec4dc5",
+ "sha256:23502f431948090f597378482b4812b0caae32c22213aecf3b55325e049a6c68",
+ "sha256:24471b829b3bf607e04e88d79542a9d48bb037c2267d7927a874e6c205ca7e9a",
+ "sha256:29717114e51c84ddfba879543fb232a6ed60086602313ca38cce623c1d62cfbf",
+ "sha256:2e99c6826ffa974fe6e27cdb5ed0021786b03fc98e5ee3c5bfe1fd5015f42b99",
+ "sha256:39693e1f8320ae4f43943590b49779ffb98acb81f788220ea932a6b6c51004d8",
+ "sha256:3ad2a3decf9aaba3d29c8f537ac4b243e36bef957511b4766cb0057d32b0be85",
+ "sha256:3b1fdb9dc17f5a7677423d508ab4f243a726dea51fa5e70992e59a7411c89d19",
+ "sha256:41e4e3953a79407c794916fa277a82531dd93aad34e29c2a514c2c0c5fe971cc",
+ "sha256:43fa96a3ca0d6b1812e01ced1044a003533c47f6ee8aca31724f78e93ccc089a",
+ "sha256:50187695423ffe49e2deacb8cd10510bc361faac997de9efef88badc3bb9e2d1",
+ "sha256:5ac9328ec4831237bec75defaf839f7d4564be1e6b25ac710bd1a96321cc8317",
+ "sha256:5d225db5a45f21e78dd9358e58a98702a0302f2659a3c6cd320564b75b86f47c",
+ "sha256:6395c297d42274772abc367baaa79683958044e5d3835486c16da75d2a694631",
+ "sha256:688ba32a1cffef67fd2e9398a2efebaea461578b0923624778664cc1c914db5d",
+ "sha256:68ccc6023a3400877818152ad9a1033e3db8625d899c72eacb5a668902e4d652",
+ "sha256:70b189594dbe54f75ab3a1acec5f1e3faa7e8cf2f1e08d9b561cb41b845f69d5",
+ "sha256:797b4f722ffa07cc8d62053e4cff1486fa6dc094105d13fea7b1de7d8bf71c9e",
+ "sha256:7c36280e6fb8385e520936c3cb3b8042851904eba0e58d277dca80a5cfed590b",
+ "sha256:7e7401d0de89a9a855c839bc697c079a4af81cf878373abd7dc625847d25cbd8",
+ "sha256:80bab7bfc629882493af4aa31a4cfa43a4c57c83813253626916b8c7ada83476",
+ "sha256:82d09873e40955485746739bcb8b4586983670466c23382c19cffecbf1fd8706",
+ "sha256:8388ee1976c416731879ac16da0aff3f63b286ffdd57cdeb95f3f2e085687563",
+ "sha256:8824b5a04a04a047e72eea5cec3bc266db09e35de6bdfe34c9436ac5ee27d237",
+ "sha256:8b9c7197f7cb2738065c481a0461e50ad02f18c78cd75775628afb4d7137fb3b",
+ "sha256:9056c1ecd25795207ad294bcf39f2db3d845767be0ea6e6a34d856f006006083",
+ "sha256:936d68689298c36b53b29f23c6dbb74de12b4ac12ca6cfe0e047bedceea56180",
+ "sha256:9b22676e8097e9e22e36d6b7bda33190d0d400f345f23d4065d48f4ca7ae0425",
+ "sha256:a4d3091415f010369ae4ed1fc6b79def9416358877534caf6a0fdd2146c87a3e",
+ "sha256:a8786accb172bd8afb8be14490a16625cbc387036876ab6ba70912730faf8e1f",
+ "sha256:a9f8c2e67970f13b16084e04f134610fd1d374bf477b17ec1599185cf611d725",
+ "sha256:bc2fa7c6b47d6bc618dd7fb02ef6fdedb1090ec036abab80d4681424b84c1183",
+ "sha256:c70c95198c015b85feafc136515252a261a84561b7b1d51e3384e0655ddf25ab",
+ "sha256:cc1c1159b3d456576af7a3e4d1ba7e6924cb39de8f67111c735f6fc832082774",
+ "sha256:ce826d6ef20b1bc864f0a68340c8b3287705cae2f8b4b1d932177dcc76721725",
+ "sha256:d584d9ec91ad65861cc08d42e834324ef890a082e591037abe114850ff7bbc3e",
+ "sha256:d7fded462629cfa4b685c5416b949ebad6cec74af5e2d42905d41e257e0869f5",
+ "sha256:d84a1718ee396f54f3a086ea0a66d8e552b2ab2017ef8b420e92edbc841c352d",
+ "sha256:d8e03406cac8513435335dbab54c0d385e4a49e4945d2909a581c83647ca0290",
+ "sha256:e10ce637b18caea04431ce14fabcf5c64a1c61ec9c56b071a4b7ca131ca52d44",
+ "sha256:ec031d5d2feb36d1d1a24380e4db6d43695f3748343d99434e6f5f9156aaa2ed",
+ "sha256:ef6107725bd54b262d6dedcc2af448a266975032bc85ef0172c5f059da6325b4",
+ "sha256:efdca5630322a10774e8e98e1af481aad470dd62c3170801852d752aa7a783ba",
+ "sha256:f753120cb8181e736c57ef7636e83f31b9c0d1722c516f7e86cf15b7aa57ff12",
+ "sha256:ff3824dc5261f50c9b0dfb3be22b4567a6f938ccce4587b38952d85fd9e9afe4"
],
- "markers": "python_version >= '3.6'",
- "version": "==6.0.1"
+ "markers": "python_version >= '3.8'",
+ "version": "==6.0.2"
},
"requests": {
"extras": [
@@ -2735,11 +2784,11 @@
},
"rich": {
"hashes": [
- "sha256:4edbae314f59eb482f54e9e30bf00d33350aaa94f4bfcd4e9e3110e64d0d7222",
- "sha256:9be308cb1fe2f1f57d67ce99e95af38a1e2bc71ad9813b0e247cf7ffbcc3a432"
+ "sha256:1760a3c0848469b97b558fc61c85233e3dafb69c7a071b4d60c38099d3cd4c06",
+ "sha256:8260cda28e3db6bf04d2d1ef4dbc03ba80a824c88b0e7668a0f23126a424844a"
],
"markers": "python_full_version >= '3.7.0'",
- "version": "==13.7.1"
+ "version": "==13.8.1"
},
"s3transfer": {
"hashes": [
@@ -2793,19 +2842,19 @@
},
"setuptools": {
"hashes": [
- "sha256:d0b9a8433464d5800cbe05094acf5c6d52a91bfac9b52bcfc4d41382be5d5d31",
- "sha256:e197a19aa8ec9722928f2206f8de752def0e4c9fc6953527360d1c36d94ddb2f"
+ "sha256:54faa7f2e8d2d11bcd2c07bed282eef1046b5c080d1c32add737d7b5817b1ad4",
+ "sha256:f211a66637b8fa059bb28183da127d4e86396c991a942b028c6650d4319c3fd0"
],
"index": "pypi",
- "markers": "python_version >= '3.7'",
- "version": "==65.5.1"
+ "markers": "python_version >= '3.8'",
+ "version": "==70.0.0"
},
"six": {
"hashes": [
"sha256:1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926",
"sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254"
],
- "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2'",
+ "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'",
"version": "==1.16.0"
},
"smmap": {
@@ -2840,11 +2889,11 @@
},
"sqlparse": {
"hashes": [
- "sha256:714d0a4932c059d16189f58ef5411ec2287a4360f17cdd0edd2d09d4c5087c93",
- "sha256:c204494cd97479d0e39f28c93d46c0b2d5959c7b9ab904762ea6c7af211c8663"
+ "sha256:773dcbf9a5ab44a090f3441e2180efe2560220203dc2f8c0b0fa141e18b505e4",
+ "sha256:bb6b4df465655ef332548e24f08e205afc81b9ab86cb1c45657a7ff173a3a00e"
],
"markers": "python_version >= '3.8'",
- "version": "==0.5.0"
+ "version": "==0.5.1"
},
"stack-data": {
"hashes": [
@@ -2855,11 +2904,11 @@
},
"stevedore": {
"hashes": [
- "sha256:1c15d95766ca0569cad14cb6272d4d31dae66b011a929d7c18219c176ea1b5c9",
- "sha256:46b93ca40e1114cea93d738a6c1e365396981bb6bb78c27045b7587c9473544d"
+ "sha256:1efd34ca08f474dad08d9b19e934a22c68bb6fe416926479ba29e5013bcc8f78",
+ "sha256:9a64265f4060312828151c204efbe9b7a9852a0d9228756344dbc7e4023e375a"
],
"markers": "python_version >= '3.8'",
- "version": "==5.2.0"
+ "version": "==5.3.0"
},
"text-unidecode": {
"hashes": [
@@ -2873,7 +2922,7 @@
"sha256:806143ae5bfb6a3c6e736a764057db0e6a0e05e338b5630894a5f779cabb4f9b",
"sha256:b3bda1d108d5dd99f4a20d24d9c348e91c4db7ab1b749200bded2f839ccbe68f"
],
- "markers": "python_version >= '2.6' and python_version not in '3.0, 3.1, 3.2'",
+ "markers": "python_version >= '2.6' and python_version not in '3.0, 3.1, 3.2, 3.3'",
"version": "==0.10.2"
},
"tomli": {
@@ -2886,11 +2935,11 @@
},
"tomlkit": {
"hashes": [
- "sha256:af914f5a9c59ed9d0762c7b64d3b5d5df007448eb9cd2edc8a46b1eafead172f",
- "sha256:eef34fba39834d4d6b73c9ba7f3e4d1c417a4e56f89a7e96e090dd0d24b8fb3c"
+ "sha256:7a974427f6e119197f670fbbbeae7bef749a6c14e793db934baefc1b5f03efde",
+ "sha256:fff5fe59a87295b278abd31bec92c15d9bc4a06885ab12bcea52c71119392e79"
],
- "markers": "python_version >= '3.7'",
- "version": "==0.12.5"
+ "markers": "python_version >= '3.8'",
+ "version": "==0.13.2"
},
"traitlets": {
"hashes": [
@@ -2902,11 +2951,11 @@
},
"trio": {
"hashes": [
- "sha256:9f5314f014ea3af489e77b001861c535005c3858d38ec46b6b071ebfa339d7fb",
- "sha256:e42617ba091e7b2e50c899052e83a3c403101841de925187f61e7b7eaebdf3fb"
+ "sha256:0346c3852c15e5c7d40ea15972c4805689ef2cb8b5206f794c9c19450119f3a4",
+ "sha256:c5237e8133eb0a1d72f09a971a55c28ebe69e351c783fc64bc37db8db8bbe1d0"
],
"markers": "python_version >= '3.8'",
- "version": "==0.25.1"
+ "version": "==0.26.2"
},
"trio-websocket": {
"hashes": [
@@ -2921,16 +2970,16 @@
"sha256:04e5ca0351e0f3f85c6853954072df659d0d13fac324d0072316b67d7794700d",
"sha256:1a7ead55c7e559dd4dee8856e3a88b41225abfe1ce8df57b7c13915fe121ffb8"
],
- "markers": "python_version < '3.11'",
+ "markers": "python_version < '3.10'",
"version": "==4.12.2"
},
"urllib3": {
"hashes": [
- "sha256:37a0344459b199fce0e80b0d3569837ec6b6937435c5244e7fd73fa6006830f3",
- "sha256:3e3d753a8618b86d7de333b4223005f68720bcd6a7d2bcb9fbd2229ec7c1e429"
+ "sha256:0ed14ccfbf1c30a9072c7ca157e4319b70d65f623e91e7b32fadb2853431016e",
+ "sha256:40c2dc0c681e47eb8f90e7e27bf6ff7df2e677421fd46756da1161c39ca70d32"
],
- "markers": "python_version >= '3.6'",
- "version": "==1.26.19"
+ "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4, 3.5'",
+ "version": "==1.26.20"
},
"wcwidth": {
"hashes": [
@@ -2941,20 +2990,20 @@
},
"webdriver-manager": {
"hashes": [
- "sha256:25ec177c6a2ce9c02fb8046f1b2732701a9418d6a977967bb065d840a3175d87",
- "sha256:d7970052295bb9cda2c1a24cf0b872dd2c41ababcc78f7b6b8dc37a41e979a7e"
+ "sha256:75908d92ecc45ff2b9953614459c633db8f9aa1ff30181cefe8696e312908129",
+ "sha256:efedf428f92fd6d5c924a0d054e6d1322dd77aab790e834ee767af392b35590f"
],
"index": "pypi",
"markers": "python_version >= '3.7'",
- "version": "==4.0.1"
+ "version": "==4.0.2"
},
"werkzeug": {
"hashes": [
- "sha256:097e5bfda9f0aba8da6b8545146def481d06aa7d3266e7448e2cccf67dd8bd18",
- "sha256:fc9645dc43e03e4d630d23143a04a7f947a9a3b5727cd535fdfe155a17cc48c8"
+ "sha256:02c9eb92b7d6c06f31a782811505d2157837cea66aaede3e217c7c27c039476c",
+ "sha256:34f2371506b250df4d4f84bfe7b0921e4762525762bbd936614909fe25cd7306"
],
"markers": "python_version >= '3.8'",
- "version": "==3.0.3"
+ "version": "==3.0.4"
},
"wrapt": {
"hashes": [
@@ -3050,55 +3099,106 @@
},
"zstandard": {
"hashes": [
- "sha256:11f0d1aab9516a497137b41e3d3ed4bbf7b2ee2abc79e5c8b010ad286d7464bd",
- "sha256:1958100b8a1cc3f27fa21071a55cb2ed32e9e5df4c3c6e661c193437f171cba2",
- "sha256:1a90ba9a4c9c884bb876a14be2b1d216609385efb180393df40e5172e7ecf356",
- "sha256:1d43501f5f31e22baf822720d82b5547f8a08f5386a883b32584a185675c8fbf",
- "sha256:23d2b3c2b8e7e5a6cb7922f7c27d73a9a615f0a5ab5d0e03dd533c477de23004",
- "sha256:2612e9bb4977381184bb2463150336d0f7e014d6bb5d4a370f9a372d21916f69",
- "sha256:275df437ab03f8c033b8a2c181e51716c32d831082d93ce48002a5227ec93019",
- "sha256:2ac9957bc6d2403c4772c890916bf181b2653640da98f32e04b96e4d6fb3252a",
- "sha256:2b11ea433db22e720758cba584c9d661077121fcf60ab43351950ded20283440",
- "sha256:2fdd53b806786bd6112d97c1f1e7841e5e4daa06810ab4b284026a1a0e484c0b",
- "sha256:33591d59f4956c9812f8063eff2e2c0065bc02050837f152574069f5f9f17775",
- "sha256:36a47636c3de227cd765e25a21dc5dace00539b82ddd99ee36abae38178eff9e",
- "sha256:39b2853efc9403927f9065cc48c9980649462acbdf81cd4f0cb773af2fd734bc",
- "sha256:3db41c5e49ef73641d5111554e1d1d3af106410a6c1fb52cf68912ba7a343a0d",
- "sha256:445b47bc32de69d990ad0f34da0e20f535914623d1e506e74d6bc5c9dc40bb09",
- "sha256:466e6ad8caefb589ed281c076deb6f0cd330e8bc13c5035854ffb9c2014b118c",
- "sha256:48f260e4c7294ef275744210a4010f116048e0c95857befb7462e033f09442fe",
- "sha256:4ac59d5d6910b220141c1737b79d4a5aa9e57466e7469a012ed42ce2d3995e88",
- "sha256:53866a9d8ab363271c9e80c7c2e9441814961d47f88c9bc3b248142c32141d94",
- "sha256:589402548251056878d2e7c8859286eb91bd841af117dbe4ab000e6450987e08",
- "sha256:68953dc84b244b053c0d5f137a21ae8287ecf51b20872eccf8eaac0302d3e3b0",
- "sha256:6c25b8eb733d4e741246151d895dd0308137532737f337411160ff69ca24f93a",
- "sha256:7034d381789f45576ec3f1fa0e15d741828146439228dc3f7c59856c5bcd3292",
- "sha256:73a1d6bd01961e9fd447162e137ed949c01bdb830dfca487c4a14e9742dccc93",
- "sha256:8226a33c542bcb54cd6bd0a366067b610b41713b64c9abec1bc4533d69f51e70",
- "sha256:888196c9c8893a1e8ff5e89b8f894e7f4f0e64a5af4d8f3c410f0319128bb2f8",
- "sha256:88c5b4b47a8a138338a07fc94e2ba3b1535f69247670abfe422de4e0b344aae2",
- "sha256:8a1b2effa96a5f019e72874969394edd393e2fbd6414a8208fea363a22803b45",
- "sha256:93e1856c8313bc688d5df069e106a4bc962eef3d13372020cc6e3ebf5e045202",
- "sha256:9501f36fac6b875c124243a379267d879262480bf85b1dbda61f5ad4d01b75a3",
- "sha256:959665072bd60f45c5b6b5d711f15bdefc9849dd5da9fb6c873e35f5d34d8cfb",
- "sha256:a1d67d0d53d2a138f9e29d8acdabe11310c185e36f0a848efa104d4e40b808e4",
- "sha256:a493d470183ee620a3df1e6e55b3e4de8143c0ba1b16f3ded83208ea8ddfd91d",
- "sha256:a7ccf5825fd71d4542c8ab28d4d482aace885f5ebe4b40faaa290eed8e095a4c",
- "sha256:a88b7df61a292603e7cd662d92565d915796b094ffb3d206579aaebac6b85d5f",
- "sha256:a97079b955b00b732c6f280d5023e0eefe359045e8b83b08cf0333af9ec78f26",
- "sha256:d22fdef58976457c65e2796e6730a3ea4a254f3ba83777ecfc8592ff8d77d303",
- "sha256:d75f693bb4e92c335e0645e8845e553cd09dc91616412d1d4650da835b5449df",
- "sha256:d8593f8464fb64d58e8cb0b905b272d40184eac9a18d83cf8c10749c3eafcd7e",
- "sha256:d8fff0f0c1d8bc5d866762ae95bd99d53282337af1be9dc0d88506b340e74b73",
- "sha256:de20a212ef3d00d609d0b22eb7cc798d5a69035e81839f549b538eff4105d01c",
- "sha256:e9e9d4e2e336c529d4c435baad846a181e39a982f823f7e4495ec0b0ec8538d2",
- "sha256:f058a77ef0ece4e210bb0450e68408d4223f728b109764676e1a13537d056bb0",
- "sha256:f1a4b358947a65b94e2501ce3e078bbc929b039ede4679ddb0460829b12f7375",
- "sha256:f9b2cde1cd1b2a10246dbc143ba49d942d14fb3d2b4bccf4618d475c65464912",
- "sha256:fe3390c538f12437b859d815040763abc728955a52ca6ff9c5d4ac707c4ad98e"
+ "sha256:034b88913ecc1b097f528e42b539453fa82c3557e414b3de9d5632c80439a473",
+ "sha256:0a7f0804bb3799414af278e9ad51be25edf67f78f916e08afdb983e74161b916",
+ "sha256:11e3bf3c924853a2d5835b24f03eeba7fc9b07d8ca499e247e06ff5676461a15",
+ "sha256:12a289832e520c6bd4dcaad68e944b86da3bad0d339ef7989fb7e88f92e96072",
+ "sha256:1516c8c37d3a053b01c1c15b182f3b5f5eef19ced9b930b684a73bad121addf4",
+ "sha256:157e89ceb4054029a289fb504c98c6a9fe8010f1680de0201b3eb5dc20aa6d9e",
+ "sha256:1bfe8de1da6d104f15a60d4a8a768288f66aa953bbe00d027398b93fb9680b26",
+ "sha256:1e172f57cd78c20f13a3415cc8dfe24bf388614324d25539146594c16d78fcc8",
+ "sha256:1fd7e0f1cfb70eb2f95a19b472ee7ad6d9a0a992ec0ae53286870c104ca939e5",
+ "sha256:203d236f4c94cd8379d1ea61db2fce20730b4c38d7f1c34506a31b34edc87bdd",
+ "sha256:27d3ef2252d2e62476389ca8f9b0cf2bbafb082a3b6bfe9d90cbcbb5529ecf7c",
+ "sha256:29a2bc7c1b09b0af938b7a8343174b987ae021705acabcbae560166567f5a8db",
+ "sha256:2ef230a8fd217a2015bc91b74f6b3b7d6522ba48be29ad4ea0ca3a3775bf7dd5",
+ "sha256:2ef3775758346d9ac6214123887d25c7061c92afe1f2b354f9388e9e4d48acfc",
+ "sha256:2f146f50723defec2975fb7e388ae3a024eb7151542d1599527ec2aa9cacb152",
+ "sha256:2fb4535137de7e244c230e24f9d1ec194f61721c86ebea04e1581d9d06ea1269",
+ "sha256:32ba3b5ccde2d581b1e6aa952c836a6291e8435d788f656fe5976445865ae045",
+ "sha256:34895a41273ad33347b2fc70e1bff4240556de3c46c6ea430a7ed91f9042aa4e",
+ "sha256:379b378ae694ba78cef921581ebd420c938936a153ded602c4fea612b7eaa90d",
+ "sha256:38302b78a850ff82656beaddeb0bb989a0322a8bbb1bf1ab10c17506681d772a",
+ "sha256:3aa014d55c3af933c1315eb4bb06dd0459661cc0b15cd61077afa6489bec63bb",
+ "sha256:4051e406288b8cdbb993798b9a45c59a4896b6ecee2f875424ec10276a895740",
+ "sha256:40b33d93c6eddf02d2c19f5773196068d875c41ca25730e8288e9b672897c105",
+ "sha256:43da0f0092281bf501f9c5f6f3b4c975a8a0ea82de49ba3f7100e64d422a1274",
+ "sha256:445e4cb5048b04e90ce96a79b4b63140e3f4ab5f662321975679b5f6360b90e2",
+ "sha256:48ef6a43b1846f6025dde6ed9fee0c24e1149c1c25f7fb0a0585572b2f3adc58",
+ "sha256:50a80baba0285386f97ea36239855f6020ce452456605f262b2d33ac35c7770b",
+ "sha256:519fbf169dfac1222a76ba8861ef4ac7f0530c35dd79ba5727014613f91613d4",
+ "sha256:53dd9d5e3d29f95acd5de6802e909ada8d8d8cfa37a3ac64836f3bc4bc5512db",
+ "sha256:53ea7cdc96c6eb56e76bb06894bcfb5dfa93b7adcf59d61c6b92674e24e2dd5e",
+ "sha256:576856e8594e6649aee06ddbfc738fec6a834f7c85bf7cadd1c53d4a58186ef9",
+ "sha256:59556bf80a7094d0cfb9f5e50bb2db27fefb75d5138bb16fb052b61b0e0eeeb0",
+ "sha256:5d41d5e025f1e0bccae4928981e71b2334c60f580bdc8345f824e7c0a4c2a813",
+ "sha256:61062387ad820c654b6a6b5f0b94484fa19515e0c5116faf29f41a6bc91ded6e",
+ "sha256:61f89436cbfede4bc4e91b4397eaa3e2108ebe96d05e93d6ccc95ab5714be512",
+ "sha256:62136da96a973bd2557f06ddd4e8e807f9e13cbb0bfb9cc06cfe6d98ea90dfe0",
+ "sha256:64585e1dba664dc67c7cdabd56c1e5685233fbb1fc1966cfba2a340ec0dfff7b",
+ "sha256:65308f4b4890aa12d9b6ad9f2844b7ee42c7f7a4fd3390425b242ffc57498f48",
+ "sha256:66b689c107857eceabf2cf3d3fc699c3c0fe8ccd18df2219d978c0283e4c508a",
+ "sha256:6a41c120c3dbc0d81a8e8adc73312d668cd34acd7725f036992b1b72d22c1772",
+ "sha256:6f77fa49079891a4aab203d0b1744acc85577ed16d767b52fc089d83faf8d8ed",
+ "sha256:72c68dda124a1a138340fb62fa21b9bf4848437d9ca60bd35db36f2d3345f373",
+ "sha256:752bf8a74412b9892f4e5b58f2f890a039f57037f52c89a740757ebd807f33ea",
+ "sha256:76e79bc28a65f467e0409098fa2c4376931fd3207fbeb6b956c7c476d53746dd",
+ "sha256:774d45b1fac1461f48698a9d4b5fa19a69d47ece02fa469825b442263f04021f",
+ "sha256:77da4c6bfa20dd5ea25cbf12c76f181a8e8cd7ea231c673828d0386b1740b8dc",
+ "sha256:77ea385f7dd5b5676d7fd943292ffa18fbf5c72ba98f7d09fc1fb9e819b34c23",
+ "sha256:80080816b4f52a9d886e67f1f96912891074903238fe54f2de8b786f86baded2",
+ "sha256:80a539906390591dd39ebb8d773771dc4db82ace6372c4d41e2d293f8e32b8db",
+ "sha256:82d17e94d735c99621bf8ebf9995f870a6b3e6d14543b99e201ae046dfe7de70",
+ "sha256:837bb6764be6919963ef41235fd56a6486b132ea64afe5fafb4cb279ac44f259",
+ "sha256:84433dddea68571a6d6bd4fbf8ff398236031149116a7fff6f777ff95cad3df9",
+ "sha256:8c24f21fa2af4bb9f2c492a86fe0c34e6d2c63812a839590edaf177b7398f700",
+ "sha256:8ed7d27cb56b3e058d3cf684d7200703bcae623e1dcc06ed1e18ecda39fee003",
+ "sha256:9206649ec587e6b02bd124fb7799b86cddec350f6f6c14bc82a2b70183e708ba",
+ "sha256:983b6efd649723474f29ed42e1467f90a35a74793437d0bc64a5bf482bedfa0a",
+ "sha256:98da17ce9cbf3bfe4617e836d561e433f871129e3a7ac16d6ef4c680f13a839c",
+ "sha256:9c236e635582742fee16603042553d276cca506e824fa2e6489db04039521e90",
+ "sha256:9da6bc32faac9a293ddfdcb9108d4b20416219461e4ec64dfea8383cac186690",
+ "sha256:a05e6d6218461eb1b4771d973728f0133b2a4613a6779995df557f70794fd60f",
+ "sha256:a0817825b900fcd43ac5d05b8b3079937073d2b1ff9cf89427590718b70dd840",
+ "sha256:a4ae99c57668ca1e78597d8b06d5af837f377f340f4cce993b551b2d7731778d",
+ "sha256:a8c86881813a78a6f4508ef9daf9d4995b8ac2d147dcb1a450448941398091c9",
+ "sha256:a8fffdbd9d1408006baaf02f1068d7dd1f016c6bcb7538682622c556e7b68e35",
+ "sha256:a9b07268d0c3ca5c170a385a0ab9fb7fdd9f5fd866be004c4ea39e44edce47dd",
+ "sha256:ab19a2d91963ed9e42b4e8d77cd847ae8381576585bad79dbd0a8837a9f6620a",
+ "sha256:ac184f87ff521f4840e6ea0b10c0ec90c6b1dcd0bad2f1e4a9a1b4fa177982ea",
+ "sha256:b0e166f698c5a3e914947388c162be2583e0c638a4703fc6a543e23a88dea3c1",
+ "sha256:b2170c7e0367dde86a2647ed5b6f57394ea7f53545746104c6b09fc1f4223573",
+ "sha256:b2d8c62d08e7255f68f7a740bae85b3c9b8e5466baa9cbf7f57f1cde0ac6bc09",
+ "sha256:b4567955a6bc1b20e9c31612e615af6b53733491aeaa19a6b3b37f3b65477094",
+ "sha256:b69bb4f51daf461b15e7b3db033160937d3ff88303a7bc808c67bbc1eaf98c78",
+ "sha256:b8c0bd73aeac689beacd4e7667d48c299f61b959475cdbb91e7d3d88d27c56b9",
+ "sha256:be9b5b8659dff1f913039c2feee1aca499cfbc19e98fa12bc85e037c17ec6ca5",
+ "sha256:bf0a05b6059c0528477fba9054d09179beb63744355cab9f38059548fedd46a9",
+ "sha256:c16842b846a8d2a145223f520b7e18b57c8f476924bda92aeee3a88d11cfc391",
+ "sha256:c363b53e257246a954ebc7c488304b5592b9c53fbe74d03bc1c64dda153fb847",
+ "sha256:c7c517d74bea1a6afd39aa612fa025e6b8011982a0897768a2f7c8ab4ebb78a2",
+ "sha256:d20fd853fbb5807c8e84c136c278827b6167ded66c72ec6f9a14b863d809211c",
+ "sha256:d2240ddc86b74966c34554c49d00eaafa8200a18d3a5b6ffbf7da63b11d74ee2",
+ "sha256:d477ed829077cd945b01fc3115edd132c47e6540ddcd96ca169facff28173057",
+ "sha256:d50d31bfedd53a928fed6707b15a8dbeef011bb6366297cc435accc888b27c20",
+ "sha256:dc1d33abb8a0d754ea4763bad944fd965d3d95b5baef6b121c0c9013eaf1907d",
+ "sha256:dc5d1a49d3f8262be192589a4b72f0d03b72dcf46c51ad5852a4fdc67be7b9e4",
+ "sha256:e2d1a054f8f0a191004675755448d12be47fa9bebbcffa3cdf01db19f2d30a54",
+ "sha256:e7792606d606c8df5277c32ccb58f29b9b8603bf83b48639b7aedf6df4fe8171",
+ "sha256:ed1708dbf4d2e3a1c5c69110ba2b4eb6678262028afd6c6fbcc5a8dac9cda68e",
+ "sha256:f2d4380bf5f62daabd7b751ea2339c1a21d1c9463f1feb7fc2bdcea2c29c3160",
+ "sha256:f3513916e8c645d0610815c257cbfd3242adfd5c4cfa78be514e5a3ebb42a41b",
+ "sha256:f8346bfa098532bc1fb6c7ef06783e969d87a99dd1d2a5a18a892c1d7a643c58",
+ "sha256:f83fa6cae3fff8e98691248c9320356971b59678a17f20656a9e59cd32cee6d8",
+ "sha256:fa6ce8b52c5987b3e34d5674b0ab529a4602b632ebab0a93b07bfb4dfc8f8a33",
+ "sha256:fb2b1ecfef1e67897d336de3a0e3f52478182d6a47eda86cbd42504c5cbd009a",
+ "sha256:fc9ca1c9718cb3b06634c7c8dec57d24e9438b2aa9a0f02b8bb36bf478538880",
+ "sha256:fd30d9c67d13d891f2360b2a120186729c111238ac63b43dbd37a5a40670b8ca",
+ "sha256:fd7699e8fd9969f455ef2926221e0233f81a2542921471382e77a9e2f2b57f4b",
+ "sha256:fe3b385d996ee0822fd46528d9f0443b880d4d05528fd26a9119a54ec3f91c69"
],
"markers": "python_version >= '3.8'",
- "version": "==0.22.0"
+ "version": "==0.23.0"
}
}
}
From 5933b4c2ad2400e6fe9ad2570d8de7a44df68175 Mon Sep 17 00:00:00 2001
From: "mark.j0hnst0n"
Date: Thu, 19 Sep 2024 17:05:30 +0100
Subject: [PATCH 02/19] update package.json
---
package-lock.json | 63 ++++++++++++++++++++++++-----------------------
package.json | 5 +++-
2 files changed, 36 insertions(+), 32 deletions(-)
diff --git a/package-lock.json b/package-lock.json
index 0929ce523c..f68136589f 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -16,6 +16,7 @@
"@popperjs/core": "^2.4.4",
"@tarekraafat/autocomplete.js": "^8.3.2",
"accessible-autocomplete": "^2.0.3",
+ "braces": "^3.0.3",
"concurrently": "^8.2.0",
"dotenv": "^15.0.0",
"eslint-plugin-jest": "^27.2.3",
@@ -27,6 +28,7 @@
"lightpick": "^1.6.2",
"lodash.debounce": "^4.0.8",
"mark.js": "^8.11.1",
+ "micromatch": ">=4.0.8",
"moment": "^2.29.4",
"parcel": "^2.11.0",
"sass": "^1.38.0",
@@ -34,7 +36,8 @@
"tippy.js": "^6.3.7",
"tokenfield": "^1.5.0",
"tributejs": "^5.1.3",
- "url-search-params-polyfill": "^8.1.0"
+ "url-search-params-polyfill": "^8.1.0",
+ "ws": ">=8.17.1"
},
"devDependencies": {
"@testing-library/dom": "^8.14.0",
@@ -4918,11 +4921,11 @@
}
},
"node_modules/braces": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
- "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz",
+ "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==",
"dependencies": {
- "fill-range": "^7.0.1"
+ "fill-range": "^7.1.1"
},
"engines": {
"node": ">=8"
@@ -6238,9 +6241,9 @@
}
},
"node_modules/fill-range": {
- "version": "7.0.1",
- "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
- "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
+ "version": "7.1.1",
+ "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz",
+ "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==",
"dependencies": {
"to-regex-range": "^5.0.1"
},
@@ -8668,11 +8671,11 @@
}
},
"node_modules/micromatch": {
- "version": "4.0.5",
- "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz",
- "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==",
+ "version": "4.0.8",
+ "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz",
+ "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==",
"dependencies": {
- "braces": "^3.0.2",
+ "braces": "^3.0.3",
"picomatch": "^2.3.1"
},
"engines": {
@@ -10281,10 +10284,9 @@
}
},
"node_modules/ws": {
- "version": "8.15.0",
- "resolved": "https://registry.npmjs.org/ws/-/ws-8.15.0.tgz",
- "integrity": "sha512-H/Z3H55mrcrgjFwI+5jKavgXvwQLtfPCUEp6pi35VhoB0pfcHnSoyuTzkBEZpzq49g1193CUEwIvmsjcotenYw==",
- "dev": true,
+ "version": "8.18.0",
+ "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.0.tgz",
+ "integrity": "sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==",
"engines": {
"node": ">=10.0.0"
},
@@ -13637,11 +13639,11 @@
}
},
"braces": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
- "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz",
+ "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==",
"requires": {
- "fill-range": "^7.0.1"
+ "fill-range": "^7.1.1"
}
},
"browser-process-hrtime": {
@@ -14568,9 +14570,9 @@
}
},
"fill-range": {
- "version": "7.0.1",
- "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
- "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
+ "version": "7.1.1",
+ "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz",
+ "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==",
"requires": {
"to-regex-range": "^5.0.1"
}
@@ -16310,11 +16312,11 @@
"integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg=="
},
"micromatch": {
- "version": "4.0.5",
- "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz",
- "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==",
+ "version": "4.0.8",
+ "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz",
+ "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==",
"requires": {
- "braces": "^3.0.2",
+ "braces": "^3.0.3",
"picomatch": "^2.3.1"
}
},
@@ -17494,10 +17496,9 @@
}
},
"ws": {
- "version": "8.15.0",
- "resolved": "https://registry.npmjs.org/ws/-/ws-8.15.0.tgz",
- "integrity": "sha512-H/Z3H55mrcrgjFwI+5jKavgXvwQLtfPCUEp6pi35VhoB0pfcHnSoyuTzkBEZpzq49g1193CUEwIvmsjcotenYw==",
- "dev": true,
+ "version": "8.18.0",
+ "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.0.tgz",
+ "integrity": "sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==",
"requires": {}
},
"xml-name-validator": {
diff --git a/package.json b/package.json
index e4367a76a2..da6070875d 100644
--- a/package.json
+++ b/package.json
@@ -67,7 +67,10 @@
"tippy.js": "^6.3.7",
"tokenfield": "^1.5.0",
"tributejs": "^5.1.3",
- "url-search-params-polyfill": "^8.1.0"
+ "url-search-params-polyfill": "^8.1.0",
+ "braces": "^3.0.3",
+ "micromatch": ">=4.0.8",
+ "ws": ">=8.17.1"
},
"alias": {
"core": "./core/assets/javascripts"
From 58f6832390722073a7a6518086b49d07c9250727 Mon Sep 17 00:00:00 2001
From: "mark.j0hnst0n"
Date: Thu, 19 Sep 2024 17:08:20 +0100
Subject: [PATCH 03/19] update again
---
package-lock.json | 4 ++--
package.json | 4 ++--
2 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/package-lock.json b/package-lock.json
index f68136589f..9527a6d91c 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -28,7 +28,7 @@
"lightpick": "^1.6.2",
"lodash.debounce": "^4.0.8",
"mark.js": "^8.11.1",
- "micromatch": ">=4.0.8",
+ "micromatch": "^4.0.8",
"moment": "^2.29.4",
"parcel": "^2.11.0",
"sass": "^1.38.0",
@@ -37,7 +37,7 @@
"tokenfield": "^1.5.0",
"tributejs": "^5.1.3",
"url-search-params-polyfill": "^8.1.0",
- "ws": ">=8.17.1"
+ "ws": "^8.17.1"
},
"devDependencies": {
"@testing-library/dom": "^8.14.0",
diff --git a/package.json b/package.json
index da6070875d..c61f7f5bdd 100644
--- a/package.json
+++ b/package.json
@@ -69,8 +69,8 @@
"tributejs": "^5.1.3",
"url-search-params-polyfill": "^8.1.0",
"braces": "^3.0.3",
- "micromatch": ">=4.0.8",
- "ws": ">=8.17.1"
+ "micromatch": "^4.0.8",
+ "ws": "^8.17.1"
},
"alias": {
"core": "./core/assets/javascripts"
From a63c3622ac2869f912e934b4f3746f31823e43db Mon Sep 17 00:00:00 2001
From: "mark.j0hnst0n"
Date: Thu, 19 Sep 2024 17:10:48 +0100
Subject: [PATCH 04/19] update pipfile again
---
Pipfile | 6 +++---
Pipfile.lock | 10 +++++-----
2 files changed, 8 insertions(+), 8 deletions(-)
diff --git a/Pipfile b/Pipfile
index 116739631e..90fb58277b 100644
--- a/Pipfile
+++ b/Pipfile
@@ -52,7 +52,7 @@ markdown = "~=3.4.1"
mohawk = ">=1.1.0"
munch = "~=2.5.0"
requests = {extras = ["security"], version = "~=2.21"}
-sentry-sdk = ">=2.8.0"
+sentry-sdk = "~=2.8.0"
whitenoise = "~=5.3.0"
crispy-forms-gds = "~=0.2.4"
notifications-python-client = "~=6.4.1"
@@ -63,7 +63,7 @@ deepmerge = "*"
phonenumbers = "~=8.12.57"
setuptools = "~=70.0.0"
rules="~=3.3.0"
-djangorestframework = ">=3.15.2"
+djangorestframework = "~=3.15.2"
django-chunk-upload-handlers = "~=0.0.13"
django-compressor = "~=2.4.1"
django-csp = "~=3.7"
@@ -82,7 +82,7 @@ django-extra-views = "~=0.14.0"
django = "~=4.2.15"
django-log-formatter-asim = "~=0.0.5"
dbt-copilot-python = "~=0.2.1"
-cryptography = ">=43.0.1"
+cryptography = "~=43.0.1"
[requires]
python_version = "3.9"
diff --git a/Pipfile.lock b/Pipfile.lock
index 0631368902..b28e89d323 100644
--- a/Pipfile.lock
+++ b/Pipfile.lock
@@ -1,7 +1,7 @@
{
"_meta": {
"hash": {
- "sha256": "a14e6d004e06185c2082c3867c7667fcdd687e260668488ef8b00246006ed28e"
+ "sha256": "98aacceb3a9f4ab907403528a88b284cda7704d9b47f1d0341db8fa7576f7784"
},
"pipfile-spec": 6,
"requires": {
@@ -1195,12 +1195,12 @@
},
"sentry-sdk": {
"hashes": [
- "sha256:1e0e2eaf6dad918c7d1e0edac868a7bf20017b177f242cefe2a6bcd47955961d",
- "sha256:b8bc3dc51d06590df1291b7519b85c75e2ced4f28d9ea655b6d54033503b5bf4"
+ "sha256:6051562d2cfa8087bb8b4b8b79dc44690f8a054762a29c07e22588b1f619bfb5",
+ "sha256:aa4314f877d9cd9add5a0c9ba18e3f27f99f7de835ce36bd150e48a41c7c646f"
],
"index": "pypi",
"markers": "python_version >= '3.6'",
- "version": "==2.14.0"
+ "version": "==2.8.0"
},
"setuptools": {
"hashes": [
@@ -1903,7 +1903,7 @@
"sha256:637996211036b6385ef91435e4fae22989472f9d571faba8927ba8253acbc330",
"sha256:b8c3f85900b9dc423225913c5aace94729fe1fa9763b38939a95226f02d37186"
],
- "markers": "python_version >= '3.5'",
+ "markers": "python_version < '3.11' and python_version >= '3.7'",
"version": "==5.1.1"
},
"dill": {
From 57b8d42980cab7f2d95d80d8b137bc637888ace5 Mon Sep 17 00:00:00 2001
From: Brendan Smith
Date: Mon, 16 Sep 2024 16:08:34 +0100
Subject: [PATCH 05/19] Ensure exporter frontend acts upon ALL CLEs
---
exporter/core/services.py | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/exporter/core/services.py b/exporter/core/services.py
index 97a9d6223a..9abe7b9ed7 100644
--- a/exporter/core/services.py
+++ b/exporter/core/services.py
@@ -199,11 +199,13 @@ def put_organisation_user(request, user_pk, json):
def get_control_list_entries(request, convert_to_options=False, converted_control_list_entries_cache=[]): # noqa
+ get_cles_url = "/exporter/static/control-list-entries/?include_non_selectable_for_assessment=True"
+
if convert_to_options:
if converted_control_list_entries_cache:
return converted_control_list_entries_cache
else:
- response = client.get(request, "/exporter/static/control-list-entries/")
+ response = client.get(request, get_cles_url)
for control_list_entry in response.json():
converted_control_list_entries_cache.append(
Option(
@@ -214,7 +216,7 @@ def get_control_list_entries(request, convert_to_options=False, converted_contro
)
return converted_control_list_entries_cache
- response = client.get(request, "/exporter/static/control-list-entries/")
+ response = client.get(request, get_cles_url)
return response.json()
From fee6e47d41cfe51dcd2f234c285e23b879ed374d Mon Sep 17 00:00:00 2001
From: Brendan Smith
Date: Tue, 17 Sep 2024 14:23:09 +0100
Subject: [PATCH 06/19] Remove legacy open general licences app
---
caseworker/core/context_processors.py | 10 +-
caseworker/open_general_licences/__init__.py | 0
caseworker/open_general_licences/constants.py | 3 -
caseworker/open_general_licences/enums.py | 52 ------
caseworker/open_general_licences/forms.py | 119 ------------
caseworker/open_general_licences/services.py | 52 ------
caseworker/open_general_licences/urls.py | 13 --
caseworker/open_general_licences/views.py | 172 ------------------
.../open-general-licences/index.html | 88 ---------
.../open-general-licence.html | 165 -----------------
caseworker/urls.py | 1 -
11 files changed, 1 insertion(+), 674 deletions(-)
delete mode 100644 caseworker/open_general_licences/__init__.py
delete mode 100644 caseworker/open_general_licences/constants.py
delete mode 100644 caseworker/open_general_licences/enums.py
delete mode 100644 caseworker/open_general_licences/forms.py
delete mode 100644 caseworker/open_general_licences/services.py
delete mode 100644 caseworker/open_general_licences/urls.py
delete mode 100644 caseworker/open_general_licences/views.py
delete mode 100644 caseworker/templates/open-general-licences/index.html
delete mode 100644 caseworker/templates/open-general-licences/open-general-licence.html
diff --git a/caseworker/core/context_processors.py b/caseworker/core/context_processors.py
index 369d0d9894..23ff0527f0 100644
--- a/caseworker/core/context_processors.py
+++ b/caseworker/core/context_processors.py
@@ -9,7 +9,7 @@
get_new_mention_count,
get_user_role_name,
)
-from lite_content.lite_internal_frontend import strings, open_general_licences
+from lite_content.lite_internal_frontend import strings
from lite_content.lite_internal_frontend.flags import FlagsList
from lite_content.lite_internal_frontend.organisations import OrganisationsPage
from lite_content.lite_internal_frontend.queues import QueuesList
@@ -76,14 +76,6 @@ def lite_menu(request):
{"title": QueuesList.TITLE, "url": reverse_lazy("queues:manage"), "icon": "menu/queues"},
{"title": UsersPage.TITLE, "url": reverse_lazy("users:users"), "icon": "menu/users"},
{"title": FlagsList.TITLE, "url": reverse_lazy("flags:flags"), "icon": "menu/flags"},
- conditional(
- Permission.MAINTAIN_OGL.value in permissions,
- {
- "title": open_general_licences.List.TITLE,
- "url": reverse_lazy("open_general_licences:open_general_licences"),
- "icon": "menu/open-general-licences",
- },
- ),
conditional(
Permission.CONFIGURE_TEMPLATES.value in permissions,
{
diff --git a/caseworker/open_general_licences/__init__.py b/caseworker/open_general_licences/__init__.py
deleted file mode 100644
index e69de29bb2..0000000000
diff --git a/caseworker/open_general_licences/constants.py b/caseworker/open_general_licences/constants.py
deleted file mode 100644
index 907e966a38..0000000000
--- a/caseworker/open_general_licences/constants.py
+++ /dev/null
@@ -1,3 +0,0 @@
-DETAILS = "details"
-CONTROL_LIST_ENTRIES = "control-list-entries"
-COUNTRIES = "countries"
diff --git a/caseworker/open_general_licences/enums.py b/caseworker/open_general_licences/enums.py
deleted file mode 100644
index d496c50445..0000000000
--- a/caseworker/open_general_licences/enums.py
+++ /dev/null
@@ -1,52 +0,0 @@
-from lite_content.lite_internal_frontend.open_general_licences import (
- OGEL_DESCRIPTION,
- OGTCL_DESCRIPTION,
- OGTL_DESCRIPTION,
-)
-from lite_forms.components import Option
-
-
-class OpenGeneralExportLicences:
- class OpenGeneralLicence:
- def __init__(self, id, name, description, acronym):
- self.id = id
- self.name = name
- self.description = description
- self.acronym = acronym
-
- open_general_export_licence = OpenGeneralLicence(
- "00000000-0000-0000-0000-000000000002",
- "Open General Export Licence",
- OGEL_DESCRIPTION,
- "OGEL",
- )
- open_general_trade_control_licence = OpenGeneralLicence(
- "00000000-0000-0000-0000-000000000013",
- "Open General Trade Control Licence",
- OGTCL_DESCRIPTION,
- "OGTCL",
- )
- open_general_transhipment_licence = OpenGeneralLicence(
- "00000000-0000-0000-0000-000000000014",
- "Open General Transhipment Licence",
- OGTL_DESCRIPTION,
- "OGTL",
- )
-
- @classmethod
- def all(cls):
- return [
- cls.open_general_export_licence,
- cls.open_general_trade_control_licence,
- cls.open_general_transhipment_licence,
- ]
-
- @classmethod
- def as_options(cls):
- return [
- Option(key=ogl.id, value=f"{ogl.name} ({ogl.acronym})", description=ogl.description) for ogl in cls.all()
- ]
-
- @classmethod
- def get_by_id(cls, id):
- return next(ogl for ogl in cls.all() if ogl.id == id)
diff --git a/caseworker/open_general_licences/forms.py b/caseworker/open_general_licences/forms.py
deleted file mode 100644
index fa1f9e356a..0000000000
--- a/caseworker/open_general_licences/forms.py
+++ /dev/null
@@ -1,119 +0,0 @@
-from caseworker.core.services import get_control_list_entries, get_countries
-from lite_content.lite_internal_frontend import generic
-from lite_forms.components import (
- Form,
- TreeView,
- FormGroup,
- TextArea,
- RadioButtons,
- Option,
- TextInput,
- Checkboxes,
- Filter,
-)
-from lite_forms.helpers import convert_dictionary_to_tree
-from caseworker.core.helpers import group_control_list_entries_by_category
-from caseworker.open_general_licences.enums import OpenGeneralExportLicences
-
-
-def open_general_licence_forms(request, licence, strings):
- control_list_entries = get_control_list_entries(request)
- control_list_entries_tree = convert_dictionary_to_tree(
- group_control_list_entries_by_category(control_list_entries),
- key="rating",
- value="rating",
- exclude="is_decontrolled",
- )
- countries = get_countries(request, True)
-
- return FormGroup(
- [
- Form(
- title=strings.SelectType.TITLE,
- description=strings.SelectType.DESCRIPTION,
- caption=strings.Steps.STEP_1,
- questions=[
- RadioButtons(
- short_title="Type",
- name="case_type",
- options=OpenGeneralExportLicences.as_options(),
- ),
- ],
- default_button_name=generic.CONTINUE,
- ),
- Form(
- title=strings.Details.TITLE.format(licence.name.lower()),
- description=strings.Details.DESCRIPTION,
- caption=strings.Steps.STEP_2,
- questions=[
- TextArea(
- title=strings.Details.Name.TITLE.format(licence.name.lower()),
- short_title=strings.Details.Name.SHORT_TITLE,
- description=strings.Details.Name.DESCRIPTION,
- name="name",
- rows=3,
- classes=["govuk-!-width-three-quarters"],
- data_attributes={"licence-name": licence.name},
- ),
- TextArea(
- title=strings.Details.Description.TITLE,
- short_title=strings.Details.Description.SHORT_TITLE,
- description=strings.Details.Description.DESCRIPTION,
- name="description",
- classes=["govuk-!-width-three-quarters"],
- extras={"max_length": 2000},
- ),
- TextInput(
- title=strings.Details.Link.TITLE.format(licence.name.lower()),
- short_title=strings.Details.Link.SHORT_TITLE,
- description=strings.Details.Link.DESCRIPTION,
- name="url",
- classes=["govuk-!-width-three-quarters"],
- ),
- RadioButtons(
- title=strings.Details.RequiresRegistration.TITLE.format(licence.name.lower()),
- short_title=strings.Details.RequiresRegistration.SHORT_TITLE,
- description=strings.Details.RequiresRegistration.DESCRIPTION.format(licence.name.lower()),
- name="registration_required",
- options=[
- Option(True, strings.Details.RequiresRegistration.YES),
- Option(False, strings.Details.RequiresRegistration.NO),
- ],
- classes=["govuk-radios--inline"],
- ),
- ],
- javascript_imports={"/javascripts/new-open-general-licence.js"},
- default_button_name=generic.CONTINUE,
- ),
- Form(
- title=strings.ControlListEntries.TITLE,
- description=strings.ControlListEntries.DESCRIPTION,
- caption=strings.Steps.STEP_3,
- questions=[
- TreeView(
- name="control_list_entries[]",
- short_title=strings.ControlListEntries.TITLE,
- data=control_list_entries_tree,
- )
- ],
- default_button_name=generic.CONTINUE,
- ),
- Form(
- title=strings.Countries.TITLE,
- description=strings.Countries.DESCRIPTION,
- caption=strings.Steps.STEP_4,
- questions=[
- Filter(),
- Checkboxes(
- name="countries[]",
- short_title=strings.Countries.SHORT_TITLE,
- options=countries,
- classes=["govuk-checkboxes--small"],
- show_select_links=True,
- filterable=True,
- ),
- ],
- default_button_name=generic.CONTINUE,
- ),
- ]
- )
diff --git a/caseworker/open_general_licences/services.py b/caseworker/open_general_licences/services.py
deleted file mode 100644
index 61b1388dc7..0000000000
--- a/caseworker/open_general_licences/services.py
+++ /dev/null
@@ -1,52 +0,0 @@
-from http import HTTPStatus
-
-from core import client
-from core.helpers import convert_parameters_to_query_params
-from lite_content.lite_internal_frontend import open_general_licences
-
-
-def get_open_general_licences(
- request, page=1, name=None, case_type=None, control_list_entry=None, country=None, status="active"
-):
- querystring = convert_parameters_to_query_params(
- {
- "page": page,
- "name": name,
- "case_type": case_type,
- "control_list_entry": control_list_entry,
- "country": country,
- "status": status,
- }
- )
- return client.get(request, f"/open-general-licences/{querystring}").json()
-
-
-def post_open_general_licences(request, json):
- response = client.post(request, "/open-general-licences/", json)
- return response.json(), response.status_code
-
-
-def get_open_general_licence(request, pk):
- return client.get(request, f"/open-general-licences/{pk}").json()
-
-
-def patch_open_general_licence(request, pk, json):
- response = client.patch(request, f"/open-general-licences/{pk}", json)
- return response.json(), response.status_code
-
-
-def set_open_general_licence_status(request, pk, json):
- if "status" not in json:
- return {"errors": {"response": [open_general_licences.Edit.SELECT_OPTION]}}, HTTPStatus.BAD_REQUEST
-
- response = client.patch(request, f"/open-general-licences/{pk}", json)
- return response.json(), response.status_code
-
-
-def get_ogl_activity(request, pk, activity_filters=None):
- url = f"/open-general-licences/{pk}/activity/"
- if activity_filters:
- params = convert_parameters_to_query_params(activity_filters)
- url = url + params
- data = client.get(request, url)
- return data.json()
diff --git a/caseworker/open_general_licences/urls.py b/caseworker/open_general_licences/urls.py
deleted file mode 100644
index 5690c6a2a1..0000000000
--- a/caseworker/open_general_licences/urls.py
+++ /dev/null
@@ -1,13 +0,0 @@
-from django.urls import path
-
-from caseworker.open_general_licences import views
-
-app_name = "open_general_licences"
-
-urlpatterns = [
- path("", views.ListView.as_view(), name="open_general_licences"),
- path("/", views.DetailView.as_view(), name="open_general_licence"),
- path("/edit-/", views.UpdateView.as_view(), name="edit"),
- path("//", views.ChangeStatusView.as_view(), name="change_status"),
- path("create/", views.CreateView.as_view(), name="create"),
-]
diff --git a/caseworker/open_general_licences/views.py b/caseworker/open_general_licences/views.py
deleted file mode 100644
index 8924794796..0000000000
--- a/caseworker/open_general_licences/views.py
+++ /dev/null
@@ -1,172 +0,0 @@
-import copy
-
-from django.http import Http404
-from django.shortcuts import render
-from django.urls import reverse
-from django.views.generic import TemplateView
-
-from core.builtins.custom_tags import friendly_boolean
-from caseworker.core.helpers import generate_activity_filters
-from caseworker.core.services import get_countries, get_control_list_entries
-from lite_content.lite_internal_frontend import open_general_licences as open_general_licences_strings, generic
-from lite_forms.components import FiltersBar, Select, TextInput, AutocompleteInput, BackLink, HiddenField
-from lite_forms.generators import confirm_form
-from lite_forms.views import SummaryListFormView, SingleFormView
-from caseworker.open_general_licences import constants
-from caseworker.open_general_licences.enums import OpenGeneralExportLicences
-from caseworker.open_general_licences.forms import open_general_licence_forms
-from caseworker.open_general_licences.services import (
- get_open_general_licences,
- post_open_general_licences,
- get_open_general_licence,
- patch_open_general_licence,
- set_open_general_licence_status,
- get_ogl_activity,
-)
-
-from core.auth.views import LoginRequiredMixin
-
-
-class ListView(LoginRequiredMixin, TemplateView):
- def get(self, request, *args, **kwargs):
- open_general_licences = get_open_general_licences(request, **request.GET)
- control_list_entries = get_control_list_entries(request, True)
- countries = get_countries(request, True)
-
- filters = FiltersBar(
- [
- HiddenField("status", request.GET.get("status", "active")),
- TextInput(name="name", title="name"),
- Select(name="case_type", title="type", options=OpenGeneralExportLicences.as_options()),
- AutocompleteInput(name="control_list_entry", title="control list entry", options=control_list_entries),
- AutocompleteInput(name="country", title="country", options=countries),
- ]
- )
-
- context = {
- "filters": filters,
- "tab": request.GET.get("status", "active"),
- "open_general_licences": open_general_licences,
- }
- return render(request, "open-general-licences/index.html", context)
-
-
-class DetailView(LoginRequiredMixin, TemplateView):
- def get(self, request, *args, **kwargs):
- activity_and_filters = get_ogl_activity(request, kwargs["pk"], activity_filters=request.GET)
- context = {
- "open_general_licence": get_open_general_licence(request, kwargs["pk"]),
- "activity": activity_and_filters["activity"],
- "filters": generate_activity_filters(activity_and_filters["filters"], open_general_licences_strings.Detail),
- "DETAILS": constants.DETAILS,
- "CONTROL_LIST_ENTRIES": constants.CONTROL_LIST_ENTRIES,
- "COUNTRIES": constants.COUNTRIES,
- }
- return render(request, "open-general-licences/open-general-licence.html", context)
-
-
-class CreateView(LoginRequiredMixin, SummaryListFormView):
- def init(self, request, **kwargs):
- licence = OpenGeneralExportLicences.get_by_id(
- request.POST.get("case_type", OpenGeneralExportLicences.open_general_export_licence.id)
- )
- self.forms = open_general_licence_forms(
- request,
- licence,
- open_general_licences_strings.Create,
- )
- self.action = post_open_general_licences
- self.summary_list_title = open_general_licences_strings.Create.SUMMARY_TITLE + licence.name
- self.summary_list_button = open_general_licences_strings.Create.SUBMIT_BUTTON
- self.summary_list_notice_title = None
- self.summary_list_notice_text = None
- self.hide_titles = True
- self.hide_components = ["case_type"]
- self.success_message = open_general_licences_strings.Create.SUCCESS_MESSAGE
- self.success_url = reverse("open_general_licences:open_general_licences")
-
- def prettify_data(self, data):
- countries, _ = get_countries(self.request)
- countries = [
- country["name"] for country in countries["countries"] if country["id"] in data.get("countries", [])
- ]
-
- data["registration_required"] = friendly_boolean(data["registration_required"])
- data["control_list_entries[]"] = ", ".join(data.get("control_list_entries", []))
- data["countries[]"] = ", ".join(countries)
- return data
-
-
-class UpdateView(LoginRequiredMixin, SingleFormView):
- def init(self, request, **kwargs):
- self.object_pk = kwargs["pk"]
- self.object = get_open_general_licence(request, self.object_pk)
- self.data = self.object
- self.action = patch_open_general_licence
- self.success_message = open_general_licences_strings.Edit.SUCCESS_MESSAGE
- self.success_url = reverse("open_general_licences:open_general_licence", kwargs={"pk": self.object_pk})
-
- def get_form(self):
- forms = open_general_licence_forms(
- self.request,
- OpenGeneralExportLicences.get_by_id(self.object["case_type"]["id"]),
- open_general_licences_strings.Edit,
- ).forms
-
- if self.kwargs["edit"] == constants.DETAILS:
- form = forms[1]
- elif self.kwargs["edit"] == constants.CONTROL_LIST_ENTRIES:
- form = forms[2]
- elif self.kwargs["edit"] == constants.COUNTRIES:
- form = forms[3]
- else:
- raise Http404
-
- form = copy.deepcopy(form)
- form.caption = self.object["case_type"]["reference"]["value"] + " (" + self.object["name"] + ")"
- form.buttons[0].value = generic.SAVE_AND_RETURN
- form.back_link = BackLink(
- url=reverse("open_general_licences:open_general_licence", kwargs={"pk": self.kwargs["pk"]})
- )
- return form
-
-
-class ChangeStatusView(LoginRequiredMixin, SingleFormView):
- def init(self, request, **kwargs):
- self.object_pk = kwargs["pk"]
- self.object = get_open_general_licence(request, self.object_pk)
- self.action = set_open_general_licence_status
- self.success_url = reverse("open_general_licences:open_general_licence", kwargs={"pk": self.object_pk})
- self.strings = (
- open_general_licences_strings.Reactivate
- if self.kwargs["status"] == "reactivate"
- else open_general_licences_strings.Deactivate
- )
- if request.POST.get("response") == "yes":
- self.success_message = self.strings.SUCCESS_MESSAGE
-
- def get_form(self):
- return confirm_form(
- title=self.strings.TITLE.format(self.object["name"]),
- description=self.strings.DESCRIPTION,
- back_link_text=self.strings.BACK_LINK.format(self.object["name"]),
- back_url=self.success_url,
- yes_label=self.strings.YES,
- no_label=self.strings.NO,
- side_by_side=True,
- submit_button_text=self.strings.SUBMIT_BUTTON,
- confirmation_name="response",
- )
-
- def on_submission(self, request, **kwargs):
- if kwargs["status"] == "reactivate":
- if request.POST.get("response") == "yes":
- return {"status": "active"}
- elif request.POST.get("response") == "no":
- return {"status": "deactivated"}
- elif kwargs["status"] == "deactivate":
- if request.POST.get("response") == "yes":
- return {"status": "deactivated"}
- elif request.POST.get("response") == "no":
- return {"status": "active"}
- return {}
diff --git a/caseworker/templates/open-general-licences/index.html b/caseworker/templates/open-general-licences/index.html
deleted file mode 100644
index da64e9edfc..0000000000
--- a/caseworker/templates/open-general-licences/index.html
+++ /dev/null
@@ -1,88 +0,0 @@
-{% extends 'layouts/base.html' %}
-
-{% load humanize %}
-
-{% block back_link %}{% endblock %}
-
-{% block body %}
-
-
-
- {% block title %}
- {% lcs 'open_general_licences.List.TITLE' %}
- {% endblock %}
-
-
-
- {% govuk_link_button id='new-ogl' text='open_general_licences.List.ADD_AN_OGL_BUTTON' url='open_general_licences:create' %}
-
-
-
-
-
- {% include "filters.html" %}
-
- {% if open_general_licences.results %}
-
-
-
-
-
-
-
-
-
-
-
-
- {% for open_general_licence in open_general_licences.results %}
-
-
- {% with request.GET|get:'name' as name %}
- {{ open_general_licence.name|highlight_text:name }}
- {% endwith %}
- |
-
- {{ open_general_licence.case_type.reference.value }}
- |
-
-
- {{ open_general_licence.control_list_entries|length }}
- {{ open_general_licence.control_list_entries|lcsp:'open_general_licences.List.Table.CONTROL_LIST_ENTRIES' }}
-
- |
-
-
- {{ open_general_licence.countries|length }}
- {{ open_general_licence.countries|lcsp:'open_general_licences.List.Table.COUNTRIES' }}
-
- |
-
- {% lcs 'open_general_licences.List.Table.READ_ON_GOVUK_LINK' as govuk_link %}
- {{ open_general_licence.url|linkify:govuk_link }}
- |
-
- {{ open_general_licence.registration_required|friendly_boolean }}
- |
-
- {% lcs 'generic.VIEW' %}
- |
-
- {% endfor %}
-
-
-
- {% pagination %}
- {% else %}
- {% include "includes/notice.html" with text='open_general_licences.List.NO_CONTENT' %}
- {% endif %}
-{% endblock %}
diff --git a/caseworker/templates/open-general-licences/open-general-licence.html b/caseworker/templates/open-general-licences/open-general-licence.html
deleted file mode 100644
index f0d41102e3..0000000000
--- a/caseworker/templates/open-general-licences/open-general-licence.html
+++ /dev/null
@@ -1,165 +0,0 @@
-{% extends 'layouts/base.html' %}
-
-{% load humanize %}
-
-{% block back_link %}
-
- {% lcs 'open_general_licences.Detail.BACK_LINK' %}
-
-{% endblock %}
-
-{% block body %}
-
-
-
- {% block title %}
- {{ open_general_licence.name }}
- {% endblock %}
-
-
-
-
-
-
-
-
-
- {% lcs 'open_general_licences.Detail.SummaryList.TYPE' %}
-
- -
- {{ open_general_licence.case_type.reference.value }}
-
-
-
-
-
-
-
-
-
-
- {% lcs 'open_general_licences.Detail.SummaryList.CREATED_AT' %}
-
-
- {{ open_general_licence.created_at|str_date }}
-
-
- {% if open_general_licence.created_at != open_general_licence.updated_at %}
-
-
- {% lcs 'open_general_licences.Detail.SummaryList.UPDATED_AT' %}
-
-
- {{ open_general_licence.updated_at|str_date }}
-
-
- {% endif %}
-
-
- {% lcs 'open_general_licences.Detail.ACTIVITY' %}
-
- {% include "filters.html" %}
-
- {% include 'includes/audit-trail.html' %}
-{% endblock %}
diff --git a/caseworker/urls.py b/caseworker/urls.py
index 4c3cd10e84..8c9268b0ea 100644
--- a/caseworker/urls.py
+++ b/caseworker/urls.py
@@ -15,7 +15,6 @@
path("queues//cases//", include("caseworker.cases.urls")),
path("flags/", include("caseworker.flags.urls")),
path("document-templates/", include("caseworker.letter_templates.urls")),
- path("open-general-licences/", include("caseworker.open_general_licences.urls")),
path("organisations/", include("caseworker.organisations.urls")),
path("queues/", include("caseworker.queues.urls")),
path("team/picklists/", include("caseworker.picklists.urls")),
From d02bf1f4368f5a8d7283fe54e3c5282645af17e5 Mon Sep 17 00:00:00 2001
From: Brendan Smith
Date: Tue, 17 Sep 2024 14:35:24 +0100
Subject: [PATCH 07/19] Remove legacy flag/flagging rule views
---
caseworker/core/context_processors.py | 4 -
caseworker/flags/forms.py | 337 +-----------------
caseworker/flags/services.py | 38 --
caseworker/flags/urls.py | 7 -
caseworker/flags/views.py | 262 +-------------
.../templates/flags/flagging-rules-list.html | 109 ------
6 files changed, 6 insertions(+), 751 deletions(-)
delete mode 100644 caseworker/templates/flags/flagging-rules-list.html
diff --git a/caseworker/core/context_processors.py b/caseworker/core/context_processors.py
index 23ff0527f0..6ea9d07ec5 100644
--- a/caseworker/core/context_processors.py
+++ b/caseworker/core/context_processors.py
@@ -84,10 +84,6 @@ def lite_menu(request):
"icon": "menu/letter-templates",
},
),
- conditional(
- Permission.MANAGE_FLAGGING_RULES.value in permissions,
- {"title": "Flagging rules", "url": reverse_lazy("flags:flagging_rules"), "icon": "menu/flags"},
- ),
conditional(
Permission.MANAGE_TEAM_ROUTING_RULES.value in permissions
or Permission.MANAGE_ALL_ROUTING_RULES.value in permissions,
diff --git a/caseworker/flags/forms.py b/caseworker/flags/forms.py
index 8bb1e7a26e..c30f1cf9d5 100644
--- a/caseworker/flags/forms.py
+++ b/caseworker/flags/forms.py
@@ -1,32 +1,14 @@
-from django.urls import reverse_lazy
-
-from caseworker.cases.services import get_case_types
-from caseworker.core.services import get_countries, get_control_list_entries
-from caseworker.flags.services import get_goods_flags, get_destination_flags, get_cases_flags
-from caseworker.flags.enums import FlagPermissions
-
from lite_content.lite_internal_frontend import strings
-from lite_content.lite_internal_frontend.flags import CreateFlagForm, EditFlagForm, SetFlagsForm
-from lite_content.lite_internal_frontend.strings import FlaggingRules
+from lite_content.lite_internal_frontend.flags import SetFlagsForm
from lite_forms.components import (
- TextInput,
- Select,
Option,
- BackLink,
Form,
- FormGroup,
- RadioButtons,
- NumberInput,
DetailComponent,
TextArea,
Checkboxes,
HelpSection,
Filter,
- TokenBar,
- Heading,
)
-from lite_forms.generators import confirm_form
-from lite_forms.styles import HeadingStyle
level_options = [
Option("Case", "Case"),
@@ -43,323 +25,6 @@
]
-def add_flag_form():
- return Form(
- title=CreateFlagForm.TITLE,
- description=CreateFlagForm.DESCRIPTION,
- questions=[
- TextInput(title=CreateFlagForm.Name.TITLE, description=CreateFlagForm.Name.DESCRIPTION, name="name"),
- Select(
- title=CreateFlagForm.Level.TITLE,
- description=CreateFlagForm.Level.DESCRIPTION,
- name="level",
- options=level_options,
- ),
- RadioButtons(
- title=CreateFlagForm.Colour.TITLE,
- description=CreateFlagForm.Colour.DESCRIPTION,
- name="colour",
- classes=["app-radios--flag-colours"],
- options=[
- Option("default", "Default"),
- Option("red", "Red", classes=["app-radios__item--red"]),
- Option("yellow", "Yellow", classes=["app-radios__item--yellow"]),
- Option("green", "Green", classes=["app-radios__item--green"]),
- Option("blue", "Blue", classes=["app-radios__item--blue"]),
- Option("purple", "Purple", classes=["app-radios__item--purple"]),
- Option("orange", "Orange", classes=["app-radios__item--orange"]),
- Option("brown", "Brown", classes=["app-radios__item--brown"]),
- Option("turquoise", "Turquoise", classes=["app-radios__item--turquoise"]),
- Option("pink", "Pink", classes=["app-radios__item--pink"]),
- ],
- ),
- TextInput(
- name="label",
- title=CreateFlagForm.Label.TITLE,
- description=CreateFlagForm.Label.DESCRIPTION,
- ),
- NumberInput(
- name="priority", title=CreateFlagForm.Priority.TITLE, description=CreateFlagForm.Priority.DESCRIPTION
- ),
- RadioButtons(
- name="blocks_finalising",
- title=CreateFlagForm.BlocksFinalising.TITLE,
- options=[
- Option(
- key=True,
- value=CreateFlagForm.BlocksFinalising.YES,
- components=[
- RadioButtons(
- name="removable_by",
- title="Who can remove this flag?",
- options=[
- Option(FlagPermissions.DEFAULT, FlagPermissions.DEFAULT),
- Option(
- FlagPermissions.AUTHORISED_COUNTERSIGNER,
- FlagPermissions.AUTHORISED_COUNTERSIGNER,
- ),
- Option(
- FlagPermissions.HEAD_OF_LICENSING_UNIT_COUNTERSIGNER,
- FlagPermissions.HEAD_OF_LICENSING_UNIT_COUNTERSIGNER,
- ),
- ],
- )
- ],
- ),
- Option(key=False, value=CreateFlagForm.BlocksFinalising.NO),
- ],
- classes=["govuk-radios--inline"],
- ),
- ],
- default_button_name=CreateFlagForm.SUBMIT_BUTTON,
- back_link=BackLink(CreateFlagForm.BACK_LINK, reverse_lazy("flags:flags")),
- javascript_imports={"/javascripts/add-edit-flags.js"},
- )
-
-
-def edit_flag_form():
- return Form(
- title=EditFlagForm.TITLE,
- questions=[
- TextInput(title=EditFlagForm.Name.TITLE, description=EditFlagForm.Name.DESCRIPTION, name="name"),
- RadioButtons(
- title=EditFlagForm.Colour.TITLE,
- description=EditFlagForm.Colour.DESCRIPTION,
- name="colour",
- classes=["app-radios--flag-colours"],
- options=[
- Option("default", "Default"),
- Option("red", "Red", classes=["app-radios__item--red"]),
- Option("yellow", "Yellow", classes=["app-radios__item--yellow"]),
- Option("green", "Green", classes=["app-radios__item--green"]),
- Option("blue", "Blue", classes=["app-radios__item--blue"]),
- Option("purple", "Purple", classes=["app-radios__item--purple"]),
- Option("orange", "Orange", classes=["app-radios__item--orange"]),
- Option("brown", "Brown", classes=["app-radios__item--brown"]),
- Option("turquoise", "Turquoise", classes=["app-radios__item--turquoise"]),
- Option("pink", "Pink", classes=["app-radios__item--pink"]),
- ],
- ),
- TextInput(name="label", title=EditFlagForm.Label.TITLE, description=EditFlagForm.Label.DESCRIPTION),
- NumberInput(
- name="priority", title=EditFlagForm.Priority.TITLE, description=EditFlagForm.Priority.DESCRIPTION
- ),
- RadioButtons(
- name="blocks_finalising",
- title=EditFlagForm.BlocksFinalising.TITLE,
- options=[
- Option(
- key=True,
- value=EditFlagForm.BlocksFinalising.YES,
- components=[
- RadioButtons(
- name="removable_by",
- title="Who can remove this flag?",
- options=[
- Option(FlagPermissions.DEFAULT, FlagPermissions.DEFAULT),
- Option(
- FlagPermissions.AUTHORISED_COUNTERSIGNER,
- FlagPermissions.AUTHORISED_COUNTERSIGNER,
- ),
- Option(
- FlagPermissions.HEAD_OF_LICENSING_UNIT_COUNTERSIGNER,
- FlagPermissions.HEAD_OF_LICENSING_UNIT_COUNTERSIGNER,
- ),
- ],
- )
- ],
- ),
- Option(False, EditFlagForm.BlocksFinalising.NO),
- ],
- ),
- ],
- back_link=BackLink(EditFlagForm.BACK_LINK, reverse_lazy("flags:flags")),
- default_button_name=EditFlagForm.SUBMIT_BUTTON,
- javascript_imports={"/javascripts/add-edit-flags.js"},
- )
-
-
-def select_flagging_rule_type():
- return Form(
- title=strings.FlaggingRules.Create.Type.TITLE,
- questions=[
- RadioButtons(
- name="level",
- options=_levels,
- )
- ],
- back_link=BackLink(strings.FlaggingRules.Create.BACKLINK, reverse_lazy("flags:flagging_rules")),
- default_button_name=strings.FlaggingRules.Create.Type.SAVE,
- )
-
-
-def get_clc_entry_groups_and_nodes(entries):
- groups = []
- nodes = []
-
- for item in entries:
- if not item["parent_id"] and not item.get("children"):
- nodes.append({"rating": item["rating"], "text": item["text"]})
- groups.append({"rating": item["rating"], "text": item["text"]})
-
- if item["parent_id"] and item.get("children"):
- nodes.append({"rating": item["rating"], "text": item["text"]})
-
- if item.get("children"):
- groups.append({"rating": item["rating"], "text": item["text"]})
- children, child_nodes = get_clc_entry_groups_and_nodes(item["children"])
- if children:
- groups.extend(children)
- if child_nodes:
- nodes.extend(child_nodes)
- elif item["parent_id"]:
- nodes.append({"rating": item["rating"], "text": item["text"]})
-
- return groups, nodes
-
-
-def select_condition_and_flag(request, type: str):
- flags = []
- is_for_verified_goods_only = None
-
- if type == "Good":
- flags = get_goods_flags(request=request)
- is_for_verified_goods_only = RadioButtons(
- name="is_for_verified_goods_only",
- options=[
- Option(key=True, value=FlaggingRules.Create.Condition_and_flag.YES_OPTION),
- Option(key=False, value=FlaggingRules.Create.Condition_and_flag.NO_OPTION),
- ],
- title=FlaggingRules.Create.Condition_and_flag.GOODS_QUESTION,
- )
- entries = get_control_list_entries(request)
- clc_groups, clc_nodes = get_clc_entry_groups_and_nodes(entries)
-
- # if the child node has children of its own then that needs to selectable as
- # both individual entry as well as group entry because of this duplicates are
- # possible in the combined list hence remove them. We need groups at the top
- # because autocomplete only shows first 10 entries which makes it difficult to
- # select certain groups otherwise. eg ML10b1 comes before ML1
- combined_entries = list(clc_groups)
- rating_seen = set([item["rating"] for item in combined_entries])
- for item in clc_nodes:
- if item["rating"] not in rating_seen:
- rating_seen.add(item["rating"])
- combined_entries.append(item)
-
- clc_nodes_options = [
- Option(
- key=item["rating"],
- value=item["rating"],
- description=item["text"],
- )
- for item in clc_nodes
- ]
-
- clc_groups_options = [
- Option(
- key=item["rating"],
- value=item["rating"],
- description=item["text"],
- )
- for item in clc_groups
- ]
-
- clc_combined_options = [
- Option(
- key=item["rating"],
- value=item["rating"],
- description=item["text"],
- )
- for item in combined_entries
- ]
-
- return Form(
- title="Set flagging rules",
- questions=[
- Heading("Add a condition", HeadingStyle.S),
- TokenBar(
- title="Select individual control list entries",
- name="matching_values",
- description="Type to get suggestions. For example, ML1a.",
- options=clc_nodes_options,
- ),
- TokenBar(
- title="Select a control list entry group",
- name="matching_groups",
- description="Type to get suggestions. For example, ML8.\nThis will add every control list entry under ML8.",
- options=clc_groups_options,
- ),
- TokenBar(
- title="Excluded control list entries",
- name="excluded_values",
- description="Type to get suggestions. For example, ML1a, ML8.\nThis will exclude ML1a and every control list entry under ML8.",
- options=clc_combined_options,
- ),
- Heading("Set an action", HeadingStyle.S),
- Select(title=strings.FlaggingRules.Create.Condition_and_flag.FLAG, name="flag", options=flags),
- is_for_verified_goods_only,
- ],
- default_button_name="Create flagging rule",
- )
- elif type == "Destination":
- flags = get_destination_flags(request=request)
-
- return Form(
- title="Set flagging rules",
- questions=[
- Heading("Add a condition", HeadingStyle.S),
- TokenBar(
- title="Select destinations",
- name="matching_values",
- description="Type to get suggestions. For example, Australia",
- options=get_countries(request, convert_to_options=True),
- ),
- Heading("Add an action", HeadingStyle.S),
- Select(title=strings.FlaggingRules.Create.Condition_and_flag.FLAG, name="flag", options=flags),
- ],
- default_button_name="Create flagging rule",
- )
- elif type == "Case":
- case_type_options = [Option(option["key"], option["value"]) for option in get_case_types(request)]
- flags = get_cases_flags(request=request)
-
- return Form(
- title="Set flagging rules",
- questions=[
- Heading("Add a condition", HeadingStyle.S),
- TokenBar(
- title="Select application type",
- name="matching_values",
- description="Type to get suggestions.\nFor example, Standard Individual Export Licence",
- options=case_type_options,
- ),
- Heading("Add an action", HeadingStyle.S),
- Select(title=strings.FlaggingRules.Create.Condition_and_flag.FLAG, name="flag", options=flags),
- ],
- default_button_name="Create flagging rule",
- )
-
-
-def create_flagging_rules_formGroup(request=None, type=None):
- return FormGroup(
- [select_flagging_rule_type(), select_condition_and_flag(request=request, type=type)],
- )
-
-
-def deactivate_or_activate_flagging_rule_form(title, description, confirm_text, status):
- return confirm_form(
- title=title,
- description=description,
- back_link_text=strings.FlaggingRules.Status.BACK,
- back_url=reverse_lazy("flags:flagging_rules"),
- yes_label=confirm_text,
- no_label=strings.FlaggingRules.Status.CANCEL,
- hidden_field=status,
- confirmation_name="confirm",
- )
-
-
def set_flags_form(flags, level, show_case_header=False, show_sidebar=False):
form = Form(
title=getattr(SetFlagsForm, level).TITLE,
diff --git a/caseworker/flags/services.py b/caseworker/flags/services.py
index 9f6346e186..3c29e47462 100644
--- a/caseworker/flags/services.py
+++ b/caseworker/flags/services.py
@@ -65,41 +65,3 @@ def _get_team_flags(level, request, convert_to_options=False, include_deactivate
get_goods_flags = functools.partial(_get_team_flags, "Good", convert_to_options=True)
get_organisation_flags = functools.partial(_get_team_flags, "Organisation", convert_to_options=True)
get_destination_flags = functools.partial(_get_team_flags, "Destination", convert_to_options=True)
-
-
-def post_flags(request, json):
- data = client.post(request, "/flags/", json)
- return data.json(), data.status_code
-
-
-def get_flag(request, pk):
- data = client.get(request, f"/flags/{pk}")
- return data.json()
-
-
-def update_flag(request, pk, json):
- data = client.patch(request, f"/flags/{pk}/", json)
- return data.json(), data.status_code
-
-
-def get_flagging_rules(request, params):
- data = client.get(request, f"/flags/rules/?{params}")
- return data.json(), data.status_code
-
-
-def post_flagging_rules(request, json):
- data = client.post(request, "/flags/rules/", json)
- return data.json(), data.status_code
-
-
-def get_flagging_rule(request, pk):
- data = client.get(request, f"/flags/rules/{pk}")
- return data.json(), data.status_code
-
-
-def put_flagging_rule(request, pk, json):
- data = json
- if json.get("form_name"):
- data["status"] = json.get("form_name")
- data = client.put(request, f"/flags/rules/{pk}", json)
- return data.json(), data.status_code
diff --git a/caseworker/flags/urls.py b/caseworker/flags/urls.py
index 324c47524d..46bf8019a6 100644
--- a/caseworker/flags/urls.py
+++ b/caseworker/flags/urls.py
@@ -6,11 +6,4 @@
urlpatterns = [
path("", views.FlagsList.as_view(), name="flags"),
- path("/edit/", views.EditFlag.as_view(), name="edit"),
- path("/edit//", views.ChangeFlagStatus.as_view(), name="change_status"),
- path("add/", views.AddFlag.as_view(), name="add"),
- path("rules/", views.ManageFlagRules.as_view(), name="flagging_rules"),
- path("rules/create/", views.CreateFlagRules.as_view(), name="create_flagging_rules"),
- path("rules//edit/", views.EditFlaggingRules.as_view(), name="edit_flagging_rule"),
- path("rules///", views.ChangeFlaggingRuleStatus.as_view(), name="change_flagging_rule_status"),
]
diff --git a/caseworker/flags/views.py b/caseworker/flags/views.py
index af812c4c93..63f6429cc3 100644
--- a/caseworker/flags/views.py
+++ b/caseworker/flags/views.py
@@ -1,49 +1,31 @@
import functools
from django.conf import settings
-from django.http import Http404, HttpResponseForbidden
-from django.shortcuts import redirect
from django.shortcuts import render
from django.urls import reverse
-from django.urls import reverse_lazy
-from django.utils.functional import cached_property
from django.views.generic import TemplateView
from caseworker.cases.helpers.advice import get_param_goods, get_param_destinations
from caseworker.cases.services import put_flag_assignments, get_case
from caseworker.core.constants import Permission
-from caseworker.core.helpers import get_params_if_exist, is_user_config_admin
-from core.helpers import convert_dict_to_query_params
-from caseworker.core.views import handler403
-from caseworker.core.services import get_countries, get_user_permissions
+from caseworker.core.services import get_user_permissions
from caseworker.flags.enums import FlagLevel, FlagStatus
from caseworker.flags.forms import (
- add_flag_form,
- edit_flag_form,
- create_flagging_rules_formGroup,
- select_condition_and_flag,
- _levels,
- deactivate_or_activate_flagging_rule_form,
level_options,
set_flags_form,
)
from caseworker.flags.helpers import get_matching_flags
from caseworker.flags.services import (
- get_flagging_rules,
- put_flagging_rule,
- get_flagging_rule,
- post_flagging_rules,
get_cases_flags,
get_organisation_flags,
get_goods_flags,
get_destination_flags,
)
-from caseworker.flags.services import get_flags, post_flags, get_flag, update_flag
-from lite_content.lite_internal_frontend import strings, flags
-from lite_content.lite_internal_frontend.flags import UpdateFlag, SetFlagsForm
+from caseworker.flags.services import get_flags
+from lite_content.lite_internal_frontend import flags
+from lite_content.lite_internal_frontend.flags import SetFlagsForm
from lite_forms.components import Option, FiltersBar, Select, Checkboxes, TextInput, BackLink
-from lite_forms.generators import form_page
-from lite_forms.views import MultiFormView, SingleFormView
+from lite_forms.views import SingleFormView
from caseworker.organisations.services import get_organisation
from caseworker.teams.services import get_teams
from caseworker.users.services import get_gov_user
@@ -82,240 +64,6 @@ def get(self, request, **kwargs):
return render(request, "flags/index.html", context)
-class AddFlag(LoginRequiredMixin, SingleFormView):
- def dispatch(self, request, *args, **kwargs):
- if not is_user_config_admin(request):
- return handler403(request, HttpResponseForbidden)
-
- return super().dispatch(request, *args, **kwargs)
-
- def init(self, request, **kwargs):
- self.form = add_flag_form()
- self.action = post_flags
- self.data = {"colour": "default", "priority": 0}
- self.success_message = flags.FlagsList.SUCCESS_MESSAGE
- self.success_url = reverse("flags:flags")
-
-
-class EditFlag(LoginRequiredMixin, SingleFormView):
- def dispatch(self, request, *args, **kwargs):
- if not is_user_config_admin(request):
- return handler403(request, HttpResponseForbidden)
-
- return super().dispatch(request, *args, **kwargs)
-
- def init(self, request, **kwargs):
- self.object_pk = str(kwargs["pk"])
- flag = get_flag(request, self.object_pk)
- self.form = edit_flag_form()
- self.data = flag
- self.action = update_flag
- self.success_url = reverse("flags:flags")
-
-
-class ChangeFlagStatus(LoginRequiredMixin, TemplateView):
- def dispatch(self, request, *args, **kwargs):
- if not is_user_config_admin(request):
- return handler403(request, HttpResponseForbidden)
-
- return super().dispatch(request, *args, **kwargs)
-
- def get(self, request, **kwargs):
- status = kwargs["status"]
- description = ""
-
- if status != "deactivate" and status != "reactivate":
- raise Http404
-
- if status == "deactivate":
- description = UpdateFlag.Status.DEACTIVATE_WARNING
-
- if status == "reactivate":
- description = UpdateFlag.Status.REACTIVATE_WARNING
-
- context = {
- "title": "Are you sure you want to {} this flag?".format(status),
- "description": description,
- "user_id": str(kwargs["pk"]),
- "status": status,
- }
- return render(request, "flags/change-status.html", context)
-
- def post(self, request, **kwargs):
- status = kwargs["status"]
-
- if status != "deactivate" and status != "reactivate":
- raise Http404
-
- update_flag(request, str(kwargs["pk"]), json={"status": request.POST["status"]})
-
- return redirect(reverse_lazy("flags:flags"))
-
-
-class ManageFlagRules(LoginRequiredMixin, TemplateView):
- def get(self, request, **kwargs):
- if Permission.MANAGE_FLAGGING_RULES.value not in get_user_permissions(request):
- return redirect(reverse_lazy("cases:cases"))
-
- params = {"page": int(request.GET.get("page", 1))}
- params = get_params_if_exist(request, ["only_my_team", "level", "include_deactivated"], params)
-
- data, _ = get_flagging_rules(request, convert_dict_to_query_params(params))
-
- filters = FiltersBar(
- [
- Select(name="level", title=strings.FlaggingRules.List.Filter.Type, options=_levels),
- Checkboxes(
- name="only_my_team",
- options=[Option("true", strings.FlaggingRules.List.Filter.MY_TEAM_ONLY)],
- classes=["govuk-checkboxes--small", "govuk-!-margin-top-6"],
- ),
- Checkboxes(
- name="include_deactivated",
- options=[Option("true", strings.FlaggingRules.List.Filter.INCLUDE_DEACTIVATED)],
- classes=["govuk-checkboxes--small", "govuk-!-margin-top-6"],
- ),
- ]
- )
-
- user_data = get_gov_user(request)[0]["user"]
-
- countries, _ = get_countries(request)
- countries_map = {country["id"]: country["name"] for country in countries["countries"]}
- for rule in data["results"]:
- if rule["level"] == "Destination":
- rule["matching_values"] = [countries_map[id] for id in rule["matching_values"]]
-
- context = {
- "data": data,
- "team": user_data["team"]["id"],
- "filters": filters,
- "can_change_config": user_data["email"] in settings.CONFIG_ADMIN_USERS_LIST,
- }
- return render(request, "flags/flagging-rules-list.html", context)
-
-
-class CreateFlagRules(LoginRequiredMixin, MultiFormView):
- def dispatch(self, request, *args, **kwargs):
- if not is_user_config_admin(request):
- return handler403(request, HttpResponseForbidden)
-
- return super().dispatch(request, *args, **kwargs)
-
- def init(self, request, **kwargs):
- if Permission.MANAGE_FLAGGING_RULES.value not in get_user_permissions(request):
- return redirect(reverse_lazy("cases:cases"))
-
- type = request.POST.get("level", None)
- self.forms = create_flagging_rules_formGroup(request=self.request, type=type)
- self.action = post_flagging_rules
- self.success_url = reverse_lazy("flags:flagging_rules")
-
-
-class EditFlaggingRules(LoginRequiredMixin, SingleFormView):
- def dispatch(self, request, *args, **kwargs):
- if not is_user_config_admin(request):
- return handler403(request, HttpResponseForbidden)
-
- return super().dispatch(request, *args, **kwargs)
-
- def init(self, request, **kwargs):
- if Permission.MANAGE_FLAGGING_RULES.value not in get_user_permissions(request):
- return redirect(reverse_lazy("cases:cases"))
-
- self.object_pk = kwargs["pk"]
- self.data = get_flagging_rule(request, self.object_pk)[0]["flag"]
- self.form = select_condition_and_flag(request, type=self.data["level"])
- self.form.buttons[0].value = "Edit flagging rule"
- self.action = put_flagging_rule
- self.success_url = reverse_lazy("flags:flagging_rules")
-
- @cached_property
- def get_countries(self):
- countries, _ = get_countries(self.request)
- return countries["countries"]
-
- def get_data(self):
- if self.data["level"] == "Destination":
- countries_map = {country["id"]: country["name"] for country in self.get_countries}
- self.data["matching_values"] = [countries_map[id] for id in self.data["matching_values"]]
-
- return self.data
-
- def on_submission(self, request, **kwargs):
- copied_request = request.POST.copy()
-
- if "status" not in copied_request:
- copied_request["status"] = self.data["status"]
- # if the Tokenfields are empty then it is not being included in the request data
- if "matching_values[]" not in copied_request:
- copied_request.setlist("matching_values[]", [])
- if self.data["level"] == "Good" and "matching_groups[]" not in copied_request:
- copied_request.setlist("matching_groups[]", [])
- if self.data["level"] == "Good" and "excluded_values[]" not in copied_request:
- copied_request.setlist("excluded_values[]", [])
-
- if self.data["level"] == "Destination":
- reverse_countries_map = {country["name"]: country["id"] for country in self.get_countries}
- country_ids = [
- reverse_countries_map[name] if name in reverse_countries_map else name
- for name in copied_request.getlist("matching_values[]")
- ]
- copied_request.setlist("matching_values[]", country_ids)
-
- return copied_request
-
-
-class ChangeFlaggingRuleStatus(LoginRequiredMixin, SingleFormView):
- success_url = reverse_lazy("flags:flagging_rules")
-
- def dispatch(self, request, *args, **kwargs):
- if not is_user_config_admin(request):
- return handler403(request, HttpResponseForbidden)
-
- return super().dispatch(request, *args, **kwargs)
-
- def init(self, request, **kwargs):
- if Permission.MANAGE_FLAGGING_RULES.value not in get_user_permissions(request):
- return redirect(reverse_lazy("cases:cases"))
-
- status = kwargs["status"]
- self.object_pk = kwargs["pk"]
-
- if status != "Deactivated" and status != "Active":
- raise Http404
-
- if status == "Deactivated":
- title = strings.FlaggingRules.Status.DEACTIVATE_HEADING
- description = strings.FlaggingRules.Status.DEACTIVATE_WARNING
- confirm_text = strings.FlaggingRules.Status.DEACTIVATE_CONFIRM
-
- if status == "Active":
- title = strings.FlaggingRules.Status.REACTIVATE_HEADING
- description = strings.FlaggingRules.Status.REACTIVATE_WARNING
- confirm_text = strings.FlaggingRules.Status.REACTIVATE_CONFIRM
-
- self.form = deactivate_or_activate_flagging_rule_form(
- title=title, description=description, confirm_text=confirm_text, status=status
- )
- self.action = put_flagging_rule
-
- def post(self, request, **kwargs):
- self.init(request, **kwargs)
- if not request.POST.get("confirm"):
- return form_page(
- request,
- self.get_form(),
- data=self.get_data(),
- errors={"confirm": [strings.FlaggingRules.Status.NO_SELECTION_ERROR]},
- extra_data=self.context,
- )
- elif request.POST.get("confirm") == "no":
- return redirect(self.success_url)
-
- return super(ChangeFlaggingRuleStatus, self).post(request, **kwargs)
-
-
def perform_action(case, level, request, pk, json):
selected_goods_ids = request.GET.getlist("goods", request.GET.getlist("goods_types"))
goods = case.data.get("goods", case.data.get("goods_types"))
diff --git a/caseworker/templates/flags/flagging-rules-list.html b/caseworker/templates/flags/flagging-rules-list.html
deleted file mode 100644
index 8debde42b5..0000000000
--- a/caseworker/templates/flags/flagging-rules-list.html
+++ /dev/null
@@ -1,109 +0,0 @@
-{% extends 'layouts/base.html' %}
-
-{% block back_link %}{% endblock %}
-
-{% block body %}
-
-
-
- {% block title %}
- {% lcs 'FlaggingRules.TITLE' %}
- {% endblock %}
-
-
- {% lcs 'FlaggingRules.DESCRIPTION' %}
-
-
- {% if can_change_config %}
-
- {% endif %}
-
-
- {% include "filters.html" %}
-
-
-
-
-
-
-
-
-
-
- {% if can_change_config %}
-
- {% endif %}
-
-
-
- {% for flagging_rule in data.results %}
-
-
- {{ flagging_rule.team.name }}
- |
-
- {% if flagging_rule.level == "Good" %}
- Products
- {% elif flagging_rule.level == "Destination" %}
- Destinations
- {% elif flagging_rule.level == "Case" %}
- Application types
- {% endif %}
- |
-
- {{ flagging_rule.matching_values|join:", " }}
- {% if flagging_rule.matching_groups %}
- {% if flagging_rule.matching_values %}
-
- {% endif %}
- {{ flagging_rule.matching_groups|join:", " }} group
- {% endif %}
- {% if flagging_rule.excluded_values %}
- {% if flagging_rule.matching_values %}
-
- {% endif %}
- Excludes: {{ flagging_rule.excluded_values|join:", " }}
- {% endif %}
- |
-
- {% if flagging_rule.level == "Good" %}
- {{ flagging_rule.is_for_verified_goods_only|friendly_boolean }}
- {% else %}
- N/A
- {% endif %}
- |
-
- {{ flagging_rule.flag_name }}
- |
-
- {{ flagging_rule.status }}
- |
- {% if can_change_config %}
-
- {% if flagging_rule.team.id == team %}
-
- {% endif %}
- |
- {% endif %}
-
- {% endfor %}
-
-
-
- {% pagination %}
-{% endblock %}
From d3ab62a20dc61d62cb7e87caa43365590aae338b Mon Sep 17 00:00:00 2001
From: Brendan Smith
Date: Tue, 17 Sep 2024 15:34:07 +0100
Subject: [PATCH 08/19] Switch caseworker app to use new caseworker GET CLEs
endpoint
---
caseworker/bookmarks/views.py | 2 +-
caseworker/core/services.py | 38 +++++---------------------------
caseworker/queues/views/cases.py | 2 +-
caseworker/tau/views.py | 4 ++--
4 files changed, 10 insertions(+), 36 deletions(-)
diff --git a/caseworker/bookmarks/views.py b/caseworker/bookmarks/views.py
index 28805911b6..5a5888fee4 100644
--- a/caseworker/bookmarks/views.py
+++ b/caseworker/bookmarks/views.py
@@ -24,7 +24,7 @@ class AddBookmark(LoginRequiredMixin, CaseDataMixin, FormView):
@cached_property
def all_cles(self):
- return get_control_list_entries(self.request, include_parent=True)
+ return get_control_list_entries(self.request, include_non_selectable_for_assessment=True)
@cached_property
def all_regimes(self):
diff --git a/caseworker/core/services.py b/caseworker/core/services.py
index 0bf7f79c5a..8ff12d6b24 100644
--- a/caseworker/core/services.py
+++ b/caseworker/core/services.py
@@ -131,40 +131,14 @@ def get_user_role_name(request):
return user["user"]["role"]["name"]
-CLC_ENTRIES_CACHE = []
-
-
-# Control List Entries
-def get_control_list_entries( # noqa
- request, convert_to_options=False, include_parent=False, clc_entries_cache=CLC_ENTRIES_CACHE # noqa
-): # noqa
- """
- Preliminary caching mechanism, requires service restart to repopulate control list entries
- """
- if convert_to_options:
- if clc_entries_cache:
- return clc_entries_cache
- else:
- data = client.get(request, "/static/control-list-entries/")
-
- for control_list_entry in data.json().get("control_list_entries"):
- clc_entries_cache.append(
- Option(
- key=control_list_entry["rating"],
- value=control_list_entry["rating"],
- description=control_list_entry["text"],
- )
- )
-
- return clc_entries_cache
-
- if include_parent:
- response = client.get(request, "/static/control-list-entries/?include_parent=True")
- else:
- response = client.get(request, "/static/control-list-entries/?group=True")
+def get_control_list_entries(request, include_non_selectable_for_assessment=False):
+ url = "/caseworker/static/control-list-entries/"
+ if include_non_selectable_for_assessment:
+ url = f"{url}?include_non_selectable_for_assessment=True"
+ response = client.get(request, url)
response.raise_for_status()
- return response.json().get("control_list_entries")
+ return response.json()
# Regime Entries
diff --git a/caseworker/queues/views/cases.py b/caseworker/queues/views/cases.py
index dfffeb6a16..ae31eb1ea9 100644
--- a/caseworker/queues/views/cases.py
+++ b/caseworker/queues/views/cases.py
@@ -60,7 +60,7 @@ def all_flags(self):
@cached_property
def all_cles(self):
- return get_control_list_entries(self.request, include_parent=True)
+ return get_control_list_entries(self.request, include_non_selectable_for_assessment=True)
@cached_property
def all_regimes(self):
diff --git a/caseworker/tau/views.py b/caseworker/tau/views.py
index aefc964e06..ebb302b512 100644
--- a/caseworker/tau/views.py
+++ b/caseworker/tau/views.py
@@ -116,8 +116,8 @@ def goods(self):
@cached_property
def control_list_entries(self):
- control_list_entries = get_control_list_entries(self.request, convert_to_options=True)
- return [(item.value, item.key) for item in control_list_entries]
+ control_list_entries = get_control_list_entries(self.request, include_non_selectable_for_assessment=False)
+ return [(item["rating"], item["rating"]) for item in control_list_entries]
@expect_status(
HTTPStatus.OK,
From 53691b933ed1ba24d280dca7b98a56d84f18aa7f Mon Sep 17 00:00:00 2001
From: Brendan Smith
Date: Wed, 18 Sep 2024 14:34:48 +0100
Subject: [PATCH 09/19] Fix unit tests by mocking new CLE endpoints
---
caseworker/templates/flags/index.html | 5 -
unit_tests/caseworker/bookmarks/test_views.py | 4 +-
.../caseworker/cases/test_permissions.py | 2 +-
.../cases/views/test_case_bookmarks.py | 6 +-
unit_tests/caseworker/conftest.py | 8 +-
unit_tests/caseworker/flags/test_views.py | 92 -------------------
unit_tests/conftest.py | 32 +------
7 files changed, 14 insertions(+), 135 deletions(-)
diff --git a/caseworker/templates/flags/index.html b/caseworker/templates/flags/index.html
index 8adaaa306c..2bd1e55a62 100644
--- a/caseworker/templates/flags/index.html
+++ b/caseworker/templates/flags/index.html
@@ -14,11 +14,6 @@
{% lcs 'flags.FlagsList.DESCRIPTION' %}
- {% if can_change_config %}
-
- {% govuk_link_button id='add-a-flag' text='flags.FlagsList.CREATE_BUTTON' url='flags:add' %}
-
- {% endif %}
{% include "filters.html" %}
diff --git a/unit_tests/caseworker/bookmarks/test_views.py b/unit_tests/caseworker/bookmarks/test_views.py
index 528add2ec0..365a5f2f35 100644
--- a/unit_tests/caseworker/bookmarks/test_views.py
+++ b/unit_tests/caseworker/bookmarks/test_views.py
@@ -42,7 +42,7 @@ def test_add_bookmark_ok(
mock_cases_with_filter_data,
requests_mock,
gov_uk_user_id,
- mock_all_control_list_entries,
+ mock_control_list_entries,
mock_regime_entries,
):
mock_post = mock_post_bookmark(requests_mock)
@@ -80,7 +80,7 @@ def test_add_bookmark_fail(
requests_mock,
gov_uk_user_id,
return_code,
- mock_all_control_list_entries,
+ mock_control_list_entries,
mock_regime_entries,
):
mock_post_bookmark(requests_mock, return_code)
diff --git a/unit_tests/caseworker/cases/test_permissions.py b/unit_tests/caseworker/cases/test_permissions.py
index 8ccab6972e..a2fb70ade7 100644
--- a/unit_tests/caseworker/cases/test_permissions.py
+++ b/unit_tests/caseworker/cases/test_permissions.py
@@ -121,7 +121,7 @@ def test_warning_renders_when_expected(
data_queue,
mock_gov_user,
mock_denial_reasons,
- mock_control_list_entries_get,
+ mock_control_list_entries,
mock_regime_entries_get,
mock_precedents_api,
data_standard_case,
diff --git a/unit_tests/caseworker/cases/views/test_case_bookmarks.py b/unit_tests/caseworker/cases/views/test_case_bookmarks.py
index 4edb5f046f..eb977ad07f 100644
--- a/unit_tests/caseworker/cases/views/test_case_bookmarks.py
+++ b/unit_tests/caseworker/cases/views/test_case_bookmarks.py
@@ -16,7 +16,7 @@ def test_no_bookmarks_present(
mock_queues_list,
mock_countries,
mock_no_bookmarks,
- mock_all_control_list_entries,
+ mock_control_list_entries,
mock_regime_entries,
):
url = reverse("core:index")
@@ -31,7 +31,7 @@ def test_failed_bookmarks_displays_no_bookmarks(
mock_queues_list,
mock_countries,
mock_failed_bookmarks_call,
- mock_all_control_list_entries,
+ mock_control_list_entries,
mock_regime_entries,
):
url = reverse("core:index")
@@ -48,7 +48,7 @@ def test_bookmarks_present(
mock_queues_list,
mock_countries,
gov_uk_user_id,
- mock_all_control_list_entries,
+ mock_control_list_entries,
mock_regime_entries,
):
url = reverse("core:index")
diff --git a/unit_tests/caseworker/conftest.py b/unit_tests/caseworker/conftest.py
index fbce73bc96..1b8c4717fa 100644
--- a/unit_tests/caseworker/conftest.py
+++ b/unit_tests/caseworker/conftest.py
@@ -2848,10 +2848,10 @@ def mock_flags(requests_mock, flags):
return requests_mock.get(url=url, json=flags)
-@pytest.fixture()
-def mock_all_control_list_entries(requests_mock, all_cles):
- url = client._build_absolute_uri("/static/control-list-entries/")
- return requests_mock.get(url=url, json={"control_list_entries": all_cles})
+@pytest.fixture
+def mock_control_list_entries(requests_mock, data_control_list_entries):
+ url = client._build_absolute_uri("/caseworker/static/control-list-entries/")
+ return requests_mock.get(url=url, json=data_control_list_entries)
@pytest.fixture()
diff --git a/unit_tests/caseworker/flags/test_views.py b/unit_tests/caseworker/flags/test_views.py
index afdd7377cb..20be938d67 100644
--- a/unit_tests/caseworker/flags/test_views.py
+++ b/unit_tests/caseworker/flags/test_views.py
@@ -36,98 +36,6 @@ def test_flags_can_be_created_and_modified(authorized_client, specify_config_use
assert response.context["can_change_config"] == True
-def test_flagging_rules_cannot_be_created_and_modified(authorized_client, reset_config_users_list):
-
- url = reverse("flags:flagging_rules")
- response = authorized_client.get(url)
- assert response.status_code == 200
- assert response.context["can_change_config"] == False
-
-
-def test_flagging_rules_can_be_created_and_modified(authorized_client, specify_config_users_list):
-
- url = reverse("flags:flagging_rules")
- response = authorized_client.get(url)
- assert response.status_code == 200
- assert response.context["can_change_config"] == True
-
-
-@pytest.mark.parametrize(
- "url",
- (
- (reverse("flags:add")),
- (reverse("flags:edit", kwargs={"pk": "e9f8711e-b383-47e5-b160-153f27771234"})),
- (reverse("flags:change_status", kwargs={"pk": "e9f8711e-b383-47e5-b160-153f27771234", "status": "Active"})),
- ),
-)
-def test_flags_add_view_returns_unauthorized_user_not_on_config_admin_list(
- authorized_client, reset_config_users_list, url
-):
-
- response = authorized_client.get(url)
- assert response.status_code == 403
- assert response.context["title"] == "Sorry, unauthorized"
- assert response.context["description"] == "You don't have authorisation to view this page"
-
-
-@pytest.mark.parametrize(
- "url",
- (
- (reverse("flags:add")),
- (reverse("flags:edit", kwargs={"pk": "e9f8711e-b383-47e5-b160-153f27771234"})),
- (reverse("flags:change_status", kwargs={"pk": "e9f8711e-b383-47e5-b160-153f27771234", "status": "deactivate"})),
- ),
-)
-def test_flags_add_view_returns_ok_user_on_config_admin_list(authorized_client, specify_config_users_list, url):
-
- response = authorized_client.get(url)
- assert response.status_code == 200
-
-
-@pytest.mark.parametrize(
- "url",
- (
- (reverse("flags:create_flagging_rules")),
- (reverse("flags:edit_flagging_rule", kwargs={"pk": "e9f8711e-b383-47e5-b160-153f27771234"})),
- (
- reverse(
- "flags:change_flagging_rule_status",
- kwargs={"pk": "e9f8711e-b383-47e5-b160-153f27771234", "status": "Active"},
- )
- ),
- ),
-)
-def test_flagging_rules_add_view_returns_unauthorized_user_not_on_config_admin_list(
- authorized_client, reset_config_users_list, url
-):
-
- response = authorized_client.get(url)
- assert response.status_code == 403
- assert response.context["title"] == "Sorry, unauthorized"
- assert response.context["description"] == "You don't have authorisation to view this page"
-
-
-@pytest.mark.parametrize(
- "url",
- (
- (reverse("flags:create_flagging_rules")),
- (reverse("flags:edit_flagging_rule", kwargs={"pk": "e9f8711e-b383-47e5-b160-153f27771234"})),
- (
- reverse(
- "flags:change_flagging_rule_status",
- kwargs={"pk": "e9f8711e-b383-47e5-b160-153f27771234", "status": "Active"},
- )
- ),
- ),
-)
-def test_flagging_rules_add_view_returns_ok_user_on_config_admin_list(
- authorized_client, specify_config_users_list, url
-):
-
- response = authorized_client.get(url)
- assert response.status_code == 200
-
-
def test_assign_flags_view_destination(authorized_client, queue_pk, open_case_pk):
url = reverse("cases:assign_flags", kwargs={"queue_pk": queue_pk, "pk": open_case_pk})
response = authorized_client.get(url)
diff --git a/unit_tests/conftest.py b/unit_tests/conftest.py
index f7e66f0ca0..9f0c31ad2f 100644
--- a/unit_tests/conftest.py
+++ b/unit_tests/conftest.py
@@ -21,7 +21,6 @@
from formtools.wizard.views import normalize_name
-from caseworker.core.services import CLC_ENTRIES_CACHE
from core import client
from core.constants import OrganisationDocumentType
@@ -86,22 +85,10 @@ def set_aws_s3_settings(settings, s3_settings, mocker):
@pytest.fixture
def data_control_list_entries():
# in reality there are around 3000 CLCs
- return {
- "control_list_entries": [
- {"rating": "ML1", "text": "Smooth-bore weapons with a calibre of less than 20mm, other firearms..."},
- {"rating": "ML1a", "text": "Rifles and combination guns, handguns, machine, sub-machine and volley guns"},
- ]
- }
-
-
-@pytest.fixture
-def mock_control_list_entries(requests_mock, data_control_list_entries):
- # We must clear app-level CLE cache used by core.services.get_control_list_entrie
- # so that tests remain isolated from eachother
- # TODO: Remove this when we have a better way of caching CLEs
- CLC_ENTRIES_CACHE.clear()
- url = client._build_absolute_uri("/static/control-list-entries/")
- yield requests_mock.get(url=url, json=data_control_list_entries)
+ return [
+ {"rating": "ML1", "text": "Smooth-bore weapons with a calibre of less than 20mm, other firearms..."},
+ {"rating": "ML1a", "text": "Rifles and combination guns, handguns, machine, sub-machine and volley guns"},
+ ]
@pytest.fixture
@@ -2530,17 +2517,6 @@ def data_ecju_queries():
}
-@pytest.fixture
-def mock_control_list_entries_get(requests_mock):
- url = client._build_absolute_uri(f"/static/control-list-entries/")
- return requests_mock.get(
- url=url,
- json={
- "control_list_entries": [{"rating": "ML1a", "text": "some text"}, {"rating": "ML22b", "text": "some text"}]
- },
- )
-
-
class WizardStepPoster:
def __init__(self, authorized_client, url):
self.authorized_client = authorized_client
From 04695448d438bd463e70302d88a45231eac28e93 Mon Sep 17 00:00:00 2001
From: Gurdeep Atwal
Date: Mon, 23 Sep 2024 15:50:43 +0100
Subject: [PATCH 10/19] copy changes
---
caseworker/organisations/forms.py | 4 +--
.../registration-details-individual.html | 4 +--
.../caseworker/organisations/test_views.py | 27 ++++++++++++++++++-
3 files changed, 30 insertions(+), 5 deletions(-)
diff --git a/caseworker/organisations/forms.py b/caseworker/organisations/forms.py
index 9b98c2f8b8..015372cfe7 100644
--- a/caseworker/organisations/forms.py
+++ b/caseworker/organisations/forms.py
@@ -290,7 +290,7 @@ def edit_individual_form(organisation, can_edit_name, are_fields_optional):
def review_organisation_form(request, pk):
organisation = get_organisation(request, str(pk))
matching_organisation_details = get_organisation_matching_details(request, str(pk))
-
+ organisation_type = "Other" if organisation["type"]["value"] == "Individual" else organisation["type"]["value"]
return Form(
title=ReviewOrganisationPage.TITLE,
questions=[
@@ -304,7 +304,7 @@ def review_organisation_form(request, pk):
Summary(
values={
ReviewOrganisationPage.Summary.NAME: organisation["name"],
- ReviewOrganisationPage.Summary.TYPE: organisation["type"]["value"],
+ ReviewOrganisationPage.Summary.TYPE: organisation_type,
ReviewOrganisationPage.Summary.EORI: organisation["eori_number"],
ReviewOrganisationPage.Summary.SIC: organisation["sic_number"],
ReviewOrganisationPage.Summary.VAT: organisation["vat_number"],
diff --git a/exporter/templates/core/registration/includes/registration-details-individual.html b/exporter/templates/core/registration/includes/registration-details-individual.html
index 8f703e3ac3..c483aaa2d2 100644
--- a/exporter/templates/core/registration/includes/registration-details-individual.html
+++ b/exporter/templates/core/registration/includes/registration-details-individual.html
@@ -1,12 +1,12 @@
- Register a private individual
+ Organisation details
-
- First and last name
+ Name
-
{{ registration_data.name}}
diff --git a/unit_tests/caseworker/organisations/test_views.py b/unit_tests/caseworker/organisations/test_views.py
index db48599024..5c556f3ce7 100644
--- a/unit_tests/caseworker/organisations/test_views.py
+++ b/unit_tests/caseworker/organisations/test_views.py
@@ -14,7 +14,7 @@ def organisation():
return {
"form_pk": 1,
"name": "regional site",
- "type": "commercial",
+ "type": {"value": "commercial"},
"location": "united_kingdom",
"eori_number": "123456789AA",
"sic_number": "2345",
@@ -136,3 +136,28 @@ def test_organisations_html_title_on_changed_tab(authorized_client, requests_moc
actual_title = soup.title.string.strip()
actual_title = actual_title.replace("\n", "").replace("\t", "")
assert actual_title == expected_title
+
+
+@pytest.mark.parametrize(
+ ("org_type", "expected_value"),
+ [
+ ("Commercial Organisation", "Commercial Organisation"),
+ ("Individual", "Other"),
+ ],
+)
+def test_review_organisation(authorized_client, requests_mock, retrieved_organisation, org_type, expected_value):
+ organisation_id = UUID(retrieved_organisation["id"])
+ retrieved_organisation["type"]["value"] = org_type
+ requests_mock.get(client._build_absolute_uri(f"/organisations/{organisation_id}"), json=retrieved_organisation)
+ requests_mock.get(
+ client._build_absolute_uri(f"/organisations/{organisation_id}/matching_details/"),
+ json={"matching_properties": []},
+ )
+ url = reverse("organisations:organisation_review", kwargs={"pk": organisation_id})
+ response = authorized_client.get(url)
+
+ assert response.status_code == 200
+ soup = BeautifulSoup(response.content, "html.parser")
+ soup.find_all("govuk-summary-list__row")
+ org_details = soup.find_all(class_="govuk-summary-list__row")
+ assert org_details[1].span.text == expected_value
From 3487ffe3aa288396eb63eda209a7ce3d81691eaf Mon Sep 17 00:00:00 2001
From: Kevin Carrogan
Date: Fri, 20 Sep 2024 16:08:57 +0100
Subject: [PATCH 11/19] Make logout clear session for exporter mock sso
---
core/mock_sso/views.py | 7 +++++--
exporter/mock_sso/views.py | 10 ++--------
2 files changed, 7 insertions(+), 10 deletions(-)
diff --git a/core/mock_sso/views.py b/core/mock_sso/views.py
index d7bfcacc35..479d49d88b 100644
--- a/core/mock_sso/views.py
+++ b/core/mock_sso/views.py
@@ -147,7 +147,10 @@ def get(self, request, **kwargs):
class Logout(RedirectView):
- def get_redirect_url(self, *args, **kwargs):
+ def get_redirect_url(self):
redirect_url = self.request.build_absolute_uri("/")
- self.request.session.flush()
return redirect_url
+
+ def get(self, request, *args, **kwargs):
+ self.request.session.flush()
+ return super().get(request, *args, **kwargs)
diff --git a/exporter/mock_sso/views.py b/exporter/mock_sso/views.py
index 6d50ce7cc6..1da2706626 100644
--- a/exporter/mock_sso/views.py
+++ b/exporter/mock_sso/views.py
@@ -1,12 +1,6 @@
-from django.views.generic import RedirectView
+from core.mock_sso.views import Logout as CoreLogout
-class Logout(RedirectView):
- """This logout view replicates how an openid logout endpoint would work.
-
- This purposefully doesn't need to provide any additional functionality
- beyond just redirecting back to the provided value.
- """
-
+class Logout(CoreLogout):
def get_redirect_url(self):
return self.request.GET["post_logout_redirect_uri"]
From 371f1194eaec1fc58203dffa7675ae67a3273113 Mon Sep 17 00:00:00 2001
From: Kevin Carrogan
Date: Fri, 20 Sep 2024 11:24:01 +0100
Subject: [PATCH 12/19] Rename good to good_on_application in licences template
---
exporter/templates/licences/licences.html | 16 ++++++++--------
1 file changed, 8 insertions(+), 8 deletions(-)
diff --git a/exporter/templates/licences/licences.html b/exporter/templates/licences/licences.html
index 03e6f23311..30b92a105f 100644
--- a/exporter/templates/licences/licences.html
+++ b/exporter/templates/licences/licences.html
@@ -56,12 +56,12 @@