Library for generating shell parsers from type hints
Project description
infer-parser
infer-parser is a Python library for inferring shell parsers from type hints.
Example
from typing import Optional
from infer_parser import infer, CantParse
parse = infer(Optional[int])
assert parse("5") == 5
assert parse("-11") == -11
assert parse("") is None
assert parse("None") is None
assert isinstance(parse("12.13"), CantParse)
parse_tuple = infer(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("") == ()
assert isinstance(parse_tuple("Hello, world!"), CantParse)
Limitations
infer-parser cannot always infer a parser.
from typing import Callable
from infer_parser import infer, CantInfer
parse = infer(Callable[..., int]) # not supported
assert isinstance(parse, CantInfer)
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.0.2.tar.gz
(6.2 kB
view hashes)
Built Distribution
Close
Hashes for infer_parser-0.0.2-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 61f75aa66e7f92e04794cba52466f270ca2614606e795f3b6c8d306ec6d289cd |
|
MD5 | 5953d4e35c986c5ace9717784ec155bc |
|
BLAKE2b-256 | 2a8a60a9f0a2e3c319b666a93792f2048b5fe2c8784faefdac16144ec16767b1 |