Interpolation tool
Project description
Interpolatr is a command line tool and library for interpolating configuration settings into templatized files. It uses the jinja2 library for templating.
Usage
The interpolatr command-line tool currently supports two configuration sources (command line and YAML; see below) and a single template sink ( file-based jinja2 templates). However, it is easy to supply your own configuration sources or template sinks if necessary.
Usage:
interpolatr [OPTIONS] [<config-class> <config-args>]... [<supplier-class> <supplier-args>]...
For example, using builtin config and template suppliers:
interpolatr -D override_setting=value YamlConfigSource --path conf.yaml ExtensionFileSinkSupplier --target_dir root
Configuration Sources
There are currently two built-in configuration sources for interpolatr:
Command line: You can specify configuration values when calling interpolatr using the -D flag: interpolator -D foo=bar.
YAML: You can specify configuration values in a hierarchical yaml format.
The format looks like this:
settings: setting_name: setting_value setting_two: other_value # Optional files to inherit settings from base: - file/to/inherit-from.yml # Functionally, this is no different than flattening the list out - [ some/more.yaml, and-even-more.yml ] - final-base-file.yml
These settings are populated into a ChainedMap, so any settings missing in your top-level configuration will be pulled from its parent(s).
It is simple to define your own configuration sources: see config.py. If using the command line, you can use a custom config source by specifying the fully qualified class path on the command line.
Configuration Sinks
Configuration values can currently be written into templatized configuration files. The templating is powered by jinja2, so you may use any valid jinja2 expressions to define your configuration files.
It should be straightfoward to customize this process as well; see the code in sink.py for reference.
Notes
This was developed under Python 2.7, but at least gives the appearance of working under Python 3.
This is an early version of this tool, so the interfaces are subject to change.
Copyright and License
Copyright 2016, Yahoo Inc.
Licensed under the terms of the Apache License, Version 2.0. See the LICENSE file associated with the project for terms.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for interpolatr-0.0.1-py2.py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4fd9f88043f3496a55e43984cc0f2d981bc3c330417411e2c1b513f37ce62c1c |
|
MD5 | de95f4920a529c8a6e506d9032936b32 |
|
BLAKE2b-256 | 5081ef995df325b6cecf3a79f13cf77ece568e7fd6446b5641ebeb02774738d9 |