Module pyparsing :: Class SkipTo
[frames] | no frames]

Class SkipTo

source code

     object --+        
              |        
  ParserElement --+    
                  |    
ParseElementEnhance --+
                      |
                     SkipTo

Token for skipping over all undefined text until the matched expression is found.

Parameters:

Example:

   report = '''
       Outstanding Issues Report - 1 Jan 2000

          # | Severity | Description                               |  Days Open
       -----+----------+-------------------------------------------+-----------
        101 | Critical | Intermittent system crash                 |          6
         94 | Cosmetic | Spelling error on Login ('log|n')         |         14
         79 | Minor    | System slow when running too many reports |         47
       '''
   integer = Word(nums)
   SEP = Suppress('|')
   # use SkipTo to simply match everything up until the next SEP
   # - ignore quoted strings, so that a '|' character inside a quoted string does not match
   # - parse action will call token.strip() for each matched token, i.e., the description body
   string_data = SkipTo(SEP, ignore=quotedString)
   string_data.setParseAction(tokenMap(str.strip))
   ticket_expr = (integer("issue_num") + SEP 
                 + string_data("sev") + SEP 
                 + string_data("desc") + SEP 
                 + integer("days_open"))
   
   for tkt in ticket_expr.searchString(report):
       print tkt.dump()

prints:

   ['101', 'Critical', 'Intermittent system crash', '6']
   - days_open: 6
   - desc: Intermittent system crash
   - issue_num: 101
   - sev: Critical
   ['94', 'Cosmetic', "Spelling error on Login ('log|n')", '14']
   - days_open: 14
   - desc: Spelling error on Login ('log|n')
   - issue_num: 94
   - sev: Cosmetic
   ['79', 'Minor', 'System slow when running too many reports', '47']
   - days_open: 47
   - desc: System slow when running too many reports
   - issue_num: 79
   - sev: Minor
Instance Methods
 
__init__(self, other, include=False, ignore=None, failOn=None)
x.__init__(...) initializes x; see help(type(x)) for signature
source code
 
parseImpl(self, instring, loc, doActions=True) source code

Inherited from ParseElementEnhance: __str__, checkRecursion, ignore, leaveWhitespace, streamline, validate

Inherited from ParserElement: __add__, __and__, __call__, __eq__, __hash__, __invert__, __mul__, __ne__, __or__, __radd__, __rand__, __repr__, __req__, __rmul__, __rne__, __ror__, __rsub__, __rxor__, __sub__, __xor__, addCondition, addParseAction, canParseNext, copy, matches, parseFile, parseString, parseWithTabs, postParse, preParse, runTests, scanString, searchString, setBreak, setDebug, setDebugActions, setFailAction, setName, setParseAction, setResultsName, setWhitespaceChars, split, suppress, transformString, tryParse

Inherited from object: __delattr__, __format__, __getattribute__, __new__, __reduce__, __reduce_ex__, __setattr__, __sizeof__, __subclasshook__

Static Methods

Inherited from ParserElement: enablePackrat, inlineLiteralsUsing, resetCache, setDefaultWhitespaceChars

Class Variables

Inherited from ParserElement: DEFAULT_WHITE_CHARS, packrat_cache, packrat_cache_lock, packrat_cache_stats, verbose_stacktrace

Properties

Inherited from object: __class__

Method Details

__init__(self, other, include=False, ignore=None, failOn=None)
(Constructor)

source code 

x.__init__(...) initializes x; see help(type(x)) for signature

Overrides: object.__init__
(inherited documentation)

parseImpl(self, instring, loc, doActions=True)

source code 
Overrides: ParserElement.parseImpl