I’m excited to announce the release of jc
version 1.19.0 available on github and pypi. jc
now supports 100 standard and streaming parsers. Thank you to the Open Source community for making this possible!
jc
can be installed via pip
or through several official OS package repositories, including Debian, Ubuntu, Fedora, openSUSE, Arch Linux, NixOS Linux, Guix System Linux, FreeBSD, and macOS. For more information on how to get jc
, see the project README.
To upgrade with pip
:
$ pip3 install --upgrade jc
What’s New
- Add
git log
streaming parser that outputs JSON lines (or a lazy Iterable when used as a python library). This is great for converting very largegit
logs to JSON so the entire log does not need to be loaded into RAM. - Add
chage --list
command parser tested on linux - Fix
git log
standard parser for corner-cases where commit hash values are the only value in a line in messages - Fix
df
command parser for rare instances when a newline is found at the end of the output - Allow
jc
topip install
on unsupported python version 3.6 since this version is still widely in use. Note thatjc
is only tested on officially supported python versions. - Fix
asciitable-m
parser to skip some rows that contain detected column separator characters in cell data. A warning message will be printed to STDERR unless-q
orquiet=True
is used. - New zip package for Windows. Simply unzip the files anywhere in the execution PATH.
New Parsers
git log
command streaming parser
Support for the git log
command. This is a streaming parser and it outputs JSON Lines. (Documentation):
$ git log | jc --git-log-s {"commit":"a730ae18c8e81c5261db132df73cd74f272a0a26","author":"Kelly...} {"commit":"930bf439c06c48a952baec05a9896c8d92b7693e","author":"Kelly...}
chage --list
command parser
Linux support for the chage --list
command. (Documentation)
$ chage --list joeuser | jc --chage -p { "password_last_changed": "never", "password_expires": "never", "password_inactive": "never", "account_expires": "never", "min_days_between_password_change": 0, "max_days_between_password_change": 99999, "warning_days_before_password_expires": 7 }
Happy parsing!