arglite
A lightweight, explicit argument parsing library for Python programs.
I made this for a teaching machine project I'm working on (I needed a custom argument parser for reasons), and I'm always too impatient to use argparse.
Quick start
import arglite
arglite.parser.require("name", type=str)
arglite.parser.optional("count", default=1, type=int)
arglite.parser.flag("verbose")
def main():
print(arglite.parser.name)
print(arglite.parser.count)
print(arglite.parser.verbose)
if __name__ == "__main__":
main()
python main.py --name Yo --count 5 --verbose
YAML configuration
You can also declare flags in a .arglite.yaml file in the working directory. arglite loads it automatically, or you can point to a different file with parser.load().
flags:
name:
help: "The user name"
type: str
required: true
count:
help: "Number of items"
type: int
default: 1
verbose:
help: "Enable verbose output"
action: store_true
import arglite
print(arglite.parser.name)
print(arglite.parser.count)
print(arglite.parser.verbose)
Python declarations override YAML for runtime behavior (type, required, default, action), while YAML metadata like help and choices is merged in.
Documentation
Full documentation is available at arglite.readthedocs.io.
Installation
pip install arglite
Notes
- Flags are case-sensitive.
- Both
-f/--flagand--flag=value/-f=valuesyntaxes are supported. - Values containing spaces work when passed via the shell's normal quoting rules.
- Empty string values (
--name "") are preserved. ast.literal_evalis used for type inference when no explicittypeis given.
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 arglite-0.30.5.tar.gz.
File metadata
- Download URL: arglite-0.30.5.tar.gz
- Upload date:
- Size: 14.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/7.0.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b86e745f56cd3b1f39bb5afb1455d44635800e27952570682d94506be2b50049
|
|
| MD5 |
bd0a8deb64b1bbf64ee480054753793a
|
|
| BLAKE2b-256 |
5e21c99f305e1fc40c69b9434eeaeb99812bd54f26d27cbec038b9f16d736636
|
File details
Details for the file arglite-0.30.5-py3-none-any.whl.
File metadata
- Download URL: arglite-0.30.5-py3-none-any.whl
- Upload date:
- Size: 11.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/7.0.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d34dcba2675f37ed91f02e1d310c88ee28db641c120212912a3c10009e606201
|
|
| MD5 |
ae0357f613531053d6535bfdc50345b9
|
|
| BLAKE2b-256 |
e175c68989c26d313ab9b11b26c68ba73bec0e0b90b7d629550dd20ad4af83e6
|