Skip to content

Commit 404aa96

Browse files
authored
Update kwargs parsing to deal with tuples, closes #62
1 parent 170e82c commit 404aa96

File tree

3 files changed

+9
-3
lines changed

3 files changed

+9
-3
lines changed

mkdocs_table_reader_plugin/safe_eval.py

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,7 @@ def parse_argkwarg(input_str: str):
7474
in_quotes = False
7575
quote_char = ''
7676
bracket_count = 0
77+
tuple_count = 0
7778

7879
for char in input_str:
7980
if char in "\"'" and not in_quotes:
@@ -86,7 +87,11 @@ def parse_argkwarg(input_str: str):
8687
bracket_count += 1
8788
elif char == ']':
8889
bracket_count -= 1
89-
elif char == ',' and not in_quotes and bracket_count == 0:
90+
elif char == '(':
91+
tuple_count += 1
92+
elif char == ')':
93+
tuple_count -= 1
94+
elif char == ',' and not in_quotes and bracket_count == 0 and tuple_count == 0:
9095
segments.append(current_segment.strip())
9196
current_segment = ''
9297
continue

setup.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55

66
setup(
77
name="mkdocs-table-reader-plugin",
8-
version="2.2.0",
8+
version="2.2.1",
99
description="MkDocs plugin to directly insert tables from files into markdown.",
1010
long_description=long_description,
1111
long_description_content_type="text/markdown",

tests/test_kwargs.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,4 +19,5 @@ def test_parse_argkwarg():
1919
assert parse_argkwarg("sep=';'") == ([], {'sep': ';'})
2020
assert parse_argkwarg('"file.csv", usecols=["A", "B"]') == (['file.csv'], {'usecols': ['A', 'B']})
2121
assert parse_argkwarg('"file.csv", usecols=[\'A\',\'B\']') == (['file.csv'], {'usecols': ['A', 'B']})
22-
assert parse_argkwarg("'assets/tables/table_with_carriage_return.csv', sep = ','") == (['assets/tables/table_with_carriage_return.csv'], {'sep': ','})
22+
assert parse_argkwarg("'assets/tables/table_with_carriage_return.csv', sep = ','") == (['assets/tables/table_with_carriage_return.csv'], {'sep': ','})
23+
assert parse_argkwarg("'includes/statistics.csv', keep_default_na=False, colalign=('center','center','center','center','center','center','center')") == (['includes/statistics.csv'], {'keep_default_na': False, 'colalign': ('center','center','center','center','center','center','center')})

0 commit comments

Comments
 (0)