§
    £”j3  ã                   ó�   — d Z dZddlmZ ddlmZmZmZmZ ddl	m
Z
 ddlmZ  G d„ de¦  «        Zd	„ Zed
k    r e¦   «          dS dS )z3.3.0zThis file is a
é    )Úcolors)ÚRectÚDrawingÚGroupÚString)ÚLabel)ÚWidgetc                   ó>   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d	S )
ÚEventCalendarc                 óô   — d| _         d| _        d| _        d| _        d | _        d| _        g | _        d | _        d | _        d | _	        d| _
        g | _        d | _        d | _        d| _        g | _        g | _        d S )Nr   i,  é–   é   )ÚxÚyÚwidthÚheightÚtimeColWidthÚtrackRowHeightÚdataÚ
trackNamesÚ	startTimeÚendTimeÚdayÚ_talksVisibleÚ
_startTimeÚ_endTimeÚ_trackCountÚ
_colWidthsÚ_colLeftEdges)Úselfs    úr/var/www/finuniver-perm.ru/html/portfolio/venv/lib/python3.11/site-packages/reportlab/graphics/widgets/eventcal.pyÚ__init__zEventCalendar.__init__   s†   € ØˆŒØˆŒØˆŒ
ØˆŒØ ˆÔØ ˆÔØˆŒ	ØˆŒàˆŒØˆŒØˆŒð  ˆÔØˆŒØˆŒØˆÔØˆŒØˆÔÐÐó    c                 ó¦  — |                       | j        ¦  «        | _        t          |                      ¦   «         ¦  «        | _        |                      ¦   «          | j        g| _        | j	        €f| j
        d| j        z   z  }|gd| j        z   z  | _        t          | j        ¦  «        D ]*}| j                             | j        d         |z   ¦  «         Œ+dS | j	        g| _        | j
        | j	        z
  | j        z  }t          | j        ¦  «        D ]D}| j                             |¦  «         | j                             | j        d         |z   ¦  «         ŒEdS )z4Called at start of draw.  Sets various column widthsNé   éÿÿÿÿ)ÚgetRelevantTalksr   r   ÚlenÚgetAllTracksr   ÚcomputeStartAndEndTimesr   r   r   r   r   ÚrangeÚappend)r    ÚwÚis      r!   ÚcomputeSizezEventCalendar.computeSize*   sa  € à!×2Ò2°4´9Ñ=Ô=ˆÔÝ˜t×0Ò0Ñ2Ô2Ñ3Ô3ˆÔØ×$Ò$Ñ&Ô&Ð&Ø"œf˜XˆÔØÔÐ$Ø”
˜a $Ô"2Ñ2Ñ3ˆAØ ˜c Q¨Ô(8Ñ%8Ñ9ˆDŒOÝ˜4Ô+Ñ,Ô,ð Fð F�ØÔ"×)Ò)¨$Ô*<¸RÔ*@À1Ñ*DÑEÔEÐEÐEðFð Fð  $Ô0Ð1ˆDŒOØ”˜dÔ/Ñ/°4Ô3CÑCˆAÝ˜4Ô+Ñ,Ô,ð Fð F�Ø”×&Ò& qÑ)Ô)Ð)ØÔ"×)Ò)¨$Ô*<¸RÔ*@À1Ñ*DÑEÔEÐEÐEðFð Fr#   c                 ó2  — | j         r| j         | _        n2| j        D ]*\  }}}}}}| j        €|| _        Œ|| j        k     r|| _        Œ+| j        r| j        | _        dS | j        D ]3\  }}}}}}| j        €||z   | _        Œ||z   | j        k    r
||z   | _        Œ4dS )z(Work out first and last times to displayN)r   r   r   r   r   )r    ÚtitleÚspeakerÚtrackIdr   ÚstartÚdurations          r!   r*   z%EventCalendar.computeStartAndEndTimes>   sÑ   € àŒ>ð 		0Ø"œnˆDŒOˆOàCGÔCUð 0ð 0Ñ?�˜ ¨#¨u°hà”?Ð*Ø&+�D”O�Oà˜tœÒ.Ð.Ø*/˜œøàŒ<ð 	9Ø œLˆDŒMˆMˆMàCGÔCUð 9ð 9Ñ?�˜ ¨#¨u°hØ”=Ð(Ø$)¨HÑ$4�D”M�Mà˜xÑ'¨$¬-Ò7Ð7Ø(-°Ñ(8˜œøð9ð 9r#   c                 óŠ   — g }| j         D ]$\  }}}}}}|�||vr|                     |¦  «         Œ%|                     ¦   «          |S )N)r   r,   Úsort)r    Útracksr1   r2   r3   r   Úhoursr5   s           r!   r)   zEventCalendar.getAllTracksX   s[   € ØˆØ?C¼yð 	+ð 	+Ñ;ˆU�G˜W c¨5°(ØÐ"Ø &Ð(Ð(Ø—M’M 'Ñ*Ô*Ð*øØ�Š‰ŒˆØˆr#   c                 óÔ   — g }|D ]b}|\  }}}}}}	|dk    s
J d¦   «         ‚|| j         k    r<| j        �||	z   | j        k    r'| j        �|| j        k    r|                     |¦  «         Œc|S )zScans for tracks actually usedr   z2trackId must be None or 1,2,3... zero not allowed!)r   r   r   r,   )
r    ÚtalkListÚusedÚtalkr1   r2   r3   r   r9   r5   s
             r!   r'   zEventCalendar.getRelevantTalksa   sŒ   € àˆØð 	&ð 	&ˆDØ>BÑ;ˆU�G˜W c¨5°(Ø˜a’<�<�<Ð!U‘<”<�<Ø�d”hŠˆØ”nÐ,°5¸8Ñ3CÈÌÒ2VÐ2VØ”lÐ*°¸¼Ò0EÐ0EØ—K’K Ñ%Ô%Ð%øØˆr#   c                 óx   — | j         | j        z
  }|| j        z
  | j        | j        z
  z  }| j        |z   ||z  z
  }|S )z+Return y-value corresponding to times given)r   r   r   r   r   )r    ÚtheTimeÚ
axisHeightÚproportionUpr   s        r!   Ú	scaleTimezEventCalendar.scaleTimem   sF   € à”[ 4Ô#6Ñ6ˆ
à  4¤?Ñ2°t´}ÀtÄÑ7VÑWˆØŒF�ZÑ :°Ñ#<Ñ=ˆØˆr#   c                 óV  — t          ¦   «         }|                      ||z   ¦  «        }|                      |¦  «        }||z
  }|€#| j        d         }	| j        | j        d         z
  }
n| j        |         }	| j        |         }
t          ¦   «         }|                     |¦  «         |                     |	d|
z  z   |d|z  z   ¦  «         d|_        |
|_        ||_	        d|_
        t          |	||
|t          j        ¬¦  «        }|                     |¦  «         |                     |¦  «         |S )z!Return shapes for a specific talkNr%   r   ç      à?Úcé   ©Ú	fillColor)r   rB   r   r   r   r   ÚsetTextÚ	setOriginÚ	boxAnchorr   ÚfontSizer   r   ÚcyanÚadd)r    r   r5   r3   ÚtextÚgÚy_bottomÚy_topÚy_heightr   r   ÚlabÚrs                r!   ÚgetTalkRectzEventCalendar.getTalkRectv   s  € å‰GŒGˆØ—>’> )¨hÑ"6Ñ7Ô7ˆØ—’˜yÑ)Ô)ˆØ˜8Ñ#ˆàˆ?àÔ" 1Ô%ˆAØ”J ¤°Ô!3Ñ3ˆEˆEð Ô" 7Ô+ˆAØ”O GÔ,ˆEå‰gŒgˆØ�Š�DÑÔÐØ�Š�a˜#˜e™)‘m X¨c°(©lÑ%:Ñ;Ô;Ð;ØˆŒØˆŒ	ØˆŒ
ØˆŒå��H˜e X½¼ÐEÑEÔEˆØ	�Šˆa‰ŒˆØ	�Šˆc‰
Œ
ˆ
ð ˆr#   c           	      óþ  — |                       ¦   «          t          ¦   «         }|                     t          | j        | j        | j        d         | j        | j        z
  t          j
        ¬¦  «        ¦  «         | j        | j        d         z   }| j        | j        z   | j        z
  }t          | j        ¦  «        D ]€}| j        |dz            }t          |||| j        t          j        ¬¦  «        }t          |d|z  z   |d|z  d¬¦  «        }|                     |¦  «         |                     |¦  «         ||z   }Œ�| j        D ]>}|\  }	}
}}}}|                      ||||	dz   |
z   ¦  «        }|                     |¦  «         Œ?|S )	Nr   rG   r%   rD   zTrack %dÚmiddle)Úalignú
)r/   r   rN   r   r   r   r   r   r   r   Úcornsilkr+   r   Úyellowr   r   rV   )r    rP   r   r   ÚtrkÚwidrU   Úsr=   r1   r2   r3   r   r4   r5   s                  r!   ÚdrawzEventCalendar.draw—   sy  € Ø×ÒÑÔÐÝ‰GŒGˆð 	
�Š�d�4”6˜4œ6 4¤?°1Ô#5°t´{ÀTÔEXÑ7XÕdjÔdsÐtÑtÔtÑuÔuÐuð ŒF�T”_ QÔ'Ñ'ˆØŒF�T”[Ñ  4Ô#6Ñ6ˆÝ˜Ô)Ñ*Ô*ð 	ð 	ˆCØ”/ # a¡%Ô(ˆCÝ�Q˜˜3 Ô 3½v¼}ÐMÑMÔMˆAÝ�q˜3˜s™7‘{ A z°CÑ'7¸xÐHÑHÔHˆAØ�EŠE�!‰HŒHˆHØ�EŠE�!‰HŒHˆHØ�C‘ˆAˆAàÔ&ð 	ð 	ˆDØ>BÑ;ˆU�G˜W c¨5°(Ø× Ò  ¨°'¸5À4¹<È'Ñ;QÑRÔRˆAØ�EŠE�!‰HŒHˆHˆHð ˆr#   N)Ú__name__Ú
__module__Ú__qualname__r"   r/   r*   r)   r'   rB   rV   r`   © r#   r!   r   r      s�   € € € € € ð ð  ð  ð2Fð Fð Fð(9ð 9ð 9ð4ð ð ð
ð 
ð 
ðð ð ðð ð ðBð ð ð ð r#   r   c                  óL  — t          dd¦  «        } t          ¦   «         }d|_        d|_        g d¢|_        d|_        |                      |¦  «         dD ]O}|                      |¦  «        }t          d|z  d	¦  «         	                    |¦  «         t          d
|z  ¦  «         ŒPdS )z3Make a conference event for day 1 of UP Python 2003i�  éÈ   é2   é   )B)z1Keynote: Why design another programming language?zGuido van RossumNr%   ç      "@ç      ð?)zSiena Web Service ArchitecturezMarc-Andre Lemburgr%   r%   ç      %@ç      ø?)zExtreme Programming in PythonzChris Withersé   r%   rk   rl   )zPattern Experiences in C++zMark Radfordé   r%   rk   rl   )z"What is the Type of std::toupper()zGabriel Dos Reisé   r%   rk   rl   )z6Linguistic Variables: Clear Thinking with Fuzzy Logic zWalter Banksé   r%   rk   rl   )ú0lunch, short presentations, vendor presentationsÚ Nr%   ç      (@ç       @)zCORBA? Isn't that obsoletezDuncan Grisbyr%   r%   ç      ,@rl   )zPython Design PatternsúDuncan Boothrm   r%   ru   rl   )z*Inside Security Checks and Safe ExceptionsúBrandon Brayrn   r%   ru   rl   )zStudying at a DistanceúCPanel Discussion, Panel to include Alan Lenton & Francis Glassborowro   r%   ru   rl   )zRCoding Standards - Given the ANSI C Standard why do I still need a coding StandardúRandy Marquesrp   r%   ru   rl   )zRESTful PythonzHamish Lawsonr%   r%   ç      0@rl   )z(Parsing made easier - a radical old ideazAndrew Koenigrm   r%   rz   rl   )zC++ & MultimethodszJulian Smithrn   r%   rz   rl   )zC++ ThreadingzKevlin Henneyro   r%   rz   rl   )zThe Organisation Strikes BackzAlan Griffiths & Sarah Leesrp   r%   rz   rl   )úBirds of a Feather meetingrr   Nr%   ç     €1@rt   )zKeynote: In the Spirit of CzGreg ColvinNrm   ri   rj   )z6The Infinite Filing Cabinet - object storage in PythonzJacob Hallenr%   rm   rk   rl   )z>Introduction to Python and Jython for C++ and Java ProgrammerszAlex Martellirm   rm   rk   rl   )z#Template metaprogramming in HaskellzSimon Peyton Jonesrn   rm   rk   rl   )zQPlenty People Programming: C++ Programming in a Group, Workshop with a differencezNico Josuttisro   rm   rk   rl   )z4Design and Implementation of the Boost Graph LibraryzJeremy Siekrp   rm   rk   rl   )rq   rr   Nrm   rs   rt   )z5Building GUI Applications with PythonCard and PyCrustz	Andy Toddr%   rm   ru   rl   )zIntegrating Python, C and C++rv   rm   rm   ru   rl   )z!Secrets and Pitfalls of Templatesz$Nicolai Josuttis & David Vandevoordern   rm   ru   rl   )zBeing a Mentorrx   ro   rm   ru   rl   )zThe Embedded C Extensions to CzWillem Wakkerrp   rm   ru   rl   )zLightning Talksz
Paul Brianr%   rm   rz   rl   )z'Scripting Java Applications with JythonzAnthony Edenrm   rm   rz   rl   )z5Metaprogramming and the Boost Metaprogramming LibraryúDavid Abrahamsrn   rm   rz   rl   )z6A Common Vendor ABI for C++ -- GCC's why, what and notz!Nathan Sidwell & Gabriel Dos Reisro   rm   rz   rl   )zThe Timing and Cost of ChoiceszHubert Matthewsrp   rm   rz   rl   )r{   rr   Nrm   r|   rt   )z.Keynote: The Cost of C &amp; C++ CompatibilityzAndy KoenigNrn   ri   rj   )z4Prying Eyes: Generic Observer Implementations in C++úAndrei Alexandrescur%   rm   rk   rl   )z.The Roadmap to Generative Programming With C++zUlrich Eiseneckerrm   rm   rk   rl   )z=Design Patterns in C++ and C# for the Common Language Runtimerw   rn   rm   rk   rl   )z@Extreme Hour (XH): (workshop) - Jutta Eckstein and Nico JosuttiszJutta Ecsteinro   rm   rk   rl   )z.The Lambda Library : Unnamed Functions for C++zJaako Jarvirp   rm   rk   rl   )rq   rr   Nrn   rs   rt   )zReflective MetaprogrammingzDaveed Vandevoorder%   rn   ru   rl   )z7Advanced Template Issues and Solutions (double session)zHerb Sutterrm   rn   ru   rn   )z/Concurrent Programming in Java (double session)zAngelika Langerrn   rn   ru   rn   )z)What can MISRA-C (2nd Edition) do for us?zChris Hillsro   rn   ru   rl   )z(C++ Metaprogramming Concepts and ResultszWalter E Brownrp   rn   ru   rl   )z3Binding C++ to Python with the Boost Python Libraryr}   r%   rn   rz   rl   )zHUsing Aspect Oriented Programming for Enterprise Application IntegrationzArno Schmidmeierro   rn   rz   rl   )zDefective C++zMarc Paternorp   rn   rz   rl   )z.Speakers' Banquet & Birds of a Feather meetingrr   Nrn   r|   rt   )z=Keynote: The Internet, Software and Computers - A Report CardzAlan LentonNro   ri   rj   )zEMulti-Platform Software Development; Lessons from the Boost librarieszBeman Dawesr%   rp   rk   rl   )zThe Stability of the C++ ABIzSteve Clamagerm   rp   rk   rl   )zJGeneric Build Support - A Pragmatic Approach to the Software Build Processry   rn   rp   rk   rl   )z0How to Handle Project Managers: a survival guidez	Barb Byroro   rp   rk   rl   )zlunch, ACCU AGMrr   Nrp   rs   rt   )zESauce: An OO recursive descent parser; its design and implementation.z
Jon Jaggerr%   rp   ru   rl   )zKGNIRTS ESAC REWOL -  Bringing the UNIX filters to the C++ iostream library.zJC van Winkelrm   rp   ru   rl   )z Pattern Writing: Live and DirectzFrank Buschmann & Kevlin Henneyrn   rp   ru   g      @)z5The Future of Programming Languages - A Goldfish BowlzFrancis Glassborow and friendsrn   rp   ru   rl   )zSHoney, I Shrunk the Threads: Compile-time checked multithreaded transactions in C++r~   r%   rp   rz   rl   )z#Fun and Functionality with FunctorszLois Goldthwaiterm   rp   rz   rl   )zAgile Enough?zAlan Griffithsro   rp   rz   rl   )z+Conference Closure: A brief plenary sessionrr   Nrp   r|   rD   r%   )Úpdfzeventcal.%sÚwbzsaved eventcal.%sN)r   r   r   r   r   r   rN   ÚasStringÚopenÚwriteÚprint)ÚdÚcalÚformatÚouts       r!   Útestr‰   ´   s¿   € õ 	��CÑÔ€Aå
‰/Œ/€CØ€C„EØ€C„Eð`
ð `
ð `
€C„HðF €C„Gà‡E‚Eˆ#�J„J€Jð ð ,ð ,ˆØ�jŠj˜Ñ Ô ˆÝˆ]˜VÑ# TÑ*Ô*×0Ò0°Ñ5Ô5Ð5ÝÐ! FÑ*Ñ+Ô+Ð+Ð+ð,ð ,r#   Ú__main__N)Ú__version__Ú__doc__Úreportlab.libr   Úreportlab.graphics.shapesr   r   r   r   Ú$reportlab.graphics.charts.textlabelsr   Úreportlab.graphics.widgetbaser	   r   r‰   ra   rd   r#   r!   ú<module>r‘      sÙ   ðð €ð	€ð !Ð  Ð  Ð  Ð  Ð  Ø BÐ BÐ BÐ BÐ BÐ BÐ BÐ BÐ BÐ BÐ BÐ BØ 6Ð 6Ð 6Ð 6Ð 6Ð 6Ø 0Ð 0Ð 0Ð 0Ð 0Ð 0ð_ð _ð _ð _ð _�Fñ _ô _ð _ðHt,ð t,ð t,ðl ˆZÒÐØ€D�F„F€F€F€Fð Ðr#   