;ò FÒ Fc@s|dkZyeiddZWnej o dZnXdfd„ƒYZdefd„ƒYZdd„Zd„ZdS( NiisrationalcBs†tZdZd„Zd„Zddd„Zd„Zd„Zd„Zd „Z d „Z d „Z e Z d „Z d „Zd„ZRS(s¸rational class performing some basic rational arithmetics the axis partitioning uses rational arithmetics (with infinite accuracy) basically it contains self.num and self.denomcCs©|iƒiddƒidƒ}t|ƒdjotd|ƒ‚n|didƒ}t|ƒdjotd|dƒ‚nt|ƒdjo|dd g}nd|_ t od t|dƒ|_ nd t|dƒ|_ t|dƒo|ddd j}|o|dd|d this is NOT checkedN(sselfs ticklevelsNonesothers labellevelslabel(sselfsother((sG/mnt/gmirror/ports/graphics/py-PyX/work/PyX-0.10/pyx/graph/axis/tick.pysmergeÚs33(s__name__s __module__s__doc__sNones__init__smerge(((sG/mnt/gmirror/ports/graphics/py-PyX/work/PyX-0.10/pyx/graph/axis/tick.pystickÆs  cCsû|}d}d}y¥xžno–xB||||jo,|i|||ƒ|d7}|d7}q#W||||jo.|o||i||ƒn|d7}n|d7}q WWn8tj o,|t|ƒjo|||7}qónX|SdS(s¹helper function to merge tick lists - return a merged list of ticks out of list1 and list2 - CAUTION: original lists have to be ordered (the returned list is also ordered)iiN( slist1sisjslist2sinserts mergeequalsmerges IndexErrorslen(slist1slist2s mergeequalsisj((sG/mnt/gmirror/ports/graphics/py-PyX/work/PyX-0.10/pyx/graph/axis/tick.pysmergeticklistsçs* cCs‹d}}xp|D]h}|itj o |i|jo|id}n|itj o |i|jo|id}qqW||fSdS(sIreturns a tuple maxticklevel, maxlabellevel from a list of tick instancesiiN(s maxticklevels maxlabellevelstickssticks ticklevelsNones labellevel(stickss maxlabellevelsticks maxticklevel((sG/mnt/gmirror/ports/graphics/py-PyX/work/PyX-0.10/pyx/graph/axis/tick.pys maxlevelss   (ssyssmaxintsautolongs OverflowErrorsrationalsticksmergeticklistss maxlevels(smergeticklistssautolongs maxlevelsssyssrationalstick((sG/mnt/gmirror/ports/graphics/py-PyX/work/PyX-0.10/pyx/graph/axis/tick.pys?s    £!