Metadata-Version: 2.1
Name: copyist
Version: 0.3
Summary: A tool to keep your configuration synced between repositories
Home-page: https://github.com/Polyconseil/copyist
Author: Polyconseil
Author-email: opensource+copyist@polyconseil.fr
License: UNKNOWN
Keywords: tools configuration generation sync
Platform: UNKNOWN
Classifier: Development Status :: 3 - Alpha
Classifier: Environment :: Console
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Natural Language :: English
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
Classifier: Topic :: Software Development
Classifier: Topic :: Software Development :: Code Generators
Requires-Dist: tomlkit
Requires-Dist: importlib-metadata ; python_version < "3.8"
Provides-Extra: dev
Requires-Dist: isort ; extra == 'dev'
Requires-Dist: black ; extra == 'dev'
Requires-Dist: check-manifest ; extra == 'dev'
Requires-Dist: zest.releaser ; extra == 'dev'

==============================================
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.


