
    =gip                        S r SrSSKJr  SSKJrJrJrJrJ	r	J
r
JrJrJrJr  SSK7  SSKJr  SSKJrJrJr  SSKJrJrJrJrJrJr  SS	KJr  SS
KJ r J!r!J"r"J#r#  SSK$J%r%  SSK&J'r'J(r(J)r)  SSK*J+r+  SSK,J-r-  SSK.J/r/   " S S\5      r0 " S S\+5      r1 " S S\15      r2 " S S\25      r3S r4 " S S5      r5 " S S\35      r6 " S S\35      r7S  r8 " S! S"\35      r9S# r:S$ r;S% r<S& r=g')(z3.3.0z;This modules defines a very preliminary Line Chart example.    )colors)
isNumberisNumberOrNoneisColorOrNoneisListOfStringsOrNone	isBooleanNoneOrisListOfNumbersOrNoneisStringOrNoneOneOf
Percentage)*)flatten)TypedPropertyCollection
PropHolder
tpcGetItem)LineRectGroupDrawingPolygonPolyLine)NoEntry)XCategoryAxis
YValueAxisYCategoryAxis
XValueAxis)Label)uSymbol2SymbolisSymbol
makeMarker)PlotArea)_objStr   )FillPairedDatac                       \ rS rSr\" \" \SS9\" \SS9\" \SS9\" \SS9\" \	" \
5      SSS	9\" S
SSS	9\" S
SSS	9\" \SS9\" \	" \" SSS5      5      SSS	9\" \SSS	9\" \SSS	9S9rSrg
)LineChartProperties   zWidth of a line.desczColor of a line or border.zfill color of a bar.zDash array of a line.zWidget placed at data points.r$   r*   advancedUsageNzShader Class.zFiller Class.zName of the line.line
joinedLinebarzWhat kind of plot this line isz2Percentage of available width to be used for a barzIf true flood fill to x axis)strokeWidthstrokeColor	fillColorstrokeDashArraysymbolshaderfillername	lineStylebarWidthinFill )__name__
__module____qualname____firstlineno__AttrMapAttrMapValuer   r   r
   r	   r    r   r   r   r   _attrMap__static_attributes__r;       [/var/www/html/hfs/venv/lib/python3.13/site-packages/reportlab/graphics/charts/linecharts.pyr'   r'      s    "82DE"=7ST 5KL&'<CZ[fX.5TcdedqIdqIN1DE f\%(H!IPp  @A  B4hwxyi.L[\]
HrD   r'   c                   $    \ rS rSrS rSS jrSrg)AbstractLineChart'   c                 >   U R                   nU[        U5      -  nXg   nUR                  n	X5S-  -   n
[        USS 5      nUS:X  aJ  [        US[        USS 5      5      n[        US[        USS 5      5      n[	        X#XEXSU[        USU	5      S9	nOrU R
                  (       d  US	:X  aY  [        US[        USS 5      5      n[        US[        USS 5      5      n[        X*X$-   XSS
9nU(       a  Xl        U(       a  Xl        OS n[        US5      (       a  UR                  nO [        US5      (       a  UR                  nOS nU(       a  [        XUS-  -   X5      nU(       a5  U(       a.  [        5       nUR                  U5        UR                  U5        U$ U=(       d    U$ )Ng       @r8   r/   r3   r0   r   r2   )r0   r1   strokeLineCapr3   r2   r.   )r1   rJ   r4   )lineslenr1   getattrr   joinedLinesr   r0   r3   hasattrr4   r   r   add)selfrowNoxywidthheight	baseStylestyleIdxstylecoloryh2r8   dashr0   LSgs                    rE   makeSwatchSample"AbstractLineChart.makeSwatchSample)   s   JJ	3y>)#!!r	kE+d3	e5"3WYGXY]5^_D wumTX7YZKQ+^_pt  @G  HM  NY  Z_  @`  aAL!85"3WYGXY]5^_D wumTX7YZKQ173qIAKM&A5(##AY))  AA.U2X:c8aAEE!HEE!HHvArD   Nc                 H    [        [        U R                  U   SU5      5      $ )zreturn series name i or defaultr7   )r#   rM   rK   )rQ   idefaults      rE   getSeriesNameAbstractLineChart.getSeriesNameL   s    wtzz!}VG<==rD   r;   N)r<   r=   r>   r?   r`   re   rC   r;   rD   rE   rG   rG   '   s    !F>rD   rG   c                       \ rS rSrSrg)	LineChartP   r;   N)r<   r=   r>   r?   rC   r;   rD   rE   ri   ri   P   s    rD   ri   c                   R   \ rS rSrSrSr\" S/0 S\_S\" \	SSS9_S	\" \	S
SS9_S\" SSS9_S\" SSS9_S\" SSS9_S\" \	SS9_S\" \	SS9_S\" SSS9_S\" SSS9_S\" SSS9_S\" \
SS9_S\" SS S9_S!\" \S"SS9_S#\" \S$SS9_S%\" SS&SS9_6rS' rS( rS) rS* rS+ rS, rS- rS.rg)0HorizontalLineChartV   aQ  Line chart with multiple lines.

A line chart is assumed to have one category and one value axis.
Despite its generic name this particular line chart class has
a vertical value axis and a horizontal category one. It may
evolve into individual horizontal and vertical variants (like
with the existing bar charts).

Available attributes are:

    x: x-position of lower-left chart origin
    y: y-position of lower-left chart origin
    width: chart width
    height: chart height

    useAbsolute: disables auto-scaling of chart elements (?)
    lineLabelNudge: distance of data labels to data points
    lineLabels: labels associated with data values
    lineLabelFormat: format string or callback function
    groupSpacing: space between categories

    joinedLines: enables drawing of lines

    strokeColor: color of chart lines (?)
    fillColor: color for chart background (?)
    lines: style list, used cyclically for data series

    valueAxis: value axis object
    categoryAxis: category axis object
    categoryNames: category names

    data: chart data, a list of data series of equal length
r   BASEuseAbsolutez$Flag to use absolute spacing values.r$   r+   lineLabelNudgez,Distance between a data point and its label.
lineLabelsNz(Handle to the list of data point labels.r)   lineLabelFormatz9Formatting string or function used for data point labels.lineLabelArrayzHexplicit array of line label values, must match size of data if present.groupSpacingz? - Likely to disappear.rN   z.Display data points joined with lines if true.rK   zHandle of the lines.	valueAxiszHandle of the value axis.categoryAxiszHandle of the category axis.categoryNameszList of category names.dataz/Data to be plotted, list of (lists of) numbers.r:   z!Whether infilling should be done.reversePlotOrderzIf true reverse plot order.annotationsz<list of callables, will be called with self, xscale, yscale.c                    [         R                  U 5        S U l        S U l        U R                  (       a  [        5       U l        [        5       U l        O[        5       U l        [        5       U l        SS/U l        SU l        [        [        5      U l        SU R                  l        ["        R$                  U R                  S   l        ["        R&                  U R                  S   l        ["        R(                  U R                  S   l        SU l        SU l        [        [.        5      U l        S U l        S U l        SU l        SU l        SU l        SU l        g )Nd   n   x      )F   rj   rj   Z   )NorthSouthEastWestr$   r      
   )ri   __init__r1   r2   _flipXYr   rv   r   ru   r   r   rx   rw   r   r'   rK   r0   r   redgreenbluero   rt   r   rq   rr   rs   rp   rN   r:   ry   rQ   s    rE   r   HorizontalLineChart.__init__   s   4    << -D'\DN -D'\DN '%'	<,-@A
!"

$*JJ

1!$*LL

1!$*KK

1! 1%8#" !
  !rD   c                     [        SS5      nSS/n[        5       nSUl        SUl        SUl        SUl        X#l        [        S	5      UR                  l	        UR                  U5        U$ )
 Shows basic use of a line chart.   r}               %   -            r         &   .      r   r   r   U      Circle)r   rl   rS   rT   rV   rU   rx   r!   rK   r4   rP   rQ   drawingrx   lcs       rE   demoHorizontalLineChart.demo   sj     #s# //
 !"	$X.BrD   c                    [        U R                  5      U l        [        [	        [        [         U R                  5      5      5      U l        U R                  (       a  SnO.U R                  nU R                  R                  S5      S   nX2-  nXl        U R                  R                  S5      =U l        nSU R                  -  U-  =U l        n[        5       n/ R                   nU R                  R                  nU R                  R                  n	U R                  n
U R"                  n[        U
5      n[%        U
5       H  u  p['        U[(        5      (       ak  UR*                  nSUs=::  a  U:  a?  O  O<X:X  a  [-        SU-  5      eX4nUR/                  [1        U5      [        U5      45        O[-        SU< SU< 35      e/ R                   n[%        U5       H9  u  nnUc  M  U" U5      u  nnU	" U5      nU" U(       a  UUU-   4OUU-   U45        M;     U" UR2                  5        M     UR2                  nU H  u  p[)        X}   U5      X}'   M     [        U5      U l        Xpl        g)	zmWorks out where they go.

Sets an attribute _positions which is a list of
lists of (x, y) matching the data.
g      ?r   r$         ?z)data row %r may not be paired with itselfz	data row z! is paired with invalid data row N)rL   rx   _seriesCountmaxlistmap
_rowLengthro   rt   rv   scale_normFactorru   _vzero_hngssetappendr   	enumerate
isinstancer%   other
ValueErrorrP   min__self___pairInFills
_positions)rQ   
normFactor	normWidth
availWidthvzerohngspairsPcscalevscalerx   flipXYnrR   rowr   tr-   colNodatumcr_   vs                          rE   calcPositions!HorizontalLineChart.calcPositions   s
     		Nd3s499#567J ))I**003A6J#/J%"nn22155e$"3"33j@@
TII""((%%yyI"4IE#~..		e:A:|()TW\)\]]AIIs1vc!fo.$Y^`e%fgg99D(~e$!%=DAquA!QtVQtVQK@	  .
 dmm! )" JJ "LE%ahu5AH "JrD   c                    U R                   nU R                  U   U   nUc  SnOY[        U5      [        L a  US:X  a   U R                  U   U   nO-XV-  nO([        US5      (       a	  U" U5      nO[        SU-  5      eU(       ax  U R                  X4   nUR                  (       d  gUS:  a  UR                  X4U R                  -   5        OUR                  X4U R                  -
  5        UR                  U5        U$ SnU$ !   Sn N= f)z*Draw a label for a given item in the list.Nvalues__call__z6Unknown formatter type %s, expected string or functionr   )rr   rx   typestrrs   rO   r   rq   visible	setOriginrp   setText)	rQ   rR   r   rS   rT   labelFmt
labelValue	labelTextlabels	            rE   _innerDrawLabel#HorizontalLineChart._innerDrawLabel  s
    ''YYu%e,
I(^s"8#% $ 3 3E :5 AI %1	Xj)) ,IUV^^__OOUN3E==&1ut':':#:;t':':#:;MM)$  E)% $Is   D Dc                 F    UR                  U R                  X#XE5      5        g)zDDraw a label for a given item in the list.
G must have an add methodN)rP   r   )rQ   GrR   r   rS   rT   s         rE   	drawLabelHorizontalLineChart.drawLabel/  s     	
d""5q34rD   c                 
   [        5       nU R                  nU R                  nU R                  (       a  UR	                  5         U R
                  n[        U5      nU R                  nU R                  nU R                  nU R                  n	U	(       dT  U R                  (       dC  [        [        U5      5       V
s/ s H  n
[        XJU-     SS5      (       d  M  U
PM      sn
(       aa  U(       a'  UR                  nUR                  nXR                   -   nO&UR                  nUR                  nXR                   -   n[        U SU5      nU R"                  nS n[%        U R                  (       a  ['        U5      OU5       GH  u  n
nX-  nUU   nUR(                  n[        USU5      n[        USU	5      n[        USS 5      n[        USS 5      n[+        US5      (       a  UR,                  nO [+        US5      (       a  UR,                  nOS nUS:X  Ga$  Ucz  U(       a:  [/        UR                  U5      n[1        UR                  UR                   -   U5      nO9[/        UR                  U5      n[1        UR                  UR                   -   U5      n[        US	[3        S
5      5      n[5        U[2        5      (       a  U R6                  U-  S-  nOUS-  nU H\  u  nnU(       a  UU:  a  WOUnUUU-
  UU-
  SU-  4n OUU:  a  WOUnUU-
  USU-  UU-
  4n UR9                  [;        U UUUS.65        M^     GO;U R<                  (       d  US:X  Ga#  [?        U5      n!U(       d  [5        U[@        5      (       a  [        USS 5      n"[5        U[@        5      (       a%  U![?        ['        UURB                     5      5      -   n#O U(       a  WW/U!-   UW/-   n#OWW/U!-   WU/-   n#U"(       a  U"RE                  U WU
UU#5        O,WR9                  [G        U#UUU:X  a  UOS U=(       d    SS95        U(       a  US:X  d  UU:w  a9  [I        U!USSS9n$U(       a  UU$l        U(       a  UU$l%        UR9                  U$5        [+        US5      (       a  URL                  n%O [+        US5      (       a  URL                  n%OS n%U%(       aT  [%        U5       HE  u  n&u  nn[O        [Q        U%U&5      UUUR(                  5      n'U'(       d  M4  UR9                  U'5        MG     [%        U5       H  u  n&u  nnU RS                  XU&UU5        M     GM     U$ s  sn
f )Nr:   F_inFillGr2   r3   r8   r0   r/   r9   2   g{Gz?r   r   )r0   r1   r2   r.   r6   皙?)r2   r1   r0   r   r$   )r1   rJ   strokeLineJoinr4   )*r   rr   r   ry   reverserK   rL   r   rv   ru   r:   r   rangerM   _x_y_lengthr   r   reversedr1   rO   r0   r   r   r   r   r   rP   r   rN   r   r%   r   fillr   r   r3   r4   r   r   r   )(rQ   r_   r   r   rK   
styleCountr   cAvA_inFillrR   infillCinfillV0infillV1inFillGr   byposr   rX   rowStyler1   r2   r:   r\   r8   r0   bynegr9   hbwrS   rT   v0r   pointsr6   fpointsr-   uSymbolr   r4   s(                                           rE   	makeLinesHorizontalLineChart.makeLines4  s   G''OO  !))+

Z
^^++t(($)#a&M LM5"5z)9#:8EJ M L %%55#jj0%%55#jj0d:a0G $43H3HHQKaPJE3)HXH"..K[AIXhw7F8%6=DT:Ix//&22..#//" %= #BEE% 0 #BEE"**$4U ; #BEE% 0 #BEE"**$4U ;"8Jz"~Fhz22**X-d2C"3,CDAq&'gU5#qtQsU2&'gU5cE"QsU1R4/EE$kk\efg   !!Y%< ZN;;$Xx>F!#n55"(78AciiL3I+J"J!'.x&86&AWXDV&VG'/&86&AXgDV&VGDyIGGicnpycyT_  @D  Q\  Qc  `c  %d  ek9.D#F{QRbcdD"+6(/3,EE$Kx**"//)),,#,S>KE%1Q+Jwu,Ea(J^J^_FvquuV} $2
 "+3v1q15 "0U QZ {Ls   9T<T<c                 L   U R                   U R                  p!U R                  (       a2  UR                  U R                  U R
                  U R                  5        O1UR                  U R                  U R
                  U R                  5        U(       a  X!l        U(       a  Xl        UR                  U R                  5        U R
                  nU R                  nU R                  (       aG  UR                  S5      nXTU R                  -   :  d  XT:  d  UnUR                  XCU R                  5        OFUR                  S5      nXSU R                  -   :  d  XS:  d  UnUR                  XCU R                  5        UR                  U R                  5        U R                  5         [        5       nUR                  U R                  5       5        U R                   (       a*  [        5       U l        UR                  U R"                  5        UR                  U5        UR                  U5        [%        USS5      n[%        USS5      nU(       d  UR'                  X`UR(                  S9  U(       d  UR'                  X`UR(                  S9  UR                  U R+                  5       5        U(       a  UR'                  X`UR(                  S9  U(       a  UR'                  X`UR(                  S9  [%        U SS5       H.  oR                  U	" XR                  UR                  5      5        M0     U$ )zDraws itself.r   drawGridLastF)parentdimrz   r;   )ru   rv   r   setPositionrS   rT   rU   rV   joinAxis	configurerx   r   r   r   rP   makeBackgroundr:   r   rM   makeGridgetGridDimsr  )
rQ   r   r   rT   rS   	crossesAtr_   cAdglvAdglas
             rE   drawHorizontalLineChart.draw  s    !2!2B<<NN4664664::6NN4664664;;7R{R{
TYYFFFF<< ITZZ/Y]NN1- IT[[0imNN1,
TYYG	d!!#$;;!GDMEE$-- 	b		b	>%0>%0bkk!BNNkCbkk!BNNkC	dnn"++a+?"++a+?mB/Aqhhrxx7P1Q/rD   )r   r   r   r   r   r   r   r   rv   rw   rx   r2   rt   r:   rN   rs   rr   rp   rq   rK   ry   r1   ro   ru   r;   )r<   r=   r>   r?   __doc__r   r@   ri   rA   r   r   r   rB   r   r   r   r   r   r  r  rC   r;   rD   rE   rl   rl   V   sb    B G 
I 
"82Xghi
%h5crst
 "$-WX
 't2mn	

 &d1{|
 $H3MN
 #82bc
 T(>?
 !,GH
 $D/MN
 %%:AZ[
 D'XY
 i.Q`ab
 (	8Udef
 #4.l{|}
H$2"h.4l D5
jX0rD   rl   c                 *    U S   * U S   U S   U S   * 4$ )zt, z0, z1, x, y = a[:5]r$      r   r   r;   )r  s    rE   _fakeItemKeyr    s%    qTE!A$qtQqTE""rD   c                   ,    \ rS rSrS rS rS rS rSrg)
_FakeGroupi  c                     / U l         g rg   _datar   s    rE   r   _FakeGroup.__init__  s	    
rD   c                 J    U(       a  U R                   R                  U5        g g rg   )r  r   )rQ   whats     rE   rP   _FakeGroup.add  s    ""4(4rD   c                     U R                   $ rg   r  r   s    rE   value_FakeGroup.value  s    zzrD   c                 >    U R                   R                  [        S9  g )N)key)r  sortr  r   s    rE   r%  _FakeGroup.sort  s    

L)rD   r  N)	r<   r=   r>   r?   r   rP   r!  r%  rC   r;   rD   rE   r  r    s    )*rD   r  c                   x    \ rS rSr\" \\" \SS9\" \SS9\" \SS9\" \SS9S9rSr	Sr
S	rS
rS rS rS rS rSrg)HorizontalLineChart3Di  zdx/dzr)   zdy/dzzdepth of an individual serieszz gap around series)rn   theta_xtheta_yzDepthzSpacer   r   r  c                 &   [         R                  U 5        U R                  nU R                  nU R                  nU R
                  R                  S:X  a  X-  US-   U-  -   nOUSU-  -   nU R                  U-  U l        U R                  U-  U l
        g )Nparallel_3dr$   r   )rl   r   r   r,  r+  rv   rY   r)  _3d_dxr*  _3d_dy)rQ   nSeriesr,  r+  	_3d_depths        rE   r   #HorizontalLineChart3D.calcPositions  s    ))$/##""M1	6'99I6)Ill9,ll9,rD   c                     U R                   nU R                  R                  S:X  a  XR                  U-   -  U-   nU$ UnU$ )Nr.  )r,  rv   rY   r+  )rQ   rR   r,  z0s       rE   _calc_z0HorizontalLineChart3D._calc_z0  sH    ""M1F*+F2B 	 B	rD   c                 F    XU R                   -  -   X#U R                  -  -   4$ rg   )r)  r*  )rQ   rS   rT   zs       rE   _zadjustHorizontalLineChart3D._zadjust  s#    4<<T\\>!111rD   c                    U R                   n[        [        [        U R                  5      5      5      nU R
                  (       a  UR                  5         U R                  nU(       a   S5       eU R                  nU R                  nU R                  nU R                  n[        5       nSSKJn	  [        U SS 5      n
U
(       d  U R                   R"                  S:w  a  Sn
U GHW  nU R                  U   n[        U5      n[        U R$                  5      nX-  nU R$                  U   nUR&                  n[        USS 5      nU R)                  U5      nUU-   n[+        U R$                  U   S5      (       a  U R$                  U   R,                  nO4[+        U R$                  S5      (       a  U R$                  R,                  nOS nU R.                  (       aB  U(       a;  US   u  nn[        SU5       H#  nUU   u  nnU	" UUUUUUUXgUS U
S S S S	S
9  UUnnM%     [+        U R$                  U   S5      (       a  U R$                  U   R0                  nO4[+        U R$                  S5      (       a  U R$                  R0                  nOS nU(       aU  [        U5       HF  nUU   u  nnU" UUU5      u  nn[3        UUUU5      nU(       d  M/  UR5                  SUUUUU45        MH     [        U5       HL  nUU   u  nnU" UUU5      u  nnU R7                  UUUU5      nU(       d  M5  UR5                  SUUUUU45        MN     GMZ     UR9                  5         [;        5       nUR=                  5        H  nUR5                  US   5        M     U$ )NzinFill not supported for 3d yetr   )_make_3d_line_info_3d_tilewidthr.  r$   r3   r0   r   )fillColorShaded	tileWidthr1   r0   r3   shadingr4   r   )rr   r   r   rL   r   ry   r   r:   r+  r:  r)  r*  r  !reportlab.graphics.charts.utils3dr=  rM   rv   rY   rK   r1   r6  rO   r0   rN   r4   r   rP   r   r%  r   r!  ) rQ   r   r   r:   r+  r:  r)  r*  Fr=  r@  rR   r   r   r   rX   r   rowColorr\   r5  z1r0   x0y0r   x1y1r   r4   r]   r_   r   s                                    rE   r  HorizontalLineChart3D.makeLines  s    ''s4??+,-  !))+<<<z ==,,,,LHD6	T..44mCQRY E//%(CCATZZJ)Hzz(+H++H8%6=Du%BfBtzz(+];;"jj2>>]33"jj44"  VFB!&q!$UB*Ar2r2r2 ' ($),0dTX(+	-
 "$RBB ", tzz(+X66**X.55X..**++"1XE ZFB%bB/FB+GBr(CFvquua2bF%;<	 & qUB!"R+B((r2>1aeeQr"R1-.	 "] h 	
GAAEE!B%LrD   )r/  r0  N)r<   r=   r>   r?   r@   rl   rA   r   rB   r)  r*  r+  r,  r   r6  r:  r  rC   r;   rD   rE   r(  r(    sd    /xg6xg6h-LMh-BC	
H GGFF
-2LrD   r(  c                       \ rS rSrSrSrg)VerticalLineChartiU  r$   r;   N)r<   r=   r>   r?   r   rC   r;   rD   rE   rM  rM  U  s    GrD   rM  c                     [        SS5      n SS/n[        5       nSUl        SUl        SUl        SUl        Xl        SUl        [        S	5      UR                  l
        S
Ul        SR                  S5      nX2R                  l        SUR                  R                  l        SUR"                  l        SUR"                  l        SUR"                  l        U R+                  U5        U $ )N  r   r   r   r   r   r      r      r   r   }   ,  r$   FilledDiamond%2.0fJan Feb Mar Apr May Jun Jul Aug r   r   <      )r   rl   rS   rT   rV   rU   rx   rN   r!   rK   r4   rr   splitrv   rw   labels	boxAnchorru   valueMinvalueMax	valueSteprP   r   rx   r   catNamess       rE   sample1rc  X  s    c3G +*D
 
	BBDBDBIBHGBN 1BHHO B066s;H$,OO!'*BOO$BLLBLLBLLKKONrD   c                   $    \ rS rSrSrS rS rSrg)SampleHorizontalLineChartiw  zHSample class overwriting one method to draw additional horizontal lines.c                     [        SS5      nSS/n[        5       nSUl        SUl        SUl        SUl        X#l        [        R                  Ul	        [        R                  " S	5      Ul        UR                  U5        U$ )
r   r   r}   r   r   r   r   r   r    )r   re  rS   rT   rV   rU   rx   r   whiter1   HexColorr2   rP   r   s       rE   r   SampleHorizontalLineChart.demoz  su     #s# //
 '(	x0BrD   c                 R   [        5       nUR                  [        R                  U 5      5        U R                  nUR
                  nU HZ  nUR                  U5      nUR                  [        U R                  X@R                  U R                  -   UU R                  S95        M\     U$ )N)r1   )r   rP   rl   r
  ru   _tickValuesr   r   rS   rU   r1   )rQ   r_   valAxisvalTickPositionsrT   s        rE   r
  (SampleHorizontalLineChart.makeBackground  s    G	!0067.."..!Aa AEE$tvvq&&"3Q%)%5%57 8 "
 rD   r;   N)r<   r=   r>   r?   r  r   r
  rC   r;   rD   rE   re  re  w  s    N0rD   re  c                  .   [        SS5      n SS/n[        5       nSUl        SUl        SUl        SUl        Xl        SUl        [        R                  Ul
        [        R                  " S	5      Ul        [        S
5      UR                  l        SUl        SR#                  S5      nX2R$                  l        SUR$                  R(                  l        SUR,                  l        SUR,                  l        SUR,                  l        U R5                  U5        U $ )NrO  r   r   rP  r   rS  rT  r$   rg  rU  rV  rW  rX  r   r   rY  rZ  )r   re  rS   rT   rV   rU   rx   rN   r   rh  r1   ri  r2   r!   rK   r4   rr   r[  rv   rw   r\  r]  ru   r^  r_  r`  rP   ra  s       rE   sample1arq    s    c3G +*D
 
#	$BBDBDBIBHGBN\\BN??8,BL 1BHHO B066s;H$,OO!'*BOO$BLLBLLBLLKKONrD   c                  "   [        SS5      n SS/n[        5       nSUl        SUl        SUl        SUl        Xl        SUl        [        S	5      UR                  l
        S
Ul        [        R                  Ul        [        R                  Ul        SR#                  S5      nX2R$                  l        SUR$                  R(                  l        SUR,                  l        SUR,                  l        SUR,                  l        U R5                  U5        U $ )NrO  r   r   rP  r   rS  rT  r$   SmileyrV  rW  rX  r   r   rY  rZ  )r   rl   rS   rT   rV   rU   rx   rN   r!   rK   r4   rr   r   blackr1   	lightbluer2   r[  rv   rw   r\  r]  ru   r^  r_  r`  rP   ra  s       rE   sample2rv    s    c3G +*D
 
	BBDBDBIBHGBN *BHHO B\\BN##BL066s;H$,OO!'*BOO$BLLBLLBLLKKONrD   c                  ~   [        SS5      n SS/n[        5       nSUl        SUl        SUl        SUl        Xl        SUl        S	Ul        [        R                  Ul        [        S
5      UR                  S   l        [        UR                  S   l        SUR                  S   l        SUR                  S   l        SR#                  S5      nX2R$                  l        SUR$                  R(                  l        SUR,                  l        SUR,                  l        SUR,                  l        U R5                  U5        U $ )NrO  r   r   rP  r   rS  rT  r$   rV  rs  r   r   r   rW  rX  r   rY  rZ  )r   rl   rS   rT   rV   rU   rx   rN   rr   r   rt  r1   r!   rK   r4   r   r0   r[  rv   rw   r\  r]  ru   r^  r_  r`  rP   ra  s       rE   sample3rx    s   c3G +*D
 
	BBDBDBIBHGBN B\\BN#H-BHHQK BHHQKBHHQKBHHQK066s;H$,OO!'*BOO$BLLBLLBLLKKONrD   c                     SSK Jn   [        SS5      n[        5       nUR	                  U5        SUl        SnU Vs/ s H  oDS-   PM	     nnU Vs/ s H  oDS-
  PM	     nnU Vs/ s H  oDS-   PM	     nnU Vs/ s H  oDS	-
  PM	     nn[        R                  n	Sn
SnS
n[        R                  nSUR                  l
        [        [        U5      [        U5      [        U5      [        U5      [        U5      5      UR                  l        [        [        U5      [        U5      [        U5      [        U5      [        U5      5      UR                  l        UR                  nS US   l        [#        [%        U5      5      nU/Ul        U " X)XXS9=US   l        nU H2  nUU   R+                  [-        UUU   UU   UU   UU   UU   S95        M4     U$ s  snf s  snf s  snf s  snf )Nr   )CandleSticksrO  r   r   r|   r   rR  r   r   r   )chartboxFillColorboxWidth
crossWidthr0   r1   )positionboxMidcrossLocrossHiboxLoboxHi)reportlab.graphics.widgetbaserz  r   rl   rP   rT   r   pinkrt  ru   avoidBoundSpacer   r^  r   r_  rK   r1   r   rL   rx   r4   setPropertiesdict)rz  dr{  r  mhilor  r  r|  r}  r~  candleStrokeWidthcandleStrokeColorrK   Icandlesrc   s                     rE   sampleCandleStickr    s   :SA!EEE%LEG!F	1B$B		1B$B	 !&QqS&E! !&QqS&E!;;LHJ&'EOO#"3v;s2ws2ws5z#e*UEOO"3v;s2ws2ws5z#e*UEOOKKEE!Hc&kAEJ ,5^f  L]  !}  }E!HOg
((qq	RTUVRW`bcd`elqrslt  |A  BC  |D  *E  FQH' 
 	!!s   GG#G7G!N)>__version__r  reportlab.libr   reportlab.lib.validatorsr   r   r   r   r   r	   r
   r   r   r   reportlab.lib.attrmapreportlab.lib.utilsr   r  r   r   r   reportlab.graphics.shapesr   r   r   r   r   r   *reportlab.graphics.widgets.signsandsymbolsr   reportlab.graphics.charts.axesr   r   r   r   $reportlab.graphics.charts.textlabelsr   "reportlab.graphics.widgets.markersr   r    r!   reportlab.graphics.charts.areasr"   !reportlab.graphics.charts.legendsr#   utilsr%   r'   rG   ri   rl   r  r  r(  rM  rc  re  rq  rv  rx  r  r;   rD   rE   <module>r     s   
 I  ] ] ] $ ' Y Y S S > _ _ 6 S S 4 5 !
* 
'> '>R	! 	z) zx#* *o/ ob+ >( 3 (TBB"HrD   