Skip to content

Commit 2661ce0

Browse files
committed
kwargs arguments support
1 parent 31c15c7 commit 2661ce0

4 files changed

Lines changed: 37 additions & 13 deletions

File tree

CSVLibrary/__init__.py

Lines changed: 35 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,9 @@
88
class CSVLibrary(object):
99

1010
@staticmethod
11-
def _open_csv_file_for_read(filename, csv_reader=csv.reader, **kwargs):
11+
def _open_csv_file_for_read(filename, csv_reader=csv.reader, line_numbers=None, **kwargs):
12+
if line_numbers is not None and isinstance(line_numbers, list):
13+
line_numbers = map(int, line_numbers)
1214
with open(filename, 'r') as csv_handler:
1315
reader = csv_reader(csv_handler, **kwargs)
1416
try:
@@ -39,58 +41,81 @@ def empty_csv_file(filename):
3941
with open(filename, "w") as csv_handler:
4042
csv_handler.truncate()
4143

42-
def read_csv_file_to_list(self, filename, delimiter=','):
44+
def read_csv_file_to_list(self, filename, delimiter=',', **kwargs):
4345
"""Read CSV file and return its content as a Python list of tuples.
4446
4547
- ``filename``: name of csv file
4648
- ``delimiter``: Default: `,`
49+
- ``quoting`` (int):
50+
_0_: QUOTE_MINIMAL
51+
_1_: QUOTE_ALL
52+
_2_: QUOTE_NONNUMERIC
53+
_3_: QUOTE_NONE
4754
"""
4855
csv_list = self._open_csv_file_for_read(
4956
filename,
5057
csv_reader=csv.reader,
51-
delimiter=str(delimiter)
58+
delimiter=str(delimiter),
59+
**kwargs
5260
)
5361
return [tuple(row) for row in csv_list]
5462

55-
def read_csv_file_to_associative(self, filename, delimiter=',', fieldnames=None):
63+
def read_csv_file_to_associative(self, filename, delimiter=',', fieldnames=None, **kwargs):
5664
"""Read CSV file and return its content as a Python list of dictionaries.
5765
5866
- ``filename``: name of csv file
5967
- ``delimiter``: Default: `,`
6068
- ``fieldnames``: list of column names
69+
- ``quoting`` (int):
70+
_0_: QUOTE_MINIMAL
71+
_1_: QUOTE_ALL
72+
_2_: QUOTE_NONNUMERIC
73+
_3_: QUOTE_NONE
74+
6175
"""
6276
csv_dict = self._open_csv_file_for_read(
6377
filename,
6478
csv_reader=csv.DictReader,
6579
delimiter=str(delimiter),
66-
fieldnames=fieldnames
80+
fieldnames=fieldnames,
81+
**kwargs
6782
)
6883
return [item for item in csv_dict]
6984

70-
def append_to_csv_file(self, filename, data):
85+
def append_to_csv_file(self, filename, data, **kwargs):
7186
"""This keyword will append data to a new or existing CSV file.
7287
7388
- ``filename``: name of csv file
7489
- ``data``: iterable(e.g. list or tuple) data.
90+
- ``quoting`` (int):
91+
_0_: QUOTE_MINIMAL
92+
_1_: QUOTE_ALL
93+
_2_: QUOTE_NONNUMERIC
94+
_3_: QUOTE_NONE
7595
"""
7696
if isinstance(data[0], dict):
7797
data = map(lambda row: row.items(), data)
78-
self._open_csv_file_for_write(filename, data=data, csv_writer=csv.writer)
98+
self._open_csv_file_for_write(filename, data=data, csv_writer=csv.writer, **kwargs)
7999

80-
def csv_file_from_associative(self, filename, data, fieldnames=None, delimiter=','):
100+
def csv_file_from_associative(self, filename, data, fieldnames=None, delimiter=',', **kwargs):
81101
"""This keyword will create new file
82102
83103
- ``filename``: name of csv file
84104
- ``data``: iterable(e.g. list or tuple) data.
85105
- ``fieldnames``: list of column names
86106
- ``delimiter``: Default: `,`
107+
- ``quoting`` (int):
108+
_0_: QUOTE_MINIMAL
109+
_1_: QUOTE_ALL
110+
_2_: QUOTE_NONNUMERIC
111+
_3_: QUOTE_NONE
87112
"""
88113
fieldnames = fieldnames or data[0].keys()
89-
logger.console("fieldnames: %s" % fieldnames)
90114
self._open_csv_file_for_write(
91115
filename,
92116
data=data,
93117
csv_writer=csv.DictWriter,
94118
delimiter=str(delimiter),
95-
fieldnames=fieldnames
119+
fieldnames=fieldnames,
120+
**kwargs
96121
)

CSVLibrary/version.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
VERSION = '0.0.1'
1+
VERSION = '0.0.2'

doc/CSVLibrary.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -547,7 +547,7 @@
547547
jQuery.extend({highlight:function(e,t,n,r){if(e.nodeType===3){var i=e.data.match(t);if(i){var s=document.createElement(n||"span");s.className=r||"highlight";var o=e.splitText(i.index);o.splitText(i[0].length);var u=o.cloneNode(true);s.appendChild(u);o.parentNode.replaceChild(s,o);return 1}}else if(e.nodeType===1&&e.childNodes&&!/(script|style)/i.test(e.tagName)&&!(e.tagName===n.toUpperCase()&&e.className===r)){for(var a=0;a<e.childNodes.length;a++){a+=jQuery.highlight(e.childNodes[a],t,n,r)}}return 0}});jQuery.fn.unhighlight=function(e){var t={className:"highlight",element:"span"};jQuery.extend(t,e);return this.find(t.element+"."+t.className).each(function(){var e=this.parentNode;e.replaceChild(this.firstChild,this);e.normalize()}).end()};jQuery.fn.highlight=function(e,t){var n={className:"highlight",element:"span",caseSensitive:false,wordsOnly:false};jQuery.extend(n,t);if(e.constructor===String){e=[e]}e=jQuery.grep(e,function(e,t){return e!=""});e=jQuery.map(e,function(e,t){return e.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&")});if(e.length==0){return this}var r=n.caseSensitive?"":"i";var i="("+e.join("|")+")";if(n.wordsOnly){i="\\b"+i+"\\b"}var s=new RegExp(i,r);return this.each(function(){jQuery.highlight(this,s,n.element,n.className)})}
548548
</script>
549549
<script type="text/javascript">
550-
libdoc = {"all_tags":[],"contains_tags":false,"doc":"<p>Documentation for test library <code>CSVLibrary\x3c/code>.\x3c/p>","generated":"2017-03-28 15:34:46","inits":[],"keywords":[{"args":["filename","data"],"doc":"<p>This keyword will append data to a new or existing CSV file.\x3c/p>\n<ul>\n<li><code>filename\x3c/code>: name of csv file\x3c/li>\n<li><code>data\x3c/code>: iterable(e.g. list or tuple) data.\x3c/li>\n\x3c/ul>","matched":true,"name":"Append To Csv File","shortdoc":"This keyword will append data to a new or existing CSV file.","tags":[]},{"args":["filename","data","fieldnames=None","delimiter=,"],"doc":"<p>This keyword will create new file\x3c/p>\n<ul>\n<li><code>filename\x3c/code>: name of csv file\x3c/li>\n<li><code>data\x3c/code>: iterable(e.g. list or tuple) data.\x3c/li>\n<li><code>fieldnames\x3c/code>: list of column names\x3c/li>\n<li><code>delimiter\x3c/code>: Default: <span class=\"name\">,\x3c/span>\x3c/li>\n\x3c/ul>","matched":true,"name":"Csv File From Associative","shortdoc":"This keyword will create new file","tags":[]},{"args":["filename"],"doc":"<p>This keyword will empty the CSV file.\x3c/p>\n<ul>\n<li><code>filename\x3c/code>: name of csv file\x3c/li>\n\x3c/ul>","matched":true,"name":"Empty Csv File","shortdoc":"This keyword will empty the CSV file.","tags":[]},{"args":["filename","delimiter=,","fieldnames=None"],"doc":"<p>Read CSV file and return its content as a Python list of dictionaries.\x3c/p>\n<ul>\n<li><code>filename\x3c/code>: name of csv file\x3c/li>\n<li><code>delimiter\x3c/code>: Default: <span class=\"name\">,\x3c/span>\x3c/li>\n<li><code>fieldnames\x3c/code>: list of column names\x3c/li>\n\x3c/ul>","matched":true,"name":"Read Csv File To Associative","shortdoc":"Read CSV file and return its content as a Python list of dictionaries.","tags":[]},{"args":["filename","delimiter=,"],"doc":"<p>Read CSV file and return its content as a Python list of tuples.\x3c/p>\n<ul>\n<li><code>filename\x3c/code>: name of csv file\x3c/li>\n<li><code>delimiter\x3c/code>: Default: <span class=\"name\">,\x3c/span>\x3c/li>\n\x3c/ul>","matched":true,"name":"Read Csv File To List","shortdoc":"Read CSV file and return its content as a Python list of tuples.","tags":[]}],"name":"CSVLibrary","named_args":true,"scope":"test case","version":""};
550+
libdoc = {"all_tags":[],"contains_tags":false,"doc":"<p>Documentation for test library <code>CSVLibrary\x3c/code>.\x3c/p>","generated":"2017-04-06 20:56:18","inits":[],"keywords":[{"args":["filename","data","**kwargs"],"doc":"<p>This keyword will append data to a new or existing CSV file.\x3c/p>\n<ul>\n<li><code>filename\x3c/code>: name of csv file\x3c/li>\n<li><code>data\x3c/code>: iterable(e.g. list or tuple) data.\x3c/li>\n<li><code>quoting\x3c/code> (int): <i>0\x3c/i>: QUOTE_MINIMAL <i>1\x3c/i>: QUOTE_ALL <i>2\x3c/i>: QUOTE_NONNUMERIC <i>3\x3c/i>: QUOTE_NONE\x3c/li>\n\x3c/ul>","matched":true,"name":"Append To Csv File","shortdoc":"This keyword will append data to a new or existing CSV file.","tags":[]},{"args":["filename","data","fieldnames=None","delimiter=,","**kwargs"],"doc":"<p>This keyword will create new file\x3c/p>\n<ul>\n<li><code>filename\x3c/code>: name of csv file\x3c/li>\n<li><code>data\x3c/code>: iterable(e.g. list or tuple) data.\x3c/li>\n<li><code>fieldnames\x3c/code>: list of column names\x3c/li>\n<li><code>delimiter\x3c/code>: Default: <span class=\"name\">,\x3c/span>\x3c/li>\n<li><code>quoting\x3c/code> (int): <i>0\x3c/i>: QUOTE_MINIMAL <i>1\x3c/i>: QUOTE_ALL <i>2\x3c/i>: QUOTE_NONNUMERIC <i>3\x3c/i>: QUOTE_NONE\x3c/li>\n\x3c/ul>","matched":true,"name":"Csv File From Associative","shortdoc":"This keyword will create new file","tags":[]},{"args":["filename"],"doc":"<p>This keyword will empty the CSV file.\x3c/p>\n<ul>\n<li><code>filename\x3c/code>: name of csv file\x3c/li>\n\x3c/ul>","matched":true,"name":"Empty Csv File","shortdoc":"This keyword will empty the CSV file.","tags":[]},{"args":["filename","delimiter=,","fieldnames=None","**kwargs"],"doc":"<p>Read CSV file and return its content as a Python list of dictionaries.\x3c/p>\n<ul>\n<li><code>filename\x3c/code>: name of csv file\x3c/li>\n<li><code>delimiter\x3c/code>: Default: <span class=\"name\">,\x3c/span>\x3c/li>\n<li><code>fieldnames\x3c/code>: list of column names\x3c/li>\n<li><code>quoting\x3c/code> (int): <i>0\x3c/i>: QUOTE_MINIMAL <i>1\x3c/i>: QUOTE_ALL <i>2\x3c/i>: QUOTE_NONNUMERIC <i>3\x3c/i>: QUOTE_NONE\x3c/li>\n\x3c/ul>","matched":true,"name":"Read Csv File To Associative","shortdoc":"Read CSV file and return its content as a Python list of dictionaries.","tags":[]},{"args":["filename","delimiter=,","**kwargs"],"doc":"<p>Read CSV file and return its content as a Python list of tuples.\x3c/p>\n<ul>\n<li><code>filename\x3c/code>: name of csv file\x3c/li>\n<li><code>delimiter\x3c/code>: Default: <span class=\"name\">,\x3c/span>\x3c/li>\n<li><code>quoting\x3c/code> (int): <i>0\x3c/i>: QUOTE_MINIMAL <i>1\x3c/i>: QUOTE_ALL <i>2\x3c/i>: QUOTE_NONNUMERIC <i>3\x3c/i>: QUOTE_NONE\x3c/li>\n\x3c/ul>","matched":true,"name":"Read Csv File To List","shortdoc":"Read CSV file and return its content as a Python list of tuples.","tags":[]}],"name":"CSVLibrary","named_args":true,"scope":"test case","version":""};
551551
</script>
552552
<title></title>
553553
</head>

setup.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,6 @@
2828
],
2929
install_requires = [
3030
'robotframework >= 2.6.0',
31-
'csv',
3231
],
3332
packages = ['CSVLibrary'],
3433
)

0 commit comments

Comments
 (0)