Skip to main content

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


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 details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

jjcli-0.1.14-py2.py3-none-any.whl (4.0 kB view details)

Uploaded Python 2Python 3

File details

Details for the file jjcli-0.1.14.tar.gz.

File metadata

  • Download URL: jjcli-0.1.14.tar.gz
  • Upload date:
  • Size: 3.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: python-requests/2.23.0

File hashes

Hashes for jjcli-0.1.14.tar.gz
Algorithm Hash digest
SHA256 6859dbaee0e9b8c98903873a349b22af558aa1f6bbd9bef1005265eea2495ca3
MD5 3c90b93d63da4cc8979ba780cb9fab87
BLAKE2b-256 a5eef1d01b260eeeee3c28c09d709ee223ca365cc81114e3c10b22f2b247b21c

See more details on using hashes here.

File details

Details for the file jjcli-0.1.14-py2.py3-none-any.whl.

File metadata

  • Download URL: jjcli-0.1.14-py2.py3-none-any.whl
  • Upload date:
  • Size: 4.0 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: python-requests/2.23.0

File hashes

Hashes for jjcli-0.1.14-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 7e1cc5d545c3358488240590a85fa413c8c646228df8386b0ca8741d2546d441
MD5 d924b2f41500d3e567775ab945613be6
BLAKE2b-256 edd48edb13bd14fe54f27beb78b8a1663848ed3273ca2ddd3637f7a2e705c181

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page