Format: application/x-python-code
1 o
2
3 ��h�m � @ sh d Z ddlZddlZddlZddlZddlZddlZddlmZ ddl m
4 Z
5 mZ ddlm
6 Z
7 ddlmZ ddlmZmZmZ ddlmZ dd lmZmZmZ dd
8 lmZmZ ddlmZ ddlm Z dd
9 l!m"Z" ddl#m$Z$ ddl%m&Z& ddl'm(Z( ddl)m*Z* G dd� de+�Z,e�-d�Z.e�-dej/�Z0dd� Z1dd� Z2dd� Z3G dd� de4�Z5eG dd� de��Z6dS ) z3Implementation of code management magic functions.
10 � N)�chain)�Request�urlopen)� urlencode)�Path)�TryNext�StdinNotImplementedError�
11 UsageError)�Macro)�Magics�magics_class�
12 line_magic)� find_file�find_source_lines)�version)�skip_doctest)�
13 preserve_keys)�get_py_filename)�warn)�error)�
14 get_text_listc @ � e Zd ZdS )�MacroToEditN��__name__�
15 __module__�__qualname__� r r �Nc:\Users\shubh\Videos\agent\nova\Lib\site-packages\IPython/core/magics/code.pyr - � r z!<ipython\-input\-(\d+)-[a-z\d]+>$z3
16 (?P<start>\d+)?
17 ((?P<sep>[\-:])
18 (?P<end>\d+)?)?
19 $c c s� � | � � D ]X}t�|�}|sq|�d�}|�d�}|�d�}|dkr5|r*t|�d nd}|r2t|�nd}n#|dkrN|rAt|�d nd}|rKt|�d nd}n
20 t|�}t|�d }||fV qdS )z�Turn a string of range for %%load into 2-tuples of (start, stop)
21 ready to use as a slice of the content split by lines.
22
23 Examples
24 --------
25 list(extract_input_ranges("5-10 2"))
26 [(4, 10), (1, 2)]
27 �sep�start�end�-� N�:)�split�range_re�match�group�int)Z
28 ranges_strZ range_strZrmatchr r! r"