Ë
    lŸKju  ã                   ód   — d dl mZ d dlmZ d dlmZ dedefd„Z ed¬«       G d	„ d
«      «       Z	y)é    )ÚSequence)ÚAny)ÚfrozenÚsÚreturnc                 óÊ   — | j                   €dn| j                   }|dk(  ry| j                  | j                  }}|dkD  r|€d}|€y||€y|dk  |dk  k7  ry|dkD  r||k\  S ||k  S )zûReturn :obj:`True` if the slice provably selects zero elements for *any* sequence.

    Only slices that are empty regardless of the sequence they're applied to are
    reported; length-dependent slices (e.g. ``5:-5``) are conservatively allowed.
    é   r   F)ÚstepÚstartÚstop)r   r
   r   r   s       úk/Users/ahmed/devFolder/Ultron/claude-voice/.venv/lib/python3.12/site-packages/cyclopts/validators/_slice.pyÚ_selects_nothingr      s…   € ð —‘‰1 A§F¡F€DØˆq‚yàà—'‘'˜1Ÿ6™6ˆ4€EØˆa‚xØˆ=ØˆEØˆ<ààˆ=˜D˜Làð 	‰	t˜a‘xÒ Øà  1šHˆ5D‰=Ð7¨%°4©-Ð7ó    T)Úkw_onlyc                   ó2   — e Zd ZU dZdZeed<   	 dedefd„Zy)ÚSliceu#  Assertions on properties of a :class:`slice`.

    Example Usage:

    .. code-block:: python

        from cyclopts import App, Parameter, validators
        from typing import Annotated

        app = App()


        @app.default
        def main(time: Annotated[slice, Parameter(validator=validators.Slice(allow_empty=False))]):
            print(f"Selecting {time}.")


        app()

    .. code-block:: console

        $ my-script 0:3
        Selecting slice(0, 3, None).

        $ my-script 3:1
        â•­â”€ Error â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â•®
        â”‚ Invalid value "3:1" for "TIME". Slice must select a non-empty â”‚
        â”‚ range.                                                         â”‚
        â•°â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â•¯
    TÚallow_emptyÚtype_Úvaluec                 óÚ   — t        |t        «      r't        |t        «      rt        ‚|D ]  } | ||«       Œ y t        |t        «      sy | j
                  st        |«      rt        d«      ‚y y )Nz$Slice must select a non-empty range.)Ú
isinstancer   ÚstrÚ	TypeErrorÚslicer   r   Ú
ValueError)Úselfr   r   Úvs       r   Ú__call__zSlice.__call__J   sc   € ÜeœXÔ&Ü˜%¤Ô%ÜÛÙU˜A•ñ ô ˜e¤UÔ+Øà×#Ò#Ô(8¸Ô(?Ü Ð!GÓHÐHð )@Ð#r   N)	Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   ÚboolÚ__annotations__r   r   © r   r   r   r   &   s,   … ñð> €KÓØ`ðI˜cð I¨#ô Ir   r   N)
Úcollections.abcr   Útypingr   Úcyclopts.utilsr   r   r#   r   r   r%   r   r   Ú<module>r)      sB   ðÝ $Ý å !ð8˜ð 8 $ó 8ñ> Ô÷.Ið .Ió ñ.Ir   