3
bW! @ s d dl Z d dlZd dlmZ e jdkr0eZeZneZeZe jd
krfeZ e
ZefZe
Zdd Zdd Zn"eZ eZefZeZdd Zd d Zd
d ZdS ) N)Context c C s | j S )N)decode)x r /usr/lib/python3.6/_compat.pymaybe_decode s r c C s | j S )N)encode)r r r r maybe_encode s r
c C s | S )Nr )r r r r r s c C s | S )Nr )r r r r r
s c C s, t ttt| tjdjt| }t|S )z
Python 2 and Python 3 use different rounding strategies in round(). This
function ensures that results are python2/3 compatible and backward
compatible with previous py2 releases
:param what: float
:return: rounded long
)ZprecZrounding)r lenstrlongdecimalZ
ROUND_HALF_UPZcreate_decimal)Zwhatdr r r round_py2_compat# s
r )r )r )sysr r version_infointr
rangeZxranger Z text_typebytesZbinary_typeZstring_typeschrZunichrr r
ZunicodeZ
basestringr r r r r