
k4Vdc           @   s  d  Z  d Z d d l Z d d l Z d d l m Z d d l m Z m Z m	 Z	 m
 Z
 m Z m Z m Z m Z m Z m Z m Z m Z m Z m Z d d l m Z m Z d d l m Z d d l m Z m Z d d	 l m Z d d
 l m  Z  m! Z! m" Z" d d l# m$ Z$ m% Z% m& Z& m' Z' m( Z( d d l) m* Z* m+ Z+ m, Z, m- Z- d d l. m/ Z/ m0 Z0 m1 Z1 d d l2 m3 Z3 d d l4 m5 Z5 d e" f d     YZ6 d e3 f d     YZ7 d e7 f d     YZ8 d e7 f d     YZ9 d f  d     YZ: d e7 f d     YZ; d e; e8 f d     YZ< d e; e9 f d     YZ= d    Z> d!   Z? d"   Z@ d#   ZA d$   ZB d%   ZC d&   ZD d'   ZE d(   ZF d)   ZG d*   ZH d+   ZI d, d- f d. d/ f d0 d1 f d1 d0 f g ZJ d2   ZK d3   ZL d4   ZM d5   ZN d6   ZO d7   ZP d8   ZQ d9   ZR d:   ZS d;   ZT d<   ZU d=   ZV d>   ZW d?   ZX d@   ZY dA   ZZ dB   Z[ dC   Z\ d, d- f d. d/ f d0 d1 f d1 d0 f g ZJ dD   Z] dE   Z^ dF   Z_ dG   Z` dH   Za dI   Zb dJ   Zc dK   Zd dL e' f dM     YZe d S(N   s   3.3.0s   This module defines a variety of Bar Chart components.

The basic flavors are stacked and side-by-side, available in horizontal and
vertical versions. 

iN(   t   colors(   t   isNumbert   isNumberOrNonet   isColort   isColorOrNonet   isStringt   isListOfStringst
   SequenceOft	   isBooleant   isNoneOrShapet   isStringOrNonet   NoneOrt   isListOfNumbersOrNonet   EitherOrt   OneOf(   t   uSymbol2Symbolt   isSymbol(   t	   Formatter(   t   AttrMapt   AttrMapValue(   t   stringWidth(   t   Widgett   TypedPropertyCollectiont
   PropHolder(   t   Linet   Rectt   Groupt   Drawingt   NotImplementedError(   t   XCategoryAxist
   YValueAxist   YCategoryAxist
   XValueAxis(   t   BarChartLabelt   NA_Labelt   NoneOrInstanceOfNA_Label(   t   PlotArea(   t   _objStrt   BarChartPropertiesc           B   s   e  Z e d  e e d d d e e d d d e e d d d e e d d d	 e d d d
 d d d e e d d d e e	 e
  d d d d d e e d d  Z d   Z RS(   t   strokeColort   descs   Color of the bar border.t	   fillColors   Color of the bar interior area.t   strokeWidths   Width of the bar border.t   strokeDashArrays   Dash array of a line.t   symbols,   A widget to be used instead of a normal bar.t   advancedUsagei   t   names0   Text to be associated with a bar (eg seriesname)t   swatchMarkers!   None or makeMarker('Diamond') ...t   minDimens(   minimum width/height that will be drawn.c         C   s4   d  |  _ t j |  _ d |  _ d  |  _ d  |  _ d  S(   Ng      ?(   t   NoneR'   R    t   blueR)   R*   R,   R+   (   t   self(    (    sq   /var/www/html/phendo-backend/phendo_python/env/lib/python2.7/site-packages/reportlab/graphics/charts/barcharts.pyt   __init__)   s
    			N(   t   __name__t
   __module__R   R   R   R   R   R1   R   R   R   R   t   _attrMapR4   (    (    (    sq   /var/www/html/phendo-backend/phendo_python/env/lib/python2.7/site-packages/reportlab/graphics/charts/barcharts.pyR&      s   t   BarChartc        0   B   s  e  Z d  Z e d e d e e e e e e	 f  f  d d d d d e e	 d d d	 e e	 d d
 d e e	 d d d e dG d d d e dG d d d e dG d d d e dG d d d e dG d d d e dG d d d e dG d d d d d e dG d d d e e d d d d d e e d d  d d d! e dG d d" d# e e	 d d$ d% e e d& d' d(  d d) d* e dG d d+ d d d, e e d d- d. e e d d/ d d  Z d0   Z dG d1  Z d2   Z d3   Z d4   Z d5   Z d6   Z d7   Z d8   Z d9   Z d:   Z d;   Z e dG d<  Z e d=  Z d>   Z d?   Z d@   Z  dA   Z! dB   Z" dC   Z# dD   Z$ dE   Z% dF   Z& RS(H   s(   Abstract base class, unusable by itself.t   BASEt   useAbsoluteR(   sr   Flag to use absolute spacing values; use string of gsb for finer control
(g=groupSpacing,s=barSpacing,b=barWidth).R-   i   t   barWidths   The width of an individual bar.t   groupSpacings   Width between groups of bars.t
   barSpacings   Width between individual bars.t   barss   Handle of the individual bars.t	   valueAxiss   Handle of the value axis.t   categoryAxiss   Handle of the category axis.t   datas/   Data to be plotted, list of (lists of) numbers.t	   barLabelss!   Handle to the list of bar labels.t   barLabelFormats2   Formatting string or function used for bar labels.t   barLabelCallOuts`   Callout function(label)
label._callOutInfo = (self,g,rowNo,colNo,x,y,width,height,x00,y00,x0,y0)t   barLabelArraysG   explicit array of bar label values, must match size of data if present.t   reversePlotOrders,   If true, reverse common category plot order.t   naLabels   Label to use for N/A values.t   annotationss<   list of callables, will be called with self, xscale, yscale.t   categoryLabelBarSizes=   width to leave for a category label to go between categories.t   categoryLabelBarOrdert   firstt   lastt   autos,   where any label bar should appear first/lastt	   barRecordsJ   callable(bar,label=labelText,value=value,**kwds) to record bar informationt   zIndexOverridess!  None (the default ie use old z ordering scheme) or a ',' separated list of key=value (int/float) for new zIndex ordering. If used defaults are
    background=0,
    categoryAxis=1,
    valueAxis=2,
    bars=3,
    barLabels=4,
    categoryAxisGrid=5,
    valueAxisGrid=6,
    annotations=7t   categoryNALabels'   Label to use for a group of N/A values.c         C   s  |  j  } | t |  } | | } t | d t | d d    }	 t | d t | d d    }
 t | d t | d d    } t | d t | d d    } t | d t | d d    } | r t | | | d | | d |
  St | | | | d | d |	 d | d |
 S(   NR'   R)   R+   R*   R/   g       @(   R>   t   lent   getattrR1   R   R   (   R3   t   rowNot   xt   yt   widtht   heightt	   baseStylet   styleIdxt   styleR'   R)   R+   R*   R/   (    (    sq   /var/www/html/phendo-backend/phendo_python/env/lib/python2.7/site-packages/reportlab/graphics/charts/barcharts.pyt   makeSwatchSampleS   s    	
#c         C   s   t  t |  j | d |   S(   s   return series name i or defaultR.   (   R%   RR   R>   (   R3   t   it   default(    (    sq   /var/www/html/phendo-backend/phendo_python/env/lib/python2.7/site-packages/reportlab/graphics/charts/barcharts.pyt   getSeriesNamea   s    c         C   s  |  j  j d k s( t d |  j  j   |  j rL t   |  _ t   |  _ n t   |  _ t	   |  _ t
 j |   d |  _ d |  _ d d g |  _ d |  _ d |  _ d |  _ d |  _ t t  |  _ d |  j _ d |  j _ d  |  _ d  |  _ d |  j _ t t  |  _ d |  j _ t j |  j _  d  |  j _! t j" |  j d _# t j$ |  j d _# t j% |  j d _# d  |  _& |  _' d  |  _( d  S(   NR8   t
   BarChart3Ds   Abstract Class %s Instantiatedi    id   in   ix   i   iF   iP   iU   iZ   i
   i   t   ct   middlei   i   (   R8   R_   (   id   in   ix   i   (   iF   iP   iU   iZ   ()   t	   __class__R5   t   AssertionErrort   _flipXYR   R@   R    R?   R   R   R$   R4   R=   RF   RA   R:   R;   R<   R   R!   RB   t	   boxAnchort
   textAnchorR1   RC   RE   t   nudgeR&   R>   R*   R    t   blackR'   R+   t   redR)   t   greenR2   RG   RP   RO   (   R3   (    (    sq   /var/www/html/phendo-backend/phendo_python/env/lib/python2.7/site-packages/reportlab/graphics/charts/barcharts.pyR4   e   s<    (									c         C   sM   |  j  j d k r! t d   n  t d d  } |  j    } | j |  | S(   s   Shows basic use of a bar chartR8   s#   Abstract Class BarChart has no demoi   id   (   Rb   R5   R   R   t   add(   R3   t   drawingt   bc(    (    sq   /var/www/html/phendo-backend/phendo_python/env/lib/python2.7/site-packages/reportlab/graphics/charts/barcharts.pyt   demo   s    c         C   s   |  j  } |  j } | j d k r | } t t t t |    d g } | } xj | D]b } xY t t |   D]E } | | p d } | d k r | | c | 7<qp | | c | 7<qp WqW Wt |  | g | g } n  | |  _ d  S(   Nt   parallelt   parallel_3di    gư(   Ro   Rp   (	   R@   RA   RZ   t   maxt   listt   mapRQ   t   xranget   _configureData(   R3   t   cARA   t   _datat   ndatat   dR\   t   v(    (    sq   /var/www/html/phendo-backend/phendo_python/env/lib/python2.7/site-packages/reportlab/graphics/charts/barcharts.pyt   _getConfigureData   s    		"c         C   s3   |  j    |  j j |  j  |  j j |  j j f S(   s    Attempt to return the data range(   R{   R?   t	   _setRangeRu   t	   _valueMint	   _valueMax(   R3   (    (    sq   /var/www/html/phendo-backend/phendo_python/env/lib/python2.7/site-packages/reportlab/graphics/charts/barcharts.pyt
   _getMinMax   s    
c         C   st   |  j  } | j |  j |  j |  |  j   | j |  j  | j d  } | | | k sg | | k  rp | } n  | S(   s8   Position and configure value axis, return crossing valuei    (   R?   t   setPositionRT   RU   R{   t	   configureRu   t   scale(   R3   t   orgt   lengtht   vAt	   crossesAt(    (    sq   /var/www/html/phendo-backend/phendo_python/env/lib/python2.7/site-packages/reportlab/graphics/charts/barcharts.pyt
   _drawBegin   s    	
	c         C   s   |  j  } |  j } | j |  j  |  j   t   } t |  d d  } | s| j |  j	    t | d t
  } t | d t
  } | s | j | d |  d | j n  | s | j | d |  d | j n  | j |  j    | j |  | j |  | r | j | d |  d | j n  | rE| j | d |  d | j n  xt |  d d  D]% } | j | |  | j | j   qXWnrt d d d d	 d
 d d d d d d d d d d d  } x| j   j d  D]}	 |	 j   }	 |	 sqn  y |	 j d  \ }
 } WnV t d |	 | d j g  t | j    D] }
 d |
 | |
 f ^ q5 f   n X|
 | k rt d |
 | d j g  t | j    D] }
 d |
 | |
 f ^ q f   n  y. t | i   } t | t t f  st  WnY t d | |	 | d j g  t | j    D] }
 d |
 | |
 f ^ q f   n X| | |
 <qWg  | j   D] \ }
 } | |
 f ^ qf} | j   |  j   } | j j d  } xG| D]?\ } }
 |
 d k r| j |  j	    q|
 d k r| j |  q|
 d k r(| j | d |  d | j q|
 d
 k rD| j |  q|
 d k ro| j | d |  d | j q|
 d k r| j |  q|
 d k r| j |  q|
 d k rx< t |  d d  D]% } | j | |  | j | j   qWqqW|  ` | S(    s"   finalize the drawing of a barchartRO   t   drawGridLastt   parentt   dimRH   t
   backgroundi    R@   i   R?   i   R>   i   RB   i   t   categoryAxisGridi   t   valueAxisGridi   i   t   ,t   =s?   Badly formatted zIndex clause %r in %r
allowed variables are
%ss   
s   %s=%rs9   Unknown zIndex variable %r in %r
allowed variables are
%ssC   Bad zIndex value %r in clause %r of zIndex
allowed variables are
%siN(    (    (   R@   R?   R   Ru   t   calcBarPositionsR   RR   R1   Rk   t   makeBackgroundt   Falset   makeGridt   getGridDimst   makeBarsR   t   dictt   stript   splitt
   ValueErrort   joint   sortedt   keyst   evalt
   isinstancet   floatt   intRc   t   itemst   sortt   contentst   pop(   R3   Rv   R   t   gt   zIndext   cAdglt   vAdglt   at   Zt   zt   kRz   t   bt   bl(    (    sq   /var/www/html/phendo-backend/phendo_python/env/lib/python2.7/site-packages/reportlab/graphics/charts/barcharts.pyt   _drawFinish   s    		
	     &	 SRV+
 *c   3      C   s  |  j  } | r |  j } n	 |  j } |  j } | j } |  j } t |  } |  _ t t	 t
 t |    |  _ } |  j } |  j }	 |  j }
 t |  d d  } t |  d d  } | d k r | r d p d } n  | d k } | j } | d k r| |
 } | d |	 } |
 } |	 } n. | d g } | d g } |
 } d } } } | | | |  _ } |  j } | rt | t  sd	 } qd d d
 | k d d | k d d | k } n d } t | d  d  } | | } | d k r| | |  _ } } } n4| d	 k r-d } } } | j } n| d k rXd } | | | | } } n | d k rd } | | | | } } n | d k rd } } | r| | | | n d } n | d k rd } | | | | } } nV | d k rd } } | | | | } n+ | d k r;d } } | | | | } n  | |  _ | |  _ | |  _ |  j } | j } | j | j } } | d k o| k n r| d  }  n6 d | k  r| |  }  n | d k  r| |  }  n  |  |  _ t t	 t
 t |    }! |
 | }" d | | }# | | | | }$ | r| rU|# | d | }% |# | 7}# n" |# | | | | | d | }% |% | j _  n  g  |  _! |  j! j" }& |  j# }' xt$ |  D]}( g  }) |' r| d |( }* n |( }* |# |* |$ }* | |( }+ xt$ |!  D]}, |+ |, }- | d	 k r6| | |,  |* | }. n | |,  \ }/ }0 |/ |* }. |- d k rmd }1 |  }2 n | d k r|- d k r| | |,  }2 |2 |  k r|  }2 n  | |, |- | |, <| |, }- q| | |,  }2 |2 |  k  r|  }2 n  | |, |- | |, <| |, }- n |  }2 | |-  |2 }1 d |1 k  o:d k n r]d }1 |- d k  r]d }1 q]n  |) j" | r{|2 |. |1 |" f p|. |2 |" |1 f  qW|& |)  qWd S(   s   Works out where they go. default vertical.

        Sets an attribute _barPositions which is a list of
        lists of (x, y, width, height) matching the data.
        RI   i    RJ   RM   RL   RK   Ro   i   i   R   i   R   i   t   sg      ?i   i   i   g      ?g      @Rp   gưg:0yEg:0yE>N(   Ro   Rp   (&   Rd   RU   RT   R@   R   RA   RQ   t   _seriesCountRq   Rr   Rs   t
   _rowLengthR<   R=   R;   RR   RZ   t   _groupWidthR:   R   t   strR   t   _normFactort   _scalet   _normFactorBt   _normFactorGt   _normFactorSR?   R}   R~   t	   _baseLinet   labelst   labelPosFract   _barPositionst   appendRF   Rt   R1   (3   R3   t   flipXYR   Rv   t   cScaleRA   t   seriesCountt	   rowLengtht   wGR=   R;   t   clbst   clboRZ   t   wBt   wSt   bGapBt   bGapSt   accumNegt   accumPost
   groupWidthR:   t   aW0t   aWt   fBt   fGt   fSt   _cscaleR   t   vScalet   vmt   vMt   baseLinet   nCRV   t   offst   bGapt   lbpft   aBPRF   RS   t   barRowt   xValt   rowt   colNot   datumRT   R   t   _RW   RU   (    (    sq   /var/www/html/phendo-backend/phendo_python/env/lib/python2.7/site-packages/reportlab/graphics/charts/barcharts.pyR     s    					"			 	
			3

!

						
"		


	 	 	 5c         C   s   |  j  } | d k r d } n | d k r> |  j | | } ni t |  t k rh | |  j | | } n? t | d  r | |  j | |  } n d | } t |   | S(   s   return formatted label textt   valuest   __call__s6   Unknown formatter type %s, expected string or functionN(   RC   R1   RE   t   typeR   RA   t   hasattrt	   Exception(   R3   RS   R   t   labelFmtt	   labelTextt   msg(    (    sq   /var/www/html/phendo-backend/phendo_python/env/lib/python2.7/site-packages/reportlab/graphics/charts/barcharts.pyt   _getLabelText  s    		
c         C   s5  | j  } t | d d  } | d k } | r7 | } n  | }	 }
 | rP d }
 n  | d | } | d k rp d ps d | } | d k r | | d } n | d	 k r |
 d k r | |
 | } q| | } |	 }	 nK | d
 k r|
 d k r | |
 | } q| | } |	 }	 n | |
 | } |	 | _ | | |	 f S(   s   Compute x, y for a labelt	   boxTargett   normalt   antii    g      ?i   it   midt   hit   lo(   Rg   RR   t   _pmv(   R3   t   labelRT   RU   RV   RW   Rg   t   btR   t   pmt   valueR   R   (    (    sq   /var/www/html/phendo-backend/phendo_python/env/lib/python2.7/site-packages/reportlab/graphics/charts/barcharts.pyt   _labelXY  s2    	 

 	



	c   	   
   C   sQ   |  j  | |  } | rM |  j | |  j | | f | | | | | | | 	 n  d  S(   N(   R   t	   _addLabelRB   (	   R3   R   RS   R   RT   RU   RV   RW   t   text(    (    sq   /var/www/html/phendo-backend/phendo_python/env/lib/python2.7/site-packages/reportlab/graphics/charts/barcharts.pyt   _addBarLabel  s    c
         C   s   |	 d  k r |  j }	 n  |	 r |	 j r t j |	  }	 |  j j d k rN d pQ d }
 | d  k ri |
 } n  | d  k r~ |
 } n  |  j |	 j |	 | | | | | | | d | 	Sd  S(   Ni    g:0yEg:0yE>t   calcOnly(   R1   RG   R   t   copyR?   R~   R   (   R3   R   RS   R   RT   RU   RV   RW   R   t   naRz   (    (    sq   /var/www/html/phendo-backend/phendo_python/env/lib/python2.7/site-packages/reportlab/graphics/charts/barcharts.pyt   _addNABarLabel  s      	 	c         C   s  | j  rt | | j | j  } |  j } | rW |  j | | | |	 |  \ } } } n$ |  j | | | | |	  \ } } } t | d d   } | d  k	 r | j |  |  } | | } } | r | } q| } n1 | r | } | |	 d } n | | d } | } t | d d   } | d  k	 rI| j |  |  } | r@| } qI| } n  | d k  r| rqd | j	 } d } qd | j
 } d } n
 d } } |
 r| | | | f S| j | | | |  | j |  | j | j } } | r| r| j d t | | | | d | d |  n  | j |  t |  d d   } | r|  | | | | | | |	 | | | | f | _ | |  | ` qn  d  S(	   Nt   fixedEndg       @t
   fixedStarti    iR'   R*   RD   (   t   visibleR   t   fontNamet   fontSizeRd   R   RR   R1   t	   _getValuet   dxt   dyt	   setOrigint   setTextt   lineStrokeColort   lineStrokeWidtht   insertR   Rk   t   _callOutInfo(   R3   R   R   R   RS   R   RT   RU   RV   RW   R   t
   labelWidthR   t   y0t   x0R   R   Rz   t   x00t   y00R   R  R  t   sCt   sWt   alx(    (    sq   /var/www/html/phendo-backend/phendo_python/env/lib/python2.7/site-packages/reportlab/graphics/charts/barcharts.pyR     sX    		'$						
  .-
c   	      C   sb   t  | | | |  } | j | _ | j | _ | j | _ | j rQ | j | _ n  | j |  d  S(   N(   R   R*   R)   R'   R+   Rk   (	   R3   R   RT   RU   RV   RW   RS   RZ   t   r(    (    sq   /var/www/html/phendo-backend/phendo_python/env/lib/python2.7/site-packages/reportlab/graphics/charts/barcharts.pyt   _makeBar  s    	c         C   s  t  |  j  } |  j } t |  d d   } |  j } |  j } |  j } i  }	 | r g  }
 | d } xs t |  D]b } | | } xO t t  |   D]; } | | \ } } } } d  | | f k r d |	 | <q q Wqn Wn  xt |  D]} | | } t  |  } | | } | | } xft t  |   D]R} | | f | k rO| | | f pR| } | | \ } } } } d  | | f k r| s| |	 k r|  j	 | | | | | | |  q'| r'| |
 k r'|  j	 | | | | | | | t
 | 	 } | r| | | \ } } } } |  j	 | | | | | | | t
 | 	 } | d | d d } | d | d d } |  j	 | | | | | d d d | n  |
 j |  q'q'n  d  } t | d  rt j | j  } n! t |  j d  r|  j j } n  t | d d   } | rs| r<| d k  r't | j |  } qpt | j |  } qs| d k  r^t | j |  } qst | j |  } n  | r| | _ | | _ | | _ | | _ | j |  n t |  d	 k rZt |  d	 k rZ| j d  k	 s| j d  k	 rZ|  j | | | | | | |  | rZ| | j d
 d |  j | |  d |  j | | d | d | qZn  |  j | | | | | | |  q'Wq Wd  S(   NRN   i   i    g       @g-C6?R   R,   R0   gHz>iR   R   RS   R   (   RQ   RA   R>   RR   R1   R   Rd   RP   Rt   R   t   TrueR   R   R   t   deepcopyR,   t   minR0   Rq   RT   RU   RV   RW   Rk   t   absR)   R'   R  R   R   R   (   R3   R   t   lgt   lenDataR>   t   brt   BPR   t   catNALt   catNNAt   CBLt   rowNoLRS   R   R   RT   RU   RV   RW   t
   styleCountRY   t   rowStyleRZ   t   r0t   r1R,   R0   (    (    sq   /var/www/html/phendo-backend/phendo_python/env/lib/python2.7/site-packages/reportlab/graphics/charts/barcharts.pyt	   _makeBars$  s|    				




("''(				B Fc	         C   s  | j  rt | | j | j  }	 |  j }
 |
 rW |  j | | | | |  \ } } } n$ |  j | | | | |  \ } } } t | d d   } | d  k	 r | j |  |  } | | } } |
 r | } q| } n1 |
 r | } | | d } n | | d } | } t | d d   } | d  k	 rI| j |  |  } |
 r@| } qI| } n  | d k  r|
 rqd | j	 } d } qd | j
 } d } n
 d } } | j | | | |  | j |  | | j   f Sd  S(   NR   g       @R   i    i(   R   R   R  R  Rd   R   RR   R1   R  R  R  R  R  t	   getBounds(   R3   R   R   RS   R   RT   RU   RV   RW   R  R   R  R  R   R   Rz   R  R  R   R  R  (    (    sq   /var/www/html/phendo-backend/phendo_python/env/lib/python2.7/site-packages/reportlab/graphics/charts/barcharts.pyt   _computeLabelPositionn  sD    		'$						
c         C   s   |  j  |  j } } | r% | | _ n  | r7 | | _ n  |  j rn | j |  j |  j |  j  |  j |  j	  n+ | j |  j |  j |  j |  j	  |  j  | j
 |  j  |  j   d S(   sR   Information function, can be called by charts which want to with space around barsN(   R@   R?   t   joinAxisRd   R   R   RT   RV   RU   RW   R   Ru   R   (   R3   Rv   R   (    (    sq   /var/www/html/phendo-backend/phendo_python/env/lib/python2.7/site-packages/reportlab/graphics/charts/barcharts.pyt   _computeBarPositions  s      	.+c      
   C   s   |  j  } |  j   t |  j  } |  j } g  } | j } | r |  j } | |  j }	 |  j |  j	 }
 xBt
 |  D]} } xt | | D]h \ } } } } | | } | | } | t | |  t | |  t | |  | |	 t | |  f  q Wqs Wn |  j } | |  j	 }	 |  j |  j }
 x t
 |  D]} } xt | | D]h \ } } } } | | } | | } | t | |  t | |  t | |  | |	 t | |  f  q;Wq*W| j   | d g } x | D] } | d } | d | d k  r^| d | d k  r^t | d | d  t | d | d  t | d | d  t | d | d  f | d <q| j |  qW| } d } d } t |  } xt |  D]x\ } } | d } | | } | |
 k rPn  | } d } } x\ | | k  r8| | d | k r8t | | d |  } t | | d |  } | d 7} qW| | k r| | k r| } | rz| | | | | | d f p| | | | | | d f } | | k rPqqq| | k r| } | r|	 | | |	 | | d f p| |	 | | | |	 d f } | | k rPqqqW| | f S(	   sk  helper for madmen who want to put stuff inside their barcharts
        basically after _computebarPositions we slide a line of length size
        down the bar profile on either side of the bars to find the
        maximum space. If the space at any point is >= required then we're
        done. Otherwise we return the largest space location and amount.
        i    ii   i   i   i  iN(   Rd   R*  RQ   RA   R   R   RT   RV   RU   RW   Rt   R  Rq   R   R1   t	   enumerate(   R3   t   sizet   requiredR   R  R  t   Ct   aCR   R   t   endR\   RT   RU   t   wt   hRz   R   t   RR`   R  t   maxSt   maxPR   t   cit   v0t   v1t   jt   alot   ahi(    (    sq   /var/www/html/phendo-backend/phendo_python/env/lib/python2.7/site-packages/reportlab/graphics/charts/barcharts.pyt   _computeMaxSpace  sr    	
			

M	

J

(]

 
#@ 
@ c         C   sd  |  j  |  j } } | r% | | _ n  | r7 | | _ n  |  j rn | j |  j |  j |  j  |  j |  j	  n+ | j |  j |  j |  j |  j	  |  j  | j
 |  j  |  j   t |  j  } |  j } g  j } |  j } x}t |  D]o} | | } g  j }	 xFt t |   D]2}
 | |
 \ } } } } d | | f k r|  j } | r| j rt j |  } |  j j d k rd pd } | d k r| } n  | d k r| } n  |	 |  j | j | | |
 | | | |   qH|	 d  q|  j | |
  } | r>|	 |  j | |  j | |
 f | |
 | | | |   q|	 d  qW| |	 j  q W| j S(   sL   Information function, can be called by charts which want to mess with labelsi    g:0yEg:0yE>N(   R@   R?   R)  Rd   R   R   RT   RV   RU   RW   R   Ru   R   RQ   RA   R>   R   R   Rt   R1   RG   R   R   R~   R(  R   RB   t   __self__(   R3   Rv   R   R  R>   R3  R  RS   R   R.  R   RT   RU   RV   RW   R   Rz   R   (    (    sq   /var/www/html/phendo-backend/phendo_python/env/lib/python2.7/site-packages/reportlab/graphics/charts/barcharts.pyt   _computeSimpleBarLabelPositions  sH      	.+
			
		 	 	.8c         C   s3   t    } t    } |  j | |  | j |  | S(   N(   R   R&  Rk   (   R3   R   R  (    (    sq   /var/www/html/phendo-backend/phendo_python/env/lib/python2.7/site-packages/reportlab/graphics/charts/barcharts.pyR     s
    		c         C   s   |  j  j } |  j } t |  } t t t t |    } | d k rg | d |  j | |  j } n	 |  j } | |  j	 | S(   s:   for dynamically computing the desired category axis lengthRo   i   (
   R@   RZ   RA   RQ   Rq   Rr   Rs   R=   R;   R<   (   R3   RZ   RA   t   nt   mR   (    (    sq   /var/www/html/phendo-backend/phendo_python/env/lib/python2.7/site-packages/reportlab/graphics/charts/barcharts.pyt   _desiredCategoryAxisLength  s    		c         C   s   |  j  |  j } } | r% | | _ n  | r7 | | _ n  |  j rn | j |  j |  j |  j  |  j |  j	  n+ | j |  j |  j |  j |  j	  |  j  |  j
   S(   N(   R@   R?   R)  Rd   R   R   RT   RV   RU   RW   R   (   R3   Rv   R   (    (    sq   /var/www/html/phendo-backend/phendo_python/env/lib/python2.7/site-packages/reportlab/graphics/charts/barcharts.pyt   draw!  s      	.+N('   R5   R6   t   __doc__R   R$   R   R   R   R   R   R1   R#   R   R
   R7   R[   R^   R4   Rn   R{   R   R   R   R   R   R   R   R   R   R   R  R&  R(  R*  R<  R>  R   RA  RB  (    (    (    sq   /var/www/html/phendo-backend/phendo_python/env/lib/python2.7/site-packages/reportlab/graphics/charts/barcharts.pyR8   1   s\   0				<						I					4			J	,		@	(		t   VerticalBarChartc           B   s   e  Z d  Z d Z RS(   s3   Vertical bar chart with multiple side-by-side bars.i    (   R5   R6   RC  Rd   (    (    (    sq   /var/www/html/phendo-backend/phendo_python/env/lib/python2.7/site-packages/reportlab/graphics/charts/barcharts.pyRD  +  s   t   HorizontalBarChartc           B   s   e  Z d  Z d Z RS(   s5   Horizontal bar chart with multiple side-by-side bars.i   (   R5   R6   RC  Rd   (    (    (    sq   /var/www/html/phendo-backend/phendo_python/env/lib/python2.7/site-packages/reportlab/graphics/charts/barcharts.pyRE  /  s   t
   _FakeGroupc           B   s/   e  Z d d   Z d   Z d   Z d   Z RS(   c         C   s   g  |  _  t j |  |  _ d  S(   N(   Rw   t	   functoolst
   cmp_to_keyt   _key(   R3   t   cmp(    (    sq   /var/www/html/phendo-backend/phendo_python/env/lib/python2.7/site-packages/reportlab/graphics/charts/barcharts.pyR4   4  s    	c         C   s   |  j  j |  d  S(   N(   Rw   R   (   R3   t   what(    (    sq   /var/www/html/phendo-backend/phendo_python/env/lib/python2.7/site-packages/reportlab/graphics/charts/barcharts.pyRk   8  s    c         C   s   |  j  S(   N(   Rw   (   R3   (    (    sq   /var/www/html/phendo-backend/phendo_python/env/lib/python2.7/site-packages/reportlab/graphics/charts/barcharts.pyR   ;  s    c         C   s   |  j  j d |  j  d  S(   Nt   key(   Rw   R   RI  (   R3   (    (    sq   /var/www/html/phendo-backend/phendo_python/env/lib/python2.7/site-packages/reportlab/graphics/charts/barcharts.pyR   >  s    N(   R5   R6   R1   R4   Rk   R   R   (    (    (    sq   /var/www/html/phendo-backend/phendo_python/env/lib/python2.7/site-packages/reportlab/graphics/charts/barcharts.pyRF  3  s   		R_   c           B   s   e  Z e d  e d e e d d d e e d d d e e d d d e e d d	  Z d
 Z d
 Z d Z
 d Z d   Z d   Z d   Z d   Z d   Z RS(   R9   t   theta_xR(   s   dx/dzt   theta_ys   dy/dzt   zDepths   depth of an individual seriest   zSpaces   z gap around seriesg      ?c         C   s   t  j |   |  j } |  j } | d  k r7 |  j } n  |  j } | d  k rX |  j } n  |  j j	 d k r | | | d | } n | d | } | |  j
 9} |  j | |  _ |  j | |  _ d  S(   NRp   i   i   (   R8   R   R   RO  R1   R;   RP  R=   R@   RZ   R   RM  t   _3d_dxRN  t   _3d_dy(   R3   R   RO  RP  t	   _3d_depth(    (    sq   /var/www/html/phendo-backend/phendo_python/env/lib/python2.7/site-packages/reportlab/graphics/charts/barcharts.pyR   M  s    		 	 c         C   s   |  j  } | d  k r! |  j } n  |  j } | d  k rB |  j } n  |  j j d k rp |  j | | | | } n |  j | } | S(   NRp   (   RO  R1   R;   RP  R=   R@   RZ   R   (   R3   RS   RO  RP  t   z0(    (    sq   /var/www/html/phendo-backend/phendo_python/env/lib/python2.7/site-packages/reportlab/graphics/charts/barcharts.pyt   _calc_z0\  s    	 	 c      
   C   s   |  j  } | d  k r! |  j } n  |  j }	 |	 d  k rB |  j }	 n  |  j |  }
 |
 | |  j } | d k  r | | 7} | } n  | |
 |  j 7} | |
 |  j 7} |  j	 r | |	 7} n
 | |	 7} | j
 d |
 | | | | | | | f	  d  S(   Ni    (   RO  R1   R;   RP  R=   RU  R   RM  RN  Rd   Rk   (   R3   R   RT   RU   RV   RW   RS   RZ   RO  RP  RT  t   z1(    (    sq   /var/www/html/phendo-backend/phendo_python/env/lib/python2.7/site-packages/reportlab/graphics/charts/barcharts.pyR  g  s"    	 	 

	
c      
   C   s   |  j  |  } |  j }	 |	 d  k r0 |  j }	 n  | }
 | | |  j 7} | | |  j 7} |  j rn | |	 7} n
 | |	 7} | j d | |
 | | | | | | f	  d  S(   Ni   (   RU  RP  R1   R=   RM  RN  Rd   Rk   (   R3   R   RS   R   RT   RU   RV   RW   RT  RP  RV  (    (    sq   /var/www/html/phendo-backend/phendo_python/env/lib/python2.7/site-packages/reportlab/graphics/charts/barcharts.pyR   y  s    	 	
c         C   s  d d l  m } t d |  j  } |  j | |  | j   t   } |  j } |  j } |  j	 j
 d k r~ | j   j   } n  x | j   D] } | d d k r | d \ } }	 }
 } } } } } |	 | } | | |
 |
 | | | | | | | | d | j d d  d	 | j d
 | j d d q q Wxk | j   D]] } | d d k r4| d \ } }	 }
 } } } } } t j |  | | | |
 | | |  q4q4W| S(   Ni(   t   _draw_3d_barRJ  t   stackedi    i   R)   t   fillColorShadedR'   R*   t   shadingg?(   t!   reportlab.graphics.charts.utils3dRW  RF  t   _cmpZR&  R   R   RM  RN  R@   RZ   R   t   reverseR)   R1   R'   R*   R8   R   (   R3   RW  t   fgR   RM  RN  t   fg_valuet   tRT  RV  RT   RU   RV   RW   RS   RZ   t   dzR   (    (    sq   /var/www/html/phendo-backend/phendo_python/env/lib/python2.7/site-packages/reportlab/graphics/charts/barcharts.pyR     s,    
			"
+")N(   R5   R6   R   R8   R   R   R7   RM  RN  R1   RO  RP  R   RU  R  R   R   (    (    (    sq   /var/www/html/phendo-backend/phendo_python/env/lib/python2.7/site-packages/reportlab/graphics/charts/barcharts.pyR_   A  s   				t   VerticalBarChart3Dc           B   s   e  Z d    Z RS(   c         C   sI   t  | d | d | d | d f | d | d | d | d f  S(   Ni   i   i    i   (   RJ  (   R3   R   R   (    (    sq   /var/www/html/phendo-backend/phendo_python/env/lib/python2.7/site-packages/reportlab/graphics/charts/barcharts.pyt   <lambda>  t    (   R5   R6   R\  (    (    (    sq   /var/www/html/phendo-backend/phendo_python/env/lib/python2.7/site-packages/reportlab/graphics/charts/barcharts.pyRb    s   t   HorizontalBarChart3Dc           B   s   e  Z d    Z RS(   c         C   sI   t  | d | d | d | d f | d | d | d | d f  S(   Ni   i   i    i   (   RJ  (   R3   R   R   (    (    sq   /var/www/html/phendo-backend/phendo_python/env/lib/python2.7/site-packages/reportlab/graphics/charts/barcharts.pyRc    Rd  (   R5   R6   R\  (    (    (    sq   /var/www/html/phendo-backend/phendo_python/env/lib/python2.7/site-packages/reportlab/graphics/charts/barcharts.pyRe    s   c          C   s   t  d d  }  d g } t   } d | _ d | _ d | _ d | _ | | _ t j | _	 d | j
 _ d	 | j
 _ d
 | j
 _ d | j j _ d | j j _ d | j j _ d | j j _ d d g | j _ |  j |  |  S(   s9   A slightly pathologic bar chart with only TWO data items.i  i   i   i   i2   i}   i,  i    i<   i   t   nei   ii   t   Yingt   Yang(   i   i   (   R   RD  RT   RU   RW   RV   RA   R    Rh   R'   R?   t   valueMint   valueMaxt	   valueStepR@   R   Re   R  R  t   anglet   categoryNamesRk   (   Rl   RA   Rm   (    (    sq   /var/www/html/phendo-backend/phendo_python/env/lib/python2.7/site-packages/reportlab/graphics/charts/barcharts.pyt	   sampleV0a  s&    							c          C   s   t  d d  }  d g } t   } d | _ d | _ d | _ d | _ | | _ t j | _	 d | j
 _ d | j
 _ d | j
 _ d	 | j j _ d
 | j j _ d | j j _ d | j j _ d g | j _ |  j |  |  S(   s/   A pathologic bar chart with only ONE data item.i  i   i*   i2   i}   i,  i    i   Rf  i   ii   s   Jan-99(   i*   (   R   RD  RT   RU   RW   RV   RA   R    Rh   R'   R?   Ri  Rj  Rk  R@   R   Re   R  R  Rl  Rm  Rk   (   Rl   RA   Rm   (    (    sq   /var/www/html/phendo-backend/phendo_python/env/lib/python2.7/site-packages/reportlab/graphics/charts/barcharts.pyt	   sampleV0b  s&    							c          C   s   t  d d  }  d g } t   } d | _ d | _ d | _ d | _ | | _ t j | _	 d | j
 _ d | j
 _ d | j
 _ d	 | j j _ d
 | j j _ d | j j _ g  | j _ |  j |  |  S(   s8   A really pathologic bar chart with NO data items at all!i  i   i2   i}   i,  i    i<   i   Rf  i   i(    (   R   RD  RT   RU   RW   RV   RA   R    Rh   R'   R?   Ri  Rj  Rk  R@   R   Re   R  R  Rm  Rk   (   Rl   RA   Rm   (    (    sq   /var/www/html/phendo-backend/phendo_python/env/lib/python2.7/site-packages/reportlab/graphics/charts/barcharts.pyt	   sampleV0c  s$    							c       	   C   s  t  d d  }  d d g } t   } d | _ d | _ d | _ d | _ | | _ t j | _	 d | j
 _ d | j
 _ d | j
 _ d | j j _ d | j j _ d | j j _ d | j j _ d j d  } g  | D] } | d ^ q } | | j _ |  j |  |  S(    s!   Sample of multi-series bar chart.i  i   i   i   i   i   i%   i-   i   i   i   i   i   i   i&   i.   i2   i}   i,  i    i<   i   Rf  i   ii   s   Jan Feb Mar Apr May Jun Jul Augt    s   -99(   i   i   i   i   i%   i-   i   i   (   i   i   i   i   i&   i.   i   i   (   R   RD  RT   RU   RW   RV   RA   R    Rh   R'   R?   Ri  Rj  Rk  R@   R   Re   R  R  Rl  R   Rm  Rk   (   Rl   RA   Rm   t   catNamesR?  (    (    sq   /var/www/html/phendo-backend/phendo_python/env/lib/python2.7/site-packages/reportlab/graphics/charts/barcharts.pyt   sampleV1  s,    							c          C   s  d d g }  d  } t  d d  } t   } d | _ d | _ d | _ d | _ |  | _ d | _ d | _ d | _	 d | j
 _ d 
| j
 _ d | j
 _ d | j
 j _ d | j
 j _ d | j
 j _ d | j
 j _ | | j _ d | j j _ d | j j _ d | j j _ | j |  | S(!   s!   Sample of multi-series bar chart.g333333@gi   i   gffffff"@g333333?gii   g333333@s   Q3 2000s   Year to Dates	   12 monthss   Annualised
3 yearss   Since 07.10.99i  i   i2   ix   i,  i    i
   ii   t	   Helveticai   R?  Ra   i(   g333333@gi   i   gffffff"@(   g333333?gii   g333333@(   s   Q3 2000s   Year to Dates	   12 monthss   Annualised
3 yearss   Since 07.10.99(   R   RD  RT   RU   RW   RV   RA   R=   R<   R;   R?   Ri  Rj  Rk  R   R  R  Re   Rf   R@   Rm  R  Rk   (   RA   R   Rl   Rm   (    (    sq   /var/www/html/phendo-backend/phendo_python/env/lib/python2.7/site-packages/reportlab/graphics/charts/barcharts.pyt	   sampleV2a"  s6    	 									c          C   s  d d g }  d } t  d d  } t   } d | _ d | _ d | _ d | _ |  | _ d | _ d | _ d | _	 d | j
 _ d 
| j
 _ d | j
 _ d | j
 j _ d | j
 j _ d | j
 j _ d | j
 j _ | | j _ d | j j _ d | j j _ d | j j _ | j |  | S(    s!   Sample of multi-series bar chart.g333333@gi   i   gffffff"@g333333?gii   g333333@s   Q3 2000s   Year to Dates	   12 monthss   Annualised
3 yearss   Since 07.10.99i  i   i2   ix   i,  i
   ii   Rt  i   R?  Ra   i(   g333333@gi   i   gffffff"@(   g333333?gii   g333333@(   s   Q3 2000s   Year to Dates	   12 monthss   Annualised
3 yearss   Since 07.10.99(   R   RD  RT   RU   RW   RV   RA   R=   R<   R;   R?   Ri  Rj  Rk  R   R  R  Re   Rf   R@   Rm  R  Rk   (   RA   R   Rl   Rm   (    (    sq   /var/www/html/phendo-backend/phendo_python/env/lib/python2.7/site-packages/reportlab/graphics/charts/barcharts.pyt	   sampleV2bK  s6    	 									c          C   sn  d d  g }  d! } t  d d  } t   } d | _ d | _ d | _ d | _ |  | _ d | _ d | _ d | _	 d | j
 _ d 
| j
 _ d | j
 _ d | j
 j _ d | j
 j _ | | j _ d | j j _ d | j j _ d | j
 j _ d | j
 j _ d | j j _ d | j _ d | _ d | j _ d | j _ d | j _ d | j _ d | j _ | j |  | S("   s!   Sample of multi-series bar chart.g333333@gi   i   g{G#@g333333?gii   s   Q3 2000s   Year to Dates	   12 monthss   Annualised
3 yearss   Since 07.10.99i  i   i2   ix   i,  i
   ii   Rt  i   R?  Ra   is   %0.2fi    i   (   g333333@gi   i   g{G#@(   g333333?gii   g{G#@(   s   Q3 2000s   Year to Dates	   12 monthss   Annualised
3 yearss   Since 07.10.99(   R   RD  RT   RU   RW   RV   RA   R=   R<   R;   R?   Ri  Rj  Rk  R   R  R  R@   Rm  Re   Rf   R  RB   Rg   RC   R  Rk   (   RA   R   Rl   Rm   (    (    sq   /var/www/html/phendo-backend/phendo_python/env/lib/python2.7/site-packages/reportlab/graphics/charts/barcharts.pyt	   sampleV2ct  sD    	 										c       
   C   s  d- }  d. } d/ } t  |   t  |  k s6 t d   t  |   t  |  k sZ t d   t d d  } t   } d | _ d | _ d | _ d  | _ | f | _ t	 j
 | j _ d! | _ d | j _ d | j _ d" | j _ d# | j _ d$ | j _ d% | j _ d& | j _ d | j _ d' | j _ d( 
| j _ d) | j _ d | j _ d | j _ |  | j _ d# | j j _ d" | j j _ d | j j _ d* | j j _ d$ | j j _ d% | j j _ t  |  } | j! d d+  | j" d,  | j# |  | S(0   sB   Faked horizontal bar chart using a vertical real one (deprecated).s   UK Equitiess   US Equitiess   European Equitiess   Japanese Equitiess   Pacific (ex Japan) Equitiess   Emerging Markets Equitiess   UK Bondss   Overseas Bondss   UK Index-Linkedt   Cashg      g333333?g      ?g      ?g?gffffff?g?g?g        gQ?g?g?g)\(?gp=
ף?g)\(?g)\(?s   bad datai  i   i    id   i   s   %0.2fR1  iZ   Rt  i   i
   ii   i   ii   i(
   s   UK Equitiess   US Equitiess   European Equitiess   Japanese Equitiess   Pacific (ex Japan) Equitiess   Emerging Markets Equitiess   UK Bondss   Overseas Bondss   UK Index-LinkedRx  (
   g      g333333?g      ?g      ?g?gffffff?g?g?g      ?g333333?(
   g        gQ?g?g?g)\(?gp=
ף?g)\(?g)\(?g?gQ?($   RQ   Rc   R   RD  RT   RU   RW   RV   RA   R    Rj   R>   R)   RC   RB   R  R  Re   Rl  R  R  Rg   R?   R   Ri  Rj  Rk  R@   t   tickUpt   tickDownRm  R   R   t	   translatet   rotateRk   (   t   namest   series1t   series2Rl   Rm   R   (    (    sq   /var/www/html/phendo-backend/phendo_python/env/lib/python2.7/site-packages/reportlab/graphics/charts/barcharts.pyt   sampleV3  sR      $$						c          C   s   t  d d  }  d g } t   } d | _ d | _ d | _ d | _ | | _ t j | _	 d | j
 _ d	 | j
 _ d
 | j
 _ d | j j _ d | j j _ d d g | j _ |  j |  |  S(   sA   A bar chart showing value axis region starting at *exactly* zero.i  i   i   i   i2   i}   i,  i    i<   i   R?  iRg  Rh  (   i   i   (   R   RD  RT   RU   RW   RV   RA   R    Rh   R'   R?   Ri  Rj  Rk  R@   R   Re   R  Rm  Rk   (   Rl   RA   Rm   (    (    sq   /var/www/html/phendo-backend/phendo_python/env/lib/python2.7/site-packages/reportlab/graphics/charts/barcharts.pyt	   sampleV4a  s"    							c          C   s   t  d d  }  d g } t   } d | _ d | _ d | _ d | _ | | _ t j | _	 d | j
 _ d	 | j
 _ d
 | j
 _ d | j j _ d | j j _ d d g | j _ |  j |  |  S(   s<   A bar chart showing value axis region starting *below* zero.i  i   i   i   i2   i}   i,  ii<   i   R?  iRg  Rh  (   i   i   (   R   RD  RT   RU   RW   RV   RA   R    Rh   R'   R?   Ri  Rj  Rk  R@   R   Re   R  Rm  Rk   (   Rl   RA   Rm   (    (    sq   /var/www/html/phendo-backend/phendo_python/env/lib/python2.7/site-packages/reportlab/graphics/charts/barcharts.pyt	   sampleV4b  s"    							c          C   s   t  d d  }  d g } t   } d | _ d | _ d | _ d | _ | | _ t j | _	 d | j
 _ d	 | j
 _ d
 | j
 _ d | j j _ d | j j _ d d g | j _ |  j |  |  S(   s;   A bar chart showing value axis region staring *above* zero.i  i   i   i   i2   i}   i,  i
   i<   i   R?  iRg  Rh  (   i   i   (   R   RD  RT   RU   RW   RV   RA   R    Rh   R'   R?   Ri  Rj  Rk  R@   R   Re   R  Rm  Rk   (   Rl   RA   Rm   (    (    sq   /var/www/html/phendo-backend/phendo_python/env/lib/python2.7/site-packages/reportlab/graphics/charts/barcharts.pyt	   sampleV4c  s"    							c          C   s   t  d d  }  d g } t   } d | _ d | _ d | _ d | _ | | _ t j | _	 d | j
 _ d	 | j
 _ d
 | j
 _ d | j j _ d | j j _ d d g | j _ |  j |  |  S(   s<   A bar chart showing value axis region entirely *below* zero.i  i   iii2   i}   i,  iii   R?  iRg  Rh  (   ii(   R   RD  RT   RU   RW   RV   RA   R    Rh   R'   R?   Ri  Rj  Rk  R@   R   Re   R  Rm  Rk   (   Rl   RA   Rm   (    (    sq   /var/www/html/phendo-backend/phendo_python/env/lib/python2.7/site-packages/reportlab/graphics/charts/barcharts.pyt	   sampleV4d5  s"    							i
   i<   i   i2   i   i(   c          C   s   t  d d  }  t } t   } d | _ d | _ d | _ d | _ | | _ t j	 | _
 d | j _ d | j _ d | j _ d	 | j j _ d
 | j j _ d d g | j _ |  j |  |  S(   s8   A simple bar chart with no expressed spacing attributes.i  i   i2   i}   i,  i    i<   i   R?  iRg  Rh  (   R   t   dataSample5RD  RT   RU   RW   RV   RA   R    Rh   R'   R?   Ri  Rj  Rk  R@   R   Re   R  Rm  Rk   (   Rl   RA   Rm   (    (    sq   /var/www/html/phendo-backend/phendo_python/env/lib/python2.7/site-packages/reportlab/graphics/charts/barcharts.pyt	   sampleV5aX  s"    						c          C   s   t  d d  }  t } t   } d | _ d | _ d | _ d | _ | | _ t j	 | _
 d | _ d | _ d | _ d	 | _ d | j _ d
 | j _ d | j _ d | j j _ d | j j _ d d g | j _ |  j |  |  S(   s-   A simple bar chart with proportional spacing.i  i   i2   i}   i,  i    i(   i   i
   i<   i   R?  iRg  Rh  (   R   R  RD  RT   RU   RW   RV   RA   R    Rh   R'   R:   R;   R<   R=   R?   Ri  Rj  Rk  R@   R   Re   R  Rm  Rk   (   Rl   RA   Rm   (    (    sq   /var/www/html/phendo-backend/phendo_python/env/lib/python2.7/site-packages/reportlab/graphics/charts/barcharts.pyt	   sampleV5bt  s*    										c          C   s   t  d d  }  t } t   } d | _ d | _ d | _ d | _ | | _ t j	 | _
 d | _ d | _ d | _ d | _ d | j _ d	 | j _ d
 | j _ d | j j _ d | j j _ d d g | j _ |  j |  |  S(   s6   Make sampe simple bar chart but with absolute spacing.i  i   i2   i}   i,  i   i(   i    i<   i   R?  iRg  Rh  (   R   R  RD  RT   RU   RW   RV   RA   R    Rh   R'   R:   R;   R<   R=   R?   Ri  Rj  Rk  R@   R   Re   R  Rm  Rk   (   Rl   RA   Rm   (    (    sq   /var/www/html/phendo-backend/phendo_python/env/lib/python2.7/site-packages/reportlab/graphics/charts/barcharts.pyt
   sampleV5c1  s*    										c          C   s   t  d d  }  t } t   } d | _ d | _ d | _ d | _ | | _ t j	 | _
 d | _ d | _ d | _ d	 | _ d	 | j _ d
 | j _ d | j _ d | j j _ d | j j _ d d g | j _ |  j |  |  S(   s6   Make sampe simple bar chart but with absolute spacing.i  i   i2   i}   i,  i   i(   i   i    i<   i   R?  iRg  Rh  (   R   R  RD  RT   RU   RW   RV   RA   R    Rh   R'   R:   R;   R<   R=   R?   Ri  Rj  Rk  R@   R   Re   R  Rm  Rk   (   Rl   RA   Rm   (    (    sq   /var/www/html/phendo-backend/phendo_python/env/lib/python2.7/site-packages/reportlab/graphics/charts/barcharts.pyt
   sampleV5c2  s*    										c          C   s   t  d d  }  t } t   } d | _ d | _ d | _ d | _ | | _ t j	 | _
 d | _ d | _ d | _ d	 | _ d | j _ d
 | j _ d | j _ d | j j _ d | j j _ d d g | j _ |  j |  |  S(   s6   Make sampe simple bar chart but with absolute spacing.i  i   i2   i}   i,  i   i(   i    i
   i<   i   R?  iRg  Rh  (   R   R  RD  RT   RU   RW   RV   RA   R    Rh   R'   R:   R;   R<   R=   R?   Ri  Rj  Rk  R@   R   Re   R  Rm  Rk   (   Rl   RA   Rm   (    (    sq   /var/www/html/phendo-backend/phendo_python/env/lib/python2.7/site-packages/reportlab/graphics/charts/barcharts.pyt
   sampleV5c3  s*    										c          C   s   t  d d  }  t } t   } d | _ d | _ d | _ d | _ | | _ t j	 | _
 d | _ d | _ d | _ d	 | _ d
 | j _ d | j _ d | j _ d | j j _ d | j j _ d d g | j _ |  j |  |  S(   s6   Make sampe simple bar chart but with absolute spacing.i  i   i2   i}   i,  i   i(   i   i
   i    i<   i   R?  iRg  Rh  (   R   R  RD  RT   RU   RW   RV   RA   R    Rh   R'   R:   R;   R<   R=   R?   Ri  Rj  Rk  R@   R   Re   R  Rm  Rk   (   Rl   RA   Rm   (    (    sq   /var/www/html/phendo-backend/phendo_python/env/lib/python2.7/site-packages/reportlab/graphics/charts/barcharts.pyt
   sampleV5c4  s*    										c          C   s   t  d d  }  d g } t   } d | _ d | _ d | _ d | _ | | _ t j | _	 d | j
 _ d	 | j
 _ d
 | j
 _ d | j j _ d | j j _ d d g | j _ |  j |  |  S(   s>   Make a slightly pathologic bar chart with only TWO data items.i  i   i   i   i2   i}   i,  i    i<   i   t   sei   Rg  Rh  (   i   i   (   R   RE  RT   RU   RW   RV   RA   R    Rh   R'   R?   Ri  Rj  Rk  R@   R   Re   Rl  Rm  Rk   (   Rl   RA   Rm   (    (    sq   /var/www/html/phendo-backend/phendo_python/env/lib/python2.7/site-packages/reportlab/graphics/charts/barcharts.pyt	   sampleH0a  s"    							c          C   s   t  d d  }  d g } t   } d | _ d | _ d | _ d | _ | | _ t j | _	 d | j
 _ d | j
 _ d | j
 _ d	 | j j _ d
 | j j _ d g | j _ |  j |  |  S(   s4   Make a pathologic bar chart with only ONE data item.i  i   i*   i2   i}   i,  i    i   R  i   s   Jan-99(   i*   (   R   RE  RT   RU   RW   RV   RA   R    Rh   R'   R?   Ri  Rj  Rk  R@   R   Re   Rl  Rm  Rk   (   Rl   RA   Rm   (    (    sq   /var/www/html/phendo-backend/phendo_python/env/lib/python2.7/site-packages/reportlab/graphics/charts/barcharts.pyt	   sampleH0b8  s"    							c          C   s   t  d d  }  d g } t   } d | _ d | _ d | _ d | _ | | _ t j | _	 d | j
 _ d | j
 _ d | j
 _ d	 | j j _ d
 | j j _ g  | j _ |  j |  |  S(   s=   Make a really pathologic bar chart with NO data items at all!i  i   i2   i}   i,  i    i<   i   R  i   (    (   R   RE  RT   RU   RW   RV   RA   R    Rh   R'   R?   Ri  Rj  Rk  R@   R   Re   Rl  Rm  Rk   (   Rl   RA   Rm   (    (    sq   /var/www/html/phendo-backend/phendo_python/env/lib/python2.7/site-packages/reportlab/graphics/charts/barcharts.pyt	   sampleH0cT  s"    							c       	   C   s   t  d d  }  d d g } t   } d | _ d | _ d | _ d | _ | | _ t j | _	 d | j
 _ d | j
 _ d | j
 _ d | j j _ d j d  } g  | D] } | d ^ q } | | j _ |  j | d  |  S(   s!   Sample of multi-series bar chart.i  i   i   i   i   i   i%   i-   i   i   i   i   i   i   i&   i.   i2   i}   i,  i    i<   i   t   es   Jan Feb Mar Apr May Jun Jul AugRq  s   -99t   barchart(   i   i   i   i   i%   i-   i   i   (   i   i   i   i   i&   i.   i   i   (   R   RE  RT   RU   RW   RV   RA   R    Rh   R'   R?   Ri  Rj  Rk  R@   R   Re   R   Rm  Rk   (   Rl   RA   Rm   Rr  R?  (    (    sq   /var/www/html/phendo-backend/phendo_python/env/lib/python2.7/site-packages/reportlab/graphics/charts/barcharts.pyt   sampleH1p  s&    							c          C   s0  d d  g }  d! } t  d d  } t   } d | _ d | _ d | _ d | _ |  | _ d | _ d | _ d | _	 d | j
 _ d 
| j
 _ d | j
 _ d | j
 j _ d | j
 j _ d | j
 j _ d | j
 j _ | j
 j | j  | | j _ d | j j _ d | j j _ d | j j _ | j |  | S("   s!   Sample of multi-series bar chart.g333333@gi   i   gffffff"@g333333?gii   g333333@s   Q3 2000s   Year to Dates	   12 monthss   Annualised
3 yearss   Since 07.10.99i  i   iP   i2   ix   i,  i    i
   ii   Rt  i   R?  Ra   ij(   g333333@gi   i   gffffff"@(   g333333?gii   g333333@(   s   Q3 2000s   Year to Dates	   12 monthss   Annualised
3 yearss   Since 07.10.99(   R   RE  RT   RU   RW   RV   RA   R=   R<   R;   R?   Ri  Rj  Rk  R   R  R  Re   Rf   R   R@   Rm  R  Rk   (   RA   R   Rl   Rm   (    (    sq   /var/www/html/phendo-backend/phendo_python/env/lib/python2.7/site-packages/reportlab/graphics/charts/barcharts.pyt	   sampleH2a  s8    	 									c          C   s  d d g }  d  } t  d d  } t   } d | _ d | _ d | _ d | _ |  | _ d | _ d | _ d | _	 d | j
 _ d 
| j
 _ d | j
 _ d | j
 j _ d | j
 j _ d | j
 j _ d | j
 j _ | | j _ d | j j _ d | j j _ d | j j _ | j |  | S(!   s!   Sample of multi-series bar chart.g333333@gi   i   gffffff"@g333333?gii   g333333@s   Q3 2000s   Year to Dates	   12 monthss   Annualised
3 yearss   Since 07.10.99i  i   iP   i2   ix   i,  i
   ii   Rt  i   R?  Ra   ij(   g333333@gi   i   gffffff"@(   g333333?gii   g333333@(   s   Q3 2000s   Year to Dates	   12 monthss   Annualised
3 yearss   Since 07.10.99(   R   RE  RT   RU   RW   RV   RA   R=   R<   R;   R?   Ri  Rj  Rk  R   R  R  Re   Rf   R@   Rm  R  Rk   (   RA   R   Rl   Rm   (    (    sq   /var/www/html/phendo-backend/phendo_python/env/lib/python2.7/site-packages/reportlab/graphics/charts/barcharts.pyt	   sampleH2b  s6    	 									c          C   sn  d  d! g }  d" } t  d d  } t   } d | _ d | _ d | _ d | _ |  | _ d | _ d | _ d | _	 d | j
 _ d 
| j
 _ d | j
 _ d | j
 j _ d | j
 j _ d | j
 j _ d | j
 j _ | | j _ d | j j _ d | j j _ d | j j _ d | j _ d | _ d | j _ d | j _ d | j _ d | j _ d | j _ | j |  | S(#   s!   Sample of multi-series bar chart.g333333@gi   i   g{G#@g333333?gii   s   Q3 2000s   Year to Dates	   12 monthss   Annualised
3 yearss   Since 07.10.99i  i   iP   i2   ix   i,  i
   ii   Rt  i   R?  Ra   ijs   %0.2fi    i   (   g333333@gi   i   g{G#@(   g333333?gii   g{G#@(   s   Q3 2000s   Year to Dates	   12 monthss   Annualised
3 yearss   Since 07.10.99(   R   RE  RT   RU   RW   RV   RA   R=   R<   R;   R?   Ri  Rj  Rk  R   R  R  Re   Rf   R@   Rm  R  RB   Rg   RC   R  Rk   (   RA   R   Rl   Rm   (    (    sq   /var/www/html/phendo-backend/phendo_python/env/lib/python2.7/site-packages/reportlab/graphics/charts/barcharts.pyt	   sampleH2c  sD    	 										c       
   C   s  d, }  d- } d. } t  |   t  |  k s6 t d   t  |   t  |  k sZ t d   t d d  } t   } d | _ d | _ d  | _ d! | _ | f | _ t	 j
 | j _ d" | _ d# | j _ d# | j _ d$ | j _ d% | j _ d& | j _ d' | j _ d# | j _ d( | j _ d) 
| j _ d* | j _ d# | j _ d# | j _ |  | j _ d$ | j j _ d+ | j j _ d% | j j _ d& | j j _ t |  } | j  |  | S(/   sE   A really horizontal bar chart (compared to the equivalent faked one).s   UK Equitiess   US Equitiess   European Equitiess   Japanese Equitiess   Pacific (ex Japan) Equitiess   Emerging Markets Equitiess   UK Bondss   Overseas Bondss   UK Index-LinkedRx  g      g333333?g      ?g      ?g?gffffff?g?g?g        gQ?g?g?g)\(?gp=
ף?g)\(?g)\(?s   bad datai  i   id   i   i   i   s   %0.2fi    R1  Rt  i   i
   ii   i   iV(
   s   UK Equitiess   US Equitiess   European Equitiess   Japanese Equitiess   Pacific (ex Japan) Equitiess   Emerging Markets Equitiess   UK Bondss   Overseas Bondss   UK Index-LinkedRx  (
   g      g333333?g      ?g      ?g?gffffff?g?g?g      ?g333333?(
   g        gQ?g?g?g)\(?gp=
ף?g)\(?g)\(?g?gQ?(!   RQ   Rc   R   RE  RT   RU   RW   RV   RA   R    Rj   R>   R)   RC   RB   R  R  Re   R  R  Rg   R?   R   Ri  Rj  Rk  R@   t   tickLeftt	   tickRightRm  R   R   Rk   (   R}  R~  R  Rl   Rm   R   (    (    sq   /var/www/html/phendo-backend/phendo_python/env/lib/python2.7/site-packages/reportlab/graphics/charts/barcharts.pyt   sampleH3  sH      $$						c          C   s   t  d d  }  d g } t   } d | _ d | _ d | _ d | _ | | _ t j | _	 d | j
 _ d	 | j
 _ d
 | j
 _ d | j j _ d d g | j _ |  j |  |  S(   sA   A bar chart showing value axis region starting at *exactly* zero.i  i   i   i   i2   i}   i,  i    i<   i   R  Rg  Rh  (   i   i   (   R   RE  RT   RU   RW   RV   RA   R    Rh   R'   R?   Ri  Rj  Rk  R@   R   Re   Rm  Rk   (   Rl   RA   Rm   (    (    sq   /var/www/html/phendo-backend/phendo_python/env/lib/python2.7/site-packages/reportlab/graphics/charts/barcharts.pyt	   sampleH4aF  s     							c          C   s   t  d d  }  d g } t   } d | _ d | _ d | _ d | _ | | _ t j | _	 d | j
 _ d	 | j
 _ d
 | j
 _ d | j j _ d d g | j _ |  j |  |  S(   s<   A bar chart showing value axis region starting *below* zero.i  i   i   i   i2   i}   i,  ii<   i   R  Rg  Rh  (   i   i   (   R   RE  RT   RU   RW   RV   RA   R    Rh   R'   R?   Ri  Rj  Rk  R@   R   Re   Rm  Rk   (   Rl   RA   Rm   (    (    sq   /var/www/html/phendo-backend/phendo_python/env/lib/python2.7/site-packages/reportlab/graphics/charts/barcharts.pyt	   sampleH4bb  s     							c          C   s   t  d d  }  d g } t   } d | _ d | _ d | _ d | _ | | _ t j | _	 d | j
 _ d	 | j
 _ d
 | j
 _ d | j j _ d d g | j _ |  j |  |  S(   s<   A bar chart showing value axis region starting *above* zero.i  i   i   i   i2   i}   i,  i
   i<   i   R  Rg  Rh  (   i   i   (   R   RE  RT   RU   RW   RV   RA   R    Rh   R'   R?   Ri  Rj  Rk  R@   R   Re   Rm  Rk   (   Rl   RA   Rm   (    (    sq   /var/www/html/phendo-backend/phendo_python/env/lib/python2.7/site-packages/reportlab/graphics/charts/barcharts.pyt	   sampleH4c~  s     							c          C   s   t  d d  }  d g } t   } d | _ d | _ d | _ d | _ | | _ t j | _	 d | j
 _ d	 | j
 _ d
 | j
 _ d | j j _ d d g | j _ |  j |  |  S(   s<   A bar chart showing value axis region entirely *below* zero.i  i   iii2   i}   i,  iii   R  Rg  Rh  (   ii(   R   RE  RT   RU   RW   RV   RA   R    Rh   R'   R?   Ri  Rj  Rk  R@   R   Re   Rm  Rk   (   Rl   RA   Rm   (    (    sq   /var/www/html/phendo-backend/phendo_python/env/lib/python2.7/site-packages/reportlab/graphics/charts/barcharts.pyt	   sampleH4d  s     							c          C   s   t  d d  }  t } t   } d | _ d | _ d | _ d | _ | | _ t j	 | _
 d | j _ d | j _ d | j _ d	 | j j _ d
 d g | j _ |  j |  |  S(   s8   A simple bar chart with no expressed spacing attributes.i  i   i2   i}   i,  i    i<   i   R  Rg  Rh  (   R   R  RE  RT   RU   RW   RV   RA   R    Rh   R'   R?   Ri  Rj  Rk  R@   R   Re   Rm  Rk   (   Rl   RA   Rm   (    (    sq   /var/www/html/phendo-backend/phendo_python/env/lib/python2.7/site-packages/reportlab/graphics/charts/barcharts.pyt	   sampleH5a  s     						c          C   s   t  d d  }  t } t   } d | _ d | _ d | _ d | _ | | _ t j	 | _
 d | _ d | _ d | _ d	 | _ d | j _ d
 | j _ d | j _ d | j j _ d d g | j _ |  j |  |  S(   s-   A simple bar chart with proportional spacing.i  i   i2   i}   i,  i    i(   i   i
   i<   i   R  Rg  Rh  (   R   R  RE  RT   RU   RW   RV   RA   R    Rh   R'   R:   R;   R<   R=   R?   Ri  Rj  Rk  R@   R   Re   Rm  Rk   (   Rl   RA   Rm   (    (    sq   /var/www/html/phendo-backend/phendo_python/env/lib/python2.7/site-packages/reportlab/graphics/charts/barcharts.pyt	   sampleH5b  s(    										c          C   s   t  d d  }  t } t   } d | _ d | _ d | _ d | _ | | _ t j	 | _
 d | _ d | _ d | _ d | _ d | j _ d	 | j _ d
 | j _ d | j j _ d d g | j _ |  j |  |  S(   s)   A simple bar chart with absolute spacing.i  i   i2   i}   i,  i   i
   i    i<   i   R  Rg  Rh  (   R   R  RE  RT   RU   RW   RV   RA   R    Rh   R'   R:   R;   R<   R=   R?   Ri  Rj  Rk  R@   R   Re   Rm  Rk   (   Rl   RA   Rm   (    (    sq   /var/www/html/phendo-backend/phendo_python/env/lib/python2.7/site-packages/reportlab/graphics/charts/barcharts.pyt
   sampleH5c1  s(    										c          C   s   t  d d  }  t } t   } d | _ d | _ d | _ d | _ | | _ t j	 | _
 d | _ d | _ d | _ d	 | _ d	 | j _ d
 | j _ d | j _ d | j j _ d d g | j _ |  j |  |  S(   s'   Simple bar chart with absolute spacing.i  i   i2   i}   i,  i   i
   i   i    i<   i   R  Rg  Rh  (   R   R  RE  RT   RU   RW   RV   RA   R    Rh   R'   R:   R;   R<   R=   R?   Ri  Rj  Rk  R@   R   Re   Rm  Rk   (   Rl   RA   Rm   (    (    sq   /var/www/html/phendo-backend/phendo_python/env/lib/python2.7/site-packages/reportlab/graphics/charts/barcharts.pyt
   sampleH5c2  s(    										c          C   s   t  d d  }  t } t   } d | _ d | _ d | _ d | _ | | _ t j	 | _
 d | _ d | _ d	 | _ d
 | _ d	 | j _ d | j _ d | j _ d | j j _ d d g | j _ |  j |  |  S(   s'   Simple bar chart with absolute spacing.i  i   i2   i   i   i,  i   i
   i    i   i<   i   R  Rg  Rh  (   R   R  RE  RT   RU   RW   RV   RA   R    Rh   R'   R:   R;   R<   R=   R?   Ri  Rj  Rk  R@   R   Re   Rm  Rk   (   Rl   RA   Rm   (    (    sq   /var/www/html/phendo-backend/phendo_python/env/lib/python2.7/site-packages/reportlab/graphics/charts/barcharts.pyt
   sampleH5c33  s(    										c          C   s   t  d d  }  t } t   } d | _ d | _ d | _ d | _ | | _ t j	 | _
 d | _ d | _ d | _ d | _ d	 | j _ d
 | j _ d | j _ d | j j _ d d g | j _ |  j |  |  S(   s'   Simple bar chart with absolute spacing.i  i   i2   i}   i,  i   i
   i   i    i<   i   R  Rg  Rh  (   R   R  RE  RT   RU   RW   RV   RA   R    Rh   R'   R:   R;   R<   R=   R?   Ri  Rj  Rk  R@   R   Re   Rm  Rk   (   Rl   RA   Rm   (    (    sq   /var/www/html/phendo-backend/phendo_python/env/lib/python2.7/site-packages/reportlab/graphics/charts/barcharts.pyt
   sampleH5c4S  s(    										c          C   s  t  d d  }  t } t   } d | _ d | _ d | _ d | _ | | _ t j	 | _
 d | _ d | _ d | _ d	 | j _ d
 | j _ d | j _ d | j j _ d d g | j _ d d l m } |   } t j	 | _ t j | _ d | _ d	 | _ |   } t j	 | _ t j | _ d | _ d	 | _ |   } t j | _ t j | _ d | _ d | _ d	 | _ | | j  _! | | j  d _! | | j  d _! |  j" |  |  S(   s(   Simple bar chart using symbol attribute.i  i   i2   i}   i,  i
   i   i   i    i<   R  Rg  Rh  i(   t
   ShadedRectt
   horizontalt   verticali   i   (#   R   R  RD  RT   RU   RW   RV   RA   R    Rh   R'   R;   R<   R=   R?   Ri  Rj  Rk  R@   R   Re   Rm  t    reportlab.graphics.widgets.gridsR  t   fillColorStartR2   t   fillColorEndt   orientationR*   t   pinkt   whitet   cylinderModeR>   R,   Rk   (   Rl   RA   Rm   R  t   sym1t   sym2t   sym3(    (    sq   /var/www/html/phendo-backend/phendo_python/env/lib/python2.7/site-packages/reportlab/graphics/charts/barcharts.pyt   sampleSymbol1r  sN    																			c          C   s  t  d d  }  t } t   } d | j _ d | _ d | _ d | _ d | _ | | _	 t
 j | _ d | _ d | _ d	 | j _ d
 | j j _ d d g | j _ d d l m } |   | j _ t
 j | j j _ t
 j | j j _ d | j j _ d | j j _ d	 | j j _ |   | j d _ t
 j | j d j _ t
 j | j d j _ d | j d j _ d | j d j _ d	 | j d j _ |   | j d _ t
 j  | j d j _ t
 j | j d j _ d | j d j _ d | j d j _ d	 | j d j _ |   | j d _ t
 j! | j d j _ t
 j | j d j _ d | j d j _ d | j d j _ d	 | j d j _ |  j" |  |  S(   s(   Simple bar chart using symbol attribute.i  i   RX  i2   i}   i,  i
   i   i    R  Rg  Rh  i(   R  R  i   i   i   (#   R   R  RD  R@   RZ   RT   RU   RW   RV   RA   R    Rh   R'   R;   R<   R?   Ri  R   Re   Rm  R  R  R>   R,   Ri   R  R  R  R  R  R*   t   magentaRj   R2   Rk   (   Rl   RA   Rm   R  (    (    sq   /var/www/html/phendo-backend/phendo_python/env/lib/python2.7/site-packages/reportlab/graphics/charts/barcharts.pyt   sampleStacked1  sT    								t
   SampleH5c4c           B   s   e  Z d  Z d d d  Z RS(   s'   Simple bar chart with absolute spacing.i  i   c         O   s   t  j |  | | | |  t   } d | _ d | _ d | _ d | _ t | _ t	 j
 | _ d | _ d | _ d | _ d | _ d | j _ d | j _ d	 | j _ d
 | j j _ d d g | j _ |  j | d d d  S(   Ni2   i}   i,  i   i
   i   i    i<   i   R  Rg  Rh  R.   t   HBC(   R   R4   RE  RT   RU   RW   RV   R  RA   R    Rh   R'   R:   R;   R<   R=   R?   Ri  Rj  Rk  R@   R   Re   Rm  Rk   (   R3   RV   RW   t   argst   kwRm   (    (    sq   /var/www/html/phendo-backend/phendo_python/env/lib/python2.7/site-packages/reportlab/graphics/charts/barcharts.pyR4     s$    										(   R5   R6   RC  R4   (    (    (    sq   /var/www/html/phendo-backend/phendo_python/env/lib/python2.7/site-packages/reportlab/graphics/charts/barcharts.pyR    s   (f   t   __version__RC  R   RG  t   reportlab.libR    t   reportlab.lib.validatorsR   R   R   R   R   R   R   R   R	   R
   R   R   R   R   t"   reportlab.graphics.widgets.markersR   R   t   reportlab.lib.formattersR   t   reportlab.lib.attrmapR   R   t   reportlab.pdfbase.pdfmetricsR   t   reportlab.graphics.widgetbaseR   R   R   t   reportlab.graphics.shapesR   R   R   R   R   t   reportlab.graphics.charts.axesR   R   R   R    t$   reportlab.graphics.charts.textlabelsR!   R"   R#   t   reportlab.graphics.charts.areasR$   t!   reportlab.graphics.charts.legendsR%   R&   R8   RD  RE  RF  R_   Rb  Re  Rn  Ro  Rp  Rs  Ru  Rv  Rw  R  R  R  R  R  R  R  R  R  R  R  R  R  R  R  R  R  R  R  R  R  R  R  R  R  R  R  R  R  R  R  R  R  (    (    (    sq   /var/www/html/phendo-backend/phendo_python/env/lib/python2.7/site-packages/reportlab/graphics/charts/barcharts.pyt   <module>   s   ^("  ]				#	)	)	2	8				!*		!	!	!	!	#					*	)	2	2				*		 	 	 	 		6	9