def _glob_to_regexp(pat): """Compile a glob pattern into a regexp. We need to do this because fnmatch allows * to match /, which we don't want. E.g. an MANIFEST.in exclude of 'dirname/*css' should match 'dirname/foo.css' but not 'dirname/subdir/bar.css'. """ return glob_to_re(pat)
def _glob_to_regexp(pat): """Compile a glob pattern into a regexp. We need to do this because fnmatch allows * to match /, which we don't want. E.g. a MANIFEST.in exclude of 'dirname/*css' should match 'dirname/foo.css' but not 'dirname/subdir/bar.css'. """ return glob_to_re(pat)
def test_glob_to_re(self): # simple cases self.assertEquals(glob_to_re('foo*'), 'foo[^/]*\\Z(?ms)') self.assertEquals(glob_to_re('foo?'), 'foo[^/]\\Z(?ms)') self.assertEquals(glob_to_re('foo??'), 'foo[^/][^/]\\Z(?ms)') # special cases self.assertEquals(glob_to_re(r'foo\\*'), r'foo\\\\[^/]*\Z(?ms)') self.assertEquals(glob_to_re(r'foo\\\*'), r'foo\\\\\\[^/]*\Z(?ms)') self.assertEquals(glob_to_re('foo????'), r'foo[^/][^/][^/][^/]\Z(?ms)') self.assertEquals(glob_to_re(r'foo\\??'), r'foo\\\\[^/][^/]\Z(?ms)')
def test_glob_to_re(self): sep = os.sep if os.sep == '\\': sep = re.escape(os.sep) for glob, regex in (('foo*', 'foo[^%(sep)s]*\\Z(?ms)'), ('foo?', 'foo[^%(sep)s]\\Z(?ms)'), ('foo??', 'foo[^%(sep)s][^%(sep)s]\\Z(?ms)'), ('foo\\\\*', 'foo\\\\\\\\[^%(sep)s]*\\Z(?ms)'), ('foo\\\\\\*', 'foo\\\\\\\\\\\\[^%(sep)s]*\\Z(?ms)'), ('foo????', 'foo[^%(sep)s][^%(sep)s][^%(sep)s][^%(sep)s]\\Z(?ms)'), ('foo\\\\??', 'foo\\\\\\\\[^%(sep)s][^%(sep)s]\\Z(?ms)')): regex = regex % {'sep': sep} self.assertEqual(glob_to_re(glob), regex)
def test_glob_to_re(self): # simple cases self.assertEqual(glob_to_re('foo*'), 'foo[^/]*\\Z(?ms)') self.assertEqual(glob_to_re('foo?'), 'foo[^/]\\Z(?ms)') self.assertEqual(glob_to_re('foo??'), 'foo[^/][^/]\\Z(?ms)') # special cases self.assertEqual(glob_to_re(r'foo\\*'), r'foo\\\\[^/]*\Z(?ms)') self.assertEqual(glob_to_re(r'foo\\\*'), r'foo\\\\\\[^/]*\Z(?ms)') self.assertEqual(glob_to_re('foo????'), r'foo[^/][^/][^/][^/]\Z(?ms)') self.assertEqual(glob_to_re(r'foo\\??'), r'foo\\\\[^/][^/]\Z(?ms)')
def test_glob_to_re(self): # simple cases self.assertEqual(glob_to_re("foo*"), "foo[^/]*\\Z(?ms)") self.assertEqual(glob_to_re("foo?"), "foo[^/]\\Z(?ms)") self.assertEqual(glob_to_re("foo??"), "foo[^/][^/]\\Z(?ms)") # special cases self.assertEqual(glob_to_re(r"foo\\*"), r"foo\\\\[^/]*\Z(?ms)") self.assertEqual(glob_to_re(r"foo\\\*"), r"foo\\\\\\[^/]*\Z(?ms)") self.assertEqual(glob_to_re("foo????"), r"foo[^/][^/][^/][^/]\Z(?ms)") self.assertEqual(glob_to_re(r"foo\\??"), r"foo\\\\[^/][^/]\Z(?ms)")
def test_glob_to_re(self): sep = os.sep if os.sep == "\\": sep = re.escape(os.sep) for glob, regex in ( ("foo*", "foo[^%(sep)s]*\\Z(?ms)"), ("foo?", "foo[^%(sep)s]\\Z(?ms)"), ("foo??", "foo[^%(sep)s][^%(sep)s]\\Z(?ms)"), ("foo\\\\*", "foo\\\\\\\\[^%(sep)s]*\\Z(?ms)"), ("foo\\\\\\*", "foo\\\\\\\\\\\\[^%(sep)s]*\\Z(?ms)"), ("foo????", "foo[^%(sep)s][^%(sep)s][^%(sep)s][^%(sep)s]\\Z(?ms)"), ("foo\\\\??", "foo\\\\\\\\[^%(sep)s][^%(sep)s]\\Z(?ms)"), ): regex = regex % {"sep": sep} self.assertEqual(glob_to_re(glob), regex)
def test_glob_to_re(self): sep = os.sep if os.sep == '\\': sep = re.escape(os.sep) for glob, regex in ( # simple cases ('foo*', r'foo[^%(sep)s]*\Z(?ms)'), ('foo?', r'foo[^%(sep)s]\Z(?ms)'), ('foo??', r'foo[^%(sep)s][^%(sep)s]\Z(?ms)'), # special cases (r'foo\\*', r'foo\\\\[^%(sep)s]*\Z(?ms)'), (r'foo\\\*', r'foo\\\\\\[^%(sep)s]*\Z(?ms)'), ('foo????', r'foo[^%(sep)s][^%(sep)s][^%(sep)s][^%(sep)s]\Z(?ms)'), (r'foo\\??', r'foo\\\\[^%(sep)s][^%(sep)s]\Z(?ms)')): regex = regex % {'sep': sep} self.assertEqual(glob_to_re(glob), regex)