nix: full build stages

fix: docs route match
This commit is contained in:
L-Nafaryus 2024-10-04 16:44:54 +05:00
parent d856176313
commit af92d19570
Signed by: L-Nafaryus
GPG Key ID: 553C97999B363D38
7 changed files with 1075 additions and 825 deletions

View File

@ -61,25 +61,34 @@
mkDerivation = { mkDerivation = {
src = ./.; src = ./.;
buildInputs = [ buildInputs =
pkgs.python312.pkgs.pdm-backend [
]; config.deps.python.pkgs.pdm-backend
]
++ map (x: (pkgs.lib.head (pkgs.lib.attrValues x)).public) (
pkgs.lib.attrValues (config.groups.docs.packages)
);
nativeBuildInputs = [ nativeBuildInputs = [
pkgs.python312.pkgs.wrapPython pkgs.python312.pkgs.wrapPython
]; ];
configurePhase = '' configurePhase = ''
${lib.getExe pkgs.mkdocs} build -d src/materia/docs/ python -m mkdocs build -d src/materia/docs/
''; '';
# TODO: include docs # TODO: include docs
}; };
}; };
meta = with nixpkgs.lib; {
description = "Materia";
license = licenses.mit;
maintainers = with bonLib.maintainers; [L-Nafaryus];
broken = false;
mainProgram = "materia";
}; };
materia-frontend-vue-source = pkgs.stdenv.mkDerivation {
pname = "materia-frontend-vue-source";
version = "0.1.1";
src = ./workspaces/frontend;
phases = ["installPhase"];
installPhase = ''
mkdir -p $out
cp -r $src/* $out
${self.packages.x86_64-linux.materia-server}/bin/materia export openapi --path $out/openapi.json
'';
}; };
materia-frontend-vue = dreamBuildPackage { materia-frontend-vue = dreamBuildPackage {
@ -97,11 +106,10 @@
]; ];
mkDerivation = { mkDerivation = {
src = ./workspaces/frontend; src = builtins.path {
configurePhase = '' name = "source";
${self.packages.x86_64-linux.materia-server}/bin/materia export openapi --path ./ path = self.packages.x86_64-linux.materia-frontend-vue-source;
npm run openapi };
'';
}; };
deps = {nixpkgs, ...}: { deps = {nixpkgs, ...}: {
@ -151,6 +159,8 @@
]; ];
configurePhase = '' configurePhase = ''
cp -rv ${materia-frontend-vue}/dist ./src/materia_frontend/ cp -rv ${materia-frontend-vue}/dist ./src/materia_frontend/
chmod 755 ./src/materia_frontend/dist
cp -rv templates/* ./src/materia_frontend/dist/
''; '';
}; };
}; };

263
pdm.lock generated
View File

@ -5,7 +5,7 @@
groups = ["default", "dev", "docs", "frontend", "all"] groups = ["default", "dev", "docs", "frontend", "all"]
strategy = ["cross_platform", "inherit_metadata"] strategy = ["cross_platform", "inherit_metadata"]
lock_version = "4.4.1" lock_version = "4.4.1"
content_hash = "sha256:104d22a8697b526a94102232df0443fe395b4eb1dd8529acd933375fbcff7595" content_hash = "sha256:cbe47c7d41447213b355757ddb6784989a2213768127cf60c101063c01311bbd"
[[package]] [[package]]
name = "aiofiles" name = "aiofiles"
@ -42,7 +42,7 @@ files = [
[[package]] [[package]]
name = "alembic" name = "alembic"
version = "1.13.2" version = "1.13.3"
requires_python = ">=3.8" requires_python = ">=3.8"
summary = "A database migration tool for SQLAlchemy." summary = "A database migration tool for SQLAlchemy."
groups = ["all", "default"] groups = ["all", "default"]
@ -52,8 +52,8 @@ dependencies = [
"typing-extensions>=4", "typing-extensions>=4",
] ]
files = [ files = [
{file = "alembic-1.13.2-py3-none-any.whl", hash = "sha256:6b8733129a6224a9a711e17c99b08462dbf7cc9670ba8f2e2ae9af860ceb1953"}, {file = "alembic-1.13.3-py3-none-any.whl", hash = "sha256:908e905976d15235fae59c9ac42c4c5b75cfcefe3d27c0fbf7ae15a37715d80e"},
{file = "alembic-1.13.2.tar.gz", hash = "sha256:1ff0ae32975f4fd96028c39ed9bb3c867fe3af956bd7bb37343b54c9fe7445ef"}, {file = "alembic-1.13.3.tar.gz", hash = "sha256:203503117415561e203aa14541740643a611f641517f0209fcae63e9fa09f1a2"},
] ]
[[package]] [[package]]
@ -145,7 +145,7 @@ files = [
[[package]] [[package]]
name = "authlib" name = "authlib"
version = "1.3.1" version = "1.3.2"
requires_python = ">=3.8" requires_python = ">=3.8"
summary = "The ultimate Python library in building OAuth and OpenID Connect servers and clients." summary = "The ultimate Python library in building OAuth and OpenID Connect servers and clients."
groups = ["all", "default"] groups = ["all", "default"]
@ -153,8 +153,8 @@ dependencies = [
"cryptography", "cryptography",
] ]
files = [ files = [
{file = "Authlib-1.3.1-py2.py3-none-any.whl", hash = "sha256:d35800b973099bbadc49b42b256ecb80041ad56b7fe1216a362c7943c088f377"}, {file = "Authlib-1.3.2-py2.py3-none-any.whl", hash = "sha256:ede026a95e9f5cdc2d4364a52103f5405e75aa156357e831ef2bfd0bc5094dfc"},
{file = "authlib-1.3.1.tar.gz", hash = "sha256:7ae843f03c06c5c0debd63c9db91f9fda64fa62a42a77419fa15fbb7e7a58917"}, {file = "authlib-1.3.2.tar.gz", hash = "sha256:4b16130117f9eb82aa6eec97f6dd4673c3f960ac0283ccdae2897ee4bc030ba2"},
] ]
[[package]] [[package]]
@ -162,7 +162,7 @@ name = "babel"
version = "2.16.0" version = "2.16.0"
requires_python = ">=3.8" requires_python = ">=3.8"
summary = "Internationalization utilities" summary = "Internationalization utilities"
groups = ["all", "docs"] groups = ["docs"]
files = [ files = [
{file = "babel-2.16.0-py3-none-any.whl", hash = "sha256:368b5b98b37c06b7daf6696391c3240c938b37767d4584413e8438c5c435fa8b"}, {file = "babel-2.16.0-py3-none-any.whl", hash = "sha256:368b5b98b37c06b7daf6696391c3240c938b37767d4584413e8438c5c435fa8b"},
{file = "babel-2.16.0.tar.gz", hash = "sha256:d1f3554ca26605fe173f3de0c65f750f5a42f924499bf134de6423582298e316"}, {file = "babel-2.16.0.tar.gz", hash = "sha256:d1f3554ca26605fe173f3de0c65f750f5a42f924499bf134de6423582298e316"},
@ -457,7 +457,7 @@ files = [
[[package]] [[package]]
name = "cryptography" name = "cryptography"
version = "43.0.0" version = "43.0.1"
requires_python = ">=3.7" requires_python = ">=3.7"
summary = "cryptography is a package which provides cryptographic recipes and primitives to Python developers." summary = "cryptography is a package which provides cryptographic recipes and primitives to Python developers."
groups = ["all", "default"] groups = ["all", "default"]
@ -465,33 +465,33 @@ dependencies = [
"cffi>=1.12; platform_python_implementation != \"PyPy\"", "cffi>=1.12; platform_python_implementation != \"PyPy\"",
] ]
files = [ files = [
{file = "cryptography-43.0.0-cp37-abi3-macosx_10_9_universal2.whl", hash = "sha256:64c3f16e2a4fc51c0d06af28441881f98c5d91009b8caaff40cf3548089e9c74"}, {file = "cryptography-43.0.1-cp37-abi3-macosx_10_9_universal2.whl", hash = "sha256:8385d98f6a3bf8bb2d65a73e17ed87a3ba84f6991c155691c51112075f9ffc5d"},
{file = "cryptography-43.0.0-cp37-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3dcdedae5c7710b9f97ac6bba7e1052b95c7083c9d0e9df96e02a1932e777895"}, {file = "cryptography-43.0.1-cp37-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:27e613d7077ac613e399270253259d9d53872aaf657471473ebfc9a52935c062"},
{file = "cryptography-43.0.0-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3d9a1eca329405219b605fac09ecfc09ac09e595d6def650a437523fcd08dd22"}, {file = "cryptography-43.0.1-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:68aaecc4178e90719e95298515979814bda0cbada1256a4485414860bd7ab962"},
{file = "cryptography-43.0.0-cp37-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:ea9e57f8ea880eeea38ab5abf9fbe39f923544d7884228ec67d666abd60f5a47"}, {file = "cryptography-43.0.1-cp37-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:de41fd81a41e53267cb020bb3a7212861da53a7d39f863585d13ea11049cf277"},
{file = "cryptography-43.0.0-cp37-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:9a8d6802e0825767476f62aafed40532bd435e8a5f7d23bd8b4f5fd04cc80ecf"}, {file = "cryptography-43.0.1-cp37-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:f98bf604c82c416bc829e490c700ca1553eafdf2912a91e23a79d97d9801372a"},
{file = "cryptography-43.0.0-cp37-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:cc70b4b581f28d0a254d006f26949245e3657d40d8857066c2ae22a61222ef55"}, {file = "cryptography-43.0.1-cp37-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:61ec41068b7b74268fa86e3e9e12b9f0c21fcf65434571dbb13d954bceb08042"},
{file = "cryptography-43.0.0-cp37-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:4a997df8c1c2aae1e1e5ac49c2e4f610ad037fc5a3aadc7b64e39dea42249431"}, {file = "cryptography-43.0.1-cp37-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:014f58110f53237ace6a408b5beb6c427b64e084eb451ef25a28308270086494"},
{file = "cryptography-43.0.0-cp37-abi3-win32.whl", hash = "sha256:6e2b11c55d260d03a8cf29ac9b5e0608d35f08077d8c087be96287f43af3ccdc"}, {file = "cryptography-43.0.1-cp37-abi3-win32.whl", hash = "sha256:2bd51274dcd59f09dd952afb696bf9c61a7a49dfc764c04dd33ef7a6b502a1e2"},
{file = "cryptography-43.0.0-cp37-abi3-win_amd64.whl", hash = "sha256:31e44a986ceccec3d0498e16f3d27b2ee5fdf69ce2ab89b52eaad1d2f33d8778"}, {file = "cryptography-43.0.1-cp37-abi3-win_amd64.whl", hash = "sha256:666ae11966643886c2987b3b721899d250855718d6d9ce41b521252a17985f4d"},
{file = "cryptography-43.0.0-cp39-abi3-macosx_10_9_universal2.whl", hash = "sha256:7b3f5fe74a5ca32d4d0f302ffe6680fcc5c28f8ef0dc0ae8f40c0f3a1b4fca66"}, {file = "cryptography-43.0.1-cp39-abi3-macosx_10_9_universal2.whl", hash = "sha256:ac119bb76b9faa00f48128b7f5679e1d8d437365c5d26f1c2c3f0da4ce1b553d"},
{file = "cryptography-43.0.0-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ac1955ce000cb29ab40def14fd1bbfa7af2017cca696ee696925615cafd0dce5"}, {file = "cryptography-43.0.1-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1bbcce1a551e262dfbafb6e6252f1ae36a248e615ca44ba302df077a846a8806"},
{file = "cryptography-43.0.0-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:299d3da8e00b7e2b54bb02ef58d73cd5f55fb31f33ebbf33bd00d9aa6807df7e"}, {file = "cryptography-43.0.1-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:58d4e9129985185a06d849aa6df265bdd5a74ca6e1b736a77959b498e0505b85"},
{file = "cryptography-43.0.0-cp39-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:ee0c405832ade84d4de74b9029bedb7b31200600fa524d218fc29bfa371e97f5"}, {file = "cryptography-43.0.1-cp39-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:d03a475165f3134f773d1388aeb19c2d25ba88b6a9733c5c590b9ff7bbfa2e0c"},
{file = "cryptography-43.0.0-cp39-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:cb013933d4c127349b3948aa8aaf2f12c0353ad0eccd715ca789c8a0f671646f"}, {file = "cryptography-43.0.1-cp39-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:511f4273808ab590912a93ddb4e3914dfd8a388fed883361b02dea3791f292e1"},
{file = "cryptography-43.0.0-cp39-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:fdcb265de28585de5b859ae13e3846a8e805268a823a12a4da2597f1f5afc9f0"}, {file = "cryptography-43.0.1-cp39-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:80eda8b3e173f0f247f711eef62be51b599b5d425c429b5d4ca6a05e9e856baa"},
{file = "cryptography-43.0.0-cp39-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:2905ccf93a8a2a416f3ec01b1a7911c3fe4073ef35640e7ee5296754e30b762b"}, {file = "cryptography-43.0.1-cp39-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:38926c50cff6f533f8a2dae3d7f19541432610d114a70808f0926d5aaa7121e4"},
{file = "cryptography-43.0.0-cp39-abi3-win32.whl", hash = "sha256:47ca71115e545954e6c1d207dd13461ab81f4eccfcb1345eac874828b5e3eaaf"}, {file = "cryptography-43.0.1-cp39-abi3-win32.whl", hash = "sha256:a575913fb06e05e6b4b814d7f7468c2c660e8bb16d8d5a1faf9b33ccc569dd47"},
{file = "cryptography-43.0.0-cp39-abi3-win_amd64.whl", hash = "sha256:0663585d02f76929792470451a5ba64424acc3cd5227b03921dab0e2f27b1709"}, {file = "cryptography-43.0.1-cp39-abi3-win_amd64.whl", hash = "sha256:d75601ad10b059ec832e78823b348bfa1a59f6b8d545db3a24fd44362a1564cb"},
{file = "cryptography-43.0.0-pp310-pypy310_pp73-macosx_10_9_x86_64.whl", hash = "sha256:2c6d112bf61c5ef44042c253e4859b3cbbb50df2f78fa8fae6747a7814484a70"}, {file = "cryptography-43.0.1-pp310-pypy310_pp73-macosx_10_9_x86_64.whl", hash = "sha256:ea25acb556320250756e53f9e20a4177515f012c9eaea17eb7587a8c4d8ae034"},
{file = "cryptography-43.0.0-pp310-pypy310_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:844b6d608374e7d08f4f6e6f9f7b951f9256db41421917dfb2d003dde4cd6b66"}, {file = "cryptography-43.0.1-pp310-pypy310_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:c1332724be35d23a854994ff0b66530119500b6053d0bd3363265f7e5e77288d"},
{file = "cryptography-43.0.0-pp310-pypy310_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:51956cf8730665e2bdf8ddb8da0056f699c1a5715648c1b0144670c1ba00b48f"}, {file = "cryptography-43.0.1-pp310-pypy310_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:fba1007b3ef89946dbbb515aeeb41e30203b004f0b4b00e5e16078b518563289"},
{file = "cryptography-43.0.0-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:aae4d918f6b180a8ab8bf6511a419473d107df4dbb4225c7b48c5c9602c38c7f"}, {file = "cryptography-43.0.1-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:5b43d1ea6b378b54a1dc99dd8a2b5be47658fe9a7ce0a58ff0b55f4b43ef2b84"},
{file = "cryptography-43.0.0-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:232ce02943a579095a339ac4b390fbbe97f5b5d5d107f8a08260ea2768be8cc2"}, {file = "cryptography-43.0.1-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:88cce104c36870d70c49c7c8fd22885875d950d9ee6ab54df2745f83ba0dc365"},
{file = "cryptography-43.0.0-pp39-pypy39_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:5bcb8a5620008a8034d39bce21dc3e23735dfdb6a33a06974739bfa04f853947"}, {file = "cryptography-43.0.1-pp39-pypy39_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:9d3cdb25fa98afdd3d0892d132b8d7139e2c087da1712041f6b762e4f807cc96"},
{file = "cryptography-43.0.0-pp39-pypy39_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:08a24a7070b2b6804c1940ff0f910ff728932a9d0e80e7814234269f9d46d069"}, {file = "cryptography-43.0.1-pp39-pypy39_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:e710bf40870f4db63c3d7d929aa9e09e4e7ee219e703f949ec4073b4294f6172"},
{file = "cryptography-43.0.0-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:e9c5266c432a1e23738d178e51c2c7a5e2ddf790f248be939448c0ba2021f9d1"}, {file = "cryptography-43.0.1-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:7c05650fe8023c5ed0d46793d4b7d7e6cd9c04e68eabe5b0aeea836e37bdcec2"},
{file = "cryptography-43.0.0.tar.gz", hash = "sha256:b88075ada2d51aa9f18283532c9f60e72170041bba88d7f37e49cbb10275299e"}, {file = "cryptography-43.0.1.tar.gz", hash = "sha256:203e92a75716d8cfb491dc47c79e17d0d9207ccffcbcb35f598fbe463ae3444d"},
] ]
[[package]] [[package]]
@ -565,7 +565,7 @@ files = [
[[package]] [[package]]
name = "eventlet" name = "eventlet"
version = "0.36.1" version = "0.37.0"
requires_python = ">=3.7" requires_python = ">=3.7"
summary = "Highly concurrent networking library" summary = "Highly concurrent networking library"
groups = ["all", "default"] groups = ["all", "default"]
@ -574,31 +574,31 @@ dependencies = [
"greenlet>=1.0", "greenlet>=1.0",
] ]
files = [ files = [
{file = "eventlet-0.36.1-py3-none-any.whl", hash = "sha256:e42d0f73b718e654c223a033b8692d1a94d778a6c1deb6c3d21442746f3f727f"}, {file = "eventlet-0.37.0-py3-none-any.whl", hash = "sha256:801ac231401e41f33a799457c78fdbfabc1c2f28bf9346d4ec4188e9aebc2067"},
{file = "eventlet-0.36.1.tar.gz", hash = "sha256:d227fe76a63d9e6a6cef53beb8ad0b2dc40a5e7737c801f4b474cfae1db07bc5"}, {file = "eventlet-0.37.0.tar.gz", hash = "sha256:fa49bf5a549cdbaa06919679979ea022ac8f8f3cf0499f26849a1cd8e64c30b1"},
] ]
[[package]] [[package]]
name = "fastapi" name = "fastapi"
version = "0.112.0" version = "0.115.0"
requires_python = ">=3.8" requires_python = ">=3.8"
summary = "FastAPI framework, high performance, easy to learn, fast to code, ready for production" summary = "FastAPI framework, high performance, easy to learn, fast to code, ready for production"
groups = ["all", "default"] groups = ["all", "default"]
dependencies = [ dependencies = [
"pydantic!=1.8,!=1.8.1,!=2.0.0,!=2.0.1,!=2.1.0,<3.0.0,>=1.7.4", "pydantic!=1.8,!=1.8.1,!=2.0.0,!=2.0.1,!=2.1.0,<3.0.0,>=1.7.4",
"starlette<0.38.0,>=0.37.2", "starlette<0.39.0,>=0.37.2",
"typing-extensions>=4.8.0", "typing-extensions>=4.8.0",
] ]
files = [ files = [
{file = "fastapi-0.112.0-py3-none-any.whl", hash = "sha256:3487ded9778006a45834b8c816ec4a48d522e2631ca9e75ec5a774f1b052f821"}, {file = "fastapi-0.115.0-py3-none-any.whl", hash = "sha256:17ea427674467486e997206a5ab25760f6b09e069f099b96f5b55a32fb6f1631"},
{file = "fastapi-0.112.0.tar.gz", hash = "sha256:d262bc56b7d101d1f4e8fc0ad2ac75bb9935fec504d2b7117686cec50710cf05"}, {file = "fastapi-0.115.0.tar.gz", hash = "sha256:f93b4ca3529a8ebc6fc3fcf710e5efa8de3df9b41570958abf1d97d843138004"},
] ]
[[package]] [[package]]
name = "ghp-import" name = "ghp-import"
version = "2.1.0" version = "2.1.0"
summary = "Copy your docs directly to the gh-pages branch." summary = "Copy your docs directly to the gh-pages branch."
groups = ["all", "docs"] groups = ["docs"]
dependencies = [ dependencies = [
"python-dateutil>=2.8.1", "python-dateutil>=2.8.1",
] ]
@ -631,7 +631,7 @@ name = "griffe"
version = "1.2.0" version = "1.2.0"
requires_python = ">=3.8" requires_python = ">=3.8"
summary = "Signatures for entire Python programs. Extract the structure, the frame, the skeleton of your project, to generate API documentation or find breaking changes in your API." summary = "Signatures for entire Python programs. Extract the structure, the frame, the skeleton of your project, to generate API documentation or find breaking changes in your API."
groups = ["all", "docs"] groups = ["docs"]
dependencies = [ dependencies = [
"colorama>=0.4", "colorama>=0.4",
] ]
@ -645,7 +645,7 @@ name = "griffe-typingdoc"
version = "0.2.7" version = "0.2.7"
requires_python = ">=3.8" requires_python = ">=3.8"
summary = "Griffe extension for PEP 727 Documentation Metadata in Typing." summary = "Griffe extension for PEP 727 Documentation Metadata in Typing."
groups = ["all", "docs"] groups = ["docs"]
dependencies = [ dependencies = [
"griffe>=0.49", "griffe>=0.49",
"typing-extensions>=4.7", "typing-extensions>=4.7",
@ -657,7 +657,7 @@ files = [
[[package]] [[package]]
name = "gunicorn" name = "gunicorn"
version = "22.0.0" version = "23.0.0"
requires_python = ">=3.7" requires_python = ">=3.7"
summary = "WSGI HTTP Server for UNIX" summary = "WSGI HTTP Server for UNIX"
groups = ["all", "default"] groups = ["all", "default"]
@ -665,8 +665,8 @@ dependencies = [
"packaging", "packaging",
] ]
files = [ files = [
{file = "gunicorn-22.0.0-py3-none-any.whl", hash = "sha256:350679f91b24062c86e386e198a15438d53a7a8207235a78ba1b53df4c4378d9"}, {file = "gunicorn-23.0.0-py3-none-any.whl", hash = "sha256:ec400d38950de4dfd418cff8328b2c8faed0edb0d517d3394e457c317908ca4d"},
{file = "gunicorn-22.0.0.tar.gz", hash = "sha256:4a0b436239ff76fb33f11c07a16482c521a7e09c1ce3cc293c2330afe01bec63"}, {file = "gunicorn-23.0.0.tar.gz", hash = "sha256:f014447a0101dc57e294f6c18ca6b40227a4c90e9bdb586042628030cba004ec"},
] ]
[[package]] [[package]]
@ -757,7 +757,7 @@ files = [
[[package]] [[package]]
name = "httpx" name = "httpx"
version = "0.27.0" version = "0.27.2"
requires_python = ">=3.8" requires_python = ">=3.8"
summary = "The next generation HTTP client." summary = "The next generation HTTP client."
groups = ["all", "default"] groups = ["all", "default"]
@ -769,8 +769,8 @@ dependencies = [
"sniffio", "sniffio",
] ]
files = [ files = [
{file = "httpx-0.27.0-py3-none-any.whl", hash = "sha256:71d5465162c13681bff01ad59b2cc68dd838ea1f10e51574bac27103f00c91a5"}, {file = "httpx-0.27.2-py3-none-any.whl", hash = "sha256:7bb2708e112d8fdd7829cd4243970f0c223274051cb35ee80c03301ee29a3df0"},
{file = "httpx-0.27.0.tar.gz", hash = "sha256:a0cb88a46f32dc874e04ee956e4c2764aba2aa228f650b06788ba6bda2962ab5"}, {file = "httpx-0.27.2.tar.gz", hash = "sha256:f7c2be1d2f3c3c3160d441802406b206c2b76f5947b11115e6df10c6c65e66c2"},
] ]
[[package]] [[package]]
@ -913,7 +913,7 @@ name = "markdown"
version = "3.7" version = "3.7"
requires_python = ">=3.8" requires_python = ">=3.8"
summary = "Python implementation of John Gruber's Markdown." summary = "Python implementation of John Gruber's Markdown."
groups = ["all", "docs"] groups = ["docs"]
files = [ files = [
{file = "Markdown-3.7-py3-none-any.whl", hash = "sha256:7eb6df5690b81a1d7942992c97fad2938e956e79df20cbc6186e9c3a77b1c803"}, {file = "Markdown-3.7-py3-none-any.whl", hash = "sha256:7eb6df5690b81a1d7942992c97fad2938e956e79df20cbc6186e9c3a77b1c803"},
{file = "markdown-3.7.tar.gz", hash = "sha256:2ae2471477cfd02dbbf038d5d9bc226d40def84b4fe2986e49b59b6b472bbed2"}, {file = "markdown-3.7.tar.gz", hash = "sha256:2ae2471477cfd02dbbf038d5d9bc226d40def84b4fe2986e49b59b6b472bbed2"},
@ -956,7 +956,7 @@ name = "mergedeep"
version = "1.3.4" version = "1.3.4"
requires_python = ">=3.6" requires_python = ">=3.6"
summary = "A deep merge function for 🐍." summary = "A deep merge function for 🐍."
groups = ["all", "docs"] groups = ["docs"]
files = [ files = [
{file = "mergedeep-1.3.4-py3-none-any.whl", hash = "sha256:70775750742b25c0d8f36c55aed03d24c3384d17c951b3175d898bd778ef0307"}, {file = "mergedeep-1.3.4-py3-none-any.whl", hash = "sha256:70775750742b25c0d8f36c55aed03d24c3384d17c951b3175d898bd778ef0307"},
{file = "mergedeep-1.3.4.tar.gz", hash = "sha256:0096d52e9dad9939c3d975a774666af186eda617e6ca84df4c94dec30004f2a8"}, {file = "mergedeep-1.3.4.tar.gz", hash = "sha256:0096d52e9dad9939c3d975a774666af186eda617e6ca84df4c94dec30004f2a8"},
@ -967,7 +967,7 @@ name = "mkdocs"
version = "1.6.1" version = "1.6.1"
requires_python = ">=3.8" requires_python = ">=3.8"
summary = "Project documentation with Markdown." summary = "Project documentation with Markdown."
groups = ["all", "docs"] groups = ["docs"]
dependencies = [ dependencies = [
"click>=7.0", "click>=7.0",
"colorama>=0.4; platform_system == \"Windows\"", "colorama>=0.4; platform_system == \"Windows\"",
@ -993,7 +993,7 @@ name = "mkdocs-autorefs"
version = "1.2.0" version = "1.2.0"
requires_python = ">=3.8" requires_python = ">=3.8"
summary = "Automatically link across pages in MkDocs." summary = "Automatically link across pages in MkDocs."
groups = ["all", "docs"] groups = ["docs"]
dependencies = [ dependencies = [
"Markdown>=3.3", "Markdown>=3.3",
"markupsafe>=2.0.1", "markupsafe>=2.0.1",
@ -1009,7 +1009,7 @@ name = "mkdocs-get-deps"
version = "0.2.0" version = "0.2.0"
requires_python = ">=3.8" requires_python = ">=3.8"
summary = "MkDocs extension that lists all dependencies according to a mkdocs.yml file" summary = "MkDocs extension that lists all dependencies according to a mkdocs.yml file"
groups = ["all", "docs"] groups = ["docs"]
dependencies = [ dependencies = [
"mergedeep>=1.3.4", "mergedeep>=1.3.4",
"platformdirs>=2.2.0", "platformdirs>=2.2.0",
@ -1022,10 +1022,10 @@ files = [
[[package]] [[package]]
name = "mkdocs-material" name = "mkdocs-material"
version = "9.5.38" version = "9.5.39"
requires_python = ">=3.8" requires_python = ">=3.8"
summary = "Documentation that simply works" summary = "Documentation that simply works"
groups = ["all", "docs"] groups = ["docs"]
dependencies = [ dependencies = [
"babel~=2.10", "babel~=2.10",
"colorama~=0.4", "colorama~=0.4",
@ -1040,8 +1040,8 @@ dependencies = [
"requests~=2.26", "requests~=2.26",
] ]
files = [ files = [
{file = "mkdocs_material-9.5.38-py3-none-any.whl", hash = "sha256:d4779051d52ba9f1e7e344b34de95449c7c366c212b388e4a2db9a3db043c228"}, {file = "mkdocs_material-9.5.39-py3-none-any.whl", hash = "sha256:0f2f68c8db89523cb4a59705cd01b4acd62b2f71218ccb67e1e004e560410d2b"},
{file = "mkdocs_material-9.5.38.tar.gz", hash = "sha256:1843c5171ad6b489550aeaf7358e5b7128cc03ddcf0fb4d91d19aa1e691a63b8"}, {file = "mkdocs_material-9.5.39.tar.gz", hash = "sha256:25faa06142afa38549d2b781d475a86fb61de93189f532b88e69bf11e5e5c3be"},
] ]
[[package]] [[package]]
@ -1049,7 +1049,7 @@ name = "mkdocs-material-extensions"
version = "1.3.1" version = "1.3.1"
requires_python = ">=3.8" requires_python = ">=3.8"
summary = "Extension pack for Python Markdown and MkDocs Material." summary = "Extension pack for Python Markdown and MkDocs Material."
groups = ["all", "docs"] groups = ["docs"]
files = [ files = [
{file = "mkdocs_material_extensions-1.3.1-py3-none-any.whl", hash = "sha256:adff8b62700b25cb77b53358dad940f3ef973dd6db797907c49e3c2ef3ab4e31"}, {file = "mkdocs_material_extensions-1.3.1-py3-none-any.whl", hash = "sha256:adff8b62700b25cb77b53358dad940f3ef973dd6db797907c49e3c2ef3ab4e31"},
{file = "mkdocs_material_extensions-1.3.1.tar.gz", hash = "sha256:10c9511cea88f568257f960358a467d12b970e1f7b2c0e5fb2bb48cab1928443"}, {file = "mkdocs_material_extensions-1.3.1.tar.gz", hash = "sha256:10c9511cea88f568257f960358a467d12b970e1f7b2c0e5fb2bb48cab1928443"},
@ -1060,7 +1060,7 @@ name = "mkdocstrings"
version = "0.26.0" version = "0.26.0"
requires_python = ">=3.8" requires_python = ">=3.8"
summary = "Automatic documentation from sources, for MkDocs." summary = "Automatic documentation from sources, for MkDocs."
groups = ["all", "docs"] groups = ["docs"]
dependencies = [ dependencies = [
"Jinja2>=2.11.1", "Jinja2>=2.11.1",
"Markdown>=3.6", "Markdown>=3.6",
@ -1081,7 +1081,7 @@ name = "mkdocstrings-python"
version = "1.11.1" version = "1.11.1"
requires_python = ">=3.8" requires_python = ">=3.8"
summary = "A Python handler for mkdocstrings." summary = "A Python handler for mkdocstrings."
groups = ["all", "docs"] groups = ["docs"]
dependencies = [ dependencies = [
"griffe>=0.49", "griffe>=0.49",
"mkdocs-autorefs>=1.2", "mkdocs-autorefs>=1.2",
@ -1140,7 +1140,7 @@ files = [
name = "paginate" name = "paginate"
version = "0.5.7" version = "0.5.7"
summary = "Divides large result sets into pages for easier browsing" summary = "Divides large result sets into pages for easier browsing"
groups = ["all", "docs"] groups = ["docs"]
files = [ files = [
{file = "paginate-0.5.7-py2.py3-none-any.whl", hash = "sha256:b885e2af73abcf01d9559fd5216b57ef722f8c42affbb63942377668e35c7591"}, {file = "paginate-0.5.7-py2.py3-none-any.whl", hash = "sha256:b885e2af73abcf01d9559fd5216b57ef722f8c42affbb63942377668e35c7591"},
{file = "paginate-0.5.7.tar.gz", hash = "sha256:22bd083ab41e1a8b4f3690544afb2c60c25e5c9a63a30fa2f483f6c60c8e5945"}, {file = "paginate-0.5.7.tar.gz", hash = "sha256:22bd083ab41e1a8b4f3690544afb2c60c25e5c9a63a30fa2f483f6c60c8e5945"},
@ -1151,7 +1151,7 @@ name = "pathspec"
version = "0.12.1" version = "0.12.1"
requires_python = ">=3.8" requires_python = ">=3.8"
summary = "Utility library for gitignore style pattern matching of file paths." summary = "Utility library for gitignore style pattern matching of file paths."
groups = ["all", "dev", "docs"] groups = ["dev", "docs"]
files = [ files = [
{file = "pathspec-0.12.1-py3-none-any.whl", hash = "sha256:a0d503e138a4c123b27490a4f7beda6a01c6f288df0e4a8b79c7eb0dc7b4cc08"}, {file = "pathspec-0.12.1-py3-none-any.whl", hash = "sha256:a0d503e138a4c123b27490a4f7beda6a01c6f288df0e4a8b79c7eb0dc7b4cc08"},
{file = "pathspec-0.12.1.tar.gz", hash = "sha256:a482d51503a1ab33b1c67a6c3813a26953dbdc71c31dacaef9a838c4e29f5712"}, {file = "pathspec-0.12.1.tar.gz", hash = "sha256:a482d51503a1ab33b1c67a6c3813a26953dbdc71c31dacaef9a838c4e29f5712"},
@ -1197,7 +1197,7 @@ name = "platformdirs"
version = "4.2.2" version = "4.2.2"
requires_python = ">=3.8" requires_python = ">=3.8"
summary = "A small Python package for determining appropriate platform-specific dirs, e.g. a `user data dir`." summary = "A small Python package for determining appropriate platform-specific dirs, e.g. a `user data dir`."
groups = ["all", "dev", "docs"] groups = ["dev", "docs"]
files = [ files = [
{file = "platformdirs-4.2.2-py3-none-any.whl", hash = "sha256:2d7a1657e36a80ea911db832a8a6ece5ee53d8de21edd5cc5879af6530b1bfee"}, {file = "platformdirs-4.2.2-py3-none-any.whl", hash = "sha256:2d7a1657e36a80ea911db832a8a6ece5ee53d8de21edd5cc5879af6530b1bfee"},
{file = "platformdirs-4.2.2.tar.gz", hash = "sha256:38b7b51f512eed9e84a22788b4bce1de17c0adb134d6becb09836e37d8654cd3"}, {file = "platformdirs-4.2.2.tar.gz", hash = "sha256:38b7b51f512eed9e84a22788b4bce1de17c0adb134d6becb09836e37d8654cd3"},
@ -1281,7 +1281,7 @@ files = [
[[package]] [[package]]
name = "pydanclick" name = "pydanclick"
version = "0.2.1" version = "0.3.0"
requires_python = "<4.0,>=3.8" requires_python = "<4.0,>=3.8"
summary = "Use Pydantic models as Click options" summary = "Use Pydantic models as Click options"
groups = ["all", "default"] groups = ["all", "default"]
@ -1293,8 +1293,8 @@ dependencies = [
"typing-extensions<5.0.0,>=4.9.0", "typing-extensions<5.0.0,>=4.9.0",
] ]
files = [ files = [
{file = "pydanclick-0.2.1-py3-none-any.whl", hash = "sha256:d6e18efe0af45209bd35cba98ee7e0e45f281f75182ffcdc8b37ba68439c48b9"}, {file = "pydanclick-0.3.0-py3-none-any.whl", hash = "sha256:ab50fc1cf49f942831ae1a6987a830199bfa3cec6a3957abd6efe1f57daf9d62"},
{file = "pydanclick-0.2.1.tar.gz", hash = "sha256:04924fbde19e0707d9adb1e28b93b6c46d5a9a0d83aae197880b79e9ba7cb36f"}, {file = "pydanclick-0.3.0.tar.gz", hash = "sha256:52829e651c93d018c3c74abf9897e40432a3505e80fb28517d26c843a5f7d801"},
] ]
[[package]] [[package]]
@ -1356,7 +1356,7 @@ files = [
[[package]] [[package]]
name = "pydantic-settings" name = "pydantic-settings"
version = "2.4.0" version = "2.5.2"
requires_python = ">=3.8" requires_python = ">=3.8"
summary = "Settings management using Pydantic" summary = "Settings management using Pydantic"
groups = ["all", "default"] groups = ["all", "default"]
@ -1365,8 +1365,8 @@ dependencies = [
"python-dotenv>=0.21.0", "python-dotenv>=0.21.0",
] ]
files = [ files = [
{file = "pydantic_settings-2.4.0-py3-none-any.whl", hash = "sha256:bb6849dc067f1687574c12a639e231f3a6feeed0a12d710c1382045c5db1c315"}, {file = "pydantic_settings-2.5.2-py3-none-any.whl", hash = "sha256:2c912e55fd5794a59bf8c832b9de832dcfdf4778d79ff79b708744eed499a907"},
{file = "pydantic_settings-2.4.0.tar.gz", hash = "sha256:ed81c3a0f46392b4d7c0a565c05884e6e54b3456e6f0fe4d8814981172dc9a88"}, {file = "pydantic_settings-2.5.2.tar.gz", hash = "sha256:f90b139682bee4d2065273d5185d71d37ea46cfe57e1b5ae184fc6a0b2484ca0"},
] ]
[[package]] [[package]]
@ -1385,7 +1385,7 @@ name = "pygments"
version = "2.18.0" version = "2.18.0"
requires_python = ">=3.8" requires_python = ">=3.8"
summary = "Pygments is a syntax highlighting package written in Python." summary = "Pygments is a syntax highlighting package written in Python."
groups = ["all", "docs"] groups = ["docs"]
files = [ files = [
{file = "pygments-2.18.0-py3-none-any.whl", hash = "sha256:b8e6aca0523f3ab76fee51799c488e38782ac06eafcf95e7ba832985c8e7b13a"}, {file = "pygments-2.18.0-py3-none-any.whl", hash = "sha256:b8e6aca0523f3ab76fee51799c488e38782ac06eafcf95e7ba832985c8e7b13a"},
{file = "pygments-2.18.0.tar.gz", hash = "sha256:786ff802f32e91311bff3889f6e9a86e81505fe99f2735bb6d60ae0c5004f199"}, {file = "pygments-2.18.0.tar.gz", hash = "sha256:786ff802f32e91311bff3889f6e9a86e81505fe99f2735bb6d60ae0c5004f199"},
@ -1404,31 +1404,32 @@ files = [
[[package]] [[package]]
name = "pymdown-extensions" name = "pymdown-extensions"
version = "10.11" version = "10.11.1"
requires_python = ">=3.8" requires_python = ">=3.8"
summary = "Extension pack for Python Markdown." summary = "Extension pack for Python Markdown."
groups = ["all", "docs"] groups = ["docs"]
dependencies = [ dependencies = [
"markdown>=3.6", "markdown>=3.6",
"pyyaml", "pyyaml",
] ]
files = [ files = [
{file = "pymdown_extensions-10.11-py3-none-any.whl", hash = "sha256:e68080eac44634406b31f4aec58fbad17b0ec5fca6b086e29008616d54c3906b"}, {file = "pymdown_extensions-10.11.1-py3-none-any.whl", hash = "sha256:a2b28f5786e041f19cb5bb30a1c2c853668a7099da8e3dd822a5ad05f2e855e3"},
{file = "pymdown_extensions-10.11.tar.gz", hash = "sha256:2653fb658bca5f278029f8c67a67f0f08b7bd3c657e2630d261ad542e97c4192"}, {file = "pymdown_extensions-10.11.1.tar.gz", hash = "sha256:a8836e955851542fa2625d04d59fdf97125ca001377478ed5618e04f9183a59a"},
] ]
[[package]] [[package]]
name = "pyright" name = "pyright"
version = "1.1.374" version = "1.1.382.post1"
requires_python = ">=3.7" requires_python = ">=3.7"
summary = "Command line wrapper for pyright" summary = "Command line wrapper for pyright"
groups = ["dev"] groups = ["dev"]
dependencies = [ dependencies = [
"nodeenv>=1.6.0", "nodeenv>=1.6.0",
"typing-extensions>=4.1",
] ]
files = [ files = [
{file = "pyright-1.1.374-py3-none-any.whl", hash = "sha256:55752bcf7a3646d293cd76710a983b71e16f6128aab2d42468e6eb7e46c0a70d"}, {file = "pyright-1.1.382.post1-py3-none-any.whl", hash = "sha256:21a4749dd1740e209f88d3a601e9f40748670d39481ea32b9d77edf7f3f1fb2e"},
{file = "pyright-1.1.374.tar.gz", hash = "sha256:d01b2daf864ba5e0362e56b844984865970d7204158e61eb685e2dab7804cb82"}, {file = "pyright-1.1.382.post1.tar.gz", hash = "sha256:66a5d4e83be9452853d73e9dd9e95ba0ac3061845270e4e331d0070a597d3445"},
] ]
[[package]] [[package]]
@ -1504,13 +1505,13 @@ files = [
[[package]] [[package]]
name = "python-multipart" name = "python-multipart"
version = "0.0.9" version = "0.0.12"
requires_python = ">=3.8" requires_python = ">=3.8"
summary = "A streaming multipart parser for Python" summary = "A streaming multipart parser for Python"
groups = ["all", "default"] groups = ["all", "default"]
files = [ files = [
{file = "python_multipart-0.0.9-py3-none-any.whl", hash = "sha256:97ca7b8ea7b05f977dc3849c3ba99d51689822fab725c3703af7c866a0c2b215"}, {file = "python_multipart-0.0.12-py3-none-any.whl", hash = "sha256:43dcf96cf65888a9cd3423544dd0d75ac10f7aa0c3c28a175bbcd00c9ce1aebf"},
{file = "python_multipart-0.0.9.tar.gz", hash = "sha256:03f54688c663f1b7977105f021043b0793151e4cb1c1a9d4a11fc13d622c4026"}, {file = "python_multipart-0.0.12.tar.gz", hash = "sha256:045e1f98d719c1ce085ed7f7e1ef9d8ccc8c02ba02b5566d5f7521410ced58cb"},
] ]
[[package]] [[package]]
@ -1535,7 +1536,7 @@ name = "pyyaml-env-tag"
version = "0.1" version = "0.1"
requires_python = ">=3.6" requires_python = ">=3.6"
summary = "A custom YAML tag for referencing environment variables in YAML files. " summary = "A custom YAML tag for referencing environment variables in YAML files. "
groups = ["all", "docs"] groups = ["docs"]
dependencies = [ dependencies = [
"pyyaml", "pyyaml",
] ]
@ -1546,29 +1547,29 @@ files = [
[[package]] [[package]]
name = "redis" name = "redis"
version = "5.0.8" version = "5.1.0"
requires_python = ">=3.7" requires_python = ">=3.8"
summary = "Python client for Redis database and key-value store" summary = "Python client for Redis database and key-value store"
groups = ["all", "default"] groups = ["all", "default"]
files = [ files = [
{file = "redis-5.0.8-py3-none-any.whl", hash = "sha256:56134ee08ea909106090934adc36f65c9bcbbaecea5b21ba704ba6fb561f8eb4"}, {file = "redis-5.1.0-py3-none-any.whl", hash = "sha256:fd4fccba0d7f6aa48c58a78d76ddb4afc698f5da4a2c1d03d916e4fd7ab88cdd"},
{file = "redis-5.0.8.tar.gz", hash = "sha256:0c5b10d387568dfe0698c6fad6615750c24170e548ca2deac10c649d463e9870"}, {file = "redis-5.1.0.tar.gz", hash = "sha256:b756df1e4a3858fcc0ef861f3fc53623a96c41e2b1f5304e09e0fe758d333d40"},
] ]
[[package]] [[package]]
name = "redis" name = "redis"
version = "5.0.8" version = "5.1.0"
extras = ["hiredis"] extras = ["hiredis"]
requires_python = ">=3.7" requires_python = ">=3.8"
summary = "Python client for Redis database and key-value store" summary = "Python client for Redis database and key-value store"
groups = ["all", "default"] groups = ["all", "default"]
dependencies = [ dependencies = [
"hiredis>1.0.0", "hiredis>=3.0.0",
"redis==5.0.8", "redis==5.1.0",
] ]
files = [ files = [
{file = "redis-5.0.8-py3-none-any.whl", hash = "sha256:56134ee08ea909106090934adc36f65c9bcbbaecea5b21ba704ba6fb561f8eb4"}, {file = "redis-5.1.0-py3-none-any.whl", hash = "sha256:fd4fccba0d7f6aa48c58a78d76ddb4afc698f5da4a2c1d03d916e4fd7ab88cdd"},
{file = "redis-5.0.8.tar.gz", hash = "sha256:0c5b10d387568dfe0698c6fad6615750c24170e548ca2deac10c649d463e9870"}, {file = "redis-5.1.0.tar.gz", hash = "sha256:b756df1e4a3858fcc0ef861f3fc53623a96c41e2b1f5304e09e0fe758d333d40"},
] ]
[[package]] [[package]]
@ -1576,7 +1577,7 @@ name = "regex"
version = "2024.7.24" version = "2024.7.24"
requires_python = ">=3.8" requires_python = ">=3.8"
summary = "Alternative regular expression module, to replace re." summary = "Alternative regular expression module, to replace re."
groups = ["all", "docs"] groups = ["docs"]
files = [ files = [
{file = "regex-2024.7.24-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:fe4ebef608553aff8deb845c7f4f1d0740ff76fa672c011cc0bacb2a00fbde86"}, {file = "regex-2024.7.24-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:fe4ebef608553aff8deb845c7f4f1d0740ff76fa672c011cc0bacb2a00fbde86"},
{file = "regex-2024.7.24-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:74007a5b25b7a678459f06559504f1eec2f0f17bca218c9d56f6a0a12bfffdad"}, {file = "regex-2024.7.24-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:74007a5b25b7a678459f06559504f1eec2f0f17bca218c9d56f6a0a12bfffdad"},
@ -1651,18 +1652,18 @@ files = [
[[package]] [[package]]
name = "sqids" name = "sqids"
version = "0.4.1" version = "0.5.0"
requires_python = ">=3.6" requires_python = ">=3.6"
summary = "Generate YouTube-like ids from numbers." summary = "Generate YouTube-like ids from numbers."
groups = ["all", "default"] groups = ["all", "default"]
files = [ files = [
{file = "sqids-0.4.1-py3-none-any.whl", hash = "sha256:fe48319ae1a7ea4faca77920f454fcf2946bbca540a468a98d979ba490d195bd"}, {file = "sqids-0.5.0-py3-none-any.whl", hash = "sha256:4c2d1eabf4721e6e18001b1ff2bc0b30d059447ef96f1e1d1fb7f56841814154"},
{file = "sqids-0.4.1.tar.gz", hash = "sha256:ffc3fbfef63491bee8b940a98065388345dbefb06d49e415b7a9e475ca200f9d"}, {file = "sqids-0.5.0.tar.gz", hash = "sha256:647798e7d5bfeb236e7ac4709cfd4cd808630a6c50f80205df17b4c93e560140"},
] ]
[[package]] [[package]]
name = "sqlalchemy" name = "sqlalchemy"
version = "2.0.31" version = "2.0.35"
requires_python = ">=3.7" requires_python = ">=3.7"
summary = "Database Abstraction Library" summary = "Database Abstraction Library"
groups = ["all", "default"] groups = ["all", "default"]
@ -1671,40 +1672,40 @@ dependencies = [
"typing-extensions>=4.6.0", "typing-extensions>=4.6.0",
] ]
files = [ files = [
{file = "SQLAlchemy-2.0.31-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:3b74570d99126992d4b0f91fb87c586a574a5872651185de8297c6f90055ae42"}, {file = "SQLAlchemy-2.0.35-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:eb60b026d8ad0c97917cb81d3662d0b39b8ff1335e3fabb24984c6acd0c900a2"},
{file = "SQLAlchemy-2.0.31-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:6f77c4f042ad493cb8595e2f503c7a4fe44cd7bd59c7582fd6d78d7e7b8ec52c"}, {file = "SQLAlchemy-2.0.35-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:6921ee01caf375363be5e9ae70d08ce7ca9d7e0e8983183080211a062d299468"},
{file = "SQLAlchemy-2.0.31-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cd1591329333daf94467e699e11015d9c944f44c94d2091f4ac493ced0119449"}, {file = "SQLAlchemy-2.0.35-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8cdf1a0dbe5ced887a9b127da4ffd7354e9c1a3b9bb330dce84df6b70ccb3a8d"},
{file = "SQLAlchemy-2.0.31-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:74afabeeff415e35525bf7a4ecdab015f00e06456166a2eba7590e49f8db940e"}, {file = "SQLAlchemy-2.0.35-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:93a71c8601e823236ac0e5d087e4f397874a421017b3318fd92c0b14acf2b6db"},
{file = "SQLAlchemy-2.0.31-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:b9c01990d9015df2c6f818aa8f4297d42ee71c9502026bb074e713d496e26b67"}, {file = "SQLAlchemy-2.0.35-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:e04b622bb8a88f10e439084486f2f6349bf4d50605ac3e445869c7ea5cf0fa8c"},
{file = "SQLAlchemy-2.0.31-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:66f63278db425838b3c2b1c596654b31939427016ba030e951b292e32b99553e"}, {file = "SQLAlchemy-2.0.35-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:1b56961e2d31389aaadf4906d453859f35302b4eb818d34a26fab72596076bb8"},
{file = "SQLAlchemy-2.0.31-cp312-cp312-win32.whl", hash = "sha256:0b0f658414ee4e4b8cbcd4a9bb0fd743c5eeb81fc858ca517217a8013d282c96"}, {file = "SQLAlchemy-2.0.35-cp312-cp312-win32.whl", hash = "sha256:0f9f3f9a3763b9c4deb8c5d09c4cc52ffe49f9876af41cc1b2ad0138878453cf"},
{file = "SQLAlchemy-2.0.31-cp312-cp312-win_amd64.whl", hash = "sha256:fa4b1af3e619b5b0b435e333f3967612db06351217c58bfb50cee5f003db2a5a"}, {file = "SQLAlchemy-2.0.35-cp312-cp312-win_amd64.whl", hash = "sha256:25b0f63e7fcc2a6290cb5f7f5b4fc4047843504983a28856ce9b35d8f7de03cc"},
{file = "SQLAlchemy-2.0.31-py3-none-any.whl", hash = "sha256:69f3e3c08867a8e4856e92d7afb618b95cdee18e0bc1647b77599722c9a28911"}, {file = "SQLAlchemy-2.0.35-py3-none-any.whl", hash = "sha256:2ab3f0336c0387662ce6221ad30ab3a5e6499aab01b9790879b6578fd9b8faa1"},
{file = "SQLAlchemy-2.0.31.tar.gz", hash = "sha256:b607489dd4a54de56984a0c7656247504bd5523d9d0ba799aef59d4add009484"}, {file = "sqlalchemy-2.0.35.tar.gz", hash = "sha256:e11d7ea4d24f0a262bccf9a7cd6284c976c5369dac21db237cff59586045ab9f"},
] ]
[[package]] [[package]]
name = "sqlalchemy" name = "sqlalchemy"
version = "2.0.31" version = "2.0.35"
extras = ["asyncio"] extras = ["asyncio"]
requires_python = ">=3.7" requires_python = ">=3.7"
summary = "Database Abstraction Library" summary = "Database Abstraction Library"
groups = ["all", "default"] groups = ["all", "default"]
dependencies = [ dependencies = [
"greenlet!=0.4.17", "greenlet!=0.4.17",
"sqlalchemy==2.0.31", "sqlalchemy==2.0.35",
] ]
files = [ files = [
{file = "SQLAlchemy-2.0.31-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:3b74570d99126992d4b0f91fb87c586a574a5872651185de8297c6f90055ae42"}, {file = "SQLAlchemy-2.0.35-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:eb60b026d8ad0c97917cb81d3662d0b39b8ff1335e3fabb24984c6acd0c900a2"},
{file = "SQLAlchemy-2.0.31-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:6f77c4f042ad493cb8595e2f503c7a4fe44cd7bd59c7582fd6d78d7e7b8ec52c"}, {file = "SQLAlchemy-2.0.35-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:6921ee01caf375363be5e9ae70d08ce7ca9d7e0e8983183080211a062d299468"},
{file = "SQLAlchemy-2.0.31-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cd1591329333daf94467e699e11015d9c944f44c94d2091f4ac493ced0119449"}, {file = "SQLAlchemy-2.0.35-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8cdf1a0dbe5ced887a9b127da4ffd7354e9c1a3b9bb330dce84df6b70ccb3a8d"},
{file = "SQLAlchemy-2.0.31-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:74afabeeff415e35525bf7a4ecdab015f00e06456166a2eba7590e49f8db940e"}, {file = "SQLAlchemy-2.0.35-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:93a71c8601e823236ac0e5d087e4f397874a421017b3318fd92c0b14acf2b6db"},
{file = "SQLAlchemy-2.0.31-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:b9c01990d9015df2c6f818aa8f4297d42ee71c9502026bb074e713d496e26b67"}, {file = "SQLAlchemy-2.0.35-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:e04b622bb8a88f10e439084486f2f6349bf4d50605ac3e445869c7ea5cf0fa8c"},
{file = "SQLAlchemy-2.0.31-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:66f63278db425838b3c2b1c596654b31939427016ba030e951b292e32b99553e"}, {file = "SQLAlchemy-2.0.35-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:1b56961e2d31389aaadf4906d453859f35302b4eb818d34a26fab72596076bb8"},
{file = "SQLAlchemy-2.0.31-cp312-cp312-win32.whl", hash = "sha256:0b0f658414ee4e4b8cbcd4a9bb0fd743c5eeb81fc858ca517217a8013d282c96"}, {file = "SQLAlchemy-2.0.35-cp312-cp312-win32.whl", hash = "sha256:0f9f3f9a3763b9c4deb8c5d09c4cc52ffe49f9876af41cc1b2ad0138878453cf"},
{file = "SQLAlchemy-2.0.31-cp312-cp312-win_amd64.whl", hash = "sha256:fa4b1af3e619b5b0b435e333f3967612db06351217c58bfb50cee5f003db2a5a"}, {file = "SQLAlchemy-2.0.35-cp312-cp312-win_amd64.whl", hash = "sha256:25b0f63e7fcc2a6290cb5f7f5b4fc4047843504983a28856ce9b35d8f7de03cc"},
{file = "SQLAlchemy-2.0.31-py3-none-any.whl", hash = "sha256:69f3e3c08867a8e4856e92d7afb618b95cdee18e0bc1647b77599722c9a28911"}, {file = "SQLAlchemy-2.0.35-py3-none-any.whl", hash = "sha256:2ab3f0336c0387662ce6221ad30ab3a5e6499aab01b9790879b6578fd9b8faa1"},
{file = "SQLAlchemy-2.0.31.tar.gz", hash = "sha256:b607489dd4a54de56984a0c7656247504bd5523d9d0ba799aef59d4add009484"}, {file = "sqlalchemy-2.0.35.tar.gz", hash = "sha256:e11d7ea4d24f0a262bccf9a7cd6284c976c5369dac21db237cff59586045ab9f"},
] ]
[[package]] [[package]]
@ -1750,7 +1751,7 @@ name = "typing-extensions"
version = "4.12.2" version = "4.12.2"
requires_python = ">=3.8" requires_python = ">=3.8"
summary = "Backported and Experimental Type Hints for Python 3.8+" summary = "Backported and Experimental Type Hints for Python 3.8+"
groups = ["all", "default", "docs"] groups = ["all", "default", "dev", "docs"]
files = [ files = [
{file = "typing_extensions-4.12.2-py3-none-any.whl", hash = "sha256:04e5ca0351e0f3f85c6853954072df659d0d13fac324d0072316b67d7794700d"}, {file = "typing_extensions-4.12.2-py3-none-any.whl", hash = "sha256:04e5ca0351e0f3f85c6853954072df659d0d13fac324d0072316b67d7794700d"},
{file = "typing_extensions-4.12.2.tar.gz", hash = "sha256:1a7ead55c7e559dd4dee8856e3a88b41225abfe1ce8df57b7c13915fe121ffb8"}, {file = "typing_extensions-4.12.2.tar.gz", hash = "sha256:1a7ead55c7e559dd4dee8856e3a88b41225abfe1ce8df57b7c13915fe121ffb8"},
@ -1780,7 +1781,7 @@ files = [
[[package]] [[package]]
name = "uvicorn" name = "uvicorn"
version = "0.30.5" version = "0.31.0"
requires_python = ">=3.8" requires_python = ">=3.8"
summary = "The lightning-fast ASGI server." summary = "The lightning-fast ASGI server."
groups = ["all", "default"] groups = ["all", "default"]
@ -1789,8 +1790,8 @@ dependencies = [
"h11>=0.8", "h11>=0.8",
] ]
files = [ files = [
{file = "uvicorn-0.30.5-py3-none-any.whl", hash = "sha256:b2d86de274726e9878188fa07576c9ceeff90a839e2b6e25c917fe05f5a6c835"}, {file = "uvicorn-0.31.0-py3-none-any.whl", hash = "sha256:cac7be4dd4d891c363cd942160a7b02e69150dcbc7a36be04d5f4af4b17c8ced"},
{file = "uvicorn-0.30.5.tar.gz", hash = "sha256:ac6fdbd4425c5fd17a9fe39daf4d4d075da6fdc80f653e5894cdc2fd98752bee"}, {file = "uvicorn-0.31.0.tar.gz", hash = "sha256:13bc21373d103859f68fe739608e2eb054a816dea79189bc3ca08ea89a275906"},
] ]
[[package]] [[package]]
@ -1810,7 +1811,7 @@ files = [
[[package]] [[package]]
name = "uvicorn" name = "uvicorn"
version = "0.30.5" version = "0.31.0"
extras = ["standard"] extras = ["standard"]
requires_python = ">=3.8" requires_python = ">=3.8"
summary = "The lightning-fast ASGI server." summary = "The lightning-fast ASGI server."
@ -1820,14 +1821,14 @@ dependencies = [
"httptools>=0.5.0", "httptools>=0.5.0",
"python-dotenv>=0.13", "python-dotenv>=0.13",
"pyyaml>=5.1", "pyyaml>=5.1",
"uvicorn==0.30.5", "uvicorn==0.31.0",
"uvloop!=0.15.0,!=0.15.1,>=0.14.0; (sys_platform != \"cygwin\" and sys_platform != \"win32\") and platform_python_implementation != \"PyPy\"", "uvloop!=0.15.0,!=0.15.1,>=0.14.0; (sys_platform != \"cygwin\" and sys_platform != \"win32\") and platform_python_implementation != \"PyPy\"",
"watchfiles>=0.13", "watchfiles>=0.13",
"websockets>=10.4", "websockets>=10.4",
] ]
files = [ files = [
{file = "uvicorn-0.30.5-py3-none-any.whl", hash = "sha256:b2d86de274726e9878188fa07576c9ceeff90a839e2b6e25c917fe05f5a6c835"}, {file = "uvicorn-0.31.0-py3-none-any.whl", hash = "sha256:cac7be4dd4d891c363cd942160a7b02e69150dcbc7a36be04d5f4af4b17c8ced"},
{file = "uvicorn-0.30.5.tar.gz", hash = "sha256:ac6fdbd4425c5fd17a9fe39daf4d4d075da6fdc80f653e5894cdc2fd98752bee"}, {file = "uvicorn-0.31.0.tar.gz", hash = "sha256:13bc21373d103859f68fe739608e2eb054a816dea79189bc3ca08ea89a275906"},
] ]
[[package]] [[package]]
@ -1863,7 +1864,7 @@ name = "watchdog"
version = "5.0.0" version = "5.0.0"
requires_python = ">=3.9" requires_python = ">=3.9"
summary = "Filesystem events monitoring" summary = "Filesystem events monitoring"
groups = ["all", "docs"] groups = ["docs"]
files = [ files = [
{file = "watchdog-5.0.0-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:1e26f570dd7f5178656affb24d6f0e22ce66c8daf88d4061a27bfb9ac866b40d"}, {file = "watchdog-5.0.0-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:1e26f570dd7f5178656affb24d6f0e22ce66c8daf88d4061a27bfb9ac866b40d"},
{file = "watchdog-5.0.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:d146331e6b206baa9f6dd40f72b5783ad2302c240df68e7fce196d30588ccf7b"}, {file = "watchdog-5.0.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:d146331e6b206baa9f6dd40f72b5783ad2302c240df68e7fce196d30588ccf7b"},

View File

@ -54,7 +54,7 @@ frontend = [
"materia-frontend>=0.1.1", "materia-frontend>=0.1.1",
] ]
all = [ all = [
"materia[docs,frontend]", "materia[frontend]",
] ]
[build-system] [build-system]

View File

@ -1,8 +1,5 @@
from fastapi import APIRouter, Request, Response, status, HTTPException, Depends from fastapi import APIRouter, Request, status, HTTPException, Depends
from fastapi.responses import HTMLResponse, FileResponse from fastapi.responses import FileResponse, RedirectResponse
from fastapi.templating import Jinja2Templates
from fastapi.staticfiles import StaticFiles
import mimetypes
from pathlib import Path from pathlib import Path
from materia.core.misc import optional from materia.core.misc import optional
from materia.routers import middleware from materia.routers import middleware
@ -17,6 +14,10 @@ except ImportError:
pass pass
else: else:
@router.get("/docs", include_in_schema=False)
async def docs_root():
return RedirectResponse(url="/docs/")
@router.get("/docs/{catchall:path}", include_in_schema=False) @router.get("/docs/{catchall:path}", include_in_schema=False)
async def docs(request: Request, ctx: middleware.Context = Depends()): async def docs(request: Request, ctx: middleware.Context = Depends()):
docs_directory = Path(materia_docs.__path__[0]).resolve() docs_directory = Path(materia_docs.__path__[0]).resolve()

View File

@ -1,5 +1,5 @@
from pathlib import Path from pathlib import Path
from fastapi import APIRouter, Request, HTTPException from fastapi import APIRouter, Request
from fastapi.responses import HTMLResponse from fastapi.responses import HTMLResponse
from fastapi.templating import Jinja2Templates from fastapi.templating import Jinja2Templates
@ -15,5 +15,4 @@ else:
@router.get("/{spa:path}", response_class=HTMLResponse, include_in_schema=False) @router.get("/{spa:path}", response_class=HTMLResponse, include_in_schema=False)
async def root(request: Request): async def root(request: Request):
# raise HTTPException(404)
return templates.TemplateResponse(request, "base.html", {"view": "app"}) return templates.TemplateResponse(request, "base.html", {"view": "app"})

File diff suppressed because it is too large Load Diff

View File

@ -7,9 +7,9 @@
"dev": "vite", "dev": "vite",
"build-check": "run-p type-check \"build-only {@}\" --", "build-check": "run-p type-check \"build-only {@}\" --",
"preview": "vite preview", "preview": "vite preview",
"build": "vite build", "build": "npm run openapi && vite build",
"type-check": "vue-tsc --build --force", "type-check": "vue-tsc --build --force",
"openapi": "openapi-ts --input ./openapi.json --output ./src/client/ --client @hey-api/client-axios" "openapi": "./node_modules/@hey-api/openapi-ts/bin/index.cjs --input ./openapi.json --output ./src/client/ --client @hey-api/client-axios"
}, },
"dependencies": { "dependencies": {
"@catppuccin/tailwindcss": "^0.1.6", "@catppuccin/tailwindcss": "^0.1.6",