pyexcel 0.7.1__tar.gz → 0.7.2__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {pyexcel-0.7.1 → pyexcel-0.7.2}/CHANGELOG.rst +12 -0
- {pyexcel-0.7.1 → pyexcel-0.7.2}/CONTRIBUTORS.rst +1 -1
- {pyexcel-0.7.1 → pyexcel-0.7.2}/LICENSE +1 -1
- {pyexcel-0.7.1 → pyexcel-0.7.2}/PKG-INFO +36 -21
- {pyexcel-0.7.1 → pyexcel-0.7.2}/README.rst +6 -16
- {pyexcel-0.7.1 → pyexcel-0.7.2}/docs/requirements.txt +1 -0
- {pyexcel-0.7.1 → pyexcel-0.7.2}/docs/source/conf.py +7 -7
- {pyexcel-0.7.1 → pyexcel-0.7.2}/docs/source/guide.rst +6 -3
- {pyexcel-0.7.1 → pyexcel-0.7.2}/docs/source/index.rst +25 -31
- {pyexcel-0.7.1 → pyexcel-0.7.2}/examples/basics/convert_xls_to_xlsx.py +1 -1
- {pyexcel-0.7.1 → pyexcel-0.7.2}/examples/basics/jsonify.py +1 -1
- {pyexcel-0.7.1 → pyexcel-0.7.2}/examples/basics/read_cell_by_cell.py +1 -1
- {pyexcel-0.7.1 → pyexcel-0.7.2}/examples/basics/read_column_by_column.py +1 -1
- {pyexcel-0.7.1 → pyexcel-0.7.2}/examples/basics/read_excel_book.py +1 -1
- {pyexcel-0.7.1 → pyexcel-0.7.2}/examples/basics/read_row_by_row.py +1 -1
- {pyexcel-0.7.1 → pyexcel-0.7.2}/examples/basics/series.py +1 -1
- {pyexcel-0.7.1 → pyexcel-0.7.2}/examples/basics/write_excel_book.py +1 -1
- {pyexcel-0.7.1 → pyexcel-0.7.2}/examples/cookbook/merge_sheets.py +1 -1
- {pyexcel-0.7.1 → pyexcel-0.7.2}/examples/database/import_xls_into_database_via_sqlalchemy.py +1 -1
- {pyexcel-0.7.1 → pyexcel-0.7.2}/examples/formatting/formatter01.py +1 -1
- {pyexcel-0.7.1 → pyexcel-0.7.2}/examples/formatting/formatter02.py +1 -1
- {pyexcel-0.7.1 → pyexcel-0.7.2}/examples/memoryfile/pyexcel_server.py +1 -1
- {pyexcel-0.7.1 → pyexcel-0.7.2}/pyexcel/__init__.py +1 -1
- pyexcel-0.7.2/pyexcel/__version__.py +2 -0
- {pyexcel-0.7.1 → pyexcel-0.7.2}/pyexcel/_compact.py +4 -2
- {pyexcel-0.7.1 → pyexcel-0.7.2}/pyexcel/book.py +5 -5
- {pyexcel-0.7.1 → pyexcel-0.7.2}/pyexcel/cookbook.py +1 -1
- {pyexcel-0.7.1 → pyexcel-0.7.2}/pyexcel/internal/sheets/__init__.py +1 -1
- {pyexcel-0.7.1 → pyexcel-0.7.2}/pyexcel/internal/sheets/formatters.py +1 -1
- {pyexcel-0.7.1 → pyexcel-0.7.2}/pyexcel/internal/sheets/matrix.py +1 -1
- {pyexcel-0.7.1 → pyexcel-0.7.2}/pyexcel/sheet.py +7 -7
- {pyexcel-0.7.1 → pyexcel-0.7.2}/pyexcel.egg-info/PKG-INFO +36 -21
- {pyexcel-0.7.1 → pyexcel-0.7.2}/pyexcel.egg-info/requires.txt +1 -1
- {pyexcel-0.7.1 → pyexcel-0.7.2}/setup.py +5 -5
- {pyexcel-0.7.1 → pyexcel-0.7.2}/tests/requirements.txt +1 -0
- pyexcel-0.7.1/pyexcel/__version__.py +0 -2
- {pyexcel-0.7.1 → pyexcel-0.7.2}/MANIFEST.in +0 -0
- {pyexcel-0.7.1 → pyexcel-0.7.2}/docs/Makefile +0 -0
- {pyexcel-0.7.1 → pyexcel-0.7.2}/docs/make.bat +0 -0
- {pyexcel-0.7.1 → pyexcel-0.7.2}/docs/source/_static/handsontable.full.min.css +0 -0
- {pyexcel-0.7.1 → pyexcel-0.7.2}/docs/source/_static/handsontable.full.min.js +0 -0
- {pyexcel-0.7.1 → pyexcel-0.7.2}/docs/source/_static/images/architecture.svg +0 -0
- {pyexcel-0.7.1 → pyexcel-0.7.2}/docs/source/_static/theme_overrides.css +0 -0
- {pyexcel-0.7.1 → pyexcel-0.7.2}/docs/source/_templates/layout.html +0 -0
- {pyexcel-0.7.1 → pyexcel-0.7.2}/docs/source/answers.rst +0 -0
- {pyexcel-0.7.1 → pyexcel-0.7.2}/docs/source/api.rst +0 -0
- {pyexcel-0.7.1 → pyexcel-0.7.2}/docs/source/architecture.rst +0 -0
- {pyexcel-0.7.1 → pyexcel-0.7.2}/docs/source/attributes.rst +0 -0
- {pyexcel-0.7.1 → pyexcel-0.7.2}/docs/source/bigdata.rst +0 -0
- {pyexcel-0.7.1 → pyexcel-0.7.2}/docs/source/book.rst +0 -0
- {pyexcel-0.7.1 → pyexcel-0.7.2}/docs/source/capability.rst +0 -0
- {pyexcel-0.7.1 → pyexcel-0.7.2}/docs/source/changelog.rst +0 -0
- {pyexcel-0.7.1 → pyexcel-0.7.2}/docs/source/coffee.csv +0 -0
- {pyexcel-0.7.1 → pyexcel-0.7.2}/docs/source/cookbook.rst +0 -0
- {pyexcel-0.7.1 → pyexcel-0.7.2}/docs/source/database.rst +0 -0
- {pyexcel-0.7.1 → pyexcel-0.7.2}/docs/source/design.rst +0 -0
- {pyexcel-0.7.1 → pyexcel-0.7.2}/docs/source/entity-relationship-diagram.dia +0 -0
- {pyexcel-0.7.1 → pyexcel-0.7.2}/docs/source/entity-relationship-diagram.png +0 -0
- {pyexcel-0.7.1 → pyexcel-0.7.2}/docs/source/generated/pyexcel.Book.bookdict.rst +0 -0
- {pyexcel-0.7.1 → pyexcel-0.7.2}/docs/source/generated/pyexcel.Book.csv.rst +0 -0
- {pyexcel-0.7.1 → pyexcel-0.7.2}/docs/source/generated/pyexcel.Book.csvz.rst +0 -0
- {pyexcel-0.7.1 → pyexcel-0.7.2}/docs/source/generated/pyexcel.Book.number_of_sheets.rst +0 -0
- {pyexcel-0.7.1 → pyexcel-0.7.2}/docs/source/generated/pyexcel.Book.ods.rst +0 -0
- {pyexcel-0.7.1 → pyexcel-0.7.2}/docs/source/generated/pyexcel.Book.rst +0 -0
- {pyexcel-0.7.1 → pyexcel-0.7.2}/docs/source/generated/pyexcel.Book.save_as.rst +0 -0
- {pyexcel-0.7.1 → pyexcel-0.7.2}/docs/source/generated/pyexcel.Book.save_to_database.rst +0 -0
- {pyexcel-0.7.1 → pyexcel-0.7.2}/docs/source/generated/pyexcel.Book.save_to_django_models.rst +0 -0
- {pyexcel-0.7.1 → pyexcel-0.7.2}/docs/source/generated/pyexcel.Book.save_to_memory.rst +0 -0
- {pyexcel-0.7.1 → pyexcel-0.7.2}/docs/source/generated/pyexcel.Book.sheet_names.rst +0 -0
- {pyexcel-0.7.1 → pyexcel-0.7.2}/docs/source/generated/pyexcel.Book.stream.rst +0 -0
- {pyexcel-0.7.1 → pyexcel-0.7.2}/docs/source/generated/pyexcel.Book.tsv.rst +0 -0
- {pyexcel-0.7.1 → pyexcel-0.7.2}/docs/source/generated/pyexcel.Book.tsvz.rst +0 -0
- {pyexcel-0.7.1 → pyexcel-0.7.2}/docs/source/generated/pyexcel.Book.url.rst +0 -0
- {pyexcel-0.7.1 → pyexcel-0.7.2}/docs/source/generated/pyexcel.Book.xls.rst +0 -0
- {pyexcel-0.7.1 → pyexcel-0.7.2}/docs/source/generated/pyexcel.Book.xlsm.rst +0 -0
- {pyexcel-0.7.1 → pyexcel-0.7.2}/docs/source/generated/pyexcel.Book.xlsx.rst +0 -0
- {pyexcel-0.7.1 → pyexcel-0.7.2}/docs/source/generated/pyexcel.Sheet.__getitem__.rst +0 -0
- {pyexcel-0.7.1 → pyexcel-0.7.2}/docs/source/generated/pyexcel.Sheet.array.rst +0 -0
- {pyexcel-0.7.1 → pyexcel-0.7.2}/docs/source/generated/pyexcel.Sheet.cell_value.rst +0 -0
- {pyexcel-0.7.1 → pyexcel-0.7.2}/docs/source/generated/pyexcel.Sheet.colnames.rst +0 -0
- {pyexcel-0.7.1 → pyexcel-0.7.2}/docs/source/generated/pyexcel.Sheet.column_at.rst +0 -0
- {pyexcel-0.7.1 → pyexcel-0.7.2}/docs/source/generated/pyexcel.Sheet.column_range.rst +0 -0
- {pyexcel-0.7.1 → pyexcel-0.7.2}/docs/source/generated/pyexcel.Sheet.content.rst +0 -0
- {pyexcel-0.7.1 → pyexcel-0.7.2}/docs/source/generated/pyexcel.Sheet.csv.rst +0 -0
- {pyexcel-0.7.1 → pyexcel-0.7.2}/docs/source/generated/pyexcel.Sheet.csvz.rst +0 -0
- {pyexcel-0.7.1 → pyexcel-0.7.2}/docs/source/generated/pyexcel.Sheet.cut.rst +0 -0
- {pyexcel-0.7.1 → pyexcel-0.7.2}/docs/source/generated/pyexcel.Sheet.delete_columns.rst +0 -0
- {pyexcel-0.7.1 → pyexcel-0.7.2}/docs/source/generated/pyexcel.Sheet.delete_named_column_at.rst +0 -0
- {pyexcel-0.7.1 → pyexcel-0.7.2}/docs/source/generated/pyexcel.Sheet.delete_named_row_at.rst +0 -0
- {pyexcel-0.7.1 → pyexcel-0.7.2}/docs/source/generated/pyexcel.Sheet.delete_rows.rst +0 -0
- {pyexcel-0.7.1 → pyexcel-0.7.2}/docs/source/generated/pyexcel.Sheet.dict.rst +0 -0
- {pyexcel-0.7.1 → pyexcel-0.7.2}/docs/source/generated/pyexcel.Sheet.extend_columns.rst +0 -0
- {pyexcel-0.7.1 → pyexcel-0.7.2}/docs/source/generated/pyexcel.Sheet.extend_rows.rst +0 -0
- {pyexcel-0.7.1 → pyexcel-0.7.2}/docs/source/generated/pyexcel.Sheet.filter.rst +0 -0
- {pyexcel-0.7.1 → pyexcel-0.7.2}/docs/source/generated/pyexcel.Sheet.format.rst +0 -0
- {pyexcel-0.7.1 → pyexcel-0.7.2}/docs/source/generated/pyexcel.Sheet.map.rst +0 -0
- {pyexcel-0.7.1 → pyexcel-0.7.2}/docs/source/generated/pyexcel.Sheet.name_columns_by_row.rst +0 -0
- {pyexcel-0.7.1 → pyexcel-0.7.2}/docs/source/generated/pyexcel.Sheet.name_rows_by_column.rst +0 -0
- {pyexcel-0.7.1 → pyexcel-0.7.2}/docs/source/generated/pyexcel.Sheet.named_column_at.rst +0 -0
- {pyexcel-0.7.1 → pyexcel-0.7.2}/docs/source/generated/pyexcel.Sheet.named_row_at.rst +0 -0
- {pyexcel-0.7.1 → pyexcel-0.7.2}/docs/source/generated/pyexcel.Sheet.number_of_columns.rst +0 -0
- {pyexcel-0.7.1 → pyexcel-0.7.2}/docs/source/generated/pyexcel.Sheet.number_of_rows.rst +0 -0
- {pyexcel-0.7.1 → pyexcel-0.7.2}/docs/source/generated/pyexcel.Sheet.ods.rst +0 -0
- {pyexcel-0.7.1 → pyexcel-0.7.2}/docs/source/generated/pyexcel.Sheet.paste.rst +0 -0
- {pyexcel-0.7.1 → pyexcel-0.7.2}/docs/source/generated/pyexcel.Sheet.project.rst +0 -0
- {pyexcel-0.7.1 → pyexcel-0.7.2}/docs/source/generated/pyexcel.Sheet.records.rst +0 -0
- {pyexcel-0.7.1 → pyexcel-0.7.2}/docs/source/generated/pyexcel.Sheet.region.rst +0 -0
- {pyexcel-0.7.1 → pyexcel-0.7.2}/docs/source/generated/pyexcel.Sheet.row_at.rst +0 -0
- {pyexcel-0.7.1 → pyexcel-0.7.2}/docs/source/generated/pyexcel.Sheet.row_range.rst +0 -0
- {pyexcel-0.7.1 → pyexcel-0.7.2}/docs/source/generated/pyexcel.Sheet.rownames.rst +0 -0
- {pyexcel-0.7.1 → pyexcel-0.7.2}/docs/source/generated/pyexcel.Sheet.rst +0 -0
- {pyexcel-0.7.1 → pyexcel-0.7.2}/docs/source/generated/pyexcel.Sheet.save_as.rst +0 -0
- {pyexcel-0.7.1 → pyexcel-0.7.2}/docs/source/generated/pyexcel.Sheet.save_to_database.rst +0 -0
- {pyexcel-0.7.1 → pyexcel-0.7.2}/docs/source/generated/pyexcel.Sheet.save_to_django_model.rst +0 -0
- {pyexcel-0.7.1 → pyexcel-0.7.2}/docs/source/generated/pyexcel.Sheet.save_to_memory.rst +0 -0
- {pyexcel-0.7.1 → pyexcel-0.7.2}/docs/source/generated/pyexcel.Sheet.set_column_at.rst +0 -0
- {pyexcel-0.7.1 → pyexcel-0.7.2}/docs/source/generated/pyexcel.Sheet.set_named_column_at.rst +0 -0
- {pyexcel-0.7.1 → pyexcel-0.7.2}/docs/source/generated/pyexcel.Sheet.set_named_row_at.rst +0 -0
- {pyexcel-0.7.1 → pyexcel-0.7.2}/docs/source/generated/pyexcel.Sheet.set_row_at.rst +0 -0
- {pyexcel-0.7.1 → pyexcel-0.7.2}/docs/source/generated/pyexcel.Sheet.stream.rst +0 -0
- {pyexcel-0.7.1 → pyexcel-0.7.2}/docs/source/generated/pyexcel.Sheet.transpose.rst +0 -0
- {pyexcel-0.7.1 → pyexcel-0.7.2}/docs/source/generated/pyexcel.Sheet.tsv.rst +0 -0
- {pyexcel-0.7.1 → pyexcel-0.7.2}/docs/source/generated/pyexcel.Sheet.tsvz.rst +0 -0
- {pyexcel-0.7.1 → pyexcel-0.7.2}/docs/source/generated/pyexcel.Sheet.url.rst +0 -0
- {pyexcel-0.7.1 → pyexcel-0.7.2}/docs/source/generated/pyexcel.Sheet.xls.rst +0 -0
- {pyexcel-0.7.1 → pyexcel-0.7.2}/docs/source/generated/pyexcel.Sheet.xlsm.rst +0 -0
- {pyexcel-0.7.1 → pyexcel-0.7.2}/docs/source/generated/pyexcel.Sheet.xlsx.rst +0 -0
- {pyexcel-0.7.1 → pyexcel-0.7.2}/docs/source/generated/pyexcel.extract_a_sheet_from_a_book.rst +0 -0
- {pyexcel-0.7.1 → pyexcel-0.7.2}/docs/source/generated/pyexcel.free_resources.rst +0 -0
- {pyexcel-0.7.1 → pyexcel-0.7.2}/docs/source/generated/pyexcel.get_array.rst +0 -0
- {pyexcel-0.7.1 → pyexcel-0.7.2}/docs/source/generated/pyexcel.get_book.rst +0 -0
- {pyexcel-0.7.1 → pyexcel-0.7.2}/docs/source/generated/pyexcel.get_book_dict.rst +0 -0
- {pyexcel-0.7.1 → pyexcel-0.7.2}/docs/source/generated/pyexcel.get_dict.rst +0 -0
- {pyexcel-0.7.1 → pyexcel-0.7.2}/docs/source/generated/pyexcel.get_records.rst +0 -0
- {pyexcel-0.7.1 → pyexcel-0.7.2}/docs/source/generated/pyexcel.get_sheet.rst +0 -0
- {pyexcel-0.7.1 → pyexcel-0.7.2}/docs/source/generated/pyexcel.iget_array.rst +0 -0
- {pyexcel-0.7.1 → pyexcel-0.7.2}/docs/source/generated/pyexcel.iget_book.rst +0 -0
- {pyexcel-0.7.1 → pyexcel-0.7.2}/docs/source/generated/pyexcel.iget_records.rst +0 -0
- {pyexcel-0.7.1 → pyexcel-0.7.2}/docs/source/generated/pyexcel.isave_as.rst +0 -0
- {pyexcel-0.7.1 → pyexcel-0.7.2}/docs/source/generated/pyexcel.isave_book_as.rst +0 -0
- {pyexcel-0.7.1 → pyexcel-0.7.2}/docs/source/generated/pyexcel.merge_all_to_a_book.rst +0 -0
- {pyexcel-0.7.1 → pyexcel-0.7.2}/docs/source/generated/pyexcel.merge_csv_to_a_book.rst +0 -0
- {pyexcel-0.7.1 → pyexcel-0.7.2}/docs/source/generated/pyexcel.save_as.rst +0 -0
- {pyexcel-0.7.1 → pyexcel-0.7.2}/docs/source/generated/pyexcel.save_book_as.rst +0 -0
- {pyexcel-0.7.1 → pyexcel-0.7.2}/docs/source/generated/pyexcel.split_a_book.rst +0 -0
- {pyexcel-0.7.1 → pyexcel-0.7.2}/docs/source/iapi/pyexcel.internal.generators.BookStream.rst +0 -0
- {pyexcel-0.7.1 → pyexcel-0.7.2}/docs/source/iapi/pyexcel.internal.generators.SheetStream.rst +0 -0
- {pyexcel-0.7.1 → pyexcel-0.7.2}/docs/source/iapi/pyexcel.internal.sheets.Column.rst +0 -0
- {pyexcel-0.7.1 → pyexcel-0.7.2}/docs/source/iapi/pyexcel.internal.sheets.Matrix.rst +0 -0
- {pyexcel-0.7.1 → pyexcel-0.7.2}/docs/source/iapi/pyexcel.internal.sheets.Row.rst +0 -0
- {pyexcel-0.7.1 → pyexcel-0.7.2}/docs/source/iapi.rst +0 -0
- {pyexcel-0.7.1 → pyexcel-0.7.2}/docs/source/logging.rst +0 -0
- {pyexcel-0.7.1 → pyexcel-0.7.2}/docs/source/migration_guide.rst +0 -0
- {pyexcel-0.7.1 → pyexcel-0.7.2}/docs/source/note_on_pypy.rst +0 -0
- {pyexcel-0.7.1 → pyexcel-0.7.2}/docs/source/plugin_howto.rst +0 -0
- {pyexcel-0.7.1 → pyexcel-0.7.2}/docs/source/pyinstaller.rst +0 -0
- {pyexcel-0.7.1 → pyexcel-0.7.2}/docs/source/quickstart.rst +0 -0
- {pyexcel-0.7.1 → pyexcel-0.7.2}/docs/source/renderers.rst +0 -0
- {pyexcel-0.7.1 → pyexcel-0.7.2}/docs/source/sheet.rst +0 -0
- {pyexcel-0.7.1 → pyexcel-0.7.2}/docs/source/showcases/db_injection.rst +0 -0
- {pyexcel-0.7.1 → pyexcel-0.7.2}/docs/source/sources.rst +0 -0
- {pyexcel-0.7.1 → pyexcel-0.7.2}/docs/source/spelling_wordlist.txt +0 -0
- {pyexcel-0.7.1 → pyexcel-0.7.2}/docs/source/tutorial.rst +0 -0
- {pyexcel-0.7.1 → pyexcel-0.7.2}/docs/source/tutorial02.rst +0 -0
- {pyexcel-0.7.1 → pyexcel-0.7.2}/docs/source/tutorial03.rst +0 -0
- {pyexcel-0.7.1 → pyexcel-0.7.2}/docs/source/tutorial04.rst +0 -0
- {pyexcel-0.7.1 → pyexcel-0.7.2}/docs/source/tutorial05.rst +0 -0
- {pyexcel-0.7.1 → pyexcel-0.7.2}/docs/source/tutorial06.rst +0 -0
- {pyexcel-0.7.1 → pyexcel-0.7.2}/docs/source/tutorial_data_conversion.rst +0 -0
- {pyexcel-0.7.1 → pyexcel-0.7.2}/docs/source/tutorial_file.rst +0 -0
- {pyexcel-0.7.1 → pyexcel-0.7.2}/docs/source/two-liners.rst +0 -0
- {pyexcel-0.7.1 → pyexcel-0.7.2}/docs/source/uml/architecture.uml +0 -0
- {pyexcel-0.7.1 → pyexcel-0.7.2}/docs/source/webdev.rst +0 -0
- {pyexcel-0.7.1 → pyexcel-0.7.2}/examples/README.rst +0 -0
- {pyexcel-0.7.1 → pyexcel-0.7.2}/examples/basics/example.csv +0 -0
- {pyexcel-0.7.1 → pyexcel-0.7.2}/examples/basics/example.xls +0 -0
- {pyexcel-0.7.1 → pyexcel-0.7.2}/examples/basics/example.xlsm +0 -0
- {pyexcel-0.7.1 → pyexcel-0.7.2}/examples/basics/example.xlsx +0 -0
- {pyexcel-0.7.1 → pyexcel-0.7.2}/examples/basics/example_series.xls +0 -0
- {pyexcel-0.7.1 → pyexcel-0.7.2}/examples/basics/example_series_filter.xls +0 -0
- {pyexcel-0.7.1 → pyexcel-0.7.2}/examples/basics/multiple-sheets-example.xls +0 -0
- {pyexcel-0.7.1 → pyexcel-0.7.2}/examples/basics/multiple-sheets.xls +0 -0
- {pyexcel-0.7.1 → pyexcel-0.7.2}/examples/basics/multiple-sheets.xlsx +0 -0
- {pyexcel-0.7.1 → pyexcel-0.7.2}/examples/cookbook/scattered-csv-files/1.csv +0 -0
- {pyexcel-0.7.1 → pyexcel-0.7.2}/examples/cookbook/scattered-csv-files/2.csv +0 -0
- {pyexcel-0.7.1 → pyexcel-0.7.2}/examples/cookbook/scattered-csv-files/3.csv +0 -0
- {pyexcel-0.7.1 → pyexcel-0.7.2}/examples/formatting/tutorial_datatype_01.xls +0 -0
- {pyexcel-0.7.1 → pyexcel-0.7.2}/examples/formatting/tutorial_datatype_02.xls +0 -0
- {pyexcel-0.7.1 → pyexcel-0.7.2}/examples/memoryfile/README.rst +0 -0
- {pyexcel-0.7.1 → pyexcel-0.7.2}/examples/memoryfile/templates/upload.html +0 -0
- {pyexcel-0.7.1 → pyexcel-0.7.2}/examples/simple/multiple-sheets.xls +0 -0
- {pyexcel-0.7.1 → pyexcel-0.7.2}/pyexcel/constants.py +0 -0
- {pyexcel-0.7.1 → pyexcel-0.7.2}/pyexcel/core.py +0 -0
- {pyexcel-0.7.1 → pyexcel-0.7.2}/pyexcel/deprecated.py +0 -0
- {pyexcel-0.7.1 → pyexcel-0.7.2}/pyexcel/docstrings/__init__.py +0 -0
- {pyexcel-0.7.1 → pyexcel-0.7.2}/pyexcel/docstrings/core.py +0 -0
- {pyexcel-0.7.1 → pyexcel-0.7.2}/pyexcel/docstrings/garbagecollector.py +0 -0
- {pyexcel-0.7.1 → pyexcel-0.7.2}/pyexcel/docstrings/keywords.py +0 -0
- {pyexcel-0.7.1 → pyexcel-0.7.2}/pyexcel/docstrings/meta.py +0 -0
- {pyexcel-0.7.1 → pyexcel-0.7.2}/pyexcel/exceptions.py +0 -0
- {pyexcel-0.7.1 → pyexcel-0.7.2}/pyexcel/internal/__init__.py +0 -0
- {pyexcel-0.7.1 → pyexcel-0.7.2}/pyexcel/internal/attributes.py +0 -0
- {pyexcel-0.7.1 → pyexcel-0.7.2}/pyexcel/internal/common.py +0 -0
- {pyexcel-0.7.1 → pyexcel-0.7.2}/pyexcel/internal/core.py +0 -0
- {pyexcel-0.7.1 → pyexcel-0.7.2}/pyexcel/internal/garbagecollector.py +0 -0
- {pyexcel-0.7.1 → pyexcel-0.7.2}/pyexcel/internal/generators.py +0 -0
- {pyexcel-0.7.1 → pyexcel-0.7.2}/pyexcel/internal/meta.py +0 -0
- {pyexcel-0.7.1 → pyexcel-0.7.2}/pyexcel/internal/plugins.py +0 -0
- {pyexcel-0.7.1 → pyexcel-0.7.2}/pyexcel/internal/sheets/_shared.py +0 -0
- {pyexcel-0.7.1 → pyexcel-0.7.2}/pyexcel/internal/sheets/column.py +0 -0
- {pyexcel-0.7.1 → pyexcel-0.7.2}/pyexcel/internal/sheets/extended_list.py +0 -0
- {pyexcel-0.7.1 → pyexcel-0.7.2}/pyexcel/internal/sheets/row.py +0 -0
- {pyexcel-0.7.1 → pyexcel-0.7.2}/pyexcel/internal/source_plugin.py +0 -0
- {pyexcel-0.7.1 → pyexcel-0.7.2}/pyexcel/internal/utils.py +0 -0
- {pyexcel-0.7.1 → pyexcel-0.7.2}/pyexcel/parser.py +0 -0
- {pyexcel-0.7.1 → pyexcel-0.7.2}/pyexcel/plugins/__init__.py +0 -0
- {pyexcel-0.7.1 → pyexcel-0.7.2}/pyexcel/plugins/parsers/__init__.py +0 -0
- {pyexcel-0.7.1 → pyexcel-0.7.2}/pyexcel/plugins/parsers/django.py +0 -0
- {pyexcel-0.7.1 → pyexcel-0.7.2}/pyexcel/plugins/parsers/excel.py +0 -0
- {pyexcel-0.7.1 → pyexcel-0.7.2}/pyexcel/plugins/parsers/sqlalchemy.py +0 -0
- {pyexcel-0.7.1 → pyexcel-0.7.2}/pyexcel/plugins/renderers/__init__.py +0 -0
- {pyexcel-0.7.1 → pyexcel-0.7.2}/pyexcel/plugins/renderers/_texttable.py +0 -0
- {pyexcel-0.7.1 → pyexcel-0.7.2}/pyexcel/plugins/renderers/django.py +0 -0
- {pyexcel-0.7.1 → pyexcel-0.7.2}/pyexcel/plugins/renderers/excel.py +0 -0
- {pyexcel-0.7.1 → pyexcel-0.7.2}/pyexcel/plugins/renderers/sqlalchemy.py +0 -0
- {pyexcel-0.7.1 → pyexcel-0.7.2}/pyexcel/plugins/sources/__init__.py +0 -0
- {pyexcel-0.7.1 → pyexcel-0.7.2}/pyexcel/plugins/sources/db_sources.py +0 -0
- {pyexcel-0.7.1 → pyexcel-0.7.2}/pyexcel/plugins/sources/django.py +0 -0
- {pyexcel-0.7.1 → pyexcel-0.7.2}/pyexcel/plugins/sources/file_input.py +0 -0
- {pyexcel-0.7.1 → pyexcel-0.7.2}/pyexcel/plugins/sources/file_output.py +0 -0
- {pyexcel-0.7.1 → pyexcel-0.7.2}/pyexcel/plugins/sources/http.py +0 -0
- {pyexcel-0.7.1 → pyexcel-0.7.2}/pyexcel/plugins/sources/memory_input.py +0 -0
- {pyexcel-0.7.1 → pyexcel-0.7.2}/pyexcel/plugins/sources/output_to_memory.py +0 -0
- {pyexcel-0.7.1 → pyexcel-0.7.2}/pyexcel/plugins/sources/params.py +0 -0
- {pyexcel-0.7.1 → pyexcel-0.7.2}/pyexcel/plugins/sources/pydata/__init__.py +0 -0
- {pyexcel-0.7.1 → pyexcel-0.7.2}/pyexcel/plugins/sources/pydata/arraysource.py +0 -0
- {pyexcel-0.7.1 → pyexcel-0.7.2}/pyexcel/plugins/sources/pydata/bookdict.py +0 -0
- {pyexcel-0.7.1 → pyexcel-0.7.2}/pyexcel/plugins/sources/pydata/common.py +0 -0
- {pyexcel-0.7.1 → pyexcel-0.7.2}/pyexcel/plugins/sources/pydata/dictsource.py +0 -0
- {pyexcel-0.7.1 → pyexcel-0.7.2}/pyexcel/plugins/sources/pydata/records.py +0 -0
- {pyexcel-0.7.1 → pyexcel-0.7.2}/pyexcel/plugins/sources/querysets.py +0 -0
- {pyexcel-0.7.1 → pyexcel-0.7.2}/pyexcel/plugins/sources/sheet_stream_source.py +0 -0
- {pyexcel-0.7.1 → pyexcel-0.7.2}/pyexcel/plugins/sources/sqlalchemy.py +0 -0
- {pyexcel-0.7.1 → pyexcel-0.7.2}/pyexcel/renderer.py +0 -0
- {pyexcel-0.7.1 → pyexcel-0.7.2}/pyexcel/source.py +0 -0
- {pyexcel-0.7.1 → pyexcel-0.7.2}/pyexcel.egg-info/SOURCES.txt +0 -0
- {pyexcel-0.7.1 → pyexcel-0.7.2}/pyexcel.egg-info/dependency_links.txt +0 -0
- {pyexcel-0.7.1 → pyexcel-0.7.2}/pyexcel.egg-info/not-zip-safe +0 -0
- {pyexcel-0.7.1 → pyexcel-0.7.2}/pyexcel.egg-info/top_level.txt +0 -0
- {pyexcel-0.7.1 → pyexcel-0.7.2}/setup.cfg +0 -0
- {pyexcel-0.7.1 → pyexcel-0.7.2}/tests/__init__.py +0 -0
- {pyexcel-0.7.1 → pyexcel-0.7.2}/tests/_compact.py +0 -0
- {pyexcel-0.7.1 → pyexcel-0.7.2}/tests/base.py +0 -0
- {pyexcel-0.7.1 → pyexcel-0.7.2}/tests/db.py +0 -0
- {pyexcel-0.7.1 → pyexcel-0.7.2}/tests/fixtures/bug_01.csv +0 -0
- {pyexcel-0.7.1 → pyexcel-0.7.2}/tests/fixtures/bug_176.xlsx +0 -0
- {pyexcel-0.7.1 → pyexcel-0.7.2}/tests/fixtures/date_field.xls +0 -0
- {pyexcel-0.7.1 → pyexcel-0.7.2}/tests/fixtures/empty.csv +0 -0
- {pyexcel-0.7.1 → pyexcel-0.7.2}/tests/fixtures/file_with_an_empty_sheet.xlsx +0 -0
- {pyexcel-0.7.1 → pyexcel-0.7.2}/tests/fixtures/force_type.txt +0 -0
- {pyexcel-0.7.1 → pyexcel-0.7.2}/tests/fixtures/issue_241/1.csv +0 -0
- {pyexcel-0.7.1 → pyexcel-0.7.2}/tests/fixtures/issue_241/2.csv +0 -0
- {pyexcel-0.7.1 → pyexcel-0.7.2}/tests/fixtures/non-uniform-rows.csv +0 -0
- {pyexcel-0.7.1 → pyexcel-0.7.2}/tests/fixtures/ods_formats.ods +0 -0
- {pyexcel-0.7.1 → pyexcel-0.7.2}/tests/fixtures/test-multiple.csvz +0 -0
- {pyexcel-0.7.1 → pyexcel-0.7.2}/tests/fixtures/test-single.csvz +0 -0
- {pyexcel-0.7.1 → pyexcel-0.7.2}/tests/fixtures/test_cook_book_merge_alphabets.csv +0 -0
- {pyexcel-0.7.1 → pyexcel-0.7.2}/tests/fixtures/test_cook_book_merge_alphabets_2.csv +0 -0
- {pyexcel-0.7.1 → pyexcel-0.7.2}/tests/fixtures/test_cook_book_merge_numbers.csv +0 -0
- {pyexcel-0.7.1 → pyexcel-0.7.2}/tests/fixtures/test_cook_book_merge_numbers_2.csv +0 -0
- {pyexcel-0.7.1 → pyexcel-0.7.2}/tests/test_book.py +0 -0
- {pyexcel-0.7.1 → pyexcel-0.7.2}/tests/test_book_stream.py +0 -0
- {pyexcel-0.7.1 → pyexcel-0.7.2}/tests/test_bug_fixes.py +0 -0
- {pyexcel-0.7.1 → pyexcel-0.7.2}/tests/test_cookbook.py +0 -0
- {pyexcel-0.7.1 → pyexcel-0.7.2}/tests/test_django_related_functions.py +0 -0
- {pyexcel-0.7.1 → pyexcel-0.7.2}/tests/test_examples.py +0 -0
- {pyexcel-0.7.1 → pyexcel-0.7.2}/tests/test_exploitation.py +0 -0
- {pyexcel-0.7.1 → pyexcel-0.7.2}/tests/test_file_type_as_attribute.py +0 -0
- {pyexcel-0.7.1 → pyexcel-0.7.2}/tests/test_fileio.py +0 -0
- {pyexcel-0.7.1 → pyexcel-0.7.2}/tests/test_formatters.py +0 -0
- {pyexcel-0.7.1 → pyexcel-0.7.2}/tests/test_gabagecollector.py +0 -0
- {pyexcel-0.7.1 → pyexcel-0.7.2}/tests/test_http_source.py +0 -0
- {pyexcel-0.7.1 → pyexcel-0.7.2}/tests/test_internals.py +0 -0
- {pyexcel-0.7.1 → pyexcel-0.7.2}/tests/test_iterator.py +0 -0
- {pyexcel-0.7.1 → pyexcel-0.7.2}/tests/test_multiple_sheets.py +0 -0
- {pyexcel-0.7.1 → pyexcel-0.7.2}/tests/test_parser.py +0 -0
- {pyexcel-0.7.1 → pyexcel-0.7.2}/tests/test_presentation.py +0 -0
- {pyexcel-0.7.1 → pyexcel-0.7.2}/tests/test_pyexcel_list.py +0 -0
- {pyexcel-0.7.1 → pyexcel-0.7.2}/tests/test_reader.py +0 -0
- {pyexcel-0.7.1 → pyexcel-0.7.2}/tests/test_renderer.py +0 -0
- {pyexcel-0.7.1 → pyexcel-0.7.2}/tests/test_sheet.py +0 -0
- {pyexcel-0.7.1 → pyexcel-0.7.2}/tests/test_sheet_access.py +0 -0
- {pyexcel-0.7.1 → pyexcel-0.7.2}/tests/test_sheet_attributes.py +0 -0
- {pyexcel-0.7.1 → pyexcel-0.7.2}/tests/test_sheet_column.py +0 -0
- {pyexcel-0.7.1 → pyexcel-0.7.2}/tests/test_sheet_row.py +0 -0
- {pyexcel-0.7.1 → pyexcel-0.7.2}/tests/test_sheet_stream.py +0 -0
- {pyexcel-0.7.1 → pyexcel-0.7.2}/tests/test_sheet_update.py +0 -0
- {pyexcel-0.7.1 → pyexcel-0.7.2}/tests/test_sheets.py +0 -0
- {pyexcel-0.7.1 → pyexcel-0.7.2}/tests/test_signature_fuction.py +0 -0
- {pyexcel-0.7.1 → pyexcel-0.7.2}/tests/test_sources.py +0 -0
- {pyexcel-0.7.1 → pyexcel-0.7.2}/tests/test_sql.py +0 -0
- {pyexcel-0.7.1 → pyexcel-0.7.2}/tests/test_stringio.py +0 -0
- {pyexcel-0.7.1 → pyexcel-0.7.2}/tests/test_utils.py +0 -0
|
@@ -1,6 +1,18 @@
|
|
|
1
1
|
Change log
|
|
2
2
|
================================================================================
|
|
3
3
|
|
|
4
|
+
0.7.2 - 23.03.2025
|
|
5
|
+
--------------------------------------------------------------------------------
|
|
6
|
+
|
|
7
|
+
**Fixed**
|
|
8
|
+
|
|
9
|
+
#. `#270 <https://github.com/pyexcel/pyexcel/issues/270>`_: apenddoc breaks
|
|
10
|
+
interpreter optimization
|
|
11
|
+
#. `#274 <https://github.com/pyexcel/pyexcel/issues/274>`_: Replace deprecated
|
|
12
|
+
imp module with importlib - enforced pyexcel's dependency on lml>=0.2.0. This
|
|
13
|
+
will have an implication for linux distribution makers for pyexcel. However,
|
|
14
|
+
this is a reaction to the potential removal of __import__ syntax.
|
|
15
|
+
|
|
4
16
|
0.7.1 - 11.09.2024
|
|
5
17
|
--------------------------------------------------------------------------------
|
|
6
18
|
|
|
@@ -18,7 +18,7 @@ In alphabetical order:
|
|
|
18
18
|
* `Linghui Zeng <https://github.com/mathsyouth>`_
|
|
19
19
|
* `Mark Mayo <https://github.com/marksmayo>`_
|
|
20
20
|
* `Mateusz Konieczny <https://github.com/matkoniecz>`_
|
|
21
|
-
* `
|
|
21
|
+
* `nikolas <https://github.com/nikolas>`_
|
|
22
22
|
* `Rintze M. Zelle, PhD <https://github.com/rmzelle>`_
|
|
23
23
|
* `Simeon Visser <https://github.com/svisser>`_
|
|
24
24
|
* `Simon Allen <https://github.com/garfunkel>`_
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
Metadata-Version: 2.
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
2
|
Name: pyexcel
|
|
3
|
-
Version: 0.7.
|
|
3
|
+
Version: 0.7.2
|
|
4
4
|
Summary: A wrapper library that provides one API to read, manipulate and writedata in different excel formats
|
|
5
5
|
Home-page: https://github.com/pyexcel/pyexcel
|
|
6
|
-
Download-URL: https://github.com/pyexcel/pyexcel/archive/0.7.
|
|
6
|
+
Download-URL: https://github.com/pyexcel/pyexcel/archive/0.7.2.tar.gz
|
|
7
7
|
Author: C.W.
|
|
8
8
|
Author-email: info@pyexcel.org
|
|
9
9
|
License: New BSD
|
|
@@ -18,7 +18,7 @@ Classifier: Programming Language :: Python :: 3.8
|
|
|
18
18
|
Classifier: Development Status :: 3 - Alpha
|
|
19
19
|
Requires-Python: >=3.6
|
|
20
20
|
License-File: LICENSE
|
|
21
|
-
Requires-Dist: lml>=0.0
|
|
21
|
+
Requires-Dist: lml>=0.2.0
|
|
22
22
|
Requires-Dist: pyexcel-io>=0.6.2
|
|
23
23
|
Requires-Dist: texttable>=0.8.2
|
|
24
24
|
Provides-Extra: xls
|
|
@@ -27,6 +27,19 @@ Provides-Extra: xlsx
|
|
|
27
27
|
Requires-Dist: pyexcel-xlsx>=0.6.0; extra == "xlsx"
|
|
28
28
|
Provides-Extra: ods
|
|
29
29
|
Requires-Dist: pyexcel-ods3>=0.6.0; extra == "ods"
|
|
30
|
+
Dynamic: author
|
|
31
|
+
Dynamic: author-email
|
|
32
|
+
Dynamic: classifier
|
|
33
|
+
Dynamic: description
|
|
34
|
+
Dynamic: download-url
|
|
35
|
+
Dynamic: home-page
|
|
36
|
+
Dynamic: keywords
|
|
37
|
+
Dynamic: license
|
|
38
|
+
Dynamic: license-file
|
|
39
|
+
Dynamic: provides-extra
|
|
40
|
+
Dynamic: requires-dist
|
|
41
|
+
Dynamic: requires-python
|
|
42
|
+
Dynamic: summary
|
|
30
43
|
|
|
31
44
|
================================================================================
|
|
32
45
|
pyexcel - Let you focus on data, instead of file formats
|
|
@@ -38,9 +51,6 @@ pyexcel - Let you focus on data, instead of file formats
|
|
|
38
51
|
.. image:: https://raw.githubusercontent.com/pyexcel/pyexcel-mobans/master/images/awesome-badge.svg
|
|
39
52
|
:target: https://awesome-python.com/#specific-formats-processing
|
|
40
53
|
|
|
41
|
-
.. image:: https://github.com/pyexcel/pyexcel/workflows/run_tests/badge.svg
|
|
42
|
-
:target: http://github.com/pyexcel/pyexcel/actions
|
|
43
|
-
|
|
44
54
|
.. image:: https://codecov.io/gh/pyexcel/pyexcel/branch/master/graph/badge.svg
|
|
45
55
|
:target: https://codecov.io/gh/pyexcel/pyexcel
|
|
46
56
|
|
|
@@ -50,6 +60,7 @@ pyexcel - Let you focus on data, instead of file formats
|
|
|
50
60
|
.. image:: https://anaconda.org/conda-forge/pyexcel/badges/version.svg
|
|
51
61
|
:target: https://anaconda.org/conda-forge/pyexcel
|
|
52
62
|
|
|
63
|
+
|
|
53
64
|
.. image:: https://pepy.tech/badge/pyexcel/month
|
|
54
65
|
:target: https://pepy.tech/project/pyexcel
|
|
55
66
|
|
|
@@ -70,19 +81,11 @@ pyexcel - Let you focus on data, instead of file formats
|
|
|
70
81
|
Support the project
|
|
71
82
|
================================================================================
|
|
72
83
|
|
|
73
|
-
If your company
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
If you are an individual, you are welcome to support me too and for however long
|
|
79
|
-
you feel like. As my backer, you will receive
|
|
80
|
-
`early access to pyexcel related contents <https://www.patreon.com/pyexcel/posts>`_.
|
|
81
|
-
|
|
82
|
-
And your issues will get prioritized if you would like to become my patreon as `pyexcel pro user`.
|
|
83
|
-
|
|
84
|
-
With your financial support, I will be able to invest
|
|
85
|
-
a little bit more time in coding, documentation and writing interesting posts.
|
|
84
|
+
If your company uses pyexcel and its components in a revenue-generating product,
|
|
85
|
+
please consider supporting the project on GitHub or
|
|
86
|
+
`Patreon <https://www.patreon.com/bePatron?u=5537627>`_. Your financial
|
|
87
|
+
support will enable me to dedicate more time to coding, improving documentation,
|
|
88
|
+
and creating engaging content.
|
|
86
89
|
|
|
87
90
|
|
|
88
91
|
Known constraints
|
|
@@ -1229,7 +1232,7 @@ In alphabetical order:
|
|
|
1229
1232
|
* `Linghui Zeng <https://github.com/mathsyouth>`_
|
|
1230
1233
|
* `Mark Mayo <https://github.com/marksmayo>`_
|
|
1231
1234
|
* `Mateusz Konieczny <https://github.com/matkoniecz>`_
|
|
1232
|
-
* `
|
|
1235
|
+
* `nikolas <https://github.com/nikolas>`_
|
|
1233
1236
|
* `Rintze M. Zelle, PhD <https://github.com/rmzelle>`_
|
|
1234
1237
|
* `Simeon Visser <https://github.com/svisser>`_
|
|
1235
1238
|
* `Simon Allen <https://github.com/garfunkel>`_
|
|
@@ -1241,6 +1244,18 @@ In alphabetical order:
|
|
|
1241
1244
|
Change log
|
|
1242
1245
|
================================================================================
|
|
1243
1246
|
|
|
1247
|
+
0.7.2 - 23.03.2025
|
|
1248
|
+
--------------------------------------------------------------------------------
|
|
1249
|
+
|
|
1250
|
+
**Fixed**
|
|
1251
|
+
|
|
1252
|
+
#. `#270 <https://github.com/pyexcel/pyexcel/issues/270>`_: apenddoc breaks
|
|
1253
|
+
interpreter optimization
|
|
1254
|
+
#. `#274 <https://github.com/pyexcel/pyexcel/issues/274>`_: Replace deprecated
|
|
1255
|
+
imp module with importlib - enforced pyexcel's dependency on lml>=0.2.0. This
|
|
1256
|
+
will have an implication for linux distribution makers for pyexcel. However,
|
|
1257
|
+
this is a reaction to the potential removal of __import__ syntax.
|
|
1258
|
+
|
|
1244
1259
|
0.7.1 - 11.09.2024
|
|
1245
1260
|
--------------------------------------------------------------------------------
|
|
1246
1261
|
|
|
@@ -8,9 +8,6 @@ pyexcel - Let you focus on data, instead of file formats
|
|
|
8
8
|
.. image:: https://raw.githubusercontent.com/pyexcel/pyexcel-mobans/master/images/awesome-badge.svg
|
|
9
9
|
:target: https://awesome-python.com/#specific-formats-processing
|
|
10
10
|
|
|
11
|
-
.. image:: https://github.com/pyexcel/pyexcel/workflows/run_tests/badge.svg
|
|
12
|
-
:target: http://github.com/pyexcel/pyexcel/actions
|
|
13
|
-
|
|
14
11
|
.. image:: https://codecov.io/gh/pyexcel/pyexcel/branch/master/graph/badge.svg
|
|
15
12
|
:target: https://codecov.io/gh/pyexcel/pyexcel
|
|
16
13
|
|
|
@@ -20,6 +17,7 @@ pyexcel - Let you focus on data, instead of file formats
|
|
|
20
17
|
.. image:: https://anaconda.org/conda-forge/pyexcel/badges/version.svg
|
|
21
18
|
:target: https://anaconda.org/conda-forge/pyexcel
|
|
22
19
|
|
|
20
|
+
|
|
23
21
|
.. image:: https://pepy.tech/badge/pyexcel/month
|
|
24
22
|
:target: https://pepy.tech/project/pyexcel
|
|
25
23
|
|
|
@@ -40,19 +38,11 @@ pyexcel - Let you focus on data, instead of file formats
|
|
|
40
38
|
Support the project
|
|
41
39
|
================================================================================
|
|
42
40
|
|
|
43
|
-
If your company
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
If you are an individual, you are welcome to support me too and for however long
|
|
49
|
-
you feel like. As my backer, you will receive
|
|
50
|
-
`early access to pyexcel related contents <https://www.patreon.com/pyexcel/posts>`_.
|
|
51
|
-
|
|
52
|
-
And your issues will get prioritized if you would like to become my patreon as `pyexcel pro user`.
|
|
53
|
-
|
|
54
|
-
With your financial support, I will be able to invest
|
|
55
|
-
a little bit more time in coding, documentation and writing interesting posts.
|
|
41
|
+
If your company uses pyexcel and its components in a revenue-generating product,
|
|
42
|
+
please consider supporting the project on GitHub or
|
|
43
|
+
`Patreon <https://www.patreon.com/bePatron?u=5537627>`_. Your financial
|
|
44
|
+
support will enable me to dedicate more time to coding, improving documentation,
|
|
45
|
+
and creating engaging content.
|
|
56
46
|
|
|
57
47
|
|
|
58
48
|
Known constraints
|
|
@@ -23,12 +23,12 @@ DESCRIPTION = (
|
|
|
23
23
|
# -- Project information -----------------------------------------------------
|
|
24
24
|
|
|
25
25
|
project = 'pyexcel'
|
|
26
|
-
copyright = '2014-
|
|
26
|
+
copyright = '2014-2025 Onni Software Ltd.'
|
|
27
27
|
author = 'C.W.'
|
|
28
28
|
# The short X.Y version
|
|
29
|
-
version = '0.7.
|
|
29
|
+
version = '0.7.2'
|
|
30
30
|
# The full version, including alpha/beta/rc tags
|
|
31
|
-
release = '0.7.
|
|
31
|
+
release = '0.7.2'
|
|
32
32
|
|
|
33
33
|
# -- General configuration ---------------------------------------------------
|
|
34
34
|
|
|
@@ -58,7 +58,7 @@ exclude_patterns = []
|
|
|
58
58
|
# The theme to use for HTML and HTML Help pages. See the documentation for
|
|
59
59
|
# a list of builtin themes.
|
|
60
60
|
#
|
|
61
|
-
html_theme = '
|
|
61
|
+
html_theme = 'sphinx_rtd_theme'
|
|
62
62
|
|
|
63
63
|
# Add any paths that contain custom static files (such as style sheets) here,
|
|
64
64
|
# relative to this directory. They are copied after the builtin static files,
|
|
@@ -69,11 +69,11 @@ html_static_path = ['_static']
|
|
|
69
69
|
# -- Options for intersphinx extension ---------------------------------------
|
|
70
70
|
|
|
71
71
|
# Example configuration for intersphinx: refer to the Python standard library.
|
|
72
|
-
intersphinx_mapping = {'https://docs.python.org/3
|
|
72
|
+
intersphinx_mapping = {'python': ('https://docs.python.org/3',
|
|
73
|
+
'python-inv.txt')}
|
|
73
74
|
# TODO: html_theme not configurable upstream
|
|
74
|
-
html_theme = 'default'
|
|
75
75
|
def setup(app):
|
|
76
|
-
app.
|
|
76
|
+
app.add_css_file('theme_overrides.css')
|
|
77
77
|
|
|
78
78
|
|
|
79
79
|
|
|
@@ -22,15 +22,18 @@ and update changelog.yml
|
|
|
22
22
|
.. note::
|
|
23
23
|
|
|
24
24
|
As to rnd_requirements.txt, usually, it is created when a dependent
|
|
25
|
-
library is not released. Once the
|
|
25
|
+
library is not released. Once the dependency is installed
|
|
26
26
|
(will be released), the future
|
|
27
27
|
version of the dependency in the requirements.txt will be valid.
|
|
28
28
|
|
|
29
29
|
|
|
30
30
|
How to test your contribution
|
|
31
|
-
|
|
31
|
+
--------------------------------------------------------------------------------
|
|
32
32
|
|
|
33
|
-
Although `nose` and `doctest` are both used in code testing, it is
|
|
33
|
+
Although `nose` and `doctest` are both used in code testing, it is advisable
|
|
34
|
+
that unit tests are put in tests. `doctest` is incorporated only to make sure
|
|
35
|
+
the code examples in documentation remain valid across different development
|
|
36
|
+
releases.
|
|
34
37
|
|
|
35
38
|
On Linux/Unix systems, please launch your tests like this::
|
|
36
39
|
|
|
@@ -11,43 +11,37 @@
|
|
|
11
11
|
Introduction
|
|
12
12
|
-------------
|
|
13
13
|
|
|
14
|
-
**pyexcel** provides **one**
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
with minimal code and vice versa. This library focuses on data
|
|
19
|
-
processing
|
|
20
|
-
were not and will not be considered.
|
|
21
|
-
|
|
22
|
-
The idea originated from the common usability problem: when an excel file
|
|
23
|
-
driven web application is delivered for non-developer users (ie: team assistant,
|
|
24
|
-
human resource administrator etc). The fact is that not everyone knows (or cares)
|
|
25
|
-
about the differences between various excel formats: csv, xls, xlsx are all
|
|
26
|
-
the same to them. Instead of training those users about file formats, this
|
|
27
|
-
library helps web developers to handle most of the excel file
|
|
28
|
-
formats by providing a common programming interface. To add a specific excel
|
|
29
|
-
file format type to you application, all you need is to install an extra pyexcel
|
|
30
|
-
plugin. Hence no code changes to your application and no issues with excel file
|
|
31
|
-
formats any more. Looking at the community, this library and its associated ones
|
|
32
|
-
try to become a small and easy to install alternative to Pandas.
|
|
14
|
+
**pyexcel** provides **one** unified API for reading, manipulating, and writing data
|
|
15
|
+
in various Excel formats. It simplifies the process
|
|
16
|
+
of handling Excel files, making it an enjoyable task. Data in Excel files
|
|
17
|
+
can be easily converted into :ref:`arrays or dictionaries<a-list-of-data-structures>`
|
|
18
|
+
with minimal code, and vice versa. This library focuses **purely on data
|
|
19
|
+
processing and does not address features like fonts, colors, or charts**.
|
|
33
20
|
|
|
34
21
|
|
|
35
|
-
Support the project
|
|
36
|
-
================================================================================
|
|
37
22
|
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
23
|
+
The idea behind pyexcel originated from a common usability problem: when Excel-driven
|
|
24
|
+
web applications are delivered to non-developer users (e.g., project assistants, human
|
|
25
|
+
resources administrators), they often are not aware of the differences
|
|
26
|
+
between file formats such as CSV, XLS, and XLSX. Rather than training users on these
|
|
27
|
+
formats, pyexcel provides web developers with a unified interface to handle most
|
|
28
|
+
Excel file types.
|
|
29
|
+
|
|
42
30
|
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
31
|
+
To add support for a specific Excel format in your application, simply install an
|
|
32
|
+
additional pyexcel plugin—no code changes required. This eliminates issues with
|
|
33
|
+
different file formats. In the broader community, pyexcel and its associated
|
|
34
|
+
libraries aim to be a simple, easy-to-install alternative to Pandas, where minimal
|
|
35
|
+
data manipulation is needed.
|
|
46
36
|
|
|
47
|
-
|
|
37
|
+
Support the project
|
|
38
|
+
================================================================================
|
|
48
39
|
|
|
49
|
-
|
|
50
|
-
|
|
40
|
+
If your company uses pyexcel and its components in a revenue-generating product,
|
|
41
|
+
please consider supporting the project on GitHub or
|
|
42
|
+
`Patreon <https://www.patreon.com/bePatron?u=5537627>`_. Your financial
|
|
43
|
+
support will enable me to dedicate more time to coding, improving documentation,
|
|
44
|
+
and creating engaging content.
|
|
51
45
|
|
|
52
46
|
|
|
53
47
|
Installation
|
{pyexcel-0.7.1 → pyexcel-0.7.2}/examples/database/import_xls_into_database_via_sqlalchemy.py
RENAMED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"""
|
|
2
2
|
import_xls_into_database_via_sqlalchemy.py
|
|
3
3
|
|
|
4
|
-
:copyright: (c) 2014-
|
|
4
|
+
:copyright: (c) 2014-2025 by Onni Software Ltd.
|
|
5
5
|
:license: New BSD License, see LICENSE for more details
|
|
6
6
|
|
|
7
7
|
This code snippet shows you how to import data from an excel
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
write data in different excel formats: csv, ods, xls, xlsx
|
|
7
7
|
and xlsm. It does not support formulas, styles and charts.
|
|
8
8
|
|
|
9
|
-
:copyright: (c) 2014-
|
|
9
|
+
:copyright: (c) 2014-2025 by Onni Software Ltd.
|
|
10
10
|
:license: New BSD License, see LICENSE for more details
|
|
11
11
|
"""
|
|
12
12
|
from .book import Book
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
|
|
5
5
|
Compatibles
|
|
6
6
|
|
|
7
|
-
:copyright: (c) 2014-
|
|
7
|
+
:copyright: (c) 2014-2025 by Onni Software Ltd.
|
|
8
8
|
:license: New BSD License, see LICENSE for more details
|
|
9
9
|
"""
|
|
10
10
|
# flake8: noqa
|
|
@@ -20,6 +20,7 @@ from io import BytesIO, StringIO
|
|
|
20
20
|
from urllib import request
|
|
21
21
|
from textwrap import dedent
|
|
22
22
|
from itertools import zip_longest
|
|
23
|
+
|
|
23
24
|
from collections import OrderedDict
|
|
24
25
|
|
|
25
26
|
PY2 = sys.version_info[0] == 2
|
|
@@ -66,7 +67,8 @@ def deprecated(func, message="Deprecated!"):
|
|
|
66
67
|
|
|
67
68
|
def append_doc(value):
|
|
68
69
|
def _doc(func):
|
|
69
|
-
|
|
70
|
+
if func.__doc__:
|
|
71
|
+
func.__doc__ = dedent(func.__doc__) + "\n" + value
|
|
70
72
|
return func
|
|
71
73
|
|
|
72
74
|
return _doc
|
|
@@ -4,13 +4,13 @@
|
|
|
4
4
|
|
|
5
5
|
Excel book
|
|
6
6
|
|
|
7
|
-
:copyright: (c) 2014-
|
|
7
|
+
:copyright: (c) 2014-2025 by Onni Software Ltd.
|
|
8
8
|
:license: New BSD License, see LICENSE for more details
|
|
9
9
|
"""
|
|
10
|
-
from pyexcel import _compact as compact
|
|
11
10
|
from pyexcel.sheet import Sheet
|
|
12
11
|
from pyexcel.internal.meta import BookMeta
|
|
13
12
|
from pyexcel.internal.common import SheetIterator
|
|
13
|
+
from pyexcel._compact import OrderedDict
|
|
14
14
|
|
|
15
15
|
LOCAL_UUID = 0
|
|
16
16
|
|
|
@@ -36,7 +36,7 @@ class Book(BookMeta):
|
|
|
36
36
|
self.__path = None
|
|
37
37
|
self.__name_array = []
|
|
38
38
|
self.filename = None
|
|
39
|
-
self.__sheets =
|
|
39
|
+
self.__sheets = OrderedDict()
|
|
40
40
|
self.init(sheets=sheets, filename=filename, path=path)
|
|
41
41
|
|
|
42
42
|
def init(self, sheets=None, filename="memory", path=None):
|
|
@@ -147,7 +147,7 @@ class Book(BookMeta):
|
|
|
147
147
|
book3 = book1 + book2["Sheet 1"]
|
|
148
148
|
|
|
149
149
|
"""
|
|
150
|
-
content =
|
|
150
|
+
content = OrderedDict()
|
|
151
151
|
current_dict = self.to_dict()
|
|
152
152
|
for k in current_dict.keys():
|
|
153
153
|
new_key = k
|
|
@@ -209,7 +209,7 @@ class Book(BookMeta):
|
|
|
209
209
|
|
|
210
210
|
def to_dict(self):
|
|
211
211
|
"""Convert the book to a dictionary"""
|
|
212
|
-
the_dict =
|
|
212
|
+
the_dict = OrderedDict()
|
|
213
213
|
for sheet in self:
|
|
214
214
|
the_dict.update({sheet.name: sheet.array})
|
|
215
215
|
return the_dict
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
|
|
5
5
|
Building on top of matrix, adding named columns and rows support
|
|
6
6
|
|
|
7
|
-
:copyright: (c) 2014-
|
|
7
|
+
:copyright: (c) 2014-2025 by Onni Software Ltd.
|
|
8
8
|
:license: New BSD License, see LICENSE for more details
|
|
9
9
|
"""
|
|
10
10
|
import copy
|
|
@@ -294,7 +294,7 @@ class Sheet(Matrix):
|
|
|
294
294
|
def named_column_at(self, name):
|
|
295
295
|
"""Get a column by its name"""
|
|
296
296
|
index = name
|
|
297
|
-
if
|
|
297
|
+
if isinstance(index, str):
|
|
298
298
|
index = self.colnames.index(name)
|
|
299
299
|
column_array = self.column_at(index)
|
|
300
300
|
return column_array
|
|
@@ -307,7 +307,7 @@ class Sheet(Matrix):
|
|
|
307
307
|
the given array except the column name.
|
|
308
308
|
"""
|
|
309
309
|
index = name
|
|
310
|
-
if
|
|
310
|
+
if isinstance(index, str):
|
|
311
311
|
index = self.colnames.index(name)
|
|
312
312
|
self.set_column_at(index, column_array)
|
|
313
313
|
|
|
@@ -370,7 +370,7 @@ class Sheet(Matrix):
|
|
|
370
370
|
the given array except the row name.
|
|
371
371
|
"""
|
|
372
372
|
index = name
|
|
373
|
-
if
|
|
373
|
+
if isinstance(index, str):
|
|
374
374
|
index = self.rownames.index(name)
|
|
375
375
|
self.set_row_at(index, row_array)
|
|
376
376
|
|
|
@@ -464,7 +464,7 @@ class Sheet(Matrix):
|
|
|
464
464
|
else:
|
|
465
465
|
headers = self.colnames
|
|
466
466
|
for row in self.rows():
|
|
467
|
-
the_dict =
|
|
467
|
+
the_dict = OrderedDict(zip(headers, row))
|
|
468
468
|
yield the_dict
|
|
469
469
|
|
|
470
470
|
elif len(self.rownames) > 0:
|
|
@@ -473,7 +473,7 @@ class Sheet(Matrix):
|
|
|
473
473
|
else:
|
|
474
474
|
headers = self.rownames
|
|
475
475
|
for column in self.columns():
|
|
476
|
-
the_dict =
|
|
476
|
+
the_dict = OrderedDict(zip(headers, column))
|
|
477
477
|
yield the_dict
|
|
478
478
|
|
|
479
479
|
else:
|
|
@@ -543,7 +543,7 @@ class Sheet(Matrix):
|
|
|
543
543
|
|
|
544
544
|
def to_dict(self, row=False):
|
|
545
545
|
"""Returns a dictionary"""
|
|
546
|
-
the_dict =
|
|
546
|
+
the_dict = OrderedDict()
|
|
547
547
|
if len(self.colnames) > 0 and row is False:
|
|
548
548
|
for column in self.named_columns():
|
|
549
549
|
the_dict.update(column)
|