shell bypass 403
o
ab� � @ s� d dl Z d dlZd dlZd dlZd dlZd dlmZmZ d dlm Z dd� Z
dd� ZG dd � d e�Z
G d
d� dej�ZedkrEe�� dS dS )
� N)�loads�dumps)�supportc C s t | d�r
t�| �S td��)z�
Helper function to convert a slice argument to an integer, and raise
TypeError with a suitable message on failure.
� __index__zBslice indices must be integers or None or have an __index__ method)�hasattr�operator�index� TypeError)�arg� r �8/usr/local/python-3.10/lib/python3.10/test/test_slice.py�evaluate_slice_index
s
�r
c C s� t �|�}| jdu rdnt| j�}|dk rtd��|dkr!td��|dk r'dnd}|dk r1|d n|}| jdu rA|dk r>|n|}nt| j�}|dk rQt|| |�nt||�}| jdu rd|dk ra|n|}nt| j�}|dk rtt|| |�nt||�}|||fS )zA
Reference implementation for the slice.indices method.
N� r zlength should not be negativezslice step cannot be zero���) r r �stepr
�
ValueError�start�max�min�stop)�slice�lengthr �lower�upperr r r r r �
slice_indices s"