|
1 | 1 | import csv |
2 | 2 | from robot.api import logger |
| 3 | +from version import VERSION |
| 4 | + |
| 5 | +__version__ = VERSION |
3 | 6 |
|
4 | 7 |
|
5 | 8 | class CSVLibrary(object): |
@@ -30,48 +33,64 @@ def _open_csv_file_for_write(filename, data, csv_writer=csv.writer, **kwargs): |
30 | 33 | @staticmethod |
31 | 34 | def empty_csv_file(filename): |
32 | 35 | """This keyword will empty the CSV file. |
| 36 | + |
| 37 | + - ``filename``: name of csv file |
33 | 38 | """ |
34 | 39 | with open(filename, "w") as csv_handler: |
35 | 40 | csv_handler.truncate() |
36 | 41 |
|
37 | 42 | def read_csv_file_to_list(self, filename, delimiter=','): |
38 | 43 | """Read CSV file and return its content as a Python list of tuples. |
| 44 | + |
| 45 | + - ``filename``: name of csv file |
| 46 | + - ``delimiter``: Default: `,` |
39 | 47 | """ |
40 | 48 | csv_list = self._open_csv_file_for_read( |
41 | 49 | filename, |
42 | 50 | csv_reader=csv.reader, |
43 | | - delimiter=delimiter |
| 51 | + delimiter=str(delimiter) |
44 | 52 | ) |
45 | 53 | return [tuple(row) for row in csv_list] |
46 | 54 |
|
47 | 55 | def read_csv_file_to_associative(self, filename, delimiter=',', fieldnames=None): |
48 | 56 | """Read CSV file and return its content as a Python list of dictionaries. |
| 57 | + |
| 58 | + - ``filename``: name of csv file |
| 59 | + - ``delimiter``: Default: `,` |
| 60 | + - ``fieldnames``: list of column names |
49 | 61 | """ |
50 | 62 | csv_dict = self._open_csv_file_for_read( |
51 | 63 | filename, |
52 | 64 | csv_reader=csv.DictReader, |
53 | | - delimiter=delimiter, |
| 65 | + delimiter=str(delimiter), |
54 | 66 | fieldnames=fieldnames |
55 | 67 | ) |
56 | | - return csv_dict |
| 68 | + return [item for item in csv_dict] |
57 | 69 |
|
58 | 70 | def append_to_csv_file(self, filename, data): |
59 | 71 | """This keyword will append data to a new or existing CSV file. |
60 | | - Data should be iterable (e.g. list or tuple) |
| 72 | + |
| 73 | + - ``filename``: name of csv file |
| 74 | + - ``data``: iterable(e.g. list or tuple) data. |
61 | 75 | """ |
62 | 76 | if isinstance(data[0], dict): |
63 | 77 | data = map(lambda row: row.items(), data) |
64 | 78 | self._open_csv_file_for_write(filename, data=data, csv_writer=csv.writer) |
65 | 79 |
|
66 | 80 | def csv_file_from_associative(self, filename, data, fieldnames=None, delimiter=','): |
67 | 81 | """This keyword will create new file |
| 82 | + |
| 83 | + - ``filename``: name of csv file |
| 84 | + - ``data``: iterable(e.g. list or tuple) data. |
| 85 | + - ``fieldnames``: list of column names |
| 86 | + - ``delimiter``: Default: `,` |
68 | 87 | """ |
69 | 88 | fieldnames = fieldnames or data[0].keys() |
70 | 89 | logger.console("fieldnames: %s" % fieldnames) |
71 | 90 | self._open_csv_file_for_write( |
72 | 91 | filename, |
73 | 92 | data=data, |
74 | 93 | csv_writer=csv.DictWriter, |
75 | | - delimiter=delimiter, |
| 94 | + delimiter=str(delimiter), |
76 | 95 | fieldnames=fieldnames |
77 | 96 | ) |
0 commit comments