File: //usr/lib/python3/dist-packages/future/tests/__pycache__/base.cpython-310.pyc
o
,�]�M � @ s� d dl mZmZ d dlZd dlZd dlZd dlZd dlZd dlZd dl Z d dl
mZ d dlm
Z
mZmZmZmZ d dlmZmZmZ erHd dlZdd� Zdd � ZG d
d� de�ZG dd
� d
e�ZG dd� de�ZG dd� dej�Ze�ed�Zdd� Z dd� Z!dd� Z"dd� Z#e$ejd�s�ejj%ej_&d$dd�Z'e$ejd�s�e
ejde'� G dd� de(�Z)G d d!� d!e)�Z*d$d"d#�Z+e$ejd#�s�e
ejd#e+� dS dS )%� )�print_function�absolute_importN)�dedent)�bind_method�PY26�PY3�PY2�PY27)�check_output�STDOUT�CalledProcessErrorc C s | � d�r| dd� } t| �S )z,
Removes any leading
and dedents.
�
� N)�
startswithr )�code� r �3/usr/lib/python3/dist-packages/future/tests/base.py�
reformat_code s
r c s^ | � d�� dd� t� �D �}dd� t� �D �}dd� t� �D �}| �� | ks*J d��dd� }d d
� }||�||�ks>J d��t� fdd�|D ��}tt||��}t� fd
d�|D ��}tt||��} t� fdd�|D ��}
tt||
��}g }tt� ��D ]-}
|
|v r�|�||
� q||
|v r�|�| |
� q||
|v r�|�||
� q||�� |
� q|d� |�S )a
Returns the code block with any ``__future__`` import lines sorted, and
then any ``future`` import lines sorted, then any ``builtins`` import lines
sorted.
This only sorts the lines within the expected blocks.
See test_order_future_lines() for an example.
r
c S � g | ]\}}|� d �r|�qS )�from __future__ import �r ��.0�i�liner r r �
<listcomp>* �
�z&order_future_lines.<locals>.<listcomp>c S s( g | ]\}}|� d �s|� d�r|�qS )zfrom futurez from pastr r r r r r - s
�
�c S r )z
from builtinsr r r r r r 1 r zIinternal usage error: dedent the code before calling order_future_lines()c S s t | �dkr
t| �S dS )Nr )�len�max��numbersr r r �mymax7 s z!order_future_lines.<locals>.mymaxc S s t | �dkr
t| �S td�S )Nr �inf)r �min�floatr r r r �mymin: s z!order_future_lines.<locals>.myminz2the __future__ and future imports are out of orderc � g | ]}� | �qS r r �r r ��linesr r r C � c r&