def require_clean_submodules(): """Check on git submodules before distutils can do anything Since distutils cannot be trusted to update the tree after everything has been set in motion, this is not a distutils command. """ # PACKAGERS: Add a return here to skip checks for git submodules # don't do anything if nothing is actually supposed to happen for do_nothing in ('-h', '--help', '--help-commands', 'clean', 'submodule'): if do_nothing in sys.argv: return status = check_submodule_status(here) if status == "missing": print("checking out submodules for the first time") update_submodules(here) elif status == "unclean": print('\n'.join([ "Cannot build / install IPython with unclean submodules", "Please update submodules with", " python setup.py submodule", "or", " git submodule update", "or commit any submodule changes you have made." ])) sys.exit(1)
def ensure_submodules_exist(): """Check out git submodules before distutils can do anything Because distutils cannot be trusted to update the tree after everything has been set in motion. """ # don't do anything if nothing is actually supposed to happen for do_nothing in ('-h', '--help', '--help-commands', 'clean'): if do_nothing in sys.argv: return if not check_for_submodules(): update_submodules()
#!/usr/bin/env python # -*- coding: utf-8 -*- """IPython -- An enhanced Interactive Python The actual ipython script to be installed with 'python setup.py install' is generated by setuptool via the `console_scripts` mechanism. This file is here (ipython source root directory) to facilitate non-root 'zero-installation' (just copy the source tree somewhere and run ipython.py) and development. """ if __name__ != "__main__": raise RuntimeError('You are trying to import the ipython.py executable. ' 'Did you mean to call "import IPython" (case-sensitive) instead?') # Ensure that the imported IPython is the local one, not a system-wide one import os, sys this_dir = os.path.dirname(sys.argv[0]) sys.path.insert(0, this_dir) from setupbase import check_for_submodules, update_submodules if not check_for_submodules(): update_submodules() # Now proceed with execution execfile(os.path.join( this_dir, 'IPython', 'scripts', 'ipython' ))