- processor: Process docstrings according to PEP 257
- Ignored a type warning
- Added support for root path
- Removed nonexistent reexport "configpile.fun"
- config: prefix ClassVar by typing.ClassVar and so on
- processor: Respects case in INI files
- parsers: fix Parser.from_parsy_parser call convention as it breaks when using collections
- add words to cSpell dictionary
- fix more PyLint warnings
- moved classes to avoid circular imports; corrected PyLint warnings
- Internal classes have been moved around, so imports may need to be fixed. Imports from configpile.* are unchanged.
- add standalone INI file processing
- processor: new method IniProcessor.process_string to process INI file content without opening a file
- export ForceCase from the main configpile package
- parsers: add Parser.flat_map method
- config: renamed Processor.process to Processor.process_command_line to avoid deprecation warning
- processor: made Processor.process_config private, as it related to an internal update
- userr: fix the string representation of Err1
- userr: fix the order of contexts, left is outer-most
- userr: fix construction of ManyErr when dealing with a single error
- userr: rename flatMap to flat_map to obey style guidelines
- parsers: handle better the optional parsy import
- config: enable use of configpile in Jupyter notebooks
- Methods in a Config subclass that start with "validate_", do not end with an underscore, and are not validators must be renamed so that their name no longer starts with the "validate_" string.
- configpile.types -> configpile.parsers, ParamType -> Parser, float_ -> float_parser etc
- processor: rename Processor.process to process_command_line
- config: enable instance validators that do not end with an underscore
- rename param_type to parser
- config: fix docstring for Sphinx
- remove pytest-mypy-plugins
- docs: fix the name of the calculator script in the example
- config: change Validator definition due to bug
- refactored configpile.arg
- docs: remove the requirements.txt file as everything is handled by Poetry
- major refactoring
- explicitly reexport identifiers to make type checkers happy
- errors: Err.check
- add py.typed file in the configpile package
- add parameter validation
- config: add support for validator methods
- errors: add errors.{wrap_exceptions, is_value, is_err)
- reexport configpile.Result
- arg: fix support for Expander flag commands
- errors: separate context lines in error printing
- processor: add context in collector errors too
- errors: add context in error reporting
- config: let argparse handle positional arguments for help display
- processor: fix typo
- errors: renamed collect_optional->collect, added collect_optional that collects a seq of Optional[Err]
- config: add post-construction config validation with error reporting
- Renamed collect_optional->collect, collect->collect_non_empty
- types: add ParamType.map/as_sequence_of_one
- add reexport of common identifiers
- types: added float parameter type
- processor: make config file paths relative
- arg: correct bug in ParamType.append
- major refactoring of the processing back-end
- There are breaking changes but they are too numerous to describe.
- config: enumerate commands in usage information
- config: INI configuration file parameter is now named "config"
- config: removed dead code
- Config.ini_files is renamed to Config.config
- do not ignore default parameter values anymore
- config: implement help command flag
- util: fix bug in attribute documentation lookup
- config: fix retrieval of argument documentation in parent classes
- config: Fixed the formatter used in usage/help formatting, so that it preserves newlines
- config: better formatting of usage/help when running from CLI
- make-Pylance-type-checker-happy: Added exceptions and corrected types to avoid Pylance errors. Allows unused "type: ignore" in mypy config to make both tools happy
- use static methods for dataclass construction
- Renamed collector.{keep_last, invalid, append} -> collector.Collector.{keep_last, invalid, append}; arg.{append, store} -> arg.Param.{append, store}
- types: added bool_ type
- types: changed names of default types to standard Python names, followed by underscore
- types.integer is now types.int_
- types: add aliases for ParamType.choices
- introduce new syntax based on typing.Annotated
- harmonized terminology for arguments/parameters
- types: more descriptive ArgType creation from functions, documentation
- The following classes have been renamed: BaseArg -> Arg, Cmd -> Expander, Arg -> Param, ArgType -> ParamType
- ArgType.from_function is renamed to ArgType.from_function_that_raises
- types: add case normalization in ArgType.choices[_str]
- sources: add support for generic command line flags