K idZddlmZddlmZmZmZmZddlm Z dZ e r ddl m Z ddl mZd Z dd Zdd Zdd Zdd ZddZeeeeegZ GddZGddeZy)z Stuff to translate curve segments to palette values (derived from the corresponding code in GIMP, written by Federico Mena Quintero. See the GIMP distribution for more information.) ) annotations)logpisinsqrt)o8F)Callable)IOg|=cn||kr|tkryd|z|z S||z }d|z }|tkrydd|z|z zS)Ng??)EPSILONmiddleposs Z/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/PIL/GimpGradientFile.pylinearr$sT f} G 9v% %Flv G sV++ +cR|tdtt|tz zS)Nr )rmaxrrs rcurvedr3s" 3s8c#fg"677 88rc\tt dz tt||zzdzdz S)Ng@r)rrrrs rsiner7s. "sb6&##666 7# = DDrc>tdt||dz dzz SNrrrrs rsphere_increasingr;s# vfc*S0Q66 77rc>dtdt||dzz z Srrrs rsphere_decreasingr!?s# cF63/1445 55rc&eZdZUdZded<dddZy) GradientFileNzblist[tuple[float, float, float, list[float], list[float], Callable[[float, float], float]]] | Nonegradientc |jJg}d}|j|\}}}}}} t|D](} | |dz z } || kr!|dz }|j|\}}}}}} || kr!||z } | tkr | dd} n| ||z | z | |z | z } tt d|d|dz | z|dzzdz}tt d|d|dz | z|dzzdz}tt d|d|dz | z|dzzdz}tt d|d|dz | z|dzzdz}|j ||z|z|z+dj |dfS) Nrrr rrRGBA)r$rangerr intappendjoin)selfentriespaletteixx0x1xmrgb0rgb1segmentixwscalergbas r getpalettezGradientFile.getpaletteVs}}((( *.--*;'BD$w *AWq[!Aq&a26--2C/BD$q&RA7{S)bA B!|<3stAwa0E9DGCDsJKLA3stAwa0E9DGCDsJKLA3stAwa0E9DGCDsJKLA3stAwa0E9DGCDsJKLA NN1q519q= )+ *.xx &((r))r.r*returnztuple[bytes, str])__name__ __module__ __qualname__r$__annotations__r?rrr#r#Gs     )rr#ceZdZdZddZy)GimpGradientFilez(File handler for GIMP's gradient format.c x|jjds d}t||j}|jdr|jj}t |}g|_t |D]}|jj}|ddDcgc] }t|}}|d|d} } |d} |dd } |d d} tt |d}t |d }|dk7r d }t||j j| | | | | |fycc}w) Ns GIMP Gradientznot a GIMP gradient filesName: rrrr' zcannot handle HSV colour space) readline startswith SyntaxErrorstripr*r$r)splitfloatSEGMENTSOSErrorr+)r-fpmsglinecountr7sr8r9r1r2r3r4r5r6cspaces r__init__zGimpGradientFile.__init__zs1{{}''(89,Cc" "{{} ??9 %;;=&&(DD  u DA ##%A#$Sb6*aq*A*qT1Q4B1BQq6DQr7Ds1R5z*G2ZF{6cl" MM "b"dD'!B C! D*s1D7N)rUz IO[bytes]rANone)rBrCrD__doc__r[rFrrrHrHws 2DrrHN)rrRrrRrArR)r] __future__rmathrrrr_binaryr TYPE_CHECKINGcollections.abcr typingr rrrrrr!rSr#rHrFrrrdsx  ### (  ,9E86 FD"35F G-)-)`"D|"Dr