Metadata-Version: 2.4
Name: dogmatic
Version: 0.1.3
Classifier: Development Status :: 5 - Production/Stable
Classifier: Environment :: Console
Classifier: Intended Audience :: Developers
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
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 :: Python :: 3 :: Only
Classifier: Programming Language :: Rust
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Classifier: Topic :: Software Development :: Quality Assurance
License-File: LICENSE
Summary: An opinionated Python linter and formatter built on Ruff.
Keywords: automation,flake8,pycodestyle,pyflakes,pylint,clippy
Home-Page: https://docs.astral.sh/ruff
Author-email: "Astral Software Inc." <hey@astral.sh>
License-Expression: MIT
Requires-Python: >=3.7
Description-Content-Type: text/markdown; charset=UTF-8; variant=GFM
Project-URL: Upstream changelog, https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md
Project-URL: Upstream documentation, https://docs.astral.sh/ruff/
Project-URL: Upstream repository, https://github.com/astral-sh/ruff

# Dogmatic

An opinionated Python linter and formatter built on Ruff, with native rules for
typed data boundaries, explicit dependency injection, async execution, pytest,
named constants, and focused application modules.

```shell
uv tool install dogmatic
dogmatic check .
dogmatic format .
```

The Python package also supports `python -m dogmatic`. Dogmatic uses Ruff's
configuration format, including `[tool.ruff]` in `pyproject.toml`, `ruff.toml`,
and existing rule selectors and suppressions.

Dogmatic's release version is independent of its Ruff engine version. Ruff's
`required-version` setting checks the engine version, currently `0.16.6`.

All custom checks and companion application policies are enabled by default.
No policy download or enablement flags are required. The executable includes
offline explanations, configuration examples, and the complete default policy:

```shell
dogmatic guide
dogmatic guide --starter
dogmatic guide --policy
dogmatic rule custom-repository-boundary
dogmatic config lint.custom
```

Most rules work immediately. Repository boundaries require module mappings;
application-specific validators, clients, and setup functions can be registered
with `lint.custom`. Merge the starter configuration into your existing
`pyproject.toml` and replace its example package names.

Application modules exceeding 300 code lines are flagged for review and splitting
into focused submodules. Comments and docstrings do not count; tests, stubs, and
notebooks are exempt. Configure `lint.custom.max-module-lines` to change the limit.

Project settings and CLI flags override defaults. Use `lint.ignore` for targeted
exceptions; `lint.select` replaces the selection. `--isolated` keeps Dogmatic's
defaults while ignoring configuration files. `--no-preview` disables the default
preview custom rules. Formatter preview is unchanged.

Dogmatic includes Ruff, originally developed by Astral Software Inc., under the
MIT license. The upstream project is available at
[astral-sh/ruff](https://github.com/astral-sh/ruff). Dogmatic is an independent
distribution; its application-specific policies are not upstream Ruff rules.

