blob: ea842e53bc224c4619d89449fd026964c595ed7e [file] [log] [blame]
Harrison Mutai6ac31f32024-05-10 16:54:29 +00001# Poetry pyproject.toml: https://python-poetry.org/docs/pyproject/
2[build-system]
3requires = ["poetry_core>=1.0.0"]
4build-backend = "poetry.core.masonry.api"
5
6[tool.poetry]
7name = "tlc"
8version = "0.9.0"
9description = "Transfer List Compiler (TLC) is a Python-based CLI for efficiently handling transfer lists."
10authors = ["Arm Ltd <tf-a@lists.trustedfirmware.org>"]
11license = "BSD-3"
12repository = "https://git.trustedfirmware.org/TF-A/trusted-firmware-a.git/"
13homepage = "https://trustedfirmware-a.readthedocs.io/en/latest/index.html"
14
15# Keywords description https://python-poetry.org/docs/pyproject/#keywords
16keywords = [] #! Update me
17
18# Pypi classifiers: https://pypi.org/classifiers/
19classifiers = [
20 "Development Status :: 3 - Alpha",
21 "Intended Audience :: Developers",
22 "Operating System :: OS Independent",
23 "Topic :: Software Development :: Libraries :: Python Modules",
24 "License :: OSI Approved :: BSD License",
25 "Programming Language :: Python :: 3",
26 "Programming Language :: Python :: 3.8",
27 "Programming Language :: Python :: 3.9",
28]
29
30[tool.poetry.scripts]
31# Entry points for the package https://python-poetry.org/docs/pyproject/#scripts
32"tlc" = "tlc.__main__:cli"
33
34[tool.poetry.dependencies]
35python = "^3.8"
36
37typer = {extras = ["all"], version = "^0.4.0"}
38rich = "^10.14.0"
39click = "^8.1.7"
Charlie Bareham31120992024-06-17 11:58:03 +010040pyyaml = "^6.0.1"
Harrison Mutai38487c72024-08-29 10:38:26 +000041jinja2 = "^3.1.4"
Harrison Mutai6ac31f32024-05-10 16:54:29 +000042
Harrison Mutai38487c72024-08-29 10:38:26 +000043[tool.poetry.group.dev]
44optional = true
45
46[tool.poetry.group.dev.dependencies]
Harrison Mutai6ac31f32024-05-10 16:54:29 +000047bandit = "^1.7.1"
Harrison Mutai38487c72024-08-29 10:38:26 +000048tox = "^4.18.0"
Harrison Mutai6ac31f32024-05-10 16:54:29 +000049darglint = "^1.8.1"
50black = "^24.4.2"
51isort = {extras = ["colors"], version = "^5.10.1"}
52mypy = "^0.910"
53mypy-extensions = "^0.4.3"
54pre-commit = "^2.15.0"
55pydocstyle = "^6.1.1"
56pylint = "^2.11.1"
Harrison Mutaifd5b4bc2024-08-15 10:39:04 +000057pytest = "^8.0.0"
Harrison Mutai6ac31f32024-05-10 16:54:29 +000058pyupgrade = "^2.29.1"
59safety = "^2.2.0"
60coverage = "^6.1.2"
61coverage-badge = "^1.1.0"
62pytest-html = "^4.1.1"
Harrison Mutaifd5b4bc2024-08-15 10:39:04 +000063pytest-cov = "5.0.0"
Harrison Mutai6ac31f32024-05-10 16:54:29 +000064
65[tool.black]
66# https://github.com/psf/black
67target-version = ["py38"]
68line-length = 88
69color = true
70
71exclude = '''
72/(
73 \.git
74 | \.hg
75 | \.mypy_cache
76 | \.tox
77 | \.venv
78 | _build
79 | buck-out
80 | build
81 | dist
82 | env
83 | venv
84)/
85'''
86
87[tool.isort]
88# https://github.com/timothycrosley/isort/
89py_version = 38
90line_length = 88
91
92known_typing = ["typing", "types", "typing_extensions", "mypy", "mypy_extensions"]
93sections = ["FUTURE", "TYPING", "STDLIB", "THIRDPARTY", "FIRSTPARTY", "LOCALFOLDER"]
94include_trailing_comma = true
95profile = "black"
96multi_line_output = 3
97indent = 4
98color_output = true
99
100[tool.mypy]
101# https://mypy.readthedocs.io/en/latest/config_file.html#using-a-pyproject-toml-file
102python_version = 3.8
103pretty = true
104show_traceback = true
105color_output = true
106
107allow_redefinition = false
108check_untyped_defs = true
109disallow_any_generics = true
110disallow_incomplete_defs = true
111ignore_missing_imports = true
112implicit_reexport = false
113no_implicit_optional = true
114show_column_numbers = true
115show_error_codes = true
116show_error_context = true
117strict_equality = true
118strict_optional = true
119warn_no_return = true
120warn_redundant_casts = true
121warn_return_any = true
122warn_unreachable = true
123warn_unused_configs = true
124warn_unused_ignores = true
125
126
127[tool.pytest.ini_options]
128# https://docs.pytest.org/en/6.2.x/customize.html#pyproject-toml
129# Directories that are not visited by pytest collector:
130norecursedirs =["hooks", "*.egg", ".eggs", "dist", "build", "docs", ".tox", ".git", "__pycache__"]
131doctest_optionflags = ["NUMBER", "NORMALIZE_WHITESPACE", "IGNORE_EXCEPTION_DETAIL"]
132
133# Extra options:
134addopts = [
135 "--strict-markers",
136 "--tb=short",
137 "--doctest-modules",
138 "--doctest-continue-on-failure",
139]
140
141[tool.coverage.run]
142source = ["tests"]
Harrison Mutai6ac31f32024-05-10 16:54:29 +0000143branch = true
144
Harrison Mutaifd5b4bc2024-08-15 10:39:04 +0000145[tool.coverage.paths]
146source = ["tlc"]
147
148[tool.coverage.report]
Harrison Mutai6ac31f32024-05-10 16:54:29 +0000149fail_under = 50
150show_missing = true