Skip to main content

A tool for managing multiple configuration files. Based off of Adobe's HIML.

Project description

Pigeon Config

Pigeon Config is a tool for managing a set of YAML configuration files. It is based on Adobe's himl, and compiles a collection of YAML files, merging keys as necessary. It outputs a separate YAML file for each top level key. It can also check if the compiled YAML files need to be updated.

Command Line Usage

usage: pigeon-config [-h] [-c] [-r ROOT] [-o OUTPUT] [leaf]

positional arguments:
  leaf                  The leaf directory to use.

options:
  -h, --help            show this help message and exit
  -c, --check           Check if pigeon-config should be run again.
  -r ROOT, --root ROOT  The path to use as the current working directory.
  -o OUTPUT, --output OUTPUT
                        The directory to output the configuration files to.

Pigeon Config has two modes, 1. to compile the configuration (the default), and 2. to check if the configuration needs to be recompiled.

Compiling

When compiling a configuration, Pigeon Config will find all YAML files in the directory tree starting from the specified leaf directory, and stopping one level short of the current directory, or the root directory if specified. The compiled output is then saved to a directory named materialized relative to the current directory, or to the output directory if specified.

Checking

To check if a configuration should be recompiled, Pigeon Config can be run with the --check option. In this case, Pigeon Config checks if any files in the current directory, or root directory if specified, are newer than the files in the output directory, again defaulting to materialized. In this mode, Pigeon Config will output the files that are newer than the output, and exits with a nonzero exit code when such files exist. Note: the way the root directory option is treated is different in the configuration checking mode, than in the compiling mode.

Removing Keys

To remove keys from the compiled configuration, they may be set to null. This removal is performed at all levels.

Installing

Pigeon Config can be installed from the Python Package Index using pip install pigeon-config.

Docker

A Dockerfile is also provided so Pigeon Config can be run inside a Docker container, and included as part of a Docker compose file.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pigeon_config-0.2.2.tar.gz (30.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pigeon_config-0.2.2-py3-none-any.whl (48.6 kB view details)

Uploaded Python 3

File details

Details for the file pigeon_config-0.2.2.tar.gz.

File metadata

  • Download URL: pigeon_config-0.2.2.tar.gz
  • Upload date:
  • Size: 30.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.10.12

File hashes

Hashes for pigeon_config-0.2.2.tar.gz
Algorithm Hash digest
SHA256 9ac65c01556b4bb52dfc26d19657e7a2b9bbb0abec2bed091eda6c7871dc66e0
MD5 ebd8de9493fa94ac1deab9b8b66263c6
BLAKE2b-256 e910edf16ba28148ee88f76f7bdb296747c8dadbbeb284fcdc4b15c0514c9cd4

See more details on using hashes here.

File details

Details for the file pigeon_config-0.2.2-py3-none-any.whl.

File metadata

  • Download URL: pigeon_config-0.2.2-py3-none-any.whl
  • Upload date:
  • Size: 48.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.10.12

File hashes

Hashes for pigeon_config-0.2.2-py3-none-any.whl
Algorithm Hash digest
SHA256 55c7f39a6e621e975ba609e5e4ef0d230cd8d1a7dcce01ffe0fae42cc2b1ca84
MD5 a801b371a1f7e05188d49559f9d1cd7a
BLAKE2b-256 13f3eabb2f0f3e2e0e32677ac949dfcee5f796dcc99f6d45a02db0931e4724b0

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page