From 7524b79d5a3a54b0c69636803f84dd6847cc4b7c Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Tue, 2 May 2017 12:03:22 +0530 Subject: [PATCH] A spot of refactoring --- src/calibre/db/cli/cmd_list.py | 8 +------- src/calibre/db/cli/utils.py | 17 +++++++++++++++++ 2 files changed, 18 insertions(+), 7 deletions(-) create mode 100644 src/calibre/db/cli/utils.py diff --git a/src/calibre/db/cli/cmd_list.py b/src/calibre/db/cli/cmd_list.py index a135ce7634..3b321a9a32 100644 --- a/src/calibre/db/cli/cmd_list.py +++ b/src/calibre/db/cli/cmd_list.py @@ -7,10 +7,10 @@ from __future__ import absolute_import, division, print_function, unicode_litera import json import os import sys -import unicodedata from textwrap import TextWrapper from calibre import prints +from calibre.db.utils import str_width from calibre.ebooks.metadata import authors_to_string from calibre.utils.date import isoformat @@ -172,12 +172,6 @@ def do_list( output_table = prepare_output_table(fields, book_ids, data, metadata) widths = list(map(lambda x: 0, fields)) - def chr_width(x): - return 1 + unicodedata.east_asian_width(x).startswith('W') - - def str_width(x): - return sum(map(chr_width, x)) - for record in output_table: for j in range(len(fields)): widths[j] = max(widths[j], str_width(record[j])) diff --git a/src/calibre/db/cli/utils.py b/src/calibre/db/cli/utils.py new file mode 100644 index 0000000000..c09014486a --- /dev/null +++ b/src/calibre/db/cli/utils.py @@ -0,0 +1,17 @@ +#!/usr/bin/env python2 +# vim:fileencoding=utf-8 +# License: GPLv3 Copyright: 2017, Kovid Goyal + +from __future__ import absolute_import, division, print_function, unicode_literals + +import unicodedata + +eaw = unicodedata.east_asian_width + + +def chr_width(x): + return 1 + eaw(x).startswith('W') + + +def str_width(x): + return sum(map(chr_width, x))