← Back
Editing: logging.cpython-311.pyc
� �@�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"