Update dev dependencies; add settings; insert syntax-bug-placeholders

This commit is contained in:
Daniil Fajnberg 2023-06-24 17:09:05 +02:00
parent d8a950948c
commit f5b31b7580
Signed by: daniil-berg
GPG Key ID: BE187C50903BEE97
3 changed files with 86 additions and 29 deletions

View File

@ -26,13 +26,23 @@ extra_css:
plugins: plugins:
- search - search
- mkdocstrings - mkdocstrings:
handlers:
python:
options:
line_length: 80
show_source: false
show_root_toc_entry: false
separate_signature: true
show_signature_annotations: true
markdown_extensions: markdown_extensions:
- admonition - admonition
- codehilite - codehilite
- extra - extra
- pymdownx.superfences - pymdownx.superfences
- toc:
permalink: true
nav: nav:
- Home: index.md - Home: index.md

View File

@ -9,14 +9,14 @@ build-backend = "setuptools.build_meta"
name = "${REPO_NAME}" name = "${REPO_NAME}"
description = "${REPO_DESCRIPTION}" description = "${REPO_DESCRIPTION}"
authors = [ authors = [
{ name = "${REPO_OWNER_TITLE}", email = "mail@PLACEHOLDER.to" }, { name = "${REPO_OWNER_TITLE}", email = ... },
] ]
maintainers = [ maintainers = [
{ name = "${REPO_OWNER_TITLE}", email = "mail@PLACEHOLDER.to" }, { name = "${REPO_OWNER_TITLE}", email = ... },
] ]
requires-python = ">=3.9, <4.0" requires-python = ">=3.9, <4.0"
keywords = [ keywords = [
...
] ]
license = { text = "Apache Software License Version 2.0" } license = { text = "Apache Software License Version 2.0" }
classifiers = [ classifiers = [
@ -30,6 +30,7 @@ classifiers = [
# "Intended Audience :: Developers", # "Intended Audience :: Developers",
# "Framework :: AsyncIO", # "Framework :: AsyncIO",
# "Topic :: Internet", # "Topic :: Internet",
...
] ]
dynamic = [ dynamic = [
"dependencies", "dependencies",
@ -39,32 +40,34 @@ dynamic = [
[project.optional-dependencies] [project.optional-dependencies]
full = [ full = [
...
] ]
dev = [ dev = [
"black", "black==23.3.0",
"build", "build==0.10.0",
"coverage[toml]", "coverage[toml]==7.2.7",
"flake8", "isort==5.12.0",
"mkdocs-material", "mkdocs-material==9.1.17",
"mkdocstrings[python]", "mkdocstrings[python]==0.22.0",
"mypy", "mypy==1.4.0",
"ruff==0.0.275",
] ]
[project.urls] [project.urls]
repository = "https://github.com/${REPO_OWNER_LOWER}/${REPO_NAME_LOWER}" "Repository" = "https://github.com/${REPO_OWNER_LOWER}/${REPO_NAME_LOWER}"
bug_tracker = "https://github.com/${REPO_OWNER_LOWER}/${REPO_NAME_LOWER}/issues" "Issue Tracker" = "https://github.com/${REPO_OWNER_LOWER}/${REPO_NAME_LOWER}/issues"
documentation = "http://${REPO_OWNER_LOWER}.github.io/${REPO_NAME_LOWER}" "Documentation" = "http://${REPO_OWNER_LOWER}.github.io/${REPO_NAME_LOWER}"
[tool.setuptools.dynamic] [tool.setuptools.dynamic]
dependencies = { file = "requirements/common.txt" } dependencies = { file = "requirements/common.txt" }
readme = { file = ["README.md"] } readme = { file = ["README.md"], content-type = "text/markdown" }
version = {attr = "PACKAGE_NAME_PLACEHOLDER.__version__"} version = {attr = ..."${REPO_NAME}.__version__"}
######### #########################
# Mypy: # # Static type checking: #
[tool.mypy] [tool.mypy]
cache_dir = ".cache/mypy"
files = [ files = [
"src/", "src/",
"tests/", "tests/",
@ -73,13 +76,14 @@ warn_unused_configs = true
strict = true strict = true
show_error_codes = true show_error_codes = true
plugins = [ plugins = [
...
] ]
############# #######################
# Coverage: # # Unit test coverage: #
[tool.coverage.run] [tool.coverage.run]
data_file = ".cache/coverage"
source = [ source = [
"src/", "src/",
] ]
@ -100,3 +104,45 @@ exclude_lines = [
omit = [ omit = [
"tests/*", "tests/*",
] ]
###############################
# Linting and style checking: #
[tool.ruff]
cache-dir = ".cache/ruff"
select = [
"E", # pycodestyle errors
"W", # pycodestyle warnings
"F", # pyflakes
"D", # pydocstyle
"C", # flake8-comprehensions
"B", # flake8-bugbear
"PL", # pylint
"RUF", # ruff-specific
]
ignore = [
"E501", # Line too long -> handled by black
"D203", # 1 blank line required before class docstring -> D211 is better
"D212", # Multi-line docstring summary should start at the first line -> ugly, D212 is better
"D401", # First line of docstring should be in imperative mood -> no, it shouldn't
"D407", # Missing dashed underline after section -> different docstring style
]
[tool.ruff.per-file-ignores]
"src/**/__init__.py" = [
"D104", # Missing docstring in public package
"F401", # {...} imported but unused
]
"tests/*.py" = [
"D100", # Missing docstring in public module
"D101", # Missing docstring in public class
"D102", # Missing docstring in public method
"D104", # Missing docstring in public package
]
###################
# Import sorting: #
[tool.isort]
profile = "black"
extra_standard_library = ["typing_extensions"]

View File

@ -1,8 +1,9 @@
-r common.txt -r common.txt
black black==23.3.0
build build==0.10.0
coverage[toml] coverage[toml]==7.2.7
flake8 isort==5.12.0
mkdocs-material mkdocs-material==9.1.17
mkdocstrings[python] mkdocstrings[python]==0.22.0
mypy mypy==1.4.0
ruff==0.0.275