1
0
mirror of https://github.com/kellyjonbrazil/jc.git synced 2025-06-17 00:07:37 +02:00
Files
jc/docs
Kelly Brazil 4cd721be85 Dev v1.23.4 (#439)
* version bump

* fix regex for crlf line endings

* Completed Ip_route parser (#429)

* tests

* Merge pull request #398 from kellyjonbrazil/dev

Dev v1.23.2

* Merge pull request #398 from kellyjonbrazil/dev

Dev v1.23.2

---------

Co-authored-by: Kelly Brazil <kellyjonbrazil@gmail.com>
Co-authored-by: Jjack3032 <julian.jackson@parsons.us>

* formatting

* doc update

* use splitlines

* formatting

* formatting

* Parser for `find` linux command (#434)

* Added find parser and tests for Centos 7.7 and Ubuntu 18.04

* Added a test file, changed logic, and included a case for permission denied returned by find.

* Added a few more lines to the tests

* Changed logic for setting values to null and updated test cases.

* doc update

* doc update

* Added proc_net_tcp parser (#421)

Co-authored-by: Kelly Brazil <kellyjonbrazil@gmail.com>

* clean up net_tcp parser

* add resolve.conf test files

* doc update

* add resolve.conf parser

* doc update

* add sortlist functionality

* add resolve.conf parser tests

* doc update

---------

Co-authored-by: Julian5555 <58196809+Julian5555@users.noreply.github.com>
Co-authored-by: Jjack3032 <julian.jackson@parsons.us>
Co-authored-by: solomonleang <124934439+solomonleang@users.noreply.github.com>
Co-authored-by: AlvinSolomon <41175627+AlvinSolomon@users.noreply.github.com>
2023-07-30 10:08:39 -07:00
..
2023-07-30 10:08:39 -07:00
2023-01-22 10:37:27 -08:00
2022-08-21 16:23:56 -07:00
2022-12-13 13:30:50 -08:00

jc

JC - JSON Convert

This package converts the output of many standard unix command line tools and file-types to dictionaries and lists of dictionaries.

Interactive Documentation

Using jc in your python programs:

>>> help('jc')
>>> help('jc.lib')
>>> jc.get_help('parser_module_name')

Developing jc parsers:

>>> help('jc.utils')
>>> help('jc.streaming')
>>> help('jc.parsers.universal')

Online Documentation

Latest

https://github.com/kellyjonbrazil/jc/tree/master/docs

Specific Version

https://github.com/kellyjonbrazil/jc/tree/v<full_version_number>/docs

Replace <full_version_number> - e.g. 1.18.0:

Specific versions can also be selected by tag in the Github branch dropdown menu.

Usage Example

>>> import subprocess
>>> import jc
>>>
>>> cmd_output = subprocess.check_output(['dig', 'example.com'],
                                         text=True)
>>> data = jc.parse('dig', cmd_output)
>>> data
[{'id': 64612, 'opcode': 'QUERY', 'status': 'NOERROR', ...}]

Alternatively, you can bypass the high-level API and call the parser modules directly:

>>> import subprocess
>>> import jc.parsers.dig
>>>
>>> cmd_output = subprocess.check_output(['dig', 'example.com'],
                                         text=True)
>>> data = jc.parsers.dig.parse(cmd_output)
>>> data
[{'id': 64612, 'opcode': 'QUERY', 'status': 'NOERROR', ...}]

Available Functions

Use help(jc.lib) for details.

parse

parse(
    parser_module_name: str,
    data: str | bytes | Iterable
) -> dict | list[dict] | Iterable[dict]

High-level API to easily access the parser. This API will find both built-in parsers and local plugin parsers.

parser_info

parser_info(
    parser_module_name: str,
    documentation: bool = False
) -> dict

Get the metadata for a particular parser.

all_parser_info

all_parser_info(documentation: bool = False) -> list[dict]

Get the metadata for all parsers.

get_help

get_help(parser_module_name: str) -> None

Convenience function to display the help screen for a parser using its module name.

parser_mod_list

parser_mod_list() -> list[str]

Get a list of all available parser module names to be used in parse(), parser_info(), and get_help().

plugin_parser_mod_list

plugin_parser_mod_list() -> list[str]

Get a list of plugin parser module names to be used in parse(), parser_info(), and get_help(). This list is a subset of parser_mod_list().

standard_parser_mod_list

standard_parser_mod_list() -> list[str]

Get a list of standard parser module names to be used in parse(), parser_info(), and get_help(). This list is a subset of parser_mod_list() and does not contain any streaming parsers.

streaming_parser_mod_list

streaming_parser_mod_list() -> list[str]

Get a list of streaming parser module names to be used in parse(), parser_info(), and get_help(). This list is a subset of parser_mod_list().