;ò
¸0sDc           @   s¬  d  Z  d Z d k Z d k l Z l Z l Z l Z d k l	 Z	 l
 Z
 l Z l Z l Z l Z l Z l Z l Z l Z l Z d k Td k l Z d k l Z l Z l Z l Z l Z l Z l Z d k l  Z  l! Z! d	 k" l# Z# d
 k$ l% Z% e& d „ Z' e& d „ Z( e& d „ Z) d „  Z* d e  f d „  ƒ  YZ+ d e+ f d „  ƒ  YZ, d „  Z- d „  Z. d e, f d „  ƒ  YZ/ d e, f d „  ƒ  YZ0 d e+ f d „  ƒ  YZ1 d e1 f d „  ƒ  YZ2 d e2 f d „  ƒ  YZ3 d e1 f d  „  ƒ  YZ4 d! e4 f d" „  ƒ  YZ5 d# „  Z6 d$ „  Z7 d% „  Z8 d& „  Z9 d' „  Z: d( „  Z; d) „  Z< d* „  Z= d+ „  Z> d, „  Z? d- „  Z@ d. „  ZA d/ „  ZB d0 „  ZC d1 „  ZD d2 „  ZE d3 „  ZF d4 „  ZG d5 „  ZH d6 „  ZI d S(7   s  Collection of axes for charts.

The current collection comprises axes for charts using cartesian
coordinate systems. All axes might have tick marks and labels.
There are two dichotomies for axes: one of X and Y flavours and
another of category and value flavours.

Category axes have an ordering but no metric. They are divided
into a number of equal-sized buckets. Their tick marks or labels,
if available, go BETWEEN the buckets, and the labels are placed
below to/left of the X/Y-axis, respectively.

  Value axes have an ordering AND metric. They correspond to a nu-
  meric quantity. Value axis have a real number quantity associated
  with it. The chart tells it where to go.
  The most basic axis divides the number line into equal spaces
  and has tickmarks and labels associated with each; later we
  will add variants where you can specify the sampling
  interval.

The charts using axis tell them where the labels should be placed.

Axes of complementary X/Y flavours can be connected to each other
in various ways, i.e. with a specific reference point, like an
x/value axis to a y/value (or category) axis. In this case the
connection can be either at the top or bottom of the former or
at any absolute value (specified in points) or at some value of
the former axes in its own coordinate system.
s3    $Id: axes.py 2838 2006-04-18 17:47:54Z rgbecker $ N(   s   FunctionTypes
   StringTypes	   TupleTypes   ListType(   s   isNumbers   isNumberOrNones   isListOfStringsOrNones   isListOfNumberss   isListOfNumbersOrNones   isColorOrNones   OneOfs	   isBooleans
   SequenceOfs   isStrings   EitherOr(   s   *(   s
   normalDate(   s   Drawings   Lines   PolyLines   Groups   STATE_DEFAULTSs   _textBoxLimitss   _rotatedBoxLimits(   s   Widgets   TypedPropertyCollection(   s   Label(   s   nextRoundNumberc         C   s°   t  |  d d ƒ t t f j oB | o | | | d „ } n | d „ } t | d „ |  ƒ }  n t	 t
 t d „  |  ƒ ƒ }  t
 |  ƒ d j o | Sn | t | |  ƒ ƒ Sd  S(   Ni    c         C   s   | |  | | ƒ S(   N(   s   specials   Ts   xs   func(   s   Ts   xs   specials   func(    (    sH   /home/packages/reportlab/reportlab_2_0/reportlab/graphics/charts/axes.pys   <lambda>6   s    c         C   s   |  | S(   N(   s   Ts   x(   s   Ts   x(    (    sH   /home/packages/reportlab/reportlab_2_0/reportlab/graphics/charts/axes.pys   <lambda>8   s    c         C   s   t  | |  ƒ S(   N(   s   maps   fs   e(   s   es   f(    (    sH   /home/packages/reportlab/reportlab_2_0/reportlab/graphics/charts/axes.pys   <lambda>9   s    c         C   s   t  d „  |  ƒ S(   Nc         C   s
   |  t j	 S(   N(   s   xs   None(   s   x(    (    sH   /home/packages/reportlab/reportlab_2_0/reportlab/graphics/charts/axes.pys   <lambda>:   s    (   s   filters   x(   s   x(    (    sH   /home/packages/reportlab/reportlab_2_0/reportlab/graphics/charts/axes.pys   <lambda>:   s    (   s   types   Vs	   TupleTypes   ListTypes   specials   xs   funcs   fs   maps   filters   lens   default(   s   Vs   xs   defaults   funcs   specials   f(    (    sH   /home/packages/reportlab/reportlab_2_0/reportlab/graphics/charts/axes.pys   _findMinMaxValue3   s    ! c         C   s   t  |  | | t d | ƒSd S(   s   find minimum over V[i][x]s   specialN(   s   _findMinMaxValues   Vs   xs   defaults   mins   special(   s   Vs   xs   defaults   special(    (    sH   /home/packages/reportlab/reportlab_2_0/reportlab/graphics/charts/axes.pys   _findMin>   s     c         C   s   t  |  | | t d | ƒSd S(   s   find maximum over V[i][x]s   specialN(   s   _findMinMaxValues   Vs   xs   defaults   maxs   special(   s   Vs   xs   defaults   special(    (    sH   /home/packages/reportlab/reportlab_2_0/reportlab/graphics/charts/axes.pys   _findMaxB   s     c         C   sF   x; |  D]3 } y t | ƒ | j o d Sn Wq d Sq Xq Wd Sd S(   s   true if all values are inti    i   N(   s   valuess   vs   int(   s   valuess   v(    (    sH   /home/packages/reportlab/reportlab_2_0/reportlab/graphics/charts/axes.pys   _allIntF   s       s   _AxisGc           B   s\   t  Z d „  Z d „  Z d „  Z d „  Z d „  Z e d „ Z e d „ Z	 e e d „ Z
 RS(	   Nc         C   s/   |  i | ƒ } y | d } Wn n X| Sd  S(   Ni    (   s   selfs   scales   v(   s   selfs   v(    (    sH   /home/packages/reportlab/reportlab_2_0/reportlab/graphics/charts/axes.pys   _get_line_posP   s    c         C   s4   |  i | ƒ } t | |  i | | |  i | ƒ Sd  S(   N(   s   selfs   _get_line_poss   xs   Lines   _ys   starts   end(   s   selfs   xs   starts   end(    (    sH   /home/packages/reportlab/reportlab_2_0/reportlab/graphics/charts/axes.pys   _cxLineX   s    c         C   s4   |  i | ƒ } t |  i | | |  i | | ƒ Sd  S(   N(   s   selfs   _get_line_poss   ys   Lines   _xs   starts   end(   s   selfs   ys   starts   end(    (    sH   /home/packages/reportlab/reportlab_2_0/reportlab/graphics/charts/axes.pys   _cyLine\   s    c   	      C   s…   |  i | ƒ } |  i | } |  i | } t | | ƒ t	 | | ƒ f \ } } | | } t | | | | | | | | g d d ƒSd  S(   Ns   strokeLineJoini   (   s   selfs   _get_line_poss   xs   _ys   starts   y0s   ends   y1s   mins   maxs   _3d_dxs   x1s   PolyLines   _3d_dy(	   s   selfs   xs   starts   ends   _3d_dxs   _3d_dys   y0s   y1s   x1(    (    sH   /home/packages/reportlab/reportlab_2_0/reportlab/graphics/charts/axes.pys	   _cxLine3d`   s    $
c   	      C   s…   |  i | ƒ } |  i | } |  i | } t | | ƒ t	 | | ƒ f \ } } | | } t | | | | | | | | g d d ƒSd  S(   Ns   strokeLineJoini   (   s   selfs   _get_line_poss   ys   _xs   starts   x0s   ends   x1s   mins   maxs   _3d_dys   y1s   PolyLines   _3d_dx(	   s   selfs   ys   starts   ends   _3d_dxs   _3d_dys   y1s   x0s   x1(    (    sH   /home/packages/reportlab/reportlab_2_0/reportlab/graphics/charts/axes.pys	   _cyLine3dh   s    $
c         C   s™   t  | d t ƒ } | t j	 oI t  | d t ƒ } |  i o |  i p |  i } | | | | | d „ Sn. |  i o |  i p |  i } | | | d „ Sd  S(   Ns   _3d_dxs   _3d_dyc         C   s   | |  | | d | d | ƒS(   Ns   _3d_dxs   _3d_dy(   s   fs   vs   ss   es   _3d_dxs   _3d_dy(   s   vs   ss   es   fs   _3d_dxs   _3d_dy(    (    sH   /home/packages/reportlab/reportlab_2_0/reportlab/graphics/charts/axes.pys   <lambda>u   s    c         C   s   | |  | | ƒ S(   N(   s   fs   vs   ss   e(   s   vs   ss   es   f(    (    sH   /home/packages/reportlab/reportlab_2_0/reportlab/graphics/charts/axes.pys   <lambda>x   s    (   s   getattrs   parents   Nones   _3d_dxs   _3d_dys   selfs
   _dataIndexs	   _cyLine3ds	   _cxLine3ds   fs   starts   ends   _cyLines   _cxLine(   s   selfs   starts   ends   parents   fs   _3d_dys   _3d_dx(    (    sH   /home/packages/reportlab/reportlab_2_0/reportlab/graphics/charts/axes.pys   _getLineFuncp   s    c         C   sa   |  i | | | ƒ }
 xE |  i D]: }	 |
 |	 ƒ } | | _	 | | _
 | | _ | i | ƒ q Wd  S(   N(   s   selfs   _getLineFuncs   starts   ends   parents   funcs   _tickValuess   ts   Ls   strokeColors   strokeWidths   strokeDashArrays   gs   add(   s   selfs   gs   starts   ends   strokeColors   strokeWidths   strokeDashArrays   parents   Ls   ts   func(    (    sH   /home/packages/reportlab/reportlab_2_0/reportlab/graphics/charts/axes.pys
   _makeLinesz   s    
 			c      	   C   sÙ   |  i } |  i } | o: | t j o | d } | t j o | d | d } n |  i } |  i	 o | p | o
 | t j	 oT |  i
 o |  i } n
 |  i } |  i | | | | | | |  i |  i d | ƒn d S(   s)   this is only called by a container objecti    i   s   parentN(   s   selfs	   gridStarts   ss   gridEnds   es   dims   Nones   gridStrokeColors   cs   visibleGrids
   _dataIndexs   _xs   offss   _ys
   _makeLiness   gs   gridStrokeWidths   gridStrokeDashArrays   parent(   s   selfs   gs   dims   parents   es   offss   cs   s(    (    sH   /home/packages/reportlab/reportlab_2_0/reportlab/graphics/charts/axes.pys   makeGridƒ   s     		#	%
 	(   s   __name__s
   __module__s   _get_line_poss   _cxLines   _cyLines	   _cxLine3ds	   _cyLine3ds   Nones   _getLineFuncs
   _makeLiness   makeGrid(    (    (    sH   /home/packages/reportlab/reportlab_2_0/reportlab/graphics/charts/axes.pys   _AxisGO   s   					
	s   CategoryAxisc        .   B   så  t  Z d  Z d Z e d e e d d ƒd e e d d ƒd e e d d ƒd	 e e d d
 ƒd e e d d ƒd e e d d ƒd e e d d ƒd e e	 d d ƒd e e d d ƒd e e d d ƒd e e	 d d ƒd e e
 d d ƒd e e
 d d ƒd e e d d ƒd e e d d  ƒd! e e d d" ƒd# e e
 d d$ ƒd% e e d d& ƒd' e e d( d) d* ƒ d+ ƒ d, e e d- d. d/ ƒ d d0 ƒd1 e e d d2 ƒƒ Z d3 „  Z d4 „  Z e d5 „ Z d6 „  Z d7 „  Z d8 „  Z RS(9   s+   Abstract category axis, unusable in itself.i   s   visibles   descs   Display entire object, if true.s   visibleAxiss   Display axis line, if true.s   visibleTickss   Display axis ticks, if true.s   visibleLabelss   Display axis labels, if true.s   visibleGrids   Display axis grid, if true.s   strokeWidths   Width of axis line and ticks.s   strokeColors   Color of axis line and ticks.s   strokeDashArrays   Dash array used for axis line.s   gridStrokeWidths   Width of grid lines.s   gridStrokeColors   Color of grid lines.s   gridStrokeDashArrays   Dash array used for grid lines.s	   gridStarts#   Start of grid lines wrt axis origins   gridEnds!   End of grid lines wrt axis origins   labelss   Handle of the axis labels.s   categoryNamess   List of category names.s   joinAxiss   Join both axes if true.s   joinAxisPoss*   Position at which to join with other axis.s   reverseDirections#   If true reverse category direction.s   styles   parallels   stackeds   parallel_3ds$   How common category bars are plotteds   labelAxisModes   highs   lows   axiss*   Like joinAxisMode, but for the axis labelss	   tickShifts   Tick shift typicallyc         C   s(  |  i i d j p
 t d ‚ d |  _ d |  _ d |  _ d |  _ d |  _ d |  _	 d |  _
 d |  _ d |  _ d |  _ t d |  _ t d |  _ d	 |  _ t d |  _ t d |  _ d |  _ |  _ t t ƒ |  _ t |  _ t |  _ t |  _ t |  _ d
 |  _ d |  _ d |  _  t |  _! d |  _" d  S(   Ns   CategoryAxiss(   Abstract Class CategoryAxis Instantiatedi2   id   i    i   s   strokeColors   strokeDashArrayf0.25s   axiss   parallel(#   s   selfs	   __class__s   __name__s   AssertionErrors   _xs   _ys   _lengths	   _catCounts   visibles   visibleAxiss   visibleTickss   visibleLabelss   visibleGrids   strokeWidths   STATE_DEFAULTSs   strokeColors   strokeDashArrays   gridStrokeWidths   gridStrokeColors   gridStrokeDashArrays	   gridStarts   gridEnds   TypedPropertyCollections   Labels   labelss   Nones   categoryNamess   joinAxiss   joinAxisPoss   joinAxisModes   labelAxisModes   reverseDirections   styles   _labelTextFormats	   tickShift(   s   self(    (    sH   /home/packages/reportlab/reportlab_2_0/reportlab/graphics/charts/axes.pys   __init__¬   s6    																			c         C   s   | |  _ | |  _ | |  _ d  S(   N(   s   xs   selfs   _xs   ys   _ys   lengths   _length(   s   selfs   xs   ys   length(    (    sH   /home/packages/reportlab/reportlab_2_0/reportlab/graphics/charts/axes.pys   setPositionÔ   s    		c         C   sM   t  t t | ƒ ƒ |  _ | p |  i t |  i p d ƒ |  _	 |  i
 ƒ  d  S(   Ni   (   s   maxs   maps   lens   multiSeriess   selfs	   _catCounts   barWidths   _lengths   floats	   _barWidths   _calcTickmarkPositions(   s   selfs   multiSeriess   barWidth(    (    sH   /home/packages/reportlab/reportlab_2_0/reportlab/graphics/charts/axes.pys	   configureÛ   s    'c         C   sb   |  i } |  i o8 g  i } t | ƒ D] } | | d ƒ q' ~ |  _ n t	 | d ƒ |  _ d  S(   Nf0.5i   (
   s   selfs	   _catCounts   ns	   tickShifts   appends   _[1]s   xranges   ts   _tickValuess   range(   s   selfs   ns   _[1]s   t(    (    sH   /home/packages/reportlab/reportlab_2_0/reportlab/graphics/charts/axes.pys   _calcTickmarkPositionsà   s    	
8c         C   s]   t  ƒ  } |  i o | Sn | i |  i ƒ  ƒ | i |  i ƒ  ƒ | i |  i ƒ  ƒ | Sd  S(   N(   s   Groups   gs   selfs   visibles   adds   makeAxiss	   makeTickss   makeTickLabels(   s   selfs   g(    (    sH   /home/packages/reportlab/reportlab_2_0/reportlab/graphics/charts/axes.pys   drawç   s    	c         C   s'   |  i o |  i | d } n | Sd  S(   Ni   (   s   selfs   reverseDirections	   _catCounts   idx(   s   selfs   idx(    (    sH   /home/packages/reportlab/reportlab_2_0/reportlab/graphics/charts/axes.pys   _scaleó   s    
 (   s   __name__s
   __module__s   __doc__s   _nodocs   AttrMaps   AttrMapValues	   isBooleans   isNumbers   isColorOrNones   isListOfNumbersOrNones   isNumberOrNones   Nones   isListOfStringsOrNones   OneOfs   _attrMaps   __init__s   setPositions	   configures   _calcTickmarkPositionss   draws   _scale(    (    (    sH   /home/packages/reportlab/reportlab_2_0/reportlab/graphics/charts/axes.pys   CategoryAxis‘   s:    	(			c         C   s@   |  i i } | d d j p | d  d j p t d | ‚ d  S(   Ni    s   Yi   s   AdjYs/   Cannot connect to other axes (%s), but Y- ones.(   s   axiss	   __class__s   __name__s   acns   AssertionError(   s   axiss   acn(    (    sH   /home/packages/reportlab/reportlab_2_0/reportlab/graphics/charts/axes.pys   _assertYAxis÷   s    c         C   s@   |  i i } | d d j p | d  d j p t d | ‚ d  S(   Ni    s   Xi   s   NormalDateXs/   Cannot connect to other axes (%s), but X- ones.(   s   axiss	   __class__s   __name__s   acns   AssertionError(   s   axiss   acn(    (    sH   /home/packages/reportlab/reportlab_2_0/reportlab/graphics/charts/axes.pys   _assertXAxisú   s    s   XCategoryAxisc           B   sÂ   t  Z d  Z e d e d e e d d ƒd e e d d ƒd e e d d	 d
 d e ƒ d d ƒƒ Z	 d Z
 d „  Z d „  Z d e d „ Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z RS(   s   X/category axiss   BASEs   tickUps   descs   Tick length up the axis.s   tickDowns   Tick length down the axis.s   joinAxisModes   bottoms   tops   values   pointssI   Mode used for connecting axis ('bottom', 'top', 'value', 'points', None).i    c         C   s;   t  i |  ƒ d |  i _ d |  i _ d |  _ d |  _ d  S(   Ns   niûÿÿÿi    i   (   s   CategoryAxiss   __init__s   selfs   labelss	   boxAnchors   dys   tickUps   tickDown(   s   self(    (    sH   /home/packages/reportlab/reportlab_2_0/reportlab/graphics/charts/axes.pys   __init__  s
    	c         C   sš   |  i d d d ƒ |  i d d d d d f g ƒ d d	 d
 d d g |  _ d |  i _ d |  i d _ d |  i d _ t d d ƒ } | i	 |  ƒ | Sd  S(   Ni   iF   iŒ   i
   i   i(   i2   s   Ones   Twos   Threes   Fours   Fives   ns   ei   iZ   iÈ   id   (
   s   selfs   setPositions	   configures   categoryNamess   labelss	   boxAnchors   angles   Drawings   ds   add(   s   selfs   d(    (    sH   /home/packages/reportlab/reportlab_2_0/reportlab/graphics/charts/axes.pys   demo  s    c         C   s¼   t  | ƒ | d j o | i |  _ | i |  _ n† | d j o# | i |  _ | i | i |  _ nV | d j o" | i |  _ | i | ƒ |  _ n' | d j o | i |  _ | |  _ n d S(   s!   Join with y-axis using some mode.s   bottoms   tops   values   pointsN(	   s   _assertYAxiss   yAxiss   modes   _xs   selfs   _ys   _lengths   scales   pos(   s   selfs   yAxiss   modes   pos(    (    sH   /home/packages/reportlab/reportlab_2_0/reportlab/graphics/charts/axes.pys
   joinToAxis%  s     
c         C   s‡   |  i } | os |  i } |  i } |  i } | d d f j o | | d | ƒqƒ | d d f j o | | d | d | ƒqƒ n d  S(   Ns   bottoms   tops   modes   values   pointss   pos(	   s   selfs   joinAxiss   jas   joinAxisModes   jams   joinAxisPoss   japs
   joinToAxiss   jta(   s   selfs   jams   jtas   jas   jap(    (    sH   /home/packages/reportlab/reportlab_2_0/reportlab/graphics/charts/axes.pys   _joinToAxis6  s    				c         C   s(   |  i |  i | ƒ |  i |  i f Sd S(   s>   returns the x position and width in drawing units of the sliceN(   s   selfs   _xs   _scales   idxs	   _barWidth(   s   selfs   idx(    (    sH   /home/packages/reportlab/reportlab_2_0/reportlab/graphics/charts/axes.pys   scaleA  s     c         C   s‡   t  ƒ  } |  i ƒ  |  i o | Sn t |  i |  i |  i |  i |  i ƒ } |  i
 | _
 |  i | _ |  i | _ | i | ƒ | Sd  S(   N(   s   Groups   gs   selfs   _joinToAxiss   visibleAxiss   Lines   _xs   _ys   _lengths   axiss   strokeColors   strokeWidths   strokeDashArrays   add(   s   selfs   gs   axis(    (    sH   /home/packages/reportlab/reportlab_2_0/reportlab/graphics/charts/axes.pys   makeAxisE  s    	
 (c         C   sh   t  ƒ  } |  i o | Sn |  i p |  i o0 |  i | |  i |  i |  i |  i |  i	 ƒ n | Sd  S(   N(
   s   Groups   gs   selfs   visibleTickss   tickUps   tickDowns
   _makeLiness   strokeColors   strokeWidths   strokeDashArray(   s   selfs   g(    (    sH   /home/packages/reportlab/reportlab_2_0/reportlab/graphics/charts/axes.pys	   makeTicksR  s    	 0c         C   s_   |  i } | oD |  i } | d j o | i SqT | d j o | i | i SqT n |  i Sd  S(   Ns   lows   high(   s   selfs   joinAxiss   axiss   labelAxisModes   modes   _ys   _length(   s   selfs   modes   axis(    (    sH   /home/packages/reportlab/reportlab_2_0/reportlab/graphics/charts/axes.pys   _labelAxisPosY  s    		c         C   s  t  ƒ  } |  i o | Sn |  i } | t j	 oÞ |  i } t | ƒ } |  i
 }
 |  i } |  i ƒ  } |  i } xŸ t | ƒ D] } |
 o | | d } n | } | | j o q{ n | | d | }	 |  i | } | i |	 | ƒ | i | | p d ƒ | i | ƒ q{ Wn | Sd  S(   Ni   f0.5s    (   s   Groups   gs   selfs   visibleLabelss   categoryNamess   Nones	   _catCounts   catCounts   lens   ns   reverseDirections	   _barWidths   barWidths   _labelAxisPoss   _ys   _xs   xranges   is   ics   xs   labelss   labels	   setOrigins   setTexts   add(   s   selfs   catCounts   categoryNamess   gs   _xs   is   _ys   barWidths   ns   xs   reverseDirections   ics   label(    (    sH   /home/packages/reportlab/reportlab_2_0/reportlab/graphics/charts/axes.pys   makeTickLabelsc  s0    	 					   (   s   __name__s
   __module__s   __doc__s   AttrMaps   CategoryAxiss   AttrMapValues   isNumbers   OneOfs   Nones   _attrMaps
   _dataIndexs   __init__s   demos
   joinToAxiss   _joinToAxiss   scales   makeAxiss	   makeTickss   _labelAxisPoss   makeTickLabels(    (    (    sH   /home/packages/reportlab/reportlab_2_0/reportlab/graphics/charts/axes.pys   XCategoryAxisþ   s$    						
						
s   YCategoryAxisc           B   sÅ   t  Z d  Z e d e d e e d d ƒd e e d d ƒd e e d d	 d
 d e f ƒ d d ƒƒ Z	 d Z
 d „  Z d „  Z d e d „ Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z RS(   s   Y/category axiss   BASEs   tickLefts   descs   Tick length left of the axis.s	   tickRights   Tick length right of the axis.s   joinAxisModes   lefts   rights   values   pointssI   Mode used for connecting axis ('left', 'right', 'value', 'points', None).i   c         C   s;   t  i |  ƒ d |  i _ d |  i _ d |  _ d |  _ d  S(   Ns   eiûÿÿÿi   i    (   s   CategoryAxiss   __init__s   selfs   labelss	   boxAnchors   dxs   tickLefts	   tickRight(   s   self(    (    sH   /home/packages/reportlab/reportlab_2_0/reportlab/graphics/charts/axes.pys   __init__  s
    	c         C   sŽ   |  i d d d ƒ |  i d d d f g ƒ d d d g |  _ d	 |  i _ d
 |  i d _ d |  i d _ t d d ƒ } | i	 |  ƒ | Sd  S(   Ni2   i
   iP   i   i   s   Ones   Twos   Threes   es   si   iZ   iÈ   id   (
   s   selfs   setPositions	   configures   categoryNamess   labelss	   boxAnchors   angles   Drawings   ds   add(   s   selfs   d(    (    sH   /home/packages/reportlab/reportlab_2_0/reportlab/graphics/charts/axes.pys   demo—  s    c         C   sÜ   t  | ƒ | d j o$ | i d |  _ | i d |  _ nž | d j o+ | i | i d |  _ | i d |  _ nf | d j o* | i | ƒ d |  _ | i d |  _ n/ | d j o! | d |  _ | i d |  _ n d S(   s!   Join with x-axis using some mode.s   leftf1.0s   rights   values   pointsN(	   s   _assertXAxiss   xAxiss   modes   _xs   selfs   _ys   _lengths   scales   pos(   s   selfs   xAxiss   modes   pos(    (    sH   /home/packages/reportlab/reportlab_2_0/reportlab/graphics/charts/axes.pys
   joinToAxis¥  s     
c         C   s‡   |  i } | os |  i } |  i } |  i } | d d f j o | | d | ƒqƒ | d d f j o | | d | d | ƒqƒ n d  S(   Ns   lefts   rights   modes   values   pointss   pos(	   s   selfs   joinAxiss   jas   joinAxisModes   jams   joinAxisPoss   japs
   joinToAxiss   jta(   s   selfs   jams   jtas   jas   jap(    (    sH   /home/packages/reportlab/reportlab_2_0/reportlab/graphics/charts/axes.pys   _joinToAxis·  s    				c         C   s(   |  i |  i | ƒ |  i |  i f Sd S(   s?   Returns the y position and width in drawing units of the slice.N(   s   selfs   _ys   _scales   idxs	   _barWidth(   s   selfs   idx(    (    sH   /home/packages/reportlab/reportlab_2_0/reportlab/graphics/charts/axes.pys   scaleÂ  s     c         C   s‡   t  ƒ  } |  i ƒ  |  i o | Sn t |  i |  i |  i |  i |  i ƒ } |  i
 | _
 |  i | _ |  i | _ | i | ƒ | Sd  S(   N(   s   Groups   gs   selfs   _joinToAxiss   visibleAxiss   Lines   _xs   _ys   _lengths   axiss   strokeColors   strokeWidths   strokeDashArrays   add(   s   selfs   gs   axis(    (    sH   /home/packages/reportlab/reportlab_2_0/reportlab/graphics/charts/axes.pys   makeAxisÆ  s    	
 (c         C   sh   t  ƒ  } |  i o | Sn |  i p |  i o0 |  i | |  i |  i |  i |  i |  i	 ƒ n | Sd  S(   N(
   s   Groups   gs   selfs   visibleTickss   tickLefts	   tickRights
   _makeLiness   strokeColors   strokeWidths   strokeDashArray(   s   selfs   g(    (    sH   /home/packages/reportlab/reportlab_2_0/reportlab/graphics/charts/axes.pys	   makeTicksÓ  s    	 0c         C   s_   |  i } | oD |  i } | d j o | i SqT | d j o | i | i SqT n |  i Sd  S(   Ns   lows   high(   s   selfs   joinAxiss   axiss   labelAxisModes   modes   _xs   _length(   s   selfs   modes   axis(    (    sH   /home/packages/reportlab/reportlab_2_0/reportlab/graphics/charts/axes.pys   _labelAxisPosÚ  s    		c         C   s  t  ƒ  } |  i o | Sn |  i } | t j	 oä |  i } t | ƒ } |  i
 } |  i } |  i } |  i ƒ  } |  i }
 xœ t | ƒ D]Š } | o | | d } n | } | | j o q„ n |
 | d | }	 | | } | i | |	 ƒ | i | | p d ƒ | i | ƒ q„ Wn | Sd  S(   Ni   f0.5s    (   s   Groups   gs   selfs   visibleTickss   categoryNamess   Nones	   _catCounts   catCounts   lens   ns   reverseDirections	   _barWidths   barWidths   labelss   _labelAxisPoss   _xs   _ys   xranges   is   ics   ys   labels	   setOrigins   setTexts   add(   s   selfs   catCounts   categoryNamess   gs   _xs   is   labelss   barWidths   ns   ys   _ys   reverseDirections   ics   label(    (    sH   /home/packages/reportlab/reportlab_2_0/reportlab/graphics/charts/axes.pys   makeTickLabelsä  s2    	 						   
(   s   __name__s
   __module__s   __doc__s   AttrMaps   CategoryAxiss   AttrMapValues   isNumbers   OneOfs   Nones   _attrMaps
   _dataIndexs   __init__s   demos
   joinToAxiss   _joinToAxiss   scales   makeAxiss	   makeTickss   _labelAxisPoss   makeTickLabels(    (    (    sH   /home/packages/reportlab/reportlab_2_0/reportlab/graphics/charts/axes.pys   YCategoryAxis~  s$    						
						
s	   ValueAxisc        =   B   sÛ  t  Z d  Z e d e e e e d ƒ f ƒ d d ƒd e e d d ƒd e e d d ƒd	 e e d d
 ƒd e e d d ƒd e e d d ƒd e e d d ƒd e e	 d d ƒd e e
 d d ƒd e e d d ƒd e e	 d d ƒd e e
 d d ƒd e e d d ƒd e e d d ƒd e e d d  ƒd! e e d d" ƒd# e e d d$ ƒd% e e d d& ƒd' e e d d( ƒd) e e d d* ƒd+ e e d d, ƒd- e e d d. ƒd/ e e d d0 ƒd1 e e
 d d2 ƒd3 e e e e e d4 d5 d6 d7 d8 d7 ƒf ƒ d d9 ƒd: e e d; d< d= d> ƒ d? ƒ d@ e e d dA ƒdB e e dC dD dE ƒ dF ƒ ƒ Z dG „  Z dH „  Z dI „  Z h  dJ „ Z dK „  Z dL „  Z dM „  Z dN „  Z dO „  Z dP „  Z dQ „  Z dR „  Z dS „  Z dT „  Z RS(U   s(   Abstract value axis, unusable in itself.s	   forceZeros   nears   descs   Ensure zero in range if true.s   visibles   Display entire object, if true.s   visibleAxiss   Display axis line, if true.s   visibleLabelss   Display axis labels, if true.s   visibleTickss   Display axis ticks, if true.s   visibleGrids   Display axis grid, if true.s   strokeWidths   Width of axis line and ticks.s   strokeColors   Color of axis line and ticks.s   strokeDashArrays   Dash array used for axis line.s   gridStrokeWidths   Width of grid lines.s   gridStrokeColors   Color of grid lines.s   gridStrokeDashArrays   Dash array used for grid lines.s	   gridStarts#   Start of grid lines wrt axis origins   gridEnds!   End of grid lines wrt axis origins   minimumTickSpacings)   Minimum value for distance between ticks.s   maximumTickss   Maximum number of ticks.s   labelss   Handle of the axis labels.s   labelTextFormats3   Formatting string or function used for axis labels.s   labelTextPostFormats   Extra Formatting string.s   labelTextScales   Scaling for label tick values.s   valueMins   Minimum value on axis.s   valueMaxs   Maximum value on axis.s	   valueSteps   Step size used between ticks.s
   valueStepss&   List of step sizes used between ticks.s   avoidBoundFracs   emptyOKi    s   loi   s   his.   Fraction of interval to allow above and below.s
   rangeRounds   nones   boths   ceilings   floors   How to round the axis limitss
   zrangePrefs!   Zero range axis limit preference.s   styles   normals   stackeds   parallel_3ds   How values are plotted!c         C   s[  |  i i d j p
 t d ‚ d |  _ d |  _ d |  _ d |  _ d |  _ d |  _	 d |  _
 d |  _ d |  _ d |  _ d |  _ t d |  _ t d |  _ d	 |  _ t d |  _ t d |  _ d |  _ |  _ t t ƒ |  _ d |  i _ d
 |  _ d |  _ t |  _ |  _ |  _  |  _! t |  _" t |  _# t |  _$ t |  _% d |  _& d |  _' d |  _( d  S(   Ns	   ValueAxiss%   Abstract Class ValueAxis Instantiatedi    i2   id   i   s   strokeColors   strokeDashArrayf0.25i
   i   s   nones   normal()   s   selfs	   __class__s   __name__s   AssertionErrors   _configureds   _xs   _ys   _lengths   visibles   visibleAxiss   visibleLabelss   visibleTickss   visibleGrids	   forceZeros   strokeWidths   STATE_DEFAULTSs   strokeColors   strokeDashArrays   gridStrokeWidths   gridStrokeColors   gridStrokeDashArrays	   gridStarts   gridEnds   TypedPropertyCollections   Labels   labelss   angles   minimumTickSpacings   maximumTickss   Nones   _labelTextFormats   labelTextFormats   labelTextPostFormats   labelTextScales   valueMins   valueMaxs	   valueSteps   avoidBoundFracs
   rangeRounds
   zrangePrefs   style(   s   self(    (    sH   /home/packages/reportlab/reportlab_2_0/reportlab/graphics/charts/axes.pys   __init__!  s<    																				c         C   s+   | d |  _ | d |  _ | d |  _ d  S(   Nf1.0(   s   xs   selfs   _xs   ys   _ys   lengths   _length(   s   selfs   xs   ys   length(    (    sH   /home/packages/reportlab/reportlab_2_0/reportlab/graphics/charts/axes.pys   setPositionQ  s    c         C   s.   |  i | ƒ |  i ƒ  |  i ƒ  d |  _ d S(   s=  Let the axis configure its scale and range based on the data.

        Called after setPosition. Let it look at a list of lists of
        numbers determine the tick mark intervals.  If valueMin,
        valueMax and valueStep are configured then it
        will use them; if any of them are set to None it
        will look at the data and make some sensible decision.
        You may override this to build custom axes with
        irregular intervals.  It creates an internal
        variable self._values, which is a list of numbers
        to use in plotting.
        i   N(   s   selfs	   _setRanges
   dataSeriess   _calcTickmarkPositionss   _calcScaleFactors   _configured(   s   selfs
   dataSeries(    (    sH   /home/packages/reportlab/reportlab_2_0/reportlab/graphics/charts/axes.pys	   configureW  s
     

c   	      C   sç   y | | f } | | } WnÂ | |  _ | |  _ |  i ƒ  } t
 | ƒ d j o | d | d } nZ |  i } t |  _ |  i ƒ  } | |  _ t
 | ƒ d j o | d | d } n
 |  i } | | | d f } | | <n X| Sd  S(   Ni   i    f1e-08(   s   valueMins   valueMaxs   Ks   caches   rs   selfs	   _valueMins	   _valueMaxs   _calcTickPositionss   Ts   lens	   valueSteps   oVSs   Nones
   _valueStep(	   s   selfs   valueMins   valueMaxs   caches   oVSs	   valueSteps   rs   Ts   K(    (    sH   /home/packages/reportlab/reportlab_2_0/reportlab/graphics/charts/axes.pys   _getValueStepAndTicksi  s$    						c         C   sª  |  i } } |  i } } |  i }	 | t j o  t | |  i	 d ƒ } |  _
 n | t j o  t | |  i	 d ƒ } |  _ n | | j oÞ | d j oœ | t j o
 | t j o] t |  d d ƒ } | d j o | } d } q/| d j  o d } | } q/d } d } qd|  i t j o d } qdd } qh| d j o d | } d } qhd } d | } n t |  d t ƒ oÇ t t | d d ƒ ƒ } d } | | | } | |  _ | |  _ | |  i |  _ | | d	 „ } | t j o& t | |  i	 d d
 | ƒ} |  _
 n | t j o& t | |  i	 d d
 | ƒ} |  _ qBn |  i } | ow | d j o- t t | ƒ t | ƒ ƒ d | | j } n | o2 | d j  o
 d } qÅ| d j o
 d } qÅqÉn |  i } t |  d t ƒ } | o | } t | ƒ t  t! f j o | | f } n |	 d j	 o | } | o( |	 d d g j } |	 d d g j } n d } } | p | } h  } | }
 | } d } xõ| o
 | d j oà| d 7} d } | oð |  i) | | | ƒ \ } } } | | d } | | d } | o | d } n | } |
 | } t | ƒ | j o | | | j o | } d } n | o | d } n | } | | } t | ƒ | j o | | | j o | } d } qªn | oÎ |  i) | | | ƒ \ } } } | oO | | d | j  o | d | } d } q%| | d | j } | d } n | oO | | d | j o | d | } d } q{| | d | j } | d } qqqW| | f \ |  _1 |  _2 |  i3 ƒ  d S(   sÔ   Set minimum and maximum axis values.

        The dataSeries argument is assumed to be a list of data
        vectors. Each vector is itself a list or tuple of numbers.

        Returns a min, max tuple.
        i    s
   zrangePreff0.01f1.2f0.0s   _bubblePloti   f0.25c         C   sa   y |  d } Wn t j
 o t d } n X| | | d 9} | |  | | |  | | ƒ Sd  S(   Ni   f0.10000000000000001f0.5(   s   Ts   vs
   IndexErrors	   bubbleMAxs   bubbleVs	   bubbleMaxs   funcs   x(   s   Ts   xs   funcs   bubbleVs	   bubbleMaxs   v(    (    sH   /home/packages/reportlab/reportlab_2_0/reportlab/graphics/charts/axes.pys   special­  s    s   specials   neari   s
   valueStepss   nones   boths   floors   ceilingi
   i   iÿÿÿÿN(4   s   selfs   valueMins   oMins   valueMaxs   oMaxs
   rangeRounds   Nones   _findMins
   dataSeriess
   _dataIndexs
   _cValueMins   _findMaxs
   _cValueMaxs   getattrs   zrps   floats	   bubbleMaxs   fracs   bubbleVs   _bubbleVs
   _bubbleMaxs   _lengths   _bubbleRadiuss   specials	   forceZeros   mins   abss   avoidBoundFracs   abfs   do_rrs   do_abfs   types	   TupleTypes   ListTypes   rrns   rrxs   gos   caches   cMins   cMaxs   iters   _getValueStepAndTickss	   valueSteps   Ts   fuzzs   i0s   i1s   vs   us	   _valueMins	   _valueMaxs   _rangeAdjust(   s   selfs
   dataSeriess   valueMins   do_abfs	   valueSteps   rrxs   gos   cMaxs   specials
   rangeRounds   cMins   abfs   zrps   caches   do_rrs   valueMaxs   fracs   i1s   i0s	   forceZeros   oMins   Ts   oMaxs   rrns	   bubbleMaxs   iters   fuzzs   us   vs   bubbleV(    (    sH   /home/packages/reportlab/reportlab_2_0/reportlab/graphics/charts/axes.pys	   _setRange  sÌ     	    




		 & *	- 
 	
 
 
$
 
$

c         C   s   d S(   sŸ   Override this if you want to alter the calculated range.

        E.g. if want a minumamum range of 30% or don't want 100%
        as the first point.
        N(    (   s   self(    (    sH   /home/packages/reportlab/reportlab_2_0/reportlab/graphics/charts/axes.pys   _rangeAdjustø  s     c         C   s   d S(   s…   Override if you want to put slack at the ends of the axis
        eg if you don't want the last tick to be at the bottom etc
        N(    (   s   self(    (    sH   /home/packages/reportlab/reportlab_2_0/reportlab/graphics/charts/axes.pys   _adjustAxisTicks   s     c         C   s+   |  i t |  i |  i ƒ |  _ |  i Sd S(   s‡   Calculate the axis' scale factor.
        This should be called only *after* the axis' range is set.
        Returns a number.
        N(   s   selfs   _lengths   floats	   _valueMaxs	   _valueMins   _scaleFactor(   s   self(    (    sH   /home/packages/reportlab/reportlab_2_0/reportlab/graphics/charts/axes.pys   _calcScaleFactor  s      c         C   sb  |  i ƒ  |  i |  i |  i f \ } }
 } d | } |  i	 } t
 t | ƒ | ƒ } | | }	 | d d f j o# |	 | | j o | d 8} q³ n  |	 | | j  o | d 7} n t
 t |
 ƒ | ƒ } | | }	 | d d f j o# |	 |
 | j  o | d 7} q(n  |	 |
 | j o | d 8} n g  i } t | | d ƒ D] } | | | ƒ qC~ Sd  S(   Nf1e-08s   boths   floori   s   ceiling(   s   selfs   _calcValueSteps	   _valueMins	   _valueMaxs
   _valueSteps   valueMins   valueMaxs	   valueSteps   fuzzs
   rangeRounds   ints   floats   i0s   vs   i1s   appends   _[1]s   xranges   i(   s   selfs   valueMins
   rangeRounds   is   i0s	   valueSteps   i1s   fuzzs   _[1]s   vs   valueMax(    (    sH   /home/packages/reportlab/reportlab_2_0/reportlab/graphics/charts/axes.pys   _calcTickPositions  s&    
!
	
  
  c         C   sN   t  |  d t ƒ |  _ |  i o |  i Sn |  i ƒ  |  _ |  i ƒ  |  i Sd S(   sK   Calculate a list of tick positions on the axis.  Returns a list of numbers.s
   valueStepsN(   s   getattrs   selfs   Nones   _tickValuess   _calcTickPositionss   _adjustAxisTicks(   s   self(    (    sH   /home/packages/reportlab/reportlab_2_0/reportlab/graphics/charts/axes.pys   _calcTickmarkPositions  s     
 
c         C   ss   |  i t j oS |  i |  i } | t t |  i d ƒ t |  i	 ƒ |  i
 ƒ } t | ƒ |  _ n |  i |  _ d S(   s8   Calculate _valueStep for the axis or get from valueStep.i   N(   s   selfs	   valueSteps   Nones	   _valueMaxs	   _valueMins   rawRanges   mins   floats   maximumTickss   _lengths   minimumTickSpacings   rawIntervals   nextRoundNumbers
   _valueStep(   s   selfs   rawRanges   rawInterval(    (    sH   /home/packages/reportlab/reportlab_2_0/reportlab/graphics/charts/axes.pys   _calcValueStep'  s     0c         C   s   t  |  i ƒ Sd  S(   N(   s   _allInts   selfs   _tickValues(   s   self(    (    sH   /home/packages/reportlab/reportlab_2_0/reportlab/graphics/charts/axes.pys   _allIntTicks0  s    c         C   s  t  ƒ  }	 |  i o |	 Sn |  i }
 |
 t j o( |  i p |  i ƒ  o d p t	 }
 n% |
 t	 j o
 |  i ƒ  o
 d }
 n |  i
 } |  i } |  i |  i g } |  i } |  i } d } xF|  i D];} |
 o | | i o|  i | ƒ } | t j	 o | | } n | } t |
 ƒ t j o |
 | } no t |
 ƒ t t f j o+ | t  |
 ƒ j  o |
 | } qžd } n+ t! |
 ƒ o |
 | ƒ } n t" d |
 ‚ | o | | } n | | } | | | <t$ | i% | ƒ | i& | ƒ |	 i' | ƒ n | d } qÄ W|	 Sd  S(   Ns   %.0fi    s    s   Invalid labelTextFormat %si   ((   s   Groups   gs   selfs   visibleLabelss   _labelTextFormats   fs   Nones   labelTextFormats   _allIntTickss   strs   labelTextPostFormats   posts   labelTextScales   scls   _xs   _ys   poss
   _dataIndexs   ds   labelss   is   _tickValuess   ticks   visibles   scales   vs   ts   types
   StringTypes   txts	   TupleTypes   ListTypes   lens   callables
   ValueErrors   labels   applys	   setOrigins   setTexts   add(   s   selfs   scls   labelss   poss   txts   ticks   labels   posts   ds   gs   fs   is   ts   v(    (    sH   /home/packages/reportlab/reportlab_2_0/reportlab/graphics/charts/axes.pys   makeTickLabels3  sN    	 	( 
				
  
 

c         C   s]   t  ƒ  } |  i o | Sn | i |  i ƒ  ƒ | i |  i ƒ  ƒ | i |  i ƒ  ƒ | Sd  S(   N(   s   Groups   gs   selfs   visibles   adds   makeAxiss	   makeTickss   makeTickLabels(   s   selfs   g(    (    sH   /home/packages/reportlab/reportlab_2_0/reportlab/graphics/charts/axes.pys   draw^  s    	(   s   __name__s
   __module__s   __doc__s   AttrMaps   AttrMapValues   EitherOrs	   isBooleans   OneOfs   isNumbers   isColorOrNones   isListOfNumbersOrNones   isNumberOrNones   Nones
   SequenceOfs   _attrMaps   __init__s   setPositions	   configures   _getValueStepAndTickss	   _setRanges   _rangeAdjusts   _adjustAxisTickss   _calcScaleFactors   _calcTickPositionss   _calcTickmarkPositionss   _calcValueSteps   _allIntTickss   makeTickLabelss   draw(    (    (    sH   /home/packages/reportlab/reportlab_2_0/reportlab/graphics/charts/axes.pys	   ValueAxisÿ  sV    '6!	0			y									+s
   XValueAxisc           B   sÔ   t  Z d  Z e d e d e e d d ƒd e e d d ƒd e e d d ƒd	 e e d
 d d d e ƒ d d ƒd e e	 d d ƒƒ Z
 d Z d „  Z d „  Z d
 e d „ Z d „  Z d „  Z d „  Z d „  Z RS(   s   X/value axiss   BASEs   tickUps   descs   Tick length up the axis.s   tickDowns   Tick length down the axis.s   joinAxiss   Join both axes if true.s   joinAxisModes   bottoms   tops   values   pointssI   Mode used for connecting axis ('bottom', 'top', 'value', 'points', None).s   joinAxisPoss*   Position at which to join with other axis.i    c         C   sb   t  i |  ƒ d |  i _ d |  i _ d |  i _ d |  _ d |  _ t	 |  _
 t	 |  _ t	 |  _ d  S(   Ns   ni    iûÿÿÿi   (   s	   ValueAxiss   __init__s   selfs   labelss	   boxAnchors   dxs   dys   tickUps   tickDowns   Nones   joinAxiss   joinAxisModes   joinAxisPos(   s   self(    (    sH   /home/packages/reportlab/reportlab_2_0/reportlab/graphics/charts/axes.pys   __init__~  s    				c         C   sV   |  i d d d ƒ |  i d d d d d f g ƒ t d d ƒ } | i |  ƒ | Sd  S(	   Ni   i2   i–   i
   i   i(   iÈ   id   (   s   selfs   setPositions	   configures   Drawings   ds   add(   s   selfs   d(    (    sH   /home/packages/reportlab/reportlab_2_0/reportlab/graphics/charts/axes.pys   demo  s
    c         C   sÜ   t  | ƒ | d j o$ | i d |  _ | i d |  _ nž | d j o+ | i d |  _ | i | i d |  _ nf | d j o* | i d |  _ | i | ƒ d |  _ n/ | d j o! | i d |  _ | d |  _ n d S(   s!   Join with y-axis using some mode.s   bottomf1.0s   tops   values   pointsN(	   s   _assertYAxiss   yAxiss   modes   _xs   selfs   _ys   _lengths   scales   pos(   s   selfs   yAxiss   modes   pos(    (    sH   /home/packages/reportlab/reportlab_2_0/reportlab/graphics/charts/axes.pys
   joinToAxis–  s     
c         C   s‡   |  i } | os |  i } |  i } |  i } | d d f j o | | d | ƒqƒ | d d f j o | | d | d | ƒqƒ n d  S(   Ns   bottoms   tops   modes   values   pointss   pos(	   s   selfs   joinAxiss   jas   joinAxisModes   jams   joinAxisPoss   japs
   joinToAxiss   jta(   s   selfs   jams   jtas   jas   jap(    (    sH   /home/packages/reportlab/reportlab_2_0/reportlab/graphics/charts/axes.pys   _joinToAxis¦  s    				c         C   sN   d } |  i p
 t | ‚ | t j o
 d } n |  i |  i | |  i Sd S(   sú   Converts a numeric value to a Y position.

        The chart first configures the axis, then asks it to
        work out the x value for each point when plotting
        lines or bars.  You could override this to do
        logarithmic axes.
        s1   Axis cannot scale numbers before it is configuredi    N(	   s   msgs   selfs   _configureds   AssertionErrors   values   Nones   _xs   _scaleFactors	   _valueMin(   s   selfs   values   msg(    (    sH   /home/packages/reportlab/reportlab_2_0/reportlab/graphics/charts/axes.pys   scale±  s     
c         C   s‡   t  ƒ  } |  i ƒ  |  i o | Sn t |  i |  i |  i |  i |  i ƒ } |  i
 | _
 |  i | _ |  i | _ | i | ƒ | Sd  S(   N(   s   Groups   gs   selfs   _joinToAxiss   visibleAxiss   Lines   _xs   _ys   _lengths   axiss   strokeColors   strokeWidths   strokeDashArrays   add(   s   selfs   gs   axis(    (    sH   /home/packages/reportlab/reportlab_2_0/reportlab/graphics/charts/axes.pys   makeAxisÁ  s    	
 (c         C   s_   t  ƒ  } |  i o |  i p |  i o0 |  i | |  i |  i |  i |  i |  i	 ƒ n | Sd  S(   N(
   s   Groups   gs   selfs   visibleTickss   tickUps   tickDowns
   _makeLiness   strokeColors   strokeWidths   strokeDashArray(   s   selfs   g(    (    sH   /home/packages/reportlab/reportlab_2_0/reportlab/graphics/charts/axes.pys	   makeTicksÎ  s    	0(   s   __name__s
   __module__s   __doc__s   AttrMaps	   ValueAxiss   AttrMapValues   isNumbers   Nones   OneOfs   isNumberOrNones   _attrMaps
   _dataIndexs   __init__s   demos
   joinToAxiss   _joinToAxiss   scales   makeAxiss	   makeTicks(    (    (    sH   /home/packages/reportlab/reportlab_2_0/reportlab/graphics/charts/axes.pys
   XValueAxisk  s(    															s   NormalDateXValueAxisc           B   s%  t  Z d  Z e d e d e e d d ƒd e e d d ƒd e e d d ƒd	 e e d d
 ƒd e e d d ƒd e e	 e
 d d d d d d ƒd d ƒd e e	 e
 d d d d d d ƒd d ƒd e e d d ƒƒ 	Z e i Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z RS(    s×   An X axis applying additional rules.

    Depending on the data and some built-in rules, the axis
    displays normalDate values as nicely formatted dates.

    The client chart should have NormalDate X values.
    s   BASEs   bottomAxisLabelSlacks   descs.   Fractional amount used to adjust label spacings	   niceMonths$   Flag for displaying months 'nicely'.s   forceEndDates0   Flag for enforced displaying of last date value.s   forceFirstDates1   Flag for enforced displaying of first date value.s   xLabelFormats3   Label format string (e.g. '{mm}/{yy}') or function.s   dayOfWeekNames   emptyOKi    s   loi   s   his   Weekday names.s	   monthNamei   s   Month names.s	   dailyFreqsA   True if we are to assume daily data to be ticked at end of month.c         K   s¡   t  t i |  f ƒ d |  _ d |  _ d |  _ d |  _ d |  _ d |  _	 d d d d d	 d
 d g |  _
 d d d d d d d d d d d d g |  _ t |  _ d  S(   Nf0.10000000000000001i   i    s	   {mm}/{yy}s   Mondays   Tuesdays	   Wednesdays   Thursdays   Fridays   Saturdays   Sundays   Januarys   Februarys   Marchs   Aprils   Mays   Junes   Julys   Augusts	   Septembers   Octobers   Novembers   December(   s   applys
   XValueAxiss   __init__s   selfs   bottomAxisLabelSlacks	   niceMonths   forceEndDates   forceFirstDates	   dailyFreqs   xLabelFormats   dayOfWeekNames	   monthNames   Nones
   valueSteps(   s   selfs   kw(    (    sH   /home/packages/reportlab/reportlab_2_0/reportlab/graphics/charts/axes.pys   __init__ê  s    						-c         C   s!   |  i ƒ  } | i | ƒ | Sd S(   s'   Convert a scalar to a NormalDate value.N(   s   selfs   _valueClasss   ds	   normalizes   x(   s   selfs   xs   d(    (    sH   /home/packages/reportlab/reportlab_2_0/reportlab/graphics/charts/axes.pys
   _scalar2NDù  s     c         C   s‘   t  | t i ƒ o |  i | ƒ } n t i t i f \ } } z2 |  i
 |  i f \ t _ t _ | i |  i ƒ SWd | | f \ t _ t _ Xd S(   s(   Create a formatted label for some value.N(   s
   isinstances   vs
   normalDates
   NormalDates   selfs
   _scalar2NDs   _dayOfWeekNames
   _monthNames   ds   ms   dayOfWeekNames	   monthNames   formatMSs   xLabelFormat(   s   selfs   vs   ds   m(    (    sH   /home/packages/reportlab/reportlab_2_0/reportlab/graphics/charts/axes.pys   _dateFormatterÿ  s      c         C   s‡  |  i } |  i }	 |  i } | i | i | i f \ } } } | i	 | i
 | i f \ } } } t t i |	 | d ƒ d ƒ | | | p d | | | ƒ }
 t |
 d |
 d |
 d |
 d | ƒ }
 |
 d |
 d } |
 d |
 d } t | | i |  i ƒ } | | |  i } t | ƒ } g  } g  } |  i } | |	 | | d „ } x<d d d d d	 d
 d d f D]} | | } | | j o | | | j oî| d } |  i" oY | d i# ƒ  | d	 j o | p d	 } | o& |  i% o | | ƒ n | | } qþn y$ | d i# ƒ  | d i# ƒ  j } Wn d } n Xx& | | j o | | ƒ | | } q5W|  i' o | d | d j oM | d ƒ | | d | d | d | d | j o | d =| d =qÇn |  i% o |  i" o | oC | | d | d | d | d | j o | d =| d =q%n y6 | d o | d | d j o | d =| d =n Wn t( j
 o n X| | f SqcqcWd S(   s7   Complex stuff...

        Needs explanation...
        i    s   
f1.2i   i   i   c         C   s2   | i d | |  ƒ | i d | | |  ƒ ƒ d  S(   Ni    (   s   tickss   inserts   xValss   is   labelss	   formatter(   s   is   xValss	   formatters   tickss   labels(    (    sH   /home/packages/reportlab/reportlab_2_0/reportlab/graphics/charts/axes.pys   addTick!  s    i   i   i   i<   ix   iÿÿÿÿiþÿÿÿN()   s   selfs   _lengths
   axisLengths   _dateFormatters	   formatters   labelss   fontNames   fontSizes   leadings
   textAnchors	   boxAnchors   angles   _textBoxLimitss   strings   splits   xValss   RBLs   _rotatedBoxLimitss   xLabelWs   xLabelHs   maxs   widths   minimumTickSpacings   ws   bottomAxisLabelSlacks   Ws   lens   ns   tickss   maximumTickss   addTicks   ds   ks   is	   niceMonths   months   js   forceEndDates   wfds   forceFirstDates
   IndexError(   s   selfs   xValss   fontNames   labelss	   boxAnchors   angles   leadings   tickss   fontSizes	   formatters   RBLs   Ws
   textAnchors   ds   xLabelWs   is
   axisLengths   ks   js   wfds   ns   maximumTickss   ws   addTicks   xLabelH(    (    sH   /home/packages/reportlab/reportlab_2_0/reportlab/graphics/charts/axes.pys   _xAxisTicker
  sd     			!!(	 


(
 $
 

-- c         C   sv   |  i } xf | D]^ } xU t t | ƒ ƒ D]A } | | \ } } t
 | | ƒ o | | ƒ | f | | <q) q) Wq Wd S(   s1   Convert all XValues to a standard normalDate typeN(   s   selfs   _valueClasss   VCs   datas   Ds   xranges   lens   is   xs   ys
   isinstance(   s   selfs   datas   VCs   Ds   is   ys   x(    (    sH   /home/packages/reportlab/reportlab_2_0/reportlab/graphics/charts/axes.pys
   _convertXVH  s     	  c   	      C   sÚ   |  i o­ g  } d } | d } xO | D]G } | i ƒ  } | | j o" | o | i	 | ƒ n | } n | } q' W| d } | d | j o | i	 | ƒ n |  i
 | ƒ \ } } n |  i
 | ƒ \ } } | | f Sd  S(   Ni    iÿÿÿÿ(   s   selfs	   dailyFreqs   xEOMs   pms   xValss   pxs   xs   months   ms   appends   _xAxisTickers   stepss   labels(	   s   selfs   xValss   labelss   ms   xEOMs   stepss   xs   pxs   pm(    (    sH   /home/packages/reportlab/reportlab_2_0/reportlab/graphics/charts/axes.pys   _getStepsAndLabelsR  s$    

  


 c         C   sÿ   |  i | ƒ d k l } t | t d „  | ƒ g  ƒ } | i ƒ  |  i	 | ƒ \ } } |  i |  i f \ } } | t j o | d } n | t j o | d } n | | f \ |  _ |  _ | |  _ | |  _ |  i t | | ƒ |  _ | |  _ d |  _ d  S(   N(   s   unionc         C   s   t  d „  |  ƒ S(   Nc         C   s   |  d S(   Ni    (   s   dv(   s   dv(    (    sH   /home/packages/reportlab/reportlab_2_0/reportlab/graphics/charts/axes.pys   <lambda>g  s    (   s   maps   x(   s   x(    (    sH   /home/packages/reportlab/reportlab_2_0/reportlab/graphics/charts/axes.pys   <lambda>g  s    i    iÿÿÿÿi   (   s   selfs
   _convertXVs   datas   reportlab.lib.set_opss   unions   reduces   maps   xValss   sorts   _getStepsAndLabelss   stepss   labelss   valueMins   valueMaxs   Nones	   _valueMins	   _valueMaxs   _tickValuess   _labelTextFormats   _lengths   floats   _scaleFactors   _configured(   s   selfs   datas   xValss   unions   labelss   valueMins   stepss   valueMax(    (    sH   /home/packages/reportlab/reportlab_2_0/reportlab/graphics/charts/axes.pys	   configured  s     
  			(   s   __name__s
   __module__s   __doc__s   AttrMaps
   XValueAxiss   AttrMapValues   isNumbers	   isBooleans   Nones
   SequenceOfs   isStrings   _attrMaps
   normalDates   NDs   _valueClasss   __init__s
   _scalar2NDs   _dateFormatters   _xAxisTickers
   _convertXVs   _getStepsAndLabelss	   configure(    (    (    sH   /home/packages/reportlab/reportlab_2_0/reportlab/graphics/charts/axes.pys   NormalDateXValueAxisÔ  s$    	**					>	
	s
   YValueAxisc           B   s×   t  Z d  Z e d e d e e d d ƒd e e d d ƒd e e d d ƒd	 e e d
 d d d e f ƒ d d ƒd e e	 d d ƒƒ Z
 d Z d „  Z d „  Z d
 e d „ Z d „  Z d „  Z d „  Z d „  Z RS(   s   Y/value axiss   BASEs   tickLefts   descs   Tick length left of the axis.s	   tickRights   Tick length right of the axis.s   joinAxiss   Join both axes if true.s   joinAxisModes   lefts   rights   values   pointssI   Mode used for connecting axis ('left', 'right', 'value', 'points', None).s   joinAxisPoss*   Position at which to join with other axis.i   c         C   sb   t  i |  ƒ d |  i _ d |  i _ d |  i _ d |  _ d |  _ t	 |  _
 t	 |  _ t	 |  _ d  S(   Ns   eiûÿÿÿi    i   (   s	   ValueAxiss   __init__s   selfs   labelss	   boxAnchors   dxs   dys	   tickRights   tickLefts   Nones   joinAxiss   joinAxisModes   joinAxisPos(   s   self(    (    sH   /home/packages/reportlab/reportlab_2_0/reportlab/graphics/charts/axes.pys   __init__ˆ  s    				c         C   sY   d d d d f g } |  i d d d ƒ |  i | ƒ t d d ƒ } | i |  ƒ | Sd  S(   Ni
   i   i   i*   id   iP   iÈ   (   s   datas   selfs   setPositions	   configures   Drawings   drawings   add(   s   selfs   datas   drawing(    (    sH   /home/packages/reportlab/reportlab_2_0/reportlab/graphics/charts/axes.pys   demo—  s    c         C   sÜ   t  | ƒ | d j o$ | i d |  _ | i d |  _ nž | d j o+ | i | i d |  _ | i d |  _ nf | d j o* | i | ƒ d |  _ | i d |  _ n/ | d j o! | d |  _ | i d |  _ n d S(   s!   Join with x-axis using some mode.s   leftf1.0s   rights   values   pointsN(	   s   _assertXAxiss   xAxiss   modes   _xs   selfs   _ys   _lengths   scales   pos(   s   selfs   xAxiss   modes   pos(    (    sH   /home/packages/reportlab/reportlab_2_0/reportlab/graphics/charts/axes.pys
   joinToAxis¢  s     
c         C   s‡   |  i } | os |  i } |  i } |  i } | d d f j o | | d | ƒqƒ | d d f j o | | d | d | ƒqƒ n d  S(   Ns   lefts   rights   modes   values   pointss   pos(	   s   selfs   joinAxiss   jas   joinAxisModes   jams   joinAxisPoss   japs
   joinToAxiss   jta(   s   selfs   jams   jtas   jas   jap(    (    sH   /home/packages/reportlab/reportlab_2_0/reportlab/graphics/charts/axes.pys   _joinToAxis²  s    				c         C   sN   d } |  i p
 t | ‚ | t j o
 d } n |  i |  i | |  i Sd S(   sú   Converts a numeric value to a Y position.

        The chart first configures the axis, then asks it to
        work out the x value for each point when plotting
        lines or bars.  You could override this to do
        logarithmic axes.
        s1   Axis cannot scale numbers before it is configuredi    N(	   s   msgs   selfs   _configureds   AssertionErrors   values   Nones   _ys   _scaleFactors	   _valueMin(   s   selfs   values   msg(    (    sH   /home/packages/reportlab/reportlab_2_0/reportlab/graphics/charts/axes.pys   scale½  s     
c         C   s‡   t  ƒ  } |  i ƒ  |  i o | Sn t |  i |  i |  i |  i |  i ƒ } |  i
 | _
 |  i | _ |  i | _ | i | ƒ | Sd  S(   N(   s   Groups   gs   selfs   _joinToAxiss   visibleAxiss   Lines   _xs   _ys   _lengths   axiss   strokeColors   strokeWidths   strokeDashArrays   add(   s   selfs   gs   axis(    (    sH   /home/packages/reportlab/reportlab_2_0/reportlab/graphics/charts/axes.pys   makeAxisÎ  s    	
 (c         C   s_   t  ƒ  } |  i o |  i p |  i o0 |  i | |  i |  i |  i |  i |  i	 ƒ n | Sd  S(   N(
   s   Groups   gs   selfs   visibleTickss   tickLefts	   tickRights
   _makeLiness   strokeColors   strokeWidths   strokeDashArray(   s   selfs   g(    (    sH   /home/packages/reportlab/reportlab_2_0/reportlab/graphics/charts/axes.pys	   makeTicksÛ  s    	0(   s   __name__s
   __module__s   __doc__s   AttrMaps	   ValueAxiss   AttrMapValues   isNumbers   Nones   OneOfs   isNumberOrNones   _attrMaps
   _dataIndexs   __init__s   demos
   joinToAxiss   _joinToAxiss   scales   makeAxiss	   makeTicks(    (    (    sH   /home/packages/reportlab/reportlab_2_0/reportlab/graphics/charts/axes.pys
   YValueAxisu  s(    														s   AdjYValueAxisc           B   s•   t  Z d  Z e d e d e e d d ƒd e e d d ƒd e e d d ƒd	 e e d d
 ƒd e e	 e e
 f ƒ d d ƒƒ Z d „  Z d „  Z RS(   s”   A Y-axis applying additional rules.

    Depending on the data and some built-in rules, the axis
    may choose to adjust its range and origin.
    s   BASEs   requiredRanges   descs   Minimum required value range.s   leftAxisPercents+   When true add percent sign to label values.s   leftAxisOrigShiftIPCs"   Lowest label shift interval ratio.s   leftAxisOrigShiftMins   Minimum amount to shift.s   leftAxisSkipLL0s8   Skip/Keep lowest tick label when true/false.
Or skiplistc         C   sM   t  t i |  f ƒ d |  _ d |  _ d |  _ d |  _ d |  _ t	 |  _
 d  S(   Ni   i   f0.14999999999999999i   i    (   s   applys
   YValueAxiss   __init__s   selfs   requiredRanges   leftAxisPercents   leftAxisOrigShiftIPCs   leftAxisOrigShiftMins   leftAxisSkipLL0s   Nones
   valueSteps(   s   self(    (    sH   /home/packages/reportlab/reportlab_2_0/reportlab/graphics/charts/axes.pys   __init__ï  s    					c         C   s+  d k  l } l } |  i |  i f \ } } |  i } t
 | d „ d d d d d d g ƒ } | o | g } n |  i |  i f \ } } | o | | | j  oò | | | d	 | d
 | ƒd  \ } } | | | j  o  | | d } t | | d | ƒ } t | | d | ƒ } | d j o
 | d j  o | d | } d } qv| d j o
 | d j  o | | } d } qvn | | f \ |  _ |  _ n | |  i |  i d d d	 | d |  i d
 | ƒ\ } } |  i } | o| d | d } t | ƒ t t f j o | | }
 } n | | d }
 | | d } t |  d | d ƒ }	 t |  d | d ƒ } |	 | d |
 j  o |  i |
 |  _ n | d | | j  o |  i | |  _ n | |  i |  i d d d	 | d |  i d
 | ƒ\ } } n | d |  _ | d |  _ | |  _  |  _! |  i" t# j o | |  _$ n |  i" |  _$ t% |  i d ƒ d j  oa |  i& ƒ  |  i |  i f \ } } t |  i) |  i* | | |  i+ |  i, ƒ } |  i | |  _ n |  i- of t |  i- ƒ t t f j o< x9 |  i- D]* } y d | | <Wqçt/ j
 o qçXqçWn d | d <n d S(   s$   Adjusts the value range of the axis.(   s   find_good_grids   ticksc         C   s
   |  | j S(   N(   s   xs   m(   s   xs   m(    (    sH   /home/packages/reportlab/reportlab_2_0/reportlab/graphics/charts/axes.pys   <lambda>þ  s    i   i   i   i   i   i	   s   ns   gridi   f0.5id   i    s   spliti   s   percents
   _cValueMins
   _cValueMaxiÿÿÿÿf9.9999999999999995e-07s    N(0   s   reportlab.graphics.charts.utilss   find_good_grids   tickss   selfs	   _valueMins	   _valueMaxs   y_mins   y_maxs   maximumTickss   ms   filters   ns	   valueSteps   requiredRanges   y1s   y2s   yms   mins   maxs   leftAxisPercents   Ts   Ls   avoidBoundFracs   abfs   i1s   types	   TupleTypes   ListTypes   i0s   getattrs   _ns   _xs   _tickValuess
   valueStepss   labelTextFormats   Nones   _labelTextFormats   abss   _calcValueSteps   vMaxs   vMins   leftAxisOrigShiftIPCs
   _valueSteps   leftAxisOrigShiftMins   _lengths   leftAxisSkipLL0s   xs
   IndexError(   s   selfs   vMins	   valueSteps   y1s   y2s   abfs   find_good_grids   _xs   tickss   _ns   i0s   yms   y_mins   i1s   Ls   Ts   requiredRanges   y_maxs   ms   ns   vMaxs   x(    (    sH   /home/packages/reportlab/reportlab_2_0/reportlab/graphics/charts/axes.pys   _rangeAdjustø  sr     	' %

6	  :


 (   s   __name__s
   __module__s   __doc__s   AttrMaps
   YValueAxiss   AttrMapValues   isNumberOrNones	   isBooleans   isNumbers   EitherOrs   isListOfNumberss   _attrMaps   __init__s   _rangeAdjust(    (    (    sH   /home/packages/reportlab/reportlab_2_0/reportlab/graphics/charts/axes.pys   AdjYValueAxisá  s    	$		c          C   sw   t  d d ƒ } d d f g }  t ƒ  } | i d d d ƒ | i |  ƒ d d g | _ d	 | i _	 | i
 | ƒ | Sd
 S(   s2   Sample drawing with one xcat axis and two buckets.i  iÈ   i
   i   iK   i,  s   Yings   Yangs   nN(   s   Drawings   drawings   datas   XCategoryAxiss   xAxiss   setPositions	   configures   categoryNamess   labelss	   boxAnchors   add(   s   datas   drawings   xAxis(    (    sH   /home/packages/reportlab/reportlab_2_0/reportlab/graphics/charts/axes.pys   sample0a8  s     	c          C   sq   t  d d ƒ } d f g }  t ƒ  } | i d d d ƒ | i |  ƒ d g | _ d | i _	 | i
 | ƒ | Sd S(	   s6   Sample drawing with one xcat axis and one bucket only.i  iÈ   i
   iK   i,  s   Yings   nN(   s   Drawings   drawings   datas   XCategoryAxiss   xAxiss   setPositions	   configures   categoryNamess   labelss	   boxAnchors   add(   s   datas   drawings   xAxis(    (    sH   /home/packages/reportlab/reportlab_2_0/reportlab/graphics/charts/axes.pys   sample0bJ  s     	c          C   sé   t  d d ƒ } d d d d f g } t ƒ  }  |  i d d d ƒ |  i | ƒ d	 d
 d d g |  _ d |  i _	 d |  i d _
 d |  i d _ d |  i d _ t ƒ  } | i d d d ƒ | i | ƒ | i |  ƒ | i | ƒ | Sd S(   s/   Sample drawing containing two unconnected axes.i  iÈ   i
   i   i   i*   iK   i,  s   Beers   Wines   Meats
   Cannellonis   niñÿÿÿi   s
   Times-Boldi2   i}   N(   s   Drawings   drawings   datas   XCategoryAxiss   xAxiss   setPositions	   configures   categoryNamess   labelss	   boxAnchors   dys   angles   fontNames
   YValueAxiss   yAxiss   add(   s   xAxiss   yAxiss   datas   drawing(    (    sH   /home/packages/reportlab/reportlab_2_0/reportlab/graphics/charts/axes.pys   sample1\  s"     		c          C   s©   t  d d ƒ } d d d d f g } t ƒ  }  |  i d d d ƒ |  i | ƒ t ƒ  } d	 | _	 |  | _
 d
 | _ d | _ | i | ƒ | i | ƒ | i |  ƒ | Sd S(   s@   Sample drawing, xvalue/yvalue axes, y connected at 100 pts to x.i  iÈ   i
   i   i   i*   i2   i}   i,  s   pointsid   N(   s   Drawings   drawings   datas
   YValueAxiss   yAxiss   setPositions	   configures
   XValueAxiss   xAxiss   _lengths   joinAxiss   joinAxisModes   joinAxisPoss   add(   s   yAxiss   xAxiss   datas   drawing(    (    sH   /home/packages/reportlab/reportlab_2_0/reportlab/graphics/charts/axes.pys   sample4a  s     						c          C   s©   t  d d ƒ } d d d d f g } t ƒ  }  |  i d d d ƒ |  i | ƒ t ƒ  } d	 | _	 |  | _
 d
 | _ d | _ | i | ƒ | i | ƒ | i |  ƒ | Sd S(   sA   Sample drawing, xvalue/yvalue axes, y connected at value 35 of x.i  iÈ   i
   i   i   i*   i2   i}   i,  s   valuei#   N(   s   Drawings   drawings   datas
   YValueAxiss   yAxiss   setPositions	   configures
   XValueAxiss   xAxiss   _lengths   joinAxiss   joinAxisModes   joinAxisPoss   add(   s   yAxiss   xAxiss   datas   drawing(    (    sH   /home/packages/reportlab/reportlab_2_0/reportlab/graphics/charts/axes.pys   sample4b3  s     						c          C   s    t  d d ƒ } d d d d f g } t ƒ  }  |  i d d d ƒ |  i | ƒ t ƒ  } d	 | _	 |  | _
 d
 | _ | i | ƒ | i | ƒ | i |  ƒ | Sd S(   s?   Sample drawing, xvalue/yvalue axes, y connected to bottom of x.i  iÈ   i
   i   i   i*   i2   i}   i,  s   bottomN(   s   Drawings   drawings   datas
   YValueAxiss   yAxiss   setPositions	   configures
   XValueAxiss   xAxiss   _lengths   joinAxiss   joinAxisModes   add(   s   yAxiss   xAxiss   datas   drawing(    (    sH   /home/packages/reportlab/reportlab_2_0/reportlab/graphics/charts/axes.pys   sample4cK  s     					c          C   sÄ   t  d d ƒ } d d d d f g } t ƒ  }  |  i d d d ƒ |  i | ƒ d	 |  _ d	 |  _ t	 ƒ  } d
 | _ |  | _ d | _ | i | ƒ d	 | _ d	 | _ | i | ƒ | i |  ƒ | Sd S(   s5   xvalue/yvalue axes, without drawing axis lines/ticks.i  iÈ   i
   i   i   i*   i2   i}   i    i,  s   bottomN(   s   Drawings   drawings   datas
   YValueAxiss   yAxiss   setPositions	   configures   visibleAxiss   visibleTickss
   XValueAxiss   xAxiss   _lengths   joinAxiss   joinAxisModes   add(   s   yAxiss   xAxiss   datas   drawing(    (    sH   /home/packages/reportlab/reportlab_2_0/reportlab/graphics/charts/axes.pys	   sample4c1b  s$     									c          C   s    t  d d ƒ } d d d d f g } t ƒ  }  |  i d d d ƒ |  i | ƒ t ƒ  } d	 | _	 |  | _
 d
 | _ | i | ƒ | i | ƒ | i |  ƒ | Sd S(   s<   Sample drawing, xvalue/yvalue axes, y connected to top of x.i  iÈ   i
   i   i   i*   i2   i}   i,  s   topN(   s   Drawings   drawings   datas
   YValueAxiss   yAxiss   setPositions	   configures
   XValueAxiss   xAxiss   _lengths   joinAxiss   joinAxisModes   add(   s   yAxiss   xAxiss   datas   drawing(    (    sH   /home/packages/reportlab/reportlab_2_0/reportlab/graphics/charts/axes.pys   sample4d}  s     					c          C   s³   t  d d ƒ } d d d d f g } t ƒ  } | i d d d ƒ | i | ƒ t ƒ  }  |  i d d d	 ƒ | |  _	 d
 |  _
 d |  _ |  i | ƒ | i | ƒ | i |  ƒ | Sd S(   s@   Sample drawing, xvalue/yvalue axes, y connected at 100 pts to x.i  iÈ   i
   i   i   i*   i2   i,  i}   s   pointsid   N(   s   Drawings   drawings   datas
   XValueAxiss   xAxiss   setPositions	   configures
   YValueAxiss   yAxiss   joinAxiss   joinAxisModes   joinAxisPoss   add(   s   yAxiss   xAxiss   datas   drawing(    (    sH   /home/packages/reportlab/reportlab_2_0/reportlab/graphics/charts/axes.pys   sample5a”  s     					c          C   s³   t  d d ƒ } d d d d f g } t ƒ  } | i d d d ƒ | i | ƒ t ƒ  }  |  i d d d	 ƒ | |  _	 d
 |  _
 d |  _ |  i | ƒ | i | ƒ | i |  ƒ | Sd S(   sA   Sample drawing, xvalue/yvalue axes, y connected at value 35 of x.i  iÈ   i
   i   i   i*   i2   i,  i}   s   valuei#   N(   s   Drawings   drawings   datas
   XValueAxiss   xAxiss   setPositions	   configures
   YValueAxiss   yAxiss   joinAxiss   joinAxisModes   joinAxisPoss   add(   s   yAxiss   xAxiss   datas   drawing(    (    sH   /home/packages/reportlab/reportlab_2_0/reportlab/graphics/charts/axes.pys   sample5b¬  s     					c          C   sª   t  d d ƒ } d d d d f g } t ƒ  } | i d d d ƒ | i | ƒ t ƒ  }  |  i d d d	 ƒ | |  _	 d
 |  _
 |  i | ƒ | i | ƒ | i |  ƒ | Sd S(   s>   Sample drawing, xvalue/yvalue axes, y connected at right of x.i  iÈ   i
   i   i   i*   i2   i,  i}   s   rightN(   s   Drawings   drawings   datas
   XValueAxiss   xAxiss   setPositions	   configures
   YValueAxiss   yAxiss   joinAxiss   joinAxisModes   add(   s   yAxiss   xAxiss   datas   drawing(    (    sH   /home/packages/reportlab/reportlab_2_0/reportlab/graphics/charts/axes.pys   sample5cÄ  s     				c          C   sª   t  d d ƒ } d d d d f g } t ƒ  } | i d d d ƒ | i | ƒ t ƒ  }  |  i d d d	 ƒ | |  _	 d
 |  _
 |  i | ƒ | i | ƒ | i |  ƒ | Sd S(   s=   Sample drawing, xvalue/yvalue axes, y connected at left of x.i  iÈ   i
   i   i   i*   i2   i,  i}   s   leftN(   s   Drawings   drawings   datas
   XValueAxiss   xAxiss   setPositions	   configures
   YValueAxiss   yAxiss   joinAxiss   joinAxisModes   add(   s   yAxiss   xAxiss   datas   drawing(    (    sH   /home/packages/reportlab/reportlab_2_0/reportlab/graphics/charts/axes.pys   sample5dÛ  s     				c          C   sÁ   t  d d ƒ } d d d d f g } t ƒ  }  |  i d d d ƒ |  i | ƒ t ƒ  } d	 | _	 | i | ƒ |  | _
 d
 | _ d d d d g | _ d | i _ | i | ƒ | i |  ƒ | Sd S(   s:   Sample drawing, xcat/yvalue axes, x connected at top of y.i  iÈ   i
   i   i   i*   i2   i}   i,  s   tops   Beers   Wines   Meats
   Cannellonis   nN(   s   Drawings   drawings   datas
   YValueAxiss   yAxiss   setPositions	   configures   XCategoryAxiss   xAxiss   _lengths   joinAxiss   joinAxisModes   categoryNamess   labelss	   boxAnchors   add(   s   yAxiss   xAxiss   datas   drawing(    (    sH   /home/packages/reportlab/reportlab_2_0/reportlab/graphics/charts/axes.pys   sample6aò  s      					c          C   sÁ   t  d d ƒ } d d d d f g } t ƒ  }  |  i d d d ƒ |  i | ƒ t ƒ  } d	 | _	 | i | ƒ |  | _
 d
 | _ d d d d g | _ d | i _ | i | ƒ | i |  ƒ | Sd S(   s=   Sample drawing, xcat/yvalue axes, x connected at bottom of y.i  iÈ   i
   i   i   i*   i2   i}   i,  s   bottoms   Beers   Wines   Meats
   Cannellonis   nN(   s   Drawings   drawings   datas
   YValueAxiss   yAxiss   setPositions	   configures   XCategoryAxiss   xAxiss   _lengths   joinAxiss   joinAxisModes   categoryNamess   labelss	   boxAnchors   add(   s   yAxiss   xAxiss   datas   drawing(    (    sH   /home/packages/reportlab/reportlab_2_0/reportlab/graphics/charts/axes.pys   sample6b  s      					c          C   sÊ   t  d d ƒ } d d d d f g } t ƒ  }  |  i d d d ƒ |  i | ƒ t ƒ  } d	 | _	 | i | ƒ |  | _
 d
 | _ d | _ d d d d g | _ d | i _ | i | ƒ | i |  ƒ | Sd S(   s>   Sample drawing, xcat/yvalue axes, x connected at 100 pts to y.i  iÈ   i
   i   i   i*   i2   i}   i,  s   pointsid   s   Beers   Wines   Meats
   Cannellonis   nN(   s   Drawings   drawings   datas
   YValueAxiss   yAxiss   setPositions	   configures   XCategoryAxiss   xAxiss   _lengths   joinAxiss   joinAxisModes   joinAxisPoss   categoryNamess   labelss	   boxAnchors   add(   s   yAxiss   xAxiss   datas   drawing(    (    sH   /home/packages/reportlab/reportlab_2_0/reportlab/graphics/charts/axes.pys   sample6c$  s"     						c          C   sÊ   t  d d ƒ } d d d d f g } t ƒ  }  |  i d d d ƒ |  i | ƒ t ƒ  } d	 | _	 | i | ƒ |  | _
 d
 | _ d | _ d d d d g | _ d | i _ | i | ƒ | i |  ƒ | Sd S(   s?   Sample drawing, xcat/yvalue axes, x connected at value 20 of y.i  iÈ   i
   i   i   i*   i2   i}   i,  s   values   Beers   Wines   Meats
   Cannellonis   nN(   s   Drawings   drawings   datas
   YValueAxiss   yAxiss   setPositions	   configures   XCategoryAxiss   xAxiss   _lengths   joinAxiss   joinAxisModes   joinAxisPoss   categoryNamess   labelss	   boxAnchors   add(   s   yAxiss   xAxiss   datas   drawing(    (    sH   /home/packages/reportlab/reportlab_2_0/reportlab/graphics/charts/axes.pys   sample6d>  s"     						c          C   sÁ   t  d d ƒ } d d d d f g } t ƒ  } d | _ | i | ƒ t ƒ  }  |  i	 d d d	 ƒ | |  _
 d
 |  _ d d d d g |  _ d |  i _ |  i | ƒ | i | ƒ | i |  ƒ | Sd S(   s<   Sample drawing, xvalue/ycat axes, y connected at right of x.i  iÈ   i
   i   i   i*   i,  i2   i}   s   rights   Beers   Wines   Meats
   Cannellonis   eN(   s   Drawings   drawings   datas
   XValueAxiss   xAxiss   _lengths	   configures   YCategoryAxiss   yAxiss   setPositions   joinAxiss   joinAxisModes   categoryNamess   labelss	   boxAnchors   add(   s   yAxiss   xAxiss   datas   drawing(    (    sH   /home/packages/reportlab/reportlab_2_0/reportlab/graphics/charts/axes.pys   sample7aX  s      					c          C   sÁ   t  d d ƒ } d d d d f g } t ƒ  } d | _ | i | ƒ t ƒ  }  |  i	 d d d	 ƒ | |  _
 d
 |  _ d d d d g |  _ d |  i _ |  i | ƒ | i | ƒ | i |  ƒ | Sd S(   s;   Sample drawing, xvalue/ycat axes, y connected at left of x.i  iÈ   i
   i   i   i*   i,  i2   i}   s   lefts   Beers   Wines   Meats
   Cannellonis   eN(   s   Drawings   drawings   datas
   XValueAxiss   xAxiss   _lengths	   configures   YCategoryAxiss   yAxiss   setPositions   joinAxiss   joinAxisModes   categoryNamess   labelss	   boxAnchors   add(   s   yAxiss   xAxiss   datas   drawing(    (    sH   /home/packages/reportlab/reportlab_2_0/reportlab/graphics/charts/axes.pys   sample7bq  s      					c          C   sÊ   t  d d ƒ } d d d d f g } t ƒ  } d | _ | i | ƒ t ƒ  }  |  i	 d d d	 ƒ | |  _
 d
 |  _ d |  _ d d d d g |  _ d |  i _ |  i | ƒ | i | ƒ | i |  ƒ | Sd S(   s?   Sample drawing, xvalue/ycat axes, y connected at value 30 of x.i  iÈ   i
   i   i   i*   i,  i2   i}   s   values   Beers   Wines   Meats
   Cannellonis   eN(   s   Drawings   drawings   datas
   XValueAxiss   xAxiss   _lengths	   configures   YCategoryAxiss   yAxiss   setPositions   joinAxiss   joinAxisModes   joinAxisPoss   categoryNamess   labelss	   boxAnchors   add(   s   yAxiss   xAxiss   datas   drawing(    (    sH   /home/packages/reportlab/reportlab_2_0/reportlab/graphics/charts/axes.pys   sample7cŠ  s"     						c          C   sÊ   t  d d ƒ } d d d d f g } t ƒ  } d | _ | i | ƒ t ƒ  }  |  i	 d d d	 ƒ | |  _
 d
 |  _ d |  _ d d d d g |  _ d |  i _ |  i | ƒ | i | ƒ | i |  ƒ | Sd S(   s>   Sample drawing, xvalue/ycat axes, y connected at 200 pts to x.i  iÈ   i
   i   i   i*   i,  i2   i}   s   pointss   Beers   Wines   Meats
   Cannellonis   eN(   s   Drawings   drawings   datas
   XValueAxiss   xAxiss   _lengths	   configures   YCategoryAxiss   yAxiss   setPositions   joinAxiss   joinAxisModes   joinAxisPoss   categoryNamess   labelss	   boxAnchors   add(   s   yAxiss   xAxiss   datas   drawing(    (    sH   /home/packages/reportlab/reportlab_2_0/reportlab/graphics/charts/axes.pys   sample7d¤  s"     						(J   s   __doc__s   __version__s   strings   typess   FunctionTypes
   StringTypes	   TupleTypes   ListTypes   reportlab.lib.validatorss   isNumbers   isNumberOrNones   isListOfStringsOrNones   isListOfNumberss   isListOfNumbersOrNones   isColorOrNones   OneOfs	   isBooleans
   SequenceOfs   isStrings   EitherOrs   reportlab.lib.attrmaps   reportlab.libs
   normalDates   reportlab.graphics.shapess   Drawings   Lines   PolyLines   Groups   STATE_DEFAULTSs   _textBoxLimitss   _rotatedBoxLimitss   reportlab.graphics.widgetbases   Widgets   TypedPropertyCollections$   reportlab.graphics.charts.textlabelss   Labels   reportlab.graphics.charts.utilss   nextRoundNumbers   Nones   _findMinMaxValues   _findMins   _findMaxs   _allInts   _AxisGs   CategoryAxiss   _assertYAxiss   _assertXAxiss   XCategoryAxiss   YCategoryAxiss	   ValueAxiss
   XValueAxiss   NormalDateXValueAxiss
   YValueAxiss   AdjYValueAxiss   sample0as   sample0bs   sample1s   sample4as   sample4bs   sample4cs	   sample4c1s   sample4ds   sample5as   sample5bs   sample5cs   sample5ds   sample6as   sample6bs   sample6cs   sample6ds   sample7as   sample7bs   sample7cs   sample7d(@   s   sample5ds   OneOfs   YCategoryAxiss   Groups   sample4bs   isColorOrNones   sample4as   _assertYAxiss   sample4ds   Labels   isListOfNumberss   EitherOrs   _findMinMaxValues   PolyLines
   normalDates   isNumberOrNones	   ValueAxiss   _AxisGs
   StringTypes   Widgets	   TupleTypes	   isBooleans   sample6ds
   SequenceOfs   isListOfStringsOrNones   _allInts   sample6as   sample6bs   sample4cs   sample7cs   Lines   __version__s   TypedPropertyCollections   sample0as   strings   sample5as   sample6cs   _rotatedBoxLimitss   sample5cs   isListOfNumbersOrNones   sample5bs   _textBoxLimitss   _findMaxs   ListTypes   sample7as   isNumbers   Drawings   STATE_DEFAULTSs   nextRoundNumbers
   YValueAxiss
   XValueAxiss   isStrings   _assertXAxiss   _findMins   sample0bs   CategoryAxiss   AdjYValueAxiss   sample7ds   sample1s   sample7bs   XCategoryAxiss   NormalDateXValueAxiss	   sample4c1s   FunctionType(    (    sH   /home/packages/reportlab/reportlab_2_0/reportlab/graphics/charts/axes.pys   ?    s\   	I1		Bf		€ÿ mi¡lW			¿																