Skip to main content

Easily define and check configuration file structures 📂🍒

Project description

configTemplate

Build PyPI PyPI - Python Version GitHub Repo stars

Easily define configuration file structures, and check if a given configuration file matches the template.

Installation

configTemplate is tested on CPython 3.6, 3.7, 3.8, and 3.9. Simply install using pip:

pip install configTemplate

Support for additional file formats

By default, configTemplate only supports JSON configuration files, or already loaded data (not directly from a configuration file). However, using additional dependencies, configTemplate supports the following file formats:

  • JSON
  • YAML
  • TOML

To install configTemplate with the additional required dependencies to support your preferred file format, use:

pip install configTemplate[yaml]        # install dependencies for yaml files
pip install configTemplate[toml]        # toml files
pip install configTemplate[json,toml]   # json and toml files
pip install configTemplate[all]         # all available file formats

Usage

To create a template, you will need the basic Template module, and usually the other three basic modules TemplateList, TemplateDict, and Optional.

from configTemplate import Template, TemplateList, TemplateDict, Optional

Now, let's create a basic template that represents a single user:

TemplateUser = TemplateDict(            # a dictionary with 2 required values
    username=Template(str),             # username must be a string
    passcode=Template(int, str),        # can be a string or an integer.
    nickname=Optional(Template(str)),   # optional - if provided, must be a string.
)

Check if data matches your template using the check method:

errors = TemplateUser.check({'username': 'RealA10N', 'passcode': 12345})
# the check method returns a `TemplateCheckErrorManager` instance
# read full documentation for more information.

if errors:
    print(f'Found {errors.count} conflicts:')
    print(errors)   # prints a detailed and colored error list

else:
    print('data follows the template!')

Using configTemplate as a dependency

configTemplate is still under active development, and some core features may change substantially in the near future.

If you are planning to use configTemplate as a dependency for your project, we highly recommend specifying the exact version of the module you are using in the requirements.txt file or setup.py scripts.

For example, to pinpoint version v0.3.2 use the following line in your requirements.txt file:

configTemplate==0.3.2
configTemplate[yaml]==0.3.2     # If using extra file formats

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

configTemplate-0.3.2.tar.gz (9.0 kB view hashes)

Uploaded Source

Built Distribution

configTemplate-0.3.2-py3-none-any.whl (12.5 kB view hashes)

Uploaded Python 3

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