.. _dir-overview: Project Overview ================ This project is organized into several key directories and files that serve specific purposes. Understanding the structure of the project is essential for effective development and contribution. Directory Structure -------------------- The repository of this project contains the following directories: * :file:`.github/` Contains GitHub-specific files, such as issue templates and workflows. * :file:`.ipython/` Contains IPython configuration files, which are used for interactive development. * :file:`.vscode/` Contains Visual Studio Code configuration files, including settings and extensions specific to the project. * :file:`changelog.d/` Contains directories for :ref:`news fragments ` that are used to generate the :ref:`changelog `. * :file:`devel/` Contains development-related files, including scripts and configurations for setting up the :ref:`development environment `. * :file:`docs/` Contains the documentation for the project, including guides for developers and users. * :file:`etc/` Contains configuration files for the project. * :file:`src/` Contains the source code of the project, organized into modules and packages. * :file:`tests/` Contains :ref:`unit tests ` for the project. File Structure -------------- The repository also contains several important files: * :file:`.coveragerc` Configuration file for the coverage tool, which is used to measure :ref:`code coverage ` during testing. * :file:`.dockerignore` Specifies files and directories that should be ignored by Docker when building images. * :file:`.editorconfig` Configuration file for code editors to maintain consistent coding styles across different editors. * :file:`.gitignore` Specifies files and directories that should be ignored by Git. * :file:`.pytest.ini` Configuration file for the :term:`Pytest` testing framework, which is used for :ref:`running tests `. * :file:`.ruff.toml` Configuration file for Ruff, a linter and formatter for Python code. * :file:`CHANGELOG.rst` The main changelog file, which is generated from the news fragments in :file:`changelog.d/`. * :file:`Dockerfile` The Dockerfile used to build the Docker image for the project. * :file:`LICENSE` The license file for the project, specifying the terms under which the code can be used and distributed. * :file:`pyproject.toml` The main configuration file for the project based on :pep:`621`. It contains metadata about the project, specifies dependencies, build system requirements, and other project metadata. * :file:`README.rst` The main README file for the project. * :file:`towncrier.toml` Configuration file for Towncrier, the tool used to :ref:`generate the changelog ` from news fragments. * :file:`uv.lock` A lock file generated by the package manager, which specifies the exact versions of dependencies used in the project. * :file:`uv.toml` Configuration file for the package manager, specifying project dependencies and settings.