Exemple #1
0
def is_ipv4_addr(inputstr):
    from pyparsing import Combine, Word, nums

    ipAddress = Combine(Word(nums) + ('.' + Word(nums)) * 3)

    try:
        ipAddress.parseString(inputstr)
        return True
    except:
        return False
Exemple #2
0
def is_ipv4_addr(inputstr):
    from pyparsing import Combine, Word, nums

    ipAddress = Combine(Word(nums) + ('.' + Word(nums)) * 3)

    try:
        ipAddress.parseString(inputstr)
        return True
    except:
        return False
Exemple #3
0
 def is_log_type(cls, string):
     check = Combine(SYSLOG_TS + SP + HOSTNAME + SP + cls.W_APP(cls.APP))
     try:
         r = check.parseString(string).asDict()
         return cls.APP in r and r[cls.APP] == cls.APP
     except:
         pass
     return False
Exemple #4
0
def taking_action():
    prefix = 'A Fistful of' + White()
    fist_contents = Word(alphas)
    fist_contents.setParseAction(uppercase_it)
    title_parser = Combine(prefix + fist_contents)

    for title in ('A Fistful of Dollars', 'A Fistful of Spaghetti',
                  'A Fistful of Doughnuts'):
        print(title_parser.parseString(title))
Exemple #5
0
def urlsplit(url, scheme='', allow_fragments=1):
    """Parse a URL into 5 components:
    <scheme>://<netloc>/<path>?<query>#<fragment>
    Return a 5-tuple: (scheme, netloc, path, query, fragment).
    Note that we don't break the components up in smaller bits
    (e.g. netloc is a single string) and we don't expand % escapes."""
    global _urlBNF

    key = url, scheme, allow_fragments
    cached = _parse_cache.get(key, None)
    if cached:
        return cached
    if len(_parse_cache) >= MAX_CACHE_SIZE: # avoid runaway growth
        clear_cache()

    if (_urlBNF is None):
        scheme_chars = alphanums + "+-."
        urlscheme = Word( scheme_chars )
        netloc_chars = "".join( [ c for c in printables if c not in "/." ] )
        netloc = Combine(delimitedList( Word( netloc_chars ), ".", combine=True ))
        path_chars = "".join( [ c for c in printables if c not in "?" ] )
        path = Word( path_chars )
        query_chars = "".join( [ c for c in printables if c not in "#" ] )
        query = Word( query_chars )
        fragment = Word( printables+" " )
        _urlBNF = Combine(Optional(urlscheme.setResultsName("scheme") + ":" ) +
                          Optional(Literal("//").suppress() + netloc, default="").setResultsName("netloc") +
                          Optional(path.setResultsName("path"), default="") +
                          Optional(Literal("?").suppress()  + query, default="").setResultsName("query") +
                          Optional(Literal("#").suppress()  + fragment, default="").setResultsName("fragment") )

    tokens = _urlBNF.parseString( url )

    tuple = (tokens.scheme or scheme), tokens.netloc[0], tokens.path, tokens.query[0], tokens.fragment[0]
    _parse_cache[key] = tuple
    return tuple
def urlsplit(url, scheme='', allow_fragments=1):
    """Parse a URL into 5 components:
    <scheme>://<netloc>/<path>?<query>#<fragment>
    Return a 5-tuple: (scheme, netloc, path, query, fragment).
    Note that we don't break the components up in smaller bits
    (e.g. netloc is a single string) and we don't expand % escapes."""
    global _urlBNF
    
    key = url, scheme, allow_fragments
    cached = _parse_cache.get(key, None)
    if cached:
        return cached
    if len(_parse_cache) >= MAX_CACHE_SIZE: # avoid runaway growth
        clear_cache()
    
    if (_urlBNF is None):
        scheme_chars = alphanums + "+-."
        urlscheme = Word( scheme_chars )
        netloc_chars = "".join( [ c for c in printables if c not in "/." ] )
        netloc = Combine(delimitedList( Word( netloc_chars ), ".", combine=True ))
        path_chars = "".join( [ c for c in printables if c not in "?" ] )
        path = Word( path_chars )
        query_chars = "".join( [ c for c in printables if c not in "#" ] )
        query = Word( query_chars )
        fragment = Word( printables+" " )
        _urlBNF = Combine(Optional(urlscheme.setResultsName("scheme") + ":" ) + 
                          Optional(Literal("//").suppress() + netloc, default="").setResultsName("netloc") + 
                          Optional(path.setResultsName("path"), default="") +
                          Optional(Literal("?").suppress()  + query, default="").setResultsName("query") + 
                          Optional(Literal("#").suppress()  + fragment, default="").setResultsName("fragment") )
        
    tokens = _urlBNF.parseString( url )

    tuple = (tokens.scheme or scheme), tokens.netloc[0], tokens.path, tokens.query[0], tokens.fragment[0]
    _parse_cache[key] = tuple
    return tuple
Exemple #7
0
import pprint
import glob
import os

# %load_ext autoreload
# %autoreload 2
import prepro as pp

#ssn ::= num+ '-' num+ '-' num+
#num ::= '0' | '1' | '2' etc
dash = '-'
ssn = Combine(Word(nums, exact=3) +
                 dash + Word(nums, exact=2) +
                 Suppress('-') + Word(nums, exact=4))
target = '123-45-6789'
result = ssn.parseString(target)
print(result)

cc = CommandCleaner('xymatrix')
cc.show_matches(short_example)[0][0]

example_ini = '''[DEFAULT]
ServerAliveInterval = 45
Compression = yes
CompressionLevel = 9
ForwardX11 = yes

[bitbucket.org]
User = hg

[topsecret.server.com]