[tool.poetry]
name = "nucypher"
version = "7.6.0"
authors = ["NuCypher"]
description = "A threshold access control application to empower privacy in decentralized systems."

[tool.poetry.dependencies]
python = ">=3.9,<4"

nucypher-core = "==0.13.0"
cryptography = "*"
pynacl = ">=1.4.0"
mnemonic = "*"
pyopenssl = "*"
web3 = '^6.15.1'
atxm = "^0.5.0"
flask = "*"
hendrix = "*"
requests = "*"
maya = '*'
mako = "*"
click = '*'
colorama = '*'
tabulate = '*'
marshmallow = '*'
appdirs = '*'
constant-sorrow = '^0.1.0a9'
prometheus-client = '*'
siwe = "^4.2.0"
time-machine = "^2.13.0"
twisted = "^24.2.0rc1"
jsonpath-ng = "^1.6.1"
pyjwt = {extras = ["crypto"], version = "^2.10.1"}
nucypher-pychalk = "^2.0.2"
nucypher-snaptime = "^0.2.5"
# TODO: this is to match requirements.txt; update and relock for 7.6.x
python-statemachine = "==2.3.4"

[tool.poetry.group.dev.dependencies]
pytest = '*'
pytest-cov = '*'
pytest-mock = '*'
pytest-timeout = '*'
pytest-twisted = '*'
eth-ape = ">=0.8,<=0.8.12"  # limit due to pytest not supporting newer version of eth-utils - also observed here: https://github.com/oceanprotocol/pdr-backend/issues/899
ape-solidity = '*'
coverage = '^7.3.2'
pre-commit = '^2.12.1'
numpy = '^1.26.0'


[tool.towncrier]
    package = "nucypher"
    package_dir = "nucypher"
    filename = "releases.rst"
    directory = "newsfragments"
    underlines = ["-", "~", "^", "*"]
    issue_format = "`#{issue} <https://github.com/nucypher/nucypher/issues/{issue}>`__"
    title_format = "v{version} ({project_date})"

    [[tool.towncrier.section]]
        path = ""

    [[tool.towncrier.type]]
        directory = "feature"
        name = "Features"
        showcontent = true

    [[tool.towncrier.type]]
        directory = "bugfix"
        name = "Bugfixes"
        showcontent = true

    [[tool.towncrier.type]]
        directory = "doc"
        name = "Improved Documentation"
        showcontent = true

    [[tool.towncrier.type]]
        directory = "removal"
        name = "Deprecations and Removals"
        showcontent = true

    [[tool.towncrier.type]]
        directory = "misc"
        name = "Misc"
        showcontent = true

    [[tool.towncrier.type]]
        directory = "dev"
        name = "Internal Development Tasks"
        showcontent = true

[tool.ruff]
lint.select = ["E", "F", "I"]
lint.ignore = ["E501"]

[tool.ruff.lint.isort]
known-first-party = ["nucypher"]
