diff --git a/pyproject.toml b/pyproject.toml index 1f25c0b..4f910ad 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -13,6 +13,11 @@ dependencies = [ "prompt-toolkit>=3.0.52", ] +[project.optional-dependencies] +cli = [ + "typer>=0.9,!=0.12,<=0.21.1", +] + [dependency-groups] dev = [ {include-group = "linters"}, @@ -48,6 +53,9 @@ metrics = [ "py-cpuinfo>=9.0.0", ] +[project.scripts] +argenta = "argenta._cli.__main__:main" + [tool.ruff] line-length=100 diff --git a/src/argenta/_cli/__init__.py b/src/argenta/_cli/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/src/argenta/_cli/__main__.py b/src/argenta/_cli/__main__.py new file mode 100644 index 0000000..39ae4d9 --- /dev/null +++ b/src/argenta/_cli/__main__.py @@ -0,0 +1,6 @@ +def main(): + print(f'run from {__name__}') + print('hello world') + +if __name__ == '__main__': + main() \ No newline at end of file diff --git a/uv.lock b/uv.lock index 64639d7..73b5591 100644 --- a/uv.lock +++ b/uv.lock @@ -1,6 +1,6 @@ version = 1 revision = 3 -requires-python = ">=3.12" +requires-python = ">=3.12, <3.15" [[package]] name = "aiosqlite" @@ -39,7 +39,7 @@ wheels = [ [[package]] name = "argenta" -version = "1.1.2" +version = "1.2.0" source = { editable = "." } dependencies = [ { name = "art" }, @@ -48,6 +48,11 @@ dependencies = [ { name = "rich" }, ] +[package.optional-dependencies] +cli = [ + { name = "typer" }, +] + [package.dev-dependencies] dev = [ { name = "esbonio" }, @@ -98,7 +103,9 @@ requires-dist = [ { name = "dishka", specifier = ">=1.7.2" }, { name = "prompt-toolkit", specifier = ">=3.0.52" }, { name = "rich", specifier = ">=14.0.0,<15.0.0" }, + { name = "typer", marker = "extra == 'cli'", specifier = ">=0.9,!=0.12,<=0.21.1" }, ] +provides-extras = ["cli"] [package.metadata.requires-dev] dev = [ @@ -1269,6 +1276,15 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/02/e7/062480ede84ecb56ee0f8f2e5b5a3b2a5bceeb73bbdf909d3c13f5438749/scriv-1.8.0-py3-none-any.whl", hash = "sha256:f00f51325b2f4bc96b16fbb1239d4ab577cc2422301a5dd4f5f9378aae2549e0", size = 39085, upload-time = "2025-12-30T00:01:08.599Z" }, ] +[[package]] +name = "shellingham" +version = "1.5.4" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/58/15/8b3609fd3830ef7b27b655beb4b4e9c62313a4e8da8c676e142cc210d58e/shellingham-1.5.4.tar.gz", hash = "sha256:8dbca0739d487e5bd35ab3ca4b36e11c4078f3a234bfce294b0a0291363404de", size = 10310, upload-time = "2023-10-24T04:13:40.426Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/e0/f9/0595336914c5619e5f28a1fb793285925a8cd4b432c9da0a987836c7f822/shellingham-1.5.4-py2.py3-none-any.whl", hash = "sha256:7ecfff8f2fd72616f7481040475a65b2bf8af90a56c89140852d1120324e8686", size = 9755, upload-time = "2023-10-24T04:13:38.866Z" }, +] + [[package]] name = "shibuya" version = "2025.9.25" @@ -1435,6 +1451,21 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/be/72/2db2f49247d0a18b4f1bb9a5a39a0162869acf235f3a96418363947b3d46/starlette-0.48.0-py3-none-any.whl", hash = "sha256:0764ca97b097582558ecb498132ed0c7d942f233f365b86ba37770e026510659", size = 73736, upload-time = "2025-09-13T08:41:03.869Z" }, ] +[[package]] +name = "typer" +version = "0.21.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "click" }, + { name = "rich" }, + { name = "shellingham" }, + { name = "typing-extensions" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/36/bf/8825b5929afd84d0dabd606c67cd57b8388cb3ec385f7ef19c5cc2202069/typer-0.21.1.tar.gz", hash = "sha256:ea835607cd752343b6b2b7ce676893e5a0324082268b48f27aa058bdb7d2145d", size = 110371, upload-time = "2026-01-06T11:21:10.989Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/a0/1d/d9257dd49ff2ca23ea5f132edf1281a0c4f9de8a762b9ae399b670a59235/typer-0.21.1-py3-none-any.whl", hash = "sha256:7985e89081c636b88d172c2ee0cfe33c253160994d47bdfdc302defd7d1f1d01", size = 47381, upload-time = "2026-01-06T11:21:09.824Z" }, +] + [[package]] name = "typing-extensions" version = "4.13.2"