app/soc/logic/path_link_name.py
changeset 462 1f164cd0529b
parent 409 9d24850db88f
child 512 aae25d2b4464
equal deleted inserted replaced
461:fca6a8b5ae34 462:1f164cd0529b
    17 """Path and link name manipulation functions.
    17 """Path and link name manipulation functions.
    18 """
    18 """
    19 
    19 
    20 __authors__ = [
    20 __authors__ = [
    21   '"Todd Larsen" <tlarsen@google.com>',
    21   '"Todd Larsen" <tlarsen@google.com>',
       
    22   '"Lennard de Rijk" <ljvderijk@gmail.com>',
    22   ]
    23   ]
    23 
    24 
    24 
    25 
    25 import re
    26 import re
    26 
    27 
    34 LINKNAME_ARG_PATTERN = r'(?P<link_name>%s)' % LINKNAME_PATTERN_CORE
    35 LINKNAME_ARG_PATTERN = r'(?P<link_name>%s)' % LINKNAME_PATTERN_CORE
    35 LINKNAME_PATTERN = r'^%s$' % LINKNAME_PATTERN_CORE
    36 LINKNAME_PATTERN = r'^%s$' % LINKNAME_PATTERN_CORE
    36 LINKNAME_REGEX = re.compile(LINKNAME_PATTERN)
    37 LINKNAME_REGEX = re.compile(LINKNAME_PATTERN)
    37 
    38 
    38 # partial path is multiple link_name chunks,
    39 # partial path is multiple link_name chunks,
       
    40 # each separated by a trailing /
       
    41 # (at least 1)
       
    42 PARTIAL_PATH_ARG_PATTERN = (r'(?P<partial_path>%(link_name)s'
       
    43                              '(?:/%(link_name)s)*)' % {
       
    44                                'link_name': LINKNAME_PATTERN_CORE})
       
    45 PARTIAL_PATH_PATTERN = r'^%s$' % PARTIAL_PATH_ARG_PATTERN
       
    46 PARTIAL_PATH_REGEX = re.compile(PARTIAL_PATH_PATTERN)
       
    47 
       
    48 # path is multiple link_name chunks,
    39 #   each separated by a trailing /
    49 #   each separated by a trailing /
    40 #     (at least 1)
    50 #     (at least 1)
    41 # followed by a single link_name with no trailing /
    51 # followed by a single link_name with no trailing /
    42 PATH_LINKNAME_ARGS_PATTERN = (
    52 PATH_LINKNAME_ARGS_PATTERN = (
    43     r'(?P<partial_path>%(link_name)s(?:/%(link_name)s)*)/'
    53     r'%(partial_path)s/'
    44      '(?P<link_name>%(link_name)s)' % {
    54      '(?P<link_name>%(link_name)s)' % {
    45         'link_name': LINKNAME_PATTERN_CORE})
    55        'partial_path' : PARTIAL_PATH_ARG_PATTERN,
    46 
    56        'link_name': LINKNAME_PATTERN_CORE})
    47 PATH_LINKNAME_PATTERN = r'^%s$' % PATH_LINKNAME_ARGS_PATTERN
    57 PATH_LINKNAME_PATTERN = r'^%s$' % PATH_LINKNAME_ARGS_PATTERN
    48 PATH_LINKNAME_REGEX = re.compile(PATH_LINKNAME_PATTERN)
    58 PATH_LINKNAME_REGEX = re.compile(PATH_LINKNAME_PATTERN)
    49 
    59 
    50 
    60 
    51 def getPartsFromPath(path):
    61 def getPartsFromPath(path):