def test_pretty(): labels = ['name', 'age', 'favourite food'] table = [ ['Spot', 3, 'kibble'], ['Skruffles', 2, 'kibble'], ['Zorb', 2, 'zorblaxian kibble'], [u'Zörb', 87, u'zørblaχian ﻛبﻞ'], ] out = StringIO.StringIO() pretty.pp_list(out, table, labels) assert out.getvalue() == \ u' name | age | favourite food\n' \ u'----------+-----+------------------\n' \ u' Spot | 3 | kibble\n' \ u'Skruffles | 2 | kibble\n' \ u' Zorb | 2 | zorblaxian kibble\n' \ u' Zörb | 87 | zørblaχian ﻛبﻞ\n'
def test_pretty_unicomb(): pytest.xfail('pp_list counts code points, not grapheme clusters.') labels = ['name', 'age', 'favourite food'] table = [ ['Spot', 3, 'kibble'], ['Skruffles', 2, 'kibble'], ['Zorb', 2, 'zorblaxian kibble'], ['Zörb', 87, 'zørblaχian ﻛبﻞ'], [u'Zörb', 42, u'zörblǎxïǎn kïbble'], ['Zörb', 87, 'zørblaχian ﻛِبّﻞ'], ] out = StringIO.StringIO() pretty.pp_list(out, table, labels) assert out.getvalue() == \ u' name | age | favourite food\n' \ u'----------+-----+------------------\n' \ u' Spot | 3 | kibble\n' \ u'Skruffles | 2 | kibble\n' \ u' Zorb | 2 | zorblaxian kibble\n' \ u' Zörb | 42 | zörblǎxïǎn kïbble\n' \ u' Zörb | 87 | zørblaxian ﻛِبّﻞ\n'
def cardinality(self, argin): """show cardinality of columns in table <table> [<column> <column> ...] Example: bayeslite> .cardinality mytable bayeslite> .cardinality mytable col1 col2 col3 """ parser = utils.ArgumentParser(prog='.cardinality') parser.add_argument('table', type=str, help='Name of the table.') parser.add_argument('cols', type=str, nargs='*', help='Target columns for which to compute cardinality.') try: args = parser.parse_args(shlex.split(argin)) except utils.ArgparseError as e: self.stdout.write('%s' % (e.message,)) return counts = bdbcontrib.cardinality(self._bdb, args.table, cols=args.cols) pp_list(self.stdout, counts, ['column', 'cardinality'])
def cardinality(self, argin): """show cardinality of columns in table <table> [<column> <column> ...] Example: bayeslite> .cardinality mytable bayeslite> .cardinality mytable col1 col2 col3 """ parser = utils.ArgumentParser(prog='.cardinality') parser.add_argument('table', type=str, help='Name of the table.') parser.add_argument( 'cols', type=str, nargs='*', help='Target columns for which to compute cardinality.') try: args = parser.parse_args(shlex.split(argin)) except utils.ArgparseError as e: self.stdout.write('%s' % (e.message, )) return counts = bdbcontrib.cardinality(self._bdb, args.table, cols=args.cols) pp_list(self.stdout, counts, ['column', 'cardinality'])