FazBrowse GitHub Viewer
|
Trending
|
URL:
|
Home
Tools:
[Download Repo ZIP]
[View Raw Code]
[Original HTTPS Page]
ipython/IPython/__init__.py at python-3.14-dev · krassowski/ipython · GitHub
krassowski
ipython
Repository navigation
Code
Pull requests
Actions
Projects
Security and quality
Insights
Expand file tree
Breadcrumbs
ipython
/
IPython
/
__init__.py
Copy path
More file actions
More file actions
Latest commit
History
History
History
144 lines (118 loc) · 5.57 KB
Breadcrumbs
ipython
/
IPython
/
__init__.py
Copy path
File metadata and controls
144 lines (118 loc) · 5.57 KB
Raw
Copy raw file
Download raw file
Open symbols panel
Edit and raw actions
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
# PYTHON_ARGCOMPLETE_OK
"""
IPython: tools for interactive and parallel computing in Python.
https://ipython.org
"""
#-----------------------------------------------------------------------------
# Copyright (c) 2008-2011, IPython Development Team.
# Copyright (c) 2001-2007, Fernando Perez <fernando.perez@colorado.edu>
# Copyright (c) 2001, Janko Hauser <jhauser@zscout.de>
# Copyright (c) 2001, Nathaniel Gray <n8gray@caltech.edu>
#
# Distributed under the terms of the Modified BSD License.
#
# The full license is in the file COPYING.txt, distributed with this software.
#-----------------------------------------------------------------------------
#-----------------------------------------------------------------------------
# Imports
#-----------------------------------------------------------------------------
import
sys
import
warnings
#-----------------------------------------------------------------------------
# Setup everything
#-----------------------------------------------------------------------------
# Don't forget to also update setup.py when this changes!
if
sys
.
version_info
<
(
3
,
11
):
raise
ImportError
(
"""
IPython 8.31+ supports Python 3.11 and above, following SPEC0
IPython 8.19+ supports Python 3.10 and above, following SPEC0.
IPython 8.13+ supports Python 3.9 and above, following NEP 29.
IPython 8.0-8.12 supports Python 3.8 and above, following NEP 29.
When using Python 2.7, please install IPython 5.x LTS Long Term Support version.
Python 3.3 and 3.4 were supported up to IPython 6.x.
Python 3.5 was supported with IPython 7.0 to 7.9.
Python 3.6 was supported with IPython up to 7.16.
Python 3.7 was still supported with the 7.x branch.
See IPython `README.rst` file for more information:
https://github.com/ipython/ipython/blob/main/README.rst
"""
)
#-----------------------------------------------------------------------------
# Setup the top level names
#-----------------------------------------------------------------------------
from
.
core
.
getipython
import
get_ipython
from
.
core
import
release
from
.
core
.
application
import
Application
from
.
terminal
.
embed
import
embed
from
.
core
.
interactiveshell
import
InteractiveShell
from
.
utils
.
sysinfo
import
sys_info
from
.
utils
.
frame
import
extract_module_locals
__all__
=
[
"start_ipython"
,
"embed"
,
"embed_kernel"
]
# Release data
__author__
=
'%s <%s>'
%
(
release
.
author
,
release
.
author_email
)
__license__
=
release
.
license
__version__
=
release
.
version
version_info
=
release
.
version_info
# list of CVEs that should have been patched in this release.
# this is informational and should not be relied upon.
__patched_cves__
=
{
"CVE-2022-21699"
,
"CVE-2023-24816"
}
def
embed_kernel
(
module
=
None
,
local_ns
=
None
,
**
kwargs
):
"""Embed and start an IPython kernel in a given scope.
If you don't want the kernel to initialize the namespace
from the scope of the surrounding function,
and/or you want to load full IPython configuration,
you probably want `IPython.start_kernel()` instead.
This is a deprecated alias for `ipykernel.embed.embed_kernel()`,
to be removed in the future.
You should import directly from `ipykernel.embed`; this wrapper
fails anyway if you don't have `ipykernel` package installed.
Parameters
----------
module : types.ModuleType, optional
The module to load into IPython globals (default: caller)
local_ns : dict, optional
The namespace to load into IPython user namespace (default: caller)
**kwargs : various, optional
Further keyword args are relayed to the IPKernelApp constructor,
such as `config`, a traitlets :class:`Config` object (see :ref:`configure_start_ipython`),
allowing configuration of the kernel. Will only have an effect
on the first embed_kernel call for a given process.
"""
warnings
.
warn
(
"import embed_kernel from ipykernel.embed directly (since 2013)."
" Importing from IPython will be removed in the future"
,
DeprecationWarning
,
stacklevel
=
2
,
)
(
caller_module
,
caller_locals
)
=
extract_module_locals
(
1
)
if
module
is
None
:
module
=
caller_module
if
local_ns
is
None
:
local_ns
=
dict
(
**
caller_locals
)
# Only import .zmq when we really need it
from
ipykernel
.
embed
import
embed_kernel
as
real_embed_kernel
real_embed_kernel
(
module
=
module
,
local_ns
=
local_ns
,
**
kwargs
)
def
start_ipython
(
argv
=
None
,
**
kwargs
):
"""Launch a normal IPython instance (as opposed to embedded)
`IPython.embed()` puts a shell in a particular calling scope,
such as a function or method for debugging purposes,
which is often not desirable.
`start_ipython()` does full, regular IPython initialization,
including loading startup files, configuration, etc.
much of which is skipped by `embed()`.
This is a public API method, and will survive implementation changes.
Parameters
----------
argv : list or None, optional
If unspecified or None, IPython will parse command-line options from sys.argv.
To prevent any command-line parsing, pass an empty list: `argv=[]`.
user_ns : dict, optional
specify this dictionary to initialize the IPython user namespace with particular values.
**kwargs : various, optional
Any other kwargs will be passed to the Application constructor,
such as `config`, a traitlets :class:`Config` object (see :ref:`configure_start_ipython`),
allowing configuration of the instance (see :ref:`terminal_options`).
"""
from
IPython
.
terminal
.
ipapp
import
launch_new_instance
return
launch_new_instance
(
argv
=
argv
,
**
kwargs
)
Back
|
FazBrowse Home
|
New Git URL