1
0
mirror of https://github.com/kellyjonbrazil/jc.git synced 2025-10-08 23:22:21 +02:00
Files
jc/tests/fixtures/generic/git-log-oneline-stat-streaming.json
2024-05-14 17:38:39 -07:00

2 lines
1.1 MiB

[{"commit":"096fffdb79807d34b99985b38df0a3df7f6a86c7","message":"use stat examples","stats":{"files_changed":2,"insertions":120,"deletions":36,"files":["docs/parsers/git_log.md","jc/parsers/git_log.py"],"file_stats":[{"name":"docs/parsers/git_log.md","lines_changed":78},{"name":"jc/parsers/git_log.py","lines_changed":78}]}},{"commit":"728d882ed007b3c8b785018874a0eb06e1143b66","message":"add timestamp docs and examples","stats":{"files_changed":2,"insertions":90,"deletions":12,"files":["docs/parsers/git_log.md","jc/parsers/git_log.py"],"file_stats":[{"name":"docs/parsers/git_log.md","lines_changed":51},{"name":"jc/parsers/git_log.py","lines_changed":51}]}},{"commit":"b53e42aca623181aa9bc72194e6eeef1e9a3a237","message":"add calculated timestamp","stats":{"files_changed":5,"insertions":29,"deletions":6,"files":["docs/parsers/git_log.md","docs/utils.md","jc/parsers/git_log.py","jc/utils.py","man/jc.1"],"file_stats":[{"name":"docs/parsers/git_log.md","lines_changed":8},{"name":"docs/utils.md","lines_changed":4},{"name":"jc/parsers/git_log.py","lines_changed":14},{"name":"jc/utils.py","lines_changed":7},{"name":"man/jc.1","lines_changed":2}]}},{"commit":"477329ce5b8f5c2a8e4384ba3f59289fc18c957d","message":"add linefeed to version text","stats":{"files_changed":1,"insertions":1,"deletions":0,"files":["jc/cli.py"],"file_stats":[{"name":"jc/cli.py","lines_changed":1}]}},{"commit":"283dc4efd55030188f17c7e1dfbc5315103494b7","message":"add python interpreter version and path to -v and -a output","stats":{"files_changed":2,"insertions":7,"deletions":1,"files":["CHANGELOG","jc/cli.py"],"file_stats":[{"name":"CHANGELOG","lines_changed":1},{"name":"jc/cli.py","lines_changed":7}]}},{"commit":"d490bbcaa0291a691b95fa5b61807eebb0b088eb","message":"normalize add/update","stats":{"files_changed":1,"insertions":26,"deletions":26,"files":["CHANGELOG"],"file_stats":[{"name":"CHANGELOG","lines_changed":52}]}},{"commit":"f49ddf8e5c5009702155fc62d83c63e3c08c594d","message":"doc update","stats":{"files_changed":2,"insertions":4,"deletions":4,"files":["docs/parsers/git_log.md","jc/parsers/git_log.py"],"file_stats":[{"name":"docs/parsers/git_log.md","lines_changed":4},{"name":"jc/parsers/git_log.py","lines_changed":4}]}},{"commit":"e1e341652b51b823844e76ef7e68f9373a323435","message":"doc update","stats":{"files_changed":1,"insertions":2,"deletions":0,"files":["CHANGELOG"],"file_stats":[{"name":"CHANGELOG","lines_changed":2}]}},{"commit":"ecda667549137bed5622cca69f2022e7a75ea833","message":"process integers","stats":{"files_changed":2,"insertions":12,"deletions":8,"files":["docs/parsers/git_log.md","jc/parsers/git_log.py"],"file_stats":[{"name":"docs/parsers/git_log.md","lines_changed":2},{"name":"jc/parsers/git_log.py","lines_changed":18}]}},{"commit":"a0d96a188a9f875b2d59625aa97d4f80bba290f2","message":"doc update","stats":{"files_changed":2,"insertions":5,"deletions":1,"files":["docs/parsers/yaml.md","jc/parsers/yaml.py"],"file_stats":[{"name":"docs/parsers/yaml.md","lines_changed":4},{"name":"jc/parsers/yaml.py","lines_changed":2}]}},{"commit":"6c0f0cddfe4dd2d5169f7c55416c6725912557f6","message":"fix for datetime objects in yaml files","stats":{"files_changed":2,"insertions":14,"deletions":1,"files":["jc/parsers/yaml.py","tests/test_yaml.py"],"file_stats":[{"name":"jc/parsers/yaml.py","lines_changed":7},{"name":"tests/test_yaml.py","lines_changed":8}]}},{"commit":"c7173ecd89742c8cf8a7bc4a8021baac5c3cd483","message":"fix mypy issues","stats":{"files_changed":1,"insertions":8,"deletions":6,"files":["jc/parsers/git_log.py"],"file_stats":[{"name":"jc/parsers/git_log.py","lines_changed":14}]}},{"commit":"e98240c905394e3ebd6a45fa31b6d432c150afc4","message":"extend instead of append list","stats":{"files_changed":1,"insertions":4,"deletions":4,"files":["jc/parsers/git_log.py"],"file_stats":[{"name":"jc/parsers/git_log.py","lines_changed":8}]}},{"commit":"6cb7e25974b11afe57d7d0e8550b3b1a56b14c67","message":"add docs","stats":{"files_changed":3,"insertions":93,"deletions":1,"files":["README.md","docs/parsers/git_log.md","man/jc.1"],"file_stats":[{"name":"README.md","lines_changed":1},{"name":"docs/parsers/git_log.md","lines_changed":86},{"name":"man/jc.1","lines_changed":7}]}},{"commit":"c37980c05c7fbd4f811ce5fcfcfddaf5f3ab5414","message":"add stat support","stats":{"files_changed":1,"insertions":41,"deletions":7,"files":["jc/parsers/git_log.py"],"file_stats":[{"name":"jc/parsers/git_log.py","lines_changed":48}]}},{"commit":"b5943bd39d776fc4c3b3dea03c0f3d4b6f4bb260","message":"initial docstring","stats":{"files_changed":1,"insertions":23,"deletions":10,"files":["jc/parsers/git_log.py"],"file_stats":[{"name":"jc/parsers/git_log.py","lines_changed":33}]}},{"commit":"49a3a7db3b2b0b292489a41691c9dcbce816cfed","message":"initial git-log parser","stats":{"files_changed":2,"insertions":175,"deletions":0,"files":["jc/lib.py","jc/parsers/git_log.py"],"file_stats":[{"name":"jc/lib.py","lines_changed":1},{"name":"jc/parsers/git_log.py","lines_changed":174}]}},{"commit":"0c55240e9da30ac4293cc324f1094de2abd3da91","message":"move test templates to fix test failures on some systems","stats":{"files_changed":3,"insertions":1,"deletions":0,"files":["CHANGELOG","tests/{ => templates}/_test_foo.py","tests/{ => templates}/_test_foo_s.py"],"file_stats":[{"name":"CHANGELOG","lines_changed":1},{"name":"tests/{ => templates}/_test_foo.py","lines_changed":0},{"name":"tests/{ => templates}/_test_foo_s.py","lines_changed":0}]}},{"commit":"f91988aed5499d25acf7a7e87b2b0d0cd37b62af","message":"iterator -> iterable","stats":{"files_changed":1,"insertions":1,"deletions":1,"files":["docs/lib.md"],"file_stats":[{"name":"docs/lib.md","lines_changed":2}]}},{"commit":"3c3ad9fc6adf865b3814a1f03814d0bc17d1c6bd","message":"iterator -> iterable in doc","stats":{"files_changed":1,"insertions":1,"deletions":1,"files":["jc/lib.py"],"file_stats":[{"name":"jc/lib.py","lines_changed":2}]}},{"commit":"291ab79e22a59cb31814e7a5af9dbc9f2ec863e2","message":"fix arch linux command","stats":{"files_changed":3,"insertions":24,"deletions":24,"files":["README.md","man/jc.1","templates/readme_template"],"file_stats":[{"name":"README.md","lines_changed":24},{"name":"man/jc.1","lines_changed":2},{"name":"templates/readme_template","lines_changed":22}]}},{"commit":"e6d5892c146762cd41a966adadb77db333d98ace","message":"Merge pull request #226 from kellyjonbrazil/master"},{"commit":"dcca7a57d558721a61fbba44f07b1d53116827e1","message":"Merge pull request #225 from adrianteri/patch-1"},{"commit":"4ee8a69337b24e199983fe657643abcb0a56a8e6","message":"Update README","stats":{"files_changed":1,"insertions":2,"deletions":2,"files":["README.md"],"file_stats":[{"name":"README.md","lines_changed":4}]}},{"commit":"c0414e7db7f5d785b72ad616517f2ec63af151a2","message":"clean up background tasks","stats":{"files_changed":1,"insertions":4,"deletions":4,"files":["docgen.sh"],"file_stats":[{"name":"docgen.sh","lines_changed":8}]}},{"commit":"a419175fe6dffe9c5fd20cfbd82ee552bc82a993","message":"enhance parallelization","stats":{"files_changed":2,"insertions":34,"deletions":17,"files":["docgen.sh","updatedocs.sh"],"file_stats":[{"name":"docgen.sh","lines_changed":30},{"name":"updatedocs.sh","lines_changed":21}]}},{"commit":"cd6dead034f3c72aebd22afeb2aea6591ae6d94d","message":"man page update","stats":{"files_changed":1,"insertions":1,"deletions":1,"files":["man/jc.1"],"file_stats":[{"name":"man/jc.1","lines_changed":2}]}},{"commit":"45342ea9fea29947d8d90260c7665ffbca612cce","message":"parallelize doc gneration","stats":{"files_changed":2,"insertions":16,"deletions":9,"files":["docgen.sh","updatedocs.sh"],"file_stats":[{"name":"docgen.sh","lines_changed":16},{"name":"updatedocs.sh","lines_changed":9}]}},{"commit":"585bf0e159c7839869cf3e458938dcc5fa2ceb81","message":"xrandr update","stats":{"files_changed":1,"insertions":1,"deletions":0,"files":["CHANGELOG"],"file_stats":[{"name":"CHANGELOG","lines_changed":1}]}},{"commit":"3a860b9babe93d455f68ef21436edf7470d375af","message":"add rotation field","stats":{"files_changed":2,"insertions":7,"deletions":5,"files":["docs/parsers/xrandr.md","jc/parsers/xrandr.py"],"file_stats":[{"name":"docs/parsers/xrandr.md","lines_changed":4},{"name":"jc/parsers/xrandr.py","lines_changed":8}]}},{"commit":"269180df77f9ff953b07222e8ae790c7e7a8298e","message":"Merge pull request #223 from anekos/fix/support-rotated-devices"},{"commit":"a1afed8d95e33fbbc618c7b5778a9faeea2f628f","message":"doc update","stats":{"files_changed":1,"insertions":3,"deletions":1,"files":["docs/parsers/xrandr.md"],"file_stats":[{"name":"docs/parsers/xrandr.md","lines_changed":4}]}},{"commit":"e39f150a216e4e184444dfc88a63e0f303e51631","message":"Support rotated devices","stats":{"files_changed":3,"insertions":9,"deletions":4,"files":["jc/parsers/xrandr.py","tests/fixtures/generic/xrandr_simple.json","tests/test_xrandr.py"],"file_stats":[{"name":"jc/parsers/xrandr.py","lines_changed":4},{"name":"tests/fixtures/generic/xrandr_simple.json","lines_changed":1},{"name":"tests/test_xrandr.py","lines_changed":8}]}},{"commit":"e85f11c6fcad5461bae612dd5a945c20d300e59a","message":"doc formatting","stats":{"files_changed":4,"insertions":12,"deletions":12,"files":["docs/parsers/ini.md","docs/parsers/kv.md","jc/parsers/ini.py","jc/parsers/kv.py"],"file_stats":[{"name":"docs/parsers/ini.md","lines_changed":6},{"name":"docs/parsers/kv.md","lines_changed":6},{"name":"jc/parsers/ini.py","lines_changed":6},{"name":"jc/parsers/kv.py","lines_changed":6}]}},{"commit":"49a9d7b07e89696f2e022655d7256b7d6ad4bf7b","message":"doc update","stats":{"files_changed":3,"insertions":12,"deletions":8,"files":["docs/parsers/ini.md","docs/parsers/kv.md","man/jc.1"],"file_stats":[{"name":"docs/parsers/ini.md","lines_changed":8},{"name":"docs/parsers/kv.md","lines_changed":10},{"name":"man/jc.1","lines_changed":2}]}},{"commit":"a2ef9c429e4bb9f70d033511dce77ccdb9013971","message":"allow duplicate keys","stats":{"files_changed":4,"insertions":38,"deletions":8,"files":["jc/parsers/ini.py","jc/parsers/kv.py","tests/test_ini.py","tests/test_kv.py"],"file_stats":[{"name":"jc/parsers/ini.py","lines_changed":12},{"name":"jc/parsers/kv.py","lines_changed":10},{"name":"tests/test_ini.py","lines_changed":12},{"name":"tests/test_kv.py","lines_changed":12}]}},{"commit":"d5e9074f1c8facb3f15b8c41a008917178626978","message":"version bump","stats":{"files_changed":3,"insertions":5,"deletions":2,"files":["CHANGELOG","jc/lib.py","setup.py"],"file_stats":[{"name":"CHANGELOG","lines_changed":3},{"name":"jc/lib.py","lines_changed":2},{"name":"setup.py","lines_changed":2}]}},{"commit":"774699f085d97f22ae2dab0cf64d72aa1e1709f7","message":"Merge pull request #220 from kellyjonbrazil/master"},{"commit":"7138eef3d137bc64286d4af453d8d4e7b3f4408d","message":"fix newline chars in doc","stats":{"files_changed":2,"insertions":6,"deletions":6,"files":["docs/parsers/asciitable_m.md","jc/parsers/asciitable_m.py"],"file_stats":[{"name":"docs/parsers/asciitable_m.md","lines_changed":6},{"name":"jc/parsers/asciitable_m.py","lines_changed":6}]}},{"commit":"fad5e544aa9e57d31473190e196f59c616901207","message":"formatting","stats":{"files_changed":2,"insertions":2,"deletions":2,"files":["docs/parsers/asciitable.md","jc/parsers/asciitable.py"],"file_stats":[{"name":"docs/parsers/asciitable.md","lines_changed":2},{"name":"jc/parsers/asciitable.py","lines_changed":2}]}},{"commit":"64757e2cf55448bccfbbd60d31930ab3f59af21b","message":"doc formatting","stats":{"files_changed":2,"insertions":12,"deletions":12,"files":["docs/parsers/asciitable.md","jc/parsers/asciitable.py"],"file_stats":[{"name":"docs/parsers/asciitable.md","lines_changed":12},{"name":"jc/parsers/asciitable.py","lines_changed":12}]}},{"commit":"e05be3f08beae1b600fc55a3a7b4e28163e15bc0","message":"Merge pull request #213 from kellyjonbrazil/dev"},{"commit":"789f0735dfd63e728b8716d97cf0c6045ede5011","message":"doc update","stats":{"files_changed":1,"insertions":1,"deletions":1,"files":["CHANGELOG"],"file_stats":[{"name":"CHANGELOG","lines_changed":2}]}},{"commit":"34bc7753174be28d6c1a00dadc662bc374e554c1","message":"doc update","stats":{"files_changed":1,"insertions":1,"deletions":1,"files":["man/jc.1"],"file_stats":[{"name":"man/jc.1","lines_changed":2}]}},{"commit":"38de059a1bc285c8681086d9fb43d0d23ac01d49","message":"doc update","stats":{"files_changed":3,"insertions":9,"deletions":3,"files":["docs/parsers/asciitable.md","docs/parsers/universal.md","man/jc.1"],"file_stats":[{"name":"docs/parsers/asciitable.md","lines_changed":6},{"name":"docs/parsers/universal.md","lines_changed":4},{"name":"man/jc.1","lines_changed":2}]}},{"commit":"304ae6268f4dff6e6f901628e7ff89db1d6e0767","message":"minor optimization by changing the expression order","stats":{"files_changed":1,"insertions":6,"deletions":6,"files":["jc/parsers/asciitable_m.py"],"file_stats":[{"name":"jc/parsers/asciitable_m.py","lines_changed":12}]}},{"commit":"978caf45221188a29c0e67147804f20f317c066d","message":"minor optimization by reordering expressions","stats":{"files_changed":1,"insertions":13,"deletions":13,"files":["jc/parsers/asciitable.py"],"file_stats":[{"name":"jc/parsers/asciitable.py","lines_changed":26}]}},{"commit":"17df5bfcfc25f226a2976aa7ab8a80e4aaa915c3","message":"cache _is_separator function","stats":{"files_changed":2,"insertions":12,"deletions":2,"files":["jc/parsers/asciitable.py","jc/parsers/asciitable_m.py"],"file_stats":[{"name":"jc/parsers/asciitable.py","lines_changed":10},{"name":"jc/parsers/asciitable_m.py","lines_changed":4}]}},{"commit":"5e6a5068cff71b3b30525d0a12868bdf6551456c","message":"allow iterables for simple table parser","stats":{"files_changed":1,"insertions":6,"deletions":2,"files":["jc/parsers/universal.py"],"file_stats":[{"name":"jc/parsers/universal.py","lines_changed":8}]}},{"commit":"619de68a61be0117e635032347dde417d77c748c","message":"formatting","stats":{"files_changed":2,"insertions":8,"deletions":9,"files":["jc/parsers/asciitable.py","jc/parsers/asciitable_m.py"],"file_stats":[{"name":"jc/parsers/asciitable.py","lines_changed":7},{"name":"jc/parsers/asciitable_m.py","lines_changed":10}]}},{"commit":"6748c3cc91f90bddea3d07b8b30a049ee55eaf35","message":"remove lines from corner detection and add rounded corners","stats":{"files_changed":2,"insertions":65,"deletions":61,"files":["jc/parsers/asciitable.py","jc/parsers/asciitable_m.py"],"file_stats":[{"name":"jc/parsers/asciitable.py","lines_changed":52},{"name":"jc/parsers/asciitable_m.py","lines_changed":74}]}},{"commit":"0a462978b731770d1290187a502706c2322f5f91","message":"fix for special characters in headers","stats":{"files_changed":4,"insertions":101,"deletions":3,"files":["jc/parsers/asciitable.py","jc/parsers/asciitable_m.py","tests/test_asciitable.py","tests/test_asciitable_m.py"],"file_stats":[{"name":"jc/parsers/asciitable.py","lines_changed":25},{"name":"jc/parsers/asciitable_m.py","lines_changed":8},{"name":"tests/test_asciitable.py","lines_changed":43},{"name":"tests/test_asciitable_m.py","lines_changed":28}]}},{"commit":"e66a82ff49b40a674f9ef373a12d59fc71bfa730","message":"doc update","stats":{"files_changed":3,"insertions":6,"deletions":5,"files":["CHANGELOG","jc/parsers/asciitable_m.py","man/jc.1"],"file_stats":[{"name":"CHANGELOG","lines_changed":5},{"name":"jc/parsers/asciitable_m.py","lines_changed":4},{"name":"man/jc.1","lines_changed":2}]}},{"commit":"f3aa797d96c8e2cef2124dbb2f49d1fadaee3fa2","message":"add more pretty table separators","stats":{"files_changed":2,"insertions":69,"deletions":9,"files":["jc/parsers/asciitable.py","jc/parsers/asciitable_m.py"],"file_stats":[{"name":"jc/parsers/asciitable.py","lines_changed":43},{"name":"jc/parsers/asciitable_m.py","lines_changed":35}]}},{"commit":"e5b478218c4ba3781afd085056dba888c3f6ae02","message":"add quiet=True to parse tests","stats":{"files_changed":1,"insertions":3,"deletions":3,"files":["tests/test_xrandr.py"],"file_stats":[{"name":"tests/test_xrandr.py","lines_changed":6}]}},{"commit":"35e0e9c32afbc5450c661bcb3a23904d135358ad","message":"remove print statement","stats":{"files_changed":1,"insertions":0,"deletions":1,"files":["jc/parsers/asciitable.py"],"file_stats":[{"name":"jc/parsers/asciitable.py","lines_changed":1}]}},{"commit":"17c3c2f029a0a47eb02d681567619d471b99949c","message":"add bold bar seperator and ANSI code tests","stats":{"files_changed":4,"insertions":58,"deletions":2,"files":["jc/parsers/asciitable.py","jc/parsers/asciitable_m.py","tests/test_asciitable.py","tests/test_asciitable_m.py"],"file_stats":[{"name":"jc/parsers/asciitable.py","lines_changed":3},{"name":"jc/parsers/asciitable_m.py","lines_changed":2},{"name":"tests/test_asciitable.py","lines_changed":31},{"name":"tests/test_asciitable_m.py","lines_changed":24}]}},{"commit":"cf83e6398b3314b233581eb313510872177de20a","message":"add fancy separators","stats":{"files_changed":2,"insertions":7,"deletions":0,"files":["jc/parsers/asciitable.py","jc/parsers/asciitable_m.py"],"file_stats":[{"name":"jc/parsers/asciitable.py","lines_changed":4},{"name":"jc/parsers/asciitable_m.py","lines_changed":3}]}},{"commit":"94e061b881e2ed28d2b462ad038e5ba77182b6c4","message":"add asciitable parser tests","stats":{"files_changed":1,"insertions":275,"deletions":0,"files":["tests/test_asciitable.py"],"file_stats":[{"name":"tests/test_asciitable.py","lines_changed":275}]}},{"commit":"720480e39ce3cc2079d7f4f5bcff2725081fec34","message":"doc update","stats":{"files_changed":4,"insertions":10,"deletions":2,"files":["docs/parsers/asciitable.md","docs/parsers/asciitable_m.md","jc/parsers/asciitable.py","jc/parsers/asciitable_m.py"],"file_stats":[{"name":"docs/parsers/asciitable.md","lines_changed":3},{"name":"docs/parsers/asciitable_m.md","lines_changed":3},{"name":"jc/parsers/asciitable.py","lines_changed":3},{"name":"jc/parsers/asciitable_m.py","lines_changed":3}]}},{"commit":"82a63fe15922456853aa4597aa10a5a02b20bdef","message":"doc update","stats":{"files_changed":2,"insertions":6,"deletions":8,"files":["docs/parsers/asciitable.md","jc/parsers/asciitable.py"],"file_stats":[{"name":"docs/parsers/asciitable.md","lines_changed":7},{"name":"jc/parsers/asciitable.py","lines_changed":7}]}},{"commit":"9c1ec9940e68ce9848da20e81b8c0b7e35a215df","message":"doc update","stats":{"files_changed":4,"insertions":82,"deletions":14,"files":["docs/parsers/asciitable.md","docs/parsers/asciitable_m.md","jc/parsers/asciitable.py","jc/parsers/asciitable_m.py"],"file_stats":[{"name":"docs/parsers/asciitable.md","lines_changed":44},{"name":"docs/parsers/asciitable_m.md","lines_changed":4},{"name":"jc/parsers/asciitable.py","lines_changed":44},{"name":"jc/parsers/asciitable_m.py","lines_changed":4}]}},{"commit":"f23f19da453a0f7bcf70e417a10f87e27571aa43","message":"doc update","stats":{"files_changed":5,"insertions":122,"deletions":9,"files":["README.md","docs/parsers/asciitable.md","docs/parsers/asciitable_m.md","jc/parsers/asciitable_m.py","man/jc.1"],"file_stats":[{"name":"README.md","lines_changed":1},{"name":"docs/parsers/asciitable.md","lines_changed":97},{"name":"docs/parsers/asciitable_m.md","lines_changed":4},{"name":"jc/parsers/asciitable_m.py","lines_changed":24},{"name":"man/jc.1","lines_changed":5}]}},{"commit":"aea2e1b0a9c6bb2a02a6e73889bb04e8f4f22588","message":"fix tests so blank strings are now None","stats":{"files_changed":1,"insertions":24,"deletions":24,"files":["tests/test_asciitable_m.py"],"file_stats":[{"name":"tests/test_asciitable_m.py","lines_changed":48}]}},{"commit":"7d95d679bf4093ea77f30a1be55384b6dbf08341","message":"add asciitable parser","stats":{"files_changed":2,"insertions":212,"deletions":1,"files":["jc/lib.py","jc/parsers/asciitable.py"],"file_stats":[{"name":"jc/lib.py","lines_changed":2},{"name":"jc/parsers/asciitable.py","lines_changed":211}]}},{"commit":"b3b140066b74ee31dd1c460502caf2f26df321b6","message":"doc update","stats":{"files_changed":2,"insertions":4,"deletions":4,"files":["docs/parsers/asciitable_m.md","jc/parsers/asciitable_m.py"],"file_stats":[{"name":"docs/parsers/asciitable_m.md","lines_changed":4},{"name":"jc/parsers/asciitable_m.py","lines_changed":4}]}},{"commit":"b204c423c1b947c17cb251a5dd3c444cd71dd2c0","message":"doc update","stats":{"files_changed":4,"insertions":193,"deletions":15,"files":["README.md","docs/parsers/asciitable_m.md","jc/parsers/asciitable_m.py","man/jc.1"],"file_stats":[{"name":"README.md","lines_changed":1},{"name":"docs/parsers/asciitable_m.md","lines_changed":122},{"name":"jc/parsers/asciitable_m.py","lines_changed":78},{"name":"man/jc.1","lines_changed":7}]}},{"commit":"d451c309bb0d8889dc09a698212bf01c2154a582","message":"change multiple or statements to any()","stats":{"files_changed":1,"insertions":11,"deletions":8,"files":["jc/parsers/asciitable_m.py"],"file_stats":[{"name":"jc/parsers/asciitable_m.py","lines_changed":19}]}},{"commit":"01d53da68ed04b736934851137c59216ad02d8c8","message":"remove debug print","stats":{"files_changed":1,"insertions":0,"deletions":1,"files":["jc/parsers/asciitable_m.py"],"file_stats":[{"name":"jc/parsers/asciitable_m.py","lines_changed":1}]}},{"commit":"53dd05e52c329a15c30a756a36a165ac59ef8a14","message":"fix rstrip and add tests","stats":{"files_changed":2,"insertions":29,"deletions":1,"files":["jc/parsers/asciitable_m.py","tests/test_asciitable_m.py"],"file_stats":[{"name":"jc/parsers/asciitable_m.py","lines_changed":3},{"name":"tests/test_asciitable_m.py","lines_changed":27}]}},{"commit":"ab564f5be8282f1c7ee2d602bcef398fdfd4570f","message":"add tests","stats":{"files_changed":2,"insertions":237,"deletions":1,"files":["jc/parsers/asciitable_m.py","tests/test_asciitable_m.py"],"file_stats":[{"name":"jc/parsers/asciitable_m.py","lines_changed":16},{"name":"tests/test_asciitable_m.py","lines_changed":222}]}},{"commit":"00c39450f9878527b60545ad61c04cfb98f418dc","message":"enhance type annotation","stats":{"files_changed":1,"insertions":1,"deletions":1,"files":["jc/parsers/asciitable_m.py"],"file_stats":[{"name":"jc/parsers/asciitable_m.py","lines_changed":2}]}},{"commit":"f611d08b50219f4e573c1d1f0beae27583e76432","message":"formatting","stats":{"files_changed":1,"insertions":3,"deletions":2,"files":["jc/parsers/asciitable_m.py"],"file_stats":[{"name":"jc/parsers/asciitable_m.py","lines_changed":5}]}},{"commit":"90e79b7df3a4d5b37835fdf1c2debc1bad0a40b9","message":"formatting","stats":{"files_changed":1,"insertions":1,"deletions":1,"files":["jc/parsers/asciitable_m.py"],"file_stats":[{"name":"jc/parsers/asciitable_m.py","lines_changed":2}]}},{"commit":"4eb2d725d5fe6f2cc7935c7dc891912cf7b8e940","message":"formatting","stats":{"files_changed":1,"insertions":1,"deletions":1,"files":["jc/parsers/asciitable_m.py"],"file_stats":[{"name":"jc/parsers/asciitable_m.py","lines_changed":2}]}},{"commit":"51ae5ebcac7263ef2571c11975b275eff352bbc5","message":"new streamlined parser","stats":{"files_changed":1,"insertions":148,"deletions":175,"files":["jc/parsers/asciitable_m.py"],"file_stats":[{"name":"jc/parsers/asciitable_m.py","lines_changed":323}]}},{"commit":"9ecbdb09162da4d563799aa93d422db85b2c324b","message":"use generator instead of iterable in function return annotation","stats":{"files_changed":8,"insertions":35,"deletions":30,"files":["docs/parsers/mpstat_s.md","docs/parsers/pidstat_s.md","docs/parsers/rsync_s.md","docs/parsers/universal.md","jc/parsers/foo_s.py","jc/parsers/mpstat_s.py","jc/parsers/pidstat_s.py","jc/parsers/rsync_s.py"],"file_stats":[{"name":"docs/parsers/mpstat_s.md","lines_changed":10},{"name":"docs/parsers/pidstat_s.md","lines_changed":10},{"name":"docs/parsers/rsync_s.md","lines_changed":10},{"name":"docs/parsers/universal.md","lines_changed":19},{"name":"jc/parsers/foo_s.py","lines_changed":4},{"name":"jc/parsers/mpstat_s.py","lines_changed":4},{"name":"jc/parsers/pidstat_s.py","lines_changed":4},{"name":"jc/parsers/rsync_s.py","lines_changed":4}]}},{"commit":"b3a2886fd0af0cd06890f37f1edfc6890bb83e6c","message":"formatting","stats":{"files_changed":1,"insertions":1,"deletions":2,"files":["docs/lib.md"],"file_stats":[{"name":"docs/lib.md","lines_changed":3}]}},{"commit":"ceacec0f462bd7c2d9e92ddb9029ccd71aef481c","message":"remove errant os sep import","stats":{"files_changed":1,"insertions":0,"deletions":1,"files":["jc/parsers/asciitable_m.py"],"file_stats":[{"name":"jc/parsers/asciitable_m.py","lines_changed":1}]}},{"commit":"ff0f794b01395ed9b65fac75a6b07f0772d45a2d","message":"working","stats":{"files_changed":1,"insertions":32,"deletions":10,"files":["jc/parsers/asciitable_m.py"],"file_stats":[{"name":"jc/parsers/asciitable_m.py","lines_changed":42}]}},{"commit":"70fafbf3f80f35c5db2c306978b2a488adad40bb","message":"remove asciitable so tests pass for now","stats":{"files_changed":1,"insertions":1,"deletions":1,"files":["jc/lib.py"],"file_stats":[{"name":"jc/lib.py","lines_changed":2}]}},{"commit":"5a248a8fc58952a5eab3d4aac025d7422ba82d08","message":"add multiline asciitable parser","stats":{"files_changed":1,"insertions":344,"deletions":0,"files":["jc/parsers/asciitable_m.py"],"file_stats":[{"name":"jc/parsers/asciitable_m.py","lines_changed":344}]}},{"commit":"4a3a4e10df8a552a4db3510640695f02b166dc40","message":"add asciitable and asciitable-m parsers","stats":{"files_changed":1,"insertions":3,"deletions":4,"files":["jc/lib.py"],"file_stats":[{"name":"jc/lib.py","lines_changed":7}]}},{"commit":"c27bd5ff39f21c6377e661d4d7de1200d2fdd72f","message":"pad lines in sparse_table_parse and use str.isspace()","stats":{"files_changed":1,"insertions":23,"deletions":16,"files":["jc/parsers/universal.py"],"file_stats":[{"name":"jc/parsers/universal.py","lines_changed":39}]}},{"commit":"f804c9627fb71341429ca80aec2887e23e0277db","message":"copy input list so we don't mutate the caller's data","stats":{"files_changed":1,"insertions":1,"deletions":0,"files":["jc/parsers/universal.py"],"file_stats":[{"name":"jc/parsers/universal.py","lines_changed":1}]}},{"commit":"3ab25d02f9dc248706aa1105e1766b2a84bc55a3","message":"use _parser_is_streaming from lib","stats":{"files_changed":1,"insertions":1,"deletions":1,"files":["jc/cli.py"],"file_stats":[{"name":"jc/cli.py","lines_changed":2}]}},{"commit":"9e80fd2b97b9bfe38fdaa6acdf2e8ed26d34b49d","message":"fallback if info and doc items don't exist","stats":{"files_changed":2,"insertions":15,"deletions":11,"files":["jc/cli.py","jc/lib.py"],"file_stats":[{"name":"jc/cli.py","lines_changed":21},{"name":"jc/lib.py","lines_changed":5}]}},{"commit":"ff9527a098a94c996641fb3fe2f905c8ae5e3063","message":"import cleanup and use all_parser_info in parsers_text","stats":{"files_changed":1,"insertions":9,"deletions":13,"files":["jc/cli.py"],"file_stats":[{"name":"jc/cli.py","lines_changed":22}]}},{"commit":"7dac2f8dc3baf619105e3c6ca4d3e45300b86287","message":"doc update","stats":{"files_changed":3,"insertions":23,"deletions":9,"files":["docs/lib.md","docs/readme.md","man/jc.1"],"file_stats":[{"name":"docs/lib.md","lines_changed":23},{"name":"docs/readme.md","lines_changed":7},{"name":"man/jc.1","lines_changed":2}]}},{"commit":"32e4d55e86c3e7d94488ec69f13a4f6400c4cef3","message":"use parser_info for help_doc","stats":{"files_changed":1,"insertions":5,"deletions":5,"files":["jc/cli.py"],"file_stats":[{"name":"jc/cli.py","lines_changed":10}]}},{"commit":"f9a9062147256d0949457cc7fde838f87202524d","message":"add documentation argument to parser_info and all_parser_info","stats":{"files_changed":3,"insertions":27,"deletions":10,"files":["CHANGELOG","jc/__init__.py","jc/lib.py"],"file_stats":[{"name":"CHANGELOG","lines_changed":1},{"name":"jc/__init__.py","lines_changed":7},{"name":"jc/lib.py","lines_changed":29}]}},{"commit":"89e5919796f7da585285901dca461aae21336415","message":"add -A to second example","stats":{"files_changed":2,"insertions":2,"deletions":2,"files":["docs/parsers/mpstat_s.md","jc/parsers/mpstat_s.py"],"file_stats":[{"name":"docs/parsers/mpstat_s.md","lines_changed":2},{"name":"jc/parsers/mpstat_s.py","lines_changed":2}]}},{"commit":"e5f5b2591d8ac3abeb9571688c7fb8de34d647f4","message":"changelog update","stats":{"files_changed":1,"insertions":2,"deletions":0,"files":["CHANGELOG"],"file_stats":[{"name":"CHANGELOG","lines_changed":2}]}},{"commit":"77c667eec045daff5cbd062fe9d6e83f237727e5","message":"ubuntu fixes","stats":{"files_changed":9,"insertions":67,"deletions":6,"files":["docs/parsers/mpstat.md","docs/parsers/mpstat_s.md","jc/parsers/mpstat.py","jc/parsers/mpstat_s.py","tests/fixtures/ubuntu-18.04/mpstat-A-streaming.json","tests/fixtures/ubuntu-18.04/mpstat-A.json","tests/fixtures/ubuntu-18.04/mpstat-A.out","tests/test_mpstat.py","tests/test_mpstat_s.py"],"file_stats":[{"name":"docs/parsers/mpstat.md","lines_changed":2},{"name":"docs/parsers/mpstat_s.md","lines_changed":2},{"name":"jc/parsers/mpstat.py","lines_changed":12},{"name":"jc/parsers/mpstat_s.py","lines_changed":12},{"name":"tests/fixtures/ubuntu-18.04/mpstat-A-streaming.json","lines_changed":1},{"name":"tests/fixtures/ubuntu-18.04/mpstat-A.json","lines_changed":1},{"name":"tests/fixtures/ubuntu-18.04/mpstat-A.out","lines_changed":19},{"name":"tests/test_mpstat.py","lines_changed":12},{"name":"tests/test_mpstat_s.py","lines_changed":12}]}},{"commit":"b257ce8c2fe6825fe435b4d04b4184091030db10","message":"add mpstat_s tests","stats":{"files_changed":4,"insertions":65,"deletions":0,"files":[".../centos-7.7/mpstat-A-2-5-streaming.json","tests/fixtures/centos-7.7/mpstat-A-streaming.json","tests/fixtures/centos-7.7/mpstat-streaming.json","tests/test_mpstat_s.py"],"file_stats":[{"name":".../centos-7.7/mpstat-A-2-5-streaming.json","lines_changed":1},{"name":"tests/fixtures/centos-7.7/mpstat-A-streaming.json","lines_changed":1},{"name":"tests/fixtures/centos-7.7/mpstat-streaming.json","lines_changed":1},{"name":"tests/test_mpstat_s.py","lines_changed":62}]}},{"commit":"c693c868cacbcd81f44fd383719723dd7a137c87","message":"add mpstat streaming parser","stats":{"files_changed":7,"insertions":352,"deletions":0,"files":["README.md","docs/parsers/mpstat.md","docs/parsers/mpstat_s.md","jc/lib.py","jc/parsers/mpstat.py","jc/parsers/mpstat_s.py","man/jc.1"],"file_stats":[{"name":"README.md","lines_changed":1},{"name":"docs/parsers/mpstat.md","lines_changed":2},{"name":"docs/parsers/mpstat_s.md","lines_changed":130},{"name":"jc/lib.py","lines_changed":1},{"name":"jc/parsers/mpstat.py","lines_changed":2},{"name":"jc/parsers/mpstat_s.py","lines_changed":211},{"name":"man/jc.1","lines_changed":5}]}},{"commit":"6f98b27a05d6e1f7571a97316b193f096521b959","message":"add mpstat tests","stats":{"files_changed":7,"insertions":168,"deletions":0,"files":["tests/fixtures/centos-7.7/mpstat-A-2-5.json","tests/fixtures/centos-7.7/mpstat-A-2-5.out","tests/fixtures/centos-7.7/mpstat-A.json","tests/fixtures/centos-7.7/mpstat-A.out","tests/fixtures/centos-7.7/mpstat.json","tests/fixtures/centos-7.7/mpstat.out","tests/test_mpstat.py"],"file_stats":[{"name":"tests/fixtures/centos-7.7/mpstat-A-2-5.json","lines_changed":1},{"name":"tests/fixtures/centos-7.7/mpstat-A-2-5.out","lines_changed":86},{"name":"tests/fixtures/centos-7.7/mpstat-A.json","lines_changed":1},{"name":"tests/fixtures/centos-7.7/mpstat-A.out","lines_changed":15},{"name":"tests/fixtures/centos-7.7/mpstat.json","lines_changed":1},{"name":"tests/fixtures/centos-7.7/mpstat.out","lines_changed":5},{"name":"tests/test_mpstat.py","lines_changed":59}]}},{"commit":"d7efd25d88a8f489564ce48223845a16e4ab1cc7","message":"add mpstat to docs","stats":{"files_changed":4,"insertions":207,"deletions":1,"files":["EXAMPLES.md","README.md","docs/parsers/mpstat.md","man/jc.1"],"file_stats":[{"name":"EXAMPLES.md","lines_changed":64},{"name":"README.md","lines_changed":1},{"name":"docs/parsers/mpstat.md","lines_changed":136},{"name":"man/jc.1","lines_changed":7}]}},{"commit":"2cddb1f0bb497be0be071cdcb56bf49d2dafc920","message":"working mpstat","stats":{"files_changed":1,"insertions":94,"deletions":15,"files":["jc/parsers/mpstat.py"],"file_stats":[{"name":"jc/parsers/mpstat.py","lines_changed":109}]}},{"commit":"ae1c331595dd857d8ae7f8cf93daee1b26be2c3e","message":"initial working version","stats":{"files_changed":1,"insertions":30,"deletions":5,"files":["jc/parsers/mpstat.py"],"file_stats":[{"name":"jc/parsers/mpstat.py","lines_changed":35}]}},{"commit":"bc97052ed4ee3bf3f25127968139f2e89a659fe3","message":"initial add mpstat parser","stats":{"files_changed":3,"insertions":109,"deletions":0,"files":["CHANGELOG","jc/lib.py","jc/parsers/mpstat.py"],"file_stats":[{"name":"CHANGELOG","lines_changed":1},{"name":"jc/lib.py","lines_changed":1},{"name":"jc/parsers/mpstat.py","lines_changed":107}]}},{"commit":"6c3e0e2aa0e8cc375d9f7473930b18957d33f1aa","message":"formatting","stats":{"files_changed":1,"insertions":1,"deletions":1,"files":["jc/utils.py"],"file_stats":[{"name":"jc/utils.py","lines_changed":2}]}},{"commit":"dd052e01469e9e3328f7326d3591365a8e7322eb","message":"add underscores to column examples","stats":{"files_changed":2,"insertions":26,"deletions":24,"files":["docs/parsers/universal.md","jc/parsers/universal.py"],"file_stats":[{"name":"docs/parsers/universal.md","lines_changed":25},{"name":"jc/parsers/universal.py","lines_changed":25}]}},{"commit":"54e8f58145f6c4332fbd375d112259ea7abb2d72","message":"add table result examples","stats":{"files_changed":2,"insertions":28,"deletions":2,"files":["docs/parsers/universal.md","jc/parsers/universal.py"],"file_stats":[{"name":"docs/parsers/universal.md","lines_changed":15},{"name":"jc/parsers/universal.py","lines_changed":15}]}},{"commit":"def7aa5764e69cd0cf2c5b70aa62c62023f76c9c","message":"formatting","stats":{"files_changed":2,"insertions":16,"deletions":16,"files":["docs/parsers/universal.md","jc/parsers/universal.py"],"file_stats":[{"name":"docs/parsers/universal.md","lines_changed":16},{"name":"jc/parsers/universal.py","lines_changed":16}]}},{"commit":"6986c74f6dceca907ea2e469a332deeb093a122c","message":"remove direct parser module example from doc","stats":{"files_changed":169,"insertions":34,"deletions":837,"files":["docs/parsers/acpi.md","docs/parsers/airport.md","docs/parsers/airport_s.md","docs/parsers/arp.md","docs/parsers/blkid.md","docs/parsers/cksum.md","docs/parsers/crontab.md","docs/parsers/crontab_u.md","docs/parsers/csv.md","docs/parsers/date.md","docs/parsers/df.md","docs/parsers/dig.md","docs/parsers/dir.md","docs/parsers/dmidecode.md","docs/parsers/dpkg_l.md","docs/parsers/du.md","docs/parsers/env.md","docs/parsers/file.md","docs/parsers/finger.md","docs/parsers/free.md","docs/parsers/fstab.md","docs/parsers/group.md","docs/parsers/gshadow.md","docs/parsers/hash.md","docs/parsers/hashsum.md","docs/parsers/hciconfig.md","docs/parsers/history.md","docs/parsers/hosts.md","docs/parsers/id.md","docs/parsers/ifconfig.md","docs/parsers/ini.md","docs/parsers/iostat.md","docs/parsers/iptables.md","docs/parsers/iw_scan.md","docs/parsers/jar_manifest.md","docs/parsers/jobs.md","docs/parsers/kv.md","docs/parsers/last.md","docs/parsers/ls.md","docs/parsers/lsblk.md","docs/parsers/lsmod.md","docs/parsers/lsof.md","docs/parsers/lsusb.md","docs/parsers/mount.md","docs/parsers/netstat.md","docs/parsers/nmcli.md","docs/parsers/ntpq.md","docs/parsers/passwd.md","docs/parsers/pidstat.md","docs/parsers/ping.md","docs/parsers/pip_list.md","docs/parsers/pip_show.md","docs/parsers/ps.md","docs/parsers/route.md","docs/parsers/rpm_qi.md","docs/parsers/rsync.md","docs/parsers/sfdisk.md","docs/parsers/shadow.md","docs/parsers/ss.md","docs/parsers/stat.md","docs/parsers/sysctl.md","docs/parsers/systemctl.md","docs/parsers/systemctl_lj.md","docs/parsers/systemctl_ls.md","docs/parsers/systemctl_luf.md","docs/parsers/systeminfo.md","docs/parsers/time.md","docs/parsers/timedatectl.md","docs/parsers/tracepath.md","docs/parsers/traceroute.md","docs/parsers/ufw.md","docs/parsers/ufw_appinfo.md","docs/parsers/uname.md","docs/parsers/universal.md","docs/parsers/upower.md","docs/parsers/uptime.md","docs/parsers/vmstat.md","docs/parsers/w.md","docs/parsers/wc.md","docs/parsers/who.md","docs/parsers/xml.md","docs/parsers/xrandr.md","docs/parsers/yaml.md","docs/parsers/zipinfo.md","jc/parsers/acpi.py","jc/parsers/airport.py","jc/parsers/airport_s.py","jc/parsers/arp.py","jc/parsers/blkid.py","jc/parsers/cksum.py","jc/parsers/crontab.py","jc/parsers/crontab_u.py","jc/parsers/csv.py","jc/parsers/date.py","jc/parsers/df.py","jc/parsers/dig.py","jc/parsers/dir.py","jc/parsers/dmidecode.py","jc/parsers/dpkg_l.py","jc/parsers/du.py","jc/parsers/env.py","jc/parsers/file.py","jc/parsers/finger.py","jc/parsers/foo.py","jc/parsers/free.py","jc/parsers/fstab.py","jc/parsers/group.py","jc/parsers/gshadow.py","jc/parsers/hash.py","jc/parsers/hashsum.py","jc/parsers/hciconfig.py","jc/parsers/history.py","jc/parsers/hosts.py","jc/parsers/id.py","jc/parsers/ifconfig.py","jc/parsers/ini.py","jc/parsers/iostat.py","jc/parsers/iptables.py","jc/parsers/iw_scan.py","jc/parsers/jar_manifest.py","jc/parsers/jobs.py","jc/parsers/kv.py","jc/parsers/last.py","jc/parsers/ls.py","jc/parsers/lsblk.py","jc/parsers/lsmod.py","jc/parsers/lsof.py","jc/parsers/lsusb.py","jc/parsers/mount.py","jc/parsers/netstat.py","jc/parsers/nmcli.py","jc/parsers/ntpq.py","jc/parsers/passwd.py","jc/parsers/pidstat.py","jc/parsers/ping.py","jc/parsers/pip_list.py","jc/parsers/pip_show.py","jc/parsers/ps.py","jc/parsers/route.py","jc/parsers/rpm_qi.py","jc/parsers/rsync.py","jc/parsers/sfdisk.py","jc/parsers/shadow.py","jc/parsers/ss.py","jc/parsers/stat.py","jc/parsers/sysctl.py","jc/parsers/systemctl.py","jc/parsers/systemctl_lj.py","jc/parsers/systemctl_ls.py","jc/parsers/systemctl_luf.py","jc/parsers/systeminfo.py","jc/parsers/time.py","jc/parsers/timedatectl.py","jc/parsers/tracepath.py","jc/parsers/traceroute.py","jc/parsers/ufw.py","jc/parsers/ufw_appinfo.py","jc/parsers/uname.py","jc/parsers/universal.py","jc/parsers/upower.py","jc/parsers/uptime.py","jc/parsers/vmstat.py","jc/parsers/w.py","jc/parsers/wc.py","jc/parsers/who.py","jc/parsers/xml.py","jc/parsers/xrandr.py","jc/parsers/yaml.py","jc/parsers/zipinfo.py"],"file_stats":[{"name":"docs/parsers/acpi.md","lines_changed":5},{"name":"docs/parsers/airport.md","lines_changed":5},{"name":"docs/parsers/airport_s.md","lines_changed":5},{"name":"docs/parsers/arp.md","lines_changed":5},{"name":"docs/parsers/blkid.md","lines_changed":5},{"name":"docs/parsers/cksum.md","lines_changed":5},{"name":"docs/parsers/crontab.md","lines_changed":5},{"name":"docs/parsers/crontab_u.md","lines_changed":5},{"name":"docs/parsers/csv.md","lines_changed":5},{"name":"docs/parsers/date.md","lines_changed":5},{"name":"docs/parsers/df.md","lines_changed":5},{"name":"docs/parsers/dig.md","lines_changed":5},{"name":"docs/parsers/dir.md","lines_changed":5},{"name":"docs/parsers/dmidecode.md","lines_changed":5},{"name":"docs/parsers/dpkg_l.md","lines_changed":5},{"name":"docs/parsers/du.md","lines_changed":5},{"name":"docs/parsers/env.md","lines_changed":5},{"name":"docs/parsers/file.md","lines_changed":5},{"name":"docs/parsers/finger.md","lines_changed":5},{"name":"docs/parsers/free.md","lines_changed":5},{"name":"docs/parsers/fstab.md","lines_changed":5},{"name":"docs/parsers/group.md","lines_changed":5},{"name":"docs/parsers/gshadow.md","lines_changed":5},{"name":"docs/parsers/hash.md","lines_changed":5},{"name":"docs/parsers/hashsum.md","lines_changed":5},{"name":"docs/parsers/hciconfig.md","lines_changed":5},{"name":"docs/parsers/history.md","lines_changed":5},{"name":"docs/parsers/hosts.md","lines_changed":5},{"name":"docs/parsers/id.md","lines_changed":5},{"name":"docs/parsers/ifconfig.md","lines_changed":5},{"name":"docs/parsers/ini.md","lines_changed":5},{"name":"docs/parsers/iostat.md","lines_changed":5},{"name":"docs/parsers/iptables.md","lines_changed":5},{"name":"docs/parsers/iw_scan.md","lines_changed":5},{"name":"docs/parsers/jar_manifest.md","lines_changed":5},{"name":"docs/parsers/jobs.md","lines_changed":5},{"name":"docs/parsers/kv.md","lines_changed":5},{"name":"docs/parsers/last.md","lines_changed":5},{"name":"docs/parsers/ls.md","lines_changed":5},{"name":"docs/parsers/lsblk.md","lines_changed":5},{"name":"docs/parsers/lsmod.md","lines_changed":5},{"name":"docs/parsers/lsof.md","lines_changed":5},{"name":"docs/parsers/lsusb.md","lines_changed":5},{"name":"docs/parsers/mount.md","lines_changed":5},{"name":"docs/parsers/netstat.md","lines_changed":5},{"name":"docs/parsers/nmcli.md","lines_changed":5},{"name":"docs/parsers/ntpq.md","lines_changed":5},{"name":"docs/parsers/passwd.md","lines_changed":5},{"name":"docs/parsers/pidstat.md","lines_changed":5},{"name":"docs/parsers/ping.md","lines_changed":5},{"name":"docs/parsers/pip_list.md","lines_changed":5},{"name":"docs/parsers/pip_show.md","lines_changed":5},{"name":"docs/parsers/ps.md","lines_changed":5},{"name":"docs/parsers/route.md","lines_changed":5},{"name":"docs/parsers/rpm_qi.md","lines_changed":5},{"name":"docs/parsers/rsync.md","lines_changed":5},{"name":"docs/parsers/sfdisk.md","lines_changed":5},{"name":"docs/parsers/shadow.md","lines_changed":5},{"name":"docs/parsers/ss.md","lines_changed":5},{"name":"docs/parsers/stat.md","lines_changed":5},{"name":"docs/parsers/sysctl.md","lines_changed":5},{"name":"docs/parsers/systemctl.md","lines_changed":5},{"name":"docs/parsers/systemctl_lj.md","lines_changed":5},{"name":"docs/parsers/systemctl_ls.md","lines_changed":5},{"name":"docs/parsers/systemctl_luf.md","lines_changed":5},{"name":"docs/parsers/systeminfo.md","lines_changed":5},{"name":"docs/parsers/time.md","lines_changed":5},{"name":"docs/parsers/timedatectl.md","lines_changed":5},{"name":"docs/parsers/tracepath.md","lines_changed":5},{"name":"docs/parsers/traceroute.md","lines_changed":5},{"name":"docs/parsers/ufw.md","lines_changed":5},{"name":"docs/parsers/ufw_appinfo.md","lines_changed":5},{"name":"docs/parsers/uname.md","lines_changed":5},{"name":"docs/parsers/universal.md","lines_changed":18},{"name":"docs/parsers/upower.md","lines_changed":5},{"name":"docs/parsers/uptime.md","lines_changed":5},{"name":"docs/parsers/vmstat.md","lines_changed":5},{"name":"docs/parsers/w.md","lines_changed":5},{"name":"docs/parsers/wc.md","lines_changed":5},{"name":"docs/parsers/who.md","lines_changed":5},{"name":"docs/parsers/xml.md","lines_changed":5},{"name":"docs/parsers/xrandr.md","lines_changed":5},{"name":"docs/parsers/yaml.md","lines_changed":5},{"name":"docs/parsers/zipinfo.md","lines_changed":5},{"name":"jc/parsers/acpi.py","lines_changed":5},{"name":"jc/parsers/airport.py","lines_changed":5},{"name":"jc/parsers/airport_s.py","lines_changed":5},{"name":"jc/parsers/arp.py","lines_changed":5},{"name":"jc/parsers/blkid.py","lines_changed":5},{"name":"jc/parsers/cksum.py","lines_changed":5},{"name":"jc/parsers/crontab.py","lines_changed":5},{"name":"jc/parsers/crontab_u.py","lines_changed":5},{"name":"jc/parsers/csv.py","lines_changed":5},{"name":"jc/parsers/date.py","lines_changed":5},{"name":"jc/parsers/df.py","lines_changed":5},{"name":"jc/parsers/dig.py","lines_changed":5},{"name":"jc/parsers/dir.py","lines_changed":5},{"name":"jc/parsers/dmidecode.py","lines_changed":5},{"name":"jc/parsers/dpkg_l.py","lines_changed":5},{"name":"jc/parsers/du.py","lines_changed":5},{"name":"jc/parsers/env.py","lines_changed":5},{"name":"jc/parsers/file.py","lines_changed":5},{"name":"jc/parsers/finger.py","lines_changed":5},{"name":"jc/parsers/foo.py","lines_changed":5},{"name":"jc/parsers/free.py","lines_changed":5},{"name":"jc/parsers/fstab.py","lines_changed":5},{"name":"jc/parsers/group.py","lines_changed":5},{"name":"jc/parsers/gshadow.py","lines_changed":5},{"name":"jc/parsers/hash.py","lines_changed":5},{"name":"jc/parsers/hashsum.py","lines_changed":5},{"name":"jc/parsers/hciconfig.py","lines_changed":5},{"name":"jc/parsers/history.py","lines_changed":5},{"name":"jc/parsers/hosts.py","lines_changed":5},{"name":"jc/parsers/id.py","lines_changed":5},{"name":"jc/parsers/ifconfig.py","lines_changed":5},{"name":"jc/parsers/ini.py","lines_changed":5},{"name":"jc/parsers/iostat.py","lines_changed":5},{"name":"jc/parsers/iptables.py","lines_changed":5},{"name":"jc/parsers/iw_scan.py","lines_changed":5},{"name":"jc/parsers/jar_manifest.py","lines_changed":5},{"name":"jc/parsers/jobs.py","lines_changed":5},{"name":"jc/parsers/kv.py","lines_changed":5},{"name":"jc/parsers/last.py","lines_changed":5},{"name":"jc/parsers/ls.py","lines_changed":5},{"name":"jc/parsers/lsblk.py","lines_changed":5},{"name":"jc/parsers/lsmod.py","lines_changed":5},{"name":"jc/parsers/lsof.py","lines_changed":5},{"name":"jc/parsers/lsusb.py","lines_changed":5},{"name":"jc/parsers/mount.py","lines_changed":5},{"name":"jc/parsers/netstat.py","lines_changed":5},{"name":"jc/parsers/nmcli.py","lines_changed":5},{"name":"jc/parsers/ntpq.py","lines_changed":5},{"name":"jc/parsers/passwd.py","lines_changed":5},{"name":"jc/parsers/pidstat.py","lines_changed":5},{"name":"jc/parsers/ping.py","lines_changed":5},{"name":"jc/parsers/pip_list.py","lines_changed":5},{"name":"jc/parsers/pip_show.py","lines_changed":5},{"name":"jc/parsers/ps.py","lines_changed":5},{"name":"jc/parsers/route.py","lines_changed":5},{"name":"jc/parsers/rpm_qi.py","lines_changed":5},{"name":"jc/parsers/rsync.py","lines_changed":5},{"name":"jc/parsers/sfdisk.py","lines_changed":5},{"name":"jc/parsers/shadow.py","lines_changed":5},{"name":"jc/parsers/ss.py","lines_changed":5},{"name":"jc/parsers/stat.py","lines_changed":5},{"name":"jc/parsers/sysctl.py","lines_changed":5},{"name":"jc/parsers/systemctl.py","lines_changed":5},{"name":"jc/parsers/systemctl_lj.py","lines_changed":5},{"name":"jc/parsers/systemctl_ls.py","lines_changed":5},{"name":"jc/parsers/systemctl_luf.py","lines_changed":5},{"name":"jc/parsers/systeminfo.py","lines_changed":5},{"name":"jc/parsers/time.py","lines_changed":5},{"name":"jc/parsers/timedatectl.py","lines_changed":5},{"name":"jc/parsers/tracepath.py","lines_changed":5},{"name":"jc/parsers/traceroute.py","lines_changed":5},{"name":"jc/parsers/ufw.py","lines_changed":5},{"name":"jc/parsers/ufw_appinfo.py","lines_changed":5},{"name":"jc/parsers/uname.py","lines_changed":5},{"name":"jc/parsers/universal.py","lines_changed":18},{"name":"jc/parsers/upower.py","lines_changed":5},{"name":"jc/parsers/uptime.py","lines_changed":5},{"name":"jc/parsers/vmstat.py","lines_changed":5},{"name":"jc/parsers/w.py","lines_changed":5},{"name":"jc/parsers/wc.py","lines_changed":5},{"name":"jc/parsers/who.py","lines_changed":5},{"name":"jc/parsers/xml.py","lines_changed":5},{"name":"jc/parsers/xrandr.py","lines_changed":5},{"name":"jc/parsers/yaml.py","lines_changed":5},{"name":"jc/parsers/zipinfo.py","lines_changed":5}]}},{"commit":"b784db404d0569a4c630eb124b37b0b1d0846453","message":"streaming doc formatting update","stats":{"files_changed":17,"insertions":87,"deletions":166,"files":["docs/parsers/csv_s.md","docs/parsers/iostat_s.md","docs/parsers/ls_s.md","docs/parsers/pidstat_s.md","docs/parsers/ping_s.md","docs/parsers/rsync_s.md","docs/parsers/stat_s.md","docs/parsers/vmstat_s.md","jc/parsers/csv_s.py","jc/parsers/foo_s.py","jc/parsers/iostat_s.py","jc/parsers/ls_s.py","jc/parsers/pidstat_s.py","jc/parsers/ping_s.py","jc/parsers/rsync_s.py","jc/parsers/stat_s.py","jc/parsers/vmstat_s.py"],"file_stats":[{"name":"docs/parsers/csv_s.md","lines_changed":13},{"name":"docs/parsers/iostat_s.md","lines_changed":20},{"name":"docs/parsers/ls_s.md","lines_changed":16},{"name":"docs/parsers/pidstat_s.md","lines_changed":9},{"name":"docs/parsers/ping_s.md","lines_changed":13},{"name":"docs/parsers/rsync_s.md","lines_changed":13},{"name":"docs/parsers/stat_s.md","lines_changed":13},{"name":"docs/parsers/vmstat_s.md","lines_changed":23},{"name":"jc/parsers/csv_s.py","lines_changed":13},{"name":"jc/parsers/foo_s.py","lines_changed":13},{"name":"jc/parsers/iostat_s.py","lines_changed":20},{"name":"jc/parsers/ls_s.py","lines_changed":16},{"name":"jc/parsers/pidstat_s.py","lines_changed":9},{"name":"jc/parsers/ping_s.py","lines_changed":13},{"name":"jc/parsers/rsync_s.py","lines_changed":13},{"name":"jc/parsers/stat_s.py","lines_changed":13},{"name":"jc/parsers/vmstat_s.py","lines_changed":23}]}},{"commit":"8aee4517bb4c2eebdd9873f7eb0827cd33b85519","message":"doc formatting","stats":{"files_changed":2,"insertions":12,"deletions":26,"files":["docs/parsers/pidstat_s.md","jc/parsers/pidstat_s.py"],"file_stats":[{"name":"docs/parsers/pidstat_s.md","lines_changed":19},{"name":"jc/parsers/pidstat_s.py","lines_changed":19}]}},{"commit":"a5fb8fbf94b3b80bef82f078ad6582260b13e374","message":"streaming doc update","stats":{"files_changed":17,"insertions":164,"deletions":148,"files":["docs/parsers/csv_s.md","docs/parsers/iostat_s.md","docs/parsers/ls_s.md","docs/parsers/pidstat_s.md","docs/parsers/ping_s.md","docs/parsers/rsync_s.md","docs/parsers/stat_s.md","docs/parsers/vmstat_s.md","jc/parsers/csv_s.py","jc/parsers/foo_s.py","jc/parsers/iostat_s.py","jc/parsers/ls_s.py","jc/parsers/pidstat_s.py","jc/parsers/ping_s.py","jc/parsers/rsync_s.py","jc/parsers/stat_s.py","jc/parsers/vmstat_s.py"],"file_stats":[{"name":"docs/parsers/csv_s.md","lines_changed":12},{"name":"docs/parsers/iostat_s.md","lines_changed":14},{"name":"docs/parsers/ls_s.md","lines_changed":14},{"name":"docs/parsers/pidstat_s.md","lines_changed":53},{"name":"docs/parsers/ping_s.md","lines_changed":14},{"name":"docs/parsers/rsync_s.md","lines_changed":14},{"name":"docs/parsers/stat_s.md","lines_changed":14},{"name":"docs/parsers/vmstat_s.md","lines_changed":14},{"name":"jc/parsers/csv_s.py","lines_changed":12},{"name":"jc/parsers/foo_s.py","lines_changed":14},{"name":"jc/parsers/iostat_s.py","lines_changed":14},{"name":"jc/parsers/ls_s.py","lines_changed":14},{"name":"jc/parsers/pidstat_s.py","lines_changed":53},{"name":"jc/parsers/ping_s.py","lines_changed":14},{"name":"jc/parsers/rsync_s.py","lines_changed":14},{"name":"jc/parsers/stat_s.py","lines_changed":14},{"name":"jc/parsers/vmstat_s.py","lines_changed":14}]}},{"commit":"b9365e2ac28c3eacf53bc101857f7f1d7286ec20","message":"add pidstat-s tests","stats":{"files_changed":4,"insertions":74,"deletions":0,"files":[".../centos-7.7/pidstat-hdlrsuw-2-5-streaming.json",".../centos-7.7/pidstat-hdlrsuw-streaming.json",".../fixtures/centos-7.7/pidstat-hl-streaming.json","tests/test_pidstat_s.py"],"file_stats":[{"name":".../centos-7.7/pidstat-hdlrsuw-2-5-streaming.json","lines_changed":1},{"name":".../centos-7.7/pidstat-hdlrsuw-streaming.json","lines_changed":1},{"name":".../fixtures/centos-7.7/pidstat-hl-streaming.json","lines_changed":1},{"name":"tests/test_pidstat_s.py","lines_changed":71}]}},{"commit":"696338c1a3d462afbe677a6f2ebe08d06ef4046a","message":"add streaming test template","stats":{"files_changed":1,"insertions":38,"deletions":0,"files":["tests/_test_foo_s.py"],"file_stats":[{"name":"tests/_test_foo_s.py","lines_changed":38}]}},{"commit":"4f0616190bb842411353d65650b78a65d8cbdc28","message":"doc update","stats":{"files_changed":3,"insertions":3,"deletions":3,"files":["docs/parsers/pidstat_s.md","docs/parsers/rsync_s.md","man/jc.1"],"file_stats":[{"name":"docs/parsers/pidstat_s.md","lines_changed":2},{"name":"docs/parsers/rsync_s.md","lines_changed":2},{"name":"man/jc.1","lines_changed":2}]}},{"commit":"3278cb0de301ee542b1fe8245a6c359193373b6b","message":"add type hints","stats":{"files_changed":2,"insertions":15,"deletions":10,"files":["docs/parsers/arp.md","jc/parsers/arp.py"],"file_stats":[{"name":"docs/parsers/arp.md","lines_changed":2},{"name":"jc/parsers/arp.py","lines_changed":23}]}},{"commit":"4fc04256a567c502a88ac8a1bd189746387c93f1","message":"rollback noReturn to tuple","stats":{"files_changed":3,"insertions":6,"deletions":6,"files":["jc/parsers/foo_s.py","jc/parsers/pidstat_s.py","jc/parsers/rsync_s.py"],"file_stats":[{"name":"jc/parsers/foo_s.py","lines_changed":4},{"name":"jc/parsers/pidstat_s.py","lines_changed":4},{"name":"jc/parsers/rsync_s.py","lines_changed":4}]}},{"commit":"e4ae0fea63c0386c1b3239607fd6a58738d23633","message":"fix type annotation","stats":{"files_changed":5,"insertions":8,"deletions":8,"files":["docs/parsers/pidstat_s.md","docs/parsers/rsync_s.md","jc/parsers/foo_s.py","jc/parsers/pidstat_s.py","jc/parsers/rsync_s.py"],"file_stats":[{"name":"docs/parsers/pidstat_s.md","lines_changed":2},{"name":"docs/parsers/rsync_s.md","lines_changed":2},{"name":"jc/parsers/foo_s.py","lines_changed":4},{"name":"jc/parsers/pidstat_s.py","lines_changed":4},{"name":"jc/parsers/rsync_s.py","lines_changed":4}]}},{"commit":"d3727ea0906d6167aa48c340519242b010469d98","message":"doc update","stats":{"files_changed":4,"insertions":99,"deletions":1,"files":["CHANGELOG","README.md","docs/parsers/pidstat_s.md","man/jc.1"],"file_stats":[{"name":"CHANGELOG","lines_changed":3},{"name":"README.md","lines_changed":1},{"name":"docs/parsers/pidstat_s.md","lines_changed":91},{"name":"man/jc.1","lines_changed":5}]}},{"commit":"0d13909cf63d14008607c5640d074ab4073115e5","message":"add pidstat-s parser","stats":{"files_changed":2,"insertions":168,"deletions":0,"files":["jc/lib.py","jc/parsers/pidstat_s.py"],"file_stats":[{"name":"jc/lib.py","lines_changed":1},{"name":"jc/parsers/pidstat_s.py","lines_changed":167}]}},{"commit":"c52ca20e285895d2afb685a2a5ca275de7901033","message":"fix comment","stats":{"files_changed":1,"insertions":1,"deletions":1,"files":["jc/parsers/pidstat.py"],"file_stats":[{"name":"jc/parsers/pidstat.py","lines_changed":2}]}},{"commit":"21f27f26c81c75234221a5193c7d3903323e2032","message":"add pidstat tests","stats":{"files_changed":4,"insertions":72,"deletions":0,"files":["tests/fixtures/centos-7.7/pidstat-hdlrsuw-2-5.json","tests/fixtures/centos-7.7/pidstat-hdlrsuw.json","tests/fixtures/centos-7.7/pidstat-hl.json","tests/test_pidstat.py"],"file_stats":[{"name":"tests/fixtures/centos-7.7/pidstat-hdlrsuw-2-5.json","lines_changed":1},{"name":"tests/fixtures/centos-7.7/pidstat-hdlrsuw.json","lines_changed":1},{"name":"tests/fixtures/centos-7.7/pidstat-hl.json","lines_changed":1},{"name":"tests/test_pidstat.py","lines_changed":69}]}},{"commit":"5e7a87f39782d12070a895440ff541800df91b9c","message":"add test template","stats":{"files_changed":1,"insertions":35,"deletions":0,"files":["tests/_test_foo.py"],"file_stats":[{"name":"tests/_test_foo.py","lines_changed":35}]}},{"commit":"845d763829acd03fff1d2fad6e9691f04bd1a2aa","message":"format docs to fit 80 columns","stats":{"files_changed":2,"insertions":4,"deletions":4,"files":["docs/parsers/pidstat.md","jc/parsers/pidstat.py"],"file_stats":[{"name":"docs/parsers/pidstat.md","lines_changed":4},{"name":"jc/parsers/pidstat.py","lines_changed":4}]}},{"commit":"f5c7d52ec72f5ff4b77d5ac4491f330575b9f10f","message":"formatting","stats":{"files_changed":2,"insertions":2,"deletions":10,"files":["man/jc.1","templates/manpage_template"],"file_stats":[{"name":"man/jc.1","lines_changed":6},{"name":"templates/manpage_template","lines_changed":6}]}},{"commit":"c3198a58744803f52113f80967c7259d781e2328","message":"formatting","stats":{"files_changed":2,"insertions":22,"deletions":12,"files":["man/jc.1","templates/manpage_template"],"file_stats":[{"name":"man/jc.1","lines_changed":17},{"name":"templates/manpage_template","lines_changed":17}]}},{"commit":"bbd4afa73542ba6596aed77426bb494fbcf23196","message":"add pidstat to docs","stats":{"files_changed":2,"insertions":7,"deletions":1,"files":["README.md","man/jc.1"],"file_stats":[{"name":"README.md","lines_changed":1},{"name":"man/jc.1","lines_changed":7}]}},{"commit":"ae754a84bf5fc35b248bbc5f7b0fa8e871765819","message":"doc update","stats":{"files_changed":3,"insertions":263,"deletions":33,"files":["docs/parsers/arp.md","docs/parsers/pidstat.md","jc/parsers/pidstat.py"],"file_stats":[{"name":"docs/parsers/arp.md","lines_changed":2},{"name":"docs/parsers/pidstat.md","lines_changed":156},{"name":"jc/parsers/pidstat.py","lines_changed":138}]}},{"commit":"3389eb5debe0f0ba01ece01e20048608bf357e70","message":"initial working parser","stats":{"files_changed":4,"insertions":219,"deletions":9,"files":["jc/parsers/pidstat.py","tests/fixtures/centos-7.7/pidstat-hdlrsuw-2-5.out","tests/fixtures/centos-7.7/pidstat-hdlrsuw.out","tests/fixtures/centos-7.7/pidstat-hl.out"],"file_stats":[{"name":"jc/parsers/pidstat.py","lines_changed":52},{"name":"tests/fixtures/centos-7.7/pidstat-hdlrsuw-2-5.out","lines_changed":47},{"name":"tests/fixtures/centos-7.7/pidstat-hdlrsuw.out","lines_changed":83},{"name":"tests/fixtures/centos-7.7/pidstat-hl.out","lines_changed":46}]}},{"commit":"01f2c1e71f87ab401d487be4d6d150cb67c91437","message":"add pidstat parser","stats":{"files_changed":5,"insertions":162,"deletions":2,"files":["CHANGELOG","jc/lib.py","jc/parsers/pidstat.py","setup.py","tests/fixtures/centos-7.7/pidstat.out"],"file_stats":[{"name":"CHANGELOG","lines_changed":3},{"name":"jc/lib.py","lines_changed":3},{"name":"jc/parsers/pidstat.py","lines_changed":112},{"name":"setup.py","lines_changed":2},{"name":"tests/fixtures/centos-7.7/pidstat.out","lines_changed":44}]}},{"commit":"8bfbf8f1bcd233a8ecd34012e140eb29164ca5fb","message":"simplify error message","stats":{"files_changed":1,"insertions":1,"deletions":1,"files":["jc/cli.py"],"file_stats":[{"name":"jc/cli.py","lines_changed":2}]}},{"commit":"f4242669bac3af5eb196c46d4146823aacec40ab","message":"minor cleanup","stats":{"files_changed":1,"insertions":2,"deletions":10,"files":["jc/parsers/arp.py"],"file_stats":[{"name":"jc/parsers/arp.py","lines_changed":12}]}},{"commit":"bebd9331f1fb9b80f8cb4a5cfacd68461743004e","message":"Merge pull request #211 from kellyjonbrazil/master"},{"commit":"ac61e9ad2c9c4e864db02db04cbf907fb0efd99b","message":"add pypi link","stats":{"files_changed":2,"insertions":2,"deletions":0,"files":["README.md","templates/readme_template"],"file_stats":[{"name":"README.md","lines_changed":1},{"name":"templates/readme_template","lines_changed":1}]}},{"commit":"648ef4d8a9c33a36d4bb2c135fe59b031de8f24c","message":"update badge links","stats":{"files_changed":2,"insertions":4,"deletions":4,"files":["README.md","templates/readme_template"],"file_stats":[{"name":"README.md","lines_changed":4},{"name":"templates/readme_template","lines_changed":4}]}},{"commit":"727fc9a701e9aae75d3d2b708010da1d0dc8781a","message":"doc update","stats":{"files_changed":2,"insertions":2,"deletions":2,"files":["docs/parsers/date.md","man/jc.1"],"file_stats":[{"name":"docs/parsers/date.md","lines_changed":2},{"name":"man/jc.1","lines_changed":2}]}},{"commit":"306512d6bb53af18516fc10b15c7ec79cb02cc98","message":"force AM/PM to uppercase in date parser","stats":{"files_changed":4,"insertions":7,"deletions":4,"files":["CHANGELOG","jc/lib.py","jc/parsers/date.py","setup.py"],"file_stats":[{"name":"CHANGELOG","lines_changed":3},{"name":"jc/lib.py","lines_changed":2},{"name":"jc/parsers/date.py","lines_changed":4},{"name":"setup.py","lines_changed":2}]}},{"commit":"6afb1d389ca9dfd7880386d380fee032b7eb92e2","message":"Merge pull request #209 from kellyjonbrazil/dev"},{"commit":"98619834818c181cb50a9605fe166b6153c46095","message":"doc update","stats":{"files_changed":1,"insertions":1,"deletions":1,"files":["man/jc.1"],"file_stats":[{"name":"man/jc.1","lines_changed":2}]}},{"commit":"ca79053db08542849136ae13fdb4d1d90b79a7e5","message":"document pydoc version","stats":{"files_changed":1,"insertions":1,"deletions":1,"files":["docgen.sh"],"file_stats":[{"name":"docgen.sh","lines_changed":2}]}},{"commit":"29c263f87810f8566ebdad2358e99896391adfd8","message":"pydoc formatting fixes","stats":{"files_changed":93,"insertions":115,"deletions":115,"files":["docs/lib.md","docs/parsers/acpi.md","docs/parsers/airport.md","docs/parsers/airport_s.md","docs/parsers/arp.md","docs/parsers/blkid.md","docs/parsers/cksum.md","docs/parsers/crontab.md","docs/parsers/crontab_u.md","docs/parsers/csv.md","docs/parsers/csv_s.md","docs/parsers/date.md","docs/parsers/df.md","docs/parsers/dig.md","docs/parsers/dir.md","docs/parsers/dmidecode.md","docs/parsers/dpkg_l.md","docs/parsers/du.md","docs/parsers/env.md","docs/parsers/file.md","docs/parsers/finger.md","docs/parsers/free.md","docs/parsers/fstab.md","docs/parsers/group.md","docs/parsers/gshadow.md","docs/parsers/hash.md","docs/parsers/hashsum.md","docs/parsers/hciconfig.md","docs/parsers/history.md","docs/parsers/hosts.md","docs/parsers/id.md","docs/parsers/ifconfig.md","docs/parsers/ini.md","docs/parsers/iostat.md","docs/parsers/iostat_s.md","docs/parsers/iptables.md","docs/parsers/iw_scan.md","docs/parsers/jar_manifest.md","docs/parsers/jobs.md","docs/parsers/kv.md","docs/parsers/last.md","docs/parsers/ls.md","docs/parsers/ls_s.md","docs/parsers/lsblk.md","docs/parsers/lsmod.md","docs/parsers/lsof.md","docs/parsers/lsusb.md","docs/parsers/mount.md","docs/parsers/netstat.md","docs/parsers/nmcli.md","docs/parsers/ntpq.md","docs/parsers/passwd.md","docs/parsers/ping.md","docs/parsers/ping_s.md","docs/parsers/pip_list.md","docs/parsers/pip_show.md","docs/parsers/ps.md","docs/parsers/route.md","docs/parsers/rpm_qi.md","docs/parsers/rsync.md","docs/parsers/rsync_s.md","docs/parsers/sfdisk.md","docs/parsers/shadow.md","docs/parsers/ss.md","docs/parsers/stat.md","docs/parsers/stat_s.md","docs/parsers/sysctl.md","docs/parsers/systemctl.md","docs/parsers/systemctl_lj.md","docs/parsers/systemctl_ls.md","docs/parsers/systemctl_luf.md","docs/parsers/systeminfo.md","docs/parsers/time.md","docs/parsers/timedatectl.md","docs/parsers/tracepath.md","docs/parsers/traceroute.md","docs/parsers/ufw.md","docs/parsers/ufw_appinfo.md","docs/parsers/uname.md","docs/parsers/universal.md","docs/parsers/upower.md","docs/parsers/uptime.md","docs/parsers/vmstat.md","docs/parsers/vmstat_s.md","docs/parsers/w.md","docs/parsers/wc.md","docs/parsers/who.md","docs/parsers/xml.md","docs/parsers/xrandr.md","docs/parsers/yaml.md","docs/parsers/zipinfo.md","docs/streaming.md","docs/utils.md"],"file_stats":[{"name":"docs/lib.md","lines_changed":16},{"name":"docs/parsers/acpi.md","lines_changed":2},{"name":"docs/parsers/airport.md","lines_changed":2},{"name":"docs/parsers/airport_s.md","lines_changed":2},{"name":"docs/parsers/arp.md","lines_changed":2},{"name":"docs/parsers/blkid.md","lines_changed":2},{"name":"docs/parsers/cksum.md","lines_changed":2},{"name":"docs/parsers/crontab.md","lines_changed":2},{"name":"docs/parsers/crontab_u.md","lines_changed":2},{"name":"docs/parsers/csv.md","lines_changed":2},{"name":"docs/parsers/csv_s.md","lines_changed":2},{"name":"docs/parsers/date.md","lines_changed":2},{"name":"docs/parsers/df.md","lines_changed":2},{"name":"docs/parsers/dig.md","lines_changed":2},{"name":"docs/parsers/dir.md","lines_changed":2},{"name":"docs/parsers/dmidecode.md","lines_changed":2},{"name":"docs/parsers/dpkg_l.md","lines_changed":2},{"name":"docs/parsers/du.md","lines_changed":2},{"name":"docs/parsers/env.md","lines_changed":2},{"name":"docs/parsers/file.md","lines_changed":2},{"name":"docs/parsers/finger.md","lines_changed":2},{"name":"docs/parsers/free.md","lines_changed":2},{"name":"docs/parsers/fstab.md","lines_changed":2},{"name":"docs/parsers/group.md","lines_changed":2},{"name":"docs/parsers/gshadow.md","lines_changed":2},{"name":"docs/parsers/hash.md","lines_changed":2},{"name":"docs/parsers/hashsum.md","lines_changed":2},{"name":"docs/parsers/hciconfig.md","lines_changed":2},{"name":"docs/parsers/history.md","lines_changed":2},{"name":"docs/parsers/hosts.md","lines_changed":2},{"name":"docs/parsers/id.md","lines_changed":2},{"name":"docs/parsers/ifconfig.md","lines_changed":2},{"name":"docs/parsers/ini.md","lines_changed":2},{"name":"docs/parsers/iostat.md","lines_changed":2},{"name":"docs/parsers/iostat_s.md","lines_changed":2},{"name":"docs/parsers/iptables.md","lines_changed":2},{"name":"docs/parsers/iw_scan.md","lines_changed":2},{"name":"docs/parsers/jar_manifest.md","lines_changed":2},{"name":"docs/parsers/jobs.md","lines_changed":2},{"name":"docs/parsers/kv.md","lines_changed":2},{"name":"docs/parsers/last.md","lines_changed":2},{"name":"docs/parsers/ls.md","lines_changed":2},{"name":"docs/parsers/ls_s.md","lines_changed":2},{"name":"docs/parsers/lsblk.md","lines_changed":2},{"name":"docs/parsers/lsmod.md","lines_changed":2},{"name":"docs/parsers/lsof.md","lines_changed":2},{"name":"docs/parsers/lsusb.md","lines_changed":2},{"name":"docs/parsers/mount.md","lines_changed":2},{"name":"docs/parsers/netstat.md","lines_changed":2},{"name":"docs/parsers/nmcli.md","lines_changed":2},{"name":"docs/parsers/ntpq.md","lines_changed":2},{"name":"docs/parsers/passwd.md","lines_changed":2},{"name":"docs/parsers/ping.md","lines_changed":2},{"name":"docs/parsers/ping_s.md","lines_changed":2},{"name":"docs/parsers/pip_list.md","lines_changed":2},{"name":"docs/parsers/pip_show.md","lines_changed":2},{"name":"docs/parsers/ps.md","lines_changed":2},{"name":"docs/parsers/route.md","lines_changed":2},{"name":"docs/parsers/rpm_qi.md","lines_changed":2},{"name":"docs/parsers/rsync.md","lines_changed":2},{"name":"docs/parsers/rsync_s.md","lines_changed":2},{"name":"docs/parsers/sfdisk.md","lines_changed":2},{"name":"docs/parsers/shadow.md","lines_changed":2},{"name":"docs/parsers/ss.md","lines_changed":2},{"name":"docs/parsers/stat.md","lines_changed":2},{"name":"docs/parsers/stat_s.md","lines_changed":2},{"name":"docs/parsers/sysctl.md","lines_changed":2},{"name":"docs/parsers/systemctl.md","lines_changed":2},{"name":"docs/parsers/systemctl_lj.md","lines_changed":2},{"name":"docs/parsers/systemctl_ls.md","lines_changed":2},{"name":"docs/parsers/systemctl_luf.md","lines_changed":2},{"name":"docs/parsers/systeminfo.md","lines_changed":2},{"name":"docs/parsers/time.md","lines_changed":2},{"name":"docs/parsers/timedatectl.md","lines_changed":2},{"name":"docs/parsers/tracepath.md","lines_changed":2},{"name":"docs/parsers/traceroute.md","lines_changed":2},{"name":"docs/parsers/ufw.md","lines_changed":2},{"name":"docs/parsers/ufw_appinfo.md","lines_changed":2},{"name":"docs/parsers/uname.md","lines_changed":2},{"name":"docs/parsers/universal.md","lines_changed":4},{"name":"docs/parsers/upower.md","lines_changed":2},{"name":"docs/parsers/uptime.md","lines_changed":2},{"name":"docs/parsers/vmstat.md","lines_changed":2},{"name":"docs/parsers/vmstat_s.md","lines_changed":2},{"name":"docs/parsers/w.md","lines_changed":2},{"name":"docs/parsers/wc.md","lines_changed":2},{"name":"docs/parsers/who.md","lines_changed":2},{"name":"docs/parsers/xml.md","lines_changed":2},{"name":"docs/parsers/xrandr.md","lines_changed":2},{"name":"docs/parsers/yaml.md","lines_changed":2},{"name":"docs/parsers/zipinfo.md","lines_changed":2},{"name":"docs/streaming.md","lines_changed":12},{"name":"docs/utils.md","lines_changed":20}]}},{"commit":"128c3c170abc6a702ae044b073fb9d992d4262b1","message":"doc update","stats":{"files_changed":1,"insertions":2,"deletions":1,"files":["CHANGELOG"],"file_stats":[{"name":"CHANGELOG","lines_changed":3}]}},{"commit":"a531ab8864fca27b55d83b55055eaef1c36128cd","message":"formatting","stats":{"files_changed":2,"insertions":4,"deletions":4,"files":["docs/readme.md","jc/__init__.py"],"file_stats":[{"name":"docs/readme.md","lines_changed":4},{"name":"jc/__init__.py","lines_changed":4}]}},{"commit":"0c1be7cc11ec75a5738483d68d053e702eb34fc1","message":"reduce dig example size","stats":{"files_changed":2,"insertions":4,"deletions":18,"files":["README.md","templates/readme_template"],"file_stats":[{"name":"README.md","lines_changed":11},{"name":"templates/readme_template","lines_changed":11}]}},{"commit":"e4222b45f54e6179e22d7924c083e4642b9974ae","message":"fix names to mod names","stats":{"files_changed":1,"insertions":2,"deletions":2,"files":["jc/lib.py"],"file_stats":[{"name":"jc/lib.py","lines_changed":4}]}},{"commit":"ac32c69c31e8eff22252d7aded08f6cb14622086","message":"formatting","stats":{"files_changed":2,"insertions":2,"deletions":2,"files":["docs/parsers/universal.md","jc/parsers/universal.py"],"file_stats":[{"name":"docs/parsers/universal.md","lines_changed":2},{"name":"jc/parsers/universal.py","lines_changed":2}]}},{"commit":"cb2dfeac8d44b733ad9d364e8c6d233a381bfae1","message":"change name to JSON Convert","stats":{"files_changed":199,"insertions":334,"deletions":326,"files":["README.md","docgen.sh","docs/lib.md","docs/parsers/acpi.md","docs/parsers/airport.md","docs/parsers/airport_s.md","docs/parsers/arp.md","docs/parsers/blkid.md","docs/parsers/cksum.md","docs/parsers/crontab.md","docs/parsers/crontab_u.md","docs/parsers/csv.md","docs/parsers/csv_s.md","docs/parsers/date.md","docs/parsers/df.md","docs/parsers/dig.md","docs/parsers/dir.md","docs/parsers/dmidecode.md","docs/parsers/dpkg_l.md","docs/parsers/du.md","docs/parsers/env.md","docs/parsers/file.md","docs/parsers/finger.md","docs/parsers/free.md","docs/parsers/fstab.md","docs/parsers/group.md","docs/parsers/gshadow.md","docs/parsers/hash.md","docs/parsers/hashsum.md","docs/parsers/hciconfig.md","docs/parsers/history.md","docs/parsers/hosts.md","docs/parsers/id.md","docs/parsers/ifconfig.md","docs/parsers/ini.md","docs/parsers/iostat.md","docs/parsers/iostat_s.md","docs/parsers/iptables.md","docs/parsers/iw_scan.md","docs/parsers/jar_manifest.md","docs/parsers/jobs.md","docs/parsers/kv.md","docs/parsers/last.md","docs/parsers/ls.md","docs/parsers/ls_s.md","docs/parsers/lsblk.md","docs/parsers/lsmod.md","docs/parsers/lsof.md","docs/parsers/lsusb.md","docs/parsers/mount.md","docs/parsers/netstat.md","docs/parsers/nmcli.md","docs/parsers/ntpq.md","docs/parsers/passwd.md","docs/parsers/ping.md","docs/parsers/ping_s.md","docs/parsers/pip_list.md","docs/parsers/pip_show.md","docs/parsers/ps.md","docs/parsers/route.md","docs/parsers/rpm_qi.md","docs/parsers/rsync.md","docs/parsers/rsync_s.md","docs/parsers/sfdisk.md","docs/parsers/shadow.md","docs/parsers/ss.md","docs/parsers/stat.md","docs/parsers/stat_s.md","docs/parsers/sysctl.md","docs/parsers/systemctl.md","docs/parsers/systemctl_lj.md","docs/parsers/systemctl_ls.md","docs/parsers/systemctl_luf.md","docs/parsers/systeminfo.md","docs/parsers/time.md","docs/parsers/timedatectl.md","docs/parsers/tracepath.md","docs/parsers/traceroute.md","docs/parsers/ufw.md","docs/parsers/ufw_appinfo.md","docs/parsers/uname.md","docs/parsers/universal.md","docs/parsers/upower.md","docs/parsers/uptime.md","docs/parsers/vmstat.md","docs/parsers/vmstat_s.md","docs/parsers/w.md","docs/parsers/wc.md","docs/parsers/who.md","docs/parsers/xml.md","docs/parsers/xrandr.md","docs/parsers/yaml.md","docs/parsers/zipinfo.md","docs/readme.md","docs/streaming.md","docs/utils.md","jc/__init__.py","jc/cli.py","jc/exceptions.py","jc/lib.py","jc/parsers/acpi.py","jc/parsers/airport.py","jc/parsers/airport_s.py","jc/parsers/arp.py","jc/parsers/blkid.py","jc/parsers/cksum.py","jc/parsers/crontab.py","jc/parsers/crontab_u.py","jc/parsers/csv.py","jc/parsers/csv_s.py","jc/parsers/date.py","jc/parsers/df.py","jc/parsers/dig.py","jc/parsers/dir.py","jc/parsers/dmidecode.py","jc/parsers/dpkg_l.py","jc/parsers/du.py","jc/parsers/env.py","jc/parsers/file.py","jc/parsers/finger.py","jc/parsers/foo.py","jc/parsers/foo_s.py","jc/parsers/free.py","jc/parsers/fstab.py","jc/parsers/group.py","jc/parsers/gshadow.py","jc/parsers/hash.py","jc/parsers/hashsum.py","jc/parsers/hciconfig.py","jc/parsers/history.py","jc/parsers/hosts.py","jc/parsers/id.py","jc/parsers/ifconfig.py","jc/parsers/ini.py","jc/parsers/iostat.py","jc/parsers/iostat_s.py","jc/parsers/iptables.py","jc/parsers/iw_scan.py","jc/parsers/jar_manifest.py","jc/parsers/jobs.py","jc/parsers/kv.py","jc/parsers/last.py","jc/parsers/ls.py","jc/parsers/ls_s.py","jc/parsers/lsblk.py","jc/parsers/lsmod.py","jc/parsers/lsof.py","jc/parsers/lsusb.py","jc/parsers/mount.py","jc/parsers/netstat.py","jc/parsers/netstat_freebsd_osx.py","jc/parsers/netstat_linux.py","jc/parsers/nmcli.py","jc/parsers/ntpq.py","jc/parsers/passwd.py","jc/parsers/ping.py","jc/parsers/ping_s.py","jc/parsers/pip_list.py","jc/parsers/pip_show.py","jc/parsers/ps.py","jc/parsers/route.py","jc/parsers/rpm_qi.py","jc/parsers/rsync.py","jc/parsers/rsync_s.py","jc/parsers/sfdisk.py","jc/parsers/shadow.py","jc/parsers/ss.py","jc/parsers/stat.py","jc/parsers/stat_s.py","jc/parsers/sysctl.py","jc/parsers/systemctl.py","jc/parsers/systemctl_lj.py","jc/parsers/systemctl_ls.py","jc/parsers/systemctl_luf.py","jc/parsers/systeminfo.py","jc/parsers/time.py","jc/parsers/timedatectl.py","jc/parsers/tracepath.py","jc/parsers/traceroute.py","jc/parsers/ufw.py","jc/parsers/ufw_appinfo.py","jc/parsers/uname.py","jc/parsers/universal.py","jc/parsers/upower.py","jc/parsers/uptime.py","jc/parsers/vmstat.py","jc/parsers/vmstat_s.py","jc/parsers/w.py","jc/parsers/wc.py","jc/parsers/who.py","jc/parsers/xml.py","jc/parsers/xrandr.py","jc/parsers/yaml.py","jc/parsers/zipinfo.py","jc/streaming.py","jc/utils.py","man/jc.1","templates/manpage_template","templates/readme_template"],"file_stats":[{"name":"README.md","lines_changed":4},{"name":"docgen.sh","lines_changed":6},{"name":"docs/lib.md","lines_changed":25},{"name":"docs/parsers/acpi.md","lines_changed":4},{"name":"docs/parsers/airport.md","lines_changed":4},{"name":"docs/parsers/airport_s.md","lines_changed":4},{"name":"docs/parsers/arp.md","lines_changed":4},{"name":"docs/parsers/blkid.md","lines_changed":4},{"name":"docs/parsers/cksum.md","lines_changed":4},{"name":"docs/parsers/crontab.md","lines_changed":4},{"name":"docs/parsers/crontab_u.md","lines_changed":4},{"name":"docs/parsers/csv.md","lines_changed":4},{"name":"docs/parsers/csv_s.md","lines_changed":4},{"name":"docs/parsers/date.md","lines_changed":4},{"name":"docs/parsers/df.md","lines_changed":4},{"name":"docs/parsers/dig.md","lines_changed":4},{"name":"docs/parsers/dir.md","lines_changed":4},{"name":"docs/parsers/dmidecode.md","lines_changed":4},{"name":"docs/parsers/dpkg_l.md","lines_changed":4},{"name":"docs/parsers/du.md","lines_changed":4},{"name":"docs/parsers/env.md","lines_changed":4},{"name":"docs/parsers/file.md","lines_changed":4},{"name":"docs/parsers/finger.md","lines_changed":4},{"name":"docs/parsers/free.md","lines_changed":4},{"name":"docs/parsers/fstab.md","lines_changed":4},{"name":"docs/parsers/group.md","lines_changed":4},{"name":"docs/parsers/gshadow.md","lines_changed":4},{"name":"docs/parsers/hash.md","lines_changed":4},{"name":"docs/parsers/hashsum.md","lines_changed":4},{"name":"docs/parsers/hciconfig.md","lines_changed":4},{"name":"docs/parsers/history.md","lines_changed":4},{"name":"docs/parsers/hosts.md","lines_changed":4},{"name":"docs/parsers/id.md","lines_changed":4},{"name":"docs/parsers/ifconfig.md","lines_changed":4},{"name":"docs/parsers/ini.md","lines_changed":4},{"name":"docs/parsers/iostat.md","lines_changed":4},{"name":"docs/parsers/iostat_s.md","lines_changed":4},{"name":"docs/parsers/iptables.md","lines_changed":4},{"name":"docs/parsers/iw_scan.md","lines_changed":4},{"name":"docs/parsers/jar_manifest.md","lines_changed":4},{"name":"docs/parsers/jobs.md","lines_changed":4},{"name":"docs/parsers/kv.md","lines_changed":4},{"name":"docs/parsers/last.md","lines_changed":4},{"name":"docs/parsers/ls.md","lines_changed":4},{"name":"docs/parsers/ls_s.md","lines_changed":4},{"name":"docs/parsers/lsblk.md","lines_changed":4},{"name":"docs/parsers/lsmod.md","lines_changed":4},{"name":"docs/parsers/lsof.md","lines_changed":4},{"name":"docs/parsers/lsusb.md","lines_changed":4},{"name":"docs/parsers/mount.md","lines_changed":4},{"name":"docs/parsers/netstat.md","lines_changed":4},{"name":"docs/parsers/nmcli.md","lines_changed":4},{"name":"docs/parsers/ntpq.md","lines_changed":4},{"name":"docs/parsers/passwd.md","lines_changed":4},{"name":"docs/parsers/ping.md","lines_changed":4},{"name":"docs/parsers/ping_s.md","lines_changed":4},{"name":"docs/parsers/pip_list.md","lines_changed":4},{"name":"docs/parsers/pip_show.md","lines_changed":4},{"name":"docs/parsers/ps.md","lines_changed":4},{"name":"docs/parsers/route.md","lines_changed":4},{"name":"docs/parsers/rpm_qi.md","lines_changed":4},{"name":"docs/parsers/rsync.md","lines_changed":4},{"name":"docs/parsers/rsync_s.md","lines_changed":9},{"name":"docs/parsers/sfdisk.md","lines_changed":4},{"name":"docs/parsers/shadow.md","lines_changed":4},{"name":"docs/parsers/ss.md","lines_changed":4},{"name":"docs/parsers/stat.md","lines_changed":4},{"name":"docs/parsers/stat_s.md","lines_changed":4},{"name":"docs/parsers/sysctl.md","lines_changed":4},{"name":"docs/parsers/systemctl.md","lines_changed":4},{"name":"docs/parsers/systemctl_lj.md","lines_changed":4},{"name":"docs/parsers/systemctl_ls.md","lines_changed":4},{"name":"docs/parsers/systemctl_luf.md","lines_changed":4},{"name":"docs/parsers/systeminfo.md","lines_changed":4},{"name":"docs/parsers/time.md","lines_changed":4},{"name":"docs/parsers/timedatectl.md","lines_changed":4},{"name":"docs/parsers/tracepath.md","lines_changed":4},{"name":"docs/parsers/traceroute.md","lines_changed":4},{"name":"docs/parsers/ufw.md","lines_changed":4},{"name":"docs/parsers/ufw_appinfo.md","lines_changed":4},{"name":"docs/parsers/uname.md","lines_changed":4},{"name":"docs/parsers/universal.md","lines_changed":6},{"name":"docs/parsers/upower.md","lines_changed":4},{"name":"docs/parsers/uptime.md","lines_changed":4},{"name":"docs/parsers/vmstat.md","lines_changed":4},{"name":"docs/parsers/vmstat_s.md","lines_changed":4},{"name":"docs/parsers/w.md","lines_changed":4},{"name":"docs/parsers/wc.md","lines_changed":4},{"name":"docs/parsers/who.md","lines_changed":4},{"name":"docs/parsers/xml.md","lines_changed":4},{"name":"docs/parsers/xrandr.md","lines_changed":4},{"name":"docs/parsers/yaml.md","lines_changed":4},{"name":"docs/parsers/zipinfo.md","lines_changed":4},{"name":"docs/readme.md","lines_changed":2},{"name":"docs/streaming.md","lines_changed":17},{"name":"docs/utils.md","lines_changed":29},{"name":"jc/__init__.py","lines_changed":2},{"name":"jc/cli.py","lines_changed":4},{"name":"jc/exceptions.py","lines_changed":2},{"name":"jc/lib.py","lines_changed":2},{"name":"jc/parsers/acpi.py","lines_changed":2},{"name":"jc/parsers/airport.py","lines_changed":2},{"name":"jc/parsers/airport_s.py","lines_changed":2},{"name":"jc/parsers/arp.py","lines_changed":2},{"name":"jc/parsers/blkid.py","lines_changed":2},{"name":"jc/parsers/cksum.py","lines_changed":2},{"name":"jc/parsers/crontab.py","lines_changed":2},{"name":"jc/parsers/crontab_u.py","lines_changed":2},{"name":"jc/parsers/csv.py","lines_changed":2},{"name":"jc/parsers/csv_s.py","lines_changed":2},{"name":"jc/parsers/date.py","lines_changed":2},{"name":"jc/parsers/df.py","lines_changed":2},{"name":"jc/parsers/dig.py","lines_changed":2},{"name":"jc/parsers/dir.py","lines_changed":2},{"name":"jc/parsers/dmidecode.py","lines_changed":2},{"name":"jc/parsers/dpkg_l.py","lines_changed":2},{"name":"jc/parsers/du.py","lines_changed":2},{"name":"jc/parsers/env.py","lines_changed":2},{"name":"jc/parsers/file.py","lines_changed":2},{"name":"jc/parsers/finger.py","lines_changed":2},{"name":"jc/parsers/foo.py","lines_changed":2},{"name":"jc/parsers/foo_s.py","lines_changed":2},{"name":"jc/parsers/free.py","lines_changed":2},{"name":"jc/parsers/fstab.py","lines_changed":2},{"name":"jc/parsers/group.py","lines_changed":2},{"name":"jc/parsers/gshadow.py","lines_changed":2},{"name":"jc/parsers/hash.py","lines_changed":2},{"name":"jc/parsers/hashsum.py","lines_changed":2},{"name":"jc/parsers/hciconfig.py","lines_changed":2},{"name":"jc/parsers/history.py","lines_changed":2},{"name":"jc/parsers/hosts.py","lines_changed":2},{"name":"jc/parsers/id.py","lines_changed":2},{"name":"jc/parsers/ifconfig.py","lines_changed":2},{"name":"jc/parsers/ini.py","lines_changed":2},{"name":"jc/parsers/iostat.py","lines_changed":2},{"name":"jc/parsers/iostat_s.py","lines_changed":2},{"name":"jc/parsers/iptables.py","lines_changed":2},{"name":"jc/parsers/iw_scan.py","lines_changed":2},{"name":"jc/parsers/jar_manifest.py","lines_changed":2},{"name":"jc/parsers/jobs.py","lines_changed":2},{"name":"jc/parsers/kv.py","lines_changed":2},{"name":"jc/parsers/last.py","lines_changed":2},{"name":"jc/parsers/ls.py","lines_changed":2},{"name":"jc/parsers/ls_s.py","lines_changed":2},{"name":"jc/parsers/lsblk.py","lines_changed":2},{"name":"jc/parsers/lsmod.py","lines_changed":2},{"name":"jc/parsers/lsof.py","lines_changed":2},{"name":"jc/parsers/lsusb.py","lines_changed":2},{"name":"jc/parsers/mount.py","lines_changed":2},{"name":"jc/parsers/netstat.py","lines_changed":2},{"name":"jc/parsers/netstat_freebsd_osx.py","lines_changed":2},{"name":"jc/parsers/netstat_linux.py","lines_changed":2},{"name":"jc/parsers/nmcli.py","lines_changed":2},{"name":"jc/parsers/ntpq.py","lines_changed":2},{"name":"jc/parsers/passwd.py","lines_changed":2},{"name":"jc/parsers/ping.py","lines_changed":2},{"name":"jc/parsers/ping_s.py","lines_changed":2},{"name":"jc/parsers/pip_list.py","lines_changed":2},{"name":"jc/parsers/pip_show.py","lines_changed":2},{"name":"jc/parsers/ps.py","lines_changed":2},{"name":"jc/parsers/route.py","lines_changed":2},{"name":"jc/parsers/rpm_qi.py","lines_changed":2},{"name":"jc/parsers/rsync.py","lines_changed":2},{"name":"jc/parsers/rsync_s.py","lines_changed":2},{"name":"jc/parsers/sfdisk.py","lines_changed":2},{"name":"jc/parsers/shadow.py","lines_changed":2},{"name":"jc/parsers/ss.py","lines_changed":2},{"name":"jc/parsers/stat.py","lines_changed":2},{"name":"jc/parsers/stat_s.py","lines_changed":2},{"name":"jc/parsers/sysctl.py","lines_changed":2},{"name":"jc/parsers/systemctl.py","lines_changed":2},{"name":"jc/parsers/systemctl_lj.py","lines_changed":2},{"name":"jc/parsers/systemctl_ls.py","lines_changed":2},{"name":"jc/parsers/systemctl_luf.py","lines_changed":2},{"name":"jc/parsers/systeminfo.py","lines_changed":2},{"name":"jc/parsers/time.py","lines_changed":2},{"name":"jc/parsers/timedatectl.py","lines_changed":2},{"name":"jc/parsers/tracepath.py","lines_changed":2},{"name":"jc/parsers/traceroute.py","lines_changed":2},{"name":"jc/parsers/ufw.py","lines_changed":2},{"name":"jc/parsers/ufw_appinfo.py","lines_changed":2},{"name":"jc/parsers/uname.py","lines_changed":2},{"name":"jc/parsers/universal.py","lines_changed":2},{"name":"jc/parsers/upower.py","lines_changed":2},{"name":"jc/parsers/uptime.py","lines_changed":2},{"name":"jc/parsers/vmstat.py","lines_changed":2},{"name":"jc/parsers/vmstat_s.py","lines_changed":2},{"name":"jc/parsers/w.py","lines_changed":2},{"name":"jc/parsers/wc.py","lines_changed":2},{"name":"jc/parsers/who.py","lines_changed":2},{"name":"jc/parsers/xml.py","lines_changed":2},{"name":"jc/parsers/xrandr.py","lines_changed":2},{"name":"jc/parsers/yaml.py","lines_changed":2},{"name":"jc/parsers/zipinfo.py","lines_changed":2},{"name":"jc/streaming.py","lines_changed":2},{"name":"jc/utils.py","lines_changed":2},{"name":"man/jc.1","lines_changed":2},{"name":"templates/manpage_template","lines_changed":2},{"name":"templates/readme_template","lines_changed":4}]}},{"commit":"9a3602e70b865a3015bd700b30d1076e17511a9b","message":"doc update","stats":{"files_changed":2,"insertions":2,"deletions":6,"files":["docs/lib.md","jc/lib.py"],"file_stats":[{"name":"docs/lib.md","lines_changed":4},{"name":"jc/lib.py","lines_changed":4}]}},{"commit":"a9f53ee258e18bc90934e263d8dc96feee84e939","message":"optimize streaming parser detection in cli","stats":{"files_changed":2,"insertions":15,"deletions":4,"files":["jc/cli.py","jc/lib.py"],"file_stats":[{"name":"jc/cli.py","lines_changed":4},{"name":"jc/lib.py","lines_changed":15}]}},{"commit":"6be3d3d98222a262c5138bb09f2951ccfab96110","message":"doc update","stats":{"files_changed":3,"insertions":43,"deletions":1,"files":["CHANGELOG","docs/lib.md","docs/readme.md"],"file_stats":[{"name":"CHANGELOG","lines_changed":3},{"name":"docs/lib.md","lines_changed":25},{"name":"docs/readme.md","lines_changed":16}]}},{"commit":"e49df7208377ab34a74240a06f35f17fee4b8203","message":"use streaming parser list to find streaming parsers","stats":{"files_changed":1,"insertions":2,"deletions":2,"files":["jc/cli.py"],"file_stats":[{"name":"jc/cli.py","lines_changed":4}]}},{"commit":"7ede7be7bf7b1a7d29d158b3b21c20fff4990e72","message":"add standard and streaming list functions","stats":{"files_changed":2,"insertions":42,"deletions":0,"files":["jc/__init__.py","jc/lib.py"],"file_stats":[{"name":"jc/__init__.py","lines_changed":17},{"name":"jc/lib.py","lines_changed":25}]}},{"commit":"4758e28a36e2a55497e4f722d386a6b5cc30dc4d","message":"formatting","stats":{"files_changed":2,"insertions":20,"deletions":16,"files":["docs/readme.md","jc/__init__.py"],"file_stats":[{"name":"docs/readme.md","lines_changed":18},{"name":"jc/__init__.py","lines_changed":18}]}},{"commit":"4a1ee151b3cb054d84cd964fd62f5855f765751d","message":"add dhcp6 options to docs","stats":{"files_changed":2,"insertions":9,"deletions":11,"files":["docs/parsers/nmcli.md","jc/parsers/nmcli.py"],"file_stats":[{"name":"docs/parsers/nmcli.md","lines_changed":4},{"name":"jc/parsers/nmcli.py","lines_changed":16}]}},{"commit":"8c8afc1a922e3c30fcf501d169b33a68b65cd3e0","message":"formatting","stats":{"files_changed":2,"insertions":60,"deletions":24,"files":["docs/readme.md","jc/__init__.py"],"file_stats":[{"name":"docs/readme.md","lines_changed":42},{"name":"jc/__init__.py","lines_changed":42}]}},{"commit":"ed205f7720d98c225c917c252ed7a6c9e6e8c2b8","message":"doc update","stats":{"files_changed":3,"insertions":9,"deletions":9,"files":["docs/parsers/nmcli.md","jc/parsers/nmcli.py","man/jc.1"],"file_stats":[{"name":"docs/parsers/nmcli.md","lines_changed":8},{"name":"jc/parsers/nmcli.py","lines_changed":8},{"name":"man/jc.1","lines_changed":2}]}},{"commit":"d65f7ae992abc33140c00714d442290103661757","message":"add nmcli","stats":{"files_changed":1,"insertions":41,"deletions":0,"files":["EXAMPLES.md"],"file_stats":[{"name":"EXAMPLES.md","lines_changed":41}]}},{"commit":"e2ffef57b9a474048fe72cf42aebfa6bfaf2e42b","message":"fix test","stats":{"files_changed":1,"insertions":1,"deletions":1,"files":["tests/test_nmcli.py"],"file_stats":[{"name":"tests/test_nmcli.py","lines_changed":2}]}},{"commit":"002caa9fb3b65f1ae64df25cc39c3de130403e76","message":"add fedora tests","stats":{"files_changed":7,"insertions":252,"deletions":0,"files":[".../fedora32/nmcli-connection-show-ens33.json",".../fedora32/nmcli-connection-show-ens33.out",".../fixtures/fedora32/nmcli-device-show-ens33.json",".../fixtures/fedora32/nmcli-device-show-ens33.out","tests/fixtures/fedora32/nmcli-device-show.json","tests/fixtures/fedora32/nmcli-device-show.out","tests/test_nmcli.py"],"file_stats":[{"name":".../fedora32/nmcli-connection-show-ens33.json","lines_changed":1},{"name":".../fedora32/nmcli-connection-show-ens33.out","lines_changed":148},{"name":".../fixtures/fedora32/nmcli-device-show-ens33.json","lines_changed":1},{"name":".../fixtures/fedora32/nmcli-device-show-ens33.out","lines_changed":26},{"name":"tests/fixtures/fedora32/nmcli-device-show.json","lines_changed":1},{"name":"tests/fixtures/fedora32/nmcli-device-show.out","lines_changed":39},{"name":"tests/test_nmcli.py","lines_changed":36}]}},{"commit":"b7c6faf3daf8eb0c42a222778baa440c5a018c75","message":"enhance error message","stats":{"files_changed":1,"insertions":1,"deletions":1,"files":["jc/cli.py"],"file_stats":[{"name":"jc/cli.py","lines_changed":2}]}},{"commit":"554ca61d1764b81dea06b6b013d0444072f0662a","message":"add tests","stats":{"files_changed":11,"insertions":165,"deletions":0,"files":[".../fixtures/centos-7.7/nmcli-connection-all.json",".../centos-7.7/nmcli-connection-show-ens33.json","tests/fixtures/centos-7.7/nmcli-connection.json","tests/fixtures/centos-7.7/nmcli-device-all.json",".../centos-7.7/nmcli-device-show-ens33.json",".../fixtures/centos-7.7/nmcli-device-show-lo.json","tests/fixtures/centos-7.7/nmcli-device-show.json","tests/fixtures/centos-7.7/nmcli-device.json","tests/fixtures/centos-7.7/nmcli-general-all.json",".../centos-7.7/nmcli-general-permissions.json","tests/test_nmcli.py"],"file_stats":[{"name":".../fixtures/centos-7.7/nmcli-connection-all.json","lines_changed":1},{"name":".../centos-7.7/nmcli-connection-show-ens33.json","lines_changed":1},{"name":"tests/fixtures/centos-7.7/nmcli-connection.json","lines_changed":1},{"name":"tests/fixtures/centos-7.7/nmcli-device-all.json","lines_changed":1},{"name":".../centos-7.7/nmcli-device-show-ens33.json","lines_changed":1},{"name":".../fixtures/centos-7.7/nmcli-device-show-lo.json","lines_changed":1},{"name":"tests/fixtures/centos-7.7/nmcli-device-show.json","lines_changed":1},{"name":"tests/fixtures/centos-7.7/nmcli-device.json","lines_changed":1},{"name":"tests/fixtures/centos-7.7/nmcli-general-all.json","lines_changed":1},{"name":".../centos-7.7/nmcli-general-permissions.json","lines_changed":1},{"name":"tests/test_nmcli.py","lines_changed":155}]}},{"commit":"7b9722d255a16981099dc803beda7abe0d46106a","message":"fix formatting","stats":{"files_changed":2,"insertions":26,"deletions":34,"files":["man/jc.1","templates/manpage_template"],"file_stats":[{"name":"man/jc.1","lines_changed":30},{"name":"templates/manpage_template","lines_changed":30}]}},{"commit":"5505bde8ef77db0885f08d8d04160cbc4418dd67","message":"doc update","stats":{"files_changed":1,"insertions":1,"deletions":1,"files":["docs/parsers/zipinfo.md"],"file_stats":[{"name":"docs/parsers/zipinfo.md","lines_changed":2}]}},{"commit":"dbcd9a4060647be24bca2a8d577f11925a9ac210","message":"bump version to 1.0","stats":{"files_changed":1,"insertions":1,"deletions":1,"files":["jc/parsers/zipinfo.py"],"file_stats":[{"name":"jc/parsers/zipinfo.py","lines_changed":2}]}},{"commit":"4bdeb2b3aa063c2772f5c44e52acbe16e915cc3a","message":"simplify warning message","stats":{"files_changed":1,"insertions":1,"deletions":1,"files":["jc/parsers/xrandr.py"],"file_stats":[{"name":"jc/parsers/xrandr.py","lines_changed":2}]}},{"commit":"6ae1d03187c6d4b669f6f74db1be7c9cf07adaed","message":"doc fix","stats":{"files_changed":2,"insertions":2,"deletions":2,"files":["docs/parsers/nmcli.md","jc/parsers/nmcli.py"],"file_stats":[{"name":"docs/parsers/nmcli.md","lines_changed":2},{"name":"jc/parsers/nmcli.py","lines_changed":2}]}},{"commit":"f75b06abe4af152be094f8bc1ba5ce66b25e35e2","message":"doc update","stats":{"files_changed":4,"insertions":180,"deletions":3,"files":["README.md","docs/parsers/nmcli.md","jc/parsers/nmcli.py","man/jc.1"],"file_stats":[{"name":"README.md","lines_changed":1},{"name":"docs/parsers/nmcli.md","lines_changed":172},{"name":"jc/parsers/nmcli.py","lines_changed":3},{"name":"man/jc.1","lines_changed":7}]}},{"commit":"1923925710dadc4116202855ae884ef18394d428","message":"update changelog","stats":{"files_changed":1,"insertions":4,"deletions":0,"files":["CHANGELOG"],"file_stats":[{"name":"CHANGELOG","lines_changed":4}]}},{"commit":"2c5c57ae04df3b7abfb1c3423c3350c7c2ab5dcd","message":"version bump","stats":{"files_changed":2,"insertions":2,"deletions":2,"files":["jc/lib.py","setup.py"],"file_stats":[{"name":"jc/lib.py","lines_changed":2},{"name":"setup.py","lines_changed":2}]}},{"commit":"f4d11d697e000135720a971edf84dcad31a1bec8","message":"finish use cases and doc","stats":{"files_changed":1,"insertions":155,"deletions":15,"files":["jc/parsers/nmcli.py"],"file_stats":[{"name":"jc/parsers/nmcli.py","lines_changed":170}]}},{"commit":"7f409b7082aa9525cc9280e3c5c92bc82089cf14","message":"enhance ParseError cli message","stats":{"files_changed":1,"insertions":1,"deletions":1,"files":["jc/cli.py"],"file_stats":[{"name":"jc/cli.py","lines_changed":2}]}},{"commit":"937fa5aad2519f588c6d0feb8f08211f6b99872f","message":"split dhcp options","stats":{"files_changed":1,"insertions":20,"deletions":0,"files":["jc/parsers/nmcli.py"],"file_stats":[{"name":"jc/parsers/nmcli.py","lines_changed":20}]}},{"commit":"19dcef513565c34a31f6d735577da5e25f9bd2cd","message":"firm up flow. add/remove text. parse routes","stats":{"files_changed":1,"insertions":69,"deletions":2,"files":["jc/parsers/nmcli.py"],"file_stats":[{"name":"jc/parsers/nmcli.py","lines_changed":71}]}},{"commit":"3d01356461eb2790f859968da7f5cb4fd2ee9898","message":"add text_kv function","stats":{"files_changed":1,"insertions":27,"deletions":3,"files":["jc/parsers/nmcli.py"],"file_stats":[{"name":"jc/parsers/nmcli.py","lines_changed":30}]}},{"commit":"2d6f666fa4c791e7995f6b0c1490dac73ce224c3","message":"add dev show and conn show parsers","stats":{"files_changed":1,"insertions":61,"deletions":16,"files":["jc/parsers/nmcli.py"],"file_stats":[{"name":"jc/parsers/nmcli.py","lines_changed":77}]}},{"commit":"4dda895f122ecc19b267ed1485cf656bae76ff07","message":"initial nmcli parser","stats":{"files_changed":13,"insertions":404,"deletions":0,"files":["jc/lib.py","jc/parsers/nmcli.py","tests/fixtures/centos-7.7/nmcli-connection-all.out",".../centos-7.7/nmcli-connection-show-ens33.out","tests/fixtures/centos-7.7/nmcli-connection.out","tests/fixtures/centos-7.7/nmcli-device-all.out",".../centos-7.7/nmcli-device-show-ens33.out","tests/fixtures/centos-7.7/nmcli-device-show-lo.out","tests/fixtures/centos-7.7/nmcli-device-show.out","tests/fixtures/centos-7.7/nmcli-device.out","tests/fixtures/centos-7.7/nmcli-general-all.out",".../centos-7.7/nmcli-general-permissions.out","tests/fixtures/centos-7.7/nmcli.out"],"file_stats":[{"name":"jc/lib.py","lines_changed":1},{"name":"jc/parsers/nmcli.py","lines_changed":130},{"name":"tests/fixtures/centos-7.7/nmcli-connection-all.out","lines_changed":3},{"name":".../centos-7.7/nmcli-connection-show-ens33.out","lines_changed":136},{"name":"tests/fixtures/centos-7.7/nmcli-connection.out","lines_changed":3},{"name":"tests/fixtures/centos-7.7/nmcli-device-all.out","lines_changed":5},{"name":".../centos-7.7/nmcli-device-show-ens33.out","lines_changed":18},{"name":"tests/fixtures/centos-7.7/nmcli-device-show-lo.out","lines_changed":12},{"name":"tests/fixtures/centos-7.7/nmcli-device-show.out","lines_changed":42},{"name":"tests/fixtures/centos-7.7/nmcli-device.out","lines_changed":4},{"name":"tests/fixtures/centos-7.7/nmcli-general-all.out","lines_changed":3},{"name":".../centos-7.7/nmcli-general-permissions.out","lines_changed":18},{"name":"tests/fixtures/centos-7.7/nmcli.out","lines_changed":29}]}},{"commit":"52617b1722ba2f089716b069f78f70a865430d61","message":"Merge pull request #208 from kellyjonbrazil/master"},{"commit":"961968a0fcaf37b64bc850c4945ba4b805a1fe54","message":"fix schema","stats":{"files_changed":2,"insertions":26,"deletions":23,"files":["docs/parsers/xrandr.md","jc/parsers/xrandr.py"],"file_stats":[{"name":"docs/parsers/xrandr.md","lines_changed":24},{"name":"jc/parsers/xrandr.py","lines_changed":25}]}},{"commit":"f026a788e5ca1231927e71fdbb1dadb2365a6518","message":"add xrandr example","stats":{"files_changed":1,"insertions":62,"deletions":0,"files":["EXAMPLES.md"],"file_stats":[{"name":"EXAMPLES.md","lines_changed":62}]}},{"commit":"2f7c03eb35520be916c28a687031f8c6425839ba","message":"Merge pull request #207 from kellyjonbrazil/dev"},{"commit":"3afaa48eee081e28262d1762c5ec23d318012822","message":"doc update","stats":{"files_changed":15,"insertions":15,"deletions":15,"files":["docs/parsers/csv_s.md","docs/parsers/iostat_s.md","docs/parsers/ls_s.md","docs/parsers/ping_s.md","docs/parsers/rsync_s.md","docs/parsers/stat_s.md","docs/parsers/vmstat_s.md","jc/parsers/csv_s.py","jc/parsers/foo_s.py","jc/parsers/iostat_s.py","jc/parsers/ls_s.py","jc/parsers/ping_s.py","jc/parsers/rsync_s.py","jc/parsers/stat_s.py","jc/parsers/vmstat_s.py"],"file_stats":[{"name":"docs/parsers/csv_s.md","lines_changed":2},{"name":"docs/parsers/iostat_s.md","lines_changed":2},{"name":"docs/parsers/ls_s.md","lines_changed":2},{"name":"docs/parsers/ping_s.md","lines_changed":2},{"name":"docs/parsers/rsync_s.md","lines_changed":2},{"name":"docs/parsers/stat_s.md","lines_changed":2},{"name":"docs/parsers/vmstat_s.md","lines_changed":2},{"name":"jc/parsers/csv_s.py","lines_changed":2},{"name":"jc/parsers/foo_s.py","lines_changed":2},{"name":"jc/parsers/iostat_s.py","lines_changed":2},{"name":"jc/parsers/ls_s.py","lines_changed":2},{"name":"jc/parsers/ping_s.py","lines_changed":2},{"name":"jc/parsers/rsync_s.py","lines_changed":2},{"name":"jc/parsers/stat_s.py","lines_changed":2},{"name":"jc/parsers/vmstat_s.py","lines_changed":2}]}},{"commit":"3201452564fb0fb44ef9cc32217339370bd2521e","message":"add -p to example","stats":{"files_changed":2,"insertions":2,"deletions":2,"files":["docs/parsers/xrandr.md","jc/parsers/xrandr.py"],"file_stats":[{"name":"docs/parsers/xrandr.md","lines_changed":2},{"name":"jc/parsers/xrandr.py","lines_changed":2}]}},{"commit":"7ee1e34fc71c0dbc08ba482b787d560fd5125f64","message":"doc update","stats":{"files_changed":2,"insertions":116,"deletions":4,"files":["docs/parsers/xrandr.md","jc/parsers/xrandr.py"],"file_stats":[{"name":"docs/parsers/xrandr.md","lines_changed":60},{"name":"jc/parsers/xrandr.py","lines_changed":60}]}},{"commit":"67dbf050161201f5016899591e81ab6253ac2322","message":"add type annotations","stats":{"files_changed":2,"insertions":2,"deletions":2,"files":["docs/parsers/xrandr.md","jc/parsers/xrandr.py"],"file_stats":[{"name":"docs/parsers/xrandr.md","lines_changed":2},{"name":"jc/parsers/xrandr.py","lines_changed":2}]}},{"commit":"4ac9f2e3dad4e7bd270bf5a8e61b729838b2c89c","message":"doc update","stats":{"files_changed":5,"insertions":10,"deletions":17,"files":["CHANGELOG","docs/parsers/rsync.md","docs/parsers/rsync_s.md","jc/parsers/rsync.py","jc/parsers/rsync_s.py"],"file_stats":[{"name":"CHANGELOG","lines_changed":3},{"name":"docs/parsers/rsync.md","lines_changed":6},{"name":"docs/parsers/rsync_s.md","lines_changed":6},{"name":"jc/parsers/rsync.py","lines_changed":6},{"name":"jc/parsers/rsync_s.py","lines_changed":6}]}},{"commit":"3f5f6e39a777ef524cb3a06a01321bb8c31d930d","message":"formatting","stats":{"files_changed":2,"insertions":100,"deletions":98,"files":["docs/parsers/xrandr.md","jc/parsers/xrandr.py"],"file_stats":[{"name":"docs/parsers/xrandr.md","lines_changed":99},{"name":"jc/parsers/xrandr.py","lines_changed":99}]}},{"commit":"4723db8e3cc4946b14c83b25d6e8c6d2309aa72e","message":"doc updates","stats":{"files_changed":8,"insertions":195,"deletions":77,"files":["README.md","docs/parsers/rsync.md","docs/parsers/rsync_s.md","docs/parsers/xrandr.md","jc/parsers/rsync.py","jc/parsers/rsync_s.py","jc/parsers/xrandr.py","man/jc.1"],"file_stats":[{"name":"README.md","lines_changed":1},{"name":"docs/parsers/rsync.md","lines_changed":2},{"name":"docs/parsers/rsync_s.md","lines_changed":2},{"name":"docs/parsers/xrandr.md","lines_changed":109},{"name":"jc/parsers/rsync.py","lines_changed":2},{"name":"jc/parsers/rsync_s.py","lines_changed":2},{"name":"jc/parsers/xrandr.py","lines_changed":147},{"name":"man/jc.1","lines_changed":7}]}},{"commit":"ca914ec77d1fc77e42860189e62ac2fb203d4931","message":"add nodata test","stats":{"files_changed":1,"insertions":11,"deletions":2,"files":["tests/test_xrandr.py"],"file_stats":[{"name":"tests/test_xrandr.py","lines_changed":13}]}},{"commit":"dcc7f3f357ef016b4583fc1320fd2394788f271f","message":"Merge pull request #204 from lyterk/xrandr"},{"commit":"cbdc66623671da335eafe132b7af79f884856f1d","message":"Return empty object if no results and filenames","stats":{"files_changed":3,"insertions":2,"deletions":30,"files":["jc/parsers/xrandr.py",".../{simple_xrandr.json => xrandr_simple.json}",".../{simple_xrandr.out => xrandr_simple.out}"],"file_stats":[{"name":"jc/parsers/xrandr.py","lines_changed":32},{"name":".../{simple_xrandr.json => xrandr_simple.json}","lines_changed":0},{"name":".../{simple_xrandr.out => xrandr_simple.out}","lines_changed":0}]}},{"commit":"184ef3a1faeb406ce62076cff637ee86d61541fb","message":"doc update","stats":{"files_changed":3,"insertions":11,"deletions":3,"files":["docs/parsers/rsync.md","docs/parsers/rsync_s.md","man/jc.1"],"file_stats":[{"name":"docs/parsers/rsync.md","lines_changed":6},{"name":"docs/parsers/rsync_s.md","lines_changed":6},{"name":"man/jc.1","lines_changed":2}]}},{"commit":"c732f759445e335fe36586859b6fde7e27bb8901","message":"doc update","stats":{"files_changed":2,"insertions":10,"deletions":2,"files":["jc/parsers/rsync.py","jc/parsers/rsync_s.py"],"file_stats":[{"name":"jc/parsers/rsync.py","lines_changed":6},{"name":"jc/parsers/rsync_s.py","lines_changed":6}]}},{"commit":"7a1ae4f5fc5328c32bf77235cfbd9f83ec995053","message":"add library tests","stats":{"files_changed":3,"insertions":105,"deletions":0,"files":["tests/{test_lib.py => test_jc_lib.py}","tests/test_jc_streaming.py","tests/{test_utils.py => test_jc_utils.py}"],"file_stats":[{"name":"tests/{test_lib.py => test_jc_lib.py}","lines_changed":0},{"name":"tests/test_jc_streaming.py","lines_changed":61},{"name":"tests/{test_utils.py => test_jc_utils.py}","lines_changed":44}]}},{"commit":"d04bc3757c482ec9062b2da91ded76c5dd6d106b","message":"add xrandr","stats":{"files_changed":1,"insertions":2,"deletions":1,"files":["CHANGELOG"],"file_stats":[{"name":"CHANGELOG","lines_changed":3}]}},{"commit":"73e8391653145412cd852aca349466018c8b9084","message":"formatting","stats":{"files_changed":1,"insertions":8,"deletions":3,"files":["jc/utils.py"],"file_stats":[{"name":"jc/utils.py","lines_changed":11}]}},{"commit":"f6c1463c1578db264ccb3d4c2677857ed906e965","message":"formatting","stats":{"files_changed":1,"insertions":44,"deletions":24,"files":["jc/cli.py"],"file_stats":[{"name":"jc/cli.py","lines_changed":68}]}},{"commit":"d392c7f901a9d7c57617fbd03bd3f88ee0bf4132","message":"doc update","stats":{"files_changed":12,"insertions":20,"deletions":13,"files":["docs/parsers/date.md","docs/parsers/dig.md","docs/parsers/dir.md","docs/parsers/ls.md","docs/parsers/rpm_qi.md","docs/parsers/stat.md","docs/parsers/systeminfo.md","docs/parsers/timedatectl.md","docs/parsers/upower.md","docs/parsers/vmstat.md","docs/parsers/who.md","docs/utils.md"],"file_stats":[{"name":"docs/parsers/date.md","lines_changed":2},{"name":"docs/parsers/dig.md","lines_changed":2},{"name":"docs/parsers/dir.md","lines_changed":2},{"name":"docs/parsers/ls.md","lines_changed":2},{"name":"docs/parsers/rpm_qi.md","lines_changed":2},{"name":"docs/parsers/stat.md","lines_changed":2},{"name":"docs/parsers/systeminfo.md","lines_changed":2},{"name":"docs/parsers/timedatectl.md","lines_changed":2},{"name":"docs/parsers/upower.md","lines_changed":2},{"name":"docs/parsers/vmstat.md","lines_changed":2},{"name":"docs/parsers/who.md","lines_changed":2},{"name":"docs/utils.md","lines_changed":11}]}},{"commit":"d0387f58205b2fd9b9860ce9656bb29ceec54340","message":"add timestamp format hints for better performance","stats":{"files_changed":16,"insertions":34,"deletions":29,"files":["jc/parsers/date.py","jc/parsers/dig.py","jc/parsers/dir.py","jc/parsers/ls.py","jc/parsers/ls_s.py","jc/parsers/rpm_qi.py","jc/parsers/rsync.py","jc/parsers/rsync_s.py","jc/parsers/stat.py","jc/parsers/stat_s.py","jc/parsers/systeminfo.py","jc/parsers/timedatectl.py","jc/parsers/upower.py","jc/parsers/vmstat.py","jc/parsers/vmstat_s.py","jc/parsers/who.py"],"file_stats":[{"name":"jc/parsers/date.py","lines_changed":4},{"name":"jc/parsers/dig.py","lines_changed":4},{"name":"jc/parsers/dir.py","lines_changed":4},{"name":"jc/parsers/ls.py","lines_changed":4},{"name":"jc/parsers/ls_s.py","lines_changed":2},{"name":"jc/parsers/rpm_qi.py","lines_changed":6},{"name":"jc/parsers/rsync.py","lines_changed":2},{"name":"jc/parsers/rsync_s.py","lines_changed":2},{"name":"jc/parsers/stat.py","lines_changed":4},{"name":"jc/parsers/stat_s.py","lines_changed":2},{"name":"jc/parsers/systeminfo.py","lines_changed":8},{"name":"jc/parsers/timedatectl.py","lines_changed":4},{"name":"jc/parsers/upower.py","lines_changed":5},{"name":"jc/parsers/vmstat.py","lines_changed":5},{"name":"jc/parsers/vmstat_s.py","lines_changed":3},{"name":"jc/parsers/who.py","lines_changed":4}]}},{"commit":"76f92908a3ba9cbadcc8e972afa8b1c4a69509bd","message":"add format hints for performance optimization","stats":{"files_changed":1,"insertions":44,"deletions":9,"files":["jc/utils.py"],"file_stats":[{"name":"jc/utils.py","lines_changed":53}]}},{"commit":"1a115da67bdce9acfefbfb71fbac37e234b1babd","message":"add lru_cache maxsize for python 3.7 support","stats":{"files_changed":1,"insertions":1,"deletions":1,"files":["jc/utils.py"],"file_stats":[{"name":"jc/utils.py","lines_changed":2}]}},{"commit":"f0a37ccf301eee5133a83b5dd96986fef0c38e7c","message":"use lru_cache for significant performance boost to timestamp","stats":{"files_changed":1,"insertions":7,"deletions":4,"files":["jc/utils.py"],"file_stats":[{"name":"jc/utils.py","lines_changed":11}]}},{"commit":"f331f53a531169520a4d8ea15d277560a49aedb5","message":"use !r formatting instead of quotes","stats":{"files_changed":2,"insertions":2,"deletions":1,"files":["CHANGELOG","jc/utils.py"],"file_stats":[{"name":"CHANGELOG","lines_changed":1},{"name":"jc/utils.py","lines_changed":2}]}},{"commit":"8611aff06b18212b7292d564beb27a2062fc3f41","message":"add examples","stats":{"files_changed":2,"insertions":8,"deletions":8,"files":["docs/parsers/rsync_s.md","jc/parsers/rsync_s.py"],"file_stats":[{"name":"docs/parsers/rsync_s.md","lines_changed":8},{"name":"jc/parsers/rsync_s.py","lines_changed":8}]}},{"commit":"2f3f78e8d35a0ccccde0f84417400acdfe7fe0aa","message":"refine streaming parsers","stats":{"files_changed":16,"insertions":194,"deletions":185,"files":["docgen.sh","docs/parsers/rsync_s.md","docs/readme.md","docs/streaming.md","docs/utils.md","jc/__init__.py","jc/parsers/csv_s.py","jc/parsers/foo_s.py","jc/parsers/iostat_s.py","jc/parsers/ls_s.py","jc/parsers/ping_s.py","jc/parsers/rsync_s.py","jc/parsers/stat_s.py","jc/parsers/vmstat_s.py","jc/streaming.py","man/jc.1"],"file_stats":[{"name":"docgen.sh","lines_changed":3},{"name":"docs/parsers/rsync_s.md","lines_changed":2},{"name":"docs/readme.md","lines_changed":2},{"name":"docs/streaming.md","lines_changed":114},{"name":"docs/utils.md","lines_changed":93},{"name":"jc/__init__.py","lines_changed":2},{"name":"jc/parsers/csv_s.py","lines_changed":10},{"name":"jc/parsers/foo_s.py","lines_changed":14},{"name":"jc/parsers/iostat_s.py","lines_changed":15},{"name":"jc/parsers/ls_s.py","lines_changed":14},{"name":"jc/parsers/ping_s.py","lines_changed":4},{"name":"jc/parsers/rsync_s.py","lines_changed":25},{"name":"jc/parsers/stat_s.py","lines_changed":22},{"name":"jc/parsers/vmstat_s.py","lines_changed":16},{"name":"jc/streaming.py","lines_changed":41},{"name":"man/jc.1","lines_changed":2}]}},{"commit":"d1e0ee6123dfecd48d074cb7a40e98a15b6adcb9","message":"use new streaming functions","stats":{"files_changed":1,"insertions":6,"deletions":8,"files":["jc/parsers/ping_s.py"],"file_stats":[{"name":"jc/parsers/ping_s.py","lines_changed":14}]}},{"commit":"45314c98083067f1f6fae9c477c99fabec223f29","message":"move some functions to streaming","stats":{"files_changed":2,"insertions":112,"deletions":102,"files":["jc/streaming.py","jc/utils.py"],"file_stats":[{"name":"jc/streaming.py","lines_changed":111},{"name":"jc/utils.py","lines_changed":103}]}},{"commit":"df00945b46e27e10107f48d186eedf80b55bd40e","message":"move try/except inside for loop","stats":{"files_changed":6,"insertions":59,"deletions":49,"files":["jc/parsers/foo_s.py","jc/parsers/iostat_s.py","jc/parsers/ls_s.py","jc/parsers/ping_s.py","jc/parsers/rsync_s.py","jc/parsers/stat_s.py"],"file_stats":[{"name":"jc/parsers/foo_s.py","lines_changed":15},{"name":"jc/parsers/iostat_s.py","lines_changed":15},{"name":"jc/parsers/ls_s.py","lines_changed":17},{"name":"jc/parsers/ping_s.py","lines_changed":19},{"name":"jc/parsers/rsync_s.py","lines_changed":21},{"name":"jc/parsers/stat_s.py","lines_changed":21}]}},{"commit":"fda0050d867bcbe4f1d7e024b08e9881d0f57735","message":"add rsync-s tests","stats":{"files_changed":13,"insertions":191,"deletions":0,"files":[".../centos-7.7/rsync-i-logfile-streaming.json","tests/fixtures/centos-7.7/rsync-i-streaming.json",".../centos-7.7/rsync-i-v-logfile-streaming.json",".../centos-7.7/rsync-i-vv-logfile-streaming.json",".../rsync-i-vvv-logfile-nochange-streaming.json",".../centos-7.7/rsync-i-vvv-logfile-streaming.json",".../centos-7.7/rsync-ivvv-nochange-streaming.json",".../fixtures/centos-7.7/rsync-ivvv-streaming.json","tests/fixtures/generic/rsync-i-streaming.json",".../rsync-i-vvv-logfile-nochange-streaming.json",".../rsync-i-vvv-nochange-streaming.json",".../osx-10.14.6/rsync-i-vvv-streaming.json","tests/test_rsync_s.py"],"file_stats":[{"name":".../centos-7.7/rsync-i-logfile-streaming.json","lines_changed":1},{"name":"tests/fixtures/centos-7.7/rsync-i-streaming.json","lines_changed":1},{"name":".../centos-7.7/rsync-i-v-logfile-streaming.json","lines_changed":1},{"name":".../centos-7.7/rsync-i-vv-logfile-streaming.json","lines_changed":1},{"name":".../rsync-i-vvv-logfile-nochange-streaming.json","lines_changed":1},{"name":".../centos-7.7/rsync-i-vvv-logfile-streaming.json","lines_changed":1},{"name":".../centos-7.7/rsync-ivvv-nochange-streaming.json","lines_changed":1},{"name":".../fixtures/centos-7.7/rsync-ivvv-streaming.json","lines_changed":1},{"name":"tests/fixtures/generic/rsync-i-streaming.json","lines_changed":1},{"name":".../rsync-i-vvv-logfile-nochange-streaming.json","lines_changed":1},{"name":".../rsync-i-vvv-nochange-streaming.json","lines_changed":1},{"name":".../osx-10.14.6/rsync-i-vvv-streaming.json","lines_changed":1},{"name":"tests/test_rsync_s.py","lines_changed":179}]}},{"commit":"a76d46f9ecb1eff4d6cc7ad633c97cec0e99001a","message":"refactor ignore_exceptions","stats":{"files_changed":19,"insertions":110,"deletions":109,"files":["CHANGELOG","docs/parsers/csv_s.md","docs/parsers/iostat_s.md","docs/parsers/ls_s.md","docs/parsers/ping_s.md","docs/parsers/rsync_s.md","docs/parsers/stat_s.md","docs/parsers/vmstat_s.md","docs/utils.md","jc/parsers/csv_s.py","jc/parsers/foo_s.py","jc/parsers/iostat_s.py","jc/parsers/ls_s.py","jc/parsers/ping_s.py","jc/parsers/rsync_s.py","jc/parsers/stat_s.py","jc/parsers/vmstat_s.py","jc/utils.py","man/jc.1"],"file_stats":[{"name":"CHANGELOG","lines_changed":2},{"name":"docs/parsers/csv_s.md","lines_changed":5},{"name":"docs/parsers/iostat_s.md","lines_changed":5},{"name":"docs/parsers/ls_s.md","lines_changed":5},{"name":"docs/parsers/ping_s.md","lines_changed":5},{"name":"docs/parsers/rsync_s.md","lines_changed":5},{"name":"docs/parsers/stat_s.md","lines_changed":5},{"name":"docs/parsers/vmstat_s.md","lines_changed":5},{"name":"docs/utils.md","lines_changed":15},{"name":"jc/parsers/csv_s.py","lines_changed":13},{"name":"jc/parsers/foo_s.py","lines_changed":11},{"name":"jc/parsers/iostat_s.py","lines_changed":23},{"name":"jc/parsers/ls_s.py","lines_changed":20},{"name":"jc/parsers/ping_s.py","lines_changed":22},{"name":"jc/parsers/rsync_s.py","lines_changed":11},{"name":"jc/parsers/stat_s.py","lines_changed":30},{"name":"jc/parsers/vmstat_s.py","lines_changed":11},{"name":"jc/utils.py","lines_changed":24},{"name":"man/jc.1","lines_changed":2}]}},{"commit":"6b069a82d0fa19c8d83b19b934bace556cb758d7","message":"Add xrandr to lib.py","stats":{"files_changed":1,"insertions":1,"deletions":0,"files":["jc/lib.py"],"file_stats":[{"name":"jc/lib.py","lines_changed":1}]}},{"commit":"6b793d052147406f388c4d5dc04f506a3456f409","message":"Clean up types","stats":{"files_changed":1,"insertions":6,"deletions":11,"files":["jc/parsers/xrandr.py"],"file_stats":[{"name":"jc/parsers/xrandr.py","lines_changed":17}]}},{"commit":"ce9103f7cc666895dc7840d32797d8c7274cf1b8","message":"Delete old files in template folder","stats":{"files_changed":2,"insertions":0,"deletions":287,"files":["templates/xrandr_sample.txt","templates/xrandr_sample_verbose.txt"],"file_stats":[{"name":"templates/xrandr_sample.txt","lines_changed":38},{"name":"templates/xrandr_sample_verbose.txt","lines_changed":249}]}},{"commit":"671d6dee36a37317257e09a080849205d301bceb","message":"doc update","stats":{"files_changed":8,"insertions":83,"deletions":15,"files":["docs/parsers/csv_s.md","docs/parsers/iostat_s.md","docs/parsers/ls_s.md","docs/parsers/ping_s.md","docs/parsers/rsync_s.md","docs/parsers/stat_s.md","docs/parsers/vmstat_s.md","docs/utils.md"],"file_stats":[{"name":"docs/parsers/csv_s.md","lines_changed":8},{"name":"docs/parsers/iostat_s.md","lines_changed":8},{"name":"docs/parsers/ls_s.md","lines_changed":8},{"name":"docs/parsers/ping_s.md","lines_changed":8},{"name":"docs/parsers/rsync_s.md","lines_changed":10},{"name":"docs/parsers/stat_s.md","lines_changed":8},{"name":"docs/parsers/vmstat_s.md","lines_changed":8},{"name":"docs/utils.md","lines_changed":40}]}},{"commit":"49929c714c2d71a310b1dd95138dbd02f8704138","message":"add add_jc_meta decorator","stats":{"files_changed":9,"insertions":139,"deletions":52,"files":["jc/parsers/csv_s.py","jc/parsers/foo_s.py","jc/parsers/iostat_s.py","jc/parsers/ls_s.py","jc/parsers/ping_s.py","jc/parsers/rsync_s.py","jc/parsers/stat_s.py","jc/parsers/vmstat_s.py","jc/utils.py"],"file_stats":[{"name":"jc/parsers/csv_s.py","lines_changed":14},{"name":"jc/parsers/foo_s.py","lines_changed":16},{"name":"jc/parsers/iostat_s.py","lines_changed":15},{"name":"jc/parsers/ls_s.py","lines_changed":14},{"name":"jc/parsers/ping_s.py","lines_changed":14},{"name":"jc/parsers/rsync_s.py","lines_changed":30},{"name":"jc/parsers/stat_s.py","lines_changed":21},{"name":"jc/parsers/vmstat_s.py","lines_changed":14},{"name":"jc/utils.py","lines_changed":53}]}},{"commit":"2986771f07de87bfee44dd3bbb4f285e249aad76","message":"require python v3.7 and above since v3.6 is now deprecated","stats":{"files_changed":1,"insertions":1,"deletions":1,"files":["setup.py"],"file_stats":[{"name":"setup.py","lines_changed":2}]}},{"commit":"520082d963b93d2bafeff921da3899686b22cadf","message":"New parser: xrandr","stats":{"files_changed":9,"insertions":968,"deletions":0,"files":["jc/parsers/xrandr.py","templates/xrandr_sample.txt","templates/xrandr_sample_verbose.txt","tests/fixtures/generic/simple_xrandr.json","tests/fixtures/generic/simple_xrandr.out","tests/fixtures/generic/xrandr.out","tests/fixtures/generic/xrandr_2.out","tests/fixtures/generic/xrandr_device.out","tests/test_xrandr.py"],"file_stats":[{"name":"jc/parsers/xrandr.py","lines_changed":353},{"name":"templates/xrandr_sample.txt","lines_changed":38},{"name":"templates/xrandr_sample_verbose.txt","lines_changed":249},{"name":"tests/fixtures/generic/simple_xrandr.json","lines_changed":56},{"name":"tests/fixtures/generic/simple_xrandr.out","lines_changed":4},{"name":"tests/fixtures/generic/xrandr.out","lines_changed":38},{"name":"tests/fixtures/generic/xrandr_2.out","lines_changed":43},{"name":"tests/fixtures/generic/xrandr_device.out","lines_changed":15},{"name":"tests/test_xrandr.py","lines_changed":172}]}},{"commit":"021e296d457140c32b5256c2b0acf66efc458896","message":"move variable inits and regexes up","stats":{"files_changed":1,"insertions":104,"deletions":100,"files":["jc/parsers/rsync_s.py"],"file_stats":[{"name":"jc/parsers/rsync_s.py","lines_changed":204}]}},{"commit":"42e56fbcea6db64ea7f7045e7755af492c95aec2","message":"move regex up","stats":{"files_changed":1,"insertions":11,"deletions":12,"files":["jc/parsers/rsync.py"],"file_stats":[{"name":"jc/parsers/rsync.py","lines_changed":23}]}},{"commit":"a5b62a4055df37b84751a7cdc14eb6f1ed907cd9","message":"add processing and docs","stats":{"files_changed":2,"insertions":230,"deletions":18,"files":["docs/parsers/rsync_s.md","jc/parsers/rsync_s.py"],"file_stats":[{"name":"docs/parsers/rsync_s.md","lines_changed":124},{"name":"jc/parsers/rsync_s.py","lines_changed":124}]}},{"commit":"be98c9b7f6c67e23ea101223934d67bba512e645","message":"simplify try/except by moving outside for loop","stats":{"files_changed":1,"insertions":6,"deletions":5,"files":["jc/parsers/foo_s.py"],"file_stats":[{"name":"jc/parsers/foo_s.py","lines_changed":11}]}},{"commit":"aceeb8450796ae748a4d4abf75643f309d0a42e5","message":"doc update","stats":{"files_changed":3,"insertions":12,"deletions":1,"files":["CHANGELOG","README.md","man/jc.1"],"file_stats":[{"name":"CHANGELOG","lines_changed":5},{"name":"README.md","lines_changed":1},{"name":"man/jc.1","lines_changed":7}]}},{"commit":"13910632173e7c815ff1161cf52fd1d17153c4a9","message":"first draft rsync streaming parser","stats":{"files_changed":2,"insertions":367,"deletions":0,"files":["jc/lib.py","jc/parsers/rsync_s.py"],"file_stats":[{"name":"jc/lib.py","lines_changed":1},{"name":"jc/parsers/rsync_s.py","lines_changed":366}]}},{"commit":"52157addd0d6dff3bdb34f179ec14b07c8c27ccc","message":"fix compatible list","stats":{"files_changed":1,"insertions":1,"deletions":1,"files":["jc/parsers/foo_s.py"],"file_stats":[{"name":"jc/parsers/foo_s.py","lines_changed":2}]}},{"commit":"ec0bc6615e22fdc536623e290d88b9725cb6a0ec","message":"formatting","stats":{"files_changed":2,"insertions":2,"deletions":2,"files":["docs/utils.md","jc/utils.py"],"file_stats":[{"name":"docs/utils.md","lines_changed":2},{"name":"jc/utils.py","lines_changed":2}]}},{"commit":"2f80800e38256b363a4122195ec4aaffebe67d87","message":"simplify all_parser_info comprehension","stats":{"files_changed":1,"insertions":1,"deletions":1,"files":["jc/lib.py"],"file_stats":[{"name":"jc/lib.py","lines_changed":2}]}},{"commit":"3959d3347c8d3e838f8c3158c4db74e2fa2eb856","message":"doc update","stats":{"files_changed":1,"insertions":2,"deletions":2,"files":["docs/lib.md"],"file_stats":[{"name":"docs/lib.md","lines_changed":4}]}},{"commit":"b57d25c69a193d3866ea86a3a34edd67049b198d","message":"clean up return type for parser_info","stats":{"files_changed":1,"insertions":5,"deletions":7,"files":["jc/lib.py"],"file_stats":[{"name":"jc/lib.py","lines_changed":12}]}},{"commit":"63e43a7cabb51c624c962cdcc92a1199f18c77e5","message":"doc updates","stats":{"files_changed":7,"insertions":188,"deletions":21,"files":["README.md","docs/lib.md","docs/parsers/rsync.md","docs/parsers/universal.md","docs/parsers/zipinfo.md","docs/utils.md","man/jc.1"],"file_stats":[{"name":"README.md","lines_changed":3},{"name":"docs/lib.md","lines_changed":4},{"name":"docs/parsers/rsync.md","lines_changed":163},{"name":"docs/parsers/universal.md","lines_changed":2},{"name":"docs/parsers/zipinfo.md","lines_changed":2},{"name":"docs/utils.md","lines_changed":28},{"name":"man/jc.1","lines_changed":7}]}},{"commit":"21719f9a26c25d896b0a5d49c9d7814175835e16","message":"type annotation updates","stats":{"files_changed":2,"insertions":18,"deletions":20,"files":["jc/lib.py","jc/utils.py"],"file_stats":[{"name":"jc/lib.py","lines_changed":2},{"name":"jc/utils.py","lines_changed":36}]}},{"commit":"96ec70de4f6178b0669fd9ab47cb303dc45e55c2","message":"remove unneeded optional","stats":{"files_changed":2,"insertions":5,"deletions":5,"files":["jc/parsers/universal.py","jc/utils.py"],"file_stats":[{"name":"jc/parsers/universal.py","lines_changed":6},{"name":"jc/utils.py","lines_changed":4}]}},{"commit":"a15a1967dc06169ceeda0fd5b4857ce1a351f3d5","message":"fix typo","stats":{"files_changed":1,"insertions":1,"deletions":1,"files":["jc/lib.py"],"file_stats":[{"name":"jc/lib.py","lines_changed":2}]}},{"commit":"a10d7566294fe5246e68a16e355ce56dd3557ac5","message":"fixy mypy issues","stats":{"files_changed":1,"insertions":4,"deletions":4,"files":["jc/parsers/universal.py"],"file_stats":[{"name":"jc/parsers/universal.py","lines_changed":8}]}},{"commit":"0700dc7a64b121cf0243416e2cbb82fcef15f5a0","message":"remove cygwin from compatible","stats":{"files_changed":1,"insertions":1,"deletions":1,"files":["jc/parsers/rsync.py"],"file_stats":[{"name":"jc/parsers/rsync.py","lines_changed":2}]}},{"commit":"ca654b214057e19839b89e0d9a66f1110f679c1e","message":"fix parser order","stats":{"files_changed":1,"insertions":1,"deletions":1,"files":["jc/lib.py"],"file_stats":[{"name":"jc/lib.py","lines_changed":2}]}},{"commit":"4ff3b87c1c96d720f4e7fd39e613944e322cb388","message":"remove future field from docstring","stats":{"files_changed":1,"insertions":0,"deletions":1,"files":["jc/parsers/rsync.py"],"file_stats":[{"name":"jc/parsers/rsync.py","lines_changed":1}]}},{"commit":"ea244fb7a91f1d1f8ffe0ea6dc10dfe5ab836878","message":"formatting","stats":{"files_changed":1,"insertions":1,"deletions":1,"files":["tests/test_rsync.py"],"file_stats":[{"name":"tests/test_rsync.py","lines_changed":2}]}},{"commit":"8061f30e6fa58d22ed1a52e02c4d9c7f0bf132cf","message":"add centos -i nochange test","stats":{"files_changed":3,"insertions":236,"deletions":6,"files":["tests/fixtures/centos-7.7/rsync-ivvv-nochange.json","tests/fixtures/centos-7.7/rsync-ivvv-nochange.out","tests/test_rsync.py"],"file_stats":[{"name":"tests/fixtures/centos-7.7/rsync-ivvv-nochange.json","lines_changed":1},{"name":"tests/fixtures/centos-7.7/rsync-ivvv-nochange.out","lines_changed":224},{"name":"tests/test_rsync.py","lines_changed":17}]}},{"commit":"8f3b12e81e1b4f0d4394c33db5b3a352f4cfb391","message":"add fixes for mac -i output","stats":{"files_changed":6,"insertions":299,"deletions":0,"files":["jc/parsers/rsync.py",".../fixtures/osx-10.14.6/rsync-i-vvv-nochange.json",".../fixtures/osx-10.14.6/rsync-i-vvv-nochange.out","tests/fixtures/osx-10.14.6/rsync-i-vvv.json","tests/fixtures/osx-10.14.6/rsync-i-vvv.out","tests/test_rsync.py"],"file_stats":[{"name":"jc/parsers/rsync.py","lines_changed":22},{"name":".../fixtures/osx-10.14.6/rsync-i-vvv-nochange.json","lines_changed":1},{"name":".../fixtures/osx-10.14.6/rsync-i-vvv-nochange.out","lines_changed":88},{"name":"tests/fixtures/osx-10.14.6/rsync-i-vvv.json","lines_changed":1},{"name":"tests/fixtures/osx-10.14.6/rsync-i-vvv.out","lines_changed":156},{"name":"tests/test_rsync.py","lines_changed":31}]}},{"commit":"d0694ce0db5ea2d06b5787429adf23095c4c2df0","message":"add nochange log test for mac","stats":{"files_changed":3,"insertions":245,"deletions":6,"files":[".../osx-10.14.6/rsync-i-vvv-logfile-nochange.json",".../osx-10.14.6/rsync-i-vvv-logfile-nochange.out","tests/test_rsync.py"],"file_stats":[{"name":".../osx-10.14.6/rsync-i-vvv-logfile-nochange.json","lines_changed":1},{"name":".../osx-10.14.6/rsync-i-vvv-logfile-nochange.out","lines_changed":233},{"name":"tests/test_rsync.py","lines_changed":17}]}},{"commit":"0cd4c4bc7f3ffe13cb2f1920187e25636b88af61","message":"add nochange tests","stats":{"files_changed":2,"insertions":658,"deletions":0,"files":[".../centos-7.7/rsync-i-vvv-logfile-nochange.json",".../centos-7.7/rsync-i-vvv-logfile-nochange.out"],"file_stats":[{"name":".../centos-7.7/rsync-i-vvv-logfile-nochange.json","lines_changed":1},{"name":".../centos-7.7/rsync-i-vvv-logfile-nochange.out","lines_changed":657}]}},{"commit":"12f90c349c903634def4225ce87924b475be46d0","message":"update regexes for unchanged files","stats":{"files_changed":2,"insertions":68,"deletions":20,"files":["jc/parsers/rsync.py","tests/test_rsync.py"],"file_stats":[{"name":"jc/parsers/rsync.py","lines_changed":68},{"name":"tests/test_rsync.py","lines_changed":20}]}},{"commit":"26b8a1f167c4b1ec3f9fb4077254a27ed8548933","message":"remove packages from binaries and packages header","stats":{"files_changed":1,"insertions":1,"deletions":1,"files":["templates/readme_template"],"file_stats":[{"name":"templates/readme_template","lines_changed":2}]}},{"commit":"3abe382c064f605d915912f9b726d76784eba8a2","message":"add examples","stats":{"files_changed":2,"insertions":90,"deletions":3,"files":["EXAMPLES.md","jc/parsers/rsync.py"],"file_stats":[{"name":"EXAMPLES.md","lines_changed":33},{"name":"jc/parsers/rsync.py","lines_changed":60}]}},{"commit":"1e2edc2c7b5dc104a9efe4da7df9be61b9e1be32","message":"add timestamp","stats":{"files_changed":5,"insertions":53,"deletions":29,"files":["jc/parsers/rsync.py","tests/fixtures/centos-7.7/rsync-i-logfile.json","tests/fixtures/centos-7.7/rsync-i-v-logfile.json","tests/fixtures/centos-7.7/rsync-i-vv-logfile.json","tests/fixtures/centos-7.7/rsync-i-vvv-logfile.json"],"file_stats":[{"name":"jc/parsers/rsync.py","lines_changed":74},{"name":"tests/fixtures/centos-7.7/rsync-i-logfile.json","lines_changed":2},{"name":"tests/fixtures/centos-7.7/rsync-i-v-logfile.json","lines_changed":2},{"name":"tests/fixtures/centos-7.7/rsync-i-vv-logfile.json","lines_changed":2},{"name":"tests/fixtures/centos-7.7/rsync-i-vvv-logfile.json","lines_changed":2}]}},{"commit":"5fe032a6741b7b6586c60eb28be74bd0e56277a0","message":"fix typo","stats":{"files_changed":1,"insertions":1,"deletions":1,"files":["jc/parsers/zipinfo.py"],"file_stats":[{"name":"jc/parsers/zipinfo.py","lines_changed":2}]}},{"commit":"e825c02df1cdae67c7f335fe3c675685eb1a8d02","message":"add rsync tests","stats":{"files_changed":11,"insertions":605,"deletions":0,"files":["tests/fixtures/centos-7.7/rsync-i-logfile.json","tests/fixtures/centos-7.7/rsync-i-v-logfile.json","tests/fixtures/centos-7.7/rsync-i-vv-logfile.json","tests/fixtures/centos-7.7/rsync-i-vvv-logfile.json","tests/fixtures/centos-7.7/rsync-i-vvv-logfile.out","tests/fixtures/centos-7.7/rsync-i.json","tests/fixtures/centos-7.7/rsync-i.out","tests/fixtures/centos-7.7/rsync-ivvv.json","tests/fixtures/generic/rsync-i.json","tests/fixtures/generic/rsync-i.out","tests/test_rsync.py"],"file_stats":[{"name":"tests/fixtures/centos-7.7/rsync-i-logfile.json","lines_changed":1},{"name":"tests/fixtures/centos-7.7/rsync-i-v-logfile.json","lines_changed":1},{"name":"tests/fixtures/centos-7.7/rsync-i-vv-logfile.json","lines_changed":1},{"name":"tests/fixtures/centos-7.7/rsync-i-vvv-logfile.json","lines_changed":1},{"name":"tests/fixtures/centos-7.7/rsync-i-vvv-logfile.out","lines_changed":434},{"name":"tests/fixtures/centos-7.7/rsync-i.json","lines_changed":1},{"name":"tests/fixtures/centos-7.7/rsync-i.out","lines_changed":28},{"name":"tests/fixtures/centos-7.7/rsync-ivvv.json","lines_changed":1},{"name":"tests/fixtures/generic/rsync-i.json","lines_changed":1},{"name":"tests/fixtures/generic/rsync-i.out","lines_changed":11},{"name":"tests/test_rsync.py","lines_changed":125}]}},{"commit":"a4a4d170b5ae8c189de982adea5bdc9bf1f26e6c","message":"update docstring","stats":{"files_changed":1,"insertions":10,"deletions":5,"files":["jc/parsers/rsync.py"],"file_stats":[{"name":"jc/parsers/rsync.py","lines_changed":15}]}},{"commit":"d0fcd523cb2cbb59d0f90369721749b54222961d","message":"fix process conversions","stats":{"files_changed":1,"insertions":19,"deletions":17,"files":["jc/parsers/rsync.py"],"file_stats":[{"name":"jc/parsers/rsync.py","lines_changed":36}]}},{"commit":"f72b7dc75dbd1c3f5daee3ecee28487258a04873","message":"change keyname to files and remove future key","stats":{"files_changed":1,"insertions":4,"deletions":8,"files":["jc/parsers/rsync.py"],"file_stats":[{"name":"jc/parsers/rsync.py","lines_changed":12}]}},{"commit":"4101dc6bf7bab7d00899426e2f6271a7480d558f","message":"add log-file support","stats":{"files_changed":4,"insertions":1008,"deletions":19,"files":["jc/parsers/rsync.py","tests/fixtures/centos-7.7/rsync-i-v-logfile.out","tests/fixtures/centos-7.7/rsync-i-vv-logfile.out","tests/fixtures/centos-7.7/rsync-i-vvv-logfile.out"],"file_stats":[{"name":"jc/parsers/rsync.py","lines_changed":60},{"name":"tests/fixtures/centos-7.7/rsync-i-v-logfile.out","lines_changed":61},{"name":"tests/fixtures/centos-7.7/rsync-i-vv-logfile.out","lines_changed":65},{"name":"tests/fixtures/centos-7.7/rsync-i-vvv-logfile.out","lines_changed":841}]}},{"commit":"ea5011b616365b5c10c04416d43035d84e3dacba","message":"updated schema. add log-file option support","stats":{"files_changed":2,"insertions":175,"deletions":41,"files":["jc/parsers/rsync.py","tests/fixtures/centos-7.7/rsync-i-logfile.out"],"file_stats":[{"name":"jc/parsers/rsync.py","lines_changed":157},{"name":"tests/fixtures/centos-7.7/rsync-i-logfile.out","lines_changed":59}]}},{"commit":"d6de81747fd92642dbd5cb1fb097e375aa38be35","message":"add int/float conversions","stats":{"files_changed":1,"insertions":11,"deletions":3,"files":["jc/parsers/rsync.py"],"file_stats":[{"name":"jc/parsers/rsync.py","lines_changed":14}]}},{"commit":"38f04b1c9699246d85332b20df5b6a91ae0c48d9","message":"add summary","stats":{"files_changed":1,"insertions":32,"deletions":7,"files":["jc/parsers/rsync.py"],"file_stats":[{"name":"jc/parsers/rsync.py","lines_changed":39}]}},{"commit":"84169e1a913d035744f71472be81fe3a7d774b97","message":"add rsync parser","stats":{"files_changed":4,"insertions":637,"deletions":2,"files":["jc/lib.py","jc/parsers/rsync.py","setup.py","tests/fixtures/centos-7.7/rsync-ivvv.out"],"file_stats":[{"name":"jc/lib.py","lines_changed":3},{"name":"jc/parsers/rsync.py","lines_changed":212},{"name":"setup.py","lines_changed":2},{"name":"tests/fixtures/centos-7.7/rsync-ivvv.out","lines_changed":422}]}},{"commit":"1f96586a5e883709f436526de6dcb21ff44bf97b","message":"reorder imports","stats":{"files_changed":1,"insertions":1,"deletions":1,"files":["jc/parsers/foo.py"],"file_stats":[{"name":"jc/parsers/foo.py","lines_changed":2}]}},{"commit":"681176e4c958157ef1f2151b3e57963a6ba48e09","message":"Merge pull request #203 from kellyjonbrazil/dev"},{"commit":"8bb266352207f95040b72750e5b3ae3b8ceb2b98","message":"date update","stats":{"files_changed":1,"insertions":1,"deletions":1,"files":["CHANGELOG"],"file_stats":[{"name":"CHANGELOG","lines_changed":2}]}},{"commit":"663abf313931b49fad64b425ece6a5a257dc7938","message":"clean up scripts","stats":{"files_changed":4,"insertions":3,"deletions":4,"files":["MANIFEST.in","mangen.py","runtests.sh","updatedocs.sh"],"file_stats":[{"name":"MANIFEST.in","lines_changed":1},{"name":"mangen.py","lines_changed":3},{"name":"runtests.sh","lines_changed":1},{"name":"updatedocs.sh","lines_changed":2}]}},{"commit":"f7ac41db95c16fd21d83fbce678c5dec28ab40f0","message":"final doc update","stats":{"files_changed":2,"insertions":1,"deletions":13,"files":["README.md","man/jc.1"],"file_stats":[{"name":"README.md","lines_changed":2},{"name":"man/jc.1","lines_changed":12}]}},{"commit":"5502cda9e591b531d6b452b02d8ec322c3287800","message":"add additional test for dict inside list for all_parser_info()","stats":{"files_changed":1,"insertions":2,"deletions":1,"files":["tests/test_lib.py"],"file_stats":[{"name":"tests/test_lib.py","lines_changed":3}]}},{"commit":"a2b165565f54d91489bf38577a0785e78a4523d8","message":"add lib tests for new functions","stats":{"files_changed":1,"insertions":21,"deletions":0,"files":["tests/test_lib.py"],"file_stats":[{"name":"tests/test_lib.py","lines_changed":21}]}},{"commit":"b426369815984bd2aae8bcb14e306ba73b8cd4ae","message":"use all_parser_info() from lib in about function","stats":{"files_changed":1,"insertions":5,"deletions":7,"files":["jc/cli.py"],"file_stats":[{"name":"jc/cli.py","lines_changed":12}]}},{"commit":"ac0840cc0afb4aeee2c99076710c987e09cfa5f7","message":"fix typo","stats":{"files_changed":2,"insertions":4,"deletions":4,"files":["docs/readme.md","jc/__init__.py"],"file_stats":[{"name":"docs/readme.md","lines_changed":4},{"name":"jc/__init__.py","lines_changed":4}]}},{"commit":"ee98ab0a4a7671ae34ee79f7b0b97c061a8c2944","message":"doc update","stats":{"files_changed":2,"insertions":5,"deletions":5,"files":["docs/lib.md","docs/utils.md"],"file_stats":[{"name":"docs/lib.md","lines_changed":6},{"name":"docs/utils.md","lines_changed":4}]}},{"commit":"2adec2c0035b84ca0242f2494b6c2651b9898ca5","message":"update type hints with mypy help","stats":{"files_changed":4,"insertions":21,"deletions":19,"files":["jc/lib.py","jc/parsers/foo.py","jc/parsers/foo_s.py","jc/utils.py"],"file_stats":[{"name":"jc/lib.py","lines_changed":18},{"name":"jc/parsers/foo.py","lines_changed":8},{"name":"jc/parsers/foo_s.py","lines_changed":10},{"name":"jc/utils.py","lines_changed":4}]}},{"commit":"f19c9c71bf4f592f55a5176458acd478b462fdbe","message":"add type hints","stats":{"files_changed":2,"insertions":15,"deletions":4,"files":["jc/parsers/foo.py","jc/parsers/foo_s.py"],"file_stats":[{"name":"jc/parsers/foo.py","lines_changed":9},{"name":"jc/parsers/foo_s.py","lines_changed":10}]}},{"commit":"e93adf1884c0006a64123513070a5fd96a940da2","message":"fix doc","stats":{"files_changed":2,"insertions":6,"deletions":4,"files":["docs/readme.md","jc/__init__.py"],"file_stats":[{"name":"docs/readme.md","lines_changed":5},{"name":"jc/__init__.py","lines_changed":5}]}},{"commit":"254c4fc507842ca72064c0196418a7b939d54d06","message":"add new functions","stats":{"files_changed":2,"insertions":20,"deletions":6,"files":["docs/readme.md","jc/__init__.py"],"file_stats":[{"name":"docs/readme.md","lines_changed":13},{"name":"jc/__init__.py","lines_changed":13}]}},{"commit":"74d5f60d14fc42cfd5768c7ffd6efc890a65d442","message":"update console interview description","stats":{"files_changed":3,"insertions":3,"deletions":3,"files":["README.md","man/jc.1","templates/readme_template"],"file_stats":[{"name":"README.md","lines_changed":2},{"name":"man/jc.1","lines_changed":2},{"name":"templates/readme_template","lines_changed":2}]}},{"commit":"db7dc0634bc17b4daadc8bc21bba5975c093efe5","message":"make **kwargs optional","stats":{"files_changed":2,"insertions":2,"deletions":2,"files":["docs/lib.md","jc/lib.py"],"file_stats":[{"name":"docs/lib.md","lines_changed":2},{"name":"jc/lib.py","lines_changed":2}]}},{"commit":"e156b0db453e99fb0f74b618fd343218f978ff68","message":"add type hints","stats":{"files_changed":2,"insertions":5,"deletions":4,"files":["docs/parsers/universal.md","jc/parsers/universal.py"],"file_stats":[{"name":"docs/parsers/universal.md","lines_changed":4},{"name":"jc/parsers/universal.py","lines_changed":5}]}},{"commit":"50adc05fbd6a0dcd9e4fb38aa41917bb57332f36","message":"formatting","stats":{"files_changed":2,"insertions":6,"deletions":6,"files":["docs/utils.md","jc/utils.py"],"file_stats":[{"name":"docs/utils.md","lines_changed":6},{"name":"jc/utils.py","lines_changed":6}]}},{"commit":"446cac7c217103eb66cfdee97e3a208b7144b644","message":"doc update","stats":{"files_changed":2,"insertions":15,"deletions":11,"files":["docs/utils.md","jc/utils.py"],"file_stats":[{"name":"docs/utils.md","lines_changed":11},{"name":"jc/utils.py","lines_changed":15}]}},{"commit":"28ffe3076bb5f23aeaf2624344856dbd02b4c0e8","message":"formatting","stats":{"files_changed":2,"insertions":8,"deletions":9,"files":["docs/lib.md","jc/lib.py"],"file_stats":[{"name":"docs/lib.md","lines_changed":8},{"name":"jc/lib.py","lines_changed":9}]}},{"commit":"d4d5e206cae14acd25445952f820810818b3fdce","message":"type hints update","stats":{"files_changed":3,"insertions":40,"deletions":28,"files":["docs/lib.md","docs/utils.md","jc/utils.py"],"file_stats":[{"name":"docs/lib.md","lines_changed":15},{"name":"docs/utils.md","lines_changed":26},{"name":"jc/utils.py","lines_changed":27}]}},{"commit":"42fbe40a4ae02b9d09acdbf9b22573844959d2ad","message":"simplify type hints","stats":{"files_changed":1,"insertions":7,"deletions":4,"files":["jc/lib.py"],"file_stats":[{"name":"jc/lib.py","lines_changed":11}]}},{"commit":"27e4a120e21dcbb3eadc6c4cf224ddb33859328d","message":"remove trailing comma","stats":{"files_changed":2,"insertions":2,"deletions":2,"files":["docs/lib.md","jc/lib.py"],"file_stats":[{"name":"docs/lib.md","lines_changed":2},{"name":"jc/lib.py","lines_changed":2}]}},{"commit":"b5d5b7c73a96d4335b178ccfac60af90913e6f0f","message":"remove private classes","stats":{"files_changed":3,"insertions":29,"deletions":148,"files":["docgen.sh","docs/parsers/ifconfig.md","docs/parsers/traceroute.md"],"file_stats":[{"name":"docgen.sh","lines_changed":35},{"name":"docs/parsers/ifconfig.md","lines_changed":94},{"name":"docs/parsers/traceroute.md","lines_changed":48}]}},{"commit":"e7471556ba5fb0586ac5b0d7404cabd98a58db2e","message":"remove sed lines","stats":{"files_changed":1,"insertions":0,"deletions":5,"files":["docgen.sh"],"file_stats":[{"name":"docgen.sh","lines_changed":5}]}},{"commit":"640a21341bb1c562cb2124155b511dfc74277fc0","message":"fix indentation","stats":{"files_changed":2,"insertions":47,"deletions":42,"files":["docs/utils.md","jc/utils.py"],"file_stats":[{"name":"docs/utils.md","lines_changed":20},{"name":"jc/utils.py","lines_changed":69}]}},{"commit":"f5befad3e41ba2864abc795a2fdf63e0f1d37c21","message":"move docstring under __init__","stats":{"files_changed":2,"insertions":33,"deletions":25,"files":["docs/utils.md","jc/utils.py"],"file_stats":[{"name":"docs/utils.md","lines_changed":21},{"name":"jc/utils.py","lines_changed":37}]}},{"commit":"f8223023c31093c1a34130b4e4cfc23b1d80a30c","message":"change header depth","stats":{"files_changed":4,"insertions":24,"deletions":10,"files":["docgen.sh","docs/parsers/ifconfig.md","docs/parsers/traceroute.md","docs/utils.md"],"file_stats":[{"name":"docgen.sh","lines_changed":28},{"name":"docs/parsers/ifconfig.md","lines_changed":2},{"name":"docs/parsers/traceroute.md","lines_changed":2},{"name":"docs/utils.md","lines_changed":2}]}},{"commit":"7028e87f9b411c0cfb92eee7fc0667cdcb9a54ff","message":"remove TOC for parsers","stats":{"files_changed":87,"insertions":22,"deletions":445,"files":["docgen.sh","docs/parsers/acpi.md","docs/parsers/airport.md","docs/parsers/airport_s.md","docs/parsers/arp.md","docs/parsers/blkid.md","docs/parsers/cksum.md","docs/parsers/crontab.md","docs/parsers/crontab_u.md","docs/parsers/csv.md","docs/parsers/csv_s.md","docs/parsers/date.md","docs/parsers/df.md","docs/parsers/dig.md","docs/parsers/dir.md","docs/parsers/dmidecode.md","docs/parsers/dpkg_l.md","docs/parsers/du.md","docs/parsers/env.md","docs/parsers/file.md","docs/parsers/finger.md","docs/parsers/free.md","docs/parsers/fstab.md","docs/parsers/group.md","docs/parsers/gshadow.md","docs/parsers/hash.md","docs/parsers/hashsum.md","docs/parsers/hciconfig.md","docs/parsers/history.md","docs/parsers/hosts.md","docs/parsers/id.md","docs/parsers/ifconfig.md","docs/parsers/ini.md","docs/parsers/iostat.md","docs/parsers/iostat_s.md","docs/parsers/iptables.md","docs/parsers/iw_scan.md","docs/parsers/jar_manifest.md","docs/parsers/jobs.md","docs/parsers/kv.md","docs/parsers/last.md","docs/parsers/ls.md","docs/parsers/ls_s.md","docs/parsers/lsblk.md","docs/parsers/lsmod.md","docs/parsers/lsof.md","docs/parsers/lsusb.md","docs/parsers/mount.md","docs/parsers/netstat.md","docs/parsers/ntpq.md","docs/parsers/passwd.md","docs/parsers/ping.md","docs/parsers/ping_s.md","docs/parsers/pip_list.md","docs/parsers/pip_show.md","docs/parsers/ps.md","docs/parsers/route.md","docs/parsers/rpm_qi.md","docs/parsers/sfdisk.md","docs/parsers/shadow.md","docs/parsers/ss.md","docs/parsers/stat.md","docs/parsers/stat_s.md","docs/parsers/sysctl.md","docs/parsers/systemctl.md","docs/parsers/systemctl_lj.md","docs/parsers/systemctl_ls.md","docs/parsers/systemctl_luf.md","docs/parsers/systeminfo.md","docs/parsers/time.md","docs/parsers/timedatectl.md","docs/parsers/tracepath.md","docs/parsers/traceroute.md","docs/parsers/ufw.md","docs/parsers/ufw_appinfo.md","docs/parsers/uname.md","docs/parsers/upower.md","docs/parsers/uptime.md","docs/parsers/vmstat.md","docs/parsers/vmstat_s.md","docs/parsers/w.md","docs/parsers/wc.md","docs/parsers/who.md","docs/parsers/xml.md","docs/parsers/yaml.md","docs/parsers/zipinfo.md","docs/readme.md"],"file_stats":[{"name":"docgen.sh","lines_changed":26},{"name":"docs/parsers/acpi.md","lines_changed":5},{"name":"docs/parsers/airport.md","lines_changed":5},{"name":"docs/parsers/airport_s.md","lines_changed":5},{"name":"docs/parsers/arp.md","lines_changed":5},{"name":"docs/parsers/blkid.md","lines_changed":5},{"name":"docs/parsers/cksum.md","lines_changed":5},{"name":"docs/parsers/crontab.md","lines_changed":5},{"name":"docs/parsers/crontab_u.md","lines_changed":5},{"name":"docs/parsers/csv.md","lines_changed":5},{"name":"docs/parsers/csv_s.md","lines_changed":5},{"name":"docs/parsers/date.md","lines_changed":5},{"name":"docs/parsers/df.md","lines_changed":5},{"name":"docs/parsers/dig.md","lines_changed":5},{"name":"docs/parsers/dir.md","lines_changed":5},{"name":"docs/parsers/dmidecode.md","lines_changed":5},{"name":"docs/parsers/dpkg_l.md","lines_changed":5},{"name":"docs/parsers/du.md","lines_changed":5},{"name":"docs/parsers/env.md","lines_changed":5},{"name":"docs/parsers/file.md","lines_changed":5},{"name":"docs/parsers/finger.md","lines_changed":5},{"name":"docs/parsers/free.md","lines_changed":5},{"name":"docs/parsers/fstab.md","lines_changed":5},{"name":"docs/parsers/group.md","lines_changed":5},{"name":"docs/parsers/gshadow.md","lines_changed":5},{"name":"docs/parsers/hash.md","lines_changed":5},{"name":"docs/parsers/hashsum.md","lines_changed":5},{"name":"docs/parsers/hciconfig.md","lines_changed":5},{"name":"docs/parsers/history.md","lines_changed":5},{"name":"docs/parsers/hosts.md","lines_changed":5},{"name":"docs/parsers/id.md","lines_changed":5},{"name":"docs/parsers/ifconfig.md","lines_changed":14},{"name":"docs/parsers/ini.md","lines_changed":5},{"name":"docs/parsers/iostat.md","lines_changed":5},{"name":"docs/parsers/iostat_s.md","lines_changed":5},{"name":"docs/parsers/iptables.md","lines_changed":5},{"name":"docs/parsers/iw_scan.md","lines_changed":5},{"name":"docs/parsers/jar_manifest.md","lines_changed":5},{"name":"docs/parsers/jobs.md","lines_changed":5},{"name":"docs/parsers/kv.md","lines_changed":5},{"name":"docs/parsers/last.md","lines_changed":5},{"name":"docs/parsers/ls.md","lines_changed":5},{"name":"docs/parsers/ls_s.md","lines_changed":5},{"name":"docs/parsers/lsblk.md","lines_changed":5},{"name":"docs/parsers/lsmod.md","lines_changed":5},{"name":"docs/parsers/lsof.md","lines_changed":5},{"name":"docs/parsers/lsusb.md","lines_changed":5},{"name":"docs/parsers/mount.md","lines_changed":5},{"name":"docs/parsers/netstat.md","lines_changed":5},{"name":"docs/parsers/ntpq.md","lines_changed":5},{"name":"docs/parsers/passwd.md","lines_changed":5},{"name":"docs/parsers/ping.md","lines_changed":5},{"name":"docs/parsers/ping_s.md","lines_changed":5},{"name":"docs/parsers/pip_list.md","lines_changed":5},{"name":"docs/parsers/pip_show.md","lines_changed":5},{"name":"docs/parsers/ps.md","lines_changed":5},{"name":"docs/parsers/route.md","lines_changed":5},{"name":"docs/parsers/rpm_qi.md","lines_changed":5},{"name":"docs/parsers/sfdisk.md","lines_changed":5},{"name":"docs/parsers/shadow.md","lines_changed":5},{"name":"docs/parsers/ss.md","lines_changed":5},{"name":"docs/parsers/stat.md","lines_changed":5},{"name":"docs/parsers/stat_s.md","lines_changed":5},{"name":"docs/parsers/sysctl.md","lines_changed":5},{"name":"docs/parsers/systemctl.md","lines_changed":5},{"name":"docs/parsers/systemctl_lj.md","lines_changed":5},{"name":"docs/parsers/systemctl_ls.md","lines_changed":5},{"name":"docs/parsers/systemctl_luf.md","lines_changed":5},{"name":"docs/parsers/systeminfo.md","lines_changed":5},{"name":"docs/parsers/time.md","lines_changed":5},{"name":"docs/parsers/timedatectl.md","lines_changed":5},{"name":"docs/parsers/tracepath.md","lines_changed":5},{"name":"docs/parsers/traceroute.md","lines_changed":8},{"name":"docs/parsers/ufw.md","lines_changed":5},{"name":"docs/parsers/ufw_appinfo.md","lines_changed":5},{"name":"docs/parsers/uname.md","lines_changed":5},{"name":"docs/parsers/upower.md","lines_changed":5},{"name":"docs/parsers/uptime.md","lines_changed":5},{"name":"docs/parsers/vmstat.md","lines_changed":5},{"name":"docs/parsers/vmstat_s.md","lines_changed":5},{"name":"docs/parsers/w.md","lines_changed":5},{"name":"docs/parsers/wc.md","lines_changed":5},{"name":"docs/parsers/who.md","lines_changed":5},{"name":"docs/parsers/xml.md","lines_changed":5},{"name":"docs/parsers/yaml.md","lines_changed":5},{"name":"docs/parsers/zipinfo.md","lines_changed":5},{"name":"docs/readme.md","lines_changed":4}]}},{"commit":"590728f9c1ccfdc078e600d1f35ad4ba51f70d36","message":"try new pydoc-markdown formatting options","stats":{"files_changed":91,"insertions":506,"deletions":17,"files":["docgen.sh","docs/lib.md","docs/parsers/acpi.md","docs/parsers/airport.md","docs/parsers/airport_s.md","docs/parsers/arp.md","docs/parsers/blkid.md","docs/parsers/cksum.md","docs/parsers/crontab.md","docs/parsers/crontab_u.md","docs/parsers/csv.md","docs/parsers/csv_s.md","docs/parsers/date.md","docs/parsers/df.md","docs/parsers/dig.md","docs/parsers/dir.md","docs/parsers/dmidecode.md","docs/parsers/dpkg_l.md","docs/parsers/du.md","docs/parsers/env.md","docs/parsers/file.md","docs/parsers/finger.md","docs/parsers/free.md","docs/parsers/fstab.md","docs/parsers/group.md","docs/parsers/gshadow.md","docs/parsers/hash.md","docs/parsers/hashsum.md","docs/parsers/hciconfig.md","docs/parsers/history.md","docs/parsers/hosts.md","docs/parsers/id.md","docs/parsers/ifconfig.md","docs/parsers/ini.md","docs/parsers/iostat.md","docs/parsers/iostat_s.md","docs/parsers/iptables.md","docs/parsers/iw_scan.md","docs/parsers/jar_manifest.md","docs/parsers/jobs.md","docs/parsers/kv.md","docs/parsers/last.md","docs/parsers/ls.md","docs/parsers/ls_s.md","docs/parsers/lsblk.md","docs/parsers/lsmod.md","docs/parsers/lsof.md","docs/parsers/lsusb.md","docs/parsers/mount.md","docs/parsers/netstat.md","docs/parsers/ntpq.md","docs/parsers/passwd.md","docs/parsers/ping.md","docs/parsers/ping_s.md","docs/parsers/pip_list.md","docs/parsers/pip_show.md","docs/parsers/ps.md","docs/parsers/route.md","docs/parsers/rpm_qi.md","docs/parsers/sfdisk.md","docs/parsers/shadow.md","docs/parsers/ss.md","docs/parsers/stat.md","docs/parsers/stat_s.md","docs/parsers/sysctl.md","docs/parsers/systemctl.md","docs/parsers/systemctl_lj.md","docs/parsers/systemctl_ls.md","docs/parsers/systemctl_luf.md","docs/parsers/systeminfo.md","docs/parsers/time.md","docs/parsers/timedatectl.md","docs/parsers/tracepath.md","docs/parsers/traceroute.md","docs/parsers/ufw.md","docs/parsers/ufw_appinfo.md","docs/parsers/uname.md","docs/parsers/universal.md","docs/parsers/upower.md","docs/parsers/uptime.md","docs/parsers/vmstat.md","docs/parsers/vmstat_s.md","docs/parsers/w.md","docs/parsers/wc.md","docs/parsers/who.md","docs/parsers/xml.md","docs/parsers/yaml.md","docs/parsers/zipinfo.md","docs/readme.md","docs/utils.md","jc/lib.py"],"file_stats":[{"name":"docgen.sh","lines_changed":28},{"name":"docs/lib.md","lines_changed":13},{"name":"docs/parsers/acpi.md","lines_changed":5},{"name":"docs/parsers/airport.md","lines_changed":5},{"name":"docs/parsers/airport_s.md","lines_changed":5},{"name":"docs/parsers/arp.md","lines_changed":5},{"name":"docs/parsers/blkid.md","lines_changed":5},{"name":"docs/parsers/cksum.md","lines_changed":5},{"name":"docs/parsers/crontab.md","lines_changed":5},{"name":"docs/parsers/crontab_u.md","lines_changed":5},{"name":"docs/parsers/csv.md","lines_changed":5},{"name":"docs/parsers/csv_s.md","lines_changed":5},{"name":"docs/parsers/date.md","lines_changed":5},{"name":"docs/parsers/df.md","lines_changed":5},{"name":"docs/parsers/dig.md","lines_changed":5},{"name":"docs/parsers/dir.md","lines_changed":5},{"name":"docs/parsers/dmidecode.md","lines_changed":5},{"name":"docs/parsers/dpkg_l.md","lines_changed":5},{"name":"docs/parsers/du.md","lines_changed":5},{"name":"docs/parsers/env.md","lines_changed":5},{"name":"docs/parsers/file.md","lines_changed":5},{"name":"docs/parsers/finger.md","lines_changed":5},{"name":"docs/parsers/free.md","lines_changed":5},{"name":"docs/parsers/fstab.md","lines_changed":5},{"name":"docs/parsers/group.md","lines_changed":5},{"name":"docs/parsers/gshadow.md","lines_changed":5},{"name":"docs/parsers/hash.md","lines_changed":5},{"name":"docs/parsers/hashsum.md","lines_changed":5},{"name":"docs/parsers/hciconfig.md","lines_changed":5},{"name":"docs/parsers/history.md","lines_changed":5},{"name":"docs/parsers/hosts.md","lines_changed":5},{"name":"docs/parsers/id.md","lines_changed":5},{"name":"docs/parsers/ifconfig.md","lines_changed":14},{"name":"docs/parsers/ini.md","lines_changed":5},{"name":"docs/parsers/iostat.md","lines_changed":5},{"name":"docs/parsers/iostat_s.md","lines_changed":5},{"name":"docs/parsers/iptables.md","lines_changed":5},{"name":"docs/parsers/iw_scan.md","lines_changed":5},{"name":"docs/parsers/jar_manifest.md","lines_changed":5},{"name":"docs/parsers/jobs.md","lines_changed":5},{"name":"docs/parsers/kv.md","lines_changed":5},{"name":"docs/parsers/last.md","lines_changed":5},{"name":"docs/parsers/ls.md","lines_changed":5},{"name":"docs/parsers/ls_s.md","lines_changed":5},{"name":"docs/parsers/lsblk.md","lines_changed":5},{"name":"docs/parsers/lsmod.md","lines_changed":5},{"name":"docs/parsers/lsof.md","lines_changed":5},{"name":"docs/parsers/lsusb.md","lines_changed":5},{"name":"docs/parsers/mount.md","lines_changed":5},{"name":"docs/parsers/netstat.md","lines_changed":5},{"name":"docs/parsers/ntpq.md","lines_changed":5},{"name":"docs/parsers/passwd.md","lines_changed":5},{"name":"docs/parsers/ping.md","lines_changed":5},{"name":"docs/parsers/ping_s.md","lines_changed":5},{"name":"docs/parsers/pip_list.md","lines_changed":5},{"name":"docs/parsers/pip_show.md","lines_changed":5},{"name":"docs/parsers/ps.md","lines_changed":5},{"name":"docs/parsers/route.md","lines_changed":5},{"name":"docs/parsers/rpm_qi.md","lines_changed":5},{"name":"docs/parsers/sfdisk.md","lines_changed":5},{"name":"docs/parsers/shadow.md","lines_changed":5},{"name":"docs/parsers/ss.md","lines_changed":5},{"name":"docs/parsers/stat.md","lines_changed":5},{"name":"docs/parsers/stat_s.md","lines_changed":5},{"name":"docs/parsers/sysctl.md","lines_changed":5},{"name":"docs/parsers/systemctl.md","lines_changed":5},{"name":"docs/parsers/systemctl_lj.md","lines_changed":5},{"name":"docs/parsers/systemctl_ls.md","lines_changed":5},{"name":"docs/parsers/systemctl_luf.md","lines_changed":5},{"name":"docs/parsers/systeminfo.md","lines_changed":5},{"name":"docs/parsers/time.md","lines_changed":5},{"name":"docs/parsers/timedatectl.md","lines_changed":5},{"name":"docs/parsers/tracepath.md","lines_changed":5},{"name":"docs/parsers/traceroute.md","lines_changed":8},{"name":"docs/parsers/ufw.md","lines_changed":5},{"name":"docs/parsers/ufw_appinfo.md","lines_changed":5},{"name":"docs/parsers/uname.md","lines_changed":5},{"name":"docs/parsers/universal.md","lines_changed":6},{"name":"docs/parsers/upower.md","lines_changed":5},{"name":"docs/parsers/uptime.md","lines_changed":5},{"name":"docs/parsers/vmstat.md","lines_changed":5},{"name":"docs/parsers/vmstat_s.md","lines_changed":5},{"name":"docs/parsers/w.md","lines_changed":5},{"name":"docs/parsers/wc.md","lines_changed":5},{"name":"docs/parsers/who.md","lines_changed":5},{"name":"docs/parsers/xml.md","lines_changed":5},{"name":"docs/parsers/yaml.md","lines_changed":5},{"name":"docs/parsers/zipinfo.md","lines_changed":5},{"name":"docs/readme.md","lines_changed":4},{"name":"docs/utils.md","lines_changed":17},{"name":"jc/lib.py","lines_changed":18}]}},{"commit":"7cc147fe2d7b278bcab905bc4c3b70b5265e1510","message":"increase heading size","stats":{"files_changed":2,"insertions":4,"deletions":44,"files":["docgen.sh","docgen.sh.old"],"file_stats":[{"name":"docgen.sh","lines_changed":4},{"name":"docgen.sh.old","lines_changed":44}]}},{"commit":"3cfb3965bb25024a7b03870b71f02194e278919b","message":"formatting","stats":{"files_changed":3,"insertions":19,"deletions":19,"files":["docs/lib.md","docs/parsers/universal.md","docs/utils.md"],"file_stats":[{"name":"docs/lib.md","lines_changed":10},{"name":"docs/parsers/universal.md","lines_changed":4},{"name":"docs/utils.md","lines_changed":24}]}},{"commit":"155d4213225fe4fcf4a059fb63c1ab9fc493177e","message":"formatting","stats":{"files_changed":86,"insertions":182,"deletions":181,"files":["docgen.sh","docs/parsers/acpi.md","docs/parsers/airport.md","docs/parsers/airport_s.md","docs/parsers/arp.md","docs/parsers/blkid.md","docs/parsers/cksum.md","docs/parsers/crontab.md","docs/parsers/crontab_u.md","docs/parsers/csv.md","docs/parsers/csv_s.md","docs/parsers/date.md","docs/parsers/df.md","docs/parsers/dig.md","docs/parsers/dir.md","docs/parsers/dmidecode.md","docs/parsers/dpkg_l.md","docs/parsers/du.md","docs/parsers/env.md","docs/parsers/file.md","docs/parsers/finger.md","docs/parsers/free.md","docs/parsers/fstab.md","docs/parsers/group.md","docs/parsers/gshadow.md","docs/parsers/hash.md","docs/parsers/hashsum.md","docs/parsers/hciconfig.md","docs/parsers/history.md","docs/parsers/hosts.md","docs/parsers/id.md","docs/parsers/ifconfig.md","docs/parsers/ini.md","docs/parsers/iostat.md","docs/parsers/iostat_s.md","docs/parsers/iptables.md","docs/parsers/iw_scan.md","docs/parsers/jar_manifest.md","docs/parsers/jobs.md","docs/parsers/kv.md","docs/parsers/last.md","docs/parsers/ls.md","docs/parsers/ls_s.md","docs/parsers/lsblk.md","docs/parsers/lsmod.md","docs/parsers/lsof.md","docs/parsers/lsusb.md","docs/parsers/mount.md","docs/parsers/netstat.md","docs/parsers/ntpq.md","docs/parsers/passwd.md","docs/parsers/ping.md","docs/parsers/ping_s.md","docs/parsers/pip_list.md","docs/parsers/pip_show.md","docs/parsers/ps.md","docs/parsers/route.md","docs/parsers/rpm_qi.md","docs/parsers/sfdisk.md","docs/parsers/shadow.md","docs/parsers/ss.md","docs/parsers/stat.md","docs/parsers/stat_s.md","docs/parsers/sysctl.md","docs/parsers/systemctl.md","docs/parsers/systemctl_lj.md","docs/parsers/systemctl_ls.md","docs/parsers/systemctl_luf.md","docs/parsers/systeminfo.md","docs/parsers/time.md","docs/parsers/timedatectl.md","docs/parsers/tracepath.md","docs/parsers/traceroute.md","docs/parsers/ufw.md","docs/parsers/ufw_appinfo.md","docs/parsers/uname.md","docs/parsers/upower.md","docs/parsers/uptime.md","docs/parsers/vmstat.md","docs/parsers/vmstat_s.md","docs/parsers/w.md","docs/parsers/wc.md","docs/parsers/who.md","docs/parsers/xml.md","docs/parsers/yaml.md","docs/parsers/zipinfo.md"],"file_stats":[{"name":"docgen.sh","lines_changed":3},{"name":"docs/parsers/acpi.md","lines_changed":4},{"name":"docs/parsers/airport.md","lines_changed":4},{"name":"docs/parsers/airport_s.md","lines_changed":4},{"name":"docs/parsers/arp.md","lines_changed":4},{"name":"docs/parsers/blkid.md","lines_changed":4},{"name":"docs/parsers/cksum.md","lines_changed":4},{"name":"docs/parsers/crontab.md","lines_changed":4},{"name":"docs/parsers/crontab_u.md","lines_changed":4},{"name":"docs/parsers/csv.md","lines_changed":4},{"name":"docs/parsers/csv_s.md","lines_changed":4},{"name":"docs/parsers/date.md","lines_changed":4},{"name":"docs/parsers/df.md","lines_changed":4},{"name":"docs/parsers/dig.md","lines_changed":4},{"name":"docs/parsers/dir.md","lines_changed":4},{"name":"docs/parsers/dmidecode.md","lines_changed":4},{"name":"docs/parsers/dpkg_l.md","lines_changed":4},{"name":"docs/parsers/du.md","lines_changed":4},{"name":"docs/parsers/env.md","lines_changed":4},{"name":"docs/parsers/file.md","lines_changed":4},{"name":"docs/parsers/finger.md","lines_changed":4},{"name":"docs/parsers/free.md","lines_changed":4},{"name":"docs/parsers/fstab.md","lines_changed":4},{"name":"docs/parsers/group.md","lines_changed":4},{"name":"docs/parsers/gshadow.md","lines_changed":4},{"name":"docs/parsers/hash.md","lines_changed":4},{"name":"docs/parsers/hashsum.md","lines_changed":4},{"name":"docs/parsers/hciconfig.md","lines_changed":4},{"name":"docs/parsers/history.md","lines_changed":4},{"name":"docs/parsers/hosts.md","lines_changed":4},{"name":"docs/parsers/id.md","lines_changed":4},{"name":"docs/parsers/ifconfig.md","lines_changed":20},{"name":"docs/parsers/ini.md","lines_changed":4},{"name":"docs/parsers/iostat.md","lines_changed":4},{"name":"docs/parsers/iostat_s.md","lines_changed":4},{"name":"docs/parsers/iptables.md","lines_changed":4},{"name":"docs/parsers/iw_scan.md","lines_changed":4},{"name":"docs/parsers/jar_manifest.md","lines_changed":4},{"name":"docs/parsers/jobs.md","lines_changed":4},{"name":"docs/parsers/kv.md","lines_changed":4},{"name":"docs/parsers/last.md","lines_changed":4},{"name":"docs/parsers/ls.md","lines_changed":4},{"name":"docs/parsers/ls_s.md","lines_changed":4},{"name":"docs/parsers/lsblk.md","lines_changed":4},{"name":"docs/parsers/lsmod.md","lines_changed":4},{"name":"docs/parsers/lsof.md","lines_changed":4},{"name":"docs/parsers/lsusb.md","lines_changed":4},{"name":"docs/parsers/mount.md","lines_changed":4},{"name":"docs/parsers/netstat.md","lines_changed":4},{"name":"docs/parsers/ntpq.md","lines_changed":4},{"name":"docs/parsers/passwd.md","lines_changed":4},{"name":"docs/parsers/ping.md","lines_changed":4},{"name":"docs/parsers/ping_s.md","lines_changed":4},{"name":"docs/parsers/pip_list.md","lines_changed":4},{"name":"docs/parsers/pip_show.md","lines_changed":4},{"name":"docs/parsers/ps.md","lines_changed":4},{"name":"docs/parsers/route.md","lines_changed":4},{"name":"docs/parsers/rpm_qi.md","lines_changed":4},{"name":"docs/parsers/sfdisk.md","lines_changed":4},{"name":"docs/parsers/shadow.md","lines_changed":4},{"name":"docs/parsers/ss.md","lines_changed":4},{"name":"docs/parsers/stat.md","lines_changed":4},{"name":"docs/parsers/stat_s.md","lines_changed":4},{"name":"docs/parsers/sysctl.md","lines_changed":4},{"name":"docs/parsers/systemctl.md","lines_changed":4},{"name":"docs/parsers/systemctl_lj.md","lines_changed":4},{"name":"docs/parsers/systemctl_ls.md","lines_changed":4},{"name":"docs/parsers/systemctl_luf.md","lines_changed":4},{"name":"docs/parsers/systeminfo.md","lines_changed":4},{"name":"docs/parsers/time.md","lines_changed":4},{"name":"docs/parsers/timedatectl.md","lines_changed":4},{"name":"docs/parsers/tracepath.md","lines_changed":4},{"name":"docs/parsers/traceroute.md","lines_changed":8},{"name":"docs/parsers/ufw.md","lines_changed":4},{"name":"docs/parsers/ufw_appinfo.md","lines_changed":4},{"name":"docs/parsers/uname.md","lines_changed":4},{"name":"docs/parsers/upower.md","lines_changed":4},{"name":"docs/parsers/uptime.md","lines_changed":4},{"name":"docs/parsers/vmstat.md","lines_changed":4},{"name":"docs/parsers/vmstat_s.md","lines_changed":4},{"name":"docs/parsers/w.md","lines_changed":4},{"name":"docs/parsers/wc.md","lines_changed":4},{"name":"docs/parsers/who.md","lines_changed":4},{"name":"docs/parsers/xml.md","lines_changed":4},{"name":"docs/parsers/yaml.md","lines_changed":4},{"name":"docs/parsers/zipinfo.md","lines_changed":4}]}},{"commit":"d3e10bb87bdb32396bce95f74e62a023f4efaf99","message":"add lsusb docs","stats":{"files_changed":1,"insertions":291,"deletions":0,"files":["docs/parsers/lsusb.md"],"file_stats":[{"name":"docs/parsers/lsusb.md","lines_changed":291}]}},{"commit":"fd5433ee6220357e59633c78b689aa432d056b43","message":"parse docstring formatting","stats":{"files_changed":3,"insertions":6,"deletions":293,"files":["docs/lib.md","docs/parsers/lsusb.md","jc/lib.py"],"file_stats":[{"name":"docs/lib.md","lines_changed":4},{"name":"docs/parsers/lsusb.md","lines_changed":291},{"name":"jc/lib.py","lines_changed":4}]}},{"commit":"4568f2d06e8fc1c465c86c318d925586481af062","message":"formatting for parse docstring","stats":{"files_changed":2,"insertions":2,"deletions":6,"files":["docs/lib.md","jc/lib.py"],"file_stats":[{"name":"docs/lib.md","lines_changed":4},{"name":"jc/lib.py","lines_changed":4}]}},{"commit":"c36e513d1bcc07cd8f01ff59199950e5396da51b","message":"formatting","stats":{"files_changed":86,"insertions":88,"deletions":91,"files":["docgen.sh","docs/parsers/acpi.md","docs/parsers/airport.md","docs/parsers/airport_s.md","docs/parsers/arp.md","docs/parsers/blkid.md","docs/parsers/cksum.md","docs/parsers/crontab.md","docs/parsers/crontab_u.md","docs/parsers/csv.md","docs/parsers/csv_s.md","docs/parsers/date.md","docs/parsers/df.md","docs/parsers/dig.md","docs/parsers/dir.md","docs/parsers/dmidecode.md","docs/parsers/dpkg_l.md","docs/parsers/du.md","docs/parsers/env.md","docs/parsers/file.md","docs/parsers/finger.md","docs/parsers/free.md","docs/parsers/fstab.md","docs/parsers/group.md","docs/parsers/gshadow.md","docs/parsers/hash.md","docs/parsers/hashsum.md","docs/parsers/hciconfig.md","docs/parsers/history.md","docs/parsers/hosts.md","docs/parsers/id.md","docs/parsers/ifconfig.md","docs/parsers/ini.md","docs/parsers/iostat.md","docs/parsers/iostat_s.md","docs/parsers/iptables.md","docs/parsers/iw_scan.md","docs/parsers/jar_manifest.md","docs/parsers/jobs.md","docs/parsers/kv.md","docs/parsers/last.md","docs/parsers/ls.md","docs/parsers/ls_s.md","docs/parsers/lsblk.md","docs/parsers/lsmod.md","docs/parsers/lsof.md","docs/parsers/lsusb.md","docs/parsers/mount.md","docs/parsers/netstat.md","docs/parsers/ntpq.md","docs/parsers/passwd.md","docs/parsers/ping.md","docs/parsers/ping_s.md","docs/parsers/pip_list.md","docs/parsers/pip_show.md","docs/parsers/ps.md","docs/parsers/route.md","docs/parsers/rpm_qi.md","docs/parsers/sfdisk.md","docs/parsers/shadow.md","docs/parsers/ss.md","docs/parsers/stat.md","docs/parsers/stat_s.md","docs/parsers/sysctl.md","docs/parsers/systemctl.md","docs/parsers/systemctl_lj.md","docs/parsers/systemctl_ls.md","docs/parsers/systemctl_luf.md","docs/parsers/systeminfo.md","docs/parsers/time.md","docs/parsers/timedatectl.md","docs/parsers/tracepath.md","docs/parsers/traceroute.md","docs/parsers/ufw.md","docs/parsers/ufw_appinfo.md","docs/parsers/uname.md","docs/parsers/upower.md","docs/parsers/uptime.md","docs/parsers/vmstat.md","docs/parsers/vmstat_s.md","docs/parsers/w.md","docs/parsers/wc.md","docs/parsers/who.md","docs/parsers/xml.md","docs/parsers/yaml.md","docs/parsers/zipinfo.md"],"file_stats":[{"name":"docgen.sh","lines_changed":9},{"name":"docs/parsers/acpi.md","lines_changed":2},{"name":"docs/parsers/airport.md","lines_changed":2},{"name":"docs/parsers/airport_s.md","lines_changed":2},{"name":"docs/parsers/arp.md","lines_changed":2},{"name":"docs/parsers/blkid.md","lines_changed":2},{"name":"docs/parsers/cksum.md","lines_changed":2},{"name":"docs/parsers/crontab.md","lines_changed":2},{"name":"docs/parsers/crontab_u.md","lines_changed":2},{"name":"docs/parsers/csv.md","lines_changed":2},{"name":"docs/parsers/csv_s.md","lines_changed":2},{"name":"docs/parsers/date.md","lines_changed":2},{"name":"docs/parsers/df.md","lines_changed":2},{"name":"docs/parsers/dig.md","lines_changed":2},{"name":"docs/parsers/dir.md","lines_changed":2},{"name":"docs/parsers/dmidecode.md","lines_changed":2},{"name":"docs/parsers/dpkg_l.md","lines_changed":2},{"name":"docs/parsers/du.md","lines_changed":2},{"name":"docs/parsers/env.md","lines_changed":2},{"name":"docs/parsers/file.md","lines_changed":2},{"name":"docs/parsers/finger.md","lines_changed":2},{"name":"docs/parsers/free.md","lines_changed":2},{"name":"docs/parsers/fstab.md","lines_changed":2},{"name":"docs/parsers/group.md","lines_changed":2},{"name":"docs/parsers/gshadow.md","lines_changed":2},{"name":"docs/parsers/hash.md","lines_changed":2},{"name":"docs/parsers/hashsum.md","lines_changed":2},{"name":"docs/parsers/hciconfig.md","lines_changed":2},{"name":"docs/parsers/history.md","lines_changed":2},{"name":"docs/parsers/hosts.md","lines_changed":2},{"name":"docs/parsers/id.md","lines_changed":2},{"name":"docs/parsers/ifconfig.md","lines_changed":2},{"name":"docs/parsers/ini.md","lines_changed":2},{"name":"docs/parsers/iostat.md","lines_changed":2},{"name":"docs/parsers/iostat_s.md","lines_changed":2},{"name":"docs/parsers/iptables.md","lines_changed":2},{"name":"docs/parsers/iw_scan.md","lines_changed":2},{"name":"docs/parsers/jar_manifest.md","lines_changed":2},{"name":"docs/parsers/jobs.md","lines_changed":2},{"name":"docs/parsers/kv.md","lines_changed":2},{"name":"docs/parsers/last.md","lines_changed":2},{"name":"docs/parsers/ls.md","lines_changed":2},{"name":"docs/parsers/ls_s.md","lines_changed":2},{"name":"docs/parsers/lsblk.md","lines_changed":2},{"name":"docs/parsers/lsmod.md","lines_changed":2},{"name":"docs/parsers/lsof.md","lines_changed":2},{"name":"docs/parsers/lsusb.md","lines_changed":2},{"name":"docs/parsers/mount.md","lines_changed":2},{"name":"docs/parsers/netstat.md","lines_changed":2},{"name":"docs/parsers/ntpq.md","lines_changed":2},{"name":"docs/parsers/passwd.md","lines_changed":2},{"name":"docs/parsers/ping.md","lines_changed":2},{"name":"docs/parsers/ping_s.md","lines_changed":2},{"name":"docs/parsers/pip_list.md","lines_changed":2},{"name":"docs/parsers/pip_show.md","lines_changed":2},{"name":"docs/parsers/ps.md","lines_changed":2},{"name":"docs/parsers/route.md","lines_changed":2},{"name":"docs/parsers/rpm_qi.md","lines_changed":2},{"name":"docs/parsers/sfdisk.md","lines_changed":2},{"name":"docs/parsers/shadow.md","lines_changed":2},{"name":"docs/parsers/ss.md","lines_changed":2},{"name":"docs/parsers/stat.md","lines_changed":2},{"name":"docs/parsers/stat_s.md","lines_changed":2},{"name":"docs/parsers/sysctl.md","lines_changed":2},{"name":"docs/parsers/systemctl.md","lines_changed":2},{"name":"docs/parsers/systemctl_lj.md","lines_changed":2},{"name":"docs/parsers/systemctl_ls.md","lines_changed":2},{"name":"docs/parsers/systemctl_luf.md","lines_changed":2},{"name":"docs/parsers/systeminfo.md","lines_changed":2},{"name":"docs/parsers/time.md","lines_changed":2},{"name":"docs/parsers/timedatectl.md","lines_changed":2},{"name":"docs/parsers/tracepath.md","lines_changed":2},{"name":"docs/parsers/traceroute.md","lines_changed":2},{"name":"docs/parsers/ufw.md","lines_changed":2},{"name":"docs/parsers/ufw_appinfo.md","lines_changed":2},{"name":"docs/parsers/uname.md","lines_changed":2},{"name":"docs/parsers/upower.md","lines_changed":2},{"name":"docs/parsers/uptime.md","lines_changed":2},{"name":"docs/parsers/vmstat.md","lines_changed":2},{"name":"docs/parsers/vmstat_s.md","lines_changed":2},{"name":"docs/parsers/w.md","lines_changed":2},{"name":"docs/parsers/wc.md","lines_changed":2},{"name":"docs/parsers/who.md","lines_changed":2},{"name":"docs/parsers/xml.md","lines_changed":2},{"name":"docs/parsers/yaml.md","lines_changed":2},{"name":"docs/parsers/zipinfo.md","lines_changed":2}]}},{"commit":"8e089baf3fe30fed80e1c5cdde7c3046bb70ca5a","message":"remove info class from docs","stats":{"files_changed":86,"insertions":8,"deletions":855,"files":["docgen.sh","docs/parsers/acpi.md","docs/parsers/airport.md","docs/parsers/airport_s.md","docs/parsers/arp.md","docs/parsers/blkid.md","docs/parsers/cksum.md","docs/parsers/crontab.md","docs/parsers/crontab_u.md","docs/parsers/csv.md","docs/parsers/csv_s.md","docs/parsers/date.md","docs/parsers/df.md","docs/parsers/dig.md","docs/parsers/dir.md","docs/parsers/dmidecode.md","docs/parsers/dpkg_l.md","docs/parsers/du.md","docs/parsers/env.md","docs/parsers/file.md","docs/parsers/finger.md","docs/parsers/free.md","docs/parsers/fstab.md","docs/parsers/group.md","docs/parsers/gshadow.md","docs/parsers/hash.md","docs/parsers/hashsum.md","docs/parsers/hciconfig.md","docs/parsers/history.md","docs/parsers/hosts.md","docs/parsers/id.md","docs/parsers/ifconfig.md","docs/parsers/ini.md","docs/parsers/iostat.md","docs/parsers/iostat_s.md","docs/parsers/iptables.md","docs/parsers/iw_scan.md","docs/parsers/jar_manifest.md","docs/parsers/jobs.md","docs/parsers/kv.md","docs/parsers/last.md","docs/parsers/ls.md","docs/parsers/ls_s.md","docs/parsers/lsblk.md","docs/parsers/lsmod.md","docs/parsers/lsof.md","docs/parsers/lsusb.md","docs/parsers/mount.md","docs/parsers/netstat.md","docs/parsers/ntpq.md","docs/parsers/passwd.md","docs/parsers/ping.md","docs/parsers/ping_s.md","docs/parsers/pip_list.md","docs/parsers/pip_show.md","docs/parsers/ps.md","docs/parsers/route.md","docs/parsers/rpm_qi.md","docs/parsers/sfdisk.md","docs/parsers/shadow.md","docs/parsers/ss.md","docs/parsers/stat.md","docs/parsers/stat_s.md","docs/parsers/sysctl.md","docs/parsers/systemctl.md","docs/parsers/systemctl_lj.md","docs/parsers/systemctl_ls.md","docs/parsers/systemctl_luf.md","docs/parsers/systeminfo.md","docs/parsers/time.md","docs/parsers/timedatectl.md","docs/parsers/tracepath.md","docs/parsers/traceroute.md","docs/parsers/ufw.md","docs/parsers/ufw_appinfo.md","docs/parsers/uname.md","docs/parsers/upower.md","docs/parsers/uptime.md","docs/parsers/vmstat.md","docs/parsers/vmstat_s.md","docs/parsers/w.md","docs/parsers/wc.md","docs/parsers/who.md","docs/parsers/xml.md","docs/parsers/yaml.md","docs/parsers/zipinfo.md"],"file_stats":[{"name":"docgen.sh","lines_changed":13},{"name":"docs/parsers/acpi.md","lines_changed":10},{"name":"docs/parsers/airport.md","lines_changed":10},{"name":"docs/parsers/airport_s.md","lines_changed":10},{"name":"docs/parsers/arp.md","lines_changed":10},{"name":"docs/parsers/blkid.md","lines_changed":10},{"name":"docs/parsers/cksum.md","lines_changed":10},{"name":"docs/parsers/crontab.md","lines_changed":10},{"name":"docs/parsers/crontab_u.md","lines_changed":10},{"name":"docs/parsers/csv.md","lines_changed":10},{"name":"docs/parsers/csv_s.md","lines_changed":10},{"name":"docs/parsers/date.md","lines_changed":10},{"name":"docs/parsers/df.md","lines_changed":10},{"name":"docs/parsers/dig.md","lines_changed":10},{"name":"docs/parsers/dir.md","lines_changed":10},{"name":"docs/parsers/dmidecode.md","lines_changed":10},{"name":"docs/parsers/dpkg_l.md","lines_changed":10},{"name":"docs/parsers/du.md","lines_changed":10},{"name":"docs/parsers/env.md","lines_changed":10},{"name":"docs/parsers/file.md","lines_changed":10},{"name":"docs/parsers/finger.md","lines_changed":10},{"name":"docs/parsers/free.md","lines_changed":10},{"name":"docs/parsers/fstab.md","lines_changed":10},{"name":"docs/parsers/group.md","lines_changed":10},{"name":"docs/parsers/gshadow.md","lines_changed":10},{"name":"docs/parsers/hash.md","lines_changed":10},{"name":"docs/parsers/hashsum.md","lines_changed":10},{"name":"docs/parsers/hciconfig.md","lines_changed":10},{"name":"docs/parsers/history.md","lines_changed":10},{"name":"docs/parsers/hosts.md","lines_changed":10},{"name":"docs/parsers/id.md","lines_changed":10},{"name":"docs/parsers/ifconfig.md","lines_changed":10},{"name":"docs/parsers/ini.md","lines_changed":10},{"name":"docs/parsers/iostat.md","lines_changed":10},{"name":"docs/parsers/iostat_s.md","lines_changed":10},{"name":"docs/parsers/iptables.md","lines_changed":10},{"name":"docs/parsers/iw_scan.md","lines_changed":10},{"name":"docs/parsers/jar_manifest.md","lines_changed":10},{"name":"docs/parsers/jobs.md","lines_changed":10},{"name":"docs/parsers/kv.md","lines_changed":10},{"name":"docs/parsers/last.md","lines_changed":10},{"name":"docs/parsers/ls.md","lines_changed":10},{"name":"docs/parsers/ls_s.md","lines_changed":10},{"name":"docs/parsers/lsblk.md","lines_changed":10},{"name":"docs/parsers/lsmod.md","lines_changed":10},{"name":"docs/parsers/lsof.md","lines_changed":10},{"name":"docs/parsers/lsusb.md","lines_changed":10},{"name":"docs/parsers/mount.md","lines_changed":10},{"name":"docs/parsers/netstat.md","lines_changed":10},{"name":"docs/parsers/ntpq.md","lines_changed":10},{"name":"docs/parsers/passwd.md","lines_changed":10},{"name":"docs/parsers/ping.md","lines_changed":10},{"name":"docs/parsers/ping_s.md","lines_changed":10},{"name":"docs/parsers/pip_list.md","lines_changed":10},{"name":"docs/parsers/pip_show.md","lines_changed":10},{"name":"docs/parsers/ps.md","lines_changed":10},{"name":"docs/parsers/route.md","lines_changed":10},{"name":"docs/parsers/rpm_qi.md","lines_changed":10},{"name":"docs/parsers/sfdisk.md","lines_changed":10},{"name":"docs/parsers/shadow.md","lines_changed":10},{"name":"docs/parsers/ss.md","lines_changed":10},{"name":"docs/parsers/stat.md","lines_changed":10},{"name":"docs/parsers/stat_s.md","lines_changed":10},{"name":"docs/parsers/sysctl.md","lines_changed":10},{"name":"docs/parsers/systemctl.md","lines_changed":10},{"name":"docs/parsers/systemctl_lj.md","lines_changed":10},{"name":"docs/parsers/systemctl_ls.md","lines_changed":10},{"name":"docs/parsers/systemctl_luf.md","lines_changed":10},{"name":"docs/parsers/systeminfo.md","lines_changed":10},{"name":"docs/parsers/time.md","lines_changed":10},{"name":"docs/parsers/timedatectl.md","lines_changed":10},{"name":"docs/parsers/tracepath.md","lines_changed":10},{"name":"docs/parsers/traceroute.md","lines_changed":10},{"name":"docs/parsers/ufw.md","lines_changed":10},{"name":"docs/parsers/ufw_appinfo.md","lines_changed":10},{"name":"docs/parsers/uname.md","lines_changed":10},{"name":"docs/parsers/upower.md","lines_changed":10},{"name":"docs/parsers/uptime.md","lines_changed":10},{"name":"docs/parsers/vmstat.md","lines_changed":10},{"name":"docs/parsers/vmstat_s.md","lines_changed":10},{"name":"docs/parsers/w.md","lines_changed":10},{"name":"docs/parsers/wc.md","lines_changed":10},{"name":"docs/parsers/who.md","lines_changed":10},{"name":"docs/parsers/xml.md","lines_changed":10},{"name":"docs/parsers/yaml.md","lines_changed":10},{"name":"docs/parsers/zipinfo.md","lines_changed":10}]}},{"commit":"386f6c317e104e797c2b55e3d21c8b064a83ac78","message":"update markdown processor settings","stats":{"files_changed":89,"insertions":9552,"deletions":9939,"files":["docgen.sh","docs/lib.md","docs/parsers/acpi.md","docs/parsers/airport.md","docs/parsers/airport_s.md","docs/parsers/arp.md","docs/parsers/blkid.md","docs/parsers/cksum.md","docs/parsers/crontab.md","docs/parsers/crontab_u.md","docs/parsers/csv.md","docs/parsers/csv_s.md","docs/parsers/date.md","docs/parsers/df.md","docs/parsers/dig.md","docs/parsers/dir.md","docs/parsers/dmidecode.md","docs/parsers/dpkg_l.md","docs/parsers/du.md","docs/parsers/env.md","docs/parsers/file.md","docs/parsers/finger.md","docs/parsers/free.md","docs/parsers/fstab.md","docs/parsers/group.md","docs/parsers/gshadow.md","docs/parsers/hash.md","docs/parsers/hashsum.md","docs/parsers/hciconfig.md","docs/parsers/history.md","docs/parsers/hosts.md","docs/parsers/id.md","docs/parsers/ifconfig.md","docs/parsers/ini.md","docs/parsers/iostat.md","docs/parsers/iostat_s.md","docs/parsers/iptables.md","docs/parsers/iw_scan.md","docs/parsers/jar_manifest.md","docs/parsers/jobs.md","docs/parsers/kv.md","docs/parsers/last.md","docs/parsers/ls.md","docs/parsers/ls_s.md","docs/parsers/lsblk.md","docs/parsers/lsmod.md","docs/parsers/lsof.md","docs/parsers/lsusb.md","docs/parsers/mount.md","docs/parsers/netstat.md","docs/parsers/ntpq.md","docs/parsers/passwd.md","docs/parsers/ping.md","docs/parsers/ping_s.md","docs/parsers/pip_list.md","docs/parsers/pip_show.md","docs/parsers/ps.md","docs/parsers/route.md","docs/parsers/rpm_qi.md","docs/parsers/sfdisk.md","docs/parsers/shadow.md","docs/parsers/ss.md","docs/parsers/stat.md","docs/parsers/stat_s.md","docs/parsers/sysctl.md","docs/parsers/systemctl.md","docs/parsers/systemctl_lj.md","docs/parsers/systemctl_ls.md","docs/parsers/systemctl_luf.md","docs/parsers/systeminfo.md","docs/parsers/time.md","docs/parsers/timedatectl.md","docs/parsers/tracepath.md","docs/parsers/traceroute.md","docs/parsers/ufw.md","docs/parsers/ufw_appinfo.md","docs/parsers/uname.md","docs/parsers/universal.md","docs/parsers/upower.md","docs/parsers/uptime.md","docs/parsers/vmstat.md","docs/parsers/vmstat_s.md","docs/parsers/w.md","docs/parsers/wc.md","docs/parsers/who.md","docs/parsers/xml.md","docs/parsers/yaml.md","docs/parsers/zipinfo.md","docs/utils.md"],"file_stats":[{"name":"docgen.sh","lines_changed":10},{"name":"docs/lib.md","lines_changed":105},{"name":"docs/parsers/acpi.md","lines_changed":440},{"name":"docs/parsers/airport.md","lines_changed":146},{"name":"docs/parsers/airport_s.md","lines_changed":202},{"name":"docs/parsers/arp.md","lines_changed":220},{"name":"docs/parsers/blkid.md","lines_changed":230},{"name":"docs/parsers/cksum.md","lines_changed":90},{"name":"docs/parsers/crontab.md","lines_changed":330},{"name":"docs/parsers/crontab_u.md","lines_changed":326},{"name":"docs/parsers/csv.md","lines_changed":140},{"name":"docs/parsers/csv_s.md","lines_changed":114},{"name":"docs/parsers/date.md","lines_changed":132},{"name":"docs/parsers/df.md","lines_changed":184},{"name":"docs/parsers/dig.md","lines_changed":614},{"name":"docs/parsers/dir.md","lines_changed":210},{"name":"docs/parsers/dmidecode.md","lines_changed":240},{"name":"docs/parsers/dpkg_l.md","lines_changed":244},{"name":"docs/parsers/du.md","lines_changed":164},{"name":"docs/parsers/env.md","lines_changed":126},{"name":"docs/parsers/file.md","lines_changed":114},{"name":"docs/parsers/finger.md","lines_changed":166},{"name":"docs/parsers/free.md","lines_changed":134},{"name":"docs/parsers/fstab.md","lines_changed":164},{"name":"docs/parsers/group.md","lines_changed":212},{"name":"docs/parsers/gshadow.md","lines_changed":148},{"name":"docs/parsers/hash.md","lines_changed":68},{"name":"docs/parsers/hashsum.md","lines_changed":106},{"name":"docs/parsers/hciconfig.md","lines_changed":620},{"name":"docs/parsers/history.md","lines_changed":106},{"name":"docs/parsers/hosts.md","lines_changed":142},{"name":"docs/parsers/id.md","lines_changed":200},{"name":"docs/parsers/ifconfig.md","lines_changed":388},{"name":"docs/parsers/ini.md","lines_changed":110},{"name":"docs/parsers/iostat.md","lines_changed":304},{"name":"docs/parsers/iostat_s.md","lines_changed":198},{"name":"docs/parsers/iptables.md","lines_changed":312},{"name":"docs/parsers/iw_scan.md","lines_changed":226},{"name":"docs/parsers/jar_manifest.md","lines_changed":148},{"name":"docs/parsers/jobs.md","lines_changed":170},{"name":"docs/parsers/kv.md","lines_changed":86},{"name":"docs/parsers/last.md","lines_changed":186},{"name":"docs/parsers/ls.md","lines_changed":190},{"name":"docs/parsers/ls_s.md","lines_changed":130},{"name":"docs/parsers/lsblk.md","lines_changed":534},{"name":"docs/parsers/lsmod.md","lines_changed":240},{"name":"docs/parsers/lsof.md","lines_changed":228},{"name":"docs/parsers/lsusb.md","lines_changed":502},{"name":"docs/parsers/mount.md","lines_changed":140},{"name":"docs/parsers/netstat.md","lines_changed":688},{"name":"docs/parsers/ntpq.md","lines_changed":402},{"name":"docs/parsers/passwd.md","lines_changed":182},{"name":"docs/parsers/ping.md","lines_changed":308},{"name":"docs/parsers/ping_s.md","lines_changed":160},{"name":"docs/parsers/pip_list.md","lines_changed":84},{"name":"docs/parsers/pip_show.md","lines_changed":120},{"name":"docs/parsers/ps.md","lines_changed":394},{"name":"docs/parsers/route.md","lines_changed":206},{"name":"docs/parsers/rpm_qi.md","lines_changed":296},{"name":"docs/parsers/sfdisk.md","lines_changed":376},{"name":"docs/parsers/shadow.md","lines_changed":196},{"name":"docs/parsers/ss.md","lines_changed":538},{"name":"docs/parsers/stat.md","lines_changed":318},{"name":"docs/parsers/stat_s.md","lines_changed":152},{"name":"docs/parsers/sysctl.md","lines_changed":100},{"name":"docs/parsers/systemctl.md","lines_changed":106},{"name":"docs/parsers/systemctl_lj.md","lines_changed":140},{"name":"docs/parsers/systemctl_ls.md","lines_changed":90},{"name":"docs/parsers/systemctl_luf.md","lines_changed":82},{"name":"docs/parsers/systeminfo.md","lines_changed":396},{"name":"docs/parsers/time.md","lines_changed":242},{"name":"docs/parsers/timedatectl.md","lines_changed":112},{"name":"docs/parsers/tracepath.md","lines_changed":248},{"name":"docs/parsers/traceroute.md","lines_changed":220},{"name":"docs/parsers/ufw.md","lines_changed":390},{"name":"docs/parsers/ufw_appinfo.md","lines_changed":250},{"name":"docs/parsers/uname.md","lines_changed":80},{"name":"docs/parsers/universal.md","lines_changed":72},{"name":"docs/parsers/upower.md","lines_changed":374},{"name":"docs/parsers/uptime.md","lines_changed":120},{"name":"docs/parsers/vmstat.md","lines_changed":226},{"name":"docs/parsers/vmstat_s.md","lines_changed":172},{"name":"docs/parsers/w.md","lines_changed":196},{"name":"docs/parsers/wc.md","lines_changed":98},{"name":"docs/parsers/who.md","lines_changed":250},{"name":"docs/parsers/xml.md","lines_changed":134},{"name":"docs/parsers/yaml.md","lines_changed":162},{"name":"docs/parsers/zipinfo.md","lines_changed":138},{"name":"docs/utils.md","lines_changed":134}]}},{"commit":"75cd84ce8a86b3357c6cf5fe4fbc62d0f298a29a","message":"try new markdown conversion","stats":{"files_changed":94,"insertions":11423,"deletions":10081,"files":["README.md","docgen.sh","docgen.sh.old","docs/lib.md","docs/parsers/acpi.md","docs/parsers/airport.md","docs/parsers/airport_s.md","docs/parsers/arp.md","docs/parsers/blkid.md","docs/parsers/cksum.md","docs/parsers/crontab.md","docs/parsers/crontab_u.md","docs/parsers/csv.md","docs/parsers/csv_s.md","docs/parsers/date.md","docs/parsers/df.md","docs/parsers/dig.md","docs/parsers/dir.md","docs/parsers/dmidecode.md","docs/parsers/dpkg_l.md","docs/parsers/du.md","docs/parsers/env.md","docs/parsers/file.md","docs/parsers/finger.md","docs/parsers/free.md","docs/parsers/fstab.md","docs/parsers/group.md","docs/parsers/gshadow.md","docs/parsers/hash.md","docs/parsers/hashsum.md","docs/parsers/hciconfig.md","docs/parsers/history.md","docs/parsers/hosts.md","docs/parsers/id.md","docs/parsers/ifconfig.md","docs/parsers/ini.md","docs/parsers/iostat.md","docs/parsers/iostat_s.md","docs/parsers/iptables.md","docs/parsers/iw_scan.md","docs/parsers/jar_manifest.md","docs/parsers/jobs.md","docs/parsers/kv.md","docs/parsers/last.md","docs/parsers/ls.md","docs/parsers/ls_s.md","docs/parsers/lsblk.md","docs/parsers/lsmod.md","docs/parsers/lsof.md","docs/parsers/lsusb.md","docs/parsers/mount.md","docs/parsers/netstat.md","docs/parsers/ntpq.md","docs/parsers/passwd.md","docs/parsers/ping.md","docs/parsers/ping_s.md","docs/parsers/pip_list.md","docs/parsers/pip_show.md","docs/parsers/ps.md","docs/parsers/route.md","docs/parsers/rpm_qi.md","docs/parsers/sfdisk.md","docs/parsers/shadow.md","docs/parsers/ss.md","docs/parsers/stat.md","docs/parsers/stat_s.md","docs/parsers/sysctl.md","docs/parsers/systemctl.md","docs/parsers/systemctl_lj.md","docs/parsers/systemctl_ls.md","docs/parsers/systemctl_luf.md","docs/parsers/systeminfo.md","docs/parsers/time.md","docs/parsers/timedatectl.md","docs/parsers/tracepath.md","docs/parsers/traceroute.md","docs/parsers/ufw.md","docs/parsers/ufw_appinfo.md","docs/parsers/uname.md","docs/parsers/universal.md","docs/parsers/upower.md","docs/parsers/uptime.md","docs/parsers/vmstat.md","docs/parsers/vmstat_s.md","docs/parsers/w.md","docs/parsers/wc.md","docs/parsers/who.md","docs/parsers/xml.md","docs/parsers/yaml.md","docs/parsers/zipinfo.md","docs/readme.md","docs/utils.md","jc/cli.py","man/jc.1"],"file_stats":[{"name":"README.md","lines_changed":2},{"name":"docgen.sh","lines_changed":12},{"name":"docgen.sh.old","lines_changed":44},{"name":"docs/lib.md","lines_changed":151},{"name":"docs/parsers/acpi.md","lines_changed":454},{"name":"docs/parsers/airport.md","lines_changed":166},{"name":"docs/parsers/airport_s.md","lines_changed":224},{"name":"docs/parsers/arp.md","lines_changed":240},{"name":"docs/parsers/blkid.md","lines_changed":250},{"name":"docs/parsers/cksum.md","lines_changed":110},{"name":"docs/parsers/crontab.md","lines_changed":350},{"name":"docs/parsers/crontab_u.md","lines_changed":348},{"name":"docs/parsers/csv.md","lines_changed":160},{"name":"docs/parsers/csv_s.md","lines_changed":120},{"name":"docs/parsers/date.md","lines_changed":152},{"name":"docs/parsers/df.md","lines_changed":204},{"name":"docs/parsers/dig.md","lines_changed":634},{"name":"docs/parsers/dir.md","lines_changed":230},{"name":"docs/parsers/dmidecode.md","lines_changed":260},{"name":"docs/parsers/dpkg_l.md","lines_changed":266},{"name":"docs/parsers/du.md","lines_changed":184},{"name":"docs/parsers/env.md","lines_changed":146},{"name":"docs/parsers/file.md","lines_changed":134},{"name":"docs/parsers/finger.md","lines_changed":186},{"name":"docs/parsers/free.md","lines_changed":154},{"name":"docs/parsers/fstab.md","lines_changed":184},{"name":"docs/parsers/group.md","lines_changed":232},{"name":"docs/parsers/gshadow.md","lines_changed":168},{"name":"docs/parsers/hash.md","lines_changed":88},{"name":"docs/parsers/hashsum.md","lines_changed":126},{"name":"docs/parsers/hciconfig.md","lines_changed":634},{"name":"docs/parsers/history.md","lines_changed":126},{"name":"docs/parsers/hosts.md","lines_changed":162},{"name":"docs/parsers/id.md","lines_changed":220},{"name":"docs/parsers/ifconfig.md","lines_changed":472},{"name":"docs/parsers/ini.md","lines_changed":130},{"name":"docs/parsers/iostat.md","lines_changed":324},{"name":"docs/parsers/iostat_s.md","lines_changed":220},{"name":"docs/parsers/iptables.md","lines_changed":332},{"name":"docs/parsers/iw_scan.md","lines_changed":248},{"name":"docs/parsers/jar_manifest.md","lines_changed":170},{"name":"docs/parsers/jobs.md","lines_changed":190},{"name":"docs/parsers/kv.md","lines_changed":106},{"name":"docs/parsers/last.md","lines_changed":207},{"name":"docs/parsers/ls.md","lines_changed":210},{"name":"docs/parsers/ls_s.md","lines_changed":152},{"name":"docs/parsers/lsblk.md","lines_changed":548},{"name":"docs/parsers/lsmod.md","lines_changed":260},{"name":"docs/parsers/lsof.md","lines_changed":248},{"name":"docs/parsers/lsusb.md","lines_changed":518},{"name":"docs/parsers/mount.md","lines_changed":160},{"name":"docs/parsers/netstat.md","lines_changed":702},{"name":"docs/parsers/ntpq.md","lines_changed":422},{"name":"docs/parsers/passwd.md","lines_changed":202},{"name":"docs/parsers/ping.md","lines_changed":328},{"name":"docs/parsers/ping_s.md","lines_changed":182},{"name":"docs/parsers/pip_list.md","lines_changed":106},{"name":"docs/parsers/pip_show.md","lines_changed":142},{"name":"docs/parsers/ps.md","lines_changed":414},{"name":"docs/parsers/route.md","lines_changed":226},{"name":"docs/parsers/rpm_qi.md","lines_changed":318},{"name":"docs/parsers/sfdisk.md","lines_changed":396},{"name":"docs/parsers/shadow.md","lines_changed":216},{"name":"docs/parsers/ss.md","lines_changed":552},{"name":"docs/parsers/stat.md","lines_changed":338},{"name":"docs/parsers/stat_s.md","lines_changed":174},{"name":"docs/parsers/sysctl.md","lines_changed":120},{"name":"docs/parsers/systemctl.md","lines_changed":126},{"name":"docs/parsers/systemctl_lj.md","lines_changed":162},{"name":"docs/parsers/systemctl_ls.md","lines_changed":112},{"name":"docs/parsers/systemctl_luf.md","lines_changed":104},{"name":"docs/parsers/systeminfo.md","lines_changed":416},{"name":"docs/parsers/time.md","lines_changed":262},{"name":"docs/parsers/timedatectl.md","lines_changed":132},{"name":"docs/parsers/tracepath.md","lines_changed":268},{"name":"docs/parsers/traceroute.md","lines_changed":288},{"name":"docs/parsers/ufw.md","lines_changed":410},{"name":"docs/parsers/ufw_appinfo.md","lines_changed":272},{"name":"docs/parsers/uname.md","lines_changed":100},{"name":"docs/parsers/universal.md","lines_changed":85},{"name":"docs/parsers/upower.md","lines_changed":394},{"name":"docs/parsers/uptime.md","lines_changed":140},{"name":"docs/parsers/vmstat.md","lines_changed":246},{"name":"docs/parsers/vmstat_s.md","lines_changed":194},{"name":"docs/parsers/w.md","lines_changed":216},{"name":"docs/parsers/wc.md","lines_changed":118},{"name":"docs/parsers/who.md","lines_changed":270},{"name":"docs/parsers/xml.md","lines_changed":154},{"name":"docs/parsers/yaml.md","lines_changed":182},{"name":"docs/parsers/zipinfo.md","lines_changed":158},{"name":"docs/readme.md","lines_changed":2},{"name":"docs/utils.md","lines_changed":223},{"name":"jc/cli.py","lines_changed":4},{"name":"man/jc.1","lines_changed":12}]}},{"commit":"6fad44e35df5d0e33e716d0fcb84ed309e6fd30b","message":"fix type hint","stats":{"files_changed":1,"insertions":1,"deletions":1,"files":["jc/lib.py"],"file_stats":[{"name":"jc/lib.py","lines_changed":2}]}},{"commit":"1caac750daa25a5abeb1289964e918ec06289bfc","message":"Update type hints","stats":{"files_changed":1,"insertions":2,"deletions":2,"files":["jc/lib.py"],"file_stats":[{"name":"jc/lib.py","lines_changed":4}]}},{"commit":"16370dcb3d5cf1304c2340ef2253ef2987a982b4","message":"update type hints","stats":{"files_changed":1,"insertions":1,"deletions":1,"files":["jc/lib.py"],"file_stats":[{"name":"jc/lib.py","lines_changed":2}]}},{"commit":"c1302f2573993a6908001d6df0697486f54a9e7e","message":"add type-hints to public api","stats":{"files_changed":1,"insertions":19,"deletions":8,"files":["jc/lib.py"],"file_stats":[{"name":"jc/lib.py","lines_changed":27}]}},{"commit":"6f0ffe0955e4d9d6cc82552cf4e4f419e3ff3756","message":"docu update","stats":{"files_changed":1,"insertions":2,"deletions":0,"files":["CHANGELOG"],"file_stats":[{"name":"CHANGELOG","lines_changed":2}]}},{"commit":"1f89745fe7cca3a0ac27445942098b717675a481","message":"version bump","stats":{"files_changed":1,"insertions":1,"deletions":1,"files":["setup.py"],"file_stats":[{"name":"setup.py","lines_changed":2}]}},{"commit":"a46ac18ef775bb2c52675e61e11c5d92f33cbe81","message":"doc update","stats":{"files_changed":1,"insertions":5,"deletions":0,"files":["CHANGELOG"],"file_stats":[{"name":"CHANGELOG","lines_changed":5}]}},{"commit":"1a05f1c575b57456481e41baaf551cef30115966","message":"add parser info functions. move _get_parser functionality from cli to lib","stats":{"files_changed":3,"insertions":64,"deletions":54,"files":["jc/__init__.py","jc/cli.py","jc/lib.py"],"file_stats":[{"name":"jc/__init__.py","lines_changed":4},{"name":"jc/cli.py","lines_changed":48},{"name":"jc/lib.py","lines_changed":66}]}},{"commit":"08f818aa42ca68050a79ec387c42bff265257fd5","message":"Merge pull request #199 from kellyjonbrazil/master"},{"commit":"b3896650c230b4acc73704a50c93ee74e4034eef","message":"revert column formatting","stats":{"files_changed":2,"insertions":62,"deletions":104,"files":["README.md","templates/readme_template"],"file_stats":[{"name":"README.md","lines_changed":83},{"name":"templates/readme_template","lines_changed":83}]}},{"commit":"f285539526998a5097943c71dcecb2979036b2b0","message":"conform to 80 columns","stats":{"files_changed":2,"insertions":104,"deletions":62,"files":["README.md","templates/readme_template"],"file_stats":[{"name":"README.md","lines_changed":83},{"name":"templates/readme_template","lines_changed":83}]}},{"commit":"a896dcdf3b31b60582ebb1b3bca5d1103f998dd6","message":"formatting","stats":{"files_changed":2,"insertions":338,"deletions":120,"files":["README.md","templates/readme_template"],"file_stats":[{"name":"README.md","lines_changed":229},{"name":"templates/readme_template","lines_changed":229}]}},{"commit":"0a187d4ed08173ec360a006ae2367bb1f2f96c52","message":"add console interview links","stats":{"files_changed":3,"insertions":7,"deletions":3,"files":["README.md","man/jc.1","templates/readme_template"],"file_stats":[{"name":"README.md","lines_changed":4},{"name":"man/jc.1","lines_changed":2},{"name":"templates/readme_template","lines_changed":4}]}},{"commit":"2d65bc57d5a396e6683f970194de29494b5c1272","message":"add quotes","stats":{"files_changed":2,"insertions":6,"deletions":6,"files":["docs/readme.md","jc/__init__.py"],"file_stats":[{"name":"docs/readme.md","lines_changed":6},{"name":"jc/__init__.py","lines_changed":6}]}},{"commit":"ab63809fde0cefe1f0401d957a3736fdb760f0cf","message":"update description","stats":{"files_changed":2,"insertions":4,"deletions":4,"files":["docs/readme.md","jc/__init__.py"],"file_stats":[{"name":"docs/readme.md","lines_changed":4},{"name":"jc/__init__.py","lines_changed":4}]}},{"commit":"6f04707dc63936efd0e533ae36e1b39ead10c466","message":"add python package doc info to top of page","stats":{"files_changed":2,"insertions":4,"deletions":0,"files":["README.md","templates/readme_template"],"file_stats":[{"name":"README.md","lines_changed":2},{"name":"templates/readme_template","lines_changed":2}]}},{"commit":"d14a86a9b58bdc3cb0c8df1dfa495aefdaab8033","message":"fix typo","stats":{"files_changed":2,"insertions":2,"deletions":2,"files":["docs/readme.md","jc/__init__.py"],"file_stats":[{"name":"docs/readme.md","lines_changed":2},{"name":"jc/__init__.py","lines_changed":2}]}},{"commit":"8e6a31d3da19926ac46744e02b27a899ca5fbd7c","message":"minor fix for macOS binary","stats":{"files_changed":6,"insertions":14,"deletions":8,"files":["CHANGELOG","docs/readme.md","jc/__init__.py","jc/lib.py","man/jc.1","setup.py"],"file_stats":[{"name":"CHANGELOG","lines_changed":3},{"name":"docs/readme.md","lines_changed":4},{"name":"jc/__init__.py","lines_changed":4},{"name":"jc/lib.py","lines_changed":7},{"name":"man/jc.1","lines_changed":2},{"name":"setup.py","lines_changed":2}]}},{"commit":"6e7b6afe87355e96422bb2560ffcbd5e79d28f04","message":"Merge pull request #198 from kellyjonbrazil/dev"},{"commit":"027c231097a002526350a93322407582a85db0cb","message":"formatting","stats":{"files_changed":1,"insertions":1,"deletions":1,"files":["CHANGELOG"],"file_stats":[{"name":"CHANGELOG","lines_changed":2}]}},{"commit":"f1cf7d1f953586dd44a4463d924f1a1f52717c37","message":"add helper function info","stats":{"files_changed":2,"insertions":7,"deletions":5,"files":["jc/parsers/foo.py","jc/parsers/foo_s.py"],"file_stats":[{"name":"jc/parsers/foo.py","lines_changed":6},{"name":"jc/parsers/foo_s.py","lines_changed":6}]}},{"commit":"df611cc263f50285e74ceb3381f55b43a74870a0","message":"formatting","stats":{"files_changed":2,"insertions":8,"deletions":4,"files":["docs/readme.md","jc/__init__.py"],"file_stats":[{"name":"docs/readme.md","lines_changed":6},{"name":"jc/__init__.py","lines_changed":6}]}},{"commit":"0f3143bbbb593340190e66729580146410012e14","message":"formatting","stats":{"files_changed":2,"insertions":8,"deletions":4,"files":["docs/readme.md","jc/__init__.py"],"file_stats":[{"name":"docs/readme.md","lines_changed":6},{"name":"jc/__init__.py","lines_changed":6}]}},{"commit":"c280757b7624a46543e481ca47a6e084d2d6f519","message":"formatting","stats":{"files_changed":2,"insertions":4,"deletions":4,"files":["docs/readme.md","jc/__init__.py"],"file_stats":[{"name":"docs/readme.md","lines_changed":4},{"name":"jc/__init__.py","lines_changed":4}]}},{"commit":"d30b9d84ef5ec3a2a504f7ea251c932b8c9ea878","message":"formatting","stats":{"files_changed":2,"insertions":6,"deletions":2,"files":["docs/readme.md","jc/__init__.py"],"file_stats":[{"name":"docs/readme.md","lines_changed":4},{"name":"jc/__init__.py","lines_changed":4}]}},{"commit":"50ded1dbd97d26cf01d7e1a98b40e0f0f7d02202","message":"doc update","stats":{"files_changed":1,"insertions":10,"deletions":4,"files":["docs/readme.md"],"file_stats":[{"name":"docs/readme.md","lines_changed":14}]}},{"commit":"e319aea5a45c598a44f35b4e58131d977509e4f3","message":"add doc version info","stats":{"files_changed":1,"insertions":10,"deletions":4,"files":["jc/__init__.py"],"file_stats":[{"name":"jc/__init__.py","lines_changed":14}]}},{"commit":"ba86509c1d8700a50fe14e9d931ee57261306c5f","message":"simplify OSError exception handling","stats":{"files_changed":1,"insertions":3,"deletions":9,"files":["jc/cli.py"],"file_stats":[{"name":"jc/cli.py","lines_changed":12}]}},{"commit":"0a9279ae6bfdd1aa59f5e9b31ce0af3bfec19f96","message":"doc update","stats":{"files_changed":2,"insertions":4,"deletions":2,"files":["CHANGELOG","tests/test_lib.py"],"file_stats":[{"name":"CHANGELOG","lines_changed":5},{"name":"tests/test_lib.py","lines_changed":1}]}},{"commit":"a13dde12af01b4473aa9a34b8a0d7387fb48500a","message":"change raw output wording","stats":{"files_changed":173,"insertions":173,"deletions":173,"files":["docs/parsers/acpi.md","docs/parsers/airport.md","docs/parsers/airport_s.md","docs/parsers/arp.md","docs/parsers/blkid.md","docs/parsers/cksum.md","docs/parsers/crontab.md","docs/parsers/crontab_u.md","docs/parsers/csv.md","docs/parsers/csv_s.md","docs/parsers/date.md","docs/parsers/df.md","docs/parsers/dig.md","docs/parsers/dir.md","docs/parsers/dmidecode.md","docs/parsers/dpkg_l.md","docs/parsers/du.md","docs/parsers/env.md","docs/parsers/file.md","docs/parsers/finger.md","docs/parsers/free.md","docs/parsers/fstab.md","docs/parsers/group.md","docs/parsers/gshadow.md","docs/parsers/hash.md","docs/parsers/hashsum.md","docs/parsers/hciconfig.md","docs/parsers/history.md","docs/parsers/hosts.md","docs/parsers/id.md","docs/parsers/ifconfig.md","docs/parsers/ini.md","docs/parsers/iostat.md","docs/parsers/iostat_s.md","docs/parsers/iptables.md","docs/parsers/iw_scan.md","docs/parsers/jar_manifest.md","docs/parsers/jobs.md","docs/parsers/kv.md","docs/parsers/last.md","docs/parsers/ls.md","docs/parsers/ls_s.md","docs/parsers/lsblk.md","docs/parsers/lsmod.md","docs/parsers/lsof.md","docs/parsers/lsusb.md","docs/parsers/mount.md","docs/parsers/netstat.md","docs/parsers/ntpq.md","docs/parsers/passwd.md","docs/parsers/ping.md","docs/parsers/ping_s.md","docs/parsers/pip_list.md","docs/parsers/pip_show.md","docs/parsers/ps.md","docs/parsers/route.md","docs/parsers/rpm_qi.md","docs/parsers/sfdisk.md","docs/parsers/shadow.md","docs/parsers/ss.md","docs/parsers/stat.md","docs/parsers/stat_s.md","docs/parsers/sysctl.md","docs/parsers/systemctl.md","docs/parsers/systemctl_lj.md","docs/parsers/systemctl_ls.md","docs/parsers/systemctl_luf.md","docs/parsers/systeminfo.md","docs/parsers/time.md","docs/parsers/timedatectl.md","docs/parsers/tracepath.md","docs/parsers/traceroute.md","docs/parsers/ufw.md","docs/parsers/ufw_appinfo.md","docs/parsers/uname.md","docs/parsers/upower.md","docs/parsers/uptime.md","docs/parsers/vmstat.md","docs/parsers/vmstat_s.md","docs/parsers/w.md","docs/parsers/wc.md","docs/parsers/who.md","docs/parsers/xml.md","docs/parsers/yaml.md","docs/parsers/zipinfo.md","jc/parsers/acpi.py","jc/parsers/airport.py","jc/parsers/airport_s.py","jc/parsers/arp.py","jc/parsers/blkid.py","jc/parsers/cksum.py","jc/parsers/crontab.py","jc/parsers/crontab_u.py","jc/parsers/csv.py","jc/parsers/csv_s.py","jc/parsers/date.py","jc/parsers/df.py","jc/parsers/dig.py","jc/parsers/dir.py","jc/parsers/dmidecode.py","jc/parsers/dpkg_l.py","jc/parsers/du.py","jc/parsers/env.py","jc/parsers/file.py","jc/parsers/finger.py","jc/parsers/foo.py","jc/parsers/foo_s.py","jc/parsers/free.py","jc/parsers/fstab.py","jc/parsers/group.py","jc/parsers/gshadow.py","jc/parsers/hash.py","jc/parsers/hashsum.py","jc/parsers/hciconfig.py","jc/parsers/history.py","jc/parsers/hosts.py","jc/parsers/id.py","jc/parsers/ifconfig.py","jc/parsers/ini.py","jc/parsers/iostat.py","jc/parsers/iostat_s.py","jc/parsers/iptables.py","jc/parsers/iw_scan.py","jc/parsers/jar_manifest.py","jc/parsers/jobs.py","jc/parsers/kv.py","jc/parsers/last.py","jc/parsers/ls.py","jc/parsers/ls_s.py","jc/parsers/lsblk.py","jc/parsers/lsmod.py","jc/parsers/lsof.py","jc/parsers/lsusb.py","jc/parsers/mount.py","jc/parsers/netstat.py","jc/parsers/ntpq.py","jc/parsers/passwd.py","jc/parsers/ping.py","jc/parsers/ping_s.py","jc/parsers/pip_list.py","jc/parsers/pip_show.py","jc/parsers/ps.py","jc/parsers/route.py","jc/parsers/rpm_qi.py","jc/parsers/sfdisk.py","jc/parsers/shadow.py","jc/parsers/ss.py","jc/parsers/stat.py","jc/parsers/stat_s.py","jc/parsers/sysctl.py","jc/parsers/systemctl.py","jc/parsers/systemctl_lj.py","jc/parsers/systemctl_ls.py","jc/parsers/systemctl_luf.py","jc/parsers/systeminfo.py","jc/parsers/time.py","jc/parsers/timedatectl.py","jc/parsers/tracepath.py","jc/parsers/traceroute.py","jc/parsers/ufw.py","jc/parsers/ufw_appinfo.py","jc/parsers/uname.py","jc/parsers/upower.py","jc/parsers/uptime.py","jc/parsers/vmstat.py","jc/parsers/vmstat_s.py","jc/parsers/w.py","jc/parsers/wc.py","jc/parsers/who.py","jc/parsers/xml.py","jc/parsers/yaml.py","jc/parsers/zipinfo.py","man/jc.1"],"file_stats":[{"name":"docs/parsers/acpi.md","lines_changed":2},{"name":"docs/parsers/airport.md","lines_changed":2},{"name":"docs/parsers/airport_s.md","lines_changed":2},{"name":"docs/parsers/arp.md","lines_changed":2},{"name":"docs/parsers/blkid.md","lines_changed":2},{"name":"docs/parsers/cksum.md","lines_changed":2},{"name":"docs/parsers/crontab.md","lines_changed":2},{"name":"docs/parsers/crontab_u.md","lines_changed":2},{"name":"docs/parsers/csv.md","lines_changed":2},{"name":"docs/parsers/csv_s.md","lines_changed":2},{"name":"docs/parsers/date.md","lines_changed":2},{"name":"docs/parsers/df.md","lines_changed":2},{"name":"docs/parsers/dig.md","lines_changed":2},{"name":"docs/parsers/dir.md","lines_changed":2},{"name":"docs/parsers/dmidecode.md","lines_changed":2},{"name":"docs/parsers/dpkg_l.md","lines_changed":2},{"name":"docs/parsers/du.md","lines_changed":2},{"name":"docs/parsers/env.md","lines_changed":2},{"name":"docs/parsers/file.md","lines_changed":2},{"name":"docs/parsers/finger.md","lines_changed":2},{"name":"docs/parsers/free.md","lines_changed":2},{"name":"docs/parsers/fstab.md","lines_changed":2},{"name":"docs/parsers/group.md","lines_changed":2},{"name":"docs/parsers/gshadow.md","lines_changed":2},{"name":"docs/parsers/hash.md","lines_changed":2},{"name":"docs/parsers/hashsum.md","lines_changed":2},{"name":"docs/parsers/hciconfig.md","lines_changed":2},{"name":"docs/parsers/history.md","lines_changed":2},{"name":"docs/parsers/hosts.md","lines_changed":2},{"name":"docs/parsers/id.md","lines_changed":2},{"name":"docs/parsers/ifconfig.md","lines_changed":2},{"name":"docs/parsers/ini.md","lines_changed":2},{"name":"docs/parsers/iostat.md","lines_changed":2},{"name":"docs/parsers/iostat_s.md","lines_changed":2},{"name":"docs/parsers/iptables.md","lines_changed":2},{"name":"docs/parsers/iw_scan.md","lines_changed":2},{"name":"docs/parsers/jar_manifest.md","lines_changed":2},{"name":"docs/parsers/jobs.md","lines_changed":2},{"name":"docs/parsers/kv.md","lines_changed":2},{"name":"docs/parsers/last.md","lines_changed":2},{"name":"docs/parsers/ls.md","lines_changed":2},{"name":"docs/parsers/ls_s.md","lines_changed":2},{"name":"docs/parsers/lsblk.md","lines_changed":2},{"name":"docs/parsers/lsmod.md","lines_changed":2},{"name":"docs/parsers/lsof.md","lines_changed":2},{"name":"docs/parsers/lsusb.md","lines_changed":2},{"name":"docs/parsers/mount.md","lines_changed":2},{"name":"docs/parsers/netstat.md","lines_changed":2},{"name":"docs/parsers/ntpq.md","lines_changed":2},{"name":"docs/parsers/passwd.md","lines_changed":2},{"name":"docs/parsers/ping.md","lines_changed":2},{"name":"docs/parsers/ping_s.md","lines_changed":2},{"name":"docs/parsers/pip_list.md","lines_changed":2},{"name":"docs/parsers/pip_show.md","lines_changed":2},{"name":"docs/parsers/ps.md","lines_changed":2},{"name":"docs/parsers/route.md","lines_changed":2},{"name":"docs/parsers/rpm_qi.md","lines_changed":2},{"name":"docs/parsers/sfdisk.md","lines_changed":2},{"name":"docs/parsers/shadow.md","lines_changed":2},{"name":"docs/parsers/ss.md","lines_changed":2},{"name":"docs/parsers/stat.md","lines_changed":2},{"name":"docs/parsers/stat_s.md","lines_changed":2},{"name":"docs/parsers/sysctl.md","lines_changed":2},{"name":"docs/parsers/systemctl.md","lines_changed":2},{"name":"docs/parsers/systemctl_lj.md","lines_changed":2},{"name":"docs/parsers/systemctl_ls.md","lines_changed":2},{"name":"docs/parsers/systemctl_luf.md","lines_changed":2},{"name":"docs/parsers/systeminfo.md","lines_changed":2},{"name":"docs/parsers/time.md","lines_changed":2},{"name":"docs/parsers/timedatectl.md","lines_changed":2},{"name":"docs/parsers/tracepath.md","lines_changed":2},{"name":"docs/parsers/traceroute.md","lines_changed":2},{"name":"docs/parsers/ufw.md","lines_changed":2},{"name":"docs/parsers/ufw_appinfo.md","lines_changed":2},{"name":"docs/parsers/uname.md","lines_changed":2},{"name":"docs/parsers/upower.md","lines_changed":2},{"name":"docs/parsers/uptime.md","lines_changed":2},{"name":"docs/parsers/vmstat.md","lines_changed":2},{"name":"docs/parsers/vmstat_s.md","lines_changed":2},{"name":"docs/parsers/w.md","lines_changed":2},{"name":"docs/parsers/wc.md","lines_changed":2},{"name":"docs/parsers/who.md","lines_changed":2},{"name":"docs/parsers/xml.md","lines_changed":2},{"name":"docs/parsers/yaml.md","lines_changed":2},{"name":"docs/parsers/zipinfo.md","lines_changed":2},{"name":"jc/parsers/acpi.py","lines_changed":2},{"name":"jc/parsers/airport.py","lines_changed":2},{"name":"jc/parsers/airport_s.py","lines_changed":2},{"name":"jc/parsers/arp.py","lines_changed":2},{"name":"jc/parsers/blkid.py","lines_changed":2},{"name":"jc/parsers/cksum.py","lines_changed":2},{"name":"jc/parsers/crontab.py","lines_changed":2},{"name":"jc/parsers/crontab_u.py","lines_changed":2},{"name":"jc/parsers/csv.py","lines_changed":2},{"name":"jc/parsers/csv_s.py","lines_changed":2},{"name":"jc/parsers/date.py","lines_changed":2},{"name":"jc/parsers/df.py","lines_changed":2},{"name":"jc/parsers/dig.py","lines_changed":2},{"name":"jc/parsers/dir.py","lines_changed":2},{"name":"jc/parsers/dmidecode.py","lines_changed":2},{"name":"jc/parsers/dpkg_l.py","lines_changed":2},{"name":"jc/parsers/du.py","lines_changed":2},{"name":"jc/parsers/env.py","lines_changed":2},{"name":"jc/parsers/file.py","lines_changed":2},{"name":"jc/parsers/finger.py","lines_changed":2},{"name":"jc/parsers/foo.py","lines_changed":2},{"name":"jc/parsers/foo_s.py","lines_changed":2},{"name":"jc/parsers/free.py","lines_changed":2},{"name":"jc/parsers/fstab.py","lines_changed":2},{"name":"jc/parsers/group.py","lines_changed":2},{"name":"jc/parsers/gshadow.py","lines_changed":2},{"name":"jc/parsers/hash.py","lines_changed":2},{"name":"jc/parsers/hashsum.py","lines_changed":2},{"name":"jc/parsers/hciconfig.py","lines_changed":2},{"name":"jc/parsers/history.py","lines_changed":2},{"name":"jc/parsers/hosts.py","lines_changed":2},{"name":"jc/parsers/id.py","lines_changed":2},{"name":"jc/parsers/ifconfig.py","lines_changed":2},{"name":"jc/parsers/ini.py","lines_changed":2},{"name":"jc/parsers/iostat.py","lines_changed":2},{"name":"jc/parsers/iostat_s.py","lines_changed":2},{"name":"jc/parsers/iptables.py","lines_changed":2},{"name":"jc/parsers/iw_scan.py","lines_changed":2},{"name":"jc/parsers/jar_manifest.py","lines_changed":2},{"name":"jc/parsers/jobs.py","lines_changed":2},{"name":"jc/parsers/kv.py","lines_changed":2},{"name":"jc/parsers/last.py","lines_changed":2},{"name":"jc/parsers/ls.py","lines_changed":2},{"name":"jc/parsers/ls_s.py","lines_changed":2},{"name":"jc/parsers/lsblk.py","lines_changed":2},{"name":"jc/parsers/lsmod.py","lines_changed":2},{"name":"jc/parsers/lsof.py","lines_changed":2},{"name":"jc/parsers/lsusb.py","lines_changed":2},{"name":"jc/parsers/mount.py","lines_changed":2},{"name":"jc/parsers/netstat.py","lines_changed":2},{"name":"jc/parsers/ntpq.py","lines_changed":2},{"name":"jc/parsers/passwd.py","lines_changed":2},{"name":"jc/parsers/ping.py","lines_changed":2},{"name":"jc/parsers/ping_s.py","lines_changed":2},{"name":"jc/parsers/pip_list.py","lines_changed":2},{"name":"jc/parsers/pip_show.py","lines_changed":2},{"name":"jc/parsers/ps.py","lines_changed":2},{"name":"jc/parsers/route.py","lines_changed":2},{"name":"jc/parsers/rpm_qi.py","lines_changed":2},{"name":"jc/parsers/sfdisk.py","lines_changed":2},{"name":"jc/parsers/shadow.py","lines_changed":2},{"name":"jc/parsers/ss.py","lines_changed":2},{"name":"jc/parsers/stat.py","lines_changed":2},{"name":"jc/parsers/stat_s.py","lines_changed":2},{"name":"jc/parsers/sysctl.py","lines_changed":2},{"name":"jc/parsers/systemctl.py","lines_changed":2},{"name":"jc/parsers/systemctl_lj.py","lines_changed":2},{"name":"jc/parsers/systemctl_ls.py","lines_changed":2},{"name":"jc/parsers/systemctl_luf.py","lines_changed":2},{"name":"jc/parsers/systeminfo.py","lines_changed":2},{"name":"jc/parsers/time.py","lines_changed":2},{"name":"jc/parsers/timedatectl.py","lines_changed":2},{"name":"jc/parsers/tracepath.py","lines_changed":2},{"name":"jc/parsers/traceroute.py","lines_changed":2},{"name":"jc/parsers/ufw.py","lines_changed":2},{"name":"jc/parsers/ufw_appinfo.py","lines_changed":2},{"name":"jc/parsers/uname.py","lines_changed":2},{"name":"jc/parsers/upower.py","lines_changed":2},{"name":"jc/parsers/uptime.py","lines_changed":2},{"name":"jc/parsers/vmstat.py","lines_changed":2},{"name":"jc/parsers/vmstat_s.py","lines_changed":2},{"name":"jc/parsers/w.py","lines_changed":2},{"name":"jc/parsers/wc.py","lines_changed":2},{"name":"jc/parsers/who.py","lines_changed":2},{"name":"jc/parsers/xml.py","lines_changed":2},{"name":"jc/parsers/yaml.py","lines_changed":2},{"name":"jc/parsers/zipinfo.py","lines_changed":2},{"name":"man/jc.1","lines_changed":2}]}},{"commit":"e2ed358de1abefd737c187a324cbe4734d6975e8","message":"changelog update","stats":{"files_changed":1,"insertions":1,"deletions":2,"files":["CHANGELOG"],"file_stats":[{"name":"CHANGELOG","lines_changed":3}]}},{"commit":"a2cd3666210be3727a00c3405972f32fbd421046","message":"Delete _config.yml","stats":{"files_changed":1,"insertions":0,"deletions":1,"files":["docs/_config.yml"],"file_stats":[{"name":"docs/_config.yml","lines_changed":1}]}},{"commit":"15addd9bfc18a0e87beb97040b431c872b783662","message":"doc fix","stats":{"files_changed":2,"insertions":4,"deletions":8,"files":["docs/parsers/universal.md","jc/parsers/universal.py"],"file_stats":[{"name":"docs/parsers/universal.md","lines_changed":5},{"name":"jc/parsers/universal.py","lines_changed":7}]}},{"commit":"a4e34b0053ec0c032f4783caaa3e07fc2c685a98","message":"add universal parser docs","stats":{"files_changed":2,"insertions":63,"deletions":0,"files":["docgen.sh","docs/parsers/universal.md"],"file_stats":[{"name":"docgen.sh","lines_changed":3},{"name":"docs/parsers/universal.md","lines_changed":60}]}},{"commit":"d09529ac302fbcc156d58cf836f8397c98121a76","message":"changelog update","stats":{"files_changed":1,"insertions":2,"deletions":0,"files":["CHANGELOG"],"file_stats":[{"name":"CHANGELOG","lines_changed":2}]}},{"commit":"553097b5050dc02fbdaeec2e2e138e01bc6811d9","message":"docstring update","stats":{"files_changed":1,"insertions":1,"deletions":1,"files":["jc/parsers/universal.py"],"file_stats":[{"name":"jc/parsers/universal.py","lines_changed":2}]}},{"commit":"49c556857708307f617b2b516f2d281398681b5b","message":"module doc update","stats":{"files_changed":7,"insertions":35,"deletions":15,"files":["README.md","docs/lib.md","docs/readme.md","jc/__init__.py","jc/lib.py","man/jc.1","templates/readme_template"],"file_stats":[{"name":"README.md","lines_changed":2},{"name":"docs/lib.md","lines_changed":9},{"name":"docs/readme.md","lines_changed":13},{"name":"jc/__init__.py","lines_changed":13},{"name":"jc/lib.py","lines_changed":9},{"name":"man/jc.1","lines_changed":2},{"name":"templates/readme_template","lines_changed":2}]}},{"commit":"6962b9ee8a52c924dc2de6b79ddeea3636e80fe4","message":"formatting","stats":{"files_changed":2,"insertions":8,"deletions":6,"files":["docs/lib.md","jc/lib.py"],"file_stats":[{"name":"docs/lib.md","lines_changed":7},{"name":"jc/lib.py","lines_changed":7}]}},{"commit":"b4575a3f780f9aa2751c8b4789f67aaca32dd1cb","message":"add lib docs","stats":{"files_changed":3,"insertions":91,"deletions":1,"files":["docgen.sh","docs/lib.md","jc/lib.py"],"file_stats":[{"name":"docgen.sh","lines_changed":4},{"name":"docs/lib.md","lines_changed":86},{"name":"jc/lib.py","lines_changed":2}]}},{"commit":"35b54d235d73b2ce658223be3d6095906f142d89","message":"add python package doc info","stats":{"files_changed":2,"insertions":6,"deletions":0,"files":["README.md","templates/readme_template"],"file_stats":[{"name":"README.md","lines_changed":3},{"name":"templates/readme_template","lines_changed":3}]}},{"commit":"583a5757e454a4e36b331057d1266279b55ee16a","message":"formatting","stats":{"files_changed":18,"insertions":34,"deletions":30,"files":["docs/parsers/dig.md","docs/parsers/dmidecode.md","docs/parsers/file.md","docs/parsers/last.md","docs/parsers/ls.md","docs/parsers/ls_s.md","docs/parsers/ping_s.md","docs/parsers/traceroute.md","docs/parsers/ufw_appinfo.md","jc/parsers/dig.py","jc/parsers/dmidecode.py","jc/parsers/file.py","jc/parsers/last.py","jc/parsers/ls.py","jc/parsers/ls_s.py","jc/parsers/ping_s.py","jc/parsers/traceroute.py","jc/parsers/ufw_appinfo.py"],"file_stats":[{"name":"docs/parsers/dig.md","lines_changed":2},{"name":"docs/parsers/dmidecode.md","lines_changed":2},{"name":"docs/parsers/file.md","lines_changed":2},{"name":"docs/parsers/last.md","lines_changed":6},{"name":"docs/parsers/ls.md","lines_changed":5},{"name":"docs/parsers/ls_s.md","lines_changed":9},{"name":"docs/parsers/ping_s.md","lines_changed":2},{"name":"docs/parsers/traceroute.md","lines_changed":2},{"name":"docs/parsers/ufw_appinfo.md","lines_changed":2},{"name":"jc/parsers/dig.py","lines_changed":2},{"name":"jc/parsers/dmidecode.py","lines_changed":2},{"name":"jc/parsers/file.py","lines_changed":2},{"name":"jc/parsers/last.py","lines_changed":6},{"name":"jc/parsers/ls.py","lines_changed":5},{"name":"jc/parsers/ls_s.py","lines_changed":9},{"name":"jc/parsers/ping_s.py","lines_changed":2},{"name":"jc/parsers/traceroute.py","lines_changed":2},{"name":"jc/parsers/ufw_appinfo.py","lines_changed":2}]}},{"commit":"f355333eeed3c4afba844dc7bed5224356552adc","message":"formatting","stats":{"files_changed":2,"insertions":8,"deletions":8,"files":["docs/readme.md","jc/__init__.py"],"file_stats":[{"name":"docs/readme.md","lines_changed":8},{"name":"jc/__init__.py","lines_changed":8}]}},{"commit":"4d7df109604e4f8367904968602acfc05217a7fe","message":"formatting","stats":{"files_changed":2,"insertions":2,"deletions":6,"files":["docs/readme.md","jc/__init__.py"],"file_stats":[{"name":"docs/readme.md","lines_changed":4},{"name":"jc/__init__.py","lines_changed":4}]}},{"commit":"66b2c28f4bc75fb76800f9fb7ea485eee194a9a2","message":"formatting","stats":{"files_changed":2,"insertions":24,"deletions":24,"files":["docs/readme.md","jc/__init__.py"],"file_stats":[{"name":"docs/readme.md","lines_changed":24},{"name":"jc/__init__.py","lines_changed":24}]}},{"commit":"299a9c6d88fdf1fede447b4057d8f4263daef733","message":"formatting","stats":{"files_changed":2,"insertions":25,"deletions":57,"files":["docs/parsers/csv.md","docs/readme.md"],"file_stats":[{"name":"docs/parsers/csv.md","lines_changed":4},{"name":"docs/readme.md","lines_changed":78}]}},{"commit":"bd391d979ce98b126dab0f012a56b3fcb1f73439","message":"add lib function docs","stats":{"files_changed":1,"insertions":23,"deletions":55,"files":["jc/__init__.py"],"file_stats":[{"name":"jc/__init__.py","lines_changed":78}]}},{"commit":"7309bd2282445f6daef0b1491ff60b8104500abb","message":"add get_help","stats":{"files_changed":3,"insertions":19,"deletions":10,"files":["jc/lib.py","jc/parsers/csv.py","jc/parsers/universal.py"],"file_stats":[{"name":"jc/lib.py","lines_changed":15},{"name":"jc/parsers/csv.py","lines_changed":4},{"name":"jc/parsers/universal.py","lines_changed":10}]}},{"commit":"ce84c09d3394b598f19a3e012ef27ce4154e3b3b","message":"add get_help()","stats":{"files_changed":1,"insertions":2,"deletions":1,"files":["jc/__init__.py"],"file_stats":[{"name":"jc/__init__.py","lines_changed":3}]}},{"commit":"b4fffbb6476daf78fbdf19dbf31bbeeab950d2dc","message":"formatting","stats":{"files_changed":46,"insertions":501,"deletions":304,"files":["docs/parsers/crontab.md","docs/parsers/crontab_u.md","docs/parsers/csv.md","docs/parsers/csv_s.md","docs/parsers/date.md","docs/parsers/dig.md","docs/parsers/dir.md","docs/parsers/dpkg_l.md","docs/parsers/du.md","docs/parsers/env.md","docs/parsers/file.md","docs/parsers/history.md","docs/parsers/ini.md","docs/parsers/iostat_s.md","docs/parsers/iw_scan.md","docs/parsers/jar_manifest.md","docs/parsers/jobs.md","docs/parsers/kv.md","docs/parsers/last.md","docs/parsers/ls.md","docs/parsers/ls_s.md","docs/parsers/lsblk.md","docs/parsers/lsusb.md","docs/parsers/netstat.md","docs/parsers/ping.md","docs/parsers/ping_s.md","docs/parsers/ps.md","docs/parsers/rpm_qi.md","docs/parsers/sfdisk.md","docs/parsers/ss.md","docs/parsers/stat.md","docs/parsers/stat_s.md","docs/parsers/sysctl.md","docs/parsers/systemctl.md","docs/parsers/systemctl_ls.md","docs/parsers/systemctl_luf.md","docs/parsers/systeminfo.md","docs/parsers/time.md","docs/parsers/timedatectl.md","docs/parsers/traceroute.md","docs/parsers/ufw.md","docs/parsers/ufw_appinfo.md","docs/parsers/upower.md","docs/parsers/vmstat.md","docs/parsers/vmstat_s.md","docs/parsers/who.md"],"file_stats":[{"name":"docs/parsers/crontab.md","lines_changed":3},{"name":"docs/parsers/crontab_u.md","lines_changed":22},{"name":"docs/parsers/csv.md","lines_changed":9},{"name":"docs/parsers/csv_s.md","lines_changed":35},{"name":"docs/parsers/date.md","lines_changed":18},{"name":"docs/parsers/dig.md","lines_changed":16},{"name":"docs/parsers/dir.md","lines_changed":6},{"name":"docs/parsers/dpkg_l.md","lines_changed":7},{"name":"docs/parsers/du.md","lines_changed":20},{"name":"docs/parsers/env.md","lines_changed":5},{"name":"docs/parsers/file.md","lines_changed":4},{"name":"docs/parsers/history.md","lines_changed":8},{"name":"docs/parsers/ini.md","lines_changed":15},{"name":"docs/parsers/iostat_s.md","lines_changed":25},{"name":"docs/parsers/iw_scan.md","lines_changed":5},{"name":"docs/parsers/jar_manifest.md","lines_changed":25},{"name":"docs/parsers/jobs.md","lines_changed":3},{"name":"docs/parsers/kv.md","lines_changed":11},{"name":"docs/parsers/last.md","lines_changed":10},{"name":"docs/parsers/ls.md","lines_changed":19},{"name":"docs/parsers/ls_s.md","lines_changed":51},{"name":"docs/parsers/lsblk.md","lines_changed":10},{"name":"docs/parsers/lsusb.md","lines_changed":5},{"name":"docs/parsers/netstat.md","lines_changed":3},{"name":"docs/parsers/ping.md","lines_changed":32},{"name":"docs/parsers/ping_s.md","lines_changed":85},{"name":"docs/parsers/ps.md","lines_changed":8},{"name":"docs/parsers/rpm_qi.md","lines_changed":37},{"name":"docs/parsers/sfdisk.md","lines_changed":8},{"name":"docs/parsers/ss.md","lines_changed":6},{"name":"docs/parsers/stat.md","lines_changed":6},{"name":"docs/parsers/stat_s.md","lines_changed":27},{"name":"docs/parsers/sysctl.md","lines_changed":7},{"name":"docs/parsers/systemctl.md","lines_changed":4},{"name":"docs/parsers/systemctl_ls.md","lines_changed":3},{"name":"docs/parsers/systemctl_luf.md","lines_changed":3},{"name":"docs/parsers/systeminfo.md","lines_changed":19},{"name":"docs/parsers/time.md","lines_changed":33},{"name":"docs/parsers/timedatectl.md","lines_changed":5},{"name":"docs/parsers/traceroute.md","lines_changed":5},{"name":"docs/parsers/ufw.md","lines_changed":7},{"name":"docs/parsers/ufw_appinfo.md","lines_changed":28},{"name":"docs/parsers/upower.md","lines_changed":16},{"name":"docs/parsers/vmstat.md","lines_changed":13},{"name":"docs/parsers/vmstat_s.md","lines_changed":111},{"name":"docs/parsers/who.md","lines_changed":7}]}},{"commit":"3701b4198aad1826ad6da571fbcaa530b057cc48","message":"formatting","stats":{"files_changed":86,"insertions":710,"deletions":606,"files":["jc/parsers/acpi.py","jc/parsers/airport.py","jc/parsers/airport_s.py","jc/parsers/arp.py","jc/parsers/blkid.py","jc/parsers/cksum.py","jc/parsers/crontab.py","jc/parsers/crontab_u.py","jc/parsers/csv.py","jc/parsers/csv_s.py","jc/parsers/date.py","jc/parsers/df.py","jc/parsers/dig.py","jc/parsers/dir.py","jc/parsers/dmidecode.py","jc/parsers/dpkg_l.py","jc/parsers/du.py","jc/parsers/env.py","jc/parsers/file.py","jc/parsers/finger.py","jc/parsers/foo.py","jc/parsers/foo_s.py","jc/parsers/free.py","jc/parsers/fstab.py","jc/parsers/group.py","jc/parsers/gshadow.py","jc/parsers/hash.py","jc/parsers/hashsum.py","jc/parsers/hciconfig.py","jc/parsers/history.py","jc/parsers/hosts.py","jc/parsers/id.py","jc/parsers/ifconfig.py","jc/parsers/ini.py","jc/parsers/iostat_s.py","jc/parsers/iptables.py","jc/parsers/iw_scan.py","jc/parsers/jar_manifest.py","jc/parsers/jobs.py","jc/parsers/kv.py","jc/parsers/last.py","jc/parsers/ls.py","jc/parsers/ls_s.py","jc/parsers/lsblk.py","jc/parsers/lsmod.py","jc/parsers/lsof.py","jc/parsers/lsusb.py","jc/parsers/mount.py","jc/parsers/netstat.py","jc/parsers/ntpq.py","jc/parsers/passwd.py","jc/parsers/ping.py","jc/parsers/ping_s.py","jc/parsers/pip_list.py","jc/parsers/pip_show.py","jc/parsers/ps.py","jc/parsers/route.py","jc/parsers/rpm_qi.py","jc/parsers/sfdisk.py","jc/parsers/shadow.py","jc/parsers/ss.py","jc/parsers/stat.py","jc/parsers/stat_s.py","jc/parsers/sysctl.py","jc/parsers/systemctl.py","jc/parsers/systemctl_lj.py","jc/parsers/systemctl_ls.py","jc/parsers/systemctl_luf.py","jc/parsers/systeminfo.py","jc/parsers/time.py","jc/parsers/timedatectl.py","jc/parsers/tracepath.py","jc/parsers/traceroute.py","jc/parsers/ufw.py","jc/parsers/ufw_appinfo.py","jc/parsers/uname.py","jc/parsers/universal.py","jc/parsers/upower.py","jc/parsers/uptime.py","jc/parsers/vmstat.py","jc/parsers/vmstat_s.py","jc/parsers/w.py","jc/parsers/wc.py","jc/parsers/who.py","jc/parsers/xml.py","jc/parsers/yaml.py"],"file_stats":[{"name":"jc/parsers/acpi.py","lines_changed":5},{"name":"jc/parsers/airport.py","lines_changed":7},{"name":"jc/parsers/airport_s.py","lines_changed":3},{"name":"jc/parsers/arp.py","lines_changed":2},{"name":"jc/parsers/blkid.py","lines_changed":10},{"name":"jc/parsers/cksum.py","lines_changed":2},{"name":"jc/parsers/crontab.py","lines_changed":6},{"name":"jc/parsers/crontab_u.py","lines_changed":25},{"name":"jc/parsers/csv.py","lines_changed":14},{"name":"jc/parsers/csv_s.py","lines_changed":38},{"name":"jc/parsers/date.py","lines_changed":69},{"name":"jc/parsers/df.py","lines_changed":13},{"name":"jc/parsers/dig.py","lines_changed":28},{"name":"jc/parsers/dir.py","lines_changed":8},{"name":"jc/parsers/dmidecode.py","lines_changed":3},{"name":"jc/parsers/dpkg_l.py","lines_changed":10},{"name":"jc/parsers/du.py","lines_changed":23},{"name":"jc/parsers/env.py","lines_changed":7},{"name":"jc/parsers/file.py","lines_changed":6},{"name":"jc/parsers/finger.py","lines_changed":14},{"name":"jc/parsers/foo.py","lines_changed":3},{"name":"jc/parsers/foo_s.py","lines_changed":23},{"name":"jc/parsers/free.py","lines_changed":2},{"name":"jc/parsers/fstab.py","lines_changed":2},{"name":"jc/parsers/group.py","lines_changed":3},{"name":"jc/parsers/gshadow.py","lines_changed":3},{"name":"jc/parsers/hash.py","lines_changed":2},{"name":"jc/parsers/hashsum.py","lines_changed":5},{"name":"jc/parsers/hciconfig.py","lines_changed":13},{"name":"jc/parsers/history.py","lines_changed":10},{"name":"jc/parsers/hosts.py","lines_changed":2},{"name":"jc/parsers/id.py","lines_changed":3},{"name":"jc/parsers/ifconfig.py","lines_changed":20},{"name":"jc/parsers/ini.py","lines_changed":23},{"name":"jc/parsers/iostat_s.py","lines_changed":25},{"name":"jc/parsers/iptables.py","lines_changed":2},{"name":"jc/parsers/iw_scan.py","lines_changed":11},{"name":"jc/parsers/jar_manifest.py","lines_changed":25},{"name":"jc/parsers/jobs.py","lines_changed":5},{"name":"jc/parsers/kv.py","lines_changed":13},{"name":"jc/parsers/last.py","lines_changed":17},{"name":"jc/parsers/ls.py","lines_changed":21},{"name":"jc/parsers/ls_s.py","lines_changed":53},{"name":"jc/parsers/lsblk.py","lines_changed":15},{"name":"jc/parsers/lsmod.py","lines_changed":2},{"name":"jc/parsers/lsof.py","lines_changed":2},{"name":"jc/parsers/lsusb.py","lines_changed":5},{"name":"jc/parsers/mount.py","lines_changed":2},{"name":"jc/parsers/netstat.py","lines_changed":20},{"name":"jc/parsers/ntpq.py","lines_changed":2},{"name":"jc/parsers/passwd.py","lines_changed":3},{"name":"jc/parsers/ping.py","lines_changed":46},{"name":"jc/parsers/ping_s.py","lines_changed":99},{"name":"jc/parsers/pip_list.py","lines_changed":2},{"name":"jc/parsers/pip_show.py","lines_changed":2},{"name":"jc/parsers/ps.py","lines_changed":10},{"name":"jc/parsers/route.py","lines_changed":6},{"name":"jc/parsers/rpm_qi.py","lines_changed":40},{"name":"jc/parsers/sfdisk.py","lines_changed":16},{"name":"jc/parsers/shadow.py","lines_changed":3},{"name":"jc/parsers/ss.py","lines_changed":8},{"name":"jc/parsers/stat.py","lines_changed":12},{"name":"jc/parsers/stat_s.py","lines_changed":31},{"name":"jc/parsers/sysctl.py","lines_changed":10},{"name":"jc/parsers/systemctl.py","lines_changed":6},{"name":"jc/parsers/systemctl_lj.py","lines_changed":2},{"name":"jc/parsers/systemctl_ls.py","lines_changed":5},{"name":"jc/parsers/systemctl_luf.py","lines_changed":5},{"name":"jc/parsers/systeminfo.py","lines_changed":31},{"name":"jc/parsers/time.py","lines_changed":51},{"name":"jc/parsers/timedatectl.py","lines_changed":8},{"name":"jc/parsers/tracepath.py","lines_changed":2},{"name":"jc/parsers/traceroute.py","lines_changed":7},{"name":"jc/parsers/ufw.py","lines_changed":7},{"name":"jc/parsers/ufw_appinfo.py","lines_changed":28},{"name":"jc/parsers/uname.py","lines_changed":4},{"name":"jc/parsers/universal.py","lines_changed":40},{"name":"jc/parsers/upower.py","lines_changed":32},{"name":"jc/parsers/uptime.py","lines_changed":2},{"name":"jc/parsers/vmstat.py","lines_changed":28},{"name":"jc/parsers/vmstat_s.py","lines_changed":125},{"name":"jc/parsers/w.py","lines_changed":2},{"name":"jc/parsers/wc.py","lines_changed":2},{"name":"jc/parsers/who.py","lines_changed":10},{"name":"jc/parsers/xml.py","lines_changed":2},{"name":"jc/parsers/yaml.py","lines_changed":2}]}},{"commit":"d4c34098fa7ad2098076f0fa0564467e5d06f916","message":"formatting","stats":{"files_changed":1,"insertions":3,"deletions":2,"files":["jc/lib.py"],"file_stats":[{"name":"jc/lib.py","lines_changed":5}]}},{"commit":"b3c531193b3fc53697e7d7823576f481f9462d53","message":"formatting","stats":{"files_changed":3,"insertions":125,"deletions":71,"files":["CHANGELOG","docs/utils.md","jc/utils.py"],"file_stats":[{"name":"CHANGELOG","lines_changed":3},{"name":"docs/utils.md","lines_changed":79},{"name":"jc/utils.py","lines_changed":114}]}},{"commit":"1d0e07c77bab5c48405323e52873c7952dd0a587","message":"formatting","stats":{"files_changed":3,"insertions":57,"deletions":55,"files":["docs/readme.md","jc/__init__.py","jc/lib.py"],"file_stats":[{"name":"docs/readme.md","lines_changed":33},{"name":"jc/__init__.py","lines_changed":33},{"name":"jc/lib.py","lines_changed":46}]}},{"commit":"06a322cf9c7468dc7e8ba05914e1d07bbc51f63a","message":"rename tests and add conversion function tests","stats":{"files_changed":1,"insertions":14,"deletions":8,"files":["tests/test_lib.py"],"file_stats":[{"name":"tests/test_lib.py","lines_changed":22}]}},{"commit":"623d148712f93eacf9b7b5803140603f0af67acb","message":"doc update","stats":{"files_changed":1,"insertions":1,"deletions":1,"files":["man/jc.1"],"file_stats":[{"name":"man/jc.1","lines_changed":2}]}},{"commit":"647e83d0439a0937db14a2cc97929e38a6b6a43b","message":"add test to ensure there are zero plugin parsers installed during tests","stats":{"files_changed":1,"insertions":3,"deletions":0,"files":["tests/test_lib.py"],"file_stats":[{"name":"tests/test_lib.py","lines_changed":3}]}},{"commit":"91a554464444da0cc3ed3b4d212539232411f6cc","message":"doc update","stats":{"files_changed":1,"insertions":3,"deletions":2,"files":["jc/lib.py"],"file_stats":[{"name":"jc/lib.py","lines_changed":5}]}},{"commit":"a1190998aef1bf403ee34c38c1a0fbd6291ac38b","message":"add jc and jc.lib tests","stats":{"files_changed":2,"insertions":82,"deletions":0,"files":["tests/test_jc.py","tests/test_lib.py"],"file_stats":[{"name":"tests/test_jc.py","lines_changed":41},{"name":"tests/test_lib.py","lines_changed":41}]}},{"commit":"097d7a1850f6f6df73a5761c657b73ef9dbd3e29","message":"simplify __init__","stats":{"files_changed":1,"insertions":0,"deletions":4,"files":["jc/__init__.py"],"file_stats":[{"name":"jc/__init__.py","lines_changed":4}]}},{"commit":"302bf72e720b3a67fbf1300eaff4f99fc343abeb","message":"Update high-level API docs","stats":{"files_changed":138,"insertions":718,"deletions":6,"files":["docs/parsers/env.md","docs/parsers/file.md","docs/parsers/finger.md","docs/parsers/free.md","docs/parsers/fstab.md","docs/parsers/group.md","docs/parsers/gshadow.md","docs/parsers/hash.md","docs/parsers/hashsum.md","docs/parsers/hciconfig.md","docs/parsers/history.md","docs/parsers/hosts.md","docs/parsers/id.md","docs/parsers/ifconfig.md","docs/parsers/ini.md","docs/parsers/iostat.md","docs/parsers/iostat_s.md","docs/parsers/iptables.md","docs/parsers/iw_scan.md","docs/parsers/jar_manifest.md","docs/parsers/jobs.md","docs/parsers/kv.md","docs/parsers/last.md","docs/parsers/ls.md","docs/parsers/ls_s.md","docs/parsers/lsblk.md","docs/parsers/lsmod.md","docs/parsers/lsof.md","docs/parsers/lsusb.md","docs/parsers/mount.md","docs/parsers/netstat.md","docs/parsers/ntpq.md","docs/parsers/passwd.md","docs/parsers/ping.md","docs/parsers/ping_s.md","docs/parsers/pip_list.md","docs/parsers/pip_show.md","docs/parsers/ps.md","docs/parsers/route.md","docs/parsers/rpm_qi.md","docs/parsers/sfdisk.md","docs/parsers/shadow.md","docs/parsers/ss.md","docs/parsers/stat.md","docs/parsers/stat_s.md","docs/parsers/sysctl.md","docs/parsers/systemctl.md","docs/parsers/systemctl_lj.md","docs/parsers/systemctl_ls.md","docs/parsers/systemctl_luf.md","docs/parsers/systeminfo.md","docs/parsers/time.md","docs/parsers/timedatectl.md","docs/parsers/tracepath.md","docs/parsers/traceroute.md","docs/parsers/ufw.md","docs/parsers/ufw_appinfo.md","docs/parsers/uname.md","docs/parsers/upower.md","docs/parsers/uptime.md","docs/parsers/vmstat.md","docs/parsers/vmstat_s.md","docs/parsers/w.md","docs/parsers/wc.md","docs/parsers/who.md","docs/parsers/xml.md","docs/parsers/yaml.md","docs/parsers/zipinfo.md","jc/parsers/env.py","jc/parsers/file.py","jc/parsers/finger.py","jc/parsers/foo.py","jc/parsers/foo_s.py","jc/parsers/free.py","jc/parsers/fstab.py","jc/parsers/group.py","jc/parsers/gshadow.py","jc/parsers/hash.py","jc/parsers/hashsum.py","jc/parsers/hciconfig.py","jc/parsers/history.py","jc/parsers/hosts.py","jc/parsers/id.py","jc/parsers/ifconfig.py","jc/parsers/ini.py","jc/parsers/iostat.py","jc/parsers/iostat_s.py","jc/parsers/iptables.py","jc/parsers/iw_scan.py","jc/parsers/jar_manifest.py","jc/parsers/jobs.py","jc/parsers/kv.py","jc/parsers/last.py","jc/parsers/ls.py","jc/parsers/ls_s.py","jc/parsers/lsblk.py","jc/parsers/lsmod.py","jc/parsers/lsof.py","jc/parsers/lsusb.py","jc/parsers/mount.py","jc/parsers/netstat.py","jc/parsers/ntpq.py","jc/parsers/passwd.py","jc/parsers/ping.py","jc/parsers/ping_s.py","jc/parsers/pip_list.py","jc/parsers/pip_show.py","jc/parsers/ps.py","jc/parsers/route.py","jc/parsers/rpm_qi.py","jc/parsers/sfdisk.py","jc/parsers/shadow.py","jc/parsers/ss.py","jc/parsers/stat.py","jc/parsers/stat_s.py","jc/parsers/sysctl.py","jc/parsers/systemctl.py","jc/parsers/systemctl_lj.py","jc/parsers/systemctl_ls.py","jc/parsers/systemctl_luf.py","jc/parsers/systeminfo.py","jc/parsers/time.py","jc/parsers/timedatectl.py","jc/parsers/tracepath.py","jc/parsers/traceroute.py","jc/parsers/ufw.py","jc/parsers/ufw_appinfo.py","jc/parsers/uname.py","jc/parsers/upower.py","jc/parsers/uptime.py","jc/parsers/vmstat.py","jc/parsers/vmstat_s.py","jc/parsers/w.py","jc/parsers/wc.py","jc/parsers/who.py","jc/parsers/xml.py","jc/parsers/yaml.py","jc/parsers/zipinfo.py"],"file_stats":[{"name":"docs/parsers/env.md","lines_changed":5},{"name":"docs/parsers/file.md","lines_changed":5},{"name":"docs/parsers/finger.md","lines_changed":5},{"name":"docs/parsers/free.md","lines_changed":5},{"name":"docs/parsers/fstab.md","lines_changed":5},{"name":"docs/parsers/group.md","lines_changed":5},{"name":"docs/parsers/gshadow.md","lines_changed":5},{"name":"docs/parsers/hash.md","lines_changed":5},{"name":"docs/parsers/hashsum.md","lines_changed":5},{"name":"docs/parsers/hciconfig.md","lines_changed":5},{"name":"docs/parsers/history.md","lines_changed":5},{"name":"docs/parsers/hosts.md","lines_changed":5},{"name":"docs/parsers/id.md","lines_changed":5},{"name":"docs/parsers/ifconfig.md","lines_changed":5},{"name":"docs/parsers/ini.md","lines_changed":5},{"name":"docs/parsers/iostat.md","lines_changed":5},{"name":"docs/parsers/iostat_s.md","lines_changed":7},{"name":"docs/parsers/iptables.md","lines_changed":7},{"name":"docs/parsers/iw_scan.md","lines_changed":9},{"name":"docs/parsers/jar_manifest.md","lines_changed":5},{"name":"docs/parsers/jobs.md","lines_changed":5},{"name":"docs/parsers/kv.md","lines_changed":5},{"name":"docs/parsers/last.md","lines_changed":5},{"name":"docs/parsers/ls.md","lines_changed":5},{"name":"docs/parsers/ls_s.md","lines_changed":7},{"name":"docs/parsers/lsblk.md","lines_changed":5},{"name":"docs/parsers/lsmod.md","lines_changed":5},{"name":"docs/parsers/lsof.md","lines_changed":5},{"name":"docs/parsers/lsusb.md","lines_changed":5},{"name":"docs/parsers/mount.md","lines_changed":5},{"name":"docs/parsers/netstat.md","lines_changed":5},{"name":"docs/parsers/ntpq.md","lines_changed":5},{"name":"docs/parsers/passwd.md","lines_changed":5},{"name":"docs/parsers/ping.md","lines_changed":5},{"name":"docs/parsers/ping_s.md","lines_changed":7},{"name":"docs/parsers/pip_list.md","lines_changed":5},{"name":"docs/parsers/pip_show.md","lines_changed":5},{"name":"docs/parsers/ps.md","lines_changed":5},{"name":"docs/parsers/route.md","lines_changed":5},{"name":"docs/parsers/rpm_qi.md","lines_changed":5},{"name":"docs/parsers/sfdisk.md","lines_changed":5},{"name":"docs/parsers/shadow.md","lines_changed":5},{"name":"docs/parsers/ss.md","lines_changed":5},{"name":"docs/parsers/stat.md","lines_changed":5},{"name":"docs/parsers/stat_s.md","lines_changed":7},{"name":"docs/parsers/sysctl.md","lines_changed":5},{"name":"docs/parsers/systemctl.md","lines_changed":5},{"name":"docs/parsers/systemctl_lj.md","lines_changed":5},{"name":"docs/parsers/systemctl_ls.md","lines_changed":5},{"name":"docs/parsers/systemctl_luf.md","lines_changed":5},{"name":"docs/parsers/systeminfo.md","lines_changed":5},{"name":"docs/parsers/time.md","lines_changed":5},{"name":"docs/parsers/timedatectl.md","lines_changed":5},{"name":"docs/parsers/tracepath.md","lines_changed":5},{"name":"docs/parsers/traceroute.md","lines_changed":5},{"name":"docs/parsers/ufw.md","lines_changed":5},{"name":"docs/parsers/ufw_appinfo.md","lines_changed":5},{"name":"docs/parsers/uname.md","lines_changed":5},{"name":"docs/parsers/upower.md","lines_changed":5},{"name":"docs/parsers/uptime.md","lines_changed":5},{"name":"docs/parsers/vmstat.md","lines_changed":5},{"name":"docs/parsers/vmstat_s.md","lines_changed":7},{"name":"docs/parsers/w.md","lines_changed":5},{"name":"docs/parsers/wc.md","lines_changed":5},{"name":"docs/parsers/who.md","lines_changed":5},{"name":"docs/parsers/xml.md","lines_changed":5},{"name":"docs/parsers/yaml.md","lines_changed":5},{"name":"docs/parsers/zipinfo.md","lines_changed":5},{"name":"jc/parsers/env.py","lines_changed":5},{"name":"jc/parsers/file.py","lines_changed":5},{"name":"jc/parsers/finger.py","lines_changed":5},{"name":"jc/parsers/foo.py","lines_changed":5},{"name":"jc/parsers/foo_s.py","lines_changed":7},{"name":"jc/parsers/free.py","lines_changed":5},{"name":"jc/parsers/fstab.py","lines_changed":5},{"name":"jc/parsers/group.py","lines_changed":5},{"name":"jc/parsers/gshadow.py","lines_changed":5},{"name":"jc/parsers/hash.py","lines_changed":5},{"name":"jc/parsers/hashsum.py","lines_changed":5},{"name":"jc/parsers/hciconfig.py","lines_changed":5},{"name":"jc/parsers/history.py","lines_changed":5},{"name":"jc/parsers/hosts.py","lines_changed":5},{"name":"jc/parsers/id.py","lines_changed":5},{"name":"jc/parsers/ifconfig.py","lines_changed":5},{"name":"jc/parsers/ini.py","lines_changed":5},{"name":"jc/parsers/iostat.py","lines_changed":5},{"name":"jc/parsers/iostat_s.py","lines_changed":7},{"name":"jc/parsers/iptables.py","lines_changed":7},{"name":"jc/parsers/iw_scan.py","lines_changed":9},{"name":"jc/parsers/jar_manifest.py","lines_changed":5},{"name":"jc/parsers/jobs.py","lines_changed":5},{"name":"jc/parsers/kv.py","lines_changed":5},{"name":"jc/parsers/last.py","lines_changed":5},{"name":"jc/parsers/ls.py","lines_changed":5},{"name":"jc/parsers/ls_s.py","lines_changed":7},{"name":"jc/parsers/lsblk.py","lines_changed":5},{"name":"jc/parsers/lsmod.py","lines_changed":5},{"name":"jc/parsers/lsof.py","lines_changed":5},{"name":"jc/parsers/lsusb.py","lines_changed":5},{"name":"jc/parsers/mount.py","lines_changed":5},{"name":"jc/parsers/netstat.py","lines_changed":5},{"name":"jc/parsers/ntpq.py","lines_changed":5},{"name":"jc/parsers/passwd.py","lines_changed":5},{"name":"jc/parsers/ping.py","lines_changed":5},{"name":"jc/parsers/ping_s.py","lines_changed":7},{"name":"jc/parsers/pip_list.py","lines_changed":5},{"name":"jc/parsers/pip_show.py","lines_changed":5},{"name":"jc/parsers/ps.py","lines_changed":5},{"name":"jc/parsers/route.py","lines_changed":5},{"name":"jc/parsers/rpm_qi.py","lines_changed":5},{"name":"jc/parsers/sfdisk.py","lines_changed":5},{"name":"jc/parsers/shadow.py","lines_changed":5},{"name":"jc/parsers/ss.py","lines_changed":5},{"name":"jc/parsers/stat.py","lines_changed":5},{"name":"jc/parsers/stat_s.py","lines_changed":7},{"name":"jc/parsers/sysctl.py","lines_changed":5},{"name":"jc/parsers/systemctl.py","lines_changed":5},{"name":"jc/parsers/systemctl_lj.py","lines_changed":5},{"name":"jc/parsers/systemctl_ls.py","lines_changed":5},{"name":"jc/parsers/systemctl_luf.py","lines_changed":5},{"name":"jc/parsers/systeminfo.py","lines_changed":5},{"name":"jc/parsers/time.py","lines_changed":5},{"name":"jc/parsers/timedatectl.py","lines_changed":5},{"name":"jc/parsers/tracepath.py","lines_changed":5},{"name":"jc/parsers/traceroute.py","lines_changed":5},{"name":"jc/parsers/ufw.py","lines_changed":5},{"name":"jc/parsers/ufw_appinfo.py","lines_changed":5},{"name":"jc/parsers/uname.py","lines_changed":5},{"name":"jc/parsers/upower.py","lines_changed":5},{"name":"jc/parsers/uptime.py","lines_changed":5},{"name":"jc/parsers/vmstat.py","lines_changed":5},{"name":"jc/parsers/vmstat_s.py","lines_changed":7},{"name":"jc/parsers/w.py","lines_changed":5},{"name":"jc/parsers/wc.py","lines_changed":5},{"name":"jc/parsers/who.py","lines_changed":5},{"name":"jc/parsers/xml.py","lines_changed":5},{"name":"jc/parsers/yaml.py","lines_changed":5},{"name":"jc/parsers/zipinfo.py","lines_changed":5}]}},{"commit":"2c42baf3a4dd6733c078f31a1becd708a05f2c36","message":"add new high-level api info","stats":{"files_changed":34,"insertions":174,"deletions":0,"files":["docs/parsers/acpi.md","docs/parsers/airport.md","docs/parsers/airport_s.md","docs/parsers/arp.md","docs/parsers/blkid.md","docs/parsers/cksum.md","docs/parsers/crontab.md","docs/parsers/crontab_u.md","docs/parsers/csv.md","docs/parsers/csv_s.md","docs/parsers/date.md","docs/parsers/df.md","docs/parsers/dig.md","docs/parsers/dir.md","docs/parsers/dmidecode.md","docs/parsers/dpkg_l.md","docs/parsers/du.md","jc/parsers/acpi.py","jc/parsers/airport.py","jc/parsers/airport_s.py","jc/parsers/arp.py","jc/parsers/blkid.py","jc/parsers/cksum.py","jc/parsers/crontab.py","jc/parsers/crontab_u.py","jc/parsers/csv.py","jc/parsers/csv_s.py","jc/parsers/date.py","jc/parsers/df.py","jc/parsers/dig.py","jc/parsers/dir.py","jc/parsers/dmidecode.py","jc/parsers/dpkg_l.py","jc/parsers/du.py"],"file_stats":[{"name":"docs/parsers/acpi.md","lines_changed":5},{"name":"docs/parsers/airport.md","lines_changed":5},{"name":"docs/parsers/airport_s.md","lines_changed":5},{"name":"docs/parsers/arp.md","lines_changed":5},{"name":"docs/parsers/blkid.md","lines_changed":5},{"name":"docs/parsers/cksum.md","lines_changed":5},{"name":"docs/parsers/crontab.md","lines_changed":5},{"name":"docs/parsers/crontab_u.md","lines_changed":5},{"name":"docs/parsers/csv.md","lines_changed":5},{"name":"docs/parsers/csv_s.md","lines_changed":7},{"name":"docs/parsers/date.md","lines_changed":5},{"name":"docs/parsers/df.md","lines_changed":5},{"name":"docs/parsers/dig.md","lines_changed":5},{"name":"docs/parsers/dir.md","lines_changed":5},{"name":"docs/parsers/dmidecode.md","lines_changed":5},{"name":"docs/parsers/dpkg_l.md","lines_changed":5},{"name":"docs/parsers/du.md","lines_changed":5},{"name":"jc/parsers/acpi.py","lines_changed":5},{"name":"jc/parsers/airport.py","lines_changed":5},{"name":"jc/parsers/airport_s.py","lines_changed":5},{"name":"jc/parsers/arp.py","lines_changed":5},{"name":"jc/parsers/blkid.py","lines_changed":5},{"name":"jc/parsers/cksum.py","lines_changed":5},{"name":"jc/parsers/crontab.py","lines_changed":5},{"name":"jc/parsers/crontab_u.py","lines_changed":5},{"name":"jc/parsers/csv.py","lines_changed":5},{"name":"jc/parsers/csv_s.py","lines_changed":7},{"name":"jc/parsers/date.py","lines_changed":5},{"name":"jc/parsers/df.py","lines_changed":5},{"name":"jc/parsers/dig.py","lines_changed":5},{"name":"jc/parsers/dir.py","lines_changed":5},{"name":"jc/parsers/dmidecode.py","lines_changed":5},{"name":"jc/parsers/dpkg_l.py","lines_changed":5},{"name":"jc/parsers/du.py","lines_changed":5}]}},{"commit":"03feb89c84096c0ea1d6ae3a0634ae7b8b507e8f","message":"add module list info","stats":{"files_changed":2,"insertions":4,"deletions":0,"files":["docs/readme.md","jc/__init__.py"],"file_stats":[{"name":"docs/readme.md","lines_changed":2},{"name":"jc/__init__.py","lines_changed":2}]}},{"commit":"9dd553192fbca3037b3afe5df6bae88f7a8a9365","message":"doc update","stats":{"files_changed":5,"insertions":29,"deletions":12,"files":["CHANGELOG","README.md","docs/readme.md","man/jc.1","templates/readme_template"],"file_stats":[{"name":"CHANGELOG","lines_changed":3},{"name":"README.md","lines_changed":10},{"name":"docs/readme.md","lines_changed":16},{"name":"man/jc.1","lines_changed":2},{"name":"templates/readme_template","lines_changed":10}]}},{"commit":"fa3f02e9d1ac7867e3465c2d214f4e4229ff4c66","message":"version bump","stats":{"files_changed":1,"insertions":1,"deletions":1,"files":["setup.py"],"file_stats":[{"name":"setup.py","lines_changed":2}]}},{"commit":"0a9dde58c5235f78c4c9ae9c013f7454482c6067","message":"add jc.parse() high-level API","stats":{"files_changed":3,"insertions":228,"deletions":134,"files":["jc/__init__.py","jc/cli.py","jc/lib.py"],"file_stats":[{"name":"jc/__init__.py","lines_changed":22},{"name":"jc/cli.py","lines_changed":154},{"name":"jc/lib.py","lines_changed":186}]}},{"commit":"70cb4453bebb235130e2c287633ecb1de6c2b0aa","message":"Merge pull request #195 from kellyjonbrazil/dev"},{"commit":"830674cc6f19e107347a743baff7bbaab7f80b75","message":"version bump","stats":{"files_changed":4,"insertions":4,"deletions":4,"files":["CHANGELOG","jc/__init__.py","man/jc.1","setup.py"],"file_stats":[{"name":"CHANGELOG","lines_changed":2},{"name":"jc/__init__.py","lines_changed":2},{"name":"man/jc.1","lines_changed":2},{"name":"setup.py","lines_changed":2}]}},{"commit":"fb406b58a12fdfe81bcff76671661af77e7f2fe5","message":"formatting","stats":{"files_changed":3,"insertions":5,"deletions":5,"files":["docs/parsers/stat_s.md","jc/parsers/stat_s.py","man/jc.1"],"file_stats":[{"name":"docs/parsers/stat_s.md","lines_changed":4},{"name":"jc/parsers/stat_s.py","lines_changed":4},{"name":"man/jc.1","lines_changed":2}]}},{"commit":"55b272e41259ddc835cf4eb513fb67e7b2cf1573","message":"tighten stat data detection","stats":{"files_changed":1,"insertions":1,"deletions":1,"files":["jc/parsers/stat_s.py"],"file_stats":[{"name":"jc/parsers/stat_s.py","lines_changed":2}]}},{"commit":"94f62a9bf36242310790a0f37c66b2e6c6fdc078","message":"formatting","stats":{"files_changed":2,"insertions":6,"deletions":6,"files":["docs/parsers/stat_s.md","jc/parsers/stat_s.py"],"file_stats":[{"name":"docs/parsers/stat_s.md","lines_changed":6},{"name":"jc/parsers/stat_s.py","lines_changed":6}]}},{"commit":"8d19e4cb7b45e3b6cb8c404c959949b7593c9386","message":"doc update","stats":{"files_changed":4,"insertions":115,"deletions":1,"files":["CHANGELOG","README.md","docs/parsers/stat_s.md","man/jc.1"],"file_stats":[{"name":"CHANGELOG","lines_changed":3},{"name":"README.md","lines_changed":1},{"name":"docs/parsers/stat_s.md","lines_changed":105},{"name":"man/jc.1","lines_changed":7}]}},{"commit":"7e510d48e0f8426a67cf8d70d06d0331c274d358","message":"simplify non-stat parse error logic","stats":{"files_changed":7,"insertions":106,"deletions":2,"files":["jc/parsers/stat_s.py","tests/fixtures/centos-7.7/stat-streaming.json","tests/fixtures/freebsd12/stat-streaming.json",".../stat-filename-with-spaces-streaming.json","tests/fixtures/osx-10.14.6/stat-streaming.json","tests/fixtures/ubuntu-18.04/stat-streaming.json","tests/test_stat_s.py"],"file_stats":[{"name":"jc/parsers/stat_s.py","lines_changed":3},{"name":"tests/fixtures/centos-7.7/stat-streaming.json","lines_changed":1},{"name":"tests/fixtures/freebsd12/stat-streaming.json","lines_changed":1},{"name":".../stat-filename-with-spaces-streaming.json","lines_changed":1},{"name":"tests/fixtures/osx-10.14.6/stat-streaming.json","lines_changed":1},{"name":"tests/fixtures/ubuntu-18.04/stat-streaming.json","lines_changed":1},{"name":"tests/test_stat_s.py","lines_changed":100}]}},{"commit":"7b20cffb143447f4497bc4e895eac2426e8a519f","message":"simplify last item logic","stats":{"files_changed":1,"insertions":4,"deletions":4,"files":["jc/parsers/stat_s.py"],"file_stats":[{"name":"jc/parsers/stat_s.py","lines_changed":8}]}},{"commit":"5c934c43c13b69183561da8a77280feb3363e950","message":"add continue to simplify logic","stats":{"files_changed":1,"insertions":2,"deletions":0,"files":["jc/parsers/stat_s.py"],"file_stats":[{"name":"jc/parsers/stat_s.py","lines_changed":2}]}},{"commit":"8609298449e997ba4804d818f4fc23cb393ded7d","message":"update docstring","stats":{"files_changed":1,"insertions":5,"deletions":3,"files":["jc/parsers/stat_s.py"],"file_stats":[{"name":"jc/parsers/stat_s.py","lines_changed":8}]}},{"commit":"72cb0dc10b2dac486d3e2a52cf44baf0d7496034","message":"fixup for first and last items","stats":{"files_changed":1,"insertions":14,"deletions":10,"files":["jc/parsers/stat_s.py"],"file_stats":[{"name":"jc/parsers/stat_s.py","lines_changed":24}]}},{"commit":"7b22fa81ded0f6f59e250ffea63c5d2a0f928b25","message":"raise for non-stat data","stats":{"files_changed":1,"insertions":8,"deletions":0,"files":["jc/parsers/stat_s.py"],"file_stats":[{"name":"jc/parsers/stat_s.py","lines_changed":8}]}},{"commit":"0b6a1307790e0793917bc2781e4873aa9dd67225","message":"ignore blank lines","stats":{"files_changed":1,"insertions":4,"deletions":0,"files":["jc/parsers/stat_s.py"],"file_stats":[{"name":"jc/parsers/stat_s.py","lines_changed":4}]}},{"commit":"fdcf4338e0f099699f8d48df6382be1cc97dba84","message":"add examples to docstring","stats":{"files_changed":1,"insertions":2,"deletions":4,"files":["jc/parsers/stat_s.py"],"file_stats":[{"name":"jc/parsers/stat_s.py","lines_changed":6}]}},{"commit":"ee43037f481286a34a766390568965fdd53af132","message":"remove unused continue lines","stats":{"files_changed":1,"insertions":0,"deletions":2,"files":["jc/parsers/stat_s.py"],"file_stats":[{"name":"jc/parsers/stat_s.py","lines_changed":2}]}},{"commit":"26e365563c314e694915c7a3feae490ea99a112c","message":"add schema and _process logic","stats":{"files_changed":1,"insertions":50,"deletions":11,"files":["jc/parsers/stat_s.py"],"file_stats":[{"name":"jc/parsers/stat_s.py","lines_changed":61}]}},{"commit":"1b39586bb1b62aee8ae709512c2e3f79cefdb3d9","message":"add stat streaming parser","stats":{"files_changed":2,"insertions":227,"deletions":0,"files":["jc/cli.py","jc/parsers/stat_s.py"],"file_stats":[{"name":"jc/cli.py","lines_changed":1},{"name":"jc/parsers/stat_s.py","lines_changed":226}]}},{"commit":"8bb3a6bea34d60d49039f1ed72fd7e413edc05da","message":"Merge pull request #194 from kellyjonbrazil/master"},{"commit":"e6900e2000bf265dfcfc09ffbfda39e9238661af","message":"add jar-manifest","stats":{"files_changed":1,"insertions":21,"deletions":0,"files":["EXAMPLES.md"],"file_stats":[{"name":"EXAMPLES.md","lines_changed":21}]}},{"commit":"0ee244756bf39123e4873eb231156edbe7f0e0ec","message":"spelling","stats":{"files_changed":2,"insertions":2,"deletions":2,"files":["docs/parsers/jar_manifest.md","jc/parsers/jar_manifest.py"],"file_stats":[{"name":"docs/parsers/jar_manifest.md","lines_changed":2},{"name":"jc/parsers/jar_manifest.py","lines_changed":2}]}},{"commit":"6d5ac9abe6712e01887ce0d96c278a568319f405","message":"update docs","stats":{"files_changed":3,"insertions":3,"deletions":3,"files":["docs/parsers/csv.md","docs/parsers/csv_s.md","man/jc.1"],"file_stats":[{"name":"docs/parsers/csv.md","lines_changed":2},{"name":"docs/parsers/csv_s.md","lines_changed":2},{"name":"man/jc.1","lines_changed":2}]}},{"commit":"44f6d9e1321459be8196aeebf6db088cc5120e61","message":"changelog update","stats":{"files_changed":1,"insertions":2,"deletions":1,"files":["CHANGELOG"],"file_stats":[{"name":"CHANGELOG","lines_changed":3}]}},{"commit":"360154559c5dee6affa55bbdd5d2f473248b9168","message":"Merge pull request #193 from kellyjonbrazil/dev"},{"commit":"78672bd7ad66c418e0ecf31add73f887b0946d29","message":"Merge pull request #190 from shaikustin/csv-doubleqouted"},{"commit":"65d96e26b59e231c77c1dbba1dc91708c33de30c","message":"add streaming tests","stats":{"files_changed":2,"insertions":13,"deletions":0,"files":["tests/fixtures/generic/csv-doubleqouted-streaming.json","tests/test_csv_s.py"],"file_stats":[{"name":"tests/fixtures/generic/csv-doubleqouted-streaming.json","lines_changed":1},{"name":"tests/test_csv_s.py","lines_changed":12}]}},{"commit":"241d53af9a5c9bba70e28835e22c52c0060269ba","message":"Merge pull request #192 from kellyjonbrazil/dev"},{"commit":"5563829df2849a899df2e9211d6c92bddc695f9b","message":"make dialect sniff behavior match non-streaming parser","stats":{"files_changed":1,"insertions":4,"deletions":4,"files":["jc/parsers/csv_s.py"],"file_stats":[{"name":"jc/parsers/csv_s.py","lines_changed":8}]}},{"commit":"3a4a27e1f94ee07352c7616c57ec655c1aea04f6","message":"version bump","stats":{"files_changed":1,"insertions":2,"deletions":2,"files":["jc/parsers/csv.py"],"file_stats":[{"name":"jc/parsers/csv.py","lines_changed":4}]}},{"commit":"9c887a36a804d817c3f669a55b9b1566d09d645d","message":"update csv_s parser with csv changes","stats":{"files_changed":1,"insertions":4,"deletions":2,"files":["jc/parsers/csv_s.py"],"file_stats":[{"name":"jc/parsers/csv_s.py","lines_changed":6}]}},{"commit":"bc7973af36e13006230b5faa9e201e300d468912","message":"update copyright","stats":{"files_changed":3,"insertions":3,"deletions":3,"files":["README.md","jc/cli.py","man/jc.1"],"file_stats":[{"name":"README.md","lines_changed":2},{"name":"jc/cli.py","lines_changed":2},{"name":"man/jc.1","lines_changed":2}]}},{"commit":"32972d8fdbdc71923978fd5c2a87fd6cfa4b7f8e","message":"doc update","stats":{"files_changed":7,"insertions":122,"deletions":9,"files":["CHANGELOG","README.md","docs/parsers/jar_manifest.md","jc/__init__.py","jc/parsers/jar_manifest.py","man/jc.1","setup.py"],"file_stats":[{"name":"CHANGELOG","lines_changed":3},{"name":"README.md","lines_changed":1},{"name":"docs/parsers/jar_manifest.md","lines_changed":104},{"name":"jc/__init__.py","lines_changed":2},{"name":"jc/parsers/jar_manifest.py","lines_changed":12},{"name":"man/jc.1","lines_changed":7},{"name":"setup.py","lines_changed":2}]}},{"commit":"b128d9109cbdb1176f2473d450023bb0be02531b","message":"add MANIFEST.MF tests","stats":{"files_changed":1,"insertions":46,"deletions":0,"files":["tests/test_jar_manifest.py"],"file_stats":[{"name":"tests/test_jar_manifest.py","lines_changed":46}]}},{"commit":"929d7273a422c2bd5b83e5e19d32630f1a027f75","message":"doc updates","stats":{"files_changed":1,"insertions":4,"deletions":4,"files":["jc/parsers/jar_manifest.py"],"file_stats":[{"name":"jc/parsers/jar_manifest.py","lines_changed":8}]}},{"commit":"2a40f842743a8745d651b4b6cae645045e6c6aab","message":"fix doubleqoute in csv","stats":{"files_changed":4,"insertions":22,"deletions":1,"files":["jc/parsers/csv.py","tests/fixtures/generic/csv-doubleqouted.csv","tests/fixtures/generic/csv-doubleqouted.json","tests/test_csv.py"],"file_stats":[{"name":"jc/parsers/csv.py","lines_changed":4},{"name":"tests/fixtures/generic/csv-doubleqouted.csv","lines_changed":3},{"name":"tests/fixtures/generic/csv-doubleqouted.json","lines_changed":4},{"name":"tests/test_csv.py","lines_changed":12}]}},{"commit":"9ff6fa818f0857321e4b3b089d288997f2ae27af","message":"add jar-manifest","stats":{"files_changed":1,"insertions":1,"deletions":0,"files":["jc/cli.py"],"file_stats":[{"name":"jc/cli.py","lines_changed":1}]}},{"commit":"dac73a4bfe24e36474fdf6ff60c23e784ca409bd","message":"Merge pull request #189 from kellyjonbrazil/master"},{"commit":"d7895547f74744e82317eabe4c870115701872be","message":"Merge pull request #188 from listuser/new_branch"},{"commit":"b7d439cb870e443e4f4e4a2137ab170835e77eff","message":"Renamed jar-manifest.py to jar_manifest.py, added multi manifest outputs to tests...","stats":{"files_changed":3,"insertions":2220,"deletions":9,"files":["jc/parsers/{jar-manifest.py => jar_manifest.py}","tests/fixtures/rhel-8/MANIFEST.MF.MULTI.json","tests/fixtures/rhel-8/MANIFEST.MF.MULTI.out"],"file_stats":[{"name":"jc/parsers/{jar-manifest.py => jar_manifest.py}","lines_changed":18},{"name":"tests/fixtures/rhel-8/MANIFEST.MF.MULTI.json","lines_changed":1},{"name":"tests/fixtures/rhel-8/MANIFEST.MF.MULTI.out","lines_changed":2210}]}},{"commit":"7cc903a5f5ca368be97babadc72689375567a901","message":"Removed inflating from examples in jar-manifest.py","stats":{"files_changed":1,"insertions":0,"deletions":3,"files":["jc/parsers/jar-manifest.py"],"file_stats":[{"name":"jc/parsers/jar-manifest.py","lines_changed":3}]}},{"commit":"c495a8291bd3e1fd070ee2e018b9b550f9c86314","message":"Updated test output in MANIFEST.MF.json","stats":{"files_changed":1,"insertions":1,"deletions":292,"files":["tests/fixtures/rhel-8/MANIFEST.MF.json"],"file_stats":[{"name":"tests/fixtures/rhel-8/MANIFEST.MF.json","lines_changed":293}]}},{"commit":"5e1d7d777c627fb17feda6e51d9640bbd0f03302","message":"Renamed metamf.py to jar-manifest.py, plus other changes","stats":{"files_changed":8,"insertions":304,"deletions":2544,"files":["jc/parsers/{metamf.py => jar-manifest.py}","tests/fixtures/rhel-8/MANIFEST.MF.json",".../rhel-8/{MANIFEST.MF => MANIFEST.MF.out}",".../rhel-8/cmds_used_to_generate_test_data.txt",".../rhel-8/unzip_c_MANIFEST.MF.multi_jar.json",".../rhel-8/unzip_c_MANIFEST.MF.multi_jar.out",".../rhel-8/unzip_c_MANIFEST.MF.single_jar.json",".../rhel-8/unzip_c_MANIFEST.MF.single_jar.out"],"file_stats":[{"name":"jc/parsers/{metamf.py => jar-manifest.py}","lines_changed":34},{"name":"tests/fixtures/rhel-8/MANIFEST.MF.json","lines_changed":293},{"name":".../rhel-8/{MANIFEST.MF => MANIFEST.MF.out}","lines_changed":0},{"name":".../rhel-8/cmds_used_to_generate_test_data.txt","lines_changed":14},{"name":".../rhel-8/unzip_c_MANIFEST.MF.multi_jar.json","lines_changed":1},{"name":".../rhel-8/unzip_c_MANIFEST.MF.multi_jar.out","lines_changed":2210},{"name":".../rhel-8/unzip_c_MANIFEST.MF.single_jar.json","lines_changed":1},{"name":".../rhel-8/unzip_c_MANIFEST.MF.single_jar.out","lines_changed":295}]}},{"commit":"7edad3f676fe5560017ca9cb05ede6f46787e78f","message":"Create key value pairs from a MANIFEST.MF file, to include key multiline value pairs.","stats":{"files_changed":8,"insertions":3042,"deletions":0,"files":["jc/parsers/metamf.py","tests/fixtures/rhel-8/MANIFEST.MF","tests/fixtures/rhel-8/MANIFEST.MF.json",".../rhel-8/cmds_used_to_generate_test_data.txt",".../rhel-8/unzip_c_MANIFEST.MF.multi_jar.json",".../rhel-8/unzip_c_MANIFEST.MF.multi_jar.out",".../rhel-8/unzip_c_MANIFEST.MF.single_jar.json",".../rhel-8/unzip_c_MANIFEST.MF.single_jar.out"],"file_stats":[{"name":"jc/parsers/metamf.py","lines_changed":228},{"name":"tests/fixtures/rhel-8/MANIFEST.MF","lines_changed":292},{"name":"tests/fixtures/rhel-8/MANIFEST.MF.json","lines_changed":1},{"name":".../rhel-8/cmds_used_to_generate_test_data.txt","lines_changed":14},{"name":".../rhel-8/unzip_c_MANIFEST.MF.multi_jar.json","lines_changed":1},{"name":".../rhel-8/unzip_c_MANIFEST.MF.multi_jar.out","lines_changed":2210},{"name":".../rhel-8/unzip_c_MANIFEST.MF.single_jar.json","lines_changed":1},{"name":".../rhel-8/unzip_c_MANIFEST.MF.single_jar.out","lines_changed":295}]}},{"commit":"f7331001d4ab976e311458a16b6e5337da2e3aab","message":"use github releases instead of packaging site","stats":{"files_changed":3,"insertions":9,"deletions":3,"files":["README.md","man/jc.1","templates/readme_template"],"file_stats":[{"name":"README.md","lines_changed":5},{"name":"man/jc.1","lines_changed":2},{"name":"templates/readme_template","lines_changed":5}]}},{"commit":"f8e09ae2ffe185d21305d566fad20f510df9890f","message":"Merge pull request #187 from kellyjonbrazil/master"},{"commit":"433c7cc0f05e321ffe024845a908f3e856d4cd2b","message":"formatting","stats":{"files_changed":2,"insertions":2,"deletions":0,"files":["docs/parsers/zipinfo.md","jc/parsers/zipinfo.py"],"file_stats":[{"name":"docs/parsers/zipinfo.md","lines_changed":1},{"name":"jc/parsers/zipinfo.py","lines_changed":1}]}},{"commit":"d753e71a7452310d45fa605a2e4c70320ed60dbb","message":"Merge pull request #186 from kellyjonbrazil/dev"},{"commit":"2e4f5a508b6c90f9e03dcbcf64efc0e2fc446666","message":"version bump","stats":{"files_changed":4,"insertions":6,"deletions":3,"files":["CHANGELOG","jc/__init__.py","man/jc.1","setup.py"],"file_stats":[{"name":"CHANGELOG","lines_changed":3},{"name":"jc/__init__.py","lines_changed":2},{"name":"man/jc.1","lines_changed":2},{"name":"setup.py","lines_changed":2}]}},{"commit":"88b960eff6cb3739d0d243c8d8b3e8ad5b8eb97c","message":"doc update","stats":{"files_changed":4,"insertions":144,"deletions":1,"files":["EXAMPLES.md","README.md","docs/parsers/zipinfo.md","man/jc.1"],"file_stats":[{"name":"EXAMPLES.md","lines_changed":31},{"name":"README.md","lines_changed":1},{"name":"docs/parsers/zipinfo.md","lines_changed":106},{"name":"man/jc.1","lines_changed":7}]}},{"commit":"88c77bd89e2c2a5f023e6638816c9153b6276d35","message":"add zipinfo tests","stats":{"files_changed":2,"insertions":47,"deletions":0,"files":["tests/fixtures/osx-10.14.6/zipinfo-multi.json","tests/test_zipinfo.py"],"file_stats":[{"name":"tests/fixtures/osx-10.14.6/zipinfo-multi.json","lines_changed":1},{"name":"tests/test_zipinfo.py","lines_changed":46}]}},{"commit":"51a7a4251fff518d8da78ffa41e7ba2e2cb47f12","message":"add multi-archive test output","stats":{"files_changed":1,"insertions":24,"deletions":0,"files":["tests/fixtures/osx-10.14.6/zipinfo-multi.out"],"file_stats":[{"name":"tests/fixtures/osx-10.14.6/zipinfo-multi.out","lines_changed":24}]}},{"commit":"51d2f316f388d962c26aeb4f42affebec339e5a2","message":"add multi-archive support","stats":{"files_changed":1,"insertions":97,"deletions":72,"files":["jc/parsers/zipinfo.py"],"file_stats":[{"name":"jc/parsers/zipinfo.py","lines_changed":169}]}},{"commit":"ff78a46c4854339a097992701351ef471aff1671","message":"add zipinfo parser","stats":{"files_changed":1,"insertions":2,"deletions":1,"files":["jc/cli.py"],"file_stats":[{"name":"jc/cli.py","lines_changed":3}]}},{"commit":"ed4a9dc1d470f64bcc9de35b2d98568ffd50257d","message":"formatting","stats":{"files_changed":1,"insertions":21,"deletions":23,"files":["jc/parsers/zipinfo.py"],"file_stats":[{"name":"jc/parsers/zipinfo.py","lines_changed":44}]}},{"commit":"63182dba26040974cb8cada6f5910bb29b1fa3ed","message":"Merge pull request #185 from listuser/new_branch"},{"commit":"9c1eaa938934269fe4179da798acf5f119cde0cf","message":"revised zipinfo.py nested version","stats":{"files_changed":2,"insertions":68,"deletions":61,"files":["jc/parsers/zipinfo.py","tests/fixtures/rhel-8/zipinfo.json"],"file_stats":[{"name":"jc/parsers/zipinfo.py","lines_changed":127},{"name":"tests/fixtures/rhel-8/zipinfo.json","lines_changed":2}]}},{"commit":"bc520fcbcdfad6a53e51944391fd24512bed8128","message":"added zipinfo.py nested version","stats":{"files_changed":2,"insertions":63,"deletions":53,"files":["jc/parsers/zipinfo.py","tests/fixtures/rhel-8/zipinfo.json"],"file_stats":[{"name":"jc/parsers/zipinfo.py","lines_changed":114},{"name":"tests/fixtures/rhel-8/zipinfo.json","lines_changed":2}]}},{"commit":"46faac1a12a5b39d6a25427f6e8fdcca1204dbcd","message":"add test data zipinfo.json and zipinfo.out","stats":{"files_changed":2,"insertions":1222,"deletions":0,"files":["tests/fixtures/rhel-8/zipinfo.json","tests/fixtures/rhel-8/zipinfo.out"],"file_stats":[{"name":"tests/fixtures/rhel-8/zipinfo.json","lines_changed":1},{"name":"tests/fixtures/rhel-8/zipinfo.out","lines_changed":1221}]}},{"commit":"3c424c0cb3cff462a963183585b57bea004e974f","message":"initial commit zipinfo.py to new_branch","stats":{"files_changed":1,"insertions":165,"deletions":0,"files":["jc/parsers/zipinfo.py"],"file_stats":[{"name":"jc/parsers/zipinfo.py","lines_changed":165}]}},{"commit":"3ac8d0362b4fb9999fc55a60a9cb20ac80d114f7","message":"use quotes around python versions","stats":{"files_changed":1,"insertions":1,"deletions":1,"files":[".github/workflows/pythonapp.yml"],"file_stats":[{"name":".github/workflows/pythonapp.yml","lines_changed":2}]}},{"commit":"d88b998e6c7826a9ecae18663328e2d2915030fe","message":"formatting","stats":{"files_changed":2,"insertions":8,"deletions":8,"files":["docs/parsers/csv_s.md","jc/parsers/csv_s.py"],"file_stats":[{"name":"docs/parsers/csv_s.md","lines_changed":8},{"name":"jc/parsers/csv_s.py","lines_changed":8}]}},{"commit":"a9ed55c00652a563391a7930c7a4649967131ae1","message":"fix spelling","stats":{"files_changed":11,"insertions":11,"deletions":11,"files":["docs/parsers/csv_s.md","docs/parsers/iostat_s.md","docs/parsers/ls_s.md","docs/parsers/ping_s.md","docs/parsers/vmstat_s.md","jc/parsers/csv_s.py","jc/parsers/foo_s.py","jc/parsers/iostat_s.py","jc/parsers/ls_s.py","jc/parsers/ping_s.py","jc/parsers/vmstat_s.py"],"file_stats":[{"name":"docs/parsers/csv_s.md","lines_changed":2},{"name":"docs/parsers/iostat_s.md","lines_changed":2},{"name":"docs/parsers/ls_s.md","lines_changed":2},{"name":"docs/parsers/ping_s.md","lines_changed":2},{"name":"docs/parsers/vmstat_s.md","lines_changed":2},{"name":"jc/parsers/csv_s.py","lines_changed":2},{"name":"jc/parsers/foo_s.py","lines_changed":2},{"name":"jc/parsers/iostat_s.py","lines_changed":2},{"name":"jc/parsers/ls_s.py","lines_changed":2},{"name":"jc/parsers/ping_s.py","lines_changed":2},{"name":"jc/parsers/vmstat_s.py","lines_changed":2}]}},{"commit":"ea614341232e5272ee0c7fd46ba0f313033c761f","message":"fix schema docs","stats":{"files_changed":4,"insertions":16,"deletions":8,"files":["docs/parsers/crontab.md","docs/parsers/crontab_u.md","jc/parsers/crontab.py","jc/parsers/crontab_u.py"],"file_stats":[{"name":"docs/parsers/crontab.md","lines_changed":6},{"name":"docs/parsers/crontab_u.md","lines_changed":6},{"name":"jc/parsers/crontab.py","lines_changed":6},{"name":"jc/parsers/crontab_u.py","lines_changed":6}]}},{"commit":"a73d0d26cbe2860b8374661068e09e0717a3bab2","message":"Merge pull request #184 from kellyjonbrazil/dev"},{"commit":"b4506976e3c865397bc657183d49c484d8bcfd7a","message":"formatting","stats":{"files_changed":2,"insertions":7,"deletions":7,"files":["man/jc.1","templates/manpage_template"],"file_stats":[{"name":"man/jc.1","lines_changed":8},{"name":"templates/manpage_template","lines_changed":6}]}},{"commit":"34cb75a09697a06c3878f2f9a84eb3bd2a90ae62","message":"version bump","stats":{"files_changed":2,"insertions":2,"deletions":2,"files":["jc/__init__.py","setup.py"],"file_stats":[{"name":"jc/__init__.py","lines_changed":2},{"name":"setup.py","lines_changed":2}]}},{"commit":"34df643f60712ae25645cb7cddff80e43c12262b","message":"add disable colors section","stats":{"files_changed":4,"insertions":18,"deletions":0,"files":["README.md","man/jc.1","templates/manpage_template","templates/readme_template"],"file_stats":[{"name":"README.md","lines_changed":3},{"name":"man/jc.1","lines_changed":6},{"name":"templates/manpage_template","lines_changed":6},{"name":"templates/readme_template","lines_changed":3}]}},{"commit":"ac7c13fcc013d386f34db51d634298fa3e97eccd","message":"add -C option to docs","stats":{"files_changed":4,"insertions":11,"deletions":1,"files":["README.md","man/jc.1","templates/manpage_template","templates/readme_template"],"file_stats":[{"name":"README.md","lines_changed":1},{"name":"man/jc.1","lines_changed":6},{"name":"templates/manpage_template","lines_changed":4},{"name":"templates/readme_template","lines_changed":1}]}},{"commit":"4fdb34c7d5fcaa65e2ccab814c3acf2f0f70c442","message":"add no-color.org","stats":{"files_changed":1,"insertions":1,"deletions":1,"files":["CHANGELOG"],"file_stats":[{"name":"CHANGELOG","lines_changed":2}]}},{"commit":"7ac468e35aac1a63c4e22f33aead74a6e41a22a6","message":"changelog update","stats":{"files_changed":1,"insertions":1,"deletions":0,"files":["CHANGELOG"],"file_stats":[{"name":"CHANGELOG","lines_changed":1}]}},{"commit":"df190aa299f1669d1fe09380026ae086839abc02","message":"add -C option to force color even with pipes","stats":{"files_changed":1,"insertions":15,"deletions":7,"files":["jc/cli.py"],"file_stats":[{"name":"jc/cli.py","lines_changed":22}]}},{"commit":"9621475e86fe20fcdc2902b6ce7860a833ae2ca0","message":"changelog update","stats":{"files_changed":1,"insertions":3,"deletions":0,"files":["CHANGELOG"],"file_stats":[{"name":"CHANGELOG","lines_changed":3}]}},{"commit":"82e0160de820ad2ed6143f58458711d600b929a3","message":"refactor NO_COLOR test","stats":{"files_changed":1,"insertions":1,"deletions":1,"files":["jc/cli.py"],"file_stats":[{"name":"jc/cli.py","lines_changed":2}]}},{"commit":"d03fb8b626a97e81006d0b108c8f400fe4e2ce3b","message":"Merge branch 'dev' of https://github.com/kellyjonbrazil/jc into dev"},{"commit":"b300dfb3d75fe76e2ddbb087ff742dd0b5e6155b","message":"Add support for NO_COLOR env variable","stats":{"files_changed":1,"insertions":1,"deletions":1,"files":["jc/cli.py"],"file_stats":[{"name":"jc/cli.py","lines_changed":2}]}},{"commit":"a7de9111d97e687cafbc0709ec3ff7453d658a80","message":"Merge pull request #183 from kellyjonbrazil/dev"},{"commit":"7933dfdbe7bf400833d6f6b771362dfc518b9a8d","message":"Merge branch 'master' into dev"},{"commit":"f7cb5f7d01ac01538bee4da816408072b585768e","message":"update date","stats":{"files_changed":1,"insertions":1,"deletions":1,"files":["CHANGELOG"],"file_stats":[{"name":"CHANGELOG","lines_changed":2}]}},{"commit":"a26a298f1a3c141171e7d7ce459a27a297cec031","message":"doc update","stats":{"files_changed":4,"insertions":148,"deletions":1,"files":["README.md","docs/parsers/iostat.md","docs/parsers/iostat_s.md","man/jc.1"],"file_stats":[{"name":"README.md","lines_changed":1},{"name":"docs/parsers/iostat.md","lines_changed":15},{"name":"docs/parsers/iostat_s.md","lines_changed":126},{"name":"man/jc.1","lines_changed":7}]}},{"commit":"dbd134d0dac2fc152183480958fd9e65919ac98d","message":"add examples to docs","stats":{"files_changed":1,"insertions":4,"deletions":2,"files":["jc/parsers/iostat_s.py"],"file_stats":[{"name":"jc/parsers/iostat_s.py","lines_changed":6}]}},{"commit":"11aa01b0d9d6913059f98f9bd7591d7cad9037cf","message":"iostat-s tests","stats":{"files_changed":15,"insertions":15,"deletions":1,"files":["jc/parsers/iostat_s.py","tests/fixtures/centos-7.7/iostat-1-streaming.json","tests/fixtures/centos-7.7/iostat-m-streaming.json","tests/fixtures/centos-7.7/iostat-mx-streaming.json","tests/fixtures/centos-7.7/iostat-streaming.json","tests/fixtures/centos-7.7/iostat-x-streaming.json","tests/fixtures/ubuntu-18.04/iostat-1-streaming.json","tests/fixtures/ubuntu-18.04/iostat-m-streaming.json","tests/fixtures/ubuntu-18.04/iostat-mx-streaming.json","tests/fixtures/ubuntu-18.04/iostat-streaming.json","tests/fixtures/ubuntu-18.04/iostat-x-streaming.json","tests/fixtures/ubuntu-20.10/iostat-m-streaming.json","tests/fixtures/ubuntu-20.10/iostat-mx-streaming.json","tests/fixtures/ubuntu-20.10/iostat-streaming.json","tests/fixtures/ubuntu-20.10/iostat-x-streaming.json"],"file_stats":[{"name":"jc/parsers/iostat_s.py","lines_changed":2},{"name":"tests/fixtures/centos-7.7/iostat-1-streaming.json","lines_changed":1},{"name":"tests/fixtures/centos-7.7/iostat-m-streaming.json","lines_changed":1},{"name":"tests/fixtures/centos-7.7/iostat-mx-streaming.json","lines_changed":1},{"name":"tests/fixtures/centos-7.7/iostat-streaming.json","lines_changed":1},{"name":"tests/fixtures/centos-7.7/iostat-x-streaming.json","lines_changed":1},{"name":"tests/fixtures/ubuntu-18.04/iostat-1-streaming.json","lines_changed":1},{"name":"tests/fixtures/ubuntu-18.04/iostat-m-streaming.json","lines_changed":1},{"name":"tests/fixtures/ubuntu-18.04/iostat-mx-streaming.json","lines_changed":1},{"name":"tests/fixtures/ubuntu-18.04/iostat-streaming.json","lines_changed":1},{"name":"tests/fixtures/ubuntu-18.04/iostat-x-streaming.json","lines_changed":1},{"name":"tests/fixtures/ubuntu-20.10/iostat-m-streaming.json","lines_changed":1},{"name":"tests/fixtures/ubuntu-20.10/iostat-mx-streaming.json","lines_changed":1},{"name":"tests/fixtures/ubuntu-20.10/iostat-streaming.json","lines_changed":1},{"name":"tests/fixtures/ubuntu-20.10/iostat-x-streaming.json","lines_changed":1}]}},{"commit":"6f18e5344356684e845ec63158c570d82156254f","message":"fix for null lines","stats":{"files_changed":1,"insertions":203,"deletions":0,"files":["tests/test_iostat_s.py"],"file_stats":[{"name":"tests/test_iostat_s.py","lines_changed":203}]}},{"commit":"7b467c466568ad4e7986d4d7cf3ec606681b6d46","message":"add ubuntu 20.10 tests","stats":{"files_changed":9,"insertions":137,"deletions":0,"files":["tests/fixtures/ubuntu-20.10/iostat-m.json","tests/fixtures/ubuntu-20.10/iostat-m.out","tests/fixtures/ubuntu-20.10/iostat-mx.json","tests/fixtures/ubuntu-20.10/iostat-mx.out","tests/fixtures/ubuntu-20.10/iostat-x.json","tests/fixtures/ubuntu-20.10/iostat-x.out","tests/fixtures/ubuntu-20.10/iostat.json","tests/fixtures/ubuntu-20.10/iostat.out","tests/test_iostat.py"],"file_stats":[{"name":"tests/fixtures/ubuntu-20.10/iostat-m.json","lines_changed":1},{"name":"tests/fixtures/ubuntu-20.10/iostat-m.out","lines_changed":21},{"name":"tests/fixtures/ubuntu-20.10/iostat-mx.json","lines_changed":1},{"name":"tests/fixtures/ubuntu-20.10/iostat-mx.out","lines_changed":22},{"name":"tests/fixtures/ubuntu-20.10/iostat-x.json","lines_changed":1},{"name":"tests/fixtures/ubuntu-20.10/iostat-x.out","lines_changed":21},{"name":"tests/fixtures/ubuntu-20.10/iostat.json","lines_changed":1},{"name":"tests/fixtures/ubuntu-20.10/iostat.out","lines_changed":22},{"name":"tests/test_iostat.py","lines_changed":47}]}},{"commit":"537b8f263087894c02b5b7c121765cf96182a370","message":"add more int conversions","stats":{"files_changed":2,"insertions":6,"deletions":2,"files":["jc/parsers/iostat.py","jc/parsers/iostat_s.py"],"file_stats":[{"name":"jc/parsers/iostat.py","lines_changed":4},{"name":"jc/parsers/iostat_s.py","lines_changed":4}]}},{"commit":"4d823575e791999e200dedd491511c4fde64fc2e","message":"add more float fields","stats":{"files_changed":2,"insertions":6,"deletions":2,"files":["jc/parsers/iostat.py","jc/parsers/iostat_s.py"],"file_stats":[{"name":"jc/parsers/iostat.py","lines_changed":4},{"name":"jc/parsers/iostat_s.py","lines_changed":4}]}},{"commit":"541aa1d09f20ff6979eabaa66790decb3895f18d","message":"Add new field float conversions for iostat v11","stats":{"files_changed":2,"insertions":68,"deletions":8,"files":["jc/parsers/iostat.py","jc/parsers/iostat_s.py"],"file_stats":[{"name":"jc/parsers/iostat.py","lines_changed":15},{"name":"jc/parsers/iostat_s.py","lines_changed":61}]}},{"commit":"8f02021014b7b19acf1a8bbd777161aa82c65d66","message":"formatting","stats":{"files_changed":1,"insertions":0,"deletions":1,"files":["jc/parsers/iostat_s.py"],"file_stats":[{"name":"jc/parsers/iostat_s.py","lines_changed":1}]}},{"commit":"158a15157c7e5dde95dc21766d0696bd82486688","message":"changelog update","stats":{"files_changed":1,"insertions":1,"deletions":0,"files":["CHANGELOG"],"file_stats":[{"name":"CHANGELOG","lines_changed":1}]}},{"commit":"2752e0d66a9ba0b57ac86913fd302ada23c280c0","message":"add iostat streaming parser","stats":{"files_changed":2,"insertions":166,"deletions":0,"files":["jc/cli.py","jc/parsers/iostat_s.py"],"file_stats":[{"name":"jc/cli.py","lines_changed":1},{"name":"jc/parsers/iostat_s.py","lines_changed":165}]}},{"commit":"6c11e912afe3c4d16da9199b5c2fc10461928ac3","message":"update changelog","stats":{"files_changed":1,"insertions":2,"deletions":1,"files":["CHANGELOG"],"file_stats":[{"name":"CHANGELOG","lines_changed":3}]}},{"commit":"43d34461e27e3e4ac5f985786831c170b348c7c5","message":"update docs","stats":{"files_changed":83,"insertions":279,"deletions":81,"files":["README.md","docs/parsers/acpi.md","docs/parsers/airport.md","docs/parsers/airport_s.md","docs/parsers/arp.md","docs/parsers/blkid.md","docs/parsers/cksum.md","docs/parsers/crontab.md","docs/parsers/crontab_u.md","docs/parsers/csv.md","docs/parsers/csv_s.md","docs/parsers/date.md","docs/parsers/df.md","docs/parsers/dig.md","docs/parsers/dir.md","docs/parsers/dmidecode.md","docs/parsers/dpkg_l.md","docs/parsers/du.md","docs/parsers/env.md","docs/parsers/file.md","docs/parsers/finger.md","docs/parsers/free.md","docs/parsers/fstab.md","docs/parsers/group.md","docs/parsers/gshadow.md","docs/parsers/hash.md","docs/parsers/hashsum.md","docs/parsers/hciconfig.md","docs/parsers/history.md","docs/parsers/hosts.md","docs/parsers/id.md","docs/parsers/ifconfig.md","docs/parsers/ini.md","docs/parsers/iostat.md","docs/parsers/iptables.md","docs/parsers/iw_scan.md","docs/parsers/jobs.md","docs/parsers/last.md","docs/parsers/ls.md","docs/parsers/ls_s.md","docs/parsers/lsblk.md","docs/parsers/lsmod.md","docs/parsers/lsof.md","docs/parsers/lsusb.md","docs/parsers/mount.md","docs/parsers/netstat.md","docs/parsers/ntpq.md","docs/parsers/passwd.md","docs/parsers/ping.md","docs/parsers/ping_s.md","docs/parsers/pip_list.md","docs/parsers/pip_show.md","docs/parsers/ps.md","docs/parsers/route.md","docs/parsers/rpm_qi.md","docs/parsers/sfdisk.md","docs/parsers/shadow.md","docs/parsers/ss.md","docs/parsers/stat.md","docs/parsers/sysctl.md","docs/parsers/systemctl.md","docs/parsers/systemctl_lj.md","docs/parsers/systemctl_ls.md","docs/parsers/systemctl_luf.md","docs/parsers/systeminfo.md","docs/parsers/time.md","docs/parsers/timedatectl.md","docs/parsers/tracepath.md","docs/parsers/traceroute.md","docs/parsers/ufw.md","docs/parsers/ufw_appinfo.md","docs/parsers/uname.md","docs/parsers/upower.md","docs/parsers/uptime.md","docs/parsers/vmstat.md","docs/parsers/vmstat_s.md","docs/parsers/w.md","docs/parsers/wc.md","docs/parsers/who.md","docs/parsers/xml.md","docs/parsers/yaml.md","docs/utils.md","man/jc.1"],"file_stats":[{"name":"README.md","lines_changed":1},{"name":"docs/parsers/acpi.md","lines_changed":2},{"name":"docs/parsers/airport.md","lines_changed":2},{"name":"docs/parsers/airport_s.md","lines_changed":2},{"name":"docs/parsers/arp.md","lines_changed":2},{"name":"docs/parsers/blkid.md","lines_changed":2},{"name":"docs/parsers/cksum.md","lines_changed":2},{"name":"docs/parsers/crontab.md","lines_changed":2},{"name":"docs/parsers/crontab_u.md","lines_changed":2},{"name":"docs/parsers/csv.md","lines_changed":2},{"name":"docs/parsers/csv_s.md","lines_changed":2},{"name":"docs/parsers/date.md","lines_changed":2},{"name":"docs/parsers/df.md","lines_changed":2},{"name":"docs/parsers/dig.md","lines_changed":2},{"name":"docs/parsers/dir.md","lines_changed":2},{"name":"docs/parsers/dmidecode.md","lines_changed":2},{"name":"docs/parsers/dpkg_l.md","lines_changed":2},{"name":"docs/parsers/du.md","lines_changed":2},{"name":"docs/parsers/env.md","lines_changed":2},{"name":"docs/parsers/file.md","lines_changed":2},{"name":"docs/parsers/finger.md","lines_changed":2},{"name":"docs/parsers/free.md","lines_changed":2},{"name":"docs/parsers/fstab.md","lines_changed":2},{"name":"docs/parsers/group.md","lines_changed":2},{"name":"docs/parsers/gshadow.md","lines_changed":2},{"name":"docs/parsers/hash.md","lines_changed":2},{"name":"docs/parsers/hashsum.md","lines_changed":2},{"name":"docs/parsers/hciconfig.md","lines_changed":2},{"name":"docs/parsers/history.md","lines_changed":2},{"name":"docs/parsers/hosts.md","lines_changed":2},{"name":"docs/parsers/id.md","lines_changed":2},{"name":"docs/parsers/ifconfig.md","lines_changed":2},{"name":"docs/parsers/ini.md","lines_changed":2},{"name":"docs/parsers/iostat.md","lines_changed":172},{"name":"docs/parsers/iptables.md","lines_changed":2},{"name":"docs/parsers/iw_scan.md","lines_changed":2},{"name":"docs/parsers/jobs.md","lines_changed":2},{"name":"docs/parsers/last.md","lines_changed":2},{"name":"docs/parsers/ls.md","lines_changed":2},{"name":"docs/parsers/ls_s.md","lines_changed":2},{"name":"docs/parsers/lsblk.md","lines_changed":2},{"name":"docs/parsers/lsmod.md","lines_changed":2},{"name":"docs/parsers/lsof.md","lines_changed":2},{"name":"docs/parsers/lsusb.md","lines_changed":2},{"name":"docs/parsers/mount.md","lines_changed":2},{"name":"docs/parsers/netstat.md","lines_changed":2},{"name":"docs/parsers/ntpq.md","lines_changed":2},{"name":"docs/parsers/passwd.md","lines_changed":2},{"name":"docs/parsers/ping.md","lines_changed":2},{"name":"docs/parsers/ping_s.md","lines_changed":2},{"name":"docs/parsers/pip_list.md","lines_changed":2},{"name":"docs/parsers/pip_show.md","lines_changed":2},{"name":"docs/parsers/ps.md","lines_changed":2},{"name":"docs/parsers/route.md","lines_changed":2},{"name":"docs/parsers/rpm_qi.md","lines_changed":2},{"name":"docs/parsers/sfdisk.md","lines_changed":2},{"name":"docs/parsers/shadow.md","lines_changed":2},{"name":"docs/parsers/ss.md","lines_changed":2},{"name":"docs/parsers/stat.md","lines_changed":2},{"name":"docs/parsers/sysctl.md","lines_changed":2},{"name":"docs/parsers/systemctl.md","lines_changed":2},{"name":"docs/parsers/systemctl_lj.md","lines_changed":2},{"name":"docs/parsers/systemctl_ls.md","lines_changed":2},{"name":"docs/parsers/systemctl_luf.md","lines_changed":2},{"name":"docs/parsers/systeminfo.md","lines_changed":2},{"name":"docs/parsers/time.md","lines_changed":2},{"name":"docs/parsers/timedatectl.md","lines_changed":2},{"name":"docs/parsers/tracepath.md","lines_changed":2},{"name":"docs/parsers/traceroute.md","lines_changed":2},{"name":"docs/parsers/ufw.md","lines_changed":2},{"name":"docs/parsers/ufw_appinfo.md","lines_changed":2},{"name":"docs/parsers/uname.md","lines_changed":2},{"name":"docs/parsers/upower.md","lines_changed":2},{"name":"docs/parsers/uptime.md","lines_changed":2},{"name":"docs/parsers/vmstat.md","lines_changed":2},{"name":"docs/parsers/vmstat_s.md","lines_changed":2},{"name":"docs/parsers/w.md","lines_changed":2},{"name":"docs/parsers/wc.md","lines_changed":2},{"name":"docs/parsers/who.md","lines_changed":2},{"name":"docs/parsers/xml.md","lines_changed":2},{"name":"docs/parsers/yaml.md","lines_changed":2},{"name":"docs/utils.md","lines_changed":22},{"name":"man/jc.1","lines_changed":7}]}},{"commit":"4dfdc9b0f65d8c950ed74545d0cc3f95c8abec6c","message":"Merge branch 'dev' of https://github.com/kellyjonbrazil/jc into dev"},{"commit":"e2311cbb03f407414df953c8d1c07d0cf1a549ca","message":"add iostat tests","stats":{"files_changed":21,"insertions":400,"deletions":0,"files":["tests/fixtures/centos-7.7/iostat-1.json","tests/fixtures/centos-7.7/iostat-1.out","tests/fixtures/centos-7.7/iostat-m.json","tests/fixtures/centos-7.7/iostat-m.out","tests/fixtures/centos-7.7/iostat-mx.json","tests/fixtures/centos-7.7/iostat-mx.out","tests/fixtures/centos-7.7/iostat-x.json","tests/fixtures/centos-7.7/iostat-x.out","tests/fixtures/centos-7.7/iostat.json","tests/fixtures/centos-7.7/iostat.out","tests/fixtures/ubuntu-18.04/iostat-1.json","tests/fixtures/ubuntu-18.04/iostat-1.out","tests/fixtures/ubuntu-18.04/iostat-m.json","tests/fixtures/ubuntu-18.04/iostat-m.out","tests/fixtures/ubuntu-18.04/iostat-mx.json","tests/fixtures/ubuntu-18.04/iostat-mx.out","tests/fixtures/ubuntu-18.04/iostat-x.json","tests/fixtures/ubuntu-18.04/iostat-x.out","tests/fixtures/ubuntu-18.04/iostat.json","tests/fixtures/ubuntu-18.04/iostat.out","tests/test_iostat.py"],"file_stats":[{"name":"tests/fixtures/centos-7.7/iostat-1.json","lines_changed":1},{"name":"tests/fixtures/centos-7.7/iostat-1.out","lines_changed":26},{"name":"tests/fixtures/centos-7.7/iostat-m.json","lines_changed":1},{"name":"tests/fixtures/centos-7.7/iostat-m.out","lines_changed":10},{"name":"tests/fixtures/centos-7.7/iostat-mx.json","lines_changed":1},{"name":"tests/fixtures/centos-7.7/iostat-mx.out","lines_changed":9},{"name":"tests/fixtures/centos-7.7/iostat-x.json","lines_changed":1},{"name":"tests/fixtures/centos-7.7/iostat-x.out","lines_changed":10},{"name":"tests/fixtures/centos-7.7/iostat.json","lines_changed":1},{"name":"tests/fixtures/centos-7.7/iostat.out","lines_changed":9},{"name":"tests/fixtures/ubuntu-18.04/iostat-1.json","lines_changed":1},{"name":"tests/fixtures/ubuntu-18.04/iostat-1.out","lines_changed":77},{"name":"tests/fixtures/ubuntu-18.04/iostat-m.json","lines_changed":1},{"name":"tests/fixtures/ubuntu-18.04/iostat-m.out","lines_changed":27},{"name":"tests/fixtures/ubuntu-18.04/iostat-mx.json","lines_changed":1},{"name":"tests/fixtures/ubuntu-18.04/iostat-mx.out","lines_changed":26},{"name":"tests/fixtures/ubuntu-18.04/iostat-x.json","lines_changed":1},{"name":"tests/fixtures/ubuntu-18.04/iostat-x.out","lines_changed":26},{"name":"tests/fixtures/ubuntu-18.04/iostat.json","lines_changed":1},{"name":"tests/fixtures/ubuntu-18.04/iostat.out","lines_changed":27},{"name":"tests/test_iostat.py","lines_changed":143}]}},{"commit":"bf15575e90985cfec5c57dd11dfa2b86d53a41be","message":"fixes for ubunut","stats":{"files_changed":1,"insertions":14,"deletions":7,"files":["jc/parsers/iostat.py"],"file_stats":[{"name":"jc/parsers/iostat.py","lines_changed":21}]}},{"commit":"406336c7185b539b5e00532b58146d5b1b73f259","message":"add iostat example","stats":{"files_changed":1,"insertions":44,"deletions":0,"files":["EXAMPLES.md"],"file_stats":[{"name":"EXAMPLES.md","lines_changed":44}]}},{"commit":"6665ffaeb8107e9db3b917db0663beaf44024533","message":"remove python 3.6 from tests","stats":{"files_changed":1,"insertions":1,"deletions":1,"files":[".github/workflows/pythonapp.yml"],"file_stats":[{"name":".github/workflows/pythonapp.yml","lines_changed":2}]}},{"commit":"dcf552ca0c69aa5f0309a83dc33dee7c5ed81292","message":"add _process and cleanup","stats":{"files_changed":1,"insertions":138,"deletions":47,"files":["jc/parsers/iostat.py"],"file_stats":[{"name":"jc/parsers/iostat.py","lines_changed":185}]}},{"commit":"7a6ebf3c9555dd82df7dc0b71981cdd32ce0061d","message":"add iostat parser","stats":{"files_changed":2,"insertions":171,"deletions":0,"files":["jc/cli.py","jc/parsers/iostat.py"],"file_stats":[{"name":"jc/cli.py","lines_changed":1},{"name":"jc/parsers/iostat.py","lines_changed":170}]}},{"commit":"d2dc4a983c86c538e13e568b908072de4ca0daaf","message":"changelog update","stats":{"files_changed":1,"insertions":3,"deletions":1,"files":["CHANGELOG"],"file_stats":[{"name":"CHANGELOG","lines_changed":4}]}},{"commit":"1168259bc23862f671326d41f5282a3575205214","message":"add doc strings","stats":{"files_changed":1,"insertions":3,"deletions":0,"files":["jc/utils.py"],"file_stats":[{"name":"jc/utils.py","lines_changed":3}]}},{"commit":"e8e4b46021557fbf5776c32dff46de022817fb6b","message":"use jc.utils type checks","stats":{"files_changed":5,"insertions":14,"deletions":19,"files":["jc/parsers/csv_s.py","jc/parsers/foo_s.py","jc/parsers/ls_s.py","jc/parsers/ping_s.py","jc/parsers/vmstat_s.py"],"file_stats":[{"name":"jc/parsers/csv_s.py","lines_changed":5},{"name":"jc/parsers/foo_s.py","lines_changed":7},{"name":"jc/parsers/ls_s.py","lines_changed":7},{"name":"jc/parsers/ping_s.py","lines_changed":7},{"name":"jc/parsers/vmstat_s.py","lines_changed":7}]}},{"commit":"12d2de22821fd8f57f4d412e62f53db3d89d5e30","message":"use jc.utils.input_type_check() and simplify compatibility check","stats":{"files_changed":77,"insertions":181,"deletions":165,"files":["jc/parsers/acpi.py","jc/parsers/airport.py","jc/parsers/airport_s.py","jc/parsers/arp.py","jc/parsers/blkid.py","jc/parsers/cksum.py","jc/parsers/crontab.py","jc/parsers/crontab_u.py","jc/parsers/csv.py","jc/parsers/date.py","jc/parsers/df.py","jc/parsers/dig.py","jc/parsers/dir.py","jc/parsers/dmidecode.py","jc/parsers/dpkg_l.py","jc/parsers/du.py","jc/parsers/env.py","jc/parsers/file.py","jc/parsers/finger.py","jc/parsers/foo.py","jc/parsers/free.py","jc/parsers/fstab.py","jc/parsers/group.py","jc/parsers/gshadow.py","jc/parsers/hash.py","jc/parsers/hashsum.py","jc/parsers/hciconfig.py","jc/parsers/history.py","jc/parsers/hosts.py","jc/parsers/id.py","jc/parsers/ifconfig.py","jc/parsers/ini.py","jc/parsers/iptables.py","jc/parsers/iw_scan.py","jc/parsers/jobs.py","jc/parsers/last.py","jc/parsers/ls.py","jc/parsers/lsblk.py","jc/parsers/lsmod.py","jc/parsers/lsof.py","jc/parsers/lsusb.py","jc/parsers/mount.py","jc/parsers/netstat.py","jc/parsers/ntpq.py","jc/parsers/passwd.py","jc/parsers/ping.py","jc/parsers/pip_list.py","jc/parsers/pip_show.py","jc/parsers/ps.py","jc/parsers/route.py","jc/parsers/rpm_qi.py","jc/parsers/sfdisk.py","jc/parsers/shadow.py","jc/parsers/ss.py","jc/parsers/stat.py","jc/parsers/sysctl.py","jc/parsers/systemctl.py","jc/parsers/systemctl_lj.py","jc/parsers/systemctl_ls.py","jc/parsers/systemctl_luf.py","jc/parsers/systeminfo.py","jc/parsers/time.py","jc/parsers/timedatectl.py","jc/parsers/tracepath.py","jc/parsers/traceroute.py","jc/parsers/ufw.py","jc/parsers/ufw_appinfo.py","jc/parsers/uname.py","jc/parsers/upower.py","jc/parsers/uptime.py","jc/parsers/vmstat.py","jc/parsers/w.py","jc/parsers/wc.py","jc/parsers/who.py","jc/parsers/xml.py","jc/parsers/yaml.py","jc/utils.py"],"file_stats":[{"name":"jc/parsers/acpi.py","lines_changed":4},{"name":"jc/parsers/airport.py","lines_changed":4},{"name":"jc/parsers/airport_s.py","lines_changed":4},{"name":"jc/parsers/arp.py","lines_changed":4},{"name":"jc/parsers/blkid.py","lines_changed":4},{"name":"jc/parsers/cksum.py","lines_changed":4},{"name":"jc/parsers/crontab.py","lines_changed":4},{"name":"jc/parsers/crontab_u.py","lines_changed":4},{"name":"jc/parsers/csv.py","lines_changed":4},{"name":"jc/parsers/date.py","lines_changed":4},{"name":"jc/parsers/df.py","lines_changed":5},{"name":"jc/parsers/dig.py","lines_changed":5},{"name":"jc/parsers/dir.py","lines_changed":4},{"name":"jc/parsers/dmidecode.py","lines_changed":4},{"name":"jc/parsers/dpkg_l.py","lines_changed":4},{"name":"jc/parsers/du.py","lines_changed":4},{"name":"jc/parsers/env.py","lines_changed":4},{"name":"jc/parsers/file.py","lines_changed":4},{"name":"jc/parsers/finger.py","lines_changed":4},{"name":"jc/parsers/foo.py","lines_changed":4},{"name":"jc/parsers/free.py","lines_changed":4},{"name":"jc/parsers/fstab.py","lines_changed":4},{"name":"jc/parsers/group.py","lines_changed":4},{"name":"jc/parsers/gshadow.py","lines_changed":4},{"name":"jc/parsers/hash.py","lines_changed":4},{"name":"jc/parsers/hashsum.py","lines_changed":4},{"name":"jc/parsers/hciconfig.py","lines_changed":4},{"name":"jc/parsers/history.py","lines_changed":4},{"name":"jc/parsers/hosts.py","lines_changed":4},{"name":"jc/parsers/id.py","lines_changed":4},{"name":"jc/parsers/ifconfig.py","lines_changed":4},{"name":"jc/parsers/ini.py","lines_changed":4},{"name":"jc/parsers/iptables.py","lines_changed":4},{"name":"jc/parsers/iw_scan.py","lines_changed":4},{"name":"jc/parsers/jobs.py","lines_changed":4},{"name":"jc/parsers/last.py","lines_changed":4},{"name":"jc/parsers/ls.py","lines_changed":4},{"name":"jc/parsers/lsblk.py","lines_changed":4},{"name":"jc/parsers/lsmod.py","lines_changed":4},{"name":"jc/parsers/lsof.py","lines_changed":4},{"name":"jc/parsers/lsusb.py","lines_changed":4},{"name":"jc/parsers/mount.py","lines_changed":4},{"name":"jc/parsers/netstat.py","lines_changed":4},{"name":"jc/parsers/ntpq.py","lines_changed":4},{"name":"jc/parsers/passwd.py","lines_changed":4},{"name":"jc/parsers/ping.py","lines_changed":4},{"name":"jc/parsers/pip_list.py","lines_changed":4},{"name":"jc/parsers/pip_show.py","lines_changed":4},{"name":"jc/parsers/ps.py","lines_changed":4},{"name":"jc/parsers/route.py","lines_changed":4},{"name":"jc/parsers/rpm_qi.py","lines_changed":4},{"name":"jc/parsers/sfdisk.py","lines_changed":4},{"name":"jc/parsers/shadow.py","lines_changed":4},{"name":"jc/parsers/ss.py","lines_changed":4},{"name":"jc/parsers/stat.py","lines_changed":4},{"name":"jc/parsers/sysctl.py","lines_changed":4},{"name":"jc/parsers/systemctl.py","lines_changed":4},{"name":"jc/parsers/systemctl_lj.py","lines_changed":4},{"name":"jc/parsers/systemctl_ls.py","lines_changed":4},{"name":"jc/parsers/systemctl_luf.py","lines_changed":4},{"name":"jc/parsers/systeminfo.py","lines_changed":4},{"name":"jc/parsers/time.py","lines_changed":4},{"name":"jc/parsers/timedatectl.py","lines_changed":4},{"name":"jc/parsers/tracepath.py","lines_changed":4},{"name":"jc/parsers/traceroute.py","lines_changed":4},{"name":"jc/parsers/ufw.py","lines_changed":4},{"name":"jc/parsers/ufw_appinfo.py","lines_changed":4},{"name":"jc/parsers/uname.py","lines_changed":4},{"name":"jc/parsers/upower.py","lines_changed":4},{"name":"jc/parsers/uptime.py","lines_changed":4},{"name":"jc/parsers/vmstat.py","lines_changed":4},{"name":"jc/parsers/w.py","lines_changed":4},{"name":"jc/parsers/wc.py","lines_changed":4},{"name":"jc/parsers/who.py","lines_changed":4},{"name":"jc/parsers/xml.py","lines_changed":4},{"name":"jc/parsers/yaml.py","lines_changed":4},{"name":"jc/utils.py","lines_changed":40}]}},{"commit":"0e2fe401e1c49a9f947d7d17b72cfc4e90787f47","message":"version bump","stats":{"files_changed":3,"insertions":3,"deletions":3,"files":["jc/parsers/ls_s.py","jc/parsers/ping_s.py","jc/parsers/vmstat_s.py"],"file_stats":[{"name":"jc/parsers/ls_s.py","lines_changed":2},{"name":"jc/parsers/ping_s.py","lines_changed":2},{"name":"jc/parsers/vmstat_s.py","lines_changed":2}]}},{"commit":"14247adb0ae007924ca551a706eb0cfdbae97a41","message":"add input type checks","stats":{"files_changed":2,"insertions":5,"deletions":4,"files":["jc/parsers/csv_s.py","tests/test_csv_s.py"],"file_stats":[{"name":"jc/parsers/csv_s.py","lines_changed":7},{"name":"tests/test_csv_s.py","lines_changed":2}]}},{"commit":"3a9f0934c41c85ea7fa87165b9559f08814645cd","message":"add input type checks","stats":{"files_changed":2,"insertions":5,"deletions":3,"files":["jc/parsers/ls_s.py","tests/test_ls_s.py"],"file_stats":[{"name":"jc/parsers/ls_s.py","lines_changed":6},{"name":"tests/test_ls_s.py","lines_changed":2}]}},{"commit":"caf0a5c8713bf0d72951a2c6fd5a2c62c9eb59d3","message":"add input type checking","stats":{"files_changed":2,"insertions":7,"deletions":4,"files":["jc/parsers/vmstat_s.py","tests/test_vmstat_s.py"],"file_stats":[{"name":"jc/parsers/vmstat_s.py","lines_changed":9},{"name":"tests/test_vmstat_s.py","lines_changed":2}]}},{"commit":"cfb58b1cf3e3028f8e03fdd93f0165cf8d230e1e","message":"add input type checks","stats":{"files_changed":1,"insertions":5,"deletions":3,"files":["jc/parsers/foo_s.py"],"file_stats":[{"name":"jc/parsers/foo_s.py","lines_changed":8}]}},{"commit":"975cf195cc02774f50460ca479d9ebb7b73c7870","message":"formatting","stats":{"files_changed":1,"insertions":0,"deletions":1,"files":["jc/parsers/ping_s.py"],"file_stats":[{"name":"jc/parsers/ping_s.py","lines_changed":1}]}},{"commit":"8a46a259a36efc55bb0b2141acb9dd5ae52b7725","message":"add input type checks","stats":{"files_changed":2,"insertions":6,"deletions":4,"files":["jc/parsers/ping_s.py","tests/test_ping_s.py"],"file_stats":[{"name":"jc/parsers/ping_s.py","lines_changed":8},{"name":"tests/test_ping_s.py","lines_changed":2}]}},{"commit":"e395142e599aa78b4a7ec80dcc3f8ccf279f97b1","message":"version bump","stats":{"files_changed":3,"insertions":5,"deletions":2,"files":["CHANGELOG","jc/__init__.py","setup.py"],"file_stats":[{"name":"CHANGELOG","lines_changed":3},{"name":"jc/__init__.py","lines_changed":2},{"name":"setup.py","lines_changed":2}]}},{"commit":"caaeaf0d67cf44f8d2651cc53a7528d3ef0c74d3","message":"add 'str' type check on input","stats":{"files_changed":76,"insertions":227,"deletions":227,"files":["jc/parsers/acpi.py","jc/parsers/airport.py","jc/parsers/airport_s.py","jc/parsers/arp.py","jc/parsers/blkid.py","jc/parsers/cksum.py","jc/parsers/crontab.py","jc/parsers/crontab_u.py","jc/parsers/csv.py","jc/parsers/date.py","jc/parsers/df.py","jc/parsers/dig.py","jc/parsers/dir.py","jc/parsers/dmidecode.py","jc/parsers/dpkg_l.py","jc/parsers/du.py","jc/parsers/env.py","jc/parsers/file.py","jc/parsers/finger.py","jc/parsers/foo.py","jc/parsers/free.py","jc/parsers/fstab.py","jc/parsers/group.py","jc/parsers/gshadow.py","jc/parsers/hash.py","jc/parsers/hashsum.py","jc/parsers/hciconfig.py","jc/parsers/history.py","jc/parsers/hosts.py","jc/parsers/id.py","jc/parsers/ifconfig.py","jc/parsers/ini.py","jc/parsers/iptables.py","jc/parsers/iw_scan.py","jc/parsers/jobs.py","jc/parsers/last.py","jc/parsers/ls.py","jc/parsers/lsblk.py","jc/parsers/lsmod.py","jc/parsers/lsof.py","jc/parsers/lsusb.py","jc/parsers/mount.py","jc/parsers/netstat.py","jc/parsers/ntpq.py","jc/parsers/passwd.py","jc/parsers/ping.py","jc/parsers/pip_list.py","jc/parsers/pip_show.py","jc/parsers/ps.py","jc/parsers/route.py","jc/parsers/rpm_qi.py","jc/parsers/sfdisk.py","jc/parsers/shadow.py","jc/parsers/ss.py","jc/parsers/stat.py","jc/parsers/sysctl.py","jc/parsers/systemctl.py","jc/parsers/systemctl_lj.py","jc/parsers/systemctl_ls.py","jc/parsers/systemctl_luf.py","jc/parsers/systeminfo.py","jc/parsers/time.py","jc/parsers/timedatectl.py","jc/parsers/tracepath.py","jc/parsers/traceroute.py","jc/parsers/ufw.py","jc/parsers/ufw_appinfo.py","jc/parsers/uname.py","jc/parsers/upower.py","jc/parsers/uptime.py","jc/parsers/vmstat.py","jc/parsers/w.py","jc/parsers/wc.py","jc/parsers/who.py","jc/parsers/xml.py","jc/parsers/yaml.py"],"file_stats":[{"name":"jc/parsers/acpi.py","lines_changed":6},{"name":"jc/parsers/airport.py","lines_changed":6},{"name":"jc/parsers/airport_s.py","lines_changed":6},{"name":"jc/parsers/arp.py","lines_changed":6},{"name":"jc/parsers/blkid.py","lines_changed":6},{"name":"jc/parsers/cksum.py","lines_changed":6},{"name":"jc/parsers/crontab.py","lines_changed":6},{"name":"jc/parsers/crontab_u.py","lines_changed":6},{"name":"jc/parsers/csv.py","lines_changed":6},{"name":"jc/parsers/date.py","lines_changed":6},{"name":"jc/parsers/df.py","lines_changed":6},{"name":"jc/parsers/dig.py","lines_changed":6},{"name":"jc/parsers/dir.py","lines_changed":6},{"name":"jc/parsers/dmidecode.py","lines_changed":6},{"name":"jc/parsers/dpkg_l.py","lines_changed":6},{"name":"jc/parsers/du.py","lines_changed":6},{"name":"jc/parsers/env.py","lines_changed":6},{"name":"jc/parsers/file.py","lines_changed":6},{"name":"jc/parsers/finger.py","lines_changed":6},{"name":"jc/parsers/foo.py","lines_changed":4},{"name":"jc/parsers/free.py","lines_changed":6},{"name":"jc/parsers/fstab.py","lines_changed":6},{"name":"jc/parsers/group.py","lines_changed":6},{"name":"jc/parsers/gshadow.py","lines_changed":6},{"name":"jc/parsers/hash.py","lines_changed":6},{"name":"jc/parsers/hashsum.py","lines_changed":6},{"name":"jc/parsers/hciconfig.py","lines_changed":6},{"name":"jc/parsers/history.py","lines_changed":6},{"name":"jc/parsers/hosts.py","lines_changed":6},{"name":"jc/parsers/id.py","lines_changed":6},{"name":"jc/parsers/ifconfig.py","lines_changed":6},{"name":"jc/parsers/ini.py","lines_changed":6},{"name":"jc/parsers/iptables.py","lines_changed":6},{"name":"jc/parsers/iw_scan.py","lines_changed":6},{"name":"jc/parsers/jobs.py","lines_changed":6},{"name":"jc/parsers/last.py","lines_changed":6},{"name":"jc/parsers/ls.py","lines_changed":6},{"name":"jc/parsers/lsblk.py","lines_changed":6},{"name":"jc/parsers/lsmod.py","lines_changed":6},{"name":"jc/parsers/lsof.py","lines_changed":6},{"name":"jc/parsers/lsusb.py","lines_changed":6},{"name":"jc/parsers/mount.py","lines_changed":6},{"name":"jc/parsers/netstat.py","lines_changed":6},{"name":"jc/parsers/ntpq.py","lines_changed":6},{"name":"jc/parsers/passwd.py","lines_changed":6},{"name":"jc/parsers/ping.py","lines_changed":6},{"name":"jc/parsers/pip_list.py","lines_changed":6},{"name":"jc/parsers/pip_show.py","lines_changed":6},{"name":"jc/parsers/ps.py","lines_changed":6},{"name":"jc/parsers/route.py","lines_changed":6},{"name":"jc/parsers/rpm_qi.py","lines_changed":6},{"name":"jc/parsers/sfdisk.py","lines_changed":6},{"name":"jc/parsers/shadow.py","lines_changed":6},{"name":"jc/parsers/ss.py","lines_changed":6},{"name":"jc/parsers/stat.py","lines_changed":6},{"name":"jc/parsers/sysctl.py","lines_changed":6},{"name":"jc/parsers/systemctl.py","lines_changed":6},{"name":"jc/parsers/systemctl_lj.py","lines_changed":6},{"name":"jc/parsers/systemctl_ls.py","lines_changed":6},{"name":"jc/parsers/systemctl_luf.py","lines_changed":6},{"name":"jc/parsers/systeminfo.py","lines_changed":6},{"name":"jc/parsers/time.py","lines_changed":6},{"name":"jc/parsers/timedatectl.py","lines_changed":6},{"name":"jc/parsers/tracepath.py","lines_changed":6},{"name":"jc/parsers/traceroute.py","lines_changed":6},{"name":"jc/parsers/ufw.py","lines_changed":6},{"name":"jc/parsers/ufw_appinfo.py","lines_changed":6},{"name":"jc/parsers/uname.py","lines_changed":6},{"name":"jc/parsers/upower.py","lines_changed":6},{"name":"jc/parsers/uptime.py","lines_changed":6},{"name":"jc/parsers/vmstat.py","lines_changed":6},{"name":"jc/parsers/w.py","lines_changed":6},{"name":"jc/parsers/wc.py","lines_changed":6},{"name":"jc/parsers/who.py","lines_changed":6},{"name":"jc/parsers/xml.py","lines_changed":6},{"name":"jc/parsers/yaml.py","lines_changed":6}]}},{"commit":"21e69a7cbf62240238f6fb78e874dda6ce2e922a","message":"ignore _config.yml","stats":{"files_changed":1,"insertions":1,"deletions":0,"files":[".gitignore"],"file_stats":[{"name":".gitignore","lines_changed":1}]}},{"commit":"603964935b58e02cf0614cf67ffacc6d94755e05","message":"remove trailing whitespace","stats":{"files_changed":1,"insertions":2,"deletions":2,"files":["CHANGELOG"],"file_stats":[{"name":"CHANGELOG","lines_changed":4}]}},{"commit":"47eb83ae55b9892716fff712bd2be21b6191b552","message":"add .vscode","stats":{"files_changed":1,"insertions":1,"deletions":0,"files":[".gitignore"],"file_stats":[{"name":".gitignore","lines_changed":1}]}},{"commit":"fc0ce6c95923ab124961e695a26c0b68dd0f359f","message":"add streaming parser to custom parsers info","stats":{"files_changed":2,"insertions":2,"deletions":2,"files":["README.md","templates/readme_template"],"file_stats":[{"name":"README.md","lines_changed":2},{"name":"templates/readme_template","lines_changed":2}]}},{"commit":"077a29fb4eedcfccb026498c5c3a64b7b7601363","message":"add _jc_meta field info","stats":{"files_changed":2,"insertions":14,"deletions":2,"files":["docs/parsers/csv_s.md","jc/parsers/csv_s.py"],"file_stats":[{"name":"docs/parsers/csv_s.md","lines_changed":8},{"name":"jc/parsers/csv_s.py","lines_changed":8}]}},{"commit":"8568d0d328706a7a5b1476452e078d8cbe7b7391","message":"fix csv_s documentation","stats":{"files_changed":3,"insertions":7,"deletions":3,"files":["docs/parsers/csv_s.md","jc/parsers/csv_s.py","man/jc.1"],"file_stats":[{"name":"docs/parsers/csv_s.md","lines_changed":4},{"name":"jc/parsers/csv_s.py","lines_changed":4},{"name":"man/jc.1","lines_changed":2}]}},{"commit":"597d39c28ea0c0fe3b072413e9d91ab5e27b62bd","message":"Merge pull request #180 from kellyjonbrazil/dev"},{"commit":"eb888dcbbcf83c9197bd59aab72f65ea6eb622ba","message":"version bump","stats":{"files_changed":3,"insertions":3,"deletions":3,"files":["jc/__init__.py","man/jc.1","setup.py"],"file_stats":[{"name":"jc/__init__.py","lines_changed":2},{"name":"man/jc.1","lines_changed":2},{"name":"setup.py","lines_changed":2}]}},{"commit":"d1b9ac0841b15ee15690c4066453a322618320ed","message":"doc update","stats":{"files_changed":4,"insertions":4,"deletions":4,"files":["docs/parsers/df.md","docs/parsers/netstat.md","docs/parsers/ping.md","man/jc.1"],"file_stats":[{"name":"docs/parsers/df.md","lines_changed":2},{"name":"docs/parsers/netstat.md","lines_changed":2},{"name":"docs/parsers/ping.md","lines_changed":2},{"name":"man/jc.1","lines_changed":2}]}},{"commit":"89a6d9c5c39b74f1b040f410659bfd7ae1a902d1","message":"add key-check to restore previous behavior even with non-df data","stats":{"files_changed":1,"insertions":3,"deletions":2,"files":["jc/parsers/df.py"],"file_stats":[{"name":"jc/parsers/df.py","lines_changed":5}]}},{"commit":"85d983761637129cb85abfb0bbdde7c507061cd2","message":"add df info","stats":{"files_changed":1,"insertions":2,"deletions":1,"files":["CHANGELOG"],"file_stats":[{"name":"CHANGELOG","lines_changed":3}]}},{"commit":"cd7731484d826d84d835ecd460d746e78cadc5fc","message":"fix for cases where the Filesystem data overflows the column length (happens on older versions of df)","stats":{"files_changed":4,"insertions":62,"deletions":2,"files":["jc/parsers/df.py","tests/fixtures/generic/df-long-filesystem.json","tests/fixtures/generic/df-long-filesystem.out","tests/test_df.py"],"file_stats":[{"name":"jc/parsers/df.py","lines_changed":47},{"name":"tests/fixtures/generic/df-long-filesystem.json","lines_changed":1},{"name":"tests/fixtures/generic/df-long-filesystem.out","lines_changed":4},{"name":"tests/test_df.py","lines_changed":12}]}},{"commit":"086da16b1743c16a5ccdd102f889fb31f99e3caa","message":"version bump","stats":{"files_changed":1,"insertions":1,"deletions":1,"files":["jc/parsers/netstat.py"],"file_stats":[{"name":"jc/parsers/netstat.py","lines_changed":2}]}},{"commit":"20830528f04a5ecbe78420d8008249b089667767","message":"add test for older netstat version fix","stats":{"files_changed":4,"insertions":28,"deletions":0,"files":["CHANGELOG","tests/fixtures/generic/netstat-old.json","tests/fixtures/generic/netstat-old.out","tests/test_netstat.py"],"file_stats":[{"name":"CHANGELOG","lines_changed":1},{"name":"tests/fixtures/generic/netstat-old.json","lines_changed":1},{"name":"tests/fixtures/generic/netstat-old.out","lines_changed":14},{"name":"tests/test_netstat.py","lines_changed":12}]}},{"commit":"83371edd8fe3d23dfa92fc707604086522c85ab9","message":"add space before inode to compensate for removed dash","stats":{"files_changed":1,"insertions":1,"deletions":1,"files":["jc/parsers/netstat_linux.py"],"file_stats":[{"name":"jc/parsers/netstat_linux.py","lines_changed":2}]}},{"commit":"364a81decc16742e3caa070d90b1d605d96fe2c1","message":"version bump","stats":{"files_changed":1,"insertions":1,"deletions":1,"files":["jc/parsers/ping.py"],"file_stats":[{"name":"jc/parsers/ping.py","lines_changed":2}]}},{"commit":"ef09592ad3e5c9a77c1bdebe8f876fc4dde54834","message":"update for 1.17.2","stats":{"files_changed":1,"insertions":3,"deletions":0,"files":["CHANGELOG"],"file_stats":[{"name":"CHANGELOG","lines_changed":3}]}},{"commit":"4a86e109ccb254d5195b782f84f3967c96ef726c","message":"Merge pull request #179 from shaikustin/ping-alpine-linux"},{"commit":"7fa5391b6613e62689c624041e03f9750c9c7972","message":"change alpine ping6 to ping","stats":{"files_changed":1,"insertions":1,"deletions":1,"files":["tests/test_ping.py"],"file_stats":[{"name":"tests/test_ping.py","lines_changed":2}]}},{"commit":"9b53ba5714819ff760f2d4546f5d2ee4d521c080","message":"support alpine linux ping","stats":{"files_changed":6,"insertions":45,"deletions":1,"files":["jc/parsers/ping.py",".../fixtures/alpine-linux-3.13/ping-hostname.json","tests/fixtures/alpine-linux-3.13/ping-hostname.out","tests/fixtures/alpine-linux-3.13/ping-ip.json","tests/fixtures/alpine-linux-3.13/ping-ip.out","tests/test_ping.py"],"file_stats":[{"name":"jc/parsers/ping.py","lines_changed":2},{"name":".../fixtures/alpine-linux-3.13/ping-hostname.json","lines_changed":1},{"name":"tests/fixtures/alpine-linux-3.13/ping-hostname.out","lines_changed":9},{"name":"tests/fixtures/alpine-linux-3.13/ping-ip.json","lines_changed":1},{"name":"tests/fixtures/alpine-linux-3.13/ping-ip.out","lines_changed":6},{"name":"tests/test_ping.py","lines_changed":27}]}},{"commit":"b59e38cfd2c8a7f5868e05d5562557b1c27e5e56","message":"Merge pull request #176 from kellyjonbrazil/dev"},{"commit":"5ba22dae597b9d154ca0a82f71cfbd8d8a6325db","message":"add JSON lines info","stats":{"files_changed":2,"insertions":4,"deletions":0,"files":["docs/parsers/csv_s.md","jc/parsers/csv_s.py"],"file_stats":[{"name":"docs/parsers/csv_s.md","lines_changed":2},{"name":"jc/parsers/csv_s.py","lines_changed":2}]}},{"commit":"4232e523acc523e510b4881d2a57a95b88ec8c8b","message":"Merge branch 'master' into dev"},{"commit":"bee80b35d2b8c15e6233f2798e9c02a11e9e1e9e","message":"update for version bump","stats":{"files_changed":3,"insertions":6,"deletions":6,"files":["CHANGELOG","docs/parsers/csv_s.md","man/jc.1"],"file_stats":[{"name":"CHANGELOG","lines_changed":2},{"name":"docs/parsers/csv_s.md","lines_changed":8},{"name":"man/jc.1","lines_changed":2}]}},{"commit":"c32395f6950d6294770ee93e8bf4d79c7d275ac3","message":"linting","stats":{"files_changed":1,"insertions":1,"deletions":1,"files":["tests/test_utils.py"],"file_stats":[{"name":"tests/test_utils.py","lines_changed":2}]}},{"commit":"735c5e1078cc27b5cba03b8ebbae15aeca6b8fbd","message":"update comments for ParseError test: https://bugs.python.org/issue45617","stats":{"files_changed":1,"insertions":3,"deletions":2,"files":["tests/test_csv_s.py"],"file_stats":[{"name":"tests/test_csv_s.py","lines_changed":5}]}},{"commit":"d09c94b292ca3beec92a00f8a51b7259dd30a1e5","message":"add python 3.10 testing info","stats":{"files_changed":1,"insertions":2,"deletions":1,"files":["CHANGELOG"],"file_stats":[{"name":"CHANGELOG","lines_changed":3}]}},{"commit":"4d04866f48f72b9ea0d213dc1533729d3b68a503","message":"add python bug https://bugs.python.org/issue45617 info","stats":{"files_changed":1,"insertions":1,"deletions":0,"files":["jc/parsers/csv_s.py"],"file_stats":[{"name":"jc/parsers/csv_s.py","lines_changed":1}]}},{"commit":"a2d90f4dfcdc2cb00c6c0fa957493c95a21e256b","message":"force test","stats":{"files_changed":1,"insertions":1,"deletions":1,"files":["tests/test_csv_s.py"],"file_stats":[{"name":"tests/test_csv_s.py","lines_changed":2}]}},{"commit":"93a5002c8b530bd6f5f81e5d8595cde1f836ae41","message":"fix 3.10.0 version number","stats":{"files_changed":1,"insertions":1,"deletions":1,"files":[".github/workflows/pythonapp.yml"],"file_stats":[{"name":".github/workflows/pythonapp.yml","lines_changed":2}]}},{"commit":"23bf5227a4c39ea017e55fc21150331e1af6fdb7","message":"Merge branch 'dev' of https://github.com/kellyjonbrazil/jc into dev"},{"commit":"77c96fa2a96148221bde7d2274e0dfb5386a166f","message":"try tests on python 3.10","stats":{"files_changed":1,"insertions":1,"deletions":2,"files":["tests/test_csv_s.py"],"file_stats":[{"name":"tests/test_csv_s.py","lines_changed":3}]}},{"commit":"3f5a1f015e9c0807e227b9f7300592e25502e014","message":"add python 3.10","stats":{"files_changed":1,"insertions":1,"deletions":1,"files":[".github/workflows/pythonapp.yml"],"file_stats":[{"name":".github/workflows/pythonapp.yml","lines_changed":2}]}},{"commit":"b280c4fc18e60a85ab212b09aa5bf3a05a0eceff","message":"add ParseError test to streaming csv parser","stats":{"files_changed":2,"insertions":11,"deletions":19,"files":[".../fixtures/generic/csv-insurance-streaming.json","tests/test_csv_s.py"],"file_stats":[{"name":".../fixtures/generic/csv-insurance-streaming.json","lines_changed":1},{"name":"tests/test_csv_s.py","lines_changed":29}]}},{"commit":"3ab9b43a2eebf535be98c94810ac474bf32ec515","message":"raise ParseError on newline bug","stats":{"files_changed":1,"insertions":7,"deletions":7,"files":["jc/parsers/csv_s.py"],"file_stats":[{"name":"jc/parsers/csv_s.py","lines_changed":14}]}},{"commit":"46f568414a5c8d2f135486e86d0ada48cfcefeb0","message":"change streaming parser test names","stats":{"files_changed":3,"insertions":96,"deletions":89,"files":["tests/test_ls_s.py","tests/test_ping_s.py","tests/test_vmstat_s.py"],"file_stats":[{"name":"tests/test_ls_s.py","lines_changed":26},{"name":"tests/test_ping_s.py","lines_changed":138},{"name":"tests/test_vmstat_s.py","lines_changed":21}]}},{"commit":"cba2fd299fff09a551b780e064a6e22bdf7e539a","message":"add tests","stats":{"files_changed":9,"insertions":75,"deletions":61,"files":[".../generic/csv-10k-sales-records-streaming.json","tests/fixtures/generic/csv-deniro-streaming.json","tests/fixtures/generic/csv-example-streaming.json","tests/fixtures/generic/csv-flyrna-streaming.json","tests/fixtures/generic/csv-flyrna2-streaming.json",".../fixtures/generic/csv-homes-pipe-streaming.json","tests/fixtures/generic/csv-homes-streaming.json",".../fixtures/generic/csv-insurance-streaming.json","tests/test_csv_s.py"],"file_stats":[{"name":".../generic/csv-10k-sales-records-streaming.json","lines_changed":1},{"name":"tests/fixtures/generic/csv-deniro-streaming.json","lines_changed":1},{"name":"tests/fixtures/generic/csv-example-streaming.json","lines_changed":1},{"name":"tests/fixtures/generic/csv-flyrna-streaming.json","lines_changed":1},{"name":"tests/fixtures/generic/csv-flyrna2-streaming.json","lines_changed":1},{"name":".../fixtures/generic/csv-homes-pipe-streaming.json","lines_changed":1},{"name":"tests/fixtures/generic/csv-homes-streaming.json","lines_changed":1},{"name":".../fixtures/generic/csv-insurance-streaming.json","lines_changed":1},{"name":"tests/test_csv_s.py","lines_changed":128}]}},{"commit":"1e6e44f656f1bbb277eb38fb485f7b48e3b9e40b","message":"fix for piping data with non-platform newlines (e.g. windows csv files on unix)","stats":{"files_changed":1,"insertions":5,"deletions":0,"files":["jc/parsers/csv_s.py"],"file_stats":[{"name":"jc/parsers/csv_s.py","lines_changed":5}]}},{"commit":"acac0399946d9781193e9350dd7109f1dd3999fe","message":"working tests","stats":{"files_changed":3,"insertions":149,"deletions":0,"files":["tests/fixtures/generic/csv-biostats-streaming.json","tests/fixtures/generic/csv-cities-streaming.json","tests/test_csv_s.py"],"file_stats":[{"name":"tests/fixtures/generic/csv-biostats-streaming.json","lines_changed":1},{"name":"tests/fixtures/generic/csv-cities-streaming.json","lines_changed":1},{"name":"tests/test_csv_s.py","lines_changed":147}]}},{"commit":"50a3b340164b3139f04f67a2bee16e5343c8a2da","message":"optimizations and use iter() so we can exhaust data coming from list objects","stats":{"files_changed":1,"insertions":5,"deletions":8,"files":["jc/parsers/csv_s.py"],"file_stats":[{"name":"jc/parsers/csv_s.py","lines_changed":13}]}},{"commit":"b45396070cf28fa36ecb44acd7be3e3bb81a712d","message":"update comment","stats":{"files_changed":1,"insertions":1,"deletions":1,"files":["tests/test_vmstat_s.py"],"file_stats":[{"name":"tests/test_vmstat_s.py","lines_changed":2}]}},{"commit":"218b9aec8ac397e26e6cd4ff407f3d10ef88ea9b","message":"doc update for streaming CSV parser","stats":{"files_changed":4,"insertions":87,"deletions":48,"files":["README.md","docs/parsers/csv_s.md","jc/parsers/csv_s.py","man/jc.1"],"file_stats":[{"name":"README.md","lines_changed":1},{"name":"docs/parsers/csv_s.md","lines_changed":75},{"name":"jc/parsers/csv_s.py","lines_changed":52},{"name":"man/jc.1","lines_changed":7}]}},{"commit":"2b887debc647bd533040e392465967d12869cb02","message":"add csv streaming parser","stats":{"files_changed":4,"insertions":10172,"deletions":1,"files":["CHANGELOG","jc/cli.py","jc/parsers/csv_s.py","tests/fixtures/generic/csv-10k-sales-records.csv"],"file_stats":[{"name":"CHANGELOG","lines_changed":3},{"name":"jc/cli.py","lines_changed":1},{"name":"jc/parsers/csv_s.py","lines_changed":168},{"name":"tests/fixtures/generic/csv-10k-sales-records.csv","lines_changed":10001}]}},{"commit":"0313e3f8ca0e22e1575192d765d5afedf48e94df","message":"linting","stats":{"files_changed":1,"insertions":9,"deletions":6,"files":["jc/parsers/lsusb.py"],"file_stats":[{"name":"jc/parsers/lsusb.py","lines_changed":15}]}},{"commit":"1669e6e20c3af3d28968558b76d0901a56775ac0","message":"linting","stats":{"files_changed":1,"insertions":23,"deletions":28,"files":["jc/parsers/lsusb.py"],"file_stats":[{"name":"jc/parsers/lsusb.py","lines_changed":51}]}},{"commit":"ef6de75dda90c7221d53e0e0a942f0cac2247354","message":"add vmstat timestamp tests to utils","stats":{"files_changed":1,"insertions":4,"deletions":0,"files":["tests/test_utils.py"],"file_stats":[{"name":"tests/test_utils.py","lines_changed":4}]}},{"commit":"a6bcec425a3f44ba3c7cd06b5ebaf522b66df109","message":"comment update","stats":{"files_changed":1,"insertions":1,"deletions":1,"files":["jc/parsers/lsusb.py"],"file_stats":[{"name":"jc/parsers/lsusb.py","lines_changed":2}]}},{"commit":"596ad9a64d002ced212b08512126e52707fe73d2","message":"update comment","stats":{"files_changed":1,"insertions":1,"deletions":1,"files":["jc/parsers/lsusb.py"],"file_stats":[{"name":"jc/parsers/lsusb.py","lines_changed":2}]}},{"commit":"7a91c93319f75c37ba6bf268d8270947f0bf8b22","message":"add lsusb","stats":{"files_changed":1,"insertions":122,"deletions":0,"files":["EXAMPLES.md"],"file_stats":[{"name":"EXAMPLES.md","lines_changed":122}]}},{"commit":"b5f7b35f89197879a9f13bd8fa5d2a0c77cc059a","message":"comment update","stats":{"files_changed":1,"insertions":1,"deletions":1,"files":["jc/parsers/lsusb.py"],"file_stats":[{"name":"jc/parsers/lsusb.py","lines_changed":2}]}},{"commit":"2f47fb7f14c4ff0e1c835897d94ee81d14590aba","message":"fix ParseError tests","stats":{"files_changed":1,"insertions":3,"deletions":2,"files":["tests/test_uname.py"],"file_stats":[{"name":"tests/test_uname.py","lines_changed":5}]}},{"commit":"1b214c403657a50689f2a04892ce836dea669a1d","message":"raise ParseError if -t option is detected. add test","stats":{"files_changed":3,"insertions":30,"deletions":0,"files":["jc/parsers/lsusb.py","tests/fixtures/generic/lsusb-t.out","tests/test_lsusb.py"],"file_stats":[{"name":"jc/parsers/lsusb.py","lines_changed":5},{"name":"tests/fixtures/generic/lsusb-t.out","lines_changed":15},{"name":"tests/test_lsusb.py","lines_changed":10}]}},{"commit":"8f94f8acc6bb53bbb19ba150551c7df2183a8863","message":"add tests and update docs","stats":{"files_changed":11,"insertions":384,"deletions":3,"files":["README.md","docs/parsers/file.md","docs/parsers/lsusb.md","docs/parsers/uname.md","man/jc.1","tests/fixtures/centos-7.7/lsusb-v-single.json","tests/fixtures/centos-7.7/lsusb-v.json","tests/fixtures/centos-7.7/lsusb.json","tests/fixtures/generic/lsusb-test-attributes.json","tests/fixtures/generic/lsusb-test-attributes2.json","tests/test_lsusb.py"],"file_stats":[{"name":"README.md","lines_changed":1},{"name":"docs/parsers/file.md","lines_changed":2},{"name":"docs/parsers/lsusb.md","lines_changed":288},{"name":"docs/parsers/uname.md","lines_changed":2},{"name":"man/jc.1","lines_changed":7},{"name":"tests/fixtures/centos-7.7/lsusb-v-single.json","lines_changed":1},{"name":"tests/fixtures/centos-7.7/lsusb-v.json","lines_changed":1},{"name":"tests/fixtures/centos-7.7/lsusb.json","lines_changed":1},{"name":"tests/fixtures/generic/lsusb-test-attributes.json","lines_changed":1},{"name":"tests/fixtures/generic/lsusb-test-attributes2.json","lines_changed":1},{"name":"tests/test_lsusb.py","lines_changed":82}]}},{"commit":"3a2a69cfa55e2f40d7536d923170a5cfc986998e","message":"formatting","stats":{"files_changed":1,"insertions":0,"deletions":4,"files":["jc/parsers/lsusb.py"],"file_stats":[{"name":"jc/parsers/lsusb.py","lines_changed":4}]}},{"commit":"f599c659881248b79c6dbc86d85a61311c9d3434","message":"add stress test examples","stats":{"files_changed":2,"insertions":464,"deletions":0,"files":["tests/fixtures/generic/lsusb-test-attributes.out","tests/fixtures/generic/lsusb-test-attributes2.out"],"file_stats":[{"name":"tests/fixtures/generic/lsusb-test-attributes.out","lines_changed":116},{"name":"tests/fixtures/generic/lsusb-test-attributes2.out","lines_changed":348}]}},{"commit":"ad12849fd9fc2177afb30740acc63cf284dc394b","message":"update docs example and","stats":{"files_changed":1,"insertions":138,"deletions":26,"files":["jc/parsers/lsusb.py"],"file_stats":[{"name":"jc/parsers/lsusb.py","lines_changed":164}]}},{"commit":"f36b3789e8df6673207d6c2d3d0796acfdfe011d","message":"formatting","stats":{"files_changed":1,"insertions":2,"deletions":2,"files":["jc/parsers/lsusb.py"],"file_stats":[{"name":"jc/parsers/lsusb.py","lines_changed":4}]}},{"commit":"6d18c0ba61cd188dbff736f1be47b7362c841687","message":"change variable name last_attribute and last_attr to last_item","stats":{"files_changed":1,"insertions":47,"deletions":47,"files":["jc/parsers/lsusb.py"],"file_stats":[{"name":"jc/parsers/lsusb.py","lines_changed":94}]}},{"commit":"17097abec9567a58b5a5f7bbed11ecfd69cbd28c","message":"formatting","stats":{"files_changed":1,"insertions":2,"deletions":6,"files":["jc/parsers/lsusb.py"],"file_stats":[{"name":"jc/parsers/lsusb.py","lines_changed":8}]}},{"commit":"b7ddd3b285f205211394edc70b611171cf72a4c5","message":"change variable names","stats":{"files_changed":1,"insertions":22,"deletions":22,"files":["jc/parsers/lsusb.py"],"file_stats":[{"name":"jc/parsers/lsusb.py","lines_changed":44}]}},{"commit":"75b23f62c9d7b33907af92964d1a6234332fbc78","message":"working configuration_descriptor and device_descriptor attributes","stats":{"files_changed":1,"insertions":35,"deletions":7,"files":["jc/parsers/lsusb.py"],"file_stats":[{"name":"jc/parsers/lsusb.py","lines_changed":42}]}},{"commit":"f88967b2a59d79e053554d1e141f71e9d2d87456","message":"add attribute lists up to interface_association","stats":{"files_changed":1,"insertions":126,"deletions":21,"files":["jc/parsers/lsusb.py"],"file_stats":[{"name":"jc/parsers/lsusb.py","lines_changed":147}]}},{"commit":"ba2846664b35b2e94aa905431c55c029b24a64e3","message":"edpoint_descriptors attributes working","stats":{"files_changed":1,"insertions":22,"deletions":2,"files":["jc/parsers/lsusb.py"],"file_stats":[{"name":"jc/parsers/lsusb.py","lines_changed":24}]}},{"commit":"10dba37ca2624e05eff246ef49df8ebd3f275d86","message":"hub_descriptor attributes working","stats":{"files_changed":1,"insertions":28,"deletions":1,"files":["jc/parsers/lsusb.py"],"file_stats":[{"name":"jc/parsers/lsusb.py","lines_changed":29}]}},{"commit":"0e6f938514965503f1d86d56c047f9f8fc03ac65","message":"working hub_port_status section","stats":{"files_changed":1,"insertions":36,"deletions":45,"files":["jc/parsers/lsusb.py"],"file_stats":[{"name":"jc/parsers/lsusb.py","lines_changed":81}]}},{"commit":"159d87c1126f4d79d5e34837bc2c353a5445803b","message":"add length guard and test for uname with no -a on linux","stats":{"files_changed":3,"insertions":18,"deletions":7,"files":["jc/parsers/uname.py","tests/fixtures/centos-7.7/uname.out","tests/test_uname.py"],"file_stats":[{"name":"jc/parsers/uname.py","lines_changed":11},{"name":"tests/fixtures/centos-7.7/uname.out","lines_changed":1},{"name":"tests/test_uname.py","lines_changed":13}]}},{"commit":"9e7b1621cf232e9859bdf018737e536820f380a0","message":"device_status working","stats":{"files_changed":1,"insertions":18,"deletions":18,"files":["jc/parsers/lsusb.py"],"file_stats":[{"name":"jc/parsers/lsusb.py","lines_changed":36}]}},{"commit":"2057817ef8fec85b2a978b682e7fe8bc16def828","message":"add uname tests","stats":{"files_changed":11,"insertions":89,"deletions":0,"files":["tests/fixtures/debian10/uname-a.json","tests/fixtures/debian10/uname-a.out","tests/fixtures/freebsd12/uname-a.json","tests/fixtures/freebsd12/uname-a.out","tests/fixtures/freebsd12/uname-a2.json","tests/fixtures/freebsd12/uname-a2.out","tests/fixtures/generic/uname-a-different-proc.json","tests/fixtures/generic/uname-a-different-proc.out","tests/fixtures/generic/uname-a.json","tests/fixtures/generic/uname-a.out","tests/test_uname.py"],"file_stats":[{"name":"tests/fixtures/debian10/uname-a.json","lines_changed":10},{"name":"tests/fixtures/debian10/uname-a.out","lines_changed":2},{"name":"tests/fixtures/freebsd12/uname-a.json","lines_changed":1},{"name":"tests/fixtures/freebsd12/uname-a.out","lines_changed":2},{"name":"tests/fixtures/freebsd12/uname-a2.json","lines_changed":7},{"name":"tests/fixtures/freebsd12/uname-a2.out","lines_changed":2},{"name":"tests/fixtures/generic/uname-a-different-proc.json","lines_changed":1},{"name":"tests/fixtures/generic/uname-a-different-proc.out","lines_changed":1},{"name":"tests/fixtures/generic/uname-a.json","lines_changed":1},{"name":"tests/fixtures/generic/uname-a.out","lines_changed":2},{"name":"tests/test_uname.py","lines_changed":60}]}},{"commit":"a1eabad2d37bb0d0e9407edf7305e223eba67da2","message":"add comments","stats":{"files_changed":1,"insertions":5,"deletions":1,"files":["jc/parsers/uname.py"],"file_stats":[{"name":"jc/parsers/uname.py","lines_changed":6}]}},{"commit":"92bf2b1ca2a172d3977d6e3c36b5ca1a8c2bab63","message":"simplify fixup logic for uname","stats":{"files_changed":2,"insertions":8,"deletions":20,"files":["CHANGELOG","jc/parsers/uname.py"],"file_stats":[{"name":"CHANGELOG","lines_changed":2},{"name":"jc/parsers/uname.py","lines_changed":26}]}},{"commit":"2b2123a4ba9b77d2089d367fe85dcb5d2857a295","message":"add FreeBSD support","stats":{"files_changed":2,"insertions":3,"deletions":2,"files":["CHANGELOG","jc/parsers/uname.py"],"file_stats":[{"name":"CHANGELOG","lines_changed":1},{"name":"jc/parsers/uname.py","lines_changed":4}]}},{"commit":"908b2f9200ddcce4beb531a3c90908786b6a5b02","message":"add items","stats":{"files_changed":1,"insertions":3,"deletions":1,"files":["CHANGELOG"],"file_stats":[{"name":"CHANGELOG","lines_changed":4}]}},{"commit":"deff0c7bfdf942b8d7e7bd140219e08bf80a50cb","message":"remove print debug","stats":{"files_changed":1,"insertions":1,"deletions":5,"files":["jc/parsers/uname.py"],"file_stats":[{"name":"jc/parsers/uname.py","lines_changed":6}]}},{"commit":"7cd01efa64029775042a2c145997ce30ef6b4f6b","message":"fixup for cases where the 'process' and/or 'machine' fields are blank on linux","stats":{"files_changed":1,"insertions":25,"deletions":1,"files":["jc/parsers/uname.py"],"file_stats":[{"name":"jc/parsers/uname.py","lines_changed":26}]}},{"commit":"2dbe56456bbea2bdfce7eacbf8b9f10a1b249f55","message":"add nested_dict. start work on hub_port_status and device_status","stats":{"files_changed":1,"insertions":49,"deletions":39,"files":["jc/parsers/lsusb.py"],"file_stats":[{"name":"jc/parsers/lsusb.py","lines_changed":88}]}},{"commit":"6078a411ef612be8bad012aa404f34ebd74a1fd7","message":"add initial schema doc","stats":{"files_changed":1,"insertions":79,"deletions":4,"files":["jc/parsers/lsusb.py"],"file_stats":[{"name":"jc/parsers/lsusb.py","lines_changed":83}]}},{"commit":"4a3656562f161a51f5cb6f0e9ccd271859b78d62","message":"del null keys","stats":{"files_changed":1,"insertions":6,"deletions":0,"files":["jc/parsers/lsusb.py"],"file_stats":[{"name":"jc/parsers/lsusb.py","lines_changed":6}]}},{"commit":"ba75989a24839907723ed7c3d7a497473d489a34","message":"update comments","stats":{"files_changed":1,"insertions":5,"deletions":5,"files":["jc/parsers/lsusb.py"],"file_stats":[{"name":"jc/parsers/lsusb.py","lines_changed":10}]}},{"commit":"9e9e2c362894f0072ab839565829881d750c8912","message":"move state instantiation before has_data test","stats":{"files_changed":1,"insertions":2,"deletions":2,"files":["jc/parsers/lsusb.py"],"file_stats":[{"name":"jc/parsers/lsusb.py","lines_changed":4}]}},{"commit":"9a2a8c6b61a46a9bfb5a4492b86774a4a78672ab","message":"shorten set_sections","stats":{"files_changed":1,"insertions":20,"deletions":52,"files":["jc/parsers/lsusb.py"],"file_stats":[{"name":"jc/parsers/lsusb.py","lines_changed":72}]}},{"commit":"dae42ef1619441637672d634f9e5d7ab26115f09","message":"add hub_port_status and device_status","stats":{"files_changed":1,"insertions":18,"deletions":1,"files":["jc/parsers/lsusb.py"],"file_stats":[{"name":"jc/parsers/lsusb.py","lines_changed":19}]}},{"commit":"931f2cab78bda180443535c04b532d04c6e88dd0","message":"add hub_descriptor","stats":{"files_changed":1,"insertions":14,"deletions":11,"files":["jc/parsers/lsusb.py"],"file_stats":[{"name":"jc/parsers/lsusb.py","lines_changed":25}]}},{"commit":"72b061bed4453686d264ccf8977cba6c2a4794ec","message":"add endpoint_descriptors","stats":{"files_changed":1,"insertions":32,"deletions":8,"files":["jc/parsers/lsusb.py"],"file_stats":[{"name":"jc/parsers/lsusb.py","lines_changed":40}]}},{"commit":"29a7c73990d9620b15a4010d17fc9a9a859f44b4","message":"add hid_device_descriptor and report_descriptors","stats":{"files_changed":1,"insertions":16,"deletions":0,"files":["jc/parsers/lsusb.py"],"file_stats":[{"name":"jc/parsers/lsusb.py","lines_changed":16}]}},{"commit":"2d1d68e3007f76d4c34ac07ae822935ab6021e79","message":"simplify populate_lists. Add CDC lists","stats":{"files_changed":1,"insertions":87,"deletions":88,"files":["jc/parsers/lsusb.py"],"file_stats":[{"name":"jc/parsers/lsusb.py","lines_changed":175}]}},{"commit":"c5c1e170d1f502de5c76e9e481a23b26ffcaf237","message":"interface descriptors working","stats":{"files_changed":1,"insertions":111,"deletions":76,"files":["jc/parsers/lsusb.py"],"file_stats":[{"name":"jc/parsers/lsusb.py","lines_changed":187}]}},{"commit":"9c1bb66452838e704ef2277f313bb51a42dc03b9","message":"fix remove _state field during schema_populate","stats":{"files_changed":1,"insertions":9,"deletions":9,"files":["jc/parsers/lsusb.py"],"file_stats":[{"name":"jc/parsers/lsusb.py","lines_changed":18}]}},{"commit":"a4f3306bae90fbc807fdd9ff2ce71e25d36a663f","message":"initial schema build. need to figure out why deleting _state from output_line causes exceptions","stats":{"files_changed":1,"insertions":69,"deletions":28,"files":["jc/parsers/lsusb.py"],"file_stats":[{"name":"jc/parsers/lsusb.py","lines_changed":97}]}},{"commit":"1bc638b6ee7a820406ba4b84d3408f7cd4fe779d","message":"add bus_list and add all device_list data to the list","stats":{"files_changed":1,"insertions":36,"deletions":32,"files":["jc/parsers/lsusb.py"],"file_stats":[{"name":"jc/parsers/lsusb.py","lines_changed":68}]}},{"commit":"9ad0cd9dae8822235c37159541ce72471eb4263e","message":"now storing state within the objects to make building the schema (later) easier.","stats":{"files_changed":1,"insertions":116,"deletions":211,"files":["jc/parsers/lsusb.py"],"file_stats":[{"name":"jc/parsers/lsusb.py","lines_changed":327}]}},{"commit":"6d4a4691276d8659253b2ac8f8bdbd71a1fece7d","message":"use class for state","stats":{"files_changed":1,"insertions":356,"deletions":333,"files":["jc/parsers/lsusb.py"],"file_stats":[{"name":"jc/parsers/lsusb.py","lines_changed":689}]}},{"commit":"ed6997e3ff2e575a6d4daa7d7a2cbe7dddacdd4d","message":"add interface_association section","stats":{"files_changed":2,"insertions":170,"deletions":34,"files":["jc/parsers/lsusb.py","tests/fixtures/centos-7.7/lsusb-v-single.out"],"file_stats":[{"name":"jc/parsers/lsusb.py","lines_changed":104},{"name":"tests/fixtures/centos-7.7/lsusb-v-single.out","lines_changed":100}]}},{"commit":"eb788fca6e25eea1fa8a43b22360c852ecf5af35","message":"somewhat working lsusb parser. needs a lot more TLC","stats":{"files_changed":4,"insertions":919,"deletions":0,"files":["jc/cli.py","jc/parsers/lsusb.py","tests/fixtures/centos-7.7/lsusb-v.out","tests/fixtures/centos-7.7/lsusb.out"],"file_stats":[{"name":"jc/cli.py","lines_changed":1},{"name":"jc/parsers/lsusb.py","lines_changed":404},{"name":"tests/fixtures/centos-7.7/lsusb-v.out","lines_changed":509},{"name":"tests/fixtures/centos-7.7/lsusb.out","lines_changed":5}]}},{"commit":"9186f5f37739012b8c04c776310a20ef55b1469f","message":"fix file parser for gzip cases (has ': ' in the description, which is the delimiter)","stats":{"files_changed":7,"insertions":99,"deletions":4,"files":["CHANGELOG","jc/__init__.py","jc/parsers/file.py","setup.py","tests/fixtures/osx-10.14.6/file3.json","tests/fixtures/osx-10.14.6/file3.out","tests/test_file.py"],"file_stats":[{"name":"CHANGELOG","lines_changed":3},{"name":"jc/__init__.py","lines_changed":2},{"name":"jc/parsers/file.py","lines_changed":11},{"name":"setup.py","lines_changed":2},{"name":"tests/fixtures/osx-10.14.6/file3.json","lines_changed":1},{"name":"tests/fixtures/osx-10.14.6/file3.out","lines_changed":72},{"name":"tests/test_file.py","lines_changed":12}]}},{"commit":"30cff5f28140a5b20a617c8145c13e43b7b6685b","message":"add note that the streaming parser outputs JSON Lines","stats":{"files_changed":8,"insertions":17,"deletions":3,"files":["docs/parsers/ls_s.md","docs/parsers/ping_s.md","docs/parsers/vmstat_s.md","jc/parsers/foo_s.py","jc/parsers/ls_s.py","jc/parsers/ping_s.py","jc/parsers/vmstat_s.py","man/jc.1"],"file_stats":[{"name":"docs/parsers/ls_s.md","lines_changed":4},{"name":"docs/parsers/ping_s.md","lines_changed":2},{"name":"docs/parsers/vmstat_s.md","lines_changed":2},{"name":"jc/parsers/foo_s.py","lines_changed":2},{"name":"jc/parsers/ls_s.py","lines_changed":4},{"name":"jc/parsers/ping_s.py","lines_changed":2},{"name":"jc/parsers/vmstat_s.py","lines_changed":2},{"name":"man/jc.1","lines_changed":2}]}},{"commit":"b724e0969a0d6b22bed0c77eb8d629381179ea3f","message":"-qq instead of -q","stats":{"files_changed":2,"insertions":2,"deletions":2,"files":["docs/parsers/ls_s.md","jc/parsers/ls_s.py"],"file_stats":[{"name":"docs/parsers/ls_s.md","lines_changed":2},{"name":"jc/parsers/ls_s.py","lines_changed":2}]}},{"commit":"a62c49e8715873b068a96da5021ea24a783acd6b","message":"Merge pull request #172 from kellyjonbrazil/master"},{"commit":"9b160f6279bbbf0c15413c98922eef137ba2f3f4","message":"link update","stats":{"files_changed":4,"insertions":4,"deletions":4,"files":["docs/parsers/ping_s.md","docs/parsers/vmstat_s.md","jc/parsers/ping_s.py","jc/parsers/vmstat_s.py"],"file_stats":[{"name":"docs/parsers/ping_s.md","lines_changed":2},{"name":"docs/parsers/vmstat_s.md","lines_changed":2},{"name":"jc/parsers/ping_s.py","lines_changed":2},{"name":"jc/parsers/vmstat_s.py","lines_changed":2}]}},{"commit":"338a4e2612f70bb3e2af31f61a7db75f647293fe","message":"formatting","stats":{"files_changed":4,"insertions":4,"deletions":4,"files":["docs/parsers/ping_s.md","docs/parsers/vmstat_s.md","jc/parsers/ping_s.py","jc/parsers/vmstat_s.py"],"file_stats":[{"name":"docs/parsers/ping_s.md","lines_changed":2},{"name":"docs/parsers/vmstat_s.md","lines_changed":2},{"name":"jc/parsers/ping_s.py","lines_changed":2},{"name":"jc/parsers/vmstat_s.py","lines_changed":2}]}},{"commit":"0140688750be61dd752059ee66734ab1c7a8f30e","message":"link updates","stats":{"files_changed":6,"insertions":8,"deletions":4,"files":["README.md","docs/parsers/ping_s.md","docs/parsers/vmstat_s.md","jc/parsers/ping_s.py","jc/parsers/vmstat_s.py","templates/readme_template"],"file_stats":[{"name":"README.md","lines_changed":2},{"name":"docs/parsers/ping_s.md","lines_changed":2},{"name":"docs/parsers/vmstat_s.md","lines_changed":2},{"name":"jc/parsers/ping_s.py","lines_changed":2},{"name":"jc/parsers/vmstat_s.py","lines_changed":2},{"name":"templates/readme_template","lines_changed":2}]}},{"commit":"73e5ea98c1ca2b9299085e3832791162eca3b9ff","message":"Merge pull request #170 from kellyjonbrazil/dev"},{"commit":"77dcbc544da271edab5de5ad209117e98c846f9c","message":"final doc update","stats":{"files_changed":3,"insertions":2,"deletions":3,"files":["CHANGELOG","jc/__init__.py","man/jc.1"],"file_stats":[{"name":"CHANGELOG","lines_changed":1},{"name":"jc/__init__.py","lines_changed":2},{"name":"man/jc.1","lines_changed":2}]}},{"commit":"c7bcb0947ae32acc9cdba7a6975d2f2557f10a39","message":"indent subsequent error and warning lines","stats":{"files_changed":1,"insertions":2,"deletions":2,"files":["jc/utils.py"],"file_stats":[{"name":"jc/utils.py","lines_changed":4}]}},{"commit":"5cd3f7f71d38b560a88dd6057e9c7a94991a3d71","message":"Add example to raise ParseError if there is no output data to yield","stats":{"files_changed":1,"insertions":5,"deletions":1,"files":["jc/parsers/foo_s.py"],"file_stats":[{"name":"jc/parsers/foo_s.py","lines_changed":6}]}},{"commit":"5044388ab2e8d7d8b427fd51b0ab875611bd127f","message":"raise if line data is unrecognized","stats":{"files_changed":2,"insertions":6,"deletions":3,"files":["jc/parsers/vmstat_s.py","tests/test_vmstat_s.py"],"file_stats":[{"name":"jc/parsers/vmstat_s.py","lines_changed":6},{"name":"tests/test_vmstat_s.py","lines_changed":3}]}},{"commit":"ee075db59819d80e4dcb60ddbd9cfe2fd529dfe9","message":"linting","stats":{"files_changed":4,"insertions":5,"deletions":7,"files":["jc/cli.py","jc/parsers/foo_s.py","jc/parsers/vmstat.py","jc/parsers/vmstat_s.py"],"file_stats":[{"name":"jc/cli.py","lines_changed":2},{"name":"jc/parsers/foo_s.py","lines_changed":2},{"name":"jc/parsers/vmstat.py","lines_changed":5},{"name":"jc/parsers/vmstat_s.py","lines_changed":3}]}},{"commit":"9904e0be61e7c81b907bf3770f111346daeff481","message":"formatting","stats":{"files_changed":2,"insertions":2,"deletions":2,"files":["docs/utils.md","jc/utils.py"],"file_stats":[{"name":"docs/utils.md","lines_changed":2},{"name":"jc/utils.py","lines_changed":2}]}},{"commit":"31b69b3242eeca2c02f87c31d58193dd3f06fe49","message":"formatting","stats":{"files_changed":2,"insertions":6,"deletions":6,"files":["docs/utils.md","jc/utils.py"],"file_stats":[{"name":"docs/utils.md","lines_changed":6},{"name":"jc/utils.py","lines_changed":6}]}},{"commit":"e6a80fea3228122dd84e17672c835c0460ad1342","message":"formatting","stats":{"files_changed":3,"insertions":7,"deletions":7,"files":["docs/utils.md","jc/utils.py","man/jc.1"],"file_stats":[{"name":"docs/utils.md","lines_changed":6},{"name":"jc/utils.py","lines_changed":6},{"name":"man/jc.1","lines_changed":2}]}},{"commit":"d6aec00e038d1ecfe43c13a6909d50630455b372","message":"add vmstat-1-long tests","stats":{"files_changed":4,"insertions":27,"deletions":1,"files":["tests/fixtures/ubuntu-18.04/vmstat-1-long-streaming.json","tests/fixtures/ubuntu-18.04/vmstat-1-long.json","tests/test_vmstat.py","tests/test_vmstat_s.py"],"file_stats":[{"name":"tests/fixtures/ubuntu-18.04/vmstat-1-long-streaming.json","lines_changed":1},{"name":"tests/fixtures/ubuntu-18.04/vmstat-1-long.json","lines_changed":1},{"name":"tests/test_vmstat.py","lines_changed":12},{"name":"tests/test_vmstat_s.py","lines_changed":14}]}},{"commit":"4aa7d81e11ea7fcfbb5c9d74337cde617b1a0d5d","message":"ignore re-printed header rows in output","stats":{"files_changed":3,"insertions":50,"deletions":2,"files":["jc/parsers/vmstat.py","jc/parsers/vmstat_s.py","tests/fixtures/ubuntu-18.04/vmstat-1-long.out"],"file_stats":[{"name":"jc/parsers/vmstat.py","lines_changed":3},{"name":"jc/parsers/vmstat_s.py","lines_changed":7},{"name":"tests/fixtures/ubuntu-18.04/vmstat-1-long.out","lines_changed":42}]}},{"commit":"48cdabc3b0862d6291e1ec59ab385e0e146c31eb","message":"document timestamps","stats":{"files_changed":4,"insertions":16,"deletions":0,"files":["docs/parsers/vmstat.md","docs/parsers/vmstat_s.md","jc/parsers/vmstat.py","jc/parsers/vmstat_s.py"],"file_stats":[{"name":"docs/parsers/vmstat.md","lines_changed":4},{"name":"docs/parsers/vmstat_s.md","lines_changed":4},{"name":"jc/parsers/vmstat.py","lines_changed":4},{"name":"jc/parsers/vmstat_s.py","lines_changed":4}]}},{"commit":"a1791ef5479749692c79bbe98fc7687d70cd6cda","message":"linting","stats":{"files_changed":1,"insertions":1,"deletions":1,"files":["jc/parsers/ls_s.py"],"file_stats":[{"name":"jc/parsers/ls_s.py","lines_changed":2}]}},{"commit":"7bc87f6c2d4cfcfa656a1c1b8973a4c0414c85d9","message":"change _meta to _jc_meta","stats":{"files_changed":8,"insertions":8,"deletions":8,"files":["docs/parsers/ls_s.md","docs/parsers/ping_s.md","docs/parsers/vmstat_s.md","jc/parsers/foo_s.py","jc/parsers/ls_s.py","jc/parsers/ping_s.py","jc/parsers/vmstat_s.py","man/jc.1"],"file_stats":[{"name":"docs/parsers/ls_s.md","lines_changed":2},{"name":"docs/parsers/ping_s.md","lines_changed":2},{"name":"docs/parsers/vmstat_s.md","lines_changed":2},{"name":"jc/parsers/foo_s.py","lines_changed":2},{"name":"jc/parsers/ls_s.py","lines_changed":2},{"name":"jc/parsers/ping_s.py","lines_changed":2},{"name":"jc/parsers/vmstat_s.py","lines_changed":2},{"name":"man/jc.1","lines_changed":2}]}},{"commit":"bbed9e274b8252ba0518140fe7fc97029310771f","message":"linting","stats":{"files_changed":1,"insertions":154,"deletions":159,"files":["jc/parsers/ping_s.py"],"file_stats":[{"name":"jc/parsers/ping_s.py","lines_changed":313}]}},{"commit":"486282b9856f5e56cf43ee1399d8e7cb78353b32","message":"linting","stats":{"files_changed":1,"insertions":5,"deletions":5,"files":["jc/parsers/vmstat_s.py"],"file_stats":[{"name":"jc/parsers/vmstat_s.py","lines_changed":10}]}},{"commit":"a4d45b653f794033978940da14910f5d607a8254","message":"linting","stats":{"files_changed":2,"insertions":6,"deletions":4,"files":["jc/parsers/foo_s.py","jc/parsers/vmstat.py"],"file_stats":[{"name":"jc/parsers/foo_s.py","lines_changed":2},{"name":"jc/parsers/vmstat.py","lines_changed":8}]}},{"commit":"22e151b01c0f97c141d912c9646e46df0320d622","message":"linting","stats":{"files_changed":2,"insertions":56,"deletions":60,"files":["jc/cli.py","jc/utils.py"],"file_stats":[{"name":"jc/cli.py","lines_changed":88},{"name":"jc/utils.py","lines_changed":28}]}},{"commit":"7a4ebcd1ecdb4929aae70e44b4f9b6b5ab52b393","message":"language hints","stats":{"files_changed":1,"insertions":2,"deletions":2,"files":["CONTRIBUTING.md"],"file_stats":[{"name":"CONTRIBUTING.md","lines_changed":4}]}},{"commit":"651cbfe02fbb354c4caf8e0d022655642e7caed3","message":"add streaming foo parser","stats":{"files_changed":1,"insertions":1,"deletions":1,"files":["CONTRIBUTING.md"],"file_stats":[{"name":"CONTRIBUTING.md","lines_changed":2}]}},{"commit":"8c3e764516e1c28961b09380b638a57ce98b1261","message":"add streaming parser to contrib guidelines","stats":{"files_changed":2,"insertions":2,"deletions":2,"files":["README.md","templates/readme_template"],"file_stats":[{"name":"README.md","lines_changed":2},{"name":"templates/readme_template","lines_changed":2}]}},{"commit":"b4e75da7e3f23502723ce8b2a7261b376f296864","message":"formatting","stats":{"files_changed":2,"insertions":4,"deletions":4,"files":["README.md","templates/readme_template"],"file_stats":[{"name":"README.md","lines_changed":4},{"name":"templates/readme_template","lines_changed":4}]}},{"commit":"37223f086cabc8db5962415bd161fed151dafb9d","message":"formatting","stats":{"files_changed":2,"insertions":6,"deletions":4,"files":["README.md","templates/readme_template"],"file_stats":[{"name":"README.md","lines_changed":5},{"name":"templates/readme_template","lines_changed":5}]}},{"commit":"a404033735c2c8075a8e08194197eae59db70afd","message":"add error and warning message wrap info","stats":{"files_changed":1,"insertions":2,"deletions":1,"files":["CHANGELOG"],"file_stats":[{"name":"CHANGELOG","lines_changed":3}]}},{"commit":"b7433ed085c0ba22ea0d49330871a651a8d83fb4","message":"auto wrap warning and error messages","stats":{"files_changed":6,"insertions":80,"deletions":41,"files":["docs/utils.md","jc/cli.py","jc/parsers/file.py","jc/parsers/ls.py","jc/parsers/traceroute.py","jc/utils.py"],"file_stats":[{"name":"docs/utils.md","lines_changed":16},{"name":"jc/cli.py","lines_changed":39},{"name":"jc/parsers/file.py","lines_changed":2},{"name":"jc/parsers/ls.py","lines_changed":2},{"name":"jc/parsers/traceroute.py","lines_changed":2},{"name":"jc/utils.py","lines_changed":60}]}},{"commit":"224d3d65ada4216e28e142d411b0c2c3358517b3","message":"Add exception class name to error message","stats":{"files_changed":1,"insertions":1,"deletions":1,"files":["jc/cli.py"],"file_stats":[{"name":"jc/cli.py","lines_changed":2}]}},{"commit":"a349fb0bdabaf74503831f22c4efbd02254f809d","message":"change _meta to _jc_meta","stats":{"files_changed":3,"insertions":10,"deletions":8,"files":["README.md","docs/utils.md","man/jc.1"],"file_stats":[{"name":"README.md","lines_changed":6},{"name":"docs/utils.md","lines_changed":6},{"name":"man/jc.1","lines_changed":6}]}},{"commit":"e7ddcfb83fb295034db44ade407476ff3a962cd8","message":"change _meta to _jc_meta","stats":{"files_changed":5,"insertions":14,"deletions":12,"files":["jc/utils.py","templates/manpage_template","templates/readme_template",".../centos-7.7/ping-ip-O-streaming-ignore-exceptions.json","tests/test_ping_s.py"],"file_stats":[{"name":"jc/utils.py","lines_changed":10},{"name":"templates/manpage_template","lines_changed":6},{"name":"templates/readme_template","lines_changed":6},{"name":".../centos-7.7/ping-ip-O-streaming-ignore-exceptions.json","lines_changed":2},{"name":"tests/test_ping_s.py","lines_changed":2}]}},{"commit":"abd20dfe3662f65373ac582c70aa740e53b52f68","message":"formatting","stats":{"files_changed":4,"insertions":4,"deletions":4,"files":["README.md","man/jc.1","templates/manpage_template","templates/readme_template"],"file_stats":[{"name":"README.md","lines_changed":2},{"name":"man/jc.1","lines_changed":2},{"name":"templates/manpage_template","lines_changed":2},{"name":"templates/readme_template","lines_changed":2}]}},{"commit":"dc1fd3ef1be41aee349b159059f1febff76f6caf","message":"fix -qq docs","stats":{"files_changed":4,"insertions":12,"deletions":12,"files":["README.md","man/jc.1","templates/manpage_template","templates/readme_template"],"file_stats":[{"name":"README.md","lines_changed":6},{"name":"man/jc.1","lines_changed":6},{"name":"templates/manpage_template","lines_changed":6},{"name":"templates/readme_template","lines_changed":6}]}},{"commit":"98a7686db46fbd3ed98382867976249f307d0015","message":"use -qq to ignore streaming exceptions","stats":{"files_changed":18,"insertions":160,"deletions":152,"files":["README.md","docs/parsers/ls_s.md","docs/parsers/ping_s.md","docs/parsers/vmstat_s.md","docs/utils.md","jc/cli.py","jc/parsers/foo_s.py","jc/parsers/ls_s.py","jc/parsers/ping_s.py","jc/parsers/vmstat_s.py","jc/utils.py","man/jc.1","templates/manpage_template","templates/readme_template","... => ping-ip-O-streaming-ignore-exceptions.json}","tests/test_ls_s.py","tests/test_ping_s.py","tests/test_vmstat_s.py"],"file_stats":[{"name":"README.md","lines_changed":2},{"name":"docs/parsers/ls_s.md","lines_changed":9},{"name":"docs/parsers/ping_s.md","lines_changed":9},{"name":"docs/parsers/vmstat_s.md","lines_changed":9},{"name":"docs/utils.md","lines_changed":6},{"name":"jc/cli.py","lines_changed":23},{"name":"jc/parsers/foo_s.py","lines_changed":13},{"name":"jc/parsers/ls_s.py","lines_changed":13},{"name":"jc/parsers/ping_s.py","lines_changed":13},{"name":"jc/parsers/vmstat_s.py","lines_changed":13},{"name":"jc/utils.py","lines_changed":12},{"name":"man/jc.1","lines_changed":4},{"name":"templates/manpage_template","lines_changed":4},{"name":"templates/readme_template","lines_changed":2},{"name":"... => ping-ip-O-streaming-ignore-exceptions.json}","lines_changed":0},{"name":"tests/test_ls_s.py","lines_changed":24},{"name":"tests/test_ping_s.py","lines_changed":140},{"name":"tests/test_vmstat_s.py","lines_changed":16}]}},{"commit":"9c6c6c4330fc68115be012de254161f36e3a8328","message":"add next() info","stats":{"files_changed":2,"insertions":2,"deletions":2,"files":["README.md","templates/readme_template"],"file_stats":[{"name":"README.md","lines_changed":2},{"name":"templates/readme_template","lines_changed":2}]}},{"commit":"f9be5651daa891e06ad0acd8980ffc0fe51fd29d","message":"add language hints","stats":{"files_changed":2,"insertions":4,"deletions":6,"files":["README.md","templates/readme_template"],"file_stats":[{"name":"README.md","lines_changed":5},{"name":"templates/readme_template","lines_changed":5}]}},{"commit":"df9835a3e62bb2b3b6ec8b55f06a25a00a799d92","message":"formatting","stats":{"files_changed":2,"insertions":2,"deletions":2,"files":["README.md","templates/readme_template"],"file_stats":[{"name":"README.md","lines_changed":2},{"name":"templates/readme_template","lines_changed":2}]}},{"commit":"92363be2dd633bdd3c2dd07c72ebd281d2cb4565","message":"fix streaming python module example","stats":{"files_changed":2,"insertions":2,"deletions":4,"files":["README.md","templates/readme_template"],"file_stats":[{"name":"README.md","lines_changed":3},{"name":"templates/readme_template","lines_changed":3}]}},{"commit":"31b62030156f9c826fe5c7d127e9dd0ace582dd0","message":"formatting","stats":{"files_changed":2,"insertions":6,"deletions":6,"files":["README.md","templates/readme_template"],"file_stats":[{"name":"README.md","lines_changed":6},{"name":"templates/readme_template","lines_changed":6}]}},{"commit":"18805858d685d456f9a38540bbaedbaa1a411546","message":"formatting","stats":{"files_changed":2,"insertions":3,"deletions":3,"files":["man/jc.1","templates/manpage_template"],"file_stats":[{"name":"man/jc.1","lines_changed":4},{"name":"templates/manpage_template","lines_changed":2}]}},{"commit":"e676f0e20fb6e96a536c4d182b0d287cdc1ad0f7","message":"add streaming parser info for python module use","stats":{"files_changed":2,"insertions":36,"deletions":6,"files":["README.md","templates/readme_template"],"file_stats":[{"name":"README.md","lines_changed":21},{"name":"templates/readme_template","lines_changed":21}]}},{"commit":"20652edefaa7705b8ba756bae3944ff362a295a6","message":"update changelog","stats":{"files_changed":1,"insertions":4,"deletions":3,"files":["CHANGELOG"],"file_stats":[{"name":"CHANGELOG","lines_changed":7}]}},{"commit":"98c29d07478093e78f53ec633f2dd08cafc3e3ae","message":"add vmstat tests","stats":{"files_changed":8,"insertions":120,"deletions":0,"files":["tests/fixtures/centos-7.7/vmstat-a.json","tests/fixtures/centos-7.7/vmstat-at-5-10.json","tests/fixtures/centos-7.7/vmstat-awt.json","tests/fixtures/centos-7.7/vmstat-d.json","tests/fixtures/centos-7.7/vmstat-dt.json","tests/fixtures/centos-7.7/vmstat-w.json","tests/fixtures/centos-7.7/vmstat.json","tests/test_vmstat.py"],"file_stats":[{"name":"tests/fixtures/centos-7.7/vmstat-a.json","lines_changed":1},{"name":"tests/fixtures/centos-7.7/vmstat-at-5-10.json","lines_changed":1},{"name":"tests/fixtures/centos-7.7/vmstat-awt.json","lines_changed":1},{"name":"tests/fixtures/centos-7.7/vmstat-d.json","lines_changed":1},{"name":"tests/fixtures/centos-7.7/vmstat-dt.json","lines_changed":1},{"name":"tests/fixtures/centos-7.7/vmstat-w.json","lines_changed":1},{"name":"tests/fixtures/centos-7.7/vmstat.json","lines_changed":1},{"name":"tests/test_vmstat.py","lines_changed":113}]}},{"commit":"41a6311f6b3ed2cc94919d042aed51c46cdf3e2f","message":"add streaming parser tests","stats":{"files_changed":9,"insertions":132,"deletions":1,"files":["tests/fixtures/centos-7.7/vmstat-a-streaming.json",".../centos-7.7/vmstat-at-5-10-streaming.json",".../fixtures/centos-7.7/vmstat-awt-streaming.json","tests/fixtures/centos-7.7/vmstat-d-streaming.json","tests/fixtures/centos-7.7/vmstat-dt-streaming.json","tests/fixtures/centos-7.7/vmstat-streaming.json","tests/fixtures/centos-7.7/vmstat-w-streaming.json","tests/test_ping_s.py","tests/test_vmstat_s.py"],"file_stats":[{"name":"tests/fixtures/centos-7.7/vmstat-a-streaming.json","lines_changed":1},{"name":".../centos-7.7/vmstat-at-5-10-streaming.json","lines_changed":1},{"name":".../fixtures/centos-7.7/vmstat-awt-streaming.json","lines_changed":1},{"name":"tests/fixtures/centos-7.7/vmstat-d-streaming.json","lines_changed":1},{"name":"tests/fixtures/centos-7.7/vmstat-dt-streaming.json","lines_changed":1},{"name":"tests/fixtures/centos-7.7/vmstat-streaming.json","lines_changed":1},{"name":"tests/fixtures/centos-7.7/vmstat-w-streaming.json","lines_changed":1},{"name":"tests/test_ping_s.py","lines_changed":2},{"name":"tests/test_vmstat_s.py","lines_changed":124}]}},{"commit":"978760ec57e04e3ec347c8764bfad015b6dddbff","message":"add exception class name to error string","stats":{"files_changed":1,"insertions":1,"deletions":1,"files":["jc/utils.py"],"file_stats":[{"name":"jc/utils.py","lines_changed":2}]}},{"commit":"d410425537817964ceb7b61e0fdff6c03fdf8766","message":"replace single quotes with double quotes in doc","stats":{"files_changed":4,"insertions":136,"deletions":136,"files":["docs/parsers/vmstat.md","docs/parsers/vmstat_s.md","jc/parsers/vmstat.py","jc/parsers/vmstat_s.py"],"file_stats":[{"name":"docs/parsers/vmstat.md","lines_changed":68},{"name":"docs/parsers/vmstat_s.md","lines_changed":68},{"name":"jc/parsers/vmstat.py","lines_changed":68},{"name":"jc/parsers/vmstat_s.py","lines_changed":68}]}},{"commit":"6b7430329cbe1bfb95b47bcfe031906641c127e1","message":"doc update","stats":{"files_changed":5,"insertions":269,"deletions":1,"files":["README.md","docs/parsers/vmstat.md","docs/parsers/vmstat_s.md","jc/parsers/vmstat_s.py","man/jc.1"],"file_stats":[{"name":"README.md","lines_changed":2},{"name":"docs/parsers/vmstat.md","lines_changed":145},{"name":"docs/parsers/vmstat_s.md","lines_changed":105},{"name":"jc/parsers/vmstat_s.py","lines_changed":6},{"name":"man/jc.1","lines_changed":12}]}},{"commit":"40fe0d4a6081a1233bf5c3eb51a01da1f12bc4dc","message":"working parser","stats":{"files_changed":1,"insertions":141,"deletions":22,"files":["jc/parsers/vmstat_s.py"],"file_stats":[{"name":"jc/parsers/vmstat_s.py","lines_changed":163}]}},{"commit":"365c5354a0349e470558d15243217a064e73da38","message":"remove debug print statement","stats":{"files_changed":1,"insertions":0,"deletions":1,"files":["jc/parsers/vmstat.py"],"file_stats":[{"name":"jc/parsers/vmstat.py","lines_changed":1}]}},{"commit":"b246a05cbb4c1c564f81b3e72cecb62edbe6ced6","message":"fix vmstat-s name","stats":{"files_changed":1,"insertions":1,"deletions":1,"files":["jc/cli.py"],"file_stats":[{"name":"jc/cli.py","lines_changed":2}]}},{"commit":"9e5a7a4abb8668d043625951a05eb5733cbbd56f","message":"add vmstat sample output","stats":{"files_changed":7,"insertions":37,"deletions":0,"files":["tests/fixtures/centos-7.7/vmstat-a.out","tests/fixtures/centos-7.7/vmstat-at-5-10.out","tests/fixtures/centos-7.7/vmstat-awt.out","tests/fixtures/centos-7.7/vmstat-d.out","tests/fixtures/centos-7.7/vmstat-dt.out","tests/fixtures/centos-7.7/vmstat-w.out","tests/fixtures/centos-7.7/vmstat.out"],"file_stats":[{"name":"tests/fixtures/centos-7.7/vmstat-a.out","lines_changed":4},{"name":"tests/fixtures/centos-7.7/vmstat-at-5-10.out","lines_changed":7},{"name":"tests/fixtures/centos-7.7/vmstat-awt.out","lines_changed":4},{"name":"tests/fixtures/centos-7.7/vmstat-d.out","lines_changed":7},{"name":"tests/fixtures/centos-7.7/vmstat-dt.out","lines_changed":7},{"name":"tests/fixtures/centos-7.7/vmstat-w.out","lines_changed":4},{"name":"tests/fixtures/centos-7.7/vmstat.out","lines_changed":4}]}},{"commit":"f266acbccafc040c375723147b8e5d7fddb1e697","message":"add processing logic","stats":{"files_changed":1,"insertions":106,"deletions":14,"files":["jc/parsers/vmstat.py"],"file_stats":[{"name":"jc/parsers/vmstat.py","lines_changed":120}]}},{"commit":"4e3b471f1801f1b9006b18cae2a3d816f361262e","message":"add format for vmstat","stats":{"files_changed":1,"insertions":2,"deletions":0,"files":["jc/utils.py"],"file_stats":[{"name":"jc/utils.py","lines_changed":2}]}},{"commit":"5e28736c2e0c951e71e6531e03a9619279d95d3a","message":"add vmstat and vmstat_s","stats":{"files_changed":1,"insertions":2,"deletions":0,"files":["jc/cli.py"],"file_stats":[{"name":"jc/cli.py","lines_changed":2}]}},{"commit":"a91913a3b517ea0dbb25d6e4cc92850eb2fde5ab","message":"streaming parser template","stats":{"files_changed":1,"insertions":106,"deletions":0,"files":["jc/parsers/vmstat_s.py"],"file_stats":[{"name":"jc/parsers/vmstat_s.py","lines_changed":106}]}},{"commit":"90c64f0ae0d97d025adee40970d89baca79ee4ac","message":"initial working parser","stats":{"files_changed":1,"insertions":182,"deletions":0,"files":["jc/parsers/vmstat.py"],"file_stats":[{"name":"jc/parsers/vmstat.py","lines_changed":182}]}},{"commit":"7cc642ed1a476abda709ac9b79900a1de12e1ef7","message":"formatting","stats":{"files_changed":1,"insertions":3,"deletions":1,"files":["jc/parsers/foo_s.py"],"file_stats":[{"name":"jc/parsers/foo_s.py","lines_changed":4}]}},{"commit":"809f64d35a92bb3d7380fa9d78ac1421a10b81fc","message":"Merge pull request #169 from kellyjonbrazil/streaming"},{"commit":"a6f859a55edae50fcc185948736218404cfaa929","message":"add final ping_s tests","stats":{"files_changed":18,"insertions":168,"deletions":153,"files":[".../osx-10.14.6/ping-hostname-p-streaming.json",".../osx-10.14.6/ping-hostname-s-streaming.json",".../osx-10.14.6/ping-hostname-streaming.json",".../osx-10.14.6/ping-ip-dup-streaming.json",".../fixtures/osx-10.14.6/ping-ip-p-streaming.json",".../fixtures/osx-10.14.6/ping-ip-s-streaming.json","tests/fixtures/osx-10.14.6/ping-ip-streaming.json",".../osx-10.14.6/ping-ip-unreachable-streaming.json",".../osx-10.14.6/ping6-hostname-p-streaming.json",".../osx-10.14.6/ping6-hostname-s-streaming.json",".../osx-10.14.6/ping6-hostname-streaming.json",".../osx-10.14.6/ping6-ip-dup-streaming.json",".../fixtures/osx-10.14.6/ping6-ip-p-streaming.json",".../fixtures/osx-10.14.6/ping6-ip-s-streaming.json","tests/fixtures/osx-10.14.6/ping6-ip-streaming.json","tests/fixtures/pi/ping-ip-O-D-streaming.json","tests/fixtures/pi/ping-ip-O-streaming.json","tests/test_ping_s.py"],"file_stats":[{"name":".../osx-10.14.6/ping-hostname-p-streaming.json","lines_changed":1},{"name":".../osx-10.14.6/ping-hostname-s-streaming.json","lines_changed":1},{"name":".../osx-10.14.6/ping-hostname-streaming.json","lines_changed":1},{"name":".../osx-10.14.6/ping-ip-dup-streaming.json","lines_changed":1},{"name":".../fixtures/osx-10.14.6/ping-ip-p-streaming.json","lines_changed":1},{"name":".../fixtures/osx-10.14.6/ping-ip-s-streaming.json","lines_changed":1},{"name":"tests/fixtures/osx-10.14.6/ping-ip-streaming.json","lines_changed":1},{"name":".../osx-10.14.6/ping-ip-unreachable-streaming.json","lines_changed":1},{"name":".../osx-10.14.6/ping6-hostname-p-streaming.json","lines_changed":1},{"name":".../osx-10.14.6/ping6-hostname-s-streaming.json","lines_changed":1},{"name":".../osx-10.14.6/ping6-hostname-streaming.json","lines_changed":1},{"name":".../osx-10.14.6/ping6-ip-dup-streaming.json","lines_changed":1},{"name":".../fixtures/osx-10.14.6/ping6-ip-p-streaming.json","lines_changed":1},{"name":".../fixtures/osx-10.14.6/ping6-ip-s-streaming.json","lines_changed":1},{"name":"tests/fixtures/osx-10.14.6/ping6-ip-streaming.json","lines_changed":1},{"name":"tests/fixtures/pi/ping-ip-O-D-streaming.json","lines_changed":1},{"name":"tests/fixtures/pi/ping-ip-O-streaming.json","lines_changed":1},{"name":"tests/test_ping_s.py","lines_changed":304}]}},{"commit":"39ef88078f43708e470d3c1b2fd95e76b5cbeb08","message":"add destination_ip to error lines","stats":{"files_changed":1,"insertions":1,"deletions":0,"files":["jc/parsers/ping_s.py"],"file_stats":[{"name":"jc/parsers/ping_s.py","lines_changed":1}]}},{"commit":"aeea5e8d2eab2fef3e14637f512aed7b117c4a3f","message":"formatting","stats":{"files_changed":1,"insertions":2,"deletions":0,"files":["tests/test_ls_s.py"],"file_stats":[{"name":"tests/test_ls_s.py","lines_changed":2}]}},{"commit":"1a0700bff4bdebbd9f1f92f2fc7a56c4d5ed6925","message":"add more ping-s tests","stats":{"files_changed":31,"insertions":240,"deletions":213,"files":[".../fedora32/ping-hostname-O-D-p-s-streaming.json",".../fedora32/ping-hostname-O-p-streaming.json",".../fedora32/ping-hostname-O-streaming.json","tests/fixtures/fedora32/ping-ip-O-D-streaming.json","tests/fixtures/fedora32/ping-ip-O-streaming.json",".../fedora32/ping6-hostname-O-D-p-s-streaming.json",".../fedora32/ping6-hostname-O-p-streaming.json",".../fedora32/ping6-ip-O-D-p-streaming.json",".../fixtures/fedora32/ping6-ip-O-p-streaming.json",".../freebsd12/ping-hostname-p-streaming.json",".../freebsd12/ping-hostname-s-streaming.json",".../freebsd12/ping-hostname-streaming.json","tests/fixtures/freebsd12/ping-ip-p-streaming.json","tests/fixtures/freebsd12/ping-ip-s-streaming.json","tests/fixtures/freebsd12/ping-ip-streaming.json",".../freebsd12/ping6-hostname-p-streaming.json",".../freebsd12/ping6-hostname-s-streaming.json",".../freebsd12/ping6-hostname-streaming.json","tests/fixtures/freebsd12/ping6-ip-p-streaming.json","tests/fixtures/freebsd12/ping6-ip-s-streaming.json","tests/fixtures/freebsd12/ping6-ip-streaming.json",".../ping-hostname-O-D-p-s-streaming.json",".../ubuntu-18.04/ping-hostname-O-p-streaming.json",".../ubuntu-18.04/ping-hostname-O-streaming.json",".../ubuntu-18.04/ping-ip-O-D-streaming.json",".../fixtures/ubuntu-18.04/ping-ip-O-streaming.json",".../ping6-hostname-O-D-p-s-streaming.json",".../ubuntu-18.04/ping6-hostname-O-p-streaming.json",".../ubuntu-18.04/ping6-ip-O-D-p-streaming.json",".../ubuntu-18.04/ping6-ip-O-p-streaming.json","tests/test_ping_s.py"],"file_stats":[{"name":".../fedora32/ping-hostname-O-D-p-s-streaming.json","lines_changed":1},{"name":".../fedora32/ping-hostname-O-p-streaming.json","lines_changed":1},{"name":".../fedora32/ping-hostname-O-streaming.json","lines_changed":1},{"name":"tests/fixtures/fedora32/ping-ip-O-D-streaming.json","lines_changed":1},{"name":"tests/fixtures/fedora32/ping-ip-O-streaming.json","lines_changed":1},{"name":".../fedora32/ping6-hostname-O-D-p-s-streaming.json","lines_changed":1},{"name":".../fedora32/ping6-hostname-O-p-streaming.json","lines_changed":1},{"name":".../fedora32/ping6-ip-O-D-p-streaming.json","lines_changed":1},{"name":".../fixtures/fedora32/ping6-ip-O-p-streaming.json","lines_changed":1},{"name":".../freebsd12/ping-hostname-p-streaming.json","lines_changed":1},{"name":".../freebsd12/ping-hostname-s-streaming.json","lines_changed":1},{"name":".../freebsd12/ping-hostname-streaming.json","lines_changed":1},{"name":"tests/fixtures/freebsd12/ping-ip-p-streaming.json","lines_changed":1},{"name":"tests/fixtures/freebsd12/ping-ip-s-streaming.json","lines_changed":1},{"name":"tests/fixtures/freebsd12/ping-ip-streaming.json","lines_changed":1},{"name":".../freebsd12/ping6-hostname-p-streaming.json","lines_changed":1},{"name":".../freebsd12/ping6-hostname-s-streaming.json","lines_changed":1},{"name":".../freebsd12/ping6-hostname-streaming.json","lines_changed":1},{"name":"tests/fixtures/freebsd12/ping6-ip-p-streaming.json","lines_changed":1},{"name":"tests/fixtures/freebsd12/ping6-ip-s-streaming.json","lines_changed":1},{"name":"tests/fixtures/freebsd12/ping6-ip-streaming.json","lines_changed":1},{"name":".../ping-hostname-O-D-p-s-streaming.json","lines_changed":1},{"name":".../ubuntu-18.04/ping-hostname-O-p-streaming.json","lines_changed":1},{"name":".../ubuntu-18.04/ping-hostname-O-streaming.json","lines_changed":1},{"name":".../ubuntu-18.04/ping-ip-O-D-streaming.json","lines_changed":1},{"name":".../fixtures/ubuntu-18.04/ping-ip-O-streaming.json","lines_changed":1},{"name":".../ping6-hostname-O-D-p-s-streaming.json","lines_changed":1},{"name":".../ubuntu-18.04/ping6-hostname-O-p-streaming.json","lines_changed":1},{"name":".../ubuntu-18.04/ping6-ip-O-D-p-streaming.json","lines_changed":1},{"name":".../ubuntu-18.04/ping6-ip-O-p-streaming.json","lines_changed":1},{"name":"tests/test_ping_s.py","lines_changed":423}]}},{"commit":"b5fa6d068f240671eb948b055cd4f7bf127e0ec0","message":"update docs","stats":{"files_changed":5,"insertions":25,"deletions":5,"files":["docs/parsers/ls_s.md","docs/parsers/ping_s.md","jc/parsers/foo_s.py","jc/parsers/ls_s.py","jc/parsers/ping_s.py"],"file_stats":[{"name":"docs/parsers/ls_s.md","lines_changed":6},{"name":"docs/parsers/ping_s.md","lines_changed":6},{"name":"jc/parsers/foo_s.py","lines_changed":6},{"name":"jc/parsers/ls_s.py","lines_changed":6},{"name":"jc/parsers/ping_s.py","lines_changed":6}]}},{"commit":"1baec0b420feff068f2dc1e35499f78aa7d0a6e0","message":"add some streaming tests","stats":{"files_changed":13,"insertions":815,"deletions":0,"files":[".../ping-hostname-O-D-p-s-streaming.json",".../centos-7.7/ping-hostname-O-p-streaming.json",".../centos-7.7/ping-hostname-O-streaming.json",".../fixtures/centos-7.7/ping-ip-O-D-streaming.json",".../centos-7.7/ping-ip-O-streaming-quiet.json","tests/fixtures/centos-7.7/ping-ip-O-streaming.json",".../fixtures/centos-7.7/ping-ip-dup-streaming.json",".../ping6-hostname-O-D-p-s-streaming.json",".../centos-7.7/ping6-hostname-O-p-streaming.json",".../centos-7.7/ping6-ip-O-D-p-streaming.json",".../centos-7.7/ping6-ip-O-p-streaming.json",".../centos-7.7/ping6-ip-dup-streaming.json","tests/test_ping_s.py"],"file_stats":[{"name":".../ping-hostname-O-D-p-s-streaming.json","lines_changed":1},{"name":".../centos-7.7/ping-hostname-O-p-streaming.json","lines_changed":1},{"name":".../centos-7.7/ping-hostname-O-streaming.json","lines_changed":1},{"name":".../fixtures/centos-7.7/ping-ip-O-D-streaming.json","lines_changed":1},{"name":".../centos-7.7/ping-ip-O-streaming-quiet.json","lines_changed":1},{"name":"tests/fixtures/centos-7.7/ping-ip-O-streaming.json","lines_changed":1},{"name":".../fixtures/centos-7.7/ping-ip-dup-streaming.json","lines_changed":1},{"name":".../ping6-hostname-O-D-p-s-streaming.json","lines_changed":1},{"name":".../centos-7.7/ping6-hostname-O-p-streaming.json","lines_changed":1},{"name":".../centos-7.7/ping6-ip-O-D-p-streaming.json","lines_changed":1},{"name":".../centos-7.7/ping6-ip-O-p-streaming.json","lines_changed":1},{"name":".../centos-7.7/ping6-ip-dup-streaming.json","lines_changed":1},{"name":"tests/test_ping_s.py","lines_changed":803}]}},{"commit":"4f2a4e1dee9d722d2aa5ddf2c082a358c88cf640","message":"skip blank lines and warning lines","stats":{"files_changed":1,"insertions":8,"deletions":0,"files":["jc/parsers/ping_s.py"],"file_stats":[{"name":"jc/parsers/ping_s.py","lines_changed":8}]}},{"commit":"758d617668d1f9d0f27b52d46749e5b67a570cf1","message":"doc update","stats":{"files_changed":5,"insertions":5,"deletions":5,"files":["docs/parsers/ls_s.md","docs/parsers/ping_s.md","jc/parsers/foo_s.py","jc/parsers/ls_s.py","jc/parsers/ping_s.py"],"file_stats":[{"name":"docs/parsers/ls_s.md","lines_changed":2},{"name":"docs/parsers/ping_s.md","lines_changed":2},{"name":"jc/parsers/foo_s.py","lines_changed":2},{"name":"jc/parsers/ls_s.py","lines_changed":2},{"name":"jc/parsers/ping_s.py","lines_changed":2}]}},{"commit":"55322c37f57a9c8e28641a61928fad2329f5e50d","message":"formatting","stats":{"files_changed":1,"insertions":2,"deletions":2,"files":["jc/parsers/foo_s.py"],"file_stats":[{"name":"jc/parsers/foo_s.py","lines_changed":4}]}},{"commit":"d19ea5552bb3a379f7f92bcb58794c557ecc6647","message":"add streaming ls parser tests","stats":{"files_changed":12,"insertions":193,"deletions":0,"files":["tests/fixtures/centos-7.7/ls-al-streaming.json","tests/fixtures/centos-7.7/ls-alR-streaming.json","tests/fixtures/centos-7.7/ls-alh-streaming.json","tests/fixtures/osx-10.14.6/ls-al-streaming.json","tests/fixtures/osx-10.14.6/ls-alR-streaming.json","tests/fixtures/osx-10.14.6/ls-alh-streaming.json",".../osx-10.14.6/ls-lR-empty-folder-streaming.json","tests/fixtures/ubuntu-18.04/ls-al-streaming.json","tests/fixtures/ubuntu-18.04/ls-alR-streaming.json","tests/fixtures/ubuntu-18.04/ls-alh-streaming.json",".../fixtures/ubuntu-18.04/ls-l-iso-streaming.json","tests/test_ls_s.py"],"file_stats":[{"name":"tests/fixtures/centos-7.7/ls-al-streaming.json","lines_changed":1},{"name":"tests/fixtures/centos-7.7/ls-alR-streaming.json","lines_changed":1},{"name":"tests/fixtures/centos-7.7/ls-alh-streaming.json","lines_changed":1},{"name":"tests/fixtures/osx-10.14.6/ls-al-streaming.json","lines_changed":1},{"name":"tests/fixtures/osx-10.14.6/ls-alR-streaming.json","lines_changed":1},{"name":"tests/fixtures/osx-10.14.6/ls-alh-streaming.json","lines_changed":1},{"name":".../osx-10.14.6/ls-lR-empty-folder-streaming.json","lines_changed":1},{"name":"tests/fixtures/ubuntu-18.04/ls-al-streaming.json","lines_changed":1},{"name":"tests/fixtures/ubuntu-18.04/ls-alR-streaming.json","lines_changed":1},{"name":"tests/fixtures/ubuntu-18.04/ls-alh-streaming.json","lines_changed":1},{"name":".../fixtures/ubuntu-18.04/ls-l-iso-streaming.json","lines_changed":1},{"name":"tests/test_ls_s.py","lines_changed":182}]}},{"commit":"130c3527c1083d399deef00ee8fcaa75f609b485","message":"update docstrings","stats":{"files_changed":6,"insertions":25,"deletions":25,"files":["docs/parsers/ls_s.md","docs/parsers/ping_s.md","jc/parsers/foo_s.py","jc/parsers/ls_s.py","jc/parsers/ping_s.py","man/jc.1"],"file_stats":[{"name":"docs/parsers/ls_s.md","lines_changed":8},{"name":"docs/parsers/ping_s.md","lines_changed":12},{"name":"jc/parsers/foo_s.py","lines_changed":6},{"name":"jc/parsers/ls_s.py","lines_changed":10},{"name":"jc/parsers/ping_s.py","lines_changed":12},{"name":"man/jc.1","lines_changed":2}]}},{"commit":"3f221f471416766a860bd19850afda4899ee5eb3","message":"doc update","stats":{"files_changed":2,"insertions":8,"deletions":4,"files":["docs/parsers/ping_s.md","jc/parsers/ping_s.py"],"file_stats":[{"name":"docs/parsers/ping_s.md","lines_changed":6},{"name":"jc/parsers/ping_s.py","lines_changed":6}]}},{"commit":"d64c4cb39056bb869fc117477612ae5ae2ef3d85","message":"add streaming parsers section","stats":{"files_changed":2,"insertions":141,"deletions":1,"files":["man/jc.1","templates/manpage_template"],"file_stats":[{"name":"man/jc.1","lines_changed":72},{"name":"templates/manpage_template","lines_changed":70}]}},{"commit":"448c56aa46b72438e4a4c83b10a7eb889e3f50e7","message":"formatting","stats":{"files_changed":2,"insertions":2,"deletions":2,"files":["README.md","templates/readme_template"],"file_stats":[{"name":"README.md","lines_changed":2},{"name":"templates/readme_template","lines_changed":2}]}},{"commit":"9fbea15b6d031baa8c90f2602e39de7cf51408e2","message":"rename state class to _state","stats":{"files_changed":2,"insertions":2,"deletions":8,"files":["docs/parsers/ping_s.md","jc/parsers/ping_s.py"],"file_stats":[{"name":"docs/parsers/ping_s.md","lines_changed":6},{"name":"jc/parsers/ping_s.py","lines_changed":4}]}},{"commit":"932060314b3c1ce518b9f57532e124285cb3ad0a","message":"doc update","stats":{"files_changed":2,"insertions":41,"deletions":11,"files":["docs/parsers/ping_s.md","jc/parsers/ping_s.py"],"file_stats":[{"name":"docs/parsers/ping_s.md","lines_changed":50},{"name":"jc/parsers/ping_s.py","lines_changed":2}]}},{"commit":"5e68ae50097cb339f3390449db7e3f189a716320","message":"import exception. tighten up os detection","stats":{"files_changed":1,"insertions":4,"deletions":3,"files":["jc/parsers/ping_s.py"],"file_stats":[{"name":"jc/parsers/ping_s.py","lines_changed":7}]}},{"commit":"d03541beae44a4571a7d0481af01a5c19506207f","message":"add docstring examples. add exception raise when OS cannot be detected.","stats":{"files_changed":1,"insertions":12,"deletions":5,"files":["jc/parsers/ping_s.py"],"file_stats":[{"name":"jc/parsers/ping_s.py","lines_changed":17}]}},{"commit":"516fa571d90a0c93134c953c15ce84dd31b96b4b","message":"remove unused variable. use elif instead of if for linux vs. bsd detection","stats":{"files_changed":1,"insertions":1,"deletions":2,"files":["jc/parsers/ping_s.py"],"file_stats":[{"name":"jc/parsers/ping_s.py","lines_changed":3}]}},{"commit":"a19c12096a8e8de02a6ff761cc9c13ec249d416e","message":"initial working parser for both linux and bsd","stats":{"files_changed":1,"insertions":373,"deletions":143,"files":["jc/parsers/ping_s.py"],"file_stats":[{"name":"jc/parsers/ping_s.py","lines_changed":516}]}},{"commit":"758f27945de4f0897405eba02c7908d815ce6e9b","message":"change data_bytes and bytes to sent_bytes and response_bytes","stats":{"files_changed":1,"insertions":9,"deletions":9,"files":["jc/parsers/ping_s.py"],"file_stats":[{"name":"jc/parsers/ping_s.py","lines_changed":18}]}},{"commit":"8b1e8d58df22f8542ccaf7bf3e1eabe6132e7a42","message":"remove unneeded line","stats":{"files_changed":1,"insertions":0,"deletions":1,"files":["jc/parsers/ping_s.py"],"file_stats":[{"name":"jc/parsers/ping_s.py","lines_changed":1}]}},{"commit":"b967489d085319facee077958deaa04956a98343","message":"complete linux coverage including summary","stats":{"files_changed":1,"insertions":81,"deletions":40,"files":["jc/parsers/ping_s.py"],"file_stats":[{"name":"jc/parsers/ping_s.py","lines_changed":121}]}},{"commit":"870d0218be2641e3eddb114c23d54deb23155f25","message":"add unbuffer note","stats":{"files_changed":2,"insertions":4,"deletions":0,"files":["docs/parsers/ping_s.md","jc/parsers/ping_s.py"],"file_stats":[{"name":"docs/parsers/ping_s.md","lines_changed":2},{"name":"jc/parsers/ping_s.py","lines_changed":2}]}},{"commit":"84020bc2af294cb065105f1399453aefc98eb180","message":"change error_msg to error in -q result docs","stats":{"files_changed":7,"insertions":12,"deletions":6,"files":["docs/parsers/ls_s.md","docs/parsers/ping_s.md","docs/utils.md","jc/parsers/foo_s.py","jc/parsers/ls_s.py","jc/parsers/ping_s.py","man/jc.1"],"file_stats":[{"name":"docs/parsers/ls_s.md","lines_changed":2},{"name":"docs/parsers/ping_s.md","lines_changed":2},{"name":"docs/utils.md","lines_changed":6},{"name":"jc/parsers/foo_s.py","lines_changed":2},{"name":"jc/parsers/ls_s.py","lines_changed":2},{"name":"jc/parsers/ping_s.py","lines_changed":2},{"name":"man/jc.1","lines_changed":2}]}},{"commit":"4efe5344e069ed921f208bcbbd097705be2d3b4f","message":"add links to HN and Reddit","stats":{"files_changed":2,"insertions":4,"deletions":0,"files":["README.md","templates/readme_template"],"file_stats":[{"name":"README.md","lines_changed":2},{"name":"templates/readme_template","lines_changed":2}]}},{"commit":"9182c545134b3d56d27d2c1d9bda678532bdc3fb","message":"formatting","stats":{"files_changed":1,"insertions":3,"deletions":8,"files":["jc/utils.py"],"file_stats":[{"name":"jc/utils.py","lines_changed":11}]}},{"commit":"28f0ab0b02d21fc060f1ac7181f85552798dc4bd","message":"update streaming error messages","stats":{"files_changed":2,"insertions":2,"deletions":2,"files":["jc/parsers/ls_s.py","jc/utils.py"],"file_stats":[{"name":"jc/parsers/ls_s.py","lines_changed":2},{"name":"jc/utils.py","lines_changed":2}]}},{"commit":"90d1a30696b2cbfbb06a55cc0cf920cf8ecd89aa","message":"formatting","stats":{"files_changed":2,"insertions":2,"deletions":2,"files":["README.md","templates/readme_template"],"file_stats":[{"name":"README.md","lines_changed":2},{"name":"templates/readme_template","lines_changed":2}]}},{"commit":"130b3738cc57fe261e8ef881a57b7836acd7e7e9","message":"shorten successful yield to a single line","stats":{"files_changed":4,"insertions":21,"deletions":26,"files":["jc/parsers/foo_s.py","jc/parsers/ls_s.py","jc/parsers/ping_s.py","jc/utils.py"],"file_stats":[{"name":"jc/parsers/foo_s.py","lines_changed":8},{"name":"jc/parsers/ls_s.py","lines_changed":8},{"name":"jc/parsers/ping_s.py","lines_changed":14},{"name":"jc/utils.py","lines_changed":17}]}},{"commit":"92c7357615af7689db273aa78d666b35a2ec7a70","message":"formatting","stats":{"files_changed":1,"insertions":2,"deletions":0,"files":["jc/parsers/foo_s.py"],"file_stats":[{"name":"jc/parsers/foo_s.py","lines_changed":2}]}},{"commit":"c80f8633349c00ea461b8927f9949fe19b2f46ee","message":"simplify return condition formatting","stats":{"files_changed":1,"insertions":5,"deletions":5,"files":["jc/parsers/foo.py"],"file_stats":[{"name":"jc/parsers/foo.py","lines_changed":10}]}},{"commit":"4642c20179d4643e0cf1970b264da7d9d91628de","message":"formatting","stats":{"files_changed":2,"insertions":4,"deletions":4,"files":["README.md","templates/readme_template"],"file_stats":[{"name":"README.md","lines_changed":4},{"name":"templates/readme_template","lines_changed":4}]}},{"commit":"5288eb22aadbbc1005b16428b94d2b07e9a75e3c","message":"add info about streaming parser performance characteristics","stats":{"files_changed":2,"insertions":2,"deletions":2,"files":["README.md","templates/readme_template"],"file_stats":[{"name":"README.md","lines_changed":2},{"name":"templates/readme_template","lines_changed":2}]}},{"commit":"df8387a1a99df69eac5005662aaf56d506fa0efd","message":"streaming parsers cannot be used with the magic syntax","stats":{"files_changed":2,"insertions":4,"deletions":0,"files":["README.md","templates/readme_template"],"file_stats":[{"name":"README.md","lines_changed":2},{"name":"templates/readme_template","lines_changed":2}]}},{"commit":"cc38c27f44d3f088609b878304cab8eed75fc8f2","message":"formatting","stats":{"files_changed":2,"insertions":4,"deletions":2,"files":["README.md","templates/readme_template"],"file_stats":[{"name":"README.md","lines_changed":3},{"name":"templates/readme_template","lines_changed":3}]}},{"commit":"64f5357d69fe88b45d710d38948969699e1ca12f","message":"add streaming parsers section","stats":{"files_changed":2,"insertions":84,"deletions":0,"files":["README.md","templates/readme_template"],"file_stats":[{"name":"README.md","lines_changed":42},{"name":"templates/readme_template","lines_changed":42}]}},{"commit":"51debb5649bef431e51e543f1c9270e2810aa58f","message":"add vmstat parser and change from linebuffer to unbuffer","stats":{"files_changed":1,"insertions":3,"deletions":2,"files":["CHANGELOG"],"file_stats":[{"name":"CHANGELOG","lines_changed":5}]}},{"commit":"b48d05a4313b27cf5e69d3e4259542e0b131b60f","message":"change from line buffer output to unbuffer output","stats":{"files_changed":5,"insertions":15,"deletions":15,"files":["README.md","jc/cli.py","man/jc.1","templates/manpage_template","templates/readme_template"],"file_stats":[{"name":"README.md","lines_changed":2},{"name":"jc/cli.py","lines_changed":8},{"name":"man/jc.1","lines_changed":10},{"name":"templates/manpage_template","lines_changed":8},{"name":"templates/readme_template","lines_changed":2}]}},{"commit":"4e7f6b337db61b8a106cf958f6b874157909c87a","message":"simplify yield statements","stats":{"files_changed":3,"insertions":17,"deletions":25,"files":["jc/parsers/foo_s.py","jc/parsers/ls_s.py","jc/parsers/ping_s.py"],"file_stats":[{"name":"jc/parsers/foo_s.py","lines_changed":15},{"name":"jc/parsers/ls_s.py","lines_changed":9},{"name":"jc/parsers/ping_s.py","lines_changed":18}]}},{"commit":"a509d99cafd80862721595ee59ccc4a471b5e5a3","message":"add stream_success dictionary","stats":{"files_changed":1,"insertions":8,"deletions":0,"files":["jc/utils.py"],"file_stats":[{"name":"jc/utils.py","lines_changed":8}]}},{"commit":"481e45fb644ac88fa77ef35643b793f179fe6859","message":"limit parse error msg lenght","stats":{"files_changed":1,"insertions":1,"deletions":1,"files":["jc/parsers/ls_s.py"],"file_stats":[{"name":"jc/parsers/ls_s.py","lines_changed":2}]}},{"commit":"e9038e1720e1c0e520e2f29b718aa8505cbbb9a2","message":"initial streaming ping docs","stats":{"files_changed":1,"insertions":66,"deletions":0,"files":["docs/parsers/ping_s.md"],"file_stats":[{"name":"docs/parsers/ping_s.md","lines_changed":66}]}},{"commit":"8fd9e582bf29275c4daaa3be88ea8d196411b34a","message":"doc update","stats":{"files_changed":1,"insertions":15,"deletions":17,"files":["docs/parsers/ls_s.md"],"file_stats":[{"name":"docs/parsers/ls_s.md","lines_changed":32}]}},{"commit":"c1fd6f48a5a3501499c9fca7239673b8555cc7c6","message":"add stream_error docs","stats":{"files_changed":1,"insertions":6,"deletions":0,"files":["docs/utils.md"],"file_stats":[{"name":"docs/utils.md","lines_changed":6}]}},{"commit":"af615c7f4b3f589ffc1b37cf9834062a04c013cb","message":"add line buffer output option","stats":{"files_changed":6,"insertions":26,"deletions":5,"files":["CHANGELOG","README.md","jc/cli.py","man/jc.1","templates/manpage_template","templates/readme_template"],"file_stats":[{"name":"CHANGELOG","lines_changed":2},{"name":"README.md","lines_changed":4},{"name":"jc/cli.py","lines_changed":7},{"name":"man/jc.1","lines_changed":11},{"name":"templates/manpage_template","lines_changed":4},{"name":"templates/readme_template","lines_changed":3}]}},{"commit":"bf0bc32d7ae6cabe07906207f4f08c2e81802c80","message":"flush streamed text for better piping experience","stats":{"files_changed":1,"insertions":2,"deletions":1,"files":["jc/cli.py"],"file_stats":[{"name":"jc/cli.py","lines_changed":3}]}},{"commit":"2d6b53e012181a4c33bab441880c47c0fc0b0601","message":"add pattern support. move unparsable line detection to standard streaming parser style","stats":{"files_changed":1,"insertions":36,"deletions":42,"files":["jc/parsers/ping_s.py"],"file_stats":[{"name":"jc/parsers/ping_s.py","lines_changed":78}]}},{"commit":"51271fea0fbd7bd63863ba05c399b4675dc5b4bf","message":"somewhat working parser","stats":{"files_changed":1,"insertions":139,"deletions":149,"files":["jc/parsers/ping_s.py"],"file_stats":[{"name":"jc/parsers/ping_s.py","lines_changed":288}]}},{"commit":"2deb473e0bc96c0e39ec4074a6df4b941ba2172b","message":"initial streaming ping parser","stats":{"files_changed":1,"insertions":262,"deletions":0,"files":["jc/parsers/ping_s.py"],"file_stats":[{"name":"jc/parsers/ping_s.py","lines_changed":262}]}},{"commit":"23eeb33b3da43a679c3bf3f3643cfa552a1164e1","message":"modify stream_error message","stats":{"files_changed":1,"insertions":1,"deletions":1,"files":["jc/utils.py"],"file_stats":[{"name":"jc/utils.py","lines_changed":2}]}},{"commit":"f50dfaef45632241f8f6972fa19bb17c54a457ff","message":"use stream_error function for exceptions. raise on non -l ls output","stats":{"files_changed":1,"insertions":6,"deletions":13,"files":["jc/parsers/ls_s.py"],"file_stats":[{"name":"jc/parsers/ls_s.py","lines_changed":19}]}},{"commit":"55bb71e9d466cc9ee5f7fd8eca1101c941cbcb35","message":"add streaming ping parser. update streaming exception message","stats":{"files_changed":1,"insertions":2,"deletions":1,"files":["jc/cli.py"],"file_stats":[{"name":"jc/cli.py","lines_changed":3}]}},{"commit":"dab9357d286962b70224d6fafbf90a4c0cbc9980","message":"use stream_error function for exceptions","stats":{"files_changed":1,"insertions":1,"deletions":12,"files":["jc/parsers/foo_s.py"],"file_stats":[{"name":"jc/parsers/foo_s.py","lines_changed":13}]}},{"commit":"27eb427245b5126335cef0adb5e57522272474b5","message":"add stream_error function","stats":{"files_changed":1,"insertions":16,"deletions":0,"files":["jc/utils.py"],"file_stats":[{"name":"jc/utils.py","lines_changed":16}]}},{"commit":"260f3685d944ded84396ae3395773d6898803fb6","message":"add streaming parser template","stats":{"files_changed":1,"insertions":112,"deletions":0,"files":["jc/parsers/foo_s.py"],"file_stats":[{"name":"jc/parsers/foo_s.py","lines_changed":112}]}},{"commit":"76e78fc0c34b88a90fef876eebef92bd71cd772c","message":"doc updates","stats":{"files_changed":1,"insertions":9,"deletions":11,"files":["jc/parsers/ls_s.py"],"file_stats":[{"name":"jc/parsers/ls_s.py","lines_changed":20}]}},{"commit":"1ac944fa028a400ae7b39b811fcf368c9bf5e259","message":"add -q option info to docstring","stats":{"files_changed":1,"insertions":2,"deletions":0,"files":["jc/parsers/ls_s.py"],"file_stats":[{"name":"jc/parsers/ls_s.py","lines_changed":2}]}},{"commit":"986bc9b042a940f8dd34f0541bcb9b5840df579e","message":"cleanup unused code","stats":{"files_changed":1,"insertions":9,"deletions":43,"files":["jc/parsers/ls_s.py"],"file_stats":[{"name":"jc/parsers/ls_s.py","lines_changed":52}]}},{"commit":"5a7942069b1f3ef3b45992b482bfb6bb973f7e8e","message":"add support for parent field","stats":{"files_changed":1,"insertions":28,"deletions":28,"files":["jc/parsers/ls_s.py"],"file_stats":[{"name":"jc/parsers/ls_s.py","lines_changed":56}]}},{"commit":"f6c6fc13ac4c779667807df12444a41ef28a8011","message":"enhance error msg when streaming parser is used","stats":{"files_changed":1,"insertions":5,"deletions":0,"files":["jc/cli.py"],"file_stats":[{"name":"jc/cli.py","lines_changed":5}]}},{"commit":"1d8cfae89f24192b6fab087f59c9b8988ef363dc","message":"only print _meta object if -q or quiet flag is used. Also, add message to the end of exceptions informing of the -q option to ignore errors","stats":{"files_changed":1,"insertions":7,"deletions":4,"files":["jc/parsers/ls_s.py"],"file_stats":[{"name":"jc/parsers/ls_s.py","lines_changed":11}]}},{"commit":"787df51239ffa8260b48d6a3a58e6ff07d5e0f64","message":"remove `\\n` from end of line in exception message","stats":{"files_changed":1,"insertions":1,"deletions":1,"files":["jc/parsers/ls_s.py"],"file_stats":[{"name":"jc/parsers/ls_s.py","lines_changed":2}]}},{"commit":"5e7f302a9c45343c36e81944db38a435e6c8a20c","message":"Raise exceptions unless the -q or quiet flag are used","stats":{"files_changed":1,"insertions":12,"deletions":10,"files":["jc/parsers/ls_s.py"],"file_stats":[{"name":"jc/parsers/ls_s.py","lines_changed":22}]}},{"commit":"3d10fd40b56264836874da19aa72351e6d5cfbf7","message":"remove print flush for better performance. Roll json.JSONDecodeError into the parse try/except block","stats":{"files_changed":1,"insertions":14,"deletions":13,"files":["jc/cli.py"],"file_stats":[{"name":"jc/cli.py","lines_changed":27}]}},{"commit":"57e3bf239cc76d3b0ee0eddc618171eb90c28dec","message":"formatting for docs","stats":{"files_changed":2,"insertions":6,"deletions":6,"files":["docs/parsers/ls_s.md","jc/parsers/ls_s.py"],"file_stats":[{"name":"docs/parsers/ls_s.md","lines_changed":6},{"name":"jc/parsers/ls_s.py","lines_changed":6}]}},{"commit":"ccb09861e82044e17ec51277b3c8875e5ba9d87d","message":"formatting for docs","stats":{"files_changed":2,"insertions":20,"deletions":20,"files":["docs/parsers/ls_s.md","jc/parsers/ls_s.py"],"file_stats":[{"name":"docs/parsers/ls_s.md","lines_changed":20},{"name":"jc/parsers/ls_s.py","lines_changed":20}]}},{"commit":"94551d75dd926c7f558e5cab47ba9483a20c6b3c","message":"doc update","stats":{"files_changed":10,"insertions":116,"deletions":49,"files":["CHANGELOG","README.md","docs/parsers/ls_s.md","docs/readme.md","jc/__init__.py","jc/man/jc.1.gz","man/jc.1","man/jc.1.gz","mangen.py","setup.py"],"file_stats":[{"name":"CHANGELOG","lines_changed":6},{"name":"README.md","lines_changed":1},{"name":"docs/parsers/ls_s.md","lines_changed":89},{"name":"docs/readme.md","lines_changed":25},{"name":"jc/__init__.py","lines_changed":27},{"name":"jc/man/jc.1.gz","lines_changed":null},{"name":"man/jc.1","lines_changed":7},{"name":"man/jc.1.gz","lines_changed":null},{"name":"mangen.py","lines_changed":8},{"name":"setup.py","lines_changed":2}]}},{"commit":"6e21218425359210591827e936b8d48d9644df92","message":"working prototype of streaming ls parser","stats":{"files_changed":2,"insertions":234,"deletions":3,"files":["jc/cli.py","jc/parsers/ls_s.py"],"file_stats":[{"name":"jc/cli.py","lines_changed":23},{"name":"jc/parsers/ls_s.py","lines_changed":214}]}},{"commit":"ff0fda48fc48760a7293528155d222c6456f84c4","message":"Merge pull request #168 from kellyjonbrazil/master"},{"commit":"528aac7ad87feae2093aba563c83a29ebf75e5f9","message":"use subprocess in python example","stats":{"files_changed":2,"insertions":8,"deletions":38,"files":["README.md","templates/readme_template"],"file_stats":[{"name":"README.md","lines_changed":23},{"name":"templates/readme_template","lines_changed":23}]}},{"commit":"ab482e521d4cecfffa5393805b1d7de4389db49a","message":"Merge pull request #163 from kellyjonbrazil/dev"},{"commit":"e08b61fa81b1bd2304d04db5cdc8b809fe9c6032","message":"add schema note to sfdisk","stats":{"files_changed":4,"insertions":2,"deletions":2,"files":["docs/parsers/sfdisk.md","jc/man/jc.1.gz","man/jc.1","man/jc.1.gz"],"file_stats":[{"name":"docs/parsers/sfdisk.md","lines_changed":2},{"name":"jc/man/jc.1.gz","lines_changed":null},{"name":"man/jc.1","lines_changed":2},{"name":"man/jc.1.gz","lines_changed":null}]}},{"commit":"ce61bd1d2b4323d9c2d0454c4f646521913ae20d","message":"add tests for -F fixes","stats":{"files_changed":7,"insertions":73,"deletions":7,"files":["tests/fixtures/debian10/sfdisk-F2.json","tests/fixtures/debian10/sfdisk-F2.out","tests/fixtures/debian10/sfdisk-l2.json","tests/fixtures/debian10/sfdisk-l2.out","tests/fixtures/debian10/sfdisk-l3.json","tests/fixtures/debian10/sfdisk-l3.out","tests/test_sfdisk.py"],"file_stats":[{"name":"tests/fixtures/debian10/sfdisk-F2.json","lines_changed":1},{"name":"tests/fixtures/debian10/sfdisk-F2.out","lines_changed":6},{"name":"tests/fixtures/debian10/sfdisk-l2.json","lines_changed":1},{"name":"tests/fixtures/debian10/sfdisk-l2.out","lines_changed":15},{"name":"tests/fixtures/debian10/sfdisk-l3.json","lines_changed":1},{"name":"tests/fixtures/debian10/sfdisk-l3.out","lines_changed":13},{"name":"tests/test_sfdisk.py","lines_changed":43}]}},{"commit":"7b708f75182bf3ed33478a7de62e9c2496f0b994","message":"Don't convert 'size' to int, except for legacy -d support. Change partition table detection logic to fix -F output","stats":{"files_changed":3,"insertions":11,"deletions":5,"files":["jc/parsers/sfdisk.py","tests/fixtures/centos-8/sfdisk-l.json","tests/fixtures/debian10/sfdisk-l.json"],"file_stats":[{"name":"jc/parsers/sfdisk.py","lines_changed":12},{"name":"tests/fixtures/centos-8/sfdisk-l.json","lines_changed":2},{"name":"tests/fixtures/debian10/sfdisk-l.json","lines_changed":2}]}},{"commit":"89ca50c7fc1bf64f34c915e65031d0bc520e6466","message":"add -l to sfdisk raw example","stats":{"files_changed":4,"insertions":2,"deletions":2,"files":["docs/parsers/sfdisk.md","jc/man/jc.1.gz","jc/parsers/sfdisk.py","man/jc.1.gz"],"file_stats":[{"name":"docs/parsers/sfdisk.md","lines_changed":2},{"name":"jc/man/jc.1.gz","lines_changed":null},{"name":"jc/parsers/sfdisk.py","lines_changed":2},{"name":"man/jc.1.gz","lines_changed":null}]}},{"commit":"fb54899dcc2160450448e0d6111557cebdeb0d4d","message":"doc update","stats":{"files_changed":4,"insertions":38,"deletions":23,"files":["docs/parsers/sfdisk.md","jc/man/jc.1.gz","man/jc.1","man/jc.1.gz"],"file_stats":[{"name":"docs/parsers/sfdisk.md","lines_changed":59},{"name":"jc/man/jc.1.gz","lines_changed":null},{"name":"man/jc.1","lines_changed":2},{"name":"man/jc.1.gz","lines_changed":null}]}},{"commit":"0a625ad7ddd9c804052d98930165cd22049546bd","message":"remove unneeded lines","stats":{"files_changed":1,"insertions":0,"deletions":2,"files":["jc/parsers/sfdisk.py"],"file_stats":[{"name":"jc/parsers/sfdisk.py","lines_changed":2}]}},{"commit":"d32e45efbe0d71a9a132abfb2855f1f4ccee9916","message":"add sfdisk tests","stats":{"files_changed":6,"insertions":69,"deletions":1,"files":["jc/parsers/sfdisk.py","tests/fixtures/centos-8/sfdisk-F.json","tests/fixtures/centos-8/sfdisk-l.json","tests/fixtures/debian10/sfdisk-F.json","tests/fixtures/debian10/sfdisk-l.json","tests/test_sfdisk.py"],"file_stats":[{"name":"jc/parsers/sfdisk.py","lines_changed":9},{"name":"tests/fixtures/centos-8/sfdisk-F.json","lines_changed":1},{"name":"tests/fixtures/centos-8/sfdisk-l.json","lines_changed":1},{"name":"tests/fixtures/debian10/sfdisk-F.json","lines_changed":1},{"name":"tests/fixtures/debian10/sfdisk-l.json","lines_changed":1},{"name":"tests/test_sfdisk.py","lines_changed":57}]}},{"commit":"c77696bc789cdfd286a7479c3d9f67d23149d0ce","message":"version bump","stats":{"files_changed":3,"insertions":6,"deletions":2,"files":["CHANGELOG","jc/__init__.py","setup.py"],"file_stats":[{"name":"CHANGELOG","lines_changed":4},{"name":"jc/__init__.py","lines_changed":2},{"name":"setup.py","lines_changed":2}]}},{"commit":"736fde9e784587cb2ef344bbf31d876eafea7741","message":"add support for newer versions of sfdisk","stats":{"files_changed":5,"insertions":147,"deletions":28,"files":["jc/parsers/sfdisk.py","tests/fixtures/centos-8/sfdisk-F.out","tests/fixtures/centos-8/sfdisk-l.out","tests/fixtures/debian10/sfdisk-F.out","tests/fixtures/debian10/sfdisk-l.out"],"file_stats":[{"name":"jc/parsers/sfdisk.py","lines_changed":127},{"name":"tests/fixtures/centos-8/sfdisk-F.out","lines_changed":9},{"name":"tests/fixtures/centos-8/sfdisk-l.out","lines_changed":24},{"name":"tests/fixtures/debian10/sfdisk-F.out","lines_changed":3},{"name":"tests/fixtures/debian10/sfdisk-l.out","lines_changed":12}]}},{"commit":"9c1ad92fed9a4b3a0da66d6b71deec8d608edfa9","message":"fix examples","stats":{"files_changed":1,"insertions":6,"deletions":6,"files":["CONTRIBUTING.md"],"file_stats":[{"name":"CONTRIBUTING.md","lines_changed":12}]}},{"commit":"1a9fd2139d156a51bf2d25db951e47e96da77f7d","message":"add \"For new parsers:\"","stats":{"files_changed":1,"insertions":1,"deletions":1,"files":["CONTRIBUTING.md"],"file_stats":[{"name":"CONTRIBUTING.md","lines_changed":2}]}},{"commit":"7661e7f27a4e5c379ea37c7f95496aca2c1e2910","message":"formatting","stats":{"files_changed":1,"insertions":1,"deletions":1,"files":["CONTRIBUTING.md"],"file_stats":[{"name":"CONTRIBUTING.md","lines_changed":2}]}},{"commit":"f857b7fbf7862ddd7eb5ab20470f5dbaacc62119","message":"add custom parser folder info","stats":{"files_changed":1,"insertions":1,"deletions":1,"files":["CONTRIBUTING.md"],"file_stats":[{"name":"CONTRIBUTING.md","lines_changed":2}]}},{"commit":"d94d12dbc5fb3e3712b2f1aea949013cb8213e28","message":"add foo parser template info","stats":{"files_changed":1,"insertions":6,"deletions":5,"files":["CONTRIBUTING.md"],"file_stats":[{"name":"CONTRIBUTING.md","lines_changed":11}]}},{"commit":"700916276ae8b0a106410e3dd2ea3e00248ee37a","message":"Merge pull request #159 from kellyjonbrazil/master"},{"commit":"834e52369ceb479776ddc8fc2931790af53b9c18","message":"update man page","stats":{"files_changed":3,"insertions":1,"deletions":5,"files":["jc/man/jc.1.gz","man/jc.1","man/jc.1.gz"],"file_stats":[{"name":"jc/man/jc.1.gz","lines_changed":null},{"name":"man/jc.1","lines_changed":6},{"name":"man/jc.1.gz","lines_changed":null}]}},{"commit":"1ce53365de61421c8bd43e04590038083894153b","message":"Merge pull request #156 from kellyjonbrazil/dev"},{"commit":"473f70668f04a38765559c5dbf0468af24d625c9","message":"Merge branch 'master' into dev"},{"commit":"0dbd2702f6ab2640b2ccdea92411ac0789673e66","message":"reformat doc_text for nicer indentation","stats":{"files_changed":1,"insertions":4,"deletions":5,"files":["jc/cli.py"],"file_stats":[{"name":"jc/cli.py","lines_changed":9}]}},{"commit":"01e3764a9b6ba902aea522bf6b7005fd37b3acbb","message":"fix join syntax","stats":{"files_changed":1,"insertions":1,"deletions":1,"files":["jc/cli.py"],"file_stats":[{"name":"jc/cli.py","lines_changed":2}]}},{"commit":"ff9c81722ae7221364e9bcb83d98b16b4263334e","message":"try/except for shlex.join since only available in python 3.8","stats":{"files_changed":1,"insertions":4,"deletions":1,"files":["jc/cli.py"],"file_stats":[{"name":"jc/cli.py","lines_changed":5}]}},{"commit":"166aef7a022ed29862ab2e0702d53c591bb5cc77","message":"version bump","stats":{"files_changed":6,"insertions":4,"deletions":4,"files":["docs/parsers/stat.md","jc/__init__.py","jc/man/jc.1.gz","man/jc.1","man/jc.1.gz","setup.py"],"file_stats":[{"name":"docs/parsers/stat.md","lines_changed":2},{"name":"jc/__init__.py","lines_changed":2},{"name":"jc/man/jc.1.gz","lines_changed":null},{"name":"man/jc.1","lines_changed":2},{"name":"man/jc.1.gz","lines_changed":null},{"name":"setup.py","lines_changed":2}]}},{"commit":"78caf7646baf5d35602fd76771443cd64bd783af","message":"add stat fix","stats":{"files_changed":1,"insertions":1,"deletions":0,"files":["CHANGELOG"],"file_stats":[{"name":"CHANGELOG","lines_changed":1}]}},{"commit":"1f99d40cecc5d88a246f3558f71db376ebd885c6","message":"fix filename with spaces for osx/bsd","stats":{"files_changed":4,"insertions":17,"deletions":2,"files":["jc/parsers/stat.py","tests/fixtures/osx-10.14.6/stat-filename-with-spaces.json","tests/fixtures/osx-10.14.6/stat-filename-with-spaces.out","tests/test_stat.py"],"file_stats":[{"name":"jc/parsers/stat.py","lines_changed":4},{"name":"tests/fixtures/osx-10.14.6/stat-filename-with-spaces.json","lines_changed":1},{"name":"tests/fixtures/osx-10.14.6/stat-filename-with-spaces.out","lines_changed":2},{"name":"tests/test_stat.py","lines_changed":12}]}},{"commit":"4c2912d3d5ec1fd2d5d891f2b3c58a33dd8572be","message":"use shlex.join to quote run_command_str for better error messages","stats":{"files_changed":1,"insertions":2,"deletions":1,"files":["jc/cli.py"],"file_stats":[{"name":"jc/cli.py","lines_changed":3}]}},{"commit":"45e6e06be581f787f707e3f5645129c713478d16","message":"add glob and process substitution fixes","stats":{"files_changed":1,"insertions":5,"deletions":0,"files":["CHANGELOG"],"file_stats":[{"name":"CHANGELOG","lines_changed":5}]}},{"commit":"fdbe3e05f323c95687a1137983f9623911008ca2","message":"fix issue with globs not including filenames with spaces with magic syntax (introduced during switch to use subprocess to grab process exit code). No longer need to shlex quote arguments.","stats":{"files_changed":1,"insertions":1,"deletions":3,"files":["jc/cli.py"],"file_stats":[{"name":"jc/cli.py","lines_changed":4}]}},{"commit":"7cc168f6409af13fda815d0d2a6db25b7c9ba367","message":"add comment","stats":{"files_changed":1,"insertions":1,"deletions":1,"files":["jc/cli.py"],"file_stats":[{"name":"jc/cli.py","lines_changed":2}]}},{"commit":"ff2d609c9b5f5f57f3331e5593e8fe87c01654dd","message":"add close_fds=False in subprocess.Popen() to allow process substitution in magic syntax. Also check for too many open files exception","stats":{"files_changed":1,"insertions":12,"deletions":1,"files":["jc/cli.py"],"file_stats":[{"name":"jc/cli.py","lines_changed":13}]}},{"commit":"2689697b4c21758903e5f74ec069e89be585aba2","message":"formatting","stats":{"files_changed":2,"insertions":2,"deletions":2,"files":["README.md","templates/readme_template"],"file_stats":[{"name":"README.md","lines_changed":2},{"name":"templates/readme_template","lines_changed":2}]}},{"commit":"f90a0ea8ab15629b7786e4431e9c968c3a896ee0","message":"formatting","stats":{"files_changed":1,"insertions":2,"deletions":2,"files":["templates/readme_template"],"file_stats":[{"name":"templates/readme_template","lines_changed":4}]}},{"commit":"caabe60f849fb2422e47b8f10e0ff35beb706dcd","message":"fix kv example","stats":{"files_changed":5,"insertions":3,"deletions":3,"files":["docs/parsers/kv.md","jc/man/jc.1.gz","jc/parsers/kv.py","man/jc.1","man/jc.1.gz"],"file_stats":[{"name":"docs/parsers/kv.md","lines_changed":2},{"name":"jc/man/jc.1.gz","lines_changed":null},{"name":"jc/parsers/kv.py","lines_changed":2},{"name":"man/jc.1","lines_changed":2},{"name":"man/jc.1.gz","lines_changed":null}]}},{"commit":"2bef4ed6038201f54339e750a833260dc1998591","message":"package updates","stats":{"files_changed":2,"insertions":3,"deletions":2,"files":["CHANGELOG","README.md"],"file_stats":[{"name":"CHANGELOG","lines_changed":1},{"name":"README.md","lines_changed":4}]}},{"commit":"ee57be533b12593a33a2abbb2892697f0bd40c65","message":"fix sfdisk example","stats":{"files_changed":1,"insertions":1,"deletions":1,"files":["EXAMPLES.md"],"file_stats":[{"name":"EXAMPLES.md","lines_changed":2}]}},{"commit":"c5b7aaca25d6b66d3e44256c2c6760a4cf2956ec","message":"Merge pull request #149 from kellyjonbrazil/dev"},{"commit":"7a1be905bb8654558afb5979b0bd78d4a8488874","message":"version bump","stats":{"files_changed":3,"insertions":1,"deletions":1,"files":["jc/man/jc.1.gz","man/jc.1","man/jc.1.gz"],"file_stats":[{"name":"jc/man/jc.1.gz","lines_changed":null},{"name":"man/jc.1","lines_changed":2},{"name":"man/jc.1.gz","lines_changed":null}]}},{"commit":"5798495a11afa2f72ce6f79be785d46240fcbeb4","message":"add 1.15.7 to 1.16.0 changes","stats":{"files_changed":1,"insertions":2,"deletions":4,"files":["CHANGELOG"],"file_stats":[{"name":"CHANGELOG","lines_changed":6}]}},{"commit":"46171e220252ec92d18e744d2a57c1d6a6dc19f6","message":"add sfdisk example","stats":{"files_changed":1,"insertions":69,"deletions":0,"files":["EXAMPLES.md"],"file_stats":[{"name":"EXAMPLES.md","lines_changed":69}]}},{"commit":"dd5c924ff505dcc2a9c851d2425677bdf16ea462","message":"add man page location change","stats":{"files_changed":1,"insertions":1,"deletions":0,"files":["CHANGELOG"],"file_stats":[{"name":"CHANGELOG","lines_changed":1}]}},{"commit":"30c4ab297658228a07ef9b1585516719af3febb0","message":"new man page location","stats":{"files_changed":3,"insertions":515,"deletions":0,"files":["jc/man/jc.1.gz","man/jc.1","man/jc.1.gz"],"file_stats":[{"name":"jc/man/jc.1.gz","lines_changed":null},{"name":"man/jc.1","lines_changed":515},{"name":"man/jc.1.gz","lines_changed":null}]}},{"commit":"26ea4d47b33277efb0ddafe8f421791696277c07","message":"version bump and deprecate /man/jc.1.gz and /jc/man/jc.1.gz","stats":{"files_changed":5,"insertions":14,"deletions":3,"files":["CHANGELOG","MANIFEST.in","jc/__init__.py","mangen.py","setup.py"],"file_stats":[{"name":"CHANGELOG","lines_changed":10},{"name":"MANIFEST.in","lines_changed":1},{"name":"jc/__init__.py","lines_changed":2},{"name":"mangen.py","lines_changed":2},{"name":"setup.py","lines_changed":2}]}},{"commit":"2732cd175c1e878210707162de3928f33fb2f201","message":"include CHANGELOG in source distribution","stats":{"files_changed":2,"insertions":4,"deletions":0,"files":["CHANGELOG","MANIFEST.in"],"file_stats":[{"name":"CHANGELOG","lines_changed":3},{"name":"MANIFEST.in","lines_changed":1}]}},{"commit":"3e54b597be88b0e342e4361b7f2c1af447f9482b","message":"add timezone change for unit tests","stats":{"files_changed":1,"insertions":2,"deletions":1,"files":["CHANGELOG"],"file_stats":[{"name":"CHANGELOG","lines_changed":3}]}},{"commit":"f10ebea20962084833e5c1ebd9bc90a251bf3ff4","message":"update tests to set correct timezone on POSIX systems","stats":{"files_changed":11,"insertions":78,"deletions":0,"files":["tests/test_date.py","tests/test_dig.py","tests/test_dir.py","tests/test_last.py","tests/test_ls.py","tests/test_rpm_qai.py","tests/test_stat.py","tests/test_systeminfo.py","tests/test_upower.py","tests/test_utils.py","tests/test_who.py"],"file_stats":[{"name":"tests/test_date.py","lines_changed":7},{"name":"tests/test_dig.py","lines_changed":7},{"name":"tests/test_dir.py","lines_changed":7},{"name":"tests/test_last.py","lines_changed":7},{"name":"tests/test_ls.py","lines_changed":7},{"name":"tests/test_rpm_qai.py","lines_changed":7},{"name":"tests/test_stat.py","lines_changed":7},{"name":"tests/test_systeminfo.py","lines_changed":7},{"name":"tests/test_upower.py","lines_changed":7},{"name":"tests/test_utils.py","lines_changed":8},{"name":"tests/test_who.py","lines_changed":7}]}},{"commit":"2c6f3993cb4c5e559dbac7a479ec889aa2cba752","message":"remove extra comma","stats":{"files_changed":4,"insertions":2,"deletions":2,"files":["docs/parsers/route.md","jc/man/jc.1.gz","jc/parsers/route.py","man/jc.1.gz"],"file_stats":[{"name":"docs/parsers/route.md","lines_changed":2},{"name":"jc/man/jc.1.gz","lines_changed":null},{"name":"jc/parsers/route.py","lines_changed":2},{"name":"man/jc.1.gz","lines_changed":null}]}},{"commit":"708a696920b52c2614edcdba264912527b2dfbef","message":"remove extra lines","stats":{"files_changed":3,"insertions":0,"deletions":2,"files":["docs/parsers/route.md","jc/man/jc.1.gz","man/jc.1.gz"],"file_stats":[{"name":"docs/parsers/route.md","lines_changed":2},{"name":"jc/man/jc.1.gz","lines_changed":null},{"name":"man/jc.1.gz","lines_changed":null}]}},{"commit":"20bbb5d331575c8fc33ba63643882a62650c97b8","message":"remove extra lines","stats":{"files_changed":1,"insertions":0,"deletions":2,"files":["jc/parsers/route.py"],"file_stats":[{"name":"jc/parsers/route.py","lines_changed":2}]}},{"commit":"223e785b547d9376174efa15321d60a533847c57","message":"rename variable","stats":{"files_changed":1,"insertions":4,"deletions":4,"files":["jc/parsers/sfdisk.py"],"file_stats":[{"name":"jc/parsers/sfdisk.py","lines_changed":8}]}},{"commit":"3d78692c59980e4d70361d3a9f74bacc3f21376e","message":"add sfdisk tests","stats":{"files_changed":11,"insertions":150,"deletions":1,"files":["tests/fixtures/centos-7.7/sfdisk-d-multi.json","tests/fixtures/centos-7.7/sfdisk-d-multi.out","tests/fixtures/centos-7.7/sfdisk-d.json","tests/fixtures/centos-7.7/sfdisk-d.out","tests/fixtures/centos-7.7/sfdisk-l-multi.json","tests/fixtures/centos-7.7/sfdisk-l-multi.out","tests/fixtures/centos-7.7/sfdisk-l.json","tests/fixtures/centos-7.7/sfdisk-luB.json","tests/fixtures/centos-7.7/sfdisk-luM.json","tests/fixtures/centos-7.7/sfdisk-luS.json","tests/test_sfdisk.py"],"file_stats":[{"name":"tests/fixtures/centos-7.7/sfdisk-d-multi.json","lines_changed":1},{"name":"tests/fixtures/centos-7.7/sfdisk-d-multi.out","lines_changed":16},{"name":"tests/fixtures/centos-7.7/sfdisk-d.json","lines_changed":1},{"name":"tests/fixtures/centos-7.7/sfdisk-d.out","lines_changed":1},{"name":"tests/fixtures/centos-7.7/sfdisk-l-multi.json","lines_changed":1},{"name":"tests/fixtures/centos-7.7/sfdisk-l-multi.out","lines_changed":21},{"name":"tests/fixtures/centos-7.7/sfdisk-l.json","lines_changed":1},{"name":"tests/fixtures/centos-7.7/sfdisk-luB.json","lines_changed":1},{"name":"tests/fixtures/centos-7.7/sfdisk-luM.json","lines_changed":1},{"name":"tests/fixtures/centos-7.7/sfdisk-luS.json","lines_changed":1},{"name":"tests/test_sfdisk.py","lines_changed":106}]}},{"commit":"5321a15dcf13cf14efe578d0f66b651078c3d8a1","message":"update examples","stats":{"files_changed":4,"insertions":8,"deletions":8,"files":["docs/parsers/sfdisk.md","jc/man/jc.1.gz","jc/parsers/sfdisk.py","man/jc.1.gz"],"file_stats":[{"name":"docs/parsers/sfdisk.md","lines_changed":8},{"name":"jc/man/jc.1.gz","lines_changed":null},{"name":"jc/parsers/sfdisk.py","lines_changed":8},{"name":"man/jc.1.gz","lines_changed":null}]}},{"commit":"a452f8252a593f7914ebece53af9d73f4fd11a19","message":"fix integer conversion","stats":{"files_changed":4,"insertions":4,"deletions":4,"files":["docs/parsers/sfdisk.md","jc/man/jc.1.gz","jc/parsers/sfdisk.py","man/jc.1.gz"],"file_stats":[{"name":"docs/parsers/sfdisk.md","lines_changed":4},{"name":"jc/man/jc.1.gz","lines_changed":null},{"name":"jc/parsers/sfdisk.py","lines_changed":4},{"name":"man/jc.1.gz","lines_changed":null}]}},{"commit":"49267f09ac01fead3b20b2d481bb5e0d07af1439","message":"change to root prompt in examples","stats":{"files_changed":1,"insertions":2,"deletions":2,"files":["jc/parsers/sfdisk.py"],"file_stats":[{"name":"jc/parsers/sfdisk.py","lines_changed":4}]}},{"commit":"db47f35783e46a8299533c22146d851509f6ceb2","message":"add working sfdisk parser","stats":{"files_changed":15,"insertions":610,"deletions":3,"files":["CHANGELOG","README.md","docs/parsers/sfdisk.md","jc/__init__.py","jc/cli.py","jc/man/jc.1.gz","jc/parsers/sfdisk.py","jc/utils.py","man/jc.1.gz","setup.py","tests/fixtures/centos-7.7/sfdisk-d.out","tests/fixtures/centos-7.7/sfdisk-l.out","tests/fixtures/centos-7.7/sfdisk-luB.out","tests/fixtures/centos-7.7/sfdisk-luM.out","tests/fixtures/centos-7.7/sfdisk-luS.out"],"file_stats":[{"name":"CHANGELOG","lines_changed":3},{"name":"README.md","lines_changed":1},{"name":"docs/parsers/sfdisk.md","lines_changed":213},{"name":"jc/__init__.py","lines_changed":2},{"name":"jc/cli.py","lines_changed":1},{"name":"jc/man/jc.1.gz","lines_changed":null},{"name":"jc/parsers/sfdisk.py","lines_changed":325},{"name":"jc/utils.py","lines_changed":2},{"name":"man/jc.1.gz","lines_changed":null},{"name":"setup.py","lines_changed":2},{"name":"tests/fixtures/centos-7.7/sfdisk-d.out","lines_changed":8},{"name":"tests/fixtures/centos-7.7/sfdisk-l.out","lines_changed":14},{"name":"tests/fixtures/centos-7.7/sfdisk-luB.out","lines_changed":14},{"name":"tests/fixtures/centos-7.7/sfdisk-luM.out","lines_changed":14},{"name":"tests/fixtures/centos-7.7/sfdisk-luS.out","lines_changed":14}]}},{"commit":"d48abf312c1f55ab31aa11da2b6cf6bc8166733b","message":"Merge pull request #147 from kellyjonbrazil/master"},{"commit":"3b22ce41105387e7f46a410460cf04759feef197","message":"fix local plugin parser issue where parser has .py in the name but it is not at the end","stats":{"files_changed":6,"insertions":6,"deletions":3,"files":["CHANGELOG","jc/__init__.py","jc/cli.py","jc/man/jc.1.gz","man/jc.1.gz","setup.py"],"file_stats":[{"name":"CHANGELOG","lines_changed":3},{"name":"jc/__init__.py","lines_changed":2},{"name":"jc/cli.py","lines_changed":2},{"name":"jc/man/jc.1.gz","lines_changed":null},{"name":"man/jc.1.gz","lines_changed":null},{"name":"setup.py","lines_changed":2}]}},{"commit":"c521ca5bc9e2b035cfef6ff65f6b303b3ec44296","message":"change possible to available","stats":{"files_changed":2,"insertions":2,"deletions":2,"files":["README.md","templates/readme_template"],"file_stats":[{"name":"README.md","lines_changed":2},{"name":"templates/readme_template","lines_changed":2}]}},{"commit":"3ddc1c665990e1e732314330db214a81ab810fe9","message":"add jello","stats":{"files_changed":2,"insertions":2,"deletions":2,"files":["README.md","templates/readme_template"],"file_stats":[{"name":"README.md","lines_changed":2},{"name":"templates/readme_template","lines_changed":2}]}},{"commit":"a8e19402b7d1f9f06bc40b81a15dec401154180c","message":"remove temporary fix","stats":{"files_changed":1,"insertions":0,"deletions":4,"files":["ADVANCED_USAGE.md"],"file_stats":[{"name":"ADVANCED_USAGE.md","lines_changed":4}]}},{"commit":"0927902b30654274743ab9092e90e768709a9937","message":"temp fix for wrong url","stats":{"files_changed":1,"insertions":4,"deletions":0,"files":["ADVANCED_USAGE.md"],"file_stats":[{"name":"ADVANCED_USAGE.md","lines_changed":4}]}},{"commit":"572548b42fb6ed9d32a392503d44fac1a8f146d3","message":"Merge pull request #141 from kellyjonbrazil/dev"},{"commit":"ff7ab0a1ed7f468d0e84eb3bf0636f53913c490d","message":"doc updates for v1.15.5","stats":{"files_changed":3,"insertions":0,"deletions":1,"files":["CHANGELOG","jc/man/jc.1.gz","man/jc.1.gz"],"file_stats":[{"name":"CHANGELOG","lines_changed":1},{"name":"jc/man/jc.1.gz","lines_changed":null},{"name":"man/jc.1.gz","lines_changed":null}]}},{"commit":"5db71b05cb28691bbbaa5d668bcd4a4ac7e68b85","message":"add en_US.UTF-8 to LANG info","stats":{"files_changed":5,"insertions":3,"deletions":3,"files":["README.md","jc/man/jc.1.gz","man/jc.1.gz","templates/manpage_template","templates/readme_template"],"file_stats":[{"name":"README.md","lines_changed":2},{"name":"jc/man/jc.1.gz","lines_changed":null},{"name":"man/jc.1.gz","lines_changed":null},{"name":"templates/manpage_template","lines_changed":2},{"name":"templates/readme_template","lines_changed":2}]}},{"commit":"f9b952885aa7f2b450786a08c3879d9e358886da","message":"add python 3.9.5 packaged info","stats":{"files_changed":1,"insertions":1,"deletions":0,"files":["CHANGELOG"],"file_stats":[{"name":"CHANGELOG","lines_changed":1}]}},{"commit":"e7983bc0b29abaca2147038dfad018cba1e67cdf","message":"version bump","stats":{"files_changed":2,"insertions":2,"deletions":2,"files":["docs/parsers/xml.md","docs/parsers/yaml.md"],"file_stats":[{"name":"docs/parsers/xml.md","lines_changed":2},{"name":"docs/parsers/yaml.md","lines_changed":2}]}},{"commit":"473a6431425fc24a4cc83939ff592e0d49535b9c","message":"add windows msi info","stats":{"files_changed":4,"insertions":10,"deletions":3,"files":["README.md","jc/man/jc.1.gz","man/jc.1.gz","templates/readme_template"],"file_stats":[{"name":"README.md","lines_changed":11},{"name":"jc/man/jc.1.gz","lines_changed":null},{"name":"man/jc.1.gz","lines_changed":null},{"name":"templates/readme_template","lines_changed":2}]}},{"commit":"14f3d442cb86250b8f2cdfd7977938634b8abd6d","message":"formatting","stats":{"files_changed":1,"insertions":1,"deletions":1,"files":["CHANGELOG"],"file_stats":[{"name":"CHANGELOG","lines_changed":2}]}},{"commit":"d6f4ed9ab55fe9b7c2766fb437172af62a1d5c87","message":"add long-form UTC test","stats":{"files_changed":1,"insertions":2,"deletions":0,"files":["tests/test_utils.py"],"file_stats":[{"name":"tests/test_utils.py","lines_changed":2}]}},{"commit":"1b8d654444ff8c8b8171c7ac63e2736447a36c09","message":"add error message info","stats":{"files_changed":1,"insertions":1,"deletions":0,"files":["CHANGELOG"],"file_stats":[{"name":"CHANGELOG","lines_changed":1}]}},{"commit":"6002af0dca334c0affaff3e9acdca416238c7d82","message":"add more error message detail to the user for ParseError and LibraryNotFound exceptions","stats":{"files_changed":1,"insertions":11,"deletions":0,"files":["jc/cli.py"],"file_stats":[{"name":"jc/cli.py","lines_changed":11}]}},{"commit":"0924d822a30c8806f65574c010561cd6f7c8e181","message":"add windows example","stats":{"files_changed":1,"insertions":8,"deletions":1,"files":["templates/readme_template"],"file_stats":[{"name":"templates/readme_template","lines_changed":9}]}},{"commit":"72a37b928924c3edde3a4edb952f98c94aa05f0b","message":"version bump","stats":{"files_changed":3,"insertions":5,"deletions":2,"files":["CHANGELOG","jc/__init__.py","setup.py"],"file_stats":[{"name":"CHANGELOG","lines_changed":3},{"name":"jc/__init__.py","lines_changed":2},{"name":"setup.py","lines_changed":2}]}},{"commit":"5eef7bd769f8ffb03ba396833d1b33484041a99f","message":"use LibraryNotInstalled exception instead of exiting via sys.exit","stats":{"files_changed":2,"insertions":16,"deletions":16,"files":["jc/parsers/xml.py","jc/parsers/yaml.py"],"file_stats":[{"name":"jc/parsers/xml.py","lines_changed":16},{"name":"jc/parsers/yaml.py","lines_changed":16}]}},{"commit":"c6893e1bd5283d982a7ecd6f84bdfdd0054ce7a7","message":"add LibraryNotInstalled exception","stats":{"files_changed":1,"insertions":4,"deletions":0,"files":["jc/exceptions.py"],"file_stats":[{"name":"jc/exceptions.py","lines_changed":4}]}},{"commit":"039f6612e491c6f821c001252e122e9b0a781104","message":"Merge pull request #139 from kellyjonbrazil/master"},{"commit":"95aec9c6f9aa8fb4d0dae227410a1346d550f47f","message":"add info about Magic syntax not supporting shell builtins","stats":{"files_changed":1,"insertions":3,"deletions":3,"files":["templates/manpage_template"],"file_stats":[{"name":"templates/manpage_template","lines_changed":6}]}},{"commit":"4e9652a8ec2482a64dc029b0ce0e1047a3e49867","message":"spelling","stats":{"files_changed":1,"insertions":1,"deletions":1,"files":["CHANGELOG"],"file_stats":[{"name":"CHANGELOG","lines_changed":2}]}},{"commit":"773b7f4b1f23e04c90e602aab05bc1a7e5aae37b","message":"add space before exit code table","stats":{"files_changed":2,"insertions":2,"deletions":0,"files":["README.md","templates/readme_template"],"file_stats":[{"name":"README.md","lines_changed":1},{"name":"templates/readme_template","lines_changed":1}]}},{"commit":"d17ffde9cdc35392ae25d8e9de5328e46067df2a","message":"Merge pull request #138 from kellyjonbrazil/dev"},{"commit":"9c57c09c00e64a9031391b9b70083ad6ecf0bc0b","message":"doc update for release","stats":{"files_changed":2,"insertions":0,"deletions":0,"files":["jc/man/jc.1.gz","man/jc.1.gz"],"file_stats":[{"name":"jc/man/jc.1.gz","lines_changed":null},{"name":"man/jc.1.gz","lines_changed":null}]}},{"commit":"4d730a9de5a0d7c064a9a59e3add86e58d9ec492","message":"add UTC fix","stats":{"files_changed":1,"insertions":1,"deletions":0,"files":["CHANGELOG"],"file_stats":[{"name":"CHANGELOG","lines_changed":1}]}},{"commit":"fc57bcfce24af23f077d6a73f1db4591d8f99c13","message":"fix for when UTC is referenced as \"Coordinated Universal Time\"","stats":{"files_changed":1,"insertions":3,"deletions":0,"files":["jc/utils.py"],"file_stats":[{"name":"jc/utils.py","lines_changed":3}]}},{"commit":"fa5571486c3c19bb7e836f043545ea4f2509ed4d","message":"simplify json_out function","stats":{"files_changed":1,"insertions":10,"deletions":10,"files":["jc/cli.py"],"file_stats":[{"name":"jc/cli.py","lines_changed":20}]}},{"commit":"9996c4fe23564dfb52e3c7dbdbd8bd67edfb1e95","message":"update docs for shell builtins","stats":{"files_changed":7,"insertions":10,"deletions":10,"files":["EXAMPLES.md","docs/parsers/history.md","docs/parsers/jobs.md","jc/man/jc.1.gz","jc/parsers/history.py","jc/parsers/jobs.py","man/jc.1.gz"],"file_stats":[{"name":"EXAMPLES.md","lines_changed":4},{"name":"docs/parsers/history.md","lines_changed":2},{"name":"docs/parsers/jobs.md","lines_changed":6},{"name":"jc/man/jc.1.gz","lines_changed":null},{"name":"jc/parsers/history.py","lines_changed":2},{"name":"jc/parsers/jobs.py","lines_changed":6},{"name":"man/jc.1.gz","lines_changed":null}]}},{"commit":"038d4290248e6bb94762bb51f69e9958f7c1fecb","message":"doc updates","stats":{"files_changed":4,"insertions":4,"deletions":6,"files":["docs/parsers/dig.md","docs/parsers/dir.md","jc/man/jc.1.gz","man/jc.1.gz"],"file_stats":[{"name":"docs/parsers/dig.md","lines_changed":2},{"name":"docs/parsers/dir.md","lines_changed":8},{"name":"jc/man/jc.1.gz","lines_changed":null},{"name":"man/jc.1.gz","lines_changed":null}]}},{"commit":"9bf6facb0d7d76583802309253e7d13ba5148997","message":"remove magic command capability since dir is a shell builtin","stats":{"files_changed":1,"insertions":3,"deletions":6,"files":["jc/parsers/dir.py"],"file_stats":[{"name":"jc/parsers/dir.py","lines_changed":9}]}},{"commit":"965717886e4ebaa6a4a494f189d9fdd01e33eb21","message":"add exceptions module info","stats":{"files_changed":1,"insertions":1,"deletions":0,"files":["CHANGELOG"],"file_stats":[{"name":"CHANGELOG","lines_changed":1}]}},{"commit":"e9bfc3dd29f914fd91e937f06d7f59c0f91b8449","message":"add time format, dig compatibility, windows colors fix","stats":{"files_changed":1,"insertions":4,"deletions":1,"files":["CHANGELOG"],"file_stats":[{"name":"CHANGELOG","lines_changed":5}]}},{"commit":"f46b33eacf070b4dc72c8d8a66aae49abd149e5f","message":"add windows time format","stats":{"files_changed":2,"insertions":2,"deletions":2,"files":["jc/utils.py","tests/test_utils.py"],"file_stats":[{"name":"jc/utils.py","lines_changed":2},{"name":"tests/test_utils.py","lines_changed":2}]}},{"commit":"f475fe44df2fb2661c5bce4d1e602a4bba7e87c7","message":"add new time format for systeminfo","stats":{"files_changed":1,"insertions":3,"deletions":0,"files":["jc/utils.py"],"file_stats":[{"name":"jc/utils.py","lines_changed":3}]}},{"commit":"5fdbe2962d84dad89de23f103d97b76b90450206","message":"make dig compatible with all platforms","stats":{"files_changed":1,"insertions":1,"deletions":1,"files":["jc/parsers/dig.py"],"file_stats":[{"name":"jc/parsers/dig.py","lines_changed":2}]}},{"commit":"ab291b9eef6ed5c8ab59b5652f676178941d5ce5","message":"only force enable colors when running on windows","stats":{"files_changed":1,"insertions":2,"deletions":1,"files":["jc/cli.py"],"file_stats":[{"name":"jc/cli.py","lines_changed":3}]}},{"commit":"fd411fd77273cb7cf872c03ed6a258ccdee4d261","message":"attempt to get colors working on windows","stats":{"files_changed":1,"insertions":4,"deletions":1,"files":["jc/cli.py"],"file_stats":[{"name":"jc/cli.py","lines_changed":5}]}},{"commit":"b1e95a60a2461dc401ffc299ef6338b65ef12691","message":"remove unnecessary comment","stats":{"files_changed":1,"insertions":0,"deletions":1,"files":["jc/cli.py"],"file_stats":[{"name":"jc/cli.py","lines_changed":1}]}},{"commit":"bb1439f0d53e87f636fba05fbd30c3c79fb16002","message":"use ParseError exception from jc.exceptions module","stats":{"files_changed":1,"insertions":1,"deletions":4,"files":["jc/parsers/uname.py"],"file_stats":[{"name":"jc/parsers/uname.py","lines_changed":5}]}},{"commit":"ba963d98a0a2b3a0dfca6b211096d802253da5fe","message":"add exceptions module including ParseError","stats":{"files_changed":1,"insertions":5,"deletions":0,"files":["jc/exceptions.py"],"file_stats":[{"name":"jc/exceptions.py","lines_changed":5}]}},{"commit":"83440ccb55d0db15b112b8b7d7352493ff516112","message":"error message capitalization","stats":{"files_changed":1,"insertions":2,"deletions":2,"files":["jc/cli.py"],"file_stats":[{"name":"jc/cli.py","lines_changed":4}]}},{"commit":"796f61bfa417afdc6ab48fddbb5502cd0659b840","message":"handle case where the user pipes data and uses magic syntax simultaneously","stats":{"files_changed":1,"insertions":10,"deletions":3,"files":["jc/cli.py"],"file_stats":[{"name":"jc/cli.py","lines_changed":13}]}},{"commit":"070cac4ae12282458a1e1fc8618ebc473d23cacf","message":"remove commented line","stats":{"files_changed":1,"insertions":0,"deletions":3,"files":["jc/cli.py"],"file_stats":[{"name":"jc/cli.py","lines_changed":3}]}},{"commit":"3ed84f9f42e4e883ddaac28ab49d675600b49424","message":"reorganize main function. remove pass condition.","stats":{"files_changed":1,"insertions":9,"deletions":9,"files":["jc/cli.py"],"file_stats":[{"name":"jc/cli.py","lines_changed":18}]}},{"commit":"a205afb6f355edbb4b98200a980b9601ed0f0658","message":"set run_command_str if run_command is set","stats":{"files_changed":1,"insertions":2,"deletions":2,"files":["jc/cli.py"],"file_stats":[{"name":"jc/cli.py","lines_changed":4}]}},{"commit":"a6d983dd8f3871cbc2391c313340167829a575d9","message":"move run_command_str variable","stats":{"files_changed":1,"insertions":2,"deletions":1,"files":["jc/cli.py"],"file_stats":[{"name":"jc/cli.py","lines_changed":3}]}},{"commit":"b6c8d6d01d740827273265dbb0cfbaf7875ac7f3","message":"add exception handling for filenotfound or other subprocess.popen and json.dumps exceptions","stats":{"files_changed":1,"insertions":45,"deletions":17,"files":["jc/cli.py"],"file_stats":[{"name":"jc/cli.py","lines_changed":62}]}},{"commit":"b5a5d5b133f1c0df8023776e59697b7579f8c18a","message":"set parser_name for magic syntax use","stats":{"files_changed":1,"insertions":1,"deletions":0,"files":["jc/cli.py"],"file_stats":[{"name":"jc/cli.py","lines_changed":1}]}},{"commit":"da528e7814b0cf25a359c3556d0e286e7bf004b8","message":"move separators to a variable","stats":{"files_changed":1,"insertions":3,"deletions":2,"files":["jc/cli.py"],"file_stats":[{"name":"jc/cli.py","lines_changed":5}]}},{"commit":"4acebf4f621ac564f82e3a97e6810fbb08a9dbc5","message":"move variables","stats":{"files_changed":1,"insertions":2,"deletions":3,"files":["jc/cli.py"],"file_stats":[{"name":"jc/cli.py","lines_changed":5}]}},{"commit":"4d40808d2b70b7543eadcfd2d35c16ebe91f2f9f","message":"update comments","stats":{"files_changed":1,"insertions":4,"deletions":3,"files":["jc/cli.py"],"file_stats":[{"name":"jc/cli.py","lines_changed":7}]}},{"commit":"c543f00bd3c737f73144bb2980d12793042459b4","message":"simplify piped_output function","stats":{"files_changed":1,"insertions":1,"deletions":4,"files":["jc/cli.py"],"file_stats":[{"name":"jc/cli.py","lines_changed":5}]}},{"commit":"947cf41dfab5811c0e76e371231c59a2d6372752","message":"add exit code info","stats":{"files_changed":1,"insertions":2,"deletions":1,"files":["CHANGELOG"],"file_stats":[{"name":"CHANGELOG","lines_changed":3}]}},{"commit":"8d8c58742e5106c3387a627cd1b1323a76cc9623","message":"formatting","stats":{"files_changed":5,"insertions":21,"deletions":15,"files":["README.md","jc/man/jc.1.gz","man/jc.1.gz","templates/manpage_template","templates/readme_template"],"file_stats":[{"name":"README.md","lines_changed":13},{"name":"jc/man/jc.1.gz","lines_changed":null},{"name":"man/jc.1.gz","lines_changed":null},{"name":"templates/manpage_template","lines_changed":10},{"name":"templates/readme_template","lines_changed":13}]}},{"commit":"995ecc9bfb0425b0ee9e4250395b0200b46c1e89","message":"add exit codes section","stats":{"files_changed":3,"insertions":15,"deletions":0,"files":["jc/man/jc.1.gz","man/jc.1.gz","templates/manpage_template"],"file_stats":[{"name":"jc/man/jc.1.gz","lines_changed":null},{"name":"man/jc.1.gz","lines_changed":null},{"name":"templates/manpage_template","lines_changed":15}]}},{"commit":"21a15225ebff645439b12d6249dc3e28d7bc09ed","message":"add exit codes section","stats":{"files_changed":2,"insertions":18,"deletions":0,"files":["README.md","templates/readme_template"],"file_stats":[{"name":"README.md","lines_changed":9},{"name":"templates/readme_template","lines_changed":9}]}},{"commit":"48921d4584068fadb0f776ed7e81c21d89172e2e","message":"ensure exit code never exceeds 255","stats":{"files_changed":1,"insertions":4,"deletions":1,"files":["jc/cli.py"],"file_stats":[{"name":"jc/cli.py","lines_changed":5}]}},{"commit":"342db45edc94ab1c3b3ae70e7cf4ca4076e2c7eb","message":"fix combined exit codes","stats":{"files_changed":1,"insertions":18,"deletions":10,"files":["jc/cli.py"],"file_stats":[{"name":"jc/cli.py","lines_changed":28}]}},{"commit":"5f88ecf8443bc6e9a7cda5bc60858f37cc09f4f4","message":"add comments to magic_parser return","stats":{"files_changed":1,"insertions":4,"deletions":5,"files":["jc/cli.py"],"file_stats":[{"name":"jc/cli.py","lines_changed":9}]}},{"commit":"a56aebfe7024914d2c602278964b99d1443de335","message":"remove side-effect comment since it is no longer relevant","stats":{"files_changed":1,"insertions":0,"deletions":3,"files":["jc/cli.py"],"file_stats":[{"name":"jc/cli.py","lines_changed":3}]}},{"commit":"422bb744a82472546d62c72ba05eaa1d18d5068a","message":"update man pages","stats":{"files_changed":2,"insertions":0,"deletions":0,"files":["jc/man/jc.1.gz","man/jc.1.gz"],"file_stats":[{"name":"jc/man/jc.1.gz","lines_changed":null},{"name":"man/jc.1.gz","lines_changed":null}]}},{"commit":"c3b814a15f571ac84a8ce0719d7fd88acf814caf","message":"move imports to the top","stats":{"files_changed":1,"insertions":3,"deletions":4,"files":["jc/cli.py"],"file_stats":[{"name":"jc/cli.py","lines_changed":7}]}},{"commit":"e4574047a0ef6fcd4a47142421a1d05795c7925a","message":"update tests for magic_parser function","stats":{"files_changed":1,"insertions":21,"deletions":21,"files":["tests/test_cli.py"],"file_stats":[{"name":"tests/test_cli.py","lines_changed":42}]}},{"commit":"0d7d7951f82627d1fb1e20d1398bd7f88c5ce1be","message":"don't reset sys.argv anymore. check for 'valid_command' instead","stats":{"files_changed":1,"insertions":5,"deletions":7,"files":["jc/cli.py"],"file_stats":[{"name":"jc/cli.py","lines_changed":12}]}},{"commit":"da904e4770a20ae85fc67476ae4a529564d0a3ff","message":"remove final \\n from stderr string when printing","stats":{"files_changed":1,"insertions":1,"deletions":1,"files":["jc/cli.py"],"file_stats":[{"name":"jc/cli.py","lines_changed":2}]}},{"commit":"19b540041add64fe6650c3634ec869421ffbc769","message":"proof of concept for passing command exit codes when using magic syntax. Needs more testing","stats":{"files_changed":1,"insertions":82,"deletions":51,"files":["jc/cli.py"],"file_stats":[{"name":"jc/cli.py","lines_changed":133}]}},{"commit":"f2ffb93eeaf4c8b5aa93f3e8808bdc044582e8a0","message":"formatting","stats":{"files_changed":1,"insertions":0,"deletions":10,"files":["tests/test_ping.py"],"file_stats":[{"name":"tests/test_ping.py","lines_changed":10}]}},{"commit":"c0c0e05642e0f473cde34178d815978fff8fe1ef","message":"add dig `+noall +answer` support","stats":{"files_changed":1,"insertions":1,"deletions":0,"files":["CHANGELOG"],"file_stats":[{"name":"CHANGELOG","lines_changed":1}]}},{"commit":"966978f17e40a338f982628825f30a19d4b84e4c","message":"add more unparsable line ping tests","stats":{"files_changed":5,"insertions":72,"deletions":0,"files":[".../centos-7.7/ping6-ip-O-p-unparsable.json",".../centos-7.7/ping6-ip-O-p-unparsable.out",".../fixtures/osx-10.14.6/ping6-ip-unparsable.json","tests/fixtures/osx-10.14.6/ping6-ip-unparsable.out","tests/test_ping.py"],"file_stats":[{"name":".../centos-7.7/ping6-ip-O-p-unparsable.json","lines_changed":1},{"name":".../centos-7.7/ping6-ip-O-p-unparsable.out","lines_changed":27},{"name":".../fixtures/osx-10.14.6/ping6-ip-unparsable.json","lines_changed":1},{"name":"tests/fixtures/osx-10.14.6/ping6-ip-unparsable.out","lines_changed":9},{"name":"tests/test_ping.py","lines_changed":34}]}},{"commit":"8ab08a5231e082940a62fcde4be218b7ba94be31","message":"doc update","stats":{"files_changed":2,"insertions":6,"deletions":2,"files":["docs/parsers/dig.md","jc/parsers/dig.py"],"file_stats":[{"name":"docs/parsers/dig.md","lines_changed":4},{"name":"jc/parsers/dig.py","lines_changed":4}]}},{"commit":"48e534fa03b92b2583c5c6269c76651f3aa420cb","message":"add +noall +answer test","stats":{"files_changed":3,"insertions":17,"deletions":2,"files":["tests/fixtures/osx-10.14.6/dig-noall-answer.json","tests/fixtures/osx-10.14.6/dig-noall-answer.out","tests/test_dig.py"],"file_stats":[{"name":"tests/fixtures/osx-10.14.6/dig-noall-answer.json","lines_changed":1},{"name":"tests/fixtures/osx-10.14.6/dig-noall-answer.out","lines_changed":4},{"name":"tests/test_dig.py","lines_changed":14}]}},{"commit":"61851c1bd02aa82d5d82e68595e45630ead13d34","message":"add support for +noall +answer","stats":{"files_changed":2,"insertions":85,"deletions":3,"files":["docs/parsers/dig.md","jc/parsers/dig.py"],"file_stats":[{"name":"docs/parsers/dig.md","lines_changed":40},{"name":"jc/parsers/dig.py","lines_changed":48}]}},{"commit":"3c51b2d83d301b4072bbb12fdba4f60b900573da","message":"add tests for unparsable lines on linux","stats":{"files_changed":3,"insertions":40,"deletions":0,"files":[".../centos-7.7/ping-ip-O-unparsedlines.json",".../centos-7.7/ping-ip-O-unparsedlines.out","tests/test_ping.py"],"file_stats":[{"name":".../centos-7.7/ping-ip-O-unparsedlines.json","lines_changed":1},{"name":".../centos-7.7/ping-ip-O-unparsedlines.out","lines_changed":27},{"name":"tests/test_ping.py","lines_changed":12}]}},{"commit":"ee3a28528e152c61f05bdf71f264fe38274b4190","message":"Merge branch 'dev' of https://github.com/kellyjonbrazil/jc into dev"},{"commit":"916bcdae3881fc9c9f9a91c8c901a714cff3e1da","message":"Merge pull request #136 from kellyjonbrazil/master"},{"commit":"efb1d3e6b2db920423511a9dcf4c5e5fd9d6af43","message":"add blog title and minor formatting","stats":{"files_changed":2,"insertions":4,"deletions":4,"files":["README.md","templates/readme_template"],"file_stats":[{"name":"README.md","lines_changed":4},{"name":"templates/readme_template","lines_changed":4}]}},{"commit":"4e6ae66bacc014e49c4a9229d10dcc8e95de436c","message":"formatting","stats":{"files_changed":2,"insertions":2,"deletions":2,"files":["README.md","templates/readme_template"],"file_stats":[{"name":"README.md","lines_changed":2},{"name":"templates/readme_template","lines_changed":2}]}},{"commit":"5ee88e7b679bc163a1916d560be6ff29f51699e8","message":"add use cases section","stats":{"files_changed":1,"insertions":7,"deletions":3,"files":["README.md"],"file_stats":[{"name":"README.md","lines_changed":10}]}},{"commit":"c3b68903cbd898f80438af342195eec7575aafd3","message":"add use cases section","stats":{"files_changed":1,"insertions":7,"deletions":3,"files":["templates/readme_template"],"file_stats":[{"name":"templates/readme_template","lines_changed":10}]}},{"commit":"fe1f1013a74bdf6b4284f11dd59db8ea17e5e5d1","message":"add use cases section","stats":{"files_changed":1,"insertions":7,"deletions":3,"files":["templates/readme_template"],"file_stats":[{"name":"templates/readme_template","lines_changed":10}]}},{"commit":"fb14f5439f00d5eaf08651c552189fd4be7358d4","message":"fix and tests for unknown or unparsable errors","stats":{"files_changed":4,"insertions":52,"deletions":3,"files":["jc/parsers/ping.py",".../osx-10.14.6/ping-ip-unknown-errors.json",".../osx-10.14.6/ping-ip-unknown-errors.out","tests/test_ping.py"],"file_stats":[{"name":"jc/parsers/ping.py","lines_changed":7},{"name":".../osx-10.14.6/ping-ip-unknown-errors.json","lines_changed":1},{"name":".../osx-10.14.6/ping-ip-unknown-errors.out","lines_changed":35},{"name":"tests/test_ping.py","lines_changed":12}]}},{"commit":"5ca0fc364eb22d583bee5633cdd7183c1d70bb6c","message":"add unparsed_line to docs","stats":{"files_changed":1,"insertions":1,"deletions":0,"files":["docs/parsers/ping.md"],"file_stats":[{"name":"docs/parsers/ping.md","lines_changed":1}]}},{"commit":"a1fe7037e5267ec4aced719eff3715085eb35bca","message":"add unparsed_line field if line cannot be parsed","stats":{"files_changed":1,"insertions":7,"deletions":3,"files":["jc/parsers/ping.py"],"file_stats":[{"name":"jc/parsers/ping.py","lines_changed":10}]}},{"commit":"c2af7d113ed8e8cf9af985c969cf29858a3c26a9","message":"add ping updates","stats":{"files_changed":2,"insertions":2,"deletions":1,"files":["CHANGELOG","docs/parsers/ping.md"],"file_stats":[{"name":"CHANGELOG","lines_changed":1},{"name":"docs/parsers/ping.md","lines_changed":2}]}},{"commit":"ff034e401d5c33efbc3c4bc2f0e386d81eaae7fc","message":"use try/except to make parser more resilient against unknown error types","stats":{"files_changed":1,"insertions":59,"deletions":43,"files":["jc/parsers/ping.py"],"file_stats":[{"name":"jc/parsers/ping.py","lines_changed":102}]}},{"commit":"5abe095beb4b668e5f55fe8c9588677547e4c2a7","message":"update ping docs","stats":{"files_changed":1,"insertions":14,"deletions":3,"files":["docs/parsers/ping.md"],"file_stats":[{"name":"docs/parsers/ping.md","lines_changed":17}]}},{"commit":"33de5f01e638953c83bb0960dc3550ca4547849b","message":"version bump","stats":{"files_changed":2,"insertions":3,"deletions":3,"files":["jc/__init__.py","setup.py"],"file_stats":[{"name":"jc/__init__.py","lines_changed":4},{"name":"setup.py","lines_changed":2}]}},{"commit":"8ce155d843806be4ad23491b4401e4eda02e2a1c","message":"add support for error replies in v4 ping on osx and bsd","stats":{"files_changed":5,"insertions":86,"deletions":23,"files":["CHANGELOG","jc/parsers/ping.py",".../fixtures/osx-10.14.6/ping-ip-unreachable.json","tests/fixtures/osx-10.14.6/ping-ip-unreachable.out","tests/test_ping.py"],"file_stats":[{"name":"CHANGELOG","lines_changed":3},{"name":"jc/parsers/ping.py","lines_changed":56},{"name":".../fixtures/osx-10.14.6/ping-ip-unreachable.json","lines_changed":1},{"name":"tests/fixtures/osx-10.14.6/ping-ip-unreachable.out","lines_changed":35},{"name":"tests/test_ping.py","lines_changed":14}]}},{"commit":"b921d5ec9583c8f8e992613ae2eaf62165722054","message":"initial support for error replies in bsd/osx","stats":{"files_changed":1,"insertions":105,"deletions":6,"files":["jc/parsers/ping.py"],"file_stats":[{"name":"jc/parsers/ping.py","lines_changed":111}]}},{"commit":"e21542aaa2aa5f2f287ddc227df41ae47d761332","message":"Merge pull request #135 from kellyjonbrazil/dev"},{"commit":"6150aae0aeabafba26d9f119406b0660d9221cb6","message":"clarify packaged binaries","stats":{"files_changed":2,"insertions":2,"deletions":2,"files":["README.md","templates/readme_template"],"file_stats":[{"name":"README.md","lines_changed":2},{"name":"templates/readme_template","lines_changed":2}]}},{"commit":"f27b35f37104ad2012c3bddde0bd94941af06894","message":"Merge pull request #131 from kellyjonbrazil/master"},{"commit":"d24f9a885d3954035a98a488671486408f509dca","message":"fix contributing link","stats":{"files_changed":3,"insertions":3,"deletions":3,"files":["CONTRIBUTING.md","README.md","templates/readme_template"],"file_stats":[{"name":"CONTRIBUTING.md","lines_changed":2},{"name":"README.md","lines_changed":2},{"name":"templates/readme_template","lines_changed":2}]}},{"commit":"48dd82c8d1b756c4e08d49b8234b8060080dc035","message":"trigger page build on github pages","stats":{"files_changed":1,"insertions":1,"deletions":1,"files":["CONTRIBUTING.md"],"file_stats":[{"name":"CONTRIBUTING.md","lines_changed":2}]}},{"commit":"e57167ad1f240de6ec5fc86c51cfb780535cd783","message":"empty commit"},{"commit":"ada91376426ff359c495fb31081404a2cce72b5f","message":"Merge pull request #130 from kellyjonbrazil/dev"},{"commit":"bd428a9fd75327710dce96f3c95f74ab9d1beaad","message":"fix link","stats":{"files_changed":2,"insertions":2,"deletions":2,"files":["README.md","templates/readme_template"],"file_stats":[{"name":"README.md","lines_changed":2},{"name":"templates/readme_template","lines_changed":2}]}},{"commit":"934941332f91d9e2cc4e691b154bb5427166ed30","message":"minor link updates","stats":{"files_changed":2,"insertions":6,"deletions":6,"files":["README.md","templates/readme_template"],"file_stats":[{"name":"README.md","lines_changed":6},{"name":"templates/readme_template","lines_changed":6}]}},{"commit":"0c209dbd108638f89a43801126a332379be9ae8b","message":"Merge pull request #129 from kellyjonbrazil/dev"},{"commit":"56e041aa260b2daf2f5662fae98645a93137adb5","message":"add Practical JSON at the Command Line blog link","stats":{"files_changed":2,"insertions":4,"deletions":0,"files":["README.md","templates/readme_template"],"file_stats":[{"name":"README.md","lines_changed":2},{"name":"templates/readme_template","lines_changed":2}]}},{"commit":"cf9d48582e4e5df6c8498b916a2f9cf036869f3d","message":"Merge pull request #128 from kellyjonbrazil/master"},{"commit":"92e2252bee00482bb0eeae3074b107d4c8553e4c","message":"fix typo","stats":{"files_changed":2,"insertions":2,"deletions":2,"files":["README.md","templates/readme_template"],"file_stats":[{"name":"README.md","lines_changed":2},{"name":"templates/readme_template","lines_changed":2}]}},{"commit":"fd7861db11e5aaa17c4e7bbce942c0c096116e30","message":"Merge pull request #127 from kellyjonbrazil/dev"},{"commit":"35464bbbfb6b424ef3ee1c855557ada1bf3769fa","message":"date update","stats":{"files_changed":1,"insertions":1,"deletions":1,"files":["CHANGELOG"],"file_stats":[{"name":"CHANGELOG","lines_changed":2}]}},{"commit":"db8ddd7f0e0c2a8bd3e545619e81d3d3972a4d7c","message":"fix for scenarios where the default port range didn't always display, or overrode existing port ranges.","stats":{"files_changed":5,"insertions":11,"deletions":17,"files":["jc/man/jc.1.gz","jc/parsers/ufw.py","man/jc.1.gz","tests/fixtures/generic/ufw-numbered.json","tests/fixtures/generic/ufw.json"],"file_stats":[{"name":"jc/man/jc.1.gz","lines_changed":null},{"name":"jc/parsers/ufw.py","lines_changed":24},{"name":"man/jc.1.gz","lines_changed":null},{"name":"tests/fixtures/generic/ufw-numbered.json","lines_changed":2},{"name":"tests/fixtures/generic/ufw.json","lines_changed":2}]}},{"commit":"72207c54ee5734e3d2d3d1a063c8daf1edaa8815","message":"update ufw app info docs to support multiple apps (ufw app info all)","stats":{"files_changed":3,"insertions":102,"deletions":94,"files":["docs/parsers/ufw_appinfo.md","jc/man/jc.1.gz","man/jc.1.gz"],"file_stats":[{"name":"docs/parsers/ufw_appinfo.md","lines_changed":196},{"name":"jc/man/jc.1.gz","lines_changed":null},{"name":"man/jc.1.gz","lines_changed":null}]}},{"commit":"a683f68003ea64dd5e2c4f06b53a1561ad774f12","message":"change schema to a list of dictionaries to support `ufw app info all` use case","stats":{"files_changed":9,"insertions":285,"deletions":202,"files":["EXAMPLES.md","jc/parsers/ufw_appinfo.py","tests/fixtures/generic/ufw-appinfo-msn.json","tests/fixtures/generic/ufw-appinfo-test.json","tests/fixtures/generic/ufw-appinfo-test2.json","tests/fixtures/generic/ufw-appinfo-test3.json","tests/fixtures/ubuntu-18.04/ufw-appinfo-all.json","tests/fixtures/ubuntu-18.04/ufw-appinfo-all.out","tests/test_ufw_appinfo.py"],"file_stats":[{"name":"EXAMPLES.md","lines_changed":68},{"name":"jc/parsers/ufw_appinfo.py","lines_changed":345},{"name":"tests/fixtures/generic/ufw-appinfo-msn.json","lines_changed":2},{"name":"tests/fixtures/generic/ufw-appinfo-test.json","lines_changed":2},{"name":"tests/fixtures/generic/ufw-appinfo-test2.json","lines_changed":2},{"name":"tests/fixtures/generic/ufw-appinfo-test3.json","lines_changed":2},{"name":"tests/fixtures/ubuntu-18.04/ufw-appinfo-all.json","lines_changed":1},{"name":"tests/fixtures/ubuntu-18.04/ufw-appinfo-all.out","lines_changed":51},{"name":"tests/test_ufw_appinfo.py","lines_changed":14}]}},{"commit":"8d2d3db3fa969456342181a226bf54a3f1613542","message":"formatting","stats":{"files_changed":4,"insertions":4,"deletions":0,"files":["README.md","jc/man/jc.1.gz","man/jc.1.gz","templates/readme_template"],"file_stats":[{"name":"README.md","lines_changed":2},{"name":"jc/man/jc.1.gz","lines_changed":null},{"name":"man/jc.1.gz","lines_changed":null},{"name":"templates/readme_template","lines_changed":2}]}},{"commit":"eca785450d1c72687817d09259fa7cd33376fafc","message":"add caveats to readme and manpage","stats":{"files_changed":5,"insertions":34,"deletions":13,"files":["CHANGELOG","README.md","jc/man/jc.1.gz","man/jc.1.gz","templates/readme_template"],"file_stats":[{"name":"CHANGELOG","lines_changed":3},{"name":"README.md","lines_changed":22},{"name":"jc/man/jc.1.gz","lines_changed":null},{"name":"man/jc.1.gz","lines_changed":null},{"name":"templates/readme_template","lines_changed":22}]}},{"commit":"5b40a97ce417687b4e37f320b8a3f07dd7fd169c","message":"add caveats to man page","stats":{"files_changed":3,"insertions":13,"deletions":0,"files":["jc/man/jc.1.gz","man/jc.1.gz","templates/manpage_template"],"file_stats":[{"name":"jc/man/jc.1.gz","lines_changed":null},{"name":"man/jc.1.gz","lines_changed":null},{"name":"templates/manpage_template","lines_changed":13}]}},{"commit":"66cb4e9bde81b9290c1addaf851de5d80a1b0702","message":"update ufw parser docs","stats":{"files_changed":5,"insertions":216,"deletions":234,"files":["EXAMPLES.md","docs/parsers/ufw.md","jc/man/jc.1.gz","jc/parsers/ufw.py","man/jc.1.gz"],"file_stats":[{"name":"EXAMPLES.md","lines_changed":96},{"name":"docs/parsers/ufw.md","lines_changed":226},{"name":"jc/man/jc.1.gz","lines_changed":null},{"name":"jc/parsers/ufw.py","lines_changed":128},{"name":"man/jc.1.gz","lines_changed":null}]}},{"commit":"d1f33645caccdb3a55576081c4d355f997ac033c","message":"update ufw tests","stats":{"files_changed":7,"insertions":26,"deletions":10,"files":["tests/fixtures/generic/ufw-numbered.json","tests/fixtures/generic/ufw-numbered2.json","tests/fixtures/generic/ufw.json","tests/fixtures/ubuntu-18.04/ufw-numbered.json","tests/fixtures/ubuntu-18.04/ufw-numbered.out","tests/fixtures/ubuntu-18.04/ufw-verbose.json","tests/fixtures/ubuntu-18.04/ufw-verbose.out"],"file_stats":[{"name":"tests/fixtures/generic/ufw-numbered.json","lines_changed":2},{"name":"tests/fixtures/generic/ufw-numbered2.json","lines_changed":2},{"name":"tests/fixtures/generic/ufw.json","lines_changed":2},{"name":"tests/fixtures/ubuntu-18.04/ufw-numbered.json","lines_changed":2},{"name":"tests/fixtures/ubuntu-18.04/ufw-numbered.out","lines_changed":16},{"name":"tests/fixtures/ubuntu-18.04/ufw-verbose.json","lines_changed":2},{"name":"tests/fixtures/ubuntu-18.04/ufw-verbose.out","lines_changed":10}]}},{"commit":"5eff65c326675a449afd05a2af0a6c9bcf7b5e23","message":"update schema to support port lists and port range lists. Also support other transports than tcp and udp","stats":{"files_changed":1,"insertions":85,"deletions":268,"files":["jc/parsers/ufw.py"],"file_stats":[{"name":"jc/parsers/ufw.py","lines_changed":353}]}},{"commit":"929c38715d87bf9dd689507d319c22b90871ae1c","message":"formatting","stats":{"files_changed":1,"insertions":1,"deletions":1,"files":["CONTRIBUTING.md"],"file_stats":[{"name":"CONTRIBUTING.md","lines_changed":2}]}},{"commit":"8c91a7b7601a967cd9d8096433ffd4ad62b65ceb","message":"formatting","stats":{"files_changed":1,"insertions":2,"deletions":2,"files":["CONTRIBUTING.md"],"file_stats":[{"name":"CONTRIBUTING.md","lines_changed":4}]}},{"commit":"14289ecd6c022ad204444dff5b5e48f6024a5d0d","message":"more timezone info","stats":{"files_changed":1,"insertions":3,"deletions":1,"files":["CONTRIBUTING.md"],"file_stats":[{"name":"CONTRIBUTING.md","lines_changed":4}]}},{"commit":"b833c44783eb32f2fad24ca205b5b7eab854750f","message":"add ufw-appinfo parser","stats":{"files_changed":1,"insertions":1,"deletions":0,"files":["CHANGELOG"],"file_stats":[{"name":"CHANGELOG","lines_changed":1}]}},{"commit":"e23aa818eaa6d1a389ddef7dd2ad8f62b9f6ff25","message":"add tests section and timezone info","stats":{"files_changed":1,"insertions":4,"deletions":1,"files":["CONTRIBUTING.md"],"file_stats":[{"name":"CONTRIBUTING.md","lines_changed":5}]}},{"commit":"473d919c1350a8dc34d233033a5a7d12c928e42d","message":"add another ufw test sample","stats":{"files_changed":4,"insertions":32,"deletions":0,"files":["runtests.sh","tests/fixtures/generic/ufw-numbered2.json","tests/fixtures/generic/ufw-numbered2.out","tests/test_ufw.py"],"file_stats":[{"name":"runtests.sh","lines_changed":1},{"name":"tests/fixtures/generic/ufw-numbered2.json","lines_changed":1},{"name":"tests/fixtures/generic/ufw-numbered2.out","lines_changed":18},{"name":"tests/test_ufw.py","lines_changed":12}]}},{"commit":"9f925d6ac989a4f21a8c00c84fcf97dfb141e8c2","message":"doc update","stats":{"files_changed":2,"insertions":0,"deletions":0,"files":["jc/man/jc.1.gz","man/jc.1.gz"],"file_stats":[{"name":"jc/man/jc.1.gz","lines_changed":null},{"name":"man/jc.1.gz","lines_changed":null}]}},{"commit":"f6ca32b3a31f314fa0b31d9e8b5494491b928f7e","message":"update ufw docs with a note on lists of ports","stats":{"files_changed":2,"insertions":4,"deletions":0,"files":["docs/parsers/ufw.md","jc/parsers/ufw.py"],"file_stats":[{"name":"docs/parsers/ufw.md","lines_changed":2},{"name":"jc/parsers/ufw.py","lines_changed":2}]}},{"commit":"4cbe84c3d6ac8a3b594feb525460f2a68f5d62b2","message":"add ufw-appinfo tests","stats":{"files_changed":9,"insertions":110,"deletions":0,"files":["tests/fixtures/generic/ufw-appinfo-msn.json","tests/fixtures/generic/ufw-appinfo-msn.out","tests/fixtures/generic/ufw-appinfo-test.json","tests/fixtures/generic/ufw-appinfo-test.out","tests/fixtures/generic/ufw-appinfo-test2.json","tests/fixtures/generic/ufw-appinfo-test2.out","tests/fixtures/generic/ufw-appinfo-test3.json","tests/fixtures/generic/ufw-appinfo-test3.out","tests/test_ufw_appinfo.py"],"file_stats":[{"name":"tests/fixtures/generic/ufw-appinfo-msn.json","lines_changed":1},{"name":"tests/fixtures/generic/ufw-appinfo-msn.out","lines_changed":9},{"name":"tests/fixtures/generic/ufw-appinfo-test.json","lines_changed":1},{"name":"tests/fixtures/generic/ufw-appinfo-test.out","lines_changed":9},{"name":"tests/fixtures/generic/ufw-appinfo-test2.json","lines_changed":1},{"name":"tests/fixtures/generic/ufw-appinfo-test2.out","lines_changed":9},{"name":"tests/fixtures/generic/ufw-appinfo-test3.json","lines_changed":1},{"name":"tests/fixtures/generic/ufw-appinfo-test3.out","lines_changed":9},{"name":"tests/test_ufw_appinfo.py","lines_changed":70}]}},{"commit":"ffac5bf9d381305daa86e546f8570be092e5ff34","message":"doc update","stats":{"files_changed":3,"insertions":12,"deletions":12,"files":["docs/parsers/ufw.md","jc/man/jc.1.gz","man/jc.1.gz"],"file_stats":[{"name":"docs/parsers/ufw.md","lines_changed":24},{"name":"jc/man/jc.1.gz","lines_changed":null},{"name":"man/jc.1.gz","lines_changed":null}]}},{"commit":"9aa424f9f8c7e4e0dc29e2c58dac481098beba7d","message":"fix ufw example","stats":{"files_changed":1,"insertions":6,"deletions":6,"files":["EXAMPLES.md"],"file_stats":[{"name":"EXAMPLES.md","lines_changed":12}]}},{"commit":"0a8495c68e427e39bbda957dd933fa2a461092e7","message":"update docs","stats":{"files_changed":1,"insertions":12,"deletions":15,"files":["jc/parsers/ufw.py"],"file_stats":[{"name":"jc/parsers/ufw.py","lines_changed":27}]}},{"commit":"6aea066cf024f92adf4b94eebc7d51430c22332c","message":"make normalized list appear only when data exists. set magic commands","stats":{"files_changed":1,"insertions":4,"deletions":2,"files":["jc/parsers/ufw_appinfo.py"],"file_stats":[{"name":"jc/parsers/ufw_appinfo.py","lines_changed":6}]}},{"commit":"ff3c2d809ec3ea6e556c302909a228ee670578c9","message":"add ufw-appinfo to docs","stats":{"files_changed":6,"insertions":176,"deletions":25,"files":["EXAMPLES.md","README.md","docs/parsers/ufw_appinfo.md","jc/man/jc.1.gz","jc/parsers/ufw_appinfo.py","man/jc.1.gz"],"file_stats":[{"name":"EXAMPLES.md","lines_changed":39},{"name":"README.md","lines_changed":1},{"name":"docs/parsers/ufw_appinfo.md","lines_changed":58},{"name":"jc/man/jc.1.gz","lines_changed":null},{"name":"jc/parsers/ufw_appinfo.py","lines_changed":103},{"name":"man/jc.1.gz","lines_changed":null}]}},{"commit":"145059fc8946b7026184139baea143c2869bc4e7","message":"clean up output if sections are blank","stats":{"files_changed":1,"insertions":20,"deletions":8,"files":["jc/parsers/ufw_appinfo.py"],"file_stats":[{"name":"jc/parsers/ufw_appinfo.py","lines_changed":28}]}},{"commit":"20e5c19de448c1b979497817c887d8d2d6487839","message":"fix key error if tcp or udp don't exist","stats":{"files_changed":1,"insertions":2,"deletions":1,"files":["jc/parsers/ufw_appinfo.py"],"file_stats":[{"name":"jc/parsers/ufw_appinfo.py","lines_changed":3}]}},{"commit":"4c98fd4b877c54e1cf7d285a29e178321be12f7e","message":"doc update","stats":{"files_changed":2,"insertions":101,"deletions":1,"files":["docs/parsers/ufw_appinfo.md","jc/parsers/ufw_appinfo.py"],"file_stats":[{"name":"docs/parsers/ufw_appinfo.md","lines_changed":100},{"name":"jc/parsers/ufw_appinfo.py","lines_changed":2}]}},{"commit":"125e54213e8d4dcfe2e3271456af80b3f79c0544","message":"update schema and add normalized fields","stats":{"files_changed":1,"insertions":105,"deletions":48,"files":["jc/parsers/ufw_appinfo.py"],"file_stats":[{"name":"jc/parsers/ufw_appinfo.py","lines_changed":153}]}},{"commit":"0152e0665f87833250561d743144af35416992f8","message":"initial working ufw-appinfo parser","stats":{"files_changed":2,"insertions":215,"deletions":0,"files":["jc/cli.py","jc/parsers/ufw_appinfo.py"],"file_stats":[{"name":"jc/cli.py","lines_changed":1},{"name":"jc/parsers/ufw_appinfo.py","lines_changed":214}]}},{"commit":"0679bcbc560ea3575555d8546afdd4e2474d05d7","message":"fix ufw tests","stats":{"files_changed":5,"insertions":31,"deletions":5,"files":["tests/fixtures/generic/ufw-numbered.json","tests/fixtures/generic/ufw.json","tests/fixtures/ubuntu-18.04/ufw-numbered.json","tests/fixtures/ubuntu-18.04/ufw-verbose.json","tests/test_ufw.py"],"file_stats":[{"name":"tests/fixtures/generic/ufw-numbered.json","lines_changed":2},{"name":"tests/fixtures/generic/ufw.json","lines_changed":2},{"name":"tests/fixtures/ubuntu-18.04/ufw-numbered.json","lines_changed":1},{"name":"tests/fixtures/ubuntu-18.04/ufw-verbose.json","lines_changed":1},{"name":"tests/test_ufw.py","lines_changed":30}]}},{"commit":"5500648aa0886ea5089856e5b33d7c8ebd78d5b0","message":"fix ufw docs for int conversions and service behavior","stats":{"files_changed":3,"insertions":46,"deletions":46,"files":["EXAMPLES.md","docs/parsers/ufw.md","jc/parsers/ufw.py"],"file_stats":[{"name":"EXAMPLES.md","lines_changed":20},{"name":"docs/parsers/ufw.md","lines_changed":36},{"name":"jc/parsers/ufw.py","lines_changed":36}]}},{"commit":"bb50caad4dfaefa309e747fd05b650186c5a80f4","message":"fix prefix int conversions. don't reset _transport if service is really a list of ports","stats":{"files_changed":3,"insertions":31,"deletions":4,"files":["jc/parsers/ufw.py","tests/fixtures/ubuntu-18.04/ufw-numbered.out","tests/fixtures/ubuntu-18.04/ufw-verbose.out"],"file_stats":[{"name":"jc/parsers/ufw.py","lines_changed":10},{"name":"tests/fixtures/ubuntu-18.04/ufw-numbered.out","lines_changed":11},{"name":"tests/fixtures/ubuntu-18.04/ufw-verbose.out","lines_changed":14}]}},{"commit":"7eef5d94d591a3f70f6638b1b30f952a3bf35f9d","message":"ufw doc update","stats":{"files_changed":3,"insertions":5,"deletions":0,"files":["EXAMPLES.md","jc/man/jc.1.gz","man/jc.1.gz"],"file_stats":[{"name":"EXAMPLES.md","lines_changed":5},{"name":"jc/man/jc.1.gz","lines_changed":null},{"name":"man/jc.1.gz","lines_changed":null}]}},{"commit":"74f623f8d607c050db8f62ea4996c4e6aae43268","message":"add support for rule comments and LIMIT and REJECT actions","stats":{"files_changed":5,"insertions":43,"deletions":11,"files":["docs/parsers/ufw.md","jc/parsers/ufw.py","tests/fixtures/generic/ufw-numbered.json","tests/fixtures/generic/ufw.json","tests/fixtures/generic/ufw.out"],"file_stats":[{"name":"docs/parsers/ufw.md","lines_changed":13},{"name":"jc/parsers/ufw.py","lines_changed":25},{"name":"tests/fixtures/generic/ufw-numbered.json","lines_changed":2},{"name":"tests/fixtures/generic/ufw.json","lines_changed":2},{"name":"tests/fixtures/generic/ufw.out","lines_changed":12}]}},{"commit":"f638aca092475bbae14fed765e90435c093fcb8b","message":"add deb package name fix","stats":{"files_changed":1,"insertions":1,"deletions":0,"files":["CHANGELOG"],"file_stats":[{"name":"CHANGELOG","lines_changed":1}]}},{"commit":"da35eaf80ad4f11e7482fc4734db4b2265e50548","message":"formatting","stats":{"files_changed":3,"insertions":1,"deletions":1,"files":["docs/parsers/ufw.md","jc/man/jc.1.gz","man/jc.1.gz"],"file_stats":[{"name":"docs/parsers/ufw.md","lines_changed":2},{"name":"jc/man/jc.1.gz","lines_changed":null},{"name":"man/jc.1.gz","lines_changed":null}]}},{"commit":"ade0e8e8fc18ff9a0dd406206a85238f1f5a739d","message":"add ufw tests","stats":{"files_changed":7,"insertions":107,"deletions":0,"files":["tests/fixtures/generic/ufw-inactive.json","tests/fixtures/generic/ufw-inactive.out","tests/fixtures/generic/ufw-numbered.json","tests/fixtures/generic/ufw-numbered.out","tests/fixtures/generic/ufw.json","tests/fixtures/generic/ufw.out","tests/test_ufw.py"],"file_stats":[{"name":"tests/fixtures/generic/ufw-inactive.json","lines_changed":1},{"name":"tests/fixtures/generic/ufw-inactive.out","lines_changed":1},{"name":"tests/fixtures/generic/ufw-numbered.json","lines_changed":1},{"name":"tests/fixtures/generic/ufw-numbered.out","lines_changed":23},{"name":"tests/fixtures/generic/ufw.json","lines_changed":1},{"name":"tests/fixtures/generic/ufw.out","lines_changed":22},{"name":"tests/test_ufw.py","lines_changed":58}]}},{"commit":"90076090f05a1f03e2fbff307418ee18d7d046ef","message":"fix int conversions if 'rules' key does not exist","stats":{"files_changed":1,"insertions":7,"deletions":5,"files":["jc/parsers/ufw.py"],"file_stats":[{"name":"jc/parsers/ufw.py","lines_changed":12}]}},{"commit":"23635def8b654097178f73ed1b57fc50965142d5","message":"add ufw to docs","stats":{"files_changed":6,"insertions":306,"deletions":4,"files":["README.md","docs/parsers/ping.md","docs/parsers/ufw.md","docs/utils.md","jc/man/jc.1.gz","man/jc.1.gz"],"file_stats":[{"name":"README.md","lines_changed":3},{"name":"docs/parsers/ping.md","lines_changed":1},{"name":"docs/parsers/ufw.md","lines_changed":302},{"name":"docs/utils.md","lines_changed":4},{"name":"jc/man/jc.1.gz","lines_changed":null},{"name":"man/jc.1.gz","lines_changed":null}]}},{"commit":"4eeec087bde98f90ab8425473d1fbeee6834852e","message":"add ufw example","stats":{"files_changed":1,"insertions":115,"deletions":0,"files":["EXAMPLES.md"],"file_stats":[{"name":"EXAMPLES.md","lines_changed":115}]}},{"commit":"733196103897a1d84d242324ddcf96e783320329","message":"update docs with new examples that have `to_service` always existing.","stats":{"files_changed":1,"insertions":4,"deletions":0,"files":["jc/parsers/ufw.py"],"file_stats":[{"name":"jc/parsers/ufw.py","lines_changed":4}]}},{"commit":"e4acb3d5b70a7d75741ef3e35cd6750d1362a80f","message":"always make to/from_service None if ports are assigned","stats":{"files_changed":1,"insertions":3,"deletions":1,"files":["jc/parsers/ufw.py"],"file_stats":[{"name":"jc/parsers/ufw.py","lines_changed":4}]}},{"commit":"c60549a9947d5684bbfa58223bfbcfc40a3ed479","message":"change field name from to/from_subnet to to/from_ip_prefix","stats":{"files_changed":1,"insertions":29,"deletions":29,"files":["jc/parsers/ufw.py"],"file_stats":[{"name":"jc/parsers/ufw.py","lines_changed":58}]}},{"commit":"d46fc8bbfa15a80a1af6c64f70230f858c215223","message":"set to/from_transport to None if to/from_service is set","stats":{"files_changed":1,"insertions":5,"deletions":4,"files":["jc/parsers/ufw.py"],"file_stats":[{"name":"jc/parsers/ufw.py","lines_changed":9}]}},{"commit":"b133d1f90d49362594508d8c475663754f0e7675","message":"strip interface value","stats":{"files_changed":1,"insertions":3,"deletions":3,"files":["jc/parsers/ufw.py"],"file_stats":[{"name":"jc/parsers/ufw.py","lines_changed":6}]}},{"commit":"5be615a97e7c145c8351764234ac591028560c34","message":"add examples for docs","stats":{"files_changed":1,"insertions":219,"deletions":9,"files":["jc/parsers/ufw.py"],"file_stats":[{"name":"jc/parsers/ufw.py","lines_changed":228}]}},{"commit":"ea1d820f96321ddf4084b54ee2fdf397295beb21","message":"convert integer fields","stats":{"files_changed":1,"insertions":7,"deletions":4,"files":["jc/parsers/ufw.py"],"file_stats":[{"name":"jc/parsers/ufw.py","lines_changed":11}]}},{"commit":"47e262cf7200b02ff0af97a70ffa6bec286c8f39","message":"clean up fields","stats":{"files_changed":1,"insertions":59,"deletions":14,"files":["jc/parsers/ufw.py"],"file_stats":[{"name":"jc/parsers/ufw.py","lines_changed":73}]}},{"commit":"eec673be9092e382694aa02682564510ce4e7f90","message":"working raw parser","stats":{"files_changed":1,"insertions":88,"deletions":3,"files":["jc/parsers/ufw.py"],"file_stats":[{"name":"jc/parsers/ufw.py","lines_changed":91}]}},{"commit":"9a0fb2a7c87e6fde0cc0d84fa8a1f131e28ea732","message":"parse major sections","stats":{"files_changed":1,"insertions":157,"deletions":0,"files":["jc/parsers/ufw.py"],"file_stats":[{"name":"jc/parsers/ufw.py","lines_changed":157}]}},{"commit":"b5145d6c14d7a51e7cfdebe126c9689dc90f7b27","message":"version bump to v1.15.3","stats":{"files_changed":4,"insertions":8,"deletions":4,"files":["CHANGELOG","jc/__init__.py","jc/cli.py","setup.py"],"file_stats":[{"name":"CHANGELOG","lines_changed":3},{"name":"jc/__init__.py","lines_changed":6},{"name":"jc/cli.py","lines_changed":1},{"name":"setup.py","lines_changed":2}]}},{"commit":"9747ca414dfb8218389c7b2199a080edabc2a184","message":"minor optimization to convert_to_int(). No longer runs through convert_to_float(), but uses standard float() function.","stats":{"files_changed":1,"insertions":6,"deletions":5,"files":["jc/utils.py"],"file_stats":[{"name":"jc/utils.py","lines_changed":11}]}},{"commit":"312d465b61a15592cc70d3734ad747b9a2be10ae","message":"update link","stats":{"files_changed":1,"insertions":1,"deletions":1,"files":["templates/readme_template"],"file_stats":[{"name":"templates/readme_template","lines_changed":2}]}},{"commit":"7dcf87d24ad40eba6ba98de2b4b2bf177a76cd71","message":"formatting","stats":{"files_changed":1,"insertions":0,"deletions":1,"files":["jc/parsers/ping.py"],"file_stats":[{"name":"jc/parsers/ping.py","lines_changed":1}]}},{"commit":"cf3cfd16a9de05f30303b5952fbe609cde842d2e","message":"rename tests","stats":{"files_changed":1,"insertions":3,"deletions":3,"files":["tests/test_utils.py"],"file_stats":[{"name":"tests/test_utils.py","lines_changed":6}]}},{"commit":"fcc7e5294973d1a18943fa2ce2e836b0fe757d95","message":"Merge pull request #123 from kellyjonbrazil/dev"},{"commit":"3ab9d480149a692510ab9e0ac8e745b674683e3d","message":"update changelog","stats":{"files_changed":1,"insertions":2,"deletions":2,"files":["CHANGELOG"],"file_stats":[{"name":"CHANGELOG","lines_changed":4}]}},{"commit":"7eddf41c5f6310264359cd6d78bdfa4b65af7d06","message":"dont round up int conversions and fix tests","stats":{"files_changed":11,"insertions":96,"deletions":9,"files":["jc/man/jc.1.gz","jc/utils.py","man/jc.1.gz","tests/fixtures/centos-7.7/df-h.json","tests/fixtures/centos-7.7/df.json","tests/fixtures/centos-7.7/free-h.json","tests/fixtures/osx-10.14.6/df-h.json","tests/fixtures/osx-10.14.6/ls-alh.json","tests/fixtures/ubuntu-18.04/df-h.json","tests/fixtures/ubuntu-18.04/free-h.json","tests/test_utils.py"],"file_stats":[{"name":"jc/man/jc.1.gz","lines_changed":null},{"name":"jc/utils.py","lines_changed":2},{"name":"man/jc.1.gz","lines_changed":null},{"name":"tests/fixtures/centos-7.7/df-h.json","lines_changed":2},{"name":"tests/fixtures/centos-7.7/df.json","lines_changed":2},{"name":"tests/fixtures/centos-7.7/free-h.json","lines_changed":2},{"name":"tests/fixtures/osx-10.14.6/df-h.json","lines_changed":2},{"name":"tests/fixtures/osx-10.14.6/ls-alh.json","lines_changed":2},{"name":"tests/fixtures/ubuntu-18.04/df-h.json","lines_changed":2},{"name":"tests/fixtures/ubuntu-18.04/free-h.json","lines_changed":2},{"name":"tests/test_utils.py","lines_changed":89}]}},{"commit":"27a196c93862bd737603cfe402b35529eb412954","message":"doc update","stats":{"files_changed":3,"insertions":1,"deletions":1,"files":["CHANGELOG","jc/man/jc.1.gz","man/jc.1.gz"],"file_stats":[{"name":"CHANGELOG","lines_changed":2},{"name":"jc/man/jc.1.gz","lines_changed":null},{"name":"man/jc.1.gz","lines_changed":null}]}},{"commit":"e4324f05fb6f89c34fa1567e70d8636457623edb","message":"fix indentation in doc","stats":{"files_changed":2,"insertions":14,"deletions":14,"files":["docs/parsers/dig.md","jc/parsers/dig.py"],"file_stats":[{"name":"docs/parsers/dig.md","lines_changed":14},{"name":"jc/parsers/dig.py","lines_changed":14}]}},{"commit":"d36b332bd78b5bf5979cdc59b31da08d8e4104d7","message":"use jc.utils for conversions","stats":{"files_changed":53,"insertions":196,"deletions":274,"files":["docs/parsers/systemctl_lj.md","docs/parsers/time.md","docs/parsers/timedatectl.md","docs/parsers/tracepath.md","docs/parsers/traceroute.md","docs/parsers/upower.md","docs/parsers/uptime.md","docs/parsers/wc.md","docs/parsers/who.md","docs/utils.md","jc/parsers/acpi.py","jc/parsers/airport_s.py","jc/parsers/arp.py","jc/parsers/blkid.py","jc/parsers/cksum.py","jc/parsers/df.py","jc/parsers/dig.py","jc/parsers/dir.py","jc/parsers/dmidecode.py","jc/parsers/du.py","jc/parsers/free.py","jc/parsers/fstab.py","jc/parsers/group.py","jc/parsers/hash.py","jc/parsers/hciconfig.py","jc/parsers/ifconfig.py","jc/parsers/iptables.py","jc/parsers/jobs.py","jc/parsers/ls.py","jc/parsers/lsblk.py","jc/parsers/lsmod.py","jc/parsers/lsof.py","jc/parsers/netstat.py","jc/parsers/ntpq.py","jc/parsers/passwd.py","jc/parsers/ps.py","jc/parsers/route.py","jc/parsers/rpm_qi.py","jc/parsers/shadow.py","jc/parsers/ss.py","jc/parsers/stat.py","jc/parsers/systemctl_lj.py","jc/parsers/systeminfo.py","jc/parsers/time.py","jc/parsers/timedatectl.py","jc/parsers/tracepath.py","jc/parsers/traceroute.py","jc/parsers/upower.py","jc/parsers/uptime.py","jc/parsers/w.py","jc/parsers/wc.py","jc/parsers/who.py","jc/utils.py"],"file_stats":[{"name":"docs/parsers/systemctl_lj.md","lines_changed":2},{"name":"docs/parsers/time.md","lines_changed":2},{"name":"docs/parsers/timedatectl.md","lines_changed":2},{"name":"docs/parsers/tracepath.md","lines_changed":2},{"name":"docs/parsers/traceroute.md","lines_changed":2},{"name":"docs/parsers/upower.md","lines_changed":2},{"name":"docs/parsers/uptime.md","lines_changed":2},{"name":"docs/parsers/wc.md","lines_changed":2},{"name":"docs/parsers/who.md","lines_changed":2},{"name":"docs/utils.md","lines_changed":2},{"name":"jc/parsers/acpi.py","lines_changed":21},{"name":"jc/parsers/airport_s.py","lines_changed":9},{"name":"jc/parsers/arp.py","lines_changed":4},{"name":"jc/parsers/blkid.py","lines_changed":4},{"name":"jc/parsers/cksum.py","lines_changed":4},{"name":"jc/parsers/df.py","lines_changed":4},{"name":"jc/parsers/dig.py","lines_changed":4},{"name":"jc/parsers/dir.py","lines_changed":4},{"name":"jc/parsers/dmidecode.py","lines_changed":4},{"name":"jc/parsers/du.py","lines_changed":4},{"name":"jc/parsers/free.py","lines_changed":4},{"name":"jc/parsers/fstab.py","lines_changed":4},{"name":"jc/parsers/group.py","lines_changed":4},{"name":"jc/parsers/hash.py","lines_changed":4},{"name":"jc/parsers/hciconfig.py","lines_changed":4},{"name":"jc/parsers/ifconfig.py","lines_changed":4},{"name":"jc/parsers/iptables.py","lines_changed":4},{"name":"jc/parsers/jobs.py","lines_changed":4},{"name":"jc/parsers/ls.py","lines_changed":4},{"name":"jc/parsers/lsblk.py","lines_changed":13},{"name":"jc/parsers/lsmod.py","lines_changed":4},{"name":"jc/parsers/lsof.py","lines_changed":4},{"name":"jc/parsers/netstat.py","lines_changed":16},{"name":"jc/parsers/ntpq.py","lines_changed":10},{"name":"jc/parsers/passwd.py","lines_changed":4},{"name":"jc/parsers/ps.py","lines_changed":13},{"name":"jc/parsers/route.py","lines_changed":4},{"name":"jc/parsers/rpm_qi.py","lines_changed":4},{"name":"jc/parsers/shadow.py","lines_changed":4},{"name":"jc/parsers/ss.py","lines_changed":4},{"name":"jc/parsers/stat.py","lines_changed":4},{"name":"jc/parsers/systemctl_lj.py","lines_changed":13},{"name":"jc/parsers/systeminfo.py","lines_changed":6},{"name":"jc/parsers/time.py","lines_changed":32},{"name":"jc/parsers/timedatectl.py","lines_changed":8},{"name":"jc/parsers/tracepath.py","lines_changed":42},{"name":"jc/parsers/traceroute.py","lines_changed":40},{"name":"jc/parsers/upower.py","lines_changed":24},{"name":"jc/parsers/uptime.py","lines_changed":39},{"name":"jc/parsers/w.py","lines_changed":4},{"name":"jc/parsers/wc.py","lines_changed":12},{"name":"jc/parsers/who.py","lines_changed":12},{"name":"jc/utils.py","lines_changed":36}]}},{"commit":"1f034826f69c461495f7a302cc8fe35e3052e72f","message":"use jc.utils for conversions","stats":{"files_changed":42,"insertions":94,"deletions":185,"files":["docs/parsers/iptables.md","docs/parsers/jobs.md","docs/parsers/last.md","docs/parsers/ls.md","docs/parsers/lsblk.md","docs/parsers/lsmod.md","docs/parsers/lsof.md","docs/parsers/netstat.md","docs/parsers/ntpq.md","docs/parsers/passwd.md","docs/parsers/ping.md","docs/parsers/ps.md","docs/parsers/route.md","docs/parsers/rpm_qi.md","docs/parsers/shadow.md","docs/parsers/ss.md","docs/parsers/stat.md","jc/parsers/iptables.py","jc/parsers/jobs.py","jc/parsers/last.py","jc/parsers/ls.py","jc/parsers/lsblk.py","jc/parsers/lsmod.py","jc/parsers/lsof.py","jc/parsers/netstat.py","jc/parsers/ntpq.py","jc/parsers/passwd.py","jc/parsers/ping.py","jc/parsers/ps.py","jc/parsers/route.py","jc/parsers/rpm_qi.py","jc/parsers/shadow.py","jc/parsers/ss.py","jc/parsers/stat.py","tests/fixtures/centos-7.7/ls-alh.json","tests/fixtures/centos-7.7/lsof-sudo.json","tests/fixtures/centos-7.7/lsof.json","tests/fixtures/osx-10.11.6/ls-alh.json","tests/fixtures/osx-10.14.6/ls-alh.json","tests/fixtures/ubuntu-18.04/ls-alh.json","tests/fixtures/ubuntu-18.04/lsof-sudo.json","tests/fixtures/ubuntu-18.04/lsof.json"],"file_stats":[{"name":"docs/parsers/iptables.md","lines_changed":2},{"name":"docs/parsers/jobs.md","lines_changed":2},{"name":"docs/parsers/last.md","lines_changed":2},{"name":"docs/parsers/ls.md","lines_changed":3},{"name":"docs/parsers/lsblk.md","lines_changed":2},{"name":"docs/parsers/lsmod.md","lines_changed":2},{"name":"docs/parsers/lsof.md","lines_changed":2},{"name":"docs/parsers/netstat.md","lines_changed":2},{"name":"docs/parsers/ntpq.md","lines_changed":2},{"name":"docs/parsers/passwd.md","lines_changed":2},{"name":"docs/parsers/ping.md","lines_changed":2},{"name":"docs/parsers/ps.md","lines_changed":2},{"name":"docs/parsers/route.md","lines_changed":2},{"name":"docs/parsers/rpm_qi.md","lines_changed":2},{"name":"docs/parsers/shadow.md","lines_changed":2},{"name":"docs/parsers/ss.md","lines_changed":2},{"name":"docs/parsers/stat.md","lines_changed":2},{"name":"jc/parsers/iptables.py","lines_changed":10},{"name":"jc/parsers/jobs.py","lines_changed":8},{"name":"jc/parsers/last.py","lines_changed":4},{"name":"jc/parsers/ls.py","lines_changed":9},{"name":"jc/parsers/lsblk.py","lines_changed":14},{"name":"jc/parsers/lsmod.py","lines_changed":9},{"name":"jc/parsers/lsof.py","lines_changed":10},{"name":"jc/parsers/netstat.py","lines_changed":37},{"name":"jc/parsers/ntpq.py","lines_changed":12},{"name":"jc/parsers/passwd.py","lines_changed":8},{"name":"jc/parsers/ping.py","lines_changed":34},{"name":"jc/parsers/ps.py","lines_changed":15},{"name":"jc/parsers/route.py","lines_changed":8},{"name":"jc/parsers/rpm_qi.py","lines_changed":9},{"name":"jc/parsers/shadow.py","lines_changed":8},{"name":"jc/parsers/ss.py","lines_changed":22},{"name":"jc/parsers/stat.py","lines_changed":11},{"name":"tests/fixtures/centos-7.7/ls-alh.json","lines_changed":2},{"name":"tests/fixtures/centos-7.7/lsof-sudo.json","lines_changed":2},{"name":"tests/fixtures/centos-7.7/lsof.json","lines_changed":2},{"name":"tests/fixtures/osx-10.11.6/ls-alh.json","lines_changed":2},{"name":"tests/fixtures/osx-10.14.6/ls-alh.json","lines_changed":2},{"name":"tests/fixtures/ubuntu-18.04/ls-alh.json","lines_changed":2},{"name":"tests/fixtures/ubuntu-18.04/lsof-sudo.json","lines_changed":2},{"name":"tests/fixtures/ubuntu-18.04/lsof.json","lines_changed":2}]}},{"commit":"246c707c98d3128b4e38f5c4b23a1e0ceedc0b0c","message":"use jc.utils conversions","stats":{"files_changed":46,"insertions":190,"deletions":196,"files":["CHANGELOG","docs/parsers/acpi.md","docs/parsers/airport.md","docs/parsers/airport_s.md","docs/parsers/blkid.md","docs/parsers/cksum.md","docs/parsers/df.md","docs/parsers/dir.md","docs/parsers/dmidecode.md","docs/parsers/du.md","docs/parsers/free.md","docs/parsers/fstab.md","docs/parsers/group.md","docs/parsers/hash.md","docs/parsers/hciconfig.md","docs/parsers/history.md","docs/parsers/id.md","docs/parsers/ifconfig.md","docs/utils.md","jc/parsers/acpi.py","jc/parsers/airport.py","jc/parsers/airport_s.py","jc/parsers/arp.py","jc/parsers/blkid.py","jc/parsers/cksum.py","jc/parsers/df.py","jc/parsers/dig.py","jc/parsers/dir.py","jc/parsers/dmidecode.py","jc/parsers/du.py","jc/parsers/foo.py","jc/parsers/free.py","jc/parsers/fstab.py","jc/parsers/group.py","jc/parsers/hash.py","jc/parsers/hciconfig.py","jc/parsers/history.py","jc/parsers/id.py","jc/parsers/ifconfig.py","jc/utils.py","tests/fixtures/centos-7.7/df-h.json","tests/fixtures/centos-7.7/free-h.json","tests/fixtures/osx-10.11.6/df-h.json","tests/fixtures/osx-10.14.6/df-h.json","tests/fixtures/ubuntu-18.04/df-h.json","tests/fixtures/ubuntu-18.04/free-h.json"],"file_stats":[{"name":"CHANGELOG","lines_changed":1},{"name":"docs/parsers/acpi.md","lines_changed":2},{"name":"docs/parsers/airport.md","lines_changed":2},{"name":"docs/parsers/airport_s.md","lines_changed":2},{"name":"docs/parsers/blkid.md","lines_changed":2},{"name":"docs/parsers/cksum.md","lines_changed":2},{"name":"docs/parsers/df.md","lines_changed":2},{"name":"docs/parsers/dir.md","lines_changed":2},{"name":"docs/parsers/dmidecode.md","lines_changed":2},{"name":"docs/parsers/du.md","lines_changed":2},{"name":"docs/parsers/free.md","lines_changed":2},{"name":"docs/parsers/fstab.md","lines_changed":2},{"name":"docs/parsers/group.md","lines_changed":2},{"name":"docs/parsers/hash.md","lines_changed":2},{"name":"docs/parsers/hciconfig.md","lines_changed":2},{"name":"docs/parsers/history.md","lines_changed":2},{"name":"docs/parsers/id.md","lines_changed":2},{"name":"docs/parsers/ifconfig.md","lines_changed":2},{"name":"docs/utils.md","lines_changed":48},{"name":"jc/parsers/acpi.py","lines_changed":22},{"name":"jc/parsers/airport.py","lines_changed":7},{"name":"jc/parsers/airport_s.py","lines_changed":12},{"name":"jc/parsers/arp.py","lines_changed":5},{"name":"jc/parsers/blkid.py","lines_changed":7},{"name":"jc/parsers/cksum.py","lines_changed":8},{"name":"jc/parsers/df.py","lines_changed":14},{"name":"jc/parsers/dig.py","lines_changed":50},{"name":"jc/parsers/dir.py","lines_changed":11},{"name":"jc/parsers/dmidecode.py","lines_changed":8},{"name":"jc/parsers/du.py","lines_changed":8},{"name":"jc/parsers/foo.py","lines_changed":2},{"name":"jc/parsers/free.py","lines_changed":8},{"name":"jc/parsers/fstab.py","lines_changed":8},{"name":"jc/parsers/group.py","lines_changed":8},{"name":"jc/parsers/hash.py","lines_changed":9},{"name":"jc/parsers/hciconfig.py","lines_changed":8},{"name":"jc/parsers/history.py","lines_changed":6},{"name":"jc/parsers/id.py","lines_changed":17},{"name":"jc/parsers/ifconfig.py","lines_changed":11},{"name":"jc/utils.py","lines_changed":62},{"name":"tests/fixtures/centos-7.7/df-h.json","lines_changed":2},{"name":"tests/fixtures/centos-7.7/free-h.json","lines_changed":2},{"name":"tests/fixtures/osx-10.11.6/df-h.json","lines_changed":2},{"name":"tests/fixtures/osx-10.14.6/df-h.json","lines_changed":2},{"name":"tests/fixtures/ubuntu-18.04/df-h.json","lines_changed":2},{"name":"tests/fixtures/ubuntu-18.04/free-h.json","lines_changed":2}]}},{"commit":"b5d8968144e76090870f8563dc1bce910fba668c","message":"add convert_to_int function","stats":{"files_changed":1,"insertions":19,"deletions":0,"files":["jc/utils.py"],"file_stats":[{"name":"jc/utils.py","lines_changed":19}]}},{"commit":"f7b9fbefdde6973077573fec02342eb9946789c6","message":"add query_size info for dig","stats":{"files_changed":1,"insertions":1,"deletions":0,"files":["CHANGELOG"],"file_stats":[{"name":"CHANGELOG","lines_changed":1}]}},{"commit":"b1fc4533833ca25f59869bfec8ac114bf49c7847","message":"fix _IfconfigParser name","stats":{"files_changed":1,"insertions":1,"deletions":1,"files":["jc/parsers/ifconfig.py"],"file_stats":[{"name":"jc/parsers/ifconfig.py","lines_changed":2}]}},{"commit":"7581c8d0f4262fc6a05240bb21ffe533b153f6e4","message":"add query_size field. handle user-specified dig output better - especially when querying dnssec","stats":{"files_changed":3,"insertions":45,"deletions":32,"files":["docs/parsers/dig.md","jc/parsers/dig.py","tests/fixtures/generic/dig-edns3.json"],"file_stats":[{"name":"docs/parsers/dig.md","lines_changed":1},{"name":"jc/parsers/dig.py","lines_changed":74},{"name":"tests/fixtures/generic/dig-edns3.json","lines_changed":2}]}},{"commit":"32bf8ad6f4fff83fdfd83d66c1ba8f1af5a65a90","message":"update dig docs","stats":{"files_changed":4,"insertions":52,"deletions":24,"files":["CHANGELOG","EXAMPLES.md","docs/parsers/dig.md","jc/parsers/dig.py"],"file_stats":[{"name":"CHANGELOG","lines_changed":2},{"name":"EXAMPLES.md","lines_changed":10},{"name":"docs/parsers/dig.md","lines_changed":32},{"name":"jc/parsers/dig.py","lines_changed":32}]}},{"commit":"b083bcc10fa1105fc09ce8d2c3297aa5575c9d51","message":"update man page","stats":{"files_changed":2,"insertions":0,"deletions":0,"files":["jc/man/jc.1.gz","man/jc.1.gz"],"file_stats":[{"name":"jc/man/jc.1.gz","lines_changed":null},{"name":"man/jc.1.gz","lines_changed":null}]}},{"commit":"4f6fdd120d23468270c1d7111e4ef71b87759a1c","message":"use dig as example","stats":{"files_changed":2,"insertions":134,"deletions":100,"files":["docs/readme.md","jc/__init__.py"],"file_stats":[{"name":"docs/readme.md","lines_changed":117},{"name":"jc/__init__.py","lines_changed":117}]}},{"commit":"eb0038be2490053d32803d30e1c3d4d34509d130","message":"update dig examples","stats":{"files_changed":1,"insertions":40,"deletions":19,"files":["EXAMPLES.md"],"file_stats":[{"name":"EXAMPLES.md","lines_changed":59}]}},{"commit":"7ecdf819fa37c38ae6159ad8e7bc973ee4f34559","message":"remove dig example from readme,","stats":{"files_changed":2,"insertions":0,"deletions":84,"files":["README.md","templates/readme_template"],"file_stats":[{"name":"README.md","lines_changed":42},{"name":"templates/readme_template","lines_changed":42}]}},{"commit":"c6aa4d083550d25bcb621cad524047cfd6a08217","message":"update docs with new dig parser examples","stats":{"files_changed":6,"insertions":252,"deletions":317,"files":["README.md","docs/parsers/dig.md","jc/man/jc.1.gz","jc/parsers/dig.py","man/jc.1.gz","templates/readme_template"],"file_stats":[{"name":"README.md","lines_changed":84},{"name":"docs/parsers/dig.md","lines_changed":313},{"name":"jc/man/jc.1.gz","lines_changed":null},{"name":"jc/parsers/dig.py","lines_changed":88},{"name":"man/jc.1.gz","lines_changed":null},{"name":"templates/readme_template","lines_changed":84}]}},{"commit":"7c584b89a6e6b924d53d50103b97f0c2405c33b1","message":"add additional section","stats":{"files_changed":15,"insertions":352,"deletions":52,"files":["jc/parsers/dig.py","tests/fixtures/generic/dig-additional.json","tests/fixtures/generic/dig-additional.out","tests/fixtures/generic/dig-additional2.json","tests/fixtures/generic/dig-additional2.out","tests/fixtures/generic/dig-additional3.json","tests/fixtures/generic/dig-additional3.out","tests/fixtures/generic/dig-answer-spaces.json","tests/fixtures/generic/dig-edns.json","tests/fixtures/generic/dig-edns.out","tests/fixtures/generic/dig-edns2.json","tests/fixtures/generic/dig-edns2.out","tests/fixtures/generic/dig-edns3.json","tests/fixtures/generic/dig-edns3.out","tests/test_dig.py"],"file_stats":[{"name":"jc/parsers/dig.py","lines_changed":123},{"name":"tests/fixtures/generic/dig-additional.json","lines_changed":1},{"name":"tests/fixtures/generic/dig-additional.out","lines_changed":32},{"name":"tests/fixtures/generic/dig-additional2.json","lines_changed":1},{"name":"tests/fixtures/generic/dig-additional2.out","lines_changed":34},{"name":"tests/fixtures/generic/dig-additional3.json","lines_changed":1},{"name":"tests/fixtures/generic/dig-additional3.out","lines_changed":41},{"name":"tests/fixtures/generic/dig-answer-spaces.json","lines_changed":2},{"name":"tests/fixtures/generic/dig-edns.json","lines_changed":1},{"name":"tests/fixtures/generic/dig-edns.out","lines_changed":20},{"name":"tests/fixtures/generic/dig-edns2.json","lines_changed":1},{"name":"tests/fixtures/generic/dig-edns2.out","lines_changed":38},{"name":"tests/fixtures/generic/dig-edns3.json","lines_changed":1},{"name":"tests/fixtures/generic/dig-edns3.out","lines_changed":34},{"name":"tests/test_dig.py","lines_changed":74}]}},{"commit":"c166c0bfdafa922f57f021fa4d16e467fca02d58","message":"add opt_pseudosection section to output and fix existing tests","stats":{"files_changed":14,"insertions":55,"deletions":21,"files":["jc/parsers/dig.py","tests/fixtures/centos-7.7/dig-aaaa.json","tests/fixtures/centos-7.7/dig-x.json","tests/fixtures/centos-7.7/dig.json","tests/fixtures/generic/dig-answer-spaces.json","tests/fixtures/osx-10.11.6/dig-aaaa.json","tests/fixtures/osx-10.11.6/dig-x.json","tests/fixtures/osx-10.11.6/dig.json","tests/fixtures/osx-10.14.6/dig-aaaa.json","tests/fixtures/osx-10.14.6/dig-x.json","tests/fixtures/osx-10.14.6/dig.json","tests/fixtures/ubuntu-18.04/dig-aaaa.json","tests/fixtures/ubuntu-18.04/dig-x.json","tests/fixtures/ubuntu-18.04/dig.json"],"file_stats":[{"name":"jc/parsers/dig.py","lines_changed":50},{"name":"tests/fixtures/centos-7.7/dig-aaaa.json","lines_changed":2},{"name":"tests/fixtures/centos-7.7/dig-x.json","lines_changed":2},{"name":"tests/fixtures/centos-7.7/dig.json","lines_changed":2},{"name":"tests/fixtures/generic/dig-answer-spaces.json","lines_changed":2},{"name":"tests/fixtures/osx-10.11.6/dig-aaaa.json","lines_changed":2},{"name":"tests/fixtures/osx-10.11.6/dig-x.json","lines_changed":2},{"name":"tests/fixtures/osx-10.11.6/dig.json","lines_changed":2},{"name":"tests/fixtures/osx-10.14.6/dig-aaaa.json","lines_changed":2},{"name":"tests/fixtures/osx-10.14.6/dig-x.json","lines_changed":2},{"name":"tests/fixtures/osx-10.14.6/dig.json","lines_changed":2},{"name":"tests/fixtures/ubuntu-18.04/dig-aaaa.json","lines_changed":2},{"name":"tests/fixtures/ubuntu-18.04/dig-x.json","lines_changed":2},{"name":"tests/fixtures/ubuntu-18.04/dig.json","lines_changed":2}]}},{"commit":"a8dd3f7802bfe8fd3ffbedf89af45ddc580ee78d","message":"working dig axfr fixes","stats":{"files_changed":5,"insertions":54,"deletions":281,"files":["CHANGELOG","jc/parsers/dig.py","tests/fixtures/centos-7.7/dig-axfr.json","tests/fixtures/osx-10.14.6/dig-axfr.json","tests/fixtures/ubuntu-18.04/dig-axfr.json"],"file_stats":[{"name":"CHANGELOG","lines_changed":4},{"name":"jc/parsers/dig.py","lines_changed":325},{"name":"tests/fixtures/centos-7.7/dig-axfr.json","lines_changed":2},{"name":"tests/fixtures/osx-10.14.6/dig-axfr.json","lines_changed":2},{"name":"tests/fixtures/ubuntu-18.04/dig-axfr.json","lines_changed":2}]}},{"commit":"3b0e2f03f3b11398ff57b1daed542faaf0b80a62","message":"clean up examples","stats":{"files_changed":2,"insertions":24,"deletions":23,"files":["jc/cli.py","templates/manpage_template"],"file_stats":[{"name":"jc/cli.py","lines_changed":21},{"name":"templates/manpage_template","lines_changed":26}]}},{"commit":"8390ae48c88ab1c7d5acbf40c0e60606953817bd","message":"fix server entry when IPv6 address is in value (maxsplit on colons)","stats":{"files_changed":7,"insertions":8,"deletions":8,"files":["jc/parsers/dig.py","tests/fixtures/osx-10.11.6/dig-aaaa.json","tests/fixtures/osx-10.11.6/dig-x.json","tests/fixtures/osx-10.11.6/dig.json","tests/fixtures/osx-10.14.6/dig-aaaa.json","tests/fixtures/osx-10.14.6/dig-x.json","tests/fixtures/osx-10.14.6/dig.json"],"file_stats":[{"name":"jc/parsers/dig.py","lines_changed":4},{"name":"tests/fixtures/osx-10.11.6/dig-aaaa.json","lines_changed":2},{"name":"tests/fixtures/osx-10.11.6/dig-x.json","lines_changed":2},{"name":"tests/fixtures/osx-10.11.6/dig.json","lines_changed":2},{"name":"tests/fixtures/osx-10.14.6/dig-aaaa.json","lines_changed":2},{"name":"tests/fixtures/osx-10.14.6/dig-x.json","lines_changed":2},{"name":"tests/fixtures/osx-10.14.6/dig.json","lines_changed":2}]}},{"commit":"2db82c0a7e19d596c876ede8a8ff106aaa733ee5","message":"add systeminfo example","stats":{"files_changed":1,"insertions":66,"deletions":0,"files":["EXAMPLES.md"],"file_stats":[{"name":"EXAMPLES.md","lines_changed":66}]}},{"commit":"61479540756704f10853233300ceae8f954a8a95","message":"update tests","stats":{"files_changed":2,"insertions":5,"deletions":0,"files":["tests/test_systeminfo.py","tests/test_utils.py"],"file_stats":[{"name":"tests/test_systeminfo.py","lines_changed":1},{"name":"tests/test_utils.py","lines_changed":4}]}},{"commit":"691df271fcfe057ae4b75ad40869e23deb37b886","message":"add info docstring","stats":{"files_changed":4,"insertions":2,"deletions":1,"files":["docs/parsers/systeminfo.md","jc/man/jc.1.gz","jc/parsers/systeminfo.py","man/jc.1.gz"],"file_stats":[{"name":"docs/parsers/systeminfo.md","lines_changed":2},{"name":"jc/man/jc.1.gz","lines_changed":null},{"name":"jc/parsers/systeminfo.py","lines_changed":1},{"name":"man/jc.1.gz","lines_changed":null}]}},{"commit":"89f52b95f7055da9d7b5fa8dce0923d4c3435bd2","message":"update systeminfo parser with updated timestamps, normalized blank fields, and new doc style","stats":{"files_changed":13,"insertions":467,"deletions":821,"files":["README.md","docs/parsers/systeminfo.md","jc/man/jc.1.gz","jc/parsers/systeminfo.py","jc/utils.py","man/jc.1.gz",".../windows/windows-10/systeminfo-hyperv-utc.json",".../windows/windows-10/systeminfo-hyperv-utc.out",".../windows/windows-10/systeminfo-hyperv.json","tests/fixtures/windows/windows-10/systeminfo.json","tests/fixtures/windows/windows-10/systeminfo.out",".../windows/windows-2012r2/systeminfo.json","tests/fixtures/windows/windows-7/systeminfo.json"],"file_stats":[{"name":"README.md","lines_changed":1},{"name":"docs/parsers/systeminfo.md","lines_changed":290},{"name":"jc/man/jc.1.gz","lines_changed":null},{"name":"jc/parsers/systeminfo.py","lines_changed":361},{"name":"jc/utils.py","lines_changed":5},{"name":"man/jc.1.gz","lines_changed":null},{"name":".../windows/windows-10/systeminfo-hyperv-utc.json","lines_changed":1},{"name":".../windows/windows-10/systeminfo-hyperv-utc.out","lines_changed":79},{"name":".../windows/windows-10/systeminfo-hyperv.json","lines_changed":112},{"name":"tests/fixtures/windows/windows-10/systeminfo.json","lines_changed":57},{"name":"tests/fixtures/windows/windows-10/systeminfo.out","lines_changed":1},{"name":".../windows/windows-2012r2/systeminfo.json","lines_changed":55},{"name":"tests/fixtures/windows/windows-7/systeminfo.json","lines_changed":326}]}},{"commit":"146acc1bf69c402e38c2f1bc842b84e6cff7e2cb","message":"rename functions to make them private","stats":{"files_changed":1,"insertions":23,"deletions":29,"files":["jc/parsers/systeminfo.py"],"file_stats":[{"name":"jc/parsers/systeminfo.py","lines_changed":52}]}},{"commit":"c4a345f59aa090336b4e80f181493cd5bc2c17c5","message":"Merge pull request #106 from jon-rd/j/systeminfo"},{"commit":"dfd2703f75b907ba865fff266d0742d8931bc2d3","message":"bump dev to v1.15.2","stats":{"files_changed":3,"insertions":5,"deletions":2,"files":["CHANGELOG","jc/__init__.py","setup.py"],"file_stats":[{"name":"CHANGELOG","lines_changed":3},{"name":"jc/__init__.py","lines_changed":2},{"name":"setup.py","lines_changed":2}]}},{"commit":"325fab2de7b8a4bfc452ab8d3cf333d47fdf4989","message":"update documentation for parsed structures","stats":{"files_changed":1,"insertions":6,"deletions":4,"files":["jc/parsers/systeminfo.py"],"file_stats":[{"name":"jc/parsers/systeminfo.py","lines_changed":10}]}},{"commit":"f3d00cf38ad15aeda7eaa5644ebc30ff33de6a29","message":"append mb to memory key names; adjust expected timestamps to utc tz","stats":{"files_changed":5,"insertions":56,"deletions":48,"files":["jc/parsers/systeminfo.py",".../windows/windows-10/systeminfo-hyperv.json","tests/fixtures/windows/windows-10/systeminfo.json",".../windows/windows-2012r2/systeminfo.json","tests/fixtures/windows/windows-7/systeminfo.json"],"file_stats":[{"name":"jc/parsers/systeminfo.py","lines_changed":48},{"name":".../windows/windows-10/systeminfo-hyperv.json","lines_changed":14},{"name":"tests/fixtures/windows/windows-10/systeminfo.json","lines_changed":14},{"name":".../windows/windows-2012r2/systeminfo.json","lines_changed":14},{"name":"tests/fixtures/windows/windows-7/systeminfo.json","lines_changed":14}]}},{"commit":"14838f7f5d780896f1318cac2c3f34d249a158d4","message":"update schema with nic, hyperv, and process changes","stats":{"files_changed":9,"insertions":956,"deletions":116,"files":["jc/parsers/systeminfo.py","jc/utils.py",".../windows/windows-10/systeminfo-hyperv.json",".../windows/windows-10/systeminfo-hyperv.out","tests/fixtures/windows/windows-10/systeminfo.json",".../windows/windows-2012r2/systeminfo.json",".../fixtures/windows/windows-2012r2/systeminfo.out","tests/fixtures/windows/windows-7/systeminfo.json","tests/test_systeminfo.py"],"file_stats":[{"name":"jc/parsers/systeminfo.py","lines_changed":357},{"name":"jc/utils.py","lines_changed":1},{"name":".../windows/windows-10/systeminfo-hyperv.json","lines_changed":111},{"name":".../windows/windows-10/systeminfo-hyperv.out","lines_changed":79},{"name":"tests/fixtures/windows/windows-10/systeminfo.json","lines_changed":43},{"name":".../windows/windows-2012r2/systeminfo.json","lines_changed":54},{"name":".../fixtures/windows/windows-2012r2/systeminfo.out","lines_changed":45},{"name":"tests/fixtures/windows/windows-7/systeminfo.json","lines_changed":311},{"name":"tests/test_systeminfo.py","lines_changed":71}]}},{"commit":"af74047b81776c2ea32d82f9145ab60c346c8203","message":"update schema based on processor/hotfix changes","stats":{"files_changed":1,"insertions":4,"deletions":4,"files":["jc/parsers/systeminfo.py"],"file_stats":[{"name":"jc/parsers/systeminfo.py","lines_changed":8}]}},{"commit":"660c59129cf4ba7889fb3c6fbafd9dd9b479ccd9","message":"Add parsing of processors/hotfixs","stats":{"files_changed":3,"insertions":41,"deletions":9,"files":["jc/parsers/systeminfo.py","tests/fixtures/windows/windows-10/systeminfo.json","tests/fixtures/windows/windows-7/systeminfo.json"],"file_stats":[{"name":"jc/parsers/systeminfo.py","lines_changed":42},{"name":"tests/fixtures/windows/windows-10/systeminfo.json","lines_changed":4},{"name":"tests/fixtures/windows/windows-7/systeminfo.json","lines_changed":4}]}},{"commit":"89a88e186ed71d84ea802cf08ab756b49cee3225","message":"Add systeminfo.md file","stats":{"files_changed":1,"insertions":152,"deletions":0,"files":["docs/parsers/systeminfo.md"],"file_stats":[{"name":"docs/parsers/systeminfo.md","lines_changed":152}]}},{"commit":"f861cf95b96a224a0a11f2cdc3261b94c02415ef","message":"Change to v0.5; add parser to cli.py; add to docgen","stats":{"files_changed":2,"insertions":2,"deletions":1,"files":["jc/cli.py","jc/parsers/systeminfo.py"],"file_stats":[{"name":"jc/cli.py","lines_changed":1},{"name":"jc/parsers/systeminfo.py","lines_changed":2}]}},{"commit":"ee8f06cbdb03f8254bb6a3c56fa5b8a64ff9ca77","message":"Add windows systeminfo command parser","stats":{"files_changed":6,"insertions":688,"deletions":0,"files":["jc/parsers/systeminfo.py","tests/fixtures/windows/windows-10/systeminfo.json","tests/fixtures/windows/windows-10/systeminfo.out","tests/fixtures/windows/windows-7/systeminfo.json","tests/fixtures/windows/windows-7/systeminfo.out","tests/test_systeminfo.py"],"file_stats":[{"name":"jc/parsers/systeminfo.py","lines_changed":209},{"name":"tests/fixtures/windows/windows-10/systeminfo.json","lines_changed":35},{"name":"tests/fixtures/windows/windows-10/systeminfo.out","lines_changed":47},{"name":"tests/fixtures/windows/windows-7/systeminfo.json","lines_changed":34},{"name":"tests/fixtures/windows/windows-7/systeminfo.out","lines_changed":298},{"name":"tests/test_systeminfo.py","lines_changed":65}]}},{"commit":"a2e8b3c7b681605916b8950d035ee19889a125a5","message":"Merge pull request #121 from kellyjonbrazil/master"},{"commit":"6c838460752c7131f75cdab2da07266fee492060","message":"Merge pull request #120 from kellyjonbrazil/dev"},{"commit":"e0681eebb9881dc0ffddb478224455f434919104","message":"Merge branch 'master' into dev"},{"commit":"e5732d1cea1c882f6486cf288e45edb993989ea0","message":"update changelog","stats":{"files_changed":1,"insertions":2,"deletions":1,"files":["CHANGELOG"],"file_stats":[{"name":"CHANGELOG","lines_changed":3}]}},{"commit":"6e7ae3cd3f003fe9e1e587b7f8ebd16ba0895014","message":"formatting of timedatectl docs","stats":{"files_changed":4,"insertions":2,"deletions":2,"files":["docs/parsers/timedatectl.md","jc/man/jc.1.gz","jc/parsers/timedatectl.py","man/jc.1.gz"],"file_stats":[{"name":"docs/parsers/timedatectl.md","lines_changed":2},{"name":"jc/man/jc.1.gz","lines_changed":null},{"name":"jc/parsers/timedatectl.py","lines_changed":2},{"name":"man/jc.1.gz","lines_changed":null}]}},{"commit":"f95632d1aaee545ae0ce081ca0617be135c09220","message":"add install_date calculated fields","stats":{"files_changed":7,"insertions":83,"deletions":62,"files":["EXAMPLES.md","docs/parsers/rpm_qi.md","jc/man/jc.1.gz","jc/parsers/rpm_qi.py","man/jc.1.gz","tests/fixtures/centos-7.7/rpm-qai.json","tests/fixtures/centos-7.7/rpm-qi-package.json"],"file_stats":[{"name":"EXAMPLES.md","lines_changed":12},{"name":"docs/parsers/rpm_qi.md","lines_changed":62},{"name":"jc/man/jc.1.gz","lines_changed":null},{"name":"jc/parsers/rpm_qi.py","lines_changed":67},{"name":"man/jc.1.gz","lines_changed":null},{"name":"tests/fixtures/centos-7.7/rpm-qai.json","lines_changed":2},{"name":"tests/fixtures/centos-7.7/rpm-qi-package.json","lines_changed":2}]}},{"commit":"2f8b7b26e59bcd745fa1fcadb373455c7d404286","message":"update docs for v1.15.1","stats":{"files_changed":3,"insertions":1,"deletions":2,"files":["CHANGELOG","jc/man/jc.1.gz","man/jc.1.gz"],"file_stats":[{"name":"CHANGELOG","lines_changed":3},{"name":"jc/man/jc.1.gz","lines_changed":null},{"name":"man/jc.1.gz","lines_changed":null}]}},{"commit":"10292f7502e4cb1c53b53ed39fed9288044c2ef8","message":"Merge pull request #119 from kellyjonbrazil/dpkg_l-fix"},{"commit":"aef54705f5267c633e0778e8dce0065978083139","message":"add _l to module name","stats":{"files_changed":1,"insertions":2,"deletions":2,"files":["docs/parsers/dpkg_l.md"],"file_stats":[{"name":"docs/parsers/dpkg_l.md","lines_changed":4}]}},{"commit":"bba5980fa53767716bc35d8c904e7a2341346eeb","message":"man page update","stats":{"files_changed":2,"insertions":0,"deletions":0,"files":["jc/man/jc.1.gz","man/jc.1.gz"],"file_stats":[{"name":"jc/man/jc.1.gz","lines_changed":null},{"name":"man/jc.1.gz","lines_changed":null}]}},{"commit":"977425abfb05a63ee372df36124ac6ba6a5a0aaa","message":"add _l to package name in docs","stats":{"files_changed":2,"insertions":4,"deletions":4,"files":["docs/parsers/dpkg_l.md","jc/parsers/dpkg_l.py"],"file_stats":[{"name":"docs/parsers/dpkg_l.md","lines_changed":4},{"name":"jc/parsers/dpkg_l.py","lines_changed":4}]}},{"commit":"37a3565a1bbd3d01663602673fed651509e69d8c","message":"Merge pull request #118 from kellyjonbrazil/rpm-qi-doc-fix"},{"commit":"13deb8bfb6e77aaf86942f0be87b59d06ee2a97c","message":"fix rpm-qi docs","stats":{"files_changed":2,"insertions":3,"deletions":194,"files":["docs/parsers/rpm_qai.md","docs/parsers/rpm_qi.md"],"file_stats":[{"name":"docs/parsers/rpm_qai.md","lines_changed":191},{"name":"docs/parsers/rpm_qi.md","lines_changed":6}]}},{"commit":"a3ed9d075aff41599452c3094f7d057c25fc8f89","message":"remove old parser doc","stats":{"files_changed":1,"insertions":0,"deletions":191,"files":["docs/parsers/rpm_qai.md"],"file_stats":[{"name":"docs/parsers/rpm_qai.md","lines_changed":191}]}},{"commit":"fb0ced549e021916dee7da39859e8f85c8216e16","message":"fix rpm-qi docs (used underscore instead of dash in name)","stats":{"files_changed":4,"insertions":6,"deletions":6,"files":["docs/parsers/rpm_qi.md","jc/man/jc.1.gz","jc/parsers/rpm_qi.py","man/jc.1.gz"],"file_stats":[{"name":"docs/parsers/rpm_qi.md","lines_changed":6},{"name":"jc/man/jc.1.gz","lines_changed":null},{"name":"jc/parsers/rpm_qi.py","lines_changed":6},{"name":"man/jc.1.gz","lines_changed":null}]}},{"commit":"7eb31bc7d290fcd09e53524ebbb11e59110df6a0","message":"update airport_s docs","stats":{"files_changed":4,"insertions":39,"deletions":48,"files":["docs/parsers/airport_s.md","jc/man/jc.1.gz","jc/parsers/airport_s.py","man/jc.1.gz"],"file_stats":[{"name":"docs/parsers/airport_s.md","lines_changed":49},{"name":"jc/man/jc.1.gz","lines_changed":null},{"name":"jc/parsers/airport_s.py","lines_changed":38},{"name":"man/jc.1.gz","lines_changed":null}]}},{"commit":"6a06a3914273853742ac57433398968ccf7d9897","message":"use herestring instead of echo -e into jq","stats":{"files_changed":1,"insertions":6,"deletions":6,"files":["docgen.sh"],"file_stats":[{"name":"docgen.sh","lines_changed":12}]}},{"commit":"bdcdaee6c5299ea0750512e0943c7f58f56f2e35","message":"Merge pull request #117 from kellyjonbrazil/doc_update"},{"commit":"605353fdce3b8b5986d20a35d05f7210a6df0730","message":"add new docs","stats":{"files_changed":70,"insertions":1710,"deletions":2656,"files":["docs/parsers/acpi.md","docs/parsers/airport.md","docs/parsers/airport_s.md","docs/parsers/arp.md","docs/parsers/blkid.md","docs/parsers/cksum.md","docs/parsers/crontab.md","docs/parsers/crontab_u.md","docs/parsers/csv.md","docs/parsers/date.md","docs/parsers/df.md","docs/parsers/dig.md","docs/parsers/dir.md","docs/parsers/dmidecode.md","docs/parsers/dpkg_l.md","docs/parsers/du.md","docs/parsers/env.md","docs/parsers/file.md","docs/parsers/finger.md","docs/parsers/free.md","docs/parsers/fstab.md","docs/parsers/group.md","docs/parsers/gshadow.md","docs/parsers/hash.md","docs/parsers/hashsum.md","docs/parsers/hciconfig.md","docs/parsers/history.md","docs/parsers/hosts.md","docs/parsers/id.md","docs/parsers/ifconfig.md","docs/parsers/ini.md","docs/parsers/iptables.md","docs/parsers/iw_scan.md","docs/parsers/jobs.md","docs/parsers/kv.md","docs/parsers/last.md","docs/parsers/ls.md","docs/parsers/lsblk.md","docs/parsers/lsmod.md","docs/parsers/lsof.md","docs/parsers/mount.md","docs/parsers/netstat.md","docs/parsers/ntpq.md","docs/parsers/passwd.md","docs/parsers/ping.md","docs/parsers/pip_list.md","docs/parsers/pip_show.md","docs/parsers/ps.md","docs/parsers/route.md","docs/parsers/rpm_qi.md","docs/parsers/shadow.md","docs/parsers/ss.md","docs/parsers/stat.md","docs/parsers/sysctl.md","docs/parsers/systemctl.md","docs/parsers/systemctl_lj.md","docs/parsers/systemctl_ls.md","docs/parsers/systemctl_luf.md","docs/parsers/time.md","docs/parsers/timedatectl.md","docs/parsers/tracepath.md","docs/parsers/traceroute.md","docs/parsers/uname.md","docs/parsers/upower.md","docs/parsers/uptime.md","docs/parsers/w.md","docs/parsers/wc.md","docs/parsers/who.md","docs/parsers/xml.md","docs/parsers/yaml.md"],"file_stats":[{"name":"docs/parsers/acpi.md","lines_changed":99},{"name":"docs/parsers/airport.md","lines_changed":61},{"name":"docs/parsers/airport_s.md","lines_changed":9},{"name":"docs/parsers/arp.md","lines_changed":51},{"name":"docs/parsers/blkid.md","lines_changed":93},{"name":"docs/parsers/cksum.md","lines_changed":41},{"name":"docs/parsers/crontab.md","lines_changed":84},{"name":"docs/parsers/crontab_u.md","lines_changed":88},{"name":"docs/parsers/csv.md","lines_changed":41},{"name":"docs/parsers/date.md","lines_changed":68},{"name":"docs/parsers/df.md","lines_changed":59},{"name":"docs/parsers/dig.md","lines_changed":133},{"name":"docs/parsers/dir.md","lines_changed":49},{"name":"docs/parsers/dmidecode.md","lines_changed":55},{"name":"docs/parsers/dpkg_l.md","lines_changed":51},{"name":"docs/parsers/du.md","lines_changed":39},{"name":"docs/parsers/env.md","lines_changed":39},{"name":"docs/parsers/file.md","lines_changed":39},{"name":"docs/parsers/finger.md","lines_changed":57},{"name":"docs/parsers/free.md","lines_changed":49},{"name":"docs/parsers/fstab.md","lines_changed":47},{"name":"docs/parsers/group.md","lines_changed":47},{"name":"docs/parsers/gshadow.md","lines_changed":51},{"name":"docs/parsers/hash.md","lines_changed":39},{"name":"docs/parsers/hashsum.md","lines_changed":39},{"name":"docs/parsers/hciconfig.md","lines_changed":123},{"name":"docs/parsers/history.md","lines_changed":39},{"name":"docs/parsers/hosts.md","lines_changed":43},{"name":"docs/parsers/id.md","lines_changed":79},{"name":"docs/parsers/ifconfig.md","lines_changed":97},{"name":"docs/parsers/ini.md","lines_changed":44},{"name":"docs/parsers/iptables.md","lines_changed":67},{"name":"docs/parsers/iw_scan.md","lines_changed":40},{"name":"docs/parsers/jobs.md","lines_changed":45},{"name":"docs/parsers/kv.md","lines_changed":17},{"name":"docs/parsers/last.md","lines_changed":53},{"name":"docs/parsers/ls.md","lines_changed":118},{"name":"docs/parsers/lsblk.md","lines_changed":115},{"name":"docs/parsers/lsmod.md","lines_changed":47},{"name":"docs/parsers/lsof.md","lines_changed":55},{"name":"docs/parsers/mount.md","lines_changed":47},{"name":"docs/parsers/netstat.md","lines_changed":223},{"name":"docs/parsers/ntpq.md","lines_changed":58},{"name":"docs/parsers/passwd.md","lines_changed":49},{"name":"docs/parsers/ping.md","lines_changed":81},{"name":"docs/parsers/pip_list.md","lines_changed":41},{"name":"docs/parsers/pip_show.md","lines_changed":56},{"name":"docs/parsers/ps.md","lines_changed":69},{"name":"docs/parsers/route.md","lines_changed":63},{"name":"docs/parsers/rpm_qi.md","lines_changed":77},{"name":"docs/parsers/shadow.md","lines_changed":51},{"name":"docs/parsers/ss.md","lines_changed":73},{"name":"docs/parsers/stat.md","lines_changed":97},{"name":"docs/parsers/sysctl.md","lines_changed":37},{"name":"docs/parsers/systemctl.md","lines_changed":45},{"name":"docs/parsers/systemctl_lj.md","lines_changed":44},{"name":"docs/parsers/systemctl_ls.md","lines_changed":41},{"name":"docs/parsers/systemctl_luf.md","lines_changed":39},{"name":"docs/parsers/time.md","lines_changed":105},{"name":"docs/parsers/timedatectl.md","lines_changed":53},{"name":"docs/parsers/tracepath.md","lines_changed":60},{"name":"docs/parsers/traceroute.md","lines_changed":69},{"name":"docs/parsers/uname.md","lines_changed":47},{"name":"docs/parsers/upower.md","lines_changed":145},{"name":"docs/parsers/uptime.md","lines_changed":57},{"name":"docs/parsers/w.md","lines_changed":51},{"name":"docs/parsers/wc.md","lines_changed":43},{"name":"docs/parsers/who.md","lines_changed":55},{"name":"docs/parsers/xml.md","lines_changed":38},{"name":"docs/parsers/yaml.md","lines_changed":42}]}},{"commit":"490c9e17699e8e4f70dcc1612e1a808f86e24b0a","message":"add more cli tests for magic command","stats":{"files_changed":1,"insertions":7,"deletions":1,"files":["tests/test_cli.py"],"file_stats":[{"name":"tests/test_cli.py","lines_changed":8}]}},{"commit":"6ebebb659dc93daeaa869752ad135f6e1d2cb1ee","message":"update changelog","stats":{"files_changed":1,"insertions":3,"deletions":2,"files":["CHANGELOG"],"file_stats":[{"name":"CHANGELOG","lines_changed":5}]}},{"commit":"0e70c5ee12e96f04a89de05153a2da9cd39f98ad","message":"update documentation link","stats":{"files_changed":4,"insertions":2,"deletions":2,"files":["docs/readme.md","jc/__init__.py","jc/man/jc.1.gz","man/jc.1.gz"],"file_stats":[{"name":"docs/readme.md","lines_changed":2},{"name":"jc/__init__.py","lines_changed":2},{"name":"jc/man/jc.1.gz","lines_changed":null},{"name":"man/jc.1.gz","lines_changed":null}]}},{"commit":"cd531acf6045660e022c932f62a01d4084433ad4","message":"clean up comment","stats":{"files_changed":1,"insertions":0,"deletions":1,"files":["docgen.sh"],"file_stats":[{"name":"docgen.sh","lines_changed":1}]}},{"commit":"908ac1f61c5cc011d05d550f933940dfed4431f2","message":"update docs - remove compatibility section since it is now automatically generated from info()","stats":{"files_changed":143,"insertions":0,"deletions":690,"files":["docs/parsers/acpi.md","docs/parsers/airport.md","docs/parsers/airport_s.md","docs/parsers/arp.md","docs/parsers/blkid.md","docs/parsers/cksum.md","docs/parsers/crontab.md","docs/parsers/crontab_u.md","docs/parsers/csv.md","docs/parsers/date.md","docs/parsers/df.md","docs/parsers/dig.md","docs/parsers/dir.md","docs/parsers/dmidecode.md","docs/parsers/dpkg_l.md","docs/parsers/du.md","docs/parsers/env.md","docs/parsers/file.md","docs/parsers/finger.md","docs/parsers/free.md","docs/parsers/fstab.md","docs/parsers/group.md","docs/parsers/gshadow.md","docs/parsers/hash.md","docs/parsers/hashsum.md","docs/parsers/hciconfig.md","docs/parsers/history.md","docs/parsers/hosts.md","docs/parsers/id.md","docs/parsers/ifconfig.md","docs/parsers/ini.md","docs/parsers/iptables.md","docs/parsers/iw_scan.md","docs/parsers/jobs.md","docs/parsers/kv.md","docs/parsers/last.md","docs/parsers/ls.md","docs/parsers/lsblk.md","docs/parsers/lsmod.md","docs/parsers/lsof.md","docs/parsers/mount.md","docs/parsers/netstat.md","docs/parsers/ntpq.md","docs/parsers/passwd.md","docs/parsers/ping.md","docs/parsers/pip_list.md","docs/parsers/pip_show.md","docs/parsers/ps.md","docs/parsers/route.md","docs/parsers/rpm_qi.md","docs/parsers/shadow.md","docs/parsers/ss.md","docs/parsers/stat.md","docs/parsers/sysctl.md","docs/parsers/systemctl.md","docs/parsers/systemctl_lj.md","docs/parsers/systemctl_ls.md","docs/parsers/systemctl_luf.md","docs/parsers/time.md","docs/parsers/timedatectl.md","docs/parsers/tracepath.md","docs/parsers/traceroute.md","docs/parsers/uname.md","docs/parsers/upower.md","docs/parsers/uptime.md","docs/parsers/w.md","docs/parsers/wc.md","docs/parsers/who.md","docs/parsers/xml.md","docs/parsers/yaml.md","jc/man/jc.1.gz","jc/parsers/acpi.py","jc/parsers/airport.py","jc/parsers/airport_s.py","jc/parsers/arp.py","jc/parsers/blkid.py","jc/parsers/cksum.py","jc/parsers/crontab.py","jc/parsers/crontab_u.py","jc/parsers/csv.py","jc/parsers/date.py","jc/parsers/df.py","jc/parsers/dig.py","jc/parsers/dir.py","jc/parsers/dmidecode.py","jc/parsers/dpkg_l.py","jc/parsers/du.py","jc/parsers/env.py","jc/parsers/file.py","jc/parsers/finger.py","jc/parsers/foo.py","jc/parsers/free.py","jc/parsers/fstab.py","jc/parsers/group.py","jc/parsers/gshadow.py","jc/parsers/hash.py","jc/parsers/hashsum.py","jc/parsers/hciconfig.py","jc/parsers/history.py","jc/parsers/hosts.py","jc/parsers/id.py","jc/parsers/ifconfig.py","jc/parsers/ini.py","jc/parsers/iptables.py","jc/parsers/iw_scan.py","jc/parsers/jobs.py","jc/parsers/kv.py","jc/parsers/last.py","jc/parsers/ls.py","jc/parsers/lsblk.py","jc/parsers/lsmod.py","jc/parsers/lsof.py","jc/parsers/mount.py","jc/parsers/netstat.py","jc/parsers/ntpq.py","jc/parsers/passwd.py","jc/parsers/ping.py","jc/parsers/pip_list.py","jc/parsers/pip_show.py","jc/parsers/ps.py","jc/parsers/route.py","jc/parsers/rpm_qi.py","jc/parsers/shadow.py","jc/parsers/ss.py","jc/parsers/stat.py","jc/parsers/sysctl.py","jc/parsers/systemctl.py","jc/parsers/systemctl_lj.py","jc/parsers/systemctl_ls.py","jc/parsers/systemctl_luf.py","jc/parsers/time.py","jc/parsers/timedatectl.py","jc/parsers/tracepath.py","jc/parsers/traceroute.py","jc/parsers/uname.py","jc/parsers/upower.py","jc/parsers/uptime.py","jc/parsers/w.py","jc/parsers/wc.py","jc/parsers/who.py","jc/parsers/xml.py","jc/parsers/yaml.py","man/jc.1.gz"],"file_stats":[{"name":"docs/parsers/acpi.md","lines_changed":4},{"name":"docs/parsers/airport.md","lines_changed":4},{"name":"docs/parsers/airport_s.md","lines_changed":4},{"name":"docs/parsers/arp.md","lines_changed":4},{"name":"docs/parsers/blkid.md","lines_changed":4},{"name":"docs/parsers/cksum.md","lines_changed":4},{"name":"docs/parsers/crontab.md","lines_changed":4},{"name":"docs/parsers/crontab_u.md","lines_changed":4},{"name":"docs/parsers/csv.md","lines_changed":4},{"name":"docs/parsers/date.md","lines_changed":4},{"name":"docs/parsers/df.md","lines_changed":4},{"name":"docs/parsers/dig.md","lines_changed":4},{"name":"docs/parsers/dir.md","lines_changed":4},{"name":"docs/parsers/dmidecode.md","lines_changed":4},{"name":"docs/parsers/dpkg_l.md","lines_changed":4},{"name":"docs/parsers/du.md","lines_changed":4},{"name":"docs/parsers/env.md","lines_changed":4},{"name":"docs/parsers/file.md","lines_changed":4},{"name":"docs/parsers/finger.md","lines_changed":4},{"name":"docs/parsers/free.md","lines_changed":4},{"name":"docs/parsers/fstab.md","lines_changed":4},{"name":"docs/parsers/group.md","lines_changed":4},{"name":"docs/parsers/gshadow.md","lines_changed":4},{"name":"docs/parsers/hash.md","lines_changed":4},{"name":"docs/parsers/hashsum.md","lines_changed":4},{"name":"docs/parsers/hciconfig.md","lines_changed":4},{"name":"docs/parsers/history.md","lines_changed":4},{"name":"docs/parsers/hosts.md","lines_changed":4},{"name":"docs/parsers/id.md","lines_changed":4},{"name":"docs/parsers/ifconfig.md","lines_changed":4},{"name":"docs/parsers/ini.md","lines_changed":4},{"name":"docs/parsers/iptables.md","lines_changed":4},{"name":"docs/parsers/iw_scan.md","lines_changed":4},{"name":"docs/parsers/jobs.md","lines_changed":4},{"name":"docs/parsers/kv.md","lines_changed":4},{"name":"docs/parsers/last.md","lines_changed":4},{"name":"docs/parsers/ls.md","lines_changed":67},{"name":"docs/parsers/lsblk.md","lines_changed":4},{"name":"docs/parsers/lsmod.md","lines_changed":4},{"name":"docs/parsers/lsof.md","lines_changed":4},{"name":"docs/parsers/mount.md","lines_changed":4},{"name":"docs/parsers/netstat.md","lines_changed":4},{"name":"docs/parsers/ntpq.md","lines_changed":4},{"name":"docs/parsers/passwd.md","lines_changed":4},{"name":"docs/parsers/ping.md","lines_changed":4},{"name":"docs/parsers/pip_list.md","lines_changed":4},{"name":"docs/parsers/pip_show.md","lines_changed":4},{"name":"docs/parsers/ps.md","lines_changed":4},{"name":"docs/parsers/route.md","lines_changed":4},{"name":"docs/parsers/rpm_qi.md","lines_changed":4},{"name":"docs/parsers/shadow.md","lines_changed":4},{"name":"docs/parsers/ss.md","lines_changed":4},{"name":"docs/parsers/stat.md","lines_changed":4},{"name":"docs/parsers/sysctl.md","lines_changed":4},{"name":"docs/parsers/systemctl.md","lines_changed":4},{"name":"docs/parsers/systemctl_lj.md","lines_changed":4},{"name":"docs/parsers/systemctl_ls.md","lines_changed":4},{"name":"docs/parsers/systemctl_luf.md","lines_changed":4},{"name":"docs/parsers/time.md","lines_changed":4},{"name":"docs/parsers/timedatectl.md","lines_changed":4},{"name":"docs/parsers/tracepath.md","lines_changed":4},{"name":"docs/parsers/traceroute.md","lines_changed":4},{"name":"docs/parsers/uname.md","lines_changed":4},{"name":"docs/parsers/upower.md","lines_changed":4},{"name":"docs/parsers/uptime.md","lines_changed":4},{"name":"docs/parsers/w.md","lines_changed":4},{"name":"docs/parsers/wc.md","lines_changed":4},{"name":"docs/parsers/who.md","lines_changed":4},{"name":"docs/parsers/xml.md","lines_changed":4},{"name":"docs/parsers/yaml.md","lines_changed":4},{"name":"jc/man/jc.1.gz","lines_changed":null},{"name":"jc/parsers/acpi.py","lines_changed":4},{"name":"jc/parsers/airport.py","lines_changed":4},{"name":"jc/parsers/airport_s.py","lines_changed":4},{"name":"jc/parsers/arp.py","lines_changed":4},{"name":"jc/parsers/blkid.py","lines_changed":4},{"name":"jc/parsers/cksum.py","lines_changed":4},{"name":"jc/parsers/crontab.py","lines_changed":4},{"name":"jc/parsers/crontab_u.py","lines_changed":4},{"name":"jc/parsers/csv.py","lines_changed":4},{"name":"jc/parsers/date.py","lines_changed":4},{"name":"jc/parsers/df.py","lines_changed":4},{"name":"jc/parsers/dig.py","lines_changed":4},{"name":"jc/parsers/dir.py","lines_changed":4},{"name":"jc/parsers/dmidecode.py","lines_changed":4},{"name":"jc/parsers/dpkg_l.py","lines_changed":4},{"name":"jc/parsers/du.py","lines_changed":4},{"name":"jc/parsers/env.py","lines_changed":4},{"name":"jc/parsers/file.py","lines_changed":4},{"name":"jc/parsers/finger.py","lines_changed":4},{"name":"jc/parsers/foo.py","lines_changed":4},{"name":"jc/parsers/free.py","lines_changed":4},{"name":"jc/parsers/fstab.py","lines_changed":4},{"name":"jc/parsers/group.py","lines_changed":4},{"name":"jc/parsers/gshadow.py","lines_changed":4},{"name":"jc/parsers/hash.py","lines_changed":4},{"name":"jc/parsers/hashsum.py","lines_changed":4},{"name":"jc/parsers/hciconfig.py","lines_changed":4},{"name":"jc/parsers/history.py","lines_changed":4},{"name":"jc/parsers/hosts.py","lines_changed":4},{"name":"jc/parsers/id.py","lines_changed":4},{"name":"jc/parsers/ifconfig.py","lines_changed":4},{"name":"jc/parsers/ini.py","lines_changed":4},{"name":"jc/parsers/iptables.py","lines_changed":4},{"name":"jc/parsers/iw_scan.py","lines_changed":4},{"name":"jc/parsers/jobs.py","lines_changed":4},{"name":"jc/parsers/kv.py","lines_changed":4},{"name":"jc/parsers/last.py","lines_changed":4},{"name":"jc/parsers/ls.py","lines_changed":67},{"name":"jc/parsers/lsblk.py","lines_changed":4},{"name":"jc/parsers/lsmod.py","lines_changed":4},{"name":"jc/parsers/lsof.py","lines_changed":4},{"name":"jc/parsers/mount.py","lines_changed":4},{"name":"jc/parsers/netstat.py","lines_changed":4},{"name":"jc/parsers/ntpq.py","lines_changed":4},{"name":"jc/parsers/passwd.py","lines_changed":4},{"name":"jc/parsers/ping.py","lines_changed":4},{"name":"jc/parsers/pip_list.py","lines_changed":4},{"name":"jc/parsers/pip_show.py","lines_changed":4},{"name":"jc/parsers/ps.py","lines_changed":4},{"name":"jc/parsers/route.py","lines_changed":4},{"name":"jc/parsers/rpm_qi.py","lines_changed":4},{"name":"jc/parsers/shadow.py","lines_changed":4},{"name":"jc/parsers/ss.py","lines_changed":4},{"name":"jc/parsers/stat.py","lines_changed":4},{"name":"jc/parsers/sysctl.py","lines_changed":4},{"name":"jc/parsers/systemctl.py","lines_changed":4},{"name":"jc/parsers/systemctl_lj.py","lines_changed":4},{"name":"jc/parsers/systemctl_ls.py","lines_changed":4},{"name":"jc/parsers/systemctl_luf.py","lines_changed":4},{"name":"jc/parsers/time.py","lines_changed":4},{"name":"jc/parsers/timedatectl.py","lines_changed":4},{"name":"jc/parsers/tracepath.py","lines_changed":4},{"name":"jc/parsers/traceroute.py","lines_changed":4},{"name":"jc/parsers/uname.py","lines_changed":4},{"name":"jc/parsers/upower.py","lines_changed":4},{"name":"jc/parsers/uptime.py","lines_changed":4},{"name":"jc/parsers/w.py","lines_changed":4},{"name":"jc/parsers/wc.py","lines_changed":4},{"name":"jc/parsers/who.py","lines_changed":4},{"name":"jc/parsers/xml.py","lines_changed":4},{"name":"jc/parsers/yaml.py","lines_changed":4},{"name":"man/jc.1.gz","lines_changed":null}]}},{"commit":"f5c7e7e4046bc57b4fcad99390e31b121a7106ba","message":"add updated docs with home link and parser info at the bottom","stats":{"files_changed":70,"insertions":350,"deletions":0,"files":["docs/parsers/acpi.md","docs/parsers/airport.md","docs/parsers/airport_s.md","docs/parsers/arp.md","docs/parsers/blkid.md","docs/parsers/cksum.md","docs/parsers/crontab.md","docs/parsers/crontab_u.md","docs/parsers/csv.md","docs/parsers/date.md","docs/parsers/df.md","docs/parsers/dig.md","docs/parsers/dir.md","docs/parsers/dmidecode.md","docs/parsers/dpkg_l.md","docs/parsers/du.md","docs/parsers/env.md","docs/parsers/file.md","docs/parsers/finger.md","docs/parsers/free.md","docs/parsers/fstab.md","docs/parsers/group.md","docs/parsers/gshadow.md","docs/parsers/hash.md","docs/parsers/hashsum.md","docs/parsers/hciconfig.md","docs/parsers/history.md","docs/parsers/hosts.md","docs/parsers/id.md","docs/parsers/ifconfig.md","docs/parsers/ini.md","docs/parsers/iptables.md","docs/parsers/iw_scan.md","docs/parsers/jobs.md","docs/parsers/kv.md","docs/parsers/last.md","docs/parsers/ls.md","docs/parsers/lsblk.md","docs/parsers/lsmod.md","docs/parsers/lsof.md","docs/parsers/mount.md","docs/parsers/netstat.md","docs/parsers/ntpq.md","docs/parsers/passwd.md","docs/parsers/ping.md","docs/parsers/pip_list.md","docs/parsers/pip_show.md","docs/parsers/ps.md","docs/parsers/route.md","docs/parsers/rpm_qi.md","docs/parsers/shadow.md","docs/parsers/ss.md","docs/parsers/stat.md","docs/parsers/sysctl.md","docs/parsers/systemctl.md","docs/parsers/systemctl_lj.md","docs/parsers/systemctl_ls.md","docs/parsers/systemctl_luf.md","docs/parsers/time.md","docs/parsers/timedatectl.md","docs/parsers/tracepath.md","docs/parsers/traceroute.md","docs/parsers/uname.md","docs/parsers/upower.md","docs/parsers/uptime.md","docs/parsers/w.md","docs/parsers/wc.md","docs/parsers/who.md","docs/parsers/xml.md","docs/parsers/yaml.md"],"file_stats":[{"name":"docs/parsers/acpi.md","lines_changed":5},{"name":"docs/parsers/airport.md","lines_changed":5},{"name":"docs/parsers/airport_s.md","lines_changed":5},{"name":"docs/parsers/arp.md","lines_changed":5},{"name":"docs/parsers/blkid.md","lines_changed":5},{"name":"docs/parsers/cksum.md","lines_changed":5},{"name":"docs/parsers/crontab.md","lines_changed":5},{"name":"docs/parsers/crontab_u.md","lines_changed":5},{"name":"docs/parsers/csv.md","lines_changed":5},{"name":"docs/parsers/date.md","lines_changed":5},{"name":"docs/parsers/df.md","lines_changed":5},{"name":"docs/parsers/dig.md","lines_changed":5},{"name":"docs/parsers/dir.md","lines_changed":5},{"name":"docs/parsers/dmidecode.md","lines_changed":5},{"name":"docs/parsers/dpkg_l.md","lines_changed":5},{"name":"docs/parsers/du.md","lines_changed":5},{"name":"docs/parsers/env.md","lines_changed":5},{"name":"docs/parsers/file.md","lines_changed":5},{"name":"docs/parsers/finger.md","lines_changed":5},{"name":"docs/parsers/free.md","lines_changed":5},{"name":"docs/parsers/fstab.md","lines_changed":5},{"name":"docs/parsers/group.md","lines_changed":5},{"name":"docs/parsers/gshadow.md","lines_changed":5},{"name":"docs/parsers/hash.md","lines_changed":5},{"name":"docs/parsers/hashsum.md","lines_changed":5},{"name":"docs/parsers/hciconfig.md","lines_changed":5},{"name":"docs/parsers/history.md","lines_changed":5},{"name":"docs/parsers/hosts.md","lines_changed":5},{"name":"docs/parsers/id.md","lines_changed":5},{"name":"docs/parsers/ifconfig.md","lines_changed":5},{"name":"docs/parsers/ini.md","lines_changed":5},{"name":"docs/parsers/iptables.md","lines_changed":5},{"name":"docs/parsers/iw_scan.md","lines_changed":5},{"name":"docs/parsers/jobs.md","lines_changed":5},{"name":"docs/parsers/kv.md","lines_changed":5},{"name":"docs/parsers/last.md","lines_changed":5},{"name":"docs/parsers/ls.md","lines_changed":5},{"name":"docs/parsers/lsblk.md","lines_changed":5},{"name":"docs/parsers/lsmod.md","lines_changed":5},{"name":"docs/parsers/lsof.md","lines_changed":5},{"name":"docs/parsers/mount.md","lines_changed":5},{"name":"docs/parsers/netstat.md","lines_changed":5},{"name":"docs/parsers/ntpq.md","lines_changed":5},{"name":"docs/parsers/passwd.md","lines_changed":5},{"name":"docs/parsers/ping.md","lines_changed":5},{"name":"docs/parsers/pip_list.md","lines_changed":5},{"name":"docs/parsers/pip_show.md","lines_changed":5},{"name":"docs/parsers/ps.md","lines_changed":5},{"name":"docs/parsers/route.md","lines_changed":5},{"name":"docs/parsers/rpm_qi.md","lines_changed":5},{"name":"docs/parsers/shadow.md","lines_changed":5},{"name":"docs/parsers/ss.md","lines_changed":5},{"name":"docs/parsers/stat.md","lines_changed":5},{"name":"docs/parsers/sysctl.md","lines_changed":5},{"name":"docs/parsers/systemctl.md","lines_changed":5},{"name":"docs/parsers/systemctl_lj.md","lines_changed":5},{"name":"docs/parsers/systemctl_ls.md","lines_changed":5},{"name":"docs/parsers/systemctl_luf.md","lines_changed":5},{"name":"docs/parsers/time.md","lines_changed":5},{"name":"docs/parsers/timedatectl.md","lines_changed":5},{"name":"docs/parsers/tracepath.md","lines_changed":5},{"name":"docs/parsers/traceroute.md","lines_changed":5},{"name":"docs/parsers/uname.md","lines_changed":5},{"name":"docs/parsers/upower.md","lines_changed":5},{"name":"docs/parsers/uptime.md","lines_changed":5},{"name":"docs/parsers/w.md","lines_changed":5},{"name":"docs/parsers/wc.md","lines_changed":5},{"name":"docs/parsers/who.md","lines_changed":5},{"name":"docs/parsers/xml.md","lines_changed":5},{"name":"docs/parsers/yaml.md","lines_changed":5}]}},{"commit":"001c700b5bd280cb1cb9e54169ae5f1b7918c257","message":"add home link to the top of the md file","stats":{"files_changed":3,"insertions":2,"deletions":1,"files":["docgen.sh","jc/man/jc.1.gz","man/jc.1.gz"],"file_stats":[{"name":"docgen.sh","lines_changed":3},{"name":"jc/man/jc.1.gz","lines_changed":null},{"name":"man/jc.1.gz","lines_changed":null}]}},{"commit":"9b41e9bef0ff099e70f37fddc8fe2c6bd8457b19","message":"Add parser information header","stats":{"files_changed":1,"insertions":1,"deletions":0,"files":["docgen.sh"],"file_stats":[{"name":"docgen.sh","lines_changed":1}]}},{"commit":"34bd6e32dc0c0bf7dfeedaadbf04115f43e9d060","message":"pull each parser as a json object into a bash array and iterate on it to add supplementary information like version, author, and compatibility","stats":{"files_changed":1,"insertions":20,"deletions":4,"files":["docgen.sh"],"file_stats":[{"name":"docgen.sh","lines_changed":24}]}},{"commit":"c5d058490beaa8f59875a8acfd7a400764768639","message":"move parser doc printing to its own function","stats":{"files_changed":1,"insertions":22,"deletions":13,"files":["jc/cli.py"],"file_stats":[{"name":"jc/cli.py","lines_changed":35}]}},{"commit":"dd1ae6d9a7de5421830232deb42d933b9a652672","message":"add man page inside the pypi package for easier packaging in homebrew","stats":{"files_changed":4,"insertions":3,"deletions":1,"files":["MANIFEST.in","jc/man/jc.1.gz","man/jc.1.gz","mangen.py"],"file_stats":[{"name":"MANIFEST.in","lines_changed":2},{"name":"jc/man/jc.1.gz","lines_changed":null},{"name":"man/jc.1.gz","lines_changed":null},{"name":"mangen.py","lines_changed":2}]}},{"commit":"d8ea9bde823a7f5c146741150c3211737345c7dd","message":"doc update","stats":{"files_changed":3,"insertions":16,"deletions":16,"files":["docs/parsers/w.md","jc/parsers/w.py","man/jc.1.gz"],"file_stats":[{"name":"docs/parsers/w.md","lines_changed":16},{"name":"jc/parsers/w.py","lines_changed":16},{"name":"man/jc.1.gz","lines_changed":null}]}},{"commit":"125edc9c906dc3650b6a683ed13830075acb7ab6","message":"bail out for -h, -a, and -v in magic()","stats":{"files_changed":1,"insertions":2,"deletions":2,"files":["jc/cli.py"],"file_stats":[{"name":"jc/cli.py","lines_changed":4}]}},{"commit":"15ea43e394a9004f8ccec208b3a066c76e241866","message":"add man file to package for easier packaging in homebrew","stats":{"files_changed":1,"insertions":1,"deletions":0,"files":["MANIFEST.in"],"file_stats":[{"name":"MANIFEST.in","lines_changed":1}]}},{"commit":"b55b02687c00d1c50e30f30c9b9a7f36f783eb0f","message":"doc update","stats":{"files_changed":19,"insertions":371,"deletions":441,"files":["CHANGELOG","docs/parsers/uname.md","docs/parsers/upower.md","docs/parsers/uptime.md","docs/parsers/w.md","docs/parsers/wc.md","docs/parsers/who.md","docs/parsers/xml.md","docs/parsers/yaml.md","jc/parsers/uname.py","jc/parsers/upower.py","jc/parsers/uptime.py","jc/parsers/w.py","jc/parsers/wc.py","jc/parsers/who.py","jc/parsers/xml.py","jc/parsers/yaml.py","man/jc.1.gz","setup.py"],"file_stats":[{"name":"CHANGELOG","lines_changed":6},{"name":"docs/parsers/uname.md","lines_changed":42},{"name":"docs/parsers/upower.md","lines_changed":140},{"name":"docs/parsers/uptime.md","lines_changed":52},{"name":"docs/parsers/w.md","lines_changed":46},{"name":"docs/parsers/wc.md","lines_changed":38},{"name":"docs/parsers/who.md","lines_changed":50},{"name":"docs/parsers/xml.md","lines_changed":33},{"name":"docs/parsers/yaml.md","lines_changed":37},{"name":"jc/parsers/uname.py","lines_changed":33},{"name":"jc/parsers/upower.py","lines_changed":131},{"name":"jc/parsers/uptime.py","lines_changed":43},{"name":"jc/parsers/w.py","lines_changed":37},{"name":"jc/parsers/wc.py","lines_changed":29},{"name":"jc/parsers/who.py","lines_changed":41},{"name":"jc/parsers/xml.py","lines_changed":24},{"name":"jc/parsers/yaml.py","lines_changed":28},{"name":"man/jc.1.gz","lines_changed":null},{"name":"setup.py","lines_changed":2}]}},{"commit":"da611f0ac6321f7f52fdbc419f8b155c74393c28","message":"update docs","stats":{"files_changed":4,"insertions":63,"deletions":50,"files":["jc/parsers/ini.py","jc/parsers/iptables.py","jc/parsers/iw_scan.py","man/jc.1.gz"],"file_stats":[{"name":"jc/parsers/ini.py","lines_changed":30},{"name":"jc/parsers/iptables.py","lines_changed":53},{"name":"jc/parsers/iw_scan.py","lines_changed":30},{"name":"man/jc.1.gz","lines_changed":null}]}},{"commit":"b8b8dfead4fdc4285585c44c2ebce3bdd42b2e7c","message":"update docs","stats":{"files_changed":61,"insertions":1501,"deletions":1848,"files":["docs/parsers/ini.md","docs/parsers/iptables.md","docs/parsers/iw_scan.md","docs/parsers/jobs.md","docs/parsers/kv.md","docs/parsers/last.md","docs/parsers/ls.md","docs/parsers/lsblk.md","docs/parsers/lsmod.md","docs/parsers/lsof.md","docs/parsers/mount.md","docs/parsers/netstat.md","docs/parsers/ntpq.md","docs/parsers/passwd.md","docs/parsers/ping.md","docs/parsers/pip_list.md","docs/parsers/pip_show.md","docs/parsers/ps.md","docs/parsers/route.md","docs/parsers/rpm_qi.md","docs/parsers/shadow.md","docs/parsers/ss.md","docs/parsers/stat.md","docs/parsers/sysctl.md","docs/parsers/systemctl.md","docs/parsers/systemctl_lj.md","docs/parsers/systemctl_ls.md","docs/parsers/systemctl_luf.md","docs/parsers/time.md","docs/parsers/timedatectl.md","docs/parsers/tracepath.md","docs/parsers/traceroute.md","jc/parsers/jobs.py","jc/parsers/kv.py","jc/parsers/last.py","jc/parsers/ls.py","jc/parsers/lsblk.py","jc/parsers/lsmod.py","jc/parsers/lsof.py","jc/parsers/mount.py","jc/parsers/netstat.py","jc/parsers/ntpq.py","jc/parsers/passwd.py","jc/parsers/ping.py","jc/parsers/pip_list.py","jc/parsers/pip_show.py","jc/parsers/ps.py","jc/parsers/route.py","jc/parsers/rpm_qi.py","jc/parsers/shadow.py","jc/parsers/ss.py","jc/parsers/stat.py","jc/parsers/sysctl.py","jc/parsers/systemctl.py","jc/parsers/systemctl_lj.py","jc/parsers/systemctl_ls.py","jc/parsers/systemctl_luf.py","jc/parsers/time.py","jc/parsers/timedatectl.py","jc/parsers/tracepath.py","jc/parsers/traceroute.py"],"file_stats":[{"name":"docs/parsers/ini.md","lines_changed":39},{"name":"docs/parsers/iptables.md","lines_changed":62},{"name":"docs/parsers/iw_scan.md","lines_changed":35},{"name":"docs/parsers/jobs.md","lines_changed":40},{"name":"docs/parsers/kv.md","lines_changed":12},{"name":"docs/parsers/last.md","lines_changed":48},{"name":"docs/parsers/ls.md","lines_changed":50},{"name":"docs/parsers/lsblk.md","lines_changed":110},{"name":"docs/parsers/lsmod.md","lines_changed":42},{"name":"docs/parsers/lsof.md","lines_changed":50},{"name":"docs/parsers/mount.md","lines_changed":42},{"name":"docs/parsers/netstat.md","lines_changed":218},{"name":"docs/parsers/ntpq.md","lines_changed":53},{"name":"docs/parsers/passwd.md","lines_changed":44},{"name":"docs/parsers/ping.md","lines_changed":76},{"name":"docs/parsers/pip_list.md","lines_changed":36},{"name":"docs/parsers/pip_show.md","lines_changed":51},{"name":"docs/parsers/ps.md","lines_changed":64},{"name":"docs/parsers/route.md","lines_changed":58},{"name":"docs/parsers/rpm_qi.md","lines_changed":72},{"name":"docs/parsers/shadow.md","lines_changed":46},{"name":"docs/parsers/ss.md","lines_changed":66},{"name":"docs/parsers/stat.md","lines_changed":92},{"name":"docs/parsers/sysctl.md","lines_changed":32},{"name":"docs/parsers/systemctl.md","lines_changed":40},{"name":"docs/parsers/systemctl_lj.md","lines_changed":39},{"name":"docs/parsers/systemctl_ls.md","lines_changed":36},{"name":"docs/parsers/systemctl_luf.md","lines_changed":34},{"name":"docs/parsers/time.md","lines_changed":100},{"name":"docs/parsers/timedatectl.md","lines_changed":48},{"name":"docs/parsers/tracepath.md","lines_changed":55},{"name":"docs/parsers/traceroute.md","lines_changed":64},{"name":"jc/parsers/jobs.py","lines_changed":31},{"name":"jc/parsers/kv.py","lines_changed":13},{"name":"jc/parsers/last.py","lines_changed":39},{"name":"jc/parsers/ls.py","lines_changed":41},{"name":"jc/parsers/lsblk.py","lines_changed":101},{"name":"jc/parsers/lsmod.py","lines_changed":33},{"name":"jc/parsers/lsof.py","lines_changed":41},{"name":"jc/parsers/mount.py","lines_changed":41},{"name":"jc/parsers/netstat.py","lines_changed":209},{"name":"jc/parsers/ntpq.py","lines_changed":44},{"name":"jc/parsers/passwd.py","lines_changed":35},{"name":"jc/parsers/ping.py","lines_changed":75},{"name":"jc/parsers/pip_list.py","lines_changed":27},{"name":"jc/parsers/pip_show.py","lines_changed":42},{"name":"jc/parsers/ps.py","lines_changed":55},{"name":"jc/parsers/route.py","lines_changed":49},{"name":"jc/parsers/rpm_qi.py","lines_changed":63},{"name":"jc/parsers/shadow.py","lines_changed":37},{"name":"jc/parsers/ss.py","lines_changed":59},{"name":"jc/parsers/stat.py","lines_changed":83},{"name":"jc/parsers/sysctl.py","lines_changed":23},{"name":"jc/parsers/systemctl.py","lines_changed":31},{"name":"jc/parsers/systemctl_lj.py","lines_changed":30},{"name":"jc/parsers/systemctl_ls.py","lines_changed":27},{"name":"jc/parsers/systemctl_luf.py","lines_changed":25},{"name":"jc/parsers/time.py","lines_changed":91},{"name":"jc/parsers/timedatectl.py","lines_changed":39},{"name":"jc/parsers/tracepath.py","lines_changed":46},{"name":"jc/parsers/traceroute.py","lines_changed":65}]}},{"commit":"4290a3cbd135cacbf63664dc30768017ebbed28d","message":"make IfconfigParser class private","stats":{"files_changed":2,"insertions":3,"deletions":9,"files":["docs/parsers/ifconfig.md","jc/parsers/ifconfig.py"],"file_stats":[{"name":"docs/parsers/ifconfig.md","lines_changed":6},{"name":"jc/parsers/ifconfig.py","lines_changed":6}]}},{"commit":"a5e2203cee6a7bc398cf280f57d37638eeb1d2d8","message":"update ifconfig doc","stats":{"files_changed":3,"insertions":2,"deletions":1,"files":["docs/parsers/ifconfig.md","jc/parsers/ifconfig.py","man/jc.1.gz"],"file_stats":[{"name":"docs/parsers/ifconfig.md","lines_changed":2},{"name":"jc/parsers/ifconfig.py","lines_changed":1},{"name":"man/jc.1.gz","lines_changed":null}]}},{"commit":"e28c08b1361161cfd123b9ebc11fa1ffa87d658f","message":"update documentation","stats":{"files_changed":46,"insertions":976,"deletions":1209,"files":["docs/parsers/csv.md","docs/parsers/date.md","docs/parsers/df.md","docs/parsers/dig.md","docs/parsers/dir.md","docs/parsers/dmidecode.md","docs/parsers/dpkg_l.md","docs/parsers/du.md","docs/parsers/env.md","docs/parsers/file.md","docs/parsers/finger.md","docs/parsers/free.md","docs/parsers/fstab.md","docs/parsers/group.md","docs/parsers/gshadow.md","docs/parsers/hash.md","docs/parsers/hashsum.md","docs/parsers/hciconfig.md","docs/parsers/history.md","docs/parsers/hosts.md","docs/parsers/id.md","docs/parsers/ifconfig.md","jc/parsers/csv.py","jc/parsers/date.py","jc/parsers/df.py","jc/parsers/dig.py","jc/parsers/dir.py","jc/parsers/dmidecode.py","jc/parsers/dpkg_l.py","jc/parsers/du.py","jc/parsers/env.py","jc/parsers/file.py","jc/parsers/finger.py","jc/parsers/foo.py","jc/parsers/free.py","jc/parsers/fstab.py","jc/parsers/group.py","jc/parsers/gshadow.py","jc/parsers/hash.py","jc/parsers/hashsum.py","jc/parsers/hciconfig.py","jc/parsers/history.py","jc/parsers/hosts.py","jc/parsers/id.py","jc/parsers/ifconfig.py","man/jc.1.gz"],"file_stats":[{"name":"docs/parsers/csv.md","lines_changed":36},{"name":"docs/parsers/date.md","lines_changed":63},{"name":"docs/parsers/df.md","lines_changed":54},{"name":"docs/parsers/dig.md","lines_changed":128},{"name":"docs/parsers/dir.md","lines_changed":44},{"name":"docs/parsers/dmidecode.md","lines_changed":50},{"name":"docs/parsers/dpkg_l.md","lines_changed":46},{"name":"docs/parsers/du.md","lines_changed":34},{"name":"docs/parsers/env.md","lines_changed":34},{"name":"docs/parsers/file.md","lines_changed":34},{"name":"docs/parsers/finger.md","lines_changed":52},{"name":"docs/parsers/free.md","lines_changed":44},{"name":"docs/parsers/fstab.md","lines_changed":42},{"name":"docs/parsers/group.md","lines_changed":42},{"name":"docs/parsers/gshadow.md","lines_changed":46},{"name":"docs/parsers/hash.md","lines_changed":34},{"name":"docs/parsers/hashsum.md","lines_changed":34},{"name":"docs/parsers/hciconfig.md","lines_changed":118},{"name":"docs/parsers/history.md","lines_changed":34},{"name":"docs/parsers/hosts.md","lines_changed":38},{"name":"docs/parsers/id.md","lines_changed":74},{"name":"docs/parsers/ifconfig.md","lines_changed":86},{"name":"jc/parsers/csv.py","lines_changed":27},{"name":"jc/parsers/date.py","lines_changed":54},{"name":"jc/parsers/df.py","lines_changed":45},{"name":"jc/parsers/dig.py","lines_changed":143},{"name":"jc/parsers/dir.py","lines_changed":35},{"name":"jc/parsers/dmidecode.py","lines_changed":41},{"name":"jc/parsers/dpkg_l.py","lines_changed":37},{"name":"jc/parsers/du.py","lines_changed":25},{"name":"jc/parsers/env.py","lines_changed":25},{"name":"jc/parsers/file.py","lines_changed":25},{"name":"jc/parsers/finger.py","lines_changed":43},{"name":"jc/parsers/foo.py","lines_changed":25},{"name":"jc/parsers/free.py","lines_changed":35},{"name":"jc/parsers/fstab.py","lines_changed":33},{"name":"jc/parsers/group.py","lines_changed":33},{"name":"jc/parsers/gshadow.py","lines_changed":37},{"name":"jc/parsers/hash.py","lines_changed":25},{"name":"jc/parsers/hashsum.py","lines_changed":25},{"name":"jc/parsers/hciconfig.py","lines_changed":109},{"name":"jc/parsers/history.py","lines_changed":25},{"name":"jc/parsers/hosts.py","lines_changed":29},{"name":"jc/parsers/id.py","lines_changed":65},{"name":"jc/parsers/ifconfig.py","lines_changed":77},{"name":"man/jc.1.gz","lines_changed":null}]}},{"commit":"a4b6846f63b43168085275d73940265940badf46","message":"man update","stats":{"files_changed":2,"insertions":0,"deletions":467,"files":["man/jc.1","man/jc.1.gz"],"file_stats":[{"name":"man/jc.1","lines_changed":467},{"name":"man/jc.1.gz","lines_changed":null}]}},{"commit":"2bc830786114fd57619f34b936dcf6e0bed7a109","message":"Merge branch 'master' into dev"},{"commit":"9b39917c798ed0310c9b82d87172cbf6d24ba111","message":"update docstrings for new help functionality","stats":{"files_changed":17,"insertions":391,"deletions":453,"files":["README.md","docs/parsers/acpi.md","docs/parsers/airport.md","docs/parsers/blkid.md","docs/parsers/cksum.md","docs/parsers/crontab.md","docs/parsers/crontab_u.md","jc/cli.py","jc/parsers/acpi.py","jc/parsers/airport.py","jc/parsers/blkid.py","jc/parsers/cksum.py","jc/parsers/crontab.py","jc/parsers/crontab_u.py","man/jc.1","templates/manpage_template","templates/readme_template"],"file_stats":[{"name":"README.md","lines_changed":2},{"name":"docs/parsers/acpi.md","lines_changed":94},{"name":"docs/parsers/airport.md","lines_changed":56},{"name":"docs/parsers/blkid.md","lines_changed":88},{"name":"docs/parsers/cksum.md","lines_changed":36},{"name":"docs/parsers/crontab.md","lines_changed":79},{"name":"docs/parsers/crontab_u.md","lines_changed":83},{"name":"jc/cli.py","lines_changed":6},{"name":"jc/parsers/acpi.py","lines_changed":85},{"name":"jc/parsers/airport.py","lines_changed":47},{"name":"jc/parsers/blkid.py","lines_changed":79},{"name":"jc/parsers/cksum.py","lines_changed":27},{"name":"jc/parsers/crontab.py","lines_changed":70},{"name":"jc/parsers/crontab_u.py","lines_changed":74},{"name":"man/jc.1","lines_changed":8},{"name":"templates/manpage_template","lines_changed":8},{"name":"templates/readme_template","lines_changed":2}]}},{"commit":"57c13cc0a38ad89fda8b0e362bd6487257d0a26a","message":"add support for parser help","stats":{"files_changed":1,"insertions":23,"deletions":3,"files":["jc/cli.py"],"file_stats":[{"name":"jc/cli.py","lines_changed":26}]}},{"commit":"b7355fd30d992a1bcc90227f5a1b02be073829e7","message":"new docstring format for improved documentation","stats":{"files_changed":2,"insertions":37,"deletions":48,"files":["docs/parsers/arp.md","jc/parsers/arp.py"],"file_stats":[{"name":"docs/parsers/arp.md","lines_changed":46},{"name":"jc/parsers/arp.py","lines_changed":39}]}},{"commit":"93ae309e407b26820b9f05b5b331d05fc77df57f","message":"bump version to 1.15.1","stats":{"files_changed":2,"insertions":2,"deletions":2,"files":["jc/__init__.py","man/jc.1"],"file_stats":[{"name":"jc/__init__.py","lines_changed":2},{"name":"man/jc.1","lines_changed":2}]}},{"commit":"5d8f8365e24a7c3a587d4e71ebba4876de08203b","message":"gzip man page","stats":{"files_changed":3,"insertions":9,"deletions":461,"files":["man/jc.1","man/jc.1.gz","mangen.py"],"file_stats":[{"name":"man/jc.1","lines_changed":461},{"name":"man/jc.1.gz","lines_changed":null},{"name":"mangen.py","lines_changed":9}]}},{"commit":"f26909eefb236e9ebf63be53cd86ae13cc3d9ea3","message":"formatting","stats":{"files_changed":1,"insertions":4,"deletions":4,"files":["docs/parsers/dir.md"],"file_stats":[{"name":"docs/parsers/dir.md","lines_changed":8}]}},{"commit":"55bfbb2797ede3aefbb14ecab950b108b1895ccc","message":"formatting","stats":{"files_changed":2,"insertions":5,"deletions":6,"files":["EXAMPLES.md","jc/parsers/dir.py"],"file_stats":[{"name":"EXAMPLES.md","lines_changed":3},{"name":"jc/parsers/dir.py","lines_changed":8}]}},{"commit":"8970b8342a855203aef649b60dad3e49a1d7fd2a","message":"Merge pull request #115 from kellyjonbrazil/master"},{"commit":"5285e699c30fdeaf56068f5a03ef1d1d33fa673c","message":"fix rpm-qi parser name","stats":{"files_changed":3,"insertions":3,"deletions":3,"files":["README.md","jc/cli.py","man/jc.1"],"file_stats":[{"name":"README.md","lines_changed":2},{"name":"jc/cli.py","lines_changed":2},{"name":"man/jc.1","lines_changed":2}]}},{"commit":"275f3860d5870303235b651d42650256e4db8ada","message":"Merge pull request #114 from kellyjonbrazil/dev"},{"commit":"a73fdb7478965f0f2c841ac01b2762db80ad0786","message":"update dates","stats":{"files_changed":2,"insertions":2,"deletions":2,"files":["CHANGELOG","man/jc.1"],"file_stats":[{"name":"CHANGELOG","lines_changed":2},{"name":"man/jc.1","lines_changed":2}]}},{"commit":"f2d746403a0ed764f931ae9e14d180bab107dcca","message":"typo fix","stats":{"files_changed":2,"insertions":2,"deletions":2,"files":["docs/parsers/rpm_qi.md","jc/parsers/rpm_qi.py"],"file_stats":[{"name":"docs/parsers/rpm_qi.md","lines_changed":2},{"name":"jc/parsers/rpm_qi.py","lines_changed":2}]}},{"commit":"b7dbf2c49be4beb793495a0aaee7f05dbea5a3a6","message":"doc formatting","stats":{"files_changed":1,"insertions":13,"deletions":13,"files":["jc/utils.py"],"file_stats":[{"name":"jc/utils.py","lines_changed":26}]}},{"commit":"21f3c97788826e79b0c387f877c5adf269318e97","message":"rename rpm_qai to rpm_qi","stats":{"files_changed":1,"insertions":1,"deletions":1,"files":["EXAMPLES.md"],"file_stats":[{"name":"EXAMPLES.md","lines_changed":2}]}},{"commit":"14b727cc717d04fefba1cc31b6f29b549ced986f","message":"add rpm_qi tests","stats":{"files_changed":3,"insertions":73,"deletions":0,"files":["tests/fixtures/centos-7.7/rpm-qi-package.json","tests/fixtures/centos-7.7/rpm-qi-package.out","tests/test_rpm_qai.py"],"file_stats":[{"name":"tests/fixtures/centos-7.7/rpm-qi-package.json","lines_changed":1},{"name":"tests/fixtures/centos-7.7/rpm-qi-package.out","lines_changed":26},{"name":"tests/test_rpm_qai.py","lines_changed":46}]}},{"commit":"abee226591ed4ae37351efc995017d28b27827d9","message":"rename rpm_qia to rpm_qi","stats":{"files_changed":5,"insertions":205,"deletions":14,"files":["README.md","docs/parsers/rpm_qi.md","jc/cli.py","jc/parsers/{rpm_qai.py => rpm_qi.py}","man/jc.1"],"file_stats":[{"name":"README.md","lines_changed":2},{"name":"docs/parsers/rpm_qi.md","lines_changed":191},{"name":"jc/cli.py","lines_changed":2},{"name":"jc/parsers/{rpm_qai.py => rpm_qi.py}","lines_changed":20},{"name":"man/jc.1","lines_changed":4}]}},{"commit":"293ad39f4bcf326186dd917d8bc58d3964e5e4d6","message":"typo fix","stats":{"files_changed":2,"insertions":2,"deletions":2,"files":["README.md","templates/readme_template"],"file_stats":[{"name":"README.md","lines_changed":2},{"name":"templates/readme_template","lines_changed":2}]}},{"commit":"92443025811019f616f596abb60a2889f604c122","message":"rpm parser doc update","stats":{"files_changed":4,"insertions":7,"deletions":6,"files":["CHANGELOG","EXAMPLES.md","docs/parsers/rpm_qai.md","jc/parsers/rpm_qai.py"],"file_stats":[{"name":"CHANGELOG","lines_changed":1},{"name":"EXAMPLES.md","lines_changed":4},{"name":"docs/parsers/rpm_qai.md","lines_changed":4},{"name":"jc/parsers/rpm_qai.py","lines_changed":4}]}},{"commit":"753cac25fb1e7e6cd2c742afa8d45ced068ea91d","message":"only add description if it exists","stats":{"files_changed":1,"insertions":6,"deletions":3,"files":["jc/parsers/rpm_qai.py"],"file_stats":[{"name":"jc/parsers/rpm_qai.py","lines_changed":9}]}},{"commit":"0548263e898bf14f93d2fa423c0f0a9d9f2ff567","message":"add rpm -qai parser","stats":{"files_changed":8,"insertions":10468,"deletions":0,"files":["EXAMPLES.md","README.md","docs/parsers/rpm_qai.md","jc/cli.py","jc/parsers/rpm_qai.py","man/jc.1","tests/fixtures/centos-7.7/rpm-qai.json","tests/fixtures/centos-7.7/rpm-qai.out"],"file_stats":[{"name":"EXAMPLES.md","lines_changed":53},{"name":"README.md","lines_changed":1},{"name":"docs/parsers/rpm_qai.md","lines_changed":191},{"name":"jc/cli.py","lines_changed":1},{"name":"jc/parsers/rpm_qai.py","lines_changed":255},{"name":"man/jc.1","lines_changed":5},{"name":"tests/fixtures/centos-7.7/rpm-qai.json","lines_changed":1},{"name":"tests/fixtures/centos-7.7/rpm-qai.out","lines_changed":9961}]}},{"commit":"53776a9bf894988d6ef9221a62ab8b816c89560c","message":"note -a output is JSON","stats":{"files_changed":2,"insertions":2,"deletions":2,"files":["man/jc.1","templates/manpage_template"],"file_stats":[{"name":"man/jc.1","lines_changed":2},{"name":"templates/manpage_template","lines_changed":2}]}},{"commit":"cc7def9b76a7fa6de1e11b584676820f3acb0257","message":"add OSX finger tests","stats":{"files_changed":3,"insertions":18,"deletions":0,"files":["tests/fixtures/osx-10.14.6/finger.json","tests/fixtures/osx-10.14.6/finger.out","tests/test_finger.py"],"file_stats":[{"name":"tests/fixtures/osx-10.14.6/finger.json","lines_changed":1},{"name":"tests/fixtures/osx-10.14.6/finger.out","lines_changed":5},{"name":"tests/test_finger.py","lines_changed":12}]}},{"commit":"11a4422c25ed905f33475677bcc2f59f49c62a23","message":"add centos 7.7 finger tests","stats":{"files_changed":3,"insertions":51,"deletions":0,"files":["tests/fixtures/centos-7.7/finger.json","tests/fixtures/centos-7.7/finger.out","tests/test_finger.py"],"file_stats":[{"name":"tests/fixtures/centos-7.7/finger.json","lines_changed":1},{"name":"tests/fixtures/centos-7.7/finger.out","lines_changed":3},{"name":"tests/test_finger.py","lines_changed":47}]}},{"commit":"3a44785260514227b541530baf3e14b6c7ebe86a","message":"del details key if details are blank","stats":{"files_changed":1,"insertions":4,"deletions":0,"files":["jc/parsers/finger.py"],"file_stats":[{"name":"jc/parsers/finger.py","lines_changed":4}]}},{"commit":"e0d430c26c38db8de5a32741e05df412cffe45b7","message":"update -r raw option info","stats":{"files_changed":2,"insertions":2,"deletions":2,"files":["README.md","templates/readme_template"],"file_stats":[{"name":"README.md","lines_changed":2},{"name":"templates/readme_template","lines_changed":2}]}},{"commit":"417b70020accfa4910016e9d3d12690a5488f6f5","message":"add idle time fields to finger parser","stats":{"files_changed":5,"insertions":129,"deletions":22,"files":["EXAMPLES.md","docs/parsers/finger.md","jc/parsers/finger.py","tests/fixtures/ubuntu-18.04/finger.json","tests/fixtures/ubuntu-18.04/finger.out"],"file_stats":[{"name":"EXAMPLES.md","lines_changed":18},{"name":"docs/parsers/finger.md","lines_changed":53},{"name":"jc/parsers/finger.py","lines_changed":71},{"name":"tests/fixtures/ubuntu-18.04/finger.json","lines_changed":1},{"name":"tests/fixtures/ubuntu-18.04/finger.out","lines_changed":8}]}},{"commit":"7b29c464b72ef9a79bd872dab92cf65016490bcc","message":"date updated","stats":{"files_changed":1,"insertions":1,"deletions":1,"files":["man/jc.1"],"file_stats":[{"name":"man/jc.1","lines_changed":2}]}},{"commit":"26d5529d86e4e459ad94226465c3697a050af0ac","message":"remove aix support, add note for -s support. schema update","stats":{"files_changed":1,"insertions":10,"deletions":7,"files":["docs/parsers/finger.md"],"file_stats":[{"name":"docs/parsers/finger.md","lines_changed":17}]}},{"commit":"852103c478321b84ffbbc0a876d5ece0c0881e1f","message":"tweak regex to support arbitrary 'detail' data","stats":{"files_changed":1,"insertions":27,"deletions":14,"files":["jc/parsers/finger.py"],"file_stats":[{"name":"jc/parsers/finger.py","lines_changed":41}]}},{"commit":"26a115421b0888e23f4348f1124e2ef7b39df4cc","message":"add finger parser","stats":{"files_changed":1,"insertions":6,"deletions":5,"files":["CHANGELOG"],"file_stats":[{"name":"CHANGELOG","lines_changed":11}]}},{"commit":"755b941a9aa602d95d9bc599f5c64e05f9e6216d","message":"doc update","stats":{"files_changed":3,"insertions":35,"deletions":30,"files":["EXAMPLES.md","docs/parsers/finger.md","jc/parsers/finger.py"],"file_stats":[{"name":"EXAMPLES.md","lines_changed":23},{"name":"docs/parsers/finger.md","lines_changed":21},{"name":"jc/parsers/finger.py","lines_changed":21}]}},{"commit":"fd1ca82d86649adeb84968142665e5e4fae3fa0f","message":"add finger parser","stats":{"files_changed":5,"insertions":263,"deletions":0,"files":["README.md","docs/parsers/finger.md","jc/cli.py","jc/parsers/finger.py","man/jc.1"],"file_stats":[{"name":"README.md","lines_changed":1},{"name":"docs/parsers/finger.md","lines_changed":102},{"name":"jc/cli.py","lines_changed":1},{"name":"jc/parsers/finger.py","lines_changed":154},{"name":"man/jc.1","lines_changed":5}]}},{"commit":"6fe175344fc61d4996a9ea20f6c5d429efb1fac7","message":"change examples link to github.io","stats":{"files_changed":2,"insertions":2,"deletions":2,"files":["README.md","templates/readme_template"],"file_stats":[{"name":"README.md","lines_changed":2},{"name":"templates/readme_template","lines_changed":2}]}},{"commit":"3590cda13a68616ee7eb8c85c5554ffb3fef036d","message":"docs formatting","stats":{"files_changed":2,"insertions":2,"deletions":2,"files":["docs/parsers/last.md","jc/parsers/last.py"],"file_stats":[{"name":"docs/parsers/last.md","lines_changed":2},{"name":"jc/parsers/last.py","lines_changed":2}]}},{"commit":"2f1011dd85ec9b3550138ac4a4e1729fa5b4fe17","message":"readme update","stats":{"files_changed":1,"insertions":1,"deletions":1,"files":["README.md"],"file_stats":[{"name":"README.md","lines_changed":2}]}},{"commit":"2b155261b3f6e4879b592f5bc052649ded5e3d69","message":"use new github.io links for documentation","stats":{"files_changed":1,"insertions":1,"deletions":1,"files":["templates/readme_template"],"file_stats":[{"name":"templates/readme_template","lines_changed":2}]}},{"commit":"02f4d606d0a446c7cc74aedac6035ee79805950d","message":"add documentation links to README.md","stats":{"files_changed":2,"insertions":69,"deletions":69,"files":["README.md","templates/readme_template"],"file_stats":[{"name":"README.md","lines_changed":136},{"name":"templates/readme_template","lines_changed":2}]}},{"commit":"577811f00b7fcd0396bb0e26a2985709bd2c65a0","message":"Set theme jekyll-theme-cayman","stats":{"files_changed":1,"insertions":1,"deletions":0,"files":["docs/_config.yml"],"file_stats":[{"name":"docs/_config.yml","lines_changed":1}]}},{"commit":"b4098d67a3a4a617d42c1389e0a88833c77b89b4","message":"latest","stats":{"files_changed":1,"insertions":1,"deletions":1,"files":["man/jc.1"],"file_stats":[{"name":"man/jc.1","lines_changed":2}]}},{"commit":"88bd7554aeb511c19e55dc3dde9c9376efb0485b","message":"add status messages","stats":{"files_changed":2,"insertions":8,"deletions":3,"files":["docgen.sh","updatedocs.sh"],"file_stats":[{"name":"docgen.sh","lines_changed":2},{"name":"updatedocs.sh","lines_changed":9}]}},{"commit":"b5ec16c5cafb78db093861cc30d9646207f2227a","message":"formatting","stats":{"files_changed":2,"insertions":0,"deletions":8,"files":["mangen.py","readmegen.py"],"file_stats":[{"name":"mangen.py","lines_changed":4},{"name":"readmegen.py","lines_changed":4}]}},{"commit":"68fcb60a1460a35500180ec05a8cf5ba5706ff17","message":"add updatedocs script","stats":{"files_changed":1,"insertions":6,"deletions":0,"files":["updatedocs.sh"],"file_stats":[{"name":"updatedocs.sh","lines_changed":6}]}},{"commit":"e4781d60ce251f6d47f19bbe042e97f8aa9e2f18","message":"update parser descriptions with backticks surrounding command names","stats":{"files_changed":65,"insertions":188,"deletions":189,"files":["README.md","jc/parsers/acpi.py","jc/parsers/airport.py","jc/parsers/airport_s.py","jc/parsers/arp.py","jc/parsers/blkid.py","jc/parsers/cksum.py","jc/parsers/crontab.py","jc/parsers/crontab_u.py","jc/parsers/date.py","jc/parsers/df.py","jc/parsers/dig.py","jc/parsers/dir.py","jc/parsers/dmidecode.py","jc/parsers/dpkg_l.py","jc/parsers/du.py","jc/parsers/env.py","jc/parsers/file.py","jc/parsers/foo.py","jc/parsers/free.py","jc/parsers/fstab.py","jc/parsers/group.py","jc/parsers/gshadow.py","jc/parsers/hash.py","jc/parsers/hashsum.py","jc/parsers/hciconfig.py","jc/parsers/history.py","jc/parsers/hosts.py","jc/parsers/id.py","jc/parsers/ifconfig.py","jc/parsers/iptables.py","jc/parsers/jobs.py","jc/parsers/last.py","jc/parsers/ls.py","jc/parsers/lsblk.py","jc/parsers/lsmod.py","jc/parsers/lsof.py","jc/parsers/mount.py","jc/parsers/netstat.py","jc/parsers/ntpq.py","jc/parsers/passwd.py","jc/parsers/ping.py","jc/parsers/pip_list.py","jc/parsers/pip_show.py","jc/parsers/ps.py","jc/parsers/route.py","jc/parsers/shadow.py","jc/parsers/ss.py","jc/parsers/stat.py","jc/parsers/sysctl.py","jc/parsers/systemctl.py","jc/parsers/systemctl_lj.py","jc/parsers/systemctl_ls.py","jc/parsers/systemctl_luf.py","jc/parsers/time.py","jc/parsers/timedatectl.py","jc/parsers/tracepath.py","jc/parsers/traceroute.py","jc/parsers/uname.py","jc/parsers/upower.py","jc/parsers/uptime.py","jc/parsers/w.py","jc/parsers/wc.py","jc/parsers/who.py","man/jc.1"],"file_stats":[{"name":"README.md","lines_changed":124},{"name":"jc/parsers/acpi.py","lines_changed":2},{"name":"jc/parsers/airport.py","lines_changed":2},{"name":"jc/parsers/airport_s.py","lines_changed":2},{"name":"jc/parsers/arp.py","lines_changed":2},{"name":"jc/parsers/blkid.py","lines_changed":2},{"name":"jc/parsers/cksum.py","lines_changed":3},{"name":"jc/parsers/crontab.py","lines_changed":2},{"name":"jc/parsers/crontab_u.py","lines_changed":2},{"name":"jc/parsers/date.py","lines_changed":2},{"name":"jc/parsers/df.py","lines_changed":2},{"name":"jc/parsers/dig.py","lines_changed":2},{"name":"jc/parsers/dir.py","lines_changed":2},{"name":"jc/parsers/dmidecode.py","lines_changed":2},{"name":"jc/parsers/dpkg_l.py","lines_changed":2},{"name":"jc/parsers/du.py","lines_changed":2},{"name":"jc/parsers/env.py","lines_changed":2},{"name":"jc/parsers/file.py","lines_changed":2},{"name":"jc/parsers/foo.py","lines_changed":2},{"name":"jc/parsers/free.py","lines_changed":2},{"name":"jc/parsers/fstab.py","lines_changed":2},{"name":"jc/parsers/group.py","lines_changed":2},{"name":"jc/parsers/gshadow.py","lines_changed":2},{"name":"jc/parsers/hash.py","lines_changed":2},{"name":"jc/parsers/hashsum.py","lines_changed":2},{"name":"jc/parsers/hciconfig.py","lines_changed":2},{"name":"jc/parsers/history.py","lines_changed":2},{"name":"jc/parsers/hosts.py","lines_changed":2},{"name":"jc/parsers/id.py","lines_changed":2},{"name":"jc/parsers/ifconfig.py","lines_changed":2},{"name":"jc/parsers/iptables.py","lines_changed":2},{"name":"jc/parsers/jobs.py","lines_changed":2},{"name":"jc/parsers/last.py","lines_changed":2},{"name":"jc/parsers/ls.py","lines_changed":2},{"name":"jc/parsers/lsblk.py","lines_changed":2},{"name":"jc/parsers/lsmod.py","lines_changed":2},{"name":"jc/parsers/lsof.py","lines_changed":2},{"name":"jc/parsers/mount.py","lines_changed":2},{"name":"jc/parsers/netstat.py","lines_changed":2},{"name":"jc/parsers/ntpq.py","lines_changed":2},{"name":"jc/parsers/passwd.py","lines_changed":2},{"name":"jc/parsers/ping.py","lines_changed":2},{"name":"jc/parsers/pip_list.py","lines_changed":2},{"name":"jc/parsers/pip_show.py","lines_changed":2},{"name":"jc/parsers/ps.py","lines_changed":2},{"name":"jc/parsers/route.py","lines_changed":2},{"name":"jc/parsers/shadow.py","lines_changed":2},{"name":"jc/parsers/ss.py","lines_changed":2},{"name":"jc/parsers/stat.py","lines_changed":2},{"name":"jc/parsers/sysctl.py","lines_changed":2},{"name":"jc/parsers/systemctl.py","lines_changed":2},{"name":"jc/parsers/systemctl_lj.py","lines_changed":2},{"name":"jc/parsers/systemctl_ls.py","lines_changed":2},{"name":"jc/parsers/systemctl_luf.py","lines_changed":2},{"name":"jc/parsers/time.py","lines_changed":2},{"name":"jc/parsers/timedatectl.py","lines_changed":2},{"name":"jc/parsers/tracepath.py","lines_changed":2},{"name":"jc/parsers/traceroute.py","lines_changed":2},{"name":"jc/parsers/uname.py","lines_changed":2},{"name":"jc/parsers/upower.py","lines_changed":2},{"name":"jc/parsers/uptime.py","lines_changed":2},{"name":"jc/parsers/w.py","lines_changed":2},{"name":"jc/parsers/wc.py","lines_changed":2},{"name":"jc/parsers/who.py","lines_changed":2},{"name":"man/jc.1","lines_changed":126}]}},{"commit":"6201fb346a66ba762651624cdaf03f08e08579a1","message":"test backticks in description","stats":{"files_changed":2,"insertions":2,"deletions":2,"files":["README.md","jc/parsers/iw_scan.py"],"file_stats":[{"name":"README.md","lines_changed":2},{"name":"jc/parsers/iw_scan.py","lines_changed":2}]}},{"commit":"f88c8343f9dec5e0190df94a5109e6c749bda286","message":"update iw-scan description for documentation","stats":{"files_changed":2,"insertions":2,"deletions":2,"files":["README.md","jc/parsers/iw_scan.py"],"file_stats":[{"name":"README.md","lines_changed":2},{"name":"jc/parsers/iw_scan.py","lines_changed":2}]}},{"commit":"25410d33168ee7142bd8f8c739ef22a62a47eb6c","message":"create readmegen.py script. move jinja2 templates to templates folder","stats":{"files_changed":5,"insertions":973,"deletions":70,"files":["README.md","mangen.py","readmegen.py","{man/template => templates}/manpage_template","templates/readme_template"],"file_stats":[{"name":"README.md","lines_changed":139},{"name":"mangen.py","lines_changed":2},{"name":"readmegen.py","lines_changed":16},{"name":"{man/template => templates}/manpage_template","lines_changed":0},{"name":"templates/readme_template","lines_changed":886}]}},{"commit":"4ff9952938d0654376efc94ca7d8a12f6df171af","message":"change OSX to macOS","stats":{"files_changed":1,"insertions":5,"deletions":5,"files":["README.md"],"file_stats":[{"name":"README.md","lines_changed":10}]}},{"commit":"5e3f63a412c5b23e7515337521ebba6273b5c11f","message":"add license and copyright info. use variables instead of hard-coded values","stats":{"files_changed":2,"insertions":6,"deletions":6,"files":["man/jc.1","man/template/manpage_template"],"file_stats":[{"name":"man/jc.1","lines_changed":4},{"name":"man/template/manpage_template","lines_changed":8}]}},{"commit":"e1f57be69efdfd7facd07df6ef0955a36c4fc18b","message":"add license info","stats":{"files_changed":1,"insertions":2,"deletions":0,"files":["jc/cli.py"],"file_stats":[{"name":"jc/cli.py","lines_changed":2}]}},{"commit":"2c65d5eeccdc95d2de00ac6575a9e8d8458486bc","message":"man page updates","stats":{"files_changed":2,"insertions":32,"deletions":8,"files":["man/jc.1","man/template/manpage_template"],"file_stats":[{"name":"man/jc.1","lines_changed":20},{"name":"man/template/manpage_template","lines_changed":20}]}},{"commit":"aa621f2f1ee043611c440683dfb63e6577d8fac4","message":"enhance man page","stats":{"files_changed":3,"insertions":74,"deletions":9,"files":["CHANGELOG","man/jc.1","man/template/manpage_template"],"file_stats":[{"name":"CHANGELOG","lines_changed":1},{"name":"man/jc.1","lines_changed":42},{"name":"man/template/manpage_template","lines_changed":40}]}},{"commit":"ac932c6e59ad80115962d0ea91e6aaabc70c211e","message":"update timestamp docs","stats":{"files_changed":2,"insertions":4,"deletions":0,"files":["docs/utils.md","jc/utils.py"],"file_stats":[{"name":"docs/utils.md","lines_changed":2},{"name":"jc/utils.py","lines_changed":2}]}},{"commit":"029f79da1647e53f97ca83ba92b1f36a131f3128","message":"added info regarding updated dev scripts for automating doc generation","stats":{"files_changed":1,"insertions":1,"deletions":0,"files":["CHANGELOG"],"file_stats":[{"name":"CHANGELOG","lines_changed":1}]}},{"commit":"153b2b4a7a216caae5b03f6d50d43980c13a705f","message":"use jc to help automate the generation of its own docs","stats":{"files_changed":1,"insertions":11,"deletions":68,"files":["docgen.sh"],"file_stats":[{"name":"docgen.sh","lines_changed":79}]}},{"commit":"709b2fe4eead06090f903718deeb06ec774fc26e","message":"add -h and -v options","stats":{"files_changed":2,"insertions":16,"deletions":0,"files":["man/jc.1","man/template/manpage_template"],"file_stats":[{"name":"man/jc.1","lines_changed":8},{"name":"man/template/manpage_template","lines_changed":8}]}},{"commit":"09c1fccc584e3d0582e19b520586419085ea8d04","message":"manpage updates","stats":{"files_changed":3,"insertions":4,"deletions":6,"files":["man/jc.1","man/template/manpage_template","mangen.py"],"file_stats":[{"name":"man/jc.1","lines_changed":2},{"name":"man/template/manpage_template","lines_changed":2},{"name":"mangen.py","lines_changed":6}]}},{"commit":"fd254d99b782888fe7646e42a61f28aa99e7cba7","message":"add manpage generator","stats":{"files_changed":3,"insertions":193,"deletions":15,"files":["man/jc.1","man/template/manpage_template","mangen.py"],"file_stats":[{"name":"man/jc.1","lines_changed":124},{"name":"man/template/manpage_template","lines_changed":64},{"name":"mangen.py","lines_changed":20}]}},{"commit":"88bd2c172217c498431e8904e74313bc27978785","message":"fix typo","stats":{"files_changed":1,"insertions":1,"deletions":1,"files":["CONTRIBUTING.md"],"file_stats":[{"name":"CONTRIBUTING.md","lines_changed":2}]}},{"commit":"d03e2f0fc1d0310cd94702f4d3c959d71b0eb622","message":"add parser schema guidelines","stats":{"files_changed":1,"insertions":40,"deletions":0,"files":["CONTRIBUTING.md"],"file_stats":[{"name":"CONTRIBUTING.md","lines_changed":40}]}},{"commit":"3f12a393bd37062cd1412128be495235b0c7351f","message":"formatting","stats":{"files_changed":1,"insertions":1,"deletions":1,"files":["CONTRIBUTING.md"],"file_stats":[{"name":"CONTRIBUTING.md","lines_changed":2}]}},{"commit":"8c21284c5038bdc2e52ff4211fac747f33f52091","message":"remove redundant license info","stats":{"files_changed":1,"insertions":0,"deletions":3,"files":["CONTRIBUTING.md"],"file_stats":[{"name":"CONTRIBUTING.md","lines_changed":3}]}},{"commit":"e7d396c2157a77500017967dfc68ffaf32507c2c","message":"update issues link","stats":{"files_changed":1,"insertions":1,"deletions":1,"files":["CONTRIBUTING.md"],"file_stats":[{"name":"CONTRIBUTING.md","lines_changed":2}]}},{"commit":"f238fac0eb0c8e5133c6c9abf9ca709f5df7a925","message":"add contributing guidelines","stats":{"files_changed":3,"insertions":49,"deletions":0,"files":["CHANGELOG","CONTRIBUTING.md","README.md"],"file_stats":[{"name":"CHANGELOG","lines_changed":1},{"name":"CONTRIBUTING.md","lines_changed":46},{"name":"README.md","lines_changed":2}]}},{"commit":"017228f80d9a65ad7715f31c539d9fca1615296f","message":"add tested on Windows 10","stats":{"files_changed":1,"insertions":1,"deletions":0,"files":["README.md"],"file_stats":[{"name":"README.md","lines_changed":1}]}},{"commit":"286c5fa9434e25434ee8f4825621f68464296469","message":"add dir parser","stats":{"files_changed":1,"insertions":2,"deletions":1,"files":["CHANGELOG"],"file_stats":[{"name":"CHANGELOG","lines_changed":3}]}},{"commit":"74cfc13abe4cd09ca5470714caeaedd24c099770","message":"fixup dir parser tests","stats":{"files_changed":9,"insertions":12,"deletions":21,"files":["tests/fixtures/windows-10/dir-C.json","tests/fixtures/windows-10/dir-ODTC.json","tests/fixtures/windows-10/dir-S.json","tests/fixtures/windows-10/dir-dirs.json","tests/fixtures/windows-10/dir-files.json","tests/fixtures/windows-10/dir-mix.json","tests/fixtures/windows-10/dir-raw.json","tests/fixtures/windows-10/dir.json","tests/test_dir.py"],"file_stats":[{"name":"tests/fixtures/windows-10/dir-C.json","lines_changed":2},{"name":"tests/fixtures/windows-10/dir-ODTC.json","lines_changed":2},{"name":"tests/fixtures/windows-10/dir-S.json","lines_changed":2},{"name":"tests/fixtures/windows-10/dir-dirs.json","lines_changed":2},{"name":"tests/fixtures/windows-10/dir-files.json","lines_changed":2},{"name":"tests/fixtures/windows-10/dir-mix.json","lines_changed":2},{"name":"tests/fixtures/windows-10/dir-raw.json","lines_changed":1},{"name":"tests/fixtures/windows-10/dir.json","lines_changed":2},{"name":"tests/test_dir.py","lines_changed":18}]}},{"commit":"0ee4a6c377321cf6ff67ced38e9a07a8f6313943","message":"update schema and add epoch naive timestamp","stats":{"files_changed":2,"insertions":207,"deletions":460,"files":["docs/parsers/dir.md","jc/parsers/dir.py"],"file_stats":[{"name":"docs/parsers/dir.md","lines_changed":316},{"name":"jc/parsers/dir.py","lines_changed":351}]}},{"commit":"283433578dfc3f132ef35727ce5bafb3e390896c","message":"add dir parser","stats":{"files_changed":2,"insertions":46,"deletions":0,"files":["EXAMPLES.md","README.md"],"file_stats":[{"name":"EXAMPLES.md","lines_changed":45},{"name":"README.md","lines_changed":1}]}},{"commit":"9559c85057308e8815d4654bbe0062a5858c0b2b","message":"add windows dir format","stats":{"files_changed":2,"insertions":3,"deletions":0,"files":["jc/utils.py","tests/test_utils.py"],"file_stats":[{"name":"jc/utils.py","lines_changed":1},{"name":"tests/test_utils.py","lines_changed":2}]}},{"commit":"c5c020f5654038dacba542be3784a35d7333cbcc","message":"add /S option","stats":{"files_changed":1,"insertions":1,"deletions":0,"files":["docs/parsers/dir.md"],"file_stats":[{"name":"docs/parsers/dir.md","lines_changed":1}]}},{"commit":"95ec79bceb3d0c4245e36b7b16cfda6e16b01197","message":"Merge pull request #107 from rasheed-rd/add-dir-parser"},{"commit":"8f8be8aa33f0b708ebd9a35c6b288572443d7181","message":"add -1 option info","stats":{"files_changed":2,"insertions":4,"deletions":4,"files":["docs/parsers/ls.md","jc/parsers/ls.py"],"file_stats":[{"name":"docs/parsers/ls.md","lines_changed":4},{"name":"jc/parsers/ls.py","lines_changed":4}]}},{"commit":"5b60c7445a3f8bd2ae1587aa0ffaeaf093966f9a","message":"Add support for /S and update documentation","stats":{"files_changed":5,"insertions":469,"deletions":400,"files":["docs/parsers/dir.md","jc/parsers/dir.py","tests/fixtures/windows-10/dir-S.json","tests/fixtures/windows-10/dir-S.out","tests/test_dir.py"],"file_stats":[{"name":"docs/parsers/dir.md","lines_changed":404},{"name":"jc/parsers/dir.py","lines_changed":405},{"name":"tests/fixtures/windows-10/dir-S.json","lines_changed":1},{"name":"tests/fixtures/windows-10/dir-S.out","lines_changed":47},{"name":"tests/test_dir.py","lines_changed":12}]}},{"commit":"d9dbcc8b526c8de9c6d12ac580880fd606dc68cf","message":"Add parent dir to structure. Add test cases. Remove support for /Q","stats":{"files_changed":15,"insertions":149,"deletions":73,"files":["docs/parsers/dir.md","jc/parsers/dir.py","tests/fixtures/windows-10/dir-C.json","tests/fixtures/windows-10/dir-ODTC.json","tests/fixtures/windows-10/dir-Q.json","tests/fixtures/windows-10/dir-Q.out","tests/fixtures/windows-10/dir-dirs.json","tests/fixtures/windows-10/dir-dirs.out","tests/fixtures/windows-10/dir-files.json","tests/fixtures/windows-10/dir-files.out","tests/fixtures/windows-10/dir-mix.json","tests/fixtures/windows-10/dir-mix.out","tests/fixtures/windows-10/dir-raw.json","tests/fixtures/windows-10/dir.json","tests/test_dir.py"],"file_stats":[{"name":"docs/parsers/dir.md","lines_changed":24},{"name":"jc/parsers/dir.py","lines_changed":59},{"name":"tests/fixtures/windows-10/dir-C.json","lines_changed":2},{"name":"tests/fixtures/windows-10/dir-ODTC.json","lines_changed":2},{"name":"tests/fixtures/windows-10/dir-Q.json","lines_changed":1},{"name":"tests/fixtures/windows-10/dir-Q.out","lines_changed":21},{"name":"tests/fixtures/windows-10/dir-dirs.json","lines_changed":1},{"name":"tests/fixtures/windows-10/dir-dirs.out","lines_changed":19},{"name":"tests/fixtures/windows-10/dir-files.json","lines_changed":1},{"name":"tests/fixtures/windows-10/dir-files.out","lines_changed":16},{"name":"tests/fixtures/windows-10/dir-mix.json","lines_changed":1},{"name":"tests/fixtures/windows-10/dir-mix.out","lines_changed":22},{"name":"tests/fixtures/windows-10/dir-raw.json","lines_changed":1},{"name":"tests/fixtures/windows-10/dir.json","lines_changed":2},{"name":"tests/test_dir.py","lines_changed":50}]}},{"commit":"79bc525970b38dea68b4859ac5dd32fc681e5994","message":"add codes field to schema","stats":{"files_changed":2,"insertions":2,"deletions":0,"files":["docs/parsers/dpkg_l.md","jc/parsers/dpkg_l.py"],"file_stats":[{"name":"docs/parsers/dpkg_l.md","lines_changed":1},{"name":"jc/parsers/dpkg_l.py","lines_changed":1}]}},{"commit":"9dae1091ddc6141694ebfdc5ae649582cb879ccd","message":"typo fix","stats":{"files_changed":2,"insertions":5,"deletions":5,"files":["docs/parsers/dpkg_l.md","jc/parsers/dpkg_l.py"],"file_stats":[{"name":"docs/parsers/dpkg_l.md","lines_changed":6},{"name":"jc/parsers/dpkg_l.py","lines_changed":4}]}},{"commit":"74d3ac686a69518c1048260e37a0245ff254ff57","message":"add dpkg-l tests","stats":{"files_changed":4,"insertions":61,"deletions":0,"files":["tests/fixtures/ubuntu-18.04/dpkg-l-codes.json","tests/fixtures/ubuntu-18.04/dpkg-l-columns500.json","tests/fixtures/ubuntu-18.04/dpkg-l.json","tests/test_dpkg_l.py"],"file_stats":[{"name":"tests/fixtures/ubuntu-18.04/dpkg-l-codes.json","lines_changed":1},{"name":"tests/fixtures/ubuntu-18.04/dpkg-l-columns500.json","lines_changed":1},{"name":"tests/fixtures/ubuntu-18.04/dpkg-l.json","lines_changed":1},{"name":"tests/test_dpkg_l.py","lines_changed":58}]}},{"commit":"cf3cc636badcf4ae6db1e5ee5e57ca0331ee5b0f","message":"add dpkg-l parser info","stats":{"files_changed":1,"insertions":1,"deletions":0,"files":["README.md"],"file_stats":[{"name":"README.md","lines_changed":1}]}},{"commit":"a720441e1d34771c5a54876cb7dd63fb8c9f408e","message":"add dpkg -l example","stats":{"files_changed":1,"insertions":54,"deletions":0,"files":["EXAMPLES.md"],"file_stats":[{"name":"EXAMPLES.md","lines_changed":54}]}},{"commit":"0a7ed0959df07e2f36d9ec3ca8c294cfdaf10396","message":"rename err to error","stats":{"files_changed":2,"insertions":5,"deletions":5,"files":["docs/parsers/dpkg_l.md","jc/parsers/dpkg_l.py"],"file_stats":[{"name":"docs/parsers/dpkg_l.md","lines_changed":4},{"name":"jc/parsers/dpkg_l.py","lines_changed":6}]}},{"commit":"eb83c9b86dc6d1ff15efed30993071834b65a7d1","message":"replace parse_datetime_to_timestamp with timestamp class","stats":{"files_changed":1,"insertions":8,"deletions":21,"files":["docs/utils.md"],"file_stats":[{"name":"docs/utils.md","lines_changed":29}]}},{"commit":"5c0142dd19eee14f4f1c287f0543e29824f9ae70","message":"add dpkg-l parser","stats":{"files_changed":9,"insertions":1797,"deletions":2,"files":["CHANGELOG","docgen.sh","docs/parsers/dpkg_l.md","jc/cli.py","jc/parsers/dpkg_l.py","jc/parsers/universal.py","tests/fixtures/ubuntu-18.04/dpkg-l-codes.out","tests/fixtures/ubuntu-18.04/dpkg-l-columns500.out","tests/fixtures/ubuntu-18.04/dpkg-l.out"],"file_stats":[{"name":"CHANGELOG","lines_changed":1},{"name":"docgen.sh","lines_changed":1},{"name":"docs/parsers/dpkg_l.md","lines_changed":170},{"name":"jc/cli.py","lines_changed":1},{"name":"jc/parsers/dpkg_l.py","lines_changed":247},{"name":"jc/parsers/universal.py","lines_changed":4},{"name":"tests/fixtures/ubuntu-18.04/dpkg-l-codes.out","lines_changed":21},{"name":"tests/fixtures/ubuntu-18.04/dpkg-l-columns500.out","lines_changed":677},{"name":"tests/fixtures/ubuntu-18.04/dpkg-l.out","lines_changed":677}]}},{"commit":"c326c8dc8356b55bba13864156adf30607205ece","message":"add TypeError to except block. add /usr/bin/time tests","stats":{"files_changed":18,"insertions":194,"deletions":1,"files":["jc/parsers/time.py","tests/fixtures/osx-10.14.6/time-l.json","tests/fixtures/osx-10.14.6/time-l.out","tests/fixtures/osx-10.14.6/time-lp.json","tests/fixtures/osx-10.14.6/time-lp.out","tests/fixtures/osx-10.14.6/time-p.json","tests/fixtures/osx-10.14.6/time-p.out","tests/fixtures/osx-10.14.6/time.json","tests/fixtures/osx-10.14.6/time.out","tests/fixtures/ubuntu-18.04/time-p.json","tests/fixtures/ubuntu-18.04/time-p.out","tests/fixtures/ubuntu-18.04/time-verbose.json","tests/fixtures/ubuntu-18.04/time-verbose.out","tests/fixtures/ubuntu-18.04/time.json","tests/fixtures/ubuntu-18.04/time.out","tests/fixtures/ubuntu-18.04/time2.json","tests/fixtures/ubuntu-18.04/time2.out","tests/test_time.py"],"file_stats":[{"name":"jc/parsers/time.py","lines_changed":2},{"name":"tests/fixtures/osx-10.14.6/time-l.json","lines_changed":1},{"name":"tests/fixtures/osx-10.14.6/time-l.out","lines_changed":15},{"name":"tests/fixtures/osx-10.14.6/time-lp.json","lines_changed":1},{"name":"tests/fixtures/osx-10.14.6/time-lp.out","lines_changed":17},{"name":"tests/fixtures/osx-10.14.6/time-p.json","lines_changed":1},{"name":"tests/fixtures/osx-10.14.6/time-p.out","lines_changed":3},{"name":"tests/fixtures/osx-10.14.6/time.json","lines_changed":1},{"name":"tests/fixtures/osx-10.14.6/time.out","lines_changed":1},{"name":"tests/fixtures/ubuntu-18.04/time-p.json","lines_changed":1},{"name":"tests/fixtures/ubuntu-18.04/time-p.out","lines_changed":3},{"name":"tests/fixtures/ubuntu-18.04/time-verbose.json","lines_changed":1},{"name":"tests/fixtures/ubuntu-18.04/time-verbose.out","lines_changed":23},{"name":"tests/fixtures/ubuntu-18.04/time.json","lines_changed":1},{"name":"tests/fixtures/ubuntu-18.04/time.out","lines_changed":3},{"name":"tests/fixtures/ubuntu-18.04/time2.json","lines_changed":1},{"name":"tests/fixtures/ubuntu-18.04/time2.out","lines_changed":2},{"name":"tests/test_time.py","lines_changed":118}]}},{"commit":"fc4082a03feb5645a1ad687908782a2584a58956","message":"remove old parse_datetime_to_timestamp function","stats":{"files_changed":1,"insertions":0,"deletions":131,"files":["jc/utils.py"],"file_stats":[{"name":"jc/utils.py","lines_changed":131}]}},{"commit":"c8655565ff8718f0f14d41696b81e6539529dde1","message":"use new timestamp class","stats":{"files_changed":1,"insertions":3,"deletions":2,"files":["jc/parsers/ls.py"],"file_stats":[{"name":"jc/parsers/ls.py","lines_changed":5}]}},{"commit":"638f879f16c9e87edb60953f4fd0b1c7ad92f277","message":"use new timestamp class","stats":{"files_changed":1,"insertions":3,"deletions":2,"files":["jc/parsers/dig.py"],"file_stats":[{"name":"jc/parsers/dig.py","lines_changed":5}]}},{"commit":"1d221bf7e6128d57bd769c0fe8f37f7a94da8cd2","message":"use new timestamp class","stats":{"files_changed":1,"insertions":2,"deletions":1,"files":["jc/parsers/who.py"],"file_stats":[{"name":"jc/parsers/who.py","lines_changed":3}]}},{"commit":"60ea71f0ef931dccf09e6eb0cb737ddad0b47f0c","message":"use new timestamp class","stats":{"files_changed":1,"insertions":2,"deletions":1,"files":["jc/parsers/timedatectl.py"],"file_stats":[{"name":"jc/parsers/timedatectl.py","lines_changed":3}]}},{"commit":"d8bdd35a3f462efcdc871426309299e8aefb0a79","message":"use new timestamp class","stats":{"files_changed":1,"insertions":3,"deletions":2,"files":["jc/parsers/stat.py"],"file_stats":[{"name":"jc/parsers/stat.py","lines_changed":5}]}},{"commit":"7463891c53f3670710dfa72ed1422431c274fe4a","message":"use new timestamp class","stats":{"files_changed":1,"insertions":4,"deletions":2,"files":["jc/parsers/last.py"],"file_stats":[{"name":"jc/parsers/last.py","lines_changed":6}]}},{"commit":"7537aec76fa07384c4439f34c50d4e3f001c0dfa","message":"use jc.utils.timestamp instead of jc.utils.parse_datetime_to_timestamp()","stats":{"files_changed":1,"insertions":8,"deletions":8,"files":["jc/parsers/date.py"],"file_stats":[{"name":"jc/parsers/date.py","lines_changed":16}]}},{"commit":"62234e39a8533362a20f106c64326ed69f430006","message":"use jc.utils.timestamp instead of jc.utils.parse_datetime_to_timestamp()","stats":{"files_changed":1,"insertions":5,"deletions":8,"files":["jc/parsers/upower.py"],"file_stats":[{"name":"jc/parsers/upower.py","lines_changed":13}]}},{"commit":"be004b7b3fe9217160c6418907e7d8aad10e5fae","message":"make parse_datetime_to_timestamp function a class called timestamp for easier use","stats":{"files_changed":2,"insertions":172,"deletions":15,"files":["jc/utils.py","tests/test_utils.py"],"file_stats":[{"name":"jc/utils.py","lines_changed":155},{"name":"tests/test_utils.py","lines_changed":32}]}},{"commit":"82539444b24169b2eb762485ed032fc968a81f71","message":"fix indentation for int and float conversions. add real_time field to schema","stats":{"files_changed":2,"insertions":23,"deletions":21,"files":["docs/parsers/time.md","jc/parsers/time.py"],"file_stats":[{"name":"docs/parsers/time.md","lines_changed":1},{"name":"jc/parsers/time.py","lines_changed":43}]}},{"commit":"a571d3cbafd5048d1d59070e1791398ae410197f","message":"fix typo","stats":{"files_changed":2,"insertions":2,"deletions":2,"files":["docs/parsers/time.md","jc/parsers/time.py"],"file_stats":[{"name":"docs/parsers/time.md","lines_changed":2},{"name":"jc/parsers/time.py","lines_changed":2}]}},{"commit":"a038c14c23ea27264df61a38e0301de8d1fa1b9a","message":"change microseconds to centiseconds","stats":{"files_changed":3,"insertions":8,"deletions":8,"files":["EXAMPLES.md","docs/parsers/time.md","jc/parsers/time.py"],"file_stats":[{"name":"EXAMPLES.md","lines_changed":2},{"name":"docs/parsers/time.md","lines_changed":4},{"name":"jc/parsers/time.py","lines_changed":10}]}},{"commit":"25a85d874cd2b57a7700b0c2dca61132127732b1","message":"update docs","stats":{"files_changed":1,"insertions":1,"deletions":1,"files":["jc/parsers/iw_scan.py"],"file_stats":[{"name":"jc/parsers/iw_scan.py","lines_changed":2}]}},{"commit":"884c36ff42df4f580c8e2b4705def8e4c1182e39","message":"add /usr/bin/time parser","stats":{"files_changed":8,"insertions":536,"deletions":1,"files":["CHANGELOG","EXAMPLES.md","README.md","docgen.sh","docs/parsers/iw_scan.md","docs/parsers/time.md","jc/cli.py","jc/parsers/time.py"],"file_stats":[{"name":"CHANGELOG","lines_changed":1},{"name":"EXAMPLES.md","lines_changed":36},{"name":"README.md","lines_changed":1},{"name":"docgen.sh","lines_changed":1},{"name":"docs/parsers/iw_scan.md","lines_changed":2},{"name":"docs/parsers/time.md","lines_changed":163},{"name":"jc/cli.py","lines_changed":1},{"name":"jc/parsers/time.py","lines_changed":332}]}},{"commit":"b98e72b8b4eda0ab5ede7725226e61634af572eb","message":"add ls parser info","stats":{"files_changed":1,"insertions":1,"deletions":0,"files":["CHANGELOG"],"file_stats":[{"name":"CHANGELOG","lines_changed":1}]}},{"commit":"05885c0096b5ee142ecff2d17e37c446518998a0","message":"add epoch and epoch_utc timestamps","stats":{"files_changed":5,"insertions":931,"deletions":18,"files":["docs/parsers/ls.md","jc/parsers/ls.py","tests/fixtures/ubuntu-18.04/ls-l-iso.json","tests/fixtures/ubuntu-18.04/ls-l-iso.out","tests/test_ls.py"],"file_stats":[{"name":"docs/parsers/ls.md","lines_changed":22},{"name":"jc/parsers/ls.py","lines_changed":31},{"name":"tests/fixtures/ubuntu-18.04/ls-l-iso.json","lines_changed":1},{"name":"tests/fixtures/ubuntu-18.04/ls-l-iso.out","lines_changed":883},{"name":"tests/test_ls.py","lines_changed":12}]}},{"commit":"4c9761231af897658c3a2c0abcc476aa8b43d1b3","message":"add when_epoch and when_epoch_utc fields","stats":{"files_changed":21,"insertions":118,"deletions":81,"files":["CHANGELOG","EXAMPLES.md","README.md","docs/parsers/dig.md","jc/parsers/dig.py","tests/fixtures/centos-7.7/dig-aaaa.json","tests/fixtures/centos-7.7/dig-axfr.json","tests/fixtures/centos-7.7/dig-x.json","tests/fixtures/centos-7.7/dig.json","tests/fixtures/generic/dig-answer-spaces.json","tests/fixtures/osx-10.11.6/dig-aaaa.json","tests/fixtures/osx-10.11.6/dig-x.json","tests/fixtures/osx-10.11.6/dig.json","tests/fixtures/osx-10.14.6/dig-aaaa.json","tests/fixtures/osx-10.14.6/dig-axfr.json","tests/fixtures/osx-10.14.6/dig-x.json","tests/fixtures/osx-10.14.6/dig.json","tests/fixtures/ubuntu-18.04/dig-aaaa.json","tests/fixtures/ubuntu-18.04/dig-axfr.json","tests/fixtures/ubuntu-18.04/dig-x.json","tests/fixtures/ubuntu-18.04/dig.json"],"file_stats":[{"name":"CHANGELOG","lines_changed":1},{"name":"EXAMPLES.md","lines_changed":46},{"name":"README.md","lines_changed":14},{"name":"docs/parsers/dig.md","lines_changed":50},{"name":"jc/parsers/dig.py","lines_changed":56},{"name":"tests/fixtures/centos-7.7/dig-aaaa.json","lines_changed":2},{"name":"tests/fixtures/centos-7.7/dig-axfr.json","lines_changed":2},{"name":"tests/fixtures/centos-7.7/dig-x.json","lines_changed":2},{"name":"tests/fixtures/centos-7.7/dig.json","lines_changed":2},{"name":"tests/fixtures/generic/dig-answer-spaces.json","lines_changed":2},{"name":"tests/fixtures/osx-10.11.6/dig-aaaa.json","lines_changed":2},{"name":"tests/fixtures/osx-10.11.6/dig-x.json","lines_changed":2},{"name":"tests/fixtures/osx-10.11.6/dig.json","lines_changed":2},{"name":"tests/fixtures/osx-10.14.6/dig-aaaa.json","lines_changed":2},{"name":"tests/fixtures/osx-10.14.6/dig-axfr.json","lines_changed":2},{"name":"tests/fixtures/osx-10.14.6/dig-x.json","lines_changed":2},{"name":"tests/fixtures/osx-10.14.6/dig.json","lines_changed":2},{"name":"tests/fixtures/ubuntu-18.04/dig-aaaa.json","lines_changed":2},{"name":"tests/fixtures/ubuntu-18.04/dig-axfr.json","lines_changed":2},{"name":"tests/fixtures/ubuntu-18.04/dig-x.json","lines_changed":2},{"name":"tests/fixtures/ubuntu-18.04/dig.json","lines_changed":2}]}},{"commit":"656eaa150861948091ef9d6323805c2698039bc6","message":"formatting","stats":{"files_changed":1,"insertions":1,"deletions":1,"files":["README.md"],"file_stats":[{"name":"README.md","lines_changed":2}]}},{"commit":"1560dcddcf82f55fffce22d1b46d372b25a9d0fd","message":"add acpi, upower parsers and -v version option","stats":{"files_changed":1,"insertions":3,"deletions":0,"files":["README.md"],"file_stats":[{"name":"README.md","lines_changed":3}]}},{"commit":"08d4cd4870c7acaf3a453d1400b64d77d462437b","message":"add time calculations to acpi parser","stats":{"files_changed":7,"insertions":114,"deletions":43,"files":["EXAMPLES.md","docs/parsers/acpi.md","jc/parsers/acpi.py","tests/fixtures/generic/acpi-V.json","tests/fixtures/generic/acpi-V2.json","tests/fixtures/generic/acpi-V3.json","tests/fixtures/generic/acpi-V4.json"],"file_stats":[{"name":"EXAMPLES.md","lines_changed":34},{"name":"docs/parsers/acpi.md","lines_changed":50},{"name":"jc/parsers/acpi.py","lines_changed":65},{"name":"tests/fixtures/generic/acpi-V.json","lines_changed":2},{"name":"tests/fixtures/generic/acpi-V2.json","lines_changed":2},{"name":"tests/fixtures/generic/acpi-V3.json","lines_changed":2},{"name":"tests/fixtures/generic/acpi-V4.json","lines_changed":2}]}},{"commit":"9767a50cededb140575e195abf79ce49c4f53789","message":"update who parser to add epoch naive timestamp","stats":{"files_changed":12,"insertions":48,"deletions":46,"files":["CHANGELOG","EXAMPLES.md","docs/parsers/who.md","jc/parsers/who.py","jc/utils.py","tests/fixtures/centos-7.7/who-a.json","tests/fixtures/centos-7.7/who.json","tests/fixtures/osx-10.14.6/who-a.json","tests/fixtures/osx-10.14.6/who.json","tests/fixtures/ubuntu-18.04/who-a.json","tests/fixtures/ubuntu-18.04/who.json","tests/test_utils.py"],"file_stats":[{"name":"CHANGELOG","lines_changed":1},{"name":"EXAMPLES.md","lines_changed":37},{"name":"docs/parsers/who.md","lines_changed":18},{"name":"jc/parsers/who.py","lines_changed":23},{"name":"jc/utils.py","lines_changed":1},{"name":"tests/fixtures/centos-7.7/who-a.json","lines_changed":2},{"name":"tests/fixtures/centos-7.7/who.json","lines_changed":2},{"name":"tests/fixtures/osx-10.14.6/who-a.json","lines_changed":2},{"name":"tests/fixtures/osx-10.14.6/who.json","lines_changed":2},{"name":"tests/fixtures/ubuntu-18.04/who-a.json","lines_changed":2},{"name":"tests/fixtures/ubuntu-18.04/who.json","lines_changed":2},{"name":"tests/test_utils.py","lines_changed":2}]}},{"commit":"cd86890ed1493644e391e52e33561e9a77631a51","message":"add website to info and use variables for version info","stats":{"files_changed":1,"insertions":4,"deletions":1,"files":["jc/cli.py"],"file_stats":[{"name":"jc/cli.py","lines_changed":5}]}},{"commit":"ba0dd3b9ca98a042c772898302fcfe5fdc84f79a","message":"add parse_timedate_to_timestamp test for format 7300","stats":{"files_changed":1,"insertions":3,"deletions":1,"files":["tests/test_utils.py"],"file_stats":[{"name":"tests/test_utils.py","lines_changed":4}]}},{"commit":"8d7fa07ffd50f38336a448eb506a76d9d4849a6a","message":"unformat json","stats":{"files_changed":1,"insertions":1,"deletions":11,"files":["tests/fixtures/centos-7.7/timedatectl.json"],"file_stats":[{"name":"tests/fixtures/centos-7.7/timedatectl.json","lines_changed":12}]}},{"commit":"cade1bfe6e56b5926898b7204e911885efebd5a7","message":"update timedatectl tests for new epoch_utc field","stats":{"files_changed":2,"insertions":12,"deletions":2,"files":["tests/fixtures/centos-7.7/timedatectl.json","tests/fixtures/ubuntu-18.04/timedatectl.json"],"file_stats":[{"name":"tests/fixtures/centos-7.7/timedatectl.json","lines_changed":12},{"name":"tests/fixtures/ubuntu-18.04/timedatectl.json","lines_changed":2}]}},{"commit":"daec4ab0a7f572e872b27b043d51f68e5e06300f","message":"add epoch_utc field to timedatectl parser","stats":{"files_changed":5,"insertions":20,"deletions":4,"files":["CHANGELOG","EXAMPLES.md","docs/parsers/timedatectl.md","jc/parsers/timedatectl.py","jc/utils.py"],"file_stats":[{"name":"CHANGELOG","lines_changed":3},{"name":"EXAMPLES.md","lines_changed":3},{"name":"docs/parsers/timedatectl.md","lines_changed":6},{"name":"jc/parsers/timedatectl.py","lines_changed":11},{"name":"jc/utils.py","lines_changed":1}]}},{"commit":"3c96bc319615c824a06c388e9e3c1d68a9bf4084","message":"version bump","stats":{"files_changed":1,"insertions":1,"deletions":1,"files":["jc/parsers/stat.py"],"file_stats":[{"name":"jc/parsers/stat.py","lines_changed":2}]}},{"commit":"7f7d8d4bd6f37015b11bac60a7bd99e8d3eca108","message":"update stat docs","stats":{"files_changed":2,"insertions":8,"deletions":0,"files":["docs/parsers/stat.md","jc/parsers/stat.py"],"file_stats":[{"name":"docs/parsers/stat.md","lines_changed":4},{"name":"jc/parsers/stat.py","lines_changed":4}]}},{"commit":"47263661a41987f334fd484e866e0aa8859cde5d","message":"update stat example","stats":{"files_changed":1,"insertions":18,"deletions":2,"files":["EXAMPLES.md"],"file_stats":[{"name":"EXAMPLES.md","lines_changed":20}]}},{"commit":"4c42a086d206919dfe4f1c0801fe4fb1027cb1cd","message":"clean up debug code","stats":{"files_changed":1,"insertions":1,"deletions":6,"files":["jc/utils.py"],"file_stats":[{"name":"jc/utils.py","lines_changed":7}]}},{"commit":"5d2541a5c4bc93f3943a491c76df7f8d4e2cf44b","message":"remove auto c locale and use a manual format rule for windows and linux compatibility","stats":{"files_changed":1,"insertions":2,"deletions":3,"files":["jc/utils.py"],"file_stats":[{"name":"jc/utils.py","lines_changed":5}]}},{"commit":"d91d170b49bfc88c0b2fb54475705c038172f1c8","message":"try manual c locale format for windows","stats":{"files_changed":1,"insertions":2,"deletions":0,"files":["jc/utils.py"],"file_stats":[{"name":"jc/utils.py","lines_changed":2}]}},{"commit":"6d1f4584a9ccd0f0f7ed4fdf408576a9e7f5046b","message":"try manually setting time format for windows compatibility","stats":{"files_changed":1,"insertions":2,"deletions":2,"files":["jc/utils.py"],"file_stats":[{"name":"jc/utils.py","lines_changed":4}]}},{"commit":"1d76d96bcf4185cffb7066bec637913099399db5","message":"debug windows issue","stats":{"files_changed":1,"insertions":4,"deletions":0,"files":["jc/utils.py"],"file_stats":[{"name":"jc/utils.py","lines_changed":4}]}},{"commit":"e8847c998c91131acf5ee0f6485e9976c0fce3ae","message":"update stat tests","stats":{"files_changed":4,"insertions":4,"deletions":4,"files":["tests/fixtures/centos-7.7/stat.json","tests/fixtures/freebsd12/stat.json","tests/fixtures/osx-10.14.6/stat.json","tests/fixtures/ubuntu-18.04/stat.json"],"file_stats":[{"name":"tests/fixtures/centos-7.7/stat.json","lines_changed":2},{"name":"tests/fixtures/freebsd12/stat.json","lines_changed":2},{"name":"tests/fixtures/osx-10.14.6/stat.json","lines_changed":2},{"name":"tests/fixtures/ubuntu-18.04/stat.json","lines_changed":2}]}},{"commit":"da88e49bae2f3fecff623f52c20bf994b653583e","message":"add new examples","stats":{"files_changed":2,"insertions":69,"deletions":29,"files":["docs/parsers/stat.md","jc/parsers/stat.py"],"file_stats":[{"name":"docs/parsers/stat.md","lines_changed":76},{"name":"jc/parsers/stat.py","lines_changed":22}]}},{"commit":"65c3a12e5422782df40489c3c431677f5657dbf5","message":"simplify None data scenario","stats":{"files_changed":2,"insertions":35,"deletions":24,"files":["jc/parsers/stat.py","jc/utils.py"],"file_stats":[{"name":"jc/parsers/stat.py","lines_changed":58},{"name":"jc/utils.py","lines_changed":1}]}},{"commit":"d8d600cc36bde4e6216b935f87a765599e896714","message":"add reference to -h for help","stats":{"files_changed":1,"insertions":1,"deletions":1,"files":["jc/cli.py"],"file_stats":[{"name":"jc/cli.py","lines_changed":2}]}},{"commit":"507999b117b024fed1ccf067bd5dc411dbeb268c","message":"add stat command timestamp detection","stats":{"files_changed":3,"insertions":34,"deletions":19,"files":["docs/utils.md","jc/utils.py","tests/test_utils.py"],"file_stats":[{"name":"docs/utils.md","lines_changed":32},{"name":"jc/utils.py","lines_changed":13},{"name":"tests/test_utils.py","lines_changed":8}]}},{"commit":"8ad164eb340e135eeeb10b721172916182f37e30","message":"fix tests for compact output","stats":{"files_changed":1,"insertions":3,"deletions":3,"files":["tests/test_cli.py"],"file_stats":[{"name":"tests/test_cli.py","lines_changed":6}]}},{"commit":"a507df140b245b83b1c46e8462b44e1145c42f2a","message":"add compact json info","stats":{"files_changed":1,"insertions":1,"deletions":0,"files":["CHANGELOG"],"file_stats":[{"name":"CHANGELOG","lines_changed":1}]}},{"commit":"8912a99986a977ee6ca7bbe2368f5033644577b0","message":"make default json output more compact","stats":{"files_changed":1,"insertions":5,"deletions":3,"files":["jc/cli.py"],"file_stats":[{"name":"jc/cli.py","lines_changed":8}]}},{"commit":"1953f9882890cd0e8c515d43ce28c96f918b0ab4","message":"add version info. add json now supports unicode output","stats":{"files_changed":1,"insertions":3,"deletions":1,"files":["CHANGELOG"],"file_stats":[{"name":"CHANGELOG","lines_changed":4}]}},{"commit":"7515218ddd2cdcfcebd67850140e842f2f121226","message":"use jc.utils for all warning and error messages. simply error and warning formatting.","stats":{"files_changed":2,"insertions":10,"deletions":14,"files":["jc/cli.py","jc/utils.py"],"file_stats":[{"name":"jc/cli.py","lines_changed":8},{"name":"jc/utils.py","lines_changed":16}]}},{"commit":"36c11201366cefedee4244fb71a4a9cc6507e6ae","message":"formatting","stats":{"files_changed":1,"insertions":1,"deletions":1,"files":["CHANGELOG"],"file_stats":[{"name":"CHANGELOG","lines_changed":2}]}},{"commit":"8fa0fe64d8418093c7f28cdc70a7f409956aeb04","message":"add -v to helptext. minor formatting","stats":{"files_changed":1,"insertions":5,"deletions":5,"files":["jc/cli.py"],"file_stats":[{"name":"jc/cli.py","lines_changed":10}]}},{"commit":"c1a8201b140c65579ff9f8427322b67653bf3006","message":"add copyright","stats":{"files_changed":1,"insertions":3,"deletions":1,"files":["EXAMPLES.md"],"file_stats":[{"name":"EXAMPLES.md","lines_changed":4}]}},{"commit":"398bbac48c8a716b1872843d671aa6ceaeba6a78","message":"simplify return value for parse_datetime_to_timestamp()","stats":{"files_changed":1,"insertions":1,"deletions":1,"files":["jc/utils.py"],"file_stats":[{"name":"jc/utils.py","lines_changed":2}]}},{"commit":"ea71a42bbdd9b09a457727cfe763054625f7901a","message":"formatting","stats":{"files_changed":1,"insertions":0,"deletions":2,"files":["jc/cli.py"],"file_stats":[{"name":"jc/cli.py","lines_changed":2}]}},{"commit":"1c16d25b17a7282a62a5ebd9755df5569c57435f","message":"add version option (-v) and copyright information. add 'ensure_ascii=False' to json dumps to properly show UTF-8 copyright character","stats":{"files_changed":2,"insertions":30,"deletions":9,"files":["README.md","jc/cli.py"],"file_stats":[{"name":"README.md","lines_changed":4},{"name":"jc/cli.py","lines_changed":35}]}},{"commit":"9d12ded889f656656267cbf7a91d71267201f736","message":"help description change","stats":{"files_changed":1,"insertions":1,"deletions":1,"files":["jc/cli.py"],"file_stats":[{"name":"jc/cli.py","lines_changed":2}]}},{"commit":"5312701515ecb3a10598bb9dcf2f73b7eae71b93","message":"add - make all external python requirements optional","stats":{"files_changed":1,"insertions":1,"deletions":0,"files":["CHANGELOG"],"file_stats":[{"name":"CHANGELOG","lines_changed":1}]}},{"commit":"808c7bc0a94ecfd160ee2b257e5feec347829a5e","message":"make xmltodict library optional","stats":{"files_changed":1,"insertions":8,"deletions":2,"files":["jc/parsers/xml.py"],"file_stats":[{"name":"jc/parsers/xml.py","lines_changed":10}]}},{"commit":"4d394015f458f284d052ce2c1a0c8492916c5b3e","message":"make ruamel.yaml library optional","stats":{"files_changed":1,"insertions":8,"deletions":2,"files":["jc/parsers/yaml.py"],"file_stats":[{"name":"jc/parsers/yaml.py","lines_changed":10}]}},{"commit":"3638298af8ebc01d54aa3ab5668d0adedca957e5","message":"make pygments library optional","stats":{"files_changed":1,"insertions":53,"deletions":44,"files":["jc/cli.py"],"file_stats":[{"name":"jc/cli.py","lines_changed":97}]}},{"commit":"5f00973e400629bd68c0ab60ed9005410278f855","message":"remove parenthesis to normalize text for naive timezone detection","stats":{"files_changed":1,"insertions":1,"deletions":1,"files":["jc/parsers/date.py"],"file_stats":[{"name":"jc/parsers/date.py","lines_changed":2}]}},{"commit":"0f6e2c14fcb69f664c29083ec5207326f842dfdc","message":"simplify timestamp failure logic","stats":{"files_changed":1,"insertions":4,"deletions":5,"files":["jc/parsers/upower.py"],"file_stats":[{"name":"jc/parsers/upower.py","lines_changed":9}]}},{"commit":"51813da61994226ba40478825d47f80c23413349","message":"add offset timezones. fix timestamp logic on conversion failure","stats":{"files_changed":1,"insertions":9,"deletions":4,"files":["jc/parsers/date.py"],"file_stats":[{"name":"jc/parsers/date.py","lines_changed":13}]}},{"commit":"e7751322ea195cac7f1921ba8e0364c442065d20","message":"formatting","stats":{"files_changed":1,"insertions":6,"deletions":4,"files":["jc/parsers/iw_scan.py"],"file_stats":[{"name":"jc/parsers/iw_scan.py","lines_changed":10}]}},{"commit":"26ef29843784ade3d55410be13300dd6f4c06890","message":"change return to always include the entire object but all keys may be None if conversion fails","stats":{"files_changed":1,"insertions":10,"deletions":6,"files":["jc/utils.py"],"file_stats":[{"name":"jc/utils.py","lines_changed":16}]}},{"commit":"badaf8ce73d7deb0ec2be244e27b4bf8cddbea19","message":"comment formatting","stats":{"files_changed":1,"insertions":14,"deletions":14,"files":["jc/utils.py"],"file_stats":[{"name":"jc/utils.py","lines_changed":28}]}},{"commit":"b123a622039f3cc32643a3bfc0766154d660f8bc","message":"move locale change formats to the end of the list","stats":{"files_changed":1,"insertions":5,"deletions":4,"files":["jc/utils.py"],"file_stats":[{"name":"jc/utils.py","lines_changed":9}]}},{"commit":"cfd77e42522aa2ebeada9f45ac99bd1d3414f782","message":"reset locale to None on exception","stats":{"files_changed":1,"insertions":1,"deletions":0,"files":["jc/utils.py"],"file_stats":[{"name":"jc/utils.py","lines_changed":1}]}},{"commit":"38f814072eac5370059f1b4203316eee41cf535b","message":"better normalization of datetime string. better UTC detection. More formats supported with detected locale.","stats":{"files_changed":1,"insertions":26,"deletions":8,"files":["jc/utils.py"],"file_stats":[{"name":"jc/utils.py","lines_changed":34}]}},{"commit":"a0db7754e384a0c95f2099bf894f3a22bd33c002","message":"add nixos install info","stats":{"files_changed":1,"insertions":1,"deletions":1,"files":["README.md"],"file_stats":[{"name":"README.md","lines_changed":2}]}},{"commit":"f07620afc7dc0d0d605eb483ef36c5979b33cdfd","message":"move version to jc.__init__.py add -h option for help instead of always showing on error use jc.utils.error_message for the following errors: missing/incorrect arguments, parser not found, missing piped data","stats":{"files_changed":3,"insertions":18,"deletions":7,"files":["README.md","jc/__init__.py","jc/cli.py"],"file_stats":[{"name":"README.md","lines_changed":1},{"name":"jc/__init__.py","lines_changed":3},{"name":"jc/cli.py","lines_changed":21}]}},{"commit":"c1b0d27752726989c6051f683a1194941bee598c","message":"remove old commented commands","stats":{"files_changed":1,"insertions":0,"deletions":10,"files":["runtests.sh"],"file_stats":[{"name":"runtests.sh","lines_changed":10}]}},{"commit":"430a5108aa265d4df0e4584eade54759da864c61","message":"move all tests to github actions","stats":{"files_changed":3,"insertions":19,"deletions":60,"files":["runtests.sh","tests/test_last.py","tests/test_last2.py"],"file_stats":[{"name":"runtests.sh","lines_changed":16},{"name":"tests/test_last.py","lines_changed":23},{"name":"tests/test_last2.py","lines_changed":40}]}},{"commit":"111ce92fc9c33b82c7d1a1664dda046ea5993f6a","message":"attempt all tests in github actions with timezone correction","stats":{"files_changed":4,"insertions":0,"deletions":1,"files":["tests/{localtest_date.py => test_date.py}","tests/{localtest_last.py => test_last2.py}","tests/{localtest_upower.py => test_upower.py}","tests/test_utils.py"],"file_stats":[{"name":"tests/{localtest_date.py => test_date.py}","lines_changed":0},{"name":"tests/{localtest_last.py => test_last2.py}","lines_changed":0},{"name":"tests/{localtest_upower.py => test_upower.py}","lines_changed":0},{"name":"tests/test_utils.py","lines_changed":1}]}},{"commit":"c851e8a58d98b2a4907cf1e7cf7c7d8d8dc04dc6","message":"force github action","stats":{"files_changed":1,"insertions":1,"deletions":0,"files":["tests/test_utils.py"],"file_stats":[{"name":"tests/test_utils.py","lines_changed":1}]}},{"commit":"39f4bcd9b41450068903ea2843508586eccdf709","message":"Change Windows timezone","stats":{"files_changed":1,"insertions":1,"deletions":1,"files":[".github/workflows/pythonapp.yml"],"file_stats":[{"name":".github/workflows/pythonapp.yml","lines_changed":2}]}},{"commit":"4a610c4c81493788b8351e8c74aabe819c981c02","message":"force github action","stats":{"files_changed":1,"insertions":0,"deletions":1,"files":["tests/test_utils.py"],"file_stats":[{"name":"tests/test_utils.py","lines_changed":1}]}},{"commit":"89ee11945d4e2db107a33ef0d61e0c6015ac8ad7","message":"Change timezone provider","stats":{"files_changed":1,"insertions":1,"deletions":1,"files":[".github/workflows/pythonapp.yml"],"file_stats":[{"name":".github/workflows/pythonapp.yml","lines_changed":2}]}},{"commit":"dadb09b74a69d1852f8433e0e32ccdd67bd91181","message":"force github action","stats":{"files_changed":1,"insertions":1,"deletions":0,"files":["tests/test_utils.py"],"file_stats":[{"name":"tests/test_utils.py","lines_changed":1}]}},{"commit":"1b1f638b97dc5e6f2767183eb363b79ae3c9b3c7","message":"Change timezone change provider","stats":{"files_changed":1,"insertions":5,"deletions":3,"files":[".github/workflows/pythonapp.yml"],"file_stats":[{"name":".github/workflows/pythonapp.yml","lines_changed":8}]}},{"commit":"794fc4ed44d1565514303090403d68ba5d639cb3","message":"add parse_datetime_to_timestamp() tests","stats":{"files_changed":2,"insertions":36,"deletions":8,"files":["jc/utils.py","tests/test_utils.py"],"file_stats":[{"name":"jc/utils.py","lines_changed":16},{"name":"tests/test_utils.py","lines_changed":28}]}},{"commit":"72f735bf9211d7beddcf58819fe465722f5d7c5a","message":"Set Timezone to America/Los_Angeles","stats":{"files_changed":1,"insertions":4,"deletions":0,"files":[".github/workflows/pythonapp.yml"],"file_stats":[{"name":".github/workflows/pythonapp.yml","lines_changed":4}]}},{"commit":"912877f25ad562ed4cafe7b2d7446bd48b477ea2","message":"additional timezone info","stats":{"files_changed":1,"insertions":1,"deletions":1,"files":["README.md"],"file_stats":[{"name":"README.md","lines_changed":2}]}},{"commit":"2772c5ae436ea437d833003372d53a3d3f955ea0","message":"formatting","stats":{"files_changed":1,"insertions":2,"deletions":1,"files":["README.md"],"file_stats":[{"name":"README.md","lines_changed":3}]}},{"commit":"a7ad24d2cb61d84cf2846f8fa43af31f0597043e","message":"Add dir parser","stats":{"files_changed":13,"insertions":772,"deletions":0,"files":["docgen.sh","docs/parsers/dir.md","jc/cli.py","jc/parsers/dir.py","tests/fixtures/windows-10/dir-C.json","tests/fixtures/windows-10/dir-C.out","tests/fixtures/windows-10/dir-ODTC.json","tests/fixtures/windows-10/dir-ODTC.out","tests/fixtures/windows-10/dir-Q.json","tests/fixtures/windows-10/dir-Q.out","tests/fixtures/windows-10/dir.json","tests/fixtures/windows-10/dir.out","tests/test_dir.py"],"file_stats":[{"name":"docgen.sh","lines_changed":1},{"name":"docs/parsers/dir.md","lines_changed":286},{"name":"jc/cli.py","lines_changed":1},{"name":"jc/parsers/dir.py","lines_changed":332},{"name":"tests/fixtures/windows-10/dir-C.json","lines_changed":1},{"name":"tests/fixtures/windows-10/dir-C.out","lines_changed":21},{"name":"tests/fixtures/windows-10/dir-ODTC.json","lines_changed":1},{"name":"tests/fixtures/windows-10/dir-ODTC.out","lines_changed":21},{"name":"tests/fixtures/windows-10/dir-Q.json","lines_changed":1},{"name":"tests/fixtures/windows-10/dir-Q.out","lines_changed":21},{"name":"tests/fixtures/windows-10/dir.json","lines_changed":1},{"name":"tests/fixtures/windows-10/dir.out","lines_changed":21},{"name":"tests/test_dir.py","lines_changed":64}]}},{"commit":"a364a6a9faeb6aa290b790f3dec74e92b8670534","message":"add note regarding calculated timestamps","stats":{"files_changed":1,"insertions":3,"deletions":0,"files":["README.md"],"file_stats":[{"name":"README.md","lines_changed":3}]}},{"commit":"7b2dc86a8d974e7984fe2540f56a66c2b9386acd","message":"update last example with new timestamp fields","stats":{"files_changed":1,"insertions":23,"deletions":19,"files":["EXAMPLES.md"],"file_stats":[{"name":"EXAMPLES.md","lines_changed":42}]}},{"commit":"ad645636d07d0423253f19068a22b2a28251b05f","message":"update uptime docs","stats":{"files_changed":5,"insertions":86,"deletions":50,"files":["CHANGELOG","EXAMPLES.md","README.md","docs/parsers/uptime.md","jc/parsers/uptime.py"],"file_stats":[{"name":"CHANGELOG","lines_changed":9},{"name":"EXAMPLES.md","lines_changed":19},{"name":"README.md","lines_changed":19},{"name":"docs/parsers/uptime.md","lines_changed":50},{"name":"jc/parsers/uptime.py","lines_changed":39}]}},{"commit":"2f2f297b29fbe3172647a81db084b3564a441d40","message":"update uptime fixtures with new fields","stats":{"files_changed":4,"insertions":4,"deletions":4,"files":["tests/fixtures/centos-7.7/uptime.json","tests/fixtures/osx-10.11.6/uptime.json","tests/fixtures/osx-10.14.6/uptime.json","tests/fixtures/ubuntu-18.04/uptime.json"],"file_stats":[{"name":"tests/fixtures/centos-7.7/uptime.json","lines_changed":2},{"name":"tests/fixtures/osx-10.11.6/uptime.json","lines_changed":2},{"name":"tests/fixtures/osx-10.14.6/uptime.json","lines_changed":2},{"name":"tests/fixtures/ubuntu-18.04/uptime.json","lines_changed":2}]}},{"commit":"099ae3fde03f8157298f6b412bdddb8bd56da09a","message":"fix issue when there is no data","stats":{"files_changed":1,"insertions":26,"deletions":22,"files":["jc/parsers/uptime.py"],"file_stats":[{"name":"jc/parsers/uptime.py","lines_changed":48}]}},{"commit":"e9febe98ac5ec0e03791c5b6794446a2c3312fb1","message":"add localtest partition lines for readability","stats":{"files_changed":1,"insertions":2,"deletions":0,"files":["runtests.sh"],"file_stats":[{"name":"runtests.sh","lines_changed":2}]}},{"commit":"5fbd07cccf9fb697b996dcc3949eef5b1c09e655","message":"rewrite of uptime parser including new fields","stats":{"files_changed":1,"insertions":59,"deletions":26,"files":["jc/parsers/uptime.py"],"file_stats":[{"name":"jc/parsers/uptime.py","lines_changed":85}]}},{"commit":"5fed4698c2c1f1b7e05c5b4c51639f818e049b53","message":"update docs and version number","stats":{"files_changed":2,"insertions":5,"deletions":6,"files":["docs/parsers/last.md","jc/parsers/last.py"],"file_stats":[{"name":"docs/parsers/last.md","lines_changed":4},{"name":"jc/parsers/last.py","lines_changed":7}]}},{"commit":"ed7eb0983a4dfcc1d66a2957be3e10b2203d909e","message":"use parse_datetime_to_timestamp function instead of custom format string","stats":{"files_changed":1,"insertions":4,"deletions":4,"files":["jc/parsers/last.py"],"file_stats":[{"name":"jc/parsers/last.py","lines_changed":8}]}},{"commit":"90c7e18e5fc5ea9fcf6157cc2656f47193d78411","message":"update date example","stats":{"files_changed":1,"insertions":16,"deletions":11,"files":["EXAMPLES.md"],"file_stats":[{"name":"EXAMPLES.md","lines_changed":27}]}},{"commit":"953ab5c3bd0c8b6eef29b717edaf1aa2380c2b93","message":"make upower tests local only","stats":{"files_changed":2,"insertions":1,"deletions":0,"files":["runtests.sh","tests/{test_upower.py => localtest_upower.py}"],"file_stats":[{"name":"runtests.sh","lines_changed":1},{"name":"tests/{test_upower.py => localtest_upower.py}","lines_changed":0}]}},{"commit":"699c97d8a07f7575454746159ac4d19981cd1a5c","message":"add last parser info","stats":{"files_changed":1,"insertions":1,"deletions":0,"files":["CHANGELOG"],"file_stats":[{"name":"CHANGELOG","lines_changed":1}]}},{"commit":"e4ca0de92a689ce93b91d86106a5da590226855a","message":"add upower tests","stats":{"files_changed":8,"insertions":100,"deletions":0,"files":["tests/fixtures/generic/upower-i-c-locale.json","tests/fixtures/generic/upower-i-non-utc.json","tests/fixtures/generic/upower-i-utc.json",".../{upower-i-utc.out2 => upower-i-utc.out}","tests/fixtures/ubuntu-18.04/upower-d-clocale.json","tests/fixtures/ubuntu-18.04/upower-d.json","tests/fixtures/ubuntu-18.04/upower-i.json","tests/test_upower.py"],"file_stats":[{"name":"tests/fixtures/generic/upower-i-c-locale.json","lines_changed":1},{"name":"tests/fixtures/generic/upower-i-non-utc.json","lines_changed":1},{"name":"tests/fixtures/generic/upower-i-utc.json","lines_changed":1},{"name":".../{upower-i-utc.out2 => upower-i-utc.out}","lines_changed":0},{"name":"tests/fixtures/ubuntu-18.04/upower-d-clocale.json","lines_changed":1},{"name":"tests/fixtures/ubuntu-18.04/upower-d.json","lines_changed":1},{"name":"tests/fixtures/ubuntu-18.04/upower-i.json","lines_changed":1},{"name":"tests/test_upower.py","lines_changed":94}]}},{"commit":"04745a36b84cc79e56bde2a0e92a4ee9ab4a1538","message":"doc update","stats":{"files_changed":2,"insertions":8,"deletions":5,"files":["CHANGELOG","jc/utils.py"],"file_stats":[{"name":"CHANGELOG","lines_changed":12},{"name":"jc/utils.py","lines_changed":1}]}},{"commit":"5936940532b8b753e67c9f5cd9287f34cc84ae9f","message":"rewrite of date parser using datetime library","stats":{"files_changed":7,"insertions":136,"deletions":186,"files":["docs/parsers/date.md","jc/parsers/date.py","tests/fixtures/generic/date-after-midnight.json","tests/fixtures/generic/date-before-midnight.json","tests/fixtures/generic/date.json","tests/fixtures/ubuntu-20.04/date.json","tests/fixtures/ubuntu-20.04/date2.json"],"file_stats":[{"name":"docs/parsers/date.md","lines_changed":74},{"name":"jc/parsers/date.py","lines_changed":238},{"name":"tests/fixtures/generic/date-after-midnight.json","lines_changed":2},{"name":"tests/fixtures/generic/date-before-midnight.json","lines_changed":2},{"name":"tests/fixtures/generic/date.json","lines_changed":2},{"name":"tests/fixtures/ubuntu-20.04/date.json","lines_changed":2},{"name":"tests/fixtures/ubuntu-20.04/date2.json","lines_changed":2}]}},{"commit":"b3eb064b6753d6e894884e1c16054630c2396fe1","message":"clarify format definition comments","stats":{"files_changed":1,"insertions":2,"deletions":2,"files":["jc/utils.py"],"file_stats":[{"name":"jc/utils.py","lines_changed":4}]}},{"commit":"e4b41057e302074ac2a81ad8c36b6f95cd6b7db2","message":"update upower fixture names","stats":{"files_changed":3,"insertions":24,"deletions":0,"files":[".../{upower-i.out => upower-i-c-locale.out}","tests/fixtures/generic/upower-i-non-utc.out",".../generic/{upower-i2.out => upower-i-utc.out2}"],"file_stats":[{"name":".../{upower-i.out => upower-i-c-locale.out}","lines_changed":0},{"name":"tests/fixtures/generic/upower-i-non-utc.out","lines_changed":24},{"name":".../generic/{upower-i2.out => upower-i-utc.out2}","lines_changed":0}]}},{"commit":"1d41c46cc762ab0c78b819e56db7df39f1111d5d","message":"normalize datetime string to remove all timezones except UTC","stats":{"files_changed":1,"insertions":34,"deletions":5,"files":["jc/utils.py"],"file_stats":[{"name":"jc/utils.py","lines_changed":39}]}},{"commit":"a5c444587b3f0874fcc2833dc4e759c2dc1c7834","message":"add before and after midnight date tests","stats":{"files_changed":5,"insertions":28,"deletions":0,"files":["tests/fixtures/generic/date-after-midnight.json","tests/fixtures/generic/date-after-midnight.out","tests/fixtures/generic/date-before-midnight.json","tests/fixtures/generic/date-before-midnight.out","tests/localtest_date.py"],"file_stats":[{"name":"tests/fixtures/generic/date-after-midnight.json","lines_changed":1},{"name":"tests/fixtures/generic/date-after-midnight.out","lines_changed":1},{"name":"tests/fixtures/generic/date-before-midnight.json","lines_changed":1},{"name":"tests/fixtures/generic/date-before-midnight.out","lines_changed":1},{"name":"tests/localtest_date.py","lines_changed":24}]}},{"commit":"a56f471be980be16e73d3a91e2b12aad26c6d38c","message":"update fixture to use UTC for better testing","stats":{"files_changed":1,"insertions":1,"deletions":1,"files":["tests/fixtures/generic/upower-i2.out"],"file_stats":[{"name":"tests/fixtures/generic/upower-i2.out","lines_changed":2}]}},{"commit":"6a6b26ed8d97014c2a5c7d91a4cd9b23f49530fb","message":"fix 12 to 24 hour conversion for midnight cases","stats":{"files_changed":1,"insertions":5,"deletions":0,"files":["jc/parsers/date.py"],"file_stats":[{"name":"jc/parsers/date.py","lines_changed":5}]}},{"commit":"f62446c152d89f2d37b22ffe9d9de5b5c9fa7049","message":"rename variables. add another european time format","stats":{"files_changed":1,"insertions":11,"deletions":10,"files":["jc/utils.py"],"file_stats":[{"name":"jc/utils.py","lines_changed":21}]}},{"commit":"56011f1f172344cab2a8e869e7a6df6e45c45874","message":"updated upower examples","stats":{"files_changed":3,"insertions":73,"deletions":6,"files":["EXAMPLES.md","docs/parsers/upower.md","jc/parsers/upower.py"],"file_stats":[{"name":"EXAMPLES.md","lines_changed":63},{"name":"docs/parsers/upower.md","lines_changed":8},{"name":"jc/parsers/upower.py","lines_changed":8}]}},{"commit":"6d44091c80318fde6c09cd850e6dc5afde7fe799","message":"refactor parse_datetime_to_timestamp()","stats":{"files_changed":1,"insertions":13,"deletions":53,"files":["jc/utils.py"],"file_stats":[{"name":"jc/utils.py","lines_changed":66}]}},{"commit":"440c458eb42925dffe2d7b026279468fa2fa1bb7","message":"no need for ternary clause","stats":{"files_changed":1,"insertions":1,"deletions":1,"files":["jc/utils.py"],"file_stats":[{"name":"jc/utils.py","lines_changed":2}]}},{"commit":"798250af6116441385339806c8f26bc9720ad302","message":"use jc.utils.parse_datetime_to_timestamp() function for timestamp creation","stats":{"files_changed":2,"insertions":18,"deletions":24,"files":["docs/parsers/upower.md","jc/parsers/upower.py"],"file_stats":[{"name":"docs/parsers/upower.md","lines_changed":7},{"name":"jc/parsers/upower.py","lines_changed":35}]}},{"commit":"c762de29c6491790908451aa20f6aa12fdfa9722","message":"doc updates","stats":{"files_changed":2,"insertions":32,"deletions":2,"files":["docs/utils.md","jc/utils.py"],"file_stats":[{"name":"docs/utils.md","lines_changed":30},{"name":"jc/utils.py","lines_changed":4}]}},{"commit":"0701e65e97165efd40ab2ae5087897de3588ea32","message":"add parse_datetime_to_timestamp() function","stats":{"files_changed":1,"insertions":106,"deletions":0,"files":["jc/utils.py"],"file_stats":[{"name":"jc/utils.py","lines_changed":106}]}},{"commit":"209d54e8b5be6476d896cee1a5274bd2b46219e2","message":"add hour_24 to schema docs","stats":{"files_changed":2,"insertions":6,"deletions":4,"files":["docs/parsers/date.md","jc/parsers/date.py"],"file_stats":[{"name":"docs/parsers/date.md","lines_changed":5},{"name":"jc/parsers/date.py","lines_changed":5}]}},{"commit":"2b38462de7d2fa61dd5d2a184e853279f1a9c84b","message":"update examples","stats":{"files_changed":3,"insertions":33,"deletions":27,"files":["EXAMPLES.md","docs/parsers/date.md","jc/parsers/date.py"],"file_stats":[{"name":"EXAMPLES.md","lines_changed":20},{"name":"docs/parsers/date.md","lines_changed":20},{"name":"jc/parsers/date.py","lines_changed":20}]}},{"commit":"1e8e5533162cb01053ee25e9dbc709a429e58070","message":"add hour_24 field","stats":{"files_changed":6,"insertions":31,"deletions":14,"files":["CHANGELOG","jc/parsers/date.py","tests/fixtures/generic/date.json","tests/fixtures/ubuntu-20.04/date.json","tests/fixtures/ubuntu-20.04/date2.json","tests/localtest_date.py"],"file_stats":[{"name":"CHANGELOG","lines_changed":3},{"name":"jc/parsers/date.py","lines_changed":21},{"name":"tests/fixtures/generic/date.json","lines_changed":2},{"name":"tests/fixtures/ubuntu-20.04/date.json","lines_changed":2},{"name":"tests/fixtures/ubuntu-20.04/date2.json","lines_changed":1},{"name":"tests/localtest_date.py","lines_changed":16}]}},{"commit":"ab42e6bb15026d6c46e15197c62bc3e8ef95c80d","message":"formatting","stats":{"files_changed":2,"insertions":2,"deletions":0,"files":["docs/parsers/date.md","jc/parsers/date.py"],"file_stats":[{"name":"docs/parsers/date.md","lines_changed":1},{"name":"jc/parsers/date.py","lines_changed":1}]}},{"commit":"680288454090f3c48c7f0580cdcb919c0b5a883e","message":"ensure period is always uppercase in dict value. update period documentation","stats":{"files_changed":2,"insertions":3,"deletions":3,"files":["docs/parsers/date.md","jc/parsers/date.py"],"file_stats":[{"name":"docs/parsers/date.md","lines_changed":2},{"name":"jc/parsers/date.py","lines_changed":4}]}},{"commit":"7cb8577b9655f258f2910e7e7bcf3266d4cbece0","message":"correct epoch_utc calculation. Fix for 12 hour vs. 24 hour representation","stats":{"files_changed":3,"insertions":70,"deletions":48,"files":["docs/parsers/date.md","jc/parsers/date.py","tests/fixtures/ubuntu-20.04/date2.out"],"file_stats":[{"name":"docs/parsers/date.md","lines_changed":36},{"name":"jc/parsers/date.py","lines_changed":81},{"name":"tests/fixtures/ubuntu-20.04/date2.out","lines_changed":1}]}},{"commit":"55810ccd1f17ef6a4b1cb72fc21f6cf990ef8bb3","message":"set epoch_dt conversion again if not C locale","stats":{"files_changed":1,"insertions":1,"deletions":0,"files":["jc/parsers/upower.py"],"file_stats":[{"name":"jc/parsers/upower.py","lines_changed":1}]}},{"commit":"f9921720cd0b9b0d76d66e6eb5bfe43481f5f52b","message":"revert to local testing for naive datetime objects","stats":{"files_changed":3,"insertions":4,"deletions":94,"files":["runtests.sh","tests/test_date.py","tests/test_last2.py"],"file_stats":[{"name":"runtests.sh","lines_changed":8},{"name":"tests/test_date.py","lines_changed":48},{"name":"tests/test_last2.py","lines_changed":42}]}},{"commit":"cda1ebd271aa8fd1b716054a2149f876d8087230","message":"try tzset()","stats":{"files_changed":2,"insertions":4,"deletions":0,"files":["tests/test_date.py","tests/test_last2.py"],"file_stats":[{"name":"tests/test_date.py","lines_changed":2},{"name":"tests/test_last2.py","lines_changed":2}]}},{"commit":"6901e4a23aad0b58cbbfac86c61917115d115dfe","message":"try setting timezone env variable before tests to ensure it is the same on all test systems","stats":{"files_changed":3,"insertions":89,"deletions":3,"files":["runtests.sh","tests/test_date.py","tests/test_last2.py"],"file_stats":[{"name":"runtests.sh","lines_changed":6},{"name":"tests/test_date.py","lines_changed":46},{"name":"tests/test_last2.py","lines_changed":40}]}},{"commit":"6bc21d3c735edc7897e49afd2a5ea9e3aa56d7fb","message":"fix date parser tests - local tests only since timezones may not match on github actions VMs","stats":{"files_changed":3,"insertions":1,"deletions":1,"files":["runtests.sh","tests/{test_date.py => localtest_date.py}","tests/localtest_last.py"],"file_stats":[{"name":"runtests.sh","lines_changed":1},{"name":"tests/{test_date.py => localtest_date.py}","lines_changed":0},{"name":"tests/localtest_last.py","lines_changed":1}]}},{"commit":"1ef231e26a2898d2a01f341fb92014df92703f72","message":"add date parser updates","stats":{"files_changed":1,"insertions":2,"deletions":0,"files":["CHANGELOG"],"file_stats":[{"name":"CHANGELOG","lines_changed":2}]}},{"commit":"3cd43f0f985a3b8a4e74bf5632bd8dac92d751c4","message":"formatting","stats":{"files_changed":2,"insertions":2,"deletions":2,"files":["docs/parsers/upower.md","jc/parsers/upower.py"],"file_stats":[{"name":"docs/parsers/upower.md","lines_changed":2},{"name":"jc/parsers/upower.py","lines_changed":2}]}},{"commit":"156501996688e62dd61a8456206218582a6cbe1b","message":"fix weekday numbering to be ISO 8601 compliant. Add naive calculated epoch timestamp field","stats":{"files_changed":5,"insertions":85,"deletions":63,"files":["EXAMPLES.md","docs/parsers/date.md","jc/parsers/date.py","tests/fixtures/generic/date.json","tests/fixtures/ubuntu-20.04/date.json"],"file_stats":[{"name":"EXAMPLES.md","lines_changed":21},{"name":"docs/parsers/date.md","lines_changed":41},{"name":"jc/parsers/date.py","lines_changed":82},{"name":"tests/fixtures/generic/date.json","lines_changed":2},{"name":"tests/fixtures/ubuntu-20.04/date.json","lines_changed":2}]}},{"commit":"0a4de2d3a1c235d1ac2d6e59346e77761fe51885","message":"add naive datetime calculation info to docs","stats":{"files_changed":2,"insertions":5,"deletions":2,"files":["docs/parsers/last.md","docs/parsers/upower.md"],"file_stats":[{"name":"docs/parsers/last.md","lines_changed":2},{"name":"docs/parsers/upower.md","lines_changed":5}]}},{"commit":"a058f6c174e31f5e6040883bb544b83abd88c749","message":"added naive epoch calculation info to docs","stats":{"files_changed":1,"insertions":2,"deletions":0,"files":["jc/parsers/last.py"],"file_stats":[{"name":"jc/parsers/last.py","lines_changed":2}]}},{"commit":"d8e5d03b01a87704424f5259cf6bd977274fd6ee","message":"naive updated_epoch timestamp calculation added","stats":{"files_changed":1,"insertions":20,"deletions":33,"files":["jc/parsers/upower.py"],"file_stats":[{"name":"jc/parsers/upower.py","lines_changed":53}]}},{"commit":"9dc62eff2eaaafec89c5b8797d8ca8e4c77a07d4","message":"remove epoch conversions","stats":{"files_changed":1,"insertions":34,"deletions":21,"files":["jc/parsers/upower.py"],"file_stats":[{"name":"jc/parsers/upower.py","lines_changed":55}]}},{"commit":"d4fea17c57a97d6914624b06208b9439bf2eb05f","message":"use UTC when calculating epoch timestamp. reset time locale to default after changing","stats":{"files_changed":3,"insertions":13,"deletions":6,"files":["docgen.sh","docs/parsers/upower.md","jc/parsers/upower.py"],"file_stats":[{"name":"docgen.sh","lines_changed":2},{"name":"docs/parsers/upower.md","lines_changed":2},{"name":"jc/parsers/upower.py","lines_changed":15}]}},{"commit":"3dd7a5b77ea708047bc12be9f2caddd9078723f1","message":"add upower docs","stats":{"files_changed":2,"insertions":230,"deletions":0,"files":["docgen.sh","docs/parsers/upower.md"],"file_stats":[{"name":"docgen.sh","lines_changed":1},{"name":"docs/parsers/upower.md","lines_changed":229}]}},{"commit":"d77c90a3ba2036b216f4a612876ace988eafd217","message":"fix quoted values in detail level. Add examples","stats":{"files_changed":1,"insertions":114,"deletions":6,"files":["jc/parsers/upower.py"],"file_stats":[{"name":"jc/parsers/upower.py","lines_changed":120}]}},{"commit":"01f0c20df09fd4aa12bd108928b97376b51ef31a","message":"add sample using C locale timestamp","stats":{"files_changed":1,"insertions":27,"deletions":0,"files":["tests/fixtures/ubuntu-18.04/upower-d-clocale.out"],"file_stats":[{"name":"tests/fixtures/ubuntu-18.04/upower-d-clocale.out","lines_changed":27}]}},{"commit":"aafbe576b3b754de91591d9ec2dae9e9f827dee4","message":"working parser and processor","stats":{"files_changed":1,"insertions":137,"deletions":36,"files":["jc/parsers/upower.py"],"file_stats":[{"name":"jc/parsers/upower.py","lines_changed":173}]}},{"commit":"bd68ad40345fb1f69be0e0f87dc67134f826cd06","message":"don't modify detail_type value since it is no longer a key","stats":{"files_changed":1,"insertions":2,"deletions":2,"files":["jc/parsers/upower.py"],"file_stats":[{"name":"jc/parsers/upower.py","lines_changed":4}]}},{"commit":"bfee017c138bb30ec6af836685013b7124028974","message":"made the schema more explicit by hardcoding more items. still working on the schema","stats":{"files_changed":1,"insertions":61,"deletions":20,"files":["jc/parsers/upower.py"],"file_stats":[{"name":"jc/parsers/upower.py","lines_changed":81}]}},{"commit":"61f532cfd0b7fbf14a58a0fd638bcbfb03fbde72","message":"working history list","stats":{"files_changed":1,"insertions":11,"deletions":1,"files":["jc/parsers/upower.py"],"file_stats":[{"name":"jc/parsers/upower.py","lines_changed":12}]}},{"commit":"58dbbb75b607d0b29be185c3b8c3f0d8af21ecad","message":"simplified logic","stats":{"files_changed":1,"insertions":9,"deletions":21,"files":["jc/parsers/upower.py"],"file_stats":[{"name":"jc/parsers/upower.py","lines_changed":30}]}},{"commit":"8d88b91fcf5060d7d54f687efec3e3a606bab767","message":"move if statements and generalize the history detail detection","stats":{"files_changed":1,"insertions":8,"deletions":9,"files":["jc/parsers/upower.py"],"file_stats":[{"name":"jc/parsers/upower.py","lines_changed":17}]}},{"commit":"ad39fc60299089f56f37baac71820e50cbe87ed3","message":"working upower parser. history lines are ignored","stats":{"files_changed":6,"insertions":268,"deletions":0,"files":["jc/cli.py","jc/parsers/upower.py","tests/fixtures/generic/upower-i.out","tests/fixtures/generic/upower-i2.out","tests/fixtures/ubuntu-18.04/upower-d.out","tests/fixtures/ubuntu-18.04/upower-i.out"],"file_stats":[{"name":"jc/cli.py","lines_changed":1},{"name":"jc/parsers/upower.py","lines_changed":173},{"name":"tests/fixtures/generic/upower-i.out","lines_changed":32},{"name":"tests/fixtures/generic/upower-i2.out","lines_changed":24},{"name":"tests/fixtures/ubuntu-18.04/upower-d.out","lines_changed":27},{"name":"tests/fixtures/ubuntu-18.04/upower-i.out","lines_changed":11}]}},{"commit":"89f1fd96e6b7aa0acf6272e4f3469005d4f7c6bf","message":"add acpi tests","stats":{"files_changed":6,"insertions":87,"deletions":0,"files":["tests/fixtures/generic/acpi-V.json","tests/fixtures/generic/acpi-V2.json","tests/fixtures/generic/acpi-V3.json","tests/fixtures/generic/acpi-V4.json","tests/fixtures/ubuntu-18.04/acpi-V.json","tests/test_acpi.py"],"file_stats":[{"name":"tests/fixtures/generic/acpi-V.json","lines_changed":1},{"name":"tests/fixtures/generic/acpi-V2.json","lines_changed":1},{"name":"tests/fixtures/generic/acpi-V3.json","lines_changed":1},{"name":"tests/fixtures/generic/acpi-V4.json","lines_changed":1},{"name":"tests/fixtures/ubuntu-18.04/acpi-V.json","lines_changed":1},{"name":"tests/test_acpi.py","lines_changed":82}]}},{"commit":"bd425f2493b68949c1fa02cd1d3289ec882d9b0d","message":"version bump to v1.15.0. Add acpi docs","stats":{"files_changed":6,"insertions":321,"deletions":2,"files":["CHANGELOG","EXAMPLES.md","docgen.sh","docs/parsers/acpi.md","jc/cli.py","setup.py"],"file_stats":[{"name":"CHANGELOG","lines_changed":4},{"name":"EXAMPLES.md","lines_changed":58},{"name":"docgen.sh","lines_changed":1},{"name":"docs/parsers/acpi.md","lines_changed":256},{"name":"jc/cli.py","lines_changed":2},{"name":"setup.py","lines_changed":2}]}},{"commit":"46962ff02a0630766a927babc92e11ec91b1f789","message":"remove redundant lines","stats":{"files_changed":1,"insertions":1,"deletions":11,"files":["jc/parsers/acpi.py"],"file_stats":[{"name":"jc/parsers/acpi.py","lines_changed":12}]}},{"commit":"e4cb88b05166815e8ad03b646bd3f2b1da7f0d4b","message":"remove unneeded line-state assignment","stats":{"files_changed":1,"insertions":0,"deletions":1,"files":["jc/parsers/acpi.py"],"file_stats":[{"name":"jc/parsers/acpi.py","lines_changed":1}]}},{"commit":"32840703dc1d88412712b08db1c9bdaebbc34450","message":"remove redundant code","stats":{"files_changed":1,"insertions":8,"deletions":39,"files":["jc/parsers/acpi.py"],"file_stats":[{"name":"jc/parsers/acpi.py","lines_changed":47}]}},{"commit":"1f7aafd0415a79e0547cc6f1c008c1918f8fb460","message":"fix for full charge batter case. Clean up battery object logic","stats":{"files_changed":3,"insertions":19,"deletions":9,"files":["jc/parsers/acpi.py","tests/fixtures/generic/acpi-V.out","tests/fixtures/generic/acpi-V4.out"],"file_stats":[{"name":"jc/parsers/acpi.py","lines_changed":15},{"name":"tests/fixtures/generic/acpi-V.out","lines_changed":1},{"name":"tests/fixtures/generic/acpi-V4.out","lines_changed":12}]}},{"commit":"7378d5dce43f75440cb57903e8ae0c1c615b0782","message":"remove comment","stats":{"files_changed":1,"insertions":0,"deletions":1,"files":["jc/parsers/acpi.py"],"file_stats":[{"name":"jc/parsers/acpi.py","lines_changed":1}]}},{"commit":"84f76866cdf76f67b34de999fd987de8a02f0306","message":"working process function","stats":{"files_changed":1,"insertions":197,"deletions":3,"files":["jc/parsers/acpi.py"],"file_stats":[{"name":"jc/parsers/acpi.py","lines_changed":200}]}},{"commit":"322da9ea6a1ceea1152d720797adb8f3a7dc1199","message":"working parser","stats":{"files_changed":2,"insertions":59,"deletions":12,"files":["jc/parsers/acpi.py","tests/fixtures/generic/acpi-V.out"],"file_stats":[{"name":"jc/parsers/acpi.py","lines_changed":67},{"name":"tests/fixtures/generic/acpi-V.out","lines_changed":4}]}},{"commit":"58645301ec111bfeb2a618f5f169cc734042dc5f","message":"add acpi command parser","stats":{"files_changed":6,"insertions":236,"deletions":1,"files":["jc/cli.py","jc/parsers/acpi.py","tests/fixtures/generic/acpi-V.out","tests/fixtures/generic/acpi-V2.out","tests/fixtures/generic/acpi-V3.out","tests/fixtures/ubuntu-18.04/acpi-V.out"],"file_stats":[{"name":"jc/cli.py","lines_changed":3},{"name":"jc/parsers/acpi.py","lines_changed":191},{"name":"tests/fixtures/generic/acpi-V.out","lines_changed":16},{"name":"tests/fixtures/generic/acpi-V2.out","lines_changed":12},{"name":"tests/fixtures/generic/acpi-V3.out","lines_changed":13},{"name":"tests/fixtures/ubuntu-18.04/acpi-V.out","lines_changed":2}]}},{"commit":"1e18dd30a824b0463f0cad86e0da7094c47d34f9","message":"Merge pull request #102 from kellyjonbrazil/dev"},{"commit":"cc6a19adccea3e10243a166b87d852b6f95414b5","message":"fix typo in comments","stats":{"files_changed":1,"insertions":1,"deletions":1,"files":["jc/parsers/yaml.py"],"file_stats":[{"name":"jc/parsers/yaml.py","lines_changed":2}]}},{"commit":"2a5588b177a24d5b78a4b5a515aba515804b7baa","message":"packaging fix for yaml parser and pyoxidizer","stats":{"files_changed":4,"insertions":13,"deletions":3,"files":["CHANGELOG","jc/cli.py","jc/parsers/yaml.py","setup.py"],"file_stats":[{"name":"CHANGELOG","lines_changed":5},{"name":"jc/cli.py","lines_changed":2},{"name":"jc/parsers/yaml.py","lines_changed":7},{"name":"setup.py","lines_changed":2}]}},{"commit":"20f9b7f88b97ed68aba46e102b8c7b72443b9c85","message":"fix typo","stats":{"files_changed":1,"insertions":1,"deletions":1,"files":["CHANGELOG"],"file_stats":[{"name":"CHANGELOG","lines_changed":2}]}},{"commit":"d7e32313cd9776b4a6af38cc2819d6e4ef8c0d55","message":"fix typo","stats":{"files_changed":1,"insertions":1,"deletions":1,"files":["CHANGELOG"],"file_stats":[{"name":"CHANGELOG","lines_changed":2}]}},{"commit":"fb5654d3c4549e84940e2518f2d214debdd42d51","message":"formatting","stats":{"files_changed":1,"insertions":1,"deletions":1,"files":["README.md"],"file_stats":[{"name":"README.md","lines_changed":2}]}},{"commit":"258f1433b36a7ee117ac43953edb4fe964603e7b","message":"add locale info to readme","stats":{"files_changed":1,"insertions":2,"deletions":0,"files":["README.md"],"file_stats":[{"name":"README.md","lines_changed":2}]}},{"commit":"fb723ae8bd7bb51f9a4bab380ec1bc54cda0445b","message":"Merge pull request #101 from kellyjonbrazil/dev"},{"commit":"283b89e37c38a3082203e43e38569c8b0bb11e12","message":"simplify answer data logic","stats":{"files_changed":2,"insertions":5,"deletions":4,"files":["CHANGELOG","jc/parsers/dig.py"],"file_stats":[{"name":"CHANGELOG","lines_changed":3},{"name":"jc/parsers/dig.py","lines_changed":6}]}},{"commit":"f450f9eb8b7d382af316e88301e72af01a018be9","message":"add hciconfig tests","stats":{"files_changed":5,"insertions":74,"deletions":0,"files":["tests/fixtures/centos-7.7/hciconfig-a.json","tests/fixtures/centos-7.7/hciconfig.json","tests/fixtures/ubuntu-20.04/hciconfig-a.json","tests/fixtures/ubuntu-20.04/hciconfig.json","tests/test_hciconfig.py"],"file_stats":[{"name":"tests/fixtures/centos-7.7/hciconfig-a.json","lines_changed":1},{"name":"tests/fixtures/centos-7.7/hciconfig.json","lines_changed":1},{"name":"tests/fixtures/ubuntu-20.04/hciconfig-a.json","lines_changed":1},{"name":"tests/fixtures/ubuntu-20.04/hciconfig.json","lines_changed":1},{"name":"tests/test_hciconfig.py","lines_changed":70}]}},{"commit":"b3f8cf99a4874335c6b43e105e0c1562c08256dc","message":"work for both tabs and spaces","stats":{"files_changed":1,"insertions":15,"deletions":15,"files":["jc/parsers/hciconfig.py"],"file_stats":[{"name":"jc/parsers/hciconfig.py","lines_changed":30}]}},{"commit":"4301ea8caea7c14f59bcddf09668d0198e1115a8","message":"remove debug line","stats":{"files_changed":1,"insertions":0,"deletions":1,"files":["jc/parsers/hciconfig.py"],"file_stats":[{"name":"jc/parsers/hciconfig.py","lines_changed":1}]}},{"commit":"c672d1c174a42ce44544dfaec0ebcf3c30fd7acf","message":"initial working hciconfig parser","stats":{"files_changed":7,"insertions":903,"deletions":22,"files":["CHANGELOG","EXAMPLES.md","README.md","docgen.sh","docs/parsers/hciconfig.md","jc/parsers/hciconfig.py","man/jc.1"],"file_stats":[{"name":"CHANGELOG","lines_changed":3},{"name":"EXAMPLES.md","lines_changed":126},{"name":"README.md","lines_changed":1},{"name":"docgen.sh","lines_changed":1},{"name":"docs/parsers/hciconfig.md","lines_changed":358},{"name":"jc/parsers/hciconfig.py","lines_changed":414},{"name":"man/jc.1","lines_changed":22}]}},{"commit":"229e953a38471cdd41af0810577d324329840a4b","message":"initial add of hciconfig parser","stats":{"files_changed":7,"insertions":205,"deletions":2,"files":["jc/cli.py","jc/parsers/hciconfig.py","setup.py","tests/fixtures/centos-7.7/hciconfig-a.out","tests/fixtures/centos-7.7/hciconfig.out","tests/fixtures/ubuntu-20.04/hciconfig-a.out","tests/fixtures/ubuntu-20.04/hciconfig.out"],"file_stats":[{"name":"jc/cli.py","lines_changed":3},{"name":"jc/parsers/hciconfig.py","lines_changed":142},{"name":"setup.py","lines_changed":2},{"name":"tests/fixtures/centos-7.7/hciconfig-a.out","lines_changed":10},{"name":"tests/fixtures/centos-7.7/hciconfig.out","lines_changed":6},{"name":"tests/fixtures/ubuntu-20.04/hciconfig-a.out","lines_changed":27},{"name":"tests/fixtures/ubuntu-20.04/hciconfig.out","lines_changed":17}]}},{"commit":"87b506dc9b4831d11b4fd04fd6849532db074f90","message":"fix for spaces in dig answer data","stats":{"files_changed":7,"insertions":47,"deletions":4,"files":["CHANGELOG","jc/cli.py","jc/parsers/dig.py","setup.py","tests/fixtures/generic/dig-answer-spaces.json","tests/fixtures/generic/dig-answer-spaces.out","tests/test_dig.py"],"file_stats":[{"name":"CHANGELOG","lines_changed":3},{"name":"jc/cli.py","lines_changed":2},{"name":"jc/parsers/dig.py","lines_changed":8},{"name":"setup.py","lines_changed":2},{"name":"tests/fixtures/generic/dig-answer-spaces.json","lines_changed":1},{"name":"tests/fixtures/generic/dig-answer-spaces.out","lines_changed":23},{"name":"tests/test_dig.py","lines_changed":12}]}},{"commit":"15c9002d9eff0f52d873fb3ab35dfafd03a8e919","message":"simplify logic by taking out 'not' in JC_COLORS parsing","stats":{"files_changed":1,"insertions":4,"deletions":4,"files":["jc/cli.py"],"file_stats":[{"name":"jc/cli.py","lines_changed":8}]}},{"commit":"042aaa61b96fc8472a8a460c49bde4cbbc359094","message":"minor updates","stats":{"files_changed":1,"insertions":2,"deletions":2,"files":["README.md"],"file_stats":[{"name":"README.md","lines_changed":4}]}},{"commit":"ef856c6ba5774cd8ec23acd71496846e794e3872","message":"clarify -q option","stats":{"files_changed":1,"insertions":1,"deletions":1,"files":["README.md"],"file_stats":[{"name":"README.md","lines_changed":2}]}},{"commit":"9cf5be73e3f975132d1ffbef412638b941a5664f","message":"typo fix","stats":{"files_changed":2,"insertions":2,"deletions":2,"files":["docs/parsers/iw_scan.md","jc/parsers/iw_scan.py"],"file_stats":[{"name":"docs/parsers/iw_scan.md","lines_changed":2},{"name":"jc/parsers/iw_scan.py","lines_changed":2}]}},{"commit":"63fc149e2a097cbde60c2ce1aeb102d9becabd9b","message":"typo fix","stats":{"files_changed":2,"insertions":2,"deletions":2,"files":["docs/parsers/iw_scan.md","jc/parsers/iw_scan.py"],"file_stats":[{"name":"docs/parsers/iw_scan.md","lines_changed":2},{"name":"jc/parsers/iw_scan.py","lines_changed":2}]}},{"commit":"3c25839350800c7e7d2c48fc032bb21efa0ac213","message":"Merge pull request #98 from kellyjonbrazil/dev"},{"commit":"58246e33b71bae0ca4a42ad5bdf31134948b1014","message":"update compatibility info and changelog date","stats":{"files_changed":2,"insertions":3,"deletions":2,"files":["CHANGELOG","README.md"],"file_stats":[{"name":"CHANGELOG","lines_changed":2},{"name":"README.md","lines_changed":3}]}},{"commit":"8b1407c7068e2105a83992bbb026138ea67bc07c","message":"pull env-specific tests from CI/CD and run locally only","stats":{"files_changed":3,"insertions":59,"deletions":10,"files":["runtests.sh","tests/localtest_last.py","tests/test_last.py"],"file_stats":[{"name":"runtests.sh","lines_changed":6},{"name":"tests/localtest_last.py","lines_changed":41},{"name":"tests/test_last.py","lines_changed":22}]}},{"commit":"2fde4a4e2299b98a9958e3a55849c6791e4b17dc","message":"doc updates","stats":{"files_changed":3,"insertions":3,"deletions":3,"files":["EXAMPLES.md","docs/parsers/iw_scan.md","jc/parsers/iw_scan.py"],"file_stats":[{"name":"EXAMPLES.md","lines_changed":2},{"name":"docs/parsers/iw_scan.md","lines_changed":2},{"name":"jc/parsers/iw_scan.py","lines_changed":2}]}},{"commit":"60b9e9798286121399d0f8b75d63ab0f3312c9bf","message":"last parser enhancements: augment hostname with CONSOLE for GUI login, add convenience fields when -F is used: login_epoch, logout_epoch, duration_seconds, calculate duration to hours:minutes","stats":{"files_changed":12,"insertions":80,"deletions":38,"files":["docs/parsers/last.md","jc/parsers/last.py","tests/fixtures/centos-7.7/last-crash.json","tests/fixtures/centos-7.7/last-w.json","tests/fixtures/centos-7.7/last-wF.json","tests/fixtures/centos-7.7/last-wF.out","tests/fixtures/centos-7.7/last.json","tests/fixtures/fedora32/last.json","tests/fixtures/osx-10.14.6/last.json","tests/fixtures/ubuntu-18.04/last-w.json","tests/fixtures/ubuntu-18.04/last.json","tests/fixtures/ubuntu-20.04/last-F.json"],"file_stats":[{"name":"docs/parsers/last.md","lines_changed":37},{"name":"jc/parsers/last.py","lines_changed":57},{"name":"tests/fixtures/centos-7.7/last-crash.json","lines_changed":2},{"name":"tests/fixtures/centos-7.7/last-w.json","lines_changed":2},{"name":"tests/fixtures/centos-7.7/last-wF.json","lines_changed":2},{"name":"tests/fixtures/centos-7.7/last-wF.out","lines_changed":6},{"name":"tests/fixtures/centos-7.7/last.json","lines_changed":2},{"name":"tests/fixtures/fedora32/last.json","lines_changed":2},{"name":"tests/fixtures/osx-10.14.6/last.json","lines_changed":2},{"name":"tests/fixtures/ubuntu-18.04/last-w.json","lines_changed":2},{"name":"tests/fixtures/ubuntu-18.04/last.json","lines_changed":2},{"name":"tests/fixtures/ubuntu-20.04/last-F.json","lines_changed":2}]}},{"commit":"0adac79c0f2a22b31dfef1432a029af06132467b","message":"Add last parser enhancements","stats":{"files_changed":1,"insertions":1,"deletions":0,"files":["CHANGELOG"],"file_stats":[{"name":"CHANGELOG","lines_changed":1}]}},{"commit":"9f485b5981a2ce49ac699b9dad39993c5605ae18","message":"change mac_address fieldname to bssid. Add credit to Phillip","stats":{"files_changed":3,"insertions":5,"deletions":5,"files":["jc/parsers/iw_scan.py","tests/fixtures/centos-7.7/iw-scan0.json","tests/fixtures/centos-7.7/iw-scan1.json"],"file_stats":[{"name":"jc/parsers/iw_scan.py","lines_changed":6},{"name":"tests/fixtures/centos-7.7/iw-scan0.json","lines_changed":2},{"name":"tests/fixtures/centos-7.7/iw-scan1.json","lines_changed":2}]}},{"commit":"db17d21b8f9b2f899760e648f1483d33d0bcf47a","message":"Merge pull request #97 from pschmitt/iw_scan_fix_space_detection"},{"commit":"996d394e89c732f327323ca340fce405bd5fb2e4","message":"iw_scan: Improve detection of lines starting with spaces","stats":{"files_changed":1,"insertions":2,"deletions":1,"files":["jc/parsers/iw_scan.py"],"file_stats":[{"name":"jc/parsers/iw_scan.py","lines_changed":3}]}},{"commit":"5885b960f9b33a95ecec9f4a33233c2f8682fbc4","message":"doc updates","stats":{"files_changed":3,"insertions":7,"deletions":2,"files":["CHANGELOG","README.md","man/jc.1"],"file_stats":[{"name":"CHANGELOG","lines_changed":3},{"name":"README.md","lines_changed":2},{"name":"man/jc.1","lines_changed":4}]}},{"commit":"79987b35f332e287567e103f25cf91cb50e040c0","message":"formatting","stats":{"files_changed":1,"insertions":1,"deletions":1,"files":["EXAMPLES.md"],"file_stats":[{"name":"EXAMPLES.md","lines_changed":2}]}},{"commit":"661b3ef311ad26678030c70c11f2f955667311a4","message":"doc updates","stats":{"files_changed":4,"insertions":94,"deletions":2,"files":["EXAMPLES.md","README.md","docs/parsers/iw_scan.md","jc/parsers/iw_scan.py"],"file_stats":[{"name":"EXAMPLES.md","lines_changed":91},{"name":"README.md","lines_changed":1},{"name":"docs/parsers/iw_scan.md","lines_changed":2},{"name":"jc/parsers/iw_scan.py","lines_changed":2}]}},{"commit":"fb422726a8366c7133f0712d3b05a26620eea785","message":"update test to add 'down' condition","stats":{"files_changed":2,"insertions":2,"deletions":1,"files":["tests/fixtures/ubuntu-20.04/last-F.json","tests/fixtures/ubuntu-20.04/last-F.out"],"file_stats":[{"name":"tests/fixtures/ubuntu-20.04/last-F.json","lines_changed":2},{"name":"tests/fixtures/ubuntu-20.04/last-F.out","lines_changed":1}]}},{"commit":"4fb6f3ea59c52515926a51a006e65a1c18e57720","message":"add support for down in addition to crash","stats":{"files_changed":1,"insertions":2,"deletions":2,"files":["jc/parsers/last.py"],"file_stats":[{"name":"jc/parsers/last.py","lines_changed":4}]}},{"commit":"f78fe771e1c2fb4691858fa7f27b1febe5f8c6c0","message":"add iw-scan tests","stats":{"files_changed":3,"insertions":48,"deletions":0,"files":["tests/fixtures/centos-7.7/iw-scan0.json","tests/fixtures/centos-7.7/iw-scan1.json","tests/test_iw_scan.py"],"file_stats":[{"name":"tests/fixtures/centos-7.7/iw-scan0.json","lines_changed":1},{"name":"tests/fixtures/centos-7.7/iw-scan1.json","lines_changed":1},{"name":"tests/test_iw_scan.py","lines_changed":46}]}},{"commit":"567b8872538ac9f6b384b98741acd9794229d513","message":"doc updates","stats":{"files_changed":3,"insertions":252,"deletions":12,"files":["docgen.sh","docs/parsers/iw_scan.md","jc/parsers/iw_scan.py"],"file_stats":[{"name":"docgen.sh","lines_changed":1},{"name":"docs/parsers/iw_scan.md","lines_changed":160},{"name":"jc/parsers/iw_scan.py","lines_changed":103}]}},{"commit":"e516e6b9466b29d40ec10070dd61551180eeef90","message":"fix country/environment fields and process int/float conversions","stats":{"files_changed":1,"insertions":29,"deletions":1,"files":["jc/parsers/iw_scan.py"],"file_stats":[{"name":"jc/parsers/iw_scan.py","lines_changed":30}]}},{"commit":"62748676aae3d5955191ed267215df33a5bd3a4d","message":"initial iw-scan parser","stats":{"files_changed":2,"insertions":225,"deletions":0,"files":["jc/cli.py","jc/parsers/iw_scan.py"],"file_stats":[{"name":"jc/cli.py","lines_changed":1},{"name":"jc/parsers/iw_scan.py","lines_changed":224}]}},{"commit":"7351c72e45242b9eb08c51dea7b6fccf12366dfd","message":"add fixes and tests for entries that contain 'crash'","stats":{"files_changed":6,"insertions":402,"deletions":1,"files":["jc/parsers/last.py","tests/fixtures/centos-7.7/last-crash.json","tests/fixtures/centos-7.7/last-crash.out","tests/fixtures/centos-7.7/last-wF.json","tests/fixtures/centos-7.7/last-wF.out","tests/test_last.py"],"file_stats":[{"name":"jc/parsers/last.py","lines_changed":10},{"name":"tests/fixtures/centos-7.7/last-crash.json","lines_changed":1},{"name":"tests/fixtures/centos-7.7/last-crash.out","lines_changed":184},{"name":"tests/fixtures/centos-7.7/last-wF.json","lines_changed":1},{"name":"tests/fixtures/centos-7.7/last-wF.out","lines_changed":184},{"name":"tests/test_last.py","lines_changed":23}]}},{"commit":"2b7405c5e21db2488fc48b58f6c65cff947ca95d","message":"doc updates","stats":{"files_changed":5,"insertions":23,"deletions":16,"files":["CHANGELOG","README.md","docs/parsers/last.md","jc/parsers/last.py","man/jc.1"],"file_stats":[{"name":"CHANGELOG","lines_changed":3},{"name":"README.md","lines_changed":2},{"name":"docs/parsers/last.md","lines_changed":6},{"name":"jc/parsers/last.py","lines_changed":6},{"name":"man/jc.1","lines_changed":22}]}},{"commit":"e2c77cb935a5bd95dbe930d424e5a02e88e1fa76","message":"add test for last -F output","stats":{"files_changed":3,"insertions":15,"deletions":1,"files":["jc/parsers/last.py","tests/fixtures/ubuntu-20.04/last-F.json","tests/test_last.py"],"file_stats":[{"name":"jc/parsers/last.py","lines_changed":3},{"name":"tests/fixtures/ubuntu-20.04/last-F.json","lines_changed":1},{"name":"tests/test_last.py","lines_changed":12}]}},{"commit":"7ac621e4c916373a03f379425033cb2d81a03578","message":"add -F support","stats":{"files_changed":3,"insertions":36,"deletions":6,"files":["docs/parsers/last.md","jc/parsers/last.py","tests/fixtures/ubuntu-20.04/last-F.out"],"file_stats":[{"name":"docs/parsers/last.md","lines_changed":6},{"name":"jc/parsers/last.py","lines_changed":30},{"name":"tests/fixtures/ubuntu-20.04/last-F.out","lines_changed":6}]}},{"commit":"d8b5d6c66ced19dc16f2b4975d2293a903732ffe","message":"version bump to 1.14.1","stats":{"files_changed":2,"insertions":2,"deletions":2,"files":["jc/cli.py","setup.py"],"file_stats":[{"name":"jc/cli.py","lines_changed":2},{"name":"setup.py","lines_changed":2}]}},{"commit":"22b461eb4b1ca86ea9e8c1fde8a2c312d1526b5f","message":"Add period field for en_US.UTF-8 locale","stats":{"files_changed":7,"insertions":47,"deletions":12,"files":["CHANGELOG","EXAMPLES.md","docs/parsers/date.md","jc/parsers/date.py","tests/fixtures/generic/date.json","tests/fixtures/ubuntu-20.04/date.json","tests/test_date.py"],"file_stats":[{"name":"CHANGELOG","lines_changed":1},{"name":"EXAMPLES.md","lines_changed":1},{"name":"docs/parsers/date.md","lines_changed":2},{"name":"jc/parsers/date.py","lines_changed":40},{"name":"tests/fixtures/generic/date.json","lines_changed":2},{"name":"tests/fixtures/ubuntu-20.04/date.json","lines_changed":1},{"name":"tests/test_date.py","lines_changed":12}]}},{"commit":"b37ee8555a2a108625a834a7990bc3320e79b08d","message":"changelog update","stats":{"files_changed":1,"insertions":6,"deletions":0,"files":["CHANGELOG"],"file_stats":[{"name":"CHANGELOG","lines_changed":6}]}},{"commit":"1d0ad2f045733c5c690738d49951fdb9bcd3d66d","message":"doc fixes","stats":{"files_changed":123,"insertions":312,"deletions":312,"files":["docs/parsers/airport.md","docs/parsers/airport_s.md","docs/parsers/arp.md","docs/parsers/blkid.md","docs/parsers/cksum.md","docs/parsers/crontab.md","docs/parsers/crontab_u.md","docs/parsers/csv.md","docs/parsers/date.md","docs/parsers/df.md","docs/parsers/dig.md","docs/parsers/dmidecode.md","docs/parsers/du.md","docs/parsers/env.md","docs/parsers/file.md","docs/parsers/free.md","docs/parsers/fstab.md","docs/parsers/group.md","docs/parsers/gshadow.md","docs/parsers/hash.md","docs/parsers/hashsum.md","docs/parsers/history.md","docs/parsers/hosts.md","docs/parsers/id.md","docs/parsers/ifconfig.md","docs/parsers/ini.md","docs/parsers/iptables.md","docs/parsers/jobs.md","docs/parsers/last.md","docs/parsers/ls.md","docs/parsers/lsblk.md","docs/parsers/lsmod.md","docs/parsers/lsof.md","docs/parsers/mount.md","docs/parsers/netstat.md","docs/parsers/ntpq.md","docs/parsers/passwd.md","docs/parsers/ping.md","docs/parsers/pip_list.md","docs/parsers/pip_show.md","docs/parsers/ps.md","docs/parsers/route.md","docs/parsers/shadow.md","docs/parsers/ss.md","docs/parsers/stat.md","docs/parsers/sysctl.md","docs/parsers/systemctl.md","docs/parsers/systemctl_lj.md","docs/parsers/systemctl_ls.md","docs/parsers/systemctl_luf.md","docs/parsers/timedatectl.md","docs/parsers/tracepath.md","docs/parsers/traceroute.md","docs/parsers/uname.md","docs/parsers/uptime.md","docs/parsers/w.md","docs/parsers/wc.md","docs/parsers/who.md","docs/parsers/xml.md","docs/parsers/yaml.md","jc/parsers/airport.py","jc/parsers/airport_s.py","jc/parsers/arp.py","jc/parsers/blkid.py","jc/parsers/cksum.py","jc/parsers/crontab.py","jc/parsers/crontab_u.py","jc/parsers/csv.py","jc/parsers/date.py","jc/parsers/df.py","jc/parsers/dig.py","jc/parsers/dmidecode.py","jc/parsers/du.py","jc/parsers/env.py","jc/parsers/file.py","jc/parsers/foo.py","jc/parsers/free.py","jc/parsers/fstab.py","jc/parsers/group.py","jc/parsers/gshadow.py","jc/parsers/hash.py","jc/parsers/hashsum.py","jc/parsers/history.py","jc/parsers/hosts.py","jc/parsers/id.py","jc/parsers/ifconfig.py","jc/parsers/ini.py","jc/parsers/iptables.py","jc/parsers/jobs.py","jc/parsers/last.py","jc/parsers/ls.py","jc/parsers/lsblk.py","jc/parsers/lsmod.py","jc/parsers/lsof.py","jc/parsers/mount.py","jc/parsers/netstat.py","jc/parsers/netstat_freebsd_osx.py","jc/parsers/netstat_linux.py","jc/parsers/ntpq.py","jc/parsers/passwd.py","jc/parsers/ping.py","jc/parsers/pip_list.py","jc/parsers/pip_show.py","jc/parsers/ps.py","jc/parsers/route.py","jc/parsers/shadow.py","jc/parsers/ss.py","jc/parsers/stat.py","jc/parsers/sysctl.py","jc/parsers/systemctl.py","jc/parsers/systemctl_lj.py","jc/parsers/systemctl_ls.py","jc/parsers/systemctl_luf.py","jc/parsers/timedatectl.py","jc/parsers/tracepath.py","jc/parsers/traceroute.py","jc/parsers/uname.py","jc/parsers/uptime.py","jc/parsers/w.py","jc/parsers/wc.py","jc/parsers/who.py","jc/parsers/xml.py","jc/parsers/yaml.py"],"file_stats":[{"name":"docs/parsers/airport.md","lines_changed":2},{"name":"docs/parsers/airport_s.md","lines_changed":6},{"name":"docs/parsers/arp.md","lines_changed":6},{"name":"docs/parsers/blkid.md","lines_changed":6},{"name":"docs/parsers/cksum.md","lines_changed":6},{"name":"docs/parsers/crontab.md","lines_changed":2},{"name":"docs/parsers/crontab_u.md","lines_changed":2},{"name":"docs/parsers/csv.md","lines_changed":6},{"name":"docs/parsers/date.md","lines_changed":2},{"name":"docs/parsers/df.md","lines_changed":6},{"name":"docs/parsers/dig.md","lines_changed":6},{"name":"docs/parsers/dmidecode.md","lines_changed":6},{"name":"docs/parsers/du.md","lines_changed":6},{"name":"docs/parsers/env.md","lines_changed":6},{"name":"docs/parsers/file.md","lines_changed":6},{"name":"docs/parsers/free.md","lines_changed":6},{"name":"docs/parsers/fstab.md","lines_changed":6},{"name":"docs/parsers/group.md","lines_changed":6},{"name":"docs/parsers/gshadow.md","lines_changed":6},{"name":"docs/parsers/hash.md","lines_changed":6},{"name":"docs/parsers/hashsum.md","lines_changed":6},{"name":"docs/parsers/history.md","lines_changed":6},{"name":"docs/parsers/hosts.md","lines_changed":6},{"name":"docs/parsers/id.md","lines_changed":4},{"name":"docs/parsers/ifconfig.md","lines_changed":6},{"name":"docs/parsers/ini.md","lines_changed":2},{"name":"docs/parsers/iptables.md","lines_changed":6},{"name":"docs/parsers/jobs.md","lines_changed":6},{"name":"docs/parsers/last.md","lines_changed":6},{"name":"docs/parsers/ls.md","lines_changed":6},{"name":"docs/parsers/lsblk.md","lines_changed":6},{"name":"docs/parsers/lsmod.md","lines_changed":6},{"name":"docs/parsers/lsof.md","lines_changed":6},{"name":"docs/parsers/mount.md","lines_changed":6},{"name":"docs/parsers/netstat.md","lines_changed":6},{"name":"docs/parsers/ntpq.md","lines_changed":6},{"name":"docs/parsers/passwd.md","lines_changed":6},{"name":"docs/parsers/ping.md","lines_changed":2},{"name":"docs/parsers/pip_list.md","lines_changed":6},{"name":"docs/parsers/pip_show.md","lines_changed":6},{"name":"docs/parsers/ps.md","lines_changed":6},{"name":"docs/parsers/route.md","lines_changed":6},{"name":"docs/parsers/shadow.md","lines_changed":6},{"name":"docs/parsers/ss.md","lines_changed":6},{"name":"docs/parsers/stat.md","lines_changed":6},{"name":"docs/parsers/sysctl.md","lines_changed":2},{"name":"docs/parsers/systemctl.md","lines_changed":6},{"name":"docs/parsers/systemctl_lj.md","lines_changed":6},{"name":"docs/parsers/systemctl_ls.md","lines_changed":6},{"name":"docs/parsers/systemctl_luf.md","lines_changed":6},{"name":"docs/parsers/timedatectl.md","lines_changed":2},{"name":"docs/parsers/tracepath.md","lines_changed":2},{"name":"docs/parsers/traceroute.md","lines_changed":2},{"name":"docs/parsers/uname.md","lines_changed":2},{"name":"docs/parsers/uptime.md","lines_changed":2},{"name":"docs/parsers/w.md","lines_changed":6},{"name":"docs/parsers/wc.md","lines_changed":6},{"name":"docs/parsers/who.md","lines_changed":6},{"name":"docs/parsers/xml.md","lines_changed":2},{"name":"docs/parsers/yaml.md","lines_changed":6},{"name":"jc/parsers/airport.py","lines_changed":2},{"name":"jc/parsers/airport_s.py","lines_changed":6},{"name":"jc/parsers/arp.py","lines_changed":6},{"name":"jc/parsers/blkid.py","lines_changed":6},{"name":"jc/parsers/cksum.py","lines_changed":6},{"name":"jc/parsers/crontab.py","lines_changed":2},{"name":"jc/parsers/crontab_u.py","lines_changed":2},{"name":"jc/parsers/csv.py","lines_changed":6},{"name":"jc/parsers/date.py","lines_changed":2},{"name":"jc/parsers/df.py","lines_changed":6},{"name":"jc/parsers/dig.py","lines_changed":6},{"name":"jc/parsers/dmidecode.py","lines_changed":6},{"name":"jc/parsers/du.py","lines_changed":6},{"name":"jc/parsers/env.py","lines_changed":6},{"name":"jc/parsers/file.py","lines_changed":6},{"name":"jc/parsers/foo.py","lines_changed":6},{"name":"jc/parsers/free.py","lines_changed":6},{"name":"jc/parsers/fstab.py","lines_changed":6},{"name":"jc/parsers/group.py","lines_changed":6},{"name":"jc/parsers/gshadow.py","lines_changed":6},{"name":"jc/parsers/hash.py","lines_changed":6},{"name":"jc/parsers/hashsum.py","lines_changed":6},{"name":"jc/parsers/history.py","lines_changed":6},{"name":"jc/parsers/hosts.py","lines_changed":6},{"name":"jc/parsers/id.py","lines_changed":4},{"name":"jc/parsers/ifconfig.py","lines_changed":6},{"name":"jc/parsers/ini.py","lines_changed":2},{"name":"jc/parsers/iptables.py","lines_changed":6},{"name":"jc/parsers/jobs.py","lines_changed":6},{"name":"jc/parsers/last.py","lines_changed":6},{"name":"jc/parsers/ls.py","lines_changed":6},{"name":"jc/parsers/lsblk.py","lines_changed":6},{"name":"jc/parsers/lsmod.py","lines_changed":6},{"name":"jc/parsers/lsof.py","lines_changed":6},{"name":"jc/parsers/mount.py","lines_changed":6},{"name":"jc/parsers/netstat.py","lines_changed":6},{"name":"jc/parsers/netstat_freebsd_osx.py","lines_changed":2},{"name":"jc/parsers/netstat_linux.py","lines_changed":2},{"name":"jc/parsers/ntpq.py","lines_changed":6},{"name":"jc/parsers/passwd.py","lines_changed":6},{"name":"jc/parsers/ping.py","lines_changed":4},{"name":"jc/parsers/pip_list.py","lines_changed":6},{"name":"jc/parsers/pip_show.py","lines_changed":6},{"name":"jc/parsers/ps.py","lines_changed":6},{"name":"jc/parsers/route.py","lines_changed":6},{"name":"jc/parsers/shadow.py","lines_changed":6},{"name":"jc/parsers/ss.py","lines_changed":6},{"name":"jc/parsers/stat.py","lines_changed":6},{"name":"jc/parsers/sysctl.py","lines_changed":2},{"name":"jc/parsers/systemctl.py","lines_changed":6},{"name":"jc/parsers/systemctl_lj.py","lines_changed":6},{"name":"jc/parsers/systemctl_ls.py","lines_changed":6},{"name":"jc/parsers/systemctl_luf.py","lines_changed":6},{"name":"jc/parsers/timedatectl.py","lines_changed":2},{"name":"jc/parsers/tracepath.py","lines_changed":2},{"name":"jc/parsers/traceroute.py","lines_changed":2},{"name":"jc/parsers/uname.py","lines_changed":2},{"name":"jc/parsers/uptime.py","lines_changed":2},{"name":"jc/parsers/w.py","lines_changed":6},{"name":"jc/parsers/wc.py","lines_changed":6},{"name":"jc/parsers/who.py","lines_changed":6},{"name":"jc/parsers/xml.py","lines_changed":2},{"name":"jc/parsers/yaml.py","lines_changed":6}]}},{"commit":"ceccfb2c815f57f1b6fd81f891d8b495de23f9f5","message":"add test output for iw-scan and date on ubuntu 20.04","stats":{"files_changed":3,"insertions":2036,"deletions":0,"files":["tests/fixtures/centos-7.7/iw-scan0.out","tests/fixtures/centos-7.7/iw-scan1.out","tests/fixtures/ubuntu-20.04/date.out"],"file_stats":[{"name":"tests/fixtures/centos-7.7/iw-scan0.out","lines_changed":36},{"name":"tests/fixtures/centos-7.7/iw-scan1.out","lines_changed":1999},{"name":"tests/fixtures/ubuntu-20.04/date.out","lines_changed":1}]}},{"commit":"03c02953cd7e3327b391f799c37a2990eb2cb24c","message":"add wc doc","stats":{"files_changed":2,"insertions":96,"deletions":0,"files":["docgen.sh","docs/parsers/wc.md"],"file_stats":[{"name":"docgen.sh","lines_changed":1},{"name":"docs/parsers/wc.md","lines_changed":95}]}},{"commit":"f254a0eaa16fcda316f7a75424ee359058204b03","message":"version bump","stats":{"files_changed":1,"insertions":1,"deletions":1,"files":["setup.py"],"file_stats":[{"name":"setup.py","lines_changed":2}]}},{"commit":"9e3b88727cd439e15f235dddb9dd5796e010797a","message":"Merge pull request #91 from kellyjonbrazil/dev"},{"commit":"b12217466e906829d19be4cfd80dfe7cf4008e57","message":"spelling","stats":{"files_changed":1,"insertions":1,"deletions":1,"files":["CHANGELOG"],"file_stats":[{"name":"CHANGELOG","lines_changed":2}]}},{"commit":"8b9c932f9b05295e63b3e7d0073f243458fd4dd9","message":"update date","stats":{"files_changed":1,"insertions":1,"deletions":1,"files":["CHANGELOG"],"file_stats":[{"name":"CHANGELOG","lines_changed":2}]}},{"commit":"5986ce03db6fcd1aa0f7b064eaa96c2120c06d2d","message":"add printenv info","stats":{"files_changed":1,"insertions":1,"deletions":1,"files":["README.md"],"file_stats":[{"name":"README.md","lines_changed":2}]}},{"commit":"a7b0e936e400d2f9e55629e2d722cc002e035e9f","message":"add vdir and printenv info","stats":{"files_changed":1,"insertions":2,"deletions":0,"files":["CHANGELOG"],"file_stats":[{"name":"CHANGELOG","lines_changed":2}]}},{"commit":"cb0221142455a6bcb904fbe9ade657be45815b63","message":"add wc tests","stats":{"files_changed":4,"insertions":61,"deletions":2,"files":["jc/parsers/wc.py","tests/fixtures/osx-10.14.6/wc-stdin.json","tests/fixtures/osx-10.14.6/wc-stdin.out","tests/test_wc.py"],"file_stats":[{"name":"jc/parsers/wc.py","lines_changed":3},{"name":"tests/fixtures/osx-10.14.6/wc-stdin.json","lines_changed":1},{"name":"tests/fixtures/osx-10.14.6/wc-stdin.out","lines_changed":1},{"name":"tests/test_wc.py","lines_changed":58}]}},{"commit":"bd443bf39227515ae5f8df65d07b30268dcc90a9","message":"add printenv to env docs","stats":{"files_changed":1,"insertions":2,"deletions":2,"files":["jc/parsers/env.py"],"file_stats":[{"name":"jc/parsers/env.py","lines_changed":4}]}},{"commit":"1f547edd361e66b19ccbcb59f6ba0ae78f6080ce","message":"add printenv to env docs","stats":{"files_changed":1,"insertions":1,"deletions":1,"files":["docs/parsers/env.md"],"file_stats":[{"name":"docs/parsers/env.md","lines_changed":2}]}},{"commit":"e4bac3a493705b09e301ddc90dd1b0cee7467c3f","message":"add wc parser","stats":{"files_changed":9,"insertions":378,"deletions":0,"files":["CHANGELOG","EXAMPLES.md","README.md","jc/cli.py","jc/parsers/wc.py","tests/fixtures/centos-7.7/wc.json","tests/fixtures/centos-7.7/wc.out","tests/fixtures/osx-10.14.6/wc.json","tests/fixtures/osx-10.14.6/wc.out"],"file_stats":[{"name":"CHANGELOG","lines_changed":1},{"name":"EXAMPLES.md","lines_changed":26},{"name":"README.md","lines_changed":1},{"name":"jc/cli.py","lines_changed":1},{"name":"jc/parsers/wc.py","lines_changed":130},{"name":"tests/fixtures/centos-7.7/wc.json","lines_changed":1},{"name":"tests/fixtures/centos-7.7/wc.out","lines_changed":67},{"name":"tests/fixtures/osx-10.14.6/wc.json","lines_changed":1},{"name":"tests/fixtures/osx-10.14.6/wc.out","lines_changed":150}]}},{"commit":"5e6bfa681aff03fbd683f81a9f4daa56b49d1344","message":"add vdir info","stats":{"files_changed":3,"insertions":6,"deletions":6,"files":["README.md","docs/parsers/ls.md","jc/parsers/ls.py"],"file_stats":[{"name":"README.md","lines_changed":2},{"name":"docs/parsers/ls.md","lines_changed":4},{"name":"jc/parsers/ls.py","lines_changed":6}]}},{"commit":"276160125e01553c75eaad68530177bcf4f9004d","message":"add new commands to README","stats":{"files_changed":1,"insertions":3,"deletions":0,"files":["README.md"],"file_stats":[{"name":"README.md","lines_changed":3}]}},{"commit":"d4ae5543f2d5f28a0db5b8e2e19993c21c5d960c","message":"add hash tests","stats":{"files_changed":3,"insertions":39,"deletions":0,"files":["tests/fixtures/centos-7.7/hash.json","tests/fixtures/centos-7.7/hash.out","tests/test_hash.py"],"file_stats":[{"name":"tests/fixtures/centos-7.7/hash.json","lines_changed":1},{"name":"tests/fixtures/centos-7.7/hash.out","lines_changed":4},{"name":"tests/test_hash.py","lines_changed":34}]}},{"commit":"55f360e267fdfcfef0c124ed6b88535cc181a8b0","message":"add hash command parser","stats":{"files_changed":6,"insertions":260,"deletions":0,"files":["CHANGELOG","EXAMPLES.md","docgen.sh","docs/parsers/hash.md","jc/cli.py","jc/parsers/hash.py"],"file_stats":[{"name":"CHANGELOG","lines_changed":1},{"name":"EXAMPLES.md","lines_changed":71},{"name":"docgen.sh","lines_changed":1},{"name":"docs/parsers/hash.md","lines_changed":78},{"name":"jc/cli.py","lines_changed":1},{"name":"jc/parsers/hash.py","lines_changed":108}]}},{"commit":"fdedab2a0cf5af15df5803d87302397dd6d71741","message":"description updates","stats":{"files_changed":2,"insertions":2,"deletions":2,"files":["jc/parsers/cksum.py","jc/parsers/hashsum.py"],"file_stats":[{"name":"jc/parsers/cksum.py","lines_changed":2},{"name":"jc/parsers/hashsum.py","lines_changed":2}]}},{"commit":"a9be42e3031ab0d697cff67a9e384caa2265a3ad","message":"specify parser warnings for quiet option","stats":{"files_changed":1,"insertions":1,"deletions":1,"files":["jc/cli.py"],"file_stats":[{"name":"jc/cli.py","lines_changed":2}]}},{"commit":"6da9510e46e84ec1cb93384825184d2996cf0e08","message":"add cksum tests","stats":{"files_changed":9,"insertions":482,"deletions":0,"files":["tests/fixtures/centos-7.7/cksum.json","tests/fixtures/centos-7.7/cksum.out","tests/fixtures/centos-7.7/sum.json","tests/fixtures/centos-7.7/sum.out","tests/fixtures/osx-10.14.6/cksum.json","tests/fixtures/osx-10.14.6/cksum.out","tests/fixtures/osx-10.14.6/sum.json","tests/fixtures/osx-10.14.6/sum.out","tests/test_cksum.py"],"file_stats":[{"name":"tests/fixtures/centos-7.7/cksum.json","lines_changed":1},{"name":"tests/fixtures/centos-7.7/cksum.out","lines_changed":59},{"name":"tests/fixtures/centos-7.7/sum.json","lines_changed":1},{"name":"tests/fixtures/centos-7.7/sum.out","lines_changed":58},{"name":"tests/fixtures/osx-10.14.6/cksum.json","lines_changed":1},{"name":"tests/fixtures/osx-10.14.6/cksum.out","lines_changed":145},{"name":"tests/fixtures/osx-10.14.6/sum.json","lines_changed":1},{"name":"tests/fixtures/osx-10.14.6/sum.out","lines_changed":146},{"name":"tests/test_cksum.py","lines_changed":70}]}},{"commit":"0431798178740b03cdefececc6df958e5adf62fc","message":"add cksum parser","stats":{"files_changed":7,"insertions":229,"deletions":3,"files":["CHANGELOG","docgen.sh","docs/parsers/cksum.md","docs/parsers/hashsum.md","jc/cli.py","jc/parsers/cksum.py","jc/parsers/hashsum.py"],"file_stats":[{"name":"CHANGELOG","lines_changed":1},{"name":"docgen.sh","lines_changed":1},{"name":"docs/parsers/cksum.md","lines_changed":95},{"name":"docs/parsers/hashsum.md","lines_changed":2},{"name":"jc/cli.py","lines_changed":3},{"name":"jc/parsers/cksum.py","lines_changed":128},{"name":"jc/parsers/hashsum.py","lines_changed":2}]}},{"commit":"62432f3c484e74acb2b2dfd15d448b3f1b5d53c4","message":"update hashsum description","stats":{"files_changed":1,"insertions":1,"deletions":1,"files":["jc/parsers/hashsum.py"],"file_stats":[{"name":"jc/parsers/hashsum.py","lines_changed":2}]}},{"commit":"9fbbc30906b597e6afaf2030015a7a694d85f79e","message":"add supported commands to docs","stats":{"files_changed":2,"insertions":20,"deletions":0,"files":["docs/parsers/hashsum.md","jc/parsers/hashsum.py"],"file_stats":[{"name":"docs/parsers/hashsum.md","lines_changed":10},{"name":"jc/parsers/hashsum.py","lines_changed":10}]}},{"commit":"d1567d1f622902053f3df58645b4e39532e0c30a","message":"add hashsum documentation","stats":{"files_changed":3,"insertions":104,"deletions":0,"files":["CHANGELOG","docgen.sh","docs/parsers/hashsum.md"],"file_stats":[{"name":"CHANGELOG","lines_changed":4},{"name":"docgen.sh","lines_changed":1},{"name":"docs/parsers/hashsum.md","lines_changed":99}]}},{"commit":"6ca1f5970b3a518615a54ee7fcbc1bddab2db331","message":"Merge branch 'dev' of https://github.com/kellyjonbrazil/jc into dev"},{"commit":"1c880b9e24ca53cd592cec1dbc52301308290fb4","message":"force git tests","stats":{"files_changed":1,"insertions":1,"deletions":1,"files":["tests/test_hashsum.py"],"file_stats":[{"name":"tests/test_hashsum.py","lines_changed":2}]}},{"commit":"3b7d54c720dfc93637328cf06eb10a85447c8793","message":"add python 3.9","stats":{"files_changed":1,"insertions":1,"deletions":1,"files":[".github/workflows/pythonapp.yml"],"file_stats":[{"name":".github/workflows/pythonapp.yml","lines_changed":2}]}},{"commit":"44a740605705bd0ecfde2a6bcc7a826e1010dcf0","message":"add hashsum tests","stats":{"files_changed":6,"insertions":87,"deletions":0,"files":["tests/fixtures/centos-7.7/md5sum.json","tests/fixtures/centos-7.7/sha256sum.json","tests/fixtures/centos-7.7/sha384sum.json","tests/fixtures/osx-10.14.6/md5.json","tests/fixtures/osx-10.14.6/shasum.json","tests/test_hashsum.py"],"file_stats":[{"name":"tests/fixtures/centos-7.7/md5sum.json","lines_changed":1},{"name":"tests/fixtures/centos-7.7/sha256sum.json","lines_changed":1},{"name":"tests/fixtures/centos-7.7/sha384sum.json","lines_changed":1},{"name":"tests/fixtures/osx-10.14.6/md5.json","lines_changed":1},{"name":"tests/fixtures/osx-10.14.6/shasum.json","lines_changed":1},{"name":"tests/test_hashsum.py","lines_changed":82}]}},{"commit":"8157dcfdb1868548b7c8ca692e6be25f80bb2c2c","message":"fix for files with spaces in the name","stats":{"files_changed":1,"insertions":36,"deletions":11,"files":["jc/parsers/hashsum.py"],"file_stats":[{"name":"jc/parsers/hashsum.py","lines_changed":47}]}},{"commit":"28762aea15cabc9cd8293d725e7f1f0550f8e15d","message":"add hashsum parser","stats":{"files_changed":7,"insertions":524,"deletions":0,"files":["jc/cli.py","jc/parsers/hashsum.py","tests/fixtures/centos-7.7/md5sum.out","tests/fixtures/centos-7.7/sha256sum.out","tests/fixtures/centos-7.7/sha384sum.out","tests/fixtures/osx-10.14.6/md5.out","tests/fixtures/osx-10.14.6/shasum.out"],"file_stats":[{"name":"jc/cli.py","lines_changed":1},{"name":"jc/parsers/hashsum.py","lines_changed":110},{"name":"tests/fixtures/centos-7.7/md5sum.out","lines_changed":56},{"name":"tests/fixtures/centos-7.7/sha256sum.out","lines_changed":55},{"name":"tests/fixtures/centos-7.7/sha384sum.out","lines_changed":56},{"name":"tests/fixtures/osx-10.14.6/md5.out","lines_changed":104},{"name":"tests/fixtures/osx-10.14.6/shasum.out","lines_changed":142}]}},{"commit":"439871ea9f6b055a407e1faaf47e4f56d1829501","message":"add ubuntu","stats":{"files_changed":1,"insertions":1,"deletions":1,"files":["README.md"],"file_stats":[{"name":"README.md","lines_changed":2}]}},{"commit":"c9180b005c0547c8cbfe4809e66894f1123b0809","message":"formatting","stats":{"files_changed":1,"insertions":1,"deletions":1,"files":["README.md"],"file_stats":[{"name":"README.md","lines_changed":2}]}},{"commit":"b14e0725f86853f0113116b1c06f54aaa563f365","message":"add ansible plugin blog post link","stats":{"files_changed":1,"insertions":1,"deletions":1,"files":["README.md"],"file_stats":[{"name":"README.md","lines_changed":2}]}},{"commit":"70fe3dcb4d5b97aba1d6c6dcd5088fecb27af181","message":"formatting","stats":{"files_changed":1,"insertions":1,"deletions":1,"files":["README.md"],"file_stats":[{"name":"README.md","lines_changed":2}]}},{"commit":"8c554604a42a3ea7ca9131b65c64fd3ceb95f906","message":"formatting","stats":{"files_changed":1,"insertions":1,"deletions":0,"files":["README.md"],"file_stats":[{"name":"README.md","lines_changed":1}]}},{"commit":"a0a35454bd2831c116cb598c686150b883412f94","message":"add link to the web demo","stats":{"files_changed":1,"insertions":1,"deletions":0,"files":["README.md"],"file_stats":[{"name":"README.md","lines_changed":1}]}},{"commit":"e8467e2af5b0c3f14832a9e6d4a96f219c27f3f2","message":"remove extra space","stats":{"files_changed":1,"insertions":1,"deletions":1,"files":["README.md"],"file_stats":[{"name":"README.md","lines_changed":2}]}},{"commit":"7515deb5669ef04623e9cbf58653b30c99a96430","message":"add ansible install command","stats":{"files_changed":1,"insertions":1,"deletions":0,"files":["README.md"],"file_stats":[{"name":"README.md","lines_changed":1}]}},{"commit":"ed9e52af241b609ee7f5d1b835c9f6c5306cd3c5","message":"spelling","stats":{"files_changed":1,"insertions":1,"deletions":1,"files":["README.md"],"file_stats":[{"name":"README.md","lines_changed":2}]}},{"commit":"592a3804104628c790997747a778b3b39d076dfe","message":"add Ansible note","stats":{"files_changed":1,"insertions":2,"deletions":0,"files":["README.md"],"file_stats":[{"name":"README.md","lines_changed":2}]}},{"commit":"1a458d2d5b4c16c0ad90671727ae9b19939e7f23","message":"update link","stats":{"files_changed":2,"insertions":2,"deletions":2,"files":["docs/readme.md","jc/__init__.py"],"file_stats":[{"name":"docs/readme.md","lines_changed":2},{"name":"jc/__init__.py","lines_changed":2}]}},{"commit":"0e4cf53b92ff951a6390a4dacf8833c272473583","message":"add parser docs link","stats":{"files_changed":2,"insertions":4,"deletions":0,"files":["docs/readme.md","jc/__init__.py"],"file_stats":[{"name":"docs/readme.md","lines_changed":2},{"name":"jc/__init__.py","lines_changed":2}]}},{"commit":"e2f06ccb33177173d984bc0cdda1aae1a3f4c681","message":"formatting","stats":{"files_changed":4,"insertions":4,"deletions":4,"files":["docs/parsers/xml.md","docs/parsers/yaml.md","jc/parsers/xml.py","jc/parsers/yaml.py"],"file_stats":[{"name":"docs/parsers/xml.md","lines_changed":2},{"name":"docs/parsers/yaml.md","lines_changed":2},{"name":"jc/parsers/xml.py","lines_changed":2},{"name":"jc/parsers/yaml.py","lines_changed":2}]}},{"commit":"8abff004cd8e09529e5d94be4883308152e11565","message":"indentation fix","stats":{"files_changed":1,"insertions":1,"deletions":1,"files":["docs/parsers/yaml.md"],"file_stats":[{"name":"docs/parsers/yaml.md","lines_changed":2}]}},{"commit":"c4a0e2e3feb2e51eaaaa202064f352229017bcc3","message":"fix indentation","stats":{"files_changed":1,"insertions":1,"deletions":1,"files":["jc/parsers/yaml.py"],"file_stats":[{"name":"jc/parsers/yaml.py","lines_changed":2}]}},{"commit":"4f10f79c73f8b3d6edc2c83e6a12d0ddc1a78555","message":"standardize doc","stats":{"files_changed":2,"insertions":4,"deletions":8,"files":["docs/parsers/uname.md","jc/parsers/uname.py"],"file_stats":[{"name":"docs/parsers/uname.md","lines_changed":6},{"name":"jc/parsers/uname.py","lines_changed":6}]}},{"commit":"69e7a560fd82337570c4bb4aa4780f513c18bd94","message":"add output info to docs","stats":{"files_changed":4,"insertions":8,"deletions":0,"files":["docs/parsers/env.md","docs/parsers/history.md","jc/parsers/env.py","jc/parsers/history.py"],"file_stats":[{"name":"docs/parsers/env.md","lines_changed":2},{"name":"docs/parsers/history.md","lines_changed":2},{"name":"jc/parsers/env.py","lines_changed":2},{"name":"jc/parsers/history.py","lines_changed":2}]}},{"commit":"59b105580805d78516abe1c1069d52a6f0a8131a","message":"enhance docs","stats":{"files_changed":97,"insertions":564,"deletions":269,"files":["docs/parsers/airport_s.md","docs/parsers/arp.md","docs/parsers/blkid.md","docs/parsers/crontab.md","docs/parsers/crontab_u.md","docs/parsers/csv.md","docs/parsers/date.md","docs/parsers/df.md","docs/parsers/dig.md","docs/parsers/dmidecode.md","docs/parsers/du.md","docs/parsers/env.md","docs/parsers/file.md","docs/parsers/free.md","docs/parsers/fstab.md","docs/parsers/group.md","docs/parsers/gshadow.md","docs/parsers/history.md","docs/parsers/hosts.md","docs/parsers/id.md","docs/parsers/ifconfig.md","docs/parsers/ini.md","docs/parsers/iptables.md","docs/parsers/jobs.md","docs/parsers/kv.md","docs/parsers/last.md","docs/parsers/ls.md","docs/parsers/lsblk.md","docs/parsers/lsmod.md","docs/parsers/lsof.md","docs/parsers/mount.md","docs/parsers/netstat.md","docs/parsers/ntpq.md","docs/parsers/passwd.md","docs/parsers/ping.md","docs/parsers/pip_list.md","docs/parsers/pip_show.md","docs/parsers/ps.md","docs/parsers/route.md","docs/parsers/shadow.md","docs/parsers/ss.md","docs/parsers/stat.md","docs/parsers/sysctl.md","docs/parsers/systemctl.md","docs/parsers/systemctl_lj.md","docs/parsers/systemctl_ls.md","docs/parsers/systemctl_luf.md","docs/parsers/timedatectl.md","docs/parsers/tracepath.md","docs/parsers/traceroute.md","docs/parsers/uname.md","docs/parsers/uptime.md","docs/parsers/w.md","docs/parsers/who.md","docs/parsers/xml.md","docs/parsers/yaml.md","jc/parsers/group.py","jc/parsers/gshadow.py","jc/parsers/history.py","jc/parsers/hosts.py","jc/parsers/id.py","jc/parsers/ifconfig.py","jc/parsers/ini.py","jc/parsers/iptables.py","jc/parsers/jobs.py","jc/parsers/kv.py","jc/parsers/last.py","jc/parsers/ls.py","jc/parsers/lsblk.py","jc/parsers/lsmod.py","jc/parsers/lsof.py","jc/parsers/mount.py","jc/parsers/netstat.py","jc/parsers/ntpq.py","jc/parsers/passwd.py","jc/parsers/ping.py","jc/parsers/pip_list.py","jc/parsers/pip_show.py","jc/parsers/ps.py","jc/parsers/route.py","jc/parsers/shadow.py","jc/parsers/ss.py","jc/parsers/stat.py","jc/parsers/sysctl.py","jc/parsers/systemctl.py","jc/parsers/systemctl_lj.py","jc/parsers/systemctl_ls.py","jc/parsers/systemctl_luf.py","jc/parsers/timedatectl.py","jc/parsers/tracepath.py","jc/parsers/traceroute.py","jc/parsers/uname.py","jc/parsers/uptime.py","jc/parsers/w.py","jc/parsers/who.py","jc/parsers/xml.py","jc/parsers/yaml.py"],"file_stats":[{"name":"docs/parsers/airport_s.md","lines_changed":2},{"name":"docs/parsers/arp.md","lines_changed":12},{"name":"docs/parsers/blkid.md","lines_changed":8},{"name":"docs/parsers/crontab.md","lines_changed":10},{"name":"docs/parsers/crontab_u.md","lines_changed":6},{"name":"docs/parsers/csv.md","lines_changed":9},{"name":"docs/parsers/date.md","lines_changed":8},{"name":"docs/parsers/df.md","lines_changed":8},{"name":"docs/parsers/dig.md","lines_changed":8},{"name":"docs/parsers/dmidecode.md","lines_changed":8},{"name":"docs/parsers/du.md","lines_changed":8},{"name":"docs/parsers/env.md","lines_changed":8},{"name":"docs/parsers/file.md","lines_changed":8},{"name":"docs/parsers/free.md","lines_changed":8},{"name":"docs/parsers/fstab.md","lines_changed":4},{"name":"docs/parsers/group.md","lines_changed":4},{"name":"docs/parsers/gshadow.md","lines_changed":4},{"name":"docs/parsers/history.md","lines_changed":4},{"name":"docs/parsers/hosts.md","lines_changed":4},{"name":"docs/parsers/id.md","lines_changed":8},{"name":"docs/parsers/ifconfig.md","lines_changed":10},{"name":"docs/parsers/ini.md","lines_changed":10},{"name":"docs/parsers/iptables.md","lines_changed":10},{"name":"docs/parsers/jobs.md","lines_changed":10},{"name":"docs/parsers/kv.md","lines_changed":11},{"name":"docs/parsers/last.md","lines_changed":8},{"name":"docs/parsers/ls.md","lines_changed":21},{"name":"docs/parsers/lsblk.md","lines_changed":8},{"name":"docs/parsers/lsmod.md","lines_changed":8},{"name":"docs/parsers/lsof.md","lines_changed":8},{"name":"docs/parsers/mount.md","lines_changed":8},{"name":"docs/parsers/netstat.md","lines_changed":17},{"name":"docs/parsers/ntpq.md","lines_changed":8},{"name":"docs/parsers/passwd.md","lines_changed":4},{"name":"docs/parsers/ping.md","lines_changed":12},{"name":"docs/parsers/pip_list.md","lines_changed":8},{"name":"docs/parsers/pip_show.md","lines_changed":8},{"name":"docs/parsers/ps.md","lines_changed":14},{"name":"docs/parsers/route.md","lines_changed":8},{"name":"docs/parsers/shadow.md","lines_changed":4},{"name":"docs/parsers/ss.md","lines_changed":8},{"name":"docs/parsers/stat.md","lines_changed":8},{"name":"docs/parsers/sysctl.md","lines_changed":16},{"name":"docs/parsers/systemctl.md","lines_changed":8},{"name":"docs/parsers/systemctl_lj.md","lines_changed":8},{"name":"docs/parsers/systemctl_ls.md","lines_changed":8},{"name":"docs/parsers/systemctl_luf.md","lines_changed":8},{"name":"docs/parsers/timedatectl.md","lines_changed":8},{"name":"docs/parsers/tracepath.md","lines_changed":10},{"name":"docs/parsers/traceroute.md","lines_changed":16},{"name":"docs/parsers/uname.md","lines_changed":8},{"name":"docs/parsers/uptime.md","lines_changed":8},{"name":"docs/parsers/w.md","lines_changed":8},{"name":"docs/parsers/who.md","lines_changed":10},{"name":"docs/parsers/xml.md","lines_changed":4},{"name":"docs/parsers/yaml.md","lines_changed":4},{"name":"jc/parsers/group.py","lines_changed":4},{"name":"jc/parsers/gshadow.py","lines_changed":4},{"name":"jc/parsers/history.py","lines_changed":4},{"name":"jc/parsers/hosts.py","lines_changed":4},{"name":"jc/parsers/id.py","lines_changed":8},{"name":"jc/parsers/ifconfig.py","lines_changed":10},{"name":"jc/parsers/ini.py","lines_changed":10},{"name":"jc/parsers/iptables.py","lines_changed":10},{"name":"jc/parsers/jobs.py","lines_changed":10},{"name":"jc/parsers/kv.py","lines_changed":11},{"name":"jc/parsers/last.py","lines_changed":8},{"name":"jc/parsers/ls.py","lines_changed":21},{"name":"jc/parsers/lsblk.py","lines_changed":8},{"name":"jc/parsers/lsmod.py","lines_changed":8},{"name":"jc/parsers/lsof.py","lines_changed":8},{"name":"jc/parsers/mount.py","lines_changed":8},{"name":"jc/parsers/netstat.py","lines_changed":17},{"name":"jc/parsers/ntpq.py","lines_changed":8},{"name":"jc/parsers/passwd.py","lines_changed":4},{"name":"jc/parsers/ping.py","lines_changed":12},{"name":"jc/parsers/pip_list.py","lines_changed":8},{"name":"jc/parsers/pip_show.py","lines_changed":8},{"name":"jc/parsers/ps.py","lines_changed":14},{"name":"jc/parsers/route.py","lines_changed":8},{"name":"jc/parsers/shadow.py","lines_changed":4},{"name":"jc/parsers/ss.py","lines_changed":8},{"name":"jc/parsers/stat.py","lines_changed":8},{"name":"jc/parsers/sysctl.py","lines_changed":16},{"name":"jc/parsers/systemctl.py","lines_changed":8},{"name":"jc/parsers/systemctl_lj.py","lines_changed":8},{"name":"jc/parsers/systemctl_ls.py","lines_changed":8},{"name":"jc/parsers/systemctl_luf.py","lines_changed":8},{"name":"jc/parsers/timedatectl.py","lines_changed":8},{"name":"jc/parsers/tracepath.py","lines_changed":10},{"name":"jc/parsers/traceroute.py","lines_changed":16},{"name":"jc/parsers/uname.py","lines_changed":8},{"name":"jc/parsers/uptime.py","lines_changed":8},{"name":"jc/parsers/w.py","lines_changed":8},{"name":"jc/parsers/who.py","lines_changed":10},{"name":"jc/parsers/xml.py","lines_changed":4},{"name":"jc/parsers/yaml.py","lines_changed":4}]}},{"commit":"6ed48c6289214fe5114971c80772efdf9ac1b8c5","message":"enhance docs","stats":{"files_changed":16,"insertions":88,"deletions":37,"files":["jc/parsers/airport_s.py","jc/parsers/arp.py","jc/parsers/blkid.py","jc/parsers/crontab.py","jc/parsers/crontab_u.py","jc/parsers/csv.py","jc/parsers/date.py","jc/parsers/df.py","jc/parsers/dig.py","jc/parsers/dmidecode.py","jc/parsers/du.py","jc/parsers/env.py","jc/parsers/file.py","jc/parsers/foo.py","jc/parsers/free.py","jc/parsers/fstab.py"],"file_stats":[{"name":"jc/parsers/airport_s.py","lines_changed":2},{"name":"jc/parsers/arp.py","lines_changed":12},{"name":"jc/parsers/blkid.py","lines_changed":8},{"name":"jc/parsers/crontab.py","lines_changed":10},{"name":"jc/parsers/crontab_u.py","lines_changed":6},{"name":"jc/parsers/csv.py","lines_changed":9},{"name":"jc/parsers/date.py","lines_changed":8},{"name":"jc/parsers/df.py","lines_changed":8},{"name":"jc/parsers/dig.py","lines_changed":8},{"name":"jc/parsers/dmidecode.py","lines_changed":8},{"name":"jc/parsers/du.py","lines_changed":8},{"name":"jc/parsers/env.py","lines_changed":8},{"name":"jc/parsers/file.py","lines_changed":8},{"name":"jc/parsers/foo.py","lines_changed":10},{"name":"jc/parsers/free.py","lines_changed":8},{"name":"jc/parsers/fstab.py","lines_changed":4}]}},{"commit":"f2fb4d3f415fbc1c09eec6dedcf70fba78406b3f","message":"improve docs","stats":{"files_changed":4,"insertions":4,"deletions":4,"files":["docs/parsers/airport.md","docs/parsers/airport_s.md","jc/parsers/airport.py","jc/parsers/airport_s.py"],"file_stats":[{"name":"docs/parsers/airport.md","lines_changed":2},{"name":"docs/parsers/airport_s.md","lines_changed":2},{"name":"jc/parsers/airport.py","lines_changed":2},{"name":"jc/parsers/airport_s.py","lines_changed":2}]}},{"commit":"6aeea59ea84e56434e87ddf89cd5d4435b99e140","message":"doc updates","stats":{"files_changed":2,"insertions":14,"deletions":8,"files":["docs/parsers/airport.md","docs/parsers/airport_s.md"],"file_stats":[{"name":"docs/parsers/airport.md","lines_changed":11},{"name":"docs/parsers/airport_s.md","lines_changed":11}]}},{"commit":"d016f3bbb307f85bd0f93a508323941a8bb9d872","message":"improve documentation","stats":{"files_changed":2,"insertions":14,"deletions":8,"files":["jc/parsers/airport.py","jc/parsers/airport_s.py"],"file_stats":[{"name":"jc/parsers/airport.py","lines_changed":11},{"name":"jc/parsers/airport_s.py","lines_changed":11}]}},{"commit":"7131c297180bfa195d0209d46fc70ab8e67efe2e","message":"add module usage info to docs","stats":{"files_changed":114,"insertions":686,"deletions":116,"files":["docs/parsers/airport.md","docs/parsers/airport_s.md","docs/parsers/arp.md","docs/parsers/crontab.md","docs/parsers/crontab_u.md","docs/parsers/csv.md","docs/parsers/date.md","docs/parsers/df.md","docs/parsers/dig.md","docs/parsers/dmidecode.md","docs/parsers/du.md","docs/parsers/env.md","docs/parsers/file.md","docs/parsers/free.md","docs/parsers/fstab.md","docs/parsers/group.md","docs/parsers/gshadow.md","docs/parsers/history.md","docs/parsers/hosts.md","docs/parsers/id.md","docs/parsers/ifconfig.md","docs/parsers/ini.md","docs/parsers/iptables.md","docs/parsers/jobs.md","docs/parsers/kv.md","docs/parsers/last.md","docs/parsers/ls.md","docs/parsers/lsblk.md","docs/parsers/lsmod.md","docs/parsers/lsof.md","docs/parsers/mount.md","docs/parsers/netstat.md","docs/parsers/ntpq.md","docs/parsers/passwd.md","docs/parsers/ping.md","docs/parsers/pip_list.md","docs/parsers/pip_show.md","docs/parsers/ps.md","docs/parsers/route.md","docs/parsers/shadow.md","docs/parsers/ss.md","docs/parsers/stat.md","docs/parsers/sysctl.md","docs/parsers/systemctl.md","docs/parsers/systemctl_lj.md","docs/parsers/systemctl_ls.md","docs/parsers/systemctl_luf.md","docs/parsers/timedatectl.md","docs/parsers/tracepath.md","docs/parsers/traceroute.md","docs/parsers/uname.md","docs/parsers/uptime.md","docs/parsers/w.md","docs/parsers/who.md","docs/parsers/xml.md","docs/parsers/yaml.md","jc/parsers/airport.py","jc/parsers/airport_s.py","jc/parsers/arp.py","jc/parsers/blkid.py","jc/parsers/crontab.py","jc/parsers/crontab_u.py","jc/parsers/csv.py","jc/parsers/date.py","jc/parsers/df.py","jc/parsers/dig.py","jc/parsers/dmidecode.py","jc/parsers/du.py","jc/parsers/env.py","jc/parsers/file.py","jc/parsers/foo.py","jc/parsers/free.py","jc/parsers/fstab.py","jc/parsers/group.py","jc/parsers/gshadow.py","jc/parsers/history.py","jc/parsers/hosts.py","jc/parsers/id.py","jc/parsers/ifconfig.py","jc/parsers/ini.py","jc/parsers/iptables.py","jc/parsers/jobs.py","jc/parsers/kv.py","jc/parsers/last.py","jc/parsers/ls.py","jc/parsers/lsblk.py","jc/parsers/lsmod.py","jc/parsers/lsof.py","jc/parsers/mount.py","jc/parsers/netstat.py","jc/parsers/ntpq.py","jc/parsers/passwd.py","jc/parsers/ping.py","jc/parsers/pip_list.py","jc/parsers/pip_show.py","jc/parsers/ps.py","jc/parsers/route.py","jc/parsers/shadow.py","jc/parsers/ss.py","jc/parsers/stat.py","jc/parsers/sysctl.py","jc/parsers/systemctl.py","jc/parsers/systemctl_lj.py","jc/parsers/systemctl_ls.py","jc/parsers/systemctl_luf.py","jc/parsers/timedatectl.py","jc/parsers/tracepath.py","jc/parsers/traceroute.py","jc/parsers/uname.py","jc/parsers/uptime.py","jc/parsers/w.py","jc/parsers/who.py","jc/parsers/xml.py","jc/parsers/yaml.py"],"file_stats":[{"name":"docs/parsers/airport.md","lines_changed":7},{"name":"docs/parsers/airport_s.md","lines_changed":7},{"name":"docs/parsers/arp.md","lines_changed":7},{"name":"docs/parsers/crontab.md","lines_changed":7},{"name":"docs/parsers/crontab_u.md","lines_changed":7},{"name":"docs/parsers/csv.md","lines_changed":7},{"name":"docs/parsers/date.md","lines_changed":7},{"name":"docs/parsers/df.md","lines_changed":7},{"name":"docs/parsers/dig.md","lines_changed":7},{"name":"docs/parsers/dmidecode.md","lines_changed":7},{"name":"docs/parsers/du.md","lines_changed":7},{"name":"docs/parsers/env.md","lines_changed":7},{"name":"docs/parsers/file.md","lines_changed":7},{"name":"docs/parsers/free.md","lines_changed":7},{"name":"docs/parsers/fstab.md","lines_changed":7},{"name":"docs/parsers/group.md","lines_changed":7},{"name":"docs/parsers/gshadow.md","lines_changed":7},{"name":"docs/parsers/history.md","lines_changed":7},{"name":"docs/parsers/hosts.md","lines_changed":7},{"name":"docs/parsers/id.md","lines_changed":7},{"name":"docs/parsers/ifconfig.md","lines_changed":7},{"name":"docs/parsers/ini.md","lines_changed":7},{"name":"docs/parsers/iptables.md","lines_changed":7},{"name":"docs/parsers/jobs.md","lines_changed":7},{"name":"docs/parsers/kv.md","lines_changed":7},{"name":"docs/parsers/last.md","lines_changed":7},{"name":"docs/parsers/ls.md","lines_changed":7},{"name":"docs/parsers/lsblk.md","lines_changed":7},{"name":"docs/parsers/lsmod.md","lines_changed":7},{"name":"docs/parsers/lsof.md","lines_changed":7},{"name":"docs/parsers/mount.md","lines_changed":7},{"name":"docs/parsers/netstat.md","lines_changed":7},{"name":"docs/parsers/ntpq.md","lines_changed":7},{"name":"docs/parsers/passwd.md","lines_changed":7},{"name":"docs/parsers/ping.md","lines_changed":7},{"name":"docs/parsers/pip_list.md","lines_changed":7},{"name":"docs/parsers/pip_show.md","lines_changed":7},{"name":"docs/parsers/ps.md","lines_changed":7},{"name":"docs/parsers/route.md","lines_changed":7},{"name":"docs/parsers/shadow.md","lines_changed":7},{"name":"docs/parsers/ss.md","lines_changed":7},{"name":"docs/parsers/stat.md","lines_changed":7},{"name":"docs/parsers/sysctl.md","lines_changed":7},{"name":"docs/parsers/systemctl.md","lines_changed":7},{"name":"docs/parsers/systemctl_lj.md","lines_changed":7},{"name":"docs/parsers/systemctl_ls.md","lines_changed":7},{"name":"docs/parsers/systemctl_luf.md","lines_changed":7},{"name":"docs/parsers/timedatectl.md","lines_changed":7},{"name":"docs/parsers/tracepath.md","lines_changed":7},{"name":"docs/parsers/traceroute.md","lines_changed":7},{"name":"docs/parsers/uname.md","lines_changed":9},{"name":"docs/parsers/uptime.md","lines_changed":7},{"name":"docs/parsers/w.md","lines_changed":7},{"name":"docs/parsers/who.md","lines_changed":7},{"name":"docs/parsers/xml.md","lines_changed":7},{"name":"docs/parsers/yaml.md","lines_changed":7},{"name":"jc/parsers/airport.py","lines_changed":7},{"name":"jc/parsers/airport_s.py","lines_changed":7},{"name":"jc/parsers/arp.py","lines_changed":7},{"name":"jc/parsers/blkid.py","lines_changed":7},{"name":"jc/parsers/crontab.py","lines_changed":7},{"name":"jc/parsers/crontab_u.py","lines_changed":7},{"name":"jc/parsers/csv.py","lines_changed":7},{"name":"jc/parsers/date.py","lines_changed":7},{"name":"jc/parsers/df.py","lines_changed":7},{"name":"jc/parsers/dig.py","lines_changed":7},{"name":"jc/parsers/dmidecode.py","lines_changed":7},{"name":"jc/parsers/du.py","lines_changed":7},{"name":"jc/parsers/env.py","lines_changed":7},{"name":"jc/parsers/file.py","lines_changed":7},{"name":"jc/parsers/foo.py","lines_changed":7},{"name":"jc/parsers/free.py","lines_changed":7},{"name":"jc/parsers/fstab.py","lines_changed":7},{"name":"jc/parsers/group.py","lines_changed":7},{"name":"jc/parsers/gshadow.py","lines_changed":7},{"name":"jc/parsers/history.py","lines_changed":7},{"name":"jc/parsers/hosts.py","lines_changed":7},{"name":"jc/parsers/id.py","lines_changed":7},{"name":"jc/parsers/ifconfig.py","lines_changed":7},{"name":"jc/parsers/ini.py","lines_changed":7},{"name":"jc/parsers/iptables.py","lines_changed":7},{"name":"jc/parsers/jobs.py","lines_changed":7},{"name":"jc/parsers/kv.py","lines_changed":7},{"name":"jc/parsers/last.py","lines_changed":7},{"name":"jc/parsers/ls.py","lines_changed":7},{"name":"jc/parsers/lsblk.py","lines_changed":7},{"name":"jc/parsers/lsmod.py","lines_changed":7},{"name":"jc/parsers/lsof.py","lines_changed":7},{"name":"jc/parsers/mount.py","lines_changed":7},{"name":"jc/parsers/netstat.py","lines_changed":7},{"name":"jc/parsers/ntpq.py","lines_changed":7},{"name":"jc/parsers/passwd.py","lines_changed":7},{"name":"jc/parsers/ping.py","lines_changed":7},{"name":"jc/parsers/pip_list.py","lines_changed":7},{"name":"jc/parsers/pip_show.py","lines_changed":7},{"name":"jc/parsers/ps.py","lines_changed":7},{"name":"jc/parsers/route.py","lines_changed":7},{"name":"jc/parsers/shadow.py","lines_changed":7},{"name":"jc/parsers/ss.py","lines_changed":7},{"name":"jc/parsers/stat.py","lines_changed":7},{"name":"jc/parsers/sysctl.py","lines_changed":7},{"name":"jc/parsers/systemctl.py","lines_changed":7},{"name":"jc/parsers/systemctl_lj.py","lines_changed":7},{"name":"jc/parsers/systemctl_ls.py","lines_changed":7},{"name":"jc/parsers/systemctl_luf.py","lines_changed":7},{"name":"jc/parsers/timedatectl.py","lines_changed":7},{"name":"jc/parsers/tracepath.py","lines_changed":7},{"name":"jc/parsers/traceroute.py","lines_changed":7},{"name":"jc/parsers/uname.py","lines_changed":9},{"name":"jc/parsers/uptime.py","lines_changed":7},{"name":"jc/parsers/w.py","lines_changed":7},{"name":"jc/parsers/who.py","lines_changed":7},{"name":"jc/parsers/xml.py","lines_changed":7},{"name":"jc/parsers/yaml.py","lines_changed":7}]}},{"commit":"7432442983841b42c8d3d2459b55596c05d1e100","message":"add usage","stats":{"files_changed":1,"insertions":6,"deletions":1,"files":["docs/parsers/blkid.md"],"file_stats":[{"name":"docs/parsers/blkid.md","lines_changed":7}]}},{"commit":"5344883394a0662ee16bb5edd68df8e4410025f6","message":"spelling/add ping parser update","stats":{"files_changed":1,"insertions":3,"deletions":2,"files":["CHANGELOG"],"file_stats":[{"name":"CHANGELOG","lines_changed":5}]}},{"commit":"3fcd2f6c2e015b0e65e7261c8e591ccd8a7d0e6c","message":"version bump","stats":{"files_changed":2,"insertions":2,"deletions":2,"files":["jc/cli.py","setup.py"],"file_stats":[{"name":"jc/cli.py","lines_changed":2},{"name":"setup.py","lines_changed":2}]}},{"commit":"f3d84bd5bf06349b681e9b72d904676e9f6bca19","message":"tighten crontab and crontab-u parser variable detection","stats":{"files_changed":6,"insertions":21,"deletions":3,"files":["CHANGELOG","jc/parsers/crontab.py","jc/parsers/crontab_u.py","tests/fixtures/debian10/crontab-u.json","tests/fixtures/debian10/crontab-u.out","tests/test_crontab_u.py"],"file_stats":[{"name":"CHANGELOG","lines_changed":3},{"name":"jc/parsers/crontab.py","lines_changed":2},{"name":"jc/parsers/crontab_u.py","lines_changed":4},{"name":"tests/fixtures/debian10/crontab-u.json","lines_changed":1},{"name":"tests/fixtures/debian10/crontab-u.out","lines_changed":2},{"name":"tests/test_crontab_u.py","lines_changed":12}]}},{"commit":"549780c23220bca3bcab58d7329ba8d44d1be55d","message":"add debian/apt-get info","stats":{"files_changed":1,"insertions":2,"deletions":1,"files":["README.md"],"file_stats":[{"name":"README.md","lines_changed":3}]}},{"commit":"2a6da69b82aa9ade6c01d490a32b57b415c62a9e","message":"improve linux/bsd check","stats":{"files_changed":1,"insertions":2,"deletions":2,"files":["jc/parsers/ping.py"],"file_stats":[{"name":"jc/parsers/ping.py","lines_changed":4}]}},{"commit":"5c538816cf76686bac1a86a7c06e24664d25a2dc","message":"ping parser fix for raspberry pi","stats":{"files_changed":9,"insertions":55,"deletions":4,"files":["CHANGELOG","jc/cli.py","jc/parsers/ping.py","setup.py","tests/fixtures/pi/ping-ip-O-D.json","tests/fixtures/pi/ping-ip-O-D.out","tests/fixtures/pi/ping-ip-O.json","tests/fixtures/pi/ping-ip-O.out","tests/test_ping.py"],"file_stats":[{"name":"CHANGELOG","lines_changed":3},{"name":"jc/cli.py","lines_changed":2},{"name":"jc/parsers/ping.py","lines_changed":4},{"name":"setup.py","lines_changed":2},{"name":"tests/fixtures/pi/ping-ip-O-D.json","lines_changed":1},{"name":"tests/fixtures/pi/ping-ip-O-D.out","lines_changed":10},{"name":"tests/fixtures/pi/ping-ip-O.json","lines_changed":1},{"name":"tests/fixtures/pi/ping-ip-O.out","lines_changed":10},{"name":"tests/test_ping.py","lines_changed":26}]}},{"commit":"7b8b378a7df397c488fc54fbd6e77f5f3f23c10c","message":"add pydoc-markdown version requirement","stats":{"files_changed":1,"insertions":1,"deletions":0,"files":["docgen.sh"],"file_stats":[{"name":"docgen.sh","lines_changed":1}]}},{"commit":"e30a75e25c4b43969bf9f874f89e18512a5e3a34","message":"Merge pull request #76 from kellyjonbrazil/dev"},{"commit":"85ad5cfd0bfb903ce35e37b343244fed88dbd979","message":"date change","stats":{"files_changed":1,"insertions":1,"deletions":1,"files":["CHANGELOG"],"file_stats":[{"name":"CHANGELOG","lines_changed":2}]}},{"commit":"88b9d5068c5bac0691fedb543114300d6afc7131","message":"finish date parser","stats":{"files_changed":6,"insertions":74,"deletions":15,"files":["EXAMPLES.md","README.md","docs/parsers/date.md","tests/fixtures/generic/date.json","tests/fixtures/generic/date.out","tests/test_date.py"],"file_stats":[{"name":"EXAMPLES.md","lines_changed":18},{"name":"README.md","lines_changed":1},{"name":"docs/parsers/date.md","lines_changed":34},{"name":"tests/fixtures/generic/date.json","lines_changed":1},{"name":"tests/fixtures/generic/date.out","lines_changed":1},{"name":"tests/test_date.py","lines_changed":34}]}},{"commit":"f8c4948a090642db595eda2ba2ea0773e560ba67","message":"remove comment","stats":{"files_changed":1,"insertions":0,"deletions":1,"files":["jc/parsers/date.py"],"file_stats":[{"name":"jc/parsers/date.py","lines_changed":1}]}},{"commit":"412322447f019aec0b64888631bc965e9f21186d","message":"add month_num and weekday_num fields","stats":{"files_changed":1,"insertions":48,"deletions":17,"files":["jc/parsers/date.py"],"file_stats":[{"name":"jc/parsers/date.py","lines_changed":65}]}},{"commit":"d4f289e40fae621b87f0d49451fca4c3dde216b7","message":"documentation fixup","stats":{"files_changed":2,"insertions":4,"deletions":4,"files":["docs/parsers/date.md","jc/parsers/date.py"],"file_stats":[{"name":"docs/parsers/date.md","lines_changed":4},{"name":"jc/parsers/date.py","lines_changed":4}]}},{"commit":"e1f3feb8f529172ae26ce4c7a66a4a1c21b722ce","message":"cover empty data case in process","stats":{"files_changed":1,"insertions":13,"deletions":10,"files":["jc/parsers/date.py"],"file_stats":[{"name":"jc/parsers/date.py","lines_changed":23}]}},{"commit":"37d3bc699c7be16955be06840d242980f05f1074","message":"add date parser","stats":{"files_changed":6,"insertions":224,"deletions":1,"files":["CHANGELOG","docgen.sh","docs/parsers/date.md","jc/cli.py","jc/parsers/date.py","man/jc.1"],"file_stats":[{"name":"CHANGELOG","lines_changed":3},{"name":"docgen.sh","lines_changed":1},{"name":"docs/parsers/date.md","lines_changed":89},{"name":"jc/cli.py","lines_changed":1},{"name":"jc/parsers/date.py","lines_changed":127},{"name":"man/jc.1","lines_changed":4}]}},{"commit":"672fd18016b8122510b6ab246b5675b7fd399b63","message":"date bump","stats":{"files_changed":1,"insertions":1,"deletions":1,"files":["man/jc.1"],"file_stats":[{"name":"man/jc.1","lines_changed":2}]}},{"commit":"bc2c23a2a09b96d34bb80f69fdc7751fb5ac3ed4","message":"version bump","stats":{"files_changed":1,"insertions":1,"deletions":1,"files":["man/jc.1"],"file_stats":[{"name":"man/jc.1","lines_changed":2}]}},{"commit":"865f7e78124e382c6d315702fa6e48f2104cee46","message":"add kv parser to man page","stats":{"files_changed":1,"insertions":5,"deletions":1,"files":["man/jc.1"],"file_stats":[{"name":"man/jc.1","lines_changed":6}]}},{"commit":"720212b552e1bd2b9196dd5f06e4b3f85d463531","message":"fixup traceroute example with new behavior","stats":{"files_changed":1,"insertions":1,"deletions":9,"files":["EXAMPLES.md"],"file_stats":[{"name":"EXAMPLES.md","lines_changed":10}]}},{"commit":"d3be61f60837801d5a505dc2520cc80c874a6092","message":"version bump","stats":{"files_changed":1,"insertions":1,"deletions":1,"files":["jc/parsers/traceroute.py"],"file_stats":[{"name":"jc/parsers/traceroute.py","lines_changed":2}]}},{"commit":"13418b16b8fd78fdd97ac045ec3fe9aa59d46080","message":"doc update","stats":{"files_changed":2,"insertions":8,"deletions":2,"files":["docs/parsers/traceroute.md","jc/parsers/traceroute.py"],"file_stats":[{"name":"docs/parsers/traceroute.md","lines_changed":5},{"name":"jc/parsers/traceroute.py","lines_changed":5}]}},{"commit":"42d2017cd6f5ee1d1a92bd4958cd63366c1e715d","message":"traceroute updates: handle missing header row, add annotations, don't print timeouts as probes","stats":{"files_changed":18,"insertions":41,"deletions":24,"files":["CHANGELOG","jc/parsers/traceroute.py","tests/fixtures/centos-7.7/traceroute.json","tests/fixtures/freebsd12/traceroute.json","tests/fixtures/freebsd12/traceroute6.json","tests/fixtures/generic/traceroute1.json","tests/fixtures/generic/traceroute2.json","tests/fixtures/generic/traceroute3.json","tests/fixtures/generic/traceroute5.json","tests/fixtures/generic/traceroute6.json","tests/fixtures/generic/traceroute7.json","tests/fixtures/osx-10.14.6/traceroute-asn.json",".../fixtures/osx-10.14.6/traceroute-no-header.json","tests/fixtures/osx-10.14.6/traceroute-q.json","tests/fixtures/osx-10.14.6/traceroute.json",".../osx-10.14.6/traceroute6-mult-addresses.json","tests/fixtures/osx-10.14.6/traceroute6.json","tests/test_traceroute.py"],"file_stats":[{"name":"CHANGELOG","lines_changed":3},{"name":"jc/parsers/traceroute.py","lines_changed":26},{"name":"tests/fixtures/centos-7.7/traceroute.json","lines_changed":2},{"name":"tests/fixtures/freebsd12/traceroute.json","lines_changed":2},{"name":"tests/fixtures/freebsd12/traceroute6.json","lines_changed":2},{"name":"tests/fixtures/generic/traceroute1.json","lines_changed":2},{"name":"tests/fixtures/generic/traceroute2.json","lines_changed":2},{"name":"tests/fixtures/generic/traceroute3.json","lines_changed":2},{"name":"tests/fixtures/generic/traceroute5.json","lines_changed":2},{"name":"tests/fixtures/generic/traceroute6.json","lines_changed":2},{"name":"tests/fixtures/generic/traceroute7.json","lines_changed":2},{"name":"tests/fixtures/osx-10.14.6/traceroute-asn.json","lines_changed":2},{"name":".../fixtures/osx-10.14.6/traceroute-no-header.json","lines_changed":1},{"name":"tests/fixtures/osx-10.14.6/traceroute-q.json","lines_changed":2},{"name":"tests/fixtures/osx-10.14.6/traceroute.json","lines_changed":2},{"name":".../osx-10.14.6/traceroute6-mult-addresses.json","lines_changed":2},{"name":"tests/fixtures/osx-10.14.6/traceroute6.json","lines_changed":2},{"name":"tests/test_traceroute.py","lines_changed":7}]}},{"commit":"4345e76ead2a49ae0691077e9fbd2b6c5fdfd129","message":"change to use --kv for key/value files","stats":{"files_changed":1,"insertions":1,"deletions":1,"files":["EXAMPLES.md"],"file_stats":[{"name":"EXAMPLES.md","lines_changed":2}]}},{"commit":"741431322ba2677355c361fcd6095ed8cd0a4349","message":"update tests for kv parser","stats":{"files_changed":2,"insertions":46,"deletions":24,"files":["tests/test_ini.py","tests/test_kv.py"],"file_stats":[{"name":"tests/test_ini.py","lines_changed":24},{"name":"tests/test_kv.py","lines_changed":46}]}},{"commit":"980beaaf41a04891f7c2f5daeb1e3a23d3c7ec19","message":"fix docgen issue","stats":{"files_changed":1,"insertions":0,"deletions":2,"files":["jc/parsers/ifconfig.py"],"file_stats":[{"name":"jc/parsers/ifconfig.py","lines_changed":2}]}},{"commit":"2205034e0906b333c259648f7a0e5392945f12ef","message":"add kv parser","stats":{"files_changed":8,"insertions":105,"deletions":31,"files":["CHANGELOG","EXAMPLES.md","README.md","docgen.sh","jc/cli.py","jc/parsers/ini.py","jc/parsers/kv.py","setup.py"],"file_stats":[{"name":"CHANGELOG","lines_changed":3},{"name":"EXAMPLES.md","lines_changed":53},{"name":"README.md","lines_changed":3},{"name":"docgen.sh","lines_changed":1},{"name":"jc/cli.py","lines_changed":3},{"name":"jc/parsers/ini.py","lines_changed":4},{"name":"jc/parsers/kv.py","lines_changed":67},{"name":"setup.py","lines_changed":2}]}},{"commit":"82b9c87a66fce5d8626c56858a8c6f1f3326e7fb","message":"update docs","stats":{"files_changed":58,"insertions":345,"deletions":62,"files":["docs/parsers/airport.md","docs/parsers/airport_s.md","docs/parsers/arp.md","docs/parsers/blkid.md","docs/parsers/crontab.md","docs/parsers/crontab_u.md","docs/parsers/csv.md","docs/parsers/df.md","docs/parsers/dig.md","docs/parsers/dmidecode.md","docs/parsers/du.md","docs/parsers/env.md","docs/parsers/file.md","docs/parsers/free.md","docs/parsers/fstab.md","docs/parsers/group.md","docs/parsers/gshadow.md","docs/parsers/history.md","docs/parsers/hosts.md","docs/parsers/id.md","docs/parsers/ifconfig.md","docs/parsers/ini.md","docs/parsers/iptables.md","docs/parsers/jobs.md","docs/parsers/kv.md","docs/parsers/last.md","docs/parsers/ls.md","docs/parsers/lsblk.md","docs/parsers/lsmod.md","docs/parsers/lsof.md","docs/parsers/mount.md","docs/parsers/netstat.md","docs/parsers/ntpq.md","docs/parsers/passwd.md","docs/parsers/ping.md","docs/parsers/pip_list.md","docs/parsers/pip_show.md","docs/parsers/ps.md","docs/parsers/route.md","docs/parsers/shadow.md","docs/parsers/ss.md","docs/parsers/stat.md","docs/parsers/sysctl.md","docs/parsers/systemctl.md","docs/parsers/systemctl_lj.md","docs/parsers/systemctl_ls.md","docs/parsers/systemctl_luf.md","docs/parsers/timedatectl.md","docs/parsers/tracepath.md","docs/parsers/traceroute.md","docs/parsers/uname.md","docs/parsers/uptime.md","docs/parsers/w.md","docs/parsers/who.md","docs/parsers/xml.md","docs/parsers/yaml.md","docs/readme.md","docs/utils.md"],"file_stats":[{"name":"docs/parsers/airport.md","lines_changed":6},{"name":"docs/parsers/airport_s.md","lines_changed":6},{"name":"docs/parsers/arp.md","lines_changed":6},{"name":"docs/parsers/blkid.md","lines_changed":6},{"name":"docs/parsers/crontab.md","lines_changed":6},{"name":"docs/parsers/crontab_u.md","lines_changed":6},{"name":"docs/parsers/csv.md","lines_changed":6},{"name":"docs/parsers/df.md","lines_changed":6},{"name":"docs/parsers/dig.md","lines_changed":6},{"name":"docs/parsers/dmidecode.md","lines_changed":6},{"name":"docs/parsers/du.md","lines_changed":6},{"name":"docs/parsers/env.md","lines_changed":6},{"name":"docs/parsers/file.md","lines_changed":6},{"name":"docs/parsers/free.md","lines_changed":6},{"name":"docs/parsers/fstab.md","lines_changed":6},{"name":"docs/parsers/group.md","lines_changed":6},{"name":"docs/parsers/gshadow.md","lines_changed":6},{"name":"docs/parsers/history.md","lines_changed":6},{"name":"docs/parsers/hosts.md","lines_changed":6},{"name":"docs/parsers/id.md","lines_changed":6},{"name":"docs/parsers/ifconfig.md","lines_changed":13},{"name":"docs/parsers/ini.md","lines_changed":6},{"name":"docs/parsers/iptables.md","lines_changed":6},{"name":"docs/parsers/jobs.md","lines_changed":6},{"name":"docs/parsers/kv.md","lines_changed":61},{"name":"docs/parsers/last.md","lines_changed":6},{"name":"docs/parsers/ls.md","lines_changed":6},{"name":"docs/parsers/lsblk.md","lines_changed":6},{"name":"docs/parsers/lsmod.md","lines_changed":6},{"name":"docs/parsers/lsof.md","lines_changed":6},{"name":"docs/parsers/mount.md","lines_changed":6},{"name":"docs/parsers/netstat.md","lines_changed":6},{"name":"docs/parsers/ntpq.md","lines_changed":6},{"name":"docs/parsers/passwd.md","lines_changed":6},{"name":"docs/parsers/ping.md","lines_changed":6},{"name":"docs/parsers/pip_list.md","lines_changed":6},{"name":"docs/parsers/pip_show.md","lines_changed":6},{"name":"docs/parsers/ps.md","lines_changed":6},{"name":"docs/parsers/route.md","lines_changed":6},{"name":"docs/parsers/shadow.md","lines_changed":6},{"name":"docs/parsers/ss.md","lines_changed":6},{"name":"docs/parsers/stat.md","lines_changed":6},{"name":"docs/parsers/sysctl.md","lines_changed":6},{"name":"docs/parsers/systemctl.md","lines_changed":6},{"name":"docs/parsers/systemctl_lj.md","lines_changed":6},{"name":"docs/parsers/systemctl_ls.md","lines_changed":6},{"name":"docs/parsers/systemctl_luf.md","lines_changed":6},{"name":"docs/parsers/timedatectl.md","lines_changed":6},{"name":"docs/parsers/tracepath.md","lines_changed":6},{"name":"docs/parsers/traceroute.md","lines_changed":9},{"name":"docs/parsers/uname.md","lines_changed":6},{"name":"docs/parsers/uptime.md","lines_changed":6},{"name":"docs/parsers/w.md","lines_changed":6},{"name":"docs/parsers/who.md","lines_changed":6},{"name":"docs/parsers/xml.md","lines_changed":6},{"name":"docs/parsers/yaml.md","lines_changed":6},{"name":"docs/readme.md","lines_changed":1},{"name":"docs/utils.md","lines_changed":5}]}},{"commit":"dda517a937323b9888e081aea1032a9d63c4a6bf","message":"shorten more examples","stats":{"files_changed":1,"insertions":3,"deletions":163,"files":["README.md"],"file_stats":[{"name":"README.md","lines_changed":166}]}},{"commit":"4e6d283b9eddf7759b4dd37bd643394ff73febd4","message":"shorten netstat example","stats":{"files_changed":1,"insertions":0,"deletions":65,"files":["README.md"],"file_stats":[{"name":"README.md","lines_changed":65}]}},{"commit":"55acab05aa740dfd7534304f2678b60942cad116","message":"change name to CHANGELOG","stats":{"files_changed":1,"insertions":0,"deletions":0,"files":["changelog.txt => CHANGELOG"],"file_stats":[{"name":"changelog.txt => CHANGELOG","lines_changed":0}]}},{"commit":"ed38a18d236cdb991779f4f148e42359c139e61c","message":"remove more examples","stats":{"files_changed":1,"insertions":1,"deletions":86,"files":["README.md"],"file_stats":[{"name":"README.md","lines_changed":87}]}},{"commit":"95b3c11203d3dd0627c5eeca39fe1d145bf2d733","message":"remove more examples","stats":{"files_changed":1,"insertions":0,"deletions":124,"files":["README.md"],"file_stats":[{"name":"README.md","lines_changed":124}]}},{"commit":"dce318f4fd44b9c4013211bf233020e84566ddb7","message":"remove examples to reduce file size","stats":{"files_changed":1,"insertions":3,"deletions":1537,"files":["README.md"],"file_stats":[{"name":"README.md","lines_changed":1540}]}},{"commit":"85127f0fb8096192b19fca1f4ffe38ee391351be","message":"move examples to root","stats":{"files_changed":1,"insertions":0,"deletions":0,"files":["jc/examples.md => EXAMPLES.md"],"file_stats":[{"name":"jc/examples.md => EXAMPLES.md","lines_changed":0}]}},{"commit":"fb45058244ce879f12bbb5b7267b0fd63fef1d63","message":"add examples file","stats":{"files_changed":1,"insertions":2640,"deletions":0,"files":["jc/examples.md"],"file_stats":[{"name":"jc/examples.md","lines_changed":2640}]}},{"commit":"45bb5ae389a00ed6a132a65c69ce76c7e5976858","message":"spelling","stats":{"files_changed":1,"insertions":1,"deletions":1,"files":["README.md"],"file_stats":[{"name":"README.md","lines_changed":2}]}},{"commit":"339238ab364d8735892a11cb16a62a651edae169","message":"version bump and add route -6 tests","stats":{"files_changed":8,"insertions":79,"deletions":2,"files":["changelog.txt","jc/cli.py","setup.py","tests/fixtures/centos-7.7/route-6-n.json","tests/fixtures/centos-7.7/route-6-n.out","tests/fixtures/centos-7.7/route-6.json","tests/fixtures/centos-7.7/route-6.out","tests/test_route.py"],"file_stats":[{"name":"changelog.txt","lines_changed":3},{"name":"jc/cli.py","lines_changed":2},{"name":"setup.py","lines_changed":2},{"name":"tests/fixtures/centos-7.7/route-6-n.json","lines_changed":1},{"name":"tests/fixtures/centos-7.7/route-6-n.out","lines_changed":24},{"name":"tests/fixtures/centos-7.7/route-6.json","lines_changed":1},{"name":"tests/fixtures/centos-7.7/route-6.out","lines_changed":24},{"name":"tests/test_route.py","lines_changed":24}]}},{"commit":"032cda8b3db096b690d2557e3b918c50c716c543","message":"Merge pull request #74 from kellyjonbrazil/dev"},{"commit":"6badd3fb1e1cf6d1ee99614fadc20d54be8039aa","message":"add parser count test","stats":{"files_changed":1,"insertions":2,"deletions":1,"files":["tests/test_cli.py"],"file_stats":[{"name":"tests/test_cli.py","lines_changed":3}]}},{"commit":"724d825745b6f1692eb3b068c3fb59d14892e690","message":"add tracepath parser","stats":{"files_changed":1,"insertions":4,"deletions":0,"files":["man/jc.1"],"file_stats":[{"name":"man/jc.1","lines_changed":4}]}},{"commit":"ff1e32ad2ee156f105f5069c6b14a65b22784dfa","message":"version bump","stats":{"files_changed":1,"insertions":1,"deletions":1,"files":["setup.py"],"file_stats":[{"name":"setup.py","lines_changed":2}]}},{"commit":"a5f97febd3066b9e95a18d6b73162a7d206c5845","message":"update traceroute, tracepath, and uname tests","stats":{"files_changed":10,"insertions":132,"deletions":0,"files":["tests/fixtures/centos-7.7/tracepath.json","tests/fixtures/centos-7.7/tracepath6.json","tests/fixtures/freebsd12/traceroute.json","tests/fixtures/freebsd12/traceroute.out","tests/fixtures/freebsd12/traceroute6.json","tests/fixtures/freebsd12/traceroute6.out","tests/fixtures/osx-10.14.6/uname.out","tests/test_tracepath.py","tests/test_traceroute.py","tests/test_uname.py"],"file_stats":[{"name":"tests/fixtures/centos-7.7/tracepath.json","lines_changed":1},{"name":"tests/fixtures/centos-7.7/tracepath6.json","lines_changed":1},{"name":"tests/fixtures/freebsd12/traceroute.json","lines_changed":1},{"name":"tests/fixtures/freebsd12/traceroute.out","lines_changed":14},{"name":"tests/fixtures/freebsd12/traceroute6.json","lines_changed":1},{"name":"tests/fixtures/freebsd12/traceroute6.out","lines_changed":34},{"name":"tests/fixtures/osx-10.14.6/uname.out","lines_changed":1},{"name":"tests/test_tracepath.py","lines_changed":46},{"name":"tests/test_traceroute.py","lines_changed":24},{"name":"tests/test_uname.py","lines_changed":9}]}},{"commit":"5baa6cc865634142690e78596c640db35e110b29","message":"add route parser update","stats":{"files_changed":1,"insertions":2,"deletions":1,"files":["changelog.txt"],"file_stats":[{"name":"changelog.txt","lines_changed":3}]}},{"commit":"7a4f30b843d8f11711abbb8f9bb263f945ff87ea","message":"fix for iface issue","stats":{"files_changed":1,"insertions":4,"deletions":2,"files":["jc/parsers/route.py"],"file_stats":[{"name":"jc/parsers/route.py","lines_changed":6}]}},{"commit":"b2c385dc4f63e3e15f47e986deac0524967214a0","message":"change 'if' to 'iface'","stats":{"files_changed":1,"insertions":1,"deletions":1,"files":["jc/parsers/route.py"],"file_stats":[{"name":"jc/parsers/route.py","lines_changed":2}]}},{"commit":"5d5da8d33fa6ab77c745d338d1a2e2e8f2e4c697","message":"more fixes for ipv6 fix","stats":{"files_changed":1,"insertions":3,"deletions":3,"files":["jc/parsers/route.py"],"file_stats":[{"name":"jc/parsers/route.py","lines_changed":6}]}},{"commit":"e60457157839daba385202906997dec48c9c4950","message":"fix next_hop fix","stats":{"files_changed":1,"insertions":1,"deletions":1,"files":["jc/parsers/route.py"],"file_stats":[{"name":"jc/parsers/route.py","lines_changed":2}]}},{"commit":"f9dacc3f95b32e1431914ae0b0dc5c8e8840d5a7","message":"fixup for ipv6","stats":{"files_changed":1,"insertions":4,"deletions":0,"files":["jc/parsers/route.py"],"file_stats":[{"name":"jc/parsers/route.py","lines_changed":4}]}},{"commit":"6086920332575cd7db1b38262a3b4ba8fbfae7ab","message":"update ParseError message","stats":{"files_changed":1,"insertions":1,"deletions":1,"files":["jc/parsers/traceroute.py"],"file_stats":[{"name":"jc/parsers/traceroute.py","lines_changed":2}]}},{"commit":"f52f3163bcaf8d7e784f02505e81456e8240295b","message":"add tracepath example","stats":{"files_changed":1,"insertions":49,"deletions":0,"files":["README.md"],"file_stats":[{"name":"README.md","lines_changed":49}]}},{"commit":"d18ff73e880c7d34957f2713857cc83094f914cc","message":"update author info","stats":{"files_changed":1,"insertions":2,"deletions":2,"files":["jc/parsers/tracepath.py"],"file_stats":[{"name":"jc/parsers/tracepath.py","lines_changed":4}]}},{"commit":"1e5d602caecd96c9056ad77f9fc50cf25bf6fdfd","message":"working tracepath parser","stats":{"files_changed":2,"insertions":288,"deletions":32,"files":["docs/parsers/tracepath.md","jc/parsers/tracepath.py"],"file_stats":[{"name":"docs/parsers/tracepath.md","lines_changed":122},{"name":"jc/parsers/tracepath.py","lines_changed":198}]}},{"commit":"12912521ecb376c36dfdd743b3c4195598fb9aac","message":"doc update","stats":{"files_changed":2,"insertions":0,"deletions":11,"files":["docs/parsers/traceroute.md","jc/parsers/traceroute.py"],"file_stats":[{"name":"docs/parsers/traceroute.md","lines_changed":7},{"name":"jc/parsers/traceroute.py","lines_changed":4}]}},{"commit":"842ea3a94bec3fcab76257fdde5514d1de3d57fa","message":"add tracepath parser skeleton","stats":{"files_changed":2,"insertions":153,"deletions":0,"files":["docs/parsers/tracepath.md","jc/parsers/tracepath.py"],"file_stats":[{"name":"docs/parsers/tracepath.md","lines_changed":64},{"name":"jc/parsers/tracepath.py","lines_changed":89}]}},{"commit":"a8560dbc1598fa97de87594228b4cc10282d4197","message":"add tracepath","stats":{"files_changed":1,"insertions":1,"deletions":0,"files":["jc/cli.py"],"file_stats":[{"name":"jc/cli.py","lines_changed":1}]}},{"commit":"a65e27540a8c5c7123d2fdf79fcbefa1e2f8afdc","message":"update docs","stats":{"files_changed":3,"insertions":1,"deletions":24,"files":["docgen.sh","docs/parsers/traceroute.md","jc/parsers/traceroute.py"],"file_stats":[{"name":"docgen.sh","lines_changed":1},{"name":"docs/parsers/traceroute.md","lines_changed":14},{"name":"jc/parsers/traceroute.py","lines_changed":10}]}},{"commit":"c3c5ed11e68938e35920144406d37ea3b21d63dd","message":"change name from tr to trparse","stats":{"files_changed":1,"insertions":1,"deletions":1,"files":["jc/parsers/traceroute.py"],"file_stats":[{"name":"jc/parsers/traceroute.py","lines_changed":2}]}},{"commit":"ce24149335cd8ed1e8513a2cf040432fe42d86b7","message":"formatting","stats":{"files_changed":1,"insertions":0,"deletions":1,"files":["jc/parsers/ping.py"],"file_stats":[{"name":"jc/parsers/ping.py","lines_changed":1}]}},{"commit":"0314ca8c4831d24c169a0e4948421ecd638fd699","message":"add trparse acknowledgement","stats":{"files_changed":1,"insertions":1,"deletions":0,"files":["README.md"],"file_stats":[{"name":"README.md","lines_changed":1}]}},{"commit":"ebd8ee49a9f43063850e30c745c8cae46ee13de1","message":"add key/value info to ini example","stats":{"files_changed":1,"insertions":26,"deletions":1,"files":["README.md"],"file_stats":[{"name":"README.md","lines_changed":27}]}},{"commit":"38d10c97814ec69586c3b447c182f339772d6e22","message":"add ping and traceroute examples","stats":{"files_changed":1,"insertions":130,"deletions":1,"files":["README.md"],"file_stats":[{"name":"README.md","lines_changed":131}]}},{"commit":"360106c24d24e6a9697c00a158a14aaa334a4b1f","message":"add tracepath","stats":{"files_changed":1,"insertions":2,"deletions":1,"files":["changelog.txt"],"file_stats":[{"name":"changelog.txt","lines_changed":3}]}},{"commit":"ca470a5d02fd9fbaf05d8b3b3bb1ffe9f4cf5af3","message":"add tracepath fixtures","stats":{"files_changed":2,"insertions":39,"deletions":0,"files":["tests/fixtures/centos-7.7/tracepath.out","tests/fixtures/centos-7.7/tracepath6.out"],"file_stats":[{"name":"tests/fixtures/centos-7.7/tracepath.out","lines_changed":34},{"name":"tests/fixtures/centos-7.7/tracepath6.out","lines_changed":5}]}},{"commit":"57f66e6b1d554ff20b72959f5ebb9e7b2feffed2","message":"add exception with hint to use \"uname -a\"","stats":{"files_changed":2,"insertions":14,"deletions":2,"files":["changelog.txt","jc/parsers/uname.py"],"file_stats":[{"name":"changelog.txt","lines_changed":2},{"name":"jc/parsers/uname.py","lines_changed":14}]}},{"commit":"e774f67924c0e6195f79829b2ac75ce95f76fbaa","message":"turn off interpolation and coerce None to ''","stats":{"files_changed":1,"insertions":7,"deletions":3,"files":["jc/parsers/ini.py"],"file_stats":[{"name":"jc/parsers/ini.py","lines_changed":10}]}},{"commit":"ac10e576c167d20de259e47a6aa5b23fc998b4c3","message":"spelling","stats":{"files_changed":2,"insertions":4,"deletions":4,"files":["docs/parsers/ini.md","jc/parsers/ini.py"],"file_stats":[{"name":"docs/parsers/ini.md","lines_changed":4},{"name":"jc/parsers/ini.py","lines_changed":4}]}},{"commit":"bcae0a99cd0ccce4ec8a67929f7c83a1095a5b88","message":"add key/value to ini description","stats":{"files_changed":1,"insertions":1,"deletions":1,"files":["man/jc.1"],"file_stats":[{"name":"man/jc.1","lines_changed":2}]}},{"commit":"c73c2ff879b3ed7a3e6f04e53e0a729e4f00ed21","message":"add ping, traceroute, and ini update","stats":{"files_changed":1,"insertions":7,"deletions":1,"files":["changelog.txt"],"file_stats":[{"name":"changelog.txt","lines_changed":8}]}},{"commit":"c39b1a3356881a11a8f6fe9432897e6d67162f07","message":"add ping, traceroute and update ini description","stats":{"files_changed":1,"insertions":3,"deletions":1,"files":["README.md"],"file_stats":[{"name":"README.md","lines_changed":4}]}},{"commit":"125dc2d9e051a82a4a438afe2e520212338353f5","message":"add info about key/value files to doc","stats":{"files_changed":1,"insertions":8,"deletions":3,"files":["docs/parsers/ini.md"],"file_stats":[{"name":"docs/parsers/ini.md","lines_changed":11}]}},{"commit":"b7d4ddc7ced2c3aabf3a857b53a0bf1b62eb6a2c","message":"add tests for key/value files","stats":{"files_changed":5,"insertions":50,"deletions":0,"files":["tests/fixtures/generic/keyvalue-ifcfg.json","tests/fixtures/generic/keyvalue-ifcfg.txt","tests/fixtures/generic/keyvalue.json","tests/fixtures/generic/keyvalue.txt","tests/test_ini.py"],"file_stats":[{"name":"tests/fixtures/generic/keyvalue-ifcfg.json","lines_changed":1},{"name":"tests/fixtures/generic/keyvalue-ifcfg.txt","lines_changed":19},{"name":"tests/fixtures/generic/keyvalue.json","lines_changed":1},{"name":"tests/fixtures/generic/keyvalue.txt","lines_changed":5},{"name":"tests/test_ini.py","lines_changed":24}]}},{"commit":"f5e546c6fa7cba166284a0976887d6b82451d3e8","message":"add support for simple key/value pairs","stats":{"files_changed":1,"insertions":33,"deletions":9,"files":["jc/parsers/ini.py"],"file_stats":[{"name":"jc/parsers/ini.py","lines_changed":42}]}},{"commit":"928e39cd103b96b8c3ccc8d85c930ffb419296c6","message":"add generic traceroute tests","stats":{"files_changed":9,"insertions":104,"deletions":0,"files":["tests/fixtures/generic/traceroute1.json","tests/fixtures/generic/traceroute2.json","tests/fixtures/generic/traceroute3.json","tests/fixtures/generic/traceroute4.json","tests/fixtures/generic/traceroute5.json","tests/fixtures/generic/traceroute6.json","tests/fixtures/generic/traceroute7.json","tests/fixtures/generic/traceroute8.json","tests/test_traceroute.py"],"file_stats":[{"name":"tests/fixtures/generic/traceroute1.json","lines_changed":1},{"name":"tests/fixtures/generic/traceroute2.json","lines_changed":1},{"name":"tests/fixtures/generic/traceroute3.json","lines_changed":1},{"name":"tests/fixtures/generic/traceroute4.json","lines_changed":1},{"name":"tests/fixtures/generic/traceroute5.json","lines_changed":1},{"name":"tests/fixtures/generic/traceroute6.json","lines_changed":1},{"name":"tests/fixtures/generic/traceroute7.json","lines_changed":1},{"name":"tests/fixtures/generic/traceroute8.json","lines_changed":1},{"name":"tests/test_traceroute.py","lines_changed":96}]}},{"commit":"d0b7ea68a005daff313e44808b256656313a78a3","message":"check for key in dictionary","stats":{"files_changed":1,"insertions":2,"deletions":2,"files":["jc/parsers/traceroute.py"],"file_stats":[{"name":"jc/parsers/traceroute.py","lines_changed":4}]}},{"commit":"8444690133b6a7522822ab279e97ede6ded17ba9","message":"add traceroute","stats":{"files_changed":1,"insertions":4,"deletions":0,"files":["man/jc.1"],"file_stats":[{"name":"man/jc.1","lines_changed":4}]}},{"commit":"c03c42d76703ff8f423cf3c10ea6254a27a685cb","message":"add traceroute tests","stats":{"files_changed":9,"insertions":76,"deletions":9,"files":["tests/fixtures/centos-7.7/traceroute.json","tests/fixtures/osx-10.14.6/traceroute-asn.json",".../osx-10.14.6/traceroute-mult-addresses.json","tests/fixtures/osx-10.14.6/traceroute-q.json","tests/fixtures/osx-10.14.6/traceroute.json",".../osx-10.14.6/traceroute6-mult-addresses.json","...-address.out => traceroute6-mult-addresses.out}","tests/fixtures/osx-10.14.6/traceroute6.json","tests/test_traceroute.py"],"file_stats":[{"name":"tests/fixtures/centos-7.7/traceroute.json","lines_changed":1},{"name":"tests/fixtures/osx-10.14.6/traceroute-asn.json","lines_changed":1},{"name":".../osx-10.14.6/traceroute-mult-addresses.json","lines_changed":1},{"name":"tests/fixtures/osx-10.14.6/traceroute-q.json","lines_changed":1},{"name":"tests/fixtures/osx-10.14.6/traceroute.json","lines_changed":1},{"name":".../osx-10.14.6/traceroute6-mult-addresses.json","lines_changed":1},{"name":"...-address.out => traceroute6-mult-addresses.out}","lines_changed":0},{"name":"tests/fixtures/osx-10.14.6/traceroute6.json","lines_changed":1},{"name":"tests/test_traceroute.py","lines_changed":78}]}},{"commit":"ab67688a00ac335d2a5603e9cadef8b565957911","message":"add test skeleton","stats":{"files_changed":1,"insertions":55,"deletions":0,"files":["tests/test_traceroute.py"],"file_stats":[{"name":"tests/test_traceroute.py","lines_changed":55}]}},{"commit":"5dcb7166daef3c53da65bba0d591672e64d3a90b","message":"add traceroute doc","stats":{"files_changed":2,"insertions":169,"deletions":0,"files":["docgen.sh","docs/parsers/traceroute.md"],"file_stats":[{"name":"docgen.sh","lines_changed":1},{"name":"docs/parsers/traceroute.md","lines_changed":168}]}},{"commit":"14697b86d7fc1cfebb41e0fd2d9a9b9b60071d3b","message":"add MIT license","stats":{"files_changed":1,"insertions":24,"deletions":2,"files":["jc/parsers/traceroute.py"],"file_stats":[{"name":"jc/parsers/traceroute.py","lines_changed":26}]}},{"commit":"4f4b6276d4bf798b17d996f39742bd0428fc2f19","message":"update docstring","stats":{"files_changed":1,"insertions":38,"deletions":33,"files":["jc/parsers/traceroute.py"],"file_stats":[{"name":"jc/parsers/traceroute.py","lines_changed":71}]}},{"commit":"7bc497e1291059ae7858c9d2bd2d9a1b4c030dd1","message":"updated process() function to set integers and floats","stats":{"files_changed":1,"insertions":117,"deletions":14,"files":["jc/parsers/traceroute.py"],"file_stats":[{"name":"jc/parsers/traceroute.py","lines_changed":131}]}},{"commit":"68a37a6a5a3f0ad0fa24c84d363050af9fa11f97","message":"remove unused function load()","stats":{"files_changed":1,"insertions":0,"deletions":4,"files":["jc/parsers/traceroute.py"],"file_stats":[{"name":"jc/parsers/traceroute.py","lines_changed":4}]}},{"commit":"6f5cd1d7c5f76d7d4da42171fdc30daf9fe3996e","message":"change to use f-string","stats":{"files_changed":1,"insertions":1,"deletions":1,"files":["jc/parsers/traceroute.py"],"file_stats":[{"name":"jc/parsers/traceroute.py","lines_changed":2}]}},{"commit":"126b1b121ca10183dc7e9dece83b42907becad39","message":"add traceroute6 example","stats":{"files_changed":1,"insertions":10,"deletions":0,"files":["tests/fixtures/generic/traceroute8.out"],"file_stats":[{"name":"tests/fixtures/generic/traceroute8.out","lines_changed":10}]}},{"commit":"2341e456a012564f86d533d2748a5887d79995e4","message":"use ParseError instead of generic Exception","stats":{"files_changed":1,"insertions":1,"deletions":1,"files":["jc/parsers/traceroute.py"],"file_stats":[{"name":"jc/parsers/traceroute.py","lines_changed":2}]}},{"commit":"72d80e95bb50ae2a7432082e65aba15235ba0955","message":"remove unused regex patterns","stats":{"files_changed":8,"insertions":115,"deletions":8,"files":["jc/parsers/traceroute.py","tests/fixtures/generic/traceroute1.out","tests/fixtures/generic/traceroute2.out","tests/fixtures/generic/traceroute3.out","tests/fixtures/generic/traceroute4.out","tests/fixtures/generic/traceroute5.out","tests/fixtures/generic/traceroute6.out","tests/fixtures/generic/traceroute7.out"],"file_stats":[{"name":"jc/parsers/traceroute.py","lines_changed":9},{"name":"tests/fixtures/generic/traceroute1.out","lines_changed":16},{"name":"tests/fixtures/generic/traceroute2.out","lines_changed":13},{"name":"tests/fixtures/generic/traceroute3.out","lines_changed":20},{"name":"tests/fixtures/generic/traceroute4.out","lines_changed":7},{"name":"tests/fixtures/generic/traceroute5.out","lines_changed":10},{"name":"tests/fixtures/generic/traceroute6.out","lines_changed":31},{"name":"tests/fixtures/generic/traceroute7.out","lines_changed":17}]}},{"commit":"f5ec82440cd1c1b5ac9011d3517298d0cdcd8766","message":"simplify regex patterns","stats":{"files_changed":1,"insertions":6,"deletions":5,"files":["jc/parsers/traceroute.py"],"file_stats":[{"name":"jc/parsers/traceroute.py","lines_changed":11}]}},{"commit":"c8e526ead35b868733f57b4c114062a48b78a817","message":"fixes for bsd-style ipv6 output","stats":{"files_changed":2,"insertions":12,"deletions":3,"files":["jc/parsers/traceroute.py","tests/fixtures/osx-10.14.6/traceroute-q.out"],"file_stats":[{"name":"jc/parsers/traceroute.py","lines_changed":11},{"name":"tests/fixtures/osx-10.14.6/traceroute-q.out","lines_changed":4}]}},{"commit":"066adfb76479df7042bfb12bbb83b5dbd8a6d54c","message":"handle warning lines in the traceroute output","stats":{"files_changed":7,"insertions":83,"deletions":7,"files":["jc/parsers/traceroute.py","tests/fixtures/centos-7.7/traceroute.out","tests/fixtures/osx-10.14.6/traceroute-asn.out",".../osx-10.14.6/traceroute-mult-addresses.out",".../fixtures/osx-10.14.6/traceroute-no-header.out",".../osx-10.14.6/traceroute6-multi-address.out","tests/fixtures/osx-10.14.6/traceroute6.out"],"file_stats":[{"name":"jc/parsers/traceroute.py","lines_changed":30},{"name":"tests/fixtures/centos-7.7/traceroute.out","lines_changed":32},{"name":"tests/fixtures/osx-10.14.6/traceroute-asn.out","lines_changed":5},{"name":".../osx-10.14.6/traceroute-mult-addresses.out","lines_changed":5},{"name":".../fixtures/osx-10.14.6/traceroute-no-header.out","lines_changed":3},{"name":".../osx-10.14.6/traceroute6-multi-address.out","lines_changed":8},{"name":"tests/fixtures/osx-10.14.6/traceroute6.out","lines_changed":7}]}},{"commit":"5b444d4717b0b8528647e17e71d699907def3e18","message":"add traceroute parser","stats":{"files_changed":3,"insertions":307,"deletions":0,"files":["jc/cli.py","jc/parsers/traceroute.py","tests/fixtures/osx-10.14.6/traceroute.out"],"file_stats":[{"name":"jc/cli.py","lines_changed":1},{"name":"jc/parsers/traceroute.py","lines_changed":295},{"name":"tests/fixtures/osx-10.14.6/traceroute.out","lines_changed":11}]}},{"commit":"69c95adc8d59927c1c00b7e766ca5003b7b6454c","message":"add osx ipv6 ping dup test","stats":{"files_changed":3,"insertions":81,"deletions":0,"files":["tests/fixtures/osx-10.14.6/ping6-ip-dup.json","tests/fixtures/osx-10.14.6/ping6-ip-dup.out","tests/test_ping.py"],"file_stats":[{"name":"tests/fixtures/osx-10.14.6/ping6-ip-dup.json","lines_changed":1},{"name":"tests/fixtures/osx-10.14.6/ping6-ip-dup.out","lines_changed":68},{"name":"tests/test_ping.py","lines_changed":12}]}},{"commit":"2b0e0d8f5c1a6a5450e362971f9ad5892093b2ce","message":"add ipv6 dup test","stats":{"files_changed":3,"insertions":27,"deletions":0,"files":["tests/fixtures/centos-7.7/ping6-ip-dup.json","tests/fixtures/centos-7.7/ping6-ip-dup.out","tests/test_ping.py"],"file_stats":[{"name":"tests/fixtures/centos-7.7/ping6-ip-dup.json","lines_changed":1},{"name":"tests/fixtures/centos-7.7/ping6-ip-dup.out","lines_changed":14},{"name":"tests/test_ping.py","lines_changed":12}]}},{"commit":"778d1bacbf8df523d434b22f5e1517955e4c15ee","message":"update docs to add \"duplicates\" fields","stats":{"files_changed":2,"insertions":28,"deletions":12,"files":["docs/parsers/ping.md","jc/parsers/ping.py"],"file_stats":[{"name":"docs/parsers/ping.md","lines_changed":20},{"name":"jc/parsers/ping.py","lines_changed":20}]}},{"commit":"7e1b0410166c584775ebcd681a280ec7321560c7","message":"add duplicate replies tests","stats":{"files_changed":1,"insertions":24,"deletions":0,"files":["tests/test_ping.py"],"file_stats":[{"name":"tests/test_ping.py","lines_changed":24}]}},{"commit":"313b9b329ca6b674069718839f55a4bd7834db80","message":"update fixtures for added 'duplicate' fields","stats":{"files_changed":55,"insertions":55,"deletions":53,"files":["tests/fixtures/centos-7.7/ping-hostname-O-D-p-s.json","tests/fixtures/centos-7.7/ping-hostname-O-p.json","tests/fixtures/centos-7.7/ping-hostname-O.json","tests/fixtures/centos-7.7/ping-ip-O-D.json","tests/fixtures/centos-7.7/ping-ip-O.json","tests/fixtures/centos-7.7/ping-ip-dup.json","tests/fixtures/centos-7.7/ping6-hostname-O-D-p-s.json","tests/fixtures/centos-7.7/ping6-hostname-O-p.json","tests/fixtures/centos-7.7/ping6-ip-O-D-p.json","tests/fixtures/centos-7.7/ping6-ip-O-p.json","tests/fixtures/fedora32/ping-hostname-O-D-p-s.json","tests/fixtures/fedora32/ping-hostname-O-p.json","tests/fixtures/fedora32/ping-hostname-O.json","tests/fixtures/fedora32/ping-ip-O-D.json","tests/fixtures/fedora32/ping-ip-O.json","tests/fixtures/fedora32/ping6-hostname-O-D-p-s.json","tests/fixtures/fedora32/ping6-hostname-O-D-p.json","tests/fixtures/fedora32/ping6-hostname-O-p.json","tests/fixtures/fedora32/ping6-ip-O-D-p.json","tests/fixtures/fedora32/ping6-ip-O-p.json","tests/fixtures/freebsd12/ping-hostname-p.json","tests/fixtures/freebsd12/ping-hostname-s.json","tests/fixtures/freebsd12/ping-hostname.json","tests/fixtures/freebsd12/ping-ip-p.json","tests/fixtures/freebsd12/ping-ip-s.json","tests/fixtures/freebsd12/ping-ip.json","tests/fixtures/freebsd12/ping6-hostname-p.json","tests/fixtures/freebsd12/ping6-hostname-s.json","tests/fixtures/freebsd12/ping6-hostname.json","tests/fixtures/freebsd12/ping6-ip-p.json","tests/fixtures/freebsd12/ping6-ip-s.json","tests/fixtures/freebsd12/ping6-ip.json","tests/fixtures/osx-10.14.6/ping-hostname-p.json","tests/fixtures/osx-10.14.6/ping-hostname-s.json","tests/fixtures/osx-10.14.6/ping-hostname.json","tests/fixtures/osx-10.14.6/ping-ip-dup.json","tests/fixtures/osx-10.14.6/ping-ip-p.json","tests/fixtures/osx-10.14.6/ping-ip-s.json","tests/fixtures/osx-10.14.6/ping-ip.json","tests/fixtures/osx-10.14.6/ping6-hostname-p.json","tests/fixtures/osx-10.14.6/ping6-hostname-s.json","tests/fixtures/osx-10.14.6/ping6-hostname.json","tests/fixtures/osx-10.14.6/ping6-ip-p.json","tests/fixtures/osx-10.14.6/ping6-ip-s.json","tests/fixtures/osx-10.14.6/ping6-ip.json","tests/fixtures/ubuntu-18.04/ping-hostname-O-D-p-s.json","tests/fixtures/ubuntu-18.04/ping-hostname-O-p.json","tests/fixtures/ubuntu-18.04/ping-hostname-O.json","tests/fixtures/ubuntu-18.04/ping-ip-O-D.json","tests/fixtures/ubuntu-18.04/ping-ip-O.json","tests/fixtures/ubuntu-18.04/ping6-hostname-O-D-p-s.json","tests/fixtures/ubuntu-18.04/ping6-hostname-O-D-p.json","tests/fixtures/ubuntu-18.04/ping6-hostname-O-p.json","tests/fixtures/ubuntu-18.04/ping6-ip-O-D-p.json","tests/fixtures/ubuntu-18.04/ping6-ip-O-p.json"],"file_stats":[{"name":"tests/fixtures/centos-7.7/ping-hostname-O-D-p-s.json","lines_changed":2},{"name":"tests/fixtures/centos-7.7/ping-hostname-O-p.json","lines_changed":2},{"name":"tests/fixtures/centos-7.7/ping-hostname-O.json","lines_changed":2},{"name":"tests/fixtures/centos-7.7/ping-ip-O-D.json","lines_changed":2},{"name":"tests/fixtures/centos-7.7/ping-ip-O.json","lines_changed":2},{"name":"tests/fixtures/centos-7.7/ping-ip-dup.json","lines_changed":1},{"name":"tests/fixtures/centos-7.7/ping6-hostname-O-D-p-s.json","lines_changed":2},{"name":"tests/fixtures/centos-7.7/ping6-hostname-O-p.json","lines_changed":2},{"name":"tests/fixtures/centos-7.7/ping6-ip-O-D-p.json","lines_changed":2},{"name":"tests/fixtures/centos-7.7/ping6-ip-O-p.json","lines_changed":2},{"name":"tests/fixtures/fedora32/ping-hostname-O-D-p-s.json","lines_changed":2},{"name":"tests/fixtures/fedora32/ping-hostname-O-p.json","lines_changed":2},{"name":"tests/fixtures/fedora32/ping-hostname-O.json","lines_changed":2},{"name":"tests/fixtures/fedora32/ping-ip-O-D.json","lines_changed":2},{"name":"tests/fixtures/fedora32/ping-ip-O.json","lines_changed":2},{"name":"tests/fixtures/fedora32/ping6-hostname-O-D-p-s.json","lines_changed":2},{"name":"tests/fixtures/fedora32/ping6-hostname-O-D-p.json","lines_changed":2},{"name":"tests/fixtures/fedora32/ping6-hostname-O-p.json","lines_changed":2},{"name":"tests/fixtures/fedora32/ping6-ip-O-D-p.json","lines_changed":2},{"name":"tests/fixtures/fedora32/ping6-ip-O-p.json","lines_changed":2},{"name":"tests/fixtures/freebsd12/ping-hostname-p.json","lines_changed":2},{"name":"tests/fixtures/freebsd12/ping-hostname-s.json","lines_changed":2},{"name":"tests/fixtures/freebsd12/ping-hostname.json","lines_changed":2},{"name":"tests/fixtures/freebsd12/ping-ip-p.json","lines_changed":2},{"name":"tests/fixtures/freebsd12/ping-ip-s.json","lines_changed":2},{"name":"tests/fixtures/freebsd12/ping-ip.json","lines_changed":2},{"name":"tests/fixtures/freebsd12/ping6-hostname-p.json","lines_changed":2},{"name":"tests/fixtures/freebsd12/ping6-hostname-s.json","lines_changed":2},{"name":"tests/fixtures/freebsd12/ping6-hostname.json","lines_changed":2},{"name":"tests/fixtures/freebsd12/ping6-ip-p.json","lines_changed":2},{"name":"tests/fixtures/freebsd12/ping6-ip-s.json","lines_changed":2},{"name":"tests/fixtures/freebsd12/ping6-ip.json","lines_changed":2},{"name":"tests/fixtures/osx-10.14.6/ping-hostname-p.json","lines_changed":2},{"name":"tests/fixtures/osx-10.14.6/ping-hostname-s.json","lines_changed":2},{"name":"tests/fixtures/osx-10.14.6/ping-hostname.json","lines_changed":2},{"name":"tests/fixtures/osx-10.14.6/ping-ip-dup.json","lines_changed":1},{"name":"tests/fixtures/osx-10.14.6/ping-ip-p.json","lines_changed":2},{"name":"tests/fixtures/osx-10.14.6/ping-ip-s.json","lines_changed":2},{"name":"tests/fixtures/osx-10.14.6/ping-ip.json","lines_changed":2},{"name":"tests/fixtures/osx-10.14.6/ping6-hostname-p.json","lines_changed":2},{"name":"tests/fixtures/osx-10.14.6/ping6-hostname-s.json","lines_changed":2},{"name":"tests/fixtures/osx-10.14.6/ping6-hostname.json","lines_changed":2},{"name":"tests/fixtures/osx-10.14.6/ping6-ip-p.json","lines_changed":2},{"name":"tests/fixtures/osx-10.14.6/ping6-ip-s.json","lines_changed":2},{"name":"tests/fixtures/osx-10.14.6/ping6-ip.json","lines_changed":2},{"name":"tests/fixtures/ubuntu-18.04/ping-hostname-O-D-p-s.json","lines_changed":2},{"name":"tests/fixtures/ubuntu-18.04/ping-hostname-O-p.json","lines_changed":2},{"name":"tests/fixtures/ubuntu-18.04/ping-hostname-O.json","lines_changed":2},{"name":"tests/fixtures/ubuntu-18.04/ping-ip-O-D.json","lines_changed":2},{"name":"tests/fixtures/ubuntu-18.04/ping-ip-O.json","lines_changed":2},{"name":"tests/fixtures/ubuntu-18.04/ping6-hostname-O-D-p-s.json","lines_changed":2},{"name":"tests/fixtures/ubuntu-18.04/ping6-hostname-O-D-p.json","lines_changed":2},{"name":"tests/fixtures/ubuntu-18.04/ping6-hostname-O-p.json","lines_changed":2},{"name":"tests/fixtures/ubuntu-18.04/ping6-ip-O-D-p.json","lines_changed":2},{"name":"tests/fixtures/ubuntu-18.04/ping6-ip-O-p.json","lines_changed":2}]}},{"commit":"6830062256fbc453f87224f7ab8c10e4494b5a83","message":"add support for duplicate replies","stats":{"files_changed":4,"insertions":112,"deletions":24,"files":["docs/parsers/ping.md","jc/parsers/ping.py","tests/fixtures/centos-7.7/ping-ip-dup.out","tests/fixtures/osx-10.14.6/ping-ip-dup.out"],"file_stats":[{"name":"docs/parsers/ping.md","lines_changed":6},{"name":"jc/parsers/ping.py","lines_changed":83},{"name":"tests/fixtures/centos-7.7/ping-ip-dup.out","lines_changed":27},{"name":"tests/fixtures/osx-10.14.6/ping-ip-dup.out","lines_changed":20}]}},{"commit":"323072c9827c41c5d74433504b5efceb846cfe09","message":"add source_ip to schema doc","stats":{"files_changed":2,"insertions":2,"deletions":0,"files":["docs/parsers/ping.md","jc/parsers/ping.py"],"file_stats":[{"name":"docs/parsers/ping.md","lines_changed":1},{"name":"jc/parsers/ping.py","lines_changed":1}]}},{"commit":"8719d96bddec80187e7ba3286ba93bfec8465744","message":"change description","stats":{"files_changed":1,"insertions":1,"deletions":1,"files":["jc/cli.py"],"file_stats":[{"name":"jc/cli.py","lines_changed":2}]}},{"commit":"dd5d318ab5bbb1027dd600fd3b0b6ec9b8adfdc3","message":"version bump and add ping command","stats":{"files_changed":1,"insertions":5,"deletions":1,"files":["man/jc.1"],"file_stats":[{"name":"man/jc.1","lines_changed":6}]}},{"commit":"d6dc7f5e65c097895c19000e59e8803a3b350fdc","message":"add osx ping tests","stats":{"files_changed":13,"insertions":135,"deletions":29,"files":["tests/fixtures/osx-10.14.6/ping-hostname-p.json","tests/fixtures/osx-10.14.6/ping-hostname-s.json","tests/fixtures/osx-10.14.6/ping-hostname.json","tests/fixtures/osx-10.14.6/ping-ip-p.json","tests/fixtures/osx-10.14.6/ping-ip-s.json","tests/fixtures/osx-10.14.6/ping-ip.json","tests/fixtures/osx-10.14.6/ping6-hostname-p.json","tests/fixtures/osx-10.14.6/ping6-hostname-s.json","tests/fixtures/osx-10.14.6/ping6-hostname.json","tests/fixtures/osx-10.14.6/ping6-ip-p.json","tests/fixtures/osx-10.14.6/ping6-ip-s.json","tests/fixtures/osx-10.14.6/ping6-ip.json","tests/test_ping.py"],"file_stats":[{"name":"tests/fixtures/osx-10.14.6/ping-hostname-p.json","lines_changed":1},{"name":"tests/fixtures/osx-10.14.6/ping-hostname-s.json","lines_changed":1},{"name":"tests/fixtures/osx-10.14.6/ping-hostname.json","lines_changed":1},{"name":"tests/fixtures/osx-10.14.6/ping-ip-p.json","lines_changed":1},{"name":"tests/fixtures/osx-10.14.6/ping-ip-s.json","lines_changed":1},{"name":"tests/fixtures/osx-10.14.6/ping-ip.json","lines_changed":1},{"name":"tests/fixtures/osx-10.14.6/ping6-hostname-p.json","lines_changed":1},{"name":"tests/fixtures/osx-10.14.6/ping6-hostname-s.json","lines_changed":1},{"name":"tests/fixtures/osx-10.14.6/ping6-hostname.json","lines_changed":1},{"name":"tests/fixtures/osx-10.14.6/ping6-ip-p.json","lines_changed":1},{"name":"tests/fixtures/osx-10.14.6/ping6-ip-s.json","lines_changed":1},{"name":"tests/fixtures/osx-10.14.6/ping6-ip.json","lines_changed":1},{"name":"tests/test_ping.py","lines_changed":152}]}},{"commit":"c203664eb5aafa0afa3101b79e3fd13b3e009ec5","message":"freebsd ping tests","stats":{"files_changed":13,"insertions":171,"deletions":9,"files":["tests/fixtures/freebsd12/ping-hostname-p.json","tests/fixtures/freebsd12/ping-hostname-s.json","tests/fixtures/freebsd12/ping-hostname.json","tests/fixtures/freebsd12/ping-ip-p.json","tests/fixtures/freebsd12/ping-ip-s.json","tests/fixtures/freebsd12/ping-ip.json","tests/fixtures/freebsd12/ping6-hostname-p.json","tests/fixtures/freebsd12/ping6-hostname-s.json","tests/fixtures/freebsd12/ping6-hostname.json","tests/fixtures/freebsd12/ping6-ip-p.json","tests/fixtures/freebsd12/ping6-ip-s.json","tests/fixtures/freebsd12/ping6-ip.json","tests/test_ping.py"],"file_stats":[{"name":"tests/fixtures/freebsd12/ping-hostname-p.json","lines_changed":1},{"name":"tests/fixtures/freebsd12/ping-hostname-s.json","lines_changed":1},{"name":"tests/fixtures/freebsd12/ping-hostname.json","lines_changed":1},{"name":"tests/fixtures/freebsd12/ping-ip-p.json","lines_changed":1},{"name":"tests/fixtures/freebsd12/ping-ip-s.json","lines_changed":1},{"name":"tests/fixtures/freebsd12/ping-ip.json","lines_changed":1},{"name":"tests/fixtures/freebsd12/ping6-hostname-p.json","lines_changed":1},{"name":"tests/fixtures/freebsd12/ping6-hostname-s.json","lines_changed":1},{"name":"tests/fixtures/freebsd12/ping6-hostname.json","lines_changed":1},{"name":"tests/fixtures/freebsd12/ping6-ip-p.json","lines_changed":1},{"name":"tests/fixtures/freebsd12/ping6-ip-s.json","lines_changed":1},{"name":"tests/fixtures/freebsd12/ping6-ip.json","lines_changed":1},{"name":"tests/test_ping.py","lines_changed":168}]}},{"commit":"19ecf1fa19e9fa0873002baf07fa670b71ed7752","message":"add Fedora32 tests","stats":{"files_changed":11,"insertions":118,"deletions":0,"files":["tests/fixtures/fedora32/ping-hostname-O-D-p-s.json","tests/fixtures/fedora32/ping-hostname-O-p.json","tests/fixtures/fedora32/ping-hostname-O.json","tests/fixtures/fedora32/ping-ip-O-D.json","tests/fixtures/fedora32/ping-ip-O.json",".../fixtures/fedora32/ping6-hostname-O-D-p-s.json","tests/fixtures/fedora32/ping6-hostname-O-D-p.json","tests/fixtures/fedora32/ping6-hostname-O-p.json","tests/fixtures/fedora32/ping6-ip-O-D-p.json","tests/fixtures/fedora32/ping6-ip-O-p.json","tests/test_ping.py"],"file_stats":[{"name":"tests/fixtures/fedora32/ping-hostname-O-D-p-s.json","lines_changed":1},{"name":"tests/fixtures/fedora32/ping-hostname-O-p.json","lines_changed":1},{"name":"tests/fixtures/fedora32/ping-hostname-O.json","lines_changed":1},{"name":"tests/fixtures/fedora32/ping-ip-O-D.json","lines_changed":1},{"name":"tests/fixtures/fedora32/ping-ip-O.json","lines_changed":1},{"name":".../fixtures/fedora32/ping6-hostname-O-D-p-s.json","lines_changed":1},{"name":"tests/fixtures/fedora32/ping6-hostname-O-D-p.json","lines_changed":1},{"name":"tests/fixtures/fedora32/ping6-hostname-O-p.json","lines_changed":1},{"name":"tests/fixtures/fedora32/ping6-ip-O-D-p.json","lines_changed":1},{"name":"tests/fixtures/fedora32/ping6-ip-O-p.json","lines_changed":1},{"name":"tests/test_ping.py","lines_changed":108}]}},{"commit":"b8deb0426cc23333c0e0a9dc3776d9761d99abb0","message":"add ubuntu ping tests","stats":{"files_changed":11,"insertions":119,"deletions":8,"files":[".../ubuntu-18.04/ping-hostname-O-D-p-s.json","tests/fixtures/ubuntu-18.04/ping-hostname-O-p.json","tests/fixtures/ubuntu-18.04/ping-hostname-O.json","tests/fixtures/ubuntu-18.04/ping-ip-O-D.json","tests/fixtures/ubuntu-18.04/ping-ip-O.json",".../ubuntu-18.04/ping6-hostname-O-D-p-s.json",".../ubuntu-18.04/ping6-hostname-O-D-p.json",".../fixtures/ubuntu-18.04/ping6-hostname-O-p.json","tests/fixtures/ubuntu-18.04/ping6-ip-O-D-p.json","tests/fixtures/ubuntu-18.04/ping6-ip-O-p.json","tests/test_ping.py"],"file_stats":[{"name":".../ubuntu-18.04/ping-hostname-O-D-p-s.json","lines_changed":1},{"name":"tests/fixtures/ubuntu-18.04/ping-hostname-O-p.json","lines_changed":1},{"name":"tests/fixtures/ubuntu-18.04/ping-hostname-O.json","lines_changed":1},{"name":"tests/fixtures/ubuntu-18.04/ping-ip-O-D.json","lines_changed":1},{"name":"tests/fixtures/ubuntu-18.04/ping-ip-O.json","lines_changed":1},{"name":".../ubuntu-18.04/ping6-hostname-O-D-p-s.json","lines_changed":1},{"name":".../ubuntu-18.04/ping6-hostname-O-D-p.json","lines_changed":1},{"name":".../fixtures/ubuntu-18.04/ping6-hostname-O-p.json","lines_changed":1},{"name":"tests/fixtures/ubuntu-18.04/ping6-ip-O-D-p.json","lines_changed":1},{"name":"tests/fixtures/ubuntu-18.04/ping6-ip-O-p.json","lines_changed":1},{"name":"tests/test_ping.py","lines_changed":117}]}},{"commit":"3b8371f0208a097cb8a1c026348d3842e6702b9c","message":"add centos ping tests","stats":{"files_changed":10,"insertions":202,"deletions":0,"files":[".../fixtures/centos-7.7/ping-hostname-O-D-p-s.json","tests/fixtures/centos-7.7/ping-hostname-O-p.json","tests/fixtures/centos-7.7/ping-hostname-O.json","tests/fixtures/centos-7.7/ping-ip-O-D.json","tests/fixtures/centos-7.7/ping-ip-O.json",".../centos-7.7/ping6-hostname-O-D-p-s.json","tests/fixtures/centos-7.7/ping6-hostname-O-p.json","tests/fixtures/centos-7.7/ping6-ip-O-D-p.json","tests/fixtures/centos-7.7/ping6-ip-O-p.json","tests/test_ping.py"],"file_stats":[{"name":".../fixtures/centos-7.7/ping-hostname-O-D-p-s.json","lines_changed":1},{"name":"tests/fixtures/centos-7.7/ping-hostname-O-p.json","lines_changed":1},{"name":"tests/fixtures/centos-7.7/ping-hostname-O.json","lines_changed":1},{"name":"tests/fixtures/centos-7.7/ping-ip-O-D.json","lines_changed":1},{"name":"tests/fixtures/centos-7.7/ping-ip-O.json","lines_changed":1},{"name":".../centos-7.7/ping6-hostname-O-D-p-s.json","lines_changed":1},{"name":"tests/fixtures/centos-7.7/ping6-hostname-O-p.json","lines_changed":1},{"name":"tests/fixtures/centos-7.7/ping6-ip-O-D-p.json","lines_changed":1},{"name":"tests/fixtures/centos-7.7/ping6-ip-O-p.json","lines_changed":1},{"name":"tests/test_ping.py","lines_changed":193}]}},{"commit":"20bb1cdf396abdb3707b34fa146cbe913f9bbd6f","message":"add TypeError to except for None values","stats":{"files_changed":1,"insertions":4,"deletions":4,"files":["jc/parsers/ping.py"],"file_stats":[{"name":"jc/parsers/ping.py","lines_changed":8}]}},{"commit":"301daa48d0bfc28f97c8e46f028f8c6b875bf34e","message":"update documentation","stats":{"files_changed":2,"insertions":114,"deletions":16,"files":["docs/parsers/ping.md","jc/parsers/ping.py"],"file_stats":[{"name":"docs/parsers/ping.md","lines_changed":128},{"name":"jc/parsers/ping.py","lines_changed":2}]}},{"commit":"8421ec88033e02f472e4961d87551a0352663a16","message":"remove cygwin compatibility","stats":{"files_changed":1,"insertions":2,"deletions":2,"files":["jc/parsers/ping.py"],"file_stats":[{"name":"jc/parsers/ping.py","lines_changed":4}]}},{"commit":"74211eb0129f6aa655a38ba4d4d8844d81441107","message":"add examples","stats":{"files_changed":1,"insertions":82,"deletions":5,"files":["jc/parsers/ping.py"],"file_stats":[{"name":"jc/parsers/ping.py","lines_changed":87}]}},{"commit":"60bd42f298f309cbec6d24c9543ea3d51bd73b18","message":"add process() logic","stats":{"files_changed":1,"insertions":59,"deletions":11,"files":["jc/parsers/ping.py"],"file_stats":[{"name":"jc/parsers/ping.py","lines_changed":70}]}},{"commit":"14bdd74526e400997c5bc247ea35ed40799e83ff","message":"add ping test fixtures","stats":{"files_changed":12,"insertions":100,"deletions":0,"files":["tests/fixtures/freebsd12/ping-hostname-p.out","tests/fixtures/freebsd12/ping-hostname-s.out","tests/fixtures/freebsd12/ping-hostname.out","tests/fixtures/freebsd12/ping-ip-p.out","tests/fixtures/freebsd12/ping-ip-s.out","tests/fixtures/freebsd12/ping-ip.out","tests/fixtures/freebsd12/ping6-hostname-p.out","tests/fixtures/freebsd12/ping6-hostname-s.out","tests/fixtures/freebsd12/ping6-hostname.out","tests/fixtures/freebsd12/ping6-ip-p.out","tests/fixtures/freebsd12/ping6-ip-s.out","tests/fixtures/freebsd12/ping6-ip.out"],"file_stats":[{"name":"tests/fixtures/freebsd12/ping-hostname-p.out","lines_changed":9},{"name":"tests/fixtures/freebsd12/ping-hostname-s.out","lines_changed":8},{"name":"tests/fixtures/freebsd12/ping-hostname.out","lines_changed":8},{"name":"tests/fixtures/freebsd12/ping-ip-p.out","lines_changed":9},{"name":"tests/fixtures/freebsd12/ping-ip-s.out","lines_changed":8},{"name":"tests/fixtures/freebsd12/ping-ip.out","lines_changed":8},{"name":"tests/fixtures/freebsd12/ping6-hostname-p.out","lines_changed":9},{"name":"tests/fixtures/freebsd12/ping6-hostname-s.out","lines_changed":8},{"name":"tests/fixtures/freebsd12/ping6-hostname.out","lines_changed":8},{"name":"tests/fixtures/freebsd12/ping6-ip-p.out","lines_changed":9},{"name":"tests/fixtures/freebsd12/ping6-ip-s.out","lines_changed":8},{"name":"tests/fixtures/freebsd12/ping6-ip.out","lines_changed":8}]}},{"commit":"fb0f3eda04a4b1dbb81da7d5791cbfe746bfd617","message":"add ping commands","stats":{"files_changed":1,"insertions":16,"deletions":0,"files":["tests/fixtures/create_fixtures.sh"],"file_stats":[{"name":"tests/fixtures/create_fixtures.sh","lines_changed":16}]}},{"commit":"91ee6e6701307363336a39f9e16641465ddd05c2","message":"add osx ping test fixtures","stats":{"files_changed":12,"insertions":100,"deletions":0,"files":["tests/fixtures/osx-10.14.6/ping-hostname-p.out","tests/fixtures/osx-10.14.6/ping-hostname-s.out","tests/fixtures/osx-10.14.6/ping-hostname.out","tests/fixtures/osx-10.14.6/ping-ip-p.out","tests/fixtures/osx-10.14.6/ping-ip-s.out","tests/fixtures/osx-10.14.6/ping-ip.out","tests/fixtures/osx-10.14.6/ping6-hostname-p.out","tests/fixtures/osx-10.14.6/ping6-hostname-s.out","tests/fixtures/osx-10.14.6/ping6-hostname.out","tests/fixtures/osx-10.14.6/ping6-ip-p.out","tests/fixtures/osx-10.14.6/ping6-ip-s.out","tests/fixtures/osx-10.14.6/ping6-ip.out"],"file_stats":[{"name":"tests/fixtures/osx-10.14.6/ping-hostname-p.out","lines_changed":9},{"name":"tests/fixtures/osx-10.14.6/ping-hostname-s.out","lines_changed":8},{"name":"tests/fixtures/osx-10.14.6/ping-hostname.out","lines_changed":8},{"name":"tests/fixtures/osx-10.14.6/ping-ip-p.out","lines_changed":9},{"name":"tests/fixtures/osx-10.14.6/ping-ip-s.out","lines_changed":8},{"name":"tests/fixtures/osx-10.14.6/ping-ip.out","lines_changed":8},{"name":"tests/fixtures/osx-10.14.6/ping6-hostname-p.out","lines_changed":9},{"name":"tests/fixtures/osx-10.14.6/ping6-hostname-s.out","lines_changed":8},{"name":"tests/fixtures/osx-10.14.6/ping6-hostname.out","lines_changed":8},{"name":"tests/fixtures/osx-10.14.6/ping6-ip-p.out","lines_changed":9},{"name":"tests/fixtures/osx-10.14.6/ping6-ip-s.out","lines_changed":8},{"name":"tests/fixtures/osx-10.14.6/ping6-ip.out","lines_changed":8}]}},{"commit":"51f4e6927c68a7e2a26954f564d10d316b98a984","message":"add support for pattern in osx/bsd","stats":{"files_changed":1,"insertions":12,"deletions":3,"files":["jc/parsers/ping.py"],"file_stats":[{"name":"jc/parsers/ping.py","lines_changed":15}]}},{"commit":"94988d86674293faddc6f7e7c82575738d2dc791","message":"add fedora ping fixtures","stats":{"files_changed":10,"insertions":257,"deletions":0,"files":["tests/fixtures/fedora32/ping-hostname-O-D-p-s.out","tests/fixtures/fedora32/ping-hostname-O-p.out","tests/fixtures/fedora32/ping-hostname-O.out","tests/fixtures/fedora32/ping-ip-O-D.out","tests/fixtures/fedora32/ping-ip-O.out","tests/fixtures/fedora32/ping6-hostname-O-D-p-s.out","tests/fixtures/fedora32/ping6-hostname-O-D-p.out","tests/fixtures/fedora32/ping6-hostname-O-p.out","tests/fixtures/fedora32/ping6-ip-O-D-p.out","tests/fixtures/fedora32/ping6-ip-O-p.out"],"file_stats":[{"name":"tests/fixtures/fedora32/ping-hostname-O-D-p-s.out","lines_changed":26},{"name":"tests/fixtures/fedora32/ping-hostname-O-p.out","lines_changed":26},{"name":"tests/fixtures/fedora32/ping-hostname-O.out","lines_changed":25},{"name":"tests/fixtures/fedora32/ping-ip-O-D.out","lines_changed":25},{"name":"tests/fixtures/fedora32/ping-ip-O.out","lines_changed":25},{"name":"tests/fixtures/fedora32/ping6-hostname-O-D-p-s.out","lines_changed":26},{"name":"tests/fixtures/fedora32/ping6-hostname-O-D-p.out","lines_changed":26},{"name":"tests/fixtures/fedora32/ping6-hostname-O-p.out","lines_changed":26},{"name":"tests/fixtures/fedora32/ping6-ip-O-D-p.out","lines_changed":26},{"name":"tests/fixtures/fedora32/ping6-ip-O-p.out","lines_changed":26}]}},{"commit":"fe36f5a98cd3ee7753e250b6553e4453d971f929","message":"add fixtures for ping","stats":{"files_changed":13,"insertions":318,"deletions":0,"files":["tests/fixtures/centos-7.7/ping-ip-O-D.out","tests/fixtures/centos-7.7/ping-ip-O.out","tests/fixtures/create_fixtures.sh",".../ubuntu-18.04/ping-hostname-O-D-p-s.out","tests/fixtures/ubuntu-18.04/ping-hostname-O-p.out","tests/fixtures/ubuntu-18.04/ping-hostname-O.out","tests/fixtures/ubuntu-18.04/ping-ip-O-D.out","tests/fixtures/ubuntu-18.04/ping-ip-O.out",".../ubuntu-18.04/ping6-hostname-O-D-p-s.out",".../fixtures/ubuntu-18.04/ping6-hostname-O-D-p.out","tests/fixtures/ubuntu-18.04/ping6-hostname-O-p.out","tests/fixtures/ubuntu-18.04/ping6-ip-O-D-p.out","tests/fixtures/ubuntu-18.04/ping6-ip-O-p.out"],"file_stats":[{"name":"tests/fixtures/centos-7.7/ping-ip-O-D.out","lines_changed":25},{"name":"tests/fixtures/centos-7.7/ping-ip-O.out","lines_changed":25},{"name":"tests/fixtures/create_fixtures.sh","lines_changed":12},{"name":".../ubuntu-18.04/ping-hostname-O-D-p-s.out","lines_changed":26},{"name":"tests/fixtures/ubuntu-18.04/ping-hostname-O-p.out","lines_changed":26},{"name":"tests/fixtures/ubuntu-18.04/ping-hostname-O.out","lines_changed":25},{"name":"tests/fixtures/ubuntu-18.04/ping-ip-O-D.out","lines_changed":25},{"name":"tests/fixtures/ubuntu-18.04/ping-ip-O.out","lines_changed":25},{"name":".../ubuntu-18.04/ping6-hostname-O-D-p-s.out","lines_changed":26},{"name":".../fixtures/ubuntu-18.04/ping6-hostname-O-D-p.out","lines_changed":26},{"name":"tests/fixtures/ubuntu-18.04/ping6-hostname-O-p.out","lines_changed":26},{"name":"tests/fixtures/ubuntu-18.04/ping6-ip-O-D-p.out","lines_changed":26},{"name":"tests/fixtures/ubuntu-18.04/ping6-ip-O-p.out","lines_changed":25}]}},{"commit":"f9eb18b9271b2428dd82f2dc26d3fa0435dad81d","message":"change 'request_timeout' field to 'type', fix compatibility, other formatting fixes","stats":{"files_changed":1,"insertions":8,"deletions":9,"files":["jc/parsers/ping.py"],"file_stats":[{"name":"jc/parsers/ping.py","lines_changed":17}]}},{"commit":"cc60f3674822c644933f286a0364b09d7e2a60b3","message":"add ping parser","stats":{"files_changed":3,"insertions":67,"deletions":1,"files":["docgen.sh","docs/parsers/ping.md","jc/cli.py"],"file_stats":[{"name":"docgen.sh","lines_changed":1},{"name":"docs/parsers/ping.md","lines_changed":64},{"name":"jc/cli.py","lines_changed":3}]}},{"commit":"604ade791f7bd33b37f64916befba27a2ea08b5b","message":"add ping parser","stats":{"files_changed":8,"insertions":506,"deletions":0,"files":["jc/parsers/ping.py",".../fixtures/centos-7.7/ping-hostname-O-D-p-s.out","tests/fixtures/centos-7.7/ping-hostname-O-p.out","tests/fixtures/centos-7.7/ping-hostname-O.out",".../fixtures/centos-7.7/ping6-hostname-O-D-p-s.out","tests/fixtures/centos-7.7/ping6-hostname-O-p.out","tests/fixtures/centos-7.7/ping6-ip-O-D-p.out","tests/fixtures/centos-7.7/ping6-ip-O-p.out"],"file_stats":[{"name":"jc/parsers/ping.py","lines_changed":325},{"name":".../fixtures/centos-7.7/ping-hostname-O-D-p-s.out","lines_changed":26},{"name":"tests/fixtures/centos-7.7/ping-hostname-O-p.out","lines_changed":26},{"name":"tests/fixtures/centos-7.7/ping-hostname-O.out","lines_changed":25},{"name":".../fixtures/centos-7.7/ping6-hostname-O-D-p-s.out","lines_changed":26},{"name":"tests/fixtures/centos-7.7/ping6-hostname-O-p.out","lines_changed":26},{"name":"tests/fixtures/centos-7.7/ping6-ip-O-D-p.out","lines_changed":26},{"name":"tests/fixtures/centos-7.7/ping6-ip-O-p.out","lines_changed":26}]}},{"commit":"690ac52a917200e46eac2feafc9f504f2734301c","message":"add man page","stats":{"files_changed":1,"insertions":261,"deletions":0,"files":["man/jc.1"],"file_stats":[{"name":"man/jc.1","lines_changed":261}]}},{"commit":"34ed772775f1f02ed148f24a3bfff532bc811607","message":"version bump","stats":{"files_changed":3,"insertions":5,"deletions":2,"files":["changelog.txt","jc/cli.py","setup.py"],"file_stats":[{"name":"changelog.txt","lines_changed":3},{"name":"jc/cli.py","lines_changed":2},{"name":"setup.py","lines_changed":2}]}},{"commit":"d5ab95571f64f55d8194e9e5592ac538bb535229","message":"fix tests when using older versions of pygments","stats":{"files_changed":1,"insertions":26,"deletions":11,"files":["tests/test_cli.py"],"file_stats":[{"name":"tests/test_cli.py","lines_changed":37}]}},{"commit":"ffb3a0ee5fb30a3f61d6cbedf877ab04acdbf624","message":"Merge pull request #73 from kellyjonbrazil/dev"},{"commit":"94b12b57aaa56170d1f31f4910fd1239f88de137","message":"spelling","stats":{"files_changed":1,"insertions":1,"deletions":1,"files":["changelog.txt"],"file_stats":[{"name":"changelog.txt","lines_changed":2}]}},{"commit":"6d149e84571d5d6dd1d8a1f219ba299de5173779","message":"version bump","stats":{"files_changed":2,"insertions":8,"deletions":1,"files":["changelog.txt","setup.py"],"file_stats":[{"name":"changelog.txt","lines_changed":7},{"name":"setup.py","lines_changed":2}]}},{"commit":"1ad89c90d890039b817f65b2635db1b5e849a9e7","message":"add pacman","stats":{"files_changed":1,"insertions":1,"deletions":1,"files":["README.md"],"file_stats":[{"name":"README.md","lines_changed":2}]}},{"commit":"fb71c7b020bc1eda9484595f30b0200a4f59aa45","message":"function name spelling","stats":{"files_changed":1,"insertions":1,"deletions":1,"files":["tests/test_cli.py"],"file_stats":[{"name":"tests/test_cli.py","lines_changed":2}]}},{"commit":"28ed17ad3bce866e5dc0179ef5de43380ac6ace1","message":"add parser_count test to test_cli_about_jc","stats":{"files_changed":1,"insertions":1,"deletions":0,"files":["tests/test_cli.py"],"file_stats":[{"name":"tests/test_cli.py","lines_changed":1}]}},{"commit":"0c2a4e2bf71dca50d4a9bb27ca99944909c022ff","message":"add cli tests","stats":{"files_changed":1,"insertions":37,"deletions":0,"files":["tests/test_cli.py"],"file_stats":[{"name":"tests/test_cli.py","lines_changed":37}]}},{"commit":"62bec30de2f1a303f2ec411d89f7f9f9c6d1abaf","message":"add json_out tests","stats":{"files_changed":1,"insertions":20,"deletions":0,"files":["tests/test_cli.py"],"file_stats":[{"name":"tests/test_cli.py","lines_changed":20}]}},{"commit":"3fced77e4e258dbf7db94a313e599c830a597b49","message":"add set_env_colors tests","stats":{"files_changed":1,"insertions":98,"deletions":1,"files":["tests/test_cli.py"],"file_stats":[{"name":"tests/test_cli.py","lines_changed":99}]}},{"commit":"a09d1d8b7687912610598c88d172733d5e29b1ce","message":"move environment variable assignment to main() to simplify tests","stats":{"files_changed":1,"insertions":7,"deletions":6,"files":["jc/cli.py"],"file_stats":[{"name":"jc/cli.py","lines_changed":13}]}},{"commit":"8f4243fbd8d70ca9fd019e984c564e37c81e07db","message":"formatting","stats":{"files_changed":1,"insertions":0,"deletions":1,"files":["README.md"],"file_stats":[{"name":"README.md","lines_changed":1}]}},{"commit":"47aaf20549ea238443427e69d5841d6996b7afab","message":"add sysctl command parser","stats":{"files_changed":1,"insertions":17,"deletions":0,"files":["README.md"],"file_stats":[{"name":"README.md","lines_changed":17}]}},{"commit":"0c5289ea50e4d3d35e80147b4cad32434c19a2a0","message":"add sysctl tests","stats":{"files_changed":3,"insertions":72,"deletions":2,"files":["tests/fixtures/freebsd12/sysctl-a.json","tests/fixtures/osx-10.14.6/sysctl-a.json","tests/test_sysctl.py"],"file_stats":[{"name":"tests/fixtures/freebsd12/sysctl-a.json","lines_changed":2},{"name":"tests/fixtures/osx-10.14.6/sysctl-a.json","lines_changed":2},{"name":"tests/test_sysctl.py","lines_changed":70}]}},{"commit":"3e53323514906fb84abfaeed0c2ee1fd9090ad8d","message":"don't filter out empty lines","stats":{"files_changed":1,"insertions":1,"deletions":1,"files":["jc/parsers/sysctl.py"],"file_stats":[{"name":"jc/parsers/sysctl.py","lines_changed":2}]}},{"commit":"a5ee9861b9b9b479aee59ea5b1d75f20d7c3c8e7","message":"update fixtures","stats":{"files_changed":3,"insertions":3785,"deletions":1,"files":["tests/fixtures/freebsd12/sysctl-a.json","tests/fixtures/freebsd12/sysctl-a.out","tests/fixtures/osx-10.14.6/sysctl-a.json"],"file_stats":[{"name":"tests/fixtures/freebsd12/sysctl-a.json","lines_changed":1},{"name":"tests/fixtures/freebsd12/sysctl-a.out","lines_changed":3783},{"name":"tests/fixtures/osx-10.14.6/sysctl-a.json","lines_changed":2}]}},{"commit":"feb8ca76545cba4fd0927273ddf90a77df994006","message":"spelling","stats":{"files_changed":1,"insertions":1,"deletions":1,"files":["docs/parsers/sysctl.md"],"file_stats":[{"name":"docs/parsers/sysctl.md","lines_changed":2}]}},{"commit":"a7abe4473b90c512466db9ae98cfac585689fe2a","message":"spelling","stats":{"files_changed":1,"insertions":1,"deletions":1,"files":["jc/parsers/sysctl.py"],"file_stats":[{"name":"jc/parsers/sysctl.py","lines_changed":2}]}},{"commit":"780b9b61dec3e142e46c9a82146d2af4e1144123","message":"specify IndexError exception in try/except block","stats":{"files_changed":1,"insertions":3,"deletions":3,"files":["jc/parsers/sysctl.py"],"file_stats":[{"name":"jc/parsers/sysctl.py","lines_changed":6}]}},{"commit":"19ace36ffa659bedf0ba2e43572c9e253592b2e7","message":"add fixtures","stats":{"files_changed":4,"insertions":2167,"deletions":0,"files":["tests/fixtures/osx-10.14.6/sysctl-a.json","tests/fixtures/osx-10.14.6/sysctl-a.out","tests/fixtures/ubuntu-18.04/sysctl-a.json","tests/fixtures/ubuntu-18.04/sysctl-a.out"],"file_stats":[{"name":"tests/fixtures/osx-10.14.6/sysctl-a.json","lines_changed":1},{"name":"tests/fixtures/osx-10.14.6/sysctl-a.out","lines_changed":1287},{"name":"tests/fixtures/ubuntu-18.04/sysctl-a.json","lines_changed":1},{"name":"tests/fixtures/ubuntu-18.04/sysctl-a.out","lines_changed":878}]}},{"commit":"5fff8afc9f47f8cc6db8ed3613b90b5cdc683b43","message":"add fixes for freebsd where values can be on separate lines under the key","stats":{"files_changed":1,"insertions":33,"deletions":11,"files":["jc/parsers/sysctl.py"],"file_stats":[{"name":"jc/parsers/sysctl.py","lines_changed":44}]}},{"commit":"4ad230c9279c5eb6c8ed6baf7254b8e9328e5af0","message":"doc update and add test fixtures","stats":{"files_changed":4,"insertions":929,"deletions":14,"files":["docs/parsers/sysctl.md","jc/parsers/sysctl.py","tests/fixtures/centos-7.7/sysctl-a.json","tests/fixtures/centos-7.7/sysctl-a.out"],"file_stats":[{"name":"docs/parsers/sysctl.md","lines_changed":12},{"name":"jc/parsers/sysctl.py","lines_changed":12},{"name":"tests/fixtures/centos-7.7/sysctl-a.json","lines_changed":1},{"name":"tests/fixtures/centos-7.7/sysctl-a.out","lines_changed":918}]}},{"commit":"dd98eb1ec8f451eb87a5094e76a7f758dee3fc69","message":"append duplicate key values to original key instead of adding unique keys","stats":{"files_changed":1,"insertions":4,"deletions":7,"files":["jc/parsers/sysctl.py"],"file_stats":[{"name":"jc/parsers/sysctl.py","lines_changed":11}]}},{"commit":"c6baf42e72b4f41ed511e7db943297d03a39c0d5","message":"doc updates","stats":{"files_changed":3,"insertions":94,"deletions":7,"files":["docgen.sh","docs/parsers/sysctl.md","jc/parsers/sysctl.py"],"file_stats":[{"name":"docgen.sh","lines_changed":1},{"name":"docs/parsers/sysctl.md","lines_changed":86},{"name":"jc/parsers/sysctl.py","lines_changed":14}]}},{"commit":"e2bac97d563e5ef771ccd8ed1e5c42cbf588b120","message":"fix for multiple identical keys in sysctl output","stats":{"files_changed":1,"insertions":11,"deletions":1,"files":["jc/parsers/sysctl.py"],"file_stats":[{"name":"jc/parsers/sysctl.py","lines_changed":12}]}},{"commit":"d112ee94d0ec534828c8508d0fb833b768975990","message":"use try/except and add support for floats in process()","stats":{"files_changed":1,"insertions":8,"deletions":4,"files":["jc/parsers/sysctl.py"],"file_stats":[{"name":"jc/parsers/sysctl.py","lines_changed":12}]}},{"commit":"27b21b2fafab912f21b88b66c7f817cbce155765","message":"formatting and docstring updates","stats":{"files_changed":1,"insertions":8,"deletions":7,"files":["jc/cli.py"],"file_stats":[{"name":"jc/cli.py","lines_changed":15}]}},{"commit":"8c96d5cd20448a4f7f9736c4d489d6ecc3068ad7","message":"reduce pygments version requirement","stats":{"files_changed":1,"insertions":1,"deletions":1,"files":["requirements.txt"],"file_stats":[{"name":"requirements.txt","lines_changed":2}]}},{"commit":"c29ed3fd695f725005333db5e6e2cd844bb4ca14","message":"formatting of quotation marks and docstrings","stats":{"files_changed":1,"insertions":14,"deletions":13,"files":["jc/cli.py"],"file_stats":[{"name":"jc/cli.py","lines_changed":27}]}},{"commit":"cedf603f121636bdfa95432059c3c275c3ea3e9e","message":"minor formatting","stats":{"files_changed":1,"insertions":5,"deletions":4,"files":["jc/cli.py"],"file_stats":[{"name":"jc/cli.py","lines_changed":9}]}},{"commit":"279161c36f288c27a9789054ae372fe8ceb58a94","message":"Merge pull request #72 from duelafn/pygments-2.3"},{"commit":"ce0b43d919f07d96d1b94e9d14d03e935e80011d","message":"Remove dependency on 3rd party packaging library","stats":{"files_changed":1,"insertions":3,"deletions":2,"files":["jc/cli.py"],"file_stats":[{"name":"jc/cli.py","lines_changed":5}]}},{"commit":"ddafa5bf06066bab8e9587be902d6752fcf51605","message":"Support older pygments","stats":{"files_changed":2,"insertions":47,"deletions":7,"files":["jc/cli.py","setup.py"],"file_stats":[{"name":"jc/cli.py","lines_changed":52},{"name":"setup.py","lines_changed":2}]}},{"commit":"bc7116c31bacf3159aef775fd0e615187420b010","message":"fix JC_COLORS env bug and simplify set_env_colors()","stats":{"files_changed":1,"insertions":7,"deletions":8,"files":["jc/cli.py"],"file_stats":[{"name":"jc/cli.py","lines_changed":15}]}},{"commit":"53b709272115e769dac905296fa3b000c1cdd66a","message":"remove side-effects from functions and print in main()","stats":{"files_changed":1,"insertions":11,"deletions":11,"files":["jc/cli.py"],"file_stats":[{"name":"jc/cli.py","lines_changed":22}]}},{"commit":"beb9174b1b35937ae1fb99778369ae643a8f1005","message":"add sysctl parser","stats":{"files_changed":1,"insertions":123,"deletions":0,"files":["jc/parsers/sysctl.py"],"file_stats":[{"name":"jc/parsers/sysctl.py","lines_changed":123}]}},{"commit":"aea41ed341c8d53cc07c35e8044e8f816ddd2fed","message":"move verbose_debug enable earlier in code to catch more issues. add sysctl and version bump","stats":{"files_changed":1,"insertions":6,"deletions":5,"files":["jc/cli.py"],"file_stats":[{"name":"jc/cli.py","lines_changed":11}]}},{"commit":"d789494cb1f691aa352419aaefc692f654477177","message":"change type check to use isinstance","stats":{"files_changed":1,"insertions":1,"deletions":1,"files":["jc/tracebackplus.py"],"file_stats":[{"name":"jc/tracebackplus.py","lines_changed":2}]}},{"commit":"608e7b4cff081f92177e4151ffa1a91a4a6895ca","message":"add license info","stats":{"files_changed":1,"insertions":61,"deletions":0,"files":["jc/tracebackplus.py"],"file_stats":[{"name":"jc/tracebackplus.py","lines_changed":61}]}},{"commit":"4ee199c02a78c2707c5d1427d7c8fae56df5671c","message":"use tracebackplus instead of cgitb since cgitb is depricated","stats":{"files_changed":2,"insertions":189,"deletions":3,"files":["jc/cli.py","jc/tracebackplus.py"],"file_stats":[{"name":"jc/cli.py","lines_changed":6},{"name":"jc/tracebackplus.py","lines_changed":186}]}},{"commit":"fbf47d408501dadda4671fb530f5e11859e85d53","message":"add arch linux","stats":{"files_changed":1,"insertions":1,"deletions":0,"files":["README.md"],"file_stats":[{"name":"README.md","lines_changed":1}]}},{"commit":"5a238e4b4204f0552327534ef798c28d3ad4f578","message":"remove updates-testing from fedora command","stats":{"files_changed":1,"insertions":1,"deletions":1,"files":["README.md"],"file_stats":[{"name":"README.md","lines_changed":2}]}},{"commit":"f852b8246a8f9e5f7d9144fed3a0daa4eddfe035","message":"wrap warning message","stats":{"files_changed":1,"insertions":2,"deletions":1,"files":["jc/utils.py"],"file_stats":[{"name":"jc/utils.py","lines_changed":3}]}},{"commit":"88140d929a500ee78f807862c4912c399df2a460","message":"wrap error message in code","stats":{"files_changed":1,"insertions":2,"deletions":1,"files":["jc/cli.py"],"file_stats":[{"name":"jc/cli.py","lines_changed":3}]}},{"commit":"45f726824027af49c437b6e81e4700f7098af320","message":"add -dd to error message","stats":{"files_changed":1,"insertions":1,"deletions":1,"files":["jc/cli.py"],"file_stats":[{"name":"jc/cli.py","lines_changed":2}]}},{"commit":"3a3c8e4d4a77135eaee5cb30c3107a4531c300ce","message":"move verbose_debug under debug check","stats":{"files_changed":1,"insertions":5,"deletions":4,"files":["jc/cli.py"],"file_stats":[{"name":"jc/cli.py","lines_changed":9}]}},{"commit":"c1ac183a0472e93226c9ee1905f56c5183e3721f","message":"simplify debug option","stats":{"files_changed":1,"insertions":15,"deletions":22,"files":["jc/cli.py"],"file_stats":[{"name":"jc/cli.py","lines_changed":37}]}},{"commit":"18bb779ee5cd5821764b03173f16e922f753c64d","message":"formatting: double quotes to single quotes","stats":{"files_changed":1,"insertions":2,"deletions":2,"files":["jc/cli.py"],"file_stats":[{"name":"jc/cli.py","lines_changed":4}]}},{"commit":"8b6612fe7911ab9e0bf8d29be60865d3b8aa3fd8","message":"move JC_COLORS parsing error message","stats":{"files_changed":1,"insertions":1,"deletions":2,"files":["jc/cli.py"],"file_stats":[{"name":"jc/cli.py","lines_changed":3}]}},{"commit":"fde0bc853415418e01616861ace5048770bd97f8","message":"improve package install info","stats":{"files_changed":1,"insertions":9,"deletions":34,"files":["README.md"],"file_stats":[{"name":"README.md","lines_changed":43}]}},{"commit":"e661a78939ff067b8a61f08301c178dd10a344ab","message":"Merge pull request #71 from wigust/guix"},{"commit":"847e346602789bf58e3515319e9d080dfb897fc9","message":"add guix package info","stats":{"files_changed":1,"insertions":6,"deletions":1,"files":["README.md"],"file_stats":[{"name":"README.md","lines_changed":7}]}},{"commit":"b9697516887c61f08d8d7b1dc9130350e5bdba9c","message":"add other references","stats":{"files_changed":1,"insertions":6,"deletions":1,"files":["README.md"],"file_stats":[{"name":"README.md","lines_changed":7}]}},{"commit":"ad6f2ba03a293a7f55e456fa5f5b55ee3cbcd4ec","message":"formatting","stats":{"files_changed":1,"insertions":1,"deletions":1,"files":["README.md"],"file_stats":[{"name":"README.md","lines_changed":2}]}},{"commit":"63c6a5edc0e9001b143595fd8b96f1b4a1377a3a","message":"formatting","stats":{"files_changed":1,"insertions":1,"deletions":0,"files":["README.md"],"file_stats":[{"name":"README.md","lines_changed":1}]}},{"commit":"9f4cf9dd5efe94adfff0961fdb73097ca27c5463","message":"formatting","stats":{"files_changed":1,"insertions":197,"deletions":67,"files":["README.md"],"file_stats":[{"name":"README.md","lines_changed":264}]}},{"commit":"51331b6dc01eee00847fa4be549ffde365373a01","message":"formatting","stats":{"files_changed":1,"insertions":3,"deletions":2,"files":["README.md"],"file_stats":[{"name":"README.md","lines_changed":5}]}},{"commit":"efb6761033319644bf9cdae6288ff5609f6482ea","message":"formatting","stats":{"files_changed":1,"insertions":1,"deletions":1,"files":["README.md"],"file_stats":[{"name":"README.md","lines_changed":2}]}},{"commit":"6a4f737a0f1c322bebccf69809d9816fc770c5ef","message":"update json syntax highlighting","stats":{"files_changed":1,"insertions":88,"deletions":115,"files":["README.md"],"file_stats":[{"name":"README.md","lines_changed":203}]}},{"commit":"be6864b778ab721bcba5fc3221576153be7b2ed3","message":"add syntax highlighting tags","stats":{"files_changed":1,"insertions":26,"deletions":26,"files":["README.md"],"file_stats":[{"name":"README.md","lines_changed":52}]}},{"commit":"de3b91a36cfcaf565b26b1da42f1e87835da4dc3","message":"add -dd option","stats":{"files_changed":1,"insertions":1,"deletions":1,"files":["README.md"],"file_stats":[{"name":"README.md","lines_changed":2}]}},{"commit":"ef5482c3b5afa0ee8e85851bebab1c104cb59936","message":"add verbose debug option","stats":{"files_changed":3,"insertions":15,"deletions":7,"files":["changelog.txt","jc/cli.py","setup.py"],"file_stats":[{"name":"changelog.txt","lines_changed":3},{"name":"jc/cli.py","lines_changed":17},{"name":"setup.py","lines_changed":2}]}},{"commit":"d20b795137036f8b889eb231cb4f14b756ec6479","message":"Merge pull request #70 from kellyjonbrazil/dev"},{"commit":"8a134065dff429551449c1ea16a36d745fdab580","message":"update fixtures for last chain fix","stats":{"files_changed":12,"insertions":12,"deletions":12,"files":["tests/fixtures/centos-7.7/iptables-filter-line-numbers.json","tests/fixtures/centos-7.7/iptables-filter-nv.json","tests/fixtures/centos-7.7/iptables-filter.json","tests/fixtures/centos-7.7/iptables-mangle.json","tests/fixtures/centos-7.7/iptables-nat.json","tests/fixtures/centos-7.7/iptables-raw.json","tests/fixtures/ubuntu-18.04/iptables-filter-line-numbers.json","tests/fixtures/ubuntu-18.04/iptables-filter-nv.json","tests/fixtures/ubuntu-18.04/iptables-filter.json","tests/fixtures/ubuntu-18.04/iptables-mangle.json","tests/fixtures/ubuntu-18.04/iptables-nat.json","tests/fixtures/ubuntu-18.04/iptables-raw.json"],"file_stats":[{"name":"tests/fixtures/centos-7.7/iptables-filter-line-numbers.json","lines_changed":2},{"name":"tests/fixtures/centos-7.7/iptables-filter-nv.json","lines_changed":2},{"name":"tests/fixtures/centos-7.7/iptables-filter.json","lines_changed":2},{"name":"tests/fixtures/centos-7.7/iptables-mangle.json","lines_changed":2},{"name":"tests/fixtures/centos-7.7/iptables-nat.json","lines_changed":2},{"name":"tests/fixtures/centos-7.7/iptables-raw.json","lines_changed":2},{"name":"tests/fixtures/ubuntu-18.04/iptables-filter-line-numbers.json","lines_changed":2},{"name":"tests/fixtures/ubuntu-18.04/iptables-filter-nv.json","lines_changed":2},{"name":"tests/fixtures/ubuntu-18.04/iptables-filter.json","lines_changed":2},{"name":"tests/fixtures/ubuntu-18.04/iptables-mangle.json","lines_changed":2},{"name":"tests/fixtures/ubuntu-18.04/iptables-nat.json","lines_changed":2},{"name":"tests/fixtures/ubuntu-18.04/iptables-raw.json","lines_changed":2}]}},{"commit":"22aee1bfa40ed1d3c4df28cd934ef0edfc5c458c","message":"version bump","stats":{"files_changed":3,"insertions":5,"deletions":2,"files":["changelog.txt","jc/cli.py","setup.py"],"file_stats":[{"name":"changelog.txt","lines_changed":3},{"name":"jc/cli.py","lines_changed":2},{"name":"setup.py","lines_changed":2}]}},{"commit":"b282820fd67dcc96c058198f97b066e7b402d1f3","message":"fix to include the final chain in output","stats":{"files_changed":1,"insertions":3,"deletions":0,"files":["jc/parsers/iptables.py"],"file_stats":[{"name":"jc/parsers/iptables.py","lines_changed":3}]}},{"commit":"3ee098306daf903687cb0febf92773a81e216111","message":"version bump","stats":{"files_changed":1,"insertions":1,"deletions":1,"files":["jc/parsers/iptables.py"],"file_stats":[{"name":"jc/parsers/iptables.py","lines_changed":2}]}},{"commit":"09e8f379a64b3b37bb99b4291c10aa4a5cdedea4","message":"iptables code optimizations","stats":{"files_changed":1,"insertions":9,"deletions":11,"files":["jc/parsers/iptables.py"],"file_stats":[{"name":"jc/parsers/iptables.py","lines_changed":20}]}},{"commit":"69018cdb3a77fcdcb5648e3b89933148c55a6412","message":"fix date","stats":{"files_changed":1,"insertions":1,"deletions":1,"files":["changelog.txt"],"file_stats":[{"name":"changelog.txt","lines_changed":2}]}},{"commit":"d0d7254c6acc7be4341618d231a5b166f640b287","message":"add docstring","stats":{"files_changed":2,"insertions":26,"deletions":0,"files":["docs/utils.md","jc/utils.py"],"file_stats":[{"name":"docs/utils.md","lines_changed":15},{"name":"jc/utils.py","lines_changed":11}]}},{"commit":"cc0f0971d76b6f3dec8d989e83f5676db8f2c6d9","message":"Improve and standardize empty data check for all parsers","stats":{"files_changed":56,"insertions":476,"deletions":439,"files":["changelog.txt","jc/cli.py","jc/parsers/airport.py","jc/parsers/airport_s.py","jc/parsers/arp.py","jc/parsers/blkid.py","jc/parsers/crontab.py","jc/parsers/crontab_u.py","jc/parsers/csv.py","jc/parsers/df.py","jc/parsers/dig.py","jc/parsers/dmidecode.py","jc/parsers/du.py","jc/parsers/env.py","jc/parsers/file.py","jc/parsers/foo.py","jc/parsers/free.py","jc/parsers/fstab.py","jc/parsers/group.py","jc/parsers/gshadow.py","jc/parsers/history.py","jc/parsers/hosts.py","jc/parsers/id.py","jc/parsers/ifconfig.py","jc/parsers/ini.py","jc/parsers/iptables.py","jc/parsers/jobs.py","jc/parsers/last.py","jc/parsers/ls.py","jc/parsers/lsblk.py","jc/parsers/lsmod.py","jc/parsers/lsof.py","jc/parsers/mount.py","jc/parsers/netstat.py","jc/parsers/ntpq.py","jc/parsers/passwd.py","jc/parsers/pip_list.py","jc/parsers/pip_show.py","jc/parsers/ps.py","jc/parsers/route.py","jc/parsers/shadow.py","jc/parsers/ss.py","jc/parsers/stat.py","jc/parsers/systemctl.py","jc/parsers/systemctl_lj.py","jc/parsers/systemctl_ls.py","jc/parsers/systemctl_luf.py","jc/parsers/timedatectl.py","jc/parsers/uname.py","jc/parsers/uptime.py","jc/parsers/w.py","jc/parsers/who.py","jc/parsers/xml.py","jc/parsers/yaml.py","jc/utils.py","setup.py"],"file_stats":[{"name":"changelog.txt","lines_changed":3},{"name":"jc/cli.py","lines_changed":2},{"name":"jc/parsers/airport.py","lines_changed":10},{"name":"jc/parsers/airport_s.py","lines_changed":4},{"name":"jc/parsers/arp.py","lines_changed":4},{"name":"jc/parsers/blkid.py","lines_changed":5},{"name":"jc/parsers/crontab.py","lines_changed":5},{"name":"jc/parsers/crontab_u.py","lines_changed":5},{"name":"jc/parsers/csv.py","lines_changed":5},{"name":"jc/parsers/df.py","lines_changed":5},{"name":"jc/parsers/dig.py","lines_changed":193},{"name":"jc/parsers/dmidecode.py","lines_changed":264},{"name":"jc/parsers/du.py","lines_changed":8},{"name":"jc/parsers/env.py","lines_changed":8},{"name":"jc/parsers/file.py","lines_changed":39},{"name":"jc/parsers/foo.py","lines_changed":8},{"name":"jc/parsers/free.py","lines_changed":5},{"name":"jc/parsers/fstab.py","lines_changed":5},{"name":"jc/parsers/group.py","lines_changed":5},{"name":"jc/parsers/gshadow.py","lines_changed":5},{"name":"jc/parsers/history.py","lines_changed":26},{"name":"jc/parsers/hosts.py","lines_changed":8},{"name":"jc/parsers/id.py","lines_changed":8},{"name":"jc/parsers/ifconfig.py","lines_changed":18},{"name":"jc/parsers/ini.py","lines_changed":5},{"name":"jc/parsers/iptables.py","lines_changed":44},{"name":"jc/parsers/jobs.py","lines_changed":8},{"name":"jc/parsers/last.py","lines_changed":8},{"name":"jc/parsers/ls.py","lines_changed":5},{"name":"jc/parsers/lsblk.py","lines_changed":8},{"name":"jc/parsers/lsmod.py","lines_changed":5},{"name":"jc/parsers/lsof.py","lines_changed":9},{"name":"jc/parsers/mount.py","lines_changed":9},{"name":"jc/parsers/netstat.py","lines_changed":8},{"name":"jc/parsers/ntpq.py","lines_changed":5},{"name":"jc/parsers/passwd.py","lines_changed":8},{"name":"jc/parsers/pip_list.py","lines_changed":9},{"name":"jc/parsers/pip_show.py","lines_changed":9},{"name":"jc/parsers/ps.py","lines_changed":6},{"name":"jc/parsers/route.py","lines_changed":6},{"name":"jc/parsers/shadow.py","lines_changed":8},{"name":"jc/parsers/ss.py","lines_changed":8},{"name":"jc/parsers/stat.py","lines_changed":7},{"name":"jc/parsers/systemctl.py","lines_changed":8},{"name":"jc/parsers/systemctl_lj.py","lines_changed":8},{"name":"jc/parsers/systemctl_ls.py","lines_changed":8},{"name":"jc/parsers/systemctl_luf.py","lines_changed":8},{"name":"jc/parsers/timedatectl.py","lines_changed":14},{"name":"jc/parsers/uname.py","lines_changed":6},{"name":"jc/parsers/uptime.py","lines_changed":5},{"name":"jc/parsers/w.py","lines_changed":5},{"name":"jc/parsers/who.py","lines_changed":8},{"name":"jc/parsers/xml.py","lines_changed":5},{"name":"jc/parsers/yaml.py","lines_changed":11},{"name":"jc/utils.py","lines_changed":4},{"name":"setup.py","lines_changed":2}]}},{"commit":"2af61730f0f5b9bc6f1f4c5d9d808ff6ccb0faeb","message":"Merge pull request #68 from kellyjonbrazil/dev"},{"commit":"83f41b83dc01c462c6a2295e9fc56ad42a3b62f4","message":"version bump","stats":{"files_changed":3,"insertions":3,"deletions":3,"files":["changelog.txt","jc/cli.py","setup.py"],"file_stats":[{"name":"changelog.txt","lines_changed":2},{"name":"jc/cli.py","lines_changed":2},{"name":"setup.py","lines_changed":2}]}},{"commit":"1fb84fce88e0306c26a5771fa4c6dc14a21409a1","message":"fix for no data","stats":{"files_changed":16,"insertions":137,"deletions":67,"files":["changelog.txt","jc/parsers/systemctl_lj.py","jc/parsers/systemctl_ls.py","jc/parsers/systemctl_luf.py","jc/parsers/uptime.py","jc/parsers/w.py","jc/parsers/xml.py","tests/test_systemctl_ls.py","tests/test_systemctl_luf.py","tests/test_timedatectl.py","tests/test_uname.py","tests/test_uptime.py","tests/test_w.py","tests/test_who.py","tests/test_xml.py","tests/test_yaml.py"],"file_stats":[{"name":"changelog.txt","lines_changed":5},{"name":"jc/parsers/systemctl_lj.py","lines_changed":3},{"name":"jc/parsers/systemctl_ls.py","lines_changed":33},{"name":"jc/parsers/systemctl_luf.py","lines_changed":35},{"name":"jc/parsers/uptime.py","lines_changed":5},{"name":"jc/parsers/w.py","lines_changed":63},{"name":"jc/parsers/xml.py","lines_changed":6},{"name":"tests/test_systemctl_ls.py","lines_changed":6},{"name":"tests/test_systemctl_luf.py","lines_changed":6},{"name":"tests/test_timedatectl.py","lines_changed":6},{"name":"tests/test_uname.py","lines_changed":6},{"name":"tests/test_uptime.py","lines_changed":6},{"name":"tests/test_w.py","lines_changed":6},{"name":"tests/test_who.py","lines_changed":6},{"name":"tests/test_xml.py","lines_changed":6},{"name":"tests/test_yaml.py","lines_changed":6}]}},{"commit":"a8837e12447c52dbe438b19c07777b9b4a22081c","message":"remove --upgrade from pip install","stats":{"files_changed":1,"insertions":1,"deletions":1,"files":["README.md"],"file_stats":[{"name":"README.md","lines_changed":2}]}},{"commit":"04d2eec5581998d1a80e762b670af76c92111065","message":"fix for no data","stats":{"files_changed":6,"insertions":56,"deletions":30,"files":["changelog.txt","jc/parsers/systemctl.py","jc/parsers/systemctl_lj.py","tests/test_stat.py","tests/test_systemctl.py","tests/test_systemctl_lj.py"],"file_stats":[{"name":"changelog.txt","lines_changed":2},{"name":"jc/parsers/systemctl.py","lines_changed":33},{"name":"jc/parsers/systemctl_lj.py","lines_changed":33},{"name":"tests/test_stat.py","lines_changed":6},{"name":"tests/test_systemctl.py","lines_changed":6},{"name":"tests/test_systemctl_lj.py","lines_changed":6}]}},{"commit":"1b57ec92f052ddc8959540511512190a539262b7","message":"fix for no data","stats":{"files_changed":21,"insertions":152,"deletions":68,"files":["changelog.txt","jc/parsers/mount.py","jc/parsers/netstat.py","jc/parsers/ntpq.py","jc/parsers/pip_list.py","jc/parsers/ps.py","jc/parsers/route.py","jc/parsers/ss.py","tests/fixtures/centos-7.7/ss-sudo-a.json","tests/fixtures/ubuntu-18.04/ss-sudo-a.json","tests/test_lsof.py","tests/test_mount.py","tests/test_netstat.py","tests/test_ntpq.py","tests/test_passwd.py","tests/test_pip_list.py","tests/test_pip_show.py","tests/test_ps.py","tests/test_route.py","tests/test_shadow.py","tests/test_ss.py"],"file_stats":[{"name":"changelog.txt","lines_changed":8},{"name":"jc/parsers/mount.py","lines_changed":3},{"name":"jc/parsers/netstat.py","lines_changed":41},{"name":"jc/parsers/ntpq.py","lines_changed":35},{"name":"jc/parsers/pip_list.py","lines_changed":31},{"name":"jc/parsers/ps.py","lines_changed":9},{"name":"jc/parsers/route.py","lines_changed":9},{"name":"jc/parsers/ss.py","lines_changed":14},{"name":"tests/fixtures/centos-7.7/ss-sudo-a.json","lines_changed":2},{"name":"tests/fixtures/ubuntu-18.04/ss-sudo-a.json","lines_changed":2},{"name":"tests/test_lsof.py","lines_changed":6},{"name":"tests/test_mount.py","lines_changed":6},{"name":"tests/test_netstat.py","lines_changed":6},{"name":"tests/test_ntpq.py","lines_changed":6},{"name":"tests/test_passwd.py","lines_changed":6},{"name":"tests/test_pip_list.py","lines_changed":6},{"name":"tests/test_pip_show.py","lines_changed":6},{"name":"tests/test_ps.py","lines_changed":6},{"name":"tests/test_route.py","lines_changed":6},{"name":"tests/test_shadow.py","lines_changed":6},{"name":"tests/test_ss.py","lines_changed":6}]}},{"commit":"4d8859540417e99e273fda2cea959240f3c37ea3","message":"enhance empty data check","stats":{"files_changed":1,"insertions":1,"deletions":1,"files":["jc/parsers/df.py"],"file_stats":[{"name":"jc/parsers/df.py","lines_changed":2}]}},{"commit":"52b1272a3aab09b5a8c4a277fbf9975a1b8b6921","message":"enhance empty data check","stats":{"files_changed":1,"insertions":1,"deletions":1,"files":["jc/parsers/blkid.py"],"file_stats":[{"name":"jc/parsers/blkid.py","lines_changed":2}]}},{"commit":"d2ccad6a83138fbf6eb863634fd354dc6c3fa238","message":"fix for no data","stats":{"files_changed":4,"insertions":33,"deletions":15,"files":["jc/parsers/lsblk.py","jc/parsers/lsmod.py","tests/test_lsblk.py","tests/test_lsmod.py"],"file_stats":[{"name":"jc/parsers/lsblk.py","lines_changed":21},{"name":"jc/parsers/lsmod.py","lines_changed":15},{"name":"tests/test_lsblk.py","lines_changed":6},{"name":"tests/test_lsmod.py","lines_changed":6}]}},{"commit":"cad6dde4ac66cf970a7f52d8e7958ea35c083629","message":"fix for no data","stats":{"files_changed":10,"insertions":60,"deletions":0,"files":["tests/test_group.py","tests/test_gshadow.py","tests/test_history.py","tests/test_hosts.py","tests/test_id.py","tests/test_ifconfig.py","tests/test_ini.py","tests/test_iptables.py","tests/test_jobs.py","tests/test_last.py"],"file_stats":[{"name":"tests/test_group.py","lines_changed":6},{"name":"tests/test_gshadow.py","lines_changed":6},{"name":"tests/test_history.py","lines_changed":6},{"name":"tests/test_hosts.py","lines_changed":6},{"name":"tests/test_id.py","lines_changed":6},{"name":"tests/test_ifconfig.py","lines_changed":6},{"name":"tests/test_ini.py","lines_changed":6},{"name":"tests/test_iptables.py","lines_changed":6},{"name":"tests/test_jobs.py","lines_changed":6},{"name":"tests/test_last.py","lines_changed":6}]}},{"commit":"06811c3539b0d871e13e9b8d3b51f731d06fd2ce","message":"add test for no data","stats":{"files_changed":1,"insertions":6,"deletions":0,"files":["tests/test_fstab.py"],"file_stats":[{"name":"tests/test_fstab.py","lines_changed":6}]}},{"commit":"0cb23c2b21f464082609409261de8e95eb1b0d55","message":"add fix for no data","stats":{"files_changed":3,"insertions":17,"deletions":7,"files":["changelog.txt","jc/parsers/free.py","tests/test_free.py"],"file_stats":[{"name":"changelog.txt","lines_changed":1},{"name":"jc/parsers/free.py","lines_changed":17},{"name":"tests/test_free.py","lines_changed":6}]}},{"commit":"ac4688dca22334385ec2c87027f2f14f9ca93ce4","message":"add test for no data","stats":{"files_changed":1,"insertions":6,"deletions":0,"files":["tests/test_file.py"],"file_stats":[{"name":"tests/test_file.py","lines_changed":6}]}},{"commit":"326c3b4670a0e47cbe2988b38fb1c1b26a4db890","message":"add test for no data","stats":{"files_changed":1,"insertions":6,"deletions":0,"files":["tests/test_env.py"],"file_stats":[{"name":"tests/test_env.py","lines_changed":6}]}},{"commit":"9b29d0c2688eda2e4707aeba693ed14fa433a706","message":"add test for no data","stats":{"files_changed":1,"insertions":6,"deletions":0,"files":["tests/test_du.py"],"file_stats":[{"name":"tests/test_du.py","lines_changed":6}]}},{"commit":"e0013c38710b4ecf3a588a16d1d908effc23b485","message":"add test for no data","stats":{"files_changed":1,"insertions":5,"deletions":0,"files":["tests/test_dmidecode.py"],"file_stats":[{"name":"tests/test_dmidecode.py","lines_changed":5}]}},{"commit":"a75744075b0628bdb711d8a929a759b4b4067edb","message":"add no data test","stats":{"files_changed":1,"insertions":6,"deletions":0,"files":["tests/test_dig.py"],"file_stats":[{"name":"tests/test_dig.py","lines_changed":6}]}},{"commit":"525aec1a02380f17ab7827434616f981f7457bd0","message":"fix for no data","stats":{"files_changed":3,"insertions":16,"deletions":7,"files":["changelog.txt","jc/parsers/df.py","tests/test_df.py"],"file_stats":[{"name":"changelog.txt","lines_changed":1},{"name":"jc/parsers/df.py","lines_changed":16},{"name":"tests/test_df.py","lines_changed":6}]}},{"commit":"0bf9a7a072a80e10a29c6bb3943b107352dc1d45","message":"add test for no data","stats":{"files_changed":1,"insertions":6,"deletions":0,"files":["tests/test_csv.py"],"file_stats":[{"name":"tests/test_csv.py","lines_changed":6}]}},{"commit":"d8f2f4c95bc699386b9fe93d10e13637875a1dcf","message":"fix for no data","stats":{"files_changed":5,"insertions":96,"deletions":80,"files":["changelog.txt","jc/parsers/crontab.py","jc/parsers/crontab_u.py","tests/test_crontab.py","tests/test_crontab_u.py"],"file_stats":[{"name":"changelog.txt","lines_changed":2},{"name":"jc/parsers/crontab.py","lines_changed":79},{"name":"jc/parsers/crontab_u.py","lines_changed":83},{"name":"tests/test_crontab.py","lines_changed":6},{"name":"tests/test_crontab_u.py","lines_changed":6}]}},{"commit":"35d733b44f3705bed3dd8ce340379470f199f772","message":"fix for no data","stats":{"files_changed":5,"insertions":70,"deletions":60,"files":["changelog.txt","jc/parsers/arp.py","jc/parsers/blkid.py","tests/test_arp.py","tests/test_blkid.py"],"file_stats":[{"name":"changelog.txt","lines_changed":2},{"name":"jc/parsers/arp.py","lines_changed":112},{"name":"jc/parsers/blkid.py","lines_changed":4},{"name":"tests/test_arp.py","lines_changed":6},{"name":"tests/test_blkid.py","lines_changed":6}]}},{"commit":"9179b4175c5063bed14ecb96ba24c517920c0d94","message":"add nodata tests","stats":{"files_changed":3,"insertions":16,"deletions":0,"files":["changelog.txt","tests/test_airport.py","tests/test_airport_s.py"],"file_stats":[{"name":"changelog.txt","lines_changed":4},{"name":"tests/test_airport.py","lines_changed":6},{"name":"tests/test_airport_s.py","lines_changed":6}]}},{"commit":"bb07d78c78ff5c5b2ee4d2086ffc6dd5ebedf0fb","message":"add nodata fix","stats":{"files_changed":1,"insertions":10,"deletions":8,"files":["jc/parsers/airport_s.py"],"file_stats":[{"name":"jc/parsers/airport_s.py","lines_changed":18}]}},{"commit":"07b179cd7f8853ff6aca0b27a703e198c158ca72","message":"Merge pull request #67 from kellyjonbrazil/Dev"},{"commit":"054422d8373e7b8def18ddabd447062cb9cc3137","message":"add test for empty directory","stats":{"files_changed":1,"insertions":6,"deletions":0,"files":["tests/test_ls.py"],"file_stats":[{"name":"tests/test_ls.py","lines_changed":6}]}},{"commit":"3e052d18102e98a09cbba21866855691eaccc216","message":"version bump","stats":{"files_changed":3,"insertions":5,"deletions":2,"files":["changelog.txt","jc/cli.py","setup.py"],"file_stats":[{"name":"changelog.txt","lines_changed":3},{"name":"jc/cli.py","lines_changed":2},{"name":"setup.py","lines_changed":2}]}},{"commit":"c8e72805cf9def478b56c925f4afcc0ece1daac0","message":"fix error on empty directory","stats":{"files_changed":1,"insertions":9,"deletions":10,"files":["jc/parsers/ls.py"],"file_stats":[{"name":"jc/parsers/ls.py","lines_changed":19}]}},{"commit":"12a80e7db0f6c7d536674ad8d34e26bba9a1f1f9","message":"add fedora package info","stats":{"files_changed":1,"insertions":10,"deletions":2,"files":["README.md"],"file_stats":[{"name":"README.md","lines_changed":12}]}},{"commit":"ee7ff9a09d3373f60ae1645376ccc0057803147e","message":"Merge pull request #66 from kellyjonbrazil/dev"},{"commit":"f6478fb636ead8d1e53e4a88d59e55222df37a8f","message":"version bump","stats":{"files_changed":3,"insertions":3,"deletions":3,"files":["changelog.txt","jc/cli.py","setup.py"],"file_stats":[{"name":"changelog.txt","lines_changed":2},{"name":"jc/cli.py","lines_changed":2},{"name":"setup.py","lines_changed":2}]}},{"commit":"811a0b0495819925199d70db266066197cc6824e","message":"add info regarding the local parser plugin files","stats":{"files_changed":1,"insertions":1,"deletions":1,"files":["README.md"],"file_stats":[{"name":"README.md","lines_changed":2}]}},{"commit":"aeb48edf727f23cc4f8fd9b760cfb69f03098278","message":"use $LOCALAPPDATA variable for windows","stats":{"files_changed":1,"insertions":1,"deletions":1,"files":["README.md"],"file_stats":[{"name":"README.md","lines_changed":2}]}},{"commit":"b1e94f0df7041bcae97455508f423178aef9d61d","message":"heading formatting","stats":{"files_changed":1,"insertions":1,"deletions":1,"files":["README.md"],"file_stats":[{"name":"README.md","lines_changed":2}]}},{"commit":"60050e3c0fe34980f7db5b8bd46430f953f0c3a3","message":"fix linux/unix directory and add note about the XDG specification followed","stats":{"files_changed":1,"insertions":13,"deletions":13,"files":["README.md"],"file_stats":[{"name":"README.md","lines_changed":26}]}},{"commit":"39ef09aa5b0d43b5128299511afe80336aa38203","message":"add local parser plugin feature","stats":{"files_changed":1,"insertions":3,"deletions":0,"files":["changelog.txt"],"file_stats":[{"name":"changelog.txt","lines_changed":3}]}},{"commit":"8377d4311611c242e16eaebe66dafac9529150d4","message":"formatting","stats":{"files_changed":1,"insertions":1,"deletions":1,"files":["README.md"],"file_stats":[{"name":"README.md","lines_changed":2}]}},{"commit":"54e4c447ab34ae54c73c92df40f1b4ca6ffb2277","message":"clean up formatting","stats":{"files_changed":1,"insertions":5,"deletions":5,"files":["jc/cli.py"],"file_stats":[{"name":"jc/cli.py","lines_changed":10}]}},{"commit":"937a9fa9cf2ede8e686ba853989f33e4a483a0ad","message":"vendorize appdirs module","stats":{"files_changed":4,"insertions":613,"deletions":3,"files":["jc/appdirs.py","jc/cli.py","requirements.txt","setup.py"],"file_stats":[{"name":"jc/appdirs.py","lines_changed":611},{"name":"jc/cli.py","lines_changed":3},{"name":"requirements.txt","lines_changed":1},{"name":"setup.py","lines_changed":1}]}},{"commit":"808ff6cf0e784cf0c2d523ff2e01197cb6e88c82","message":"more acknowledgments updates","stats":{"files_changed":1,"insertions":6,"deletions":6,"files":["README.md"],"file_stats":[{"name":"README.md","lines_changed":12}]}},{"commit":"7f5c649a95a871c3cd8d48731a6d26dcba6f725b","message":"update acknowledgments","stats":{"files_changed":1,"insertions":1,"deletions":1,"files":["README.md"],"file_stats":[{"name":"README.md","lines_changed":2}]}},{"commit":"b72727dec995de1ca5f68ee17a710b086c87d612","message":"update custom parsers info","stats":{"files_changed":1,"insertions":9,"deletions":2,"files":["README.md"],"file_stats":[{"name":"README.md","lines_changed":11}]}},{"commit":"3fc88bfb334143b68a9cb78d4034f33e7c0bcf76","message":"Merge pull request #65 from duelafn/local-parsers"},{"commit":"9f2279d5867eb89d4b4b7b4ffca290166ec97c48","message":"Load custom parsers from <user_data_dir>/jc/jcparsers","stats":{"files_changed":4,"insertions":29,"deletions":2,"files":["README.md","jc/cli.py","requirements.txt","setup.py"],"file_stats":[{"name":"README.md","lines_changed":7},{"name":"jc/cli.py","lines_changed":22},{"name":"requirements.txt","lines_changed":1},{"name":"setup.py","lines_changed":1}]}},{"commit":"346a14cb9bb0d762fc3fa366ad97e5ff85f3992a","message":"change osx_device to unix_device","stats":{"files_changed":1,"insertions":1,"deletions":1,"files":["changelog.txt"],"file_stats":[{"name":"changelog.txt","lines_changed":2}]}},{"commit":"dac00d17ff9f3d2bb959697b6e567015bfc2702b","message":"add nixos test","stats":{"files_changed":3,"insertions":17,"deletions":0,"files":["tests/fixtures/nixos/route-ee.json","tests/fixtures/nixos/route-ee.out","tests/test_route.py"],"file_stats":[{"name":"tests/fixtures/nixos/route-ee.json","lines_changed":1},{"name":"tests/fixtures/nixos/route-ee.out","lines_changed":4},{"name":"tests/test_route.py","lines_changed":12}]}},{"commit":"9ca7cd40601b97829e8f88071fdfb928d939f7e5","message":"update docs","stats":{"files_changed":1,"insertions":17,"deletions":34,"files":["jc/parsers/route.py"],"file_stats":[{"name":"jc/parsers/route.py","lines_changed":51}]}},{"commit":"aa31628970b12295a41dff20e829fcce9f8a4d07","message":"update docs","stats":{"files_changed":5,"insertions":70,"deletions":63,"files":["README.md","docs/parsers/netstat.md","docs/parsers/route.md","docs/parsers/stat.md","jc/parsers/netstat.py"],"file_stats":[{"name":"README.md","lines_changed":46},{"name":"docs/parsers/netstat.md","lines_changed":16},{"name":"docs/parsers/route.md","lines_changed":51},{"name":"docs/parsers/stat.md","lines_changed":4},{"name":"jc/parsers/netstat.py","lines_changed":16}]}},{"commit":"bed694fcf5c8c31bbd4f3e88759fe7ab82382d24","message":"version bump","stats":{"files_changed":1,"insertions":1,"deletions":1,"files":["setup.py"],"file_stats":[{"name":"setup.py","lines_changed":2}]}},{"commit":"4b4af69fa184896ec15b5be7dc8416f36f921d5e","message":"fix date","stats":{"files_changed":1,"insertions":1,"deletions":1,"files":["changelog.txt"],"file_stats":[{"name":"changelog.txt","lines_changed":2}]}},{"commit":"9d96190a5b19e8d71c3ac66eb0303d269dd4ce5d","message":"Merge pull request #64 from kellyjonbrazil/dev"},{"commit":"fa44d48c094a55e499c2c780d109bf277736b42e","message":"freebsd fixes, tests, and fixtures","stats":{"files_changed":6,"insertions":129,"deletions":7,"files":["changelog.txt","jc/parsers/stat.py","tests/fixtures/freebsd12/stat.json","tests/fixtures/freebsd12/stat.out","tests/fixtures/osx-10.14.6/stat.json","tests/test_stat.py"],"file_stats":[{"name":"changelog.txt","lines_changed":2},{"name":"jc/parsers/stat.py","lines_changed":12},{"name":"tests/fixtures/freebsd12/stat.json","lines_changed":1},{"name":"tests/fixtures/freebsd12/stat.out","lines_changed":107},{"name":"tests/fixtures/osx-10.14.6/stat.json","lines_changed":2},{"name":"tests/test_stat.py","lines_changed":12}]}},{"commit":"4ef961c2788c935b1fea1c9777b976e7b89e7367","message":"add freebsd test and fixtures","stats":{"files_changed":3,"insertions":20,"deletions":0,"files":["tests/fixtures/freebsd12/ntpq-p.json","tests/fixtures/freebsd12/ntpq-p.out","tests/test_ntpq.py"],"file_stats":[{"name":"tests/fixtures/freebsd12/ntpq-p.json","lines_changed":1},{"name":"tests/fixtures/freebsd12/ntpq-p.out","lines_changed":7},{"name":"tests/test_ntpq.py","lines_changed":12}]}},{"commit":"292a837d5c47165ccb155f079b0a114b5c17a98e","message":"add tests and fixtures for freebsd12","stats":{"files_changed":3,"insertions":22,"deletions":0,"files":["tests/fixtures/freebsd12/last.json","tests/fixtures/freebsd12/last.out","tests/test_last.py"],"file_stats":[{"name":"tests/fixtures/freebsd12/last.json","lines_changed":1},{"name":"tests/fixtures/freebsd12/last.out","lines_changed":9},{"name":"tests/test_last.py","lines_changed":12}]}},{"commit":"aa7b915d847dbd29d2c09b2cc40b847e37174ffb","message":"version bump","stats":{"files_changed":1,"insertions":1,"deletions":1,"files":["jc/parsers/last.py"],"file_stats":[{"name":"jc/parsers/last.py","lines_changed":2}]}},{"commit":"c46fe73236b912d2ee89dfb36ff259fe95fd0479","message":"add last fixes for freebsd","stats":{"files_changed":1,"insertions":1,"deletions":0,"files":["changelog.txt"],"file_stats":[{"name":"changelog.txt","lines_changed":1}]}},{"commit":"039b2c129cbe79d2d23b1194b043d8b730609956","message":"freebsd fixes","stats":{"files_changed":1,"insertions":10,"deletions":1,"files":["jc/parsers/last.py"],"file_stats":[{"name":"jc/parsers/last.py","lines_changed":11}]}},{"commit":"8f2e5e4808b30c658a4cb87125639e4d7d6c15d8","message":"fix compatible logic","stats":{"files_changed":1,"insertions":1,"deletions":1,"files":["jc/utils.py"],"file_stats":[{"name":"jc/utils.py","lines_changed":2}]}},{"commit":"c4da8e4f78e6b4aaa4aff76ae042be9aaec832a7","message":"add nixos and freebsd to tested. update new arp fields","stats":{"files_changed":1,"insertions":9,"deletions":3,"files":["README.md"],"file_stats":[{"name":"README.md","lines_changed":12}]}},{"commit":"bcab9078a4c2bfd6ae4dca9448b577d9ed0fc01c","message":"add w parser fix","stats":{"files_changed":1,"insertions":1,"deletions":0,"files":["changelog.txt"],"file_stats":[{"name":"changelog.txt","lines_changed":1}]}},{"commit":"b3c6c1ea925bf7cd76368f5074fb8af52a844522","message":"strip whitespace in string fields and add tests","stats":{"files_changed":4,"insertions":29,"deletions":5,"files":["jc/parsers/w.py","tests/fixtures/nixos/w.json","tests/fixtures/nixos/w.out","tests/test_w.py"],"file_stats":[{"name":"jc/parsers/w.py","lines_changed":8},{"name":"tests/fixtures/nixos/w.json","lines_changed":1},{"name":"tests/fixtures/nixos/w.out","lines_changed":5},{"name":"tests/test_w.py","lines_changed":20}]}},{"commit":"a3af8662bd491e344c93d24afabd23e90efd8086","message":"add permanent field","stats":{"files_changed":3,"insertions":205,"deletions":3,"files":["tests/fixtures/osx-10.11.6/arp-a.json","tests/fixtures/osx-10.14.6/arp-a.json","tests/fixtures/osx-10.14.6/arp-a2.json"],"file_stats":[{"name":"tests/fixtures/osx-10.11.6/arp-a.json","lines_changed":107},{"name":"tests/fixtures/osx-10.14.6/arp-a.json","lines_changed":99},{"name":"tests/fixtures/osx-10.14.6/arp-a2.json","lines_changed":2}]}},{"commit":"35940d0bc80bf61b11f40b1e1043835f26eb391c","message":"add freebsd permanent and expires fields","stats":{"files_changed":6,"insertions":59,"deletions":4,"files":["changelog.txt","docs/parsers/arp.md","jc/parsers/arp.py","tests/fixtures/freebsd12/arp-a.json","tests/fixtures/freebsd12/arp-a.out","tests/test_arp.py"],"file_stats":[{"name":"changelog.txt","lines_changed":2},{"name":"docs/parsers/arp.md","lines_changed":12},{"name":"jc/parsers/arp.py","lines_changed":33},{"name":"tests/fixtures/freebsd12/arp-a.json","lines_changed":1},{"name":"tests/fixtures/freebsd12/arp-a.out","lines_changed":3},{"name":"tests/test_arp.py","lines_changed":12}]}},{"commit":"26994cdcb7148d2c9d1701bca9541d247356260b","message":"add freebsd compatibility info","stats":{"files_changed":8,"insertions":115,"deletions":85,"files":["docs/parsers/df.md","docs/parsers/fstab.md","docs/parsers/mount.md","docs/parsers/netstat.md","docs/parsers/ntpq.md","docs/parsers/route.md","docs/parsers/stat.md","docs/parsers/uname.md"],"file_stats":[{"name":"docs/parsers/df.md","lines_changed":2},{"name":"docs/parsers/fstab.md","lines_changed":2},{"name":"docs/parsers/mount.md","lines_changed":2},{"name":"docs/parsers/netstat.md","lines_changed":163},{"name":"docs/parsers/ntpq.md","lines_changed":2},{"name":"docs/parsers/route.md","lines_changed":25},{"name":"docs/parsers/stat.md","lines_changed":2},{"name":"docs/parsers/uname.md","lines_changed":2}]}},{"commit":"017159a829691cb6a7174f123d024eb252179b75","message":"add freebsd nestat tests and fixtures","stats":{"files_changed":15,"insertions":221,"deletions":0,"files":["tests/fixtures/freebsd12/netstat-Aa.json","tests/fixtures/freebsd12/netstat-AaT.json","tests/fixtures/freebsd12/netstat-AaT.out","tests/fixtures/freebsd12/netstat-AanP.json","tests/fixtures/freebsd12/netstat-AanP.out","tests/fixtures/freebsd12/netstat-Aax.json","tests/fixtures/freebsd12/netstat-Aax.out","tests/fixtures/freebsd12/netstat-aT.json","tests/fixtures/freebsd12/netstat-aT.out","tests/fixtures/freebsd12/netstat-an.json","tests/fixtures/freebsd12/netstat-i.json","tests/fixtures/freebsd12/netstat-ib.json","tests/fixtures/freebsd12/netstat-ib.out","tests/fixtures/freebsd12/netstat-r.json","tests/test_netstat.py"],"file_stats":[{"name":"tests/fixtures/freebsd12/netstat-Aa.json","lines_changed":1},{"name":"tests/fixtures/freebsd12/netstat-AaT.json","lines_changed":1},{"name":"tests/fixtures/freebsd12/netstat-AaT.out","lines_changed":24},{"name":"tests/fixtures/freebsd12/netstat-AanP.json","lines_changed":1},{"name":"tests/fixtures/freebsd12/netstat-AanP.out","lines_changed":24},{"name":"tests/fixtures/freebsd12/netstat-Aax.json","lines_changed":1},{"name":"tests/fixtures/freebsd12/netstat-Aax.out","lines_changed":24},{"name":"tests/fixtures/freebsd12/netstat-aT.json","lines_changed":1},{"name":"tests/fixtures/freebsd12/netstat-aT.out","lines_changed":24},{"name":"tests/fixtures/freebsd12/netstat-an.json","lines_changed":1},{"name":"tests/fixtures/freebsd12/netstat-i.json","lines_changed":1},{"name":"tests/fixtures/freebsd12/netstat-ib.json","lines_changed":1},{"name":"tests/fixtures/freebsd12/netstat-ib.out","lines_changed":8},{"name":"tests/fixtures/freebsd12/netstat-r.json","lines_changed":1},{"name":"tests/test_netstat.py","lines_changed":108}]}},{"commit":"b4e9c85e08d199dad67f03c7603194278a022696","message":"fixup -T freebsd output and add whitespace stripping to parse_post","stats":{"files_changed":1,"insertions":12,"deletions":0,"files":["jc/parsers/netstat_freebsd_osx.py"],"file_stats":[{"name":"jc/parsers/netstat_freebsd_osx.py","lines_changed":12}]}},{"commit":"189146cd84cfad262f2b2601bb0cb4b9dde2587e","message":"add more ints. remove whitespace strip code and move to freebsd_osx module","stats":{"files_changed":1,"insertions":4,"deletions":6,"files":["jc/parsers/netstat.py"],"file_stats":[{"name":"jc/parsers/netstat.py","lines_changed":10}]}},{"commit":"af34153ffab10ca1ad7f44736d379d91ae43c813","message":"version bump","stats":{"files_changed":2,"insertions":2,"deletions":2,"files":["changelog.txt","jc/cli.py"],"file_stats":[{"name":"changelog.txt","lines_changed":2},{"name":"jc/cli.py","lines_changed":2}]}},{"commit":"bf2ff3ffbb639446779b1f04f2997707d99c0a1f","message":"fix compatibility search for platform names that append the version number (e.g. freebsd12)","stats":{"files_changed":1,"insertions":8,"deletions":1,"files":["jc/utils.py"],"file_stats":[{"name":"jc/utils.py","lines_changed":9}]}},{"commit":"6423c9efd69e938af38934a97ca6b65009e8f07e","message":"integer and float updates","stats":{"files_changed":1,"insertions":34,"deletions":5,"files":["jc/parsers/netstat.py"],"file_stats":[{"name":"jc/parsers/netstat.py","lines_changed":39}]}},{"commit":"58ab0d4ece7f006ce9431afb9e0fecbe60930be7","message":"strip whitespace from string fields","stats":{"files_changed":4,"insertions":12,"deletions":4,"files":["changelog.txt","jc/parsers/netstat.py","tests/fixtures/osx-10.14.6/netstat-An.json","tests/fixtures/osx-10.14.6/netstat.json"],"file_stats":[{"name":"changelog.txt","lines_changed":1},{"name":"jc/parsers/netstat.py","lines_changed":11},{"name":"tests/fixtures/osx-10.14.6/netstat-An.json","lines_changed":2},{"name":"tests/fixtures/osx-10.14.6/netstat.json","lines_changed":2}]}},{"commit":"83a738bf4d756036d6269b9153220d7f1018ac9c","message":"update fixtures for osx_flags and osx_inode name change to unix_flags and unix_inode","stats":{"files_changed":3,"insertions":3,"deletions":3,"files":["tests/fixtures/osx-10.14.6/netstat-Abn.json","tests/fixtures/osx-10.14.6/netstat-An.json","tests/fixtures/osx-10.14.6/netstat.json"],"file_stats":[{"name":"tests/fixtures/osx-10.14.6/netstat-Abn.json","lines_changed":2},{"name":"tests/fixtures/osx-10.14.6/netstat-An.json","lines_changed":2},{"name":"tests/fixtures/osx-10.14.6/netstat.json","lines_changed":2}]}},{"commit":"3640671fc6a67c9628fd47e19e9fe0a0738439ce","message":"rename module","stats":{"files_changed":1,"insertions":5,"deletions":5,"files":["jc/parsers/{netstat_osx.py => netstat_freebsd_osx.py}"],"file_stats":[{"name":"jc/parsers/{netstat_osx.py => netstat_freebsd_osx.py}","lines_changed":10}]}},{"commit":"1da623b30ef6f9b12ac231518d2d4e7dadcf717b","message":"add items","stats":{"files_changed":1,"insertions":9,"deletions":0,"files":["changelog.txt"],"file_stats":[{"name":"changelog.txt","lines_changed":9}]}},{"commit":"b10ca64646e93d9797182ea046f4956a17b37627","message":"change osx_inode and osx_flags to unix_inode and unix_flags. Also rename netstat_osx module to netstat_freebsd_osx","stats":{"files_changed":1,"insertions":71,"deletions":71,"files":["jc/parsers/netstat.py"],"file_stats":[{"name":"jc/parsers/netstat.py","lines_changed":142}]}},{"commit":"2128763ee67a07da6ebf123abeec39794bc1f4e2","message":"fix osx version from 16.4 to 14.6","stats":{"files_changed":1,"insertions":12,"deletions":12,"files":["tests/test_netstat.py"],"file_stats":[{"name":"tests/test_netstat.py","lines_changed":24}]}},{"commit":"a27e7ed39c63c04cfa78caceaada42f7a9496a2c","message":"test updates for added route_flags_pretty and flags_pretty fields","stats":{"files_changed":12,"insertions":12,"deletions":12,"files":["tests/fixtures/centos-7.7/netstat-r.json","tests/fixtures/centos-7.7/netstat-rne.json","tests/fixtures/centos-7.7/netstat-rnee.json","tests/fixtures/centos-7.7/route-vn.json","tests/fixtures/centos-7.7/route.json","tests/fixtures/osx-10.14.6/netstat-r.json","tests/fixtures/osx-10.14.6/netstat-rnl.json","tests/fixtures/ubuntu-18.04/netstat-r.json","tests/fixtures/ubuntu-18.04/netstat-rne.json","tests/fixtures/ubuntu-18.04/netstat-rnee.json","tests/fixtures/ubuntu-18.04/route-vn.json","tests/fixtures/ubuntu-18.04/route.json"],"file_stats":[{"name":"tests/fixtures/centos-7.7/netstat-r.json","lines_changed":2},{"name":"tests/fixtures/centos-7.7/netstat-rne.json","lines_changed":2},{"name":"tests/fixtures/centos-7.7/netstat-rnee.json","lines_changed":2},{"name":"tests/fixtures/centos-7.7/route-vn.json","lines_changed":2},{"name":"tests/fixtures/centos-7.7/route.json","lines_changed":2},{"name":"tests/fixtures/osx-10.14.6/netstat-r.json","lines_changed":2},{"name":"tests/fixtures/osx-10.14.6/netstat-rnl.json","lines_changed":2},{"name":"tests/fixtures/ubuntu-18.04/netstat-r.json","lines_changed":2},{"name":"tests/fixtures/ubuntu-18.04/netstat-rne.json","lines_changed":2},{"name":"tests/fixtures/ubuntu-18.04/netstat-rnee.json","lines_changed":2},{"name":"tests/fixtures/ubuntu-18.04/route-vn.json","lines_changed":2},{"name":"tests/fixtures/ubuntu-18.04/route.json","lines_changed":2}]}},{"commit":"f07b7eaa474eb87dbdbc7fbe41b9386feff7bee2","message":"add flags_pretty","stats":{"files_changed":1,"insertions":38,"deletions":12,"files":["jc/parsers/route.py"],"file_stats":[{"name":"jc/parsers/route.py","lines_changed":50}]}},{"commit":"6ce18de84ce16a926f9cd97c3210ef209c3352da","message":"add route_flags_pretty","stats":{"files_changed":3,"insertions":130,"deletions":69,"files":["jc/parsers/netstat.py","jc/parsers/netstat_linux.py","jc/parsers/netstat_osx.py"],"file_stats":[{"name":"jc/parsers/netstat.py","lines_changed":139},{"name":"jc/parsers/netstat_linux.py","lines_changed":23},{"name":"jc/parsers/netstat_osx.py","lines_changed":37}]}},{"commit":"8631b756e7ab8cd71c2a3eb288e2d1823cec5782","message":"add freebsd test files","stats":{"files_changed":4,"insertions":76,"deletions":0,"files":["tests/fixtures/freebsd12/netstat-Aa.out","tests/fixtures/freebsd12/netstat-an.out","tests/fixtures/freebsd12/netstat-i.out","tests/fixtures/freebsd12/netstat-r.out"],"file_stats":[{"name":"tests/fixtures/freebsd12/netstat-Aa.out","lines_changed":24},{"name":"tests/fixtures/freebsd12/netstat-an.out","lines_changed":24},{"name":"tests/fixtures/freebsd12/netstat-i.out","lines_changed":8},{"name":"tests/fixtures/freebsd12/netstat-r.out","lines_changed":20}]}},{"commit":"7414d984125300164a5b6156d7a80128d4d6cb15","message":"add freebsd compatibility","stats":{"files_changed":6,"insertions":18,"deletions":18,"files":["jc/parsers/df.py","jc/parsers/fstab.py","jc/parsers/mount.py","jc/parsers/ntpq.py","jc/parsers/stat.py","jc/parsers/uname.py"],"file_stats":[{"name":"jc/parsers/df.py","lines_changed":6},{"name":"jc/parsers/fstab.py","lines_changed":6},{"name":"jc/parsers/mount.py","lines_changed":6},{"name":"jc/parsers/ntpq.py","lines_changed":6},{"name":"jc/parsers/stat.py","lines_changed":6},{"name":"jc/parsers/uname.py","lines_changed":6}]}},{"commit":"d7b19892e8fb11e17fcbadcdbb08d49897d7754f","message":"add freebsd support for netstat -i","stats":{"files_changed":2,"insertions":10,"deletions":7,"files":["jc/parsers/netstat.py","jc/parsers/netstat_osx.py"],"file_stats":[{"name":"jc/parsers/netstat.py","lines_changed":13},{"name":"jc/parsers/netstat_osx.py","lines_changed":4}]}},{"commit":"96df396eaf4e030113005a95e525d644c394dfe1","message":"formatting","stats":{"files_changed":1,"insertions":1,"deletions":1,"files":["README.md"],"file_stats":[{"name":"README.md","lines_changed":2}]}},{"commit":"2f6f640317da5af894f34f187c4243ef0c599d07","message":"spelling","stats":{"files_changed":1,"insertions":1,"deletions":1,"files":["README.md"],"file_stats":[{"name":"README.md","lines_changed":2}]}},{"commit":"c4a0a50f3a3ac5833ab5d2f8a0cb3f18da335812","message":"add nix-env","stats":{"files_changed":1,"insertions":6,"deletions":1,"files":["README.md"],"file_stats":[{"name":"README.md","lines_changed":7}]}},{"commit":"658f8a3842273cea049689b3aea15d89a7294b24","message":"add zypper and ports info","stats":{"files_changed":1,"insertions":10,"deletions":3,"files":["README.md"],"file_stats":[{"name":"README.md","lines_changed":13}]}},{"commit":"bfb876a1e394ff63c6773965ba0b65da4e109c1b","message":"formatting","stats":{"files_changed":1,"insertions":2,"deletions":1,"files":["README.md"],"file_stats":[{"name":"README.md","lines_changed":3}]}},{"commit":"90c34b1f4ee2d9ec8125346bb90b227f76ada2ba","message":"fix dmidecode example","stats":{"files_changed":1,"insertions":1,"deletions":0,"files":["README.md"],"file_stats":[{"name":"README.md","lines_changed":1}]}},{"commit":"3f9164ea77ec41e1b0671d0a642900d8e36faf9b","message":"bold formatting","stats":{"files_changed":1,"insertions":1,"deletions":1,"files":["README.md"],"file_stats":[{"name":"README.md","lines_changed":2}]}},{"commit":"7fd6fecbf5a08b1f13aa7e906e94be9bc126780a","message":"formatting","stats":{"files_changed":1,"insertions":1,"deletions":1,"files":["README.md"],"file_stats":[{"name":"README.md","lines_changed":2}]}},{"commit":"8029f72363a4d19938df07603f03a0147f6246a8","message":"change osx_flags from integer to string","stats":{"files_changed":6,"insertions":10,"deletions":7,"files":["changelog.txt","docs/parsers/stat.md","jc/cli.py","jc/parsers/stat.py","setup.py","tests/fixtures/osx-10.14.6/stat.json"],"file_stats":[{"name":"changelog.txt","lines_changed":3},{"name":"docs/parsers/stat.md","lines_changed":2},{"name":"jc/cli.py","lines_changed":2},{"name":"jc/parsers/stat.py","lines_changed":6},{"name":"setup.py","lines_changed":2},{"name":"tests/fixtures/osx-10.14.6/stat.json","lines_changed":2}]}},{"commit":"c7fdce5d3b7566a7d290627767c47d9c196e02ad","message":"Merge pull request #62 from kellyjonbrazil/dev"},{"commit":"84f48aa369a458f534523ecc1e3aaaf403d06f1c","message":"version bump","stats":{"files_changed":3,"insertions":3,"deletions":3,"files":["changelog.txt","jc/cli.py","setup.py"],"file_stats":[{"name":"changelog.txt","lines_changed":2},{"name":"jc/cli.py","lines_changed":2},{"name":"setup.py","lines_changed":2}]}},{"commit":"2e9a0a9c1221dd01bd683ecbc4871d03738da671","message":"add features","stats":{"files_changed":1,"insertions":3,"deletions":2,"files":["changelog.txt"],"file_stats":[{"name":"changelog.txt","lines_changed":5}]}},{"commit":"c1f6f2b9508e558ab88b4a0a61e93a6cf5460bea","message":"osx fixes and tests","stats":{"files_changed":5,"insertions":116,"deletions":4,"files":["docs/parsers/stat.md","jc/parsers/stat.py","tests/fixtures/osx-10.14.6/stat.json","tests/fixtures/osx-10.14.6/stat.out","tests/test_stat.py"],"file_stats":[{"name":"docs/parsers/stat.md","lines_changed":8},{"name":"jc/parsers/stat.py","lines_changed":5},{"name":"tests/fixtures/osx-10.14.6/stat.json","lines_changed":1},{"name":"tests/fixtures/osx-10.14.6/stat.out","lines_changed":94},{"name":"tests/test_stat.py","lines_changed":12}]}},{"commit":"ede21bca13c4b46899721f01d979c8b063f861a3","message":"add OSX support for stat","stats":{"files_changed":1,"insertions":110,"deletions":78,"files":["jc/parsers/stat.py"],"file_stats":[{"name":"jc/parsers/stat.py","lines_changed":188}]}},{"commit":"8dd9a9f9cbc70a19176f909f6ac76b2bcf670736","message":"add netstat -i tests","stats":{"files_changed":5,"insertions":45,"deletions":0,"files":["tests/fixtures/centos-7.7/netstat-i.json","tests/fixtures/osx-10.14.6/netstat-i.json","tests/fixtures/ubuntu-18.04/netstat-i.json","tests/fixtures/ubuntu-18.04/netstat-i.out","tests/test_netstat.py"],"file_stats":[{"name":"tests/fixtures/centos-7.7/netstat-i.json","lines_changed":1},{"name":"tests/fixtures/osx-10.14.6/netstat-i.json","lines_changed":1},{"name":"tests/fixtures/ubuntu-18.04/netstat-i.json","lines_changed":1},{"name":"tests/fixtures/ubuntu-18.04/netstat-i.out","lines_changed":4},{"name":"tests/test_netstat.py","lines_changed":38}]}},{"commit":"04f92cd1330759e4bad1c0304b9e1c28e8d32d59","message":"add linux support for netstat -i","stats":{"files_changed":5,"insertions":166,"deletions":4,"files":["README.md","docs/parsers/netstat.md","jc/parsers/netstat.py","jc/parsers/netstat_linux.py","tests/fixtures/centos-7.7/netstat-i.out"],"file_stats":[{"name":"README.md","lines_changed":32},{"name":"docs/parsers/netstat.md","lines_changed":50},{"name":"jc/parsers/netstat.py","lines_changed":44},{"name":"jc/parsers/netstat_linux.py","lines_changed":39},{"name":"tests/fixtures/centos-7.7/netstat-i.out","lines_changed":5}]}},{"commit":"8be8d2393b276a9249e1c573ce19cf630f0942fd","message":"add netstat -i support for OSX","stats":{"files_changed":3,"insertions":99,"deletions":3,"files":["jc/parsers/netstat.py","jc/parsers/netstat_osx.py","tests/fixtures/osx-10.14.6/netstat-i.out"],"file_stats":[{"name":"jc/parsers/netstat.py","lines_changed":19},{"name":"jc/parsers/netstat_osx.py","lines_changed":40},{"name":"tests/fixtures/osx-10.14.6/netstat-i.out","lines_changed":43}]}},{"commit":"0a879681be68fe2e6e5c013ab0fe18de99b04f7e","message":"add netstat -r to docs","stats":{"files_changed":3,"insertions":97,"deletions":282,"files":["README.md","docs/parsers/netstat.md","jc/parsers/netstat.py"],"file_stats":[{"name":"README.md","lines_changed":37},{"name":"docs/parsers/netstat.md","lines_changed":171},{"name":"jc/parsers/netstat.py","lines_changed":171}]}},{"commit":"2ca1587a49511899bf719e0b0c7de32158fc491d","message":"add linux netstat -r tests","stats":{"files_changed":10,"insertions":102,"deletions":0,"files":["tests/fixtures/centos-7.7/netstat-r.json","tests/fixtures/centos-7.7/netstat-rne.json","tests/fixtures/centos-7.7/netstat-rnee.json","tests/fixtures/ubuntu-18.04/netstat-r.json","tests/fixtures/ubuntu-18.04/netstat-r.out","tests/fixtures/ubuntu-18.04/netstat-rne.json","tests/fixtures/ubuntu-18.04/netstat-rne.out","tests/fixtures/ubuntu-18.04/netstat-rnee.json","tests/fixtures/ubuntu-18.04/netstat-rnee.out","tests/test_netstat.py"],"file_stats":[{"name":"tests/fixtures/centos-7.7/netstat-r.json","lines_changed":1},{"name":"tests/fixtures/centos-7.7/netstat-rne.json","lines_changed":1},{"name":"tests/fixtures/centos-7.7/netstat-rnee.json","lines_changed":1},{"name":"tests/fixtures/ubuntu-18.04/netstat-r.json","lines_changed":1},{"name":"tests/fixtures/ubuntu-18.04/netstat-r.out","lines_changed":5},{"name":"tests/fixtures/ubuntu-18.04/netstat-rne.json","lines_changed":1},{"name":"tests/fixtures/ubuntu-18.04/netstat-rne.out","lines_changed":5},{"name":"tests/fixtures/ubuntu-18.04/netstat-rnee.json","lines_changed":1},{"name":"tests/fixtures/ubuntu-18.04/netstat-rnee.out","lines_changed":5},{"name":"tests/test_netstat.py","lines_changed":81}]}},{"commit":"ec2cd2d708a57c0458657416bedcb4340cb40901","message":"add netstat -r support for linux","stats":{"files_changed":9,"insertions":70,"deletions":11,"files":["docs/parsers/netstat.md","jc/parsers/netstat.py","jc/parsers/netstat_linux.py","jc/parsers/netstat_osx.py","tests/fixtures/centos-7.7/netstat-r.out","tests/fixtures/centos-7.7/netstat-rne.out","tests/fixtures/centos-7.7/netstat-rnee.out","tests/fixtures/osx-10.14.6/netstat-r.json","tests/fixtures/osx-10.14.6/netstat-rnl.json"],"file_stats":[{"name":"docs/parsers/netstat.md","lines_changed":11},{"name":"jc/parsers/netstat.py","lines_changed":13},{"name":"jc/parsers/netstat_linux.py","lines_changed":37},{"name":"jc/parsers/netstat_osx.py","lines_changed":1},{"name":"tests/fixtures/centos-7.7/netstat-r.out","lines_changed":5},{"name":"tests/fixtures/centos-7.7/netstat-rne.out","lines_changed":5},{"name":"tests/fixtures/centos-7.7/netstat-rnee.out","lines_changed":5},{"name":"tests/fixtures/osx-10.14.6/netstat-r.json","lines_changed":2},{"name":"tests/fixtures/osx-10.14.6/netstat-rnl.json","lines_changed":2}]}},{"commit":"5d0dbece9317e84a47d9f4b2d18a9ffa33fbee6e","message":"add netstat -r functionality for OSX","stats":{"files_changed":8,"insertions":288,"deletions":5,"files":["docs/parsers/netstat.md","jc/parsers/netstat.py","jc/parsers/netstat_osx.py","tests/fixtures/osx-10.14.6/netstat-r.json","tests/fixtures/osx-10.14.6/netstat-r.out","tests/fixtures/osx-10.14.6/netstat-rnl.json","tests/fixtures/osx-10.14.6/netstat-rnl.out","tests/test_netstat.py"],"file_stats":[{"name":"docs/parsers/netstat.md","lines_changed":17},{"name":"jc/parsers/netstat.py","lines_changed":23},{"name":"jc/parsers/netstat_osx.py","lines_changed":37},{"name":"tests/fixtures/osx-10.14.6/netstat-r.json","lines_changed":1},{"name":"tests/fixtures/osx-10.14.6/netstat-r.out","lines_changed":93},{"name":"tests/fixtures/osx-10.14.6/netstat-rnl.json","lines_changed":1},{"name":"tests/fixtures/osx-10.14.6/netstat-rnl.out","lines_changed":96},{"name":"tests/test_netstat.py","lines_changed":25}]}},{"commit":"df1e4b414b2bda5be3153767cd854b2483ba600b","message":"remove unused folder","stats":{"files_changed":1,"insertions":0,"deletions":1,"files":[".gitignore"],"file_stats":[{"name":".gitignore","lines_changed":1}]}},{"commit":"40760991e7dae43cd15134310f7bbb5ce0f58dae","message":"update copyright date","stats":{"files_changed":1,"insertions":1,"deletions":1,"files":["LICENSE.md"],"file_stats":[{"name":"LICENSE.md","lines_changed":2}]}},{"commit":"464f5f86cf2c8fe6a1a857b0ad4d221a3edf3d88","message":"update description","stats":{"files_changed":1,"insertions":1,"deletions":1,"files":["setup.py"],"file_stats":[{"name":"setup.py","lines_changed":2}]}},{"commit":"7b09e9fccdd4f09218a500b54c898ada1b9843c7","message":"set empty values to Null and update fixtures","stats":{"files_changed":5,"insertions":8,"deletions":5,"files":["docs/parsers/dmidecode.md","jc/parsers/dmidecode.py","tests/fixtures/centos-7.7/dmidecode.json","tests/fixtures/fedora32/dmidecode.json","tests/fixtures/ubuntu-18.04/dmidecode.json"],"file_stats":[{"name":"docs/parsers/dmidecode.md","lines_changed":2},{"name":"jc/parsers/dmidecode.py","lines_changed":5},{"name":"tests/fixtures/centos-7.7/dmidecode.json","lines_changed":2},{"name":"tests/fixtures/fedora32/dmidecode.json","lines_changed":2},{"name":"tests/fixtures/ubuntu-18.04/dmidecode.json","lines_changed":2}]}},{"commit":"6cba7d429898d331c674c778f8bd85ba75a8dca9","message":"remove linux from description","stats":{"files_changed":1,"insertions":1,"deletions":1,"files":["README.md"],"file_stats":[{"name":"README.md","lines_changed":2}]}},{"commit":"9730f62e4970b5a4490f8dc24b6cfb9cacd0cbf2","message":"fixup name field and update test fixtures","stats":{"files_changed":5,"insertions":151,"deletions":133,"files":["jc/parsers/netstat_osx.py","tests/fixtures/osx-10.14.6/netstat-Abn.json","tests/fixtures/osx-10.14.6/netstat-An.json","tests/fixtures/osx-10.14.6/netstat.json","tests/fixtures/osx-10.14.6/netstat.out"],"file_stats":[{"name":"jc/parsers/netstat_osx.py","lines_changed":7},{"name":"tests/fixtures/osx-10.14.6/netstat-Abn.json","lines_changed":2},{"name":"tests/fixtures/osx-10.14.6/netstat-An.json","lines_changed":2},{"name":"tests/fixtures/osx-10.14.6/netstat.json","lines_changed":2},{"name":"tests/fixtures/osx-10.14.6/netstat.out","lines_changed":271}]}},{"commit":"e0c1c87f549eee000b93b5f5a3e8d0b052eb7d32","message":"formatting","stats":{"files_changed":1,"insertions":4,"deletions":4,"files":["README.md"],"file_stats":[{"name":"README.md","lines_changed":8}]}},{"commit":"931b3d2b836b251590497f4cfa65f106762086c1","message":"formatting","stats":{"files_changed":1,"insertions":1,"deletions":1,"files":["README.md"],"file_stats":[{"name":"README.md","lines_changed":2}]}},{"commit":"e5d561baeecf1fd83a884b3cd9d322762f750dfb","message":"add multipath condition for osx detection","stats":{"files_changed":1,"insertions":1,"deletions":0,"files":["jc/parsers/netstat.py"],"file_stats":[{"name":"jc/parsers/netstat.py","lines_changed":1}]}},{"commit":"2867593e7aa12299686e2c6aa0f2a79a9b550b53","message":"changelog update","stats":{"files_changed":1,"insertions":6,"deletions":0,"files":["changelog.txt"],"file_stats":[{"name":"changelog.txt","lines_changed":6}]}},{"commit":"dd52fee5635c977d5c77046ab9fe78d2ed10deef","message":"osx netstat tests and fixtures","stats":{"files_changed":7,"insertions":2141,"deletions":0,"files":["tests/fixtures/osx-10.14.6/netstat-Abn.json","tests/fixtures/osx-10.14.6/netstat-Abn.out","tests/fixtures/osx-10.14.6/netstat-An.json","tests/fixtures/osx-10.14.6/netstat-An.out","tests/fixtures/osx-10.14.6/netstat.json","tests/fixtures/osx-10.14.6/netstat.out","tests/test_netstat.py"],"file_stats":[{"name":"tests/fixtures/osx-10.14.6/netstat-Abn.json","lines_changed":1},{"name":"tests/fixtures/osx-10.14.6/netstat-Abn.out","lines_changed":689},{"name":"tests/fixtures/osx-10.14.6/netstat-An.json","lines_changed":1},{"name":"tests/fixtures/osx-10.14.6/netstat-An.out","lines_changed":689},{"name":"tests/fixtures/osx-10.14.6/netstat.json","lines_changed":1},{"name":"tests/fixtures/osx-10.14.6/netstat.out","lines_changed":724},{"name":"tests/test_netstat.py","lines_changed":36}]}},{"commit":"8e1f8858273e671a882a07eae1c35b38f5298c94","message":"fix filtered netstat views","stats":{"files_changed":1,"insertions":6,"deletions":1,"files":["jc/parsers/netstat.py"],"file_stats":[{"name":"jc/parsers/netstat.py","lines_changed":7}]}},{"commit":"2d39a58f902e6af77f8f96ffcd1d68b7cbadd56c","message":"doc update","stats":{"files_changed":4,"insertions":81,"deletions":14,"files":["README.md","docs/parsers/dmidecode.md","docs/parsers/netstat.md","jc/parsers/dmidecode.py"],"file_stats":[{"name":"README.md","lines_changed":67},{"name":"docs/parsers/dmidecode.md","lines_changed":4},{"name":"docs/parsers/netstat.md","lines_changed":20},{"name":"jc/parsers/dmidecode.py","lines_changed":4}]}},{"commit":"9c4fa2ae2601ca4880c0b078fa917f01f1392e0e","message":"integer conversions and icmp fix","stats":{"files_changed":2,"insertions":22,"deletions":2,"files":["jc/parsers/netstat.py","jc/parsers/netstat_osx.py"],"file_stats":[{"name":"jc/parsers/netstat.py","lines_changed":21},{"name":"jc/parsers/netstat_osx.py","lines_changed":3}]}},{"commit":"de52d84e82df6d8c5e2416c6bc44e59c41c685da","message":"fix udp state and udp46 entries","stats":{"files_changed":1,"insertions":8,"deletions":9,"files":["jc/parsers/netstat_osx.py"],"file_stats":[{"name":"jc/parsers/netstat_osx.py","lines_changed":17}]}},{"commit":"ce9b55059a28d363b8b0ae4f3ccbdbdc4bf4b58e","message":"organize files","stats":{"files_changed":2,"insertions":185,"deletions":167,"files":["jc/parsers/netstat.py","jc/parsers/netstat_linux.py"],"file_stats":[{"name":"jc/parsers/netstat.py","lines_changed":171},{"name":"jc/parsers/netstat_linux.py","lines_changed":181}]}},{"commit":"bcd370a6a01a115d470776f5690f8571d68d3930","message":"code cleanup","stats":{"files_changed":2,"insertions":5,"deletions":15,"files":["jc/parsers/netstat.py","jc/parsers/netstat_osx.py"],"file_stats":[{"name":"jc/parsers/netstat.py","lines_changed":16},{"name":"jc/parsers/netstat_osx.py","lines_changed":4}]}},{"commit":"c8216850abd2d0b8cc6761453f853f296e8a28f3","message":"code cleanup","stats":{"files_changed":1,"insertions":19,"deletions":55,"files":["jc/parsers/netstat_osx.py"],"file_stats":[{"name":"jc/parsers/netstat_osx.py","lines_changed":74}]}},{"commit":"f5feedb90b39e5c3f4564615482d47ccd145844f","message":"fix comments","stats":{"files_changed":1,"insertions":1,"deletions":10,"files":["jc/parsers/netstat_osx.py"],"file_stats":[{"name":"jc/parsers/netstat_osx.py","lines_changed":11}]}},{"commit":"a4371cd187fe5077018edbfeee77eb17c6a90ad3","message":"support netstat -A","stats":{"files_changed":1,"insertions":3,"deletions":3,"files":["jc/parsers/netstat_osx.py"],"file_stats":[{"name":"jc/parsers/netstat_osx.py","lines_changed":6}]}},{"commit":"9d5ba4c83404e4fab5c0f40c30b4735685499a31","message":"formatting","stats":{"files_changed":1,"insertions":0,"deletions":2,"files":["jc/parsers/netstat_osx.py"],"file_stats":[{"name":"jc/parsers/netstat_osx.py","lines_changed":2}]}},{"commit":"1639dee1bb93f6f89e8bb7b37134dc1f561c479c","message":"fix parse_post","stats":{"files_changed":1,"insertions":10,"deletions":35,"files":["jc/parsers/netstat_osx.py"],"file_stats":[{"name":"jc/parsers/netstat_osx.py","lines_changed":45}]}},{"commit":"9363f430f20951e6fa739f06c85c5b6b3421b60d","message":"use list extend method to simplify code","stats":{"files_changed":1,"insertions":1,"deletions":2,"files":["jc/parsers/netstat.py"],"file_stats":[{"name":"jc/parsers/netstat.py","lines_changed":3}]}},{"commit":"9192a0907364c772558380be1373b8dcea972a6d","message":"parse all sections","stats":{"files_changed":1,"insertions":124,"deletions":34,"files":["jc/parsers/netstat_osx.py"],"file_stats":[{"name":"jc/parsers/netstat_osx.py","lines_changed":158}]}},{"commit":"b915eb97556ccc5fc60e8d23f7298ffec2d8e3b7","message":"initial osx parser","stats":{"files_changed":2,"insertions":237,"deletions":55,"files":["jc/parsers/netstat.py","jc/parsers/netstat_osx.py"],"file_stats":[{"name":"jc/parsers/netstat.py","lines_changed":118},{"name":"jc/parsers/netstat_osx.py","lines_changed":174}]}},{"commit":"1cfcc2b592f682d2b50a0c4188fa3ae832a6c682","message":"tighten up line test logic when counting tabs","stats":{"files_changed":1,"insertions":2,"deletions":0,"files":["jc/parsers/dmidecode.py"],"file_stats":[{"name":"jc/parsers/dmidecode.py","lines_changed":2}]}},{"commit":"7138dd02b73073441a52c9b574bf0d6e02f0d7d9","message":"cleanup variables after adding to item","stats":{"files_changed":1,"insertions":11,"deletions":0,"files":["jc/parsers/dmidecode.py"],"file_stats":[{"name":"jc/parsers/dmidecode.py","lines_changed":11}]}},{"commit":"b4276643b70f7820f8f53df22b32fffb54e30ca2","message":"add dmidecode tests and fixtures","stats":{"files_changed":4,"insertions":56,"deletions":0,"files":["tests/fixtures/centos-7.7/dmidecode.json","tests/fixtures/fedora32/dmidecode.json","tests/fixtures/ubuntu-18.04/dmidecode.json","tests/test_dmidecode.py"],"file_stats":[{"name":"tests/fixtures/centos-7.7/dmidecode.json","lines_changed":1},{"name":"tests/fixtures/fedora32/dmidecode.json","lines_changed":1},{"name":"tests/fixtures/ubuntu-18.04/dmidecode.json","lines_changed":1},{"name":"tests/test_dmidecode.py","lines_changed":53}]}},{"commit":"2ef00763bfe7c4348f30026759941efe39861a0c","message":"fix first item","stats":{"files_changed":1,"insertions":2,"deletions":2,"files":["jc/parsers/dmidecode.py"],"file_stats":[{"name":"jc/parsers/dmidecode.py","lines_changed":4}]}},{"commit":"54364928fc826ead7774a4cec1bcb73a5cb9ee0f","message":"fix oddities like hybrid single/multiline data and items containing multiple records","stats":{"files_changed":2,"insertions":74,"deletions":81,"files":["docs/parsers/dmidecode.md","jc/parsers/dmidecode.py"],"file_stats":[{"name":"docs/parsers/dmidecode.md","lines_changed":37},{"name":"jc/parsers/dmidecode.py","lines_changed":118}]}},{"commit":"09b3b4932b0fa4a2b18c88a8465c15a194b727e6","message":"add dmidecode output fixtures","stats":{"files_changed":3,"insertions":35430,"deletions":0,"files":["tests/fixtures/centos-7.7/dmidecode.out","tests/fixtures/fedora32/dmidecode.out","tests/fixtures/ubuntu-18.04/dmidecode.out"],"file_stats":[{"name":"tests/fixtures/centos-7.7/dmidecode.out","lines_changed":11810},{"name":"tests/fixtures/fedora32/dmidecode.out","lines_changed":11810},{"name":"tests/fixtures/ubuntu-18.04/dmidecode.out","lines_changed":11810}]}},{"commit":"29d6670119d8fcd0344e90f01bfb6260aa936e50","message":"convert integers","stats":{"files_changed":1,"insertions":9,"deletions":1,"files":["jc/parsers/dmidecode.py"],"file_stats":[{"name":"jc/parsers/dmidecode.py","lines_changed":10}]}},{"commit":"2f654b5f1acda01192294f4c18a5a31363e7f387","message":"doc update","stats":{"files_changed":1,"insertions":37,"deletions":0,"files":["docs/parsers/dmidecode.md"],"file_stats":[{"name":"docs/parsers/dmidecode.md","lines_changed":37}]}},{"commit":"e53b9f5992450b53efc886b4fa9ca16f3dd07530","message":"add caveats to documentation","stats":{"files_changed":1,"insertions":37,"deletions":0,"files":["jc/parsers/dmidecode.py"],"file_stats":[{"name":"jc/parsers/dmidecode.py","lines_changed":37}]}},{"commit":"addb234e6162c58750cb67947bc4776635bf54fb","message":"add dmidecode doc","stats":{"files_changed":1,"insertions":153,"deletions":0,"files":["docs/parsers/dmidecode.md"],"file_stats":[{"name":"docs/parsers/dmidecode.md","lines_changed":153}]}},{"commit":"76eca3b65911a0a340d3d94322a8145ee89c50da","message":"add dmidecode","stats":{"files_changed":1,"insertions":1,"deletions":0,"files":["docgen.sh"],"file_stats":[{"name":"docgen.sh","lines_changed":1}]}},{"commit":"f90dec4c0ecf88623fb22273b7527ec8884826c4","message":"add examples to documentation","stats":{"files_changed":1,"insertions":94,"deletions":5,"files":["jc/parsers/dmidecode.py"],"file_stats":[{"name":"jc/parsers/dmidecode.py","lines_changed":99}]}},{"commit":"8900a59d4cb424ff58d1eb27f8fda7ea0a668a5c","message":"simplify logic by removing redundant block","stats":{"files_changed":1,"insertions":1,"deletions":19,"files":["jc/parsers/dmidecode.py"],"file_stats":[{"name":"jc/parsers/dmidecode.py","lines_changed":20}]}},{"commit":"6685138200d5955115707d04aad0293ea8af5b15","message":"fix for missing multi-line values that come immediately after a previous multi-line value","stats":{"files_changed":1,"insertions":1,"deletions":1,"files":["jc/parsers/dmidecode.py"],"file_stats":[{"name":"jc/parsers/dmidecode.py","lines_changed":2}]}},{"commit":"4d3e65b980d50164b8220e59560822b9871580ea","message":"fix missing values","stats":{"files_changed":1,"insertions":4,"deletions":1,"files":["jc/parsers/dmidecode.py"],"file_stats":[{"name":"jc/parsers/dmidecode.py","lines_changed":5}]}},{"commit":"e9282bb546f560da6396f44e2ce9e04136348e2c","message":"add dmidecode parser","stats":{"files_changed":2,"insertions":175,"deletions":0,"files":["jc/cli.py","jc/parsers/dmidecode.py"],"file_stats":[{"name":"jc/cli.py","lines_changed":1},{"name":"jc/parsers/dmidecode.py","lines_changed":174}]}},{"commit":"f5627a45947e5e76e5f3e64d9b30099fe0b962a2","message":"version bump","stats":{"files_changed":3,"insertions":5,"deletions":2,"files":["changelog.txt","jc/cli.py","setup.py"],"file_stats":[{"name":"changelog.txt","lines_changed":3},{"name":"jc/cli.py","lines_changed":2},{"name":"setup.py","lines_changed":2}]}},{"commit":"81ffdb25105c681c8ed12336d220a102b7f4215e","message":"remove shebang for Fedora packaging","stats":{"files_changed":1,"insertions":0,"deletions":1,"files":["jc/cli.py"],"file_stats":[{"name":"jc/cli.py","lines_changed":1}]}},{"commit":"4c00a99850cb6f69713be7c6ad9ffba11924d9b8","message":"version bump","stats":{"files_changed":3,"insertions":5,"deletions":2,"files":["changelog.txt","jc/cli.py","setup.py"],"file_stats":[{"name":"changelog.txt","lines_changed":3},{"name":"jc/cli.py","lines_changed":2},{"name":"setup.py","lines_changed":2}]}},{"commit":"2bfcb45b28e2174a8bbc27237e619b5c232ccae8","message":"make cli.py executable","stats":{"files_changed":1,"insertions":0,"deletions":0,"files":["jc/cli.py"],"file_stats":[{"name":"jc/cli.py","lines_changed":0}]}},{"commit":"ab0c10e791283affb227d0d5306701ba7fd29d13","message":"remove execute permissions","stats":{"files_changed":2,"insertions":0,"deletions":0,"files":["LICENSE.md","README.md"],"file_stats":[{"name":"LICENSE.md","lines_changed":0},{"name":"README.md","lines_changed":0}]}},{"commit":"2c1935115de03a28fe92674b04b2542b0eccb8fe","message":"Merge pull request #61 from kellyjonbrazil/dev"},{"commit":"d98e43dc78205d3224bfc1e67de2da3c5fb7ea9a","message":"add netstat item","stats":{"files_changed":1,"insertions":1,"deletions":0,"files":["changelog.txt"],"file_stats":[{"name":"changelog.txt","lines_changed":1}]}},{"commit":"9348988d646d9b9c9970c19e84f311554ae38e7b","message":"add netstat test for Fedora32","stats":{"files_changed":1,"insertions":12,"deletions":0,"files":["tests/test_netstat.py"],"file_stats":[{"name":"tests/test_netstat.py","lines_changed":12}]}},{"commit":"1285c664679c40b18327c89b85921a80b01f0191","message":"netstat with bluetooth section","stats":{"files_changed":2,"insertions":140,"deletions":0,"files":["tests/fixtures/fedora32/netstat.json","tests/fixtures/fedora32/netstat.out"],"file_stats":[{"name":"tests/fixtures/fedora32/netstat.json","lines_changed":1},{"name":"tests/fixtures/fedora32/netstat.out","lines_changed":139}]}},{"commit":"b7191bbc130e0f33d02c0a4819fa91ffff1599d3","message":"handle bluetooth section (ignore for now)","stats":{"files_changed":1,"insertions":14,"deletions":1,"files":["jc/parsers/netstat.py"],"file_stats":[{"name":"jc/parsers/netstat.py","lines_changed":15}]}},{"commit":"98b97509f7893cb95e9651ce9706db5c961aa997","message":"version bump","stats":{"files_changed":3,"insertions":6,"deletions":2,"files":["changelog.txt","jc/cli.py","setup.py"],"file_stats":[{"name":"changelog.txt","lines_changed":4},{"name":"jc/cli.py","lines_changed":2},{"name":"setup.py","lines_changed":2}]}},{"commit":"2b2b570490f3834367a598579473001f45738e8a","message":"add tests for 'gone - no logout'","stats":{"files_changed":3,"insertions":21,"deletions":0,"files":["tests/fixtures/fedora32/last.json","tests/fixtures/fedora32/last.out","tests/test_last.py"],"file_stats":[{"name":"tests/fixtures/fedora32/last.json","lines_changed":1},{"name":"tests/fixtures/fedora32/last.out","lines_changed":8},{"name":"tests/test_last.py","lines_changed":12}]}},{"commit":"cce2d1ff298f2284c43c4534144329f3533a81ad","message":"add condition for 'gone - no logout'","stats":{"files_changed":1,"insertions":5,"deletions":1,"files":["jc/parsers/last.py"],"file_stats":[{"name":"jc/parsers/last.py","lines_changed":6}]}},{"commit":"b79600c57249cbb65805caad2524cc2492342be6","message":"version bump","stats":{"files_changed":1,"insertions":1,"deletions":1,"files":["jc/parsers/ls.py"],"file_stats":[{"name":"jc/parsers/ls.py","lines_changed":2}]}},{"commit":"140f1a85437745296b56976bef1b46514e323a4f","message":"test fixes for issue #60","stats":{"files_changed":7,"insertions":7,"deletions":7,"files":["tests/fixtures/centos-7.7/ls-R-newlines.json","tests/fixtures/centos-7.7/ls-R.json","tests/fixtures/centos-7.7/ls-glob.json","tests/fixtures/osx-10.14.6/ls-glob.json","tests/fixtures/ubuntu-18.04/ls-R-newlines.json","tests/fixtures/ubuntu-18.04/ls-R.json","tests/fixtures/ubuntu-18.04/ls-glob.json"],"file_stats":[{"name":"tests/fixtures/centos-7.7/ls-R-newlines.json","lines_changed":2},{"name":"tests/fixtures/centos-7.7/ls-R.json","lines_changed":2},{"name":"tests/fixtures/centos-7.7/ls-glob.json","lines_changed":2},{"name":"tests/fixtures/osx-10.14.6/ls-glob.json","lines_changed":2},{"name":"tests/fixtures/ubuntu-18.04/ls-R-newlines.json","lines_changed":2},{"name":"tests/fixtures/ubuntu-18.04/ls-R.json","lines_changed":2},{"name":"tests/fixtures/ubuntu-18.04/ls-glob.json","lines_changed":2}]}},{"commit":"e34657cfde6816ab7a7415d83580df0a1d98a5a6","message":"fix issue #60 that was skipping the first file in some instances using -R without -l","stats":{"files_changed":1,"insertions":3,"deletions":2,"files":["jc/parsers/ls.py"],"file_stats":[{"name":"jc/parsers/ls.py","lines_changed":5}]}},{"commit":"99070fa6073c4415a6faf8ca69dd6aa089af4062","message":"version bump","stats":{"files_changed":3,"insertions":5,"deletions":2,"files":["changelog.txt","jc/cli.py","setup.py"],"file_stats":[{"name":"changelog.txt","lines_changed":3},{"name":"jc/cli.py","lines_changed":2},{"name":"setup.py","lines_changed":2}]}},{"commit":"2b46785b1f1281ee63df9159e36068f4607ad9b8","message":"add MIT license to vendorized IfconfigParser class","stats":{"files_changed":1,"insertions":25,"deletions":3,"files":["jc/parsers/ifconfig.py"],"file_stats":[{"name":"jc/parsers/ifconfig.py","lines_changed":28}]}},{"commit":"c72562524b2b9aaca0be372bb24343158829ba5a","message":"fully remove tests from packaging","stats":{"files_changed":1,"insertions":1,"deletions":1,"files":["setup.py"],"file_stats":[{"name":"setup.py","lines_changed":2}]}},{"commit":"b7dd6441c7e3f54f8a260fceef49aae6816c7151","message":"version bump","stats":{"files_changed":2,"insertions":5,"deletions":1,"files":["changelog.txt","jc/cli.py"],"file_stats":[{"name":"changelog.txt","lines_changed":4},{"name":"jc/cli.py","lines_changed":2}]}},{"commit":"31fcc2f755ad86622cf51a75879b14d44f246300","message":"remove manifest.in - no longer needed due to removing tests","stats":{"files_changed":1,"insertions":0,"deletions":1,"files":["MANIFEST.in"],"file_stats":[{"name":"MANIFEST.in","lines_changed":1}]}},{"commit":"b391aa14bceffedb5a9c13f3f908923790edefc1","message":"add license_file to metadata","stats":{"files_changed":1,"insertions":2,"deletions":0,"files":["setup.cfg"],"file_stats":[{"name":"setup.cfg","lines_changed":2}]}},{"commit":"d3c45debbb6690acd341fbcc9b99d1ae4cf0a43c","message":"remove tests and add license file","stats":{"files_changed":1,"insertions":2,"deletions":3,"files":["setup.py"],"file_stats":[{"name":"setup.py","lines_changed":5}]}},{"commit":"5b08469b874553744bd5c5b1fa6581f4dcffacd0","message":"Merge pull request #57 from kellyjonbrazil/dev"},{"commit":"4a77ec63a46554c84e646d31564230774ed87431","message":"add IfconfigParser class","stats":{"files_changed":1,"insertions":11,"deletions":0,"files":["docs/parsers/ifconfig.md"],"file_stats":[{"name":"docs/parsers/ifconfig.md","lines_changed":11}]}},{"commit":"d13606b6dc2c207be6dea89a2c3e713c18a574b8","message":"modify dependencies for easier packaging into Fedora","stats":{"files_changed":4,"insertions":7,"deletions":6,"files":["changelog.txt","jc/cli.py","requirements.txt","setup.py"],"file_stats":[{"name":"changelog.txt","lines_changed":3},{"name":"jc/cli.py","lines_changed":2},{"name":"requirements.txt","lines_changed":3},{"name":"setup.py","lines_changed":5}]}},{"commit":"05291c93bba1aa364ba1ac7f2508e24bb362a814","message":"vendorize ifconfig-parser module for easier packaging in Fedora","stats":{"files_changed":1,"insertions":198,"deletions":3,"files":["jc/parsers/ifconfig.py"],"file_stats":[{"name":"jc/parsers/ifconfig.py","lines_changed":201}]}},{"commit":"8cf00a208eb8493300331e7361b72e4f9e3f140e","message":"change text to strings","stats":{"files_changed":1,"insertions":1,"deletions":1,"files":["README.md"],"file_stats":[{"name":"README.md","lines_changed":2}]}},{"commit":"06d73c88767a5b4d6003231c897c447ee5e1faa5","message":"formatting","stats":{"files_changed":1,"insertions":1,"deletions":1,"files":["README.md"],"file_stats":[{"name":"README.md","lines_changed":2}]}},{"commit":"649c646ea25ac7f89900cffa8919df01671bd32d","message":"add brew install option","stats":{"files_changed":1,"insertions":6,"deletions":1,"files":["README.md"],"file_stats":[{"name":"README.md","lines_changed":7}]}},{"commit":"b7756d92501a7b8ba8e77d77d9d3718a58425beb","message":"version bump","stats":{"files_changed":3,"insertions":5,"deletions":2,"files":["changelog.txt","jc/cli.py","setup.py"],"file_stats":[{"name":"changelog.txt","lines_changed":3},{"name":"jc/cli.py","lines_changed":2},{"name":"setup.py","lines_changed":2}]}},{"commit":"1cd2cd954c21e5caec333507bd81819c82d45b49","message":"remove references to homebrew/shim to allow tests to pass in homebrew packaging ci/cd","stats":{"files_changed":4,"insertions":2,"deletions":16,"files":["tests/fixtures/osx-10.11.6/du.json","tests/fixtures/osx-10.11.6/du.out","tests/fixtures/osx-10.14.6/du.json","tests/fixtures/osx-10.14.6/du.out"],"file_stats":[{"name":"tests/fixtures/osx-10.11.6/du.json","lines_changed":2},{"name":"tests/fixtures/osx-10.11.6/du.out","lines_changed":7},{"name":"tests/fixtures/osx-10.14.6/du.json","lines_changed":2},{"name":"tests/fixtures/osx-10.14.6/du.out","lines_changed":7}]}},{"commit":"72020b8da999ddca6f9ba82da235c9f42e4f4273","message":"move packages info to jc-packages github page","stats":{"files_changed":1,"insertions":2,"deletions":22,"files":["README.md"],"file_stats":[{"name":"README.md","lines_changed":24}]}},{"commit":"cf9720b749e7fc8caed0d2f1f2b1727a22a156b6","message":"update install info","stats":{"files_changed":1,"insertions":2,"deletions":2,"files":["README.md"],"file_stats":[{"name":"README.md","lines_changed":4}]}},{"commit":"967b9db7f90a3c3a0352edde7f4455c5f5d45b18","message":"spelling","stats":{"files_changed":1,"insertions":3,"deletions":3,"files":["README.md"],"file_stats":[{"name":"README.md","lines_changed":6}]}},{"commit":"bb3acb1182f4d509f9ddc7dfcffa4578e0a2bd5e","message":"formatting","stats":{"files_changed":1,"insertions":1,"deletions":1,"files":["README.md"],"file_stats":[{"name":"README.md","lines_changed":2}]}},{"commit":"560c7f7e6d1f8a69ab026ddbff753d232ca1d00b","message":"formatting","stats":{"files_changed":1,"insertions":1,"deletions":1,"files":["README.md"],"file_stats":[{"name":"README.md","lines_changed":2}]}},{"commit":"79b28417644e00b933f531374d2f7fe8051e61be","message":"add new binary package install info","stats":{"files_changed":1,"insertions":26,"deletions":0,"files":["README.md"],"file_stats":[{"name":"README.md","lines_changed":26}]}},{"commit":"a06a89cbd11026aa3910fadd1eff7fe388d02507","message":"version bump","stats":{"files_changed":3,"insertions":5,"deletions":2,"files":["changelog.txt","jc/cli.py","setup.py"],"file_stats":[{"name":"changelog.txt","lines_changed":3},{"name":"jc/cli.py","lines_changed":2},{"name":"setup.py","lines_changed":2}]}},{"commit":"431bd969eb4809424fe99a02a7decb98bce9ea51","message":"use sys.exit(0) instead of exit()","stats":{"files_changed":1,"insertions":2,"deletions":2,"files":["jc/cli.py"],"file_stats":[{"name":"jc/cli.py","lines_changed":4}]}},{"commit":"c87b722aec6e6964c516bbb8e80667ad7d9c6bc7","message":"spelling","stats":{"files_changed":1,"insertions":1,"deletions":1,"files":["README.md"],"file_stats":[{"name":"README.md","lines_changed":2}]}},{"commit":"3688b8b014a1cf753b2207fbf3ebf0292c3fd672","message":"Merge pull request #56 from kellyjonbrazil/dev"},{"commit":"07b8d9e0c0d723d93e6c652f5b6156c467c451c7","message":"version bump","stats":{"files_changed":3,"insertions":5,"deletions":2,"files":["changelog.txt","jc/cli.py","setup.py"],"file_stats":[{"name":"changelog.txt","lines_changed":3},{"name":"jc/cli.py","lines_changed":2},{"name":"setup.py","lines_changed":2}]}},{"commit":"7454b53e395e9122c00d4cf06b1c2af109913d7a","message":"formatting","stats":{"files_changed":1,"insertions":1,"deletions":3,"files":["README.md"],"file_stats":[{"name":"README.md","lines_changed":4}]}},{"commit":"3d6a76024de0f9dcf91a4ab49cabe461074114fb","message":"update with JC_COLORS info","stats":{"files_changed":1,"insertions":18,"deletions":0,"files":["README.md"],"file_stats":[{"name":"README.md","lines_changed":18}]}},{"commit":"421b9809575a8de00229af4b851739889638ac74","message":"JC_COLORS working","stats":{"files_changed":1,"insertions":18,"deletions":37,"files":["jc/cli.py"],"file_stats":[{"name":"jc/cli.py","lines_changed":55}]}},{"commit":"4a22e27d6a80a988f4de17bce421110d6abb8867","message":"add set_env_colors function","stats":{"files_changed":1,"insertions":64,"deletions":0,"files":["jc/cli.py"],"file_stats":[{"name":"jc/cli.py","lines_changed":64}]}},{"commit":"99f7842dee0f79cf933fae185cf8b0ed7c8b210f","message":"fix brek on pipe error","stats":{"files_changed":3,"insertions":11,"deletions":2,"files":["changelog.txt","jc/cli.py","setup.py"],"file_stats":[{"name":"changelog.txt","lines_changed":3},{"name":"jc/cli.py","lines_changed":8},{"name":"setup.py","lines_changed":2}]}},{"commit":"7f869b4b187d70752207a7e74c13b858446f898f","message":"change colors to ansi and match jello style","stats":{"files_changed":3,"insertions":9,"deletions":11,"files":["changelog.txt","jc/cli.py","setup.py"],"file_stats":[{"name":"changelog.txt","lines_changed":3},{"name":"jc/cli.py","lines_changed":15},{"name":"setup.py","lines_changed":2}]}},{"commit":"9665f4ee84680f3a8154b8a43ea668af2907782c","message":"add pypi badge","stats":{"files_changed":1,"insertions":1,"deletions":0,"files":["README.md"],"file_stats":[{"name":"README.md","lines_changed":1}]}},{"commit":"606904d48b1c7e0c19a940b5be0b564d1b5be6c8","message":"Merge pull request #53 from kellyjonbrazil/dev"},{"commit":"3f5279b97c386c736e0e2faa5c39d68ef89c46aa","message":"version bump to 1.10.1","stats":{"files_changed":3,"insertions":5,"deletions":2,"files":["changelog.txt","jc/cli.py","setup.py"],"file_stats":[{"name":"changelog.txt","lines_changed":3},{"name":"jc/cli.py","lines_changed":2},{"name":"setup.py","lines_changed":2}]}},{"commit":"f5ec21e6ac612566af93158fc3968b901322d04a","message":"use in instead of find()","stats":{"files_changed":1,"insertions":2,"deletions":2,"files":["jc/parsers/systemctl_luf.py"],"file_stats":[{"name":"jc/parsers/systemctl_luf.py","lines_changed":4}]}},{"commit":"578a284465f014fe71ad6ac00bd41dc24ab2ced9","message":"use in instead of find()","stats":{"files_changed":1,"insertions":2,"deletions":2,"files":["jc/parsers/systemctl_ls.py"],"file_stats":[{"name":"jc/parsers/systemctl_ls.py","lines_changed":4}]}},{"commit":"422e392d9d98a7864312fc7fbd7f45537b71acbe","message":"use in instead of find()","stats":{"files_changed":1,"insertions":2,"deletions":2,"files":["jc/parsers/systemctl_lj.py"],"file_stats":[{"name":"jc/parsers/systemctl_lj.py","lines_changed":4}]}},{"commit":"54dfffd34a17d1194690142ac403391fc65bb85f","message":"use in instead of find()","stats":{"files_changed":1,"insertions":2,"deletions":2,"files":["jc/parsers/systemctl.py"],"file_stats":[{"name":"jc/parsers/systemctl.py","lines_changed":4}]}},{"commit":"cffba64d2b9165b44a8856665807111a2ad3a190","message":"use in and startswith() instead of find()","stats":{"files_changed":1,"insertions":7,"deletions":7,"files":["jc/parsers/stat.py"],"file_stats":[{"name":"jc/parsers/stat.py","lines_changed":14}]}},{"commit":"56a0c12a59bb252d3b7d0929f9fb19b4d96a8437","message":"use in instead of find()","stats":{"files_changed":1,"insertions":3,"deletions":3,"files":["jc/parsers/pip_list.py"],"file_stats":[{"name":"jc/parsers/pip_list.py","lines_changed":6}]}},{"commit":"c174d3de18923b2b03befb5a7dfcbd977a8e147e","message":"use in and startswith() instead of find()","stats":{"files_changed":1,"insertions":7,"deletions":7,"files":["jc/parsers/netstat.py"],"file_stats":[{"name":"jc/parsers/netstat.py","lines_changed":14}]}},{"commit":"a9c59ef9fc1bb68c9d0d7beffbeb670baf5b1e3f","message":"fix logic to not for ' type ' in cleandata[0]","stats":{"files_changed":1,"insertions":1,"deletions":1,"files":["jc/parsers/mount.py"],"file_stats":[{"name":"jc/parsers/mount.py","lines_changed":2}]}},{"commit":"abdb9b26732a6a71f5938d665b2ca43a381e1b33","message":"use in instead of find()","stats":{"files_changed":1,"insertions":2,"deletions":2,"files":["jc/parsers/mount.py"],"file_stats":[{"name":"jc/parsers/mount.py","lines_changed":4}]}},{"commit":"548aaab6262878d21f8b9539950cfad48638e35c","message":"remove old commented code","stats":{"files_changed":1,"insertions":1,"deletions":42,"files":["jc/parsers/lsof.py"],"file_stats":[{"name":"jc/parsers/lsof.py","lines_changed":43}]}},{"commit":"20571c87ae9e1ca8a1f3120511910751420a35ac","message":"us in instead of find()","stats":{"files_changed":1,"insertions":3,"deletions":3,"files":["jc/parsers/jobs.py"],"file_stats":[{"name":"jc/parsers/jobs.py","lines_changed":6}]}},{"commit":"19e49200de5c731f76b42e80388c5223e8097e39","message":"version bump","stats":{"files_changed":1,"insertions":1,"deletions":1,"files":["jc/parsers/iptables.py"],"file_stats":[{"name":"jc/parsers/iptables.py","lines_changed":2}]}},{"commit":"d32f5c67a91ede572c88e431b2ad0ce4d6c87dec","message":"use startswith() instead of find()","stats":{"files_changed":1,"insertions":2,"deletions":2,"files":["jc/parsers/iptables.py"],"file_stats":[{"name":"jc/parsers/iptables.py","lines_changed":4}]}},{"commit":"b83b626435c55d2aa63e56dd8f22603da59e7626","message":"use startswith() instead of find()","stats":{"files_changed":1,"insertions":2,"deletions":2,"files":["jc/parsers/ifconfig.py"],"file_stats":[{"name":"jc/parsers/ifconfig.py","lines_changed":4}]}},{"commit":"ab2c1b25ec5da5f2ba238868c4dfca95a44da30e","message":"use startswith() and in instead of find()","stats":{"files_changed":1,"insertions":3,"deletions":3,"files":["jc/parsers/hosts.py"],"file_stats":[{"name":"jc/parsers/hosts.py","lines_changed":6}]}},{"commit":"f2d46313a4508f13656cdb360f83fdf4116cc7d7","message":"use startswith() instead of find()","stats":{"files_changed":1,"insertions":2,"deletions":2,"files":["jc/parsers/fstab.py"],"file_stats":[{"name":"jc/parsers/fstab.py","lines_changed":4}]}},{"commit":"87e4796a6c936793e2784346819c7033d59b91e4","message":"use in instead of .find()","stats":{"files_changed":1,"insertions":2,"deletions":2,"files":["jc/parsers/df.py"],"file_stats":[{"name":"jc/parsers/df.py","lines_changed":4}]}},{"commit":"0014a5c2f4c056c2683d6614a65d778b1f527932","message":"us startswith() and in instead of .find()","stats":{"files_changed":1,"insertions":3,"deletions":3,"files":["jc/parsers/crontab_u.py"],"file_stats":[{"name":"jc/parsers/crontab_u.py","lines_changed":6}]}},{"commit":"7af56e0dadab7d8b9538f3b7a550ad6dd1ac217d","message":"use startswith() and in instead of find()","stats":{"files_changed":1,"insertions":3,"deletions":3,"files":["jc/parsers/crontab.py"],"file_stats":[{"name":"jc/parsers/crontab.py","lines_changed":6}]}},{"commit":"a5ae6e3c017b041f9079ff12455b7551ad204cb3","message":"use startswith() instead of find()","stats":{"files_changed":1,"insertions":3,"deletions":3,"files":["jc/parsers/arp.py"],"file_stats":[{"name":"jc/parsers/arp.py","lines_changed":6}]}},{"commit":"fe1a0d1faf46f55ed2888ed0065f3f3144691ed8","message":"use in instead of .find()","stats":{"files_changed":1,"insertions":10,"deletions":9,"files":["jc/parsers/dig.py"],"file_stats":[{"name":"jc/parsers/dig.py","lines_changed":19}]}},{"commit":"302f05cdda305e46e69b74d5b0096f64c17da637","message":"prettify style block","stats":{"files_changed":1,"insertions":4,"deletions":4,"files":["jc/cli.py"],"file_stats":[{"name":"jc/cli.py","lines_changed":8}]}},{"commit":"c0044be7b0b6dadcffb64cb88ad92bf653dd2b6b","message":"rename color grey to gray","stats":{"files_changed":1,"insertions":2,"deletions":2,"files":["jc/cli.py"],"file_stats":[{"name":"jc/cli.py","lines_changed":4}]}},{"commit":"01100788070b82b4b827ef356972fa9b8f737eeb","message":"update badge","stats":{"files_changed":1,"insertions":1,"deletions":1,"files":["README.md"],"file_stats":[{"name":"README.md","lines_changed":2}]}},{"commit":"42eacb45f8fdf8085c6231bf5297629c2ec97c22","message":"rename to Tests","stats":{"files_changed":1,"insertions":1,"deletions":1,"files":[".github/workflows/pythonapp.yml"],"file_stats":[{"name":".github/workflows/pythonapp.yml","lines_changed":2}]}},{"commit":"a43e2e19916662d509883457c160d7f95f97ae12","message":"add -m option info","stats":{"files_changed":1,"insertions":1,"deletions":0,"files":["README.md"],"file_stats":[{"name":"README.md","lines_changed":1}]}},{"commit":"c8b721d4f6e46a2db77e1140b9caeb3b403fef72","message":"version bump to 1.10.0","stats":{"files_changed":4,"insertions":9,"deletions":3,"files":["changelog.txt","jc/cli.py","requirements.txt","setup.py"],"file_stats":[{"name":"changelog.txt","lines_changed":4},{"name":"jc/cli.py","lines_changed":2},{"name":"requirements.txt","lines_changed":1},{"name":"setup.py","lines_changed":5}]}},{"commit":"d0bfddc3d9989444757d6668726c916e5363620b","message":"add color and -m monochrome option","stats":{"files_changed":1,"insertions":41,"deletions":6,"files":["jc/cli.py"],"file_stats":[{"name":"jc/cli.py","lines_changed":47}]}},{"commit":"6b925a16c87cf75bb30edfda38511e8f84a4f6d6","message":"add tests badge","stats":{"files_changed":1,"insertions":2,"deletions":0,"files":["README.md"],"file_stats":[{"name":"README.md","lines_changed":2}]}},{"commit":"89ebd9fc2271d2c76353d5707bfd4afb7dedc278","message":"add axfr info to schema","stats":{"files_changed":2,"insertions":20,"deletions":0,"files":["docs/parsers/dig.md","jc/parsers/dig.py"],"file_stats":[{"name":"docs/parsers/dig.md","lines_changed":10},{"name":"jc/parsers/dig.py","lines_changed":10}]}},{"commit":"6b4ba662317629839aa62fbcfefb8ed3337c37ef","message":"Merge pull request #52 from kellyjonbrazil/dev"},{"commit":"5b697dc38141cdd47fcdd63bf295a80a7da86697","message":"add more dig tests","stats":{"files_changed":1,"insertions":72,"deletions":0,"files":["tests/test_dig.py"],"file_stats":[{"name":"tests/test_dig.py","lines_changed":72}]}},{"commit":"9ba73c95d1a528a9a92be4068805bb5aa027901e","message":"add tests","stats":{"files_changed":7,"insertions":215,"deletions":0,"files":["tests/fixtures/centos-7.7/dig-axfr.json","tests/fixtures/centos-7.7/dig-axfr.out","tests/fixtures/osx-10.14.6/dig-axfr.json","tests/fixtures/osx-10.14.6/dig-axfr.out","tests/fixtures/ubuntu-18.04/dig-axfr.json","tests/fixtures/ubuntu-18.04/dig-axfr.out","tests/test_dig.py"],"file_stats":[{"name":"tests/fixtures/centos-7.7/dig-axfr.json","lines_changed":1},{"name":"tests/fixtures/centos-7.7/dig-axfr.out","lines_changed":60},{"name":"tests/fixtures/osx-10.14.6/dig-axfr.json","lines_changed":1},{"name":"tests/fixtures/osx-10.14.6/dig-axfr.out","lines_changed":59},{"name":"tests/fixtures/ubuntu-18.04/dig-axfr.json","lines_changed":1},{"name":"tests/fixtures/ubuntu-18.04/dig-axfr.out","lines_changed":57},{"name":"tests/test_dig.py","lines_changed":36}]}},{"commit":"93aa39044749c4c0ed749f62fb00fc1c76dc5af0","message":"version bump to v1.9.3","stats":{"files_changed":3,"insertions":5,"deletions":2,"files":["changelog.txt","jc/cli.py","setup.py"],"file_stats":[{"name":"changelog.txt","lines_changed":3},{"name":"jc/cli.py","lines_changed":2},{"name":"setup.py","lines_changed":2}]}},{"commit":"3cfb8945ddd83c00a720c44e2c1d97da0d8bad25","message":"use startswith() instead of find","stats":{"files_changed":1,"insertions":9,"deletions":9,"files":["jc/parsers/dig.py"],"file_stats":[{"name":"jc/parsers/dig.py","lines_changed":18}]}},{"commit":"cd8d38f2a136c4f35efc020b3476d09e965b71f1","message":"add axfr support","stats":{"files_changed":1,"insertions":50,"deletions":1,"files":["jc/parsers/dig.py"],"file_stats":[{"name":"jc/parsers/dig.py","lines_changed":51}]}},{"commit":"8ec8cd62944c59c462ab9f520c1dcfd14218b1ed","message":"Merge pull request #50 from kellyjonbrazil/dev"},{"commit":"c02811356153c2b4f8b2d7efb7f48bf8f7748068","message":"version bump to v1.9.2","stats":{"files_changed":3,"insertions":6,"deletions":3,"files":["changelog.txt","jc/cli.py","setup.py"],"file_stats":[{"name":"changelog.txt","lines_changed":5},{"name":"jc/cli.py","lines_changed":2},{"name":"setup.py","lines_changed":2}]}},{"commit":"5f22e1c8031b808ef02ffe078408bd58cc76e570","message":"fix and test for osx arp entries without ifscope","stats":{"files_changed":3,"insertions":33,"deletions":0,"files":["tests/fixtures/osx-10.14.6/arp-a2.json","tests/fixtures/osx-10.14.6/arp-a2.out","tests/test_arp.py"],"file_stats":[{"name":"tests/fixtures/osx-10.14.6/arp-a2.json","lines_changed":1},{"name":"tests/fixtures/osx-10.14.6/arp-a2.out","lines_changed":20},{"name":"tests/test_arp.py","lines_changed":12}]}},{"commit":"d3351787e5cabd064c19e6617e9535e501686404","message":"change osx detection","stats":{"files_changed":1,"insertions":10,"deletions":9,"files":["jc/parsers/arp.py"],"file_stats":[{"name":"jc/parsers/arp.py","lines_changed":19}]}},{"commit":"e5bea9ae3b0a70b38f7da7dd9184343dbbd18887","message":"version bump","stats":{"files_changed":1,"insertions":1,"deletions":1,"files":["jc/parsers/file.py"],"file_stats":[{"name":"jc/parsers/file.py","lines_changed":2}]}},{"commit":"93c710abe9171568f61f65c4f84c040ffc24870c","message":"Merge pull request #49 from kellyjonbrazil/dev"},{"commit":"c29e7cfe5cc4b2151912c6f618137d1b6c39c7be","message":"version bump to 1.9.1","stats":{"files_changed":4,"insertions":9,"deletions":6,"files":["README.md","changelog.txt","jc/cli.py","setup.py"],"file_stats":[{"name":"README.md","lines_changed":8},{"name":"changelog.txt","lines_changed":3},{"name":"jc/cli.py","lines_changed":2},{"name":"setup.py","lines_changed":2}]}},{"commit":"cb5c1ba00dc0e02bf6ad6c40096d99e319fa6171","message":"add tests for fix to make the file parser splitting more robust","stats":{"files_changed":3,"insertions":101,"deletions":0,"files":["tests/fixtures/osx-10.14.6/file2.json","tests/fixtures/osx-10.14.6/file2.out","tests/test_file.py"],"file_stats":[{"name":"tests/fixtures/osx-10.14.6/file2.json","lines_changed":1},{"name":"tests/fixtures/osx-10.14.6/file2.out","lines_changed":88},{"name":"tests/test_file.py","lines_changed":12}]}},{"commit":"9a012b94e1942a14bc6dae3fb967ef618819c77b","message":"make splitting more robust","stats":{"files_changed":1,"insertions":1,"deletions":1,"files":["jc/parsers/file.py"],"file_stats":[{"name":"jc/parsers/file.py","lines_changed":2}]}},{"commit":"400f5a44ece280cb0097d806b78a9490d2905600","message":"Merge pull request #48 from kellyjonbrazil/dev"},{"commit":"a2ab5bab91ea980399df1afb9d8071fa3282d04e","message":"version bump to v1.9.0","stats":{"files_changed":3,"insertions":3,"deletions":3,"files":["changelog.txt","jc/cli.py","setup.py"],"file_stats":[{"name":"changelog.txt","lines_changed":2},{"name":"jc/cli.py","lines_changed":2},{"name":"setup.py","lines_changed":2}]}},{"commit":"fc8ab27361df3359b706125531b2643612d6996a","message":"bugfix for misaligned columns and additional test for ntpq #31","stats":{"files_changed":6,"insertions":93,"deletions":51,"files":["README.md","docs/parsers/ntpq.md","jc/parsers/ntpq.py","tests/fixtures/ubuntu-18.04/ntpq-p2.json","tests/fixtures/ubuntu-18.04/ntpq-p2.out","tests/test_ntpq.py"],"file_stats":[{"name":"README.md","lines_changed":8},{"name":"docs/parsers/ntpq.md","lines_changed":40},{"name":"jc/parsers/ntpq.py","lines_changed":59},{"name":"tests/fixtures/ubuntu-18.04/ntpq-p2.json","lines_changed":1},{"name":"tests/fixtures/ubuntu-18.04/ntpq-p2.out","lines_changed":24},{"name":"tests/test_ntpq.py","lines_changed":12}]}},{"commit":"59f19d33a5c6677ea756a9424fdb032b430511a2","message":"add file command tests for #41","stats":{"files_changed":7,"insertions":153,"deletions":0,"files":["tests/fixtures/centos-7.7/file.json","tests/fixtures/centos-7.7/file.out","tests/fixtures/osx-10.14.6/file.json","tests/fixtures/osx-10.14.6/file.out","tests/fixtures/ubuntu-18.04/file.json","tests/fixtures/ubuntu-18.04/file.out","tests/test_file.py"],"file_stats":[{"name":"tests/fixtures/centos-7.7/file.json","lines_changed":1},{"name":"tests/fixtures/centos-7.7/file.out","lines_changed":25},{"name":"tests/fixtures/osx-10.14.6/file.json","lines_changed":1},{"name":"tests/fixtures/osx-10.14.6/file.out","lines_changed":53},{"name":"tests/fixtures/ubuntu-18.04/file.json","lines_changed":1},{"name":"tests/fixtures/ubuntu-18.04/file.out","lines_changed":20},{"name":"tests/test_file.py","lines_changed":52}]}},{"commit":"dfc96181159748d019419a2cba7aa9cb3b7a2a2c","message":"add file parser for issue #41","stats":{"files_changed":6,"insertions":260,"deletions":1,"files":["README.md","changelog.txt","docgen.sh","docs/parsers/file.md","jc/cli.py","jc/parsers/file.py"],"file_stats":[{"name":"README.md","lines_changed":36},{"name":"changelog.txt","lines_changed":5},{"name":"docgen.sh","lines_changed":1},{"name":"docs/parsers/file.md","lines_changed":90},{"name":"jc/cli.py","lines_changed":1},{"name":"jc/parsers/file.py","lines_changed":128}]}},{"commit":"8e02e5c75a11cf205299ee6f87b67f9b787cf55e","message":"fix issue with getting options with some commands #47","stats":{"files_changed":2,"insertions":6,"deletions":5,"files":["jc/cli.py","tests/test_cli.py"],"file_stats":[{"name":"jc/cli.py","lines_changed":8},{"name":"tests/test_cli.py","lines_changed":3}]}},{"commit":"970493ab9346a344b21be7614903ad81bc65a6e9","message":"add magic commands","stats":{"files_changed":2,"insertions":2,"deletions":0,"files":["jc/parsers/airport.py","jc/parsers/airport_s.py"],"file_stats":[{"name":"jc/parsers/airport.py","lines_changed":1},{"name":"jc/parsers/airport_s.py","lines_changed":1}]}},{"commit":"64d78956eb33ca0a2564fded3d12729ee036a915","message":"update acknowledgment","stats":{"files_changed":1,"insertions":1,"deletions":0,"files":["README.md"],"file_stats":[{"name":"README.md","lines_changed":1}]}},{"commit":"40c05346f4098f8eea14c42da07df3faa143587a","message":"re-adding optimizations from https://github.com/philippeitis","stats":{"files_changed":1,"insertions":12,"deletions":25,"files":["jc/parsers/history.py"],"file_stats":[{"name":"jc/parsers/history.py","lines_changed":37}]}},{"commit":"e9b0bc1409a824a82dabd2479892b7d18bad8c3f","message":"doc update","stats":{"files_changed":1,"insertions":1,"deletions":1,"files":["jc/parsers/airport.py"],"file_stats":[{"name":"jc/parsers/airport.py","lines_changed":2}]}},{"commit":"798e6bb7d939176bb36771a6d41bd55403d583be","message":"tests passing for airport -s. issue #46","stats":{"files_changed":2,"insertions":29,"deletions":0,"files":["tests/fixtures/osx-10.14.6/airport-s.json","tests/test_airport_s.py"],"file_stats":[{"name":"tests/fixtures/osx-10.14.6/airport-s.json","lines_changed":1},{"name":"tests/test_airport_s.py","lines_changed":28}]}},{"commit":"12a370deed03ba42d7b7ebb410195ce5f32bb9c2","message":"add airport -s parser for issue #46","stats":{"files_changed":8,"insertions":372,"deletions":9,"files":["README.md","changelog.txt","docgen.sh","docs/parsers/airport.md","docs/parsers/airport_s.md","jc/cli.py","jc/parsers/airport.py","jc/parsers/airport_s.py"],"file_stats":[{"name":"README.md","lines_changed":47},{"name":"changelog.txt","lines_changed":2},{"name":"docgen.sh","lines_changed":1},{"name":"docs/parsers/airport.md","lines_changed":4},{"name":"docs/parsers/airport_s.md","lines_changed":136},{"name":"jc/cli.py","lines_changed":1},{"name":"jc/parsers/airport.py","lines_changed":5},{"name":"jc/parsers/airport_s.py","lines_changed":185}]}},{"commit":"553bfbe1a0dd866851ba7eca66e9295c2097ad86","message":"tests passing for airport -I. Issue #46","stats":{"files_changed":3,"insertions":40,"deletions":6,"files":["docs/parsers/airport.md","jc/parsers/airport.py","tests/test_airport.py"],"file_stats":[{"name":"docs/parsers/airport.md","lines_changed":9},{"name":"jc/parsers/airport.py","lines_changed":9},{"name":"tests/test_airport.py","lines_changed":28}]}},{"commit":"52494321fcfe0dc7ee71d8d78210b3c10372a237","message":"fixes and docs for airport parser issue #46","stats":{"files_changed":5,"insertions":120,"deletions":15,"files":["README.md","docs/parsers/airport.md","jc/parsers/airport.py","tests/fixtures/osx-10.14.6/airport-I.json","tests/fixtures/osx-10.14.6/airport-I.out"],"file_stats":[{"name":"README.md","lines_changed":22},{"name":"docs/parsers/airport.md","lines_changed":48},{"name":"jc/parsers/airport.py","lines_changed":62},{"name":"tests/fixtures/osx-10.14.6/airport-I.json","lines_changed":1},{"name":"tests/fixtures/osx-10.14.6/airport-I.out","lines_changed":2}]}},{"commit":"c6c9e06496683d2dd3586d17085801c7e698d960","message":"added airport command parser","stats":{"files_changed":7,"insertions":196,"deletions":1,"files":["changelog.txt","docgen.sh","docs/parsers/airport.md","jc/cli.py","jc/parsers/airport.py","tests/fixtures/osx-10.14.6/airport-I.out","tests/fixtures/osx-10.14.6/airport-s.out"],"file_stats":[{"name":"changelog.txt","lines_changed":3},{"name":"docgen.sh","lines_changed":1},{"name":"docs/parsers/airport.md","lines_changed":64},{"name":"jc/cli.py","lines_changed":1},{"name":"jc/parsers/airport.py","lines_changed":98},{"name":"tests/fixtures/osx-10.14.6/airport-I.out","lines_changed":15},{"name":"tests/fixtures/osx-10.14.6/airport-s.out","lines_changed":15}]}},{"commit":"e3a6c05a58a2451e70975d8fabf644c56603c73d","message":"timedatectl fixes, tests, and fixtures for issue #42","stats":{"files_changed":5,"insertions":64,"deletions":17,"files":["docs/parsers/timedatectl.md","jc/parsers/timedatectl.py","tests/fixtures/centos-7.7/timedatectl.json","tests/fixtures/ubuntu-18.04/timedatectl.json","tests/test_timedatectl.py"],"file_stats":[{"name":"docs/parsers/timedatectl.md","lines_changed":18},{"name":"jc/parsers/timedatectl.py","lines_changed":21},{"name":"tests/fixtures/centos-7.7/timedatectl.json","lines_changed":1},{"name":"tests/fixtures/ubuntu-18.04/timedatectl.json","lines_changed":1},{"name":"tests/test_timedatectl.py","lines_changed":40}]}},{"commit":"391d06f68d1f45d33590d5407d3a5e4f723af717","message":"change selection_state to state","stats":{"files_changed":7,"insertions":35,"deletions":35,"files":["README.md","docs/parsers/ntpq.md","jc/parsers/ntpq.py","tests/fixtures/centos-7.7/ntpq-p.json","tests/fixtures/centos-7.7/ntpq-pn.json","tests/fixtures/ubuntu-18.04/ntpq-p.json","tests/fixtures/ubuntu-18.04/ntpq-pn.json"],"file_stats":[{"name":"README.md","lines_changed":4},{"name":"docs/parsers/ntpq.md","lines_changed":26},{"name":"jc/parsers/ntpq.py","lines_changed":32},{"name":"tests/fixtures/centos-7.7/ntpq-p.json","lines_changed":2},{"name":"tests/fixtures/centos-7.7/ntpq-pn.json","lines_changed":2},{"name":"tests/fixtures/ubuntu-18.04/ntpq-p.json","lines_changed":2},{"name":"tests/fixtures/ubuntu-18.04/ntpq-pn.json","lines_changed":2}]}},{"commit":"99804ea06e0c70e3a82ddc7f9c7a42343374d700","message":"added timedatectl status parser","stats":{"files_changed":6,"insertions":222,"deletions":0,"files":["README.md","changelog.txt","docgen.sh","docs/parsers/timedatectl.md","jc/cli.py","jc/parsers/timedatectl.py"],"file_stats":[{"name":"README.md","lines_changed":15},{"name":"changelog.txt","lines_changed":1},{"name":"docgen.sh","lines_changed":1},{"name":"docs/parsers/timedatectl.md","lines_changed":85},{"name":"jc/cli.py","lines_changed":1},{"name":"jc/parsers/timedatectl.py","lines_changed":119}]}},{"commit":"51935deb2ad18e4ea3ca16954ce810354f6095a9","message":"timedatectl test fixtures","stats":{"files_changed":2,"insertions":21,"deletions":0,"files":["tests/fixtures/centos-7.7/timedatectl.out","tests/fixtures/ubuntu-18.04/timedatectl.out"],"file_stats":[{"name":"tests/fixtures/centos-7.7/timedatectl.out","lines_changed":14},{"name":"tests/fixtures/ubuntu-18.04/timedatectl.out","lines_changed":7}]}},{"commit":"b24d0c3a475b88d9ccf1a8fe29715ee60972fcad","message":"ntpq docs","stats":{"files_changed":2,"insertions":34,"deletions":2,"files":["README.md","jc/parsers/ntpq.py"],"file_stats":[{"name":"README.md","lines_changed":33},{"name":"jc/parsers/ntpq.py","lines_changed":3}]}},{"commit":"762a886d6fdf5c2ad21d81868d138fb32621ed1c","message":"add ntpq tests","stats":{"files_changed":8,"insertions":133,"deletions":0,"files":["tests/fixtures/centos-7.7/ntpq-p.json","tests/fixtures/centos-7.7/ntpq-pn.json","tests/fixtures/ubuntu-18.04/ntpq-p.json","tests/fixtures/ubuntu-18.04/ntpq-p.out","tests/fixtures/ubuntu-18.04/ntpq-pn.json","tests/fixtures/ubuntu-18.04/ntpq-pn.out","tests/fixtures/ubuntu-18.04/ntqp-p.out","tests/test_ntpq.py"],"file_stats":[{"name":"tests/fixtures/centos-7.7/ntpq-p.json","lines_changed":1},{"name":"tests/fixtures/centos-7.7/ntpq-pn.json","lines_changed":1},{"name":"tests/fixtures/ubuntu-18.04/ntpq-p.json","lines_changed":1},{"name":"tests/fixtures/ubuntu-18.04/ntpq-p.out","lines_changed":21},{"name":"tests/fixtures/ubuntu-18.04/ntpq-pn.json","lines_changed":1},{"name":"tests/fixtures/ubuntu-18.04/ntpq-pn.out","lines_changed":21},{"name":"tests/fixtures/ubuntu-18.04/ntqp-p.out","lines_changed":21},{"name":"tests/test_ntpq.py","lines_changed":66}]}},{"commit":"2c3e9ddfe47f56cd7edc2fdf6317f7ecec0b7918","message":"add ntpq parser for issue #31","stats":{"files_changed":7,"insertions":543,"deletions":0,"files":["changelog.txt","docgen.sh","docs/parsers/ntpq.md","jc/cli.py","jc/parsers/ntpq.py","tests/fixtures/centos-7.7/ntpq-p.out","tests/fixtures/centos-7.7/ntpq-pn.out"],"file_stats":[{"name":"changelog.txt","lines_changed":3},{"name":"docgen.sh","lines_changed":1},{"name":"docs/parsers/ntpq.md","lines_changed":235},{"name":"jc/cli.py","lines_changed":1},{"name":"jc/parsers/ntpq.py","lines_changed":291},{"name":"tests/fixtures/centos-7.7/ntpq-p.out","lines_changed":6},{"name":"tests/fixtures/centos-7.7/ntpq-pn.out","lines_changed":6}]}},{"commit":"c7cd2b63c8f24e9d17c458880fe401d8032395ab","message":"delete unused test file","stats":{"files_changed":1,"insertions":0,"deletions":91,"files":["tests/fixtures/generic/oscar_age_male.csv"],"file_stats":[{"name":"tests/fixtures/generic/oscar_age_male.csv","lines_changed":91}]}},{"commit":"f0528ea83112e71ff51c89be27fc9bbdfbbf1951","message":"Merge pull request #45 from kellyjonbrazil/dev"},{"commit":"5bc5596f604fb87dffbfdf44ce2395b16bf01297","message":"version bump to 1.8.1","stats":{"files_changed":4,"insertions":17,"deletions":4,"files":["changelog.txt","jc/cli.py","setup.py","tests/test_ls.py"],"file_stats":[{"name":"changelog.txt","lines_changed":5},{"name":"jc/cli.py","lines_changed":2},{"name":"setup.py","lines_changed":2},{"name":"tests/test_ls.py","lines_changed":12}]}},{"commit":"2c27ac46be803b583caf82c1765bd0c35cee8bc1","message":"add ls test fixtures","stats":{"files_changed":2,"insertions":2454,"deletions":0,"files":["tests/fixtures/osx-10.14.6/ls-lR-empty-folder.json","tests/fixtures/osx-10.14.6/ls-lR-empty-folder.out"],"file_stats":[{"name":"tests/fixtures/osx-10.14.6/ls-lR-empty-folder.json","lines_changed":1},{"name":"tests/fixtures/osx-10.14.6/ls-lR-empty-folder.out","lines_changed":2453}]}},{"commit":"caad840153e40dc660a2d5e06a96f3451fef25f9","message":"Merge pull request #44 from philippeitis/patch-5"},{"commit":"65bd7e2904016141c1ed53cdd437865c66d7628e","message":"Merge pull request #1 from kellyjonbrazil/pr/44"},{"commit":"c3d7d7db12d4870fc4499e0e3445d85ae89f2aea","message":"removed whitespace","stats":{"files_changed":1,"insertions":1,"deletions":1,"files":["jc/cli.py"],"file_stats":[{"name":"jc/cli.py","lines_changed":2}]}},{"commit":"56053103625af6fb7fa749fc5bc3dbdc62fc223c","message":"added tests, removed os import, changed to 'assertEqual'","stats":{"files_changed":1,"insertions":11,"deletions":4,"files":["tests/test_cli.py"],"file_stats":[{"name":"tests/test_cli.py","lines_changed":15}]}},{"commit":"17b6efe82e6a558353b011c543489eaaf3a6d3ac","message":"Create basic tests for generate_magic_commands()","stats":{"files_changed":1,"insertions":14,"deletions":0,"files":["tests/test_cli.py"],"file_stats":[{"name":"tests/test_cli.py","lines_changed":14}]}},{"commit":"a032ae56ae7d247e00415267b65b2a8b80a3302e","message":"Pass args to generate_magic_command() to allow testing.","stats":{"files_changed":1,"insertions":4,"deletions":4,"files":["jc/cli.py"],"file_stats":[{"name":"jc/cli.py","lines_changed":8}]}},{"commit":"eab2f4b0566b4c76db661cbfa99a56a6bf8d6541","message":"Move core magic() logic into seperate function for testability, minor tweaks.","stats":{"files_changed":1,"insertions":33,"deletions":19,"files":["jc/cli.py"],"file_stats":[{"name":"jc/cli.py","lines_changed":52}]}},{"commit":"aff86ae6c71abfe1cbdba5c574a5f3707292ec19","message":"reimpliment magic() based on the dictionary approach suggested by philippeitis","stats":{"files_changed":1,"insertions":29,"deletions":39,"files":["jc/cli.py"],"file_stats":[{"name":"jc/cli.py","lines_changed":68}]}},{"commit":"7ece9ddc1a37551cdaaac50f37a48e6d98b18bf4","message":"version bump ls","stats":{"files_changed":1,"insertions":1,"deletions":1,"files":["jc/parsers/ls.py"],"file_stats":[{"name":"jc/parsers/ls.py","lines_changed":2}]}},{"commit":"7cd048e839a7cc8404fd5abc153a3d315c207819","message":"changelog update","stats":{"files_changed":1,"insertions":1,"deletions":0,"files":["changelog.txt"],"file_stats":[{"name":"changelog.txt","lines_changed":1}]}},{"commit":"1e22f610a33903e8525d35a18b1dcf760a93791e","message":"fix for osx - doesn't print 'total xx' line if empty directory (issue #40)","stats":{"files_changed":1,"insertions":5,"deletions":0,"files":["jc/parsers/ls.py"],"file_stats":[{"name":"jc/parsers/ls.py","lines_changed":5}]}},{"commit":"5249c972ae25e9b289a2667bf471aad5e58c70a9","message":"add to changelog","stats":{"files_changed":1,"insertions":4,"deletions":0,"files":["changelog.txt"],"file_stats":[{"name":"changelog.txt","lines_changed":4}]}},{"commit":"fd45f856a050f6c56a7a6b50b97b3d8c4de28af0","message":"import jc.utils instead of jc","stats":{"files_changed":1,"insertions":1,"deletions":1,"files":["jc/parsers/history.py"],"file_stats":[{"name":"jc/parsers/history.py","lines_changed":2}]}},{"commit":"c8ab40cd33b14a3a1937ecf64bb23e282f5bb921","message":"ignore .github folder","stats":{"files_changed":1,"insertions":1,"deletions":0,"files":[".gitignore"],"file_stats":[{"name":".gitignore","lines_changed":1}]}},{"commit":"b2c872925b37254dac74578c1803b4127f8411c4","message":"add utf-8 encoding for testing on Windows","stats":{"files_changed":20,"insertions":208,"deletions":220,"files":["tests/test_ls.py","tests/test_lsmod.py","tests/test_lsof.py","tests/test_mount.py","tests/test_netstat.py","tests/test_passwd.py","tests/test_pip_list.py","tests/test_ps.py","tests/test_route.py","tests/test_shadow.py","tests/test_ss.py","tests/test_systemctl_lj.py","tests/test_systemctl_ls.py","tests/test_systemctl_luf.py","tests/test_uname.py","tests/test_uptime.py","tests/test_w.py","tests/test_who.py","tests/test_xml.py","tests/test_yaml.py"],"file_stats":[{"name":"tests/test_ls.py","lines_changed":132},{"name":"tests/test_lsmod.py","lines_changed":8},{"name":"tests/test_lsof.py","lines_changed":16},{"name":"tests/test_mount.py","lines_changed":16},{"name":"tests/test_netstat.py","lines_changed":40},{"name":"tests/test_passwd.py","lines_changed":12},{"name":"tests/test_pip_list.py","lines_changed":20},{"name":"tests/test_ps.py","lines_changed":32},{"name":"tests/test_route.py","lines_changed":16},{"name":"tests/test_shadow.py","lines_changed":8},{"name":"tests/test_ss.py","lines_changed":8},{"name":"tests/test_systemctl_lj.py","lines_changed":16},{"name":"tests/test_systemctl_ls.py","lines_changed":8},{"name":"tests/test_systemctl_luf.py","lines_changed":8},{"name":"tests/test_uname.py","lines_changed":16},{"name":"tests/test_uptime.py","lines_changed":16},{"name":"tests/test_w.py","lines_changed":16},{"name":"tests/test_who.py","lines_changed":24},{"name":"tests/test_xml.py","lines_changed":8},{"name":"tests/test_yaml.py","lines_changed":8}]}},{"commit":"f48e229202f8ab1ebfa502ca57bb31cf673c7a62","message":"utf-8 open for windows tests","stats":{"files_changed":21,"insertions":192,"deletions":192,"files":["tests/test_arp.py","tests/test_blkid.py","tests/test_crontab.py","tests/test_crontab_u.py","tests/test_csv.py","tests/test_df.py","tests/test_dig.py","tests/test_du.py","tests/test_env.py","tests/test_free.py","tests/test_fstab.py","tests/test_group.py","tests/test_gshadow.py","tests/test_history.py","tests/test_hosts.py","tests/test_id.py","tests/test_ifconfig.py","tests/test_ini.py","tests/test_iptables.py","tests/test_jobs.py","tests/test_last.py"],"file_stats":[{"name":"tests/test_arp.py","lines_changed":32},{"name":"tests/test_blkid.py","lines_changed":40},{"name":"tests/test_crontab.py","lines_changed":4},{"name":"tests/test_crontab_u.py","lines_changed":8},{"name":"tests/test_csv.py","lines_changed":36},{"name":"tests/test_df.py","lines_changed":32},{"name":"tests/test_dig.py","lines_changed":24},{"name":"tests/test_du.py","lines_changed":16},{"name":"tests/test_env.py","lines_changed":8},{"name":"tests/test_free.py","lines_changed":16},{"name":"tests/test_fstab.py","lines_changed":8},{"name":"tests/test_group.py","lines_changed":12},{"name":"tests/test_gshadow.py","lines_changed":8},{"name":"tests/test_history.py","lines_changed":8},{"name":"tests/test_hosts.py","lines_changed":8},{"name":"tests/test_id.py","lines_changed":8},{"name":"tests/test_ifconfig.py","lines_changed":24},{"name":"tests/test_ini.py","lines_changed":8},{"name":"tests/test_iptables.py","lines_changed":48},{"name":"tests/test_jobs.py","lines_changed":8},{"name":"tests/test_last.py","lines_changed":28}]}},{"commit":"799fec92c39b1ff0696c6ebb182c4bef66b86e56","message":"utf-8 for windows support","stats":{"files_changed":2,"insertions":12,"deletions":12,"files":["tests/test_pip_show.py","tests/test_systemctl.py"],"file_stats":[{"name":"tests/test_pip_show.py","lines_changed":16},{"name":"tests/test_systemctl.py","lines_changed":8}]}},{"commit":"87a41c2fcaa395f108b5a5126ed77f7cc7fe5d6d","message":"add utf-8 to open function","stats":{"files_changed":2,"insertions":12,"deletions":12,"files":["tests/test_lsblk.py","tests/test_stat.py"],"file_stats":[{"name":"tests/test_lsblk.py","lines_changed":16},{"name":"tests/test_stat.py","lines_changed":8}]}},{"commit":"7f85de0c46cda95d57b9677ba0ca3ea59690e502","message":"add windows-latest","stats":{"files_changed":1,"insertions":1,"deletions":1,"files":[".github/workflows/pythonapp.yml"],"file_stats":[{"name":".github/workflows/pythonapp.yml","lines_changed":2}]}},{"commit":"13661b19934a74417713e98e3e1e4df6bb0f29ad","message":"Merge pull request #37 from philippeitis/continuous_integration"},{"commit":"51d5c3892d6ff1e2e6ac7c4f3e496e7d9ed4b6a7","message":"Remove Windows tests, due to lack of support.","stats":{"files_changed":1,"insertions":1,"deletions":1,"files":[".github/workflows/pythonapp.yml"],"file_stats":[{"name":".github/workflows/pythonapp.yml","lines_changed":2}]}},{"commit":"e4eab4641ac15220f2787c5d27b443ab8c718b86","message":"Change line in blkid.py to trigger CI","stats":{"files_changed":1,"insertions":1,"deletions":2,"files":["jc/parsers/blkid.py"],"file_stats":[{"name":"jc/parsers/blkid.py","lines_changed":3}]}},{"commit":"9b148e0ba37e18749d95608e1bac6c090ab83ee2","message":"Add requirements.txt","stats":{"files_changed":1,"insertions":3,"deletions":0,"files":["requirements.txt"],"file_stats":[{"name":"requirements.txt","lines_changed":3}]}},{"commit":"de28932650d5027e2781011f1243b89f053b241d","message":"Consolidate dictionary into creation, trigger CI","stats":{"files_changed":1,"insertions":7,"deletions":6,"files":["jc/parsers/arp.py"],"file_stats":[{"name":"jc/parsers/arp.py","lines_changed":13}]}},{"commit":"5f798d603e461d2de5adf74662ba4d4b121f28f2","message":"version bump and ack to philippeitis","stats":{"files_changed":1,"insertions":2,"deletions":1,"files":["jc/parsers/history.py"],"file_stats":[{"name":"jc/parsers/history.py","lines_changed":3}]}},{"commit":"a0757b2dd3fc0f3e26622941d93bd909dae0a1f7","message":"optimize line parsing","stats":{"files_changed":1,"insertions":1,"deletions":5,"files":["jc/parsers/foo.py"],"file_stats":[{"name":"jc/parsers/foo.py","lines_changed":6}]}},{"commit":"498d51b4e802cb40cac58aae1eff1f723bbbd896","message":"Enable Continuous Integration with GitHub Actions.","stats":{"files_changed":1,"insertions":31,"deletions":0,"files":[".github/workflows/pythonapp.yml"],"file_stats":[{"name":".github/workflows/pythonapp.yml","lines_changed":31}]}},{"commit":"b06b6bae3f64f591c9075812dc1b632ef6d2da37","message":"Merge pull request #36 from philippeitis/patch-3"},{"commit":"b5eaff21372a58aefb66e5afc5e863db8355fee1","message":"Merge pull request #35 from kellyjonbrazil/revert-34-patch-3"},{"commit":"c01bcd3734382a0c388d9f4041fc888171ca7675","message":"Revert \"Simplify process() in history.py, avoid list allocation in parse()\"","stats":{"files_changed":1,"insertions":25,"deletions":12,"files":["jc/parsers/history.py"],"file_stats":[{"name":"jc/parsers/history.py","lines_changed":37}]}},{"commit":"d75c4068caaf4adbe9a39fa452ae867421053673","message":"Merge pull request #34 from philippeitis/patch-3"},{"commit":"6aa2d5a3d26f9f00c3334928f6f0e501860433da","message":"Merge pull request #33 from philippeitis/patch-2"},{"commit":"065276805f0f2dd23a6382f0120ca07e9eae116f","message":"Simplify process() in history.py, avoid list allocation in parse()","stats":{"files_changed":1,"insertions":12,"deletions":25,"files":["jc/parsers/history.py"],"file_stats":[{"name":"jc/parsers/history.py","lines_changed":37}]}},{"commit":"a63408c8cf3f99646be2b375f651d6cf417f7ae0","message":"Handle case where only options are passed.","stats":{"files_changed":1,"insertions":4,"deletions":0,"files":["jc/cli.py"],"file_stats":[{"name":"jc/cli.py","lines_changed":4}]}},{"commit":"69576f6bfae073196627a0a39b5ececb8666d25c","message":"minor sytax fixes","stats":{"files_changed":1,"insertions":3,"deletions":3,"files":["jc/cli.py"],"file_stats":[{"name":"jc/cli.py","lines_changed":6}]}},{"commit":"19845624e2996da4653efc2f312aceb514feaf5c","message":"Merge pull request #32 from philippeitis/patch-1"},{"commit":"22ff2964e9889587711e779ac24f8f8034212f5e","message":"Simplify main(), magic() methods.","stats":{"files_changed":1,"insertions":62,"deletions":75,"files":["jc/cli.py"],"file_stats":[{"name":"jc/cli.py","lines_changed":137}]}},{"commit":"d96b3a65a98bc135d21d4feafc0a43317b5a11fa","message":"formatting","stats":{"files_changed":1,"insertions":1,"deletions":1,"files":["README.md"],"file_stats":[{"name":"README.md","lines_changed":2}]}},{"commit":"4989445ef4bb8919d9b3b95e2fcee77ca7692aec","message":"Merge pull request #30 from kellyjonbrazil/dev"},{"commit":"6770892acd49aced225dbccf39290f33522c9001","message":"add release notes link","stats":{"files_changed":1,"insertions":2,"deletions":0,"files":["README.md"],"file_stats":[{"name":"README.md","lines_changed":2}]}},{"commit":"d4eba8740fc325756f3db96ab37a5383540cbeff","message":"release date 3/3","stats":{"files_changed":1,"insertions":1,"deletions":1,"files":["changelog.txt"],"file_stats":[{"name":"changelog.txt","lines_changed":2}]}},{"commit":"9f607605605e47990f97ccfd48fde19a14e036e7","message":"add group and gshadow tests","stats":{"files_changed":2,"insertions":92,"deletions":0,"files":["tests/test_group.py","tests/test_gshadow.py"],"file_stats":[{"name":"tests/test_group.py","lines_changed":52},{"name":"tests/test_gshadow.py","lines_changed":40}]}},{"commit":"0a8f8ac934f040141e6a4eec8cf7170e1ca73294","message":"add group and gshadow parsers","stats":{"files_changed":1,"insertions":2,"deletions":0,"files":["changelog.txt"],"file_stats":[{"name":"changelog.txt","lines_changed":2}]}},{"commit":"6ae24c82447bcff606e7027dd01b916293b49584","message":"add group and gshadow test fixtures","stats":{"files_changed":10,"insertions":274,"deletions":0,"files":["tests/fixtures/centos-7.7/group.json","tests/fixtures/centos-7.7/group.out","tests/fixtures/centos-7.7/gshadow.json","tests/fixtures/centos-7.7/gshadow.out","tests/fixtures/create_fixtures.sh","tests/fixtures/osx-10.14.6/group.json","tests/fixtures/osx-10.14.6/group.out","tests/fixtures/ubuntu-18.04/group.json","tests/fixtures/ubuntu-18.04/group.out","tests/fixtures/ubuntu-18.04/gshadow.json"],"file_stats":[{"name":"tests/fixtures/centos-7.7/group.json","lines_changed":1},{"name":"tests/fixtures/centos-7.7/group.out","lines_changed":39},{"name":"tests/fixtures/centos-7.7/gshadow.json","lines_changed":1},{"name":"tests/fixtures/centos-7.7/gshadow.out","lines_changed":39},{"name":"tests/fixtures/create_fixtures.sh","lines_changed":3},{"name":"tests/fixtures/osx-10.14.6/group.json","lines_changed":1},{"name":"tests/fixtures/osx-10.14.6/group.out","lines_changed":135},{"name":"tests/fixtures/ubuntu-18.04/group.json","lines_changed":1},{"name":"tests/fixtures/ubuntu-18.04/group.out","lines_changed":53},{"name":"tests/fixtures/ubuntu-18.04/gshadow.json","lines_changed":1}]}},{"commit":"d3679082a8c5cff76eb7de67c33fe716a1402182","message":"add group and gshadow parsers","stats":{"files_changed":1,"insertions":64,"deletions":0,"files":["README.md"],"file_stats":[{"name":"README.md","lines_changed":64}]}},{"commit":"fb08b42dca135705a3759435335d95c898d47f60","message":"change 'group_list' to 'members'","stats":{"files_changed":2,"insertions":21,"deletions":21,"files":["docs/parsers/group.md","jc/parsers/group.py"],"file_stats":[{"name":"docs/parsers/group.md","lines_changed":18},{"name":"jc/parsers/group.py","lines_changed":24}]}},{"commit":"4aeaa9f42a88bf4e05c8780a35cc8c4d83c9b842","message":"add /etc/gshadow parser","stats":{"files_changed":5,"insertions":316,"deletions":0,"files":["docgen.sh","docs/parsers/gshadow.md","jc/cli.py","jc/parsers/gshadow.py","tests/fixtures/ubuntu-18.04/gshadow.out"],"file_stats":[{"name":"docgen.sh","lines_changed":1},{"name":"docs/parsers/gshadow.md","lines_changed":109},{"name":"jc/cli.py","lines_changed":1},{"name":"jc/parsers/gshadow.py","lines_changed":152},{"name":"tests/fixtures/ubuntu-18.04/gshadow.out","lines_changed":53}]}},{"commit":"5f5693da048cb4739dc56500c672dc8fbccaaf32","message":"spelling fix","stats":{"files_changed":1,"insertions":2,"deletions":1,"files":["docs/parsers/csv.md"],"file_stats":[{"name":"docs/parsers/csv.md","lines_changed":3}]}},{"commit":"5eb0f61727f92a84fb3620e13db072167ef552ef","message":"add /etc/group file parser","stats":{"files_changed":4,"insertions":333,"deletions":0,"files":["docgen.sh","docs/parsers/group.md","jc/cli.py","jc/parsers/group.py"],"file_stats":[{"name":"docgen.sh","lines_changed":1},{"name":"docs/parsers/group.md","lines_changed":141},{"name":"jc/cli.py","lines_changed":1},{"name":"jc/parsers/group.py","lines_changed":190}]}},{"commit":"958e998991b1cc61dc1dc341b90cd53f4691cd43","message":"formatting","stats":{"files_changed":1,"insertions":2,"deletions":2,"files":["jc/parsers/csv.py"],"file_stats":[{"name":"jc/parsers/csv.py","lines_changed":4}]}},{"commit":"b78c1509f67fb76d17ac97193a2851d8d9e17f62","message":"try/except dialect detection","stats":{"files_changed":1,"insertions":8,"deletions":2,"files":["jc/parsers/csv.py"],"file_stats":[{"name":"jc/parsers/csv.py","lines_changed":10}]}},{"commit":"ce184d4d57faa3f1bca5bcaa02da7a5a5d995eb3","message":"add csv parser tests","stats":{"files_changed":20,"insertions":24054,"deletions":0,"files":["tests/fixtures/generic/csv-biostats.csv","tests/fixtures/generic/csv-biostats.json","tests/fixtures/generic/csv-cities.csv","tests/fixtures/generic/csv-cities.json","tests/fixtures/generic/csv-deniro.csv","tests/fixtures/generic/csv-deniro.json","tests/fixtures/generic/csv-example.csv","tests/fixtures/generic/csv-example.json","tests/fixtures/generic/csv-flyrna.json","tests/fixtures/generic/csv-flyrna.tsv","tests/fixtures/generic/csv-flyrna2.json","tests/fixtures/generic/csv-flyrna2.tsv","tests/fixtures/generic/csv-homes-pipe.csv","tests/fixtures/generic/csv-homes-pipe.json","tests/fixtures/generic/csv-homes.csv","tests/fixtures/generic/csv-homes.json","tests/fixtures/generic/csv-insurance.csv","tests/fixtures/generic/csv-insurance.json","tests/fixtures/generic/oscar_age_male.csv","tests/test_csv.py"],"file_stats":[{"name":"tests/fixtures/generic/csv-biostats.csv","lines_changed":20},{"name":"tests/fixtures/generic/csv-biostats.json","lines_changed":1},{"name":"tests/fixtures/generic/csv-cities.csv","lines_changed":130},{"name":"tests/fixtures/generic/csv-cities.json","lines_changed":1},{"name":"tests/fixtures/generic/csv-deniro.csv","lines_changed":89},{"name":"tests/fixtures/generic/csv-deniro.json","lines_changed":1},{"name":"tests/fixtures/generic/csv-example.csv","lines_changed":2},{"name":"tests/fixtures/generic/csv-example.json","lines_changed":1},{"name":"tests/fixtures/generic/csv-flyrna.json","lines_changed":1},{"name":"tests/fixtures/generic/csv-flyrna.tsv","lines_changed":11767},{"name":"tests/fixtures/generic/csv-flyrna2.json","lines_changed":1},{"name":"tests/fixtures/generic/csv-flyrna2.tsv","lines_changed":11767},{"name":"tests/fixtures/generic/csv-homes-pipe.csv","lines_changed":3},{"name":"tests/fixtures/generic/csv-homes-pipe.json","lines_changed":1},{"name":"tests/fixtures/generic/csv-homes.csv","lines_changed":51},{"name":"tests/fixtures/generic/csv-homes.json","lines_changed":1},{"name":"tests/fixtures/generic/csv-insurance.csv","lines_changed":1},{"name":"tests/fixtures/generic/csv-insurance.json","lines_changed":1},{"name":"tests/fixtures/generic/oscar_age_male.csv","lines_changed":91},{"name":"tests/test_csv.py","lines_changed":124}]}},{"commit":"b4c3714ced9ee5cc6a7ef0c59a43cf85e1cb9824","message":"removed [OPTIONS] PARSER syntax. still works but prefer the PARSER [OPTIONS] syntax for better performance","stats":{"files_changed":1,"insertions":0,"deletions":4,"files":["README.md"],"file_stats":[{"name":"README.md","lines_changed":4}]}},{"commit":"5b7dfa043864f1a3f34aa4ef5c6554a2dfe185f9","message":"formatting","stats":{"files_changed":1,"insertions":1,"deletions":1,"files":["changelog.txt"],"file_stats":[{"name":"changelog.txt","lines_changed":2}]}},{"commit":"391a3884765780497dc34e0e9938ff5032c81291","message":"doc update","stats":{"files_changed":2,"insertions":49,"deletions":0,"files":["README.md","changelog.txt"],"file_stats":[{"name":"README.md","lines_changed":48},{"name":"changelog.txt","lines_changed":1}]}},{"commit":"d9c4e2ed4c0f908f4b63c2376b53ddfd32a0fae1","message":"add csv file parser","stats":{"files_changed":4,"insertions":241,"deletions":0,"files":["docgen.sh","docs/parsers/csv.md","jc/cli.py","jc/parsers/csv.py"],"file_stats":[{"name":"docgen.sh","lines_changed":1},{"name":"docs/parsers/csv.md","lines_changed":104},{"name":"jc/cli.py","lines_changed":1},{"name":"jc/parsers/csv.py","lines_changed":135}]}},{"commit":"0c42db38b102987629e40cee2716b826161e6e94","message":"doc update","stats":{"files_changed":2,"insertions":4,"deletions":0,"files":["docs/parsers/who.md","jc/parsers/who.py"],"file_stats":[{"name":"docs/parsers/who.md","lines_changed":2},{"name":"jc/parsers/who.py","lines_changed":2}]}},{"commit":"2f9be8bf33f8be5651d06da9d316f7894606df19","message":"simplify usage","stats":{"files_changed":1,"insertions":0,"deletions":4,"files":["jc/cli.py"],"file_stats":[{"name":"jc/cli.py","lines_changed":4}]}},{"commit":"e8c00155e861b9eedfdf37a22912271bec581d62","message":"add -b to warning message","stats":{"files_changed":1,"insertions":1,"deletions":1,"files":["jc/parsers/ls.py"],"file_stats":[{"name":"jc/parsers/ls.py","lines_changed":2}]}},{"commit":"cc88fdd9ee3951d7ef2aa881cc12f0b7f96aef86","message":"update example","stats":{"files_changed":1,"insertions":2,"deletions":2,"files":["README.md"],"file_stats":[{"name":"README.md","lines_changed":4}]}},{"commit":"d9de11ef1d846a9625dad0adb962b864404c90c1","message":"add another who example","stats":{"files_changed":1,"insertions":16,"deletions":0,"files":["README.md"],"file_stats":[{"name":"README.md","lines_changed":16}]}},{"commit":"0ceda97d0968b67b70cdbb68f7a62657e79c9935","message":"who parser tests","stats":{"files_changed":1,"insertions":88,"deletions":0,"files":["tests/test_who.py"],"file_stats":[{"name":"tests/test_who.py","lines_changed":88}]}},{"commit":"d0dec92ba84640ddc40da7c6faa6568b76757e04","message":"add who test fixtures","stats":{"files_changed":12,"insertions":36,"deletions":0,"files":["tests/fixtures/centos-7.7/who-a.json","tests/fixtures/centos-7.7/who-a.out","tests/fixtures/centos-7.7/who.json","tests/fixtures/centos-7.7/who.out","tests/fixtures/osx-10.14.6/who-a.json","tests/fixtures/osx-10.14.6/who-a.out","tests/fixtures/osx-10.14.6/who.json","tests/fixtures/osx-10.14.6/who.out","tests/fixtures/ubuntu-18.04/who-a.json","tests/fixtures/ubuntu-18.04/who-a.out","tests/fixtures/ubuntu-18.04/who.json","tests/fixtures/ubuntu-18.04/who.out"],"file_stats":[{"name":"tests/fixtures/centos-7.7/who-a.json","lines_changed":1},{"name":"tests/fixtures/centos-7.7/who-a.out","lines_changed":6},{"name":"tests/fixtures/centos-7.7/who.json","lines_changed":1},{"name":"tests/fixtures/centos-7.7/who.out","lines_changed":2},{"name":"tests/fixtures/osx-10.14.6/who-a.json","lines_changed":1},{"name":"tests/fixtures/osx-10.14.6/who-a.out","lines_changed":9},{"name":"tests/fixtures/osx-10.14.6/who.json","lines_changed":1},{"name":"tests/fixtures/osx-10.14.6/who.out","lines_changed":4},{"name":"tests/fixtures/ubuntu-18.04/who-a.json","lines_changed":1},{"name":"tests/fixtures/ubuntu-18.04/who-a.out","lines_changed":6},{"name":"tests/fixtures/ubuntu-18.04/who.json","lines_changed":1},{"name":"tests/fixtures/ubuntu-18.04/who.out","lines_changed":3}]}},{"commit":"d420c008d8aaa0879fa5a3f236d81acb506376c3","message":"fix for pts lines with no user info","stats":{"files_changed":1,"insertions":9,"deletions":0,"files":["jc/parsers/who.py"],"file_stats":[{"name":"jc/parsers/who.py","lines_changed":9}]}},{"commit":"f0b32db4333477e22cc40de62cf026a6a7aa2eb6","message":"who doc update","stats":{"files_changed":2,"insertions":6,"deletions":6,"files":["README.md","docs/parsers/who.md"],"file_stats":[{"name":"README.md","lines_changed":4},{"name":"docs/parsers/who.md","lines_changed":8}]}},{"commit":"bc838eda591473d32b11a885e60ef653925739d0","message":"fix output for non-extended","stats":{"files_changed":1,"insertions":5,"deletions":4,"files":["jc/parsers/who.py"],"file_stats":[{"name":"jc/parsers/who.py","lines_changed":9}]}},{"commit":"afe55b6af07b74816d33d9555ffaa1c1921dd27a","message":"add who parser","stats":{"files_changed":1,"insertions":46,"deletions":0,"files":["README.md"],"file_stats":[{"name":"README.md","lines_changed":46}]}},{"commit":"dd3a3ac302d7b35beef1181e74aed0faf96fd3e4","message":"doc update and process pid integers","stats":{"files_changed":4,"insertions":255,"deletions":9,"files":["changelog.txt","docgen.sh","docs/parsers/who.md","jc/parsers/who.py"],"file_stats":[{"name":"changelog.txt","lines_changed":1},{"name":"docgen.sh","lines_changed":1},{"name":"docs/parsers/who.md","lines_changed":150},{"name":"jc/parsers/who.py","lines_changed":112}]}},{"commit":"f9982a79474c1838f37fc0ff88437980b228d7a1","message":"fixes for from and comment fields","stats":{"files_changed":1,"insertions":11,"deletions":2,"files":["jc/parsers/who.py"],"file_stats":[{"name":"jc/parsers/who.py","lines_changed":13}]}},{"commit":"07c1be9e9ad9f62cf76c23788152de8f3530ee16","message":"add who command parser","stats":{"files_changed":2,"insertions":170,"deletions":0,"files":["jc/cli.py","jc/parsers/who.py"],"file_stats":[{"name":"jc/cli.py","lines_changed":1},{"name":"jc/parsers/who.py","lines_changed":169}]}},{"commit":"f832b88755bfbd3878ec402e603180e6825279be","message":"add passwd and shadow tests","stats":{"files_changed":2,"insertions":92,"deletions":0,"files":["tests/test_passwd.py","tests/test_shadow.py"],"file_stats":[{"name":"tests/test_passwd.py","lines_changed":52},{"name":"tests/test_shadow.py","lines_changed":40}]}},{"commit":"0fac757efca41db062b2f65acc727963c5fb353c","message":"add passwd and shadow parsers","stats":{"files_changed":1,"insertions":2,"deletions":0,"files":["changelog.txt"],"file_stats":[{"name":"changelog.txt","lines_changed":2}]}},{"commit":"fc15742065531152f3d5895042eeb806e33a192a","message":"passwd and shadow test fixtures","stats":{"files_changed":10,"insertions":215,"deletions":0,"files":["tests/fixtures/centos-7.7/passwd.json","tests/fixtures/centos-7.7/passwd.out","tests/fixtures/centos-7.7/shadow.json","tests/fixtures/centos-7.7/shadow.out","tests/fixtures/osx-10.14.6/passwd.json","tests/fixtures/osx-10.14.6/passwd.out","tests/fixtures/ubuntu-18.04/passwd.json","tests/fixtures/ubuntu-18.04/passwd.out","tests/fixtures/ubuntu-18.04/shadow.json","tests/fixtures/ubuntu-18.04/shadow.out"],"file_stats":[{"name":"tests/fixtures/centos-7.7/passwd.json","lines_changed":1},{"name":"tests/fixtures/centos-7.7/passwd.out","lines_changed":21},{"name":"tests/fixtures/centos-7.7/shadow.json","lines_changed":1},{"name":"tests/fixtures/centos-7.7/shadow.out","lines_changed":21},{"name":"tests/fixtures/osx-10.14.6/passwd.json","lines_changed":1},{"name":"tests/fixtures/osx-10.14.6/passwd.out","lines_changed":108},{"name":"tests/fixtures/ubuntu-18.04/passwd.json","lines_changed":1},{"name":"tests/fixtures/ubuntu-18.04/passwd.out","lines_changed":30},{"name":"tests/fixtures/ubuntu-18.04/shadow.json","lines_changed":1},{"name":"tests/fixtures/ubuntu-18.04/shadow.out","lines_changed":30}]}},{"commit":"6f2466a1319eaa4256ae7a2a0f23b3ff37882d37","message":"update readme with /etc/passwd and /etc/shadow file parsers","stats":{"files_changed":1,"insertions":73,"deletions":0,"files":["README.md"],"file_stats":[{"name":"README.md","lines_changed":73}]}},{"commit":"4b90e22f0a9c6790bca62c8314945a7ffc6e267b","message":"doc update","stats":{"files_changed":2,"insertions":137,"deletions":9,"files":["docs/parsers/shadow.md","jc/parsers/shadow.py"],"file_stats":[{"name":"docs/parsers/shadow.md","lines_changed":72},{"name":"jc/parsers/shadow.py","lines_changed":74}]}},{"commit":"c4935687853fb3b079ae42614793cdafe68e124e","message":"doc fix","stats":{"files_changed":2,"insertions":2,"deletions":2,"files":["docs/parsers/passwd.md","jc/parsers/passwd.py"],"file_stats":[{"name":"docs/parsers/passwd.md","lines_changed":2},{"name":"jc/parsers/passwd.py","lines_changed":2}]}},{"commit":"1cdf004b7728901dc137e57b0c8994edfdd6d417","message":"add /etc/shadow parser","stats":{"files_changed":4,"insertions":190,"deletions":0,"files":["docgen.sh","docs/parsers/shadow.md","jc/cli.py","jc/parsers/shadow.py"],"file_stats":[{"name":"docgen.sh","lines_changed":1},{"name":"docs/parsers/shadow.md","lines_changed":69},{"name":"jc/cli.py","lines_changed":1},{"name":"jc/parsers/shadow.py","lines_changed":119}]}},{"commit":"a4ea50426184d30cbe849a8f80bfd5c975075c9e","message":"add /etc/passwd parser","stats":{"files_changed":4,"insertions":303,"deletions":0,"files":["docgen.sh","docs/parsers/passwd.md","jc/cli.py","jc/parsers/passwd.py"],"file_stats":[{"name":"docgen.sh","lines_changed":1},{"name":"docs/parsers/passwd.md","lines_changed":126},{"name":"jc/cli.py","lines_changed":1},{"name":"jc/parsers/passwd.py","lines_changed":175}]}},{"commit":"4c2c234c3bf68d1aac66bd4d1f22b9f97e99128d","message":"add last and lastb tests","stats":{"files_changed":16,"insertions":673,"deletions":0,"files":["tests/fixtures/centos-7.7/last-w.json","tests/fixtures/centos-7.7/last-w.out","tests/fixtures/centos-7.7/last.json","tests/fixtures/centos-7.7/last.out","tests/fixtures/centos-7.7/lastb.json","tests/fixtures/centos-7.7/lastb.out","tests/fixtures/create_fixtures.sh","tests/fixtures/osx-10.14.6/last.json","tests/fixtures/osx-10.14.6/last.out","tests/fixtures/ubuntu-18.04/last-w.json","tests/fixtures/ubuntu-18.04/last-w.out","tests/fixtures/ubuntu-18.04/last.json","tests/fixtures/ubuntu-18.04/last.out","tests/fixtures/ubuntu-18.04/lastb.json","tests/fixtures/ubuntu-18.04/lastb.out","tests/test_last.py"],"file_stats":[{"name":"tests/fixtures/centos-7.7/last-w.json","lines_changed":1},{"name":"tests/fixtures/centos-7.7/last-w.out","lines_changed":69},{"name":"tests/fixtures/centos-7.7/last.json","lines_changed":1},{"name":"tests/fixtures/centos-7.7/last.out","lines_changed":69},{"name":"tests/fixtures/centos-7.7/lastb.json","lines_changed":1},{"name":"tests/fixtures/centos-7.7/lastb.out","lines_changed":6},{"name":"tests/fixtures/create_fixtures.sh","lines_changed":4},{"name":"tests/fixtures/osx-10.14.6/last.json","lines_changed":1},{"name":"tests/fixtures/osx-10.14.6/last.out","lines_changed":383},{"name":"tests/fixtures/ubuntu-18.04/last-w.json","lines_changed":1},{"name":"tests/fixtures/ubuntu-18.04/last-w.out","lines_changed":16},{"name":"tests/fixtures/ubuntu-18.04/last.json","lines_changed":1},{"name":"tests/fixtures/ubuntu-18.04/last.out","lines_changed":16},{"name":"tests/fixtures/ubuntu-18.04/lastb.json","lines_changed":1},{"name":"tests/fixtures/ubuntu-18.04/lastb.out","lines_changed":3},{"name":"tests/test_last.py","lines_changed":100}]}},{"commit":"3d4c0f3e89dab6496ff74df350e3238d6625933c","message":"add blkid tests","stats":{"files_changed":22,"insertions":285,"deletions":0,"files":["tests/fixtures/centos-7.7/blkid-ip-multi.json","tests/fixtures/centos-7.7/blkid-ip-multi.out","tests/fixtures/centos-7.7/blkid-ip-udev-multi.json","tests/fixtures/centos-7.7/blkid-ip-udev-multi.out","tests/fixtures/centos-7.7/blkid-ip-udev.json","tests/fixtures/centos-7.7/blkid-ip-udev.out","tests/fixtures/centos-7.7/blkid-sda2.json","tests/fixtures/centos-7.7/blkid-sda2.out","tests/fixtures/centos-7.7/blkid.json","tests/fixtures/centos-7.7/blkid.out","tests/fixtures/create_fixtures.sh","tests/fixtures/ubuntu-18.04/blkid-ip-multi.json","tests/fixtures/ubuntu-18.04/blkid-ip-multi.out",".../fixtures/ubuntu-18.04/blkid-ip-udev-multi.json",".../fixtures/ubuntu-18.04/blkid-ip-udev-multi.out","tests/fixtures/ubuntu-18.04/blkid-ip-udev.json","tests/fixtures/ubuntu-18.04/blkid-ip-udev.out","tests/fixtures/ubuntu-18.04/blkid-sda2.json","tests/fixtures/ubuntu-18.04/blkid-sda2.out","tests/fixtures/ubuntu-18.04/blkid.json","tests/fixtures/ubuntu-18.04/blkid.out","tests/test_blkid.py"],"file_stats":[{"name":"tests/fixtures/centos-7.7/blkid-ip-multi.json","lines_changed":1},{"name":"tests/fixtures/centos-7.7/blkid-ip-multi.out","lines_changed":29},{"name":"tests/fixtures/centos-7.7/blkid-ip-udev-multi.json","lines_changed":1},{"name":"tests/fixtures/centos-7.7/blkid-ip-udev-multi.out","lines_changed":29},{"name":"tests/fixtures/centos-7.7/blkid-ip-udev.json","lines_changed":1},{"name":"tests/fixtures/centos-7.7/blkid-ip-udev.out","lines_changed":14},{"name":"tests/fixtures/centos-7.7/blkid-sda2.json","lines_changed":1},{"name":"tests/fixtures/centos-7.7/blkid-sda2.out","lines_changed":1},{"name":"tests/fixtures/centos-7.7/blkid.json","lines_changed":1},{"name":"tests/fixtures/centos-7.7/blkid.out","lines_changed":4},{"name":"tests/fixtures/create_fixtures.sh","lines_changed":6},{"name":"tests/fixtures/ubuntu-18.04/blkid-ip-multi.json","lines_changed":1},{"name":"tests/fixtures/ubuntu-18.04/blkid-ip-multi.out","lines_changed":2},{"name":".../fixtures/ubuntu-18.04/blkid-ip-udev-multi.json","lines_changed":1},{"name":".../fixtures/ubuntu-18.04/blkid-ip-udev-multi.out","lines_changed":26},{"name":"tests/fixtures/ubuntu-18.04/blkid-ip-udev.json","lines_changed":1},{"name":"tests/fixtures/ubuntu-18.04/blkid-ip-udev.out","lines_changed":12},{"name":"tests/fixtures/ubuntu-18.04/blkid-sda2.json","lines_changed":1},{"name":"tests/fixtures/ubuntu-18.04/blkid-sda2.out","lines_changed":1},{"name":"tests/fixtures/ubuntu-18.04/blkid.json","lines_changed":1},{"name":"tests/fixtures/ubuntu-18.04/blkid.out","lines_changed":15},{"name":"tests/test_blkid.py","lines_changed":136}]}},{"commit":"52fad02903468c05d2422a340ad8dbcdf18ed475","message":"doc update","stats":{"files_changed":2,"insertions":12,"deletions":12,"files":["docs/parsers/ls.md","jc/parsers/ls.py"],"file_stats":[{"name":"docs/parsers/ls.md","lines_changed":12},{"name":"jc/parsers/ls.py","lines_changed":12}]}},{"commit":"9dcabc057c40e345971a08474b5b886e6b60a8de","message":"support multi device udev output","stats":{"files_changed":1,"insertions":9,"deletions":1,"files":["jc/parsers/blkid.py"],"file_stats":[{"name":"jc/parsers/blkid.py","lines_changed":10}]}},{"commit":"db8c1079ddc25922ab6a20d0f71fb19af38f8092","message":"use maxsplit=1 in case there are multiple '=' delimiters","stats":{"files_changed":1,"insertions":4,"deletions":4,"files":["jc/parsers/blkid.py"],"file_stats":[{"name":"jc/parsers/blkid.py","lines_changed":8}]}},{"commit":"8f954673abdbbd4d9b9da3eacc61b335b4909f89","message":"use shlex split for values within quotations that have spaces","stats":{"files_changed":1,"insertions":3,"deletions":2,"files":["jc/parsers/blkid.py"],"file_stats":[{"name":"jc/parsers/blkid.py","lines_changed":5}]}},{"commit":"79522d1c7dd4dec15b75b06dda002752f7d97e36","message":"doc fixes","stats":{"files_changed":2,"insertions":6,"deletions":4,"files":["docs/parsers/ls.md","jc/parsers/ls.py"],"file_stats":[{"name":"docs/parsers/ls.md","lines_changed":5},{"name":"jc/parsers/ls.py","lines_changed":5}]}},{"commit":"a18bf030794efef125c70a32fe82855e47649b32","message":"use raw strings for regular expressions","stats":{"files_changed":2,"insertions":7,"deletions":7,"files":["jc/parsers/last.py","jc/parsers/ls.py"],"file_stats":[{"name":"jc/parsers/last.py","lines_changed":2},{"name":"jc/parsers/ls.py","lines_changed":12}]}},{"commit":"c02b6b5d827d26b43db0a3457124714aa2dbbc98","message":"doc updates","stats":{"files_changed":3,"insertions":81,"deletions":1,"files":["README.md","changelog.txt","setup.py"],"file_stats":[{"name":"README.md","lines_changed":79},{"name":"changelog.txt","lines_changed":1},{"name":"setup.py","lines_changed":2}]}},{"commit":"f99b4232848b0d868804acc4125836bfcf475bba","message":"doc update","stats":{"files_changed":2,"insertions":134,"deletions":29,"files":["docs/parsers/blkid.md","jc/parsers/blkid.py"],"file_stats":[{"name":"docs/parsers/blkid.md","lines_changed":115},{"name":"jc/parsers/blkid.py","lines_changed":48}]}},{"commit":"d7d9d45d4fba89e74f7490c463eb26bf20a5d127","message":"add missing comma","stats":{"files_changed":1,"insertions":1,"deletions":1,"files":["jc/parsers/blkid.py"],"file_stats":[{"name":"jc/parsers/blkid.py","lines_changed":2}]}},{"commit":"90065ec0cdc8c5abc13bc0027f63658dacf3cfb2","message":"add more integers","stats":{"files_changed":1,"insertions":31,"deletions":26,"files":["jc/parsers/blkid.py"],"file_stats":[{"name":"jc/parsers/blkid.py","lines_changed":57}]}},{"commit":"51157ebb867a48332c768bf3086614944aebdb62","message":"another devname fix","stats":{"files_changed":1,"insertions":2,"deletions":2,"files":["jc/parsers/blkid.py"],"file_stats":[{"name":"jc/parsers/blkid.py","lines_changed":4}]}},{"commit":"96d95c79ca0938e326f55f858f8153df9cb49e44","message":"devname fix","stats":{"files_changed":1,"insertions":3,"deletions":3,"files":["jc/parsers/blkid.py"],"file_stats":[{"name":"jc/parsers/blkid.py","lines_changed":6}]}},{"commit":"e5da34c23306463e8707b15676db0ca53bf66757","message":"check if devname key exists before renaming","stats":{"files_changed":1,"insertions":2,"deletions":1,"files":["jc/parsers/blkid.py"],"file_stats":[{"name":"jc/parsers/blkid.py","lines_changed":3}]}},{"commit":"f09d657f7728242947db3dc63ff6779d08c37866","message":"rename devname to device","stats":{"files_changed":1,"insertions":3,"deletions":2,"files":["jc/parsers/blkid.py"],"file_stats":[{"name":"jc/parsers/blkid.py","lines_changed":5}]}},{"commit":"0f4b0189f54dc0b3622cd407c5565e53ea111379","message":"process integer values","stats":{"files_changed":1,"insertions":35,"deletions":3,"files":["jc/parsers/blkid.py"],"file_stats":[{"name":"jc/parsers/blkid.py","lines_changed":38}]}},{"commit":"4666042abb3142e2cfb518db9ffe22d9e608e090","message":"add blkid parser","stats":{"files_changed":4,"insertions":216,"deletions":0,"files":["docgen.sh","docs/parsers/blkid.md","jc/cli.py","jc/parsers/blkid.py"],"file_stats":[{"name":"docgen.sh","lines_changed":1},{"name":"docs/parsers/blkid.md","lines_changed":83},{"name":"jc/cli.py","lines_changed":1},{"name":"jc/parsers/blkid.py","lines_changed":131}]}},{"commit":"027d544c2bb778adc0ee9463832f19b10e099a0a","message":"add last and lastb parser","stats":{"files_changed":1,"insertions":3,"deletions":0,"files":["changelog.txt"],"file_stats":[{"name":"changelog.txt","lines_changed":3}]}},{"commit":"f1967d0138d27bde864c2400aa75baa8a39bbfde","message":"system_boot fix","stats":{"files_changed":1,"insertions":0,"deletions":3,"files":["jc/parsers/last.py"],"file_stats":[{"name":"jc/parsers/last.py","lines_changed":3}]}},{"commit":"c1d896027dd1ce021e048b3e77eab24ff59d08bd","message":"fix system_boot tty","stats":{"files_changed":1,"insertions":3,"deletions":0,"files":["jc/parsers/last.py"],"file_stats":[{"name":"jc/parsers/last.py","lines_changed":3}]}},{"commit":"5c2d2a66187d32d62b31b7c7f13e502fdb7f9635","message":"process function and docs","stats":{"files_changed":3,"insertions":190,"deletions":6,"files":["docgen.sh","docs/parsers/last.md","jc/parsers/last.py"],"file_stats":[{"name":"docgen.sh","lines_changed":1},{"name":"docs/parsers/last.md","lines_changed":118},{"name":"jc/parsers/last.py","lines_changed":77}]}},{"commit":"997b269b0b7e53a456e2a0bd997ead6c2ae843bc","message":"btmp fix","stats":{"files_changed":1,"insertions":1,"deletions":2,"files":["jc/parsers/last.py"],"file_stats":[{"name":"jc/parsers/last.py","lines_changed":3}]}},{"commit":"61257e7525c25827cb8057ed5c612e54ea9b9637","message":"add last and lastb parser","stats":{"files_changed":2,"insertions":119,"deletions":1,"files":["jc/cli.py","jc/parsers/last.py"],"file_stats":[{"name":"jc/cli.py","lines_changed":3},{"name":"jc/parsers/last.py","lines_changed":117}]}},{"commit":"53ee2c36310cb84390ef96644aee6871769151c9","message":"Merge pull request #29 from kellyjonbrazil/dev"},{"commit":"8bfa0bddec9ff1c21972019467dcf5738ab3afd2","message":"version bump to 1.7.5","stats":{"files_changed":3,"insertions":5,"deletions":2,"files":["changelog.txt","jc/cli.py","setup.py"],"file_stats":[{"name":"changelog.txt","lines_changed":3},{"name":"jc/cli.py","lines_changed":2},{"name":"setup.py","lines_changed":2}]}},{"commit":"ad61e6bc81177a2add7d052bf1ddec5f1b3f2976","message":"add ls tests for filenames with newline characters","stats":{"files_changed":26,"insertions":598,"deletions":133,"files":["tests/fixtures/centos-7.7/ls-R-newlines.json","tests/fixtures/centos-7.7/ls-R-newlines.out","tests/fixtures/centos-7.7/ls-l-newlines.json","tests/fixtures/centos-7.7/ls-l-newlines.out","tests/fixtures/centos-7.7/ls-lR-newlines.json","tests/fixtures/centos-7.7/ls-lR-newlines.out","tests/fixtures/centos-7.7/ls-newlines.json","tests/fixtures/centos-7.7/ls-newlines.out","tests/fixtures/create_fixtures.sh","tests/fixtures/osx-10.14.6/ls-R-newlines.json","tests/fixtures/osx-10.14.6/ls-R-newlines.out","tests/fixtures/osx-10.14.6/ls-l-newlines.json","tests/fixtures/osx-10.14.6/ls-l-newlines.out","tests/fixtures/osx-10.14.6/ls-lR-newlines.json","tests/fixtures/osx-10.14.6/ls-lR-newlines.out","tests/fixtures/osx-10.14.6/ls-newlines.json","tests/fixtures/osx-10.14.6/ls-newlines.out","tests/fixtures/ubuntu-18.04/ls-R-newlines.json","tests/fixtures/ubuntu-18.04/ls-R-newlines.out","tests/fixtures/ubuntu-18.04/ls-l-newlines.json","tests/fixtures/ubuntu-18.04/ls-l-newlines.out","tests/fixtures/ubuntu-18.04/ls-lR-newlines.json","tests/fixtures/ubuntu-18.04/ls-lR-newlines.out","tests/fixtures/ubuntu-18.04/ls-newlines.json","tests/fixtures/ubuntu-18.04/ls-newlines.out","tests/test_ls.py"],"file_stats":[{"name":"tests/fixtures/centos-7.7/ls-R-newlines.json","lines_changed":1},{"name":"tests/fixtures/centos-7.7/ls-R-newlines.out","lines_changed":43},{"name":"tests/fixtures/centos-7.7/ls-l-newlines.json","lines_changed":1},{"name":"tests/fixtures/centos-7.7/ls-l-newlines.out","lines_changed":34},{"name":"tests/fixtures/centos-7.7/ls-lR-newlines.json","lines_changed":1},{"name":"tests/fixtures/centos-7.7/ls-lR-newlines.out","lines_changed":45},{"name":"tests/fixtures/centos-7.7/ls-newlines.json","lines_changed":1},{"name":"tests/fixtures/centos-7.7/ls-newlines.out","lines_changed":33},{"name":"tests/fixtures/create_fixtures.sh","lines_changed":15},{"name":"tests/fixtures/osx-10.14.6/ls-R-newlines.json","lines_changed":1},{"name":"tests/fixtures/osx-10.14.6/ls-R-newlines.out","lines_changed":36},{"name":"tests/fixtures/osx-10.14.6/ls-l-newlines.json","lines_changed":1},{"name":"tests/fixtures/osx-10.14.6/ls-l-newlines.out","lines_changed":34},{"name":"tests/fixtures/osx-10.14.6/ls-lR-newlines.json","lines_changed":1},{"name":"tests/fixtures/osx-10.14.6/ls-lR-newlines.out","lines_changed":38},{"name":"tests/fixtures/osx-10.14.6/ls-newlines.json","lines_changed":1},{"name":"tests/fixtures/osx-10.14.6/ls-newlines.out","lines_changed":148},{"name":"tests/fixtures/ubuntu-18.04/ls-R-newlines.json","lines_changed":1},{"name":"tests/fixtures/ubuntu-18.04/ls-R-newlines.out","lines_changed":40},{"name":"tests/fixtures/ubuntu-18.04/ls-l-newlines.json","lines_changed":1},{"name":"tests/fixtures/ubuntu-18.04/ls-l-newlines.out","lines_changed":34},{"name":"tests/fixtures/ubuntu-18.04/ls-lR-newlines.json","lines_changed":1},{"name":"tests/fixtures/ubuntu-18.04/ls-lR-newlines.out","lines_changed":42},{"name":"tests/fixtures/ubuntu-18.04/ls-newlines.json","lines_changed":1},{"name":"tests/fixtures/ubuntu-18.04/ls-newlines.out","lines_changed":33},{"name":"tests/test_ls.py","lines_changed":144}]}},{"commit":"873b5ba8acf599d083d6031b818d5fca83cbca9e","message":"move examples to bottom","stats":{"files_changed":1,"insertions":27,"deletions":31,"files":["README.md"],"file_stats":[{"name":"README.md","lines_changed":58}]}},{"commit":"6ae50054e2e8c7ca730013b43062eedc230c0ad4","message":"readme update","stats":{"files_changed":1,"insertions":1,"deletions":1,"files":["README.md"],"file_stats":[{"name":"README.md","lines_changed":2}]}},{"commit":"22a35f41bf9c404d3532611f5929143d04b10010","message":"move variables to top","stats":{"files_changed":1,"insertions":4,"deletions":6,"files":["jc/parsers/ls.py"],"file_stats":[{"name":"jc/parsers/ls.py","lines_changed":10}]}},{"commit":"961696c963215a9dab56113ff89f21a6e9739df6","message":"add a warning if newlines are detected in naked ls","stats":{"files_changed":1,"insertions":5,"deletions":0,"files":["jc/parsers/ls.py"],"file_stats":[{"name":"jc/parsers/ls.py","lines_changed":5}]}},{"commit":"c7b7f1a5dcf77a1f4c23ef6bbf5683fd1a055f72","message":"fix for files with newlines in naked ls","stats":{"files_changed":1,"insertions":1,"deletions":1,"files":["jc/parsers/ls.py"],"file_stats":[{"name":"jc/parsers/ls.py","lines_changed":2}]}},{"commit":"b5a0d650b128d8af81bb14dd5d007349529cb66f","message":"ls output with newlines","stats":{"files_changed":1,"insertions":151,"deletions":0,"files":["tests/fixtures/osx-10.14.6/ls-newlines.out"],"file_stats":[{"name":"tests/fixtures/osx-10.14.6/ls-newlines.out","lines_changed":151}]}},{"commit":"573b27946474276592ee7494689ce9a88f5a05f7","message":"fixup for filenames that start with a newline character","stats":{"files_changed":1,"insertions":5,"deletions":1,"files":["jc/parsers/ls.py"],"file_stats":[{"name":"jc/parsers/ls.py","lines_changed":6}]}},{"commit":"116e07f1614b4a45eb58ffcfe20b5efa71c473a8","message":"fixes for multiple consecutive newlines and trailing newlines in filenames","stats":{"files_changed":1,"insertions":6,"deletions":7,"files":["jc/parsers/ls.py"],"file_stats":[{"name":"jc/parsers/ls.py","lines_changed":13}]}},{"commit":"964868c8aff99edf37b0db41c7d16f8b84ac4704","message":"add support for newlines in filenames (only with ls -l)","stats":{"files_changed":2,"insertions":21,"deletions":4,"files":["docs/parsers/ls.md","jc/parsers/ls.py"],"file_stats":[{"name":"docs/parsers/ls.md","lines_changed":5},{"name":"jc/parsers/ls.py","lines_changed":20}]}},{"commit":"c8dac32df8102c2b782e87d55bb95ca2d9490185","message":"readme update","stats":{"files_changed":1,"insertions":1,"deletions":1,"files":["README.md"],"file_stats":[{"name":"README.md","lines_changed":2}]}},{"commit":"72a0016bd833699c3819baa899f335f75b8c1943","message":"use link to anchor for Parsers","stats":{"files_changed":1,"insertions":1,"deletions":1,"files":["README.md"],"file_stats":[{"name":"README.md","lines_changed":2}]}},{"commit":"2ad316743460bb6620e7ede251e1dc2739b073fa","message":"update doc url","stats":{"files_changed":1,"insertions":1,"deletions":1,"files":["README.md"],"file_stats":[{"name":"README.md","lines_changed":2}]}},{"commit":"ddabfaa05c63f886b17e5b4d37cd83fcfdb9b221","message":"Merge pull request #25 from kellyjonbrazil/dev"},{"commit":"f857523ca756864211b6b18af5a8886e5db200bb","message":"bump to version 1.7.4","stats":{"files_changed":3,"insertions":5,"deletions":2,"files":["changelog.txt","jc/cli.py","setup.py"],"file_stats":[{"name":"changelog.txt","lines_changed":3},{"name":"jc/cli.py","lines_changed":2},{"name":"setup.py","lines_changed":2}]}},{"commit":"00d53858e820f00ba015bc25629100c8e5495221","message":"add note about aliases not being supported","stats":{"files_changed":1,"insertions":1,"deletions":1,"files":["README.md"],"file_stats":[{"name":"README.md","lines_changed":2}]}},{"commit":"c008167e660929a91606bb96498cdc113e815f7e","message":"add time-style=full-iso option to doc","stats":{"files_changed":2,"insertions":2,"deletions":0,"files":["docs/parsers/ls.md","jc/parsers/ls.py"],"file_stats":[{"name":"docs/parsers/ls.md","lines_changed":1},{"name":"jc/parsers/ls.py","lines_changed":1}]}},{"commit":"102344a041e9e0aff8b6d9db1873ba1064f7e895","message":"formatting","stats":{"files_changed":1,"insertions":2,"deletions":0,"files":["jc/parsers/ls.py"],"file_stats":[{"name":"jc/parsers/ls.py","lines_changed":2}]}},{"commit":"c865298ef3613fe6ce17f41c15209a69940af1ce","message":"remove unnecessary enumerate in for loop","stats":{"files_changed":1,"insertions":2,"deletions":1,"files":["jc/parsers/ls.py"],"file_stats":[{"name":"jc/parsers/ls.py","lines_changed":3}]}},{"commit":"6ac03faf939bcda8930a48a5e832b557813e2129","message":"Revert \"add ubuntu and centos default ls aliases to magic_commands\"","stats":{"files_changed":1,"insertions":1,"deletions":1,"files":["jc/parsers/ls.py"],"file_stats":[{"name":"jc/parsers/ls.py","lines_changed":2}]}},{"commit":"49c2701743706b6cbf0e52b2c7f275e301315189","message":"add ubuntu and centos default ls aliases to magic_commands","stats":{"files_changed":1,"insertions":1,"deletions":1,"files":["jc/parsers/ls.py"],"file_stats":[{"name":"jc/parsers/ls.py","lines_changed":2}]}},{"commit":"d1a271b08e64b42be8cec11377b0e18435a0caec","message":"add new ls tests for recursive and multiple directories with glob","stats":{"files_changed":21,"insertions":35333,"deletions":1374,"files":["tests/fixtures/centos-7.7/ls-R.json","tests/fixtures/centos-7.7/ls-R.out","tests/fixtures/centos-7.7/ls-alR.json","tests/fixtures/centos-7.7/ls-alR.out","tests/fixtures/centos-7.7/ls-glob.json","tests/fixtures/centos-7.7/ls-glob.out","tests/fixtures/create_fixtures.sh","tests/fixtures/osx-10.14.6/ls-R.json","tests/fixtures/osx-10.14.6/ls-R.out","tests/fixtures/osx-10.14.6/ls-alR.json","tests/fixtures/osx-10.14.6/ls-alR.out","tests/fixtures/osx-10.14.6/ls-glob.json","tests/fixtures/osx-10.14.6/ls-glob.out","tests/fixtures/ubuntu-18.04/ls-R.json","tests/fixtures/ubuntu-18.04/ls-R.out","tests/fixtures/ubuntu-18.04/ls-alR.json","tests/fixtures/ubuntu-18.04/ls-alR.out","tests/fixtures/ubuntu-18.04/ls-glob.json","tests/fixtures/ubuntu-18.04/ls-glob.out","tests/fixtures/ubuntu-18.04/ls-lR.out","tests/test_ls.py"],"file_stats":[{"name":"tests/fixtures/centos-7.7/ls-R.json","lines_changed":1},{"name":"tests/fixtures/centos-7.7/ls-R.out","lines_changed":5089},{"name":"tests/fixtures/centos-7.7/ls-alR.json","lines_changed":1},{"name":"tests/fixtures/centos-7.7/ls-alR.out","lines_changed":4997},{"name":"tests/fixtures/centos-7.7/ls-glob.json","lines_changed":1},{"name":"tests/fixtures/centos-7.7/ls-glob.out","lines_changed":1919},{"name":"tests/fixtures/create_fixtures.sh","lines_changed":5},{"name":"tests/fixtures/osx-10.14.6/ls-R.json","lines_changed":1},{"name":"tests/fixtures/osx-10.14.6/ls-R.out","lines_changed":5018},{"name":"tests/fixtures/osx-10.14.6/ls-alR.json","lines_changed":1},{"name":"tests/fixtures/osx-10.14.6/ls-alR.out","lines_changed":4997},{"name":"tests/fixtures/osx-10.14.6/ls-glob.json","lines_changed":1},{"name":"tests/fixtures/osx-10.14.6/ls-glob.out","lines_changed":1831},{"name":"tests/fixtures/ubuntu-18.04/ls-R.json","lines_changed":1},{"name":"tests/fixtures/ubuntu-18.04/ls-R.out","lines_changed":5639},{"name":"tests/fixtures/ubuntu-18.04/ls-alR.json","lines_changed":1},{"name":"tests/fixtures/ubuntu-18.04/ls-alR.out","lines_changed":5026},{"name":"tests/fixtures/ubuntu-18.04/ls-glob.json","lines_changed":1},{"name":"tests/fixtures/ubuntu-18.04/ls-glob.out","lines_changed":1357},{"name":"tests/fixtures/ubuntu-18.04/ls-lR.out","lines_changed":712},{"name":"tests/test_ls.py","lines_changed":108}]}},{"commit":"7388ad19b9d252d3e66659e4bc37171cef2a9748","message":"bump to v1.8.0","stats":{"files_changed":4,"insertions":6,"deletions":4,"files":["docs/parsers/ls.md","jc/cli.py","jc/parsers/ls.py","setup.py"],"file_stats":[{"name":"docs/parsers/ls.md","lines_changed":3},{"name":"jc/cli.py","lines_changed":2},{"name":"jc/parsers/ls.py","lines_changed":3},{"name":"setup.py","lines_changed":2}]}},{"commit":"2e63cb5fadd032c7cb54a618e8b374ee853abcca","message":"version bump ls to 1.1","stats":{"files_changed":1,"insertions":1,"deletions":1,"files":["jc/parsers/ls.py"],"file_stats":[{"name":"jc/parsers/ls.py","lines_changed":2}]}},{"commit":"e7f14d02b12c7dcba309f2d28a0f171769d1ba37","message":"update ls to allow multi directory (glob and -R). Adds 'parent' key if found","stats":{"files_changed":3,"insertions":1438,"deletions":8,"files":["jc/parsers/ls.py","tests/fixtures/ubuntu-18.04/ls-R.out","tests/fixtures/ubuntu-18.04/ls-lR.out"],"file_stats":[{"name":"jc/parsers/ls.py","lines_changed":48},{"name":"tests/fixtures/ubuntu-18.04/ls-R.out","lines_changed":686},{"name":"tests/fixtures/ubuntu-18.04/ls-lR.out","lines_changed":712}]}},{"commit":"873771d05ab0b77163c95d2c37e11edf38451832","message":"formatting","stats":{"files_changed":1,"insertions":1,"deletions":1,"files":["README.md"],"file_stats":[{"name":"README.md","lines_changed":2}]}},{"commit":"d7de122e36e0698e00f321fbac8dc0b543cf9e8a","message":"prettify link","stats":{"files_changed":1,"insertions":1,"deletions":1,"files":["README.md"],"file_stats":[{"name":"README.md","lines_changed":2}]}},{"commit":"4ef0434f536c6658ddc2b48a3db113df2fd26000","message":"formatting update","stats":{"files_changed":1,"insertions":2,"deletions":4,"files":["README.md"],"file_stats":[{"name":"README.md","lines_changed":6}]}},{"commit":"1aa2c9925996f2358b6272547db755ec3098a8a7","message":"removed history from magic syntax","stats":{"files_changed":2,"insertions":1,"deletions":2,"files":["README.md","jc/parsers/history.py"],"file_stats":[{"name":"README.md","lines_changed":2},{"name":"jc/parsers/history.py","lines_changed":1}]}},{"commit":"c2450b27b079b02ed3f4ece9e36547f01cd4b139","message":"Merge pull request #22 from kellyjonbrazil/dev"},{"commit":"14d6d8b84f0ddeff984aff486e2e697a91ac6fb6","message":"version bump to 1.7.3","stats":{"files_changed":1,"insertions":1,"deletions":1,"files":["setup.py"],"file_stats":[{"name":"setup.py","lines_changed":2}]}},{"commit":"f0e3846c038ec5507cd4a19980d83ee0fb969ef5","message":"formatting","stats":{"files_changed":1,"insertions":1,"deletions":4,"files":["README.md"],"file_stats":[{"name":"README.md","lines_changed":5}]}},{"commit":"6ba64f1128373843b068226424a3af545ac9d22c","message":"usage update","stats":{"files_changed":1,"insertions":5,"deletions":2,"files":["README.md"],"file_stats":[{"name":"README.md","lines_changed":7}]}},{"commit":"13bcdbc6c9a81bc5d52fe7a84e6a0a34908db8bc","message":"doc update","stats":{"files_changed":1,"insertions":1,"deletions":1,"files":["jc/cli.py"],"file_stats":[{"name":"jc/cli.py","lines_changed":2}]}},{"commit":"cfba62db20674d788601354211a10e2b1675a0c9","message":"correct parser search in magic()","stats":{"files_changed":1,"insertions":13,"deletions":6,"files":["jc/cli.py"],"file_stats":[{"name":"jc/cli.py","lines_changed":19}]}},{"commit":"18fb69e36e303a3f9530dcb80354b25bfdbb931d","message":"docs/parsers link","stats":{"files_changed":1,"insertions":1,"deletions":1,"files":["README.md"],"file_stats":[{"name":"README.md","lines_changed":2}]}},{"commit":"474eb0f3fdeaa612e189d745b12a5ed9c6e0a31b","message":"doc updates","stats":{"files_changed":1,"insertions":2,"deletions":2,"files":["README.md"],"file_stats":[{"name":"README.md","lines_changed":4}]}},{"commit":"7f47b533701e60449351d5da03cd5960e0dec9ad","message":"add alternate magic syntax","stats":{"files_changed":1,"insertions":90,"deletions":68,"files":["README.md"],"file_stats":[{"name":"README.md","lines_changed":158}]}},{"commit":"dc2907d3ce101043b30bcce71abb4bb02897f43a","message":"doc update","stats":{"files_changed":1,"insertions":3,"deletions":3,"files":["docs/parsers/crontab.md"],"file_stats":[{"name":"docs/parsers/crontab.md","lines_changed":6}]}},{"commit":"1af85811e06c489051c456918284a746ce12c692","message":"remove magic_command info","stats":{"files_changed":1,"insertions":1,"deletions":2,"files":["jc/parsers/fstab.py"],"file_stats":[{"name":"jc/parsers/fstab.py","lines_changed":3}]}},{"commit":"1c1b19a478fe5c356a93cd165518429e77fcbdf0","message":"doc update","stats":{"files_changed":1,"insertions":3,"deletions":3,"files":["jc/parsers/crontab.py"],"file_stats":[{"name":"jc/parsers/crontab.py","lines_changed":6}]}},{"commit":"66942d64babf932faeb887eb4ec0cab32829321a","message":"changelog update","stats":{"files_changed":1,"insertions":1,"deletions":3,"files":["changelog.txt"],"file_stats":[{"name":"changelog.txt","lines_changed":4}]}},{"commit":"2fb6ae08d76e7a5727b2fcdd5def3e3822e0cf72","message":"fix shlex usage","stats":{"files_changed":1,"insertions":3,"deletions":2,"files":["jc/cli.py"],"file_stats":[{"name":"jc/cli.py","lines_changed":5}]}},{"commit":"bf8811e03e2a5b736f4c084f42400fcde400ff3f","message":"add comments","stats":{"files_changed":1,"insertions":6,"deletions":3,"files":["jc/cli.py"],"file_stats":[{"name":"jc/cli.py","lines_changed":9}]}},{"commit":"c8b502c571d3081ca3086e349a426ca252a3bb84","message":"remove unnecessary join and add comments","stats":{"files_changed":1,"insertions":4,"deletions":2,"files":["jc/cli.py"],"file_stats":[{"name":"jc/cli.py","lines_changed":6}]}},{"commit":"81c11a975c6ee66a1f83350df8b065a6b07dcc9c","message":"added docstrings","stats":{"files_changed":1,"insertions":3,"deletions":0,"files":["jc/cli.py"],"file_stats":[{"name":"jc/cli.py","lines_changed":3}]}},{"commit":"0d370eb403ab4d9ed11e36776efc08bdd3505c1a","message":"doc update","stats":{"files_changed":1,"insertions":1,"deletions":1,"files":["jc/cli.py"],"file_stats":[{"name":"jc/cli.py","lines_changed":2}]}},{"commit":"7492c3f1e312cdb0c58c2077db0d60d2cab1e58f","message":"changelog update","stats":{"files_changed":1,"insertions":1,"deletions":1,"files":["changelog.txt"],"file_stats":[{"name":"changelog.txt","lines_changed":2}]}},{"commit":"515a8a84b79c9bf6f3001d3c52faa82a6709b8d1","message":"add \"command\" to description","stats":{"files_changed":33,"insertions":33,"deletions":33,"files":["jc/parsers/arp.py","jc/parsers/crontab.py","jc/parsers/df.py","jc/parsers/dig.py","jc/parsers/du.py","jc/parsers/env.py","jc/parsers/foo.py","jc/parsers/free.py","jc/parsers/fstab.py","jc/parsers/history.py","jc/parsers/id.py","jc/parsers/ifconfig.py","jc/parsers/iptables.py","jc/parsers/jobs.py","jc/parsers/ls.py","jc/parsers/lsblk.py","jc/parsers/lsmod.py","jc/parsers/lsof.py","jc/parsers/mount.py","jc/parsers/netstat.py","jc/parsers/pip_list.py","jc/parsers/pip_show.py","jc/parsers/ps.py","jc/parsers/route.py","jc/parsers/ss.py","jc/parsers/stat.py","jc/parsers/systemctl.py","jc/parsers/systemctl_lj.py","jc/parsers/systemctl_ls.py","jc/parsers/systemctl_luf.py","jc/parsers/uname.py","jc/parsers/uptime.py","jc/parsers/w.py"],"file_stats":[{"name":"jc/parsers/arp.py","lines_changed":2},{"name":"jc/parsers/crontab.py","lines_changed":2},{"name":"jc/parsers/df.py","lines_changed":2},{"name":"jc/parsers/dig.py","lines_changed":2},{"name":"jc/parsers/du.py","lines_changed":2},{"name":"jc/parsers/env.py","lines_changed":2},{"name":"jc/parsers/foo.py","lines_changed":2},{"name":"jc/parsers/free.py","lines_changed":2},{"name":"jc/parsers/fstab.py","lines_changed":2},{"name":"jc/parsers/history.py","lines_changed":2},{"name":"jc/parsers/id.py","lines_changed":2},{"name":"jc/parsers/ifconfig.py","lines_changed":2},{"name":"jc/parsers/iptables.py","lines_changed":2},{"name":"jc/parsers/jobs.py","lines_changed":2},{"name":"jc/parsers/ls.py","lines_changed":2},{"name":"jc/parsers/lsblk.py","lines_changed":2},{"name":"jc/parsers/lsmod.py","lines_changed":2},{"name":"jc/parsers/lsof.py","lines_changed":2},{"name":"jc/parsers/mount.py","lines_changed":2},{"name":"jc/parsers/netstat.py","lines_changed":2},{"name":"jc/parsers/pip_list.py","lines_changed":2},{"name":"jc/parsers/pip_show.py","lines_changed":2},{"name":"jc/parsers/ps.py","lines_changed":2},{"name":"jc/parsers/route.py","lines_changed":2},{"name":"jc/parsers/ss.py","lines_changed":2},{"name":"jc/parsers/stat.py","lines_changed":2},{"name":"jc/parsers/systemctl.py","lines_changed":2},{"name":"jc/parsers/systemctl_lj.py","lines_changed":2},{"name":"jc/parsers/systemctl_ls.py","lines_changed":2},{"name":"jc/parsers/systemctl_luf.py","lines_changed":2},{"name":"jc/parsers/uname.py","lines_changed":2},{"name":"jc/parsers/uptime.py","lines_changed":2},{"name":"jc/parsers/w.py","lines_changed":2}]}},{"commit":"dd6680efb2b15bb8ed676016aae1c65193dfe147","message":"allow condensed options (-prdq is equivalent to -p -r -d -q)","stats":{"files_changed":2,"insertions":29,"deletions":14,"files":["changelog.txt","jc/cli.py"],"file_stats":[{"name":"changelog.txt","lines_changed":3},{"name":"jc/cli.py","lines_changed":40}]}},{"commit":"a7158373cd225685f5c398fa36b8d5208e20521c","message":"comment update","stats":{"files_changed":1,"insertions":1,"deletions":1,"files":["jc/cli.py"],"file_stats":[{"name":"jc/cli.py","lines_changed":2}]}},{"commit":"6d50ec71997cac9c898737de93b8a945f0351e53","message":"add try/except to fix bare jc command condition","stats":{"files_changed":1,"insertions":9,"deletions":6,"files":["jc/cli.py"],"file_stats":[{"name":"jc/cli.py","lines_changed":15}]}},{"commit":"95dbf98e8e03486f74d986683f52699f4f9c9577","message":"allow options in magic syntax","stats":{"files_changed":1,"insertions":26,"deletions":6,"files":["jc/cli.py"],"file_stats":[{"name":"jc/cli.py","lines_changed":32}]}},{"commit":"d49323e4ebf2a8aebd1d8ea65ef0854ee8bcb29f","message":"add magic_commands list to info","stats":{"files_changed":33,"insertions":33,"deletions":0,"files":["jc/parsers/arp.py","jc/parsers/crontab.py","jc/parsers/df.py","jc/parsers/dig.py","jc/parsers/du.py","jc/parsers/env.py","jc/parsers/foo.py","jc/parsers/free.py","jc/parsers/fstab.py","jc/parsers/history.py","jc/parsers/id.py","jc/parsers/ifconfig.py","jc/parsers/iptables.py","jc/parsers/jobs.py","jc/parsers/ls.py","jc/parsers/lsblk.py","jc/parsers/lsmod.py","jc/parsers/lsof.py","jc/parsers/mount.py","jc/parsers/netstat.py","jc/parsers/pip_list.py","jc/parsers/pip_show.py","jc/parsers/ps.py","jc/parsers/route.py","jc/parsers/ss.py","jc/parsers/stat.py","jc/parsers/systemctl.py","jc/parsers/systemctl_lj.py","jc/parsers/systemctl_ls.py","jc/parsers/systemctl_luf.py","jc/parsers/uname.py","jc/parsers/uptime.py","jc/parsers/w.py"],"file_stats":[{"name":"jc/parsers/arp.py","lines_changed":1},{"name":"jc/parsers/crontab.py","lines_changed":1},{"name":"jc/parsers/df.py","lines_changed":1},{"name":"jc/parsers/dig.py","lines_changed":1},{"name":"jc/parsers/du.py","lines_changed":1},{"name":"jc/parsers/env.py","lines_changed":1},{"name":"jc/parsers/foo.py","lines_changed":1},{"name":"jc/parsers/free.py","lines_changed":1},{"name":"jc/parsers/fstab.py","lines_changed":1},{"name":"jc/parsers/history.py","lines_changed":1},{"name":"jc/parsers/id.py","lines_changed":1},{"name":"jc/parsers/ifconfig.py","lines_changed":1},{"name":"jc/parsers/iptables.py","lines_changed":1},{"name":"jc/parsers/jobs.py","lines_changed":1},{"name":"jc/parsers/ls.py","lines_changed":1},{"name":"jc/parsers/lsblk.py","lines_changed":1},{"name":"jc/parsers/lsmod.py","lines_changed":1},{"name":"jc/parsers/lsof.py","lines_changed":1},{"name":"jc/parsers/mount.py","lines_changed":1},{"name":"jc/parsers/netstat.py","lines_changed":1},{"name":"jc/parsers/pip_list.py","lines_changed":1},{"name":"jc/parsers/pip_show.py","lines_changed":1},{"name":"jc/parsers/ps.py","lines_changed":1},{"name":"jc/parsers/route.py","lines_changed":1},{"name":"jc/parsers/ss.py","lines_changed":1},{"name":"jc/parsers/stat.py","lines_changed":1},{"name":"jc/parsers/systemctl.py","lines_changed":1},{"name":"jc/parsers/systemctl_lj.py","lines_changed":1},{"name":"jc/parsers/systemctl_ls.py","lines_changed":1},{"name":"jc/parsers/systemctl_luf.py","lines_changed":1},{"name":"jc/parsers/uname.py","lines_changed":1},{"name":"jc/parsers/uptime.py","lines_changed":1},{"name":"jc/parsers/w.py","lines_changed":1}]}},{"commit":"08c1e2aec9d6bb68653dc12ba2272535fb7cef09","message":"add magic syntax","stats":{"files_changed":1,"insertions":3,"deletions":0,"files":["changelog.txt"],"file_stats":[{"name":"changelog.txt","lines_changed":3}]}},{"commit":"a2c137df2e6d3b133df5df0bb3f9b1ca69990557","message":"better magic command syntax logic using introspection information from parser modules","stats":{"files_changed":2,"insertions":66,"deletions":299,"files":["jc/cli.py","jc/cli.py.old"],"file_stats":[{"name":"jc/cli.py","lines_changed":135},{"name":"jc/cli.py.old","lines_changed":230}]}},{"commit":"fe27dcdb8f72b5a288f978b87be2eb930099543e","message":"proof of concept for magic syntax (e.g. jc ls -al)","stats":{"files_changed":2,"insertions":319,"deletions":45,"files":["jc/cli.py","jc/cli.py.old"],"file_stats":[{"name":"jc/cli.py","lines_changed":134},{"name":"jc/cli.py.old","lines_changed":230}]}},{"commit":"028e136161ac15f588845f87907b4565a6ee7be2","message":"bump to 1.7.2: add test fixtures to package","stats":{"files_changed":4,"insertions":7,"deletions":2,"files":["MANIFEST.in","changelog.txt","jc/cli.py","setup.py"],"file_stats":[{"name":"MANIFEST.in","lines_changed":1},{"name":"changelog.txt","lines_changed":3},{"name":"jc/cli.py","lines_changed":2},{"name":"setup.py","lines_changed":3}]}},{"commit":"9a85a0a4d504447b32fb622bb17cebc5e47f687f","message":"fix doc","stats":{"files_changed":2,"insertions":2,"deletions":2,"files":["docs/parsers/crontab_u.md","jc/parsers/crontab_u.py"],"file_stats":[{"name":"docs/parsers/crontab_u.md","lines_changed":2},{"name":"jc/parsers/crontab_u.py","lines_changed":2}]}},{"commit":"3a1cbc4d5063344c3e3a4bf510d651a36beedfb3","message":"move info class to top","stats":{"files_changed":1,"insertions":14,"deletions":14,"files":["jc/cli.py"],"file_stats":[{"name":"jc/cli.py","lines_changed":28}]}},{"commit":"77d334f7f386f79ec0571325500054fdab207f31","message":"Merge pull request #19 from kellyjonbrazil/dev-1.7.1"},{"commit":"53cdf863acc72dbdb671773e30277f42e9eadc0e","message":"changelog update","stats":{"files_changed":1,"insertions":2,"deletions":2,"files":["changelog.txt"],"file_stats":[{"name":"changelog.txt","lines_changed":4}]}},{"commit":"7b7e7fe0fe92edef1e559bd7ae8272530d7ed5c8","message":"changelog update","stats":{"files_changed":1,"insertions":2,"deletions":0,"files":["changelog.txt"],"file_stats":[{"name":"changelog.txt","lines_changed":2}]}},{"commit":"0c03132847a3d2bcbdb0b743e1472865916cced4","message":"fix error codes using sys.exit()","stats":{"files_changed":1,"insertions":4,"deletions":4,"files":["jc/cli.py"],"file_stats":[{"name":"jc/cli.py","lines_changed":8}]}},{"commit":"3b81f7e2a1381958b33962d4531f3fa223c6a83e","message":"exit code on ctrl-c exit","stats":{"files_changed":1,"insertions":1,"deletions":1,"files":["jc/cli.py"],"file_stats":[{"name":"jc/cli.py","lines_changed":2}]}},{"commit":"3d76437b435660e92633c604c4ad32ee0500a28b","message":"doc fix","stats":{"files_changed":4,"insertions":4,"deletions":4,"files":["docs/parsers/ini.md","docs/parsers/xml.md","jc/parsers/ini.py","jc/parsers/xml.py"],"file_stats":[{"name":"docs/parsers/ini.md","lines_changed":2},{"name":"docs/parsers/xml.md","lines_changed":2},{"name":"jc/parsers/ini.py","lines_changed":2},{"name":"jc/parsers/xml.py","lines_changed":2}]}},{"commit":"4bc54c78cea48682ed0432ea56460a26a0e52f83","message":"fix compatibility list","stats":{"files_changed":4,"insertions":7,"deletions":7,"files":["docs/parsers/du.md","docs/parsers/history.md","jc/parsers/du.py","jc/parsers/history.py"],"file_stats":[{"name":"docs/parsers/du.md","lines_changed":2},{"name":"docs/parsers/history.md","lines_changed":2},{"name":"jc/parsers/du.py","lines_changed":6},{"name":"jc/parsers/history.py","lines_changed":4}]}},{"commit":"3d303a96b9f6d582b1e99a632da539c3bee4df7f","message":"crontab bug fix and tests","stats":{"files_changed":5,"insertions":16,"deletions":2,"files":["tests/fixtures/centos-7.7/crontab-u.json","tests/fixtures/centos-7.7/{crontab2.out => crontab-u.out}","tests/fixtures/centos-7.7/crontab.json","tests/fixtures/ubuntu-18.04/crontab-u.json","tests/test_crontab_u.py"],"file_stats":[{"name":"tests/fixtures/centos-7.7/crontab-u.json","lines_changed":1},{"name":"tests/fixtures/centos-7.7/{crontab2.out => crontab-u.out}","lines_changed":1},{"name":"tests/fixtures/centos-7.7/crontab.json","lines_changed":2},{"name":"tests/fixtures/ubuntu-18.04/crontab-u.json","lines_changed":2},{"name":"tests/test_crontab_u.py","lines_changed":12}]}},{"commit":"33c99d031d18e52a8ca85dfc1a8cba0acebfc3bb","message":"fix line clobbering bug","stats":{"files_changed":1,"insertions":1,"deletions":1,"files":["jc/parsers/crontab.py"],"file_stats":[{"name":"jc/parsers/crontab.py","lines_changed":2}]}},{"commit":"caf7e9f69a22f3c9b3d4624fd2238d6e54d932ac","message":"fix line clobbering bug and add user field to shortcuts","stats":{"files_changed":1,"insertions":4,"deletions":2,"files":["jc/parsers/crontab_u.py"],"file_stats":[{"name":"jc/parsers/crontab_u.py","lines_changed":6}]}},{"commit":"9449f1f5d5e7bc075549549758af5cc3a6c4524f","message":"crontab bugfix: inserting header row was clobbering the first data row","stats":{"files_changed":4,"insertions":9,"deletions":3,"files":["changelog.txt","jc/parsers/crontab.py","jc/parsers/crontab_u.py","tests/fixtures/centos-7.7/crontab2.out"],"file_stats":[{"name":"changelog.txt","lines_changed":1},{"name":"jc/parsers/crontab.py","lines_changed":4},{"name":"jc/parsers/crontab_u.py","lines_changed":2},{"name":"tests/fixtures/centos-7.7/crontab2.out","lines_changed":5}]}},{"commit":"6bad164b5e2a5b7c7ce82c69b6c091fc079ab2fa","message":"simplify by removing unnecessary getattr calls","stats":{"files_changed":1,"insertions":7,"deletions":9,"files":["jc/cli.py"],"file_stats":[{"name":"jc/cli.py","lines_changed":16}]}},{"commit":"bb5ba7ddb146821db2efe095b6de5ae5b72bb335","message":"add indent variable to helptext","stats":{"files_changed":1,"insertions":4,"deletions":3,"files":["jc/cli.py"],"file_stats":[{"name":"jc/cli.py","lines_changed":7}]}},{"commit":"8b2e01d5404649e8f94c81ca3b5fa05fe8962220","message":"doc update","stats":{"files_changed":1,"insertions":4,"deletions":4,"files":["jc/cli.py"],"file_stats":[{"name":"jc/cli.py","lines_changed":8}]}},{"commit":"ff1159b1deb9b870382a6066166961902679b569","message":"exit codes on error","stats":{"files_changed":1,"insertions":2,"deletions":2,"files":["jc/cli.py"],"file_stats":[{"name":"jc/cli.py","lines_changed":4}]}},{"commit":"a2fd3202a0a3df336792f167c546ea3e53ea2332","message":"description formatting change","stats":{"files_changed":2,"insertions":2,"deletions":2,"files":["jc/parsers/pip_list.py","jc/parsers/pip_show.py"],"file_stats":[{"name":"jc/parsers/pip_list.py","lines_changed":2},{"name":"jc/parsers/pip_show.py","lines_changed":2}]}},{"commit":"7b53715b91787a8885d61ddc0079c7ee8f9348a8","message":"change description","stats":{"files_changed":1,"insertions":1,"deletions":1,"files":["jc/parsers/crontab_u.py"],"file_stats":[{"name":"jc/parsers/crontab_u.py","lines_changed":2}]}},{"commit":"e05fc0a5107b348af14ff4bea39d274939fab7dd","message":"change padding of helptext","stats":{"files_changed":1,"insertions":8,"deletions":8,"files":["jc/cli.py"],"file_stats":[{"name":"jc/cli.py","lines_changed":16}]}},{"commit":"43604c33f654b8c19e8cce387ebbf31bd598b73b","message":"doc update","stats":{"files_changed":1,"insertions":2,"deletions":1,"files":["changelog.txt"],"file_stats":[{"name":"changelog.txt","lines_changed":3}]}},{"commit":"eb67c484ff2a9530b434cd6a90c160f6936e1de7","message":"add crontab-u to parsers list","stats":{"files_changed":1,"insertions":2,"deletions":1,"files":["README.md"],"file_stats":[{"name":"README.md","lines_changed":3}]}},{"commit":"a7b7bdd46781d07e6e70d74a41a3944855fde5fc","message":"load parser modules 'just in time' so we don't need to load all modules at startup","stats":{"files_changed":1,"insertions":94,"deletions":92,"files":["jc/cli.py"],"file_stats":[{"name":"jc/cli.py","lines_changed":186}]}},{"commit":"ab06989a18faf5378f1e73c7016ea02e1218ff9c","message":"description updates","stats":{"files_changed":1,"insertions":5,"deletions":5,"files":["README.md"],"file_stats":[{"name":"README.md","lines_changed":10}]}},{"commit":"657b722f947b6a0aa7e52a786e4c84f177e9a5c7","message":"ini to INI","stats":{"files_changed":4,"insertions":8,"deletions":8,"files":["README.md","changelog.txt","docs/parsers/ini.md","jc/parsers/ini.py"],"file_stats":[{"name":"README.md","lines_changed":4},{"name":"changelog.txt","lines_changed":2},{"name":"docs/parsers/ini.md","lines_changed":4},{"name":"jc/parsers/ini.py","lines_changed":6}]}},{"commit":"dd2aecad2787186b3962723086bb7e13eff4874f","message":"description update","stats":{"files_changed":1,"insertions":1,"deletions":1,"files":["setup.py"],"file_stats":[{"name":"setup.py","lines_changed":2}]}},{"commit":"c82c5c5c648384eb5a54205ba8590624a3ab4375","message":"changelog update","stats":{"files_changed":1,"insertions":2,"deletions":4,"files":["changelog.txt"],"file_stats":[{"name":"changelog.txt","lines_changed":6}]}},{"commit":"a1761cd68f91e2668d8d7e2fa7774f6496408be6","message":"id tests","stats":{"files_changed":3,"insertions":42,"deletions":0,"files":["tests/fixtures/centos-7.7/id.json","tests/fixtures/osx-10.14.6/id.json","tests/test_id.py"],"file_stats":[{"name":"tests/fixtures/centos-7.7/id.json","lines_changed":1},{"name":"tests/fixtures/osx-10.14.6/id.json","lines_changed":1},{"name":"tests/test_id.py","lines_changed":40}]}},{"commit":"d618a7f583629bb7a7fc0854e7349cab07e3e003","message":"doc update","stats":{"files_changed":4,"insertions":143,"deletions":9,"files":["README.md","docgen.sh","docs/parsers/id.md","jc/parsers/id.py"],"file_stats":[{"name":"README.md","lines_changed":6},{"name":"docgen.sh","lines_changed":1},{"name":"docs/parsers/id.md","lines_changed":133},{"name":"jc/parsers/id.py","lines_changed":12}]}},{"commit":"831a42f66096f5efbbf0f6882970c328120f9c9a","message":"id formatting","stats":{"files_changed":1,"insertions":24,"deletions":24,"files":["README.md"],"file_stats":[{"name":"README.md","lines_changed":48}]}},{"commit":"3b36022e5a1056a28a83494b1ab8fab209399c2d","message":"add id parser","stats":{"files_changed":5,"insertions":250,"deletions":1,"files":["README.md","jc/cli.py","jc/parsers/id.py","tests/fixtures/centos-7.7/id.out","tests/fixtures/osx-10.14.6/id.out"],"file_stats":[{"name":"README.md","lines_changed":33},{"name":"jc/cli.py","lines_changed":2},{"name":"jc/parsers/id.py","lines_changed":214},{"name":"tests/fixtures/centos-7.7/id.out","lines_changed":1},{"name":"tests/fixtures/osx-10.14.6/id.out","lines_changed":1}]}},{"commit":"d01dfa25f10f82cd201ae7b4c9cc18313773f8d3","message":"changelog updates","stats":{"files_changed":1,"insertions":4,"deletions":1,"files":["changelog.txt"],"file_stats":[{"name":"changelog.txt","lines_changed":5}]}},{"commit":"395a99037b4816eb800b289f90372a9b8d7d36cc","message":"crontab-u and history doc updates","stats":{"files_changed":3,"insertions":89,"deletions":13,"files":["README.md","docs/parsers/history.md","jc/parsers/history.py"],"file_stats":[{"name":"README.md","lines_changed":84},{"name":"docs/parsers/history.md","lines_changed":10},{"name":"jc/parsers/history.py","lines_changed":8}]}},{"commit":"025986c51d2d4869b17de63a7dd96efa2988e3c5","message":"change history 'line' to integer","stats":{"files_changed":3,"insertions":13,"deletions":3,"files":["jc/parsers/history.py","tests/fixtures/centos-7.7/history.json","tests/fixtures/ubuntu-18.04/history.json"],"file_stats":[{"name":"jc/parsers/history.py","lines_changed":12},{"name":"tests/fixtures/centos-7.7/history.json","lines_changed":2},{"name":"tests/fixtures/ubuntu-18.04/history.json","lines_changed":2}]}},{"commit":"c56b83093ff05f55ef4643c1731cff61d4b9e8ce","message":"doc update","stats":{"files_changed":3,"insertions":202,"deletions":2,"files":["docgen.sh","docs/parsers/crontab.md","docs/parsers/crontab_u.md"],"file_stats":[{"name":"docgen.sh","lines_changed":1},{"name":"docs/parsers/crontab.md","lines_changed":4},{"name":"docs/parsers/crontab_u.md","lines_changed":199}]}},{"commit":"7c712a4133abd843d4da926e4c8d548abd1d6fa3","message":"doc update","stats":{"files_changed":1,"insertions":52,"deletions":50,"files":["jc/parsers/crontab_u.py"],"file_stats":[{"name":"jc/parsers/crontab_u.py","lines_changed":102}]}},{"commit":"9a0cfe6dfa4888f435d35bd2d35126d031a556d0","message":"minor formatting","stats":{"files_changed":1,"insertions":2,"deletions":2,"files":["jc/parsers/crontab.py"],"file_stats":[{"name":"jc/parsers/crontab.py","lines_changed":4}]}},{"commit":"a116cdbcec1b27192dd0f9f4707629353edb3caf","message":"tests for crontab-u","stats":{"files_changed":5,"insertions":29,"deletions":13,"files":["tests/fixtures/ubuntu-18.04/crontab-u.json",".../ubuntu-18.04/{crontab.out => crontab-u.out}","tests/fixtures/ubuntu-18.04/crontab.json","tests/test_crontab.py","tests/test_crontab_u.py"],"file_stats":[{"name":"tests/fixtures/ubuntu-18.04/crontab-u.json","lines_changed":1},{"name":".../ubuntu-18.04/{crontab.out => crontab-u.out}","lines_changed":0},{"name":"tests/fixtures/ubuntu-18.04/crontab.json","lines_changed":1},{"name":"tests/test_crontab.py","lines_changed":12},{"name":"tests/test_crontab_u.py","lines_changed":28}]}},{"commit":"f2d616c98e049cdac5d667e63723f92110419a1b","message":"add crontab with user parser","stats":{"files_changed":3,"insertions":272,"deletions":0,"files":["changelog.txt","jc/cli.py","jc/parsers/crontab_u.py"],"file_stats":[{"name":"changelog.txt","lines_changed":1},{"name":"jc/cli.py","lines_changed":2},{"name":"jc/parsers/crontab_u.py","lines_changed":269}]}},{"commit":"42cbd1777dbacc614d75f67f3f9156f72be46532","message":"add xml and yaml tests","stats":{"files_changed":2,"insertions":80,"deletions":0,"files":["tests/test_xml.py","tests/test_yaml.py"],"file_stats":[{"name":"tests/test_xml.py","lines_changed":40},{"name":"tests/test_yaml.py","lines_changed":40}]}},{"commit":"ebf375aac0473249cfd212068f6e6e33cc42449a","message":"add ini tests","stats":{"files_changed":1,"insertions":40,"deletions":0,"files":["tests/test_ini.py"],"file_stats":[{"name":"tests/test_ini.py","lines_changed":40}]}},{"commit":"1f9050267eeb870c4c0f50000fc32985c4d8535b","message":"add ini, xml, and yaml test files","stats":{"files_changed":12,"insertions":586,"deletions":0,"files":["tests/fixtures/generic/ini-iptelserver.ini","tests/fixtures/generic/ini-iptelserver.json","tests/fixtures/generic/ini-test.ini","tests/fixtures/generic/ini-test.json","tests/fixtures/generic/xml-cd_catalog.json","tests/fixtures/generic/xml-cd_catalog.xml","tests/fixtures/generic/xml-foodmenu.json","tests/fixtures/generic/xml-foodmenu.xml","tests/fixtures/generic/yaml-istio-sc.json","tests/fixtures/generic/yaml-istio-sc.yaml","tests/fixtures/generic/yaml-istio-sidecar.json","tests/fixtures/generic/yaml-istio-sidecar.yaml"],"file_stats":[{"name":"tests/fixtures/generic/ini-iptelserver.ini","lines_changed":133},{"name":"tests/fixtures/generic/ini-iptelserver.json","lines_changed":1},{"name":"tests/fixtures/generic/ini-test.ini","lines_changed":12},{"name":"tests/fixtures/generic/ini-test.json","lines_changed":1},{"name":"tests/fixtures/generic/xml-cd_catalog.json","lines_changed":1},{"name":"tests/fixtures/generic/xml-cd_catalog.xml","lines_changed":211},{"name":"tests/fixtures/generic/xml-foodmenu.json","lines_changed":1},{"name":"tests/fixtures/generic/xml-foodmenu.xml","lines_changed":33},{"name":"tests/fixtures/generic/yaml-istio-sc.json","lines_changed":1},{"name":"tests/fixtures/generic/yaml-istio-sc.yaml","lines_changed":17},{"name":"tests/fixtures/generic/yaml-istio-sidecar.json","lines_changed":1},{"name":"tests/fixtures/generic/yaml-istio-sidecar.yaml","lines_changed":174}]}},{"commit":"d7f9707a1521719ce051140b1a0b4ced7c5114c9","message":"minor formatting","stats":{"files_changed":2,"insertions":2,"deletions":2,"files":["jc/parsers/ini.py","jc/parsers/yaml.py"],"file_stats":[{"name":"jc/parsers/ini.py","lines_changed":2},{"name":"jc/parsers/yaml.py","lines_changed":2}]}},{"commit":"ab589ee3ed09b9d5e09d8c046f3a64cd2bd14c98","message":"add __version__ variable","stats":{"files_changed":1,"insertions":3,"deletions":0,"files":["jc/cli.py"],"file_stats":[{"name":"jc/cli.py","lines_changed":3}]}},{"commit":"c84ec0361fc4c877c698378b28ff9e8b502793b0","message":"xml example update","stats":{"files_changed":4,"insertions":105,"deletions":3,"files":["README.md","docgen.sh","docs/parsers/xml.md","jc/parsers/xml.py"],"file_stats":[{"name":"README.md","lines_changed":3},{"name":"docgen.sh","lines_changed":1},{"name":"docs/parsers/xml.md","lines_changed":99},{"name":"jc/parsers/xml.py","lines_changed":5}]}},{"commit":"47d2f8968a8a9b68fc9fff45985f5e69f1a5cc40","message":"doc update","stats":{"files_changed":2,"insertions":2,"deletions":0,"files":["README.md","changelog.txt"],"file_stats":[{"name":"README.md","lines_changed":1},{"name":"changelog.txt","lines_changed":1}]}},{"commit":"019c480bcce7fe3821b75906fc673ce7bb1ffadc","message":"update acknowledgments","stats":{"files_changed":1,"insertions":2,"deletions":1,"files":["README.md"],"file_stats":[{"name":"README.md","lines_changed":3}]}},{"commit":"547c6d3d5956984d3c4fb5c2a1b76a595752b467","message":"add xml parser","stats":{"files_changed":5,"insertions":172,"deletions":2,"files":["README.md","changelog.txt","jc/cli.py","jc/parsers/xml.py","setup.py"],"file_stats":[{"name":"README.md","lines_changed":46},{"name":"changelog.txt","lines_changed":3},{"name":"jc/cli.py","lines_changed":3},{"name":"jc/parsers/xml.py","lines_changed":119},{"name":"setup.py","lines_changed":3}]}},{"commit":"b5ebf8b76afcd0e0190994048fe1f5b53f654451","message":"add ruamel.yaml ack","stats":{"files_changed":1,"insertions":1,"deletions":0,"files":["README.md"],"file_stats":[{"name":"README.md","lines_changed":1}]}},{"commit":"c690e328f23a69f592dfaaa949b74ba2190ad376","message":"add examples","stats":{"files_changed":2,"insertions":102,"deletions":14,"files":["docs/parsers/yaml.md","jc/parsers/yaml.py"],"file_stats":[{"name":"docs/parsers/yaml.md","lines_changed":58},{"name":"jc/parsers/yaml.py","lines_changed":58}]}},{"commit":"cbb92c1a9517234806f1c54398a69645b6f43669","message":"add ini and yaml","stats":{"files_changed":1,"insertions":94,"deletions":0,"files":["README.md"],"file_stats":[{"name":"README.md","lines_changed":94}]}},{"commit":"beb41997c9b3797e73a678ec1bcddcfb83b5ef0d","message":"doc update","stats":{"files_changed":3,"insertions":91,"deletions":2,"files":["docgen.sh","docs/parsers/ini.md","jc/parsers/ini.py"],"file_stats":[{"name":"docgen.sh","lines_changed":1},{"name":"docs/parsers/ini.md","lines_changed":87},{"name":"jc/parsers/ini.py","lines_changed":5}]}},{"commit":"755a6faf1110f150fe2261b81439b7d17a9b424e","message":"clean up multi-document support","stats":{"files_changed":1,"insertions":4,"deletions":8,"files":["jc/parsers/yaml.py"],"file_stats":[{"name":"jc/parsers/yaml.py","lines_changed":12}]}},{"commit":"021f8350a31a49ecc539f02576303600b222b49d","message":"update doc","stats":{"files_changed":1,"insertions":3,"deletions":1,"files":["changelog.txt"],"file_stats":[{"name":"changelog.txt","lines_changed":4}]}},{"commit":"76583dcd2f5ef32e58ca87149154563b07e061cb","message":"add ini file parser","stats":{"files_changed":2,"insertions":113,"deletions":0,"files":["jc/cli.py","jc/parsers/ini.py"],"file_stats":[{"name":"jc/cli.py","lines_changed":2},{"name":"jc/parsers/ini.py","lines_changed":111}]}},{"commit":"bf033239a706c42be3d7508c58a51c542f8a69b0","message":"doc update","stats":{"files_changed":2,"insertions":82,"deletions":7,"files":["docs/parsers/yaml.md","jc/parsers/yaml.py"],"file_stats":[{"name":"docs/parsers/yaml.md","lines_changed":69},{"name":"jc/parsers/yaml.py","lines_changed":20}]}},{"commit":"eb37fccd37fd625f701a14b6cfcf30e9f0bbff4d","message":"doc update","stats":{"files_changed":1,"insertions":6,"deletions":5,"files":["jc/parsers/yaml.py"],"file_stats":[{"name":"jc/parsers/yaml.py","lines_changed":11}]}},{"commit":"d04ad453319fe45e302da87f970d2ac0806fae1a","message":"setup for 1.7.1","stats":{"files_changed":3,"insertions":7,"deletions":2,"files":["changelog.txt","docgen.sh","setup.py"],"file_stats":[{"name":"changelog.txt","lines_changed":3},{"name":"docgen.sh","lines_changed":1},{"name":"setup.py","lines_changed":5}]}},{"commit":"db157b8ca7f7fa935676bafeaafdfd9818a89e6a","message":"add yaml file parser","stats":{"files_changed":2,"insertions":94,"deletions":2,"files":["jc/cli.py","jc/parsers/yaml.py"],"file_stats":[{"name":"jc/cli.py","lines_changed":6},{"name":"jc/parsers/yaml.py","lines_changed":90}]}},{"commit":"68f277bb2081eb2cba14ffe7f0ee1ee0a982335b","message":"add __version__","stats":{"files_changed":33,"insertions":99,"deletions":0,"files":["jc/parsers/arp.py","jc/parsers/crontab.py","jc/parsers/df.py","jc/parsers/dig.py","jc/parsers/du.py","jc/parsers/env.py","jc/parsers/foo.py","jc/parsers/free.py","jc/parsers/fstab.py","jc/parsers/history.py","jc/parsers/hosts.py","jc/parsers/ifconfig.py","jc/parsers/iptables.py","jc/parsers/jobs.py","jc/parsers/ls.py","jc/parsers/lsblk.py","jc/parsers/lsmod.py","jc/parsers/lsof.py","jc/parsers/mount.py","jc/parsers/netstat.py","jc/parsers/pip_list.py","jc/parsers/pip_show.py","jc/parsers/ps.py","jc/parsers/route.py","jc/parsers/ss.py","jc/parsers/stat.py","jc/parsers/systemctl.py","jc/parsers/systemctl_lj.py","jc/parsers/systemctl_ls.py","jc/parsers/systemctl_luf.py","jc/parsers/uname.py","jc/parsers/uptime.py","jc/parsers/w.py"],"file_stats":[{"name":"jc/parsers/arp.py","lines_changed":3},{"name":"jc/parsers/crontab.py","lines_changed":3},{"name":"jc/parsers/df.py","lines_changed":3},{"name":"jc/parsers/dig.py","lines_changed":3},{"name":"jc/parsers/du.py","lines_changed":3},{"name":"jc/parsers/env.py","lines_changed":3},{"name":"jc/parsers/foo.py","lines_changed":3},{"name":"jc/parsers/free.py","lines_changed":3},{"name":"jc/parsers/fstab.py","lines_changed":3},{"name":"jc/parsers/history.py","lines_changed":3},{"name":"jc/parsers/hosts.py","lines_changed":3},{"name":"jc/parsers/ifconfig.py","lines_changed":3},{"name":"jc/parsers/iptables.py","lines_changed":3},{"name":"jc/parsers/jobs.py","lines_changed":3},{"name":"jc/parsers/ls.py","lines_changed":3},{"name":"jc/parsers/lsblk.py","lines_changed":3},{"name":"jc/parsers/lsmod.py","lines_changed":3},{"name":"jc/parsers/lsof.py","lines_changed":3},{"name":"jc/parsers/mount.py","lines_changed":3},{"name":"jc/parsers/netstat.py","lines_changed":3},{"name":"jc/parsers/pip_list.py","lines_changed":3},{"name":"jc/parsers/pip_show.py","lines_changed":3},{"name":"jc/parsers/ps.py","lines_changed":3},{"name":"jc/parsers/route.py","lines_changed":3},{"name":"jc/parsers/ss.py","lines_changed":3},{"name":"jc/parsers/stat.py","lines_changed":3},{"name":"jc/parsers/systemctl.py","lines_changed":3},{"name":"jc/parsers/systemctl_lj.py","lines_changed":3},{"name":"jc/parsers/systemctl_ls.py","lines_changed":3},{"name":"jc/parsers/systemctl_luf.py","lines_changed":3},{"name":"jc/parsers/uname.py","lines_changed":3},{"name":"jc/parsers/uptime.py","lines_changed":3},{"name":"jc/parsers/w.py","lines_changed":3}]}},{"commit":"4de8f42664379570392552796e34324abb39fdc2","message":"Merge pull request #17 from kellyjonbrazil/dev"},{"commit":"4f118559356edc1da866e1bec80830e7a75a0b26","message":"update version info","stats":{"files_changed":1,"insertions":4,"deletions":1,"files":["changelog.txt"],"file_stats":[{"name":"changelog.txt","lines_changed":5}]}},{"commit":"2b9a5fcc32f85295faa55410efcaf142c42bd167","message":"update version","stats":{"files_changed":1,"insertions":2,"deletions":2,"files":["setup.py"],"file_stats":[{"name":"setup.py","lines_changed":4}]}},{"commit":"224948d1f23e01b7cd968820529579792f862f0a","message":"pip list and pip show tests","stats":{"files_changed":21,"insertions":428,"deletions":0,"files":["tests/fixtures/centos-7.7/pip-list.json","tests/fixtures/centos-7.7/pip-list.out","tests/fixtures/centos-7.7/pip-show.json","tests/fixtures/centos-7.7/pip-show.out","tests/fixtures/create_fixtures.sh","tests/fixtures/osx-10.11.6/pip-list.json","tests/fixtures/osx-10.11.6/pip-list.out","tests/fixtures/osx-10.11.6/pip-show.json","tests/fixtures/osx-10.11.6/pip-show.out","tests/fixtures/osx-10.14.6/pip-list.json","tests/fixtures/osx-10.14.6/pip-list.out","tests/fixtures/osx-10.14.6/pip-show.json","tests/fixtures/osx-10.14.6/pip-show.out","tests/fixtures/ubuntu-18.04/pip-list-legacy.json","tests/fixtures/ubuntu-18.04/pip-list-legacy.out","tests/fixtures/ubuntu-18.04/pip-list.json","tests/fixtures/ubuntu-18.04/pip-list.out","tests/fixtures/ubuntu-18.04/pip-show.json","tests/fixtures/ubuntu-18.04/pip-show.out","tests/test_pip_list.py","tests/test_pip_show.py"],"file_stats":[{"name":"tests/fixtures/centos-7.7/pip-list.json","lines_changed":1},{"name":"tests/fixtures/centos-7.7/pip-list.out","lines_changed":22},{"name":"tests/fixtures/centos-7.7/pip-show.json","lines_changed":1},{"name":"tests/fixtures/centos-7.7/pip-show.out","lines_changed":32},{"name":"tests/fixtures/create_fixtures.sh","lines_changed":2},{"name":"tests/fixtures/osx-10.11.6/pip-list.json","lines_changed":1},{"name":"tests/fixtures/osx-10.11.6/pip-list.out","lines_changed":7},{"name":"tests/fixtures/osx-10.11.6/pip-show.json","lines_changed":1},{"name":"tests/fixtures/osx-10.11.6/pip-show.out","lines_changed":32},{"name":"tests/fixtures/osx-10.14.6/pip-list.json","lines_changed":1},{"name":"tests/fixtures/osx-10.14.6/pip-list.out","lines_changed":7},{"name":"tests/fixtures/osx-10.14.6/pip-show.json","lines_changed":1},{"name":"tests/fixtures/osx-10.14.6/pip-show.out","lines_changed":32},{"name":"tests/fixtures/ubuntu-18.04/pip-list-legacy.json","lines_changed":1},{"name":"tests/fixtures/ubuntu-18.04/pip-list-legacy.out","lines_changed":57},{"name":"tests/fixtures/ubuntu-18.04/pip-list.json","lines_changed":1},{"name":"tests/fixtures/ubuntu-18.04/pip-list.out","lines_changed":59},{"name":"tests/fixtures/ubuntu-18.04/pip-show.json","lines_changed":1},{"name":"tests/fixtures/ubuntu-18.04/pip-show.out","lines_changed":29},{"name":"tests/test_pip_list.py","lines_changed":76},{"name":"tests/test_pip_show.py","lines_changed":64}]}},{"commit":"36f2812d5a7a94c412e098233c026d99d5205b60","message":"add support for legacy output","stats":{"files_changed":1,"insertions":15,"deletions":7,"files":["jc/parsers/pip_list.py"],"file_stats":[{"name":"jc/parsers/pip_list.py","lines_changed":22}]}},{"commit":"be06aa2b31c057c56229e75c7fa70052b83053ee","message":"update parse() Return info","stats":{"files_changed":65,"insertions":70,"deletions":66,"files":["docs/parsers/arp.md","docs/parsers/crontab.md","docs/parsers/df.md","docs/parsers/dig.md","docs/parsers/du.md","docs/parsers/env.md","docs/parsers/free.md","docs/parsers/fstab.md","docs/parsers/history.md","docs/parsers/hosts.md","docs/parsers/ifconfig.md","docs/parsers/iptables.md","docs/parsers/jobs.md","docs/parsers/ls.md","docs/parsers/lsblk.md","docs/parsers/lsmod.md","docs/parsers/lsof.md","docs/parsers/mount.md","docs/parsers/netstat.md","docs/parsers/pip_list.md","docs/parsers/pip_show.md","docs/parsers/ps.md","docs/parsers/route.md","docs/parsers/ss.md","docs/parsers/stat.md","docs/parsers/systemctl.md","docs/parsers/systemctl_lj.md","docs/parsers/systemctl_ls.md","docs/parsers/systemctl_luf.md","docs/parsers/uname.md","docs/parsers/uptime.md","docs/parsers/w.md","jc/parsers/arp.py","jc/parsers/crontab.py","jc/parsers/df.py","jc/parsers/dig.py","jc/parsers/du.py","jc/parsers/env.py","jc/parsers/foo.py","jc/parsers/free.py","jc/parsers/fstab.py","jc/parsers/history.py","jc/parsers/hosts.py","jc/parsers/ifconfig.py","jc/parsers/iptables.py","jc/parsers/jobs.py","jc/parsers/ls.py","jc/parsers/lsblk.py","jc/parsers/lsmod.py","jc/parsers/lsof.py","jc/parsers/mount.py","jc/parsers/netstat.py","jc/parsers/pip_list.py","jc/parsers/pip_show.py","jc/parsers/ps.py","jc/parsers/route.py","jc/parsers/ss.py","jc/parsers/stat.py","jc/parsers/systemctl.py","jc/parsers/systemctl_lj.py","jc/parsers/systemctl_ls.py","jc/parsers/systemctl_luf.py","jc/parsers/uname.py","jc/parsers/uptime.py","jc/parsers/w.py"],"file_stats":[{"name":"docs/parsers/arp.md","lines_changed":2},{"name":"docs/parsers/crontab.md","lines_changed":2},{"name":"docs/parsers/df.md","lines_changed":2},{"name":"docs/parsers/dig.md","lines_changed":2},{"name":"docs/parsers/du.md","lines_changed":2},{"name":"docs/parsers/env.md","lines_changed":3},{"name":"docs/parsers/free.md","lines_changed":2},{"name":"docs/parsers/fstab.md","lines_changed":2},{"name":"docs/parsers/history.md","lines_changed":3},{"name":"docs/parsers/hosts.md","lines_changed":2},{"name":"docs/parsers/ifconfig.md","lines_changed":2},{"name":"docs/parsers/iptables.md","lines_changed":2},{"name":"docs/parsers/jobs.md","lines_changed":2},{"name":"docs/parsers/ls.md","lines_changed":2},{"name":"docs/parsers/lsblk.md","lines_changed":2},{"name":"docs/parsers/lsmod.md","lines_changed":2},{"name":"docs/parsers/lsof.md","lines_changed":2},{"name":"docs/parsers/mount.md","lines_changed":2},{"name":"docs/parsers/netstat.md","lines_changed":2},{"name":"docs/parsers/pip_list.md","lines_changed":2},{"name":"docs/parsers/pip_show.md","lines_changed":2},{"name":"docs/parsers/ps.md","lines_changed":2},{"name":"docs/parsers/route.md","lines_changed":2},{"name":"docs/parsers/ss.md","lines_changed":2},{"name":"docs/parsers/stat.md","lines_changed":2},{"name":"docs/parsers/systemctl.md","lines_changed":2},{"name":"docs/parsers/systemctl_lj.md","lines_changed":2},{"name":"docs/parsers/systemctl_ls.md","lines_changed":2},{"name":"docs/parsers/systemctl_luf.md","lines_changed":2},{"name":"docs/parsers/uname.md","lines_changed":2},{"name":"docs/parsers/uptime.md","lines_changed":2},{"name":"docs/parsers/w.md","lines_changed":2},{"name":"jc/parsers/arp.py","lines_changed":2},{"name":"jc/parsers/crontab.py","lines_changed":2},{"name":"jc/parsers/df.py","lines_changed":2},{"name":"jc/parsers/dig.py","lines_changed":2},{"name":"jc/parsers/du.py","lines_changed":2},{"name":"jc/parsers/env.py","lines_changed":3},{"name":"jc/parsers/foo.py","lines_changed":2},{"name":"jc/parsers/free.py","lines_changed":2},{"name":"jc/parsers/fstab.py","lines_changed":2},{"name":"jc/parsers/history.py","lines_changed":3},{"name":"jc/parsers/hosts.py","lines_changed":2},{"name":"jc/parsers/ifconfig.py","lines_changed":2},{"name":"jc/parsers/iptables.py","lines_changed":2},{"name":"jc/parsers/jobs.py","lines_changed":4},{"name":"jc/parsers/ls.py","lines_changed":2},{"name":"jc/parsers/lsblk.py","lines_changed":2},{"name":"jc/parsers/lsmod.py","lines_changed":2},{"name":"jc/parsers/lsof.py","lines_changed":2},{"name":"jc/parsers/mount.py","lines_changed":2},{"name":"jc/parsers/netstat.py","lines_changed":2},{"name":"jc/parsers/pip_list.py","lines_changed":2},{"name":"jc/parsers/pip_show.py","lines_changed":2},{"name":"jc/parsers/ps.py","lines_changed":2},{"name":"jc/parsers/route.py","lines_changed":2},{"name":"jc/parsers/ss.py","lines_changed":2},{"name":"jc/parsers/stat.py","lines_changed":2},{"name":"jc/parsers/systemctl.py","lines_changed":2},{"name":"jc/parsers/systemctl_lj.py","lines_changed":2},{"name":"jc/parsers/systemctl_ls.py","lines_changed":2},{"name":"jc/parsers/systemctl_luf.py","lines_changed":2},{"name":"jc/parsers/uname.py","lines_changed":2},{"name":"jc/parsers/uptime.py","lines_changed":2},{"name":"jc/parsers/w.py","lines_changed":2}]}},{"commit":"41f8e3aba268ca0cd09931a04368615425c1aec8","message":"update Return info","stats":{"files_changed":65,"insertions":67,"deletions":65,"files":["docs/parsers/arp.md","docs/parsers/crontab.md","docs/parsers/df.md","docs/parsers/dig.md","docs/parsers/du.md","docs/parsers/env.md","docs/parsers/free.md","docs/parsers/fstab.md","docs/parsers/history.md","docs/parsers/hosts.md","docs/parsers/ifconfig.md","docs/parsers/iptables.md","docs/parsers/jobs.md","docs/parsers/ls.md","docs/parsers/lsblk.md","docs/parsers/lsmod.md","docs/parsers/lsof.md","docs/parsers/mount.md","docs/parsers/netstat.md","docs/parsers/pip_list.md","docs/parsers/pip_show.md","docs/parsers/ps.md","docs/parsers/route.md","docs/parsers/ss.md","docs/parsers/stat.md","docs/parsers/systemctl.md","docs/parsers/systemctl_lj.md","docs/parsers/systemctl_ls.md","docs/parsers/systemctl_luf.md","docs/parsers/uname.md","docs/parsers/uptime.md","docs/parsers/w.md","jc/parsers/arp.py","jc/parsers/crontab.py","jc/parsers/df.py","jc/parsers/dig.py","jc/parsers/du.py","jc/parsers/env.py","jc/parsers/foo.py","jc/parsers/free.py","jc/parsers/fstab.py","jc/parsers/history.py","jc/parsers/hosts.py","jc/parsers/ifconfig.py","jc/parsers/iptables.py","jc/parsers/jobs.py","jc/parsers/ls.py","jc/parsers/lsblk.py","jc/parsers/lsmod.py","jc/parsers/lsof.py","jc/parsers/mount.py","jc/parsers/netstat.py","jc/parsers/pip_list.py","jc/parsers/pip_show.py","jc/parsers/ps.py","jc/parsers/route.py","jc/parsers/ss.py","jc/parsers/stat.py","jc/parsers/systemctl.py","jc/parsers/systemctl_lj.py","jc/parsers/systemctl_ls.py","jc/parsers/systemctl_luf.py","jc/parsers/uname.py","jc/parsers/uptime.py","jc/parsers/w.py"],"file_stats":[{"name":"docs/parsers/arp.md","lines_changed":2},{"name":"docs/parsers/crontab.md","lines_changed":2},{"name":"docs/parsers/df.md","lines_changed":2},{"name":"docs/parsers/dig.md","lines_changed":2},{"name":"docs/parsers/du.md","lines_changed":2},{"name":"docs/parsers/env.md","lines_changed":2},{"name":"docs/parsers/free.md","lines_changed":2},{"name":"docs/parsers/fstab.md","lines_changed":2},{"name":"docs/parsers/history.md","lines_changed":2},{"name":"docs/parsers/hosts.md","lines_changed":2},{"name":"docs/parsers/ifconfig.md","lines_changed":2},{"name":"docs/parsers/iptables.md","lines_changed":2},{"name":"docs/parsers/jobs.md","lines_changed":3},{"name":"docs/parsers/ls.md","lines_changed":2},{"name":"docs/parsers/lsblk.md","lines_changed":2},{"name":"docs/parsers/lsmod.md","lines_changed":2},{"name":"docs/parsers/lsof.md","lines_changed":2},{"name":"docs/parsers/mount.md","lines_changed":2},{"name":"docs/parsers/netstat.md","lines_changed":2},{"name":"docs/parsers/pip_list.md","lines_changed":2},{"name":"docs/parsers/pip_show.md","lines_changed":2},{"name":"docs/parsers/ps.md","lines_changed":2},{"name":"docs/parsers/route.md","lines_changed":2},{"name":"docs/parsers/ss.md","lines_changed":2},{"name":"docs/parsers/stat.md","lines_changed":2},{"name":"docs/parsers/systemctl.md","lines_changed":2},{"name":"docs/parsers/systemctl_lj.md","lines_changed":2},{"name":"docs/parsers/systemctl_ls.md","lines_changed":2},{"name":"docs/parsers/systemctl_luf.md","lines_changed":2},{"name":"docs/parsers/uname.md","lines_changed":2},{"name":"docs/parsers/uptime.md","lines_changed":2},{"name":"docs/parsers/w.md","lines_changed":2},{"name":"jc/parsers/arp.py","lines_changed":2},{"name":"jc/parsers/crontab.py","lines_changed":2},{"name":"jc/parsers/df.py","lines_changed":2},{"name":"jc/parsers/dig.py","lines_changed":2},{"name":"jc/parsers/du.py","lines_changed":2},{"name":"jc/parsers/env.py","lines_changed":2},{"name":"jc/parsers/foo.py","lines_changed":2},{"name":"jc/parsers/free.py","lines_changed":2},{"name":"jc/parsers/fstab.py","lines_changed":2},{"name":"jc/parsers/history.py","lines_changed":2},{"name":"jc/parsers/hosts.py","lines_changed":2},{"name":"jc/parsers/ifconfig.py","lines_changed":2},{"name":"jc/parsers/iptables.py","lines_changed":2},{"name":"jc/parsers/jobs.py","lines_changed":3},{"name":"jc/parsers/ls.py","lines_changed":2},{"name":"jc/parsers/lsblk.py","lines_changed":2},{"name":"jc/parsers/lsmod.py","lines_changed":2},{"name":"jc/parsers/lsof.py","lines_changed":2},{"name":"jc/parsers/mount.py","lines_changed":2},{"name":"jc/parsers/netstat.py","lines_changed":2},{"name":"jc/parsers/pip_list.py","lines_changed":2},{"name":"jc/parsers/pip_show.py","lines_changed":2},{"name":"jc/parsers/ps.py","lines_changed":2},{"name":"jc/parsers/route.py","lines_changed":2},{"name":"jc/parsers/ss.py","lines_changed":2},{"name":"jc/parsers/stat.py","lines_changed":2},{"name":"jc/parsers/systemctl.py","lines_changed":2},{"name":"jc/parsers/systemctl_lj.py","lines_changed":2},{"name":"jc/parsers/systemctl_ls.py","lines_changed":2},{"name":"jc/parsers/systemctl_luf.py","lines_changed":2},{"name":"jc/parsers/uname.py","lines_changed":2},{"name":"jc/parsers/uptime.py","lines_changed":2},{"name":"jc/parsers/w.py","lines_changed":2}]}},{"commit":"093c0df8978ace842af5258f9aff72c63c6f843d","message":"schema info","stats":{"files_changed":1,"insertions":1,"deletions":3,"files":["README.md"],"file_stats":[{"name":"README.md","lines_changed":4}]}},{"commit":"37afc7dc8ae30342d01f3f72e73646fa60bb5294","message":"updte todo and compatibility","stats":{"files_changed":1,"insertions":4,"deletions":3,"files":["README.md"],"file_stats":[{"name":"README.md","lines_changed":7}]}},{"commit":"efbf3549606fc77f8c16587ff04a0c316dfe5c00","message":"doc update for pip show","stats":{"files_changed":4,"insertions":126,"deletions":12,"files":["README.md","docgen.sh","docs/parsers/pip_show.md","jc/parsers/pip_show.py"],"file_stats":[{"name":"README.md","lines_changed":31},{"name":"docgen.sh","lines_changed":1},{"name":"docs/parsers/pip_show.md","lines_changed":94},{"name":"jc/parsers/pip_show.py","lines_changed":12}]}},{"commit":"5e39fe0d8044787389d8f206f3c863d4bdf1e2ed","message":"pip show parser working","stats":{"files_changed":1,"insertions":64,"deletions":5,"files":["jc/parsers/pip_show.py"],"file_stats":[{"name":"jc/parsers/pip_show.py","lines_changed":69}]}},{"commit":"47328dc65969f149c8f027286774ff0847c18add","message":"add pip-show parser","stats":{"files_changed":1,"insertions":2,"deletions":0,"files":["jc/cli.py"],"file_stats":[{"name":"jc/cli.py","lines_changed":2}]}},{"commit":"addeef50ba54f536855544937a6c98135ae5cd51","message":"initial pip show parser add","stats":{"files_changed":1,"insertions":84,"deletions":0,"files":["jc/parsers/pip_show.py"],"file_stats":[{"name":"jc/parsers/pip_show.py","lines_changed":84}]}},{"commit":"ad338cc5b50a178091c47cbea9a1db135a7fb678","message":"schema doc update","stats":{"files_changed":2,"insertions":56,"deletions":42,"files":["docs/parsers/crontab.md","jc/parsers/crontab.py"],"file_stats":[{"name":"docs/parsers/crontab.md","lines_changed":49},{"name":"jc/parsers/crontab.py","lines_changed":49}]}},{"commit":"202bc8201e31fd453c682265347b4e2ac2d41718","message":"doc update","stats":{"files_changed":3,"insertions":5,"deletions":5,"files":["README.md","docs/parsers/crontab.md","jc/parsers/crontab.py"],"file_stats":[{"name":"README.md","lines_changed":2},{"name":"docs/parsers/crontab.md","lines_changed":4},{"name":"jc/parsers/crontab.py","lines_changed":4}]}},{"commit":"5ff99de405fbd8f79f9c2e301ac27184e0aba6fc","message":"add argument to parser info","stats":{"files_changed":1,"insertions":1,"deletions":0,"files":["jc/cli.py"],"file_stats":[{"name":"jc/cli.py","lines_changed":1}]}},{"commit":"86ebe2cf9c6b336eacf217393c3c3c324ee29ec0","message":"initial add of pip list parser","stats":{"files_changed":6,"insertions":205,"deletions":1,"files":["README.md","docgen.sh","docs/parsers/crontab.md","docs/parsers/pip_list.md","jc/cli.py","jc/parsers/pip_list.py"],"file_stats":[{"name":"README.md","lines_changed":21},{"name":"docgen.sh","lines_changed":1},{"name":"docs/parsers/crontab.md","lines_changed":2},{"name":"docs/parsers/pip_list.md","lines_changed":75},{"name":"jc/cli.py","lines_changed":2},{"name":"jc/parsers/pip_list.py","lines_changed":105}]}},{"commit":"facf0b399c608d33f6a454ee24fd49fc62471742","message":"add osx to campatible","stats":{"files_changed":1,"insertions":2,"deletions":2,"files":["jc/parsers/crontab.py"],"file_stats":[{"name":"jc/parsers/crontab.py","lines_changed":4}]}},{"commit":"33db7b0bcb0f24979cad6e173737d75c8ed301af","message":"add crontab tests","stats":{"files_changed":4,"insertions":57,"deletions":0,"files":["tests/fixtures/centos-7.7/crontab.json","tests/fixtures/ubuntu-18.04/crontab.json","tests/fixtures/ubuntu-18.04/crontab.out","tests/test_crontab.py"],"file_stats":[{"name":"tests/fixtures/centos-7.7/crontab.json","lines_changed":1},{"name":"tests/fixtures/ubuntu-18.04/crontab.json","lines_changed":1},{"name":"tests/fixtures/ubuntu-18.04/crontab.out","lines_changed":15},{"name":"tests/test_crontab.py","lines_changed":40}]}},{"commit":"663d07bca1181024d9d08b940237c52197c91729","message":"add crontab","stats":{"files_changed":2,"insertions":191,"deletions":0,"files":["docgen.sh","docs/parsers/crontab.md"],"file_stats":[{"name":"docgen.sh","lines_changed":1},{"name":"docs/parsers/crontab.md","lines_changed":190}]}},{"commit":"ba04e4997fcb28adbee446f633c121f1585b9f2c","message":"update docs","stats":{"files_changed":1,"insertions":113,"deletions":4,"files":["jc/parsers/crontab.py"],"file_stats":[{"name":"jc/parsers/crontab.py","lines_changed":117}]}},{"commit":"c4fee1b658c91afa2abdd746af6c1b4697c44b35","message":"add crontab parser","stats":{"files_changed":1,"insertions":72,"deletions":1,"files":["README.md"],"file_stats":[{"name":"README.md","lines_changed":73}]}},{"commit":"99b92a15bbebc5568f4455f388f945613c4a2759","message":"support shortcut schedules","stats":{"files_changed":2,"insertions":37,"deletions":14,"files":["jc/parsers/crontab.py","tests/fixtures/centos-7.7/crontab.out"],"file_stats":[{"name":"jc/parsers/crontab.py","lines_changed":40},{"name":"tests/fixtures/centos-7.7/crontab.out","lines_changed":11}]}},{"commit":"b076ab5b57a6a59db096485e5ff4eb9f91bae8be","message":"initial crontab parser","stats":{"files_changed":3,"insertions":177,"deletions":0,"files":["jc/cli.py","jc/parsers/crontab.py","tests/fixtures/centos-7.7/crontab.out"],"file_stats":[{"name":"jc/cli.py","lines_changed":2},{"name":"jc/parsers/crontab.py","lines_changed":132},{"name":"tests/fixtures/centos-7.7/crontab.out","lines_changed":43}]}},{"commit":"687759f75d0e80e81746a84f051e55cfdc870447","message":"alphabetize du entry","stats":{"files_changed":1,"insertions":31,"deletions":31,"files":["README.md"],"file_stats":[{"name":"README.md","lines_changed":62}]}},{"commit":"9eaac7f3af0e0851c2d091d94c9920faa8a0fdfc","message":"add du","stats":{"files_changed":1,"insertions":32,"deletions":0,"files":["README.md"],"file_stats":[{"name":"README.md","lines_changed":32}]}},{"commit":"4c24e00cfc0748d98e220d08820b88fc156148db","message":"add osx-11 and ubuntu tests","stats":{"files_changed":5,"insertions":21738,"deletions":9,"files":["tests/fixtures/osx-10.11.6/du.json","tests/fixtures/osx-10.11.6/du.out","tests/fixtures/ubuntu-18.04/du.json","tests/fixtures/ubuntu-18.04/du.out","tests/test_du.py"],"file_stats":[{"name":"tests/fixtures/osx-10.11.6/du.json","lines_changed":1},{"name":"tests/fixtures/osx-10.11.6/du.out","lines_changed":2471},{"name":"tests/fixtures/ubuntu-18.04/du.json","lines_changed":1},{"name":"tests/fixtures/ubuntu-18.04/du.out","lines_changed":19244},{"name":"tests/test_du.py","lines_changed":30}]}},{"commit":"beb17011b03e720078b0752e79a6a0f6123d1d3c","message":"du tests and docs","stats":{"files_changed":6,"insertions":131,"deletions":2,"files":["changelog.txt","docgen.sh","docs/parsers/du.md","docs/parsers/uname.md","tests/fixtures/osx-10.14.6/du.json","tests/test_du.py"],"file_stats":[{"name":"changelog.txt","lines_changed":2},{"name":"docgen.sh","lines_changed":1},{"name":"docs/parsers/du.md","lines_changed":115},{"name":"docs/parsers/uname.md","lines_changed":2},{"name":"tests/fixtures/osx-10.14.6/du.json","lines_changed":1},{"name":"tests/test_du.py","lines_changed":12}]}},{"commit":"e882bf55bcd1d3526423ed1ccc61fb4819395cce","message":"initial add du parser","stats":{"files_changed":7,"insertions":8755,"deletions":0,"files":["changelog.txt","jc/cli.py","jc/parsers/du.py","tests/fixtures/centos-7.7/du.json","tests/fixtures/centos-7.7/du.out","tests/fixtures/osx-10.14.6/du.out","tests/test_du.py"],"file_stats":[{"name":"changelog.txt","lines_changed":1},{"name":"jc/cli.py","lines_changed":2},{"name":"jc/parsers/du.py","lines_changed":148},{"name":"tests/fixtures/centos-7.7/du.json","lines_changed":1},{"name":"tests/fixtures/centos-7.7/du.out","lines_changed":5199},{"name":"tests/fixtures/osx-10.14.6/du.out","lines_changed":3364},{"name":"tests/test_du.py","lines_changed":40}]}},{"commit":"3a3016adb6d5b9e35f8a39908bfcdc65997cc5c6","message":"add parser_count to about","stats":{"files_changed":1,"insertions":1,"deletions":0,"files":["jc/cli.py"],"file_stats":[{"name":"jc/cli.py","lines_changed":1}]}},{"commit":"1e8b68153ade8a1e3d2b4db36e0c402bbc887079","message":"add osx uname tests","stats":{"files_changed":4,"insertions":27,"deletions":1,"files":["tests/fixtures/osx-10.11.6/uname-a.json","tests/fixtures/osx-10.14.6/uname-a.json","tests/fixtures/osx-10.14.6/uname-a.out","tests/test_uname.py"],"file_stats":[{"name":"tests/fixtures/osx-10.11.6/uname-a.json","lines_changed":1},{"name":"tests/fixtures/osx-10.14.6/uname-a.json","lines_changed":1},{"name":"tests/fixtures/osx-10.14.6/uname-a.out","lines_changed":2},{"name":"tests/test_uname.py","lines_changed":24}]}},{"commit":"9335cf65fbb87e3a0a7da0c4e9bcd251cb829de2","message":"add uname osx support","stats":{"files_changed":1,"insertions":1,"deletions":1,"files":["changelog.txt"],"file_stats":[{"name":"changelog.txt","lines_changed":2}]}},{"commit":"83f35256aee71f2619ddf880e2b8f2d6c63280bc","message":"add OSX support","stats":{"files_changed":1,"insertions":30,"deletions":19,"files":["jc/parsers/uname.py"],"file_stats":[{"name":"jc/parsers/uname.py","lines_changed":49}]}},{"commit":"428333394817e4461a4eb095f4d6d128305a5f98","message":"version bump","stats":{"files_changed":1,"insertions":1,"deletions":1,"files":["jc/parsers/netstat.py"],"file_stats":[{"name":"jc/parsers/netstat.py","lines_changed":2}]}},{"commit":"b8f902796b7fb23a41355b23f7ce235bd18edc58","message":"shorten changelog","stats":{"files_changed":1,"insertions":1,"deletions":4,"files":["changelog.txt"],"file_stats":[{"name":"changelog.txt","lines_changed":5}]}},{"commit":"8f99ab295cd15718b98781707def97539ad41920","message":"info update","stats":{"files_changed":1,"insertions":2,"deletions":2,"files":["jc/cli.py"],"file_stats":[{"name":"jc/cli.py","lines_changed":4}]}},{"commit":"882310e268e2022f0cd6da75f80f5356529cd05c","message":"add name to about parser info","stats":{"files_changed":1,"insertions":1,"deletions":0,"files":["jc/cli.py"],"file_stats":[{"name":"jc/cli.py","lines_changed":1}]}},{"commit":"56bce9521409d1850f75a3ae2be1363e765dd9dc","message":"about code cleanup","stats":{"files_changed":1,"insertions":6,"deletions":10,"files":["jc/cli.py"],"file_stats":[{"name":"jc/cli.py","lines_changed":16}]}},{"commit":"c13ecbec2952c5d6765397f645e90653a4fd9d05","message":"clean up parser info","stats":{"files_changed":28,"insertions":2,"deletions":28,"files":["jc/parsers/arp.py","jc/parsers/df.py","jc/parsers/dig.py","jc/parsers/env.py","jc/parsers/foo.py","jc/parsers/free.py","jc/parsers/fstab.py","jc/parsers/history.py","jc/parsers/hosts.py","jc/parsers/iptables.py","jc/parsers/jobs.py","jc/parsers/ls.py","jc/parsers/lsblk.py","jc/parsers/lsmod.py","jc/parsers/lsof.py","jc/parsers/mount.py","jc/parsers/netstat.py","jc/parsers/ps.py","jc/parsers/route.py","jc/parsers/ss.py","jc/parsers/stat.py","jc/parsers/systemctl.py","jc/parsers/systemctl_lj.py","jc/parsers/systemctl_ls.py","jc/parsers/systemctl_luf.py","jc/parsers/uname.py","jc/parsers/uptime.py","jc/parsers/w.py"],"file_stats":[{"name":"jc/parsers/arp.py","lines_changed":1},{"name":"jc/parsers/df.py","lines_changed":1},{"name":"jc/parsers/dig.py","lines_changed":1},{"name":"jc/parsers/env.py","lines_changed":1},{"name":"jc/parsers/foo.py","lines_changed":2},{"name":"jc/parsers/free.py","lines_changed":1},{"name":"jc/parsers/fstab.py","lines_changed":1},{"name":"jc/parsers/history.py","lines_changed":1},{"name":"jc/parsers/hosts.py","lines_changed":1},{"name":"jc/parsers/iptables.py","lines_changed":1},{"name":"jc/parsers/jobs.py","lines_changed":1},{"name":"jc/parsers/ls.py","lines_changed":1},{"name":"jc/parsers/lsblk.py","lines_changed":1},{"name":"jc/parsers/lsmod.py","lines_changed":1},{"name":"jc/parsers/lsof.py","lines_changed":1},{"name":"jc/parsers/mount.py","lines_changed":1},{"name":"jc/parsers/netstat.py","lines_changed":1},{"name":"jc/parsers/ps.py","lines_changed":1},{"name":"jc/parsers/route.py","lines_changed":1},{"name":"jc/parsers/ss.py","lines_changed":1},{"name":"jc/parsers/stat.py","lines_changed":2},{"name":"jc/parsers/systemctl.py","lines_changed":1},{"name":"jc/parsers/systemctl_lj.py","lines_changed":1},{"name":"jc/parsers/systemctl_ls.py","lines_changed":1},{"name":"jc/parsers/systemctl_luf.py","lines_changed":1},{"name":"jc/parsers/uname.py","lines_changed":1},{"name":"jc/parsers/uptime.py","lines_changed":1},{"name":"jc/parsers/w.py","lines_changed":1}]}},{"commit":"0ffaaa6e73649d1f657af569ac0b912f166e8493","message":"clean up about code","stats":{"files_changed":1,"insertions":7,"deletions":9,"files":["jc/cli.py"],"file_stats":[{"name":"jc/cli.py","lines_changed":16}]}},{"commit":"75eff3adea097157c005b2201e353a741241ce8b","message":"remove whitespace","stats":{"files_changed":1,"insertions":4,"deletions":4,"files":["jc/utils.py"],"file_stats":[{"name":"jc/utils.py","lines_changed":8}]}},{"commit":"bf5f80476cff642ae672187ea59d40bdb602101e","message":"use real parser name in error message","stats":{"files_changed":1,"insertions":2,"deletions":4,"files":["jc/cli.py"],"file_stats":[{"name":"jc/cli.py","lines_changed":6}]}},{"commit":"9aaf0fbb2f838c0af1e7f18fdb19104f9f5d3d39","message":"doc updates","stats":{"files_changed":29,"insertions":146,"deletions":1,"files":["changelog.txt","docs/parsers/arp.md","docs/parsers/df.md","docs/parsers/dig.md","docs/parsers/env.md","docs/parsers/free.md","docs/parsers/fstab.md","docs/parsers/history.md","docs/parsers/hosts.md","docs/parsers/ifconfig.md","docs/parsers/iptables.md","docs/parsers/jobs.md","docs/parsers/ls.md","docs/parsers/lsblk.md","docs/parsers/lsmod.md","docs/parsers/lsof.md","docs/parsers/mount.md","docs/parsers/netstat.md","docs/parsers/ps.md","docs/parsers/route.md","docs/parsers/ss.md","docs/parsers/stat.md","docs/parsers/systemctl.md","docs/parsers/systemctl_lj.md","docs/parsers/systemctl_ls.md","docs/parsers/systemctl_luf.md","docs/parsers/uname.md","docs/parsers/uptime.md","docs/parsers/w.md"],"file_stats":[{"name":"changelog.txt","lines_changed":1},{"name":"docs/parsers/arp.md","lines_changed":11},{"name":"docs/parsers/df.md","lines_changed":5},{"name":"docs/parsers/dig.md","lines_changed":5},{"name":"docs/parsers/env.md","lines_changed":5},{"name":"docs/parsers/free.md","lines_changed":5},{"name":"docs/parsers/fstab.md","lines_changed":5},{"name":"docs/parsers/history.md","lines_changed":5},{"name":"docs/parsers/hosts.md","lines_changed":5},{"name":"docs/parsers/ifconfig.md","lines_changed":5},{"name":"docs/parsers/iptables.md","lines_changed":5},{"name":"docs/parsers/jobs.md","lines_changed":5},{"name":"docs/parsers/ls.md","lines_changed":5},{"name":"docs/parsers/lsblk.md","lines_changed":5},{"name":"docs/parsers/lsmod.md","lines_changed":5},{"name":"docs/parsers/lsof.md","lines_changed":5},{"name":"docs/parsers/mount.md","lines_changed":5},{"name":"docs/parsers/netstat.md","lines_changed":5},{"name":"docs/parsers/ps.md","lines_changed":5},{"name":"docs/parsers/route.md","lines_changed":5},{"name":"docs/parsers/ss.md","lines_changed":5},{"name":"docs/parsers/stat.md","lines_changed":5},{"name":"docs/parsers/systemctl.md","lines_changed":5},{"name":"docs/parsers/systemctl_lj.md","lines_changed":5},{"name":"docs/parsers/systemctl_ls.md","lines_changed":5},{"name":"docs/parsers/systemctl_luf.md","lines_changed":5},{"name":"docs/parsers/uname.md","lines_changed":5},{"name":"docs/parsers/uptime.md","lines_changed":5},{"name":"docs/parsers/w.md","lines_changed":5}]}},{"commit":"8f01ef79532743573632d716ceea41d5ea752c88","message":"add -a option info","stats":{"files_changed":1,"insertions":1,"deletions":0,"files":["README.md"],"file_stats":[{"name":"README.md","lines_changed":1}]}},{"commit":"da1d087452da02631296b1b3dc9ee10d4b7f764b","message":"add parser version info","stats":{"files_changed":1,"insertions":1,"deletions":0,"files":["jc/cli.py"],"file_stats":[{"name":"jc/cli.py","lines_changed":1}]}},{"commit":"e16bc7e882a27a1d5a4bd7cf9972208e6997f96f","message":"add about information to parsers","stats":{"files_changed":29,"insertions":82,"deletions":17,"files":["jc/cli.py","jc/parsers/arp.py","jc/parsers/df.py","jc/parsers/dig.py","jc/parsers/env.py","jc/parsers/foo.py","jc/parsers/free.py","jc/parsers/fstab.py","jc/parsers/history.py","jc/parsers/hosts.py","jc/parsers/iptables.py","jc/parsers/jobs.py","jc/parsers/ls.py","jc/parsers/lsblk.py","jc/parsers/lsmod.py","jc/parsers/lsof.py","jc/parsers/mount.py","jc/parsers/netstat.py","jc/parsers/ps.py","jc/parsers/route.py","jc/parsers/ss.py","jc/parsers/stat.py","jc/parsers/systemctl.py","jc/parsers/systemctl_lj.py","jc/parsers/systemctl_ls.py","jc/parsers/systemctl_luf.py","jc/parsers/uname.py","jc/parsers/uptime.py","jc/parsers/w.py"],"file_stats":[{"name":"jc/cli.py","lines_changed":71},{"name":"jc/parsers/arp.py","lines_changed":1},{"name":"jc/parsers/df.py","lines_changed":1},{"name":"jc/parsers/dig.py","lines_changed":1},{"name":"jc/parsers/env.py","lines_changed":1},{"name":"jc/parsers/foo.py","lines_changed":1},{"name":"jc/parsers/free.py","lines_changed":1},{"name":"jc/parsers/fstab.py","lines_changed":1},{"name":"jc/parsers/history.py","lines_changed":1},{"name":"jc/parsers/hosts.py","lines_changed":1},{"name":"jc/parsers/iptables.py","lines_changed":1},{"name":"jc/parsers/jobs.py","lines_changed":1},{"name":"jc/parsers/ls.py","lines_changed":1},{"name":"jc/parsers/lsblk.py","lines_changed":1},{"name":"jc/parsers/lsmod.py","lines_changed":1},{"name":"jc/parsers/lsof.py","lines_changed":1},{"name":"jc/parsers/mount.py","lines_changed":1},{"name":"jc/parsers/netstat.py","lines_changed":1},{"name":"jc/parsers/ps.py","lines_changed":1},{"name":"jc/parsers/route.py","lines_changed":1},{"name":"jc/parsers/ss.py","lines_changed":1},{"name":"jc/parsers/stat.py","lines_changed":1},{"name":"jc/parsers/systemctl.py","lines_changed":1},{"name":"jc/parsers/systemctl_lj.py","lines_changed":1},{"name":"jc/parsers/systemctl_ls.py","lines_changed":1},{"name":"jc/parsers/systemctl_luf.py","lines_changed":1},{"name":"jc/parsers/uname.py","lines_changed":1},{"name":"jc/parsers/uptime.py","lines_changed":1},{"name":"jc/parsers/w.py","lines_changed":1}]}},{"commit":"fe9bdd4811216257c05b16d6d61897929669d434","message":"add info class","stats":{"files_changed":31,"insertions":384,"deletions":219,"files":["changelog.txt","jc/cli.py","jc/parsers/arp.py","jc/parsers/df.py","jc/parsers/dig.py","jc/parsers/env.py","jc/parsers/foo.py","jc/parsers/free.py","jc/parsers/fstab.py","jc/parsers/history.py","jc/parsers/hosts.py","jc/parsers/ifconfig.py","jc/parsers/iptables.py","jc/parsers/jobs.py","jc/parsers/ls.py","jc/parsers/lsblk.py","jc/parsers/lsmod.py","jc/parsers/lsof.py","jc/parsers/mount.py","jc/parsers/netstat.py","jc/parsers/ps.py","jc/parsers/route.py","jc/parsers/ss.py","jc/parsers/stat.py","jc/parsers/systemctl.py","jc/parsers/systemctl_lj.py","jc/parsers/systemctl_ls.py","jc/parsers/systemctl_luf.py","jc/parsers/uname.py","jc/parsers/uptime.py","jc/parsers/w.py"],"file_stats":[{"name":"changelog.txt","lines_changed":4},{"name":"jc/cli.py","lines_changed":127},{"name":"jc/parsers/arp.py","lines_changed":25},{"name":"jc/parsers/df.py","lines_changed":15},{"name":"jc/parsers/dig.py","lines_changed":15},{"name":"jc/parsers/env.py","lines_changed":16},{"name":"jc/parsers/foo.py","lines_changed":16},{"name":"jc/parsers/free.py","lines_changed":16},{"name":"jc/parsers/fstab.py","lines_changed":16},{"name":"jc/parsers/history.py","lines_changed":16},{"name":"jc/parsers/hosts.py","lines_changed":16},{"name":"jc/parsers/ifconfig.py","lines_changed":17},{"name":"jc/parsers/iptables.py","lines_changed":16},{"name":"jc/parsers/jobs.py","lines_changed":16},{"name":"jc/parsers/ls.py","lines_changed":16},{"name":"jc/parsers/lsblk.py","lines_changed":17},{"name":"jc/parsers/lsmod.py","lines_changed":16},{"name":"jc/parsers/lsof.py","lines_changed":16},{"name":"jc/parsers/mount.py","lines_changed":16},{"name":"jc/parsers/netstat.py","lines_changed":16},{"name":"jc/parsers/ps.py","lines_changed":16},{"name":"jc/parsers/route.py","lines_changed":16},{"name":"jc/parsers/ss.py","lines_changed":16},{"name":"jc/parsers/stat.py","lines_changed":15},{"name":"jc/parsers/systemctl.py","lines_changed":16},{"name":"jc/parsers/systemctl_lj.py","lines_changed":16},{"name":"jc/parsers/systemctl_ls.py","lines_changed":16},{"name":"jc/parsers/systemctl_luf.py","lines_changed":16},{"name":"jc/parsers/uname.py","lines_changed":16},{"name":"jc/parsers/uptime.py","lines_changed":16},{"name":"jc/parsers/w.py","lines_changed":16}]}},{"commit":"17b6f3f6d6c398a52166849088a793d0e3b328b7","message":"add osx tests","stats":{"files_changed":3,"insertions":26,"deletions":0,"files":["tests/fixtures/osx-10.11.6/uptime.json","tests/fixtures/osx-10.14.6/uptime.json","tests/test_uptime.py"],"file_stats":[{"name":"tests/fixtures/osx-10.11.6/uptime.json","lines_changed":1},{"name":"tests/fixtures/osx-10.14.6/uptime.json","lines_changed":1},{"name":"tests/test_uptime.py","lines_changed":24}]}},{"commit":"90a6baf0ee3b8b27476badada4e590e22144f810","message":"add osx tests","stats":{"files_changed":6,"insertions":52,"deletions":0,"files":["tests/fixtures/osx-10.11.6/ps-axu.json","tests/fixtures/osx-10.11.6/ps-ef.json","tests/fixtures/osx-10.11.6/w.json","tests/fixtures/osx-10.14.6/w.json","tests/test_ps.py","tests/test_w.py"],"file_stats":[{"name":"tests/fixtures/osx-10.11.6/ps-axu.json","lines_changed":1},{"name":"tests/fixtures/osx-10.11.6/ps-ef.json","lines_changed":1},{"name":"tests/fixtures/osx-10.11.6/w.json","lines_changed":1},{"name":"tests/fixtures/osx-10.14.6/w.json","lines_changed":1},{"name":"tests/test_ps.py","lines_changed":24},{"name":"tests/test_w.py","lines_changed":24}]}},{"commit":"f0e73d0e72d540292f41fff51652932c4e8b0315","message":"add osx tests","stats":{"files_changed":8,"insertions":444,"deletions":0,"files":["tests/fixtures/osx-10.11.6/ps-axu.out","tests/fixtures/osx-10.11.6/ps-ef.out","tests/fixtures/osx-10.11.6/uname-a.out","tests/fixtures/osx-10.11.6/uptime.out","tests/fixtures/osx-10.11.6/w.out","tests/fixtures/osx-10.14.6/uname-a.out","tests/fixtures/osx-10.14.6/uptime.out","tests/fixtures/osx-10.14.6/w.out"],"file_stats":[{"name":"tests/fixtures/osx-10.11.6/ps-axu.out","lines_changed":211},{"name":"tests/fixtures/osx-10.11.6/ps-ef.out","lines_changed":211},{"name":"tests/fixtures/osx-10.11.6/uname-a.out","lines_changed":1},{"name":"tests/fixtures/osx-10.11.6/uptime.out","lines_changed":1},{"name":"tests/fixtures/osx-10.11.6/w.out","lines_changed":8},{"name":"tests/fixtures/osx-10.14.6/uname-a.out","lines_changed":1},{"name":"tests/fixtures/osx-10.14.6/uptime.out","lines_changed":1},{"name":"tests/fixtures/osx-10.14.6/w.out","lines_changed":10}]}},{"commit":"a762882f1ccea6789ce7813b313f3242175b5bd6","message":"fixture updates","stats":{"files_changed":4,"insertions":2,"deletions":88,"files":["tests/fixtures/osx-10.14.6/ps-axu.json","tests/fixtures/osx-10.14.6/ps-axu.out","tests/fixtures/osx-10.14.6/ps-ef.json","tests/fixtures/osx-10.14.6/ps-ef.out"],"file_stats":[{"name":"tests/fixtures/osx-10.14.6/ps-axu.json","lines_changed":2},{"name":"tests/fixtures/osx-10.14.6/ps-axu.out","lines_changed":43},{"name":"tests/fixtures/osx-10.14.6/ps-ef.json","lines_changed":2},{"name":"tests/fixtures/osx-10.14.6/ps-ef.out","lines_changed":43}]}},{"commit":"4c1bc5923658bf463805ea33ec8d170a817909ce","message":"doc updates","stats":{"files_changed":3,"insertions":4,"deletions":3,"files":["docs/parsers/mount.md","docs/parsers/ps.md","docs/parsers/stat.md"],"file_stats":[{"name":"docs/parsers/mount.md","lines_changed":2},{"name":"docs/parsers/ps.md","lines_changed":3},{"name":"docs/parsers/stat.md","lines_changed":2}]}},{"commit":"f2962083f80503f82c3eddf470674c776e616b32","message":"add osx support for mount parser","stats":{"files_changed":7,"insertions":93,"deletions":17,"files":["changelog.txt","jc/parsers/mount.py","tests/fixtures/osx-10.14.6/mount.json","tests/fixtures/osx-10.14.6/mount.out","tests/fixtures/osx-10.14.6/mount2.json","tests/fixtures/osx-10.14.6/mount2.out","tests/test_mount.py"],"file_stats":[{"name":"changelog.txt","lines_changed":3},{"name":"jc/parsers/mount.py","lines_changed":68},{"name":"tests/fixtures/osx-10.14.6/mount.json","lines_changed":1},{"name":"tests/fixtures/osx-10.14.6/mount.out","lines_changed":6},{"name":"tests/fixtures/osx-10.14.6/mount2.json","lines_changed":1},{"name":"tests/fixtures/osx-10.14.6/mount2.out","lines_changed":7},{"name":"tests/test_mount.py","lines_changed":24}]}},{"commit":"a0b22a5bcfa0777895243088b2c0f3bb5b758775","message":"help text formatting","stats":{"files_changed":1,"insertions":4,"deletions":4,"files":["jc/cli.py"],"file_stats":[{"name":"jc/cli.py","lines_changed":8}]}},{"commit":"dcf393354cd57683aaeecbed7b884d19b0fe94d4","message":"doc fix","stats":{"files_changed":1,"insertions":1,"deletions":1,"files":["jc/parsers/stat.py"],"file_stats":[{"name":"jc/parsers/stat.py","lines_changed":2}]}},{"commit":"5f771656e3fdd703d449b2817faa4faeff1cd879","message":"use universal parser","stats":{"files_changed":1,"insertions":4,"deletions":6,"files":["jc/parsers/route.py"],"file_stats":[{"name":"jc/parsers/route.py","lines_changed":10}]}},{"commit":"f376aab79328a211a127f4f818e7007232f1fae3","message":"doc update","stats":{"files_changed":1,"insertions":3,"deletions":0,"files":["jc/parsers/universal.py"],"file_stats":[{"name":"jc/parsers/universal.py","lines_changed":3}]}},{"commit":"3c96464217a740571e16c74ad41c1d92f7585547","message":"osx fixes and tests","stats":{"files_changed":6,"insertions":886,"deletions":13,"files":["jc/parsers/ps.py","tests/fixtures/osx-10.14.6/ps-axu.json","tests/fixtures/osx-10.14.6/ps-axu.out","tests/fixtures/osx-10.14.6/ps-ef.json","tests/fixtures/osx-10.14.6/ps-ef.out","tests/test_ps.py"],"file_stats":[{"name":"jc/parsers/ps.py","lines_changed":31},{"name":"tests/fixtures/osx-10.14.6/ps-axu.json","lines_changed":1},{"name":"tests/fixtures/osx-10.14.6/ps-axu.out","lines_changed":421},{"name":"tests/fixtures/osx-10.14.6/ps-ef.json","lines_changed":1},{"name":"tests/fixtures/osx-10.14.6/ps-ef.out","lines_changed":421},{"name":"tests/test_ps.py","lines_changed":24}]}},{"commit":"c9892833a16bb63f78537717be65670eb65a87b7","message":"formatting change","stats":{"files_changed":1,"insertions":1,"deletions":1,"files":["jc/parsers/mount.py"],"file_stats":[{"name":"jc/parsers/mount.py","lines_changed":2}]}},{"commit":"127c98affc7b122f0ced13852850214b9e07677e","message":"changelog update","stats":{"files_changed":1,"insertions":1,"deletions":0,"files":["changelog.txt"],"file_stats":[{"name":"changelog.txt","lines_changed":1}]}},{"commit":"8687a772f53ecaf1a20464429060b94bbf660fe7","message":"use universal parser","stats":{"files_changed":1,"insertions":7,"deletions":1,"files":["jc/parsers/lsof.py"],"file_stats":[{"name":"jc/parsers/lsof.py","lines_changed":8}]}},{"commit":"b1162b14d42643fd53dbbe3f89ba042f030d9254","message":"use universal parser","stats":{"files_changed":1,"insertions":3,"deletions":6,"files":["jc/parsers/lsmod.py"],"file_stats":[{"name":"jc/parsers/lsmod.py","lines_changed":9}]}},{"commit":"8a8ee3570733c0c06b8cf53eb005e53ac2f9170f","message":"use universal parser","stats":{"files_changed":1,"insertions":8,"deletions":60,"files":["jc/parsers/lsblk.py"],"file_stats":[{"name":"jc/parsers/lsblk.py","lines_changed":68}]}},{"commit":"5e109a3665cf0c286ac9dcbe2a452348a14b90ab","message":"add du","stats":{"files_changed":1,"insertions":2,"deletions":0,"files":["tests/fixtures/create_fixtures.sh"],"file_stats":[{"name":"tests/fixtures/create_fixtures.sh","lines_changed":2}]}},{"commit":"11db478430515ef3e1020482792f23d1c40ca32b","message":"update changelog","stats":{"files_changed":1,"insertions":2,"deletions":0,"files":["changelog.txt"],"file_stats":[{"name":"changelog.txt","lines_changed":2}]}},{"commit":"a85377014d9f93fcb9840715129b0e09d48d8584","message":"use universal parser","stats":{"files_changed":1,"insertions":5,"deletions":11,"files":["jc/parsers/free.py"],"file_stats":[{"name":"jc/parsers/free.py","lines_changed":16}]}},{"commit":"3aea86234d33160f5b3139cbfc2f4f032f655f3a","message":"fix osx-10.11.6 tests","stats":{"files_changed":6,"insertions":70,"deletions":61,"files":["tests/fixtures/osx-10.11.6/ls-al.json","tests/fixtures/osx-10.11.6/ls-al.out","tests/fixtures/osx-10.11.6/ls-alh.json","tests/fixtures/osx-10.11.6/ls-alh.out","tests/fixtures/osx-10.11.6/ls.json","tests/fixtures/osx-10.11.6/ls.out"],"file_stats":[{"name":"tests/fixtures/osx-10.11.6/ls-al.json","lines_changed":2},{"name":"tests/fixtures/osx-10.11.6/ls-al.out","lines_changed":61},{"name":"tests/fixtures/osx-10.11.6/ls-alh.json","lines_changed":2},{"name":"tests/fixtures/osx-10.11.6/ls-alh.out","lines_changed":61},{"name":"tests/fixtures/osx-10.11.6/ls.json","lines_changed":2},{"name":"tests/fixtures/osx-10.11.6/ls.out","lines_changed":3}]}},{"commit":"916ec6ed6b858a8a496e4026b9bab5505abca2ff","message":"fix osx ls tests","stats":{"files_changed":13,"insertions":193,"deletions":61,"files":["tests/fixtures/osx-10.11.6/ls-al.json","tests/fixtures/osx-10.11.6/ls-al.out","tests/fixtures/osx-10.11.6/ls-alh.json","tests/fixtures/osx-10.11.6/ls-alh.out","tests/fixtures/osx-10.11.6/ls.json","tests/fixtures/osx-10.11.6/ls.out","tests/fixtures/osx-10.14.6/ls-al.json","tests/fixtures/osx-10.14.6/ls-al.out","tests/fixtures/osx-10.14.6/ls-alh.json","tests/fixtures/osx-10.14.6/ls-alh.out","tests/fixtures/osx-10.14.6/ls.json","tests/fixtures/osx-10.14.6/ls.out","tests/test_ls.py"],"file_stats":[{"name":"tests/fixtures/osx-10.11.6/ls-al.json","lines_changed":1},{"name":"tests/fixtures/osx-10.11.6/ls-al.out","lines_changed":29},{"name":"tests/fixtures/osx-10.11.6/ls-alh.json","lines_changed":1},{"name":"tests/fixtures/osx-10.11.6/ls-alh.out","lines_changed":29},{"name":"tests/fixtures/osx-10.11.6/ls.json","lines_changed":1},{"name":"tests/fixtures/osx-10.11.6/ls.out","lines_changed":18},{"name":"tests/fixtures/osx-10.14.6/ls-al.json","lines_changed":2},{"name":"tests/fixtures/osx-10.14.6/ls-al.out","lines_changed":64},{"name":"tests/fixtures/osx-10.14.6/ls-alh.json","lines_changed":2},{"name":"tests/fixtures/osx-10.14.6/ls-alh.out","lines_changed":64},{"name":"tests/fixtures/osx-10.14.6/ls.json","lines_changed":2},{"name":"tests/fixtures/osx-10.14.6/ls.out","lines_changed":5},{"name":"tests/test_ls.py","lines_changed":36}]}},{"commit":"9dca6ba5393d8840ad7fc9509273715a71955bd1","message":"doc formatting change","stats":{"files_changed":55,"insertions":120,"deletions":6,"files":["docs/parsers/df.md","docs/parsers/dig.md","docs/parsers/env.md","docs/parsers/free.md","docs/parsers/fstab.md","docs/parsers/history.md","docs/parsers/hosts.md","docs/parsers/ifconfig.md","docs/parsers/iptables.md","docs/parsers/jobs.md","docs/parsers/ls.md","docs/parsers/lsblk.md","docs/parsers/lsmod.md","docs/parsers/lsof.md","docs/parsers/mount.md","docs/parsers/netstat.md","docs/parsers/ps.md","docs/parsers/route.md","docs/parsers/ss.md","docs/parsers/stat.md","docs/parsers/systemctl.md","docs/parsers/systemctl_lj.md","docs/parsers/systemctl_ls.md","docs/parsers/systemctl_luf.md","docs/parsers/uname.md","docs/parsers/uptime.md","docs/parsers/w.md","jc/parsers/df.py","jc/parsers/dig.py","jc/parsers/env.py","jc/parsers/foo.py","jc/parsers/free.py","jc/parsers/fstab.py","jc/parsers/history.py","jc/parsers/hosts.py","jc/parsers/ifconfig.py","jc/parsers/iptables.py","jc/parsers/jobs.py","jc/parsers/ls.py","jc/parsers/lsblk.py","jc/parsers/lsmod.py","jc/parsers/lsof.py","jc/parsers/mount.py","jc/parsers/netstat.py","jc/parsers/ps.py","jc/parsers/route.py","jc/parsers/ss.py","jc/parsers/stat.py","jc/parsers/systemctl.py","jc/parsers/systemctl_lj.py","jc/parsers/systemctl_ls.py","jc/parsers/systemctl_luf.py","jc/parsers/uname.py","jc/parsers/uptime.py","jc/parsers/w.py"],"file_stats":[{"name":"docs/parsers/df.md","lines_changed":2},{"name":"docs/parsers/dig.md","lines_changed":2},{"name":"docs/parsers/env.md","lines_changed":2},{"name":"docs/parsers/free.md","lines_changed":2},{"name":"docs/parsers/fstab.md","lines_changed":2},{"name":"docs/parsers/history.md","lines_changed":2},{"name":"docs/parsers/hosts.md","lines_changed":2},{"name":"docs/parsers/ifconfig.md","lines_changed":2},{"name":"docs/parsers/iptables.md","lines_changed":2},{"name":"docs/parsers/jobs.md","lines_changed":2},{"name":"docs/parsers/ls.md","lines_changed":8},{"name":"docs/parsers/lsblk.md","lines_changed":2},{"name":"docs/parsers/lsmod.md","lines_changed":2},{"name":"docs/parsers/lsof.md","lines_changed":2},{"name":"docs/parsers/mount.md","lines_changed":2},{"name":"docs/parsers/netstat.md","lines_changed":2},{"name":"docs/parsers/ps.md","lines_changed":2},{"name":"docs/parsers/route.md","lines_changed":2},{"name":"docs/parsers/ss.md","lines_changed":3},{"name":"docs/parsers/stat.md","lines_changed":2},{"name":"docs/parsers/systemctl.md","lines_changed":2},{"name":"docs/parsers/systemctl_lj.md","lines_changed":2},{"name":"docs/parsers/systemctl_ls.md","lines_changed":2},{"name":"docs/parsers/systemctl_luf.md","lines_changed":2},{"name":"docs/parsers/uname.md","lines_changed":3},{"name":"docs/parsers/uptime.md","lines_changed":2},{"name":"docs/parsers/w.md","lines_changed":2},{"name":"jc/parsers/df.py","lines_changed":2},{"name":"jc/parsers/dig.py","lines_changed":2},{"name":"jc/parsers/env.py","lines_changed":2},{"name":"jc/parsers/foo.py","lines_changed":2},{"name":"jc/parsers/free.py","lines_changed":2},{"name":"jc/parsers/fstab.py","lines_changed":2},{"name":"jc/parsers/history.py","lines_changed":2},{"name":"jc/parsers/hosts.py","lines_changed":2},{"name":"jc/parsers/ifconfig.py","lines_changed":2},{"name":"jc/parsers/iptables.py","lines_changed":2},{"name":"jc/parsers/jobs.py","lines_changed":2},{"name":"jc/parsers/ls.py","lines_changed":8},{"name":"jc/parsers/lsblk.py","lines_changed":2},{"name":"jc/parsers/lsmod.py","lines_changed":2},{"name":"jc/parsers/lsof.py","lines_changed":2},{"name":"jc/parsers/mount.py","lines_changed":2},{"name":"jc/parsers/netstat.py","lines_changed":2},{"name":"jc/parsers/ps.py","lines_changed":2},{"name":"jc/parsers/route.py","lines_changed":2},{"name":"jc/parsers/ss.py","lines_changed":3},{"name":"jc/parsers/stat.py","lines_changed":2},{"name":"jc/parsers/systemctl.py","lines_changed":2},{"name":"jc/parsers/systemctl_lj.py","lines_changed":2},{"name":"jc/parsers/systemctl_ls.py","lines_changed":2},{"name":"jc/parsers/systemctl_luf.py","lines_changed":2},{"name":"jc/parsers/uname.py","lines_changed":3},{"name":"jc/parsers/uptime.py","lines_changed":2},{"name":"jc/parsers/w.py","lines_changed":2}]}},{"commit":"0ebb89f561e1ced2e7f61ae19290e176c8a98bf2","message":"doc update","stats":{"files_changed":1,"insertions":2,"deletions":0,"files":["docs/parsers/arp.md"],"file_stats":[{"name":"docs/parsers/arp.md","lines_changed":2}]}},{"commit":"e237867e242211ba37206911ebf1b35c97b417fd","message":"doc formatting","stats":{"files_changed":1,"insertions":2,"deletions":0,"files":["jc/parsers/arp.py"],"file_stats":[{"name":"jc/parsers/arp.py","lines_changed":2}]}},{"commit":"78fa44fd9ac9790313de6f461eb46d9b8d6159d4","message":"add compatibility to docs","stats":{"files_changed":24,"insertions":75,"deletions":3,"files":["docs/parsers/netstat.md","docs/parsers/ps.md","docs/parsers/route.md","docs/parsers/ss.md","docs/parsers/stat.md","docs/parsers/systemctl.md","docs/parsers/systemctl_lj.md","docs/parsers/systemctl_ls.md","docs/parsers/systemctl_luf.md","docs/parsers/uname.md","docs/parsers/uptime.md","docs/parsers/w.md","jc/parsers/netstat.py","jc/parsers/ps.py","jc/parsers/route.py","jc/parsers/ss.py","jc/parsers/stat.py","jc/parsers/systemctl.py","jc/parsers/systemctl_lj.py","jc/parsers/systemctl_ls.py","jc/parsers/systemctl_luf.py","jc/parsers/uname.py","jc/parsers/uptime.py","jc/parsers/w.py"],"file_stats":[{"name":"docs/parsers/netstat.md","lines_changed":3},{"name":"docs/parsers/ps.md","lines_changed":3},{"name":"docs/parsers/route.md","lines_changed":3},{"name":"docs/parsers/ss.md","lines_changed":3},{"name":"docs/parsers/stat.md","lines_changed":5},{"name":"docs/parsers/systemctl.md","lines_changed":3},{"name":"docs/parsers/systemctl_lj.md","lines_changed":3},{"name":"docs/parsers/systemctl_ls.md","lines_changed":3},{"name":"docs/parsers/systemctl_luf.md","lines_changed":3},{"name":"docs/parsers/uname.md","lines_changed":3},{"name":"docs/parsers/uptime.md","lines_changed":3},{"name":"docs/parsers/w.md","lines_changed":3},{"name":"jc/parsers/netstat.py","lines_changed":3},{"name":"jc/parsers/ps.py","lines_changed":3},{"name":"jc/parsers/route.py","lines_changed":5},{"name":"jc/parsers/ss.py","lines_changed":3},{"name":"jc/parsers/stat.py","lines_changed":5},{"name":"jc/parsers/systemctl.py","lines_changed":3},{"name":"jc/parsers/systemctl_lj.py","lines_changed":3},{"name":"jc/parsers/systemctl_ls.py","lines_changed":3},{"name":"jc/parsers/systemctl_luf.py","lines_changed":3},{"name":"jc/parsers/uname.py","lines_changed":3},{"name":"jc/parsers/uptime.py","lines_changed":3},{"name":"jc/parsers/w.py","lines_changed":3}]}},{"commit":"d615fa3b933ccd284bd8ee92baf5dfa6264507c6","message":"add compatibility to docs","stats":{"files_changed":30,"insertions":91,"deletions":1,"files":["docs/parsers/arp.md","docs/parsers/df.md","docs/parsers/dig.md","docs/parsers/env.md","docs/parsers/free.md","docs/parsers/fstab.md","docs/parsers/history.md","docs/parsers/hosts.md","docs/parsers/ifconfig.md","docs/parsers/iptables.md","docs/parsers/jobs.md","docs/parsers/ls.md","docs/parsers/lsblk.md","docs/parsers/lsmod.md","docs/parsers/lsof.md","docs/parsers/mount.md","jc/parsers/env.py","jc/parsers/foo.py","jc/parsers/free.py","jc/parsers/fstab.py","jc/parsers/history.py","jc/parsers/hosts.py","jc/parsers/ifconfig.py","jc/parsers/iptables.py","jc/parsers/jobs.py","jc/parsers/ls.py","jc/parsers/lsblk.py","jc/parsers/lsmod.py","jc/parsers/lsof.py","jc/parsers/mount.py"],"file_stats":[{"name":"docs/parsers/arp.md","lines_changed":3},{"name":"docs/parsers/df.md","lines_changed":3},{"name":"docs/parsers/dig.md","lines_changed":3},{"name":"docs/parsers/env.md","lines_changed":3},{"name":"docs/parsers/free.md","lines_changed":3},{"name":"docs/parsers/fstab.md","lines_changed":3},{"name":"docs/parsers/history.md","lines_changed":3},{"name":"docs/parsers/hosts.md","lines_changed":3},{"name":"docs/parsers/ifconfig.md","lines_changed":3},{"name":"docs/parsers/iptables.md","lines_changed":3},{"name":"docs/parsers/jobs.md","lines_changed":3},{"name":"docs/parsers/ls.md","lines_changed":3},{"name":"docs/parsers/lsblk.md","lines_changed":3},{"name":"docs/parsers/lsmod.md","lines_changed":3},{"name":"docs/parsers/lsof.md","lines_changed":3},{"name":"docs/parsers/mount.md","lines_changed":3},{"name":"jc/parsers/env.py","lines_changed":3},{"name":"jc/parsers/foo.py","lines_changed":3},{"name":"jc/parsers/free.py","lines_changed":3},{"name":"jc/parsers/fstab.py","lines_changed":3},{"name":"jc/parsers/history.py","lines_changed":3},{"name":"jc/parsers/hosts.py","lines_changed":3},{"name":"jc/parsers/ifconfig.py","lines_changed":3},{"name":"jc/parsers/iptables.py","lines_changed":5},{"name":"jc/parsers/jobs.py","lines_changed":3},{"name":"jc/parsers/ls.py","lines_changed":3},{"name":"jc/parsers/lsblk.py","lines_changed":3},{"name":"jc/parsers/lsmod.py","lines_changed":3},{"name":"jc/parsers/lsof.py","lines_changed":3},{"name":"jc/parsers/mount.py","lines_changed":3}]}},{"commit":"ce134dc332dd9175e0d1823a4959bed427a3ddce","message":"Add OSX tests for ls","stats":{"files_changed":7,"insertions":115,"deletions":0,"files":["tests/fixtures/osx-10.14.6/ls-al.json","tests/fixtures/osx-10.14.6/ls-al.out","tests/fixtures/osx-10.14.6/ls-alh.json","tests/fixtures/osx-10.14.6/ls-alh.out","tests/fixtures/osx-10.14.6/ls.json","tests/fixtures/osx-10.14.6/ls.out","tests/test_ls.py"],"file_stats":[{"name":"tests/fixtures/osx-10.14.6/ls-al.json","lines_changed":1},{"name":"tests/fixtures/osx-10.14.6/ls-al.out","lines_changed":29},{"name":"tests/fixtures/osx-10.14.6/ls-alh.json","lines_changed":1},{"name":"tests/fixtures/osx-10.14.6/ls-alh.out","lines_changed":29},{"name":"tests/fixtures/osx-10.14.6/ls.json","lines_changed":1},{"name":"tests/fixtures/osx-10.14.6/ls.out","lines_changed":18},{"name":"tests/test_ls.py","lines_changed":36}]}},{"commit":"a56e4dc752a01635fbd9fc31e21d390bbd629084","message":"use universal simple table parser","stats":{"files_changed":3,"insertions":28,"deletions":3,"files":["changelog.txt","jc/parsers/arp.py","jc/parsers/universal.py"],"file_stats":[{"name":"changelog.txt","lines_changed":1},{"name":"jc/parsers/arp.py","lines_changed":6},{"name":"jc/parsers/universal.py","lines_changed":24}]}},{"commit":"d221b4aa29e80dda2b591059f4d64c416bff0a17","message":"changelog update","stats":{"files_changed":1,"insertions":1,"deletions":0,"files":["changelog.txt"],"file_stats":[{"name":"changelog.txt","lines_changed":1}]}},{"commit":"d2cba6ad2f1f1cd35aa174239584a0291abb8e37","message":"add compatibility info","stats":{"files_changed":3,"insertions":9,"deletions":0,"files":["jc/parsers/arp.py","jc/parsers/df.py","jc/parsers/dig.py"],"file_stats":[{"name":"jc/parsers/arp.py","lines_changed":3},{"name":"jc/parsers/df.py","lines_changed":3},{"name":"jc/parsers/dig.py","lines_changed":3}]}},{"commit":"84b3c30b525ddf1f74eb7fd833050a0ec69621dd","message":"add osx tests","stats":{"files_changed":21,"insertions":254,"deletions":2,"files":["tests/fixtures/osx-10.11.6/df-h.json","tests/fixtures/osx-10.11.6/df-h.out","tests/fixtures/osx-10.11.6/df.json","tests/fixtures/osx-10.11.6/df.out","tests/fixtures/osx-10.11.6/dig-aaaa.json","tests/fixtures/osx-10.11.6/dig-aaaa.out","tests/fixtures/osx-10.11.6/dig-x.json","tests/fixtures/osx-10.11.6/dig-x.out","tests/fixtures/osx-10.11.6/dig.json","tests/fixtures/osx-10.11.6/dig.out","tests/fixtures/osx-10.14.6/df-h.json","tests/fixtures/osx-10.14.6/df-h.out","tests/fixtures/osx-10.14.6/df.json","tests/fixtures/osx-10.14.6/df.out","tests/fixtures/osx-10.14.6/dig-aaaa.json","tests/fixtures/osx-10.14.6/dig-aaaa.out","tests/fixtures/osx-10.14.6/dig-x.json","tests/fixtures/osx-10.14.6/dig-x.out","tests/fixtures/osx-10.14.6/dig.json","tests/fixtures/osx-10.14.6/dig.out","tests/test_df.py"],"file_stats":[{"name":"tests/fixtures/osx-10.11.6/df-h.json","lines_changed":1},{"name":"tests/fixtures/osx-10.11.6/df-h.out","lines_changed":7},{"name":"tests/fixtures/osx-10.11.6/df.json","lines_changed":1},{"name":"tests/fixtures/osx-10.11.6/df.out","lines_changed":7},{"name":"tests/fixtures/osx-10.11.6/dig-aaaa.json","lines_changed":1},{"name":"tests/fixtures/osx-10.11.6/dig-aaaa.out","lines_changed":20},{"name":"tests/fixtures/osx-10.11.6/dig-x.json","lines_changed":1},{"name":"tests/fixtures/osx-10.11.6/dig-x.out","lines_changed":20},{"name":"tests/fixtures/osx-10.11.6/dig.json","lines_changed":1},{"name":"tests/fixtures/osx-10.11.6/dig.out","lines_changed":41},{"name":"tests/fixtures/osx-10.14.6/df-h.json","lines_changed":1},{"name":"tests/fixtures/osx-10.14.6/df-h.out","lines_changed":9},{"name":"tests/fixtures/osx-10.14.6/df.json","lines_changed":1},{"name":"tests/fixtures/osx-10.14.6/df.out","lines_changed":9},{"name":"tests/fixtures/osx-10.14.6/dig-aaaa.json","lines_changed":1},{"name":"tests/fixtures/osx-10.14.6/dig-aaaa.out","lines_changed":20},{"name":"tests/fixtures/osx-10.14.6/dig-x.json","lines_changed":1},{"name":"tests/fixtures/osx-10.14.6/dig-x.out","lines_changed":20},{"name":"tests/fixtures/osx-10.14.6/dig.json","lines_changed":1},{"name":"tests/fixtures/osx-10.14.6/dig.out","lines_changed":41},{"name":"tests/test_df.py","lines_changed":52}]}},{"commit":"68eeec19a812b735627763bb7d7e2a58b72f7504","message":"doc update","stats":{"files_changed":3,"insertions":30,"deletions":25,"files":["README.md","docs/parsers/df.md","jc/parsers/df.py"],"file_stats":[{"name":"README.md","lines_changed":4},{"name":"docs/parsers/df.md","lines_changed":31},{"name":"jc/parsers/df.py","lines_changed":20}]}},{"commit":"c6d1528a2ed302ea82828b733a98db415be83708","message":"use _ instead of -","stats":{"files_changed":4,"insertions":19,"deletions":8,"files":["jc/parsers/df.py","jc/parsers/universal.py","tests/fixtures/centos-7.7/df.json","tests/fixtures/ubuntu-18.04/df.json"],"file_stats":[{"name":"jc/parsers/df.py","lines_changed":21},{"name":"jc/parsers/universal.py","lines_changed":2},{"name":"tests/fixtures/centos-7.7/df.json","lines_changed":2},{"name":"tests/fixtures/ubuntu-18.04/df.json","lines_changed":2}]}},{"commit":"50a6b256b8a0936299f562c208ede6187feeb9a7","message":"new universal parsers to limit code duplication","stats":{"files_changed":1,"insertions":83,"deletions":0,"files":["jc/parsers/universal.py"],"file_stats":[{"name":"jc/parsers/universal.py","lines_changed":83}]}},{"commit":"bbba1fe477014d0b7f370ce46ed821121be81a8e","message":"update df to use universal sparse table parser for osx compatibility","stats":{"files_changed":1,"insertions":38,"deletions":19,"files":["jc/parsers/df.py"],"file_stats":[{"name":"jc/parsers/df.py","lines_changed":57}]}},{"commit":"46b827da6b438be73fab168c3f05298483b141e4","message":"add osx compatibility","stats":{"files_changed":7,"insertions":75,"deletions":4,"files":["changelog.txt","jc/parsers/arp.py","tests/fixtures/osx-10.11.6/arp-a.json","tests/fixtures/osx-10.11.6/arp-a.out","tests/fixtures/osx-10.14.6/arp-a.json","tests/fixtures/osx-10.14.6/arp-a.out","tests/test_arp.py"],"file_stats":[{"name":"changelog.txt","lines_changed":1},{"name":"jc/parsers/arp.py","lines_changed":27},{"name":"tests/fixtures/osx-10.11.6/arp-a.json","lines_changed":1},{"name":"tests/fixtures/osx-10.11.6/arp-a.out","lines_changed":13},{"name":"tests/fixtures/osx-10.14.6/arp-a.json","lines_changed":1},{"name":"tests/fixtures/osx-10.14.6/arp-a.out","lines_changed":12},{"name":"tests/test_arp.py","lines_changed":24}]}},{"commit":"5e8c28a30a283b6ef525e9e78d3ef2a0e1526927","message":"comment fix","stats":{"files_changed":1,"insertions":1,"deletions":1,"files":["jc/parsers/ifconfig.py"],"file_stats":[{"name":"jc/parsers/ifconfig.py","lines_changed":2}]}},{"commit":"e5d39031645ac897e0c0297f514ee62efe02f5f9","message":"update ifconfig doc","stats":{"files_changed":1,"insertions":38,"deletions":17,"files":["docs/parsers/ifconfig.md"],"file_stats":[{"name":"docs/parsers/ifconfig.md","lines_changed":55}]}},{"commit":"23975c9c9e1dd9d3e9fd7c05d231a86d646be048","message":"fixup osx subnet mask and convert state to an array","stats":{"files_changed":10,"insertions":132,"deletions":45,"files":["README.md","changelog.txt","jc/parsers/ifconfig.py","tests/fixtures/centos-7.7/ifconfig.json","tests/fixtures/osx-10.11.6/ifconfig.json","tests/fixtures/osx-10.11.6/ifconfig2.json","tests/fixtures/osx-10.14.6/ifconfig.json","tests/fixtures/osx-10.14.6/ifconfig2.json","tests/fixtures/ubuntu-18.04/ifconfig.json","tests/test_ifconfig.py"],"file_stats":[{"name":"README.md","lines_changed":35},{"name":"changelog.txt","lines_changed":2},{"name":"jc/parsers/ifconfig.py","lines_changed":80},{"name":"tests/fixtures/centos-7.7/ifconfig.json","lines_changed":2},{"name":"tests/fixtures/osx-10.11.6/ifconfig.json","lines_changed":2},{"name":"tests/fixtures/osx-10.11.6/ifconfig2.json","lines_changed":2},{"name":"tests/fixtures/osx-10.14.6/ifconfig.json","lines_changed":2},{"name":"tests/fixtures/osx-10.14.6/ifconfig2.json","lines_changed":2},{"name":"tests/fixtures/ubuntu-18.04/ifconfig.json","lines_changed":2},{"name":"tests/test_ifconfig.py","lines_changed":48}]}},{"commit":"1e0dab8355e6fcb0ecde85270d4daac6ad93875b","message":"ifconfig fixture updates","stats":{"files_changed":10,"insertions":272,"deletions":2,"files":["tests/fixtures/centos-7.7/ifconfig.json","tests/fixtures/osx-10.11.6/ifconfig.json","tests/fixtures/osx-10.11.6/ifconfig.out","tests/fixtures/osx-10.11.6/ifconfig2.json","tests/fixtures/osx-10.11.6/ifconfig2.out","tests/fixtures/osx-10.14.6/ifconfig.json","tests/fixtures/osx-10.14.6/ifconfig.out","tests/fixtures/osx-10.14.6/ifconfig2.json","tests/fixtures/osx-10.14.6/ifconfig2.out","tests/fixtures/ubuntu-18.04/ifconfig.json"],"file_stats":[{"name":"tests/fixtures/centos-7.7/ifconfig.json","lines_changed":2},{"name":"tests/fixtures/osx-10.11.6/ifconfig.json","lines_changed":1},{"name":"tests/fixtures/osx-10.11.6/ifconfig.out","lines_changed":40},{"name":"tests/fixtures/osx-10.11.6/ifconfig2.json","lines_changed":1},{"name":"tests/fixtures/osx-10.11.6/ifconfig2.out","lines_changed":40},{"name":"tests/fixtures/osx-10.14.6/ifconfig.json","lines_changed":1},{"name":"tests/fixtures/osx-10.14.6/ifconfig.out","lines_changed":91},{"name":"tests/fixtures/osx-10.14.6/ifconfig2.json","lines_changed":1},{"name":"tests/fixtures/osx-10.14.6/ifconfig2.out","lines_changed":95},{"name":"tests/fixtures/ubuntu-18.04/ifconfig.json","lines_changed":2}]}},{"commit":"5f4c10ffd5a9cbe4e5e3d2b9adc34f36492eaf46","message":"doc update","stats":{"files_changed":2,"insertions":6,"deletions":0,"files":["README.md","changelog.txt"],"file_stats":[{"name":"README.md","lines_changed":2},{"name":"changelog.txt","lines_changed":4}]}},{"commit":"6f3d2b4b566b963fbf38572c587e8bd4e18881dc","message":"require ifconfig-parser v0.0.5 for mac and bytes support","stats":{"files_changed":1,"insertions":1,"deletions":1,"files":["setup.py"],"file_stats":[{"name":"setup.py","lines_changed":2}]}},{"commit":"fea8ace8446b64abe9e61a028951bc4e6df9f9c9","message":"add OSX compatibility","stats":{"files_changed":2,"insertions":20,"deletions":6,"files":["README.md","jc/parsers/ifconfig.py"],"file_stats":[{"name":"README.md","lines_changed":4},{"name":"jc/parsers/ifconfig.py","lines_changed":22}]}},{"commit":"6633d9262c936217d8e90e64505c66b006cdab56","message":"Set theme jekyll-theme-cayman","stats":{"files_changed":1,"insertions":1,"deletions":0,"files":["_config.yml"],"file_stats":[{"name":"_config.yml","lines_changed":1}]}},{"commit":"7d54137140e6d0515bc23c131a097af5c70c3379","message":"link update","stats":{"files_changed":1,"insertions":1,"deletions":1,"files":["README.md"],"file_stats":[{"name":"README.md","lines_changed":2}]}},{"commit":"2fcda6f2480ae6bd5428a0147c19f9af527391b8","message":"add motivation to readme","stats":{"files_changed":1,"insertions":1,"deletions":0,"files":["README.md"],"file_stats":[{"name":"README.md","lines_changed":1}]}},{"commit":"9c1b8bacf9a59a86feb2a91eb44919e800491d1e","message":"Merge pull request #16 from kellyjonbrazil/dev"},{"commit":"4867655eb297b1da7a55e0d3a24c7ed7c8af55c7","message":"add line-numbers tests","stats":{"files_changed":6,"insertions":172,"deletions":0,"files":[".../centos-7.7/iptables-filter-line-numbers.json",".../centos-7.7/iptables-filter-line-numbers.out","tests/fixtures/create_fixtures.sh",".../ubuntu-18.04/iptables-filter-line-numbers.json",".../ubuntu-18.04/iptables-filter-line-numbers.out","tests/test_iptables.py"],"file_stats":[{"name":".../centos-7.7/iptables-filter-line-numbers.json","lines_changed":1},{"name":".../centos-7.7/iptables-filter-line-numbers.out","lines_changed":128},{"name":"tests/fixtures/create_fixtures.sh","lines_changed":1},{"name":".../ubuntu-18.04/iptables-filter-line-numbers.json","lines_changed":1},{"name":".../ubuntu-18.04/iptables-filter-line-numbers.out","lines_changed":17},{"name":"tests/test_iptables.py","lines_changed":24}]}},{"commit":"47410d1a95406b0960aac705e7cfe925fea3172c","message":"version bump","stats":{"files_changed":2,"insertions":2,"deletions":2,"files":["changelog.txt","setup.py"],"file_stats":[{"name":"changelog.txt","lines_changed":2},{"name":"setup.py","lines_changed":2}]}},{"commit":"5fa49f5e672fc6f8dc18fb4b1761c98b81362649","message":"changelog update","stats":{"files_changed":1,"insertions":1,"deletions":0,"files":["changelog.txt"],"file_stats":[{"name":"changelog.txt","lines_changed":1}]}},{"commit":"36c53827fab6ac38c0010250ec387db40fdeecfc","message":"add systemctl tests","stats":{"files_changed":19,"insertions":1316,"deletions":308,"files":["tests/fixtures/centos-7.7/systemctl-ls.json","tests/fixtures/centos-7.7/systemctl-ls.out","tests/fixtures/centos-7.7/systemctl-luf.json","tests/fixtures/centos-7.7/systemctl-luf.out","tests/fixtures/centos-7.7/systemctl.json","tests/fixtures/centos-7.7/systemctl.out","tests/fixtures/create_fixtures.sh","tests/fixtures/ubuntu-18.04/systemctl-lj.json","tests/fixtures/ubuntu-18.04/systemctl-lj.out","tests/fixtures/ubuntu-18.04/systemctl-ls.json","tests/fixtures/ubuntu-18.04/systemctl-ls.out","tests/fixtures/ubuntu-18.04/systemctl-luf.json","tests/fixtures/ubuntu-18.04/systemctl-luf.out","tests/fixtures/ubuntu-18.04/systemctl.json","tests/fixtures/ubuntu-18.04/systemctl.out","tests/test_systemctl.py","tests/test_systemctl_lj.py","tests/test_systemctl_ls.py","tests/test_systemctl_luf.py"],"file_stats":[{"name":"tests/fixtures/centos-7.7/systemctl-ls.json","lines_changed":1},{"name":"tests/fixtures/centos-7.7/systemctl-ls.out","lines_changed":17},{"name":"tests/fixtures/centos-7.7/systemctl-luf.json","lines_changed":1},{"name":"tests/fixtures/centos-7.7/systemctl-luf.out","lines_changed":247},{"name":"tests/fixtures/centos-7.7/systemctl.json","lines_changed":2},{"name":"tests/fixtures/centos-7.7/systemctl.out","lines_changed":334},{"name":"tests/fixtures/create_fixtures.sh","lines_changed":8},{"name":"tests/fixtures/ubuntu-18.04/systemctl-lj.json","lines_changed":1},{"name":"tests/fixtures/ubuntu-18.04/systemctl-lj.out","lines_changed":6},{"name":"tests/fixtures/ubuntu-18.04/systemctl-ls.json","lines_changed":1},{"name":"tests/fixtures/ubuntu-18.04/systemctl-ls.out","lines_changed":27},{"name":"tests/fixtures/ubuntu-18.04/systemctl-luf.json","lines_changed":1},{"name":"tests/fixtures/ubuntu-18.04/systemctl-luf.out","lines_changed":324},{"name":"tests/fixtures/ubuntu-18.04/systemctl.json","lines_changed":2},{"name":"tests/fixtures/ubuntu-18.04/systemctl.out","lines_changed":528},{"name":"tests/test_systemctl.py","lines_changed":4},{"name":"tests/test_systemctl_lj.py","lines_changed":40},{"name":"tests/test_systemctl_ls.py","lines_changed":40},{"name":"tests/test_systemctl_luf.py","lines_changed":40}]}},{"commit":"51631aef5b1b6fdeff4ab543510a9f9e15a0c2c4","message":"add systemctl tests","stats":{"files_changed":5,"insertions":358,"deletions":0,"files":["tests/fixtures/centos-7.7/systemctl.json","tests/fixtures/centos-7.7/systemctl.out","tests/fixtures/ubuntu-18.04/systemctl.json","tests/fixtures/ubuntu-18.04/systemctl.out","tests/test_systemctl.py"],"file_stats":[{"name":"tests/fixtures/centos-7.7/systemctl.json","lines_changed":1},{"name":"tests/fixtures/centos-7.7/systemctl.out","lines_changed":118},{"name":"tests/fixtures/ubuntu-18.04/systemctl.json","lines_changed":1},{"name":"tests/fixtures/ubuntu-18.04/systemctl.out","lines_changed":198},{"name":"tests/test_systemctl.py","lines_changed":40}]}},{"commit":"a0298ac8a39093620b6859c909a78d11ab4a8e56","message":"add fstab tests","stats":{"files_changed":5,"insertions":55,"deletions":0,"files":["tests/fixtures/centos-7.7/fstab.json","tests/fixtures/centos-7.7/fstab.out","tests/fixtures/ubuntu-18.04/fstab.json","tests/fixtures/ubuntu-18.04/fstab.out","tests/test_fstab.py"],"file_stats":[{"name":"tests/fixtures/centos-7.7/fstab.json","lines_changed":1},{"name":"tests/fixtures/centos-7.7/fstab.out","lines_changed":11},{"name":"tests/fixtures/ubuntu-18.04/fstab.json","lines_changed":1},{"name":"tests/fixtures/ubuntu-18.04/fstab.out","lines_changed":2},{"name":"tests/test_fstab.py","lines_changed":40}]}},{"commit":"98c0188821ebaa71c5661f2e095cf464bec695f2","message":"formatting fix","stats":{"files_changed":2,"insertions":2,"deletions":2,"files":["docs/parsers/systemctl_ls.md","jc/parsers/systemctl_ls.py"],"file_stats":[{"name":"docs/parsers/systemctl_ls.md","lines_changed":2},{"name":"jc/parsers/systemctl_ls.py","lines_changed":2}]}},{"commit":"ab1dabe3e42997825707006b63cc0c03d28470d4","message":"doc update","stats":{"files_changed":4,"insertions":4,"deletions":4,"files":["docs/parsers/systemctl_lj.md","docs/parsers/systemctl_ls.md","jc/parsers/systemctl_lj.py","jc/parsers/systemctl_ls.py"],"file_stats":[{"name":"docs/parsers/systemctl_lj.md","lines_changed":2},{"name":"docs/parsers/systemctl_ls.md","lines_changed":2},{"name":"jc/parsers/systemctl_lj.py","lines_changed":2},{"name":"jc/parsers/systemctl_ls.py","lines_changed":2}]}},{"commit":"94bdb11fdf0e16d89769046d317643334ef1acdd","message":"remove systemctl from TODO","stats":{"files_changed":1,"insertions":0,"deletions":1,"files":["README.md"],"file_stats":[{"name":"README.md","lines_changed":1}]}},{"commit":"b6727d68bab66164a3834b240ae868062aad9371","message":"add systemctl parsers","stats":{"files_changed":1,"insertions":68,"deletions":0,"files":["README.md"],"file_stats":[{"name":"README.md","lines_changed":68}]}},{"commit":"89bad7fc2b4023b10b6eeb7ff1f8f18b71731cb6","message":"remove systemctl list-machines parser","stats":{"files_changed":5,"insertions":1,"deletions":191,"files":["changelog.txt","docgen.sh","docs/parsers/systemctl_lm.md","jc/cli.py","jc/parsers/systemctl_lm.py"],"file_stats":[{"name":"changelog.txt","lines_changed":2},{"name":"docgen.sh","lines_changed":1},{"name":"docs/parsers/systemctl_lm.md","lines_changed":76},{"name":"jc/cli.py","lines_changed":3},{"name":"jc/parsers/systemctl_lm.py","lines_changed":110}]}},{"commit":"c0b8b810a2616e77973c1223f9c39329112337ac","message":"add systemctl list parsers","stats":{"files_changed":5,"insertions":306,"deletions":0,"files":["docgen.sh","docs/parsers/systemctl_lj.md","docs/parsers/systemctl_lm.md","docs/parsers/systemctl_ls.md","docs/parsers/systemctl_luf.md"],"file_stats":[{"name":"docgen.sh","lines_changed":4},{"name":"docs/parsers/systemctl_lj.md","lines_changed":94},{"name":"docs/parsers/systemctl_lm.md","lines_changed":76},{"name":"docs/parsers/systemctl_ls.md","lines_changed":68},{"name":"docs/parsers/systemctl_luf.md","lines_changed":64}]}},{"commit":"31eb65acd18b6d9163de900dbe48807a41a23785","message":"doc fix","stats":{"files_changed":1,"insertions":2,"deletions":2,"files":["jc/parsers/systemctl_lm.py"],"file_stats":[{"name":"jc/parsers/systemctl_lm.py","lines_changed":4}]}},{"commit":"513bbeb4649c011476930e1d1bf739ff06c2d66f","message":"add break on footer condition","stats":{"files_changed":1,"insertions":1,"deletions":1,"files":["jc/parsers/systemctl_lj.py"],"file_stats":[{"name":"jc/parsers/systemctl_lj.py","lines_changed":2}]}},{"commit":"3a52fb725a0e56b52a0ea430266400b268360737","message":"add systemctl list-jobs parser","stats":{"files_changed":2,"insertions":55,"deletions":29,"files":["jc/cli.py","jc/parsers/systemctl_lj.py"],"file_stats":[{"name":"jc/cli.py","lines_changed":4},{"name":"jc/parsers/systemctl_lj.py","lines_changed":80}]}},{"commit":"5affd444999de88b9bff7b49d790913540f97cd2","message":"add systemctl_lj, lm, ls, and luf","stats":{"files_changed":6,"insertions":342,"deletions":24,"files":["jc/cli.py","jc/parsers/systemctl.py","jc/parsers/systemctl_lj.py","jc/parsers/systemctl_lm.py","jc/parsers/systemctl_ls.py","jc/parsers/systemctl_luf.py"],"file_stats":[{"name":"jc/cli.py","lines_changed":11},{"name":"jc/parsers/systemctl.py","lines_changed":2},{"name":"jc/parsers/systemctl_lj.py","lines_changed":110},{"name":"jc/parsers/systemctl_lm.py","lines_changed":110},{"name":"jc/parsers/systemctl_ls.py","lines_changed":101},{"name":"jc/parsers/systemctl_luf.py","lines_changed":32}]}},{"commit":"5dbc6e806c5d05bfa1f7e2156ed2573341eb23c9","message":"add systemctl_luf parser","stats":{"files_changed":2,"insertions":142,"deletions":29,"files":["jc/cli.py","jc/parsers/systemctl_luf.py"],"file_stats":[{"name":"jc/cli.py","lines_changed":61},{"name":"jc/parsers/systemctl_luf.py","lines_changed":110}]}},{"commit":"59ae31f3f342c9337037aac4630310c9b9eb8287","message":"add systemctl parser","stats":{"files_changed":6,"insertions":219,"deletions":0,"files":["README.md","changelog.txt","docgen.sh","docs/parsers/systemctl.md","jc/cli.py","jc/parsers/systemctl.py"],"file_stats":[{"name":"README.md","lines_changed":29},{"name":"changelog.txt","lines_changed":1},{"name":"docgen.sh","lines_changed":1},{"name":"docs/parsers/systemctl.md","lines_changed":76},{"name":"jc/cli.py","lines_changed":3},{"name":"jc/parsers/systemctl.py","lines_changed":109}]}},{"commit":"230e921c2e8d931ea8a6abdf81215dbfc968b41c","message":"remove fstab from TODO","stats":{"files_changed":1,"insertions":0,"deletions":1,"files":["README.md"],"file_stats":[{"name":"README.md","lines_changed":1}]}},{"commit":"a7c3d88b08ab90b719035cb15d78afe708235742","message":"update example and docs","stats":{"files_changed":3,"insertions":136,"deletions":0,"files":["docgen.sh","docs/parsers/fstab.md","jc/parsers/fstab.py"],"file_stats":[{"name":"docgen.sh","lines_changed":1},{"name":"docs/parsers/fstab.md","lines_changed":107},{"name":"jc/parsers/fstab.py","lines_changed":28}]}},{"commit":"9b453bcb84dd9f2f566955eda1ab35c863b3e8a1","message":"remove commented code block","stats":{"files_changed":1,"insertions":1,"deletions":13,"files":["jc/parsers/fstab.py"],"file_stats":[{"name":"jc/parsers/fstab.py","lines_changed":14}]}},{"commit":"ce43c782f601fc12267fa22279e8e0142ecc3a7f","message":"fstab update","stats":{"files_changed":1,"insertions":1,"deletions":1,"files":["README.md"],"file_stats":[{"name":"README.md","lines_changed":2}]}},{"commit":"cb16faaf4d1700379d53053fe06824fd03404f87","message":"helptext update","stats":{"files_changed":1,"insertions":1,"deletions":1,"files":["jc/cli.py"],"file_stats":[{"name":"jc/cli.py","lines_changed":2}]}},{"commit":"3f1d3ff6d85422536e0adfb6433fd3ec0399ebe1","message":"add examples","stats":{"files_changed":2,"insertions":73,"deletions":6,"files":["README.md","jc/parsers/fstab.py"],"file_stats":[{"name":"README.md","lines_changed":31},{"name":"jc/parsers/fstab.py","lines_changed":48}]}},{"commit":"6f67eecd5ed46f8a692ff5dd607a2395a5c838ff","message":"add fstab parser","stats":{"files_changed":2,"insertions":108,"deletions":0,"files":["jc/cli.py","jc/parsers/fstab.py"],"file_stats":[{"name":"jc/cli.py","lines_changed":3},{"name":"jc/parsers/fstab.py","lines_changed":105}]}},{"commit":"e75c819190634f0a9048942b39eda691831829ee","message":"changelog update","stats":{"files_changed":1,"insertions":2,"deletions":0,"files":["changelog.txt"],"file_stats":[{"name":"changelog.txt","lines_changed":2}]}},{"commit":"601e68d104dd43940acadaa574dfd9b5117b0476","message":"doc update","stats":{"files_changed":2,"insertions":2,"deletions":2,"files":["docs/parsers/hosts.md","jc/parsers/hosts.py"],"file_stats":[{"name":"docs/parsers/hosts.md","lines_changed":2},{"name":"jc/parsers/hosts.py","lines_changed":2}]}},{"commit":"8285ecfd1e7810102cdbc399398a16f999c841ee","message":"enhance test file with comments","stats":{"files_changed":2,"insertions":4,"deletions":2,"files":["tests/fixtures/centos-7.7/hosts.out","tests/fixtures/ubuntu-18.04/hosts.out"],"file_stats":[{"name":"tests/fixtures/centos-7.7/hosts.out","lines_changed":3},{"name":"tests/fixtures/ubuntu-18.04/hosts.out","lines_changed":3}]}},{"commit":"8726de902e527b95a12afd79a53d533cc176703d","message":"add hosts parser","stats":{"files_changed":1,"insertions":1,"deletions":0,"files":["changelog.txt"],"file_stats":[{"name":"changelog.txt","lines_changed":1}]}},{"commit":"4133585274b0e7faa0255a911468248eb390d673","message":"add hosts tests","stats":{"files_changed":5,"insertions":53,"deletions":0,"files":["tests/fixtures/centos-7.7/hosts.json","tests/fixtures/centos-7.7/hosts.out","tests/fixtures/ubuntu-18.04/hosts.json","tests/fixtures/ubuntu-18.04/hosts.out","tests/test_hosts.py"],"file_stats":[{"name":"tests/fixtures/centos-7.7/hosts.json","lines_changed":1},{"name":"tests/fixtures/centos-7.7/hosts.out","lines_changed":2},{"name":"tests/fixtures/ubuntu-18.04/hosts.json","lines_changed":1},{"name":"tests/fixtures/ubuntu-18.04/hosts.out","lines_changed":9},{"name":"tests/test_hosts.py","lines_changed":40}]}},{"commit":"ad913b141721655a72a7b2a6ad60037e5acd5f9a","message":"add hosts docs","stats":{"files_changed":4,"insertions":148,"deletions":2,"files":["README.md","docgen.sh","docs/parsers/hosts.md","jc/parsers/hosts.py"],"file_stats":[{"name":"README.md","lines_changed":51},{"name":"docgen.sh","lines_changed":1},{"name":"docs/parsers/hosts.md","lines_changed":96},{"name":"jc/parsers/hosts.py","lines_changed":2}]}},{"commit":"7113e5a844fc0304f62f4afe65b5cbc816f75372","message":"filter out comments at the end of the line","stats":{"files_changed":1,"insertions":10,"deletions":0,"files":["jc/parsers/hosts.py"],"file_stats":[{"name":"jc/parsers/hosts.py","lines_changed":10}]}},{"commit":"a3a8369dc0e7227072f595cef1e57d471eff4d2f","message":"add docs","stats":{"files_changed":1,"insertions":51,"deletions":9,"files":["jc/parsers/hosts.py"],"file_stats":[{"name":"jc/parsers/hosts.py","lines_changed":60}]}},{"commit":"64016b8ef049d5d4f02b4371f5cc9632c19bcaa2","message":"add hosts parser","stats":{"files_changed":2,"insertions":92,"deletions":0,"files":["jc/cli.py","jc/parsers/hosts.py"],"file_stats":[{"name":"jc/cli.py","lines_changed":3},{"name":"jc/parsers/hosts.py","lines_changed":89}]}},{"commit":"1cb49d60c84054b0446f299f6b4bab7d102101c1","message":"remove sar and sadf","stats":{"files_changed":1,"insertions":0,"deletions":2,"files":["README.md"],"file_stats":[{"name":"README.md","lines_changed":2}]}},{"commit":"c858adfd12144569d0b990a217c5bcd75bd23828","message":"remove stat from todo","stats":{"files_changed":1,"insertions":0,"deletions":1,"files":["README.md"],"file_stats":[{"name":"README.md","lines_changed":1}]}},{"commit":"08d68327c777dd740d93a1b5fff8cf62f58904c6","message":"add stat tests","stats":{"files_changed":5,"insertions":8080,"deletions":0,"files":["tests/fixtures/centos-7.7/stat.json","tests/fixtures/centos-7.7/stat.out","tests/fixtures/ubuntu-18.04/stat.json","tests/fixtures/ubuntu-18.04/stat.out","tests/test_stat.py"],"file_stats":[{"name":"tests/fixtures/centos-7.7/stat.json","lines_changed":1},{"name":"tests/fixtures/centos-7.7/stat.out","lines_changed":6678},{"name":"tests/fixtures/ubuntu-18.04/stat.json","lines_changed":1},{"name":"tests/fixtures/ubuntu-18.04/stat.out","lines_changed":1360},{"name":"tests/test_stat.py","lines_changed":40}]}},{"commit":"0d7c6c5664911af7a41149d51dd6ae05b39d7648","message":"doc fix and add continue lines","stats":{"files_changed":2,"insertions":8,"deletions":4,"files":["docs/parsers/stat.md","jc/parsers/stat.py"],"file_stats":[{"name":"docs/parsers/stat.md","lines_changed":4},{"name":"jc/parsers/stat.py","lines_changed":8}]}},{"commit":"8bfa41dbf485cb06c928bc00a68727d2ceac21fa","message":"change values to null if -","stats":{"files_changed":3,"insertions":22,"deletions":14,"files":["README.md","docs/parsers/stat.md","jc/parsers/stat.py"],"file_stats":[{"name":"README.md","lines_changed":4},{"name":"docs/parsers/stat.md","lines_changed":12},{"name":"jc/parsers/stat.py","lines_changed":20}]}},{"commit":"7e2fa48ed4f3fd452082ce06e7306efd38b2d508","message":"update changelog","stats":{"files_changed":1,"insertions":1,"deletions":0,"files":["changelog.txt"],"file_stats":[{"name":"changelog.txt","lines_changed":1}]}},{"commit":"340635cad5224f2c715bf961956f4b9b6119d80b","message":"fix stats doc","stats":{"files_changed":3,"insertions":408,"deletions":111,"files":["docgen.sh","docs/parsers/ss.md","docs/parsers/stat.md"],"file_stats":[{"name":"docgen.sh","lines_changed":2},{"name":"docs/parsers/ss.md","lines_changed":363},{"name":"docs/parsers/stat.md","lines_changed":154}]}},{"commit":"8f77d1de098f035767d73a6965a695b95b75e161","message":"add stat docs","stats":{"files_changed":2,"insertions":111,"deletions":253,"files":["docgen.sh","docs/parsers/ss.md"],"file_stats":[{"name":"docgen.sh","lines_changed":1},{"name":"docs/parsers/ss.md","lines_changed":363}]}},{"commit":"7dcf1b25ffb801375f0bf4263f34713ded904de9","message":"add link_to field","stats":{"files_changed":1,"insertions":13,"deletions":0,"files":["jc/parsers/stat.py"],"file_stats":[{"name":"jc/parsers/stat.py","lines_changed":13}]}},{"commit":"9b735381063a1167a6a74864a43b81aefd98009f","message":"set compatibility to linux only","stats":{"files_changed":1,"insertions":1,"deletions":1,"files":["jc/parsers/stat.py"],"file_stats":[{"name":"jc/parsers/stat.py","lines_changed":2}]}},{"commit":"3bf8c8c6dbdf7e03e26b4581e35c3274084c07ef","message":"pep8 fixes","stats":{"files_changed":7,"insertions":27,"deletions":27,"files":["jc/parsers/mount.py","jc/parsers/netstat.py","jc/parsers/ps.py","jc/parsers/route.py","jc/parsers/uname.py","jc/parsers/uptime.py","jc/parsers/w.py"],"file_stats":[{"name":"jc/parsers/mount.py","lines_changed":6},{"name":"jc/parsers/netstat.py","lines_changed":8},{"name":"jc/parsers/ps.py","lines_changed":8},{"name":"jc/parsers/route.py","lines_changed":8},{"name":"jc/parsers/uname.py","lines_changed":8},{"name":"jc/parsers/uptime.py","lines_changed":8},{"name":"jc/parsers/w.py","lines_changed":8}]}},{"commit":"04a1ff2ca7873d55cdbc831e521f3d4892074d98","message":"pep8 fixes","stats":{"files_changed":8,"insertions":28,"deletions":28,"files":["jc/parsers/history.py","jc/parsers/ifconfig.py","jc/parsers/iptables.py","jc/parsers/jobs.py","jc/parsers/ls.py","jc/parsers/lsblk.py","jc/parsers/lsmod.py","jc/parsers/lsof.py"],"file_stats":[{"name":"jc/parsers/history.py","lines_changed":8},{"name":"jc/parsers/ifconfig.py","lines_changed":2},{"name":"jc/parsers/iptables.py","lines_changed":6},{"name":"jc/parsers/jobs.py","lines_changed":6},{"name":"jc/parsers/ls.py","lines_changed":8},{"name":"jc/parsers/lsblk.py","lines_changed":10},{"name":"jc/parsers/lsmod.py","lines_changed":8},{"name":"jc/parsers/lsof.py","lines_changed":8}]}},{"commit":"64647d230ac936cb43864481ae0f45d13707d7b4","message":"pep8 cleanup","stats":{"files_changed":6,"insertions":21,"deletions":21,"files":["jc/parsers/arp.py","jc/parsers/df.py","jc/parsers/dig.py","jc/parsers/env.py","jc/parsers/foo.py","jc/parsers/free.py"],"file_stats":[{"name":"jc/parsers/arp.py","lines_changed":4},{"name":"jc/parsers/df.py","lines_changed":8},{"name":"jc/parsers/dig.py","lines_changed":8},{"name":"jc/parsers/env.py","lines_changed":8},{"name":"jc/parsers/foo.py","lines_changed":8},{"name":"jc/parsers/free.py","lines_changed":6}]}},{"commit":"c2a67e1b70f33044aecabd8b46018117cb38cb9c","message":"add stat parser","stats":{"files_changed":2,"insertions":213,"deletions":16,"files":["README.md","jc/parsers/stat.py"],"file_stats":[{"name":"README.md","lines_changed":48},{"name":"jc/parsers/stat.py","lines_changed":181}]}},{"commit":"edb9a7c76e1fedaf37b6a226ad4e1cfc08a9a5ec","message":"add stat parser","stats":{"files_changed":2,"insertions":94,"deletions":0,"files":["jc/cli.py","jc/parsers/stat.py"],"file_stats":[{"name":"jc/cli.py","lines_changed":3},{"name":"jc/parsers/stat.py","lines_changed":91}]}},{"commit":"a407f5b67833cc5f8dda9fe8265cd34e62f28d14","message":"minor update","stats":{"files_changed":1,"insertions":1,"deletions":1,"files":["README.md"],"file_stats":[{"name":"README.md","lines_changed":2}]}},{"commit":"e5b4987acb70e854d9996350235c5535b4a46b69","message":"doc update","stats":{"files_changed":1,"insertions":1,"deletions":1,"files":["README.md"],"file_stats":[{"name":"README.md","lines_changed":2}]}},{"commit":"ba8cc18eebe779742cff0ba4c8bebe376e787c8c","message":"add ss tests","stats":{"files_changed":5,"insertions":405,"deletions":0,"files":["tests/fixtures/centos-7.7/ss-sudo-a.json","tests/fixtures/centos-7.7/ss-sudo-a.out","tests/fixtures/ubuntu-18.04/ss-sudo-a.json","tests/fixtures/ubuntu-18.04/ss-sudo-a.out","tests/test_ss.py"],"file_stats":[{"name":"tests/fixtures/centos-7.7/ss-sudo-a.json","lines_changed":1},{"name":"tests/fixtures/centos-7.7/ss-sudo-a.out","lines_changed":204},{"name":"tests/fixtures/ubuntu-18.04/ss-sudo-a.json","lines_changed":1},{"name":"tests/fixtures/ubuntu-18.04/ss-sudo-a.out","lines_changed":159},{"name":"tests/test_ss.py","lines_changed":40}]}},{"commit":"d2c7316e00b9aaf19231c05351821041458baf98","message":"update command options info","stats":{"files_changed":1,"insertions":2,"deletions":2,"files":["README.md"],"file_stats":[{"name":"README.md","lines_changed":4}]}},{"commit":"609aa14d243206e81ed31f8438c3f42e8263e140","message":"spelling fix","stats":{"files_changed":2,"insertions":2,"deletions":2,"files":["docs/parsers/ss.md","jc/parsers/ss.py"],"file_stats":[{"name":"docs/parsers/ss.md","lines_changed":2},{"name":"jc/parsers/ss.py","lines_changed":2}]}},{"commit":"ef1ad4c700fcb740b5fbe1e12205b9a30ae427ab","message":"doc update","stats":{"files_changed":2,"insertions":6,"deletions":0,"files":["docs/parsers/ss.md","jc/parsers/ss.py"],"file_stats":[{"name":"docs/parsers/ss.md","lines_changed":3},{"name":"jc/parsers/ss.py","lines_changed":3}]}},{"commit":"a0e2732152dc3005914b9a3e4f03e937a113c67f","message":"add ss example","stats":{"files_changed":1,"insertions":64,"deletions":12,"files":["README.md"],"file_stats":[{"name":"README.md","lines_changed":76}]}},{"commit":"9b5d3e3be1ac07813e716f8426fe89cced478221","message":"update doc","stats":{"files_changed":1,"insertions":135,"deletions":25,"files":["docs/parsers/ss.md"],"file_stats":[{"name":"docs/parsers/ss.md","lines_changed":160}]}},{"commit":"2663ef31fbc1b69b89b8032640a25065cc953866","message":"fix field names per ss documentation","stats":{"files_changed":1,"insertions":159,"deletions":30,"files":["jc/parsers/ss.py"],"file_stats":[{"name":"jc/parsers/ss.py","lines_changed":189}]}},{"commit":"a4cdd3378e6a031f16dd371ed5cd60ff018feb32","message":"add compatibility info","stats":{"files_changed":1,"insertions":6,"deletions":0,"files":["README.md"],"file_stats":[{"name":"README.md","lines_changed":6}]}},{"commit":"2f805da24d0e833e3d2a1f3a5ec34031fa911c05","message":"add colon to parameter in docs","stats":{"files_changed":45,"insertions":51,"deletions":51,"files":["docs/parsers/arp.md","docs/parsers/df.md","docs/parsers/dig.md","docs/parsers/env.md","docs/parsers/free.md","docs/parsers/history.md","docs/parsers/ifconfig.md","docs/parsers/iptables.md","docs/parsers/jobs.md","docs/parsers/ls.md","docs/parsers/lsblk.md","docs/parsers/lsmod.md","docs/parsers/lsof.md","docs/parsers/mount.md","docs/parsers/netstat.md","docs/parsers/ps.md","docs/parsers/route.md","docs/parsers/ss.md","docs/parsers/uname.md","docs/parsers/uptime.md","docs/parsers/w.md","docs/utils.md","jc/parsers/arp.py","jc/parsers/df.py","jc/parsers/dig.py","jc/parsers/env.py","jc/parsers/foo.py","jc/parsers/free.py","jc/parsers/history.py","jc/parsers/ifconfig.py","jc/parsers/iptables.py","jc/parsers/jobs.py","jc/parsers/ls.py","jc/parsers/lsblk.py","jc/parsers/lsmod.py","jc/parsers/lsof.py","jc/parsers/mount.py","jc/parsers/netstat.py","jc/parsers/ps.py","jc/parsers/route.py","jc/parsers/ss.py","jc/parsers/uname.py","jc/parsers/uptime.py","jc/parsers/w.py","jc/utils.py"],"file_stats":[{"name":"docs/parsers/arp.md","lines_changed":2},{"name":"docs/parsers/df.md","lines_changed":2},{"name":"docs/parsers/dig.md","lines_changed":2},{"name":"docs/parsers/env.md","lines_changed":2},{"name":"docs/parsers/free.md","lines_changed":2},{"name":"docs/parsers/history.md","lines_changed":2},{"name":"docs/parsers/ifconfig.md","lines_changed":2},{"name":"docs/parsers/iptables.md","lines_changed":2},{"name":"docs/parsers/jobs.md","lines_changed":2},{"name":"docs/parsers/ls.md","lines_changed":2},{"name":"docs/parsers/lsblk.md","lines_changed":2},{"name":"docs/parsers/lsmod.md","lines_changed":2},{"name":"docs/parsers/lsof.md","lines_changed":2},{"name":"docs/parsers/mount.md","lines_changed":2},{"name":"docs/parsers/netstat.md","lines_changed":2},{"name":"docs/parsers/ps.md","lines_changed":2},{"name":"docs/parsers/route.md","lines_changed":2},{"name":"docs/parsers/ss.md","lines_changed":2},{"name":"docs/parsers/uname.md","lines_changed":2},{"name":"docs/parsers/uptime.md","lines_changed":2},{"name":"docs/parsers/w.md","lines_changed":2},{"name":"docs/utils.md","lines_changed":8},{"name":"jc/parsers/arp.py","lines_changed":2},{"name":"jc/parsers/df.py","lines_changed":2},{"name":"jc/parsers/dig.py","lines_changed":2},{"name":"jc/parsers/env.py","lines_changed":2},{"name":"jc/parsers/foo.py","lines_changed":2},{"name":"jc/parsers/free.py","lines_changed":2},{"name":"jc/parsers/history.py","lines_changed":2},{"name":"jc/parsers/ifconfig.py","lines_changed":2},{"name":"jc/parsers/iptables.py","lines_changed":2},{"name":"jc/parsers/jobs.py","lines_changed":2},{"name":"jc/parsers/ls.py","lines_changed":2},{"name":"jc/parsers/lsblk.py","lines_changed":2},{"name":"jc/parsers/lsmod.py","lines_changed":2},{"name":"jc/parsers/lsof.py","lines_changed":2},{"name":"jc/parsers/mount.py","lines_changed":2},{"name":"jc/parsers/netstat.py","lines_changed":2},{"name":"jc/parsers/ps.py","lines_changed":2},{"name":"jc/parsers/route.py","lines_changed":2},{"name":"jc/parsers/ss.py","lines_changed":2},{"name":"jc/parsers/uname.py","lines_changed":2},{"name":"jc/parsers/uptime.py","lines_changed":2},{"name":"jc/parsers/w.py","lines_changed":2},{"name":"jc/utils.py","lines_changed":8}]}},{"commit":"79152a946d93e4facf9711bfa0f421e1978e0f1f","message":"initialize network_list and socket_list variables","stats":{"files_changed":1,"insertions":2,"deletions":1,"files":["jc/parsers/netstat.py"],"file_stats":[{"name":"jc/parsers/netstat.py","lines_changed":3}]}},{"commit":"de37bb37d01b397df2b5992b4acd64817380401d","message":"add ss docs","stats":{"files_changed":3,"insertions":187,"deletions":1,"files":["docgen.sh","docs/parsers/ss.md","jc/parsers/ss.py"],"file_stats":[{"name":"docgen.sh","lines_changed":1},{"name":"docs/parsers/ss.md","lines_changed":184},{"name":"jc/parsers/ss.py","lines_changed":3}]}},{"commit":"f783e44e5c0cd05733da5d24573f06d05760f993","message":"doc fix","stats":{"files_changed":2,"insertions":1,"deletions":1,"files":["README.md","changelog.txt"],"file_stats":[{"name":"README.md","lines_changed":1},{"name":"changelog.txt","lines_changed":1}]}},{"commit":"af82f2c991ac0668485e75ae78a26b9553ec8b13","message":"update raw format note","stats":{"files_changed":1,"insertions":1,"deletions":1,"files":["README.md"],"file_stats":[{"name":"README.md","lines_changed":2}]}},{"commit":"46774daf9d3e0612df8f79d4b6b724e612ceb725","message":"doc update","stats":{"files_changed":2,"insertions":194,"deletions":4,"files":["README.md","jc/parsers/ss.py"],"file_stats":[{"name":"README.md","lines_changed":68},{"name":"jc/parsers/ss.py","lines_changed":130}]}},{"commit":"648306b7856fe2e296ce463ff4c9c2a8632c92d4","message":"process ss data","stats":{"files_changed":1,"insertions":44,"deletions":22,"files":["jc/parsers/ss.py"],"file_stats":[{"name":"jc/parsers/ss.py","lines_changed":66}]}},{"commit":"b7a4f205b80c0a6a41aaabf59703525ac526c295","message":"parser fixes","stats":{"files_changed":1,"insertions":17,"deletions":14,"files":["jc/parsers/ss.py"],"file_stats":[{"name":"jc/parsers/ss.py","lines_changed":31}]}},{"commit":"fdb168b43a69358a97bf43b71a0adbc7b1ef56f5","message":"add ss parser","stats":{"files_changed":2,"insertions":120,"deletions":0,"files":["jc/cli.py","jc/parsers/ss.py"],"file_stats":[{"name":"jc/cli.py","lines_changed":3},{"name":"jc/parsers/ss.py","lines_changed":117}]}},{"commit":"b6f65c93c462856f26201df0cbfe804b29a65169","message":"ps doc update","stats":{"files_changed":3,"insertions":43,"deletions":69,"files":["README.md","docs/parsers/ps.md","jc/parsers/ps.py"],"file_stats":[{"name":"README.md","lines_changed":26},{"name":"docs/parsers/ps.md","lines_changed":43},{"name":"jc/parsers/ps.py","lines_changed":43}]}},{"commit":"3f4838f17a81969718d9e5b6bafa21e0b92e1d95","message":"remove cli.md","stats":{"files_changed":2,"insertions":0,"deletions":6,"files":["docgen.sh","docs/cli.md"],"file_stats":[{"name":"docgen.sh","lines_changed":1},{"name":"docs/cli.md","lines_changed":5}]}},{"commit":"eef0dee2aa206716d9cf011bec58a06c46bbee15","message":"doc update","stats":{"files_changed":2,"insertions":8,"deletions":0,"files":["docs/utils.md","jc/utils.py"],"file_stats":[{"name":"docs/utils.md","lines_changed":4},{"name":"jc/utils.py","lines_changed":4}]}},{"commit":"e17388d3b2d1521d963bf9dd9e7a4ba5ba9bb09d","message":"doc update","stats":{"files_changed":2,"insertions":44,"deletions":4,"files":["docs/utils.md","jc/utils.py"],"file_stats":[{"name":"docs/utils.md","lines_changed":22},{"name":"jc/utils.py","lines_changed":26}]}},{"commit":"7e6a1bc719b7160ba70cd326ff6aa182993a7380","message":"doc update","stats":{"files_changed":2,"insertions":41,"deletions":63,"files":["docs/readme.md","jc/__init__.py"],"file_stats":[{"name":"docs/readme.md","lines_changed":51},{"name":"jc/__init__.py","lines_changed":53}]}},{"commit":"37738a2ea2f15af847e4b8383aba911e2020a3e8","message":"update contributions","stats":{"files_changed":1,"insertions":1,"deletions":1,"files":["README.md"],"file_stats":[{"name":"README.md","lines_changed":2}]}},{"commit":"c5834a57db8957723a1425b9db46c433e28a3af1","message":"add todo section","stats":{"files_changed":1,"insertions":14,"deletions":0,"files":["README.md"],"file_stats":[{"name":"README.md","lines_changed":14}]}},{"commit":"91b9373f380e06f91888811edbfb21747ff08810","message":"new examples","stats":{"files_changed":1,"insertions":417,"deletions":673,"files":["README.md"],"file_stats":[{"name":"README.md","lines_changed":1090}]}},{"commit":"ce0bb5b816eed0c75542ead474c3dcb8401be2d7","message":"formatting fix","stats":{"files_changed":1,"insertions":1,"deletions":1,"files":["README.md"],"file_stats":[{"name":"README.md","lines_changed":2}]}},{"commit":"f330ff0eff00586f46d18497f2441e94b6430e91","message":"wrap example text","stats":{"files_changed":1,"insertions":11,"deletions":1,"files":["README.md"],"file_stats":[{"name":"README.md","lines_changed":12}]}},{"commit":"4b02700414660b90518311485761870402368625","message":"update simple examples","stats":{"files_changed":1,"insertions":9,"deletions":20,"files":["README.md"],"file_stats":[{"name":"README.md","lines_changed":29}]}},{"commit":"ee30180376b7acec46314bbc483866bff41c362a","message":"fix note","stats":{"files_changed":1,"insertions":1,"deletions":1,"files":["README.md"],"file_stats":[{"name":"README.md","lines_changed":2}]}},{"commit":"338e0ff15c7fac84475c1ed107e6a23e7a009b1f","message":"add schema note","stats":{"files_changed":1,"insertions":2,"deletions":0,"files":["README.md"],"file_stats":[{"name":"README.md","lines_changed":2}]}},{"commit":"3ac75305dfa33429646bb5d415567034cccfeee3","message":"update process() doc","stats":{"files_changed":39,"insertions":351,"deletions":39,"files":["docs/parsers/df.md","docs/parsers/dig.md","docs/parsers/env.md","docs/parsers/free.md","docs/parsers/history.md","docs/parsers/ifconfig.md","docs/parsers/iptables.md","docs/parsers/jobs.md","docs/parsers/ls.md","docs/parsers/lsblk.md","docs/parsers/lsmod.md","docs/parsers/lsof.md","docs/parsers/mount.md","docs/parsers/netstat.md","docs/parsers/ps.md","docs/parsers/route.md","docs/parsers/uname.md","docs/parsers/uptime.md","docs/parsers/w.md","jc/parsers/df.py","jc/parsers/dig.py","jc/parsers/env.py","jc/parsers/foo.py","jc/parsers/free.py","jc/parsers/history.py","jc/parsers/ifconfig.py","jc/parsers/iptables.py","jc/parsers/jobs.py","jc/parsers/ls.py","jc/parsers/lsblk.py","jc/parsers/lsmod.py","jc/parsers/lsof.py","jc/parsers/mount.py","jc/parsers/netstat.py","jc/parsers/ps.py","jc/parsers/route.py","jc/parsers/uname.py","jc/parsers/uptime.py","jc/parsers/w.py"],"file_stats":[{"name":"docs/parsers/df.md","lines_changed":10},{"name":"docs/parsers/dig.md","lines_changed":10},{"name":"docs/parsers/env.md","lines_changed":10},{"name":"docs/parsers/free.md","lines_changed":10},{"name":"docs/parsers/history.md","lines_changed":10},{"name":"docs/parsers/ifconfig.md","lines_changed":10},{"name":"docs/parsers/iptables.md","lines_changed":10},{"name":"docs/parsers/jobs.md","lines_changed":10},{"name":"docs/parsers/ls.md","lines_changed":10},{"name":"docs/parsers/lsblk.md","lines_changed":10},{"name":"docs/parsers/lsmod.md","lines_changed":10},{"name":"docs/parsers/lsof.md","lines_changed":10},{"name":"docs/parsers/mount.md","lines_changed":10},{"name":"docs/parsers/netstat.md","lines_changed":10},{"name":"docs/parsers/ps.md","lines_changed":10},{"name":"docs/parsers/route.md","lines_changed":10},{"name":"docs/parsers/uname.md","lines_changed":10},{"name":"docs/parsers/uptime.md","lines_changed":10},{"name":"docs/parsers/w.md","lines_changed":10},{"name":"jc/parsers/df.py","lines_changed":10},{"name":"jc/parsers/dig.py","lines_changed":10},{"name":"jc/parsers/env.py","lines_changed":10},{"name":"jc/parsers/foo.py","lines_changed":10},{"name":"jc/parsers/free.py","lines_changed":10},{"name":"jc/parsers/history.py","lines_changed":10},{"name":"jc/parsers/ifconfig.py","lines_changed":10},{"name":"jc/parsers/iptables.py","lines_changed":10},{"name":"jc/parsers/jobs.py","lines_changed":10},{"name":"jc/parsers/ls.py","lines_changed":10},{"name":"jc/parsers/lsblk.py","lines_changed":10},{"name":"jc/parsers/lsmod.py","lines_changed":10},{"name":"jc/parsers/lsof.py","lines_changed":10},{"name":"jc/parsers/mount.py","lines_changed":10},{"name":"jc/parsers/netstat.py","lines_changed":10},{"name":"jc/parsers/ps.py","lines_changed":10},{"name":"jc/parsers/route.py","lines_changed":10},{"name":"jc/parsers/uname.py","lines_changed":10},{"name":"jc/parsers/uptime.py","lines_changed":10},{"name":"jc/parsers/w.py","lines_changed":10}]}},{"commit":"3bdcf44afb708cf6a716a0847b119f895602c23e","message":"doc update","stats":{"files_changed":2,"insertions":18,"deletions":2,"files":["docs/parsers/arp.md","jc/parsers/arp.py"],"file_stats":[{"name":"docs/parsers/arp.md","lines_changed":10},{"name":"jc/parsers/arp.py","lines_changed":10}]}},{"commit":"e3f4ffede56fe48c0a282a021ac5cdfd7a8abee9","message":"doc update","stats":{"files_changed":20,"insertions":172,"deletions":77,"files":["docs/parsers/arp.md","docs/parsers/df.md","docs/parsers/dig.md","docs/parsers/env.md","docs/parsers/free.md","docs/parsers/history.md","docs/parsers/ifconfig.md","docs/parsers/iptables.md","docs/parsers/jobs.md","docs/parsers/ls.md","docs/parsers/lsblk.md","docs/parsers/lsmod.md","docs/parsers/lsof.md","docs/parsers/mount.md","docs/parsers/netstat.md","docs/parsers/ps.md","docs/parsers/route.md","docs/parsers/uname.md","docs/parsers/uptime.md","docs/parsers/w.md"],"file_stats":[{"name":"docs/parsers/arp.md","lines_changed":2},{"name":"docs/parsers/df.md","lines_changed":13},{"name":"docs/parsers/dig.md","lines_changed":13},{"name":"docs/parsers/env.md","lines_changed":13},{"name":"docs/parsers/free.md","lines_changed":13},{"name":"docs/parsers/history.md","lines_changed":13},{"name":"docs/parsers/ifconfig.md","lines_changed":13},{"name":"docs/parsers/iptables.md","lines_changed":13},{"name":"docs/parsers/jobs.md","lines_changed":13},{"name":"docs/parsers/ls.md","lines_changed":13},{"name":"docs/parsers/lsblk.md","lines_changed":13},{"name":"docs/parsers/lsmod.md","lines_changed":13},{"name":"docs/parsers/lsof.md","lines_changed":13},{"name":"docs/parsers/mount.md","lines_changed":13},{"name":"docs/parsers/netstat.md","lines_changed":13},{"name":"docs/parsers/ps.md","lines_changed":13},{"name":"docs/parsers/route.md","lines_changed":13},{"name":"docs/parsers/uname.md","lines_changed":13},{"name":"docs/parsers/uptime.md","lines_changed":13},{"name":"docs/parsers/w.md","lines_changed":13}]}},{"commit":"f0c8725d4355113f7690f20bb99078e488084ad7","message":"doc update","stats":{"files_changed":21,"insertions":181,"deletions":81,"files":["jc/parsers/arp.py","jc/parsers/df.py","jc/parsers/dig.py","jc/parsers/env.py","jc/parsers/foo.py","jc/parsers/free.py","jc/parsers/history.py","jc/parsers/ifconfig.py","jc/parsers/iptables.py","jc/parsers/jobs.py","jc/parsers/ls.py","jc/parsers/lsblk.py","jc/parsers/lsmod.py","jc/parsers/lsof.py","jc/parsers/mount.py","jc/parsers/netstat.py","jc/parsers/ps.py","jc/parsers/route.py","jc/parsers/uname.py","jc/parsers/uptime.py","jc/parsers/w.py"],"file_stats":[{"name":"jc/parsers/arp.py","lines_changed":2},{"name":"jc/parsers/df.py","lines_changed":13},{"name":"jc/parsers/dig.py","lines_changed":13},{"name":"jc/parsers/env.py","lines_changed":13},{"name":"jc/parsers/foo.py","lines_changed":13},{"name":"jc/parsers/free.py","lines_changed":13},{"name":"jc/parsers/history.py","lines_changed":13},{"name":"jc/parsers/ifconfig.py","lines_changed":13},{"name":"jc/parsers/iptables.py","lines_changed":13},{"name":"jc/parsers/jobs.py","lines_changed":13},{"name":"jc/parsers/ls.py","lines_changed":13},{"name":"jc/parsers/lsblk.py","lines_changed":13},{"name":"jc/parsers/lsmod.py","lines_changed":13},{"name":"jc/parsers/lsof.py","lines_changed":13},{"name":"jc/parsers/mount.py","lines_changed":13},{"name":"jc/parsers/netstat.py","lines_changed":13},{"name":"jc/parsers/ps.py","lines_changed":13},{"name":"jc/parsers/route.py","lines_changed":13},{"name":"jc/parsers/uname.py","lines_changed":13},{"name":"jc/parsers/uptime.py","lines_changed":13},{"name":"jc/parsers/w.py","lines_changed":13}]}},{"commit":"5473bc4eb697d00bd26a038287e1137e438cacb5","message":"doc update","stats":{"files_changed":2,"insertions":16,"deletions":6,"files":["docs/parsers/arp.md","jc/parsers/arp.py"],"file_stats":[{"name":"docs/parsers/arp.md","lines_changed":11},{"name":"jc/parsers/arp.py","lines_changed":11}]}},{"commit":"b9bd9422bfa46144416fa65add2e041d4124357b","message":"doc update","stats":{"files_changed":2,"insertions":380,"deletions":46,"files":["docs/parsers/dig.md","jc/parsers/dig.py"],"file_stats":[{"name":"docs/parsers/dig.md","lines_changed":213},{"name":"jc/parsers/dig.py","lines_changed":213}]}},{"commit":"cb5729a070925a7fa29f762bd4b074532f5cba55","message":"add options to docs","stats":{"files_changed":1,"insertions":62,"deletions":44,"files":["README.md"],"file_stats":[{"name":"README.md","lines_changed":106}]}},{"commit":"f0b1ab42337746afd37365abdf44729d530d5410","message":"doc update","stats":{"files_changed":2,"insertions":2,"deletions":0,"files":["docs/utils.md","jc/utils.py"],"file_stats":[{"name":"docs/utils.md","lines_changed":1},{"name":"jc/utils.py","lines_changed":1}]}},{"commit":"b15386e849b9fea347e7b17307eedf779d8022fc","message":"doc update","stats":{"files_changed":2,"insertions":11,"deletions":5,"files":["docs/utils.md","jc/utils.py"],"file_stats":[{"name":"docs/utils.md","lines_changed":7},{"name":"jc/utils.py","lines_changed":9}]}},{"commit":"d2a2c8da35ee44e9a7572885609548eb809bcdda","message":"doc updates","stats":{"files_changed":3,"insertions":1,"deletions":5,"files":["docs/parsers/iptables.md","docs/parsers/mount.md","docs/parsers/uname.md"],"file_stats":[{"name":"docs/parsers/iptables.md","lines_changed":2},{"name":"docs/parsers/mount.md","lines_changed":2},{"name":"docs/parsers/uname.md","lines_changed":2}]}},{"commit":"7251548cbb09beae6971385a56036e9649bd9b2c","message":"documentation updates","stats":{"files_changed":3,"insertions":3,"deletions":5,"files":["jc/parsers/iptables.py","jc/parsers/mount.py","jc/parsers/uname.py"],"file_stats":[{"name":"jc/parsers/iptables.py","lines_changed":2},{"name":"jc/parsers/mount.py","lines_changed":3},{"name":"jc/parsers/uname.py","lines_changed":3}]}},{"commit":"146e29f7cbc0f396be67dbd7ae971a4ef4dafb7b","message":"update docs","stats":{"files_changed":47,"insertions":5386,"deletions":2249,"files":["docgen.sh","docs/cli.md","docs/parsers/arp.md","docs/parsers/df.md","docs/parsers/dig.md","docs/parsers/env.md","docs/parsers/free.md","docs/parsers/history.md","docs/parsers/ifconfig.md","docs/parsers/iptables.md","docs/parsers/jobs.md","docs/parsers/ls.md","docs/parsers/lsblk.md","docs/parsers/lsmod.md","docs/parsers/lsof.md","docs/parsers/mount.md","docs/parsers/netstat.md","docs/parsers/ps.md","docs/parsers/route.md","docs/parsers/uname.md","docs/parsers/uptime.md","docs/parsers/w.md","docs/readme.md","docs/utils.md","jc/__init__.py","jc/parsers/arp.py","jc/parsers/df.py","jc/parsers/dig.py","jc/parsers/env.py","jc/parsers/foo.py","jc/parsers/free.py","jc/parsers/history.py","jc/parsers/ifconfig.py","jc/parsers/iptables.py","jc/parsers/jobs.py","jc/parsers/ls.py","jc/parsers/lsblk.py","jc/parsers/lsmod.py","jc/parsers/lsof.py","jc/parsers/mount.py","jc/parsers/netstat.py","jc/parsers/ps.py","jc/parsers/route.py","jc/parsers/uname.py","jc/parsers/uptime.py","jc/parsers/w.py","jc/utils.py"],"file_stats":[{"name":"docgen.sh","lines_changed":27},{"name":"docs/cli.md","lines_changed":5},{"name":"docs/parsers/arp.md","lines_changed":110},{"name":"docs/parsers/df.md","lines_changed":97},{"name":"docs/parsers/dig.md","lines_changed":212},{"name":"docs/parsers/env.md","lines_changed":72},{"name":"docs/parsers/free.md","lines_changed":77},{"name":"docs/parsers/history.md","lines_changed":64},{"name":"docs/parsers/ifconfig.md","lines_changed":170},{"name":"docs/parsers/iptables.md","lines_changed":168},{"name":"docs/parsers/jobs.md","lines_changed":98},{"name":"docs/parsers/ls.md","lines_changed":168},{"name":"docs/parsers/lsblk.md","lines_changed":273},{"name":"docs/parsers/lsmod.md","lines_changed":130},{"name":"docs/parsers/lsof.md","lines_changed":124},{"name":"docs/parsers/mount.md","lines_changed":82},{"name":"docs/parsers/netstat.md","lines_changed":352},{"name":"docs/parsers/ps.md","lines_changed":223},{"name":"docs/parsers/route.md","lines_changed":129},{"name":"docs/parsers/uname.md","lines_changed":55},{"name":"docs/parsers/uptime.md","lines_changed":56},{"name":"docs/parsers/w.md","lines_changed":108},{"name":"docs/readme.md","lines_changed":79},{"name":"docs/utils.md","lines_changed":22},{"name":"jc/__init__.py","lines_changed":135},{"name":"jc/parsers/arp.py","lines_changed":176},{"name":"jc/parsers/df.py","lines_changed":129},{"name":"jc/parsers/dig.py","lines_changed":362},{"name":"jc/parsers/env.py","lines_changed":101},{"name":"jc/parsers/foo.py","lines_changed":37},{"name":"jc/parsers/free.py","lines_changed":111},{"name":"jc/parsers/history.py","lines_changed":85},{"name":"jc/parsers/ifconfig.py","lines_changed":294},{"name":"jc/parsers/iptables.py","lines_changed":271},{"name":"jc/parsers/jobs.py","lines_changed":150},{"name":"jc/parsers/ls.py","lines_changed":280},{"name":"jc/parsers/lsblk.py","lines_changed":499},{"name":"jc/parsers/lsmod.py","lines_changed":211},{"name":"jc/parsers/lsof.py","lines_changed":205},{"name":"jc/parsers/mount.py","lines_changed":115},{"name":"jc/parsers/netstat.py","lines_changed":661},{"name":"jc/parsers/ps.py","lines_changed":389},{"name":"jc/parsers/route.py","lines_changed":213},{"name":"jc/parsers/uname.py","lines_changed":57},{"name":"jc/parsers/uptime.py","lines_changed":69},{"name":"jc/parsers/w.py","lines_changed":173},{"name":"jc/utils.py","lines_changed":11}]}},{"commit":"363fd3eab409351121dab8a11c6b565829ccd84a","message":"move parser_name to except block","stats":{"files_changed":1,"insertions":1,"deletions":1,"files":["jc/cli.py"],"file_stats":[{"name":"jc/cli.py","lines_changed":2}]}},{"commit":"4083dd4260ff3a8bb6649e1661cf3e058fdbad59","message":"add -d option","stats":{"files_changed":2,"insertions":24,"deletions":5,"files":["changelog.txt","jc/cli.py"],"file_stats":[{"name":"changelog.txt","lines_changed":1},{"name":"jc/cli.py","lines_changed":28}]}},{"commit":"b2b74547baaf33058d74fc08cb665777b19bd05a","message":"add netstat-sudo-aeep tests","stats":{"files_changed":6,"insertions":317,"deletions":0,"files":["tests/fixtures/centos-7.7/netstat-sudo-aeep.json","tests/fixtures/centos-7.7/netstat-sudo-aeep.out","tests/fixtures/create_fixtures.sh","tests/fixtures/ubuntu-18.04/netstat-sudo-aeep.json","tests/fixtures/ubuntu-18.04/netstat-sudo-aeep.out","tests/test_netstat.py"],"file_stats":[{"name":"tests/fixtures/centos-7.7/netstat-sudo-aeep.json","lines_changed":1},{"name":"tests/fixtures/centos-7.7/netstat-sudo-aeep.out","lines_changed":164},{"name":"tests/fixtures/create_fixtures.sh","lines_changed":1},{"name":"tests/fixtures/ubuntu-18.04/netstat-sudo-aeep.json","lines_changed":1},{"name":"tests/fixtures/ubuntu-18.04/netstat-sudo-aeep.out","lines_changed":126},{"name":"tests/test_netstat.py","lines_changed":24}]}},{"commit":"dddb0baabf8a78261ac80380b97e7c92c7ce4d89","message":"use \\u2063 instead of \\u2026","stats":{"files_changed":1,"insertions":4,"deletions":4,"files":["jc/parsers/netstat.py"],"file_stats":[{"name":"jc/parsers/netstat.py","lines_changed":8}]}},{"commit":"84b4f67ef9d4bb0db201a095d74400a56394589d","message":"new json output","stats":{"files_changed":2,"insertions":2,"deletions":2,"files":["tests/fixtures/centos-7.7/ps-axu.json","tests/fixtures/ubuntu-18.04/ps-axu.json"],"file_stats":[{"name":"tests/fixtures/centos-7.7/ps-axu.json","lines_changed":2},{"name":"tests/fixtures/ubuntu-18.04/ps-axu.json","lines_changed":2}]}},{"commit":"3a089138b8c269ba3c5f7aec87ae3f8ec368c3ab","message":"add int and float changes","stats":{"files_changed":1,"insertions":129,"deletions":9,"files":["jc/parsers/ps.py"],"file_stats":[{"name":"jc/parsers/ps.py","lines_changed":138}]}},{"commit":"3ff0305c8e62ce3b5a8f3f9174c5a9da3bc22766","message":"add lsblk tests","stats":{"files_changed":8,"insertions":54,"deletions":2,"files":["tests/fixtures/centos-7.7/lsblk-allcols.json","tests/fixtures/centos-7.7/lsblk-allcols.out","tests/fixtures/centos-7.7/lsblk.json","tests/fixtures/create_fixtures.sh","tests/fixtures/ubuntu-18.04/lsblk-allcols.json","tests/fixtures/ubuntu-18.04/lsblk-allcols.out","tests/fixtures/ubuntu-18.04/lsblk.json","tests/test_lsblk.py"],"file_stats":[{"name":"tests/fixtures/centos-7.7/lsblk-allcols.json","lines_changed":1},{"name":"tests/fixtures/centos-7.7/lsblk-allcols.out","lines_changed":7},{"name":"tests/fixtures/centos-7.7/lsblk.json","lines_changed":2},{"name":"tests/fixtures/create_fixtures.sh","lines_changed":1},{"name":"tests/fixtures/ubuntu-18.04/lsblk-allcols.json","lines_changed":1},{"name":"tests/fixtures/ubuntu-18.04/lsblk-allcols.out","lines_changed":18},{"name":"tests/fixtures/ubuntu-18.04/lsblk.json","lines_changed":2},{"name":"tests/test_lsblk.py","lines_changed":24}]}},{"commit":"761edc3c6cfc215fe45c65ee2bb5462cb460b6a6","message":"remove unused parse_pairs function","stats":{"files_changed":1,"insertions":1,"deletions":6,"files":["jc/parsers/lsblk.py"],"file_stats":[{"name":"jc/parsers/lsblk.py","lines_changed":7}]}},{"commit":"3351c81f647ac97a5038cc0c14adb31e55832a77","message":"add documentation","stats":{"files_changed":1,"insertions":200,"deletions":2,"files":["jc/parsers/lsblk.py"],"file_stats":[{"name":"jc/parsers/lsblk.py","lines_changed":202}]}},{"commit":"3dfc6f67d770c59804bdeb371d5c78e3f3668f9e","message":"change empty values to Null","stats":{"files_changed":1,"insertions":5,"deletions":1,"files":["jc/parsers/lsblk.py"],"file_stats":[{"name":"jc/parsers/lsblk.py","lines_changed":6}]}},{"commit":"1546ec3bd139ef687282f60786388b5207541c98","message":"fixes for right justified columns","stats":{"files_changed":1,"insertions":17,"deletions":13,"files":["jc/parsers/lsblk.py"],"file_stats":[{"name":"jc/parsers/lsblk.py","lines_changed":30}]}},{"commit":"2a953011f72e922c89b9af6dfebd1983da7c338d","message":"rewrite of lsblk parser to use a custom delimiter","stats":{"files_changed":2,"insertions":50,"deletions":155,"files":["changelog.txt","jc/parsers/lsblk.py"],"file_stats":[{"name":"changelog.txt","lines_changed":2},{"name":"jc/parsers/lsblk.py","lines_changed":203}]}},{"commit":"d2f755de9d2be7b0af5f010042e1f4ca589c5464","message":"updates tests","stats":{"files_changed":14,"insertions":250,"deletions":566,"files":["tests/test_ifconfig.py","tests/test_iptables.py","tests/test_jobs.py","tests/test_ls.py","tests/test_lsblk.py","tests/test_lsmod.py","tests/test_lsof.py","tests/test_mount.py","tests/test_netstat.py","tests/test_ps.py","tests/test_route.py","tests/test_uname.py","tests/test_uptime.py","tests/test_w.py"],"file_stats":[{"name":"tests/test_ifconfig.py","lines_changed":59},{"name":"tests/test_iptables.py","lines_changed":249},{"name":"tests/test_jobs.py","lines_changed":19},{"name":"tests/test_ls.py","lines_changed":58},{"name":"tests/test_lsblk.py","lines_changed":25},{"name":"tests/test_lsmod.py","lines_changed":22},{"name":"tests/test_lsof.py","lines_changed":59},{"name":"tests/test_mount.py","lines_changed":30},{"name":"tests/test_netstat.py","lines_changed":110},{"name":"tests/test_ps.py","lines_changed":57},{"name":"tests/test_route.py","lines_changed":51},{"name":"tests/test_uname.py","lines_changed":27},{"name":"tests/test_uptime.py","lines_changed":23},{"name":"tests/test_w.py","lines_changed":27}]}},{"commit":"f363334639c5fa3a43889794ea52409056a2d886","message":"update tests","stats":{"files_changed":5,"insertions":87,"deletions":219,"files":["tests/test_df.py","tests/test_dig.py","tests/test_env.py","tests/test_free.py","tests/test_history.py"],"file_stats":[{"name":"tests/test_df.py","lines_changed":43},{"name":"tests/test_dig.py","lines_changed":196},{"name":"tests/test_env.py","lines_changed":13},{"name":"tests/test_free.py","lines_changed":41},{"name":"tests/test_history.py","lines_changed":13}]}},{"commit":"750197e48596ad96804477053d3ff3c8063ea68a","message":"new tests","stats":{"files_changed":1,"insertions":27,"deletions":70,"files":["tests/test_arp.py"],"file_stats":[{"name":"tests/test_arp.py","lines_changed":97}]}},{"commit":"36b349e4ed39fe611c7d87a47c378cc4d4627ad2","message":"json output files","stats":{"files_changed":76,"insertions":76,"deletions":0,"files":["tests/fixtures/centos-7.7/arp-a.json","tests/fixtures/centos-7.7/arp-v.json","tests/fixtures/centos-7.7/arp.json","tests/fixtures/centos-7.7/df-h.json","tests/fixtures/centos-7.7/df.json","tests/fixtures/centos-7.7/dig-aaaa.json","tests/fixtures/centos-7.7/dig-x.json","tests/fixtures/centos-7.7/dig.json","tests/fixtures/centos-7.7/env.json","tests/fixtures/centos-7.7/free-h.json","tests/fixtures/centos-7.7/free.json","tests/fixtures/centos-7.7/history.json","tests/fixtures/centos-7.7/ifconfig.json","tests/fixtures/centos-7.7/iptables-filter-nv.json","tests/fixtures/centos-7.7/iptables-filter.json","tests/fixtures/centos-7.7/iptables-mangle.json","tests/fixtures/centos-7.7/iptables-nat.json","tests/fixtures/centos-7.7/iptables-raw.json","tests/fixtures/centos-7.7/jobs.json","tests/fixtures/centos-7.7/ls-al.json","tests/fixtures/centos-7.7/ls-alh.json","tests/fixtures/centos-7.7/ls.json","tests/fixtures/centos-7.7/lsblk.json","tests/fixtures/centos-7.7/lsmod.json","tests/fixtures/centos-7.7/lsof-sudo.json","tests/fixtures/centos-7.7/lsof.json","tests/fixtures/centos-7.7/mount.json","tests/fixtures/centos-7.7/netstat-l.json","tests/fixtures/centos-7.7/netstat-p.json","tests/fixtures/centos-7.7/netstat-sudo-lnp.json","tests/fixtures/centos-7.7/netstat.json","tests/fixtures/centos-7.7/ps-axu.json","tests/fixtures/centos-7.7/ps-ef.json","tests/fixtures/centos-7.7/route-vn.json","tests/fixtures/centos-7.7/route.json","tests/fixtures/centos-7.7/uname-a.json","tests/fixtures/centos-7.7/uptime.json","tests/fixtures/centos-7.7/w.json","tests/fixtures/ubuntu-18.04/arp-a.json","tests/fixtures/ubuntu-18.04/arp-v.json","tests/fixtures/ubuntu-18.04/arp.json","tests/fixtures/ubuntu-18.04/df-h.json","tests/fixtures/ubuntu-18.04/df.json","tests/fixtures/ubuntu-18.04/dig-aaaa.json","tests/fixtures/ubuntu-18.04/dig-x.json","tests/fixtures/ubuntu-18.04/dig.json","tests/fixtures/ubuntu-18.04/env.json","tests/fixtures/ubuntu-18.04/free-h.json","tests/fixtures/ubuntu-18.04/free.json","tests/fixtures/ubuntu-18.04/history.json","tests/fixtures/ubuntu-18.04/ifconfig.json","tests/fixtures/ubuntu-18.04/iptables-filter-nv.json","tests/fixtures/ubuntu-18.04/iptables-filter.json","tests/fixtures/ubuntu-18.04/iptables-mangle.json","tests/fixtures/ubuntu-18.04/iptables-nat.json","tests/fixtures/ubuntu-18.04/iptables-raw.json","tests/fixtures/ubuntu-18.04/jobs.json","tests/fixtures/ubuntu-18.04/ls-al.json","tests/fixtures/ubuntu-18.04/ls-alh.json","tests/fixtures/ubuntu-18.04/ls.json","tests/fixtures/ubuntu-18.04/lsblk.json","tests/fixtures/ubuntu-18.04/lsmod.json","tests/fixtures/ubuntu-18.04/lsof-sudo.json","tests/fixtures/ubuntu-18.04/lsof.json","tests/fixtures/ubuntu-18.04/mount.json","tests/fixtures/ubuntu-18.04/netstat-l.json","tests/fixtures/ubuntu-18.04/netstat-p.json","tests/fixtures/ubuntu-18.04/netstat-sudo-lnp.json","tests/fixtures/ubuntu-18.04/netstat.json","tests/fixtures/ubuntu-18.04/ps-axu.json","tests/fixtures/ubuntu-18.04/ps-ef.json","tests/fixtures/ubuntu-18.04/route-vn.json","tests/fixtures/ubuntu-18.04/route.json","tests/fixtures/ubuntu-18.04/uname-a.json","tests/fixtures/ubuntu-18.04/uptime.json","tests/fixtures/ubuntu-18.04/w.json"],"file_stats":[{"name":"tests/fixtures/centos-7.7/arp-a.json","lines_changed":1},{"name":"tests/fixtures/centos-7.7/arp-v.json","lines_changed":1},{"name":"tests/fixtures/centos-7.7/arp.json","lines_changed":1},{"name":"tests/fixtures/centos-7.7/df-h.json","lines_changed":1},{"name":"tests/fixtures/centos-7.7/df.json","lines_changed":1},{"name":"tests/fixtures/centos-7.7/dig-aaaa.json","lines_changed":1},{"name":"tests/fixtures/centos-7.7/dig-x.json","lines_changed":1},{"name":"tests/fixtures/centos-7.7/dig.json","lines_changed":1},{"name":"tests/fixtures/centos-7.7/env.json","lines_changed":1},{"name":"tests/fixtures/centos-7.7/free-h.json","lines_changed":1},{"name":"tests/fixtures/centos-7.7/free.json","lines_changed":1},{"name":"tests/fixtures/centos-7.7/history.json","lines_changed":1},{"name":"tests/fixtures/centos-7.7/ifconfig.json","lines_changed":1},{"name":"tests/fixtures/centos-7.7/iptables-filter-nv.json","lines_changed":1},{"name":"tests/fixtures/centos-7.7/iptables-filter.json","lines_changed":1},{"name":"tests/fixtures/centos-7.7/iptables-mangle.json","lines_changed":1},{"name":"tests/fixtures/centos-7.7/iptables-nat.json","lines_changed":1},{"name":"tests/fixtures/centos-7.7/iptables-raw.json","lines_changed":1},{"name":"tests/fixtures/centos-7.7/jobs.json","lines_changed":1},{"name":"tests/fixtures/centos-7.7/ls-al.json","lines_changed":1},{"name":"tests/fixtures/centos-7.7/ls-alh.json","lines_changed":1},{"name":"tests/fixtures/centos-7.7/ls.json","lines_changed":1},{"name":"tests/fixtures/centos-7.7/lsblk.json","lines_changed":1},{"name":"tests/fixtures/centos-7.7/lsmod.json","lines_changed":1},{"name":"tests/fixtures/centos-7.7/lsof-sudo.json","lines_changed":1},{"name":"tests/fixtures/centos-7.7/lsof.json","lines_changed":1},{"name":"tests/fixtures/centos-7.7/mount.json","lines_changed":1},{"name":"tests/fixtures/centos-7.7/netstat-l.json","lines_changed":1},{"name":"tests/fixtures/centos-7.7/netstat-p.json","lines_changed":1},{"name":"tests/fixtures/centos-7.7/netstat-sudo-lnp.json","lines_changed":1},{"name":"tests/fixtures/centos-7.7/netstat.json","lines_changed":1},{"name":"tests/fixtures/centos-7.7/ps-axu.json","lines_changed":1},{"name":"tests/fixtures/centos-7.7/ps-ef.json","lines_changed":1},{"name":"tests/fixtures/centos-7.7/route-vn.json","lines_changed":1},{"name":"tests/fixtures/centos-7.7/route.json","lines_changed":1},{"name":"tests/fixtures/centos-7.7/uname-a.json","lines_changed":1},{"name":"tests/fixtures/centos-7.7/uptime.json","lines_changed":1},{"name":"tests/fixtures/centos-7.7/w.json","lines_changed":1},{"name":"tests/fixtures/ubuntu-18.04/arp-a.json","lines_changed":1},{"name":"tests/fixtures/ubuntu-18.04/arp-v.json","lines_changed":1},{"name":"tests/fixtures/ubuntu-18.04/arp.json","lines_changed":1},{"name":"tests/fixtures/ubuntu-18.04/df-h.json","lines_changed":1},{"name":"tests/fixtures/ubuntu-18.04/df.json","lines_changed":1},{"name":"tests/fixtures/ubuntu-18.04/dig-aaaa.json","lines_changed":1},{"name":"tests/fixtures/ubuntu-18.04/dig-x.json","lines_changed":1},{"name":"tests/fixtures/ubuntu-18.04/dig.json","lines_changed":1},{"name":"tests/fixtures/ubuntu-18.04/env.json","lines_changed":1},{"name":"tests/fixtures/ubuntu-18.04/free-h.json","lines_changed":1},{"name":"tests/fixtures/ubuntu-18.04/free.json","lines_changed":1},{"name":"tests/fixtures/ubuntu-18.04/history.json","lines_changed":1},{"name":"tests/fixtures/ubuntu-18.04/ifconfig.json","lines_changed":1},{"name":"tests/fixtures/ubuntu-18.04/iptables-filter-nv.json","lines_changed":1},{"name":"tests/fixtures/ubuntu-18.04/iptables-filter.json","lines_changed":1},{"name":"tests/fixtures/ubuntu-18.04/iptables-mangle.json","lines_changed":1},{"name":"tests/fixtures/ubuntu-18.04/iptables-nat.json","lines_changed":1},{"name":"tests/fixtures/ubuntu-18.04/iptables-raw.json","lines_changed":1},{"name":"tests/fixtures/ubuntu-18.04/jobs.json","lines_changed":1},{"name":"tests/fixtures/ubuntu-18.04/ls-al.json","lines_changed":1},{"name":"tests/fixtures/ubuntu-18.04/ls-alh.json","lines_changed":1},{"name":"tests/fixtures/ubuntu-18.04/ls.json","lines_changed":1},{"name":"tests/fixtures/ubuntu-18.04/lsblk.json","lines_changed":1},{"name":"tests/fixtures/ubuntu-18.04/lsmod.json","lines_changed":1},{"name":"tests/fixtures/ubuntu-18.04/lsof-sudo.json","lines_changed":1},{"name":"tests/fixtures/ubuntu-18.04/lsof.json","lines_changed":1},{"name":"tests/fixtures/ubuntu-18.04/mount.json","lines_changed":1},{"name":"tests/fixtures/ubuntu-18.04/netstat-l.json","lines_changed":1},{"name":"tests/fixtures/ubuntu-18.04/netstat-p.json","lines_changed":1},{"name":"tests/fixtures/ubuntu-18.04/netstat-sudo-lnp.json","lines_changed":1},{"name":"tests/fixtures/ubuntu-18.04/netstat.json","lines_changed":1},{"name":"tests/fixtures/ubuntu-18.04/ps-axu.json","lines_changed":1},{"name":"tests/fixtures/ubuntu-18.04/ps-ef.json","lines_changed":1},{"name":"tests/fixtures/ubuntu-18.04/route-vn.json","lines_changed":1},{"name":"tests/fixtures/ubuntu-18.04/route.json","lines_changed":1},{"name":"tests/fixtures/ubuntu-18.04/uname-a.json","lines_changed":1},{"name":"tests/fixtures/ubuntu-18.04/uptime.json","lines_changed":1},{"name":"tests/fixtures/ubuntu-18.04/w.json","lines_changed":1}]}},{"commit":"b5f1e94fe2859c4fbcf126f8f8fb20d71a9b6433","message":"fix for space before '-' in program_name","stats":{"files_changed":1,"insertions":1,"deletions":0,"files":["jc/parsers/netstat.py"],"file_stats":[{"name":"jc/parsers/netstat.py","lines_changed":1}]}},{"commit":"6a504fb0e10b1ef551ed9fe780926fe5ca02d267","message":"add exception type","stats":{"files_changed":1,"insertions":1,"deletions":1,"files":["jc/parsers/ifconfig.py"],"file_stats":[{"name":"jc/parsers/ifconfig.py","lines_changed":2}]}},{"commit":"e02bad2240bacbc31097d931a902a34217d559db","message":"update documentation","stats":{"files_changed":1,"insertions":123,"deletions":175,"files":["jc/parsers/netstat.py"],"file_stats":[{"name":"jc/parsers/netstat.py","lines_changed":298}]}},{"commit":"1d4043a3b64c38a20a0db065c3bdc3c6a2d068bd","message":"add template parser","stats":{"files_changed":1,"insertions":52,"deletions":0,"files":["jc/parsers/foo.py"],"file_stats":[{"name":"jc/parsers/foo.py","lines_changed":52}]}},{"commit":"039e034829789ca314a00abd4f1d9ad06f1a6eef","message":"fix parsing issues in program_name when spaces are in the name","stats":{"files_changed":1,"insertions":19,"deletions":6,"files":["jc/parsers/netstat.py"],"file_stats":[{"name":"jc/parsers/netstat.py","lines_changed":25}]}},{"commit":"d828de4f4f2f4c3d582fddee79830d12511c3299","message":"update documentation","stats":{"files_changed":1,"insertions":53,"deletions":9,"files":["jc/parsers/w.py"],"file_stats":[{"name":"jc/parsers/w.py","lines_changed":62}]}},{"commit":"098000bb10a3f5ed33d285c6ba4f0dfb9a013fdc","message":"fix blank 'from' column issue","stats":{"files_changed":2,"insertions":24,"deletions":9,"files":["changelog.txt","jc/parsers/w.py"],"file_stats":[{"name":"changelog.txt","lines_changed":1},{"name":"jc/parsers/w.py","lines_changed":32}]}},{"commit":"b41165eff5cd7371e852cd33e084a919524ead9b","message":"process w data","stats":{"files_changed":1,"insertions":31,"deletions":1,"files":["jc/parsers/w.py"],"file_stats":[{"name":"jc/parsers/w.py","lines_changed":32}]}},{"commit":"6ad7891b2b34fae1a366568e4eba86e886a6dd84","message":"process uptime data","stats":{"files_changed":1,"insertions":59,"deletions":14,"files":["jc/parsers/uptime.py"],"file_stats":[{"name":"jc/parsers/uptime.py","lines_changed":73}]}},{"commit":"72138315598cd405bc0508b554108bf3f730dcb0","message":"add process boilerplate","stats":{"files_changed":1,"insertions":31,"deletions":10,"files":["jc/parsers/uname.py"],"file_stats":[{"name":"jc/parsers/uname.py","lines_changed":41}]}},{"commit":"10eedd82e4c4678fbf989fe599d7ca75deced5a8","message":"changelog update","stats":{"files_changed":1,"insertions":3,"deletions":2,"files":["changelog.txt"],"file_stats":[{"name":"changelog.txt","lines_changed":5}]}},{"commit":"a55493da0f1457a46f29511e0835adfa9d748f7b","message":"process route data","stats":{"files_changed":1,"insertions":93,"deletions":6,"files":["jc/parsers/route.py"],"file_stats":[{"name":"jc/parsers/route.py","lines_changed":99}]}},{"commit":"89973f4162317693b0d094a64115ee87d8479d51","message":"doc updates and tty fix","stats":{"files_changed":1,"insertions":45,"deletions":27,"files":["jc/parsers/ps.py"],"file_stats":[{"name":"jc/parsers/ps.py","lines_changed":72}]}},{"commit":"4802222ad50d55372f2b883d83a61181086b0619","message":"process ps data","stats":{"files_changed":1,"insertions":11,"deletions":0,"files":["jc/parsers/ps.py"],"file_stats":[{"name":"jc/parsers/ps.py","lines_changed":11}]}},{"commit":"bcd28f06f87a4260d1787399d723817afd6aee90","message":"prep ps for process","stats":{"files_changed":1,"insertions":23,"deletions":1,"files":["jc/parsers/ps.py"],"file_stats":[{"name":"jc/parsers/ps.py","lines_changed":24}]}},{"commit":"e17a47a7fa7f4c1bb4c4b55fb004963fc1b61434","message":"fix typo","stats":{"files_changed":1,"insertions":1,"deletions":1,"files":["jc/parsers/netstat.py"],"file_stats":[{"name":"jc/parsers/netstat.py","lines_changed":2}]}},{"commit":"cad2e16c7aa54a70f476bf4268ff8e5985cff468","message":"document examples","stats":{"files_changed":1,"insertions":353,"deletions":1,"files":["jc/parsers/netstat.py"],"file_stats":[{"name":"jc/parsers/netstat.py","lines_changed":354}]}},{"commit":"5da5d278dac77bd4aa21819194e7f9e178bd1887","message":"process netstat data","stats":{"files_changed":1,"insertions":23,"deletions":0,"files":["jc/parsers/netstat.py"],"file_stats":[{"name":"jc/parsers/netstat.py","lines_changed":23}]}},{"commit":"81b6776e57c113cbfb8346d1cfd83532a440c257","message":"remove old netstat parser","stats":{"files_changed":1,"insertions":0,"deletions":177,"files":["jc/parsers/netstat.py.old"],"file_stats":[{"name":"jc/parsers/netstat.py.old","lines_changed":177}]}},{"commit":"5ecb6bd58b4ed91f63e4a0b5939378bd9925b7b7","message":"doc updates","stats":{"files_changed":2,"insertions":4,"deletions":3,"files":["changelog.txt","jc/parsers/netstat.py"],"file_stats":[{"name":"changelog.txt","lines_changed":4},{"name":"jc/parsers/netstat.py","lines_changed":3}]}},{"commit":"21b56096c57cfcf5c55fdf5f9bab88b6d5c7dd73","message":"finalize parse_post","stats":{"files_changed":1,"insertions":37,"deletions":0,"files":["jc/parsers/netstat.py"],"file_stats":[{"name":"jc/parsers/netstat.py","lines_changed":37}]}},{"commit":"8c78f959731a25a05ee6361a14853c92f8fce69b","message":"clean up trailing spaces on entries","stats":{"files_changed":1,"insertions":7,"deletions":1,"files":["jc/parsers/netstat.py"],"file_stats":[{"name":"jc/parsers/netstat.py","lines_changed":8}]}},{"commit":"94a88bb5669d9a9a5dff085a4c4111bdd39df8f6","message":"post_parse flags and program_name","stats":{"files_changed":1,"insertions":35,"deletions":17,"files":["jc/parsers/netstat.py"],"file_stats":[{"name":"jc/parsers/netstat.py","lines_changed":52}]}},{"commit":"579124475b0b517b36ddbe5bdb13be14807dea1f","message":"simplify parser_map code","stats":{"files_changed":1,"insertions":1,"deletions":1,"files":["jc/cli.py"],"file_stats":[{"name":"jc/cli.py","lines_changed":2}]}},{"commit":"5da83e020015eb5559d216bc3f39b3854e76adf3","message":"fix found variable error","stats":{"files_changed":1,"insertions":2,"deletions":0,"files":["jc/cli.py"],"file_stats":[{"name":"jc/cli.py","lines_changed":2}]}},{"commit":"a90a76d004b923edece07a52a3aa400a9ef4b005","message":"move out old netstat parser","stats":{"files_changed":2,"insertions":177,"deletions":140,"files":["jc/parsers/netstat.py.old","jc/parsers/netstat2.py"],"file_stats":[{"name":"jc/parsers/netstat.py.old","lines_changed":177},{"name":"jc/parsers/netstat2.py","lines_changed":140}]}},{"commit":"bdfa95912398b2630fcb13e866f4013747fd0975","message":"fix compatibility code","stats":{"files_changed":20,"insertions":209,"deletions":212,"files":["jc/parsers/arp.py","jc/parsers/df.py","jc/parsers/dig.py","jc/parsers/env.py","jc/parsers/free.py","jc/parsers/history.py","jc/parsers/ifconfig.py","jc/parsers/iptables.py","jc/parsers/jobs.py","jc/parsers/ls.py","jc/parsers/lsblk.py","jc/parsers/lsmod.py","jc/parsers/lsof.py","jc/parsers/mount.py","jc/parsers/netstat.py","jc/parsers/ps.py","jc/parsers/route.py","jc/parsers/uname.py","jc/parsers/uptime.py","jc/parsers/w.py"],"file_stats":[{"name":"jc/parsers/arp.py","lines_changed":4},{"name":"jc/parsers/df.py","lines_changed":4},{"name":"jc/parsers/dig.py","lines_changed":10},{"name":"jc/parsers/env.py","lines_changed":10},{"name":"jc/parsers/free.py","lines_changed":10},{"name":"jc/parsers/history.py","lines_changed":8},{"name":"jc/parsers/ifconfig.py","lines_changed":10},{"name":"jc/parsers/iptables.py","lines_changed":10},{"name":"jc/parsers/jobs.py","lines_changed":10},{"name":"jc/parsers/ls.py","lines_changed":10},{"name":"jc/parsers/lsblk.py","lines_changed":10},{"name":"jc/parsers/lsmod.py","lines_changed":10},{"name":"jc/parsers/lsof.py","lines_changed":10},{"name":"jc/parsers/mount.py","lines_changed":10},{"name":"jc/parsers/netstat.py","lines_changed":245},{"name":"jc/parsers/ps.py","lines_changed":10},{"name":"jc/parsers/route.py","lines_changed":10},{"name":"jc/parsers/uname.py","lines_changed":10},{"name":"jc/parsers/uptime.py","lines_changed":10},{"name":"jc/parsers/w.py","lines_changed":10}]}},{"commit":"4380594275bc863e81839a6a7b032a6ff0cbb9b6","message":"remove cli functions from utils","stats":{"files_changed":1,"insertions":8,"deletions":46,"files":["jc/utils.py"],"file_stats":[{"name":"jc/utils.py","lines_changed":54}]}},{"commit":"88bf252c0df3c583640286880d7992e4399e23f4","message":"rename jc.py to cli.py","stats":{"files_changed":2,"insertions":139,"deletions":128,"files":["jc/cli.py","jc/jc.py"],"file_stats":[{"name":"jc/cli.py","lines_changed":139},{"name":"jc/jc.py","lines_changed":128}]}},{"commit":"a5efd8adce77fca7e3343f8f518c7bad578fdb4f","message":"rename jc.py to cli.py","stats":{"files_changed":1,"insertions":1,"deletions":1,"files":["setup.py"],"file_stats":[{"name":"setup.py","lines_changed":2}]}},{"commit":"2ee392eefffde77ebdf83f5e4e0c43cf8c1a7d6e","message":"add quiet mode","stats":{"files_changed":1,"insertions":6,"deletions":4,"files":["jc/parsers/netstat2.py"],"file_stats":[{"name":"jc/parsers/netstat2.py","lines_changed":10}]}},{"commit":"9c1d893e16ea17b16bec5fd0ec8839c4fe6f0590","message":"move utils to own module and add quiet mode","stats":{"files_changed":4,"insertions":102,"deletions":90,"files":["jc/jc.py","jc/parsers/arp.py","jc/parsers/df.py","jc/utils.py"],"file_stats":[{"name":"jc/jc.py","lines_changed":107},{"name":"jc/parsers/arp.py","lines_changed":10},{"name":"jc/parsers/df.py","lines_changed":10},{"name":"jc/utils.py","lines_changed":65}]}},{"commit":"88dcb90c83b757285661c72429c5b60bb1ead94a","message":"changelog update","stats":{"files_changed":1,"insertions":5,"deletions":1,"files":["changelog.txt"],"file_stats":[{"name":"changelog.txt","lines_changed":6}]}},{"commit":"a3bcabc89c1f74d067da0046492dbc56e50b1005","message":"mvp of netstat raw_data parser","stats":{"files_changed":1,"insertions":9,"deletions":62,"files":["jc/parsers/netstat2.py"],"file_stats":[{"name":"jc/parsers/netstat2.py","lines_changed":71}]}},{"commit":"dafbf9fdcf53a8abbd006baef0be6697f860d2a1","message":"process lsmod data","stats":{"files_changed":4,"insertions":247,"deletions":53,"files":["jc/parsers/lsmod.py","jc/parsers/lsof.py","jc/parsers/mount.py","jc/parsers/netstat2.py"],"file_stats":[{"name":"jc/parsers/lsmod.py","lines_changed":85},{"name":"jc/parsers/lsof.py","lines_changed":106},{"name":"jc/parsers/mount.py","lines_changed":31},{"name":"jc/parsers/netstat2.py","lines_changed":78}]}},{"commit":"680cb2b2caa82e1e2c3225b3c44cae2ba03ba02c","message":"doc update","stats":{"files_changed":1,"insertions":76,"deletions":7,"files":["jc/parsers/lsblk.py"],"file_stats":[{"name":"jc/parsers/lsblk.py","lines_changed":83}]}},{"commit":"54818a06e0e0b981810f6aec45c308da81a9e2ea","message":"change bool variable names","stats":{"files_changed":1,"insertions":4,"deletions":4,"files":["jc/parsers/lsblk.py"],"file_stats":[{"name":"jc/parsers/lsblk.py","lines_changed":8}]}},{"commit":"88f4c5b5a93da3938b84f97abfc54539ee19ac48","message":"remove TypeError from exception check","stats":{"files_changed":6,"insertions":10,"deletions":10,"files":["jc/parsers/dig.py","jc/parsers/free.py","jc/parsers/ifconfig.py","jc/parsers/iptables.py","jc/parsers/jobs.py","jc/parsers/ls.py"],"file_stats":[{"name":"jc/parsers/dig.py","lines_changed":8},{"name":"jc/parsers/free.py","lines_changed":2},{"name":"jc/parsers/ifconfig.py","lines_changed":2},{"name":"jc/parsers/iptables.py","lines_changed":4},{"name":"jc/parsers/jobs.py","lines_changed":2},{"name":"jc/parsers/ls.py","lines_changed":2}]}},{"commit":"2bb7409887e8b7659613189daf58d02cb26bd6ba","message":"process lsblk data","stats":{"files_changed":2,"insertions":36,"deletions":11,"files":["jc/parsers/df.py","jc/parsers/lsblk.py"],"file_stats":[{"name":"jc/parsers/df.py","lines_changed":5},{"name":"jc/parsers/lsblk.py","lines_changed":42}]}},{"commit":"c780aac3aba02cc042c6a3c984af198069956370","message":"add compatibility function","stats":{"files_changed":22,"insertions":91,"deletions":5,"files":["jc/jc.py","jc/parsers/arp.py","jc/parsers/df.py","jc/parsers/dig.py","jc/parsers/env.py","jc/parsers/free.py","jc/parsers/history.py","jc/parsers/ifconfig.py","jc/parsers/iptables.py","jc/parsers/jobs.py","jc/parsers/ls.py","jc/parsers/lsblk.py","jc/parsers/lsmod.py","jc/parsers/lsof.py","jc/parsers/mount.py","jc/parsers/netstat.py","jc/parsers/netstat2.py","jc/parsers/ps.py","jc/parsers/route.py","jc/parsers/uname.py","jc/parsers/uptime.py","jc/parsers/w.py"],"file_stats":[{"name":"jc/jc.py","lines_changed":8},{"name":"jc/parsers/arp.py","lines_changed":3},{"name":"jc/parsers/df.py","lines_changed":1},{"name":"jc/parsers/dig.py","lines_changed":5},{"name":"jc/parsers/env.py","lines_changed":5},{"name":"jc/parsers/free.py","lines_changed":4},{"name":"jc/parsers/history.py","lines_changed":5},{"name":"jc/parsers/ifconfig.py","lines_changed":5},{"name":"jc/parsers/iptables.py","lines_changed":5},{"name":"jc/parsers/jobs.py","lines_changed":5},{"name":"jc/parsers/ls.py","lines_changed":3},{"name":"jc/parsers/lsblk.py","lines_changed":1},{"name":"jc/parsers/lsmod.py","lines_changed":4},{"name":"jc/parsers/lsof.py","lines_changed":5},{"name":"jc/parsers/mount.py","lines_changed":5},{"name":"jc/parsers/netstat.py","lines_changed":5},{"name":"jc/parsers/netstat2.py","lines_changed":5},{"name":"jc/parsers/ps.py","lines_changed":4},{"name":"jc/parsers/route.py","lines_changed":4},{"name":"jc/parsers/uname.py","lines_changed":5},{"name":"jc/parsers/uptime.py","lines_changed":5},{"name":"jc/parsers/w.py","lines_changed":4}]}},{"commit":"5010aaec285e26ae9dbfdb3fcdc38a3bd36cd236","message":"put exit() back","stats":{"files_changed":1,"insertions":1,"deletions":1,"files":["jc/jc.py"],"file_stats":[{"name":"jc/jc.py","lines_changed":2}]}},{"commit":"066e93cb075021ac94a0e2e6a36a34bc173ee6c0","message":"move exit() to errormessage()","stats":{"files_changed":1,"insertions":1,"deletions":1,"files":["jc/jc.py"],"file_stats":[{"name":"jc/jc.py","lines_changed":2}]}},{"commit":"0bd2faa7f71a128babc68afea053159ccb91b702","message":"beautify compatibility list","stats":{"files_changed":1,"insertions":2,"deletions":1,"files":["jc/jc.py"],"file_stats":[{"name":"jc/jc.py","lines_changed":3}]}},{"commit":"e2f926453ba386736204e358f8306dfc731b5005","message":"add install script","stats":{"files_changed":1,"insertions":2,"deletions":0,"files":["install.sh"],"file_stats":[{"name":"install.sh","lines_changed":2}]}},{"commit":"b953b79f9c46d8c5398a6c1c2769167b5aed2805","message":"add compatibility","stats":{"files_changed":3,"insertions":11,"deletions":0,"files":["jc/parsers/arp.py","jc/parsers/df.py","jc/parsers/ls.py"],"file_stats":[{"name":"jc/parsers/arp.py","lines_changed":3},{"name":"jc/parsers/df.py","lines_changed":4},{"name":"jc/parsers/ls.py","lines_changed":4}]}},{"commit":"7f9967780692bec2fcbe992eee0c392ab92efb7f","message":"compatibility function call","stats":{"files_changed":2,"insertions":19,"deletions":1,"files":["jc/jc.py","jc/parsers/lsblk.py"],"file_stats":[{"name":"jc/jc.py","lines_changed":16},{"name":"jc/parsers/lsblk.py","lines_changed":4}]}},{"commit":"721b54665924ad1657ee83cd5fca601e03700962","message":"finish schema","stats":{"files_changed":1,"insertions":4,"deletions":4,"files":["jc/parsers/lsblk.py"],"file_stats":[{"name":"jc/parsers/lsblk.py","lines_changed":8}]}},{"commit":"2de5e41269421c73e07d4abd6ca99b38be736261","message":"fix for more columns and build schema","stats":{"files_changed":1,"insertions":95,"deletions":12,"files":["jc/parsers/lsblk.py"],"file_stats":[{"name":"jc/parsers/lsblk.py","lines_changed":107}]}},{"commit":"dfe0f6e99b6174734661fc43d9ad4b1d0dfd96e5","message":"process ls data","stats":{"files_changed":1,"insertions":75,"deletions":9,"files":["jc/parsers/ls.py"],"file_stats":[{"name":"jc/parsers/ls.py","lines_changed":84}]}},{"commit":"8873b1bc697c8f9409fa676c88b5ebe109dc8717","message":"clean up process code","stats":{"files_changed":1,"insertions":24,"deletions":46,"files":["jc/parsers/df.py"],"file_stats":[{"name":"jc/parsers/df.py","lines_changed":70}]}},{"commit":"9ff94707004fefed475603436fc0a7ffb19e6fee","message":"refactor helptext() function","stats":{"files_changed":1,"insertions":9,"deletions":4,"files":["jc/jc.py"],"file_stats":[{"name":"jc/jc.py","lines_changed":13}]}},{"commit":"2c58fca53044892e15ceb5e8bcae1afb09fa3269","message":"process jobs data","stats":{"files_changed":1,"insertions":62,"deletions":4,"files":["jc/parsers/jobs.py"],"file_stats":[{"name":"jc/parsers/jobs.py","lines_changed":66}]}},{"commit":"9e5cd90da7d92bbadbc0d25071d087a3dbd90a5b","message":"process iptables data","stats":{"files_changed":1,"insertions":131,"deletions":261,"files":["jc/parsers/iptables.py"],"file_stats":[{"name":"jc/parsers/iptables.py","lines_changed":392}]}},{"commit":"7ee0d49424bba5274975d6c33e0721977660692f","message":"process ifconfig data","stats":{"files_changed":1,"insertions":107,"deletions":28,"files":["jc/parsers/ifconfig.py"],"file_stats":[{"name":"jc/parsers/ifconfig.py","lines_changed":135}]}},{"commit":"a9058ee21e87454aa423112239c4f4df7daca8c4","message":"doc formatting","stats":{"files_changed":3,"insertions":4,"deletions":1,"files":["jc/parsers/arp.py","jc/parsers/dig.py","jc/parsers/free.py"],"file_stats":[{"name":"jc/parsers/arp.py","lines_changed":3},{"name":"jc/parsers/dig.py","lines_changed":1},{"name":"jc/parsers/free.py","lines_changed":1}]}},{"commit":"fcf0aac87dccac2ce28e6f55e66e2f0b8f6fbd36","message":"add history processing","stats":{"files_changed":1,"insertions":54,"deletions":10,"files":["jc/parsers/history.py"],"file_stats":[{"name":"jc/parsers/history.py","lines_changed":64}]}},{"commit":"daec5f068103aae547509ddacc2be56c84f39f17","message":"process free data","stats":{"files_changed":1,"insertions":55,"deletions":6,"files":["jc/parsers/free.py"],"file_stats":[{"name":"jc/parsers/free.py","lines_changed":61}]}},{"commit":"5b2491d5ae72705758944e247fbca83367c0365f","message":"process env data","stats":{"files_changed":1,"insertions":54,"deletions":5,"files":["jc/parsers/env.py"],"file_stats":[{"name":"jc/parsers/env.py","lines_changed":59}]}},{"commit":"d9b41ac73b234f5bf7ff3abfee198092424a1bbd","message":"doc formatting","stats":{"files_changed":1,"insertions":3,"deletions":1,"files":["jc/parsers/dig.py"],"file_stats":[{"name":"jc/parsers/dig.py","lines_changed":4}]}},{"commit":"7168ffddf8a8dfcdd5bcabd8bf943d6417de407d","message":"process dig output","stats":{"files_changed":1,"insertions":87,"deletions":5,"files":["jc/parsers/dig.py"],"file_stats":[{"name":"jc/parsers/dig.py","lines_changed":92}]}},{"commit":"a855344bec9f60d852de326953436ec76f25cffb","message":"document schema","stats":{"files_changed":1,"insertions":13,"deletions":0,"files":["jc/parsers/arp.py"],"file_stats":[{"name":"jc/parsers/arp.py","lines_changed":13}]}},{"commit":"d8b3b59fae924494fbcdfbdf6ad790f5234b0c69","message":"add schema and rename 'avail' to 'available'","stats":{"files_changed":1,"insertions":16,"deletions":0,"files":["jc/parsers/df.py"],"file_stats":[{"name":"jc/parsers/df.py","lines_changed":16}]}},{"commit":"4b7d7840d37be47c1c98c38a6d712e7090e5b68c","message":"add -r option","stats":{"files_changed":2,"insertions":4,"deletions":4,"files":["README.md","changelog.txt"],"file_stats":[{"name":"README.md","lines_changed":6},{"name":"changelog.txt","lines_changed":2}]}},{"commit":"58a094a9b4cab0fcb99581f37a21a450fc3a1aed","message":"changelog update","stats":{"files_changed":1,"insertions":1,"deletions":0,"files":["changelog.txt"],"file_stats":[{"name":"changelog.txt","lines_changed":1}]}},{"commit":"65adbb4189ac66de3283adb2af93a1251103f057","message":"doc update","stats":{"files_changed":1,"insertions":29,"deletions":7,"files":["jc/parsers/arp.py"],"file_stats":[{"name":"jc/parsers/arp.py","lines_changed":36}]}},{"commit":"f7350959c9706486a3aed19a999e5ee756a1240c","message":"df fix for changing header names when -h used","stats":{"files_changed":1,"insertions":47,"deletions":24,"files":["jc/parsers/df.py"],"file_stats":[{"name":"jc/parsers/df.py","lines_changed":71}]}},{"commit":"8934a7d832b8e1375f0bbdd71031f37ae42f3929","message":"fix dictionary iteration","stats":{"files_changed":2,"insertions":4,"deletions":4,"files":["jc/parsers/arp.py","jc/parsers/df.py"],"file_stats":[{"name":"jc/parsers/arp.py","lines_changed":2},{"name":"jc/parsers/df.py","lines_changed":6}]}},{"commit":"669a424fd6508db91bf5cfa2607033fac85f442c","message":"fix process function","stats":{"files_changed":1,"insertions":2,"deletions":2,"files":["jc/parsers/df.py"],"file_stats":[{"name":"jc/parsers/df.py","lines_changed":4}]}},{"commit":"591a65c2bda26efcdd570a5f147f98a5be0473d4","message":"process df data","stats":{"files_changed":1,"insertions":46,"deletions":2,"files":["jc/parsers/df.py"],"file_stats":[{"name":"jc/parsers/df.py","lines_changed":48}]}},{"commit":"a78fb890782a64b20c0c1b60afbd915ebdd88535","message":"add raw and processed output","stats":{"files_changed":1,"insertions":21,"deletions":5,"files":["jc/parsers/arp.py"],"file_stats":[{"name":"jc/parsers/arp.py","lines_changed":26}]}},{"commit":"8979dab2a5371fce3a773004c2309e7483e4cd31","message":"add raw mode","stats":{"files_changed":1,"insertions":25,"deletions":20,"files":["jc/jc.py"],"file_stats":[{"name":"jc/jc.py","lines_changed":45}]}},{"commit":"0a891f0adda7f2f3233222a0cb5c1f737913ad6f","message":"bump python required version","stats":{"files_changed":2,"insertions":4,"deletions":1,"files":["changelog.txt","setup.py"],"file_stats":[{"name":"changelog.txt","lines_changed":3},{"name":"setup.py","lines_changed":2}]}},{"commit":"c220e35b14237c2cfc38aa661413af83ea13e393","message":"cleanup helptext","stats":{"files_changed":1,"insertions":34,"deletions":33,"files":["jc/jc.py"],"file_stats":[{"name":"jc/jc.py","lines_changed":67}]}},{"commit":"f26c5818bd958c18f4ecc22611b9c058f6213a2c","message":"refactor helptext","stats":{"files_changed":1,"insertions":36,"deletions":33,"files":["jc/jc.py"],"file_stats":[{"name":"jc/jc.py","lines_changed":69}]}},{"commit":"e712cd3fc4cec1b3137c73e199b2d89fd42fb3bb","message":"netstat2 skeleton","stats":{"files_changed":1,"insertions":138,"deletions":0,"files":["jc/parsers/netstat2.py"],"file_stats":[{"name":"jc/parsers/netstat2.py","lines_changed":138}]}},{"commit":"0309c9ac67c5f65e0a584fd01e8104ef1990fa7c","message":"setup cleanup","stats":{"files_changed":1,"insertions":1,"deletions":1,"files":["setup.py"],"file_stats":[{"name":"setup.py","lines_changed":2}]}},{"commit":"9a9eb4120af7696cd3727ac0f0a014663e62b993","message":"setup updates","stats":{"files_changed":1,"insertions":2,"deletions":1,"files":["setup.py"],"file_stats":[{"name":"setup.py","lines_changed":3}]}},{"commit":"d1927456b02e6c2a6e6395cd6ce873b6565ec37d","message":"Merge pull request #6 from kellyjonbrazil/dev"},{"commit":"a3d9213a1e2fd52ba2cbc863d4d01d3ffeebe230","message":"add date","stats":{"files_changed":1,"insertions":1,"deletions":2,"files":["changelog.txt"],"file_stats":[{"name":"changelog.txt","lines_changed":3}]}},{"commit":"3365c03a1e709835b4bd6bca023afbcb46912982","message":"add tests","stats":{"files_changed":2,"insertions":361,"deletions":0,"files":["tests/test_arp.py","tests/test_dig.py"],"file_stats":[{"name":"tests/test_arp.py","lines_changed":131},{"name":"tests/test_dig.py","lines_changed":230}]}},{"commit":"4f6c87389b313b368d9e833feef55fe6daf7aac9","message":"add dig test files","stats":{"files_changed":7,"insertions":164,"deletions":1,"files":["tests/fixtures/centos-7.7/dig-aaaa.out","tests/fixtures/centos-7.7/dig-x.out","tests/fixtures/centos-7.7/dig.out","tests/fixtures/create_fixtures.sh","tests/fixtures/ubuntu-18.04/dig-aaaa.out","tests/fixtures/ubuntu-18.04/dig-x.out","tests/fixtures/ubuntu-18.04/dig.out"],"file_stats":[{"name":"tests/fixtures/centos-7.7/dig-aaaa.out","lines_changed":20},{"name":"tests/fixtures/centos-7.7/dig-x.out","lines_changed":20},{"name":"tests/fixtures/centos-7.7/dig.out","lines_changed":38},{"name":"tests/fixtures/create_fixtures.sh","lines_changed":6},{"name":"tests/fixtures/ubuntu-18.04/dig-aaaa.out","lines_changed":20},{"name":"tests/fixtures/ubuntu-18.04/dig-x.out","lines_changed":20},{"name":"tests/fixtures/ubuntu-18.04/dig.out","lines_changed":41}]}},{"commit":"41a2a9adac7d3c29dfa11292f08b0877c69b1a5d","message":"remove unnecessary if statement","stats":{"files_changed":2,"insertions":147,"deletions":3,"files":["README.md","jc/parsers/dig.py"],"file_stats":[{"name":"README.md","lines_changed":147},{"name":"jc/parsers/dig.py","lines_changed":3}]}},{"commit":"74dae2905b2b0916f0be9fee2a4a343962760ff6","message":"dig parser mvp","stats":{"files_changed":1,"insertions":143,"deletions":30,"files":["jc/parsers/dig.py"],"file_stats":[{"name":"jc/parsers/dig.py","lines_changed":173}]}},{"commit":"d1f64214de00090c3faae0bf544c6c2602ab8c31","message":"add authority parsing","stats":{"files_changed":1,"insertions":19,"deletions":3,"files":["jc/parsers/dig.py"],"file_stats":[{"name":"jc/parsers/dig.py","lines_changed":22}]}},{"commit":"d3e1aa20a815d1d1d6ae82776ae18e3416f0966f","message":"fix when line","stats":{"files_changed":1,"insertions":1,"deletions":1,"files":["jc/parsers/dig.py"],"file_stats":[{"name":"jc/parsers/dig.py","lines_changed":2}]}},{"commit":"72cae9577756c4355211a19f4dd77aaeb6f8e905","message":"dig fixes","stats":{"files_changed":1,"insertions":47,"deletions":9,"files":["jc/parsers/dig.py"],"file_stats":[{"name":"jc/parsers/dig.py","lines_changed":56}]}},{"commit":"219bc8130f55f23e3be3abbe56104aefc2f84e86","message":"dig parser skeleton","stats":{"files_changed":2,"insertions":155,"deletions":0,"files":["jc/jc.py","jc/parsers/dig.py"],"file_stats":[{"name":"jc/jc.py","lines_changed":5},{"name":"jc/parsers/dig.py","lines_changed":150}]}},{"commit":"e8c1a554c040ad8f9c6b518db5fd58e8345d2181","message":"testfile updates","stats":{"files_changed":3,"insertions":7,"deletions":0,"files":["tests/fixtures/centos-7.7/arp-a.out","tests/fixtures/create_fixtures.sh","tests/fixtures/ubuntu-18.04/arp-a.out"],"file_stats":[{"name":"tests/fixtures/centos-7.7/arp-a.out","lines_changed":3},{"name":"tests/fixtures/create_fixtures.sh","lines_changed":1},{"name":"tests/fixtures/ubuntu-18.04/arp-a.out","lines_changed":3}]}},{"commit":"087a60bc2adf64bfcedc1f264fef328f993b530c","message":"documentation updates","stats":{"files_changed":2,"insertions":87,"deletions":5,"files":["README.md","jc/parsers/arp.py"],"file_stats":[{"name":"README.md","lines_changed":33},{"name":"jc/parsers/arp.py","lines_changed":59}]}},{"commit":"9c9823c3b8737b5de08af6278ca74414138e9263","message":"add arp testfiles","stats":{"files_changed":5,"insertions":16,"deletions":0,"files":["tests/fixtures/centos-7.7/arp-v.out","tests/fixtures/centos-7.7/arp.out","tests/fixtures/create_fixtures.sh","tests/fixtures/ubuntu-18.04/arp-v.out","tests/fixtures/ubuntu-18.04/arp.out"],"file_stats":[{"name":"tests/fixtures/centos-7.7/arp-v.out","lines_changed":4},{"name":"tests/fixtures/centos-7.7/arp.out","lines_changed":3},{"name":"tests/fixtures/create_fixtures.sh","lines_changed":2},{"name":"tests/fixtures/ubuntu-18.04/arp-v.out","lines_changed":4},{"name":"tests/fixtures/ubuntu-18.04/arp.out","lines_changed":3}]}},{"commit":"cf8d13030bf67261a986c0f80fa20ec0e37a743a","message":"add arp","stats":{"files_changed":1,"insertions":21,"deletions":0,"files":["README.md"],"file_stats":[{"name":"README.md","lines_changed":21}]}},{"commit":"1eff69c187ca410ffaec7909bc2532553be1d80c","message":"add documentation","stats":{"files_changed":2,"insertions":17,"deletions":1,"files":["changelog.txt","jc/parsers/arp.py"],"file_stats":[{"name":"changelog.txt","lines_changed":1},{"name":"jc/parsers/arp.py","lines_changed":17}]}},{"commit":"b10fb77d714b73a10a9bf28b45269b3530e01cee","message":"fixup arp parser","stats":{"files_changed":1,"insertions":9,"deletions":1,"files":["jc/parsers/arp.py"],"file_stats":[{"name":"jc/parsers/arp.py","lines_changed":10}]}},{"commit":"87cee8b230a06fa270b2e36afb56f337da814c80","message":"add arp parser","stats":{"files_changed":2,"insertions":28,"deletions":1,"files":["jc/jc.py","jc/parsers/arp.py"],"file_stats":[{"name":"jc/jc.py","lines_changed":7},{"name":"jc/parsers/arp.py","lines_changed":22}]}},{"commit":"83ab10d6282e26391bbf6bae5d0d29e040b209f0","message":"documentation update","stats":{"files_changed":1,"insertions":44,"deletions":34,"files":["jc/__init__.py"],"file_stats":[{"name":"jc/__init__.py","lines_changed":78}]}},{"commit":"d58a6e1d1dc93155255922b65b0af1325439b033","message":"readme update","stats":{"files_changed":1,"insertions":13,"deletions":15,"files":["README.md"],"file_stats":[{"name":"README.md","lines_changed":28}]}},{"commit":"cb46ca5c2776a13c673a44d3e0fbd0661b32af9f","message":"readme update","stats":{"files_changed":1,"insertions":6,"deletions":1,"files":["README.md"],"file_stats":[{"name":"README.md","lines_changed":7}]}},{"commit":"5528d979f0b45787d68ab79b962371df9acc527b","message":"version bump","stats":{"files_changed":2,"insertions":7,"deletions":1,"files":["changelog.txt","setup.py"],"file_stats":[{"name":"changelog.txt","lines_changed":6},{"name":"setup.py","lines_changed":2}]}},{"commit":"ee94a038a61d60db72046d5bcceec58009decb39","message":"add tests","stats":{"files_changed":3,"insertions":131,"deletions":0,"files":["tests/test_uname.py","tests/test_uptime.py","tests/test_w.py"],"file_stats":[{"name":"tests/test_uname.py","lines_changed":45},{"name":"tests/test_uptime.py","lines_changed":41},{"name":"tests/test_w.py","lines_changed":45}]}},{"commit":"1d658f7a9fc50873f76985b2fb9de92ada9d5547","message":"add tests","stats":{"files_changed":3,"insertions":265,"deletions":0,"files":["tests/test_netstat.py","tests/test_ps.py","tests/test_route.py"],"file_stats":[{"name":"tests/test_netstat.py","lines_changed":105},{"name":"tests/test_ps.py","lines_changed":83},{"name":"tests/test_route.py","lines_changed":77}]}},{"commit":"392cb44f9b19829a5ceba055e24c7af4d8ac5b3b","message":"initial add of tests and fixtures","stats":{"files_changed":80,"insertions":12667,"deletions":0,"files":["runtests.sh","tests/__init__.py","tests/fixtures/centos-7.7/df-h.out","tests/fixtures/centos-7.7/df.out","tests/fixtures/centos-7.7/env.out","tests/fixtures/centos-7.7/free-h.out","tests/fixtures/centos-7.7/free.out","tests/fixtures/centos-7.7/history.out","tests/fixtures/centos-7.7/ifconfig.out","tests/fixtures/centos-7.7/iptables-filter-nv.out","tests/fixtures/centos-7.7/iptables-filter.out","tests/fixtures/centos-7.7/iptables-mangle.out","tests/fixtures/centos-7.7/iptables-nat.out","tests/fixtures/centos-7.7/iptables-raw.out","tests/fixtures/centos-7.7/jobs.out","tests/fixtures/centos-7.7/ls-al.out","tests/fixtures/centos-7.7/ls-alh.out","tests/fixtures/centos-7.7/ls.out","tests/fixtures/centos-7.7/lsblk.out","tests/fixtures/centos-7.7/lsmod.out","tests/fixtures/centos-7.7/lsof-sudo.out","tests/fixtures/centos-7.7/lsof.out","tests/fixtures/centos-7.7/mount.out","tests/fixtures/centos-7.7/netstat-l.out","tests/fixtures/centos-7.7/netstat-p.out","tests/fixtures/centos-7.7/netstat-sudo-lnp.out","tests/fixtures/centos-7.7/netstat.out","tests/fixtures/centos-7.7/ps-axu.out","tests/fixtures/centos-7.7/ps-ef.out","tests/fixtures/centos-7.7/route-vn.out","tests/fixtures/centos-7.7/route.out","tests/fixtures/centos-7.7/uname-a.out","tests/fixtures/centos-7.7/uptime.out","tests/fixtures/centos-7.7/w.out","tests/fixtures/create_fixtures.sh","tests/fixtures/ubuntu-18.04/df-h.out","tests/fixtures/ubuntu-18.04/df.out","tests/fixtures/ubuntu-18.04/env.out","tests/fixtures/ubuntu-18.04/free-h.out","tests/fixtures/ubuntu-18.04/free.out","tests/fixtures/ubuntu-18.04/history.out","tests/fixtures/ubuntu-18.04/ifconfig.out","tests/fixtures/ubuntu-18.04/iptables-filter-nv.out","tests/fixtures/ubuntu-18.04/iptables-filter.out","tests/fixtures/ubuntu-18.04/iptables-mangle.out","tests/fixtures/ubuntu-18.04/iptables-nat.out","tests/fixtures/ubuntu-18.04/iptables-raw.out","tests/fixtures/ubuntu-18.04/jobs.out","tests/fixtures/ubuntu-18.04/ls-al.out","tests/fixtures/ubuntu-18.04/ls-alh.out","tests/fixtures/ubuntu-18.04/ls.out","tests/fixtures/ubuntu-18.04/lsblk.out","tests/fixtures/ubuntu-18.04/lsmod.out","tests/fixtures/ubuntu-18.04/lsof-sudo.out","tests/fixtures/ubuntu-18.04/lsof.out","tests/fixtures/ubuntu-18.04/mount.out","tests/fixtures/ubuntu-18.04/netstat-l.out","tests/fixtures/ubuntu-18.04/netstat-p.out","tests/fixtures/ubuntu-18.04/netstat-sudo-lnp.out","tests/fixtures/ubuntu-18.04/netstat.out","tests/fixtures/ubuntu-18.04/ps-axu.out","tests/fixtures/ubuntu-18.04/ps-ef.out","tests/fixtures/ubuntu-18.04/route-vn.out","tests/fixtures/ubuntu-18.04/route.out","tests/fixtures/ubuntu-18.04/uname-a.out","tests/fixtures/ubuntu-18.04/uptime.out","tests/fixtures/ubuntu-18.04/w.out","tests/test_df.py","tests/test_env.py","tests/test_free.py","tests/test_history.py","tests/test_ifconfig.py","tests/test_iptables.py","tests/test_jobs.py","tests/test_ls.py","tests/test_lsblk.py","tests/test_lsmod.py","tests/test_lsof.py","tests/test_mount.py","tests/test_netstat.py"],"file_stats":[{"name":"runtests.sh","lines_changed":3},{"name":"tests/__init__.py","lines_changed":0},{"name":"tests/fixtures/centos-7.7/df-h.out","lines_changed":8},{"name":"tests/fixtures/centos-7.7/df.out","lines_changed":8},{"name":"tests/fixtures/centos-7.7/env.out","lines_changed":24},{"name":"tests/fixtures/centos-7.7/free-h.out","lines_changed":3},{"name":"tests/fixtures/centos-7.7/free.out","lines_changed":3},{"name":"tests/fixtures/centos-7.7/history.out","lines_changed":1000},{"name":"tests/fixtures/centos-7.7/ifconfig.out","lines_changed":26},{"name":"tests/fixtures/centos-7.7/iptables-filter-nv.out","lines_changed":134},{"name":"tests/fixtures/centos-7.7/iptables-filter.out","lines_changed":134},{"name":"tests/fixtures/centos-7.7/iptables-mangle.out","lines_changed":59},{"name":"tests/fixtures/centos-7.7/iptables-nat.out","lines_changed":80},{"name":"tests/fixtures/centos-7.7/iptables-raw.out","lines_changed":38},{"name":"tests/fixtures/centos-7.7/jobs.out","lines_changed":4},{"name":"tests/fixtures/centos-7.7/ls-al.out","lines_changed":22},{"name":"tests/fixtures/centos-7.7/ls-alh.out","lines_changed":22},{"name":"tests/fixtures/centos-7.7/ls.out","lines_changed":19},{"name":"tests/fixtures/centos-7.7/lsblk.out","lines_changed":7},{"name":"tests/fixtures/centos-7.7/lsmod.out","lines_changed":99},{"name":"tests/fixtures/centos-7.7/lsof-sudo.out","lines_changed":3390},{"name":"tests/fixtures/centos-7.7/lsof.out","lines_changed":639},{"name":"tests/fixtures/centos-7.7/mount.out","lines_changed":31},{"name":"tests/fixtures/centos-7.7/netstat-l.out","lines_changed":45},{"name":"tests/fixtures/centos-7.7/netstat-p.out","lines_changed":121},{"name":"tests/fixtures/centos-7.7/netstat-sudo-lnp.out","lines_changed":45},{"name":"tests/fixtures/centos-7.7/netstat.out","lines_changed":123},{"name":"tests/fixtures/centos-7.7/ps-axu.out","lines_changed":110},{"name":"tests/fixtures/centos-7.7/ps-ef.out","lines_changed":110},{"name":"tests/fixtures/centos-7.7/route-vn.out","lines_changed":5},{"name":"tests/fixtures/centos-7.7/route.out","lines_changed":5},{"name":"tests/fixtures/centos-7.7/uname-a.out","lines_changed":1},{"name":"tests/fixtures/centos-7.7/uptime.out","lines_changed":1},{"name":"tests/fixtures/centos-7.7/w.out","lines_changed":4},{"name":"tests/fixtures/create_fixtures.sh","lines_changed":48},{"name":"tests/fixtures/ubuntu-18.04/df-h.out","lines_changed":19},{"name":"tests/fixtures/ubuntu-18.04/df.out","lines_changed":19},{"name":"tests/fixtures/ubuntu-18.04/env.out","lines_changed":21},{"name":"tests/fixtures/ubuntu-18.04/free-h.out","lines_changed":3},{"name":"tests/fixtures/ubuntu-18.04/free.out","lines_changed":3},{"name":"tests/fixtures/ubuntu-18.04/history.out","lines_changed":453},{"name":"tests/fixtures/ubuntu-18.04/ifconfig.out","lines_changed":18},{"name":"tests/fixtures/ubuntu-18.04/iptables-filter-nv.out","lines_changed":30},{"name":"tests/fixtures/ubuntu-18.04/iptables-filter.out","lines_changed":30},{"name":"tests/fixtures/ubuntu-18.04/iptables-mangle.out","lines_changed":14},{"name":"tests/fixtures/ubuntu-18.04/iptables-nat.out","lines_changed":11},{"name":"tests/fixtures/ubuntu-18.04/iptables-raw.out","lines_changed":5},{"name":"tests/fixtures/ubuntu-18.04/jobs.out","lines_changed":4},{"name":"tests/fixtures/ubuntu-18.04/ls-al.out","lines_changed":30},{"name":"tests/fixtures/ubuntu-18.04/ls-alh.out","lines_changed":30},{"name":"tests/fixtures/ubuntu-18.04/ls.out","lines_changed":27},{"name":"tests/fixtures/ubuntu-18.04/lsblk.out","lines_changed":18},{"name":"tests/fixtures/ubuntu-18.04/lsmod.out","lines_changed":102},{"name":"tests/fixtures/ubuntu-18.04/lsof-sudo.out","lines_changed":2854},{"name":"tests/fixtures/ubuntu-18.04/lsof.out","lines_changed":976},{"name":"tests/fixtures/ubuntu-18.04/mount.out","lines_changed":43},{"name":"tests/fixtures/ubuntu-18.04/netstat-l.out","lines_changed":32},{"name":"tests/fixtures/ubuntu-18.04/netstat-p.out","lines_changed":97},{"name":"tests/fixtures/ubuntu-18.04/netstat-sudo-lnp.out","lines_changed":32},{"name":"tests/fixtures/ubuntu-18.04/netstat.out","lines_changed":97},{"name":"tests/fixtures/ubuntu-18.04/ps-axu.out","lines_changed":173},{"name":"tests/fixtures/ubuntu-18.04/ps-ef.out","lines_changed":173},{"name":"tests/fixtures/ubuntu-18.04/route-vn.out","lines_changed":5},{"name":"tests/fixtures/ubuntu-18.04/route.out","lines_changed":5},{"name":"tests/fixtures/ubuntu-18.04/uname-a.out","lines_changed":1},{"name":"tests/fixtures/ubuntu-18.04/uptime.out","lines_changed":1},{"name":"tests/fixtures/ubuntu-18.04/w.out","lines_changed":4},{"name":"tests/test_df.py","lines_changed":69},{"name":"tests/test_env.py","lines_changed":31},{"name":"tests/test_free.py","lines_changed":67},{"name":"tests/test_history.py","lines_changed":31},{"name":"tests/test_ifconfig.py","lines_changed":77},{"name":"tests/test_iptables.py","lines_changed":299},{"name":"tests/test_jobs.py","lines_changed":37},{"name":"tests/test_ls.py","lines_changed":92},{"name":"tests/test_lsblk.py","lines_changed":43},{"name":"tests/test_lsmod.py","lines_changed":40},{"name":"tests/test_lsof.py","lines_changed":85},{"name":"tests/test_mount.py","lines_changed":48},{"name":"tests/test_netstat.py","lines_changed":47}]}},{"commit":"579bef079cdd7cfa298bc20e052b8eb75b586f5e","message":"move global output variable inside function","stats":{"files_changed":1,"insertions":1,"deletions":2,"files":["jc/parsers/netstat.py"],"file_stats":[{"name":"jc/parsers/netstat.py","lines_changed":3}]}},{"commit":"0691cfcab3f5f91908e06ec906d57e548d4e7a1f","message":"changelog fix","stats":{"files_changed":1,"insertions":0,"deletions":1,"files":["changelog.txt"],"file_stats":[{"name":"changelog.txt","lines_changed":1}]}},{"commit":"db29c7c186601fd4596d3eb121b37100601af907","message":"documentation fixes","stats":{"files_changed":2,"insertions":4,"deletions":4,"files":["README.md","jc/parsers/netstat.py"],"file_stats":[{"name":"README.md","lines_changed":4},{"name":"jc/parsers/netstat.py","lines_changed":4}]}},{"commit":"fb1e03637514b5ab02fd4c5df1db8b3cbacdd531","message":"formatting","stats":{"files_changed":1,"insertions":14,"deletions":10,"files":["README.md"],"file_stats":[{"name":"README.md","lines_changed":24}]}},{"commit":"c3eaf59836538f4ab4c745e87b70115b4a4c5421","message":"Merge pull request #5 from kellyjonbrazil/dev"},{"commit":"c9849ce0db1f864d33739f8f6f942bf5672bc3b7","message":"changelog update","stats":{"files_changed":1,"insertions":2,"deletions":1,"files":["changelog.txt"],"file_stats":[{"name":"changelog.txt","lines_changed":3}]}},{"commit":"d3c89a3092973a7a8765463fff41c2469ed675cd","message":"check for enough info to parse","stats":{"files_changed":1,"insertions":11,"deletions":9,"files":["jc/parsers/uname.py"],"file_stats":[{"name":"jc/parsers/uname.py","lines_changed":20}]}},{"commit":"a3d43f27f7bb0835b3593b7c303fe0ee8d896a58","message":"fix odd uptime text parsing","stats":{"files_changed":1,"insertions":12,"deletions":10,"files":["jc/parsers/uptime.py"],"file_stats":[{"name":"jc/parsers/uptime.py","lines_changed":22}]}},{"commit":"f4d9c1b699fa30bd297a40ccf3d5f6e7ba3d4253","message":"fix uptime for minutes and hours long uptime","stats":{"files_changed":1,"insertions":8,"deletions":4,"files":["jc/parsers/uptime.py"],"file_stats":[{"name":"jc/parsers/uptime.py","lines_changed":12}]}},{"commit":"de647bba4aff84f7b513cf7f6fec8d3933b0d9da","message":"documentation update","stats":{"files_changed":1,"insertions":1,"deletions":1,"files":["README.md"],"file_stats":[{"name":"README.md","lines_changed":2}]}},{"commit":"d7913070315e5e0c89006942250aaf37e9e3e18e","message":"documentation update","stats":{"files_changed":1,"insertions":2,"deletions":1,"files":["README.md"],"file_stats":[{"name":"README.md","lines_changed":3}]}},{"commit":"1a4fc204e21f1555ae67c3147322c8d73fab630b","message":"Documentation update","stats":{"files_changed":2,"insertions":10,"deletions":1,"files":["README.md","changelog.txt"],"file_stats":[{"name":"README.md","lines_changed":10},{"name":"changelog.txt","lines_changed":1}]}},{"commit":"0328e14c7c65a330093faa52fe48dae6cb173e42","message":"handle ctrl-c gracefully","stats":{"files_changed":1,"insertions":7,"deletions":0,"files":["jc/jc.py"],"file_stats":[{"name":"jc/jc.py","lines_changed":7}]}},{"commit":"1acc4d6c29d136e286f82d607c4a3a59e2680b68","message":"fix uptime parsing for short uptimes","stats":{"files_changed":1,"insertions":4,"deletions":0,"files":["jc/parsers/uptime.py"],"file_stats":[{"name":"jc/parsers/uptime.py","lines_changed":4}]}},{"commit":"27245590ce28be933f1a55db4ee6b24783f4b63d","message":"remove integers","stats":{"files_changed":1,"insertions":12,"deletions":20,"files":["jc/parsers/jobs.py"],"file_stats":[{"name":"jc/parsers/jobs.py","lines_changed":32}]}},{"commit":"7ca2a4bdb939293e8d7364f8901ad1fd6d3ee808","message":"remove integer values","stats":{"files_changed":5,"insertions":182,"deletions":201,"files":["README.md","changelog.txt","jc/parsers/jobs.py","jc/parsers/ls.py","jc/parsers/netstat.py"],"file_stats":[{"name":"README.md","lines_changed":199},{"name":"changelog.txt","lines_changed":1},{"name":"jc/parsers/jobs.py","lines_changed":4},{"name":"jc/parsers/ls.py","lines_changed":95},{"name":"jc/parsers/netstat.py","lines_changed":84}]}},{"commit":"5f1ec6734874651bee595961edf1fafaf5acf001","message":"lower() headers","stats":{"files_changed":10,"insertions":473,"deletions":456,"files":["README.md","jc/parsers/df.py","jc/parsers/history.py","jc/parsers/iptables.py","jc/parsers/lsblk.py","jc/parsers/lsmod.py","jc/parsers/lsof.py","jc/parsers/ps.py","jc/parsers/route.py","jc/parsers/w.py"],"file_stats":[{"name":"README.md","lines_changed":453},{"name":"jc/parsers/df.py","lines_changed":52},{"name":"jc/parsers/history.py","lines_changed":2},{"name":"jc/parsers/iptables.py","lines_changed":2},{"name":"jc/parsers/lsblk.py","lines_changed":73},{"name":"jc/parsers/lsmod.py","lines_changed":61},{"name":"jc/parsers/lsof.py","lines_changed":113},{"name":"jc/parsers/ps.py","lines_changed":81},{"name":"jc/parsers/route.py","lines_changed":60},{"name":"jc/parsers/w.py","lines_changed":32}]}},{"commit":"7e44c4278a75c7223d99200023160e8d77fde54d","message":"formatting","stats":{"files_changed":1,"insertions":1,"deletions":1,"files":["jc/parsers/jobs.py"],"file_stats":[{"name":"jc/parsers/jobs.py","lines_changed":2}]}},{"commit":"eda726c4a3864008e2f700374b679ae68a965ef8","message":"documentation update","stats":{"files_changed":1,"insertions":80,"deletions":1,"files":["jc/parsers/ifconfig.py"],"file_stats":[{"name":"jc/parsers/ifconfig.py","lines_changed":81}]}},{"commit":"5f8e70d73054f1a106c0e75eee621bc0cefd1c6b","message":"convert headers to lowercase","stats":{"files_changed":9,"insertions":20,"deletions":22,"files":["changelog.txt","jc/parsers/df.py","jc/parsers/free.py","jc/parsers/lsblk.py","jc/parsers/lsmod.py","jc/parsers/lsof.py","jc/parsers/ps.py","jc/parsers/route.py","jc/parsers/w.py"],"file_stats":[{"name":"changelog.txt","lines_changed":1},{"name":"jc/parsers/df.py","lines_changed":4},{"name":"jc/parsers/free.py","lines_changed":2},{"name":"jc/parsers/lsblk.py","lines_changed":8},{"name":"jc/parsers/lsmod.py","lines_changed":9},{"name":"jc/parsers/lsof.py","lines_changed":8},{"name":"jc/parsers/ps.py","lines_changed":2},{"name":"jc/parsers/route.py","lines_changed":2},{"name":"jc/parsers/w.py","lines_changed":6}]}},{"commit":"25b90546c652cafa9409f02bae1654cb523add88","message":"change 'Use%' to 'Use_percent'","stats":{"files_changed":3,"insertions":14,"deletions":9,"files":["README.md","changelog.txt","jc/parsers/df.py"],"file_stats":[{"name":"README.md","lines_changed":8},{"name":"changelog.txt","lines_changed":2},{"name":"jc/parsers/df.py","lines_changed":13}]}},{"commit":"75c084153845757e22c149ea4ae7909d42ec7118","message":"changelog update","stats":{"files_changed":1,"insertions":2,"deletions":1,"files":["changelog.txt"],"file_stats":[{"name":"changelog.txt","lines_changed":3}]}},{"commit":"5b532b9b71fdb9de575da0af9b7989ac537877c4","message":"minor cleanup","stats":{"files_changed":1,"insertions":2,"deletions":3,"files":["jc/parsers/lsof.py"],"file_stats":[{"name":"jc/parsers/lsof.py","lines_changed":5}]}},{"commit":"8c7b3193d131411f8766508fc27b2a6589bba1f2","message":"documentation change","stats":{"files_changed":1,"insertions":1,"deletions":1,"files":["jc/parsers/history.py"],"file_stats":[{"name":"jc/parsers/history.py","lines_changed":2}]}},{"commit":"0897c96ef3c180a1707e8f56c545f59b3a4e0672","message":"formatting","stats":{"files_changed":1,"insertions":2,"deletions":0,"files":["jc/parsers/lsof.py"],"file_stats":[{"name":"jc/parsers/lsof.py","lines_changed":2}]}},{"commit":"57d0ab2ed7f444862546da17cbbe8f8ce67bca8c","message":"change LOGIN@ to LOGIN_AT","stats":{"files_changed":2,"insertions":9,"deletions":4,"files":["README.md","jc/parsers/w.py"],"file_stats":[{"name":"README.md","lines_changed":4},{"name":"jc/parsers/w.py","lines_changed":9}]}},{"commit":"a07d9a0e4bb76d369b4a9bf0d77c7590dc3c2861","message":"change SIZE/OFF key to SIZE_OFF","stats":{"files_changed":2,"insertions":22,"deletions":13,"files":["README.md","jc/parsers/lsof.py"],"file_stats":[{"name":"README.md","lines_changed":10},{"name":"jc/parsers/lsof.py","lines_changed":25}]}},{"commit":"b3996cb4dfed908d71b292dc0b0136c6675351e6","message":"change MAJ:MIN key to MAJ_MIN","stats":{"files_changed":2,"insertions":14,"deletions":10,"files":["README.md","jc/parsers/lsblk.py"],"file_stats":[{"name":"README.md","lines_changed":10},{"name":"jc/parsers/lsblk.py","lines_changed":14}]}},{"commit":"4fa88c1ba38b34f9750625458c465d66f6531bc3","message":"clear out non-ascii chars from data","stats":{"files_changed":1,"insertions":2,"deletions":1,"files":["jc/parsers/history.py"],"file_stats":[{"name":"jc/parsers/history.py","lines_changed":3}]}},{"commit":"c8c5564b29588094721949b96bff1e623437835d","message":"change buff/cache key to buff_cache","stats":{"files_changed":2,"insertions":6,"deletions":3,"files":["README.md","jc/parsers/free.py"],"file_stats":[{"name":"README.md","lines_changed":2},{"name":"jc/parsers/free.py","lines_changed":7}]}},{"commit":"6d047486d9f577bc04d79af839f5eef9657a9d43","message":"doc fix","stats":{"files_changed":1,"insertions":1,"deletions":1,"files":["README.md"],"file_stats":[{"name":"README.md","lines_changed":2}]}},{"commit":"42bdc058141c4a3ac6f2c8211f9c990590b1b5cf","message":"changelog fix","stats":{"files_changed":1,"insertions":1,"deletions":1,"files":["changelog.txt"],"file_stats":[{"name":"changelog.txt","lines_changed":2}]}},{"commit":"85bfb688862e78d5879df6973b88ba8023fa6086","message":"history parser fixes","stats":{"files_changed":2,"insertions":15,"deletions":10,"files":["README.md","jc/parsers/history.py"],"file_stats":[{"name":"README.md","lines_changed":8},{"name":"jc/parsers/history.py","lines_changed":17}]}},{"commit":"08ec21556b553cd7e64932d68e01ba8ff3b0f210","message":"formatting","stats":{"files_changed":1,"insertions":0,"deletions":1,"files":["jc/parsers/w.py"],"file_stats":[{"name":"jc/parsers/w.py","lines_changed":1}]}},{"commit":"320929bf2595026d32b80b80c3e4878db9cf083f","message":"documentation update","stats":{"files_changed":1,"insertions":1,"deletions":1,"files":["jc/parsers/env.py"],"file_stats":[{"name":"jc/parsers/env.py","lines_changed":2}]}},{"commit":"41cd489c34502c42602bf64086670ba3b2b8e14b","message":"add history and uptime parsers","stats":{"files_changed":5,"insertions":126,"deletions":0,"files":["README.md","changelog.txt","jc/jc.py","jc/parsers/history.py","jc/parsers/uptime.py"],"file_stats":[{"name":"README.md","lines_changed":46},{"name":"changelog.txt","lines_changed":3},{"name":"jc/jc.py","lines_changed":10},{"name":"jc/parsers/history.py","lines_changed":32},{"name":"jc/parsers/uptime.py","lines_changed":35}]}},{"commit":"f101d881a16e662e883818749d48e96858fba853","message":"add w parser","stats":{"files_changed":4,"insertions":78,"deletions":3,"files":["README.md","jc/jc.py","jc/parsers/w.py","setup.py"],"file_stats":[{"name":"README.md","lines_changed":27},{"name":"jc/jc.py","lines_changed":9},{"name":"jc/parsers/w.py","lines_changed":43},{"name":"setup.py","lines_changed":2}]}},{"commit":"fa7466022bb8947c1bbf9f7b01aa4d92300a8992","message":"fix env parser","stats":{"files_changed":3,"insertions":28,"deletions":56,"files":["README.md","changelog.txt","jc/parsers/env.py"],"file_stats":[{"name":"README.md","lines_changed":37},{"name":"changelog.txt","lines_changed":3},{"name":"jc/parsers/env.py","lines_changed":44}]}},{"commit":"ea0cf0acf22585fbf8828841cf50155636eae82f","message":"documentation update","stats":{"files_changed":1,"insertions":0,"deletions":3,"files":["jc/parsers/lsof.py"],"file_stats":[{"name":"jc/parsers/lsof.py","lines_changed":3}]}},{"commit":"e7921b65f5a250c10b08f78939f74968047af430","message":"Merge pull request #4 from kellyjonbrazil/dev"},{"commit":"2cc1b1bd5451f31d71b0e2236bdee0ce2b25b5d7","message":"version bump","stats":{"files_changed":1,"insertions":1,"deletions":1,"files":["changelog.txt"],"file_stats":[{"name":"changelog.txt","lines_changed":2}]}},{"commit":"58ae976db0165730a75dd7450c698d2727a354ca","message":"documentation update","stats":{"files_changed":3,"insertions":113,"deletions":4,"files":["README.md","jc/parsers/lsmod.py","setup.py"],"file_stats":[{"name":"README.md","lines_changed":55},{"name":"jc/parsers/lsmod.py","lines_changed":60},{"name":"setup.py","lines_changed":2}]}},{"commit":"66772392ae78ef394e22070b127416b1d5b01332","message":"add lsmod parser","stats":{"files_changed":3,"insertions":32,"deletions":0,"files":["changelog.txt","jc/jc.py","jc/parsers/lsmod.py"],"file_stats":[{"name":"changelog.txt","lines_changed":1},{"name":"jc/jc.py","lines_changed":5},{"name":"jc/parsers/lsmod.py","lines_changed":26}]}},{"commit":"29c47c03a64f9c6b0f44d34be5449396654849b5","message":"documentation update","stats":{"files_changed":3,"insertions":134,"deletions":2,"files":["README.md","changelog.txt","jc/parsers/lsof.py"],"file_stats":[{"name":"README.md","lines_changed":68},{"name":"changelog.txt","lines_changed":3},{"name":"jc/parsers/lsof.py","lines_changed":65}]}},{"commit":"91eb9a4d13e9254bd5bbde931196904c1947a28e","message":"use None instead of --","stats":{"files_changed":1,"insertions":2,"deletions":2,"files":["jc/parsers/lsof.py"],"file_stats":[{"name":"jc/parsers/lsof.py","lines_changed":4}]}},{"commit":"a1a3de32ec14d6ef433e334b9694856698c26d41","message":"add lsof parser","stats":{"files_changed":2,"insertions":59,"deletions":0,"files":["jc/jc.py","jc/parsers/lsof.py"],"file_stats":[{"name":"jc/jc.py","lines_changed":5},{"name":"jc/parsers/lsof.py","lines_changed":54}]}},{"commit":"9c47fd05bf716c2e18ebf4da41b1a46b972b2518","message":"doco fix","stats":{"files_changed":1,"insertions":1,"deletions":1,"files":["jc/parsers/jobs.py"],"file_stats":[{"name":"jc/parsers/jobs.py","lines_changed":2}]}},{"commit":"649c0aa7c157f87691cc8eeac64c747e81f63594","message":"add documentation","stats":{"files_changed":2,"insertions":76,"deletions":1,"files":["README.md","jc/parsers/jobs.py"],"file_stats":[{"name":"README.md","lines_changed":39},{"name":"jc/parsers/jobs.py","lines_changed":38}]}},{"commit":"3db758764e50666e5ae40de8d89180de2ef5bc28","message":"add jobs parser","stats":{"files_changed":3,"insertions":83,"deletions":0,"files":["changelog.txt","jc/jc.py","jc/parsers/jobs.py"],"file_stats":[{"name":"changelog.txt","lines_changed":6},{"name":"jc/jc.py","lines_changed":5},{"name":"jc/parsers/jobs.py","lines_changed":72}]}},{"commit":"802f1510eb6d621f9c760f28b83f16a4781b8d93","message":"tighten if statements","stats":{"files_changed":1,"insertions":1,"deletions":1,"files":["jc/parsers/iptables.py"],"file_stats":[{"name":"jc/parsers/iptables.py","lines_changed":2}]}},{"commit":"56901788dee154890e70269ad48d4b22bb8c5437","message":"stop blocking when no pipe and enhance help text","stats":{"files_changed":1,"insertions":30,"deletions":19,"files":["jc/jc.py"],"file_stats":[{"name":"jc/jc.py","lines_changed":49}]}},{"commit":"679ae6d5dc7af26240dc00d8bc6499950f81d457","message":"version bump","stats":{"files_changed":1,"insertions":1,"deletions":1,"files":["setup.py"],"file_stats":[{"name":"setup.py","lines_changed":2}]}},{"commit":"b15c8c352a87a9b3b1dece28af0287ef71ca02d0","message":"simplify state variables","stats":{"files_changed":1,"insertions":14,"deletions":16,"files":["jc/parsers/iptables.py"],"file_stats":[{"name":"jc/parsers/iptables.py","lines_changed":30}]}},{"commit":"393e8bc56041a4be01b6c0b2f98895aa330afd04","message":"Merge pull request #3 from kellyjonbrazil/dev"},{"commit":"976fd7d9bd49190a8b28ea5acf5af8979cdec537","message":"readme update","stats":{"files_changed":1,"insertions":27,"deletions":28,"files":["README.md"],"file_stats":[{"name":"README.md","lines_changed":55}]}},{"commit":"d8337870cad042cdcc6a4ff3c61f756c3430fa96","message":"update documentation","stats":{"files_changed":1,"insertions":27,"deletions":28,"files":["jc/parsers/df.py"],"file_stats":[{"name":"jc/parsers/df.py","lines_changed":55}]}},{"commit":"39a8aec77f5134b5b958e3f679910a1c3512e13a","message":"v0.8.1 build","stats":{"files_changed":3,"insertions":3,"deletions":3,"files":["changelog.txt","jc/parsers/ls.py","setup.py"],"file_stats":[{"name":"changelog.txt","lines_changed":2},{"name":"jc/parsers/ls.py","lines_changed":2},{"name":"setup.py","lines_changed":2}]}},{"commit":"306d539b6bbfb272c7b955e4847adc3a6b4afa5f","message":"readme update","stats":{"files_changed":1,"insertions":1,"deletions":0,"files":["README.md"],"file_stats":[{"name":"README.md","lines_changed":1}]}},{"commit":"f3087b8a8ede88834285bb5d0655fc96341c174c","message":"update readme and formatting","stats":{"files_changed":3,"insertions":635,"deletions":1,"files":["README.md","changelog.txt","jc/parsers/iptables.py"],"file_stats":[{"name":"README.md","lines_changed":319},{"name":"changelog.txt","lines_changed":1},{"name":"jc/parsers/iptables.py","lines_changed":316}]}},{"commit":"414c2ecef88af2d2c098e6acfb507a5fd7bb8eda","message":"fix iptables parser","stats":{"files_changed":1,"insertions":6,"deletions":10,"files":["jc/parsers/iptables.py"],"file_stats":[{"name":"jc/parsers/iptables.py","lines_changed":16}]}},{"commit":"776ef2d1be81180b8b295fbc587446a326f2f7a6","message":"add iptables parser","stats":{"files_changed":2,"insertions":61,"deletions":0,"files":["jc/jc.py","jc/parsers/iptables.py"],"file_stats":[{"name":"jc/jc.py","lines_changed":5},{"name":"jc/parsers/iptables.py","lines_changed":56}]}},{"commit":"9ac57469967443b195be09d580beaa76ce0e1095","message":"add uname parser","stats":{"files_changed":4,"insertions":64,"deletions":1,"files":["README.md","changelog.txt","jc/jc.py","jc/parsers/uname.py"],"file_stats":[{"name":"README.md","lines_changed":15},{"name":"changelog.txt","lines_changed":1},{"name":"jc/jc.py","lines_changed":7},{"name":"jc/parsers/uname.py","lines_changed":42}]}},{"commit":"a3e55d97c0fd4397b42e9146afb0ba9558274fdb","message":"add mount parser","stats":{"files_changed":4,"insertions":127,"deletions":1,"files":["README.md","changelog.txt","jc/jc.py","jc/parsers/mount.py"],"file_stats":[{"name":"README.md","lines_changed":45},{"name":"changelog.txt","lines_changed":1},{"name":"jc/jc.py","lines_changed":7},{"name":"jc/parsers/mount.py","lines_changed":75}]}},{"commit":"b15227e7ba5377e5fb6799d1b9e4ed5a11c6d92f","message":"add lsblk parser","stats":{"files_changed":4,"insertions":125,"deletions":0,"files":["README.md","changelog.txt","jc/jc.py","jc/parsers/lsblk.py"],"file_stats":[{"name":"README.md","lines_changed":49},{"name":"changelog.txt","lines_changed":1},{"name":"jc/jc.py","lines_changed":5},{"name":"jc/parsers/lsblk.py","lines_changed":70}]}},{"commit":"ec3d1f84ceccb492b4c968938714fafa2e6a6321","message":"fix free parser","stats":{"files_changed":1,"insertions":24,"deletions":2,"files":["jc/parsers/free.py"],"file_stats":[{"name":"jc/parsers/free.py","lines_changed":26}]}},{"commit":"753d5fd9fe5a8e4b67b1a0ec018a9f811e27f8bf","message":"readme update","stats":{"files_changed":1,"insertions":1,"deletions":1,"files":["README.md"],"file_stats":[{"name":"README.md","lines_changed":2}]}},{"commit":"73a0d70c9294ad392792e690a7bfbcc4f51b0a5b","message":"readme update","stats":{"files_changed":1,"insertions":2,"deletions":2,"files":["README.md"],"file_stats":[{"name":"README.md","lines_changed":4}]}},{"commit":"c2c189f3e6e900e5f3d35df9a9b9d033448baff6","message":"readme update","stats":{"files_changed":1,"insertions":4,"deletions":1,"files":["README.md"],"file_stats":[{"name":"README.md","lines_changed":5}]}},{"commit":"36bc55a3109278d663b675a09829200f5474c3d8","message":"fix df","stats":{"files_changed":1,"insertions":0,"deletions":3,"files":["README.md"],"file_stats":[{"name":"README.md","lines_changed":3}]}},{"commit":"a023001cd350e320ce30f47af214ed7a9bb43185","message":"add df, env, and free parsers","stats":{"files_changed":6,"insertions":226,"deletions":1,"files":["README.md","changelog.txt","jc/jc.py","jc/parsers/df.py","jc/parsers/env.py","jc/parsers/free.py"],"file_stats":[{"name":"README.md","lines_changed":73},{"name":"changelog.txt","lines_changed":5},{"name":"jc/jc.py","lines_changed":17},{"name":"jc/parsers/df.py","lines_changed":56},{"name":"jc/parsers/env.py","lines_changed":53},{"name":"jc/parsers/free.py","lines_changed":23}]}},{"commit":"e3750b49628794fd4d563013b1f3a7471c27ce68","message":"documentation enhancements","stats":{"files_changed":2,"insertions":83,"deletions":51,"files":["README.md","jc/__init__.py"],"file_stats":[{"name":"README.md","lines_changed":30},{"name":"jc/__init__.py","lines_changed":104}]}},{"commit":"b5ea08e55bfd22c9da5ba73c124791012df119a0","message":"fix transport protocol","stats":{"files_changed":4,"insertions":20,"deletions":20,"files":["README.md","changelog.txt","jc/parsers/netstat.py","setup.py"],"file_stats":[{"name":"README.md","lines_changed":16},{"name":"changelog.txt","lines_changed":2},{"name":"jc/parsers/netstat.py","lines_changed":20},{"name":"setup.py","lines_changed":2}]}},{"commit":"8e71b8e3522b9b1af4d869a0854223eb5c300b63","message":"fix jq example","stats":{"files_changed":1,"insertions":1,"deletions":1,"files":["README.md"],"file_stats":[{"name":"README.md","lines_changed":2}]}},{"commit":"4c8610c54ff4b643237d8f0e4c5781c277fc39f5","message":"fixed build","stats":{"files_changed":2,"insertions":3,"deletions":2,"files":["changelog.txt","setup.py"],"file_stats":[{"name":"changelog.txt","lines_changed":3},{"name":"setup.py","lines_changed":2}]}},{"commit":"c8f886dc8fcdc58f8471d68c3d583200d0ea2f90","message":"fix example","stats":{"files_changed":1,"insertions":1,"deletions":1,"files":["jc/jc.py"],"file_stats":[{"name":"jc/jc.py","lines_changed":2}]}},{"commit":"4cfc2d22b3f9fd6f0cde8ad206edd7fe260b3071","message":"update changelog","stats":{"files_changed":1,"insertions":1,"deletions":1,"files":["changelog.txt"],"file_stats":[{"name":"changelog.txt","lines_changed":2}]}},{"commit":"59238c85408117748e78c5e87157381a828f3782","message":"Merge pull request #2 from kellyjonbrazil/dev"},{"commit":"30080c01659cf611666876b7b063b7b329822352","message":"reorder parsers","stats":{"files_changed":1,"insertions":35,"deletions":35,"files":["README.md"],"file_stats":[{"name":"README.md","lines_changed":70}]}},{"commit":"fab80bb3b4a1897da29d818e98e9b80ce45443dd","message":"readme update","stats":{"files_changed":2,"insertions":2,"deletions":1,"files":["README.md","setup.py"],"file_stats":[{"name":"README.md","lines_changed":1},{"name":"setup.py","lines_changed":2}]}},{"commit":"a9f2df805421754afb8e8adbcac7f2d3bd06c9ef","message":"move parsed_line var lower","stats":{"files_changed":1,"insertions":2,"deletions":1,"files":["jc/parsers/netstat.py"],"file_stats":[{"name":"jc/parsers/netstat.py","lines_changed":3}]}},{"commit":"1d110be6cb25d169ae0dde6532cbcdf05d93d42f","message":"update doco","stats":{"files_changed":3,"insertions":13,"deletions":1,"files":["README.md","changelog.txt","setup.py"],"file_stats":[{"name":"README.md","lines_changed":8},{"name":"changelog.txt","lines_changed":4},{"name":"setup.py","lines_changed":2}]}},{"commit":"be81b5e1ed93eb65e5dbed4f52905439cde86f62","message":"readme update","stats":{"files_changed":1,"insertions":112,"deletions":121,"files":["README.md"],"file_stats":[{"name":"README.md","lines_changed":233}]}},{"commit":"5f88f7d8a071306be92cbfb65d6d62c5a68159f3","message":"netstat cleanup","stats":{"files_changed":1,"insertions":110,"deletions":137,"files":["jc/parsers/netstat.py"],"file_stats":[{"name":"jc/parsers/netstat.py","lines_changed":247}]}},{"commit":"e57c7cc8ef3102cc41dee4ea5fd33d40ba666491","message":"change output from dict to list","stats":{"files_changed":1,"insertions":1,"deletions":1,"files":["jc/parsers/netstat.py"],"file_stats":[{"name":"jc/parsers/netstat.py","lines_changed":2}]}},{"commit":"b216627c1073ea645029e341b4d3376601e5468e","message":"flatten netstat output","stats":{"files_changed":1,"insertions":19,"deletions":116,"files":["jc/parsers/netstat.py"],"file_stats":[{"name":"jc/parsers/netstat.py","lines_changed":135}]}},{"commit":"6e925eab131024b5746d870cbd47e2791acf18bf","message":"clean up arg parsing","stats":{"files_changed":1,"insertions":27,"deletions":18,"files":["jc/jc.py"],"file_stats":[{"name":"jc/jc.py","lines_changed":45}]}},{"commit":"d54d906c571b4683f01cab2eca63ae5f0725a87b","message":"update readme","stats":{"files_changed":1,"insertions":1,"deletions":1,"files":["README.md"],"file_stats":[{"name":"README.md","lines_changed":2}]}},{"commit":"0040febbf099ed8ab35f6ee343750fcf89f2e739","message":"Merge pull request #1 from kellyjonbrazil/dev"},{"commit":"e416c77bed1267254da972b0f95b7ff1d43fccef","message":"version bump","stats":{"files_changed":1,"insertions":1,"deletions":1,"files":["changelog.txt"],"file_stats":[{"name":"changelog.txt","lines_changed":2}]}},{"commit":"9181d242aaed5219bb35fde01d672be88949cceb","message":"bump version","stats":{"files_changed":1,"insertions":1,"deletions":1,"files":["setup.py"],"file_stats":[{"name":"setup.py","lines_changed":2}]}},{"commit":"d6f94c53a4df84fb75554605477e49536a809dc2","message":"fix blank output case in ls","stats":{"files_changed":1,"insertions":3,"deletions":2,"files":["jc/parsers/ls.py"],"file_stats":[{"name":"jc/parsers/ls.py","lines_changed":5}]}},{"commit":"a9294f32a00709737d0b82ff434a311e75ad0bed","message":"ls fixes","stats":{"files_changed":3,"insertions":39,"deletions":42,"files":["changelog.txt","jc/parsers/ls.py","setup.py"],"file_stats":[{"name":"changelog.txt","lines_changed":7},{"name":"jc/parsers/ls.py","lines_changed":72},{"name":"setup.py","lines_changed":2}]}},{"commit":"4d93b38fe47329e3175025878e87f7c963061f98","message":"add route documentation","stats":{"files_changed":2,"insertions":90,"deletions":1,"files":["README.md","jc/parsers/route.py"],"file_stats":[{"name":"README.md","lines_changed":47},{"name":"jc/parsers/route.py","lines_changed":44}]}},{"commit":"77b74c550795f96b808e48a9b0bfd1a8af9866f9","message":"add route parser","stats":{"files_changed":1,"insertions":1,"deletions":1,"files":["changelog.txt"],"file_stats":[{"name":"changelog.txt","lines_changed":2}]}},{"commit":"51a1d3e6f48cf7084267be4092f0dd3f778dcef3","message":"version bump","stats":{"files_changed":1,"insertions":1,"deletions":1,"files":["setup.py"],"file_stats":[{"name":"setup.py","lines_changed":2}]}},{"commit":"2eba30422b44f648c7356a44cbff7416c6648f19","message":"skip first line","stats":{"files_changed":1,"insertions":1,"deletions":1,"files":["jc/parsers/route.py"],"file_stats":[{"name":"jc/parsers/route.py","lines_changed":2}]}},{"commit":"43ed09ce5ba53261dfd7ef50a2e187cb524c416c","message":"add route parser","stats":{"files_changed":3,"insertions":25,"deletions":1,"files":["jc/jc.py","jc/parsers/route.py","setup.py"],"file_stats":[{"name":"jc/jc.py","lines_changed":3},{"name":"jc/parsers/route.py","lines_changed":21},{"name":"setup.py","lines_changed":2}]}},{"commit":"367ab54f94bf7f456377ec9d20f8daf99dbdc1ed","message":"formatting","stats":{"files_changed":3,"insertions":99,"deletions":2,"files":["README.md","changelog.txt","jc/parsers/ps.py"],"file_stats":[{"name":"README.md","lines_changed":53},{"name":"changelog.txt","lines_changed":2},{"name":"jc/parsers/ps.py","lines_changed":46}]}},{"commit":"4f552e370e656cc1882a7dae231475a016f8aa14","message":"acknowledgment","stats":{"files_changed":1,"insertions":3,"deletions":1,"files":["jc/parsers/ps.py"],"file_stats":[{"name":"jc/parsers/ps.py","lines_changed":4}]}},{"commit":"7571139f7980f6e74c29d46971881e82ab0f04bc","message":"bump version","stats":{"files_changed":1,"insertions":1,"deletions":1,"files":["setup.py"],"file_stats":[{"name":"setup.py","lines_changed":2}]}},{"commit":"8ec1bec31711d2ef487da3e4a29a842d98d77626","message":"add ps parser","stats":{"files_changed":4,"insertions":29,"deletions":7,"files":["changelog.txt","jc/__init__.py","jc/jc.py","jc/parsers/ps.py"],"file_stats":[{"name":"changelog.txt","lines_changed":10},{"name":"jc/__init__.py","lines_changed":2},{"name":"jc/jc.py","lines_changed":3},{"name":"jc/parsers/ps.py","lines_changed":21}]}},{"commit":"c04895407f203aa0a3a080d5242faf8f6889ae41","message":"ubuntu fixes","stats":{"files_changed":2,"insertions":6,"deletions":4,"files":["changelog.txt","jc/parsers/netstat.py"],"file_stats":[{"name":"changelog.txt","lines_changed":1},{"name":"jc/parsers/netstat.py","lines_changed":9}]}},{"commit":"cec73d61310591e4890605f61dc5c1bef5808ec4","message":"linting","stats":{"files_changed":4,"insertions":24,"deletions":16,"files":["jc/jc.py","jc/parsers/ifconfig.py","jc/parsers/ls.py","jc/parsers/netstat.py"],"file_stats":[{"name":"jc/jc.py","lines_changed":7},{"name":"jc/parsers/ifconfig.py","lines_changed":7},{"name":"jc/parsers/ls.py","lines_changed":3},{"name":"jc/parsers/netstat.py","lines_changed":23}]}},{"commit":"756c2bc9acd60111281b76085a40778e51ca06cc","message":"add acknowledgments","stats":{"files_changed":1,"insertions":20,"deletions":3,"files":["README.md"],"file_stats":[{"name":"README.md","lines_changed":23}]}},{"commit":"084048987c7afc6516f69e68d37d73b2402dc7f2","message":"changelog update","stats":{"files_changed":1,"insertions":2,"deletions":0,"files":["changelog.txt"],"file_stats":[{"name":"changelog.txt","lines_changed":2}]}},{"commit":"02d97394dd76a8782e6e7d3f8a85e1aed05e796b","message":"changelog update","stats":{"files_changed":1,"insertions":1,"deletions":0,"files":["changelog.txt"],"file_stats":[{"name":"changelog.txt","lines_changed":1}]}},{"commit":"177f948f9740e3e33449b04b9136a346c9a2c265","message":"version update","stats":{"files_changed":1,"insertions":1,"deletions":1,"files":["setup.py"],"file_stats":[{"name":"setup.py","lines_changed":2}]}},{"commit":"c2b013150ec1f1b1ab7d416f1aa8a62165a5bb95","message":"add changelog","stats":{"files_changed":1,"insertions":9,"deletions":0,"files":["changelog.txt"],"file_stats":[{"name":"changelog.txt","lines_changed":9}]}},{"commit":"0bec67c29ce5d965271440da41a0c4b4c2a1f0fb","message":"double quotes to single quotes","stats":{"files_changed":1,"insertions":2,"deletions":2,"files":["jc/parsers/netstat.py"],"file_stats":[{"name":"jc/parsers/netstat.py","lines_changed":4}]}},{"commit":"8073d15fe11546a17cacd81409e255bb8aecd602","message":"readme update","stats":{"files_changed":1,"insertions":12,"deletions":4,"files":["README.md"],"file_stats":[{"name":"README.md","lines_changed":16}]}},{"commit":"3b74afc39e58f801e75b7105e521c1469d30f991","message":"upload script","stats":{"files_changed":1,"insertions":2,"deletions":0,"files":["pypi-upload.sh"],"file_stats":[{"name":"pypi-upload.sh","lines_changed":2}]}},{"commit":"ed320cf0f4bb11cee1e69e9dc9176ba109df1b86","message":"change netstat pid field to integer","stats":{"files_changed":3,"insertions":22,"deletions":22,"files":["README.md","jc/parsers/netstat.py","setup.py"],"file_stats":[{"name":"README.md","lines_changed":20},{"name":"jc/parsers/netstat.py","lines_changed":22},{"name":"setup.py","lines_changed":2}]}},{"commit":"021b6924e24e1cf0f971246244b174cd3181c0a6","message":"documentation updates","stats":{"files_changed":2,"insertions":254,"deletions":5,"files":["README.md","jc/parsers/netstat.py"],"file_stats":[{"name":"README.md","lines_changed":124},{"name":"jc/parsers/netstat.py","lines_changed":135}]}},{"commit":"5fb21b077662f1cb172741945ba5036e5a280638","message":"remove debug print statements","stats":{"files_changed":1,"insertions":0,"deletions":8,"files":["jc/parsers/netstat.py"],"file_stats":[{"name":"jc/parsers/netstat.py","lines_changed":8}]}},{"commit":"7b8540ae2a60f2400fe672a022ee00d1415a3500","message":"netstat fixes","stats":{"files_changed":1,"insertions":19,"deletions":7,"files":["jc/parsers/netstat.py"],"file_stats":[{"name":"jc/parsers/netstat.py","lines_changed":26}]}},{"commit":"a5e039d4c2e07d52a0797833685c562ab285b49b","message":"netstat debugging","stats":{"files_changed":1,"insertions":17,"deletions":7,"files":["jc/parsers/netstat.py"],"file_stats":[{"name":"jc/parsers/netstat.py","lines_changed":24}]}},{"commit":"7071f60a302b7aefb8fb312699b0abec25548986","message":"netstat mvp","stats":{"files_changed":1,"insertions":66,"deletions":18,"files":["jc/parsers/netstat.py"],"file_stats":[{"name":"jc/parsers/netstat.py","lines_changed":84}]}},{"commit":"0de1dff0253eb46b7336103f62f888940406ccc0","message":"fix ands","stats":{"files_changed":1,"insertions":24,"deletions":24,"files":["jc/parsers/netstat.py"],"file_stats":[{"name":"jc/parsers/netstat.py","lines_changed":48}]}},{"commit":"b3c52eb1ccf82e899dda62c332c0b217d80eb4c7","message":"add netstat parser","stats":{"files_changed":2,"insertions":112,"deletions":40,"files":["jc/parsers/ifconfig.py","jc/parsers/netstat.py"],"file_stats":[{"name":"jc/parsers/ifconfig.py","lines_changed":2},{"name":"jc/parsers/netstat.py","lines_changed":150}]}},{"commit":"366c5dbc010869bdb1d3b9d852e10510bd5c266f","message":"fix help message","stats":{"files_changed":1,"insertions":2,"deletions":2,"files":["jc/jc.py"],"file_stats":[{"name":"jc/jc.py","lines_changed":4}]}},{"commit":"a3ee02514b5fbd43a38ddf515a4aad49bb4e161a","message":"fix imports and module names","stats":{"files_changed":1,"insertions":6,"deletions":6,"files":["jc/jc.py"],"file_stats":[{"name":"jc/jc.py","lines_changed":12}]}},{"commit":"46ad1269cb58dc6f064d17eb0b04da62d8fd5fce","message":"packaging fixes","stats":{"files_changed":2,"insertions":4,"deletions":3,"files":["jc/jc.py","setup.py"],"file_stats":[{"name":"jc/jc.py","lines_changed":6},{"name":"setup.py","lines_changed":1}]}},{"commit":"7234afe568818678585ac423649a0ccce0f45d68","message":"entrypoint fix","stats":{"files_changed":1,"insertions":1,"deletions":1,"files":["setup.py"],"file_stats":[{"name":"setup.py","lines_changed":2}]}},{"commit":"caf480c63aacb518805d48fba0fd454959d11023","message":"module fix","stats":{"files_changed":1,"insertions":1,"deletions":1,"files":["setup.py"],"file_stats":[{"name":"setup.py","lines_changed":2}]}},{"commit":"62851b48d5e5cd673e630a28996e1c24cc45aa58","message":"fix modules","stats":{"files_changed":2,"insertions":7,"deletions":7,"files":["jc/jc.py","setup.py"],"file_stats":[{"name":"jc/jc.py","lines_changed":12},{"name":"setup.py","lines_changed":2}]}},{"commit":"46d6da92f0e196e150ab9dd44b1ba290c950905b","message":"fix entry_points","stats":{"files_changed":2,"insertions":1,"deletions":1,"files":["jc/{jc => jc.py}","setup.py"],"file_stats":[{"name":"jc/{jc => jc.py}","lines_changed":0},{"name":"setup.py","lines_changed":2}]}},{"commit":"e572b2edfa993c5049ef3caeda7a8e4797f0c751","message":"use entry_points instead of scripts","stats":{"files_changed":2,"insertions":37,"deletions":29,"files":["jc/jc","setup.py"],"file_stats":[{"name":"jc/jc","lines_changed":58},{"name":"setup.py","lines_changed":8}]}},{"commit":"72c69e7de59029d623c9819dda6aa8cae91bc419","message":"fix package paths","stats":{"files_changed":1,"insertions":6,"deletions":6,"files":["jc/jc"],"file_stats":[{"name":"jc/jc","lines_changed":12}]}},{"commit":"4d1565071e5cf7c38e026e08db8f4d2e79969691","message":"rename jc.py to jc","stats":{"files_changed":2,"insertions":1,"deletions":1,"files":["jc/{jc.py => jc}","setup.py"],"file_stats":[{"name":"jc/{jc.py => jc}","lines_changed":0},{"name":"setup.py","lines_changed":2}]}},{"commit":"3652e51693d7ba829f4699fd80de20856941d82f","message":"fix requirements","stats":{"files_changed":1,"insertions":1,"deletions":1,"files":["setup.py"],"file_stats":[{"name":"setup.py","lines_changed":2}]}},{"commit":"49ce9f13e817266659400a8c19f5b078a48589df","message":"setup updates","stats":{"files_changed":3,"insertions":17,"deletions":20,"files":["jc/jc.py","jc/parsers/__init__.py","setup.py"],"file_stats":[{"name":"jc/jc.py","lines_changed":5},{"name":"jc/parsers/__init__.py","lines_changed":5},{"name":"setup.py","lines_changed":27}]}},{"commit":"e83170b7ec7ed2123bfde69be263b6034c7afa53","message":"readme update","stats":{"files_changed":1,"insertions":1,"deletions":2,"files":["README.md"],"file_stats":[{"name":"README.md","lines_changed":3}]}},{"commit":"ffb6eb754a87baad5fb0558e30a5bca1a9b9e0a8","message":"setup fixes","stats":{"files_changed":2,"insertions":7,"deletions":7,"files":["jc/parsers/__init__.py","setup.py"],"file_stats":[{"name":"jc/parsers/__init__.py","lines_changed":8},{"name":"setup.py","lines_changed":6}]}},{"commit":"2597a18d95d01109d2250487b7550a501edaf77b","message":"readme update","stats":{"files_changed":1,"insertions":82,"deletions":0,"files":["README.md"],"file_stats":[{"name":"README.md","lines_changed":82}]}},{"commit":"3e576250b1bfe1c62c556f2fa0425103b0ede1f9","message":"First commit","stats":{"files_changed":11,"insertions":429,"deletions":0,"files":[".gitignore","LICENSE.md","README.md","build-package.sh","jc/__init__.py","jc/jc.py","jc/parsers/__init__.py","jc/parsers/ifconfig.py","jc/parsers/ls.py","jc/parsers/netstat.py","setup.py"],"file_stats":[{"name":".gitignore","lines_changed":6},{"name":"LICENSE.md","lines_changed":21},{"name":"README.md","lines_changed":53},{"name":"build-package.sh","lines_changed":5},{"name":"jc/__init__.py","lines_changed":61},{"name":"jc/jc.py","lines_changed":38},{"name":"jc/parsers/__init__.py","lines_changed":3},{"name":"jc/parsers/ifconfig.py","lines_changed":30},{"name":"jc/parsers/ls.py","lines_changed":130},{"name":"jc/parsers/netstat.py","lines_changed":55},{"name":"setup.py","lines_changed":27}]}}]