python module for command-line filter
Project description
Name
jjcli - python module for command-line filter
Synopsys
jjcli skel ## a initial filter skeleton
jjcli ## manual
.
from jjcli import * ## re.* functions also imported
c=clfilter(opt="do:") ## options in c.opt (...if "-d" in c.opt:)
## autostrip (def=True)
## inplace (def=False)
## fs (for csvrow()) (def=",")
for line in c.input():... ## process one rstriped line at the time
for txt in c.slurp():... ## process one striped text at the time
## process txt ## (end of line spaces and \r also removed)
for par in c.paragraph():... ## process one striped paragraph at the time
for tup in c.csvrow():... ## process one csv row at the time
for tup in c.tsvrow():... ## process one tsv row at the time
c.lineno() ## line number
c.filelineno()
c.parno() ## paragraph number
c.fileparno()
c.filename() ## filename or "<stdin>"
c.nextfile()
c.isfirstline()
Description
jjcli is a opinied python module that tries to simplify the creation of unix filters. It is based on:
- getopt (for command line options and args)
- fileinput (for [files/stdin] arguments)
- re (regular expressions should be native)
- csv (for csv and tsv inputs)
- urllib.request (to deal with input argumens that are url)
- subprocess
Regular expressions
imports all functions from re.*
Use re.I re.X re.S for regexp flags
Subprocesses (qx, qxlines, qxsystem)
a=qx( "ls" )
for x in qxlines("find | grep '\.jpg$'"):
...
qxsystem("vim myfile")
Execute command return its stdout
qx(*x) : return subprocess.getoutput(x)
Execute command return its stdout lines
qxlines(*x) : return subprocess.getoutput(x).splitlines()
Execute command -- system
qxsystem(*x): subprocess.call(x,shell=True)
Other functions
slurpurlutf8(self,f)
filename = lambda s : F.filename() # inherited from fileinput
lineno = lambda s : F.lineno()
filelineno = lambda s : F.filelineno()
parno = lambda s : s.parno_ # paragraph number
fileparno = lambda s : s.fileparno_
nextfile = lambda s : F.nextfile()
isfirstline = lambda s : F.isfirstline()
close = lambda s : F.close()
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
jjcli-0.1.14.tar.gz
(3.1 kB
view hashes)
Built Distribution
Close
Hashes for jjcli-0.1.14-py2.py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7e1cc5d545c3358488240590a85fa413c8c646228df8386b0ca8741d2546d441 |
|
MD5 | d924b2f41500d3e567775ab945613be6 |
|
BLAKE2b-256 | edd48edb13bd14fe54f27beb78b8a1663848ed3273ca2ddd3637f7a2e705c181 |