blob: 30875a5222e2d1778df3b9ebb041fee4d0f13345 [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"
40
41[tool.poetry.dev-dependencies]
42bandit = "^1.7.1"
43darglint = "^1.8.1"
44black = "^24.4.2"
45isort = {extras = ["colors"], version = "^5.10.1"}
46mypy = "^0.910"
47mypy-extensions = "^0.4.3"
48pre-commit = "^2.15.0"
49pydocstyle = "^6.1.1"
50pylint = "^2.11.1"
51pytest = "^7.0.0"
52pyupgrade = "^2.29.1"
53safety = "^2.2.0"
54coverage = "^6.1.2"
55coverage-badge = "^1.1.0"
56pytest-html = "^4.1.1"
57pytest-cov = "^3.0.0"
58
59[tool.black]
60# https://github.com/psf/black
61target-version = ["py38"]
62line-length = 88
63color = true
64
65exclude = '''
66/(
67 \.git
68 | \.hg
69 | \.mypy_cache
70 | \.tox
71 | \.venv
72 | _build
73 | buck-out
74 | build
75 | dist
76 | env
77 | venv
78)/
79'''
80
81[tool.isort]
82# https://github.com/timothycrosley/isort/
83py_version = 38
84line_length = 88
85
86known_typing = ["typing", "types", "typing_extensions", "mypy", "mypy_extensions"]
87sections = ["FUTURE", "TYPING", "STDLIB", "THIRDPARTY", "FIRSTPARTY", "LOCALFOLDER"]
88include_trailing_comma = true
89profile = "black"
90multi_line_output = 3
91indent = 4
92color_output = true
93
94[tool.mypy]
95# https://mypy.readthedocs.io/en/latest/config_file.html#using-a-pyproject-toml-file
96python_version = 3.8
97pretty = true
98show_traceback = true
99color_output = true
100
101allow_redefinition = false
102check_untyped_defs = true
103disallow_any_generics = true
104disallow_incomplete_defs = true
105ignore_missing_imports = true
106implicit_reexport = false
107no_implicit_optional = true
108show_column_numbers = true
109show_error_codes = true
110show_error_context = true
111strict_equality = true
112strict_optional = true
113warn_no_return = true
114warn_redundant_casts = true
115warn_return_any = true
116warn_unreachable = true
117warn_unused_configs = true
118warn_unused_ignores = true
119
120
121[tool.pytest.ini_options]
122# https://docs.pytest.org/en/6.2.x/customize.html#pyproject-toml
123# Directories that are not visited by pytest collector:
124norecursedirs =["hooks", "*.egg", ".eggs", "dist", "build", "docs", ".tox", ".git", "__pycache__"]
125doctest_optionflags = ["NUMBER", "NORMALIZE_WHITESPACE", "IGNORE_EXCEPTION_DETAIL"]
126
127# Extra options:
128addopts = [
129 "--strict-markers",
130 "--tb=short",
131 "--doctest-modules",
132 "--doctest-continue-on-failure",
133]
134
135[tool.coverage.run]
136source = ["tests"]
137
138[coverage.paths]
139source = "tlc"
140
141[coverage.run]
142branch = true
143
144[coverage.report]
145fail_under = 50
146show_missing = true