[project] name = "esta-python-template" description = "Template for ESTA Python projects. Can be used to generate a new ESTA Python project." authors = [ {name = "Ferdinand Niedermann", email=""} ] readme = "README.md" license = "Proprietary" dynamic = ["version", "dependencies"] requires-python = "~=3.12.0" # = fix minor version to 3.12.* [project.urls] repository = "https://code.sbb.ch/projects/KD_ESTA_BLUEPRINTS/repos/esta-python-template" documentation = "https://code.sbb.ch/projects/KD_ESTA_BLUEPRINTS/repos/esta-python-template/browse/README.md" [tool.poetry] version = "0.0.0" # Version is ignored and set by Tekton. Use pipeline to increase. requires-poetry = ">=2.0" package-mode = false [tool.poetry.dependencies] python = "~3.12" copier = "^9.7.1" [tool.poetry.group.dev.dependencies] coverage = {extras = ["toml"], version = "~7.10.0"} # Code coverage measurement for Python unittest-xml-reporting = "~3.2" # unittest-based test runner with Ant/JUnit like XML reporting. pre-commit = "~4.3.0" # A framework for managing and maintaining multi-language pre-commit hooks. pre-commit-hooks = "~6.0.0" # Some out-of-the-box hooks for pre-commit. tomli = "~2.2.0" # A lil' TOML parser pyyaml = "~6.0" # YAML parser and emitter for Python ruff = "~0.13.0" # Extremely fast python linter and formatter [build-system] requires = ["poetry-core>=1.0.0"] build-backend = "poetry.core.masonry.api" [tool.coverage.run] command_line = "-m xmlrunner discover --output-file junittest.xml" [tool.ruff] line-length = 140 indent-width = 4 exclude = [ ".git", ".git-rewrite", ".ipynb_checkpoints", ".mypy_cache", ".pyenv", ".pytype", ".ruff_cache", ".venv", ".vscode", "**/*.yaml", "**/*.yml" ] [tool.ruff.format] # Like Black, use double quotes for strings. quote-style = "double" # Like Black, indent with spaces, rather than tabs. indent-style = "space" # Like Black, respect magic trailing commas. skip-magic-trailing-comma = false # Like Black, automatically detect the appropriate line ending. line-ending = "auto" [tool.ruff.lint] select = [ "D", "E", "W", # Pydocstyle rules "I", # Isort rules "PL", # Pylint rules "F", # Pyflake "N", # Pep8-naming "G", # Flake8-logging-format "ARG", # Flake8-unused-arguments "RUF100", # fail on unused noqa ] ignore=[] fixable = ["I"] [tool.ruff.lint.per-file-ignores] "tests/**/*.py" = ["D", "E", "W"] # Ignore Pydocstyle warnings & errors in "test/*" directory "template/tests/**/*.py" = ["D", "E", "W"] # Ignore Pydocstyle warnings & errors for tests in the template [tool.ruff.lint.pydocstyle] convention = "google" [tool.ruff.lint.pylint] max-args = 8