mirror of
https://github.com/BrianPugh/gnwmanager.git
synced 2025-12-05 13:15:58 +01:00
177 lines
3.6 KiB
TOML
177 lines
3.6 KiB
TOML
[build-system]
|
|
requires = ["poetry-core>=1.0.0", "poetry-dynamic-versioning>=0.21.5"]
|
|
build-backend = "poetry_dynamic_versioning.backend"
|
|
|
|
[tool.poetry-dynamic-versioning]
|
|
enable = true
|
|
vcs = "git"
|
|
style = "semver"
|
|
|
|
[tool.poetry]
|
|
name = "gnwmanager"
|
|
version = "0.0.0" # Do not change, let poetry-dynamic-versioning handle it.
|
|
homepage = "https://github.com/BrianPugh/gnwmanager"
|
|
repository = "https://github.com/BrianPugh/gnwmanager"
|
|
license = "Apache-2.0"
|
|
description = ""
|
|
authors = ["Brian Pugh"]
|
|
readme = "README.md"
|
|
packages = [{include = "gnwmanager"}]
|
|
include = ["gnwmanager/firmware.bin"]
|
|
|
|
[tool.poetry.build]
|
|
generate-setup-file = false
|
|
script = 'build.py'
|
|
|
|
[tool.poetry.scripts]
|
|
gnwmanager = "gnwmanager.cli.main:run_app"
|
|
|
|
[tool.poetry.dependencies]
|
|
# Be as loose as possible if writing a library.
|
|
python = ">=3.8"
|
|
typer = ">=0.7.0"
|
|
pyocd = { git = "https://github.com/BrianPugh/pyOCD.git", branch = "stm32h7b0-256k" }
|
|
littlefs-python = { git = "https://github.com/BrianPugh/littlefs-python.git", branch = "develop"}
|
|
typing-extensions = "^4.7.1"
|
|
tqdm = "^4.66.1"
|
|
pillow = "^10.0.0"
|
|
tamp = "^1.1.6"
|
|
rich = "^13.5.2"
|
|
pyelftools = "^0.29"
|
|
intervaltree = "^3.1.0"
|
|
|
|
[tool.poetry.group.docs.dependencies]
|
|
sphinx = "~6.2.1"
|
|
sphinx_rtd_theme = "~1.2.2"
|
|
gitpython = ">=3.1.31"
|
|
sphinx-copybutton = "^0.5.2"
|
|
|
|
[tool.poetry.group.dev.dependencies]
|
|
coverage = {extras = ["toml"], version = ">=5.1"}
|
|
pre_commit = ">=2.16.0"
|
|
pytest = ">=7.1.2"
|
|
pytest-cov = ">=3.0.0"
|
|
pytest-mock = ">=3.7.0"
|
|
|
|
[tool.poetry.group.debug]
|
|
optional = true
|
|
|
|
[tool.poetry.group.debug.dependencies]
|
|
ipdb = ">=0.13.9"
|
|
line_profiler = ">=3.5.1"
|
|
|
|
[tool.coverage.run]
|
|
branch = true
|
|
omit = [
|
|
"tests/*",
|
|
]
|
|
|
|
[tool.coverage.report]
|
|
exclude_lines = [
|
|
# Have to re-enable the standard pragma
|
|
"pragma: no cover",
|
|
|
|
# Don't complain about missing debug-only code:
|
|
"def __repr__",
|
|
"if self.debug:",
|
|
"if debug:",
|
|
"if DEBUG:",
|
|
|
|
# Don't complain if tests don't hit defensive assertion code:
|
|
"raise AssertionError",
|
|
"raise NotImplementedError",
|
|
|
|
# Don't complain if non-runnable code isn't run:
|
|
"if 0:",
|
|
"if False:",
|
|
"if __name__ == .__main__.:",
|
|
]
|
|
|
|
[tool.pyright]
|
|
venvPath = "."
|
|
venv = ".venv"
|
|
|
|
[tool.ruff]
|
|
target-version = 'py38'
|
|
select = [
|
|
"B", # flake8-bugbear
|
|
"C4", # flake8-comprehensions
|
|
"D", # pydocstyle
|
|
"E", # Error
|
|
"F", # pyflakes
|
|
"I", # isort
|
|
"ISC", # flake8-implicit-str-concat
|
|
"N", # pep8-naming
|
|
"PGH", # pygrep-hooks
|
|
"PTH", # flake8-use-pathlib
|
|
"Q", # flake8-quotes
|
|
"SIM", # flake8-simplify
|
|
"TRY", # tryceratops
|
|
"UP", # pyupgrade
|
|
"W", # Warning
|
|
"YTT", # flake8-2020
|
|
]
|
|
|
|
exclude = [
|
|
"migrations",
|
|
"__pycache__",
|
|
"manage.py",
|
|
"settings.py",
|
|
"env",
|
|
".env",
|
|
"venv",
|
|
".venv",
|
|
]
|
|
|
|
ignore = [
|
|
"B905", # zip strict=True; remove once python <3.10 support is dropped.
|
|
"D100",
|
|
"D101",
|
|
"D102",
|
|
"D103",
|
|
"D104",
|
|
"D105",
|
|
"D106",
|
|
"D107",
|
|
"D200",
|
|
"D401",
|
|
"E402",
|
|
"E501",
|
|
"F401",
|
|
"TRY003", # Avoid specifying messages outside exception class; overly strict, especially for ValueError
|
|
]
|
|
line-length = 120 # Must agree with Black
|
|
|
|
[tool.ruff.flake8-bugbear]
|
|
extend-immutable-calls = [
|
|
"chr",
|
|
"typer.Argument",
|
|
"typer.Option",
|
|
]
|
|
|
|
[tool.ruff.pydocstyle]
|
|
convention = "numpy"
|
|
|
|
[tool.ruff.per-file-ignores]
|
|
"tests/*.py" = [
|
|
"D100",
|
|
"D101",
|
|
"D102",
|
|
"D103",
|
|
"D104",
|
|
"D105",
|
|
"D106",
|
|
"D107",
|
|
"PGH001", # use of "eval"
|
|
]
|
|
|
|
[tool.ruff.pep8-naming]
|
|
staticmethod-decorators = [
|
|
"pydantic.validator",
|
|
"pydantic.root_validator",
|
|
]
|
|
|
|
[tool.codespell]
|
|
skip = 'poetry.lock,'
|
|
ignore-words-list = "ptd,hsi"
|