kellyjonbrazil / jc

CLI tool and python library that converts the output of popular command-line tools, file-types, and common strings to JSON, YAML, or Dictionaries. This allows piping of output to tools like jq and simplifying automation scripts.
MIT License
7.79k stars 196 forks source link

The Debian package doesn't provide jc as a Python library? #367

Closed chriscroome closed 1 year ago

chriscroome commented 1 year ago

On Debian Bookworm pip can no longer be used to install Python packages since the latest version, 23.0.1, includes support for PEP-668, the suggestion is to use pipx to install packages and while this is fine for the jc command line it doesn't provide jc as a Python library and this is required when using the jc Ansible filter.

So that leaves Debian Bookworm Ansible users stuck on the jc version Debian provides, currently 1.22.4, so I was wondering if there is any chance that the .deb you are building @kellyjonbrazil could potentially be updated in the future so that it also provides jc as a Python library, as the Debian packaged version does?

I'm afraid that I'm not sure what exactly this would involve, however the files that the GitHub version installs:


dpkg -L jc
/.
/usr
/usr/local
/usr/local/bin
/usr/local/bin/jc
/usr/share
/usr/share/man
/usr/share/man/man1
/usr/share/man/man1/jc.1
/usr/share/doc
/usr/share/doc/jc
/usr/share/doc/jc/changelog.gz
/usr/share/zsh
/usr/share/zsh/site-functions
/usr/share/zsh/site-functions/_jc
/etc
/etc/bash_completion.d
/etc/bash_completion.d/jc

Are clearly far fewer than the Debian version:

dpkg -L jc
/.
/usr
/usr/bin
/usr/bin/jc
/usr/lib
/usr/lib/python3
/usr/lib/python3/dist-packages
/usr/lib/python3/dist-packages/jc
/usr/lib/python3/dist-packages/jc/__init__.py
/usr/lib/python3/dist-packages/jc/__main__.py
/usr/lib/python3/dist-packages/jc/appdirs.py
/usr/lib/python3/dist-packages/jc/cli.py
/usr/lib/python3/dist-packages/jc/cli_data.py
/usr/lib/python3/dist-packages/jc/exceptions.py
/usr/lib/python3/dist-packages/jc/jc_types.py
/usr/lib/python3/dist-packages/jc/lib.py
/usr/lib/python3/dist-packages/jc/parsers
/usr/lib/python3/dist-packages/jc/parsers/__init__.py
/usr/lib/python3/dist-packages/jc/parsers/acpi.py
/usr/lib/python3/dist-packages/jc/parsers/airport.py
/usr/lib/python3/dist-packages/jc/parsers/airport_s.py
/usr/lib/python3/dist-packages/jc/parsers/arp.py
/usr/lib/python3/dist-packages/jc/parsers/asciitable.py
/usr/lib/python3/dist-packages/jc/parsers/asciitable_m.py
/usr/lib/python3/dist-packages/jc/parsers/asn1crypto
/usr/lib/python3/dist-packages/jc/parsers/asn1crypto/__init__.py
/usr/lib/python3/dist-packages/jc/parsers/asn1crypto/_errors.py
/usr/lib/python3/dist-packages/jc/parsers/asn1crypto/_inet.py
/usr/lib/python3/dist-packages/jc/parsers/asn1crypto/_int.py
/usr/lib/python3/dist-packages/jc/parsers/asn1crypto/_iri.py
/usr/lib/python3/dist-packages/jc/parsers/asn1crypto/_ordereddict.py
/usr/lib/python3/dist-packages/jc/parsers/asn1crypto/_teletex_codec.py
/usr/lib/python3/dist-packages/jc/parsers/asn1crypto/_types.py
/usr/lib/python3/dist-packages/jc/parsers/asn1crypto/algos.py
/usr/lib/python3/dist-packages/jc/parsers/asn1crypto/cms.py
/usr/lib/python3/dist-packages/jc/parsers/asn1crypto/core.py
/usr/lib/python3/dist-packages/jc/parsers/asn1crypto/crl.py
/usr/lib/python3/dist-packages/jc/parsers/asn1crypto/csr.py
/usr/lib/python3/dist-packages/jc/parsers/asn1crypto/keys.py
/usr/lib/python3/dist-packages/jc/parsers/asn1crypto/ocsp.py
/usr/lib/python3/dist-packages/jc/parsers/asn1crypto/parser.py
/usr/lib/python3/dist-packages/jc/parsers/asn1crypto/pdf.py
/usr/lib/python3/dist-packages/jc/parsers/asn1crypto/pem.py
/usr/lib/python3/dist-packages/jc/parsers/asn1crypto/pkcs12.py
/usr/lib/python3/dist-packages/jc/parsers/asn1crypto/tsp.py
/usr/lib/python3/dist-packages/jc/parsers/asn1crypto/util.py
/usr/lib/python3/dist-packages/jc/parsers/asn1crypto/version.py
/usr/lib/python3/dist-packages/jc/parsers/asn1crypto/x509.py
/usr/lib/python3/dist-packages/jc/parsers/blkid.py
/usr/lib/python3/dist-packages/jc/parsers/cbt.py
/usr/lib/python3/dist-packages/jc/parsers/cef.py
/usr/lib/python3/dist-packages/jc/parsers/cef_s.py
/usr/lib/python3/dist-packages/jc/parsers/chage.py
/usr/lib/python3/dist-packages/jc/parsers/cksum.py
/usr/lib/python3/dist-packages/jc/parsers/clf.py
/usr/lib/python3/dist-packages/jc/parsers/clf_s.py
/usr/lib/python3/dist-packages/jc/parsers/crontab.py
/usr/lib/python3/dist-packages/jc/parsers/crontab_u.py
/usr/lib/python3/dist-packages/jc/parsers/csv.py
/usr/lib/python3/dist-packages/jc/parsers/csv_s.py
/usr/lib/python3/dist-packages/jc/parsers/date.py
/usr/lib/python3/dist-packages/jc/parsers/datetime_iso.py
/usr/lib/python3/dist-packages/jc/parsers/df.py
/usr/lib/python3/dist-packages/jc/parsers/dig.py
/usr/lib/python3/dist-packages/jc/parsers/dir.py
/usr/lib/python3/dist-packages/jc/parsers/dmidecode.py
/usr/lib/python3/dist-packages/jc/parsers/dpkg_l.py
/usr/lib/python3/dist-packages/jc/parsers/du.py
/usr/lib/python3/dist-packages/jc/parsers/email_address.py
/usr/lib/python3/dist-packages/jc/parsers/env.py
/usr/lib/python3/dist-packages/jc/parsers/file.py
/usr/lib/python3/dist-packages/jc/parsers/findmnt.py
/usr/lib/python3/dist-packages/jc/parsers/finger.py
/usr/lib/python3/dist-packages/jc/parsers/foo.py
/usr/lib/python3/dist-packages/jc/parsers/foo_s.py
/usr/lib/python3/dist-packages/jc/parsers/free.py
/usr/lib/python3/dist-packages/jc/parsers/fstab.py
/usr/lib/python3/dist-packages/jc/parsers/git_log.py
/usr/lib/python3/dist-packages/jc/parsers/git_log_s.py
/usr/lib/python3/dist-packages/jc/parsers/git_ls_remote.py
/usr/lib/python3/dist-packages/jc/parsers/gpg.py
/usr/lib/python3/dist-packages/jc/parsers/group.py
/usr/lib/python3/dist-packages/jc/parsers/gshadow.py
/usr/lib/python3/dist-packages/jc/parsers/hash.py
/usr/lib/python3/dist-packages/jc/parsers/hashsum.py
/usr/lib/python3/dist-packages/jc/parsers/hciconfig.py
/usr/lib/python3/dist-packages/jc/parsers/history.py
/usr/lib/python3/dist-packages/jc/parsers/hosts.py
/usr/lib/python3/dist-packages/jc/parsers/id.py
/usr/lib/python3/dist-packages/jc/parsers/ifconfig.py
/usr/lib/python3/dist-packages/jc/parsers/ini.py
/usr/lib/python3/dist-packages/jc/parsers/iostat.py
/usr/lib/python3/dist-packages/jc/parsers/iostat_s.py
/usr/lib/python3/dist-packages/jc/parsers/ip_address.py
/usr/lib/python3/dist-packages/jc/parsers/iptables.py
/usr/lib/python3/dist-packages/jc/parsers/iso_datetime.py
/usr/lib/python3/dist-packages/jc/parsers/iw_scan.py
/usr/lib/python3/dist-packages/jc/parsers/iwconfig.py
/usr/lib/python3/dist-packages/jc/parsers/jar_manifest.py
/usr/lib/python3/dist-packages/jc/parsers/jobs.py
/usr/lib/python3/dist-packages/jc/parsers/jwt.py
/usr/lib/python3/dist-packages/jc/parsers/kv.py
/usr/lib/python3/dist-packages/jc/parsers/last.py
/usr/lib/python3/dist-packages/jc/parsers/ls.py
/usr/lib/python3/dist-packages/jc/parsers/ls_s.py
/usr/lib/python3/dist-packages/jc/parsers/lsblk.py
/usr/lib/python3/dist-packages/jc/parsers/lsmod.py
/usr/lib/python3/dist-packages/jc/parsers/lsof.py
/usr/lib/python3/dist-packages/jc/parsers/lspci.py
/usr/lib/python3/dist-packages/jc/parsers/lsusb.py
/usr/lib/python3/dist-packages/jc/parsers/m3u.py
/usr/lib/python3/dist-packages/jc/parsers/mdadm.py
/usr/lib/python3/dist-packages/jc/parsers/mount.py
/usr/lib/python3/dist-packages/jc/parsers/mpstat.py
/usr/lib/python3/dist-packages/jc/parsers/mpstat_s.py
/usr/lib/python3/dist-packages/jc/parsers/netstat.py
/usr/lib/python3/dist-packages/jc/parsers/netstat_freebsd_osx.py
/usr/lib/python3/dist-packages/jc/parsers/netstat_linux.py
/usr/lib/python3/dist-packages/jc/parsers/nmcli.py
/usr/lib/python3/dist-packages/jc/parsers/ntpq.py
/usr/lib/python3/dist-packages/jc/parsers/openvpn.py
/usr/lib/python3/dist-packages/jc/parsers/os_prober.py
/usr/lib/python3/dist-packages/jc/parsers/passwd.py
/usr/lib/python3/dist-packages/jc/parsers/pbPlist
/usr/lib/python3/dist-packages/jc/parsers/pbPlist/StrParse.py
/usr/lib/python3/dist-packages/jc/parsers/pbPlist/Switch.py
/usr/lib/python3/dist-packages/jc/parsers/pbPlist/__init__.py
/usr/lib/python3/dist-packages/jc/parsers/pbPlist/pbItem.py
/usr/lib/python3/dist-packages/jc/parsers/pbPlist/pbParser.py
/usr/lib/python3/dist-packages/jc/parsers/pbPlist/pbPlist.py
/usr/lib/python3/dist-packages/jc/parsers/pbPlist/pbRoot.py
/usr/lib/python3/dist-packages/jc/parsers/pbPlist/pbSerializer.py
/usr/lib/python3/dist-packages/jc/parsers/pci_ids.py
/usr/lib/python3/dist-packages/jc/parsers/pgpass.py
/usr/lib/python3/dist-packages/jc/parsers/pidstat.py
/usr/lib/python3/dist-packages/jc/parsers/pidstat_s.py
/usr/lib/python3/dist-packages/jc/parsers/ping.py
/usr/lib/python3/dist-packages/jc/parsers/ping_s.py
/usr/lib/python3/dist-packages/jc/parsers/pip_list.py
/usr/lib/python3/dist-packages/jc/parsers/pip_show.py
/usr/lib/python3/dist-packages/jc/parsers/plist.py
/usr/lib/python3/dist-packages/jc/parsers/postconf.py
/usr/lib/python3/dist-packages/jc/parsers/proc.py
/usr/lib/python3/dist-packages/jc/parsers/proc_buddyinfo.py
/usr/lib/python3/dist-packages/jc/parsers/proc_consoles.py
/usr/lib/python3/dist-packages/jc/parsers/proc_cpuinfo.py
/usr/lib/python3/dist-packages/jc/parsers/proc_crypto.py
/usr/lib/python3/dist-packages/jc/parsers/proc_devices.py
/usr/lib/python3/dist-packages/jc/parsers/proc_diskstats.py
/usr/lib/python3/dist-packages/jc/parsers/proc_driver_rtc.py
/usr/lib/python3/dist-packages/jc/parsers/proc_filesystems.py
/usr/lib/python3/dist-packages/jc/parsers/proc_interrupts.py
/usr/lib/python3/dist-packages/jc/parsers/proc_iomem.py
/usr/lib/python3/dist-packages/jc/parsers/proc_ioports.py
/usr/lib/python3/dist-packages/jc/parsers/proc_loadavg.py
/usr/lib/python3/dist-packages/jc/parsers/proc_locks.py
/usr/lib/python3/dist-packages/jc/parsers/proc_meminfo.py
/usr/lib/python3/dist-packages/jc/parsers/proc_modules.py
/usr/lib/python3/dist-packages/jc/parsers/proc_mtrr.py
/usr/lib/python3/dist-packages/jc/parsers/proc_net_arp.py
/usr/lib/python3/dist-packages/jc/parsers/proc_net_dev.py
/usr/lib/python3/dist-packages/jc/parsers/proc_net_dev_mcast.py
/usr/lib/python3/dist-packages/jc/parsers/proc_net_if_inet6.py
/usr/lib/python3/dist-packages/jc/parsers/proc_net_igmp.py
/usr/lib/python3/dist-packages/jc/parsers/proc_net_igmp6.py
/usr/lib/python3/dist-packages/jc/parsers/proc_net_ipv6_route.py
/usr/lib/python3/dist-packages/jc/parsers/proc_net_netlink.py
/usr/lib/python3/dist-packages/jc/parsers/proc_net_netstat.py
/usr/lib/python3/dist-packages/jc/parsers/proc_net_packet.py
/usr/lib/python3/dist-packages/jc/parsers/proc_net_protocols.py
/usr/lib/python3/dist-packages/jc/parsers/proc_net_route.py
/usr/lib/python3/dist-packages/jc/parsers/proc_net_unix.py
/usr/lib/python3/dist-packages/jc/parsers/proc_pagetypeinfo.py
/usr/lib/python3/dist-packages/jc/parsers/proc_partitions.py
/usr/lib/python3/dist-packages/jc/parsers/proc_pid_fdinfo.py
/usr/lib/python3/dist-packages/jc/parsers/proc_pid_io.py
/usr/lib/python3/dist-packages/jc/parsers/proc_pid_maps.py
/usr/lib/python3/dist-packages/jc/parsers/proc_pid_mountinfo.py
/usr/lib/python3/dist-packages/jc/parsers/proc_pid_numa_maps.py
/usr/lib/python3/dist-packages/jc/parsers/proc_pid_smaps.py
/usr/lib/python3/dist-packages/jc/parsers/proc_pid_stat.py
/usr/lib/python3/dist-packages/jc/parsers/proc_pid_statm.py
/usr/lib/python3/dist-packages/jc/parsers/proc_pid_status.py
/usr/lib/python3/dist-packages/jc/parsers/proc_slabinfo.py
/usr/lib/python3/dist-packages/jc/parsers/proc_softirqs.py
/usr/lib/python3/dist-packages/jc/parsers/proc_stat.py
/usr/lib/python3/dist-packages/jc/parsers/proc_swaps.py
/usr/lib/python3/dist-packages/jc/parsers/proc_uptime.py
/usr/lib/python3/dist-packages/jc/parsers/proc_version.py
/usr/lib/python3/dist-packages/jc/parsers/proc_vmallocinfo.py
/usr/lib/python3/dist-packages/jc/parsers/proc_vmstat.py
/usr/lib/python3/dist-packages/jc/parsers/proc_zoneinfo.py
/usr/lib/python3/dist-packages/jc/parsers/ps.py
/usr/lib/python3/dist-packages/jc/parsers/route.py
/usr/lib/python3/dist-packages/jc/parsers/rpm_qi.py
/usr/lib/python3/dist-packages/jc/parsers/rsync.py
/usr/lib/python3/dist-packages/jc/parsers/rsync_s.py
/usr/lib/python3/dist-packages/jc/parsers/semver.py
/usr/lib/python3/dist-packages/jc/parsers/sfdisk.py
/usr/lib/python3/dist-packages/jc/parsers/shadow.py
/usr/lib/python3/dist-packages/jc/parsers/ss.py
/usr/lib/python3/dist-packages/jc/parsers/sshd_conf.py
/usr/lib/python3/dist-packages/jc/parsers/stat.py
/usr/lib/python3/dist-packages/jc/parsers/stat_s.py
/usr/lib/python3/dist-packages/jc/parsers/sysctl.py
/usr/lib/python3/dist-packages/jc/parsers/syslog.py
/usr/lib/python3/dist-packages/jc/parsers/syslog_bsd.py
/usr/lib/python3/dist-packages/jc/parsers/syslog_bsd_s.py
/usr/lib/python3/dist-packages/jc/parsers/syslog_s.py
/usr/lib/python3/dist-packages/jc/parsers/systemctl.py
/usr/lib/python3/dist-packages/jc/parsers/systemctl_lj.py
/usr/lib/python3/dist-packages/jc/parsers/systemctl_ls.py
/usr/lib/python3/dist-packages/jc/parsers/systemctl_luf.py
/usr/lib/python3/dist-packages/jc/parsers/systeminfo.py
/usr/lib/python3/dist-packages/jc/parsers/time.py
/usr/lib/python3/dist-packages/jc/parsers/timedatectl.py
/usr/lib/python3/dist-packages/jc/parsers/timestamp.py
/usr/lib/python3/dist-packages/jc/parsers/top.py
/usr/lib/python3/dist-packages/jc/parsers/top_s.py
/usr/lib/python3/dist-packages/jc/parsers/tracepath.py
/usr/lib/python3/dist-packages/jc/parsers/traceroute.py
/usr/lib/python3/dist-packages/jc/parsers/udevadm.py
/usr/lib/python3/dist-packages/jc/parsers/ufw.py
/usr/lib/python3/dist-packages/jc/parsers/ufw_appinfo.py
/usr/lib/python3/dist-packages/jc/parsers/uname.py
/usr/lib/python3/dist-packages/jc/parsers/universal.py
/usr/lib/python3/dist-packages/jc/parsers/update_alt_gs.py
/usr/lib/python3/dist-packages/jc/parsers/update_alt_q.py
/usr/lib/python3/dist-packages/jc/parsers/upower.py
/usr/lib/python3/dist-packages/jc/parsers/uptime.py
/usr/lib/python3/dist-packages/jc/parsers/url.py
/usr/lib/python3/dist-packages/jc/parsers/vmstat.py
/usr/lib/python3/dist-packages/jc/parsers/vmstat_s.py
/usr/lib/python3/dist-packages/jc/parsers/w.py
/usr/lib/python3/dist-packages/jc/parsers/wc.py
/usr/lib/python3/dist-packages/jc/parsers/who.py
/usr/lib/python3/dist-packages/jc/parsers/x509_cert.py
/usr/lib/python3/dist-packages/jc/parsers/xml.py
/usr/lib/python3/dist-packages/jc/parsers/xrandr.py
/usr/lib/python3/dist-packages/jc/parsers/yaml.py
/usr/lib/python3/dist-packages/jc/parsers/zipinfo.py
/usr/lib/python3/dist-packages/jc/shell_completions.py
/usr/lib/python3/dist-packages/jc/streaming.py
/usr/lib/python3/dist-packages/jc/tracebackplus.py
/usr/lib/python3/dist-packages/jc/utils.py
/usr/lib/python3/dist-packages/jc-1.22.4.egg-info
/usr/lib/python3/dist-packages/jc-1.22.4.egg-info/PKG-INFO
/usr/lib/python3/dist-packages/jc-1.22.4.egg-info/dependency_links.txt
/usr/lib/python3/dist-packages/jc-1.22.4.egg-info/entry_points.txt
/usr/lib/python3/dist-packages/jc-1.22.4.egg-info/requires.txt
/usr/lib/python3/dist-packages/jc-1.22.4.egg-info/top_level.txt
/usr/share
/usr/share/doc
/usr/share/doc/jc
/usr/share/doc/jc/changelog.Debian.gz
/usr/share/doc/jc/changelog.gz
/usr/share/doc/jc/copyright
/usr/share/doc/jc/parsers
/usr/share/doc/jc/parsers/acpi.md.gz
/usr/share/doc/jc/parsers/airport.md
/usr/share/doc/jc/parsers/airport_s.md
/usr/share/doc/jc/parsers/arp.md
/usr/share/doc/jc/parsers/asciitable.md
/usr/share/doc/jc/parsers/asciitable_m.md.gz
/usr/share/doc/jc/parsers/blkid.md.gz
/usr/share/doc/jc/parsers/cbt.md
/usr/share/doc/jc/parsers/cef.md.gz
/usr/share/doc/jc/parsers/cef_s.md.gz
/usr/share/doc/jc/parsers/chage.md
/usr/share/doc/jc/parsers/cksum.md
/usr/share/doc/jc/parsers/clf.md.gz
/usr/share/doc/jc/parsers/clf_s.md
/usr/share/doc/jc/parsers/crontab.md.gz
/usr/share/doc/jc/parsers/crontab_u.md.gz
/usr/share/doc/jc/parsers/csv.md
/usr/share/doc/jc/parsers/csv_s.md
/usr/share/doc/jc/parsers/date.md
/usr/share/doc/jc/parsers/datetime_iso.md
/usr/share/doc/jc/parsers/df.md
/usr/share/doc/jc/parsers/dig.md.gz
/usr/share/doc/jc/parsers/dir.md
/usr/share/doc/jc/parsers/dmidecode.md.gz
/usr/share/doc/jc/parsers/dpkg_l.md
/usr/share/doc/jc/parsers/du.md
/usr/share/doc/jc/parsers/email_address.md
/usr/share/doc/jc/parsers/env.md
/usr/share/doc/jc/parsers/file.md
/usr/share/doc/jc/parsers/findmnt.md
/usr/share/doc/jc/parsers/finger.md
/usr/share/doc/jc/parsers/free.md
/usr/share/doc/jc/parsers/fstab.md
/usr/share/doc/jc/parsers/git_log.md.gz
/usr/share/doc/jc/parsers/git_log_s.md
/usr/share/doc/jc/parsers/git_ls_remote.md
/usr/share/doc/jc/parsers/gpg.md.gz
/usr/share/doc/jc/parsers/group.md
/usr/share/doc/jc/parsers/gshadow.md
/usr/share/doc/jc/parsers/hash.md
/usr/share/doc/jc/parsers/hashsum.md
/usr/share/doc/jc/parsers/hciconfig.md.gz
/usr/share/doc/jc/parsers/history.md
/usr/share/doc/jc/parsers/hosts.md
/usr/share/doc/jc/parsers/id.md
/usr/share/doc/jc/parsers/ifconfig.md.gz
/usr/share/doc/jc/parsers/ini.md
/usr/share/doc/jc/parsers/iostat.md.gz
/usr/share/doc/jc/parsers/iostat_s.md
/usr/share/doc/jc/parsers/ip_address.md.gz
/usr/share/doc/jc/parsers/iptables.md.gz
/usr/share/doc/jc/parsers/iso_datetime.md
/usr/share/doc/jc/parsers/iw_scan.md
/usr/share/doc/jc/parsers/iwconfig.md
/usr/share/doc/jc/parsers/jar_manifest.md
/usr/share/doc/jc/parsers/jobs.md
/usr/share/doc/jc/parsers/jwt.md
/usr/share/doc/jc/parsers/kv.md
/usr/share/doc/jc/parsers/last.md
/usr/share/doc/jc/parsers/ls.md
/usr/share/doc/jc/parsers/ls_s.md
/usr/share/doc/jc/parsers/lsblk.md.gz
/usr/share/doc/jc/parsers/lsmod.md
/usr/share/doc/jc/parsers/lsof.md
/usr/share/doc/jc/parsers/lspci.md
/usr/share/doc/jc/parsers/lsusb.md.gz
/usr/share/doc/jc/parsers/m3u.md
/usr/share/doc/jc/parsers/mdadm.md.gz
/usr/share/doc/jc/parsers/mount.md
/usr/share/doc/jc/parsers/mpstat.md
/usr/share/doc/jc/parsers/mpstat_s.md
/usr/share/doc/jc/parsers/netstat.md.gz
/usr/share/doc/jc/parsers/nmcli.md.gz
/usr/share/doc/jc/parsers/ntpq.md.gz
/usr/share/doc/jc/parsers/openvpn.md.gz
/usr/share/doc/jc/parsers/os_prober.md
/usr/share/doc/jc/parsers/passwd.md
/usr/share/doc/jc/parsers/pci_ids.md
/usr/share/doc/jc/parsers/pgpass.md
/usr/share/doc/jc/parsers/pidstat.md
/usr/share/doc/jc/parsers/pidstat_s.md
/usr/share/doc/jc/parsers/ping.md.gz
/usr/share/doc/jc/parsers/ping_s.md
/usr/share/doc/jc/parsers/pip_list.md
/usr/share/doc/jc/parsers/pip_show.md
/usr/share/doc/jc/parsers/plist.md
/usr/share/doc/jc/parsers/postconf.md
/usr/share/doc/jc/parsers/proc.md
/usr/share/doc/jc/parsers/proc_buddyinfo.md
/usr/share/doc/jc/parsers/proc_consoles.md
/usr/share/doc/jc/parsers/proc_cpuinfo.md.gz
/usr/share/doc/jc/parsers/proc_crypto.md
/usr/share/doc/jc/parsers/proc_devices.md
/usr/share/doc/jc/parsers/proc_diskstats.md.gz
/usr/share/doc/jc/parsers/proc_driver_rtc.md
/usr/share/doc/jc/parsers/proc_filesystems.md
/usr/share/doc/jc/parsers/proc_interrupts.md
/usr/share/doc/jc/parsers/proc_iomem.md
/usr/share/doc/jc/parsers/proc_ioports.md
/usr/share/doc/jc/parsers/proc_loadavg.md
/usr/share/doc/jc/parsers/proc_locks.md
/usr/share/doc/jc/parsers/proc_meminfo.md
/usr/share/doc/jc/parsers/proc_modules.md
/usr/share/doc/jc/parsers/proc_mtrr.md
/usr/share/doc/jc/parsers/proc_net_arp.md
/usr/share/doc/jc/parsers/proc_net_dev.md
/usr/share/doc/jc/parsers/proc_net_dev_mcast.md
/usr/share/doc/jc/parsers/proc_net_if_inet6.md
/usr/share/doc/jc/parsers/proc_net_igmp.md
/usr/share/doc/jc/parsers/proc_net_igmp6.md
/usr/share/doc/jc/parsers/proc_net_ipv6_route.md
/usr/share/doc/jc/parsers/proc_net_netlink.md
/usr/share/doc/jc/parsers/proc_net_netstat.md.gz
/usr/share/doc/jc/parsers/proc_net_packet.md
/usr/share/doc/jc/parsers/proc_net_protocols.md
/usr/share/doc/jc/parsers/proc_net_route.md
/usr/share/doc/jc/parsers/proc_net_unix.md
/usr/share/doc/jc/parsers/proc_pagetypeinfo.md
/usr/share/doc/jc/parsers/proc_partitions.md
/usr/share/doc/jc/parsers/proc_pid_fdinfo.md
/usr/share/doc/jc/parsers/proc_pid_io.md
/usr/share/doc/jc/parsers/proc_pid_maps.md
/usr/share/doc/jc/parsers/proc_pid_mountinfo.md
/usr/share/doc/jc/parsers/proc_pid_numa_maps.md
/usr/share/doc/jc/parsers/proc_pid_smaps.md.gz
/usr/share/doc/jc/parsers/proc_pid_stat.md.gz
/usr/share/doc/jc/parsers/proc_pid_statm.md
/usr/share/doc/jc/parsers/proc_pid_status.md.gz
/usr/share/doc/jc/parsers/proc_slabinfo.md
/usr/share/doc/jc/parsers/proc_softirqs.md
/usr/share/doc/jc/parsers/proc_stat.md
/usr/share/doc/jc/parsers/proc_swaps.md
/usr/share/doc/jc/parsers/proc_uptime.md
/usr/share/doc/jc/parsers/proc_version.md
/usr/share/doc/jc/parsers/proc_vmallocinfo.md
/usr/share/doc/jc/parsers/proc_vmstat.md
/usr/share/doc/jc/parsers/proc_zoneinfo.md.gz
/usr/share/doc/jc/parsers/ps.md.gz
/usr/share/doc/jc/parsers/route.md
/usr/share/doc/jc/parsers/rpm_qi.md.gz
/usr/share/doc/jc/parsers/rsync.md.gz
/usr/share/doc/jc/parsers/rsync_s.md
/usr/share/doc/jc/parsers/semver.md
/usr/share/doc/jc/parsers/sfdisk.md.gz
/usr/share/doc/jc/parsers/shadow.md
/usr/share/doc/jc/parsers/ss.md.gz
/usr/share/doc/jc/parsers/sshd_conf.md.gz
/usr/share/doc/jc/parsers/stat.md.gz
/usr/share/doc/jc/parsers/stat_s.md
/usr/share/doc/jc/parsers/sysctl.md
/usr/share/doc/jc/parsers/syslog.md
/usr/share/doc/jc/parsers/syslog_bsd.md
/usr/share/doc/jc/parsers/syslog_bsd_s.md
/usr/share/doc/jc/parsers/syslog_s.md
/usr/share/doc/jc/parsers/systemctl.md
/usr/share/doc/jc/parsers/systemctl_lj.md
/usr/share/doc/jc/parsers/systemctl_ls.md
/usr/share/doc/jc/parsers/systemctl_luf.md
/usr/share/doc/jc/parsers/systeminfo.md.gz
/usr/share/doc/jc/parsers/time.md.gz
/usr/share/doc/jc/parsers/timedatectl.md
/usr/share/doc/jc/parsers/timestamp.md
/usr/share/doc/jc/parsers/top.md.gz
/usr/share/doc/jc/parsers/top_s.md.gz
/usr/share/doc/jc/parsers/tracepath.md
/usr/share/doc/jc/parsers/traceroute.md
/usr/share/doc/jc/parsers/udevadm.md
/usr/share/doc/jc/parsers/ufw.md.gz
/usr/share/doc/jc/parsers/ufw_appinfo.md
/usr/share/doc/jc/parsers/uname.md
/usr/share/doc/jc/parsers/universal.md
/usr/share/doc/jc/parsers/update_alt_gs.md
/usr/share/doc/jc/parsers/update_alt_q.md
/usr/share/doc/jc/parsers/upower.md.gz
/usr/share/doc/jc/parsers/uptime.md
/usr/share/doc/jc/parsers/url.md.gz
/usr/share/doc/jc/parsers/vmstat.md.gz
/usr/share/doc/jc/parsers/vmstat_s.md.gz
/usr/share/doc/jc/parsers/w.md
/usr/share/doc/jc/parsers/wc.md
/usr/share/doc/jc/parsers/who.md
/usr/share/doc/jc/parsers/x509_cert.md.gz
/usr/share/doc/jc/parsers/xml.md
/usr/share/doc/jc/parsers/xrandr.md.gz
/usr/share/doc/jc/parsers/yaml.md
/usr/share/doc/jc/parsers/zipinfo.md
/usr/share/man
/usr/share/man/man1
/usr/share/man/man1/jc.1.gz
/etc/bash_completion.d/jc
kellyjonbrazil commented 1 year ago

Unfortunately the DEB package I generate only includes the jc binary compiled with pyoxidizer. The DEB package maintained by the Debian/Ubuntu folks is using some special tooling that I'm not really up to speed on.

Here is some info on the current maintainer - he may have some ideas of how to create an up-to-date package that works with the Debian system python. http://deb.debian.org/debian/pool/main/j/jc/jc_1.22.4-1.dsc

I'm curious if there is a way to get the pipx install method to work with Ansible. I guess it makes sense that Ansible running system python would not have visibility into another virtual python environment.

Is it possible to just remove that EXTERNALLY-MANAGED file described in the PEP to allow installation via pip?

kellyjonbrazil commented 1 year ago

Another option might be to pip install Ansible, but that might be easier said than done. Sounds like this could affect other Ansible plugins, too, not just jc.

kellyjonbrazil commented 1 year ago

FYI, orthogonal to this I have submitted a pull request with Ansible Community General to support plugin parsers for the JC Filter Plugin:

https://github.com/ansible-collections/community.general/pull/6043

chriscroome commented 1 year ago

Installing ansible with pipx and then injecting other packages into the same venv seems to work, for example:

pipx install ansible
pipx inject ansible ansible-core jc jmespath

However it doesn't automatically add a symlink from a directory in the $PATH, so that needs to be done manually, for example:

ln -s ~/.local/pipx/venvs/ansible/bin/jc ~/.local/bin/jc

Or you can use pip3 with the --break-system-packages flag:

pip3 install --break-system-packages --user jc

I think it is fine doing this as a regular user as it'll just install things into ~/.local, but when running as root it does make sense to use pipx, to make things available for all users you can set these two env vars first:

export PIPX_HOME=/opt/pipx
export PIPX_BIN_DIR=/usr/local/bin
pipx install jc
kellyjonbrazil commented 1 year ago

Nice finds! Maybe I'll add this to a Wiki page?

kellyjonbrazil commented 1 year ago

Was just thinking when Ansible community.general ships the latest version of the jc filter plugin you will be able to update any broken parsers via jc plugin parsers. This would not take new features into consideration, but normally new features are really cli-specific these days

kellyjonbrazil commented 1 year ago

The latest community.general update includes the jc filter plugin update that allows you to use jc parser plugins.

chriscroome commented 1 year ago

Would a jc parser plugin for use by Ansible be installed the same way as Custom Parsers?

kellyjonbrazil commented 1 year ago

Yep, should be in the plugin directory as outlined above of the process owner that is running jc.