コード例 #1
0
def get_table(datarows, types, titles):
    try:
        table = journalism.Table(datarows, types, titles)
        return table
    except:
        logging.exception('problem loading table')
    return None
コード例 #2
0
ファイル: test_table.py プロジェクト: mboggie/journalism
    def test_create_table(self):
        table = journalism.Table(self.rows, self.column_types, self.column_names)

        self.assertEqual(len(table.rows), 3)

        self.assertEqual(table.rows[0], [1, 4, 'a'])
        self.assertEqual(table.rows[1], [2, 3, 'b'])
        self.assertEqual(table.rows[2], [None, 2, 'c'])
コード例 #3
0
    def test_reject(self):
        table = journalism.Table(self.rows, self.column_types, self.column_names)

        new_table = table.reject('one', [2, None])

        self.assertIsNot(new_table, table)
        self.assertEqual(len(new_table.rows), 1)
        self.assertEqual(new_table.rows[0], [1, 4, 'a'])
コード例 #4
0
    def test_filter(self):
        table = journalism.Table(self.rows, self.column_types, self.column_names)

        new_table = table.filter('one', [2, None])

        self.assertIsNot(new_table, table)
        self.assertEqual(len(new_table.rows), 2)
        self.assertEqual(new_table.rows[0], [2, 3, 'b'])
コード例 #5
0
ファイル: test_table.py プロジェクト: mboggie/journalism
    def test_sort_by_reverse(self):
        table = journalism.Table(self.rows, self.column_types, self.column_names)

        new_table = table.sort_by('two', reverse=True)

        self.assertEqual(len(new_table.rows), 3)
        self.assertEqual(new_table.rows[0], [1, 4, 'a'])
        self.assertEqual(new_table.rows[1], [2, 3, 'b'])
        self.assertEqual(new_table.rows[2], [None, 2, 'c'])
コード例 #6
0
ファイル: test_table.py プロジェクト: mboggie/journalism
    def test_create_table_header(self):
        rows = [['one', 'two', 'three']]
        rows.extend(self.rows)

        table = journalism.Table(rows, self.column_types)

        self.assertEqual(table.rows[0], [1, 4, 'a'])
        self.assertEqual(table.rows[1], [2, 3, 'b'])
        self.assertEqual(table.rows[2], [None, 2, 'c'])
コード例 #7
0
ファイル: test_table.py プロジェクト: mboggie/journalism
    def test_where(self):
        table = journalism.Table(self.rows, self.column_types, self.column_names)

        new_table = table.where('one', lambda x: x is not None)

        self.assertIsNot(new_table, table)
        self.assertEqual(len(new_table.rows), 2)
        self.assertEqual(new_table.rows[0], [1, 4, 'a'])
        self.assertEqual(new_table.rows[1], [2, 3, 'b'])
コード例 #8
0
    def setUp(self):
        self.rows = [[1, 2, 'a'], [1, 1, 3, 'b'], [None, 4, 'c'], [2, 1, 'c']]
        self.column_names = ['one', 'two', 'three']
        self.column_types = [
            journalism.IntColumn, journalism.IntColumn, journalism.TextColumn
        ]

        self.table = journalism.Table(self.rows, self.column_types,
                                      self.column_names)
コード例 #9
0
    def test_count(self):
        rows = self.rows
        rows.append(rows[0])
        rows.append(rows[0])

        table = journalism.Table(rows, self.column_types, self.column_names)

        self.assertEqual(table.columns['one'].count(1), 3)
        self.assertEqual(table.columns['one'].count(4), 0)
        self.assertEqual(table.columns['one'].count(None), 1)
コード例 #10
0
ファイル: test_table.py プロジェクト: mboggie/journalism
    def test_aggregate_sum_two_columns(self):
        table = journalism.Table(self.rows, self.column_types)

        new_table = table.aggregate('one', [('two', 'sum'), ('four', 'sum')])

        self.assertIsNot(new_table, table)
        self.assertEqual(len(new_table.rows), 3)
        self.assertEqual(new_table._column_names, ['one', 'two', 'four'])
        self.assertEqual(new_table.rows[0], ['a', 4, 4])
        self.assertEqual(new_table.rows[1], [None, 3, 0])
        self.assertEqual(new_table.rows[2], ['b', 3, 0])
コード例 #11
0
def load_data():
    """
    Load the initial table data from a CSV.
    """
    with open('simple.csv') as f:
        reader = csv.reader(f)
        next(reader)

        table = journalism.Table(reader, COLUMN_TYPES, COLUMN_NAMES)

    return table
コード例 #12
0
    def setUp(self):
        self.rows = [[1.1, 2.19, 'a'], [2.7, 3.42, 'b'], [None, 4.1, 'c'],
                     [2.7, 1, 'c']]
        self.column_names = ['one', 'two', 'three']
        self.column_types = [
            journalism.FloatColumn, journalism.FloatColumn,
            journalism.TextColumn
        ]

        self.table = journalism.Table(self.rows, self.column_types,
                                      self.column_names)
コード例 #13
0
    def setUp(self):
        self.rows = [
            ['one', 'two', 'three', 'four'],
            ['a', 2, 3, 4],
            [None, 3, 5, None],
            ['a', 2, 4, None],
            ['b', 3, 4, None]
        ]

        self.column_types = [journalism.TextColumn, journalism.IntColumn, journalism.IntColumn, journalism.IntColumn]

        self.table = journalism.Table(self.rows, self.column_types)
コード例 #14
0
ファイル: test_table.py プロジェクト: mboggie/journalism
    def test_sort_by_cmp(self):
        table = journalism.Table(self.rows, self.column_types, self.column_names)

        def func(a, b):
            return -cmp(a, b)

        new_table = table.sort_by('two', cmp=func)

        self.assertEqual(len(new_table.rows), 3)
        self.assertEqual(new_table.rows[0], [1, 4, 'a'])
        self.assertEqual(new_table.rows[1], [2, 3, 'b'])
        self.assertEqual(new_table.rows[2], [None, 2, 'c'])
コード例 #15
0
ファイル: test_table.py プロジェクト: mboggie/journalism
    def test_sort_by(self):
        table = journalism.Table(self.rows, self.column_types, self.column_names)

        new_table = table.sort_by('two')

        self.assertIsNot(new_table, table)
        self.assertEqual(len(new_table.rows), 3)
        self.assertEqual(new_table.rows[0], [None, 2, 'c'])
        self.assertEqual(new_table.rows[1], [2, 3, 'b'])
        self.assertEqual(new_table.rows[2], [1, 4, 'a'])

        # Verify old table not changed
        self.assertEqual(table.rows[0], [1, 4, 'a'])
        self.assertEqual(table.rows[1], [2, 3, 'b'])
        self.assertEqual(table.rows[2], [None, 2, 'c'])
コード例 #16
0
    def test_counts(self):
        rows = self.rows
        rows.append(rows[0])
        rows.append(rows[0])

        table = journalism.Table(rows, self.column_types, self.column_names)

        new_table = table.columns['one'].counts()

        self.assertIsNot(new_table, table)
        self.assertEqual(len(new_table.columns), 2)
        self.assertEqual(len(new_table.rows), 3)

        self.assertEqual(new_table.rows[0], [1, 3])
        self.assertEqual(new_table.rows[1], [2, 1])
        self.assertEqual(new_table.rows[2], [None, 1])

        self.assertEqual(new_table.columns['one'], [1, 2, None])
        self.assertEqual(new_table.columns['count'], [3, 1, 1])
コード例 #17
0
ファイル: test_table.py プロジェクト: mboggie/journalism
    def test_validate_table_fails(self):
        column_types = [journalism.IntColumn, journalism.IntColumn, journalism.IntColumn]

        with self.assertRaises(journalism.ColumnValidationError):
            journalism.Table(self.rows, column_types, self.column_names, validate=True)
コード例 #18
0
def get_table(new_arr, types, titles):
    try:
        table = journalism.Table(new_arr, types, titles)
        return table
    except Exception as e:
        print e
コード例 #19
0
for v in example_row:
    value_type = ctype_text[v.ctype]
    if value_type == 'text':
        types.append(text_type)
    elif value_type == 'number':
        types.append(number_type)
    elif value_type == 'xldate':
        types.append(date_type)
    else:
        types.append(text_type)

columns = zip(titles, types)
columns

try:
    table = journalism.Table(country_rows, types, titles)
    #Throws error for conversion
except:
    pass

cleaned_rows = []


def float_to_str(val):
    if isinstance(val, float):
        return str(val)
    elif isinstance(val, (str, unicode)):
        print 'unicode is', val.encode('utf-8')
        return val.encode('ascii', errors='replace').strip()
    return val
コード例 #20
0
ファイル: test_table.py プロジェクト: mboggie/journalism
    def test_aggregate_sum_invalid(self):
        table = journalism.Table(self.rows, self.column_types)

        with self.assertRaises(journalism.UnsupportedOperationError):
            table.aggregate('two', [('one', 'sum')])
コード例 #21
0
ファイル: test_table.py プロジェクト: mboggie/journalism
 def test_validate_table(self):
     journalism.Table(self.rows, self.column_types, self.column_names, validate=True)