A tool to create a command-line interface for your app using python
Project description
betterargs
A tool to create a command-line interface for your app using python
Installation
- Requirements
- python3.10
- pip3
pip install betterargs
Releases
Packaging and releases are handled in the packaging branch.
MAIN BRANCH IS RESERVED FOR MAINTAINING CODE ONLY!!!
Usage
-
Create a command string in YAML format in a:
- YAML file
- Python dictionary
- Python string
-
Convert the yaml file to command line namespace using appropriate function
1. Using a YAML file
# Create command tree in a yaml file
git:
args:
path:
atype: flag
help: Path of the repo
subparsers:
parsers:
clone:
args:
quiet-clone:
atype: flag
help: Operate quietly. Progress is not reported to the standard error stream.
no-checkout:
help: No checkout of HEAD is performed after the clone is complete
init:
args:
quiet-init:
atype: flag
help: Operate quietly. Progress is not reported to the standard error stream.
# Import betterargs
import betterargs
# Create command line namespace and get arguments
command_tree_PATH = 'command_tree.yaml'
args = betterargs.format_path_tree(command_tree_PATH)
2. Using Python Dictionary in YAML Format
# Import betterargs
import betterargs
# Define command tree in a dictionary in YAML format
command_tree_DICT = {
"git": {
"args": {
"path": {
"atype": "flag",
"help": "Path of the repo",
},
},
"subparsers": {
"parsers": {
"clone": {
"args": {
"quiet-clone": {
"atype": "flag",
"help": "Operate quietly. Progress is not reported to the standard error stream.",
},
"no-checkout": {
"help": "No checkout of HEAD is performed after the clone is complete"
},
},
},
"init": {
"args": {
"quiet-init": {
"atype": "flag",
"help": "Operate quietly. Progress is not reported to the standard error stream.",
},
},
},
},
},
},
}
# Create command line namespace and get arguments
args = betterargs.format_dict_tree(command_tree_DICT)
3. Using string in YAML Format
# Import betterargs
import betterargs
# Define command tree in a string in YAML format
command_tree_STR = """
git:
args:
path:
atype: flag
help: Path of the repo
subparsers:
parsers:
clone:
args:
quiet-clone:
atype: flag
help: Operate quietly. Progress is not reported to the standard error stream.
no-checkout:
help: No checkout of HEAD is performed after the clone is complete
init:
args:
quiet-init:
atype: flag
help: Operate quietly. Progress is not reported to the standard error stream.
"""
# Create command line namespace and get arguments
args = betterargs.format_str_tree(command_tree_STR)
Contributors
- Author: Daniel Muringe
Contribution
You are more than welcome to contribute 😊
Process
It's simple!!!
-
Fork the github repo
-
Clone the github repo
git clone https://github.com/danielmuringe/betterargs
-
Make your modifications in the dev branch
-
Merge into main branch respecting the .gitignore of the main branch. KEEP IT CLEAN PLEASE !!!
-
Create pull request
-
Wait for confirmation
Rules
-
Active changes must take place in the dev branch. Active changes include:
-
Changes to betterargs module
-
Modification of development notes betterargs module
-
Changes to the project tests
-
-
Tests must be put in the testing directory of dev branch
-
All packaging must be done in the packaging branch
Other rules will be added at my discretion
Tests
- Tests can be found in the testing directory of dev branch
Documentation
Coming Soon 😊
Project details
Release history Release notifications | RSS feed
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
Hashes for betterargs-0.0.3-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7f5c80a2f646c692fa86a33b78d2dfc4cb716a377664857ace1f27c8af19f8e8 |
|
MD5 | 0e3ea44fd8844494ee37ed4bba88356e |
|
BLAKE2b-256 | 1e31291daf32192a2902e2afc156e9358aef7e7e3ffa307ee96965205a32fd87 |