def import_version(): """Return the module object for src/toil/version.py, generate from the template if required.""" if not os.path.exists('src/toil/version.py'): for req in get_requirements("cwl"): # Determine cwltool version from requirements file if req.startswith("cwltool=="): cwltool_version = req[len("cwltool=="):] break # Use the template to generate src/toil/version.py import version_template with NamedTemporaryFile(mode='w', dir='src/toil', prefix='version.py.', delete=False) as f: f.write( version_template.expand_( others={ # expose the dependency versions that we may need to access in Toil 'cwltool_version': cwltool_version, })) os.rename(f.name, 'src/toil/version.py') # Unfortunately, we can't use a straight import here because that would also load the stuff # defined in "src/toil/__init__.py" which imports modules from external dependencies that may # yet to be installed when setup.py is invoked. # # This is also the reason we cannot switch from the "deprecated" imp library # and use: # from importlib.machinery import SourceFileLoader # return SourceFileLoader('toil.version', path='src/toil/version.py').load_module() # # Because SourceFileLoader will error and load "src/toil/__init__.py" . return imp.load_source('toil.version', 'src/toil/version.py')
def importVersion(): """ Load and return the module object for src/toil/version.py, generating it from the template if required. """ import imp try: # Attempt to load the template first. It only exists in a working copy cloned via git. import version_template except ImportError: # If loading the template fails we must be in a unpacked source distribution and # src/toil/version.py will already exist. pass else: # Use the template to generate src/toil/version.py import os import errno from tempfile import NamedTemporaryFile new = version_template.expand_() try: with open('src/toil/version.py') as f: old = f.read() except IOError as e: if e.errno == errno.ENOENT: old = None else: raise if old != new: with NamedTemporaryFile(mode='w', dir='src/toil', prefix='version.py.', delete=False) as f: f.write(new) os.rename(f.name, 'src/toil/version.py') # Unfortunately, we can't use a straight import here because that would also load the stuff # defined in src/toil/__init__.py which imports modules from external dependencies that may # yet to be installed when setup.py is invoked. return imp.load_source('toil.version', 'src/toil/version.py')
def importVersion(): """ Load and return the module object for bdgenomics/workflows/version.py, generating it from the template if required. """ try: # Attempt to load the template first. It only exists in a working copy cloned via git. import version_template except ImportError: # If loading the template fails we must be in a unpacked source distribution and # src/toil/version.py will already exist. pass else: # Use the template to generate src/toil/version.py import os import errno from tempfile import NamedTemporaryFile new = version_template.expand_() print(new, sys.stderr) try: with open('bdgenomics/workflows/version.py') as f: old = f.read() except IOError as e: if e.errno == errno.ENOENT: old = None else: raise if old != new: with NamedTemporaryFile(dir='bdgenomics/workflows', prefix='version.py.', delete=False) as f: f.write(new) os.rename(f.name, 'bdgenomics/workflows/version.py') import bdgenomics.workflows.version return bdgenomics.workflows.version
def importVersion(): """ Load and return the module object for src/toil/version.py, generating it from the template if required. """ import imp try: # Attempt to load the template first. It only exists in a working copy cloned via git. import version_template except ImportError: # If loading the template fails we must be in a unpacked source distribution and # src/toil/version.py will already exist. pass else: # Use the template to generate src/toil/version.py import os import errno from tempfile import NamedTemporaryFile new = version_template.expand_() try: with open('src/toil/version.py') as f: old = f.read() except IOError as e: if e.errno == errno.ENOENT: old = None else: raise if old != new: with NamedTemporaryFile(dir='src/toil', prefix='version.py.', delete=False) as f: f.write(new) os.rename(f.name, 'src/toil/version.py') # Unfortunately, we can't use a straight import here because that would also load the stuff # defined in src/toil/__init__.py which imports modules from external dependencies that may # yet to be installed when setup.py is invoked. return imp.load_source('toil.version', 'src/toil/version.py')