From 3f5d9ea545a04c60dc779b4adc864670ad0948b6 Mon Sep 17 00:00:00 2001 From: Allan Eising Date: Sat, 10 May 2025 08:44:13 +0200 Subject: [PATCH] Update project --- pyproject.toml | 19 ++++++++++----- uv.lock | 65 +++++++++++++++++++++++++++++++++++++++++++++++--- 2 files changed, 75 insertions(+), 9 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index 68ee873..48a0666 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,3 +1,13 @@ +[tool.poe.tasks] +fmt = "ruff format ${PWD}" +lint = "ruff check --fix ${PWD}" +check = "basedpyright ${PWD}" +test = "pytest ${PWD}" +all = [ {ref="fmt"}, {ref="lint"}, {ref="check"}, {ref="test"} ] +"ci:fmt" = "ruff format --check ${PWD}" # fail if not formatted +"ci:lint" = "ruff check ${PWD}" + + [project] name = "sshecret" version = "0.1.0" @@ -22,10 +32,6 @@ dependencies = [ "python-json-logger>=3.3.0", ] -[project.scripts] -sshecret-decrypt = "sshecret.client:cli_decrypt" - - [build-system] requires = ["hatchling"] build-backend = "hatchling.build" @@ -34,23 +40,24 @@ build-backend = "hatchling.build" venvPath = "." venv = ".venv" include = ["src"] +exclude = ["**/migrations"] reportUnusedCallResult = false reportExplicitAny = false reportIncompatibleVariableOverride = false executionEnvironments = [ - { root = "packages/sshecret_client" }, { root = "packages/sshecret-backend" }, { root = "packages/sshecret-sshd" }, { root = "packages/sshecret-admin" }, ] [tool.uv.workspace] -members = ["packages/sshecret_client", "packages/sshecret-backend", "packages/sshecret-sshd", "packages/sshecret-admin"] +members = ["packages/sshecret-backend", "packages/sshecret-sshd", "packages/sshecret-admin"] [dependency-groups] dev = [ "construct-typing>=0.6.2", "mypy>=1.15.0", + "poethepoet>=0.34.0", "python-dotenv>=1.0.1", ] test = [ diff --git a/uv.lock b/uv.lock index 0b8008d..aefa005 100644 --- a/uv.lock +++ b/uv.lock @@ -582,6 +582,15 @@ bcrypt = [ { name = "bcrypt" }, ] +[[package]] +name = "pastel" +version = "0.2.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/76/f1/4594f5e0fcddb6953e5b8fe00da8c317b8b41b547e2b3ae2da7512943c62/pastel-0.2.1.tar.gz", hash = "sha256:e6581ac04e973cac858828c6202c1e1e81fee1dc7de7683f3e1ffe0bfd8a573d", size = 7555 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/aa/18/a8444036c6dd65ba3624c63b734d3ba95ba63ace513078e1580590075d21/pastel-0.2.1-py2.py3-none-any.whl", hash = "sha256:4349225fcdf6c2bb34d483e523475de5bb04a5c10ef711263452cb37d7dd4364", size = 5955 }, +] + [[package]] name = "pluggy" version = "1.5.0" @@ -591,6 +600,19 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/88/5f/e351af9a41f866ac3f1fac4ca0613908d9a41741cfcf2228f4ad853b697d/pluggy-1.5.0-py3-none-any.whl", hash = "sha256:44e1ad92c8ca002de6377e165f3e0f1be63266ab4d554740532335b9d75ea669", size = 20556 }, ] +[[package]] +name = "poethepoet" +version = "0.34.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "pastel" }, + { name = "pyyaml" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/b3/f2/3853d6a9a0dac08aa680895839eeab8ec0ed63db375e1f782e623c9309b6/poethepoet-0.34.0.tar.gz", hash = "sha256:86203acce555bbfe45cb6ccac61ba8b16a5784264484195874da457ddabf5850", size = 64474 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/da/d1/61431afe22577083fcb50614bc5e5aa73aa0ab35e3fc2ae49708a59ff70b/poethepoet-0.34.0-py3-none-any.whl", hash = "sha256:c472d6f0fdb341b48d346f4ccd49779840c15b30dfd6bc6347a80d6274b5e34e", size = 85851 }, +] + [[package]] name = "pycparser" version = "2.22" @@ -924,10 +946,11 @@ dependencies = [ dev = [ { name = "construct-typing" }, { name = "mypy" }, - { name = "pytest" }, + { name = "poethepoet" }, { name = "python-dotenv" }, ] test = [ + { name = "pytest" }, { name = "pytest-asyncio" }, { name = "robotframework" }, ] @@ -952,10 +975,11 @@ requires-dist = [ dev = [ { name = "construct-typing", specifier = ">=0.6.2" }, { name = "mypy", specifier = ">=1.15.0" }, - { name = "pytest", specifier = ">=8.3.5" }, + { name = "poethepoet", specifier = ">=0.34.0" }, { name = "python-dotenv", specifier = ">=1.0.1" }, ] test = [ + { name = "pytest", specifier = ">=8.3.5" }, { name = "pytest-asyncio", specifier = ">=0.26.0" }, { name = "robotframework", specifier = ">=7.2.2" }, ] @@ -976,11 +1000,13 @@ dependencies = [ { name = "pyjwt" }, { name = "pykeepass" }, { name = "sqlmodel" }, + { name = "sshecret" }, ] [package.dev-dependencies] dev = [ { name = "pytailwindcss" }, + { name = "types-pyjwt" }, ] [package.metadata] @@ -996,10 +1022,14 @@ requires-dist = [ { name = "pyjwt", specifier = ">=2.10.1" }, { name = "pykeepass", specifier = ">=4.1.1.post1" }, { name = "sqlmodel", specifier = ">=0.0.24" }, + { name = "sshecret", editable = "." }, ] [package.metadata.requires-dev] -dev = [{ name = "pytailwindcss", specifier = ">=0.2.0" }] +dev = [ + { name = "pytailwindcss", specifier = ">=0.2.0" }, + { name = "types-pyjwt", specifier = ">=1.7.1" }, +] [[package]] name = "sshecret-backend" @@ -1012,6 +1042,7 @@ dependencies = [ { name = "pytest" }, { name = "python-multipart" }, { name = "sqlmodel" }, + { name = "sshecret" }, ] [package.metadata] @@ -1022,6 +1053,7 @@ requires-dist = [ { name = "pytest", specifier = ">=8.3.5" }, { name = "python-multipart", specifier = ">=0.0.20" }, { name = "sqlmodel", specifier = ">=0.0.24" }, + { name = "sshecret", editable = "." }, ] [[package]] @@ -1051,15 +1083,21 @@ version = "0.1.0" source = { editable = "packages/sshecret-sshd" } dependencies = [ { name = "asyncssh" }, + { name = "click" }, { name = "httpx" }, + { name = "pydantic" }, { name = "python-dotenv" }, + { name = "sshecret" }, ] [package.metadata] requires-dist = [ { name = "asyncssh", specifier = ">=2.20.0" }, + { name = "click", specifier = ">=8.1.8" }, { name = "httpx", specifier = ">=0.28.1" }, + { name = "pydantic", specifier = ">=2.10.6" }, { name = "python-dotenv", specifier = ">=1.0.1" }, + { name = "sshecret", editable = "." }, ] [[package]] @@ -1089,6 +1127,27 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/7f/fc/5b29fea8cee020515ca82cc68e3b8e1e34bb19a3535ad854cac9257b414c/typer-0.15.2-py3-none-any.whl", hash = "sha256:46a499c6107d645a9c13f7ee46c5d5096cae6f5fc57dd11eccbbb9ae3e44ddfc", size = 45061 }, ] +[[package]] +name = "types-cryptography" +version = "3.3.23.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/18/05/a57fe8bbed10fe4b739fac6e16c4e80c5199ce2f74ae67fa7d7f6e3750da/types-cryptography-3.3.23.2.tar.gz", hash = "sha256:09cc53f273dd4d8c29fa7ad11fefd9b734126d467960162397bc5e3e604dea75", size = 15461 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/b6/36/92dfe7e5056694e78caefd05b383140c74c7fcbfc63d26ee514c77f2d8a2/types_cryptography-3.3.23.2-py3-none-any.whl", hash = "sha256:b965d548f148f8e87f353ccf2b7bd92719fdf6c845ff7cedf2abb393a0643e4f", size = 30223 }, +] + +[[package]] +name = "types-pyjwt" +version = "1.7.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "types-cryptography" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/45/92/f2b9e0a047aa22daf364556a61904e98fd164c07524b18487d4bf01bd858/types-PyJWT-1.7.1.tar.gz", hash = "sha256:99c1a0d94d370951f9c6e57b1c369be280b2cbfab72c0f9c0998707490f015c9", size = 3452 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/5a/65/41dc35b71cbd44dbc40583ab1d7b919e7b5c269ec36b9cee8e26c5d665a0/types_PyJWT-1.7.1-py2.py3-none-any.whl", hash = "sha256:810112a84b6c060bb5bc1959a1d229830465eccffa91d8a68eeaac28fb7713ac", size = 4694 }, +] + [[package]] name = "typing-extensions" version = "4.12.2"