def load(pattern, *args, **kw): ''' Given a package asset-spec glob-pattern `pattern`, returns an :class:`AssetGroup` object, which in turn can act as a generator of :class:`Asset` objects that match the pattern. Example: .. code-block:: python import asset # concatenate all 'css' files into one string: css = asset.load('mypackage:static/style/**.css').read() ''' spec = pattern if ':' not in pattern: raise ValueError('`pattern` must be in the format "PACKAGE:GLOB"') pkgname, pkgpat = pattern.split(':', 1) pkgdir, pattern = globre.compile(pkgpat, split_prefix=True, flags=globre.EXACT) if pkgdir: idx = pkgdir.rfind('/') pkgdir = pkgdir[:idx] if idx >= 0 else '' group = AssetGroup(pkgname, pkgdir, pattern, spec) if globre.iswild(pkgpat): return group return Asset(group, pkgname, pkgpat)
def test_iswild(self): self.assertTrue(globre.iswild('/foo/bar/**.ini')) self.assertTrue(globre.iswild('/foo/bar-[0-9].ini')) self.assertFalse(globre.iswild('/foo/bar/conf.ini')) self.assertFalse(globre.iswild(r'\/foo\/bar\/conf.ini'))