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 logstreaming parser that outputs JSON lines (or a lazy Iterable when used as a python library). This is great for converting very largegitlogs to JSON so the entire log does not need to be loaded into RAM. - Add
chage --listcommand parser tested on linux - Fix
git logstandard parser for corner-cases where commit hash values are the only value in a line in messages - Fix
dfcommand parser for rare instances when a newline is found at the end of the output - Allow
jctopip installon unsupported python version 3.6 since this version is still widely in use. Note thatjcis only tested on officially supported python versions. - Fix
asciitable-mparser to skip some rows that contain detected column separator characters in cell data. A warning message will be printed to STDERR unless-qorquiet=Trueis 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!

