diff --git a/mrok/cli/commands/admin/register/extensions.py b/mrok/cli/commands/admin/register/extensions.py index 9a3d983..8fbbb31 100644 --- a/mrok/cli/commands/admin/register/extensions.py +++ b/mrok/cli/commands/admin/register/extensions.py @@ -24,6 +24,7 @@ def register_extension( ctx: typer.Context, extension_id: str = typer.Argument( ..., + metavar="EXTENSION_ID", callback=validate_extension_id, help=f"Extension ID in the format {settings.identifiers.extension.format}", ), diff --git a/mrok/cli/commands/admin/register/instances.py b/mrok/cli/commands/admin/register/instances.py index aeda27e..70a6f9a 100644 --- a/mrok/cli/commands/admin/register/instances.py +++ b/mrok/cli/commands/admin/register/instances.py @@ -33,11 +33,13 @@ def register_instance( ctx: typer.Context, extension_id: str = typer.Argument( ..., + metavar="EXTENSION_ID", callback=validate_extension_id, help=f"Extension ID in the format {settings.identifiers.extension.format}", ), instance_id: str = typer.Argument( ..., + metavar="INSTANCE_ID", callback=validate_instance_id, help=f"Instance ID in the format {settings.identifiers.instance.format}", ), diff --git a/mrok/cli/commands/admin/unregister/extensions.py b/mrok/cli/commands/admin/unregister/extensions.py index 0daea76..a11b037 100644 --- a/mrok/cli/commands/admin/unregister/extensions.py +++ b/mrok/cli/commands/admin/unregister/extensions.py @@ -22,6 +22,7 @@ def unregister_extension( ctx: typer.Context, extension_id: str = typer.Argument( ..., + metavar="EXTENSION_ID", callback=validate_extension_id, help=f"Extension ID in the format {settings.identifiers.extension.format}", ), diff --git a/mrok/cli/commands/admin/unregister/instances.py b/mrok/cli/commands/admin/unregister/instances.py index fd14f58..21bfca5 100644 --- a/mrok/cli/commands/admin/unregister/instances.py +++ b/mrok/cli/commands/admin/unregister/instances.py @@ -22,11 +22,13 @@ def unregister_instance( ctx: typer.Context, extension_id: str = typer.Argument( ..., + metavar="EXTENSION_ID", callback=validate_extension_id, help=f"Extension ID in the format {settings.identifiers.extension.format}", ), instance_id: str = typer.Argument( ..., + metavar="INSTANCE_ID", callback=validate_instance_id, help=f"Instance ID in the format {settings.identifiers.instance.format}", ), diff --git a/pyproject.toml b/pyproject.toml index e467724..7b95b5d 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -11,11 +11,11 @@ dependencies = [ "cryptography>=49.0.0,<50.0.0", "dynaconf>=3.2.12,<4.0.0", "fastapi-pagination>=0.15.15,<0.16.0", - "fastapi[standard]>=0.136.3,<0.139.0", + "fastapi[standard]==0.139.*", "gunicorn>=26.0.0,<27.0.0", "hdrhistogram>=0.10.3,<0.11.0", "httpcore>=1.0.9,<2.0.0", - "multipart>=1.3.0,<2.0.0", + "multipart==2.0.*", "openziti>=1.6.0,<2.0.0", "psutil>=7.2.2,<8.0.0", "pydantic>=2.12.5,<3.0.0", @@ -26,7 +26,7 @@ dependencies = [ "rich>=15.0.0,<16.0.0", "textual[syntax]>=8.0.0,<9.0.0", "textual-serve>=1.1.3,<2.0.0", - "typer>=0.26.0,<0.27.0", + "typer==0.27.*", "uvicorn-worker>=0.4.0,<0.5.0", ] diff --git a/uv.lock b/uv.lock index f039db7..6d0c295 100644 --- a/uv.lock +++ b/uv.lock @@ -650,7 +650,7 @@ wheels = [ [[package]] name = "fastapi" -version = "0.138.2" +version = "0.139.2" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "annotated-doc" }, @@ -659,9 +659,9 @@ dependencies = [ { name = "typing-extensions" }, { name = "typing-inspection" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/0c/a9/9f8f7e00195c29836e9bf58bbbaf579e29878b8a67851efff93d9b6d4eb7/fastapi-0.138.2.tar.gz", hash = "sha256:6432359d067a432134620e7c5e4c6e5063e7f37815bbbbf20acef14b0d2e3fc8", size = 420423, upload-time = "2026-06-29T12:44:12.556Z" } +sdist = { url = "https://files.pythonhosted.org/packages/cd/95/d3f0ae10836324a2eab98a52b61210ac609f08200bf4bb0dc8132d32f78a/fastapi-0.139.2.tar.gz", hash = "sha256:333145a6891e9b5b3cfceb69baf817e8240cde4d4588ae5a10bf56ffacb6255e", size = 423428, upload-time = "2026-07-16T15:06:17.912Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/f2/b3/38be2c074bdd0c986340db1d72d7b2321b805b1c5a68069aa00b5d31fd02/fastapi-0.138.2-py3-none-any.whl", hash = "sha256:db90c1ffb5517fba5d4a9f80e866daa008747e646310c9ce155c8c535f9d1615", size = 129271, upload-time = "2026-06-29T12:44:13.905Z" }, + { url = "https://files.pythonhosted.org/packages/5f/c7/cb03251d9dfb177246a9809a76f189d21df32dbd4a845951881d11323b7f/fastapi-0.139.2-py3-none-any.whl", hash = "sha256:b9ad015a835173d59865e2f5d8296fbc2b317bf56a2ba1a5bfbdd03de2fd4b1c", size = 130234, upload-time = "2026-07-16T15:06:19.557Z" }, ] [package.optional-dependencies] @@ -1580,12 +1580,12 @@ requires-dist = [ { name = "asn1crypto", specifier = ">=1.5.1,<2.0.0" }, { name = "cryptography", specifier = ">=49.0.0,<50.0.0" }, { name = "dynaconf", specifier = ">=3.2.12,<4.0.0" }, - { name = "fastapi", extras = ["standard"], specifier = ">=0.136.3,<0.139.0" }, + { name = "fastapi", extras = ["standard"], specifier = "==0.139.*" }, { name = "fastapi-pagination", specifier = ">=0.15.15,<0.16.0" }, { name = "gunicorn", specifier = ">=26.0.0,<27.0.0" }, { name = "hdrhistogram", specifier = ">=0.10.3,<0.11.0" }, { name = "httpcore", specifier = ">=1.0.9,<2.0.0" }, - { name = "multipart", specifier = ">=1.3.0,<2.0.0" }, + { name = "multipart", specifier = "==2.0.*" }, { name = "openziti", specifier = ">=1.6.0,<2.0.0" }, { name = "psutil", specifier = ">=7.2.2,<8.0.0" }, { name = "pydantic", specifier = ">=2.12.5,<3.0.0" }, @@ -1596,7 +1596,7 @@ requires-dist = [ { name = "rich", specifier = ">=15.0.0,<16.0.0" }, { name = "textual", extras = ["syntax"], specifier = ">=8.0.0,<9.0.0" }, { name = "textual-serve", specifier = ">=1.1.3,<2.0.0" }, - { name = "typer", specifier = ">=0.26.0,<0.27.0" }, + { name = "typer", specifier = "==0.27.*" }, { name = "uvicorn-worker", specifier = ">=0.4.0,<0.5.0" }, ] @@ -1774,11 +1774,11 @@ wheels = [ [[package]] name = "multipart" -version = "1.3.1" +version = "2.0.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/8e/d6/9c4f366d6f9bb8f8fb5eae3acac471335c39510c42b537fd515213d7d8c3/multipart-1.3.1.tar.gz", hash = "sha256:211d7cfc1a7a43e75c4d24ee0e8e0f4f61d522f1a21575303ae85333dea687bf", size = 38929, upload-time = "2026-02-27T10:17:13.7Z" } +sdist = { url = "https://files.pythonhosted.org/packages/49/c4/f3f0c57ec3e845bae038d3849af0e2b9d3f62a046b2a09af3f697ad882d6/multipart-2.0.0.tar.gz", hash = "sha256:d6076567b489270271d9ec103d404745da1501ad5b70e3a7f1f07f5623d82850", size = 42606, upload-time = "2026-07-18T16:03:23.993Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/19/ed/e1f03200ee1f0bf4a2b9b72709afefbf5319b68df654e0b84b35c65613ee/multipart-1.3.1-py3-none-any.whl", hash = "sha256:a82b59e1befe74d3d30b3d3f70efd5a2eba4d938f845dcff9faace968888ff29", size = 15061, upload-time = "2026-02-27T10:17:11.943Z" }, + { url = "https://files.pythonhosted.org/packages/71/dd/feb9c23d5c5a382194a9f86b02e98b8724d745e1a1cf4ecb1a5c0f884aa1/multipart-2.0.0-py3-none-any.whl", hash = "sha256:b3d4d473c4b96bb43e0d54b76fcc3b89b904df28387daf54e08405eb2123a081", size = 16418, upload-time = "2026-07-18T16:03:22.599Z" }, ] [[package]] @@ -3093,7 +3093,7 @@ wheels = [ [[package]] name = "typer" -version = "0.26.8" +version = "0.27.0" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "annotated-doc" }, @@ -3101,9 +3101,9 @@ dependencies = [ { name = "rich" }, { name = "shellingham" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/7c/f7/68adc395201b20b872d68e975386832e8005ffeacedd43a1d837a32815be/typer-0.26.8.tar.gz", hash = "sha256:c244a6bd558886fe3f8780efb6bdd28bb9aff005a94eedebaa5cb32926fe2f7e", size = 202097, upload-time = "2026-06-26T09:22:45.705Z" } +sdist = { url = "https://files.pythonhosted.org/packages/37/78/fda3361b56efc27944f24225f6ecd13d96d6fcfe37bd0eb34e2f4c63f9fc/typer-0.27.0.tar.gz", hash = "sha256:629bd12ea5d13a17148125d9a264f949eb171fb3f120f9b04d85873cab054fa5", size = 203430, upload-time = "2026-07-15T19:21:07.007Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/80/87/b9fd69c92c6102a066e1b86a35243f53e70bd4c709f2a26d9f4fee4f4dc0/typer-0.26.8-py3-none-any.whl", hash = "sha256:3512ca79ac5c11113414b36e80281b872884477722440691c89d1112e321a49c", size = 122564, upload-time = "2026-06-26T09:22:44.72Z" }, + { url = "https://files.pythonhosted.org/packages/40/03/26a383c9e58c213199d1aad1c3d353cfc22d4444ec6d2c0bf8ad02523843/typer-0.27.0-py3-none-any.whl", hash = "sha256:6f4b27631e47f077871b7dc30e933ec0131c1390fbe0e387ea5574b5bac9ccf1", size = 122716, upload-time = "2026-07-15T19:21:05.553Z" }, ] [[package]]