# Name
Project description
Name
jjcli - python module for command-line filter
Synopsis
as ascript:
jjcli skel ## a initial filter skeleton
jjcli ## manual
as a module:
from jjcli import * ## re.* functions also imported
cl=clfilter(opt="do:", doc=__doc__)
## options in cl.opt (...if "-d" in cl.opt:)
## autostrip (def=True)
## inplace (def=False)
## fs (for csvrow()) (def=",")
## doc=__doc__ (for --help)
## longopts=["op1",...]
for line in cl.input():... ## process one rstriped line at the time
for txt in cl.text():... ## process one striped text at the time
## process txt ## (end of line spaces and \\r also removed)
for par in cl.paragraph():... ## process one striped paragraph at the time
for tup in cl.csvrow():... ## process one csv row at the time
for tup in cl.tsvrow():... ## process one tsv row at the time
cl.lineno() ## line number
cl.filelineno()
cl.parno() ## paragraph number
cl.fileparno()
cl.filename() ## filename or "<stdin>"
cl.nextfile()
cl.isfirstline()
cl.args cl.opt ## command line arguments and options (after clfilter())
Description
jjcli is a opinioned 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)
- glob (glob.glob should be native)
- csv (for csv and tsv inputs)
- urllib.request (to deal with input argumens that are url)
- subprocess
Regular expressions
We want to have all re.* functions available (as if they were native functions).
In order to enable re flags, use: re.I re.X re.S
Subprocesses (qx, qxlines, qxsystem, qxerr)
a=qx( "ls" )
for x in qxlines("find | grep '\.jpg$'"):
...
qxsystem("vim myfile")
Execute command return its stdout-str
qx(*x) → returns subprocess.getoutput(x)
Execute command return its stdout-str lines
qxlines(*x) → returns subprocess.getoutput(x).splitlines()
Execute command and return its (stdout-str, stderr-str)
out,err = qxexec(*x) → returns Popen(x,PIPE, PIPE,shell=True).communicate()
STDERR - warn, die
warn(*args) → print to stderr
die(*args) → warn and exit 1
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()
isfirstpar = lambda s : s.fileparno == 1
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.29.tar.gz
(5.1 kB
view details)
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file jjcli-0.1.29.tar.gz.
File metadata
- Download URL: jjcli-0.1.29.tar.gz
- Upload date:
- Size: 5.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: python-requests/2.28.1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
33302441fa91ee016ac761202dd72032af593f60a4ab627291e777ce44fd1eb9
|
|
| MD5 |
50904480e41c51f393b04d4d091d59bc
|
|
| BLAKE2b-256 |
3f8f9e6f95709709f4e234f9d3357333641b8d14f5f8e60ab5fe3d08086760eb
|
File details
Details for the file jjcli-0.1.29-py2.py3-none-any.whl.
File metadata
- Download URL: jjcli-0.1.29-py2.py3-none-any.whl
- Upload date:
- Size: 6.0 kB
- Tags: Python 2, Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: python-requests/2.28.1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
676780b2ff911d9439340297495bdd6734068f0d634bd3f5f5037ef7c430e68b
|
|
| MD5 |
49ef029107ebbf33b39a8581ab194876
|
|
| BLAKE2b-256 |
1debbea7274b1595158dff39800c61611342f25f43c959a87b3478d535f91369
|