from __future__ import annotations import os import sys from setuptools import find_packages, setup dependencies = [ "aiofiles==23.2.1", # Async IO for files "anyio==4.3.0", "boto3==1.34.114", # AWS S3 for DL s3 plugin "chiavdf==1.1.4", # timelord and vdf verification "chiabip158==1.5.1", # bip158-style wallet filters "chiapos==2.0.4", # proof of space "clvm==0.9.10", "clvm_tools==0.4.9", # Currying, Program.to, other conveniences "chia_rs==0.9.0", "clvm-tools-rs==0.1.40", # Rust implementation of clvm_tools' compiler "aiohttp==3.9.4", # HTTP server for full node rpc "aiosqlite==0.20.0", # asyncio wrapper for sqlite, to store blocks "bitstring==4.1.4", # Binary data management library "colorama==0.4.6", # Colorizes terminal output "colorlog==6.8.2", # Adds color to logs "concurrent-log-handler==0.9.25", # Concurrently log and rotate logs "cryptography==42.0.5", # Python cryptography library for TLS - keyring conflict "filelock==3.14.0", # For reading and writing config multiprocess and multithread safely (non-reentrant locks) "importlib-resources==6.4.0", "keyring==25.1.0", # Store keys in MacOS Keychain, Windows Credential Locker "PyYAML==6.0.1", # Used for config file format "setproctitle==1.3.3", # Gives the chia processes readable names "sortedcontainers==2.4.0", # For maintaining sorted mempools "click==8.1.3", # For the CLI "dnspython==2.6.1", # Query DNS seeds "watchdog==4.0.0", # Filesystem event watching - watches keyring.yaml "dnslib==0.9.24", # dns lib "typing-extensions==4.11.0", # typing backports like Protocol and TypedDict "zstd==1.5.5.1", "packaging==24.0", "psutil==5.9.4", "hsms==0.3.1", ] upnp_dependencies = [ "miniupnpc==2.2.2", # Allows users to open ports on their router ] dev_dependencies = [ "build==1.2.1", "coverage==7.5.3", "diff-cover==9.0.0", "pre-commit==3.5.0; python_version < '3.9'", "pre-commit==3.7.1; python_version >= '3.9'", "py3createtorrent==1.2.0", "pylint==3.2.2", "pytest==8.1.1", "pytest-cov==5.0.0", "pytest-mock==3.14.0", "pytest-xdist==3.6.1", "pyupgrade==3.15.2", "twine==5.1.0", "isort==5.13.2", "flake8==7.0.0", "mypy==1.10.0", "black==24.4.2", "lxml==5.2.2", "aiohttp_cors==0.7.0", # For blackd "pyinstaller==6.7.0", "types-aiofiles==23.2.0.20240311", "types-cryptography==3.3.23.2", "types-pyyaml==6.0.12.20240311", "types-setuptools==70.0.0.20240524", ] legacy_keyring_dependencies = [ "keyrings.cryptfile==1.3.9", ] kwargs = dict( name="chia-blockchain", author="Mariano Sorgente", author_email="mariano@chia.net", description="Chia blockchain full node, farmer, timelord, and wallet.", url="https://chia.net/", license="Apache License", python_requires=">=3.8.1, <4", keywords="chia blockchain node", install_requires=dependencies, extras_require={ "dev": dev_dependencies, "upnp": upnp_dependencies, "legacy-keyring": legacy_keyring_dependencies, }, packages=find_packages(include=["build_scripts", "chia", "chia.*", "mozilla-ca"]), entry_points={ "console_scripts": [ "chia = chia.cmds.chia:main", "chia_daemon = chia.daemon.server:main", "chia_wallet = chia.server.start_wallet:main", "chia_full_node = chia.server.start_full_node:main", "chia_harvester = chia.server.start_harvester:main", "chia_farmer = chia.server.start_farmer:main", "chia_introducer = chia.server.start_introducer:main", "chia_crawler = chia.seeder.start_crawler:main", "chia_seeder = chia.seeder.dns_server:main", "chia_timelord = chia.server.start_timelord:main", "chia_timelord_launcher = chia.timelord.timelord_launcher:main", "chia_full_node_simulator = chia.simulator.start_simulator:main", "chia_data_layer = chia.server.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", ] }, package_data={ "": ["*.clsp", "*.clsp.hex", "*.clvm", "*.clib", "py.typed"], "chia._tests.cmds.wallet": ["test_offer.toffer"], "chia._tests.farmer_harvester": ["*.json"], "chia._tests.tools": ["*.json", "test-blockchain-db.sqlite"], "chia._tests.util": ["bip39_test_vectors.json", "clvm_generator.bin", "protocol_messages_bytes-v*"], "chia.util": ["initial-*.yaml", "english.txt"], "chia.ssl": ["chia_ca.crt", "chia_ca.key", "dst_root_ca.pem"], "mozilla-ca": ["cacert.pem"], }, long_description=open("README.md").read(), long_description_content_type="text/markdown", zip_safe=False, project_urls={ "Source": "https://github.com/Chia-Network/chia-blockchain/", "Changelog": "https://github.com/Chia-Network/chia-blockchain/blob/main/CHANGELOG.md", }, ) if "setup_file" in sys.modules: # include dev deps in regular deps when run in snyk dependencies.extend(dev_dependencies) if len(os.environ.get("CHIA_SKIP_SETUP", "")) < 1: setup(**kwargs) # type: ignore