;ò
¸0sDc           @   sÀ   d  Z  d Z d k l Z d k Td k Td k l Z l Z l	 Z	 l
 Z
 l Z l Z l Z l Z d k l Z d k l Z d k l Z d e f d	 „  ƒ  YZ d
 „  Z e d j o e ƒ  n d S(   s   This file is a
s7    $Id: eventcal.py 2385 2004-06-17 15:26:05Z rgbecker $ (   s   colors(   s   *(   s   Lines   Rects   Polygons   Drawings   Groups   Strings   Circles   Wedge(   s   Label(   s   Widget(   s	   renderPDFs   EventCalendarc           B   sP   t  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z	 RS(	   Nc         C   s   d |  _ d |  _ d |  _ d |  _ t |  _ d |  _ g  |  _ t |  _	 t |  _
 t |  _ d |  _ g  |  _ t |  _ t |  _ d |  _ g  |  _ g  |  _ d  S(   Ni    i,  i–   i   (   s   selfs   xs   ys   widths   heights   Nones   timeColWidths   trackRowHeights   datas
   trackNamess	   startTimes   endTimes   days   _talksVisibles
   _startTimes   _endTimes   _trackCounts
   _colWidthss   _colLeftEdges(   s   self(    (    s   ./eventcal.pys   __init__   s"    																c         C   s&  |  i |  i ƒ |  _ t |  i ƒ  ƒ |  _ |  i ƒ  |  i g |  _	 |  i
 t j od |  i d |  i } | g d |  i |  _ x¡ t |  i ƒ D]! } |  i	 i |  i	 d | ƒ qŽ Wnl |  i
 g |  _ |  i |  i
 |  i } xB t |  i ƒ D]1 } |  i i | ƒ |  i	 i |  i	 d | ƒ qí Wd S(   s4   Called at start of draw.  Sets various column widthsi   iÿÿÿÿN(   s   selfs   getRelevantTalkss   datas   _talksVisibles   lens   getAllTrackss   _trackCounts   computeStartAndEndTimess   xs   _colLeftEdgess   timeColWidths   Nones   widths   ws
   _colWidthss   ranges   is   append(   s   selfs   is   w(    (    s   ./eventcal.pys   computeSize.   s"     
 # c         C   s  |  i o |  i |  _ na x] |  i D]R \ } } } } } } |  i t
 j o | |  _ q$ | |  i j  o | |  _ q$ q$ W|  i o |  i |  _ nm xi |  i D]^ \ } } } } } } |  i t
 j o | | |  _ qž | | |  i j o | | |  _ qž qž Wd S(   s(   Work out first and last times to displayN(   s   selfs	   startTimes
   _startTimes   _talksVisibles   titles   speakers   trackIds   days   starts   durations   Nones   endTimes   _endTime(   s   selfs   titles   trackIds   starts   speakers   durations   day(    (    s   ./eventcal.pys   computeStartAndEndTimesB   s"     

 

 c         C   sm   g  } xR |  i D]G \ } } } } } } | t	 j	 o" | | j o | i
 | ƒ qW q q W| i ƒ  | Sd  S(   N(   s   trackss   selfs   datas   titles   speakers   trackIds   days   hourss   durations   Nones   appends   sort(   s   selfs   titles   trackIds   hourss   trackss   speakers   durations   day(    (    s   ./eventcal.pys   getAllTracks\   s    
 
c   
      C   s·   g  } x¦ | D]ž }	 |	 \ } } } } } } | d j p
 t	 d ‚ | |  i j oY |  i t j p | | |  i j o |  i t j p | |  i j o | i |	 ƒ q« q q W| Sd S(   s   Scans for tracks actually usedi    s2   trackId must be None or 1,2,3... zero not allowed!N(   s   useds   talkLists   talks   titles   speakers   trackIds   days   hourss   durations   AssertionErrors   selfs	   startTimes   Nones   endTimes   append(
   s   selfs   talkLists   useds   titles   trackIds   hourss   speakers   durations   days   talk(    (    s   ./eventcal.pys   getRelevantTalkse   s      Dc         C   sH   |  i |  i } | |  i |  i |  i } |  i | | | } | Sd S(   s+   Return y-value corresponding to times givenN(	   s   selfs   heights   trackRowHeights
   axisHeights   theTimes
   _startTimes   _endTimes   proportionUps   y(   s   selfs   theTimes
   axisHeights   ys   proportionUp(    (    s   ./eventcal.pys	   scaleTimeq   s
     c         C   s  t  ƒ  } |  i | | ƒ }
 |  i | ƒ } | |
 } | t
 j o% |  i d } |  i |  i d } n |  i | } |  i | } t ƒ  } | i | ƒ | i | d | |
 d | ƒ d | _ | | _ | | _ d | _ t | |
 | | d t i ƒ}	 | i |	 ƒ | i | ƒ | Sd S(   s!   Return shapes for a specific talki   i    f0.5s   ci   s	   fillColorN(   s   Groups   gs   selfs	   scaleTimes	   startTimes   durations   y_bottoms   y_tops   y_heights   trackIds   Nones   _colLeftEdgess   xs   widths
   _colWidthss   Labels   labs   setTexts   texts	   setOrigins	   boxAnchors   heights   fontSizes   Rects   colorss   cyans   rs   add(   s   selfs	   startTimes   durations   trackIds   texts   gs   labs   y_tops   widths   rs   y_bottoms   xs   y_height(    (    s   ./eventcal.pys   getTalkRectz   s*     	
	 				c         C   so  |  i ƒ  t ƒ  } | i t |  i |  i |  i d |  i	 |  i
 d t i ƒƒ |  i |  i d } |  i |  i	 |  i
 } x‘ t |  i ƒ D]€ } |  i | d } t | | | |  i
 d t i ƒ} t | d | | d | d d ƒ} | i | ƒ | i | ƒ | | } qŠ WxV |  i D]K }
 |
 \ } }	 } } } } |  i | | | | d |	 ƒ } | i | ƒ qW| Sd  S(	   Ni    s	   fillColori   f0.5s   Track %ds   aligns   middles   
(   s   selfs   computeSizes   Groups   gs   adds   Rects   xs   ys
   _colWidthss   heights   trackRowHeights   colorss   cornsilks   ranges   _trackCounts   trks   wids   yellows   rs   Strings   ss   _talksVisibles   talks   titles   speakers   trackIds   days   starts   durations   getTalkRect(   s   selfs   trks   wids   gs   titles   ss   durations   starts   rs   speakers   talks   trackIds   ys   xs   day(    (    s   ./eventcal.pys   draw›   s&    
	< !$
  (
   s   __name__s
   __module__s   __init__s   computeSizes   computeStartAndEndTimess   getAllTrackss   getRelevantTalkss	   scaleTimes   getTalkRects   draw(    (    (    s   ./eventcal.pys   EventCalendar   s   									!c       G   C   sý  t  d d ƒ }  t ƒ  } d | _ d | _ d d t d d d	 f d
 d d d d d f d d d d d d f d d d d d d f d d d d d d f d d d d d d f d d t d d d f d d d d d  d f d! d" d d d  d f d# d$ d d d  d f d% d& d d d  d f d' d( d d d  d f d) d* d d d+ d f d, d- d d d+ d f d. d/ d d d+ d f d0 d1 d d d+ d f d2 d3 d d d+ d f d4 d t d d5 d f d6 d7 t d d d	 f d8 d9 d d d d f d: d; d d d d f d< d= d d d d f d> d? d d d d f d@ dA d d d d f d d t d d d f dB dC d d d  d f dD d" d d d  d f dE dF d d d  d f dG d& d d d  d f dH dI d d d  d f dJ dK d d d+ d f dL dM d d d+ d f dN dO d d d+ d f dP dQ d d d+ d f dR dS d d d+ d f d4 d t d d5 d f dT dU t d d d	 f dV dW d d d d f dX dY d d d d f dZ d$ d d d d f d[ d\ d d d d f d] d^ d d d d f d d t d d d f d_ d` d d d  d f da db d d d  d f dc dd d d d  d f de df d d d  d f dg dh d d d  d f di dO d d d+ d f dj dk d d d+ d f dl dm d d d+ d f dn d t d d5 d f do dp t d d d	 f dq dr d d d d f ds dt d d d d f du d( d d d d f dv dw d d d d f dx d t d d d f dy dz d d d  d f d{ d| d d d  d f d} d~ d d d  d f d€ d d d d  d f d‚ dW d d d+ d f dƒ d„ d d d+ d f d… d† d d d+ d f d‡ d t d d5 dˆ f gB | _ d | _ |  i	 | ƒ xC d‰ g D]8 } |  i | ƒ } t dŠ | d‹ ƒ i | ƒ dŒ | GHq½Wd S(Ž   s3   Make a conference event for day 1 of UP Python 2003i  iÈ   i2   i   s1   Keynote: Why design another programming language?s   Guido van Rossumi   f9.0f1.0s   Siena Web Service Architectures   Marc-Andre Lemburgf10.5f1.5s   Extreme Programming in Pythons   Chris Withersi   s   Pattern Experiences in C++s   Mark Radfordi   s"   What is the Type of std::toupper()s   Gabriel Dos Reisi   s6   Linguistic Variables: Clear Thinking with Fuzzy Logic s   Walter Banksi   s0   lunch, short presentations, vendor presentationss    f12.0f2.0s   CORBA? Isn't that obsoletes   Duncan Grisbyf14.0s   Python Design Patternss   Duncan Booths*   Inside Security Checks and Safe Exceptionss   Brandon Brays   Studying at a DistancesC   Panel Discussion, Panel to include Alan Lenton & Francis GlassborowsR   Coding Standards - Given the ANSI C Standard why do I still need a coding Standards   Randy Marquess   RESTful Pythons   Hamish Lawsonf16.0s(   Parsing made easier - a radical old ideas   Andrew Koenigs   C++ & Multimethodss   Julian Smiths   C++ Threadings   Kevlin Henneys   The Organisation Strikes Backs   Alan Griffiths & Sarah Leess   Birds of a Feather meetingf17.5s   Keynote: In the Spirit of Cs   Greg Colvins6   The Infinite Filing Cabinet - object storage in Pythons   Jacob Hallens>   Introduction to Python and Jython for C++ and Java Programmerss   Alex Martellis#   Template metaprogramming in Haskells   Simon Peyton JonessQ   Plenty People Programming: C++ Programming in a Group, Workshop with a differences   Nico Josuttiss4   Design and Implementation of the Boost Graph Librarys   Jeremy Sieks5   Building GUI Applications with PythonCard and PyCrusts	   Andy Todds   Integrating Python, C and C++s!   Secrets and Pitfalls of Templatess$   Nicolai Josuttis & David Vandevoordes   Being a Mentors   The Embedded C Extensions to Cs   Willem Wakkers   Lightning Talkss
   Paul Brians'   Scripting Java Applications with Jythons   Anthony Edens5   Metaprogramming and the Boost Metaprogramming Librarys   David Abrahamss6   A Common Vendor ABI for C++ -- GCC's why, what and nots!   Nathan Sidwell & Gabriel Dos Reiss   The Timing and Cost of Choicess   Hubert Matthewss.   Keynote: The Cost of C &amp; C++ Compatibilitys   Andy Koenigs4   Prying Eyes: Generic Observer Implementations in C++s   Andrei Alexandrescus.   The Roadmap to Generative Programming With C++s   Ulrich Eiseneckers=   Design Patterns in C++ and C# for the Common Language Runtimes@   Extreme Hour (XH): (workshop) - Jutta Eckstein and Nico Josuttiss   Jutta Ecsteins.   The Lambda Library : Unnamed Functions for C++s   Jaako Jarvis   Reflective Metaprogrammings   Daveed Vandevoordes7   Advanced Template Issues and Solutions (double session)s   Herb Sutters/   Concurrent Programming in Java (double session)s   Angelika Langers)   What can MISRA-C (2nd Edition) do for us?s   Chris Hillss(   C++ Metaprogramming Concepts and Resultss   Walter E Browns3   Binding C++ to Python with the Boost Python LibrarysH   Using Aspect Oriented Programming for Enterprise Application Integrations   Arno Schmidmeiers   Defective C++s   Marc Paternos.   Speakers' Banquet & Birds of a Feather meetings=   Keynote: The Internet, Software and Computers - A Report Cards   Alan LentonsE   Multi-Platform Software Development; Lessons from the Boost librariess   Beman Dawess   The Stability of the C++ ABIs   Steve ClamagesJ   Generic Build Support - A Pragmatic Approach to the Software Build Processs0   How to Handle Project Managers: a survival guides	   Barb Byros   lunch, ACCU AGMsE   Sauce: An OO recursive descent parser; its design and implementation.s
   Jon JaggersK   GNIRTS ESAC REWOL -  Bringing the UNIX filters to the C++ iostream library.s   JC van Winkels    Pattern Writing: Live and Directs   Frank Buschmann & Kevlin Henneyf3.0s5   The Future of Programming Languages - A Goldfish Bowls   Francis Glassborow and friendssS   Honey, I Shrunk the Threads: Compile-time checked multithreaded transactions in C++s#   Fun and Functionality with Functorss   Lois Goldthwaites   Agile Enough?s   Alan Griffithss+   Conference Closure: A brief plenary sessionf0.5s   pdfs   eventcal.%ss   wbs   saved eventcal.%sN(   s   Drawings   ds   EventCalendars   cals   xs   ys   Nones   datas   days   adds   formats   asStrings   outs   opens   write(   s   ds   formats   cals   out(    (    s   ./eventcal.pys   test¸   s$     			ÿ ÿ ÿ ÿ ÿ xc	
 s   __main__N(   s   __doc__s   __version__s   reportlab.libs   colorss   reportlab.lib.validatorss   reportlab.lib.attrmaps   reportlab.graphics.shapess   Lines   Rects   Polygons   Drawings   Groups   Strings   Circles   Wedges$   reportlab.graphics.charts.textlabelss   Labels   reportlab.graphics.widgetbases   Widgets   reportlab.graphicss	   renderPDFs   EventCalendars   tests   __name__(   s   Wedges   Widgets   Groups   Polygons   EventCalendars   Labels   colorss	   renderPDFs   Circles   tests   Lines   __version__s   Drawings   Rects   String(    (    s   ./eventcal.pys   ?   s   7¤	v