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 details)

Uploaded Source

Built Distribution

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

Uploaded Python 3

File details

Details for the file infer_parser-0.1.2.tar.gz.

File metadata

  • Download URL: infer_parser-0.1.2.tar.gz
  • Upload date:
  • Size: 7.5 kB
  • Tags: Source
  • Uploaded using 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

File hashes

Hashes for infer_parser-0.1.2.tar.gz
Algorithm Hash digest
SHA256 72254d39e6a2550c906591ed9fd0e4e50e8c9dc70bfe137e10466c3229f777b6
MD5 dda918f56f220d1bf3ad99567dcdb7ae
BLAKE2b-256 22a98483f9d43b07f33d4320826ab6582d869e3f2f745236a425480530bb84b3

See more details on using hashes here.

File details

Details for the file infer_parser-0.1.2-py3-none-any.whl.

File metadata

  • Download URL: infer_parser-0.1.2-py3-none-any.whl
  • Upload date:
  • Size: 8.7 kB
  • Tags: Python 3
  • Uploaded using 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

File hashes

Hashes for infer_parser-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 9ec67505547c48ed730d68c5e6c7b8b1863ca0e616ae6ca29c9c2a01430c52f8
MD5 caf498d5bb34feb7e41f52c129fafd15
BLAKE2b-256 14ca41f5cedf9a0e3cd4d73709319afeee93340ae3e928a470d01b0914774332

See more details on using hashes here.

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