bibiflags is a python tool to import YAML configs into Arguments for Python .
It provides 2 ways to use it:
- Parse all Arguments from YAML: see example .
- Merge Arguments form YAML and existing argparse.ArgumentParser: see example .
- Python version >= 3.8
- libaries:
- "PyYAML>=6.0.1"
pip install bibiflags
Install from source via:
pip install git+https://github.com/bibiparrot/bibiflags.git
Or clone the repository and install with the following commands:
git clone git@github.com:bibiparrot/bibiflags.git
cd bibiflags
pip install -e .
YAML file
flags:
- dest: filename
help: positional args
type: str
required: true
- default: string-type-arguments
dest: str_arg
help: string type args
option_strings:
- --str_arg
- -sa
type: str
- const: true
default: false
dest: bool_arg
help: bool type args
nargs: 0
option_strings:
- --bool_arg
- -ba
type: bool
- default: 8
dest: int_arg
help: int type args
option_strings:
- --int_arg
- -ia
type: int
- default: 0.1
dest: float_arg
help: float type args
option_strings:
- --float_arg
- -fa
type: float
- default:
- 1
- 2
- 3
- 4
dest: list_arg
help: list type args
nargs: +
option_strings:
- --list_arg
- -la
type: int
from pathlib import Path
from bibiflags import BibiFlags
if __name__ == '__main__':
flags = BibiFlags(root=str(Path(__file__).parent))
print(flags.parameters)
from pathlib import Path
from bibiflags import BibiFlags
if __name__ == '__main__':
import argparse
parser = argparse.ArgumentParser()
parser.add_argument("echo", action='store_true')
flags = BibiFlags(argparser=parser,
root=str(Path(__file__).parent),
app_name='main')
print(flags.parameters)