mirror of
https://github.com/kellyjonbrazil/jc.git
synced 2025-07-17 01:32:37 +02:00
extract to public jc.get_parser(parser_name) (#516)
* remove unused imports and RegEx * extract to public jc.get_parser(parser_name) * changed order of exports * add doc * add doc.md * remove data_dir from doc.md --------- Co-authored-by: Kelly Brazil <kellyjonbrazil@gmail.com>
This commit is contained in:
21
docs/lib.md
21
docs/lib.md
@ -1,6 +1,7 @@
|
|||||||
# Table of Contents
|
# Table of Contents
|
||||||
|
|
||||||
* [jc.lib](#jc.lib)
|
* [jc.lib](#jc.lib)
|
||||||
|
* [get\_parser](#jc.lib.get_parser)
|
||||||
* [parse](#jc.lib.parse)
|
* [parse](#jc.lib.parse)
|
||||||
* [parser\_mod\_list](#jc.lib.parser_mod_list)
|
* [parser\_mod\_list](#jc.lib.parser_mod_list)
|
||||||
* [plugin\_parser\_mod\_list](#jc.lib.plugin_parser_mod_list)
|
* [plugin\_parser\_mod\_list](#jc.lib.plugin_parser_mod_list)
|
||||||
@ -17,6 +18,26 @@
|
|||||||
|
|
||||||
jc - JSON Convert lib module
|
jc - JSON Convert lib module
|
||||||
|
|
||||||
|
<a id="jc.lib.get_parser"></a>
|
||||||
|
|
||||||
|
### get\_parser
|
||||||
|
|
||||||
|
```python
|
||||||
|
def get_parser(parser_mod_name) -> ModuleType
|
||||||
|
```
|
||||||
|
|
||||||
|
Return the parser module object
|
||||||
|
|
||||||
|
Parameters:
|
||||||
|
|
||||||
|
parser_mod_name: (string or name of the parser module. This
|
||||||
|
Module) function will accept module_name,
|
||||||
|
cli-name, and --argument-name
|
||||||
|
variants of the module name.
|
||||||
|
Returns:
|
||||||
|
|
||||||
|
Parser: the parser module object
|
||||||
|
|
||||||
<a id="jc.lib.parse"></a>
|
<a id="jc.lib.parse"></a>
|
||||||
|
|
||||||
### parse
|
### parse
|
||||||
|
@ -127,6 +127,7 @@ Get a list of streaming parser module names to be used in
|
|||||||
from .lib import (
|
from .lib import (
|
||||||
__version__ as __version__,
|
__version__ as __version__,
|
||||||
parse as parse,
|
parse as parse,
|
||||||
|
get_parser as get_parser,
|
||||||
parser_mod_list as parser_mod_list,
|
parser_mod_list as parser_mod_list,
|
||||||
plugin_parser_mod_list as plugin_parser_mod_list,
|
plugin_parser_mod_list as plugin_parser_mod_list,
|
||||||
standard_parser_mod_list as standard_parser_mod_list,
|
standard_parser_mod_list as standard_parser_mod_list,
|
||||||
|
27
jc/lib.py
27
jc/lib.py
@ -270,6 +270,28 @@ def _parser_argument(parser_mod_name: str) -> str:
|
|||||||
parser = _modname_to_cliname(parser_mod_name)
|
parser = _modname_to_cliname(parser_mod_name)
|
||||||
return f'--{parser}'
|
return f'--{parser}'
|
||||||
|
|
||||||
|
def get_parser(parser_mod_name) -> ModuleType:
|
||||||
|
"""
|
||||||
|
Return the parser module object
|
||||||
|
|
||||||
|
Parameters:
|
||||||
|
|
||||||
|
parser_mod_name: (string or name of the parser module. This
|
||||||
|
Module) function will accept module_name,
|
||||||
|
cli-name, and --argument-name
|
||||||
|
variants of the module name.
|
||||||
|
Returns:
|
||||||
|
|
||||||
|
Parser: the parser module object
|
||||||
|
|
||||||
|
|
||||||
|
"""
|
||||||
|
if isinstance(parser_mod_name, ModuleType):
|
||||||
|
jc_parser = parser_mod_name
|
||||||
|
else:
|
||||||
|
jc_parser = _get_parser(parser_mod_name)
|
||||||
|
return jc_parser
|
||||||
|
|
||||||
def _get_parser(parser_mod_name: str) -> ModuleType:
|
def _get_parser(parser_mod_name: str) -> ModuleType:
|
||||||
"""Return the parser module object"""
|
"""Return the parser module object"""
|
||||||
# ensure parser_mod_name is a true module name and not a cli name
|
# ensure parser_mod_name is a true module name and not a cli name
|
||||||
@ -409,10 +431,7 @@ def parse(
|
|||||||
Standard Parsers: Dictionary or List of Dictionaries
|
Standard Parsers: Dictionary or List of Dictionaries
|
||||||
Streaming Parsers: Generator Object containing Dictionaries
|
Streaming Parsers: Generator Object containing Dictionaries
|
||||||
"""
|
"""
|
||||||
if isinstance(parser_mod_name, ModuleType):
|
jc_parser = get_parser(parser_mod_name)
|
||||||
jc_parser = parser_mod_name
|
|
||||||
else:
|
|
||||||
jc_parser = _get_parser(parser_mod_name)
|
|
||||||
|
|
||||||
if ignore_exceptions is not None:
|
if ignore_exceptions is not None:
|
||||||
return jc_parser.parse(
|
return jc_parser.parse(
|
||||||
|
Reference in New Issue
Block a user