WL i*fddlmZddlmZddlmZmZddlZddl m Z m Z ddl m ZddlmZmZddlmZmZddlmZmZerddl mZ dd Z dd Z dd Z dd Z dd Z ddZ ddZ ddZ! d dZ" d!dZ# d"dZ$ d#dZ% d$dZ& d%dZ' d&dZ(y)') annotations)pairwise) TYPE_CHECKINGcastN)FillTypeLineType) as_fill_type as_line_type) check_filled check_lines)MOVETO offset_dtypec|tjk(r|S|tjk(r+|d|dDcgc]}tj|c}fSt |ddkDr1tj |d}tj|d}nd}d}|tjk(r|g|gfS|tjk(r|g|dgfStj|gfS|tjk(r&|dntj|d}|g|g|gf}|S|tjk(rC| dgdgdgf}|Stj|}tj|d}|g|g|gf}|Std|cc}w)NrInvalid FillType )r OuterCode OuterOffsetarroffsets_from_codeslen concat_points concat_codesChunkCombinedCodeChunkCombinedOffsetChunkCombinedCodeOffsetoffsets_from_lengthsChunkCombinedOffsetOffset outer_offsets_from_list_of_codes ValueError)filled fill_type_tocodespoints outer_offsetsret1ret2offsetss W/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/contourpy/convert.py_convert_filled_from_OuterCoder)sx))) -- -q vayQeC2259QRR 6!9~""6!9-  +x1115'"" 55 55=4TUUc6L6LU6STUU 99 9 &C4L4LVTUY4W 9?5'M?7[ ;; ; =?Cftftf=UD  ,,U3G@@KMHwi-9D ,\N;<<5RsFc |tjk(r,|dDcgc]}tj|}}|d|fS|tjk(r|St |ddkDr1tj |d}tj|d}nd}d}|tjk(r|g|dgfStj|gfS|tjk(r|g|gfS|tjk(rC| dgdgdgf}|Stj|}tj|d}|g|g|gf}|S|tjk(r.| dgdgdgf}|Stj|d}|g|g|gf}|Std|cc}w)Nrrr)rrrcodes_from_offsetsrrrconcat_offsetsrrrrr"outer_offsets_from_list_of_offsetsr) r r!r'separate_codesr#r%r"r$r&s r( _convert_filled_from_OuterOffsetr/6sx)))IOPQSg#009SSq >** -- -  6!9~""6!9-$$VAY/x1117?4XYY8N8Nw8WXYY 55 57)$$ 99 9 ?=AFTFTF;SD  **73E44VAY?MHug 7D ;; ; >?Cftftf=UD  BB6!9MMHwi-9D ,\N;<#>v}#UU#"<"#>v}#UU!$!;!;E=!Q P^$_uS%;%;E%B$__  ` !122 33 328)VAY1G 55 5$*1I/  %}t#2H2H2OO/ /4:1I{3K 99 9 ;; ;68 <>$'$4 : E=}$$T*#**40 (444007 "Ta)bb"**W]*CA*Fq*I)b/;!= $$W-#**=9 : 1I}&9:  ,\N;<r?rrrr7rrrrr)r r!rCr.r#r'r$r"rDser9r%rGr&s r(._convert_filled_from_ChunkCombinedOffsetOffsetrOsx))).16l S *FG]! "...(44499'6J ' 6 3#>#>v}#UU#"<"#>vw}G]#^^ _ !122 33 324 .16l W *FG]~""4( "...(444""3#D#DWf#UV W39)[1I 55 5q 6!9%% 99 9 <>.16l C *FG]~""4(#**40 "...(444""3#D#DWf#UV#**7=+AB C9?q ;Pc7d ;; ; ,\N;<>r;c|tjk(r|S|tjk(r&|Dcgc]}tj|}}||fS|tj k(rR|sdgdgf}|Stj |}tj|}tj||}|g|gf}|S|tjk(r8|sdgdgf}|Stj |gtj|gf}|S|tjk(r!|sdgf} | Stj|gf} | Std|cc}w)NInvalid LineType ) rSeparate SeparateCodercodes_from_pointsrrrr8rChunkCombinedNanconcat_points_with_nanr) lines line_type_toliner.r%r#r'r"r&rIs r(_convert_lines_from_Separaterd;sex((( .. .BGH$#//5HH~&& 33 37;ftf5ED  &&u-F..u5G55gvFEHug&D 55 59=7GD &&u-.1I1I%1P0QRD 22 26:VID //679D ,\N;<<1IsEc<|tjk(r|dS|tjk(r|S|tjk(rA|dsdgdgf}|St j |dgt j |dgf}|S|tjk(rA|dsdgdgf}|St j |dgt j|dgf}|S|tjk(r'|dsdgf}|St j|dgf}|Std|Nrrr[) rr\r]rrrrrrr_r`r)rarbr%r&rIs r( _convert_lines_from_SeparateCoderg]sFx(((Qx .. . 33 3Qx7;ftf5ED &&uQx01C4D4DU1X4N3OPD 55 5Qx9=7GD &&uQx01C4L4LUSTX4V3WXD 22 2Qx6:VID //a9: Gc0|tjtjfvrsg}t|D]+\}}| tr|J|t j ||z }-|tjk(r|S|Dcgc]}t j|}}||fS|tjk(r\g}t|D]H\}}||jdtr|J|jt j||J|d|fS|tjk(r|S|tjk(rXg}t|D]H\}}||jdtr|J|jt j||J|fStd|cc}wNrr[)rr\r]r6rrr>r^rr7r8rr_rjr) rarbrkr#r'rcr.r9rms r('_convert_lines_from_ChunkCombinedOffsetrqs))8+@+@AA"E{ OOFG! "...#"="=fg"NN  O 8,, ,! !FTUdc33D9UNU"N3 3 33 324 "E{ WOFG~""4( "...""3#D#DWf#UV  Wa+&& 55 5 22 224 "E{ NOFG~!!$' "...!!#";";FG"LM  N},\N;<<3Vs4Fc|tjtjfvrbg}|dD]}||tj|z }|tjk(r|S|Dcgc]}tj |}}||fS|tj k(rg}g}|dD]u}|#|jd|jd(tj|\}}|j||jtj||w||fS|tjk(rqg}g}|dD]a}|#|jd|jd(tj|\}}|j||j|c||fS|tjk(r|Std|cc}wrp) rr\r]rsplit_points_at_nanr^rr7 remove_nanr8rr_r) rarbrkr#r. chunk_pointsr9r'rFs r($_convert_lines_from_ChunkCombinedNanrvs))8+@+@AAAh BF!#"9"9&"AA B 8,, ,! !JXYc33F;YNY"N3 3 33 346 24 Ah WF~##D)""4("%.."8##F+""3#D#DWf#UV Wk** 55 5 68 Ah .F~##D)$$T*"%.."8##F+$$W- .m,, 22 2 ,\N;<<;Zs#Gct|}t|}t|||tjk(r,trt t j|}t||S|tjk(r,trt t j|}t||S|tjk(r,trt t j|}t||S|tjk(r,trt t j |}t#||S|tj$k(r,trt t j&|}t)||St+d|)aaConvert contour lines from one :class:`~.LineType` to another. Args: lines (sequence of arrays): Contour lines to convert, such as those returned by :meth:`.ContourGenerator.lines`. line_type_from (LineType or str): :class:`~.LineType` to convert from as enum or string equivalent. line_type_to (LineType or str): :class:`~.LineType` to convert to as enum or string equivalent. Return: Converted contour lines. When converting non-chunked line types (``LineType.Separate`` or ``LineType.SeparateCode``) to chunked ones (``LineType.ChunkCombinedCode``, ``LineType.ChunkCombinedOffset`` or ``LineType.ChunkCombinedNan``), all lines are placed in the first chunk. When converting in the other direction, all chunk information is discarded. .. versionadded:: 1.2.0 r[)r r rr\rrrQLineReturn_Separaterdr]LineReturn_SeparateCodergrLineReturn_ChunkCombinedCodernrLineReturn_ChunkCombinedOffsetrqr_LineReturn_ChunkCombinedNanrvr)raline_type_fromrbs r( convert_linesr~s&2".1N -L~&*** 00%8E+E<@@ 800 0 44e>r;cnt|}t|}|Dcgc]}t|||c}Scc}w)a Convert multiple sets of filled contours from one :class:`~.FillType` to another. Args: multi_filled (nested sequence of arrays): Filled contour polygons to convert, such as those returned by :meth:`.ContourGenerator.multi_filled`. fill_type_from (FillType or str): :class:`~.FillType` to convert from as enum or string equivalent. fill_type_to (FillType or str): :class:`~.FillType` to convert to as enum or string equivalent. Return: Converted sets filled contour polygons. When converting non-chunked fill types (``FillType.OuterCode`` or ``FillType.OuterOffset``) to chunked ones, all polygons are placed in the first chunk. When converting in the other direction, all chunk information is discarded. Converting a fill type that is not aware of the relationship between outer boundaries and contained holes (``FillType.ChunkCombinedCode`` or ``FillType.ChunkCombinedOffset``) to one that is will raise a ``ValueError``. .. versionadded:: 1.3.0 )r rY) multi_filledrXr!r s r(convert_multi_filledr1s54".1N -LO[ \VN6>< @ \\ \2cnt|}t|}|Dcgc]}t|||c}Scc}w)aConvert multiple sets of contour lines from one :class:`~.LineType` to another. Args: multi_lines (nested sequence of arrays): Contour lines to convert, such as those returned by :meth:`.ContourGenerator.multi_lines`. line_type_from (LineType or str): :class:`~.LineType` to convert from as enum or string equivalent. line_type_to (LineType or str): :class:`~.LineType` to convert to as enum or string equivalent. Return: Converted set of contour lines. When converting non-chunked line types (``LineType.Separate`` or ``LineType.SeparateCode``) to chunked ones (``LineType.ChunkCombinedCode``, ``LineType.ChunkCombinedOffset`` or ``LineType.ChunkCombinedNan``), all lines are placed in the first chunk. When converting in the other direction, all chunk information is discarded. .. versionadded:: 1.3.0 )r r~) multi_linesr}rbras r(convert_multi_linesrQs52".1N -LLW X5M% > XX Xr)r zcpy.FillReturn_OuterCoder!rreturncpy.FillReturn)r zcpy.FillReturn_OuterOffsetr!rrr)r z cpy.FillReturn_ChunkCombinedCoder!rrr)r z"cpy.FillReturn_ChunkCombinedOffsetr!rrr)r z&cpy.FillReturn_ChunkCombinedCodeOffsetr!rrr)r z(cpy.FillReturn_ChunkCombinedOffsetOffsetr!rrr)r rrXFillType | strr!rrr)razcpy.LineReturn_Separaterbrrcpy.LineReturn)razcpy.LineReturn_SeparateCoderbrrr)raz cpy.LineReturn_ChunkCombinedCoderbrrr)raz"cpy.LineReturn_ChunkCombinedOffsetrbrrr)razcpy.LineReturn_ChunkCombinedNanrbrrr)rarr}LineType | strrbrrr)rlist[cpy.FillReturn]rXrr!rrr)rlist[cpy.LineReturn]r}rrbrrr)) __future__r itertoolsrtypingrrnumpyr@contourpy._contourpyrrcontourpy.arrayrArcontourpy.enum_utilr r contourpy.typecheckr r contourpy.typesr r _contourpyrQr)r/r4r:rJrOrYrdrgrnrqrvr~rrr;r(rs@"&3:90&!= $!=!=!=H%= &%=%=%=P ] , ] ] ]_ .___*9= 29=9=9=x@= 4@=@=@=F8? 8?"8?"8? 8?v= "===D= &===>&= +&=&=&=R'= -'='='=T)= *)=)=)=X3? 3?"3?"3? 3?l]&]"]"] ]@Y%Y"Y"Y Yr;