[tool.poetry]
name = "trezor-firmware"
version = "0.0.0"
description = ""
authors = ["SatoshiLabs <info@satoshilabs.com>"]

[tool.poetry.dependencies]
# all
python = "^3.8.1"
trezor = {path = "./python", develop = true}
scons = "*"
protobuf = "*"
nanopb = "^0.4.3"

## test tools
pytest = "^8"
coverage = "<5"  # coverage 5+ uses binary sqlite format
flaky = ">3.6.1"  # https://github.com/box/flaky/issues/156
pytest-ordering = "*"
pytest-random-order = "*"
pytest-timeout = "*"
pytest-xdist = "*"
tox = "*"
dominate = "*"

# hardware tests
pyserial = "*"

## test requirements
shamir-mnemonic = "^0.3.0"
fido2 = "^0.8.0"
python-bitcoinlib = "^0.11.0"

## typing
typing-extensions = ">=4.7.1"

## style
isort = "^5"
flake8 = ">=7"
black = ">=24.2"
mako = "^1.0.7"
munch = "^2.3.2"
autoflake = "*"
flake8-requirements = ">=2.1.0"
pylint = "^2.11"

# common
demjson3 = "*"
graphviz = "*"

## cointool
click = "^8"
requests = "^2.32"
termcolor = "*"
Pillow = ">=10.0.1"

# crypto
ecdsa = "^0.16"
pyasn1 = "*"

# legacy
setuptools = ">=24.2.0"

# storage
cryptography = "*"
hypothesis = "*"
inotify = "*"
yamllint = "^1.25.0"
vulture = "^2.6"

# tools
binsize = "^0.1.3"
toiftool = {path = "./python/tools/toiftool", develop = true, python = ">=3.8"}
trezor-pylint-plugin = {path = "./tools/trezor-pylint-plugin", develop = true}
trezor-core-tools = {path = "./core/tools", develop = true}

[tool.poetry.dev-dependencies]
scan-build = "*"
towncrier = "^23.6.0"
#freetype-py = "^2.3.0"

[build-system]
requires = ["poetry>=1;<1.1", "pip>=20"]
build-backend = "poetry.masonry.api"

[tool.isort]
profile = "black"
extra_standard_library = [
  "micropython",
  "ubinascii",
  "ustruct",
  "uctypes",
  "utime",
  "utimeq",
  "trezorio",
  "trezorui",
  "trezorutils",
  "trezorconfig",
  "trezorcrypto",
]
known_first_party = ["trezorlib", "apps", "coin_info", "marketcap", "ui_tests", "gitlab"]
known_third_party = ["trezor", "storage"]
