8000 support pathlib, #263 · pyexcel/pyexcel@520ff17 · GitHub
[go: up one dir, main page]

Skip to content

Commit 520ff17

Browse files
committed
support pathlib, #263
1 parent 293f4e8 commit 520ff17

File tree

7 files changed

+19
-7
lines changed

7 files changed

+19
-7
lines changed

pyexcel/__version__.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
1-
__version__ = '0.7.3'
2-
__author__ = 'C.W.'
1+
__version__ = "0.7.3"
2+
__author__ = "C.W."

pyexcel/_compact.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,10 +19,10 @@
1919
import warnings
2020
from io import BytesIO, StringIO
2121
from urllib import request
22+
from pathlib import Path
2223
from textwrap import dedent
2324
from itertools import zip_longest
2425
from collections import OrderedDict
25-
from pathlib import Path
2626

2727
PY2 = sys.version_info[0] == 2
2828
PY26 = PY2 and sys.version_info[1] < 7

pyexcel/plugins/renderers/excel.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
:license: New BSD License
99
"""
1010

11+
from pyexcel._compact import get_string_file_name
1112
from pyexcel.renderer import AbstractRenderer
1213
from pyexcel.constants import DEFAULT_SHEET_NAME
1314

@@ -21,13 +22,15 @@ def get_io(self):
2122
return manager.get_io(self._file_type)
2223

2324
def render_sheet_to_file(self, file_name, sheet, **keywords):
25+
file_name = get_string_file_name(file_name)
2426
sheet_name = DEFAULT_SHEET_NAME
2527
if sheet.name:
2628
sheet_name = sheet.name
2729
data = {sheet_name: sheet.to_array()}
2830
save_data(file_name, data, **keywords)
2931

3032
def render_book_to_file(self, file_name, book, **keywords):
33+
file_name = get_string_file_name(file_name)
3134
save_data(file_name, book.to_dict(), **keywords)
3235

3336
def render_sheet_to_stream(self, file_stream, sheet, **keywords):

pyexcel/plugins/sources/file_input.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,8 @@
1111
import os
1212

1313
from pyexcel.source import AbstractSource
14-
from pyexcel.internal import PARSER
1514
from pyexcel._compact import get_string_file_name
15+
from pyexcel.internal import PARSER
1616

1717

1818
# pylint: disable=W0223

pyexcel/plugins/sources/file_output.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010

1111
from pyexcel.source import AbstractSource
1212
from pyexcel.plugins import find_file_type_from_file_name
13+
from pyexcel._compact import get_string_file_name
1314
from pyexcel.internal import RENDERER
1415

1516

@@ -19,12 +20,12 @@ class WriteSheetToFile(AbstractS 8000 ource):
1920

2021
def __init__(self, file_name=None, renderer_library=None, **keywords):
2122
AbstractSource.__init__(self, **keywords)
22-
self._file_name = file_name
23+
self._file_name = get_string_file_name(file_name)
2324

2425
if "force_file_type" in keywords:
2526
file_type = keywords.get("force_file_type")
2627
else:
27-
file_type = find_file_type_from_file_name(file_name, "write")
28+
file_type = find_file_type_from_file_name(self._file_name, "write")
2829

2930
self._renderer = RENDERER.get_a_plugin(file_type, renderer_library)
3031

pyexcel/renderer.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -87,6 +87,7 @@ def render_sheet_to_file(
8787
**keywords,
8888
):
8989
self.set_write_title(write_title)
90+
file_name = compact.get_string_file_name(file_name)
9091
with open(file_name, self.WRITE_FLAG, encoding="utf-8") as outfile:
9192
self.set_output_stream(outfile)
9293
self.render_sheet(sheet, **keywords)

tests/test_pathlib_path.py

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
from nose.tools import eq_
77

88

9-
class TestiGetArray:
9+
class TestPath:
1010
def setUp(self):
1111
self.test_data = [["X", "Y", "Z"], [1, 2, 3], [4, 5, 6]]
1212

@@ -20,3 +20,10 @@ def test_get_array_from_file(self):
2020
result = pe.iget_array(file_name=Path(testfile))
2121
eq_(list(result), self.test_data)
2222
os.unlink(testfile)
23+< 5571 div class="diff-text-inner">
24+
def test_get_sheet_from_file(self):
25+
sheet = pe.Sheet(self.test_data)
26+
testfile = "testfile.xls"
27+
sheet.save_as(testfile)
28+
pe.get_sheet(file_name=Path(testfile))
29+
os.unlink(testfile)

0 commit comments

Comments
 (0)
0