From 979af795883fa92d6e81146129f062def013a9fe Mon Sep 17 00:00:00 2001 From: Tyler Goodlet Date: Tue, 30 Apr 2024 11:46:56 -0400 Subject: [PATCH] First draft, package with `poetry` Bo --- pyproject.toml | 89 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 89 insertions(+) diff --git a/pyproject.toml b/pyproject.toml index 8463380..c106474 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,3 +1,68 @@ +[build-system] +requires = ["poetry-core"] +build-backend = "poetry.core.masonry.api" + +# ------ - ------ + +[tool.poetry] +name = "tractor" +version = "0.1.0a6dev0" +description='structured concurrent `trio`-"actors"' +authors = ["Tyler Goodlet "] +license = "AGPlv3" +readme = "docs/README.rst" + +# TODO: do we need this xontrib loader at all given pep420 +# and xonsh's xontrib global-autoload-via-setuptools? +# https://xon.sh/tutorial_xontrib.html#authoring-xontribs +packages = [ + {include = 'tractor' }, + # {include = 'tractor.experimental' }, + # {include = 'tractor.trionics' }, + # {include = 'tractor.msg' }, + # {include = 'tractor.devx' }, +] + +# ------ - ------ + +[tool.poetry.dependencies] +python = "^3.11" + +# trio runtime related +# proper range spec: +# https://packaging.python.org/en/latest/discussions/install-requires-vs-requirements/#id5 +trio='^0.24' +tricycle = "^0.4.1" +trio-typing = "^0.10.0" + +msgspec='^0.18.5' # interchange +wrapt = "^1.16.0" # decorators +colorlog = "^6.8.2" # logging + +# .devx tooling +stackscope = "^0.2.2" +pdbp = "^1.5.0" + + +# TODO: distributed transport using +# linux kernel networking +# 'pyroute2 + +# ------ - ------ +xontrib-vox = "^0.0.1" + +[tool.poetry.group.dev] +optional = false +[tool.poetry.group.dev.dependencies] +pytest = "^8.2.0" + +# only for xonsh as sh.. +xontrib-vox = "^0.0.1" +prompt-toolkit = "^3.0.43" +xonsh-vox-tabcomplete = "^0.5" + +# ------ - ------ + [tool.towncrier] package = "tractor" filename = "NEWS.rst" @@ -27,6 +92,7 @@ all_bullets = true name = "Trivial/Internal Changes" showcontent = true +# ------ - ------ [tool.pytest.ini_options] minversion = '6.0' @@ -46,3 +112,26 @@ log_cli = false # TODO: maybe some of these layout choices? # https://docs.pytest.org/en/8.0.x/explanation/goodpractices.html#choosing-a-test-layout-import-rules # pythonpath = "src" + +# ------ - ------ + +[project] +keywords = [ + '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", +]