Skip to main content

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

Metadata

Release files for configTemplate 0.3.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for configTemplate 0.3.2
File Size Uploaded
configTemplate-0.3.2.tar.gz 9.0 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for configTemplate 0.3.2
File Interpreter ABI Platform
configTemplate-0.3.2-py3-none-any.whl Python 3 none any Details

Total release size: 21.5 kB

Release files / configTemplate-0.3.2.tar.gz

Download URL configTemplate-0.3.2.tar.gz
Size 9.0 kB
Tags Source
SHA-256 checksum
How to use checksums
56c0b7ec2979666121c69f036b41c63a0a1090679a2a1a74ff335c684e9cebfb
BLAKE2b-256 checksum
How to use checksums
a2b85d8c97420ebae5c3e0a64b609d690b23cc3f0d62856d29248bc655f0e571
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.4.1 importlib_metadata/4.4.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.54.1 CPython/3.9.2

Release files / configTemplate-0.3.2-py3-none-any.whl

Download URL configTemplate-0.3.2-py3-none-any.whl
Size 12.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
41cacb4ada0f404c62e74efe88871d5c0922830b3f0df02817a9b1f1bdd87b9f
BLAKE2b-256 checksum
How to use checksums
d301f6ee67db50974e857fc2e42451789785955af6f20a21ffc6b0124dea7093
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.4.1 importlib_metadata/4.4.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.54.1 CPython/3.9.2

Release history Release notifications | RSS feed

This release

0.3.2 This release

2 release files

0.3.1

2 release files

0.3.0

2 release files

0.2.0

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page