| Server IP : 217.160.0.135 / Your IP : 216.73.217.85 Web Server : Apache System : Linux www 6.18.52-i1-ampere #1203 SMP Mon Sep 14 18:29:59 CEST 2026 aarch64 User : sws1074145052 ( 1074145052) PHP Version : 8.3.32 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : OFF | Pkexec : OFF Directory : /usr/lib/python3/dist-packages/IPython/core/magics/__pycache__/ |
Upload File : |
�
�@�c� � �r � d Z ddlZddlZddlmZmZmZ ddlmZ ddl m
Z
e G d� de� � � � ZdS )z=Implementation of magic functions for IPython's own logging.
� N)�Magics�magics_class�
line_magic)�warn)�Boolc �� � e Zd ZdZ edd�� � � d�� � Zedd�� � Zedd �� � Z edd
�� � Z
edd�� � Zedd�� � Zd
S )�
LoggingMagicsz(Magics related to all logging machinery.FzF
Suppress output of log state when logging is enabled
)�helpT)�config� c �d � | � |d� � \ }}d|v }d|v }d|v }d|v }| j j }|r$ |� � � \ } }
n# |} d}
Y nxY w|j } |j }
| j j }| rt j � | � � } | | j _ d} |�
| ||
|||� � |rd|_ |r| j j j
}
n| j j j }
|r�|j }| j j j }t# d t% |
� � d z
� � D ]K} ||
| � � � d
z � � ||v r |t) || � � d� � �LnE|� d
� |
d d� � � � � |� d
� � |rd
|_ | j s'|s't/ d� � |� � � dS dS dS # || j _ t3 dt5 j � � d z � � Y dS xY w)a� Start logging anywhere in a session.
%logstart [-o|-r|-t|-q] [log_name [log_mode]]
If no name is given, it defaults to a file named 'ipython_log.py' in your
current directory, in 'rotate' mode (see below).
'%logstart name' saves to file 'name' in 'backup' mode. It saves your
history up to that point and then continues logging.
%logstart takes a second optional parameter: logging mode. This can be one
of (note that the modes are given unquoted):
append
Keep logging at the end of any existing file.
backup
Rename any existing file to name~ and start name.
global
Append to a single logfile in your home directory.
over
Overwrite any existing log.
rotate
Create rotating logs: name.1~, name.2~, etc.
Options:
-o
log also IPython's output. In this mode, all commands which
generate an Out[NN] prompt are recorded to the logfile, right after
their corresponding input line. The output lines are always
prepended with a '#[Out]# ' marker, so that the log remains valid
Python code.
Since this marker is always the same, filtering only the output from
a log is very easy, using for example a simple awk call::
awk -F'#\[Out\]# ' '{if($2) {print $2}}' ipython_log.py
-r
log 'raw' input. Normally, IPython's logs contain the processed
input, so that user lines are logged in their final form, converted
into valid Python. For example, %Exit is logged as
_ip.magic("Exit"). If the -r flag is given, all input is logged
exactly as typed, with no transformations applied.
-t
put timestamps before each input line logged (these are put in
comments).
-q
suppress output of logstate message when logging is invoked
�ortq�o�r�t�q�backupz# IPython log file
F� �
�outputNTzGActivating auto-logging. Current session state plus future input saved.zCouldn't start log: %s)�
parse_options�shell�logger�split�logfname�logmode�logfile�os�path�
expanduser�logstart� timestamp�history_manager�input_hist_raw�input_hist_parsed� log_write�output_hist�range�len�rstrip�repr�join�quiet�print�logstater �sys�exc_info)�self�parameter_s�opts�par�
log_output�
log_raw_inputr"