File: //usr/local/lib/python3.10/test/__pycache__/test_slice.cpython-310.opt-1.pyc
o
�i�$ � @ s� d dl Z d dlZd dlZd dlZd dlZd dlZd dlmZmZ d dl m
Z
dd� Zdd� ZG dd � d e
�ZG d
d� dej�ZedkrIe�� 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 �,/usr/local/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"