Skip to main content

Resolve configurations from abstract hierarchies and templates

Project description

|GitHub tag| |GitHub release| |PyPI| |Py Versions|

|Build Status| |Coverage Status| |Quality Gate| |Code Smells| |File
Complexity| |Vulnerabilities| |Technical Dept| |Lines of code|

converge
========

*Resolve Data from Abstract Hierarchies and Templates*

Managing configuration is hard. Sometimes you need simplicity, like a
few key-value properties. Sometimes you realize that a lot of your data
is similar and you wish you could apply abstraction to share and reuse
them.

This is where **converge** comes in. Choose your logic engines: \*
Readers: get data from your backends \* Pre-Filters: filter data before
resolution \* Resolvers: convert abstract data to resolved data \*
Post-Filters: filter resolved data (*example: search & replace values,
inject data post resolution*) \* Writers: output your data to the format
and backend of your choice

Abstract hierarchies of data chewed up and spit out to your liking.

How it works
============

.. figure:: docs/converge-diagram.png
:alt: Converge Overview

Alt text

Getting started
===============

Examples
========

A Brief History of Pain
=======================

You may have hit some (or all) of these stages in the pursuit of
configurability:

*In short: from the file, to the GUI, back to the file you idiot.* \*
Externalize configuration from your applications, to avoid re-releases
due to simple conf tuning \* Realizing that you're now managing a
million de-centralized files with no similar structure \* Create or use
a centralized, GUI/DB based configuration management system (woohoo!
configuration liberation!) \* Realizing that you are missing
flexibility, automation is complex, added abstraction layers are
painful.

The better model is to accept any data format, process it and output it
as you wish.

Files are better because: \* you can use time tested versioning systems
like git or mercurial to branch, release, rollback, check history \* you
can automate the modification of files with any tool you want \* doing
migrations on DB values/REST endpoints sucks (unnecessarily complex)

.. |GitHub tag| image:: https://img.shields.io/github/tag/drewboswell/converge.svg
:target:
.. |GitHub release| image:: https://img.shields.io/github/release/drewboswell/converge.svg
:target:
.. |PyPI| image:: https://img.shields.io/pypi/v/pyconverge.svg
:target: https://pypi.python.org/pypi/pyconverge/
.. |Py Versions| image:: https://img.shields.io/pypi/pyversions/pyconverge.svg
:target: https://pypi.python.org/pypi/pyconverge/
.. |Build Status| image:: https://travis-ci.org/drewboswell/converge.svg?branch=master
:target: https://travis-ci.org/drewboswell/converge
.. |Coverage Status| image:: https://coveralls.io/repos/github/drewboswell/converge/badge.svg?branch=master
:target: https://coveralls.io/github/drewboswell/converge?branch=master
.. |Quality Gate| image:: https://sonarqube.com/api/badges/gate?key=drewboswell_converge
:target: https://sonarqube.com/dashboard/index/drewboswell_converge
.. |Code Smells| image:: https://sonarqube.com/api/badges/measure?key=drewboswell_converge&metric=code_smells
:target: https://sonarqube.com/dashboard/index/drewboswell_converge
.. |File Complexity| image:: https://sonarqube.com/api/badges/measure?key=drewboswell_converge&metric=file_complexity
:target: https://sonarqube.com/dashboard/index/drewboswell_converge
.. |Vulnerabilities| image:: https://sonarqube.com/api/badges/measure?key=drewboswell_converge&metric=vulnerabilities
:target: https://sonarqube.com/dashboard/index/drewboswell_converge
.. |Technical Dept| image:: https://sonarqube.com/api/badges/measure?key=drewboswell_converge&metric=sqale_debt_ratio
:target: https://sonarqube.com/dashboard/index/drewboswell_converge
.. |Lines of code| image:: https://sonarqube.com/api/badges/measure?key=drewboswell_converge&metric=ncloc
:target: https://sonarqube.com/dashboard/index/drewboswell_converge

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

pyconverge-0.0.13.tar.gz (20.6 kB view hashes)

Uploaded Source

Supported by

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