forked from radeklat/settings-doc
-
Notifications
You must be signed in to change notification settings - Fork 0
/
pyproject.toml
122 lines (109 loc) · 3.65 KB
/
pyproject.toml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
[tool.poetry]
name = "settings-doc"
version = "2.0.0"
description = "A command line tool for generating Markdown documentation and .env files from pydantic BaseSettings."
authors = ["Radek Lát <[email protected]>"]
license = "MIT License"
readme = "README.md"
# https://pypi.org/classifiers/
classifiers = [
"Development Status :: 5 - Production/Stable",
"Environment :: Console",
"Intended Audience :: Developers",
"Intended Audience :: System Administrators",
"Topic :: Documentation",
"Topic :: Software Development",
"Topic :: Software Development :: Documentation",
"Topic :: System :: Installation/Setup",
"Topic :: System :: Software Distribution",
"Topic :: System :: Systems Administration",
"Topic :: Text Processing :: Markup :: Markdown",
"Topic :: Utilities",
"License :: OSI Approved :: MIT License",
"Operating System :: OS Independent",
"Programming Language :: Python :: 3.8",
"Programming Language :: Python :: 3.9",
"Programming Language :: Python :: 3.10",
"Programming Language :: Python :: 3.11",
"Typing :: Typed",
]
keywords = ["documentation", "environment variables", "generated", "markdown", "BaseSettings"]
homepage = "https://github.com/radeklat/settings-doc"
[tool.poetry.scripts]
settings-doc = "settings_doc.main:app"
[tool.poetry.dependencies]
python = "^3.8"
Jinja2 = "^3.0.2"
pydantic = "^1.8.2"
typer = {version = "^0.9", extras = ["all"]} # https://typer.tiangolo.com/release-notes/
[tool.poetry.dev-dependencies]
click = "^8.0.3"
types-toml = "*"
delfino-core = {extras = ["verify_all", "dependencies-update"], version = "^5.0"}
pytest-mock = "^3.6.1"
[build-system]
requires = ["poetry-core>=1.0.0"]
build-backend = "poetry.core.masonry.api"
[tool.isort]
# Setting compatible with black. See https://black.readthedocs.io/en/stable/compatible_configs.html
multi_line_output = 3
include_trailing_comma = true
force_grid_wrap = 0
use_parentheses = true
ensure_newline_before_comments = true
line_length = 120
[tool.black]
line-length = 120
target-version = ['py38']
exclude = '''
/(
\.eggs
| \.git
| \.hg
| \.mypy_cache
| \.tox
| \.venv
| _build
| buck-out
| build
| dist
)/
'''
[tool.pytest.ini_options]
testpaths = "tests/unit tests/integration"
python_functions = "should_*"
junit_family = "xunit2"
# Structure: https://docs.pytest.org/en/stable/warnings.html
# Values: https://docs.python.org/3/library/warnings.html#describing-warning-filters
# action:message:category:module:line
filterwarnings = [
"ignore:'settings_doc.main' found in sys.modules after import of package 'settings_doc', but prior to execution of 'settings_doc.main'; this may result in unpredictable behaviour::runpy"
]
markers = [
"slow: marks tests as slow (deselect with '-m \"not slow\"')",
]
[tool.mypy]
show_column_numbers = true
show_error_codes = true
color_output = true
warn_unused_configs = true
warn_unused_ignores = true
follow_imports = "silent"
[[tool.mypy.overrides]]
# Source code dependencies
module = [
"delfino.*",
]
ignore_missing_imports = true
[tool.pydocstyle]
convention = "pep257"
match = "^(?!test_)(.*)(?<!config_parser)\\.py$"
add-ignore = [
# See http://www.pydocstyle.org/en/stable/error_codes.html
"D1", # Missing docstrings. We rely on code reviews. Names are often descriptive enough and don't need additional docstring.
"D202", # "No blank lines allowed after function docstring" is false positive caused by black formatter.
"D204", # "1 blank line required after class docstring"
"D401", # "First line should be in imperative mood"
"D413", # "Missing blank line after last section"
]
[tool.delfino.plugins.delfino-core]