mirror of
https://github.com/gryf/ebook-converter.git
synced 2026-01-30 02:05:45 +01:00
Moving human_readable formatting function out of __init__.
There is a module, where this function is used - formatter_functions. It is at the same time the only place where it is used. No need to clutter __init__.py with it.
This commit is contained in:
@@ -210,18 +210,3 @@ def force_unicode(obj, enc=constants_old.preferred_encoding):
|
|||||||
if isinstance(obj, bytes):
|
if isinstance(obj, bytes):
|
||||||
obj = obj.decode('utf-8')
|
obj = obj.decode('utf-8')
|
||||||
return obj
|
return obj
|
||||||
|
|
||||||
|
|
||||||
def human_readable(size, sep=' '):
|
|
||||||
""" Convert a size in bytes into a human readable form """
|
|
||||||
divisor, suffix = 1, "B"
|
|
||||||
for i, candidate in enumerate(('B', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB')):
|
|
||||||
if size < (1 << ((i + 1) * 10)):
|
|
||||||
divisor, suffix = (1 << (i * 10)), candidate
|
|
||||||
break
|
|
||||||
size = str(float(size)/divisor)
|
|
||||||
if size.find(".") > -1:
|
|
||||||
size = size[:size.find(".")+2]
|
|
||||||
if size.endswith('.0'):
|
|
||||||
size = size[:-2]
|
|
||||||
return size + sep + suffix
|
|
||||||
|
|||||||
@@ -6,7 +6,6 @@ Created on 13 Jan 2011
|
|||||||
import inspect, re, traceback, numbers
|
import inspect, re, traceback, numbers
|
||||||
from math import trunc
|
from math import trunc
|
||||||
|
|
||||||
from ebook_converter import human_readable
|
|
||||||
from ebook_converter.constants_old import DEBUG
|
from ebook_converter.constants_old import DEBUG
|
||||||
from ebook_converter.ebooks.metadata import title_sort
|
from ebook_converter.ebooks.metadata import title_sort
|
||||||
from ebook_converter.utils.config_base import tweaks
|
from ebook_converter.utils.config_base import tweaks
|
||||||
@@ -860,15 +859,29 @@ class BuiltinHumanReadable(BuiltinFormatterFunction):
|
|||||||
arg_count = 1
|
arg_count = 1
|
||||||
category = 'Formatting values'
|
category = 'Formatting values'
|
||||||
__doc__ = doc = ('human_readable(v) -- return a string '
|
__doc__ = doc = ('human_readable(v) -- return a string '
|
||||||
'representing the number v in KB, MB, GB, etc.'
|
'representing the number v in KB, MB, GB, etc.')
|
||||||
)
|
|
||||||
|
|
||||||
def evaluate(self, formatter, kwargs, mi, locals, val):
|
def evaluate(self, formatter, kwargs, mi, locals, val):
|
||||||
try:
|
try:
|
||||||
return human_readable(round(float(val)))
|
return self.human_readable(round(float(val)))
|
||||||
except:
|
except Exception:
|
||||||
return ''
|
return ''
|
||||||
|
|
||||||
|
def _human_readable(self, size, sep=' '):
|
||||||
|
""" Convert a size in bytes into a human readable form """
|
||||||
|
divisor, suffix = 1, "B"
|
||||||
|
for i, candidate in enumerate(('B', 'KB', 'MB', 'GB', 'TB', 'PB',
|
||||||
|
'EB')):
|
||||||
|
if size < (1 << ((i + 1) * 10)):
|
||||||
|
divisor, suffix = (1 << (i * 10)), candidate
|
||||||
|
break
|
||||||
|
size = str(float(size)/divisor)
|
||||||
|
if size.find(".") > -1:
|
||||||
|
size = size[:size.find(".")+2]
|
||||||
|
if size.endswith('.0'):
|
||||||
|
size = size[:-2]
|
||||||
|
return size + sep + suffix
|
||||||
|
|
||||||
|
|
||||||
class BuiltinFormatNumber(BuiltinFormatterFunction):
|
class BuiltinFormatNumber(BuiltinFormatterFunction):
|
||||||
name = 'format_number'
|
name = 'format_number'
|
||||||
|
|||||||
Reference in New Issue
Block a user