Current Path : /usr/lib/python2.7/ |
Current File : //usr/lib/python2.7/fpformat.pyc |
ó ÿ–|_c @ sÁ d Z d d l m Z e d d d ƒ[ d d l Z d d d g Z e j d ƒ Z y d e f d „ ƒ YZ Wn e k r† d Z n Xd „ Z d „ Z d „ Z d „ Z d „ Z d „ Z d S( s8 General floating point formatting functions. Functions: fix(x, digits_behind) sci(x, digits_behind) Each takes a number or a string and a number of digits as arguments. Parameters: x: number to be formatted; or a string resembling a number digits_behind: number of digits behind the decimal point iÿÿÿÿ( t warnpy3ks2 the fpformat module has been removed in Python 3.0t stackleveli Nt fixt scit NotANumbers- ^([-+]?)0*(\d*)((?:\.\d*)?)(([eE][-+]?\d+)?)$c B s e Z RS( ( t __name__t __module__( ( ( s /usr/lib/python2.7/fpformat.pyR s s fpformat.NotANumberc C s¢ t j | ƒ } | d k r' t | ‚ n | j d d d d ƒ \ } } } } | d k r` d } n | rs | d } n | rŒ t | d ƒ } n d } | | | | f S( sÅ Return (sign, intpart, fraction, expo) or raise an exception: sign is '+' or '-' intpart is 0 or more digits beginning with a nonzero fraction is 0 or more digits expo is an integeri i i i t +t i N( t decodert matcht NoneR t groupt int( t st rest signt intpartt fractiont exppartt expo( ( s /usr/lib/python2.7/fpformat.pyt extract# s $ c C s¶ | d k rU t | ƒ } | | | | | } } | | k r¬ | d | | } q¬ nW | d k r¬ t | ƒ } | | | | | } } | | k r¬ d | | | } q¬ n | | f S( s5 Remove the exponent by changing intpart and fraction.i t 0( t len( R R R t ft i( ( s /usr/lib/python2.7/fpformat.pyt unexpo2 s c C s[ t | ƒ } | | k r. | | d | | f St | ƒ } | | d k rY d | d f S| | } | | | } | d k r&| | d } xH | d k r» | | d k r® Pn | d } qŽ Wd | } | d } d } | | t t | | ƒ d ƒ d t | ƒ | d } | | | | } } n | d k r@| | | f S| | d | d f Sd S( s* Round or extend the fraction to size digs.R i R t 5i t 9N( R t chrt ord( R R t digsR R t totalt nextdigitt n( ( s /usr/lib/python2.7/fpformat.pyt roundfrac@ s, 8c C sì t | ƒ t d ƒ k r' t | ƒ } n y t | ƒ \ } } } } Wn t k rW | SXt | | | ƒ \ } } t | | | ƒ \ } } x$ | r® | d d k r® | d } q‹ W| d k rÄ d } n | d k rà | | d | S| | Sd S( s‡ Format x as [-]ddd.ddd with 'digs' digits after the point and at least one digit before. If digs <= 0, the point is suppressed.R i R i t .N( t typet reprR R R R# ( t xR R R R R ( ( s /usr/lib/python2.7/fpformat.pyR Z s c C s t | ƒ t d ƒ k r' t | ƒ } n t | ƒ \ } } } } | s§ x. | ru | d d k ru | d } | d } qH W| rž | d | d } } | d } qÔ d } n- | t | ƒ d } | d | d | } } t d | ƒ } t | | | ƒ \ } } t | ƒ d k rB| d | d | d | t | ƒ d } } } n | | } | d k ri| d | } n t t | ƒ ƒ } d d t | ƒ | } | d k r¬d | } n d | } | d | S( s¥ Format x as [-]d.dddE[+-]ddd with 'digs' digits after the point and exactly one digit before. If digs is <= 0, one digit is kept and the point is suppressed.R i R i iÿÿÿÿR$ i t -R t e( R% R&