/usr/lib/python3/dist-packages/pyutilib/misc/format_io.py is in python3-pyutilib 5.3.5-1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 | # _________________________________________________________________________
#
# PyUtilib: A Python utility library.
# Copyright (c) 2008 Sandia Corporation.
# This software is distributed under the BSD License.
# Under the terms of Contract DE-AC04-94AL85000 with Sandia Corporation,
# the U.S. Government retains certain rights in this software.
# _________________________________________________________________________
def format_float(x, precision=None):
"""
Format float in a portable manner, standardizing the
number of digits in the exponent.
"""
if not type(x) is float:
raise TypeError("Argument "+str(x)+" is not a float")
tmp = str(x)
if not ("E" in tmp or "e" in tmp):
return tmp
if "+" in tmp:
sign="+"
else:
sign="-"
lst = tmp.split(sign)
if lst[0] == "" and len(lst) >= 2:
lst[1] = sign+lst[1]
lst=lst[1:]
if abs(x) <=1e-100 or abs(x) >= 1e100:
return tmp
else:
#
# Use a 2-digit exponent
#
i=0
while lst[1][i] == '0':
i += 1
return lst[0]+sign+lst[1][i:]
def format_io(x):
"""
Filter function for controlling the format of objects
"""
if type(x) is float:
return format_float(x)
return str(x)
|