ó
    Eñi¶	  ã                   ó,   • S r SSKrSSKJr  S/rSS jrg)zb
The arraycrop module contains functions to crop values from the edges of an
n-dimensional array.
é    N)ÚIntegralÚcropc                 ó¨  ^ • [         R                  " T SS9m [        U[        5      (       a  X//T R                  -  nOÏ[        US   [        5      (       a`  [        U5      S:X  a  US   US   //T R                  -  nO�[        U5      S:X  a  U/T R                  -  nOo[        S[        U5       S35      e[        U5      S:X  a  US   /T R                  -  nO4[        U5      T R                  :X  a  UnO[        S[        U5       S35      e[        U 4S j[        U5       5       5      nU(       a  [         R                  " T U   US	S
9nU$ T U   nU$ )aÏ  Crop array `ar` by `crop_width` along each dimension.

Parameters
----------
ar : array-like of rank N
    Input array.
crop_width : {sequence, int}
    Number of values to remove from the edges of each axis.
    ``((before_1, after_1),`` ... ``(before_N, after_N))`` specifies
    unique crop widths at the start and end of each axis.
    ``((before, after),) or (before, after)`` specifies
    a fixed start and end crop for every axis.
    ``(n,)`` or ``n`` for integer ``n`` is a shortcut for
    before = after = ``n`` for all axes.
copy : bool, optional
    If `True`, ensure the returned array is a contiguous copy. Normally,
    a crop operation will return a discontiguous view of the underlying
    input array.
order : {'C', 'F', 'A', 'K'}, optional
    If ``copy==True``, control the memory layout of the copy. See
    ``np.copy``.

Returns
-------
cropped : array
    The cropped array. If ``copy=False`` (default), this is a sliced
    view of the input array.
F)Úcopyr   é   é   z"crop_width has an invalid length: zO
crop_width should be a sequence of N pairs, a single pair, or a single integerc              3   óf   >#   • U  H&  u  nu  p#[        UTR                  U   U-
  5      v •  M(     g 7f)N)ÚsliceÚshape)Ú.0ÚiÚaÚbÚars       €ÚS/home/mande/repo/quber/.venv/lib/python3.13/site-packages/skimage/util/arraycrop.pyÚ	<genexpr>Úcrop.<locals>.<genexpr>C   s/   øé € ÐOÒ>N±°±F°Q”5˜˜BŸH™H Q™K¨!™O×,Ð,Ò>Nùs   ƒ.1T)Úorderr   )	ÚnpÚarrayÚ
isinstancer   ÚndimÚlenÚ
ValueErrorÚtupleÚ	enumerate)r   Ú
crop_widthr   r   ÚcropsÚslicesÚcroppeds   `      r   r   r      sS  ø€ ô: 
�Š�"˜5Ñ	!€Bä�*œh×'Ñ'ØÐ)Ð*¨R¯W©WÑ4‰Ü	�J˜q‘M¤8×	,Ñ	,Üˆz‹?˜aÓØ  ‘m Z°¡]Ð3Ð4°r·w±wÑ>‰EÜ�‹_ Ó!Ø�L 2§7¡7Ñ*‰EäØ4´S¸³_Ð4Eð F5ð 6óð ô
 
ˆZ‹˜AÓ	Ø˜A‘� "§'¡'Ñ)‰Ü	ˆZ‹˜BŸG™GÓ	#Ø‰äØ0´°Z³Ð0Að B1ð 2ó
ð 	
ô ÔO¼iÈÔ>NÓOÓO€FÞÜ—(’(˜2˜f™:¨U¸Ñ>ˆð €Nð �V‘*ˆØ€Nó    )FÚK)Ú__doc__Únumpyr   Únumbersr   Ú__all__r   © r!   r   Ú<module>r(      s   ðñó
 Ý àˆ(€õ<r!   