[tool.poetry] name = "cashu" version = "0.16.3" description = "Ecash wallet and mint" authors = ["calle "] license = "MIT" [tool.poetry.dependencies] python = "^3.10" SQLAlchemy = {version = "^2.0.35", extras = ["asyncio"]} click = "^8.1.7" pydantic = "^1.10.2" bech32 = "^1.2.0" fastapi = "^0.115.0" environs = "^9.5.0" uvicorn = "^0.31.0" loguru = "^0.7.0" ecdsa = "^0.19.0" bitstring = "^3.1.9" secp256k1 = "^0.14.0" h11 = "^0.14.0" cryptography = "^43.0.1" websocket-client = "^1.3.3" pycryptodomex = "^3.16.0" setuptools = "^75.1.0" wheel = "^0.41.1" importlib-metadata = "^6.8.0" httpx = {extras = ["socks"], version = "^0.25.1"} bip32 = "^4.0" mnemonic = "^0.20" bolt11 = "^2.0.5" websockets = "^12.0" slowapi = "^0.1.9" cbor2 = "^5.6.2" asyncpg = "^0.29.0" aiosqlite = "^0.20.0" grpcio = "^1.65.1" googleapis-common-protos = "^1.63.2" mypy-protobuf = "^3.6.0" types-protobuf = "^5.27.0.20240626" grpcio-tools = "^1.65.1" [tool.poetry.group.dev.dependencies] pytest-asyncio = "^0.24.0" pytest-cov = "^6.0.0" pytest = "^8.3.3" fastapi-profiler = "^1.4.1" respx = "^0.21.1" ruff = "^0.7.1" mypy = "^1.13.0" pre-commit = "^4.0.1" [build-system] requires = ["poetry-core>=1.0.0"] build-backend = "poetry.core.masonry.api" [tool.pytest.ini_options] asyncio_mode = "strict" asyncio_default_fixture_loop_scope = "function" [tool.poetry.scripts] mint = "cashu.mint.main:main" cashu = "cashu.wallet.cli.cli:cli" wallet-test = "tests.test_wallet:test" [tool.ruff] line-length = 88 show-fixes = true [tool.ruff.lint] # (`I`) means isorting extend-select = ["I"] ignore = [] # Allow autofix for all enabled rules (when `--fix`) is provided. fixable = ["ALL"] unfixable = [] # Exclude a variety of commonly ignored directories. exclude = [ "cashu/nostr/*", "cashu/core/bolt11.py", ".bzr", ".direnv", ".eggs", ".git", ".git-rewrite", ".hg", ".mypy_cache", ".nox", ".pants.d", ".pytype", ".ruff_cache", ".svn", ".tox", ".venv", "__pypackages__", "_build", "buck-out", "build", "dist", "node_modules", "venv", ] # Allow unused variables when underscore-prefixed. dummy-variable-rgx = "^(_+|(_+[a-zA-Z0-9_]*[a-zA-Z0-9]+?))$" [tool.ruff.lint.mccabe] # Unlike Flake8, default to a complexity level of 10. max-complexity = 10