[build-system] requires = ["maturin>=1.0,<2.0"] build-backend = "maturin" [dependency-groups] dev = [ "django-stubs>=5.1.1", "maturin>=1.7.8", "ruff>=0.8.2", ] docs = [ "mkdocs-material>=9.5.49", ] [project] name = "django-language-server" version = "5.1.0a2" description = "A language server for the Django web framework" readme = "README.md" authors = [ { name = "Josh Thomas", email = "josh@joshthomas.dev" } ] requires-python = ">=3.9" classifiers = [ "Development Status :: 3 - Alpha", "Framework :: Django", "Framework :: Django :: 4.2", "Framework :: Django :: 5.0", "Framework :: Django :: 5.1", "Intended Audience :: Developers", "License :: OSI Approved :: Apache Software License", "Operating System :: OS Independent", "Programming Language :: Python", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3 :: Only", "Programming Language :: Python :: 3.9", "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13", "Programming Language :: Python :: Implementation :: CPython", "Programming Language :: Rust", "Topic :: Software Development", "Topic :: Text Editors :: Integrated Development Environments (IDE)" ] [project.scripts] djls = "djls:entrypoint" [project.urls] Documentation = "https://django-language-server.readthedocs.io/" Issues = "https://github.com/joshuadavidthomas/django-language-server/issues" Source = "https://github.com/joshuadavidthomas/django-language-server" [tool.bumpver] commit = true commit_message = ":bookmark: bump version {old_version} -> {new_version}" current_version = "5.1.0-alpha.2" post_commit_hook = ".bin/bumpver-post.sh" pre_commit_hook = ".bin/bumpver-pre.sh" push = false tag = false version_pattern = "MAJOR.MINOR.PATCH[-TAG[.NUM]]" [tool.bumpver.file_patterns] "crates/djls/Cargo.toml" = [ 'version = "{version}"', ] "pyproject.toml" = [ 'version = "{pep440_version}"', 'current_version = "{version}"', ] [tool.maturin] manifest-path = "crates/djls/Cargo.toml" strip = true include = [ { path = "LICENSE", format = "sdist" }, { path = "rust-toolchain.toml", format = ["sdist", "wheel"] }, ] [tool.ruff] # Exclude a variety of commonly ignored directories. exclude = [ ".bzr", ".direnv", ".eggs", ".git", ".github", ".hg", ".mypy_cache", ".ruff_cache", ".svn", ".tox", ".venv", "__pypackages__", "_build", "build", "dist", "migrations", "node_modules", "venv" ] extend-include = ["*.pyi?"] indent-width = 4 # Same as Black. line-length = 88 # Assume Python 3.9 target-version = "py39" [tool.ruff.format] # Like Black, indent with spaces, rather than tabs. indent-style = "space" # Like Black, automatically detect the appropriate line ending. line-ending = "auto" # Like Black, use double quotes for strings. quote-style = "double" [tool.ruff.lint] # Allow unused variables when underscore-prefixed. dummy-variable-rgx = "^(_+|(_+[a-zA-Z0-9_]*[a-zA-Z0-9]+?))$" # Allow autofix for all enabled rules (when `--fix`) is provided. fixable = ["A", "B", "C", "D", "E", "F", "I"] ignore = ["E501", "E741"] # temporary select = [ "B", # flake8-bugbear "E", # Pycodestyle "F", # Pyflakes "I", # isort "UP" # pyupgrade ] unfixable = [] [tool.ruff.lint.isort] force-single-line = true known-first-party = ["djls"] required-imports = ["from __future__ import annotations"] [tool.ruff.lint.per-file-ignores] # Tests can use magic values, assertions, and relative imports "tests/**/*" = ["PLR2004", "S101", "TID252"] [tool.ruff.lint.pyupgrade] # Preserve types, even if a file imports `from __future__ import annotations`. keep-runtime-typing = true