Metadata-Version: 2.4
Name: tqlint
Version: 0.11.0
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: 3.14
Classifier: Programming Language :: Rust
Classifier: Topic :: Software Development :: Quality Assurance
Classifier: Topic :: Software Development :: Testing
Classifier: Typing :: Typed
License-File: LICENSE
Summary: A Python test quality toolkit written in Rust
Keywords: testing,lint,pytest,quality,developer-tools
Author-email: Stephen Lewis <31178492+stelewis@users.noreply.github.com>
License-Expression: MIT
Requires-Python: >=3.11
Description-Content-Type: text/markdown; charset=UTF-8; variant=GFM
Project-URL: Changelog, https://github.com/stelewis/tq/blob/main/CHANGELOG.md
Project-URL: Documentation, https://stelewis.github.io/tq/
Project-URL: Homepage, https://github.com/stelewis/tq
Project-URL: Issues, https://github.com/stelewis/tq/issues
Project-URL: Repository, https://github.com/stelewis/tq

<!-- markdownlint-disable MD033 MD041 -->
<p align="center">
  <a href="https://stelewis.github.io/tq/">
    <img src="docs/public/tq-logo-large.svg" alt="tq logo" width="144">
  </a>
</p>
<!-- markdownlint-enable MD033 MD041 -->

# `tq` - Test Quality Toolkit

[![Documentation](https://img.shields.io/badge/docs-site-blue)](https://stelewis.github.io/tq/)

`tq` inspects a codebase's tests and enforces quality rules so tests remain discoverable, focused, actionable, and maintainable.

## Installation

PyPI distribution name: `tqlint`

Add to a project:

```sh
uv add --dev tqlint
uv run tq check
```

Run without installing (ephemeral):

```sh
uvx --from tqlint tq check
```

Install as a persistent global tool:

```sh
uv tool install tqlint
tq check
```

Install with `pip`:

```sh
python -m pip install tqlint
tq check
```

Note: `uvx tq check` is not currently available because the `tq` package name on PyPI is owned by another project. Use `uvx --from tqlint tq ...` for ephemeral runs.

## Usage

Run checks:

```sh
uv run tq check
```

## Configuration

[Configure](https://stelewis.github.io/tq/reference/configuration.html) `tq` in `pyproject.toml` under `[tool.tq]`:

<!-- BEGIN GENERATED:readme-configuration-example -->
```toml
[tool.tq]
init_modules = "ignore"
max_test_file_non_blank_lines = 600
qualifier_strategy = "allowlist"
allowed_qualifiers = ["regression"]

[[tool.tq.targets]]
name = "tq"
package = "tq"
source_root = "src"
test_root = "tests"
```
<!-- END GENERATED:readme-configuration-example -->

## Documentation

[`tq` documentation](https://stelewis.github.io/tq/)

## Language support

`tq` currently only analyzes Python source and Python tests (`.py`).

## Development

Contributions are welcomed!

Contribution guidelines and development setup steps are documented in [CONTRIBUTING.md](CONTRIBUTING.md).

