diff --git a/pyproject.toml b/pyproject.toml index 79a61cd..11b6c29 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -2,60 +2,90 @@ requires = ["hatchling"] build-backend = "hatchling.build" +# ------ build-system ------ + [project] name = "tractor" version = "0.1.0a6dev0" description = 'structured concurrent `trio`-"actors"' authors = [{ name = "Tyler Goodlet", email = "goodboy_foss@protonmail.com" }] -requires-python = "~=3.11" +requires-python = ">= 3.11" readme = "docs/README.rst" license = "AGPL-3.0-or-later" keywords = [ - "trio", - "async", - "concurrency", - "structured concurrency", - "actor model", - "distributed", - "multiprocessing", + "trio", + "async", + "concurrency", + "structured concurrency", + "actor model", + "distributed", + "multiprocessing", ] classifiers = [ - "Development Status :: 3 - Alpha", - "Operating System :: POSIX :: Linux", - "Framework :: Trio", - "License :: OSI Approved :: GNU Affero General Public License v3 or later (AGPLv3+)", - "Programming Language :: Python :: Implementation :: CPython", - "Programming Language :: Python :: 3 :: Only", - "Programming Language :: Python :: 3.11", - "Topic :: System :: Distributed Computing", + "Development Status :: 3 - Alpha", + "Operating System :: POSIX :: Linux", + "Framework :: Trio", + "License :: OSI Approved :: GNU Affero General Public License v3 or later (AGPLv3+)", + "Programming Language :: Python :: Implementation :: CPython", + "Programming Language :: Python :: 3 :: Only", + "Programming Language :: Python :: 3.11", + "Topic :: System :: Distributed Computing", ] dependencies = [ - "trio>=0.24,<0.25", - "tricycle>=0.4.1,<0.5", - "trio-typing>=0.10.0,<0.11", - "wrapt>=1.16.0,<2", - "colorlog>=6.8.2,<7", - "pdbp>=1.5.0,<2", - "msgspec", +# trio runtime and friends + # (poetry) proper range specs, + # https://packaging.python.org/en/latest/discussions/install-requires-vs-requirements/#id5 + # TODO, for 3.13 we must go go `0.27` which means we have to + # disable strict egs or port to handling them internally! + # trio='^0.27' + "trio>=0.24,<0.25", + "tricycle>=0.4.1,<0.5", + "trio-typing>=0.10.0,<0.11", + + "wrapt>=1.16.0,<2", + "colorlog>=6.8.2,<7", + +# built-in multi-actor `pdb` REPL + "pdbp>=1.5.0,<2", + +# typed IPC msging +# TODO, get back on release once 3.13 support is out! + "msgspec", ] +# ------ project ------ + [dependency-groups] dev = [ - "pytest>=8.2.0,<9", - "pexpect>=4.9.0,<5", - "greenback>=1.2.1,<2", - "stackscope>=0.2.2,<0.3", - "xontrib-vox>=0.0.1,<0.0.2", - "prompt-toolkit>=3.0.43,<4", - "xonsh-vox-tabcomplete>=0.5,<0.6", + # test suite + # TODO: maybe some of these layout choices? + # https://docs.pytest.org/en/8.0.x/explanation/goodpractices.html#choosing-a-test-layout-import-rules + "pytest>=8.2.0,<9", + "pexpect>=4.9.0,<5", + # `tractor.devx` tooling + "greenback>=1.2.1,<2", + "stackscope>=0.2.2,<0.3", + + # xonsh usage/integration (namely as @goodboy's sh of choice Bp) + "xonsh>=0.19.1", + "xontrib-vox>=0.0.1,<0.0.2", + "prompt-toolkit>=3.0.43,<4", + "xonsh-vox-tabcomplete>=0.5,<0.6", + "pyperclip>=1.9.0", ] +# TODO, distributed (multi-host) extensions +# linux kernel networking +# 'pyroute2 + [tool.hatch.build.targets.sdist] include = ["tractor"] [tool.hatch.build.targets.wheel] include = ["tractor"] +# ------ dependency-groups ------ + [tool.towncrier] package = "tractor" filename = "NEWS.rst" @@ -100,5 +130,9 @@ addopts = [ ] log_cli = false +# ------ tool.towncrier ------ + [tool.uv.sources] msgspec = { git = "https://github.com/jcrist/msgspec.git" } + +# ------ tool.uv.sources ------ diff --git a/uv.lock b/uv.lock index 9a818e5..8a9a9bf 100644 --- a/uv.lock +++ b/uv.lock @@ -1,5 +1,5 @@ version = 1 -requires-python = ">=3.11, <4" +requires-python = ">=3.11" [[package]] name = "async-generator"