Metadata-Version: 1.0
Name: tse
Version: 0.0.1
Summary: tse is an input stream editor in Python.
Home-page: https://github.com/atsuoishimoto/tse
Author: Atsuo Ishimoto
Author-email: ishimoto@gembook.org
License: MIT
Description: tse - Python Stream Scripting
        =============================
        
        tse processes text input stream with Python expressions. Like AWK, tse command line option is a series of pair of condition and action:
        
            tse -a COND1 ACTION1 -a COND2 ACTION2 
        
        For example, to find lines starts with 'abc' ::
        
            tse -a "^abc" "print L"
        
        to find line contains URL ::
        
            tse -a "http://\\S+" "print S0"  -a "mailto://\\S+" "print S0" 
        
        to convert upper case ::
        
            tse -a ".*" "print L.upper()"
        
        ::
        
            usage: tse-script.py [-h] [--action ACTION ACTION] [--begin BEGIN]
                                  [--end END] [--input-encoding INPUT_ENCODING]
                                  [--output-encoding OUTPUT_ENCODING] [--module MODULE]
                                  [--module-star MODULE_STAR]
                                  [files [files ...]]
            
            Input Stream Editor in Python
            
            positional arguments:
              files                 file names to be read. if files are omitted, stdin
                                    would be used.
            
            optional arguments:
              -h, --help            show this help message and exit
              --action ACTION ACTION, -a ACTION ACTION
                                    pair of condition and action.
              --begin BEGIN, -b BEGIN
                                    action invoked before input files have been read.
              --end END, -e END     action invoked after input files have been exhausted.
              --input-encoding INPUT_ENCODING, -ie INPUT_ENCODING
                                    encoding of input stream.
              --output-encoding OUTPUT_ENCODING, -oe OUTPUT_ENCODING
                                    encoding of output stream.
              --module MODULE, -m MODULE
                                    module to be imported.
              --module-star MODULE_STAR, -ms MODULE_STAR
                                    module to be imported in form of "from modname import *".
        
        
        Variables
        ---------
        
        Following variables can be used within action statement.
        
        :sys, os, path, re: These modules are imported by default.
        
        :FILENAME: The name of file currently reading.
        
        :LINENO: Line numberof the current line.
        
        :L: Current line.
        
        :S: Part of Text matched to condition regex.
        
        :S0, S1, ...: sub-string matched to condition regex. S0 is entire matched part, S1, S2 are sub group of condition regex.
        
        :(name): If condition regex has group names defined by '(?P<name>)', sub-string could be referenced by variable 'name'.
        
        :M: Match object
        
        
        Examples
        --------
        
        Print sum of numeric characters in an each line of input stream::
        
            tse -a "\d+" "print(sum(int(s) for s in re.findall(r"\d+", L)))" \
                 -a "=" "print('done'); sys.exit(0)"
        
        
        Sum all numeric characters in all lines::
        
            tse -b "all=0" \
                 -a "\d+" "all+=sum(int(s) for s in re.findall(r"\d+", L)))" \
                 -e "=" "print(all); sys.exit(0)"
        
        Find all extention parts in current directory::
        
            find . | tse -a ".*" "print path.splitext(L)[1]"
        
        
Keywords: text filter
Platform: UNKNOWN
Classifier: Development Status :: 3 - Alpha
Classifier: Topic :: Text Processing :: Filters
Classifier: Topic :: Utilities
Classifier: License :: OSI Approved :: MIT License
