An open API service indexing awesome lists of open source software.

https://github.com/polyconseil/copyist

Keep your configuration synced between repositories
https://github.com/polyconseil/copyist

Last synced: about 1 year ago
JSON representation

Keep your configuration synced between repositories

Awesome Lists containing this project

README

          

==============================================
copyist - Easily sync your configuration files
==============================================

To make sure all your projects share the same configuration, add a ``[tool.copyist]`` section to
the ``pyproject.toml`` file of your projects specifying the expected files and their generators.

For example, ``copyist``'s ``isort`` configuration is synced from ``examples/isort.py`` policy as specified
in its ``pyproject.toml``::

[tool.copyist]
[tool.copyist.context]
package_name = "copyist"

[tool.copyist.files]
"pyproject.toml" = ["examples.isort.apply_config"]

Configuration
=============

``[tool.copyist.files]`` section lists the files to generate/keep synced with their list of generators to apply.

Each generator is a function taking as argument the previous content of the file and an optional context
specified in ``[tool.copyist.context]`` section.

The generators are generally provided by an other Python package specifying your expected configuration.

Command line options
====================

You can list them by running ``copyist --help``::

usage: copyist [-h] [--version] [--config CONFIG] [--verbose] [--dry-run]

optional arguments:
-h, --help show this help message and exit
--version show program's version number and exit
--config CONFIG, -c CONFIG
Configuration file (defaults to pyproject.toml)
--verbose, -v Show the diff produced at each stage
--dry-run Do not overwrite files

Helpers
=======

Currently only ``copyist.helpers.fill_tool_section(previous_content, tool_name, section_text)`` is available
to help fill ``pyproject.toml`` with the different tools' configurations.