@@ -7,21 +7,37 @@ authors = ["Anton Pirogov <a.pirogov@fz-juelich.de>"]
77maintainers = [" Anton Pirogov <a.pirogov@fz-juelich.de>" ]
88license = " MIT"
99
10- keywords = [ " fair " , " metadata " , " python " , " cookiecutter " , " template " ]
10+ readme = " README.md "
1111repository = " https://github.com/Materials-Data-Science-and-Informatics/fair-python-cookiecutter"
1212homepage = " https://materials-data-science-and-informatics.github.io/fair-python-cookiecutter"
1313documentation = " https://materials-data-science-and-informatics.github.io/fair-python-cookiecutter"
14+
15+ keywords = [" fair" , " metadata" , " python" , " cookiecutter" , " template" ]
1416# ---- managed by somesy, see .somesy.toml ----
1517
1618classifiers = [
1719 " Intended Audience :: Science/Research" ,
1820 " Intended Audience :: Developers" ,
1921]
20- readme = " README.md"
22+
23+ # the Python packages that will be included in a built distribution:
24+ packages = [{include = " fair_python_cookiecutter" , from = " src" }]
25+
26+ # always include basic info for humans and core metadata in the distribution,
27+ # include files related to test and documentation only in sdist:
28+ include = [
29+ " *.md" , " LICENSE" , " LICENSES" , " .reuse/dep5" , " CITATION.cff" , " codemeta.json" ,
30+ " mkdocs.yml" , " docs" , " tests" ,
31+ { path = " mkdocs.yml" , format = " sdist" },
32+ { path = " docs" , format = " sdist" },
33+ { path = " tests" , format = " sdist" },
34+ ]
2135
2236[tool .poetry .dependencies ]
2337python = " ^3.8"
2438cookiecutter = " ^2.1.1"
39+ typer = " ^0.9.0"
40+ pydantic = " ^2.5.2"
2541
2642[tool .poetry .group .dev .dependencies ]
2743poethepoet = " ^0.18.1"
@@ -48,6 +64,9 @@ anybadge = "^1.14.0"
4864interrogate = " ^1.5.0"
4965black = " ^23.3.0"
5066
67+ [tool .poetry .scripts ]
68+ fair-python-cookiecutter = " fair_python_cookiecutter.main:app"
69+
5170[build-system ]
5271requires = [" poetry-core" ]
5372build-backend = " poetry.core.masonry.api"
@@ -63,14 +82,46 @@ docs = "mkdocs build" # run this to generate local documentation
6382# -------------------
6483
6584[tool .pytest .ini_options ]
85+ pythonpath = [" src" ]
6686addopts = " --ignore='{{ cookiecutter.__project_slug }}'"
87+ # addopts = "--cov-report=term-missing:skip-covered"
88+ filterwarnings = [
89+ " ignore::DeprecationWarning:pkg_resources.*" ,
90+ " ignore::DeprecationWarning:pyshacl.*" ,
91+ # Example:
92+ # "ignore::DeprecationWarning:importlib_metadata.*",
93+ ]
6794
68- [tool .flake8 ]
69- ignore = [" W503" ]
70- max-line-length = 88
95+ [tool .coverage .run ]
96+ source = [" fair_python_cookiecutter" ]
7197
72- [tool .pydocstyle ]
73- convention = " google"
98+ [tool .coverage .report ]
99+ exclude_lines = [
100+ " pragma: no cover" ,
101+ " def __repr__" ,
102+ " if self.debug:" ,
103+ " if settings.DEBUG" ,
104+ " raise AssertionError" ,
105+ " raise NotImplementedError" ,
106+ " if 0:" ,
107+ " if TYPE_CHECKING:" ,
108+ " if __name__ == .__main__.:" ,
109+ " class .*\\ bProtocol\\ ):" ,
110+ " @(abc\\ .)?abstractmethod" ,
111+ ]
112+
113+ [tool .ruff .lint ]
114+ # Enable Pyflakes (`F`) and a subset of the pycodestyle (`E`) codes by default.
115+ select = [" E4" , " E7" , " E9" , " F" ]
116+ ignore = []
117+ # TODO: check that ruff substitutes
118+ # - flake8-bugbear
119+ # - dlint
120+ # - pydocstyle (google style)
121+ # - black
122+ # - autoflake
123+ # - isort
74124
75125[tool .bandit ]
76126exclude_dirs = [" tests" ]
127+
0 commit comments