From e9d7f9cff463c6a56b3c2b372c230a424cccd973 Mon Sep 17 00:00:00 2001 From: Tyler Goodlet Date: Mon, 24 Feb 2025 12:37:22 -0500 Subject: [PATCH] Add in some dev deps for @goodboy Namely since i use `xonsh` for a main shell, this includes adding it as well as related tooling. Obvi bump the `uv.lock`. Some other stuff retained from `poetry` days, - add usage-comments around various (optional) deps. - add toml section separator lines. - go with 2-space indent. - add comment on `trio>0.27` needed for py3.13+ --- pyproject.toml | 94 ++++++++++++++++++++++++++++++++++---------------- uv.lock | 13 ++++++- 2 files changed, 76 insertions(+), 31 deletions(-) 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..97b2e16 100644 --- a/uv.lock +++ b/uv.lock @@ -1,5 +1,6 @@ version = 1 -requires-python = ">=3.11, <4" +revision = 1 +requires-python = ">=3.11" [[package]] name = "async-generator" @@ -252,6 +253,12 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/8a/0b/9fcc47d19c48b59121088dd6da2488a49d5f72dacf8262e2790a1d2c7d15/pygments-2.19.1-py3-none-any.whl", hash = "sha256:9ea1544ad55cecf4b8242fab6dd35a93bbce657034b0611ee383099054ab6d8c", size = 1225293 }, ] +[[package]] +name = "pyperclip" +version = "1.9.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/30/23/2f0a3efc4d6a32f3b63cdff36cd398d9701d26cda58e3ab97ac79fb5e60d/pyperclip-1.9.0.tar.gz", hash = "sha256:b7de0142ddc81bfc5c7507eea19da920b92252b548b96186caf94a5e2527d310", size = 20961 } + [[package]] name = "pyreadline3" version = "3.5.4" @@ -334,8 +341,10 @@ dev = [ { name = "greenback" }, { name = "pexpect" }, { name = "prompt-toolkit" }, + { name = "pyperclip" }, { name = "pytest" }, { name = "stackscope" }, + { name = "xonsh" }, { name = "xonsh-vox-tabcomplete" }, { name = "xontrib-vox" }, ] @@ -356,8 +365,10 @@ dev = [ { name = "greenback", specifier = ">=1.2.1,<2" }, { name = "pexpect", specifier = ">=4.9.0,<5" }, { name = "prompt-toolkit", specifier = ">=3.0.43,<4" }, + { name = "pyperclip", specifier = ">=1.9.0" }, { name = "pytest", specifier = ">=8.2.0,<9" }, { name = "stackscope", specifier = ">=0.2.2,<0.3" }, + { name = "xonsh", specifier = ">=0.19.1" }, { name = "xonsh-vox-tabcomplete", specifier = ">=0.5,<0.6" }, { name = "xontrib-vox", specifier = ">=0.0.1,<0.0.2" }, ]