[project] name = "ty" version = "0.0.2" requires-python = ">=3.8" dependencies = [] description = "An extremely fast Python type checker, written in Rust." readme = "README.md" authors = [{ name = "Astral Software Inc.", email = "hey@astral.sh" }] keywords = ["ty", "typing", "analysis", "check"] classifiers = [ "Development Status :: 4 - Beta", "Environment :: Console", "Intended Audience :: Developers", "Operating System :: OS Independent", "License :: OSI Approved :: MIT License", "Programming Language :: Python", "Programming Language :: Python :: 3.8", "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 :: 3 :: Only", "Programming Language :: Rust", "Topic :: Software Development :: Quality Assurance", "Topic :: Software Development :: Testing", "Topic :: Software Development :: Libraries", "Topic :: Software Development :: Libraries :: Python Modules", ] [project.urls] Repository = "https://github.com/astral-sh/ty" Changelog = "https://github.com/astral-sh/ty/blob/main/CHANGELOG.md" Releases = "https://github.com/astral-sh/ty/releases" Discord = "https://discord.gg/astral-sh" [build-system] requires = ["maturin>=1.0,<2.0"] build-backend = "maturin" [dependency-groups] release = ["rooster"] [tool.uv] cache-keys = [ { file = "pyproject.toml" }, { file = "dist-workspace.toml" }, { file = "ruff/Cargo.toml" }, { file = "ruff/Cargo.lock" }, { file = "**/*.rs" }, ] [tool.uv.dependency-groups] release = {requires-python = ">=3.12"} [tool.ruff] extend-exclude = ["ruff"] per-file-target-version = { "scripts/**" = "py313" } [tool.ruff.lint] select = [ "E", # pycodestyle (error) "F", # pyflakes "B", # bugbear "B9", "C4", # flake8-comprehensions "SIM", # flake8-simplify "I", # isort "UP", # pyupgrade "PIE", # flake8-pie "PGH", # pygrep-hooks "PYI", # flake8-pyi "RUF", ] ignore = [ # only relevant if you run a script with `python -0`, # which seems unlikely for any of the scripts in this repo "B011", # Leave it to the formatter to split long lines and # the judgement of all of us. "E501", ] [tool.ruff.lint.isort] required-imports = ["from __future__ import annotations"] [tool.maturin] bindings = "bin" manifest-path = "ruff/crates/ty/Cargo.toml" module-name = "ty" python-source = "python" strip = true include = [ { path = "dist-workspace.toml", format = [ "sdist", ] }, { path = "LICENSE", format = "sdist" }, ] [tool.rooster] version-files = [ "pyproject.toml", { path = "dist-workspace.toml", field = "workspace.version", format = "cargo" }, ] submodules = ["ruff"] require-labels = [{ submodule = "ruff", labels = ["ty"] }] ignore-labels = [ "internal", "testing", "ci", "playground", "documentation", "release", ] changelog-ignore-authors = ["github-actions"] major-labels = [] # We do not use the major version number yet minor-labels = [] # We do not use the minor version number yet version-format = "cargo" default-bump-type = "pre" trim-title-prefixes = ["[ty]"] [tool.rooster.section-labels] "Breaking changes" = ["breaking"] "Preview features" = ["preview"] "Bug fixes" = ["bug"] "LSP server" = ["server"] "CLI" = ["cli"] "Configuration" = ["configuration"]