Skip to main content

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.

Metadata

Release files for infer-parser 0.1.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for infer-parser 0.1.2
File Size Uploaded
infer_parser-0.1.2.tar.gz 7.5 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for infer-parser 0.1.2
File Interpreter ABI Platform
infer_parser-0.1.2-py3-none-any.whl Python 3 none any Details

Total release size: 16.2 kB

Release files / infer_parser-0.1.2.tar.gz

Download URL infer_parser-0.1.2.tar.gz
Size 7.5 kB
Tags Source
SHA-256 checksum
How to use checksums
72254d39e6a2550c906591ed9fd0e4e50e8c9dc70bfe137e10466c3229f777b6
BLAKE2b-256 checksum
How to use checksums
22a98483f9d43b07f33d4320826ab6582d869e3f2f745236a425480530bb84b3
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.4.1 importlib_metadata/4.0.1 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.60.0 CPython/3.9.4

Release files / infer_parser-0.1.2-py3-none-any.whl

Download URL infer_parser-0.1.2-py3-none-any.whl
Size 8.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
9ec67505547c48ed730d68c5e6c7b8b1863ca0e616ae6ca29c9c2a01430c52f8
BLAKE2b-256 checksum
How to use checksums
14ca41f5cedf9a0e3cd4d73709319afeee93340ae3e928a470d01b0914774332
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.4.1 importlib_metadata/4.0.1 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.60.0 CPython/3.9.4

Release history Release notifications | RSS feed

This release

0.1.2 This release

2 release files

0.1.1

2 release files

0.1.0

2 release files

0.0.2

2 release files

0.0.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page