##// END OF EJS Templates
add IPython.version_info...
MinRK -
Show More
@@ -1,86 +1,87 b''
1 # encoding: utf-8
1 # encoding: utf-8
2 """
2 """
3 IPython: tools for interactive and parallel computing in Python.
3 IPython: tools for interactive and parallel computing in Python.
4
4
5 http://ipython.org
5 http://ipython.org
6 """
6 """
7 #-----------------------------------------------------------------------------
7 #-----------------------------------------------------------------------------
8 # Copyright (c) 2008-2011, IPython Development Team.
8 # Copyright (c) 2008-2011, IPython Development Team.
9 # Copyright (c) 2001-2007, Fernando Perez <fernando.perez@colorado.edu>
9 # Copyright (c) 2001-2007, Fernando Perez <fernando.perez@colorado.edu>
10 # Copyright (c) 2001, Janko Hauser <jhauser@zscout.de>
10 # Copyright (c) 2001, Janko Hauser <jhauser@zscout.de>
11 # Copyright (c) 2001, Nathaniel Gray <n8gray@caltech.edu>
11 # Copyright (c) 2001, Nathaniel Gray <n8gray@caltech.edu>
12 #
12 #
13 # Distributed under the terms of the Modified BSD License.
13 # Distributed under the terms of the Modified BSD License.
14 #
14 #
15 # The full license is in the file COPYING.txt, distributed with this software.
15 # The full license is in the file COPYING.txt, distributed with this software.
16 #-----------------------------------------------------------------------------
16 #-----------------------------------------------------------------------------
17
17
18 #-----------------------------------------------------------------------------
18 #-----------------------------------------------------------------------------
19 # Imports
19 # Imports
20 #-----------------------------------------------------------------------------
20 #-----------------------------------------------------------------------------
21 from __future__ import absolute_import
21 from __future__ import absolute_import
22
22
23 import os
23 import os
24 import sys
24 import sys
25
25
26 #-----------------------------------------------------------------------------
26 #-----------------------------------------------------------------------------
27 # Setup everything
27 # Setup everything
28 #-----------------------------------------------------------------------------
28 #-----------------------------------------------------------------------------
29
29
30 # Don't forget to also update setup.py when this changes!
30 # Don't forget to also update setup.py when this changes!
31 if sys.version[0:3] < '2.6':
31 if sys.version[0:3] < '2.6':
32 raise ImportError('Python Version 2.6 or above is required for IPython.')
32 raise ImportError('Python Version 2.6 or above is required for IPython.')
33
33
34 # Make it easy to import extensions - they are always directly on pythonpath.
34 # Make it easy to import extensions - they are always directly on pythonpath.
35 # Therefore, non-IPython modules can be added to extensions directory.
35 # Therefore, non-IPython modules can be added to extensions directory.
36 # This should probably be in ipapp.py.
36 # This should probably be in ipapp.py.
37 sys.path.append(os.path.join(os.path.dirname(__file__), "extensions"))
37 sys.path.append(os.path.join(os.path.dirname(__file__), "extensions"))
38
38
39 #-----------------------------------------------------------------------------
39 #-----------------------------------------------------------------------------
40 # Setup the top level names
40 # Setup the top level names
41 #-----------------------------------------------------------------------------
41 #-----------------------------------------------------------------------------
42
42
43 from .config.loader import Config
43 from .config.loader import Config
44 from .core import release
44 from .core import release
45 from .core.application import Application
45 from .core.application import Application
46 from .frontend.terminal.embed import embed
46 from .frontend.terminal.embed import embed
47
47
48 from .core.error import TryNext
48 from .core.error import TryNext
49 from .core.interactiveshell import InteractiveShell
49 from .core.interactiveshell import InteractiveShell
50 from .testing import test
50 from .testing import test
51 from .utils.sysinfo import sys_info
51 from .utils.sysinfo import sys_info
52 from .utils.frame import extract_module_locals
52 from .utils.frame import extract_module_locals
53
53
54 # Release data
54 # Release data
55 __author__ = ''
55 __author__ = ''
56 for author, email in release.authors.itervalues():
56 for author, email in release.authors.itervalues():
57 __author__ += author + ' <' + email + '>\n'
57 __author__ += author + ' <' + email + '>\n'
58 __license__ = release.license
58 __license__ = release.license
59 __version__ = release.version
59 __version__ = release.version
60 version_info = release.version_info
60
61
61 def embed_kernel(module=None, local_ns=None, **kwargs):
62 def embed_kernel(module=None, local_ns=None, **kwargs):
62 """Embed and start an IPython kernel in a given scope.
63 """Embed and start an IPython kernel in a given scope.
63
64
64 Parameters
65 Parameters
65 ----------
66 ----------
66 module : ModuleType, optional
67 module : ModuleType, optional
67 The module to load into IPython globals (default: caller)
68 The module to load into IPython globals (default: caller)
68 local_ns : dict, optional
69 local_ns : dict, optional
69 The namespace to load into IPython user namespace (default: caller)
70 The namespace to load into IPython user namespace (default: caller)
70
71
71 kwargs : various, optional
72 kwargs : various, optional
72 Further keyword args are relayed to the KernelApp constructor,
73 Further keyword args are relayed to the KernelApp constructor,
73 allowing configuration of the Kernel. Will only have an effect
74 allowing configuration of the Kernel. Will only have an effect
74 on the first embed_kernel call for a given process.
75 on the first embed_kernel call for a given process.
75
76
76 """
77 """
77
78
78 (caller_module, caller_locals) = extract_module_locals(1)
79 (caller_module, caller_locals) = extract_module_locals(1)
79 if module is None:
80 if module is None:
80 module = caller_module
81 module = caller_module
81 if local_ns is None:
82 if local_ns is None:
82 local_ns = caller_locals
83 local_ns = caller_locals
83
84
84 # Only import .zmq when we really need it
85 # Only import .zmq when we really need it
85 from .zmq.ipkernel import embed_kernel as real_embed_kernel
86 from .zmq.ipkernel import embed_kernel as real_embed_kernel
86 real_embed_kernel(module=module, local_ns=local_ns, **kwargs)
87 real_embed_kernel(module=module, local_ns=local_ns, **kwargs)
@@ -1,147 +1,148 b''
1 # -*- coding: utf-8 -*-
1 # -*- coding: utf-8 -*-
2 """Release data for the IPython project."""
2 """Release data for the IPython project."""
3
3
4 #-----------------------------------------------------------------------------
4 #-----------------------------------------------------------------------------
5 # Copyright (c) 2008, IPython Development Team.
5 # Copyright (c) 2008, IPython Development Team.
6 # Copyright (c) 2001, Fernando Perez <fernando.perez@colorado.edu>
6 # Copyright (c) 2001, Fernando Perez <fernando.perez@colorado.edu>
7 # Copyright (c) 2001, Janko Hauser <jhauser@zscout.de>
7 # Copyright (c) 2001, Janko Hauser <jhauser@zscout.de>
8 # Copyright (c) 2001, Nathaniel Gray <n8gray@caltech.edu>
8 # Copyright (c) 2001, Nathaniel Gray <n8gray@caltech.edu>
9 #
9 #
10 # Distributed under the terms of the Modified BSD License.
10 # Distributed under the terms of the Modified BSD License.
11 #
11 #
12 # The full license is in the file COPYING.txt, distributed with this software.
12 # The full license is in the file COPYING.txt, distributed with this software.
13 #-----------------------------------------------------------------------------
13 #-----------------------------------------------------------------------------
14
14
15 # Name of the package for release purposes. This is the name which labels
15 # Name of the package for release purposes. This is the name which labels
16 # the tarballs and RPMs made by distutils, so it's best to lowercase it.
16 # the tarballs and RPMs made by distutils, so it's best to lowercase it.
17 name = 'ipython'
17 name = 'ipython'
18
18
19 # IPython version information. An empty _version_extra corresponds to a full
19 # IPython version information. An empty _version_extra corresponds to a full
20 # release. 'dev' as a _version_extra string means this is a development
20 # release. 'dev' as a _version_extra string means this is a development
21 # version
21 # version
22 _version_major = 0
22 _version_major = 0
23 _version_minor = 14
23 _version_minor = 14
24 _version_micro = '' # use '' for first of series, number for 1 and above
24 _version_micro = 0 # use 0 for first of series, number for 1 and above
25 _version_extra = 'dev'
25 _version_extra = 'dev'
26 #_version_extra = 'rc1'
26 #_version_extra = 'rc1'
27 # _version_extra = '' # Uncomment this for full releases
27 # _version_extra = '' # Uncomment this for full releases
28
28
29 # Construct full version string from these.
29 # Construct full version string from these.
30 _ver = [_version_major, _version_minor]
30 _ver = [_version_major, _version_minor]
31 if _version_micro:
31 if _version_micro:
32 _ver.append(_version_micro)
32 _ver.append(_version_micro)
33 if _version_extra:
33 if _version_extra:
34 _ver.append(_version_extra)
34 _ver.append(_version_extra)
35
35
36 __version__ = '.'.join(map(str, _ver))
36 __version__ = '.'.join(map(str, _ver))
37
37
38 version = __version__ # backwards compatibility name
38 version = __version__ # backwards compatibility name
39 version_info = (_version_major, _version_minor, _version_micro, _version_extra)
39
40
40 description = "IPython: Productive Interactive Computing"
41 description = "IPython: Productive Interactive Computing"
41
42
42 long_description = \
43 long_description = \
43 """
44 """
44 IPython provides a rich toolkit to help you make the most out of using Python
45 IPython provides a rich toolkit to help you make the most out of using Python
45 interactively. Its main components are:
46 interactively. Its main components are:
46
47
47 * Powerful interactive Python shells (terminal- and Qt-based).
48 * Powerful interactive Python shells (terminal- and Qt-based).
48 * A web-based interactive notebook environment with all shell features plus
49 * A web-based interactive notebook environment with all shell features plus
49 support for embedded figures, animations and rich media.
50 support for embedded figures, animations and rich media.
50 * Support for interactive data visualization and use of GUI toolkits.
51 * Support for interactive data visualization and use of GUI toolkits.
51 * Flexible, embeddable interpreters to load into your own projects.
52 * Flexible, embeddable interpreters to load into your own projects.
52 * A high-performance library for high level and interactive parallel computing
53 * A high-performance library for high level and interactive parallel computing
53 that works in multicore systems, clusters, supercomputing and cloud scenarios.
54 that works in multicore systems, clusters, supercomputing and cloud scenarios.
54
55
55 The enhanced interactive Python shells have the following main features:
56 The enhanced interactive Python shells have the following main features:
56
57
57 * Comprehensive object introspection.
58 * Comprehensive object introspection.
58
59
59 * Input history, persistent across sessions.
60 * Input history, persistent across sessions.
60
61
61 * Caching of output results during a session with automatically generated
62 * Caching of output results during a session with automatically generated
62 references.
63 references.
63
64
64 * Extensible tab completion, with support by default for completion of python
65 * Extensible tab completion, with support by default for completion of python
65 variables and keywords, filenames and function keywords.
66 variables and keywords, filenames and function keywords.
66
67
67 * Extensible system of 'magic' commands for controlling the environment and
68 * Extensible system of 'magic' commands for controlling the environment and
68 performing many tasks related either to IPython or the operating system.
69 performing many tasks related either to IPython or the operating system.
69
70
70 * A rich configuration system with easy switching between different setups
71 * A rich configuration system with easy switching between different setups
71 (simpler than changing $PYTHONSTARTUP environment variables every time).
72 (simpler than changing $PYTHONSTARTUP environment variables every time).
72
73
73 * Session logging and reloading.
74 * Session logging and reloading.
74
75
75 * Extensible syntax processing for special purpose situations.
76 * Extensible syntax processing for special purpose situations.
76
77
77 * Access to the system shell with user-extensible alias system.
78 * Access to the system shell with user-extensible alias system.
78
79
79 * Easily embeddable in other Python programs and GUIs.
80 * Easily embeddable in other Python programs and GUIs.
80
81
81 * Integrated access to the pdb debugger and the Python profiler.
82 * Integrated access to the pdb debugger and the Python profiler.
82
83
83 The parallel computing architecture has the following main features:
84 The parallel computing architecture has the following main features:
84
85
85 * Quickly parallelize Python code from an interactive Python/IPython session.
86 * Quickly parallelize Python code from an interactive Python/IPython session.
86
87
87 * A flexible and dynamic process model that be deployed on anything from
88 * A flexible and dynamic process model that be deployed on anything from
88 multicore workstations to supercomputers.
89 multicore workstations to supercomputers.
89
90
90 * An architecture that supports many different styles of parallelism, from
91 * An architecture that supports many different styles of parallelism, from
91 message passing to task farming.
92 message passing to task farming.
92
93
93 * Both blocking and fully asynchronous interfaces.
94 * Both blocking and fully asynchronous interfaces.
94
95
95 * High level APIs that enable many things to be parallelized in a few lines
96 * High level APIs that enable many things to be parallelized in a few lines
96 of code.
97 of code.
97
98
98 * Share live parallel jobs with other users securely.
99 * Share live parallel jobs with other users securely.
99
100
100 * Dynamically load balanced task farming system.
101 * Dynamically load balanced task farming system.
101
102
102 * Robust error handling in parallel code.
103 * Robust error handling in parallel code.
103
104
104 The latest development version is always available from IPython's `GitHub
105 The latest development version is always available from IPython's `GitHub
105 site <http://github.com/ipython>`_.
106 site <http://github.com/ipython>`_.
106 """
107 """
107
108
108 license = 'BSD'
109 license = 'BSD'
109
110
110 authors = {'Fernando' : ('Fernando Perez','fperez.net@gmail.com'),
111 authors = {'Fernando' : ('Fernando Perez','fperez.net@gmail.com'),
111 'Janko' : ('Janko Hauser','jhauser@zscout.de'),
112 'Janko' : ('Janko Hauser','jhauser@zscout.de'),
112 'Nathan' : ('Nathaniel Gray','n8gray@caltech.edu'),
113 'Nathan' : ('Nathaniel Gray','n8gray@caltech.edu'),
113 'Ville' : ('Ville Vainio','vivainio@gmail.com'),
114 'Ville' : ('Ville Vainio','vivainio@gmail.com'),
114 'Brian' : ('Brian E Granger', 'ellisonbg@gmail.com'),
115 'Brian' : ('Brian E Granger', 'ellisonbg@gmail.com'),
115 'Min' : ('Min Ragan-Kelley', 'benjaminrk@gmail.com'),
116 'Min' : ('Min Ragan-Kelley', 'benjaminrk@gmail.com'),
116 'Thomas' : ('Thomas A. Kluyver', 'takowl@gmail.com'),
117 'Thomas' : ('Thomas A. Kluyver', 'takowl@gmail.com'),
117 'Jorgen' : ('Jorgen Stenarson', 'jorgen.stenarson@bostream.nu'),
118 'Jorgen' : ('Jorgen Stenarson', 'jorgen.stenarson@bostream.nu'),
118 'Matthias' : ('Matthias Bussonnier', 'bussonniermatthias@gmail.com'),
119 'Matthias' : ('Matthias Bussonnier', 'bussonniermatthias@gmail.com'),
119 }
120 }
120
121
121 author = 'The IPython Development Team'
122 author = 'The IPython Development Team'
122
123
123 author_email = 'ipython-dev@scipy.org'
124 author_email = 'ipython-dev@scipy.org'
124
125
125 url = 'http://ipython.org'
126 url = 'http://ipython.org'
126
127
127 download_url = 'https://github.com/ipython/ipython/downloads'
128 download_url = 'https://github.com/ipython/ipython/downloads'
128
129
129 platforms = ['Linux','Mac OSX','Windows XP/2000/NT/Vista/7']
130 platforms = ['Linux','Mac OSX','Windows XP/2000/NT/Vista/7']
130
131
131 keywords = ['Interactive','Interpreter','Shell','Parallel','Distributed',
132 keywords = ['Interactive','Interpreter','Shell','Parallel','Distributed',
132 'Web-based computing', 'Qt console', 'Embedding']
133 'Web-based computing', 'Qt console', 'Embedding']
133
134
134 classifiers = [
135 classifiers = [
135 'Intended Audience :: Developers',
136 'Intended Audience :: Developers',
136 'Intended Audience :: Science/Research',
137 'Intended Audience :: Science/Research',
137 'License :: OSI Approved :: BSD License',
138 'License :: OSI Approved :: BSD License',
138 'Programming Language :: Python',
139 'Programming Language :: Python',
139 'Programming Language :: Python :: 2',
140 'Programming Language :: Python :: 2',
140 'Programming Language :: Python :: 2.6',
141 'Programming Language :: Python :: 2.6',
141 'Programming Language :: Python :: 2.7',
142 'Programming Language :: Python :: 2.7',
142 'Programming Language :: Python :: 3',
143 'Programming Language :: Python :: 3',
143 'Programming Language :: Python :: 3.1',
144 'Programming Language :: Python :: 3.1',
144 'Programming Language :: Python :: 3.2',
145 'Programming Language :: Python :: 3.2',
145 'Topic :: System :: Distributed Computing',
146 'Topic :: System :: Distributed Computing',
146 'Topic :: System :: Shells'
147 'Topic :: System :: Shells'
147 ]
148 ]
General Comments 0
You need to be logged in to leave comments. Login now