[Python-Dev] New and Improved Import Hooks (original) (raw)
Fredrik Lundh fredrik@pythonware.com
Thu, 5 Dec 2002 14:33:57 +0100
- Previous message: [Python-Dev] New and Improved Import Hooks
- Next message: [Python-Dev] New and Improved Import Hooks
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Guido wrote:
Obviously if the data files get stored in the zip file too, the code searching for it needs to be made zip file aware; but if zip files are used to provide other libraries, that shouldn't break code that looks for data files along sys.path.
as I might have mentioned before, it would be really nice if custom importers supported optional "load_data" and "get_module_names" hooks.
the former can be used by code that looks for data files on the path (Zope, PIL, most likely hundreds of other tools/programs):
for path in sys.path:
if hasattr(path, "load_data"):
try:
data =3D path.load_data(name)
except IOError:
pass
else:
return data # got it
if isinstance(path, types.StringTypes) and os.path.isdir(path):
try:
data =3D open(os.path.join(path, file)
except IOError:
pass
else:
return data
# ...
the latter can be used by code that looks for plugins using a name pattern (PIL's *ImagePlugins, for example):
for path in sys.path:
if hasattr(path, "get_module_names"):
names =3D path.get_module_names()
elif isinstance(path, types.StringTypes) and =
os.path.isdir(path): names =3D os.listdir(path) else: continue for name in names: if name.endswith("ImagePlugin"): import(name)
(stupid idea: why not change os.path.isdir to return False for non- string arguments? it's a predicate function, after all...)
- Previous message: [Python-Dev] New and Improved Import Hooks
- Next message: [Python-Dev] New and Improved Import Hooks
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]