def __extend_builtins(globals_): # TODO: Is there any advantage to manually duplicate __builtins__, instead of passing our own? globals_['__builtins__'] = python # Add `pythonect.lang` to Python's `__builtins__` for name in dir(lang): # i.e. __builtins__.print_ = pythonect.lang.print_ setattr(globals_['__builtins__'], name, getattr(lang, name)) # Add GIL setattr(globals_['__builtins__'], '__GIL__', global_interpreter_lock) # Fix "copyright", "credits", and "license" setattr(globals_['__builtins__'], 'copyright', site._Printer("copyright", "Copyright (c) 2012-2013 by Itzik Kotler and others.\nAll Rights Reserved.")) setattr(globals_['__builtins__'], 'credits', site._Printer("credits", "See www.pythonect.org for more information.")) setattr(globals_['__builtins__'], 'license', site._Printer("license", "See https://github.com/ikotler/pythonect/blob/master/LICENSE", ["LICENSE"], [os.path.abspath(__file__ + "/../../../")])) # Map eval() to Pythonect's eval, and __eval__ to Python's eval globals_['__eval__'] = getattr(globals_['__builtins__'], 'eval') globals_['eval'] = eval return globals_
def __extend_builtins(globals_): # TODO: Is there any advantage to manually duplicate __builtins__, instead of passing our own? globals_['__builtins__'] = python # Add `pythonect.lang` to Python's `__builtins__` for name in dir(lang): # i.e. __builtins__.print_ = pythonect.lang.print_ setattr(globals_['__builtins__'], name, getattr(lang, name)) # Add GIL setattr(globals_['__builtins__'], '__GIL__', global_interpreter_lock) # Fix "copyright", "credits", and "license" setattr( globals_['__builtins__'], 'copyright', site._Printer( "copyright", "Copyright (c) 2012-2013 by Itzik Kotler and others.\nAll Rights Reserved." )) setattr( globals_['__builtins__'], 'credits', site._Printer("credits", "See www.pythonect.org for more information.")) setattr( globals_['__builtins__'], 'license', site._Printer( "license", "See https://github.com/ikotler/pythonect/blob/master/LICENSE", ["LICENSE"], [os.path.abspath(__file__ + "/../../../")])) # Map eval() to Pythonect's eval, and __eval__ to Python's eval globals_['__eval__'] = getattr(globals_['__builtins__'], 'eval') globals_['eval'] = eval # Default `iterate_literal_arrays` if not '__ITERATE_LITERAL_ARRAYS__' in globals_: globals_['__ITERATE_LITERAL_ARRAYS__'] = True return globals_
def setscientific(): """Set 'scientific' in __builtin__""" import __builtin__ from site import _Printer infos = """\ This is a standard Python interpreter with preloaded tools for scientific computing and visualization: >>> import numpy as np # NumPy (multidimensional arrays, linear algebra, ...) >>> import scipy as sp # SciPy (signal and image processing library) >>> import matplotlib as mpl # Matplotlib (2D/3D plotting library) >>> import matplotlib.pyplot as plt # Matplotlib's pyplot: MATLAB-like syntax >>> from pylab import * # Matplotlib's pylab interface >>> ion() # Turned on Matplotlib's interactive mode """ try: import guiqwt #analysis:ignore infos += """ >>> import guidata # GUI generation for easy dataset editing and display >>> import guiqwt # Efficient 2D data-plotting features >>> import guiqwt.pyplot as plt_ # guiqwt's pyplot: MATLAB-like syntax >>> plt_.ion() # Turned on guiqwt's interactive mode """ except ImportError: pass infos += """ Within Spyder, this interpreter also provides: * special commands (e.g. %ls, %pwd, %clear) * system commands, i.e. all commands starting with '!' are subprocessed (e.g. !dir on Windows or !ls on Linux, and so on) """ __builtin__.scientific = _Printer("scientific", infos)
def setscientific(): """Set 'scientific' in __builtin__""" infos = "" if __has_numpy: infos += """ This is a standard Python interpreter with preloaded tools for scientific computing and visualization. It tries to import the following modules: >>> import numpy as np # NumPy (multidimensional arrays, linear algebra, ...)""" if __has_scipy: infos += """ >>> import scipy as sp # SciPy (signal and image processing library)""" if __has_matplotlib: infos += """ >>> import matplotlib as mpl # Matplotlib (2D/3D plotting library) >>> import matplotlib.pyplot as plt # Matplotlib's pyplot: MATLAB-like syntax >>> from pylab import * # Matplotlib's pylab interface >>> ion() # Turned on Matplotlib's interactive mode""" try: import guiqwt #analysis:ignore infos += """ >>> import guidata # GUI generation for easy dataset editing and display >>> import guiqwt # Efficient 2D data-plotting features >>> import guiqwt.pyplot as plt_ # guiqwt's pyplot: MATLAB-like syntax >>> plt_.ion() # Turned on guiqwt's interactive mode""" except ImportError: pass if __has_numpy: infos += "\n" infos += """ Within Spyder, this interpreter also provides: * special commands (e.g. %ls, %cd, %pwd, %clear) - %ls: List files in the current directory - %cd dir: Change to directory dir - %pwd: Show current directory - %clear x: Remove variable x from namespace """ try: # Python 2 import __builtin__ as builtins except ImportError: # Python 3 import builtins try: from site import _Printer except ImportError: # Python 3.4 from _sitebuiltins import _Printer builtins.scientific = _Printer("scientific", infos)
def setscientific(): """Set 'scientific' in __builtin__""" import __builtin__ from site import _Printer infos = "" if __has_numpy: infos += """ This is a standard Python interpreter with preloaded tools for scientific computing and visualization. It tries to import the following modules: >>> import numpy as np # NumPy (multidimensional arrays, linear algebra, ...)""" if __has_scipy: infos += """ >>> import scipy as sp # SciPy (signal and image processing library)""" if __has_matplotlib: infos += """ >>> import matplotlib as mpl # Matplotlib (2D/3D plotting library) >>> import matplotlib.pyplot as plt # Matplotlib's pyplot: MATLAB-like syntax >>> from pylab import * # Matplotlib's pylab interface >>> ion() # Turned on Matplotlib's interactive mode""" try: import guiqwt #analysis:ignore infos += """ >>> import guidata # GUI generation for easy dataset editing and display >>> import guiqwt # Efficient 2D data-plotting features >>> import guiqwt.pyplot as plt_ # guiqwt's pyplot: MATLAB-like syntax >>> plt_.ion() # Turned on guiqwt's interactive mode""" except ImportError: pass if __has_numpy: infos += "\n" infos += """ Within Spyder, this interpreter also provides: * special commands (e.g. %ls, %pwd, %clear) * system commands, i.e. all commands starting with '!' are subprocessed (e.g. !dir on Windows or !ls on Linux, and so on) """ __builtin__.scientific = _Printer("scientific", infos)