Simplifies the process of parsing command-line arguments and configurations from YAML files
Project description
Installation
pip install yaml-arg-configer
YAML Argument Parser
Overview
The YamlArgParser class simplifies the process of parsing command-line arguments and configurations from YAML files, combining default values with those specified via the command line or additional YAML files.
Features
- Default Configuration: Load default settings from a YAML file.
- Command-Line Override: Override default settings using command-line arguments.
- Multiple Configurations: Support for multiple YAML configuration files.
- Help Documentation: Generate help documentation for each configuration option.
Default Configuration YAML File
Create a default configuration file (e.g., defaults.yaml) with settings:
arg1:
default: ~ # Set arg1 default value to None
help: "Help documentation for arg1"
arg2:
default: ~ # Set arg2 default value to None
help: "Help documentation for arg2"
User Configuration YAML Files
Create user configuration files (e.g., config1.yaml):
arg1: value1 # Set arg1 value to value1
And additional configurations (e.g., config2.yaml):
arg2: value2 # Set arg2 value to value2
Parse Command-Line Arguments
Use the parse_args function to parse command-line arguments:
from yaml_arg_configer import YamlArgParser
yaml_parser = YamlArgParser()
cmd_args = yaml_parser.parse_cmd_args()
# return config with dict format by default
args = yaml_parser.parse_args(cmd_args)
print(args)
# config with argparse.Namespace format
print(yaml_parser.get_args())
Command-Line Usage
Run your script with configuration options:
python my_script.py -dc defaults.yaml -d configs -c config1 config2
-d,--cfg_dir: Directory containing configuration files.-c,--cfg: Names of configuration files to use (without.yamlextension).-dc,--default_yaml: Path to the default yaml file, it's optional when a path is passed in YamlArgParser()-ctx,--ctx_yaml: Path to the context yaml file, it's optional--strict: Constraints user configuration defined in the default_yaml file--doc: Get help documentation for a specific argument.--docs: Print help documentation for all arguments.
Accessing Configurations
Retrieve parsed configurations using:
print(yaml_parser.get_args_dict())
print(yaml_parser.get_args())
print(yaml_parser['arg1'])
Saving Configurations
Save current configurations to a YAML file:
yaml_parser.save_config('output_config.yaml')
Contributing
Contributions are welcome! Please fork the repository, make your changes, and submit a pull request. Ensure that any new features or bug fixes include appropriate tests.
License
This project is licensed under the MIT License.
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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file yaml_arg_configer-0.1.3.tar.gz.
File metadata
- Download URL: yaml_arg_configer-0.1.3.tar.gz
- Upload date:
- Size: 6.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
54180c23bbfd6a93ca4c717154f3313d7546a935ecd7f36a3dbb7f6b5b65166a
|
|
| MD5 |
82ac761325e8866c43bd2f7950463a1c
|
|
| BLAKE2b-256 |
54c4570c3d7d5a9c3e951dc6597b1b5abe903117bb4ba87ecb3708728b0b4877
|
File details
Details for the file yaml_arg_configer-0.1.3-py3-none-any.whl.
File metadata
- Download URL: yaml_arg_configer-0.1.3-py3-none-any.whl
- Upload date:
- Size: 7.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4243a4f22090a3357ef1b8a19ac355b6116cb44f0ed1b2eabf1961b47ba83524
|
|
| MD5 |
9da6cd9bd28e78e1d37e2a99ca55e958
|
|
| BLAKE2b-256 |
51808642e65b5594b7c1a564b7b5b8872a40e69fb50cd8eeb1d1f4e6743e7dc4
|