parameters: (self, pattern, anchor=True, prefix=None,
                             is_regex=False)
return_statement: return re.compile(pattern_re)
docstring: Translate a shell-like wildcard pattern to a compiled regular
          expression.
  
          Return the compiled regex.  If 'is_regex' true,
          then 'pattern' is directly compiled to a regex (if it's a string)
          or just returned as-is (assumes it's a regex object).
docstring_summary: Translate a shell-like wildcard pattern to a compiled regular
          expression.
docstring_tokens: Translate a shell - like wildcard pattern to a compiled regular expression .
function: def _translate_pattern(self, pattern, anchor=True, prefix=None,
                             is_regex=False):
          """Translate a shell-like wildcard pattern to a compiled regular
          expression.
  
          Return the compiled regex.  If 'is_regex' true,
          then 'pattern' is directly compiled to a regex (if it's a string)
          or just returned as-is (assumes it's a regex object).
          """
          if is_regex:
              if isinstance(pattern, str):
                  return re.compile(pattern)
              else:
                  return pattern
  
          if _PYTHON_VERSION > (3, 2):
              # ditch start and end characters
              start, _, end = self._glob_to_re('_').partition('_')
  
          if pattern:
              pattern_re = self._glob_to_re(pattern)
              if _PYTHON_VERSION > (3, 2):
                  assert pattern_re.startswith(start) and pattern_re.endswith(end)
          else:
              pattern_re = ''
  
          base = re.escape(os.path.join(self.base, ''))
          if prefix is not None:
              # ditch end of pattern character
              if _PYTHON_VERSION <= (3, 2):
                  empty_pattern = self._glob_to_re('')
                  prefix_re = self._glob_to_re(prefix)[:-len(empty_pattern)]
              else:
                  prefix_re = self._glob_to_re(prefix)
                  assert prefix_re.startswith(start) and prefix_re.endswith(end)
                  prefix_re = prefix_re[len(start): len(prefix_re) - len(end)]
              sep = os.sep
              if os.sep == '\\':
                  sep = r'\\'
              if _PYTHON_VERSION <= (3, 2):
                  pattern_re = '^' + base + sep.join((prefix_re,
                                                      '.*' + pattern_re))
              else:
                  pattern_re = pattern_re[len(start): len(pattern_re) - len(end)]
                  pattern_re = r'%s%s%s%s.*%s%s' % (start, base, prefix_re, sep,
                                                    pattern_re, end)
          else:  # no prefix -- respect anchor flag
              if anchor:
                  if _PYTHON_VERSION <= (3, 2):
                      pattern_re = '^' + base + pattern_re
                  else:
                      pattern_re = r'%s%s%s' % (start, base, pattern_re[len(start):])
  
          return re.compile(pattern_re)
function_tokens: def _translate_pattern ( self , pattern , anchor = True , prefix = None , is_regex = False ) : if is_regex : if isinstance ( pattern , str ) : return re . compile ( pattern ) else : return pattern if _PYTHON_VERSION > ( 3 , 2 ) : # ditch start and end characters start , _ , end = self . _glob_to_re ( '_' ) . partition ( '_' ) if pattern : pattern_re = self . _glob_to_re ( pattern ) if _PYTHON_VERSION > ( 3 , 2 ) : assert pattern_re . startswith ( start ) and pattern_re . endswith ( end ) else : pattern_re = '' base = re . escape ( os . path . join ( self . base , '' ) ) if prefix is not None : # ditch end of pattern character if _PYTHON_VERSION <= ( 3 , 2 ) : empty_pattern = self . _glob_to_re ( '' ) prefix_re = self . _glob_to_re ( prefix ) [ : - len ( empty_pattern ) ] else : prefix_re = self . _glob_to_re ( prefix ) assert prefix_re . startswith ( start ) and prefix_re . endswith ( end ) prefix_re = prefix_re [ len ( start ) : len ( prefix_re ) - len ( end ) ] sep = os . sep if os . sep == '\\' : sep = r'\\' if _PYTHON_VERSION <= ( 3 , 2 ) : pattern_re = '^' + base + sep . join ( ( prefix_re , '.*' + pattern_re ) ) else : pattern_re = pattern_re [ len ( start ) : len ( pattern_re ) - len ( end ) ] pattern_re = r'%s%s%s%s.*%s%s' % ( start , base , prefix_re , sep , pattern_re , end ) else : # no prefix -- respect anchor flag if anchor : if _PYTHON_VERSION <= ( 3 , 2 ) : pattern_re = '^' + base + pattern_re else : pattern_re = r'%s%s%s' % ( start , base , pattern_re [ len ( start ) : ] ) return re . compile ( pattern_re )