
    Vfr                        d dl mZ d dlmZmZ d dlmZmZ d dlm	Z	m
Z
mZmZ d dlmZmZ d dlmZmZ erd dlmZ d
dZdd	Zy)    )annotations)TYPE_CHECKINGcast)FillTypeLineType)concat_codes_or_noneconcat_offsets_or_noneconcat_points_or_noneconcat_points_or_none_with_nan)as_fill_typeas_line_type)check_filledcheck_linesNc                   t        |      }|t        j                  t        j                  fv r| S t	        | |       t        | d         dk  r| S t        rt        t        j                  |       } t        | d         }|t        j                  k(  r>t        rt        t        j                  |       } |dgdgf}|S |gt        | d         gf}|S |t        j                  k(  r>t        rt        t        j                  |       } |dgdgf}|S |gt!        | d         gf}|S |t        j"                  k(  rPt        rt        t        j$                  |       } |
dgdgdgf}|S t!        | d         }|gt        | d         g|gf}|S |t        j&                  k(  rPt        rt        t        j(                  |       } |
dgdgdgf}|S t!        | d         }|gt!        | d         g|gf}|S t+        d|       )a  Return the specified filled contours with all chunked data moved into the first chunk.

    Filled contours that are not chunked (``FillType.OuterCode`` and ``FillType.OuterOffset``) and
    those that are but only contain a single chunk are returned unmodified. Individual polygons are
    unchanged, they are not geometrically combined.

    Args:
        filled (sequence of arrays): Filled contour data as returned by
            :func:`~contourpy.ContourGenerator.filled`.
        fill_type (FillType or str): Type of ``filled`` as enum or string equivalent.

    Return:
        Filled contours in a single chunk.

    .. versionadded:: 1.2.0
    r      N   zInvalid FillType )r   r   	OuterCodeOuterOffsetr   lenr   r   cpyFillReturn_Chunkr
   ChunkCombinedCodeFillReturn_ChunkCombinedCoder   ChunkCombinedOffsetFillReturn_ChunkCombinedOffsetr	   ChunkCombinedCodeOffset"FillReturn_ChunkCombinedCodeOffsetChunkCombinedOffsetOffset$FillReturn_ChunkCombinedOffsetOffset
ValueError)filled	fill_typepointsret1ret2ret3outer_offsetsret4s           Z/var/www/html/software/conda/envs/catlas/lib/python3.12/site-packages/contourpy/dechunk.pydechunk_filledr*      s!   " Y'IX'')=)=>>#
6!9~c**F3"6!9-FH...#::FCF>7;ftf5ED  H3F1I>?@D	h22	2#<<fEF>9=7GD  H5fQi@ABD	h66	6#@@&IF>=AFTFTF;SD  36!9=MH3F1I>?-QD	h88	8#BBFKF>?Cftftf=UD  36!9=MH5fQi@AM?SD,YK899    c                   t        |      }|t        j                  t        j                  fv r| S t	        | |       t        | d         dk  r| S t        rt        t        j                  |       } |t        j                  k(  rLt        rt        t        j                  |       } t        | d         }|dgdgf}|S |gt        | d         gf}|S |t        j                  k(  rLt        rt        t        j                  |       } t        | d         }|dgdgf}|S |gt!        | d         gf}|S |t        j"                  k(  r4t        rt        t        j$                  |       } t'        | d         }|gf}|S t)        d|       )a  Return the specified contour lines with all chunked data moved into the first chunk.

    Contour lines that are not chunked (``LineType.Separate`` and ``LineType.SeparateCode``) and
    those that are but only contain a single chunk are returned unmodified. Individual lines are
    unchanged, they are not geometrically combined.

    Args:
        lines (sequence of arrays): Contour line data as returned by
            :func:`~contourpy.ContourGenerator.lines`.
        line_type (LineType or str): Type of ``lines`` as enum or string equivalent.

    Return:
        Contour lines in a single chunk.

    .. versionadded:: 1.2.0
    r   r   Nr   zInvalid LineType )r   r   SeparateSeparateCoder   r   r   r   r   LineReturn_Chunkr   LineReturn_ChunkCombinedCoder
   r   r   LineReturn_ChunkCombinedOffsetr	   ChunkCombinedNanLineReturn_ChunkCombinedNanr   r    )lines	line_typer#   r$   r%   r&   s         r)   dechunk_linesr6   W   s   " Y'IX&&(=(=>>y!
58}qS))51H...995AE&uQx0>7;ftf5ED  H3E!H=>?D	h22	2;;UCE&uQx0>9=7GD  H5eAh?@AD	h//	/88%@E/a928,YK899r+   )r!   cpy.FillReturnr"   zFillType | strreturnr7   )r4   cpy.LineReturnr5   zLineType | strr8   r9   )
__future__r   typingr   r   contourpy._contourpyr   r   contourpy.arrayr   r	   r
   r   contourpy.enum_utilr   r   contourpy.typecheckr   r   
_contourpyr   r*   r6    r+   r)   <module>rB      s2    " & 3  ; 9&C:L7:r+   