Files
chia-blockchain/pyproject.toml
T

151 lines
6.3 KiB
TOML

[project]
name = "chia-blockchain"
dynamic = [ "dependencies", "version" ]
description = "Chia blockchain full node, farmer, timelord, and wallet."
# banning 3.9.0 and 3.9.1 for simplicity aligning with https://github.com/pyca/cryptography/pull/12045
requires-python = ">=3.9, <4, !=3.9.0, !=3.9.1"
authors = [
{name="Mariano Sorgente", email="mariano@chia.net"}
]
license = {text="Apache-2.0"}
readme = {file = "README.md", content-type = "text/markdown"}
keywords= ["chia", "blockchain", "node"]
homepage = "https://chia.net/"
[tool.poetry]
# see [tool.poetry-dynamic-versioning]
packages = [{ include = "chia"}]
version = "0.0.0"
[project.scripts]
chia = "chia.cmds.chia:main"
chia_daemon = "chia.daemon.server:main"
chia_wallet = "chia.wallet.start_wallet:main"
chia_full_node = "chia.full_node.start_full_node:main"
chia_harvester = "chia.harvester.start_harvester:main"
chia_farmer = "chia.farmer.start_farmer:main"
chia_introducer = "chia.introducer.start_introducer:main"
chia_crawler = "chia.seeder.start_crawler:main"
chia_seeder = "chia.seeder.dns_server:main"
chia_timelord = "chia.timelord.start_timelord:main"
chia_timelord_launcher = "chia.timelord.timelord_launcher:main"
chia_full_node_simulator = "chia.simulator.start_simulator:main"
chia_data_layer = "chia.data_layer.start_data_layer:main"
chia_data_layer_http = "chia.data_layer.data_layer_server:main"
chia_data_layer_s3_plugin = "chia.data_layer.s3_plugin_service:run_server"
chia_solver = "chia.solver.start_solver:main"
[[tool.poetry.source]]
name = "chia"
url = "https://pypi.chia.net/simple/"
priority = "supplemental"
[project.urls]
source = "https://github.com/Chia-Network/chia-blockchain/"
changelog = "https://github.com/Chia-Network/chia-blockchain/blob/main/CHANGELOG.md"
[tool.poetry.dependencies]
aiofiles = ">=24.1.0" # Async IO for files
aiohttp = ">=3.10.4" # HTTP server for full node rpc
aiosqlite = ">=0.20.0" # asyncio wrapper for sqlite, to store blocks
anyio = ">=4.6.2.post1"
bitstring = ">=4.1.4" # Binary data management library
boto3 = ">=1.35.43" # AWS S3 for Data Layer S3 plugin
chiabip158 = ">=1.5.2" # bip158-style wallet filters
chiapos = ">=2.0.10" # proof of space
chia-puzzles-py = ">=0.20.1"
chia_rs = ">=0.30, <0.31"
chiavdf = ">=1.1.10" # timelord and vdf verification
click = ">=8.1.7" # For the CLI
clvm = ">=0.9.14"
clvm_tools = ">=0.4.9" # Currying Program.to other conveniences
clvm_tools_rs = ">=0.1.45" # Rust implementation of clvm_tools' compiler
colorama = ">=0.4.6" # Colorizes terminal output
colorlog = ">=6.9.0" # Adds color to logs
concurrent_log_handler = ">=0.9.25" # Concurrently log and rotate logs
cryptography = ">=43.0.1" # Python cryptography library for TLS - keyring conflict
dnslib = ">=0.9.25" # dns lib
dnspython = ">=2.6.1" # Query DNS seeds
filelock = ">=3.16.1" # For reading and writing config multiprocess and multithread safely (non-reentrant locks)
keyring = ">=25.5.0" # Store keys in MacOS Keychain, Windows Credential Locker
packaging = ">=24.0"
pip = ">=24.2"
psutil = ">=6.1.0"
pyyaml = ">=6.0.2" # Used for config file format
setproctitle = ">=1.3.3" # Gives the chia processes readable names
setuptools = ">=75.5.0"
sortedcontainers = ">=2.4.0" # For maintaining sorted mempools
typing-extensions = ">=4.12.2" # typing backports like Protocol and TypedDict
watchdog = ">=4.0.1" # Filesystem event watching - watches keyring.yaml
zstd = [
{version=">=1.5.5.1", python = "<3.12"},
{version=">=1.5.5.1", python = "3.12", source="chia"},
]
importlib-resources = ">=6.4.5"
hsms = ">=0.3.1"
aiohttp_cors = { version = ">=0.7.0", optional = true }
build = { version = ">=1.2.1", optional = true }
coverage = { version = ">=7.6.4", optional = true }
diff-cover = { version = ">=9.2.0", optional = true }
# TODO: but... keyrings_cryptfile goes 15 minutes without locking while this does in 75 seconds
"keyrings.cryptfile" = { version = ">=1.3.9", optional = true }
mypy = { version = ">=1.11.1", optional = true }
pre-commit = { version = ">=3.7.1", optional = true }
py3createtorrent = { version = ">=1.2.1", optional = true }
pyinstaller = { version = ">=6.9.0", python = "<3.13", optional = true }
pytest = { version = ">=8.3.3", optional = true }
pytest-cov = { version = ">=5.0.0", optional = true }
pytest-mock = { version = ">=3.14.0", optional = true }
pytest-monitor = { version = ">=1.6.6", platform = "linux", optional = true }
pytest-xdist = { version = ">=3.6.1", optional = true }
tach = { version = ">=0.29.0", optional = true }
types-aiofiles = { version = ">=24.1.0.20240626", optional = true }
types-cryptography = { version = ">=3.3.23.2", optional = true }
types-pyyaml = { version = ">=6.0.12.20240917", optional = true }
types-setuptools = { version = ">=75.5.0.20241122", optional = true }
lxml = { version = ">=5.2.2", optional = true }
miniupnpc = {version = ">=2.3.2, <3", source = "chia", optional = true}
# big-o = {version = "0.11.0", optional = true}
# numpy = [
# {version="<=1.24.4", python = "<3.9", optional = true},
# {version=">=1.26.4", python = ">=3.9", optional = true}]
ruff = { version = ">=0.8.1", optional = true }
[project.optional-dependencies]
dev = ["aiohttp_cors", "build", "coverage", "diff-cover", "mypy", "pre-commit", "py3createtorrent", "pyinstaller", "pytest", "pytest-cov", "pytest-mock", "pytest-monitor", "pytest-xdist", "ruff", "tach", "types-aiofiles", "types-cryptography", "types-pyyaml", "types-setuptools", "lxml"]
upnp = ["miniupnpc"]
legacy_keyring = ["keyrings.cryptfile"]
[tool.poetry-dynamic-versioning]
enable = true
vcs = "git"
pattern = "default-unprefixed"
format-jinja = """
{%- if distance == 0 -%}
{%- if stage is none -%}
{{ base }}
{%- else -%}
{{ base }}-{{stage}}{{revision}}
{%- endif -%}
{%- else -%}
{%- if stage is none -%}
{{ base }}-dev{{ distance }}
{%- else -%}
{{ base }}-{{stage}}{{revision}}.dev{{ distance }}
{%- endif -%}
{%- endif -%}
"""
#format-jinja = """
# {%- if distance == 0 -%}
# {{ serialize_pep440(base, stage, revision) }}
# {%- else -%}
# {{ serialize_pep440(base, stage, revision, dev=distance) }}
# {%- endif -%}
#"""
style = "semver"
bump = true
[build-system]
requires = ["poetry-core>=1.0.0", "poetry-dynamic-versioning"]
build-backend = "poetry_dynamic_versioning.backend"