205 lines
5.9 KiB
Python
205 lines
5.9 KiB
Python
"""
|
|
pyexcel.deprecated
|
|
~~~~~~~~~~~~~~~~~~~
|
|
|
|
List of APIs that become deprecated but was kept for backward compatibility
|
|
|
|
:copyright: (c) 2015-2025 by Onni Software Ltd.
|
|
:license: New BSD License
|
|
"""
|
|
|
|
from functools import partial
|
|
|
|
from pyexcel.core import get_book, get_sheet
|
|
from pyexcel._compact import deprecated
|
|
|
|
DEPRECATED_LOADER = partial(
|
|
deprecated,
|
|
message="Deprecated since v0.1.5! Please use get_sheet instead.",
|
|
)
|
|
DEPRECATED_BOOK_LOADER = partial(
|
|
deprecated,
|
|
message="Deprecated since v0.1.5! Please use get_book instead.",
|
|
)
|
|
|
|
|
|
@DEPRECATED_BOOK_LOADER
|
|
def load_book(file_name, **keywords):
|
|
"""Load content from physical file
|
|
|
|
:param str file_name: the file name
|
|
:param any keywords: additional parameters
|
|
"""
|
|
return get_book(file_name=file_name, **keywords)
|
|
|
|
|
|
@DEPRECATED_BOOK_LOADER
|
|
def load_book_from_memory(file_type, file_content, **keywords):
|
|
"""Load content from memory content
|
|
|
|
:param tuple the_tuple: first element should be file extension,
|
|
second element should be file content
|
|
:param any keywords: additional parameters
|
|
"""
|
|
return get_book(file_type=file_type, file_content=file_content, **keywords)
|
|
|
|
|
|
@DEPRECATED_LOADER
|
|
def load(file_name, sheetname=None, **keywords):
|
|
"""Constructs an instance :class:`Sheet` from a sheet of an excel file
|
|
|
|
except csv, most excel files has more than one sheet.
|
|
Hence sheetname is required here to indicate from which sheet the instance
|
|
should be constructed. If this parameter is omitted, the first sheet, which
|
|
is indexed at 0, is used. For csv, sheetname is always omitted because csv
|
|
file contains always one sheet.
|
|
:param str sheetname: which sheet to be used for construction
|
|
:param int name_colmns_by_row: which row to give column names
|
|
:param int name_rows_by_column: which column to give row names
|
|
:param dict keywords: other parameters
|
|
"""
|
|
if isinstance(file_name, tuple):
|
|
sheet = get_sheet(
|
|
file_type=file_name[0],
|
|
file_content=file_name[1],
|
|
sheet_name=sheetname,
|
|
**keywords,
|
|
)
|
|
else:
|
|
sheet = get_sheet(
|
|
file_name=file_name,
|
|
sheet_name=sheetname,
|
|
**keywords,
|
|
)
|
|
return sheet
|
|
|
|
|
|
@DEPRECATED_LOADER
|
|
def load_from_memory(file_type, file_content, sheetname=None, **keywords):
|
|
"""Constructs an instance :class:`Sheet` from memory
|
|
|
|
:param str file_type: one value of these: 'csv', 'tsv', 'csvz',
|
|
'tsvz', 'xls', 'xlsm', 'xslm', 'ods'
|
|
:param iostream file_content: file content
|
|
:param str sheetname: which sheet to be used for construction
|
|
:param dict keywords: any other parameters
|
|
"""
|
|
return get_sheet(
|
|
file_type=file_type,
|
|
file_content=file_content,
|
|
sheet_name=sheetname,
|
|
**keywords,
|
|
)
|
|
|
|
|
|
@DEPRECATED_LOADER
|
|
def load_from_dict(the_dict, with_keys=True, **keywords):
|
|
"""Return a sheet from a dictionary of one dimensional arrays
|
|
|
|
:param dict the_dict: its value should be one dimensional array
|
|
:param bool with_keys: indicate if dictionary keys should be
|
|
appended or not
|
|
"""
|
|
return get_sheet(adict=the_dict, with_keys=with_keys, **keywords)
|
|
|
|
|
|
@DEPRECATED_LOADER
|
|
def load_from_records(records, **keywords):
|
|
"""Return a sheet from a list of records
|
|
|
|
Sheet.to_records() would produce a list of dictionaries. All dictionaries
|
|
share the same keys.
|
|
:params list records: records are likely to be produced by
|
|
Sheet.to_records() method.
|
|
"""
|
|
return get_sheet(records=records, **keywords)
|
|
|
|
|
|
@partial(
|
|
deprecated,
|
|
message="Deprecated since v0.0.7! Please use class Sheet instead",
|
|
)
|
|
def Reader(file_name=None, sheetname=None, **keywords):
|
|
"""
|
|
A single sheet excel file reader
|
|
|
|
Default is the sheet at index 0. Or you specify one using sheet index
|
|
or sheet name. The short coming of this reader is: column filter is
|
|
applied first then row filter is applied next
|
|
|
|
use as class would fail though
|
|
changed since 0.0.7
|
|
"""
|
|
if isinstance(file_name, tuple):
|
|
return get_sheet(
|
|
file_type=file_name[0],
|
|
file_content=file_name[1],
|
|
sheet_name=sheetname,
|
|
**keywords,
|
|
)
|
|
return get_sheet(file_name=file_name, sheet_name=sheetname, **keywords)
|
|
|
|
|
|
@partial(
|
|
deprecated,
|
|
message=(
|
|
"Deprecated since v0.0.7! Please use class "
|
|
+ "Sheet(..., name_columns_by_row=0,..) instead"
|
|
),
|
|
)
|
|
def SeriesReader(file_name=None, sheetname=None, series=0, **keywords):
|
|
"""A single sheet excel file reader and it
|
|
has column headers in a selected row
|
|
|
|
use as class would fail
|
|
changed since 0.0.7
|
|
"""
|
|
if isinstance(file_name, tuple):
|
|
return get_sheet(
|
|
file_type=file_name[0],
|
|
file_content=file_name[1],
|
|
name_columns_by_row=series,
|
|
**keywords,
|
|
)
|
|
return load(
|
|
file_name,
|
|
sheetname=sheetname,
|
|
name_columns_by_row=series,
|
|
**keywords,
|
|
)
|
|
|
|
|
|
@partial(
|
|
deprecated,
|
|
message="Please use class Sheet(..., name_rows_by_column=0..) instead",
|
|
)
|
|
def ColumnSeriesReader(file_name=None, sheetname=None, series=0, **keywords):
|
|
"""A single sheet excel file reader and
|
|
it has row headers in a selected column
|
|
|
|
use as class would fail
|
|
changed since 0.0.7
|
|
"""
|
|
if isinstance(file_name, tuple):
|
|
return get_sheet(
|
|
file_type=file_name[0],
|
|
file_content=file_name[1],
|
|
name_rows_by_column=series,
|
|
**keywords,
|
|
)
|
|
return load(
|
|
file_name,
|
|
sheetname=sheetname,
|
|
name_rows_by_column=series,
|
|
**keywords,
|
|
)
|
|
|
|
|
|
@partial(
|
|
deprecated,
|
|
message="Deprecated since v0.0.7! Please use class Book instead",
|
|
)
|
|
def BookReader(file_name, **keywords):
|
|
"""For backward compatibility"""
|
|
return load_book(file_name, **keywords)
|