[build-system]
requires = ["poetry>=1.0.9,<2.0"]
build-backend = "poetry.masonry.api"

[tool.poetry]
name = "flat-tree"
version = "0.0.1a6"
description = "Utilities for navigating flat trees"
authors = ["Decentral1se <hi@decentral1.se>"]
maintainers = ["Decentral1se <hi@decentral1.se>"]
license = "GPLv3"
readme = "README.md"
repository = "https://github.com/hyperpy/flat-tree"
keywords = ["hypercore", "hypercore-protocol"]

[tool.poetry.dependencies]
python = "^3.6"
attrs = "^19.3.0"

[tool.poetry.dev-dependencies]
black = "^19.10b0"
flake8 = "^3.8.3"
isort = "^5.0.2"

[tool.black]
line-length = 80
target-version = ["py38"]
include = '\.pyi?$'

[tool.isort]
include_trailing_comma = true
known_first_party = "flat_tree"
known_third_party = "pytest"
line_length = 80
multi_line_output = 3
skip = ".venv,.tox"

[tool.tox]
legacy_tox_ini = """
[tox]
envlist =
    {py36,py37,py38}
    lint
    sort
    format
    type
skip_missing_interpreters = True
isolated_build = True

[testenv]
deps =
  pytest
  pytest-cov
  pytest-mock
commands = pytest test/ --cov={toxinidir}/flat_tree/ --no-cov-on-fail {posargs}

[testenv:lint]
skipdist = True
deps = flake8
commands = flake8 {posargs:--max-line-length 80} flat_tree/ test/

[testenv:sort]
skipdist = True
deps = isort
commands = isort {posargs:-c} -sp setup.cfg flat_tree/ test/

[testenv:format]
skipdist = True
deps = black
commands = black {posargs:--check} flat_tree/ test/

[testenv:type]
skipdist = True
deps = mypy
commands = mypy {posargs:--ignore-missing-imports} flat_tree/ test/

[testenv:release]
deps = twine
commands =
    rm -rf {toxworkdir}/dist
    python -m setup sdist --dist-dir {toxworkdir}/dist bdist_wheel
    python -m setup sdist --dist-dir {toxworkdir}/dist bdist_egg
    twine upload {toxworkdir}/dist/*
whitelist_externals =
    rm
"""