Knowning the Tools Config Files#

This project uses several configuration files to manage its settings. While it is possible to consolidate many tool settings into the pyproject.toml file, this project intentionally keeps most configurations in separate, dedicated files. This approach promotes clarity and modularity, making it easier to understand and manage the settings for each specific tool.

  • .gitignore This file tells Git which files and directories to ignore.

  • pyproject.toml This is the central configuration file for the project, based on PEP 621. It primarily defines project metadata (like name, version, and dependencies) and build system requirements for the setuptools build backend.

  • .pytest.ini This file contains configuration for the Pytest testing framework. It specifies options such as test paths, Python path for imports, and default command-line arguments for running tests, including coverage analysis and doctest settings.

  • .ruff.toml This file configures the Ruff linter and formatter. It defines the target Python version, line length, which linting rules to enable or disable, and any per-file rule overrides.

  • towncrier.toml This file configures Towncrier, the tool used to generate the project’s Changelog. It specifies the location of news fragments, the changelog file itself, and the different types of changes.

  • uv.toml This file provides project-specific configuration for the uv package manager.

  • .vscode/ This directory contains workspace-specific settings for Visual Studio Code. It can include recommended extensions (extensions.json), debug configurations (launch.json), and shared workspace settings (settings.json) to ensure a consistent development experience for all contributors using this editor.