[project] name = "django-template" version = "0.1.0" description = "Add your description here" readme = "README.md" requires-python = ">=3.12" dependencies = ["django>=5.2.5"] [tool.black] line-length = 79 include = '\.pyi?$' exclude = ''' /( \.git | \.hg | \.mypy_cache | \.tox | \.venv | _build | buck-out | build | dist )/ ''' [tool.isort] profile = "black" [tool.skjold] sources = ["pyup", "gemnasium"] # Sources to check against. report_only = true # Report only, always exit with zero. cache_dir = '.skylt_cache' # Cache location (default: `~/.skjold/cache`). cache_expires = 86400 # Cache max. age. verbose = true # Be verbose. [tool.ruff] # Set the maximum line length to 79. line-length = 79 [tool.ruff.lint] # Add the `line-too-long` rule to the enforced rule set. By default, Ruff omits rules that # overlap with the use of a formatter, like Black, but we can override this behavior by # explicitly adding the rule. extend-select = [ "E501", "UP", # pyupgrade ] [tool.ruff.lint.pydocstyle] convention = "google" [tool.flake8] # Check that this is aligned with your other tools like Black max-line-length = 120 max-complexity = 18 exclude = [".git", "*migrations*", ".tox", ".venv", ".env"] # Use extend-ignore to add to already ignored checks which are anti-patterns like W503. extend-ignore = ["E501", "W503", "F403", "C901", "B904"] [dependency-groups] dev = [ "pre-commit>=4.3.0", "pylint>=3.3.8", "pylint-django>=2.6.1", "pytest>=8.4.1", "ruff>=0.14.14", "git-cliff>=2.12.0", "ty>=0.0.20", ] [tool.git-cliff.changelog] # A Tera template to be rendered as the changelog's header. # See https://keats.github.io/tera/docs/#introduction header = """ # Changelog\n All notable changes to this project will be documented in this file.\n """ # A Tera template to be rendered for each release in the changelog. # See https://keats.github.io/tera/docs/#introduction body = """ {% if version %}\ ## [{{ version | trim_start_matches(pat="v") }}] - {{ timestamp | date(format="%Y-%m-%d") }} {% else %}\ ## ๐Ÿ‘จ๐Ÿปโ€๐Ÿ’ป๐Ÿง‹ Unreleased {% endif %}\ {% for group, commits in commits | unique(attribute="message") | group_by(attribute="group") %} ### {{ group | upper_first }} {% for commit in commits %} - {{ commit.message | split(pat="\n") | first | upper_first | trim_end }}\ {% endfor %} {% endfor %} """ # A Tera template to be rendered as the changelog's footer. # See https://keats.github.io/tera/docs/#introduction footer = """ """ # Remove leading and trailing whitespaces from the changelog's body. trim = true [tool.git-cliff.git] # Parse commits according to the conventional commits specification. # See https://www.conventionalcommits.org conventional_commits = true # Exclude commits that do not match the conventional commits specification. commit_parsers = [ { message = ".\\d+\\.\\d+\\.\\d+", skip = true }, { message = "^Merge '[^']+' into 'master'", skip = true }, { message = "^chore\\(release\\): prepare for", skip = true }, { message = ".*format code with Black.*", skip = true }, { message = "^feat", group = "๐Ÿš€ Features" }, { message = "^fix", group = "๐Ÿ› Bug Fixes" }, { message = "^doc", group = "๐Ÿ“ Docs" }, { message = "^perf", group = "๐Ÿงฐ Improvements" }, { message = "^refactor", group = "๐Ÿงฐ Improvements" }, { message = "^style", group = "๐Ÿ’„ Style" }, { message = "^test", group = "๐Ÿงช Testing" }, { message = "^chore", group = "Miscellaneous Tasks" }, { body = ".*security", group = "๐Ÿ”’ Security" }, { body = ".*", group = "โ“ Other (unconventional)" }, ] # An array of regex based parsers for extracting data from the commit message.filter_unconventional = false # Assigns commits to groups. # Optionally sets the commit's scope and can decide to exclude commits from further processing. # Exclude commits that are not matched by any commit parser. filter_commits = true # Order releases topologically instead of chronologically. topo_order = false # Order of commits in each group/release within the changelog. # Allowed values: newest, oldest sort_commits = "oldest" [tool.ty.rules] unresolved-attribute = "ignore" unresolved-import = "ignore" division-by-zero = "warn" deprecated = "error" [tool.ty.src] # Remove `build` from the excluded directories. exclude = [ "!**/build/", "**/dist/", "**/*.egg-info/", ".env/", "venv/", ".venv/", ]