app/soc/logic/path_link_name.py
changeset 513 3c1e16637ad7
parent 512 aae25d2b4464
child 533 ba3309b2fd30
equal deleted inserted replaced
512:aae25d2b4464 513:3c1e16637ad7
    34 LINK_ID_PATTERN_CORE = r'[0-9a-z](?:[0-9a-z]|_[0-9a-z])*'
    34 LINK_ID_PATTERN_CORE = r'[0-9a-z](?:[0-9a-z]|_[0-9a-z])*'
    35 LINK_ID_ARG_PATTERN = r'(?P<link_id>%s)' % LINK_ID_PATTERN_CORE
    35 LINK_ID_ARG_PATTERN = r'(?P<link_id>%s)' % LINK_ID_PATTERN_CORE
    36 LINK_ID_PATTERN = r'^%s$' % LINK_ID_PATTERN_CORE
    36 LINK_ID_PATTERN = r'^%s$' % LINK_ID_PATTERN_CORE
    37 LINK_ID_REGEX = re.compile(LINK_ID_PATTERN)
    37 LINK_ID_REGEX = re.compile(LINK_ID_PATTERN)
    38 
    38 
    39 # partial path is multiple link_id chunks,
    39 # scope path is multiple link_id chunks,
    40 # each separated by a trailing /
    40 # each separated by a trailing /
    41 # (at least 1)
    41 # (at least 1)
    42 PARTIAL_PATH_ARG_PATTERN = (r'(?P<partial_path>%(link_id)s'
    42 SCOPE_PATH_ARG_PATTERN = (r'(?P<scope_path>%(link_id)s'
    43                              '(?:/%(link_id)s)*)' % {
    43                              '(?:/%(link_id)s)*)' % {
    44                                'link_id': LINK_ID_PATTERN_CORE})
    44                                'link_id': LINK_ID_PATTERN_CORE})
    45 PARTIAL_PATH_PATTERN = r'^%s$' % PARTIAL_PATH_ARG_PATTERN
    45 SCOPE_PATH_PATTERN = r'^%s$' % SCOPE_PATH_ARG_PATTERN
    46 PARTIAL_PATH_REGEX = re.compile(PARTIAL_PATH_PATTERN)
    46 SCOPE_PATH_REGEX = re.compile(SCOPE_PATH_PATTERN)
    47 
    47 
    48 # path is multiple link_id chunks,
    48 # path is multiple link_id chunks,
    49 #   each separated by a trailing /
    49 #   each separated by a trailing /
    50 #     (at least 1)
    50 #     (at least 1)
    51 # followed by a single link_id with no trailing /
    51 # followed by a single link_id with no trailing /
    52 PATH_LINK_ID_ARGS_PATTERN = (
    52 PATH_LINK_ID_ARGS_PATTERN = (
    53     r'%(partial_path)s/'
    53     r'%(scope_path)s/'
    54      '(?P<link_id>%(link_id)s)' % {
    54      '(?P<link_id>%(link_id)s)' % {
    55        'partial_path' : PARTIAL_PATH_ARG_PATTERN,
    55        'scope_path' : SCOPE_PATH_ARG_PATTERN,
    56        'link_id': LINK_ID_PATTERN_CORE})
    56        'link_id': LINK_ID_PATTERN_CORE})
    57 PATH_LINK_ID_PATTERN = r'^%s$' % PATH_LINK_ID_ARGS_PATTERN
    57 PATH_LINK_ID_PATTERN = r'^%s$' % PATH_LINK_ID_ARGS_PATTERN
    58 PATH_LINK_ID_REGEX = re.compile(PATH_LINK_ID_PATTERN)
    58 PATH_LINK_ID_REGEX = re.compile(PATH_LINK_ID_PATTERN)
    59 
    59 
    60 
    60 
    61 def getPartsFromPath(path):
    61 def getPartsFromPath(path):
    62   """Splits path string into partial_path and link_id.
    62   """Splits path string into scope_path and link_id.
    63   
    63   
    64   Returns:
    64   Returns:
    65     {'partial_path': 'everything/but',
    65     {'scope_path': 'everything/but',
    66      'link_id': 'link_id'}
    66      'link_id': 'link_id'}
    67     or {} (empty dict) if string did not match PATH_LINK_ID_PATTERN.
    67     or {} (empty dict) if string did not match PATH_LINK_ID_PATTERN.
    68   """
    68   """
    69   path_link_name_match = PATH_LINK_ID_REGEX.match(path)
    69   path_link_name_match = PATH_LINK_ID_REGEX.match(path)
    70   
    70