Skip to main content

inicheck is an high level configuration file checker enabling developers tight control over their users configuration files

Project description

https://img.shields.io/pypi/v/inicheck.svg Documentation Status Testing Status

What is inicheck?

inicheck is an advanced configuration file checker/manager enabling developers high end control over their users configuration files. inicheck is specifcially aimed at files that adhere to the .ini format. See wiki for more info on the file standards https://en.wikipedia.org/wiki/INI_file .

Objectives

The goal of inicheck was to reduce endless logic gates and repeat code for software that required complicated configuration files. We also wanted to centralize options for an ever changing repo. We have a lot of experience with codes that required config files that could easily have 1000 different configurations. So from that need inicheck has been born.

Basic Principles

inicheck requires a master config file to operate. The master config file is a gold standard files provided by the developer of a package. The master config (sometimes called the core config) provides the rules for every configuration file that is passed to the software. There the developer can set types, constrain options, documentation strings and defaults. The developer can also create recipes that can be triggered when a user has a specific combination of config file entries.

Once a master config file is created, all config files can be passed through the standards laid out in there. From there the software can provide feedback to the user about why their file is being rejected. The master file also enables the user to have really simple config files that have larger meaning. With recipes and defaults, a user can provide relatively little and the developer can still move forward without have a ridiculous amount of logic to handle scenarios.

Features

  • .ini file generating

  • Config file checking

  • Config file warning and error reporting

  • Command line interface

  • Apply defaults

  • Auto cast items into the correct types.

  • Constrain users by designated options

  • Create recipes to ensure the right settings are in place

  • Use custom types for your config file

  • Use multiple master config files for cleaner files

  • Auto config file documentation

  • Create changelogs to automatically manage deprecated config options

Credits

inicheck has been developed at the USDA-ARS-NWRC during efforts towards creating highly configurable, physically based watershed modeling software.

inicheck originally was based on config parser and with time went away from it. We would not be here with that base and for that were grateful.

This package was created with Cookiecutter and the audreyr/cookiecutter-pypackage project template.

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

m3w_inicheck-0.3.0.tar.gz (73.2 kB view details)

Uploaded Source

Built Distribution

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

m3w_inicheck-0.3.0-py3-none-any.whl (39.8 kB view details)

Uploaded Python 3

File details

Details for the file m3w_inicheck-0.3.0.tar.gz.

File metadata

  • Download URL: m3w_inicheck-0.3.0.tar.gz
  • Upload date:
  • Size: 73.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.14

File hashes

Hashes for m3w_inicheck-0.3.0.tar.gz
Algorithm Hash digest
SHA256 ad43e131a5288e5e2629f41b569a3b84c8a45ec016d25d671e155788eb7656b3
MD5 c81724ca164d51d60488ae8bcb6b5889
BLAKE2b-256 30688274ab7cdf3e7062e3cb7fce18e4aec52626789752e8515cb9d3ae253ce7

See more details on using hashes here.

Provenance

The following attestation bundles were made for m3w_inicheck-0.3.0.tar.gz:

Publisher: release_pypi.yaml on M3Works/inicheck

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file m3w_inicheck-0.3.0-py3-none-any.whl.

File metadata

  • Download URL: m3w_inicheck-0.3.0-py3-none-any.whl
  • Upload date:
  • Size: 39.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.14

File hashes

Hashes for m3w_inicheck-0.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 750433d77ef0e4045c7e4c3d9d2a647c1d4185babc490df03f4e2c15e076118c
MD5 668d9cb287afcbc5fdabd0b8e15a76ba
BLAKE2b-256 732bc643594e4322d9c187e7c5f2569dd2f6412ca6811daa7b3860b03af8c73e

See more details on using hashes here.

Provenance

The following attestation bundles were made for m3w_inicheck-0.3.0-py3-none-any.whl:

Publisher: release_pypi.yaml on M3Works/inicheck

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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