← Back
Editing: code.cpython-311.pyc
� �@�c�m � �� � d Z ddlZddlZddlZddlZddlZddlZddlmZ ddl m Z mZ ddlm Z ddlmZ ddlmZmZmZ ddlmZ dd lmZmZmZ dd lmZmZ ddlmZ ddlm Z dd l!m"Z" ddl#m$Z$ ddl%m&Z& ddl'm(Z( ddl)m*Z* G d� de+� � Z, ej- d� � Z. ej- dej/ � � Z0d� Z1d� Z2d� Z3 G d� de4� � Z5e G d� de� � � � Z6dS )z3Implementation of code management magic functions. � N)�chain)�Request�urlopen)� urlencode)�Path)�TryNext�StdinNotImplementedError� UsageError)�Macro)�Magics�magics_class� line_magic)� find_file�find_source_lines)�version)�skip_doctest)� preserve_keys)�get_py_filename)�warn)�error)� get_text_listc � � e Zd ZdS )�MacroToEditN��__name__� __module__�__qualname__� � �:/usr/lib/python3/dist-packages/IPython/core/magics/code.pyr r - � � � � � � � � r r z!<ipython\-input\-(\d+)-[a-z\d]+>$z3 (?P<start>\d+)? ((?P<sep>[\-:]) (?P<end>\d+)?)? $c # � K � | � � � D ]�}t � |� � }|s�|� d� � }|� d� � }|� d� � }|dk r*|rt |� � dz nd}|rt |� � nd}nT|dk r-|rt |� � dz nd}|rt |� � dz nd}n!t |� � }t |� � dz }||fV � ��dS )z�Turn a string of range for %%load into 2-tuples of (start, stop) ready to use as a slice of the content split by lines. Examples -------- list(extract_input_ranges("5-10 2")) [(4, 10), (1, 2)] �sep�start�end�-� N�:)�split�range_re�match�group�int)� ranges_str� range_str�rmatchr# r$ r% s r �extract_code_rangesr1 9 s � � � � �%�%�'�'� � � ���� �*�*��� ���l�l�5�!�!�����W�%�%���l�l�5�!�!���#�:�:�&+�5�C��J�J��N�N��E�!�+�#�c�(�(�(�t�C�C� �C�Z�Z�&+�5�C��J�J��N�N��E�"%�/�#�c�(�(�Q�,�,�4�C�C��e�*�*�C���J�J��N�E��c�l�����#� r c �V � |� d� � }t j | � � }d� |j D � � }| � d� � } i }t | � � }t |� � D ]U\ }}| |dz � � � s"|dz }| |dz � � � �"|r |dz |f||<