py-topdir.mk: Add machinery to generate pyproject.toml
pyproject.toml is currently copied unchanged from conf/topdir to the
toplevel directory. Set up machinery in py-topdir.mk to render it
from a template in conf/templates instead, replacing {mypypath} in
the process.
Signed-off-by: Jan Lindemann <jan@janware.com>
This commit is contained in:
parent
9ba6c70dee
commit
850efda804
2 changed files with 13 additions and 2 deletions
80
conf/templates/pyproject.toml
Normal file
80
conf/templates/pyproject.toml
Normal file
|
|
@ -0,0 +1,80 @@
|
|||
[tool.isort]
|
||||
|
||||
lines_between_sections = 1
|
||||
lines_between_types = 1
|
||||
|
||||
# Make sure external deps are classified above
|
||||
known_third_party = [
|
||||
"yaml",
|
||||
]
|
||||
|
||||
# Define semantic/dependency layers.
|
||||
sections = [
|
||||
"FUTURE",
|
||||
"STDLIB",
|
||||
"THIRDPARTY",
|
||||
"JW_BASIC",
|
||||
"FIRSTPARTY",
|
||||
"LOCALFOLDER",
|
||||
]
|
||||
|
||||
known_jw_basic = [
|
||||
"jw.pkg",
|
||||
]
|
||||
|
||||
# Catch other jw.* imports not assigned to a finer section.
|
||||
known_first_party = [
|
||||
"jw",
|
||||
]
|
||||
|
||||
|
||||
[tool.ruff]
|
||||
line-length = 88
|
||||
output-format = "concise"
|
||||
|
||||
[tool.ruff.format]
|
||||
|
||||
quote-style = "single"
|
||||
|
||||
[tool.ruff.lint]
|
||||
|
||||
future-annotations = true
|
||||
|
||||
select = [
|
||||
"F", # Pyflakes, includes F401
|
||||
"E", # pycodestyle errors
|
||||
"W", # pycodestyle warnings
|
||||
"TC", # type-checking import placement rules
|
||||
"FA", # future annotations rules
|
||||
]
|
||||
|
||||
ignore = [
|
||||
"E251",
|
||||
]
|
||||
|
||||
unfixable = [
|
||||
"E251",
|
||||
]
|
||||
|
||||
[tool.yapf]
|
||||
|
||||
based_on_style = "pep8"
|
||||
column_limit = 88
|
||||
indent_width = 4
|
||||
continuation_indent_width = 4
|
||||
|
||||
continuation_align_style = "space"
|
||||
|
||||
dedent_closing_brackets = true
|
||||
coalesce_brackets = false
|
||||
|
||||
split_all_comma_separated_values = false
|
||||
split_all_top_level_comma_separated_values = true
|
||||
|
||||
split_before_first_argument = true
|
||||
split_arguments_when_comma_terminated = true
|
||||
split_before_expression_after_opening_paren = true
|
||||
|
||||
spaces_around_default_or_named_assign = true
|
||||
blank_line_before_nested_class_or_def = true
|
||||
blank_lines_around_top_level_definition = 1
|
||||
|
|
@ -1,6 +1,12 @@
|
|||
TD_COPY_FILES += pyproject.toml
|
||||
include $(JWBDIR)/make/ldlibpath.mk
|
||||
|
||||
TD_GENERATE_FILES += pyproject.toml
|
||||
|
||||
PY_CHECK_EXCLUDE ?=
|
||||
|
||||
MYPY_CONFIG_PATH = $(subst :,:$$MYPY_CONFIG_FILE_DIR/,:$(PYTHONPATH))
|
||||
MYPY_PATH_DIRECTIVE = mypy_path = "$(MYPY_CONFIG_PATH)"
|
||||
|
||||
ifndef PY_CHECK_ROOTS
|
||||
PY_CHECK_ROOTS += $(wildcard $(TOPDIR)/src $(TOPDIR)/tools)
|
||||
endif
|
||||
|
|
@ -70,7 +76,12 @@ clean.topdir: clean.py-check
|
|||
clean.py-check:
|
||||
rm -rf .mypy_cache
|
||||
|
||||
pyproject.toml:
|
||||
$(PYTHON) $(JWB_SCRIPT_DIR)/jw-pkg.py -p $(PROJECTS_DIR) -t $(TOPDIR) --topdir-format unaltered projects create-file --format tmpl \
|
||||
--template-name $@ --search-path $(JW_PKG_CONF_BASE_DIR)/templates --field mypypath='$(MYPY_PATH_DIRECTIVE)' $(PROJECT) > $@.tmp
|
||||
mv $@.tmp $@
|
||||
|
||||
pyrightconfig.json:
|
||||
$(PYTHON) $(JWB_SCRIPT_DIR)/jw-pkg.py -p $(PROJECTS_DIR) -t $(TOPDIR) --topdir-format unaltered projects create-file --format pyright \
|
||||
$(PROJECT) --field base=$(JW_PKG_CONF_BASE_DIR)/project/pyrightconfig-base.json $(addprefix --field include=,$(wildcard src/python tools/python)) > $@.tmp
|
||||
--field base=$(JW_PKG_CONF_BASE_DIR)/project/pyrightconfig-base.json $(addprefix --field include=,$(wildcard src/python tools/python)) $(PROJECT) > $@.tmp
|
||||
mv $@.tmp $@
|
||||
|
|
|
|||
Loading…
Reference in a new issue