Coverage for /home/martinb/.local/share/virtualenvs/camcops/lib/python3.6/site-packages/pyramid/asset.py : 43%

Hot-keys on this page
r m x p toggle line displays
j k next/prev highlighted chunk
0 (zero) top of page
1 (one) first highlighted chunk
1import os
2import pkg_resources
4from pyramid.compat import string_types
6from pyramid.path import package_path, package_name
9def resolve_asset_spec(spec, pname='__main__'):
10 if pname and not isinstance(pname, string_types):
11 pname = pname.__name__ # as package
12 if os.path.isabs(spec):
13 return None, spec
14 filename = spec
15 if ':' in spec:
16 pname, filename = spec.split(':', 1)
17 elif pname is None:
18 pname, filename = None, spec
19 return pname, filename
22def asset_spec_from_abspath(abspath, package):
23 """ Try to convert an absolute path to a resource in a package to
24 a resource specification if possible; otherwise return the
25 absolute path. """
26 if getattr(package, '__name__', None) == '__main__':
27 return abspath
28 pp = package_path(package) + os.path.sep
29 if abspath.startswith(pp):
30 relpath = abspath[len(pp) :]
31 return '%s:%s' % (
32 package_name(package),
33 relpath.replace(os.path.sep, '/'),
34 )
35 return abspath
38# bw compat only; use pyramid.path.AssetResolver().resolve(spec).abspath()
39def abspath_from_asset_spec(spec, pname='__main__'):
40 if pname is None:
41 return spec
42 pname, filename = resolve_asset_spec(spec, pname)
43 if pname is None:
44 return filename
45 return pkg_resources.resource_filename(pname, filename)