50 lines
1.6 KiB
Python
50 lines
1.6 KiB
Python
"""
|
|
pyexcel_ods
|
|
~~~~~~~~~~~~~~~~~~~
|
|
The lower level ods file format handler using odfpy
|
|
:copyright: (c) 2015-2020 by Onni Software Ltd & its contributors
|
|
:license: New BSD License
|
|
"""
|
|
|
|
# flake8: noqa
|
|
from pyexcel_io.io import get_data as read_data
|
|
from pyexcel_io.io import isstream
|
|
from pyexcel_io.io import store_data as write_data
|
|
|
|
# this line has to be place above all else
|
|
# because of dynamic import
|
|
from pyexcel_io.plugins import IOPluginInfoChain, IOPluginInfoChainV2
|
|
|
|
__FILE_TYPE__ = "ods"
|
|
IOPluginInfoChain(__name__)
|
|
IOPluginInfoChainV2(__name__).add_a_reader(
|
|
relative_plugin_class_path="odsr.ODSBook",
|
|
locations=["file", "memory"],
|
|
file_types=[__FILE_TYPE__],
|
|
stream_type="binary",
|
|
).add_a_reader(
|
|
relative_plugin_class_path="odsr.ODSBookInContent",
|
|
locations=["content"],
|
|
file_types=[__FILE_TYPE__],
|
|
stream_type="binary",
|
|
).add_a_writer(
|
|
relative_plugin_class_path="odsw.ODSWriter",
|
|
locations=["file", "memory"],
|
|
file_types=[__FILE_TYPE__],
|
|
stream_type="binary",
|
|
)
|
|
|
|
|
|
def save_data(afile, data, file_type=None, **keywords):
|
|
"""standalone module function for writing module supported file type"""
|
|
if isstream(afile) and file_type is None:
|
|
file_type = __FILE_TYPE__
|
|
write_data(afile, data, file_type=file_type, **keywords)
|
|
|
|
|
|
def get_data(afile, file_type=None, **keywords):
|
|
"""standalone module function for reading module supported file type"""
|
|
if isstream(afile) and file_type is None:
|
|
file_type = __FILE_TYPE__
|
|
return read_data(afile, file_type=file_type, **keywords)
|