148 lines
3.8 KiB
TOML
148 lines
3.8 KiB
TOML
[build-system]
|
|
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"
|
|
readme = "docs/README.rst"
|
|
license = "AGPL-3.0-or-later"
|
|
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",
|
|
]
|
|
dependencies = [
|
|
# 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",
|
|
"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.6,<2", # windows only (from `pdbp`)
|
|
"tabcompleter>=1.4.0",
|
|
# typed IPC msging
|
|
# TODO, get back on release once 3.13 support is out!
|
|
"msgspec",
|
|
]
|
|
|
|
# ------ project ------
|
|
|
|
[dependency-groups]
|
|
dev = [
|
|
# 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",
|
|
"pyperclip>=1.9.0",
|
|
"prompt-toolkit>=3.0.50",
|
|
"xonsh>=0.19.2",
|
|
]
|
|
|
|
# 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"
|
|
directory = "nooz/"
|
|
version = "0.1.0a6"
|
|
title_format = "tractor {version} ({project_date})"
|
|
template = "nooz/_template.rst"
|
|
all_bullets = true
|
|
|
|
[[tool.towncrier.type]]
|
|
directory = "feature"
|
|
name = "Features"
|
|
showcontent = true
|
|
|
|
[[tool.towncrier.type]]
|
|
directory = "bugfix"
|
|
name = "Bug Fixes"
|
|
showcontent = true
|
|
|
|
[[tool.towncrier.type]]
|
|
directory = "doc"
|
|
name = "Improved Documentation"
|
|
showcontent = true
|
|
|
|
[[tool.towncrier.type]]
|
|
directory = "trivial"
|
|
name = "Trivial/Internal Changes"
|
|
showcontent = true
|
|
|
|
[tool.pytest.ini_options]
|
|
minversion = '6.0'
|
|
testpaths = [
|
|
'tests'
|
|
]
|
|
addopts = [
|
|
# TODO: figure out why this isn't working..
|
|
'--rootdir=./tests',
|
|
|
|
'--import-mode=importlib',
|
|
# don't show frickin captured logs AGAIN in the report..
|
|
'--show-capture=no',
|
|
]
|
|
log_cli = false
|
|
|
|
# ------ tool.towncrier ------
|
|
|
|
[tool.uv]
|
|
# XXX NOTE, prefer the sys python bc apparently the distis from
|
|
# `astral` are built in a way that breaks `pdbp`+`tabcompleter`'s
|
|
# likely due to linking against `libedit` over `readline`..
|
|
# |_https://docs.astral.sh/uv/concepts/python-versions/#managed-python-distributions
|
|
# |_https://gregoryszorc.com/docs/python-build-standalone/main/quirks.html#use-of-libedit-on-linux
|
|
#
|
|
# https://docs.astral.sh/uv/reference/settings/#python-preference
|
|
python-preference = 'system'
|
|
|
|
# ------ tool.uv ------
|
|
|
|
[tool.uv.sources]
|
|
msgspec = { git = "https://github.com/jcrist/msgspec.git" }
|
|
|
|
# XXX NOTE, only for @goodboy's hacking on `pprint(sort_dicts=False)`
|
|
# for the `pp` alias..
|
|
# pdbp = { path = "../pdbp", editable = true }
|
|
|
|
# ------ tool.uv.sources ------
|