1
0
mirror of https://github.com/kellyjonbrazil/jc.git synced 2025-07-15 01:24:29 +02:00

Merge pull request #209 from kellyjonbrazil/dev

Dev v1.18.4
This commit is contained in:
Kelly Brazil
2022-03-05 21:49:36 +00:00
committed by GitHub
230 changed files with 1764 additions and 309 deletions

View File

@ -1,5 +1,11 @@
jc changelog jc changelog
20220304 v1.18.4
- Add nmcli command parser tested on linux
- Enhance parse error messages at the cli
- Add standard and streaming parser list functions to the public API
- Enhance python developer documentation formatting
20220214 v1.18.3 20220214 v1.18.3
- Add rsync command and log file parser tested on linux and macOS - Add rsync command and log file parser tested on linux and macOS
- Add rsync command and log file streaming parser tested on linux and macOS - Add rsync command and log file streaming parser tested on linux and macOS

View File

@ -2387,6 +2387,47 @@ netstat -i | jc --netstat -p # or: jc -p netstat -i
} }
] ]
``` ```
### nmcli
```bash
nmcli connection show ens33 | jc --nmcli -p # or jc -p nmcli connection show ens33
```
```json
[
{
"connection_id": "ens33",
"connection_uuid": "d92ece08-9e02-47d5-b2d2-92c80e155744",
"connection_stable_id": null,
"connection_type": "802-3-ethernet",
"connection_interface_name": "ens33",
"connection_autoconnect": "yes",
"ip4_address_1": "192.168.71.180/24",
"ip4_gateway": "192.168.71.2",
"ip4_route_1": {
"dst": "0.0.0.0/0",
"nh": "192.168.71.2",
"mt": 100
},
"ip4_route_2": {
"dst": "192.168.71.0/24",
"nh": "0.0.0.0",
"mt": 100
},
"ip4_dns_1": "192.168.71.2",
"ip4_domain_1": "localdomain",
"dhcp4_option_1": {
"name": "broadcast_address",
"value": "192.168.71.255"
},
"ip6_address_1": "fe80::c1cb:715d:bc3e:b8a0/64",
"ip6_gateway": null,
"ip6_route_1": {
"dst": "fe80::/64",
"nh": "::",
"mt": 100
}
}
]
```
### ntpq ### ntpq
```bash ```bash
ntpq -p | jc --ntpq -p # or: jc -p ntpq -p ntpq -p | jc --ntpq -p # or: jc -p ntpq -p

View File

@ -1,8 +1,6 @@
![Tests](https://github.com/kellyjonbrazil/jc/workflows/Tests/badge.svg?branch=master) ![Tests](https://github.com/kellyjonbrazil/jc/workflows/Tests/badge.svg?branch=master)
![Pypi](https://img.shields.io/pypi/v/jc.svg) ![Pypi](https://img.shields.io/pypi/v/jc.svg)
> `jc` was recently featured in the [Console Open Source Newsletter](https://console.substack.com/p/console-89)
> Check out the `jc` Python [package documentation](https://github.com/kellyjonbrazil/jc/tree/master/docs) for developers > Check out the `jc` Python [package documentation](https://github.com/kellyjonbrazil/jc/tree/master/docs) for developers
> Try the `jc` [web demo](https://jc-web-demo.herokuapp.com/) > Try the `jc` [web demo](https://jc-web-demo.herokuapp.com/)
@ -13,7 +11,7 @@ Ansible filter plugin in the `community.general` collection. See this
for an example. for an example.
# JC # JC
JSON CLI output utility JSON Convert
`jc` JSONifies the output of many CLI tools and file-types for easier parsing in `jc` JSONifies the output of many CLI tools and file-types for easier parsing in
scripts. See the [**Parsers**](#parsers) section for supported commands and scripts. See the [**Parsers**](#parsers) section for supported commands and
@ -55,16 +53,9 @@ will be a python dictionary, or list of dictionaries, instead of JSON:
>>> cmd_output = subprocess.check_output(['dig', 'example.com'], text=True) >>> cmd_output = subprocess.check_output(['dig', 'example.com'], text=True)
>>> data = jc.parse('dig', cmd_output) >>> data = jc.parse('dig', cmd_output)
>>> >>>
>>> data >>> data[0]['answer']
[{'id': 64612, 'opcode': 'QUERY', 'status': 'NOERROR', 'flags': ['qr', 'rd',
'ra'], 'query_num': 1, 'answer_num': 1, 'authority_num': 0, 'additional_num':
1, 'opt_pseudosection': {'edns': {'version': 0, 'flags': [], 'udp': 4096}},
'question': {'name': 'example.com.', 'class': 'IN', 'type': 'A'}, 'answer':
[{'name': 'example.com.', 'class': 'IN', 'type': 'A', 'ttl': 29658, 'data': [{'name': 'example.com.', 'class': 'IN', 'type': 'A', 'ttl': 29658, 'data':
'93.184.216.34'}], 'query_time': 52, 'server': '93.184.216.34'}]
'2600:1700:bab0:d40::1#53(2600:1700:bab0:d40::1)', 'when':
'Fri Apr 16 16:13:00 PDT 2021', 'rcvd': 56, 'when_epoch': 1618614780,
'when_epoch_utc': None}]
``` ```
> For `jc` Python package documentation, use `help('jc')`, `help('jc.lib')`, or > For `jc` Python package documentation, use `help('jc')`, `help('jc.lib')`, or
@ -199,6 +190,7 @@ option.
- `--lsusb` enables the `lsusb` command parser ([documentation](https://kellyjonbrazil.github.io/jc/docs/parsers/lsusb)) - `--lsusb` enables the `lsusb` command parser ([documentation](https://kellyjonbrazil.github.io/jc/docs/parsers/lsusb))
- `--mount` enables the `mount` command parser ([documentation](https://kellyjonbrazil.github.io/jc/docs/parsers/mount)) - `--mount` enables the `mount` command parser ([documentation](https://kellyjonbrazil.github.io/jc/docs/parsers/mount))
- `--netstat` enables the `netstat` command parser ([documentation](https://kellyjonbrazil.github.io/jc/docs/parsers/netstat)) - `--netstat` enables the `netstat` command parser ([documentation](https://kellyjonbrazil.github.io/jc/docs/parsers/netstat))
- `--nmcli` enables the `nmcli` command parser ([documentation](https://kellyjonbrazil.github.io/jc/docs/parsers/nmcli))
- `--ntpq` enables the `ntpq -p` command parser ([documentation](https://kellyjonbrazil.github.io/jc/docs/parsers/ntpq)) - `--ntpq` enables the `ntpq -p` command parser ([documentation](https://kellyjonbrazil.github.io/jc/docs/parsers/ntpq))
- `--passwd` enables the `/etc/passwd` file parser ([documentation](https://kellyjonbrazil.github.io/jc/docs/parsers/passwd)) - `--passwd` enables the `/etc/passwd` file parser ([documentation](https://kellyjonbrazil.github.io/jc/docs/parsers/passwd))
- `--ping` enables the `ping` and `ping6` command parser ([documentation](https://kellyjonbrazil.github.io/jc/docs/parsers/ping)) - `--ping` enables the `ping` and `ping6` command parser ([documentation](https://kellyjonbrazil.github.io/jc/docs/parsers/ping))

View File

@ -1,6 +1,6 @@
#!/bin/bash #!/bin/bash
# Generate docs.md # Generate docs.md
# requires pydoc-markdown 4.5.0 # requires pydoc-markdown 4.6.1
readme_config=$(cat <<'EOF' readme_config=$(cat <<'EOF'
{ {
"processors": [ "processors": [
@ -18,7 +18,7 @@ readme_config=$(cat <<'EOF'
"Class": 3, "Class": 3,
"Method": 3, "Method": 3,
"Function": 3, "Function": 3,
"Data": 3 "Variable": 3
} }
} }
} }
@ -43,7 +43,7 @@ toc_config=$(cat <<'EOF'
"Class": 3, "Class": 3,
"Method": 3, "Method": 3,
"Function": 3, "Function": 3,
"Data": 3 "Variable": 3
} }
} }
} }
@ -68,7 +68,7 @@ parser_config=$(cat <<'EOF'
"Class": 3, "Class": 3,
"Method": 3, "Method": 3,
"Function": 3, "Function": 3,
"Data": 3 "Variable": 3
} }
} }
} }

View File

@ -4,6 +4,8 @@
* [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)
* [standard\_parser\_mod\_list](#jc.lib.standard_parser_mod_list)
* [streaming\_parser\_mod\_list](#jc.lib.streaming_parser_mod_list)
* [parser\_info](#jc.lib.parser_info) * [parser\_info](#jc.lib.parser_info)
* [all\_parser\_info](#jc.lib.all_parser_info) * [all\_parser\_info](#jc.lib.all_parser_info)
* [get\_help](#jc.lib.get_help) * [get\_help](#jc.lib.get_help)
@ -12,7 +14,7 @@
# jc.lib # jc.lib
jc - JSON CLI output utility jc - JSON Convert
JC lib module JC lib module
<a id="jc.lib.parse"></a> <a id="jc.lib.parse"></a>
@ -20,7 +22,12 @@ JC lib module
### parse ### parse
```python ```python
def parse(parser_mod_name: str, data: Union[str, Iterable[str]], quiet: bool = False, raw: bool = False, ignore_exceptions: bool = None, **kwargs) -> Union[Dict, List[Dict], Iterator[Dict]] def parse(parser_mod_name: str,
data: Union[str, Iterable[str]],
quiet: bool = False,
raw: bool = False,
ignore_exceptions: bool = None,
**kwargs) -> Union[Dict, List[Dict], Iterator[Dict]]
``` ```
Parse the string data using the supplied parser module. Parse the string data using the supplied parser module.
@ -34,9 +41,7 @@ Example:
>>> jc.parse('date', 'Tue Jan 18 10:23:07 PST 2022') >>> jc.parse('date', 'Tue Jan 18 10:23:07 PST 2022')
{'year': 2022, 'month': 'Jan', 'month_num': 1, 'day'...} {'year': 2022, 'month': 'Jan', 'month_num': 1, 'day'...}
To get a list of available parser module names, use `parser_mod_list()` To get a list of available parser module names, use `parser_mod_list()`.
or `plugin_parser_mod_list()`. `plugin_parser_mod_list()` is a subset
of `parser_mod_list()`.
You can also use the lower-level parser modules directly: You can also use the lower-level parser modules directly:
@ -100,6 +105,29 @@ def plugin_parser_mod_list() -> List[str]
Returns a list of plugin parser module names. This function is a Returns a list of plugin parser module names. This function is a
subset of `parser_mod_list()`. subset of `parser_mod_list()`.
<a id="jc.lib.standard_parser_mod_list"></a>
### standard\_parser\_mod\_list
```python
def standard_parser_mod_list() -> List[str]
```
Returns a list of standard parser module names. This function is a
subset of `parser_mod_list()` and does not contain any streaming
parsers.
<a id="jc.lib.streaming_parser_mod_list"></a>
### streaming\_parser\_mod\_list
```python
def streaming_parser_mod_list() -> List[str]
```
Returns a list of streaming parser module names. This function is a
subset of `parser_mod_list()`.
<a id="jc.lib.parser_info"></a> <a id="jc.lib.parser_info"></a>
### parser\_info ### parser\_info

View File

@ -3,7 +3,7 @@
# jc.parsers.acpi # jc.parsers.acpi
jc - JSON CLI output utility `acpi` command output parser jc - JSON Convert `acpi` command output parser
Usage (cli): Usage (cli):

View File

@ -3,7 +3,7 @@
# jc.parsers.airport # jc.parsers.airport
jc - JSON CLI output utility `airport -I` command output parser jc - JSON Convert `airport -I` command output parser
The `airport` program can be found at `/System/Library/PrivateFrameworks/Apple80211.framework/Versions/Current/Resources/airport`. The `airport` program can be found at `/System/Library/PrivateFrameworks/Apple80211.framework/Versions/Current/Resources/airport`.

View File

@ -3,7 +3,7 @@
# jc.parsers.airport\_s # jc.parsers.airport\_s
jc - JSON CLI output utility `airport -s` command output parser jc - JSON Convert `airport -s` command output parser
The `airport` program can be found at `/System/Library/PrivateFrameworks/Apple80211.framework/Versions/Current/Resources/airport`. The `airport` program can be found at `/System/Library/PrivateFrameworks/Apple80211.framework/Versions/Current/Resources/airport`.

View File

@ -3,7 +3,7 @@
# jc.parsers.arp # jc.parsers.arp
jc - JSON CLI output utility `arp` command output parser jc - JSON Convert `arp` command output parser
Supports `arp` and `arp -a` output. Supports `arp` and `arp -a` output.

View File

@ -3,7 +3,7 @@
# jc.parsers.blkid # jc.parsers.blkid
jc - JSON CLI output utility `blkid` command output parser jc - JSON Convert `blkid` command output parser
Usage (cli): Usage (cli):

View File

@ -3,7 +3,7 @@
# jc.parsers.cksum # jc.parsers.cksum
jc - JSON CLI output utility `cksum` command output parser jc - JSON Convert `cksum` command output parser
This parser works with the following checksum calculation utilities: This parser works with the following checksum calculation utilities:
- `sum` - `sum`

View File

@ -3,7 +3,7 @@
# jc.parsers.crontab # jc.parsers.crontab
jc - JSON CLI output utility `crontab -l` command output and crontab jc - JSON Convert `crontab -l` command output and crontab
file parser file parser
Supports `crontab -l` command output and crontab files. Supports `crontab -l` command output and crontab files.

View File

@ -3,7 +3,7 @@
# jc.parsers.crontab\_u # jc.parsers.crontab\_u
jc - JSON CLI output utility `crontab -l` command output and crontab jc - JSON Convert `crontab -l` command output and crontab
file parser file parser
This version of the `crontab -l` parser supports output that contains user This version of the `crontab -l` parser supports output that contains user

View File

@ -3,7 +3,7 @@
# jc.parsers.csv # jc.parsers.csv
jc - JSON CLI output utility `csv` file parser jc - JSON Convert `csv` file parser
The `csv` parser will attempt to automatically detect the delimiter The `csv` parser will attempt to automatically detect the delimiter
character. If the delimiter cannot be detected it will default to comma. character. If the delimiter cannot be detected it will default to comma.

View File

@ -3,7 +3,7 @@
# jc.parsers.csv\_s # jc.parsers.csv\_s
jc - JSON CLI output utility `csv` file streaming parser jc - JSON Convert `csv` file streaming parser
> This streaming parser outputs JSON Lines > This streaming parser outputs JSON Lines

View File

@ -3,7 +3,7 @@
# jc.parsers.date # jc.parsers.date
jc - JSON CLI output utility `date` command output parser jc - JSON Convert `date` command output parser
The `epoch` calculated timestamp field is naive. (i.e. based on the local The `epoch` calculated timestamp field is naive. (i.e. based on the local
time of the system the parser is run on) time of the system the parser is run on)

View File

@ -3,7 +3,7 @@
# jc.parsers.df # jc.parsers.df
jc - JSON CLI output utility `df` command output parser jc - JSON Convert `df` command output parser
Usage (cli): Usage (cli):

View File

@ -3,7 +3,7 @@
# jc.parsers.dig # jc.parsers.dig
jc - JSON CLI output utility `dig` command output parser jc - JSON Convert `dig` command output parser
Options supported: Options supported:
- `+noall +answer` options are supported in cases where only the answer - `+noall +answer` options are supported in cases where only the answer

View File

@ -3,7 +3,7 @@
# jc.parsers.dir # jc.parsers.dir
jc - JSON CLI output utility `dir` command output parser jc - JSON Convert `dir` command output parser
Options supported: Options supported:
- `/T timefield` - `/T timefield`

View File

@ -3,7 +3,7 @@
# jc.parsers.dmidecode # jc.parsers.dmidecode
jc - JSON CLI output utility `dmidecode` command output parser jc - JSON Convert `dmidecode` command output parser
Usage (cli): Usage (cli):

View File

@ -3,7 +3,7 @@
# jc.parsers.dpkg\_l # jc.parsers.dpkg\_l
jc - JSON CLI output utility `dpkg -l` command output parser jc - JSON Convert `dpkg -l` command output parser
Set the `COLUMNS` environment variable to a large value to avoid field Set the `COLUMNS` environment variable to a large value to avoid field
truncation. For example: truncation. For example:

View File

@ -3,7 +3,7 @@
# jc.parsers.du # jc.parsers.du
jc - JSON CLI output utility `du` command output parser jc - JSON Convert `du` command output parser
Usage (cli): Usage (cli):

View File

@ -3,7 +3,7 @@
# jc.parsers.env # jc.parsers.env
jc - JSON CLI output utility `env` and `printenv` command output parser jc - JSON Convert `env` and `printenv` command output parser
This parser will output a list of dictionaries each containing `name` and This parser will output a list of dictionaries each containing `name` and
`value` keys. If you would like a simple dictionary output, then use the `value` keys. If you would like a simple dictionary output, then use the

View File

@ -3,7 +3,7 @@
# jc.parsers.file # jc.parsers.file
jc - JSON CLI output utility `file` command output parser jc - JSON Convert `file` command output parser
Usage (cli): Usage (cli):

View File

@ -3,7 +3,7 @@
# jc.parsers.finger # jc.parsers.finger
jc - JSON CLI output utility `finger` command output parser jc - JSON Convert `finger` command output parser
Supports `-s` output option. Does not support the `-l` detail option. Supports `-s` output option. Does not support the `-l` detail option.

View File

@ -3,7 +3,7 @@
# jc.parsers.free # jc.parsers.free
jc - JSON CLI output utility `free` command output parser jc - JSON Convert `free` command output parser
Usage (cli): Usage (cli):

View File

@ -3,7 +3,7 @@
# jc.parsers.fstab # jc.parsers.fstab
jc - JSON CLI output utility `fstab` file parser jc - JSON Convert `fstab` file parser
Usage (cli): Usage (cli):

View File

@ -3,7 +3,7 @@
# jc.parsers.group # jc.parsers.group
jc - JSON CLI output utility `/etc/group` file parser jc - JSON Convert `/etc/group` file parser
Usage (cli): Usage (cli):

View File

@ -3,7 +3,7 @@
# jc.parsers.gshadow # jc.parsers.gshadow
jc - JSON CLI output utility `/etc/gshadow` file parser jc - JSON Convert `/etc/gshadow` file parser
Usage (cli): Usage (cli):

View File

@ -3,7 +3,7 @@
# jc.parsers.hash # jc.parsers.hash
jc - JSON CLI output utility `hash` command output parser jc - JSON Convert `hash` command output parser
Usage (cli): Usage (cli):

View File

@ -3,7 +3,7 @@
# jc.parsers.hashsum # jc.parsers.hashsum
jc - JSON CLI output utility `hash sum` command output parser jc - JSON Convert `hash sum` command output parser
This parser works with the following hash calculation utilities: This parser works with the following hash calculation utilities:
- `md5` - `md5`

View File

@ -3,7 +3,7 @@
# jc.parsers.hciconfig # jc.parsers.hciconfig
jc - JSON CLI output utility `hciconfig` command output parser jc - JSON Convert `hciconfig` command output parser
Usage (cli): Usage (cli):

View File

@ -3,7 +3,7 @@
# jc.parsers.history # jc.parsers.history
jc - JSON CLI output utility `history` command output parser jc - JSON Convert `history` command output parser
This parser will output a list of dictionaries each containing `line` and This parser will output a list of dictionaries each containing `line` and
`command` keys. If you would like a simple dictionary output, then use the `command` keys. If you would like a simple dictionary output, then use the

View File

@ -3,7 +3,7 @@
# jc.parsers.hosts # jc.parsers.hosts
jc - JSON CLI output utility `/etc/hosts` file parser jc - JSON Convert `/etc/hosts` file parser
Usage (cli): Usage (cli):

View File

@ -3,7 +3,7 @@
# jc.parsers.id # jc.parsers.id
jc - JSON CLI output utility `id` command output parser jc - JSON Convert `id` command output parser
Usage (cli): Usage (cli):

View File

@ -3,7 +3,7 @@
# jc.parsers.ifconfig # jc.parsers.ifconfig
jc - JSON CLI output utility `ifconfig` command output parser jc - JSON Convert `ifconfig` command output parser
Note: No `ifconfig` options are supported. Note: No `ifconfig` options are supported.

View File

@ -3,7 +3,7 @@
# jc.parsers.ini # jc.parsers.ini
jc - JSON CLI output utility `INI` file parser jc - JSON Convert `INI` file parser
Parses standard `INI` files and files containing simple key/value pairs. Parses standard `INI` files and files containing simple key/value pairs.
Delimiter can be `=` or `:`. Missing values are supported. Comment prefix Delimiter can be `=` or `:`. Missing values are supported. Comment prefix

View File

@ -3,7 +3,7 @@
# jc.parsers.iostat # jc.parsers.iostat
jc - JSON CLI output utility `iostat` command output parser jc - JSON Convert `iostat` command output parser
Note: `iostat` version 11 and higher include a JSON output option Note: `iostat` version 11 and higher include a JSON output option

View File

@ -3,7 +3,7 @@
# jc.parsers.iostat\_s # jc.parsers.iostat\_s
jc - JSON CLI output utility `iostat` command output streaming parser jc - JSON Convert `iostat` command output streaming parser
> This streaming parser outputs JSON Lines > This streaming parser outputs JSON Lines

View File

@ -3,7 +3,7 @@
# jc.parsers.iptables # jc.parsers.iptables
jc - JSON CLI output utility `iptables` command output parser jc - JSON Convert `iptables` command output parser
Supports `-vLn` and `--line-numbers` for all tables. Supports `-vLn` and `--line-numbers` for all tables.

View File

@ -3,7 +3,7 @@
# jc.parsers.iw\_scan # jc.parsers.iw\_scan
jc - JSON CLI output utility `iw dev <device> scan` command output parser jc - JSON Convert `iw dev <device> scan` command output parser
This parser is considered beta quality. Not all fields are parsed and there This parser is considered beta quality. Not all fields are parsed and there
are not enough samples to test. are not enough samples to test.

View File

@ -3,7 +3,7 @@
# jc.parsers.jar\_manifest # jc.parsers.jar\_manifest
jc - JSON CLI output utility `MANIFEST.MF` file parser jc - JSON Convert `MANIFEST.MF` file parser
Usage (cli): Usage (cli):

View File

@ -3,7 +3,7 @@
# jc.parsers.jobs # jc.parsers.jobs
jc - JSON CLI output utility `jobs` command output parser jc - JSON Convert `jobs` command output parser
Also supports the `-l` option. Also supports the `-l` option.

View File

@ -3,7 +3,7 @@
# jc.parsers.kv # jc.parsers.kv
jc - JSON CLI output utility `Key/Value` file parser jc - JSON Convert `Key/Value` file parser
Supports files containing simple key/value pairs. Delimiter can be `=` or Supports files containing simple key/value pairs. Delimiter can be `=` or
`:`. Missing values are supported. Comment prefix can be `#` or `;`. `:`. Missing values are supported. Comment prefix can be `#` or `;`.

View File

@ -3,7 +3,7 @@
# jc.parsers.last # jc.parsers.last
jc - JSON CLI output utility `last` and `lastb` command output parser jc - JSON Convert `last` and `lastb` command output parser
Supports `-w` and `-F` options. Supports `-w` and `-F` options.

View File

@ -3,7 +3,7 @@
# jc.parsers.ls # jc.parsers.ls
jc - JSON CLI output utility `ls` and `vdir` command output parser jc - JSON Convert `ls` and `vdir` command output parser
Options supported: Options supported:
- `lbaR1` - `lbaR1`

View File

@ -3,7 +3,7 @@
# jc.parsers.ls\_s # jc.parsers.ls\_s
jc - JSON CLI output utility `ls` and `vdir` command output streaming jc - JSON Convert `ls` and `vdir` command output streaming
parser parser
> This streaming parser outputs JSON Lines > This streaming parser outputs JSON Lines

View File

@ -3,7 +3,7 @@
# jc.parsers.lsblk # jc.parsers.lsblk
jc - JSON CLI output utility `lsblk` command output parser jc - JSON Convert `lsblk` command output parser
Usage (cli): Usage (cli):

View File

@ -3,7 +3,7 @@
# jc.parsers.lsmod # jc.parsers.lsmod
jc - JSON CLI output utility `lsmod` command output parser jc - JSON Convert `lsmod` command output parser
Usage (cli): Usage (cli):

View File

@ -3,7 +3,7 @@
# jc.parsers.lsof # jc.parsers.lsof
jc - JSON CLI output utility `lsof` command output parser jc - JSON Convert `lsof` command output parser
Usage (cli): Usage (cli):

View File

@ -3,7 +3,7 @@
# jc.parsers.lsusb # jc.parsers.lsusb
jc - JSON CLI output utility `lsusb` command output parser jc - JSON Convert `lsusb` command output parser
Supports the `-v` option or no options. Supports the `-v` option or no options.

View File

@ -3,7 +3,7 @@
# jc.parsers.mount # jc.parsers.mount
jc - JSON CLI output utility `mount` command output parser jc - JSON Convert `mount` command output parser
Usage (cli): Usage (cli):

View File

@ -3,7 +3,7 @@
# jc.parsers.netstat # jc.parsers.netstat
jc - JSON CLI output utility `netstat` command output parser jc - JSON Convert `netstat` command output parser
Caveats: Caveats:
- Use of multiple `l` options is not supported on OSX (e.g. `netstat -rlll`) - Use of multiple `l` options is not supported on OSX (e.g. `netstat -rlll`)

176
docs/parsers/nmcli.md Normal file
View File

@ -0,0 +1,176 @@
[Home](https://kellyjonbrazil.github.io/jc/)
<a id="jc.parsers.nmcli"></a>
# jc.parsers.nmcli
jc - JSON Convert `nmcli` command output parser
Supports the following `nmcli` subcommands:
- `nmcli general`
- `nmcli general permissions`
- `nmcli connection`
- `nmcli connection show <device_name>`
- `nmcli device`
- `nmcli device show`
- `nmcli device show <device_name>`
Usage (cli):
$ nmcli device show lo | jc --nmcli
or
$ jc nmcli device show lo
Usage (module):
import jc
result = jc.parse('nmcli', nmcli_command_output)
or
import jc.parsers.nmcli
result = jc.parsers.nmcli.parse(nmcli_command_output)
Schema:
Because there are so many options, the schema is not strictly defined.
Integer and Float value conversions are attempted and the original
values are kept if they fail. If you don't want automatic conversion,
then use the -r or raw=True option to disable it.
The structure is flat, for the most part, but there are a couple of
"well-known" keys that are further parsed into objects for convenience.
These are documented below.
[
{
"<key>": string/integer/float, [0]
"dhcp4_option_x": {
"name": string,
"value": string/integer/float,
},
"dhcp6_option_x": {
"name": string,
"value": string/integer/float,
},
"ip4_route_x": {
"dst": string,
"nh": string,
"mt": integer
},
"ip6_route_x": {
"dst": string,
"nh": string,
"mt": integer,
"table": integer
}
}
]
[0] all values of `---` are converted to null
Examples:
$ nmcli connection show ens33 | jc --nmcli -p
[
{
"connection_id": "ens33",
"connection_uuid": "d92ece08-9e02-47d5-b2d2-92c80e155744",
"connection_stable_id": null,
"connection_type": "802-3-ethernet",
"connection_interface_name": "ens33",
"connection_autoconnect": "yes",
...
"ip4_address_1": "192.168.71.180/24",
"ip4_gateway": "192.168.71.2",
"ip4_route_1": {
"dst": "0.0.0.0/0",
"nh": "192.168.71.2",
"mt": 100
},
"ip4_route_2": {
"dst": "192.168.71.0/24",
"nh": "0.0.0.0",
"mt": 100
},
"ip4_dns_1": "192.168.71.2",
"ip4_domain_1": "localdomain",
"dhcp4_option_1": {
"name": "broadcast_address",
"value": "192.168.71.255"
},
...
"ip6_address_1": "fe80::c1cb:715d:bc3e:b8a0/64",
"ip6_gateway": null,
"ip6_route_1": {
"dst": "fe80::/64",
"nh": "::",
"mt": 100
}
}
]
$ nmcli connection show ens33 | jc --nmcli -p -r
[
{
"connection_id": "ens33",
"connection_uuid": "d92ece08-9e02-47d5-b2d2-92c80e155744",
"connection_stable_id": null,
"connection_type": "802-3-ethernet",
"connection_interface_name": "ens33",
"connection_autoconnect": "yes",
...
"ip4_address_1": "192.168.71.180/24",
"ip4_gateway": "192.168.71.2",
"ip4_route_1": {
"dst": "0.0.0.0/0",
"nh": "192.168.71.2",
"mt": "100"
},
"ip4_route_2": {
"dst": "192.168.71.0/24",
"nh": "0.0.0.0",
"mt": "100"
},
"ip4_dns_1": "192.168.71.2",
"ip4_domain_1": "localdomain",
"dhcp4_option_1": {
"name": "broadcast_address",
"value": "192.168.71.255"
},
...
"ip6_address_1": "fe80::c1cb:715d:bc3e:b8a0/64",
"ip6_gateway": null,
"ip6_route_1": {
"dst": "fe80::/64",
"nh": "::",
"mt": "100"
}
}
]
<a id="jc.parsers.nmcli.parse"></a>
### parse
```python
def parse(data: str, raw: bool = False, quiet: bool = False) -> List[Dict]
```
Main text parsing function
Parameters:
data: (string) text data to parse
raw: (boolean) unprocessed output if True
quiet: (boolean) suppress warning messages if True
Returns:
List of Dictionaries. Raw or processed structured data.
### Parser Information
Compatibility: linux
Version 1.0 by Kelly Brazil (kellyjonbrazil@gmail.com)

View File

@ -3,7 +3,7 @@
# jc.parsers.ntpq # jc.parsers.ntpq
jc - JSON CLI output utility `ntpq -p` command output parser jc - JSON Convert `ntpq -p` command output parser
Usage (cli): Usage (cli):

View File

@ -3,7 +3,7 @@
# jc.parsers.passwd # jc.parsers.passwd
jc - JSON CLI output utility `/etc/passwd` file Parser jc - JSON Convert `/etc/passwd` file Parser
Usage (cli): Usage (cli):

View File

@ -3,7 +3,7 @@
# jc.parsers.ping # jc.parsers.ping
jc - JSON CLI output utility `ping` command output parser jc - JSON Convert `ping` command output parser
Supports `ping` and `ping6` output. Supports `ping` and `ping6` output.

View File

@ -3,7 +3,7 @@
# jc.parsers.ping\_s # jc.parsers.ping\_s
jc - JSON CLI output utility `ping` command output streaming parser jc - JSON Convert `ping` command output streaming parser
> This streaming parser outputs JSON Lines > This streaming parser outputs JSON Lines

View File

@ -3,7 +3,7 @@
# jc.parsers.pip\_list # jc.parsers.pip\_list
jc - JSON CLI output utility `pip-list` command output parser jc - JSON Convert `pip-list` command output parser
Usage (cli): Usage (cli):

View File

@ -3,7 +3,7 @@
# jc.parsers.pip\_show # jc.parsers.pip\_show
jc - JSON CLI output utility `pip-show` command output parser jc - JSON Convert `pip-show` command output parser
Usage (cli): Usage (cli):

View File

@ -3,7 +3,7 @@
# jc.parsers.ps # jc.parsers.ps
jc - JSON CLI output utility `ps` command output parser jc - JSON Convert `ps` command output parser
`ps` options supported: `ps` options supported:
- `ef` - `ef`

View File

@ -3,7 +3,7 @@
# jc.parsers.route # jc.parsers.route
jc - JSON CLI output utility `route` command output parser jc - JSON Convert `route` command output parser
Usage (cli): Usage (cli):

View File

@ -3,7 +3,7 @@
# jc.parsers.rpm\_qi # jc.parsers.rpm\_qi
jc - JSON CLI output utility `rpm -qi` command output parser jc - JSON Convert `rpm -qi` command output parser
Works with `rpm -qi [package]` or `rpm -qia`. Works with `rpm -qi [package]` or `rpm -qia`.

View File

@ -3,7 +3,7 @@
# jc.parsers.rsync # jc.parsers.rsync
jc - JSON CLI output utility `rsync` command output parser jc - JSON Convert `rsync` command output parser
Supports the `-i` or `--itemize-changes` options with all levels of Supports the `-i` or `--itemize-changes` options with all levels of
verbosity. This parser will process the STDOUT output or a log file verbosity. This parser will process the STDOUT output or a log file

View File

@ -3,7 +3,7 @@
# jc.parsers.rsync\_s # jc.parsers.rsync\_s
jc - JSON CLI output utility `rsync` command output streaming parser jc - JSON Convert `rsync` command output streaming parser
> This streaming parser outputs JSON Lines > This streaming parser outputs JSON Lines
@ -99,7 +99,10 @@ Examples:
```python ```python
@add_jc_meta @add_jc_meta
def parse(data: Iterable[str], raw: bool = False, quiet: bool = False, ignore_exceptions: bool = False) -> Union[Iterable[Dict], tuple] def parse(data: Iterable[str],
raw: bool = False,
quiet: bool = False,
ignore_exceptions: bool = False) -> Union[Iterable[Dict], tuple]
``` ```
Main text parsing generator function. Returns an iterator object. Main text parsing generator function. Returns an iterator object.

View File

@ -3,7 +3,7 @@
# jc.parsers.sfdisk # jc.parsers.sfdisk
jc - JSON CLI output utility `sfdisk` command output parser jc - JSON Convert `sfdisk` command output parser
Supports the following `sfdisk` options: Supports the following `sfdisk` options:
- `-l` - `-l`

View File

@ -3,7 +3,7 @@
# jc.parsers.shadow # jc.parsers.shadow
jc - JSON CLI output utility `/etc/shadow` file parser jc - JSON Convert `/etc/shadow` file parser
Usage (cli): Usage (cli):

View File

@ -3,7 +3,7 @@
# jc.parsers.ss # jc.parsers.ss
jc - JSON CLI output utility `ss` command output parser jc - JSON Convert `ss` command output parser
Extended information options like -e and -p are not supported and may cause Extended information options like -e and -p are not supported and may cause
parsing irregularities. parsing irregularities.

View File

@ -3,7 +3,7 @@
# jc.parsers.stat # jc.parsers.stat
jc - JSON CLI output utility `stat` command output parser jc - JSON Convert `stat` command output parser
The `xxx_epoch` calculated timestamp fields are naive. (i.e. based on the The `xxx_epoch` calculated timestamp fields are naive. (i.e. based on the
local time of the system the parser is run on) local time of the system the parser is run on)

View File

@ -3,7 +3,7 @@
# jc.parsers.stat\_s # jc.parsers.stat\_s
jc - JSON CLI output utility `stat` command output streaming parser jc - JSON Convert `stat` command output streaming parser
> This streaming parser outputs JSON Lines > This streaming parser outputs JSON Lines

View File

@ -3,7 +3,7 @@
# jc.parsers.sysctl # jc.parsers.sysctl
jc - JSON CLI output utility `sysctl -a` command output parser jc - JSON Convert `sysctl -a` command output parser
Note: Since `sysctl` output is not easily parsable only a very simple Note: Since `sysctl` output is not easily parsable only a very simple
key/value object will be output. An attempt is made to convert obvious key/value object will be output. An attempt is made to convert obvious

View File

@ -3,7 +3,7 @@
# jc.parsers.systemctl # jc.parsers.systemctl
jc - JSON CLI output utility `systemctl` command output parser jc - JSON Convert `systemctl` command output parser
Usage (cli): Usage (cli):

View File

@ -3,7 +3,7 @@
# jc.parsers.systemctl\_lj # jc.parsers.systemctl\_lj
jc - JSON CLI output utility `systemctl list-jobs` command output parser jc - JSON Convert `systemctl list-jobs` command output parser
Usage (cli): Usage (cli):

View File

@ -3,7 +3,7 @@
# jc.parsers.systemctl\_ls # jc.parsers.systemctl\_ls
jc - JSON CLI output utility `systemctl list-sockets` command output jc - JSON Convert `systemctl list-sockets` command output
parser parser
Usage (cli): Usage (cli):

View File

@ -3,7 +3,7 @@
# jc.parsers.systemctl\_luf # jc.parsers.systemctl\_luf
jc - JSON CLI output utility `systemctl list-unit-files` command output jc - JSON Convert `systemctl list-unit-files` command output
parser parser
Usage (cli): Usage (cli):

View File

@ -3,7 +3,7 @@
# jc.parsers.systeminfo # jc.parsers.systeminfo
jc - JSON CLI output utility `systeminfo` command output parser jc - JSON Convert `systeminfo` command output parser
Blank or missing elements are set to `null`. Blank or missing elements are set to `null`.

View File

@ -3,7 +3,7 @@
# jc.parsers.time # jc.parsers.time
jc - JSON CLI output utility `/usr/bin/time` command output parser jc - JSON Convert `/usr/bin/time` command output parser
Output from `/usr/bin/time` is sent to `STDERR`, so the `-o` option can be Output from `/usr/bin/time` is sent to `STDERR`, so the `-o` option can be
used to redirect the output to a file that can be read by `jc`. used to redirect the output to a file that can be read by `jc`.

View File

@ -3,7 +3,7 @@
# jc.parsers.timedatectl # jc.parsers.timedatectl
jc - JSON CLI output utility `timedatectl` command output parser jc - JSON Convert `timedatectl` command output parser
The `epoch_utc` calculated timestamp field is timezone-aware and is only The `epoch_utc` calculated timestamp field is timezone-aware and is only
available if the `universal_time` field is available. available if the `universal_time` field is available.

View File

@ -3,7 +3,7 @@
# jc.parsers.tracepath # jc.parsers.tracepath
jc - JSON CLI output utility `tracepath` command output parser jc - JSON Convert `tracepath` command output parser
Supports `tracepath` and `tracepath6` output. Supports `tracepath` and `tracepath6` output.

View File

@ -3,7 +3,7 @@
# jc.parsers.traceroute # jc.parsers.traceroute
jc - JSON CLI output utility `traceroute` command output parser jc - JSON Convert `traceroute` command output parser
Supports `traceroute` and `traceroute6` output. Supports `traceroute` and `traceroute6` output.

View File

@ -3,7 +3,7 @@
# jc.parsers.ufw # jc.parsers.ufw
jc - JSON CLI output utility `ufw status` command output parser jc - JSON Convert `ufw status` command output parser
Usage (cli): Usage (cli):

View File

@ -3,7 +3,7 @@
# jc.parsers.ufw\_appinfo # jc.parsers.ufw\_appinfo
jc - JSON CLI output utility `ufw app info [application]` command jc - JSON Convert `ufw app info [application]` command
output parser output parser
Supports individual apps via `ufw app info [application]` and all apps list Supports individual apps via `ufw app info [application]` and all apps list

View File

@ -3,7 +3,7 @@
# jc.parsers.uname # jc.parsers.uname
jc - JSON CLI output utility `uname -a` command output parser jc - JSON Convert `uname -a` command output parser
Note: Must use `uname -a` Note: Must use `uname -a`

View File

@ -8,7 +8,7 @@
# jc.parsers.universal # jc.parsers.universal
jc - JSON CLI output utility universal Parsers jc - JSON Convert universal parsers
<a id="jc.parsers.universal.simple_table_parse"></a> <a id="jc.parsers.universal.simple_table_parse"></a>

View File

@ -3,7 +3,7 @@
# jc.parsers.upower # jc.parsers.upower
jc - JSON CLI output utility `upower` command output parser jc - JSON Convert `upower` command output parser
The `updated_epoch` calculated timestamp field is naive. (i.e. based on the The `updated_epoch` calculated timestamp field is naive. (i.e. based on the
local time of the system the parser is run on) local time of the system the parser is run on)

View File

@ -3,7 +3,7 @@
# jc.parsers.uptime # jc.parsers.uptime
jc - JSON CLI output utility `uptime` command output parser jc - JSON Convert `uptime` command output parser
Usage (cli): Usage (cli):

View File

@ -3,7 +3,7 @@
# jc.parsers.vmstat # jc.parsers.vmstat
jc - JSON CLI output utility `vmstat` command output parser jc - JSON Convert `vmstat` command output parser
Options supported: `-a`, `-w`, `-d`, `-t` Options supported: `-a`, `-w`, `-d`, `-t`

View File

@ -3,7 +3,7 @@
# jc.parsers.vmstat\_s # jc.parsers.vmstat\_s
jc - JSON CLI output utility `vmstat` command output streaming parser jc - JSON Convert `vmstat` command output streaming parser
> This streaming parser outputs JSON Lines > This streaming parser outputs JSON Lines

View File

@ -3,7 +3,7 @@
# jc.parsers.w # jc.parsers.w
jc - JSON CLI output utility `w` command output parser jc - JSON Convert `w` command output parser
Usage (cli): Usage (cli):

View File

@ -3,7 +3,7 @@
# jc.parsers.wc # jc.parsers.wc
jc - JSON CLI output utility `wc` command output parser jc - JSON Convert `wc` command output parser
Usage (cli): Usage (cli):

View File

@ -3,7 +3,7 @@
# jc.parsers.who # jc.parsers.who
jc - JSON CLI output utility `who` command output parser jc - JSON Convert `who` command output parser
Accepts any of the following who options (or no options): `-aTH` Accepts any of the following who options (or no options): `-aTH`

View File

@ -3,7 +3,7 @@
# jc.parsers.xml # jc.parsers.xml
jc - JSON CLI output utility `XML` file parser jc - JSON Convert `XML` file parser
Usage (cli): Usage (cli):

View File

@ -3,7 +3,7 @@
# jc.parsers.xrandr # jc.parsers.xrandr
jc - JSON CLI output utility `xrandr` command output parser jc - JSON Convert `xrandr` command output parser
Usage (cli): Usage (cli):

View File

@ -3,7 +3,7 @@
# jc.parsers.yaml # jc.parsers.yaml
jc - JSON CLI output utility `YAML` file parser jc - JSON Convert `YAML` file parser
Usage (cli): Usage (cli):

View File

@ -3,7 +3,7 @@
# jc.parsers.zipinfo # jc.parsers.zipinfo
jc - JSON CLI output utility `zipinfo` command output parser jc - JSON Convert `zipinfo` command output parser
Options supported: Options supported:
- none - none
@ -107,4 +107,4 @@ Returns:
### Parser Information ### Parser Information
Compatibility: linux, darwin Compatibility: linux, darwin
Version 0.01 by Matt J (https://github.com/listuser) Version 1.0 by Matt J (https://github.com/listuser)

View File

@ -2,7 +2,7 @@
# jc # jc
JC - JSON CLI output utility JC - JSON Convert
* kellyjonbrazil@gmail.com * kellyjonbrazil@gmail.com
@ -26,9 +26,9 @@ https://github.com/kellyjonbrazil/jc/tree/master/docs
### Specific Version ### Specific Version
Replace `{{full_version_number}}` - e.g. `1.17.7`: Replace `<full_version_number>` - e.g. `1.17.7`:
`https://github.com/kellyjonbrazil/jc/tree/v{{full_version_number}}/docs` `https://github.com/kellyjonbrazil/jc/tree/v<full_version_number>/docs`
Specific versions can also be selected by tag in the branch dropdown menu. Specific versions can also be selected by tag in the branch dropdown menu.
@ -57,29 +57,65 @@ modules directly:
## Available Functions ## Available Functions
Use `help(jc.lib)` for details: Use `help(jc.lib)` for details.
parse(parser_module_name: str, data: str | Iterable) ### parse
-> dict | list[dict] | Iterable[dict]
High-level API to easily access the parser. This API will find both parse(
built-in parsers and local plugin parsers. parser_module_name: str,
data: str | 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) -> dict parser_info(parser_module_name: str) -> dict
Get the metadata for a particular parser.
Get the metadata for a particular parser.
### all_parser_info
all_parser_info() -> list[dict] all_parser_info() -> list[dict]
Get the metadata for all parsers.
Get the metadata for all parsers.
### get_help
get_help(parser_module_name: str) -> None get_help(parser_module_name: str) -> None
Convenience function to display the help screen for a parser using
its module name. Convenience function to display the help screen for a parser using
its module name.
### parser_mod_list
parser_mod_list() -> list parser_mod_list() -> list
Get a list of all available parser module names to be used in
parse(), parser_info(), and get_help(). 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 plugin_parser_mod_list() -> list
Get a list of plugin parser module names to be used in
parse(), parser_info(), and get_help(). This list is a subset of Get a list of plugin parser module names to be used in
parser_mod_list(). `parse()`, `parser_info()`, and `get_help()`. This list is a subset of
`parser_mod_list()`.
### standard_parser_mod_list
standard_parser_mod_list() -> list
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
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()`.

View File

@ -12,7 +12,7 @@
# jc.streaming # jc.streaming
jc - JSON CLI output utility streaming utils jc - JSON Convert streaming utils
<a id="jc.streaming.streaming_input_type_check"></a> <a id="jc.streaming.streaming_input_type_check"></a>
@ -105,7 +105,8 @@ In all cases above:
### raise\_or\_yield ### raise\_or\_yield
```python ```python
def raise_or_yield(ignore_exceptions: bool, e: BaseException, line: str) -> tuple def raise_or_yield(ignore_exceptions: bool, e: BaseException,
line: str) -> tuple
``` ```
Return the exception object and line string if ignore_exceptions is Return the exception object and line string if ignore_exceptions is

View File

@ -16,7 +16,7 @@
# jc.utils # jc.utils
jc - JSON CLI output utility utils jc - JSON Convert utils
<a id="jc.utils.warning_message"></a> <a id="jc.utils.warning_message"></a>
@ -63,7 +63,9 @@ Returns:
### compatibility ### compatibility
```python ```python
def compatibility(mod_name: str, compatible: List, quiet: bool = False) -> None def compatibility(mod_name: str,
compatible: List,
quiet: bool = False) -> None
``` ```
Checks for the parser's compatibility with the running OS Checks for the parser's compatibility with the running OS
@ -184,7 +186,8 @@ class timestamp()
### \_\_init\_\_ ### \_\_init\_\_
```python ```python
def __init__(datetime_string: str, format_hint: Union[List, Tuple, None] = None) -> None def __init__(datetime_string: str,
format_hint: Union[List, Tuple, None] = None) -> None
``` ```
Input a datetime text string of several formats and convert to a Input a datetime text string of several formats and convert to a

View File

@ -1,4 +1,4 @@
"""JC - JSON CLI output utility """JC - JSON Convert
* kellyjonbrazil@gmail.com * kellyjonbrazil@gmail.com
@ -22,9 +22,9 @@ https://github.com/kellyjonbrazil/jc/tree/master/docs
### Specific Version ### Specific Version
Replace `{{full_version_number}}` - e.g. `1.17.7`: Replace `<full_version_number>` - e.g. `1.17.7`:
`https://github.com/kellyjonbrazil/jc/tree/v{{full_version_number}}/docs` `https://github.com/kellyjonbrazil/jc/tree/v<full_version_number>/docs`
Specific versions can also be selected by tag in the branch dropdown menu. Specific versions can also be selected by tag in the branch dropdown menu.
@ -53,31 +53,68 @@ modules directly:
## Available Functions ## Available Functions
Use `help(jc.lib)` for details: Use `help(jc.lib)` for details.
parse(parser_module_name: str, data: str | Iterable) ### parse
-> dict | list[dict] | Iterable[dict]
High-level API to easily access the parser. This API will find both parse(
built-in parsers and local plugin parsers. parser_module_name: str,
data: str | 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) -> dict parser_info(parser_module_name: str) -> dict
Get the metadata for a particular parser.
Get the metadata for a particular parser.
### all_parser_info
all_parser_info() -> list[dict] all_parser_info() -> list[dict]
Get the metadata for all parsers.
Get the metadata for all parsers.
### get_help
get_help(parser_module_name: str) -> None get_help(parser_module_name: str) -> None
Convenience function to display the help screen for a parser using
its module name. Convenience function to display the help screen for a parser using
its module name.
### parser_mod_list
parser_mod_list() -> list parser_mod_list() -> list
Get a list of all available parser module names to be used in
parse(), parser_info(), and get_help(). 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 plugin_parser_mod_list() -> list
Get a list of plugin parser module names to be used in
parse(), parser_info(), and get_help(). This list is a subset of Get a list of plugin parser module names to be used in
parser_mod_list(). `parse()`, `parser_info()`, and `get_help()`. This list is a subset of
`parser_mod_list()`.
### standard_parser_mod_list
standard_parser_mod_list() -> list
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
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()`.
""" """
from .lib import (__version__, parse, parser_mod_list, plugin_parser_mod_list, from .lib import (__version__, parse, parser_mod_list, plugin_parser_mod_list,
standard_parser_mod_list, streaming_parser_mod_list,
parser_info, all_parser_info, get_help) parser_info, all_parser_info, get_help)

View File

@ -1,4 +1,4 @@
"""jc - JSON CLI output utility """jc - JSON Convert
JC cli module JC cli module
""" """
@ -11,7 +11,7 @@ import shlex
import subprocess import subprocess
import json import json
from .lib import (__version__, all_parser_info, parsers, from .lib import (__version__, all_parser_info, parsers,
_parser_argument, _get_parser) _parser_argument, _get_parser, _parser_is_streaming)
from . import utils from . import utils
from . import tracebackplus from . import tracebackplus
from .exceptions import LibraryNotInstalled, ParseError from .exceptions import LibraryNotInstalled, ParseError
@ -34,7 +34,7 @@ JC_ERROR_EXIT = 100
class info(): class info():
version = __version__ version = __version__
description = 'JSON CLI output utility' description = 'JSON Convert'
author = 'Kelly Brazil' author = 'Kelly Brazil'
author_email = 'kellyjonbrazil@gmail.com' author_email = 'kellyjonbrazil@gmail.com'
website = 'https://github.com/kellyjonbrazil/jc' website = 'https://github.com/kellyjonbrazil/jc'
@ -502,7 +502,7 @@ def main():
# differentiate between regular and streaming parsers # differentiate between regular and streaming parsers
# streaming # streaming
if getattr(parser.info, 'streaming', None): if _parser_is_streaming(parser):
result = parser.parse(sys.stdin, result = parser.parse(sys.stdin,
raw=raw, raw=raw,
quiet=quiet, quiet=quiet,
@ -539,7 +539,7 @@ def main():
utils.error_message([ utils.error_message([
f'Parser issue with {parser_name}:', f'{e.__class__.__name__}: {e}', f'Parser issue with {parser_name}:', f'{e.__class__.__name__}: {e}',
'If this is the correct parser, try setting the locale to C (LANG=C).', 'If this is the correct parser, try setting the locale to C (LANG=C).',
'For details use the -d or -dd option. Use "jc -h" for help.' f'For details use the -d or -dd option. Use "jc -h --{parser_name}" for help.'
]) ])
sys.exit(combined_exit_code(magic_exit_code, JC_ERROR_EXIT)) sys.exit(combined_exit_code(magic_exit_code, JC_ERROR_EXIT))
@ -563,7 +563,7 @@ def main():
f'{parser_name} parser could not parse the input data.', f'{parser_name} parser could not parse the input data.',
f'{streaming_msg}', f'{streaming_msg}',
'If this is the correct parser, try setting the locale to C (LANG=C).', 'If this is the correct parser, try setting the locale to C (LANG=C).',
'For details use the -d or -dd option. Use "jc -h" for help.' f'For details use the -d or -dd option. Use "jc -h --{parser_name}" for help.'
]) ])
sys.exit(combined_exit_code(magic_exit_code, JC_ERROR_EXIT)) sys.exit(combined_exit_code(magic_exit_code, JC_ERROR_EXIT))

Some files were not shown because too many files have changed in this diff Show More