Skip to main content

Make shell argument parsers from type hints

Project description

infer-parser

GitHub Workflow Status PyPI PyPI - Python Version GitHub

infer-parser is a Python library for making shell argument parsers from type hints.

Install

pip install infer-parser

Example

import typing as t
from infer_parser import make_parser

parse = make_parser(t.Optional[int])

assert parse(["5"]) == 5
assert parse(["-11"]) == -11
assert parse([""]) is None
assert parse(["None"]) is None

try:
    parse(["12.13"])
except ValueError:
    print("not an Optional[int]")

parse_tuple = make_parser(tuple[float, ...])

assert parse_tuple(["1.5"]) == (1.5,)
assert parse_tuple(["0.0", "4.2", "-1"]) == (0.0, 4.2, -1.0)
assert parse_tuple([]) == ()

try:
    parse(["Hello, world!"])
except ValueError:
    print("not a tuple[float, ...]")

Limitations

infer-parser cannot always infer a parser.

import typing as t
from infer_parser import make_parser

try:
    make_parser(t.Callable[..., int])
except TypeError:
    print("not supported")

License

MIT.

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

infer_parser-0.1.2.tar.gz (7.5 kB view hashes)

Uploaded Source

Built Distribution

infer_parser-0.1.2-py3-none-any.whl (8.7 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page