diff --git a/conf/requirements.txt b/conf/requirements.txt index 47c70fa..a1a3651 100644 --- a/conf/requirements.txt +++ b/conf/requirements.txt @@ -30,7 +30,9 @@ bleach==6.1.0 \ bx-django-utils==79 \ --hash=sha256:cb66087d4e9396281acf5a4394b749cff3062b66082d5726f6a8a342fdd35d0e \ --hash=sha256:d50b10ace24b0b363574542faecf04a81029e2fec6d6e6525fe063ed06238e04 - # via django-for-runners + # via + # django-for-runners + # django-tools bx-py-utils==98 \ --hash=sha256:30fb49b0f0b21c9fbd544895480a1aa9da63f410572e4b46afbca792e64cec98 \ --hash=sha256:ac8b193ff117420b77b43c043e50b195d6aa9ee7e72e22265ca699730b61f71f @@ -154,6 +156,7 @@ colorlog==6.8.2 \ --hash=sha256:4dcbb62368e2800cb3c5abd348da7e53f6c362dda502ec27c560b2e58a66bd33 # via # django-for-runners + # django-tools # django-yunohost-integration contourpy==1.2.1 \ --hash=sha256:00e5388f71c1a0610e6fe56b5c44ab7ba14165cdd6d695429c5cd94021e390b2 \ @@ -209,9 +212,9 @@ diff-match-patch==20230430 \ --hash=sha256:953019cdb9c9d2c9e47b5b12bcff3cf4746fc4598eb406076fa1fc27e6a1f15c \ --hash=sha256:dce43505fb7b1b317de7195579388df0746d90db07015ed47a85e5e44930ef93 # via django-import-export -django==4.2.15 \ - --hash=sha256:61ee4a130efb8c451ef3467c67ca99fdce400fedd768634efc86a68c18d80d30 \ - --hash=sha256:c77f926b81129493961e19c0e02188f8d07c112a1162df69bfab178ae447f94a +django==5.1 \ + --hash=sha256:848a5980e8efb76eea70872fb0e4bc5e371619c70fffbe48e3e1b50b2c09455d \ + --hash=sha256:d3b811bf5371a26def053d7ee42a9df1267ef7622323fe70a601936725aa4557 # via # bx-django-utils # django-admin-sortable2 @@ -243,9 +246,9 @@ django-debug-toolbar==4.4.6 \ --hash=sha256:36e421cb908c2f0675e07f9f41e3d1d8618dc386392ec82d23bcfcd5d29c7044 \ --hash=sha256:3beb671c9ec44ffb817fad2780667f172bd1c067dbcabad6268ce39a81335f45 # via django-for-runners -django-for-runners==0.19.0 \ - --hash=sha256:48f7e48a5758c113828cdb09a499bce7f16f5114be27c6848c2e89968ba8a2e3 \ - --hash=sha256:aa8c7b66590e76b6ac6050f91904a561fada8450bc2a41a2ccf9df2fff9e664a +django-for-runners==0.20.0 \ + --hash=sha256:9d4460fa3f458eecad42d53b6cd275797593c1bea04354f9f787395cca1741e6 \ + --hash=sha256:bc9c5a8770913349810c184cfbd2f3b06fb25cdbacaef3c4f20b1870075c0ca5 # via for_runners_ynh (pyproject.toml) django-import-export==4.1.1 \ --hash=sha256:16ecc5a9f0df46bde6eb278a3e65ebda0ee1db55656f36440e9fb83f40ab85a3 \ @@ -263,15 +266,15 @@ django-rich==1.10.0 \ --hash=sha256:1f195f37fcb9ae02554c4281ded220c0c31c78a409480a3028ed42011c8374aa \ --hash=sha256:53f2630e174f2d0aa5ae95b0421c2668186ff7d0e5578e5eab962cca57af7d40 # via django-for-runners -django-tools==0.54.0 \ - --hash=sha256:5040a91282be9d1c9d379b0c65da50bcb3691bff03cee54fd4123ace238c3a43 \ - --hash=sha256:a7b7bfa5b9c5a81966454d17dffb2403cee25a806c858ee0486a08798227598f +django-tools==0.56.2 \ + --hash=sha256:29c25be814d74cd9f554d7d45bc205f5570e5feaa4232cbd09cc913c46b20c07 \ + --hash=sha256:88a192f2873f0411b99ee1aba04f2779133284cd18a5c78976e8e4605ba5d7f7 # via # django-for-runners # django-yunohost-integration -django-yunohost-integration[ynh]==0.8.0 \ - --hash=sha256:20dfb25795f808770a5e264e7e796315127b732132f559083ed220121094a1b4 \ - --hash=sha256:f295c19537f9a821b64b9b03d9394c7c12924a9e5f0b170973367749b2575531 +django-yunohost-integration[ynh]==0.8.1 \ + --hash=sha256:236bc1e427162182ca5efbf773bbad642b20741e7bf42308134887f4b7c27ced \ + --hash=sha256:ced40614ba57edb0d80482e6f4f63c614115184695d2f2aaa1aa02b2485b0529 # via for_runners_ynh (pyproject.toml) fonttools==4.53.1 \ --hash=sha256:02569e9a810f9d11f4ae82c391ebc6fb5730d95a0657d24d754ed7763fb2d122 \ @@ -334,6 +337,7 @@ gunicorn==23.0.0 \ --hash=sha256:f014447a0101dc57e294f6c18ca6b40227a4c90e9bdb586042628030cba004ec # via # django-for-runners + # django-tools # django-yunohost-integration icdiff==2.0.7 \ --hash=sha256:f05d1b3623223dd1c70f7848da7d699de3d9a2550b902a8234d9026292fb5762 \ @@ -856,9 +860,9 @@ pygments==2.18.0 \ --hash=sha256:786ff802f32e91311bff3889f6e9a86e81505fe99f2735bb6d60ae0c5004f199 \ --hash=sha256:b8e6aca0523f3ab76fee51799c488e38782ac06eafcf95e7ba832985c8e7b13a # via rich -pyparsing==3.1.2 \ - --hash=sha256:a1bac0ce561155ecc3ed78ca94d3c9378656ad4c94c1270de543f621420f94ad \ - --hash=sha256:f9db75911801ed778fe61bb643079ff86601aca99fcae6345aa67292038fb742 +pyparsing==3.1.3 \ + --hash=sha256:1e80fdf93e6c1aeaf4702523f1d48f66d52fa6459096a8f812591157270a5896 \ + --hash=sha256:5d549d2a1b5e1c3e952bb55ea247bfb5ad427ea307566a350db2b3c34d4ce181 # via matplotlib python-dateutil==2.9.0.post0 \ --hash=sha256:37dd54208da7e1cd875388217d5e00ebd4179249f90fb72437e91a35459a0ad3 \ diff --git a/for_runners_ynh/__init__.py b/for_runners_ynh/__init__.py index 1e0eacf..d1be06e 100644 --- a/for_runners_ynh/__init__.py +++ b/for_runners_ynh/__init__.py @@ -3,5 +3,5 @@ YunoHost app package for https://github.com/jedie/django-for-runners """ -__version__ = '0.19.0+ynh1' +__version__ = '0.20.0+ynh1' __author__ = 'Jens Diemer ' diff --git a/for_runners_ynh/tests/__init__.py b/for_runners_ynh/tests/__init__.py index c1be656..fcfa6d6 100644 --- a/for_runners_ynh/tests/__init__.py +++ b/for_runners_ynh/tests/__init__.py @@ -7,6 +7,7 @@ import django from bx_py_utils.test_utils.deny_requests import deny_any_real_request from cli_base.cli_tools.verbosity import MAX_LOG_LEVEL, setup_logging from django_yunohost_integration.local_test import CreateResults, create_local_test +from django_yunohost_integration.path_utils import get_project_root from rich import print # noqa from typeguard import install_import_hook @@ -33,14 +34,13 @@ def pre_configure_tests() -> None: def setup_ynh_tests() -> None: # Import after "install_import_hook" to check type annotations: import for_runners_ynh - from for_runners_ynh.constants import PACKAGE_ROOT os.environ['DJANGO_SETTINGS_MODULE'] = 'settings' print('Compile YunoHost files...') result: CreateResults = create_local_test( - django_settings_path=PACKAGE_ROOT / 'conf' / 'settings.py', - destination=PACKAGE_ROOT / 'local_test', + django_settings_path=get_project_root() / 'conf' / 'settings.py', + destination=get_project_root() / 'local_test', runserver=False, extra_replacements={ '__DEBUG_ENABLED__': '0', # "1" or "0" string diff --git a/for_runners_ynh/tests/test_django_project_create_unknown_user_1.snapshot.html b/for_runners_ynh/tests/test_django_project_create_unknown_user_1.snapshot.html index 2cd5ede..84f96ea 100644 --- a/for_runners_ynh/tests/test_django_project_create_unknown_user_1.snapshot.html +++ b/for_runners_ynh/tests/test_django_project_create_unknown_user_1.snapshot.html @@ -1,5 +1,5 @@
-
+

@@ -26,7 +26,5 @@

- -
+
\ No newline at end of file diff --git a/manifest.toml b/manifest.toml index 7c12aec..f9217bd 100644 --- a/manifest.toml +++ b/manifest.toml @@ -5,7 +5,7 @@ id = "django-for-runners" name = "django-for-runners" description.en = "YunoHost app package for https://github.com/jedie/django-for-runners" -version = "0.19.0~ynh1" +version = "0.20.0~ynh1" maintainers = ["Jens Diemer"] diff --git a/pyproject.toml b/pyproject.toml index 4a14510..fe43e7f 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -9,11 +9,11 @@ authors = [ ] requires-python = ">=3.11" dependencies = [ - "django_for_runners>=0.19.0", # https://github.com/jedie/django-for-runners + "django_for_runners>=0.20.0", # https://github.com/jedie/django-for-runners # # extras "ynh" will install: gunicorn, psycopg2, django-redis and django-axes # see: https://github.com/YunoHost-Apps/django_yunohost_integration/blob/main/pyproject.toml - "django_yunohost_integration[ynh]>=0.8.0", # https://github.com/YunoHost-Apps/django_yunohost_integration + "django_yunohost_integration[ynh]", # https://github.com/YunoHost-Apps/django_yunohost_integration # "cli-base-utilities", # https://github.com/jedie/cli-base-utilities ] @@ -34,6 +34,7 @@ dev = [ "EditorConfig", # https://github.com/editorconfig/editorconfig-core-py "pip-audit", # https://github.com/pypa/pip-audit "mypy", # https://github.com/python/mypy + "typeguard", # https://github.com/agronholm/typeguard/ "twine", # https://github.com/pypa/twine # https://github.com/akaihola/darker diff --git a/requirements.dev.txt b/requirements.dev.txt index e2d70f9..12ce78b 100644 --- a/requirements.dev.txt +++ b/requirements.dev.txt @@ -95,6 +95,7 @@ bx-django-utils==79 \ --hash=sha256:d50b10ace24b0b363574542faecf04a81029e2fec6d6e6525fe063ed06238e04 # via # django-for-runners + # django-tools # for_runners_ynh (pyproject.toml) bx-py-utils==98 \ --hash=sha256:30fb49b0f0b21c9fbd544895480a1aa9da63f410572e4b46afbca792e64cec98 \ @@ -320,6 +321,7 @@ colorlog==6.8.2 \ --hash=sha256:4dcbb62368e2800cb3c5abd348da7e53f6c362dda502ec27c560b2e58a66bd33 # via # django-for-runners + # django-tools # django-yunohost-integration contourpy==1.2.1 \ --hash=sha256:00e5388f71c1a0610e6fe56b5c44ab7ba14165cdd6d695429c5cd94021e390b2 \ @@ -506,9 +508,9 @@ distlib==0.3.8 \ --hash=sha256:034db59a0b96f8ca18035f36290806a9a6e6bd9d1ff91e45a7f172eb17e51784 \ --hash=sha256:1530ea13e350031b6312d8580ddb6b27a104275a31106523b8f123787f494f64 # via virtualenv -django==4.2.15 \ - --hash=sha256:61ee4a130efb8c451ef3467c67ca99fdce400fedd768634efc86a68c18d80d30 \ - --hash=sha256:c77f926b81129493961e19c0e02188f8d07c112a1162df69bfab178ae447f94a +django==5.1 \ + --hash=sha256:848a5980e8efb76eea70872fb0e4bc5e371619c70fffbe48e3e1b50b2c09455d \ + --hash=sha256:d3b811bf5371a26def053d7ee42a9df1267ef7622323fe70a601936725aa4557 # via # bx-django-utils # django-admin-sortable2 @@ -540,9 +542,9 @@ django-debug-toolbar==4.4.6 \ --hash=sha256:36e421cb908c2f0675e07f9f41e3d1d8618dc386392ec82d23bcfcd5d29c7044 \ --hash=sha256:3beb671c9ec44ffb817fad2780667f172bd1c067dbcabad6268ce39a81335f45 # via django-for-runners -django-for-runners==0.19.0 \ - --hash=sha256:48f7e48a5758c113828cdb09a499bce7f16f5114be27c6848c2e89968ba8a2e3 \ - --hash=sha256:aa8c7b66590e76b6ac6050f91904a561fada8450bc2a41a2ccf9df2fff9e664a +django-for-runners==0.20.0 \ + --hash=sha256:9d4460fa3f458eecad42d53b6cd275797593c1bea04354f9f787395cca1741e6 \ + --hash=sha256:bc9c5a8770913349810c184cfbd2f3b06fb25cdbacaef3c4f20b1870075c0ca5 # via for_runners_ynh (pyproject.toml) django-import-export==4.1.1 \ --hash=sha256:16ecc5a9f0df46bde6eb278a3e65ebda0ee1db55656f36440e9fb83f40ab85a3 \ @@ -560,15 +562,15 @@ django-rich==1.10.0 \ --hash=sha256:1f195f37fcb9ae02554c4281ded220c0c31c78a409480a3028ed42011c8374aa \ --hash=sha256:53f2630e174f2d0aa5ae95b0421c2668186ff7d0e5578e5eab962cca57af7d40 # via django-for-runners -django-tools==0.54.0 \ - --hash=sha256:5040a91282be9d1c9d379b0c65da50bcb3691bff03cee54fd4123ace238c3a43 \ - --hash=sha256:a7b7bfa5b9c5a81966454d17dffb2403cee25a806c858ee0486a08798227598f +django-tools==0.56.2 \ + --hash=sha256:29c25be814d74cd9f554d7d45bc205f5570e5feaa4232cbd09cc913c46b20c07 \ + --hash=sha256:88a192f2873f0411b99ee1aba04f2779133284cd18a5c78976e8e4605ba5d7f7 # via # django-for-runners # django-yunohost-integration -django-yunohost-integration[ynh]==0.8.0 \ - --hash=sha256:20dfb25795f808770a5e264e7e796315127b732132f559083ed220121094a1b4 \ - --hash=sha256:f295c19537f9a821b64b9b03d9394c7c12924a9e5f0b170973367749b2575531 +django-yunohost-integration[ynh]==0.8.1 \ + --hash=sha256:236bc1e427162182ca5efbf773bbad642b20741e7bf42308134887f4b7c27ced \ + --hash=sha256:ced40614ba57edb0d80482e6f4f63c614115184695d2f2aaa1aa02b2485b0529 # via for_runners_ynh (pyproject.toml) docutils==0.21.2 \ --hash=sha256:3a6b18732edf182daa3cd12775bbb338cf5691468f91eeeb109deff6ebfa986f \ @@ -666,6 +668,7 @@ gunicorn==23.0.0 \ --hash=sha256:f014447a0101dc57e294f6c18ca6b40227a4c90e9bdb586042628030cba004ec # via # django-for-runners + # django-tools # django-yunohost-integration html5lib==1.1 \ --hash=sha256:0d78f8fde1c230e99fe37986a60526d7049ed4bf8a9fadbad5f00e22e58e041d \ @@ -1147,34 +1150,34 @@ msgpack==1.0.8 \ --hash=sha256:f9904e24646570539a8950400602d66d2b2c492b9010ea7e965025cb71d0c86d \ --hash=sha256:f9af38a89b6a5c04b7d18c492c8ccf2aee7048aff1ce8437c4683bb5a1df893d # via cachecontrol -mypy==1.11.1 \ - --hash=sha256:0624bdb940255d2dd24e829d99a13cfeb72e4e9031f9492148f410ed30bcab54 \ - --hash=sha256:0bc71d1fb27a428139dd78621953effe0d208aed9857cb08d002280b0422003a \ - --hash=sha256:0bd53faf56de9643336aeea1c925012837432b5faf1701ccca7fde70166ccf72 \ - --hash=sha256:11965c2f571ded6239977b14deebd3f4c3abd9a92398712d6da3a772974fad69 \ - --hash=sha256:1a81cf05975fd61aec5ae16501a091cfb9f605dc3e3c878c0da32f250b74760b \ - --hash=sha256:2684d3f693073ab89d76da8e3921883019ea8a3ec20fa5d8ecca6a2db4c54bbe \ - --hash=sha256:2c63350af88f43a66d3dfeeeb8d77af34a4f07d760b9eb3a8697f0386c7590b4 \ - --hash=sha256:45df906e8b6804ef4b666af29a87ad9f5921aad091c79cc38e12198e220beabd \ - --hash=sha256:4c956b49c5d865394d62941b109728c5c596a415e9c5b2be663dd26a1ff07bc0 \ - --hash=sha256:64f4a90e3ea07f590c5bcf9029035cf0efeae5ba8be511a8caada1a4893f5525 \ - --hash=sha256:749fd3213916f1751fff995fccf20c6195cae941dc968f3aaadf9bb4e430e5a2 \ - --hash=sha256:79c07eb282cb457473add5052b63925e5cc97dfab9812ee65a7c7ab5e3cb551c \ - --hash=sha256:7b6343d338390bb946d449677726edf60102a1c96079b4f002dedff375953fc5 \ - --hash=sha256:886c9dbecc87b9516eff294541bf7f3655722bf22bb898ee06985cd7269898de \ - --hash=sha256:a2b43895a0f8154df6519706d9bca8280cda52d3d9d1514b2d9c3e26792a0b74 \ - --hash=sha256:a32fc80b63de4b5b3e65f4be82b4cfa362a46702672aa6a0f443b4689af7008c \ - --hash=sha256:a707ec1527ffcdd1c784d0924bf5cb15cd7f22683b919668a04d2b9c34549d2e \ - --hash=sha256:a831671bad47186603872a3abc19634f3011d7f83b083762c942442d51c58d58 \ - --hash=sha256:b639dce63a0b19085213ec5fdd8cffd1d81988f47a2dec7100e93564f3e8fb3b \ - --hash=sha256:b868d3bcff720dd7217c383474008ddabaf048fad8d78ed948bb4b624870a417 \ - --hash=sha256:c1952f5ea8a5a959b05ed5f16452fddadbaae48b5d39235ab4c3fc444d5fd411 \ - --hash=sha256:d44be7551689d9d47b7abc27c71257adfdb53f03880841a5db15ddb22dc63edb \ - --hash=sha256:e1e30dc3bfa4e157e53c1d17a0dad20f89dc433393e7702b813c10e200843b03 \ - --hash=sha256:e4fe9f4e5e521b458d8feb52547f4bade7ef8c93238dfb5bbc790d9ff2d770ca \ - --hash=sha256:f39918a50f74dc5969807dcfaecafa804fa7f90c9d60506835036cc1bc891dc8 \ - --hash=sha256:f404a0b069709f18bbdb702eb3dcfe51910602995de00bd39cea3050b5772d08 \ - --hash=sha256:fca4a60e1dd9fd0193ae0067eaeeb962f2d79e0d9f0f66223a0682f26ffcc809 +mypy==1.11.2 \ + --hash=sha256:06d26c277962f3fb50e13044674aa10553981ae514288cb7d0a738f495550b36 \ + --hash=sha256:2ff93107f01968ed834f4256bc1fc4475e2fecf6c661260066a985b52741ddce \ + --hash=sha256:36383a4fcbad95f2657642a07ba22ff797de26277158f1cc7bd234821468b1b6 \ + --hash=sha256:37c7fa6121c1cdfcaac97ce3d3b5588e847aa79b580c1e922bb5d5d2902df19b \ + --hash=sha256:3a66169b92452f72117e2da3a576087025449018afc2d8e9bfe5ffab865709ca \ + --hash=sha256:3f14cd3d386ac4d05c5a39a51b84387403dadbd936e17cb35882134d4f8f0d24 \ + --hash=sha256:41ea707d036a5307ac674ea172875f40c9d55c5394f888b168033177fce47383 \ + --hash=sha256:478db5f5036817fe45adb7332d927daa62417159d49783041338921dcf646fc7 \ + --hash=sha256:4a8a53bc3ffbd161b5b2a4fff2f0f1e23a33b0168f1c0778ec70e1a3d66deb86 \ + --hash=sha256:539c570477a96a4e6fb718b8d5c3e0c0eba1f485df13f86d2970c91f0673148d \ + --hash=sha256:57555a7715c0a34421013144a33d280e73c08df70f3a18a552938587ce9274f4 \ + --hash=sha256:6e658bd2d20565ea86da7d91331b0eed6d2eee22dc031579e6297f3e12c758c8 \ + --hash=sha256:6e7184632d89d677973a14d00ae4d03214c8bc301ceefcdaf5c474866814c987 \ + --hash=sha256:75746e06d5fa1e91bfd5432448d00d34593b52e7e91a187d981d08d1f33d4385 \ + --hash=sha256:7f9993ad3e0ffdc95c2a14b66dee63729f021968bff8ad911867579c65d13a79 \ + --hash=sha256:801780c56d1cdb896eacd5619a83e427ce436d86a3bdf9112527f24a66618fef \ + --hash=sha256:801ca29f43d5acce85f8e999b1e431fb479cb02d0e11deb7d2abb56bdaf24fd6 \ + --hash=sha256:969ea3ef09617aff826885a22ece0ddef69d95852cdad2f60c8bb06bf1f71f70 \ + --hash=sha256:a976775ab2256aadc6add633d44f100a2517d2388906ec4f13231fafbb0eccca \ + --hash=sha256:af8d155170fcf87a2afb55b35dc1a0ac21df4431e7d96717621962e4b9192e70 \ + --hash=sha256:b499bc07dbdcd3de92b0a8b29fdf592c111276f6a12fe29c30f6c417dd546d12 \ + --hash=sha256:cd953f221ac1379050a8a646585a29574488974f79d8082cedef62744f0a0104 \ + --hash=sha256:d42a6dd818ffce7be66cce644f1dff482f1d97c53ca70908dff0b9ddc120b77a \ + --hash=sha256:e8960dbbbf36906c5c0b7f4fbf2f0c7ffb20f4898e6a879fcf56a41a08b0d318 \ + --hash=sha256:edb91dded4df17eae4537668b23f0ff6baf3707683734b6a818d5b9d0c0c31a1 \ + --hash=sha256:ee23de8530d99b6db0573c4ef4bd8f39a2a6f9b60655bf7a1357e585a3486f2b \ + --hash=sha256:f7821776e5c4286b6a13138cc935e2e9b6fde05e081bdebf5cdb2bb97c9df81d # via # for_runners_ynh (pyproject.toml) # manageprojects @@ -1486,9 +1489,9 @@ pygments==2.18.0 \ # darker # readme-renderer # rich -pyparsing==3.1.2 \ - --hash=sha256:a1bac0ce561155ecc3ed78ca94d3c9378656ad4c94c1270de543f621420f94ad \ - --hash=sha256:f9db75911801ed778fe61bb643079ff86601aca99fcae6345aa67292038fb742 +pyparsing==3.1.3 \ + --hash=sha256:1e80fdf93e6c1aeaf4702523f1d48f66d52fa6459096a8f812591157270a5896 \ + --hash=sha256:5d549d2a1b5e1c3e952bb55ea247bfb5ad427ea307566a350db2b3c34d4ce181 # via # matplotlib # pip-requirements-parser @@ -1708,6 +1711,10 @@ twine==5.1.1 \ --hash=sha256:215dbe7b4b94c2c50a7315c0275d2258399280fbb7d04182c7e55e24b5f93997 \ --hash=sha256:9aa0825139c02b3434d913545c7b847a21c835e11597f5255842d457da2322db # via for_runners_ynh (pyproject.toml) +typeguard==4.3.0 \ + --hash=sha256:4d24c5b39a117f8a895b9da7a9b3114f04eb63bade45a4492de49b175b6f7dfa \ + --hash=sha256:92ee6a0aec9135181eae6067ebd617fd9de8d75d714fb548728a4933b1dea651 + # via for_runners_ynh (pyproject.toml) types-python-dateutil==2.9.0.20240821 \ --hash=sha256:9649d1dcb6fef1046fb18bebe9ea2aa0028b160918518c34589a46045f6ebd98 \ --hash=sha256:f5889fcb4e63ed4aaa379b44f93c32593d50b9a94c9a60a0c854d8cc3511cd57 @@ -1719,6 +1726,7 @@ typing-extensions==4.12.2 \ # mypy # psycopg # rich-click + # typeguard url-normalize==1.4.3 \ --hash=sha256:d23d3a070ac52a67b83a1c59a0e68f8608d1cd538783b401bc9de2c0fac999b2 \ --hash=sha256:ec3c301f04e5bb676d333a7fa162fa977ad2ca04b7e652bfc9fac4e405728eed