Exemple #1
0
    def test_reader(self):
        csv_filegen = tempinput("""name,age,gender,score
Akari,9,f,
Kyoko,10,f,0.06
Yui,10,f,0.08
Chinatsu,9,f,0.04
""")
        type_filegen = tempinput("""[typename]
name = string
age = int
gender = string
score = float

[setting]
optional = score
""")
        with csv_filegen as csv_filename, type_filegen as type_filename:
            with open(csv_filename, 'r') as csv_fh:
                typeinfo, reader = typedreader.reader(csv_fh, type_filename)
                for row in reader:
                    assert type(row['name']) is str
                    assert type(row['age']) is int
                    assert type(row['gender']) is str
                    assert type(row['score']) is float or row['score'] is None

                assert typeinfo.required('name') is True
                assert typeinfo.required('age') is True
                assert typeinfo.required('score') is False
Exemple #2
0
    def test_reader_typeinfo_invalid_fieldname(self):
        csv_filegen = tempinput("""name,age,gender,score
Akari,9,f,
Kyoko,10,f,0.06
Yui,10,f,0.08
Chinatsu,9,f,0.04
""")
        type_filegen = tempinput("""[typename]
name = string
age = int
gender = string
score = float

[setting]
optional = score
""")
        with csv_filegen as csv_filename, type_filegen as type_filename:
            with open(csv_filename, 'r') as csv_fh:
                typeinfo, reader = typedreader.reader(csv_fh, type_filename)

        assert typeinfo.required('\(^o^)/') is None
Exemple #3
0
#!/usr/bin/env python
# -*- coding: utf-8 -*-

import argparse
import typedreader


def parse_args():
    parser = argparse.ArgumentParser(description='Process some integers.')
    parser.add_argument('-c', '--csvfile',
                        help='')
    parser.add_argument('-t', '--typefile',
                        help='')
    return parser.parse_args()


if __name__ == '__main__':
    args = parse_args()
    with open(args.csvfile, 'r') as csvfh:
        typeinfo, reader = typedreader.reader(csvfh, args.typefile)
        for row in reader:
            print(row)