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): |