Package: inicheck
Welcome to inicheckWhat 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 standardshttps://en.wikipedia.org/wiki/INI_file.ObjectivesThe 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 Principlesinicheck 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.Free software: GNU General Public License v3Documentation:https://inicheck.readthedocs.io.Features.ini file generatingConfig file checkingConfig file warning and error reportingCommand line interfaceApply defaultsAuto cast items into the correct types.Constrain users by designated optionsCreate recipes to ensure the right settings are in placeUse custom types for your config fileUse multiple master config files for cleaner filesAuto config file documentationCreate changelogs to automatically manage deprecated config optionsCreditsinicheck 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 withCookiecutterand theaudreyr/cookiecutter-pypackageproject template.History0.1.0 (2018-01-05)First release on PyPI.0.2.0 (2018-04-11)Recipes were added inCustom CheckersMultiple master files can be usedModule associated files to find master configsDetail finding in cli to get help on the fly0.3.0 (2018-08-10)Added the ability require an config entry be a listAdded significant unit tests0.4.0 (2019-07-19)Added in url datatypeAdded Datetime Ordered data type for start stop optionsAdded in an inidiff script for comparing config files0.5.0 (2019-08-22)Fixed bug relating to Datetime Ordered PairsAdded in inimake script for creating scripts from scratchAdded in more unittests (54% coverage)0.6.0 (2019-10-16)Built in a brand new feature for migrating large changes in configsAdded bounds checking for type checking allowing for continuous typesFixes for issues:25,27,31,320.7.0 (2019-10-22)Restructure the checkers some to better handle typesFixed several broken tests.0.8.0 (05-29-2020)Increased unittest coverage from ~57% to ~83%)Added in a CLI tool to find changelog impacts in python filesSwitch from pandas to_datetime to dateparser to reduce package sizeAdded inicheck to traviCI and CoverallsFixes for35,38,39,40,41,4243,44,45Added in linting with isort and autopep8Hardcodedparse_dateto always use UTC and return timezone unaware object.51Updated release to use setuptools_scm.52