ipython 9.1.0__py3-none-any.whl → 9.2.0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- IPython/__init__.py +5 -0
- IPython/core/interactiveshell.py +11 -8
- IPython/core/magics/execution.py +27 -21
- IPython/core/release.py +1 -1
- IPython/terminal/shortcuts/auto_suggest.py +13 -10
- IPython/utils/_sysinfo.py +1 -1
- {ipython-9.1.0.dist-info → ipython-9.2.0.dist-info}/METADATA +1 -1
- {ipython-9.1.0.dist-info → ipython-9.2.0.dist-info}/RECORD +14 -14
- {ipython-9.1.0.dist-info → ipython-9.2.0.dist-info}/WHEEL +1 -1
- {ipython-9.1.0.data → ipython-9.2.0.data}/data/share/man/man1/ipython.1 +0 -0
- {ipython-9.1.0.dist-info → ipython-9.2.0.dist-info}/entry_points.txt +0 -0
- {ipython-9.1.0.dist-info → ipython-9.2.0.dist-info}/licenses/COPYING.rst +0 -0
- {ipython-9.1.0.dist-info → ipython-9.2.0.dist-info}/licenses/LICENSE +0 -0
- {ipython-9.1.0.dist-info → ipython-9.2.0.dist-info}/top_level.txt +0 -0
IPython/__init__.py
CHANGED
|
@@ -80,6 +80,11 @@ def embed_kernel(module=None, local_ns=None, **kwargs):
|
|
|
80
80
|
and/or you want to load full IPython configuration,
|
|
81
81
|
you probably want `IPython.start_kernel()` instead.
|
|
82
82
|
|
|
83
|
+
This is a deprecated alias for `ipykernel.embed.embed_kernel()`,
|
|
84
|
+
to be removed in the future.
|
|
85
|
+
You should import directly from `ipykernel.embed`; this wrapper
|
|
86
|
+
fails anyway if you don't have `ipykernel` package installed.
|
|
87
|
+
|
|
83
88
|
Parameters
|
|
84
89
|
----------
|
|
85
90
|
module : types.ModuleType, optional
|
IPython/core/interactiveshell.py
CHANGED
|
@@ -3152,14 +3152,17 @@ class InteractiveShell(SingletonConfigurable):
|
|
|
3152
3152
|
try:
|
|
3153
3153
|
result = runner(coro)
|
|
3154
3154
|
except BaseException as e:
|
|
3155
|
-
|
|
3156
|
-
|
|
3157
|
-
|
|
3158
|
-
|
|
3159
|
-
|
|
3160
|
-
|
|
3161
|
-
|
|
3162
|
-
|
|
3155
|
+
try:
|
|
3156
|
+
info = ExecutionInfo(
|
|
3157
|
+
raw_cell, store_history, silent, shell_futures, cell_id
|
|
3158
|
+
)
|
|
3159
|
+
result = ExecutionResult(info)
|
|
3160
|
+
result.error_in_exec = e
|
|
3161
|
+
self.showtraceback(running_compiled_code=True)
|
|
3162
|
+
except:
|
|
3163
|
+
pass
|
|
3164
|
+
|
|
3165
|
+
return result
|
|
3163
3166
|
|
|
3164
3167
|
def should_run_async(
|
|
3165
3168
|
self, raw_cell: str, *, transformed_cell=None, preprocessing_exc_tuple=None
|
IPython/core/magics/execution.py
CHANGED
|
@@ -160,10 +160,11 @@ class TimeitTemplateFiller(ast.NodeTransformer):
|
|
|
160
160
|
|
|
161
161
|
class Timer(timeit.Timer):
|
|
162
162
|
"""Timer class that explicitly uses self.inner
|
|
163
|
-
|
|
163
|
+
|
|
164
164
|
which is an undocumented implementation detail of CPython,
|
|
165
165
|
not shared by PyPy.
|
|
166
166
|
"""
|
|
167
|
+
|
|
167
168
|
# Timer.timeit copied from CPython 3.4.2
|
|
168
169
|
def timeit(self, number=timeit.default_number):
|
|
169
170
|
"""Time 'number' executions of the main statement.
|
|
@@ -201,7 +202,6 @@ class ExecutionMagics(Magics):
|
|
|
201
202
|
@no_var_expand
|
|
202
203
|
@line_cell_magic
|
|
203
204
|
def prun(self, parameter_s='', cell=None):
|
|
204
|
-
|
|
205
205
|
"""Run a statement through the python code profiler.
|
|
206
206
|
|
|
207
207
|
**Usage, in line mode**::
|
|
@@ -1000,7 +1000,7 @@ class ExecutionMagics(Magics):
|
|
|
1000
1000
|
# Stop iteration is raised on quit command
|
|
1001
1001
|
pass
|
|
1002
1002
|
|
|
1003
|
-
except:
|
|
1003
|
+
except Exception:
|
|
1004
1004
|
etype, value, tb = sys.exc_info()
|
|
1005
1005
|
# Skip three frames in the traceback: the %run one,
|
|
1006
1006
|
# one inside bdb.py, and the command-line typed by the
|
|
@@ -1142,7 +1142,7 @@ class ExecutionMagics(Magics):
|
|
|
1142
1142
|
)
|
|
1143
1143
|
if stmt == "" and cell is None:
|
|
1144
1144
|
return
|
|
1145
|
-
|
|
1145
|
+
|
|
1146
1146
|
timefunc = timeit.default_timer
|
|
1147
1147
|
number = int(getattr(opts, "n", 0))
|
|
1148
1148
|
default_repeat = 7 if timeit.default_repeat < 7 else timeit.default_repeat
|
|
@@ -1262,7 +1262,7 @@ class ExecutionMagics(Magics):
|
|
|
1262
1262
|
@needs_local_scope
|
|
1263
1263
|
@line_cell_magic
|
|
1264
1264
|
@output_can_be_silenced
|
|
1265
|
-
def time(self,line=
|
|
1265
|
+
def time(self, line="", cell=None, local_ns=None):
|
|
1266
1266
|
"""Time execution of a Python statement or expression.
|
|
1267
1267
|
|
|
1268
1268
|
The CPU and wall clock times are printed, and the value of the
|
|
@@ -1277,13 +1277,19 @@ class ExecutionMagics(Magics):
|
|
|
1277
1277
|
- In cell mode, you can time the cell body (a directly
|
|
1278
1278
|
following statement raises an error).
|
|
1279
1279
|
|
|
1280
|
-
This function provides very basic timing functionality.
|
|
1280
|
+
This function provides very basic timing functionality. Use the timeit
|
|
1281
1281
|
magic for more control over the measurement.
|
|
1282
1282
|
|
|
1283
1283
|
.. versionchanged:: 7.3
|
|
1284
1284
|
User variables are no longer expanded,
|
|
1285
1285
|
the magic line is always left unmodified.
|
|
1286
1286
|
|
|
1287
|
+
.. versionchanged:: 8.3
|
|
1288
|
+
The time magic now correctly propagates system-exiting exceptions
|
|
1289
|
+
(such as ``KeyboardInterrupt`` invoked when interrupting execution)
|
|
1290
|
+
rather than just printing out the exception traceback.
|
|
1291
|
+
The non-system-exception will still be caught as before.
|
|
1292
|
+
|
|
1287
1293
|
Examples
|
|
1288
1294
|
--------
|
|
1289
1295
|
::
|
|
@@ -1324,10 +1330,10 @@ class ExecutionMagics(Magics):
|
|
|
1324
1330
|
Compiler : 0.78 s
|
|
1325
1331
|
"""
|
|
1326
1332
|
# fail immediately if the given expression can't be compiled
|
|
1327
|
-
|
|
1333
|
+
|
|
1328
1334
|
if line and cell:
|
|
1329
1335
|
raise UsageError("Can't use statement directly after '%%time'!")
|
|
1330
|
-
|
|
1336
|
+
|
|
1331
1337
|
if cell:
|
|
1332
1338
|
expr = self.shell.transform_cell(cell)
|
|
1333
1339
|
else:
|
|
@@ -1338,7 +1344,7 @@ class ExecutionMagics(Magics):
|
|
|
1338
1344
|
|
|
1339
1345
|
t0 = clock()
|
|
1340
1346
|
expr_ast = self.shell.compile.ast_parse(expr)
|
|
1341
|
-
tp = clock()-t0
|
|
1347
|
+
tp = clock() - t0
|
|
1342
1348
|
|
|
1343
1349
|
# Apply AST transformations
|
|
1344
1350
|
expr_ast = self.shell.transform_ast(expr_ast)
|
|
@@ -1346,8 +1352,8 @@ class ExecutionMagics(Magics):
|
|
|
1346
1352
|
# Minimum time above which compilation time will be reported
|
|
1347
1353
|
tc_min = 0.1
|
|
1348
1354
|
|
|
1349
|
-
expr_val=None
|
|
1350
|
-
if len(expr_ast.body)==1 and isinstance(expr_ast.body[0], ast.Expr):
|
|
1355
|
+
expr_val = None
|
|
1356
|
+
if len(expr_ast.body) == 1 and isinstance(expr_ast.body[0], ast.Expr):
|
|
1351
1357
|
mode = 'eval'
|
|
1352
1358
|
source = '<timed eval>'
|
|
1353
1359
|
expr_ast = ast.Expression(expr_ast.body[0].value)
|
|
@@ -1356,25 +1362,25 @@ class ExecutionMagics(Magics):
|
|
|
1356
1362
|
source = '<timed exec>'
|
|
1357
1363
|
# multi-line %%time case
|
|
1358
1364
|
if len(expr_ast.body) > 1 and isinstance(expr_ast.body[-1], ast.Expr):
|
|
1359
|
-
expr_val= expr_ast.body[-1]
|
|
1365
|
+
expr_val = expr_ast.body[-1]
|
|
1360
1366
|
expr_ast = expr_ast.body[:-1]
|
|
1361
1367
|
expr_ast = Module(expr_ast, [])
|
|
1362
1368
|
expr_val = ast.Expression(expr_val.value)
|
|
1363
1369
|
|
|
1364
1370
|
t0 = clock()
|
|
1365
1371
|
code = self.shell.compile(expr_ast, source, mode)
|
|
1366
|
-
tc = clock()-t0
|
|
1372
|
+
tc = clock() - t0
|
|
1367
1373
|
|
|
1368
1374
|
# skew measurement as little as possible
|
|
1369
1375
|
glob = self.shell.user_ns
|
|
1370
1376
|
wtime = time.time
|
|
1371
1377
|
# time execution
|
|
1372
1378
|
wall_st = wtime()
|
|
1373
|
-
if mode==
|
|
1379
|
+
if mode == "eval":
|
|
1374
1380
|
st = clock2()
|
|
1375
1381
|
try:
|
|
1376
1382
|
out = eval(code, glob, local_ns)
|
|
1377
|
-
except:
|
|
1383
|
+
except Exception:
|
|
1378
1384
|
self.shell.showtraceback()
|
|
1379
1385
|
return
|
|
1380
1386
|
end = clock2()
|
|
@@ -1382,12 +1388,12 @@ class ExecutionMagics(Magics):
|
|
|
1382
1388
|
st = clock2()
|
|
1383
1389
|
try:
|
|
1384
1390
|
exec(code, glob, local_ns)
|
|
1385
|
-
out=None
|
|
1391
|
+
out = None
|
|
1386
1392
|
# multi-line %%time case
|
|
1387
1393
|
if expr_val is not None:
|
|
1388
1394
|
code_2 = self.shell.compile(expr_val, source, 'eval')
|
|
1389
1395
|
out = eval(code_2, glob, local_ns)
|
|
1390
|
-
except:
|
|
1396
|
+
except Exception:
|
|
1391
1397
|
self.shell.showtraceback()
|
|
1392
1398
|
return
|
|
1393
1399
|
end = clock2()
|
|
@@ -1630,14 +1636,15 @@ def parse_breakpoint(text, current_file):
|
|
|
1630
1636
|
return current_file, int(text)
|
|
1631
1637
|
else:
|
|
1632
1638
|
return text[:colon], int(text[colon+1:])
|
|
1633
|
-
|
|
1639
|
+
|
|
1640
|
+
|
|
1634
1641
|
def _format_time(timespan, precision=3):
|
|
1635
1642
|
"""Formats the timespan in a human readable form"""
|
|
1636
1643
|
|
|
1637
1644
|
if timespan >= 60.0:
|
|
1638
1645
|
# we have more than a minute, format that in a human readable form
|
|
1639
1646
|
# Idea from http://snipplr.com/view/5713/
|
|
1640
|
-
parts = [("d", 60*60*24),("h", 60*60),("min", 60), ("s", 1)]
|
|
1647
|
+
parts = [("d", 60 * 60 * 24), ("h", 60 * 60), ("min", 60), ("s", 1)]
|
|
1641
1648
|
time = []
|
|
1642
1649
|
leftover = timespan
|
|
1643
1650
|
for suffix, length in parts:
|
|
@@ -1649,7 +1656,6 @@ def _format_time(timespan, precision=3):
|
|
|
1649
1656
|
break
|
|
1650
1657
|
return " ".join(time)
|
|
1651
1658
|
|
|
1652
|
-
|
|
1653
1659
|
# Unfortunately characters outside of range(128) can cause problems in
|
|
1654
1660
|
# certain terminals.
|
|
1655
1661
|
# See bug: https://bugs.launchpad.net/ipython/+bug/348466
|
|
@@ -1663,7 +1669,7 @@ def _format_time(timespan, precision=3):
|
|
|
1663
1669
|
except:
|
|
1664
1670
|
pass
|
|
1665
1671
|
scaling = [1, 1e3, 1e6, 1e9]
|
|
1666
|
-
|
|
1672
|
+
|
|
1667
1673
|
if timespan > 0.0:
|
|
1668
1674
|
order = min(-int(math.floor(math.log10(timespan)) // 3), 3)
|
|
1669
1675
|
else:
|
IPython/core/release.py
CHANGED
|
@@ -174,7 +174,7 @@ class NavigableAutoSuggestFromHistory(AutoSuggestFromHistory):
|
|
|
174
174
|
# This is the instance of the LLM provider from jupyter-ai to which we forward the request
|
|
175
175
|
# to generate inline completions.
|
|
176
176
|
_llm_provider: Any | None
|
|
177
|
-
_llm_prefixer:
|
|
177
|
+
_llm_prefixer: Callable = lambda self, x: "wrong"
|
|
178
178
|
|
|
179
179
|
def __init__(self):
|
|
180
180
|
super().__init__()
|
|
@@ -325,7 +325,6 @@ class NavigableAutoSuggestFromHistory(AutoSuggestFromHistory):
|
|
|
325
325
|
"""
|
|
326
326
|
# we likely want to store the current cursor position, and cancel if the cursor has moved.
|
|
327
327
|
try:
|
|
328
|
-
import jupyter_ai_magics
|
|
329
328
|
import jupyter_ai.completions.models as jai_models
|
|
330
329
|
except ModuleNotFoundError:
|
|
331
330
|
jai_models = None
|
|
@@ -333,9 +332,7 @@ class NavigableAutoSuggestFromHistory(AutoSuggestFromHistory):
|
|
|
333
332
|
warnings.warn("No LLM provider found, cannot trigger LLM completions")
|
|
334
333
|
return
|
|
335
334
|
if jai_models is None:
|
|
336
|
-
warnings.warn(
|
|
337
|
-
"LLM Completion requires `jupyter_ai_magics` and `jupyter_ai` to be installed"
|
|
338
|
-
)
|
|
335
|
+
warnings.warn("LLM Completion requires `jupyter_ai` to be installed")
|
|
339
336
|
|
|
340
337
|
self._cancel_running_llm_task()
|
|
341
338
|
|
|
@@ -365,7 +362,7 @@ class NavigableAutoSuggestFromHistory(AutoSuggestFromHistory):
|
|
|
365
362
|
Unlike with JupyterAi, as we do not have multiple cell, the cell id
|
|
366
363
|
is always set to `None`.
|
|
367
364
|
|
|
368
|
-
We set the prefix to the current cell content, but could also
|
|
365
|
+
We set the prefix to the current cell content, but could also insert the
|
|
369
366
|
rest of the history or even just the non-fail history.
|
|
370
367
|
|
|
371
368
|
In the same way, we do not have cell id.
|
|
@@ -378,21 +375,27 @@ class NavigableAutoSuggestFromHistory(AutoSuggestFromHistory):
|
|
|
378
375
|
providers.
|
|
379
376
|
"""
|
|
380
377
|
try:
|
|
381
|
-
import jupyter_ai_magics
|
|
382
378
|
import jupyter_ai.completions.models as jai_models
|
|
383
379
|
except ModuleNotFoundError:
|
|
384
380
|
jai_models = None
|
|
385
381
|
|
|
382
|
+
if not jai_models:
|
|
383
|
+
raise ValueError("jupyter-ai is not installed")
|
|
384
|
+
|
|
385
|
+
if not self._llm_provider:
|
|
386
|
+
raise ValueError("No LLM provider found, cannot trigger LLM completions")
|
|
387
|
+
|
|
386
388
|
hm = buffer.history.shell.history_manager
|
|
387
389
|
prefix = self._llm_prefixer(hm)
|
|
388
390
|
get_ipython().log.debug("prefix: %s", prefix)
|
|
389
391
|
|
|
390
392
|
self._request_number += 1
|
|
391
393
|
request_number = self._request_number
|
|
394
|
+
|
|
392
395
|
request = jai_models.InlineCompletionRequest(
|
|
393
396
|
number=request_number,
|
|
394
|
-
prefix=prefix + buffer.document.
|
|
395
|
-
suffix=
|
|
397
|
+
prefix=prefix + buffer.document.text_before_cursor,
|
|
398
|
+
suffix=buffer.document.text_after_cursor,
|
|
396
399
|
mime="text/x-python",
|
|
397
400
|
stream=True,
|
|
398
401
|
path=None,
|
|
@@ -438,7 +441,7 @@ async def llm_autosuggestion(event: KeyPressEvent):
|
|
|
438
441
|
doc = event.current_buffer.document
|
|
439
442
|
lines_to_insert = max(0, _MIN_LINES - doc.line_count + doc.cursor_position_row)
|
|
440
443
|
for _ in range(lines_to_insert):
|
|
441
|
-
event.current_buffer.insert_text("\n", move_cursor=False)
|
|
444
|
+
event.current_buffer.insert_text("\n", move_cursor=False, fire_event=False)
|
|
442
445
|
|
|
443
446
|
await provider._trigger_llm(event.current_buffer)
|
|
444
447
|
|
IPython/utils/_sysinfo.py
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
# GENERATED BY setup.py
|
|
2
|
-
commit = "
|
|
2
|
+
commit = "40eaac2d4"
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
IPython/__init__.py,sha256=
|
|
1
|
+
IPython/__init__.py,sha256=7dlVw4pigpyavG4T9nWRdkYQJCRK-y3YFRsMEAFjUh4,5704
|
|
2
2
|
IPython/__main__.py,sha256=55A5B-sd2ntWU36X9AEipKWnDvFM9JFSb4FOlC8hATA,489
|
|
3
3
|
IPython/display.py,sha256=PZ3-IJ1pPXGlTlpJh0Y_B0nhZFWWA4LMOEEe9sSqxx8,1392
|
|
4
4
|
IPython/paths.py,sha256=QOPstpt2CVCrDUTn5a-Q1kcGBAwDLbq9omqc-2aoLU4,4126
|
|
@@ -30,7 +30,7 @@ IPython/core/history.py,sha256=5hmGOe1H93tCtWj_d8HdFixDCr0kdEqahGJ-zUo03RQ,41183
|
|
|
30
30
|
IPython/core/historyapp.py,sha256=5H38INsWXRacscKz_5PQHYrEnHEayDtc1D1qcSyHRBU,5847
|
|
31
31
|
IPython/core/hooks.py,sha256=xBWTZqycxZi97yj01IFc-SoJBzV5B73IoDHbAAlKUpQ,5193
|
|
32
32
|
IPython/core/inputtransformer2.py,sha256=7sRleytrcAbp5PZMOrDw59MjUAGXg5BbaRbPkSW83-I,28909
|
|
33
|
-
IPython/core/interactiveshell.py,sha256=
|
|
33
|
+
IPython/core/interactiveshell.py,sha256=LpkhUsxB3Bhxl0wAxLqmrB1vQ98v3D-jh8U6xIZZhrQ,158961
|
|
34
34
|
IPython/core/latex_symbols.py,sha256=DzFecvqWVSsdN7vWAsp0mlYAHRDQKfZGAmvuDUh0M-s,30127
|
|
35
35
|
IPython/core/logger.py,sha256=Iwe4xKMmxEdvSwHYPMfsTWkmdaqVCgvZT3R3I3qTmrU,8436
|
|
36
36
|
IPython/core/macro.py,sha256=OhvXWNhLe393rI2wTpMgbUVHWSnmC_ycHiYqzqSHXZU,1726
|
|
@@ -44,7 +44,7 @@ IPython/core/prefilter.py,sha256=JHQ3feaD4bhoBDqZcEgmlDjQ2sfRXC1DNjgJhpaMU7E,257
|
|
|
44
44
|
IPython/core/profileapp.py,sha256=bFMFIyehxeF9pDUtxw_6D3b0nxeqsupKTe7XhH7GMkc,10711
|
|
45
45
|
IPython/core/profiledir.py,sha256=-vjOa1I_UajMZJblJRYXh16Y0RaAUn5a2swQBsw2qEU,8459
|
|
46
46
|
IPython/core/pylabtools.py,sha256=LfNV9xCJ3flCfJXmv1NaCRYj9jZDtHAQ5oSEHWo3Gmg,17376
|
|
47
|
-
IPython/core/release.py,sha256=
|
|
47
|
+
IPython/core/release.py,sha256=7z94vcawpWMzIDP2g10NjTyuShe_-93DKeBNi84luTY,1505
|
|
48
48
|
IPython/core/shellapp.py,sha256=oZIzj_sqIXrN3qyyhinZ1gLXvFviKYHkmS4H3wVEb74,19307
|
|
49
49
|
IPython/core/splitinput.py,sha256=bAX1puQjvYB-otJyqiqeOhWj6dooWuQeNVx2YdaKQs8,5006
|
|
50
50
|
IPython/core/tbtools.py,sha256=X4iB5zKAT2y4TK1R9l3d3kiW5htrzKn3qxalFFe2xzI,16880
|
|
@@ -58,7 +58,7 @@ IPython/core/magics/basic.py,sha256=uFkd-gTzlSVkNDSu8Rg4fbS_IK2raEhx1SYA6kWZ4hg,
|
|
|
58
58
|
IPython/core/magics/code.py,sha256=h_dho9niPvtf_IpoOZf5GAD6CYbT0EQGsfLfutyX-7I,28144
|
|
59
59
|
IPython/core/magics/config.py,sha256=QBL5uY7m-Q7C46mO3q1Yio9s73w1TnI9y__j5E-j44Y,4881
|
|
60
60
|
IPython/core/magics/display.py,sha256=STRq66GlZwcvFyBxbkqslclpP_s9LnqD0ew9Z3S4-Jo,3130
|
|
61
|
-
IPython/core/magics/execution.py,sha256=
|
|
61
|
+
IPython/core/magics/execution.py,sha256=4DAQBezVAwtKiHaCvX14cKsfzhJF2xh8IFKRkC4XrUo,62408
|
|
62
62
|
IPython/core/magics/extension.py,sha256=Jj6OlkM71PS0j1HfEMDc-jU2Exwo9Ff_K0nD7e_W4N0,2477
|
|
63
63
|
IPython/core/magics/history.py,sha256=Aw9gBzK4AJbe-gvRdMW7n-_zxxHuMyHvHJtRDuCwwug,12629
|
|
64
64
|
IPython/core/magics/logging.py,sha256=VuDiF5QZrgzTT7Lr1NkkMCtUM1EHoGCw2pYlKsSQc4Q,6867
|
|
@@ -114,7 +114,7 @@ IPython/terminal/pt_inputhooks/tk.py,sha256=FjejvtwbvpeBZLoBCci1RDo_jWD5qElMy7PP
|
|
|
114
114
|
IPython/terminal/pt_inputhooks/wx.py,sha256=9yI52lDSZ3O_5Gww_3IeenEk_3PepLIME3Onh4X3kW0,7126
|
|
115
115
|
IPython/terminal/shortcuts/__init__.py,sha256=irSX9mwHzeLDQ95fXRGdZxduRknwATtESvm2NIov7KU,18563
|
|
116
116
|
IPython/terminal/shortcuts/auto_match.py,sha256=9uT1fDb-c4Ew7TSIs_zET1jSxDlbfWGluxfW_pj39tk,3066
|
|
117
|
-
IPython/terminal/shortcuts/auto_suggest.py,sha256=
|
|
117
|
+
IPython/terminal/shortcuts/auto_suggest.py,sha256=JUAxWDDRY7sxM0Qi3dY47D62dA-aud1hRummvcigak8,23310
|
|
118
118
|
IPython/terminal/shortcuts/filters.py,sha256=MgRTQWq8YfIyWvMASuQ9BGKq5RQwiEY5trSyMnMtJAo,10998
|
|
119
119
|
IPython/testing/__init__.py,sha256=9t97XO03Ez9GdZA5FWZYmfyHZt2c3AqQe2dj_0AiPJY,784
|
|
120
120
|
IPython/testing/decorators.py,sha256=0MmtdZsh0EehAIV73V3hTCM9gr-elFr4QTRP7sJqPc8,4430
|
|
@@ -142,7 +142,7 @@ IPython/utils/_process_emscripten.py,sha256=lGLQb2IgmanNtb502KflfuKIhgOF119Ji3cw
|
|
|
142
142
|
IPython/utils/_process_posix.py,sha256=aOEtguhS3vdWngBpws1XQURO8Ozqd5gRiCk9VLky6tA,7502
|
|
143
143
|
IPython/utils/_process_win32.py,sha256=Pcf6ZiqMbqDT79edzegE_AX3D367UtE8bbhT41no54A,6775
|
|
144
144
|
IPython/utils/_process_win32_controller.py,sha256=hi2eR7mLbl3TTMCVbgps85GppxdtYbhOYK_l13WvYaM,21343
|
|
145
|
-
IPython/utils/_sysinfo.py,sha256=
|
|
145
|
+
IPython/utils/_sysinfo.py,sha256=l-OInD6lYooV5W4nYBfxrifAFYDOZgr6ed1HY4DwFvg,45
|
|
146
146
|
IPython/utils/capture.py,sha256=h5yL5Lxq8bgO1SFpoNDYjEi6mh1IW_2X9CE7vOsUxE4,5137
|
|
147
147
|
IPython/utils/coloransi.py,sha256=CML-SkzLa7oaIK1qypb3uwcfPXDeKHxZQiMJ0IWvUY0,293
|
|
148
148
|
IPython/utils/contexts.py,sha256=w5_uXc0WTU3KKV1kcCW9A0_Mz5mGRoeGWMq_P_eo-Dg,1610
|
|
@@ -174,11 +174,11 @@ IPython/utils/text.py,sha256=6s-y4KvDmnJxLs0urf5D-1auZGSnj2xmXgQ-9jVu0N8,18788
|
|
|
174
174
|
IPython/utils/timing.py,sha256=nND-ZUBkHWfYevvbRG-YfOSIFczz_epzMqWK5PH6nqA,4275
|
|
175
175
|
IPython/utils/tokenutil.py,sha256=x6KQ6ZCGOY7j5GQcr7byJRZSBFgyBcfkTiLtjxkl9f8,6552
|
|
176
176
|
IPython/utils/wildcard.py,sha256=6EEc3OEYp-IuSoidL6nwpaHg--GxnzbAJTmFiz77CNE,4612
|
|
177
|
-
ipython-9.
|
|
178
|
-
ipython-9.
|
|
179
|
-
ipython-9.
|
|
180
|
-
ipython-9.
|
|
181
|
-
ipython-9.
|
|
182
|
-
ipython-9.
|
|
183
|
-
ipython-9.
|
|
184
|
-
ipython-9.
|
|
177
|
+
ipython-9.2.0.data/data/share/man/man1/ipython.1,sha256=PVdQP2hHmHyUEwzLOPcgavnCe9jTDVrM1jKZt4cnF_Q,2058
|
|
178
|
+
ipython-9.2.0.dist-info/licenses/COPYING.rst,sha256=NBr8vXKYh7cEb-e5j8T07f867Y048G7v2bMGcPBD3xc,1639
|
|
179
|
+
ipython-9.2.0.dist-info/licenses/LICENSE,sha256=4OOQdI7UQKuJPKHxNaiKkgqvVAnbuQpbQnx1xeUSaPs,1720
|
|
180
|
+
ipython-9.2.0.dist-info/METADATA,sha256=paFeu5kWUnrVx15Knwp_-3aeBEvSc5W0M69eqt6eBe8,4431
|
|
181
|
+
ipython-9.2.0.dist-info/WHEEL,sha256=tLYR59u_EfDK9ZZOAluyGHKTZkC1zveEcC8Krv5FMDs,90
|
|
182
|
+
ipython-9.2.0.dist-info/entry_points.txt,sha256=z5BEEohWgg0SHdgdeNABf4T3fu-lr9W6F_bWOQHLdVs,83
|
|
183
|
+
ipython-9.2.0.dist-info/top_level.txt,sha256=PKjvHtNCBZ9EHTmd2mwJ1J_k3j0F6D1lTFzIcJFFPEU,8
|
|
184
|
+
ipython-9.2.0.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|