Source code for nominally.api

import sys
import typing as T

from nominally.parser import Name
from nominally.utilities import prettier_print

__version__ = "1.1.0"


[docs]def parse_name(s: str) -> T.Dict[str, T.Any]: """Parse into Name, return core name attributes as a dict. This is the simplest function interface to *nominally*. """ return dict(Name(s))
[docs]def cli(arguments: T.Optional[T.Sequence[str]] = None) -> int: """Simple CLI with a minimal set of options. 1. Report of a single name (parse into details). 2. Help via usage information. [help, -h, --help] 3. Version information. [-V, --version] """ if not arguments: arguments = sys.argv if not arguments[1:] or (set(arguments) & {"--help", "-h", "help"}): return cli_help() if set(arguments) & {"--version", "-V"}: return cli_version() return cli_report(" ".join(arguments[1:]), details=True)
[docs]def cli_help() -> int: """Output help for command line usage""" horizontal_line = "-" * 80 print("nominally CLI example:", horizontal_line, sep="\n") example_name = "Mr. Arthur (Two Sheds) Jackson" print(f'> nominally "{example_name}"') cli_report(example_name) print(horizontal_line) return 0
[docs]def cli_report(raw_name: str, details: bool = True) -> int: """Parse into Name, output (core or report) attributes.""" name = Name(raw_name) output = name.report() if details else dict(name) prettier_print(output) return 0
[docs]def cli_version() -> int: """Output version info and script location""" print( f"nominally {__version__} running on " f"Python {sys.version.split(' ')[0]} ({sys.executable})" ) return 0