chg: [output] make readable table-like with bold headers

Official request from @C00kie-
This commit is contained in:
Alexandre Dulaunoy 2020-10-09 18:36:33 +02:00
parent 2c295e79cf
commit 98a8d8275e
Signed by: adulau
GPG key ID: 09E2CD4944E6CBCD
2 changed files with 9 additions and 7 deletions

View file

@ -37,7 +37,7 @@ optional arguments:
-f F file to analyse -f F file to analyse
-t T maximum value for the top list (default is 100) -1 is no limit -t T maximum value for the top list (default is 100) -1 is no limit
-s display the overall statistics (default is False) -s display the overall statistics (default is False)
-o O output format (default is csv), json -o O output format (default is csv), json, readable
-l L language used for the analysis (default is en) -l L language used for the analysis (default is en)
--verbatim Don't use the lemmatized form, use verbatim. (default is the --verbatim Don't use the lemmatized form, use verbatim. (default is the
lematized form) lematized form)

View file

@ -7,6 +7,7 @@ from spacy_langdetect import LanguageDetector
import argparse import argparse
import sys import sys
import simplejson as json import simplejson as json
from tabulate import tabulate
parser = argparse.ArgumentParser(description="Extract statistical analysis of text") parser = argparse.ArgumentParser(description="Extract statistical analysis of text")
parser.add_argument('-v', help="verbose output") parser.add_argument('-v', help="verbose output")
@ -120,9 +121,8 @@ for anal in analysis:
if args.o == "csv": if args.o == "csv":
print() print()
elif args.o == "readable": elif args.o == "readable":
print("") header = ["\033[1mTop {} of {}\033[0m".format(args.t, anal)]
print("+++++ Top {} of {} +++++".format(args.t, anal)) readable_table = []
print("")
elif args.o == "json": elif args.o == "json":
output_json.update({anal:[]}) output_json.update({anal:[]})
for a in x: for a in x:
@ -132,13 +132,15 @@ for anal in analysis:
if previous_value is None: if previous_value is None:
previous_value = a[1] previous_value = a[1]
elif previous_value == a[1]: elif previous_value == a[1]:
print(" - {}".format(a[0])) readable_table.append(["{}".format(a[0])])
elif a[1] < previous_value: elif a[1] < previous_value:
previous_value = a[1] previous_value = a[1]
print(" ### {} occurences".format(a[1])) readable_table.append(["{} occurences".format(a[1])])
print(" - {}".format(a[0])) readable_table.append(["{}".format(a[0])])
elif args.o == "json": elif args.o == "json":
output_json[anal].append(a) output_json[anal].append(a)
if args.o == "readable":
print(tabulate(readable_table, header, tablefmt="fancy_grid"))
if args.o == "csv": if args.o == "csv":
print("#") print("#")