arcparse 1.0.0

Last updated:

0 purchases

arcparse 1.0.0 Image
arcparse 1.0.0 Images
Add to Cart

Description:

arcparse 1.0.0

arcparse
Declare program arguments in a type-safe way.
This project builds on top of argparse by adding type-safety and allowing a more expressive argument parser definition.
Example usage
from arcparse import arcparser, flag

@arcparser
class Args:
path: Path
recurse: bool = flag("-r")
item_limit: int = 100
output_path: Path | None

args = Args.parse()
print(f"Scanning {args.path}...")
...

For more examples see Examples.
Installation
# Using pip
$ pip install arcparse

Features

Positional, Option and Flag arguments
Multiple values per argument
Name overriding
Type conversions
Mutually exclusive groups
Subparsers
Parser inheritance

Credits
This project was inspired by swansonk14/typed-argument-parser.
Known issues
Annotations
from __future__ import annotations makes all annotations strings at runtime. This library relies on class variable annotations's types being actual types. inspect.get_annotations(obj, eval_str=True) is used to evaluate string annotations to types in order to assign converters. If an argument is annotated with a non-builtin type which is defined outside of the argument-defining class body the type can't be found which results in NameErrors. This is avoidable either by only using custom types which have been defined in the argument-defining class body (which is restrictive), or alternatively by not using the annotations import which should not be necessary from python 3.13 forward thanks to PEP 649.

License:

For personal and professional use. You cannot resell or redistribute these repositories in their original state.

Customer Reviews

There are no reviews.