Mercurial > pylearn
view pylearn/datasets/config.py @ 1414:2b82c5a11512
small fix to new PYLEARN_DATA_ROOT
author | Frederic Bastien <nouiz@nouiz.org> |
---|---|
date | Thu, 03 Feb 2011 13:50:27 -0500 |
parents | 58dff11840f0 |
children | 84cb96db5673 |
line wrap: on
line source
"""Configuration options for datasets Especially, the locations of data files. """ import os, sys, logging def _logger(): return logging.getLogger('pylearn.datasets.config') def debug(*msg): _logger().debug(' '.join(str(m) for m in msg)) def info(*msg): _logger().info(' '.join(str(m) for m in msg)) def warn(*msg): _logger().warn(' '.join(str(m) for m in msg)) def warning(*msg): _logger().warning(' '.join(str(m) for m in msg)) def error(*msg): _logger().error(' '.join(str(m) for m in msg)) def env_get(key, default, key2 = None): if key2 and os.getenv(key) is None: key=key2 if os.getenv(key) is None: if env_get.first_warning: warning("Environment variable", key, 'is not set. Using default of', default) env_get.first_warning = False return default else: return os.getenv(key) env_get.first_warning = True def data_root(): """Deprecated, use data_roots() or get_filepath_in_roots() It id deprecated as it don't allow to use more then 1 path. """ roots = env_get('PYLEARN_DATA_ROOT', os.getenv('HOME')+'/data', 'DBPATH') return roots.split(':')[0] def data_roots(): """Return a list of path that are in the PYLEARN_DATA_ROOT env variable.""" if hasattr(data_roots, 'rval'): return data_roots.rval roots = os.getenv('PYLEARN_DATA_ROOT') if roots is None: roots = [data_root()] else: roots = roots.split(':') roots2 = [] #remove directory that don't exist for root in roots: if os.path.exists(root): roots2.append(root) data_roots.rval = roots2 return roots2 def get_filepath_in_roots(name): """Return the full path of name that exist under a directory in the PYLEARN_DATA_ROOT env variable. """ for root in data_roots(): path = os.path.join(root,name) if os.path.exists(path): return path