pyexcel 0.7.0__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.
Files changed (303) hide show
  1. {pyexcel-0.7.0 → pyexcel-0.7.2}/CHANGELOG.rst +24 -0
  2. {pyexcel-0.7.0 → pyexcel-0.7.2}/CONTRIBUTORS.rst +5 -3
  3. {pyexcel-0.7.0 → pyexcel-0.7.2}/LICENSE +2 -2
  4. {pyexcel-0.7.0 → pyexcel-0.7.2}/PKG-INFO +124 -77
  5. {pyexcel-0.7.0 → pyexcel-0.7.2}/README.rst +72 -67
  6. {pyexcel-0.7.0 → pyexcel-0.7.2}/docs/requirements.txt +1 -0
  7. {pyexcel-0.7.0 → pyexcel-0.7.2}/docs/source/conf.py +7 -7
  8. {pyexcel-0.7.0 → pyexcel-0.7.2}/docs/source/guide.rst +6 -3
  9. {pyexcel-0.7.0 → pyexcel-0.7.2}/docs/source/index.rst +26 -32
  10. {pyexcel-0.7.0 → pyexcel-0.7.2}/docs/source/quickstart.rst +85 -58
  11. {pyexcel-0.7.0 → pyexcel-0.7.2}/docs/source/renderers.rst +1 -1
  12. {pyexcel-0.7.0 → pyexcel-0.7.2}/examples/basics/convert_xls_to_xlsx.py +2 -2
  13. {pyexcel-0.7.0 → pyexcel-0.7.2}/examples/basics/jsonify.py +1 -1
  14. pyexcel-0.7.2/examples/basics/multiple-sheets.xlsx +0 -0
  15. {pyexcel-0.7.0 → pyexcel-0.7.2}/examples/basics/read_cell_by_cell.py +1 -1
  16. {pyexcel-0.7.0 → pyexcel-0.7.2}/examples/basics/read_column_by_column.py +1 -1
  17. {pyexcel-0.7.0 → pyexcel-0.7.2}/examples/basics/read_excel_book.py +2 -2
  18. {pyexcel-0.7.0 → pyexcel-0.7.2}/examples/basics/read_row_by_row.py +1 -1
  19. {pyexcel-0.7.0 → pyexcel-0.7.2}/examples/basics/series.py +1 -1
  20. {pyexcel-0.7.0 → pyexcel-0.7.2}/examples/basics/write_excel_book.py +2 -2
  21. {pyexcel-0.7.0 → pyexcel-0.7.2}/examples/cookbook/merge_sheets.py +1 -1
  22. {pyexcel-0.7.0 → pyexcel-0.7.2}/examples/database/import_xls_into_database_via_sqlalchemy.py +2 -3
  23. {pyexcel-0.7.0 → pyexcel-0.7.2}/examples/formatting/formatter01.py +1 -1
  24. {pyexcel-0.7.0 → pyexcel-0.7.2}/examples/formatting/formatter02.py +1 -1
  25. {pyexcel-0.7.0 → pyexcel-0.7.2}/examples/memoryfile/pyexcel_server.py +2 -3
  26. {pyexcel-0.7.0 → pyexcel-0.7.2}/pyexcel/__init__.py +4 -5
  27. pyexcel-0.7.2/pyexcel/__version__.py +2 -0
  28. {pyexcel-0.7.0 → pyexcel-0.7.2}/pyexcel/_compact.py +6 -5
  29. {pyexcel-0.7.0 → pyexcel-0.7.2}/pyexcel/book.py +16 -18
  30. {pyexcel-0.7.0 → pyexcel-0.7.2}/pyexcel/cookbook.py +3 -3
  31. {pyexcel-0.7.0 → pyexcel-0.7.2}/pyexcel/core.py +6 -6
  32. {pyexcel-0.7.0 → pyexcel-0.7.2}/pyexcel/deprecated.py +25 -25
  33. {pyexcel-0.7.0 → pyexcel-0.7.2}/pyexcel/docstrings/__init__.py +1 -1
  34. {pyexcel-0.7.0 → pyexcel-0.7.2}/pyexcel/docstrings/core.py +1 -5
  35. {pyexcel-0.7.0 → pyexcel-0.7.2}/pyexcel/docstrings/keywords.py +1 -1
  36. {pyexcel-0.7.0 → pyexcel-0.7.2}/pyexcel/internal/attributes.py +1 -1
  37. {pyexcel-0.7.0 → pyexcel-0.7.2}/pyexcel/internal/common.py +2 -3
  38. {pyexcel-0.7.0 → pyexcel-0.7.2}/pyexcel/internal/core.py +1 -2
  39. {pyexcel-0.7.0 → pyexcel-0.7.2}/pyexcel/internal/generators.py +2 -2
  40. {pyexcel-0.7.0 → pyexcel-0.7.2}/pyexcel/internal/meta.py +16 -16
  41. {pyexcel-0.7.0 → pyexcel-0.7.2}/pyexcel/internal/sheets/__init__.py +1 -1
  42. {pyexcel-0.7.0 → pyexcel-0.7.2}/pyexcel/internal/sheets/_shared.py +26 -39
  43. {pyexcel-0.7.0 → pyexcel-0.7.2}/pyexcel/internal/sheets/column.py +12 -13
  44. {pyexcel-0.7.0 → pyexcel-0.7.2}/pyexcel/internal/sheets/formatters.py +2 -2
  45. {pyexcel-0.7.0 → pyexcel-0.7.2}/pyexcel/internal/sheets/matrix.py +50 -54
  46. {pyexcel-0.7.0 → pyexcel-0.7.2}/pyexcel/internal/sheets/row.py +5 -6
  47. {pyexcel-0.7.0 → pyexcel-0.7.2}/pyexcel/internal/source_plugin.py +20 -25
  48. {pyexcel-0.7.0 → pyexcel-0.7.2}/pyexcel/internal/utils.py +6 -6
  49. {pyexcel-0.7.0 → pyexcel-0.7.2}/pyexcel/parser.py +1 -1
  50. {pyexcel-0.7.0 → pyexcel-0.7.2}/pyexcel/plugins/__init__.py +13 -13
  51. {pyexcel-0.7.0 → pyexcel-0.7.2}/pyexcel/plugins/parsers/__init__.py +1 -1
  52. {pyexcel-0.7.0 → pyexcel-0.7.2}/pyexcel/plugins/parsers/django.py +2 -2
  53. {pyexcel-0.7.0 → pyexcel-0.7.2}/pyexcel/plugins/parsers/excel.py +4 -4
  54. {pyexcel-0.7.0 → pyexcel-0.7.2}/pyexcel/plugins/parsers/sqlalchemy.py +3 -3
  55. {pyexcel-0.7.0 → pyexcel-0.7.2}/pyexcel/plugins/renderers/__init__.py +1 -1
  56. {pyexcel-0.7.0 → pyexcel-0.7.2}/pyexcel/plugins/renderers/_texttable.py +2 -2
  57. {pyexcel-0.7.0 → pyexcel-0.7.2}/pyexcel/plugins/renderers/django.py +5 -5
  58. {pyexcel-0.7.0 → pyexcel-0.7.2}/pyexcel/plugins/renderers/excel.py +3 -4
  59. {pyexcel-0.7.0 → pyexcel-0.7.2}/pyexcel/plugins/renderers/sqlalchemy.py +4 -4
  60. {pyexcel-0.7.0 → pyexcel-0.7.2}/pyexcel/plugins/sources/db_sources.py +7 -7
  61. {pyexcel-0.7.0 → pyexcel-0.7.2}/pyexcel/plugins/sources/django.py +2 -2
  62. {pyexcel-0.7.0 → pyexcel-0.7.2}/pyexcel/plugins/sources/file_output.py +2 -2
  63. {pyexcel-0.7.0 → pyexcel-0.7.2}/pyexcel/plugins/sources/http.py +1 -1
  64. {pyexcel-0.7.0 → pyexcel-0.7.2}/pyexcel/plugins/sources/memory_input.py +3 -3
  65. {pyexcel-0.7.0 → pyexcel-0.7.2}/pyexcel/plugins/sources/output_to_memory.py +4 -4
  66. {pyexcel-0.7.0 → pyexcel-0.7.2}/pyexcel/plugins/sources/pydata/common.py +3 -3
  67. {pyexcel-0.7.0 → pyexcel-0.7.2}/pyexcel/plugins/sources/pydata/dictsource.py +2 -2
  68. {pyexcel-0.7.0 → pyexcel-0.7.2}/pyexcel/plugins/sources/querysets.py +3 -3
  69. {pyexcel-0.7.0 → pyexcel-0.7.2}/pyexcel/plugins/sources/sqlalchemy.py +2 -2
  70. {pyexcel-0.7.0 → pyexcel-0.7.2}/pyexcel/renderer.py +8 -7
  71. {pyexcel-0.7.0 → pyexcel-0.7.2}/pyexcel/sheet.py +16 -17
  72. {pyexcel-0.7.0 → pyexcel-0.7.2}/pyexcel/source.py +4 -4
  73. {pyexcel-0.7.0 → pyexcel-0.7.2}/pyexcel.egg-info/PKG-INFO +124 -77
  74. {pyexcel-0.7.0 → pyexcel-0.7.2}/pyexcel.egg-info/SOURCES.txt +2 -0
  75. {pyexcel-0.7.0 → pyexcel-0.7.2}/pyexcel.egg-info/requires.txt +1 -2
  76. {pyexcel-0.7.0 → pyexcel-0.7.2}/setup.py +5 -6
  77. {pyexcel-0.7.0 → pyexcel-0.7.2}/tests/base.py +2 -2
  78. pyexcel-0.7.2/tests/fixtures/empty.csv +0 -0
  79. {pyexcel-0.7.0 → pyexcel-0.7.2}/tests/requirements.txt +1 -0
  80. {pyexcel-0.7.0 → pyexcel-0.7.2}/tests/test_bug_fixes.py +14 -14
  81. {pyexcel-0.7.0 → pyexcel-0.7.2}/tests/test_cookbook.py +12 -12
  82. {pyexcel-0.7.0 → pyexcel-0.7.2}/tests/test_django_related_functions.py +5 -7
  83. {pyexcel-0.7.0 → pyexcel-0.7.2}/tests/test_examples.py +4 -4
  84. {pyexcel-0.7.0 → pyexcel-0.7.2}/tests/test_exploitation.py +7 -7
  85. {pyexcel-0.7.0 → pyexcel-0.7.2}/tests/test_file_type_as_attribute.py +9 -10
  86. {pyexcel-0.7.0 → pyexcel-0.7.2}/tests/test_fileio.py +4 -4
  87. {pyexcel-0.7.0 → pyexcel-0.7.2}/tests/test_formatters.py +9 -8
  88. {pyexcel-0.7.0 → pyexcel-0.7.2}/tests/test_gabagecollector.py +3 -2
  89. {pyexcel-0.7.0 → pyexcel-0.7.2}/tests/test_http_source.py +3 -3
  90. {pyexcel-0.7.0 → pyexcel-0.7.2}/tests/test_iterator.py +45 -43
  91. {pyexcel-0.7.0 → pyexcel-0.7.2}/tests/test_multiple_sheets.py +7 -7
  92. {pyexcel-0.7.0 → pyexcel-0.7.2}/tests/test_presentation.py +7 -7
  93. {pyexcel-0.7.0 → pyexcel-0.7.2}/tests/test_reader.py +5 -5
  94. {pyexcel-0.7.0 → pyexcel-0.7.2}/tests/test_renderer.py +1 -1
  95. {pyexcel-0.7.0 → pyexcel-0.7.2}/tests/test_sheet.py +3 -3
  96. {pyexcel-0.7.0 → pyexcel-0.7.2}/tests/test_sheet_access.py +1 -1
  97. {pyexcel-0.7.0 → pyexcel-0.7.2}/tests/test_sheet_attributes.py +6 -6
  98. {pyexcel-0.7.0 → pyexcel-0.7.2}/tests/test_sheet_column.py +50 -45
  99. {pyexcel-0.7.0 → pyexcel-0.7.2}/tests/test_sheet_row.py +1 -1
  100. {pyexcel-0.7.0 → pyexcel-0.7.2}/tests/test_sheet_stream.py +3 -3
  101. {pyexcel-0.7.0 → pyexcel-0.7.2}/tests/test_sheet_update.py +4 -4
  102. {pyexcel-0.7.0 → pyexcel-0.7.2}/tests/test_signature_fuction.py +23 -18
  103. {pyexcel-0.7.0 → pyexcel-0.7.2}/tests/test_sources.py +1 -1
  104. {pyexcel-0.7.0 → pyexcel-0.7.2}/tests/test_sql.py +8 -6
  105. {pyexcel-0.7.0 → pyexcel-0.7.2}/tests/test_stringio.py +2 -2
  106. {pyexcel-0.7.0 → pyexcel-0.7.2}/tests/test_utils.py +6 -6
  107. pyexcel-0.7.0/pyexcel/__version__.py +0 -2
  108. {pyexcel-0.7.0 → pyexcel-0.7.2}/MANIFEST.in +0 -0
  109. {pyexcel-0.7.0 → pyexcel-0.7.2}/docs/Makefile +0 -0
  110. {pyexcel-0.7.0 → pyexcel-0.7.2}/docs/make.bat +0 -0
  111. {pyexcel-0.7.0 → pyexcel-0.7.2}/docs/source/_static/handsontable.full.min.css +0 -0
  112. {pyexcel-0.7.0 → pyexcel-0.7.2}/docs/source/_static/handsontable.full.min.js +0 -0
  113. {pyexcel-0.7.0 → pyexcel-0.7.2}/docs/source/_static/images/architecture.svg +0 -0
  114. {pyexcel-0.7.0 → pyexcel-0.7.2}/docs/source/_static/theme_overrides.css +0 -0
  115. {pyexcel-0.7.0 → pyexcel-0.7.2}/docs/source/_templates/layout.html +0 -0
  116. {pyexcel-0.7.0 → pyexcel-0.7.2}/docs/source/answers.rst +0 -0
  117. {pyexcel-0.7.0 → pyexcel-0.7.2}/docs/source/api.rst +0 -0
  118. {pyexcel-0.7.0 → pyexcel-0.7.2}/docs/source/architecture.rst +0 -0
  119. {pyexcel-0.7.0 → pyexcel-0.7.2}/docs/source/attributes.rst +0 -0
  120. {pyexcel-0.7.0 → pyexcel-0.7.2}/docs/source/bigdata.rst +0 -0
  121. {pyexcel-0.7.0 → pyexcel-0.7.2}/docs/source/book.rst +0 -0
  122. {pyexcel-0.7.0 → pyexcel-0.7.2}/docs/source/capability.rst +0 -0
  123. {pyexcel-0.7.0 → pyexcel-0.7.2}/docs/source/changelog.rst +0 -0
  124. {pyexcel-0.7.0 → pyexcel-0.7.2}/docs/source/coffee.csv +0 -0
  125. {pyexcel-0.7.0 → pyexcel-0.7.2}/docs/source/cookbook.rst +0 -0
  126. {pyexcel-0.7.0 → pyexcel-0.7.2}/docs/source/database.rst +0 -0
  127. {pyexcel-0.7.0 → pyexcel-0.7.2}/docs/source/design.rst +0 -0
  128. {pyexcel-0.7.0 → pyexcel-0.7.2}/docs/source/entity-relationship-diagram.dia +0 -0
  129. {pyexcel-0.7.0 → pyexcel-0.7.2}/docs/source/entity-relationship-diagram.png +0 -0
  130. {pyexcel-0.7.0 → pyexcel-0.7.2}/docs/source/generated/pyexcel.Book.bookdict.rst +0 -0
  131. {pyexcel-0.7.0 → pyexcel-0.7.2}/docs/source/generated/pyexcel.Book.csv.rst +0 -0
  132. {pyexcel-0.7.0 → pyexcel-0.7.2}/docs/source/generated/pyexcel.Book.csvz.rst +0 -0
  133. {pyexcel-0.7.0 → pyexcel-0.7.2}/docs/source/generated/pyexcel.Book.number_of_sheets.rst +0 -0
  134. {pyexcel-0.7.0 → pyexcel-0.7.2}/docs/source/generated/pyexcel.Book.ods.rst +0 -0
  135. {pyexcel-0.7.0 → pyexcel-0.7.2}/docs/source/generated/pyexcel.Book.rst +0 -0
  136. {pyexcel-0.7.0 → pyexcel-0.7.2}/docs/source/generated/pyexcel.Book.save_as.rst +0 -0
  137. {pyexcel-0.7.0 → pyexcel-0.7.2}/docs/source/generated/pyexcel.Book.save_to_database.rst +0 -0
  138. {pyexcel-0.7.0 → pyexcel-0.7.2}/docs/source/generated/pyexcel.Book.save_to_django_models.rst +0 -0
  139. {pyexcel-0.7.0 → pyexcel-0.7.2}/docs/source/generated/pyexcel.Book.save_to_memory.rst +0 -0
  140. {pyexcel-0.7.0 → pyexcel-0.7.2}/docs/source/generated/pyexcel.Book.sheet_names.rst +0 -0
  141. {pyexcel-0.7.0 → pyexcel-0.7.2}/docs/source/generated/pyexcel.Book.stream.rst +0 -0
  142. {pyexcel-0.7.0 → pyexcel-0.7.2}/docs/source/generated/pyexcel.Book.tsv.rst +0 -0
  143. {pyexcel-0.7.0 → pyexcel-0.7.2}/docs/source/generated/pyexcel.Book.tsvz.rst +0 -0
  144. {pyexcel-0.7.0 → pyexcel-0.7.2}/docs/source/generated/pyexcel.Book.url.rst +0 -0
  145. {pyexcel-0.7.0 → pyexcel-0.7.2}/docs/source/generated/pyexcel.Book.xls.rst +0 -0
  146. {pyexcel-0.7.0 → pyexcel-0.7.2}/docs/source/generated/pyexcel.Book.xlsm.rst +0 -0
  147. {pyexcel-0.7.0 → pyexcel-0.7.2}/docs/source/generated/pyexcel.Book.xlsx.rst +0 -0
  148. {pyexcel-0.7.0 → pyexcel-0.7.2}/docs/source/generated/pyexcel.Sheet.__getitem__.rst +0 -0
  149. {pyexcel-0.7.0 → pyexcel-0.7.2}/docs/source/generated/pyexcel.Sheet.array.rst +0 -0
  150. {pyexcel-0.7.0 → pyexcel-0.7.2}/docs/source/generated/pyexcel.Sheet.cell_value.rst +0 -0
  151. {pyexcel-0.7.0 → pyexcel-0.7.2}/docs/source/generated/pyexcel.Sheet.colnames.rst +0 -0
  152. {pyexcel-0.7.0 → pyexcel-0.7.2}/docs/source/generated/pyexcel.Sheet.column_at.rst +0 -0
  153. {pyexcel-0.7.0 → pyexcel-0.7.2}/docs/source/generated/pyexcel.Sheet.column_range.rst +0 -0
  154. {pyexcel-0.7.0 → pyexcel-0.7.2}/docs/source/generated/pyexcel.Sheet.content.rst +0 -0
  155. {pyexcel-0.7.0 → pyexcel-0.7.2}/docs/source/generated/pyexcel.Sheet.csv.rst +0 -0
  156. {pyexcel-0.7.0 → pyexcel-0.7.2}/docs/source/generated/pyexcel.Sheet.csvz.rst +0 -0
  157. {pyexcel-0.7.0 → pyexcel-0.7.2}/docs/source/generated/pyexcel.Sheet.cut.rst +0 -0
  158. {pyexcel-0.7.0 → pyexcel-0.7.2}/docs/source/generated/pyexcel.Sheet.delete_columns.rst +0 -0
  159. {pyexcel-0.7.0 → pyexcel-0.7.2}/docs/source/generated/pyexcel.Sheet.delete_named_column_at.rst +0 -0
  160. {pyexcel-0.7.0 → pyexcel-0.7.2}/docs/source/generated/pyexcel.Sheet.delete_named_row_at.rst +0 -0
  161. {pyexcel-0.7.0 → pyexcel-0.7.2}/docs/source/generated/pyexcel.Sheet.delete_rows.rst +0 -0
  162. {pyexcel-0.7.0 → pyexcel-0.7.2}/docs/source/generated/pyexcel.Sheet.dict.rst +0 -0
  163. {pyexcel-0.7.0 → pyexcel-0.7.2}/docs/source/generated/pyexcel.Sheet.extend_columns.rst +0 -0
  164. {pyexcel-0.7.0 → pyexcel-0.7.2}/docs/source/generated/pyexcel.Sheet.extend_rows.rst +0 -0
  165. {pyexcel-0.7.0 → pyexcel-0.7.2}/docs/source/generated/pyexcel.Sheet.filter.rst +0 -0
  166. {pyexcel-0.7.0 → pyexcel-0.7.2}/docs/source/generated/pyexcel.Sheet.format.rst +0 -0
  167. {pyexcel-0.7.0 → pyexcel-0.7.2}/docs/source/generated/pyexcel.Sheet.map.rst +0 -0
  168. {pyexcel-0.7.0 → pyexcel-0.7.2}/docs/source/generated/pyexcel.Sheet.name_columns_by_row.rst +0 -0
  169. {pyexcel-0.7.0 → pyexcel-0.7.2}/docs/source/generated/pyexcel.Sheet.name_rows_by_column.rst +0 -0
  170. {pyexcel-0.7.0 → pyexcel-0.7.2}/docs/source/generated/pyexcel.Sheet.named_column_at.rst +0 -0
  171. {pyexcel-0.7.0 → pyexcel-0.7.2}/docs/source/generated/pyexcel.Sheet.named_row_at.rst +0 -0
  172. {pyexcel-0.7.0 → pyexcel-0.7.2}/docs/source/generated/pyexcel.Sheet.number_of_columns.rst +0 -0
  173. {pyexcel-0.7.0 → pyexcel-0.7.2}/docs/source/generated/pyexcel.Sheet.number_of_rows.rst +0 -0
  174. {pyexcel-0.7.0 → pyexcel-0.7.2}/docs/source/generated/pyexcel.Sheet.ods.rst +0 -0
  175. {pyexcel-0.7.0 → pyexcel-0.7.2}/docs/source/generated/pyexcel.Sheet.paste.rst +0 -0
  176. {pyexcel-0.7.0 → pyexcel-0.7.2}/docs/source/generated/pyexcel.Sheet.project.rst +0 -0
  177. {pyexcel-0.7.0 → pyexcel-0.7.2}/docs/source/generated/pyexcel.Sheet.records.rst +0 -0
  178. {pyexcel-0.7.0 → pyexcel-0.7.2}/docs/source/generated/pyexcel.Sheet.region.rst +0 -0
  179. {pyexcel-0.7.0 → pyexcel-0.7.2}/docs/source/generated/pyexcel.Sheet.row_at.rst +0 -0
  180. {pyexcel-0.7.0 → pyexcel-0.7.2}/docs/source/generated/pyexcel.Sheet.row_range.rst +0 -0
  181. {pyexcel-0.7.0 → pyexcel-0.7.2}/docs/source/generated/pyexcel.Sheet.rownames.rst +0 -0
  182. {pyexcel-0.7.0 → pyexcel-0.7.2}/docs/source/generated/pyexcel.Sheet.rst +0 -0
  183. {pyexcel-0.7.0 → pyexcel-0.7.2}/docs/source/generated/pyexcel.Sheet.save_as.rst +0 -0
  184. {pyexcel-0.7.0 → pyexcel-0.7.2}/docs/source/generated/pyexcel.Sheet.save_to_database.rst +0 -0
  185. {pyexcel-0.7.0 → pyexcel-0.7.2}/docs/source/generated/pyexcel.Sheet.save_to_django_model.rst +0 -0
  186. {pyexcel-0.7.0 → pyexcel-0.7.2}/docs/source/generated/pyexcel.Sheet.save_to_memory.rst +0 -0
  187. {pyexcel-0.7.0 → pyexcel-0.7.2}/docs/source/generated/pyexcel.Sheet.set_column_at.rst +0 -0
  188. {pyexcel-0.7.0 → pyexcel-0.7.2}/docs/source/generated/pyexcel.Sheet.set_named_column_at.rst +0 -0
  189. {pyexcel-0.7.0 → pyexcel-0.7.2}/docs/source/generated/pyexcel.Sheet.set_named_row_at.rst +0 -0
  190. {pyexcel-0.7.0 → pyexcel-0.7.2}/docs/source/generated/pyexcel.Sheet.set_row_at.rst +0 -0
  191. {pyexcel-0.7.0 → pyexcel-0.7.2}/docs/source/generated/pyexcel.Sheet.stream.rst +0 -0
  192. {pyexcel-0.7.0 → pyexcel-0.7.2}/docs/source/generated/pyexcel.Sheet.transpose.rst +0 -0
  193. {pyexcel-0.7.0 → pyexcel-0.7.2}/docs/source/generated/pyexcel.Sheet.tsv.rst +0 -0
  194. {pyexcel-0.7.0 → pyexcel-0.7.2}/docs/source/generated/pyexcel.Sheet.tsvz.rst +0 -0
  195. {pyexcel-0.7.0 → pyexcel-0.7.2}/docs/source/generated/pyexcel.Sheet.url.rst +0 -0
  196. {pyexcel-0.7.0 → pyexcel-0.7.2}/docs/source/generated/pyexcel.Sheet.xls.rst +0 -0
  197. {pyexcel-0.7.0 → pyexcel-0.7.2}/docs/source/generated/pyexcel.Sheet.xlsm.rst +0 -0
  198. {pyexcel-0.7.0 → pyexcel-0.7.2}/docs/source/generated/pyexcel.Sheet.xlsx.rst +0 -0
  199. {pyexcel-0.7.0 → pyexcel-0.7.2}/docs/source/generated/pyexcel.extract_a_sheet_from_a_book.rst +0 -0
  200. {pyexcel-0.7.0 → pyexcel-0.7.2}/docs/source/generated/pyexcel.free_resources.rst +0 -0
  201. {pyexcel-0.7.0 → pyexcel-0.7.2}/docs/source/generated/pyexcel.get_array.rst +0 -0
  202. {pyexcel-0.7.0 → pyexcel-0.7.2}/docs/source/generated/pyexcel.get_book.rst +0 -0
  203. {pyexcel-0.7.0 → pyexcel-0.7.2}/docs/source/generated/pyexcel.get_book_dict.rst +0 -0
  204. {pyexcel-0.7.0 → pyexcel-0.7.2}/docs/source/generated/pyexcel.get_dict.rst +0 -0
  205. {pyexcel-0.7.0 → pyexcel-0.7.2}/docs/source/generated/pyexcel.get_records.rst +0 -0
  206. {pyexcel-0.7.0 → pyexcel-0.7.2}/docs/source/generated/pyexcel.get_sheet.rst +0 -0
  207. {pyexcel-0.7.0 → pyexcel-0.7.2}/docs/source/generated/pyexcel.iget_array.rst +0 -0
  208. {pyexcel-0.7.0 → pyexcel-0.7.2}/docs/source/generated/pyexcel.iget_book.rst +0 -0
  209. {pyexcel-0.7.0 → pyexcel-0.7.2}/docs/source/generated/pyexcel.iget_records.rst +0 -0
  210. {pyexcel-0.7.0 → pyexcel-0.7.2}/docs/source/generated/pyexcel.isave_as.rst +0 -0
  211. {pyexcel-0.7.0 → pyexcel-0.7.2}/docs/source/generated/pyexcel.isave_book_as.rst +0 -0
  212. {pyexcel-0.7.0 → pyexcel-0.7.2}/docs/source/generated/pyexcel.merge_all_to_a_book.rst +0 -0
  213. {pyexcel-0.7.0 → pyexcel-0.7.2}/docs/source/generated/pyexcel.merge_csv_to_a_book.rst +0 -0
  214. {pyexcel-0.7.0 → pyexcel-0.7.2}/docs/source/generated/pyexcel.save_as.rst +0 -0
  215. {pyexcel-0.7.0 → pyexcel-0.7.2}/docs/source/generated/pyexcel.save_book_as.rst +0 -0
  216. {pyexcel-0.7.0 → pyexcel-0.7.2}/docs/source/generated/pyexcel.split_a_book.rst +0 -0
  217. {pyexcel-0.7.0 → pyexcel-0.7.2}/docs/source/iapi/pyexcel.internal.generators.BookStream.rst +0 -0
  218. {pyexcel-0.7.0 → pyexcel-0.7.2}/docs/source/iapi/pyexcel.internal.generators.SheetStream.rst +0 -0
  219. {pyexcel-0.7.0 → pyexcel-0.7.2}/docs/source/iapi/pyexcel.internal.sheets.Column.rst +0 -0
  220. {pyexcel-0.7.0 → pyexcel-0.7.2}/docs/source/iapi/pyexcel.internal.sheets.Matrix.rst +0 -0
  221. {pyexcel-0.7.0 → pyexcel-0.7.2}/docs/source/iapi/pyexcel.internal.sheets.Row.rst +0 -0
  222. {pyexcel-0.7.0 → pyexcel-0.7.2}/docs/source/iapi.rst +0 -0
  223. {pyexcel-0.7.0 → pyexcel-0.7.2}/docs/source/logging.rst +0 -0
  224. {pyexcel-0.7.0 → pyexcel-0.7.2}/docs/source/migration_guide.rst +0 -0
  225. {pyexcel-0.7.0 → pyexcel-0.7.2}/docs/source/note_on_pypy.rst +0 -0
  226. {pyexcel-0.7.0 → pyexcel-0.7.2}/docs/source/plugin_howto.rst +0 -0
  227. {pyexcel-0.7.0 → pyexcel-0.7.2}/docs/source/pyinstaller.rst +0 -0
  228. {pyexcel-0.7.0 → pyexcel-0.7.2}/docs/source/sheet.rst +0 -0
  229. {pyexcel-0.7.0 → pyexcel-0.7.2}/docs/source/showcases/db_injection.rst +0 -0
  230. {pyexcel-0.7.0 → pyexcel-0.7.2}/docs/source/sources.rst +0 -0
  231. {pyexcel-0.7.0 → pyexcel-0.7.2}/docs/source/spelling_wordlist.txt +0 -0
  232. {pyexcel-0.7.0 → pyexcel-0.7.2}/docs/source/tutorial.rst +0 -0
  233. {pyexcel-0.7.0 → pyexcel-0.7.2}/docs/source/tutorial02.rst +0 -0
  234. {pyexcel-0.7.0 → pyexcel-0.7.2}/docs/source/tutorial03.rst +0 -0
  235. {pyexcel-0.7.0 → pyexcel-0.7.2}/docs/source/tutorial04.rst +0 -0
  236. {pyexcel-0.7.0 → pyexcel-0.7.2}/docs/source/tutorial05.rst +0 -0
  237. {pyexcel-0.7.0 → pyexcel-0.7.2}/docs/source/tutorial06.rst +0 -0
  238. {pyexcel-0.7.0 → pyexcel-0.7.2}/docs/source/tutorial_data_conversion.rst +0 -0
  239. {pyexcel-0.7.0 → pyexcel-0.7.2}/docs/source/tutorial_file.rst +0 -0
  240. {pyexcel-0.7.0 → pyexcel-0.7.2}/docs/source/two-liners.rst +0 -0
  241. {pyexcel-0.7.0 → pyexcel-0.7.2}/docs/source/uml/architecture.uml +0 -0
  242. {pyexcel-0.7.0 → pyexcel-0.7.2}/docs/source/webdev.rst +0 -0
  243. {pyexcel-0.7.0 → pyexcel-0.7.2}/examples/README.rst +0 -0
  244. {pyexcel-0.7.0 → pyexcel-0.7.2}/examples/basics/example.csv +0 -0
  245. {pyexcel-0.7.0 → pyexcel-0.7.2}/examples/basics/example.xls +0 -0
  246. {pyexcel-0.7.0 → pyexcel-0.7.2}/examples/basics/example.xlsm +0 -0
  247. {pyexcel-0.7.0 → pyexcel-0.7.2}/examples/basics/example.xlsx +0 -0
  248. {pyexcel-0.7.0 → pyexcel-0.7.2}/examples/basics/example_series.xls +0 -0
  249. {pyexcel-0.7.0 → pyexcel-0.7.2}/examples/basics/example_series_filter.xls +0 -0
  250. {pyexcel-0.7.0 → pyexcel-0.7.2}/examples/basics/multiple-sheets-example.xls +0 -0
  251. {pyexcel-0.7.0 → pyexcel-0.7.2}/examples/basics/multiple-sheets.xls +0 -0
  252. {pyexcel-0.7.0 → pyexcel-0.7.2}/examples/cookbook/scattered-csv-files/1.csv +0 -0
  253. {pyexcel-0.7.0 → pyexcel-0.7.2}/examples/cookbook/scattered-csv-files/2.csv +0 -0
  254. {pyexcel-0.7.0 → pyexcel-0.7.2}/examples/cookbook/scattered-csv-files/3.csv +0 -0
  255. {pyexcel-0.7.0 → pyexcel-0.7.2}/examples/formatting/tutorial_datatype_01.xls +0 -0
  256. {pyexcel-0.7.0 → pyexcel-0.7.2}/examples/formatting/tutorial_datatype_02.xls +0 -0
  257. {pyexcel-0.7.0 → pyexcel-0.7.2}/examples/memoryfile/README.rst +0 -0
  258. {pyexcel-0.7.0 → pyexcel-0.7.2}/examples/memoryfile/templates/upload.html +0 -0
  259. {pyexcel-0.7.0 → pyexcel-0.7.2}/examples/simple/multiple-sheets.xls +0 -0
  260. {pyexcel-0.7.0 → pyexcel-0.7.2}/pyexcel/constants.py +0 -0
  261. {pyexcel-0.7.0 → pyexcel-0.7.2}/pyexcel/docstrings/garbagecollector.py +0 -0
  262. {pyexcel-0.7.0 → pyexcel-0.7.2}/pyexcel/docstrings/meta.py +0 -0
  263. {pyexcel-0.7.0 → pyexcel-0.7.2}/pyexcel/exceptions.py +0 -0
  264. {pyexcel-0.7.0 → pyexcel-0.7.2}/pyexcel/internal/__init__.py +0 -0
  265. {pyexcel-0.7.0 → pyexcel-0.7.2}/pyexcel/internal/garbagecollector.py +0 -0
  266. {pyexcel-0.7.0 → pyexcel-0.7.2}/pyexcel/internal/plugins.py +0 -0
  267. {pyexcel-0.7.0 → pyexcel-0.7.2}/pyexcel/internal/sheets/extended_list.py +0 -0
  268. {pyexcel-0.7.0 → pyexcel-0.7.2}/pyexcel/plugins/sources/__init__.py +0 -0
  269. {pyexcel-0.7.0 → pyexcel-0.7.2}/pyexcel/plugins/sources/file_input.py +0 -0
  270. {pyexcel-0.7.0 → pyexcel-0.7.2}/pyexcel/plugins/sources/params.py +0 -0
  271. {pyexcel-0.7.0 → pyexcel-0.7.2}/pyexcel/plugins/sources/pydata/__init__.py +0 -0
  272. {pyexcel-0.7.0 → pyexcel-0.7.2}/pyexcel/plugins/sources/pydata/arraysource.py +0 -0
  273. {pyexcel-0.7.0 → pyexcel-0.7.2}/pyexcel/plugins/sources/pydata/bookdict.py +0 -0
  274. {pyexcel-0.7.0 → pyexcel-0.7.2}/pyexcel/plugins/sources/pydata/records.py +0 -0
  275. {pyexcel-0.7.0 → pyexcel-0.7.2}/pyexcel/plugins/sources/sheet_stream_source.py +0 -0
  276. {pyexcel-0.7.0 → pyexcel-0.7.2}/pyexcel.egg-info/dependency_links.txt +0 -0
  277. {pyexcel-0.7.0 → pyexcel-0.7.2}/pyexcel.egg-info/not-zip-safe +0 -0
  278. {pyexcel-0.7.0 → pyexcel-0.7.2}/pyexcel.egg-info/top_level.txt +0 -0
  279. {pyexcel-0.7.0 → pyexcel-0.7.2}/setup.cfg +0 -0
  280. /pyexcel-0.7.0/tests/fixtures/empty.csv → /pyexcel-0.7.2/tests/__init__.py +0 -0
  281. {pyexcel-0.7.0 → pyexcel-0.7.2}/tests/_compact.py +0 -0
  282. {pyexcel-0.7.0 → pyexcel-0.7.2}/tests/db.py +0 -0
  283. {pyexcel-0.7.0 → pyexcel-0.7.2}/tests/fixtures/bug_01.csv +0 -0
  284. {pyexcel-0.7.0 → pyexcel-0.7.2}/tests/fixtures/bug_176.xlsx +0 -0
  285. {pyexcel-0.7.0 → pyexcel-0.7.2}/tests/fixtures/date_field.xls +0 -0
  286. {pyexcel-0.7.0 → pyexcel-0.7.2}/tests/fixtures/file_with_an_empty_sheet.xlsx +0 -0
  287. {pyexcel-0.7.0 → pyexcel-0.7.2}/tests/fixtures/force_type.txt +0 -0
  288. {pyexcel-0.7.0 → pyexcel-0.7.2}/tests/fixtures/issue_241/1.csv +0 -0
  289. {pyexcel-0.7.0 → pyexcel-0.7.2}/tests/fixtures/issue_241/2.csv +0 -0
  290. {pyexcel-0.7.0 → pyexcel-0.7.2}/tests/fixtures/non-uniform-rows.csv +0 -0
  291. {pyexcel-0.7.0 → pyexcel-0.7.2}/tests/fixtures/ods_formats.ods +0 -0
  292. {pyexcel-0.7.0 → pyexcel-0.7.2}/tests/fixtures/test-multiple.csvz +0 -0
  293. {pyexcel-0.7.0 → pyexcel-0.7.2}/tests/fixtures/test-single.csvz +0 -0
  294. {pyexcel-0.7.0 → pyexcel-0.7.2}/tests/fixtures/test_cook_book_merge_alphabets.csv +0 -0
  295. {pyexcel-0.7.0 → pyexcel-0.7.2}/tests/fixtures/test_cook_book_merge_alphabets_2.csv +0 -0
  296. {pyexcel-0.7.0 → pyexcel-0.7.2}/tests/fixtures/test_cook_book_merge_numbers.csv +0 -0
  297. {pyexcel-0.7.0 → pyexcel-0.7.2}/tests/fixtures/test_cook_book_merge_numbers_2.csv +0 -0
  298. {pyexcel-0.7.0 → pyexcel-0.7.2}/tests/test_book.py +0 -0
  299. {pyexcel-0.7.0 → pyexcel-0.7.2}/tests/test_book_stream.py +0 -0
  300. {pyexcel-0.7.0 → pyexcel-0.7.2}/tests/test_internals.py +0 -0
  301. {pyexcel-0.7.0 → pyexcel-0.7.2}/tests/test_parser.py +0 -0
  302. {pyexcel-0.7.0 → pyexcel-0.7.2}/tests/test_pyexcel_list.py +0 -0
  303. {pyexcel-0.7.0 → pyexcel-0.7.2}/tests/test_sheets.py +0 -0
@@ -1,6 +1,30 @@
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
+
16
+ 0.7.1 - 11.09.2024
17
+ --------------------------------------------------------------------------------
18
+
19
+ **Fixed**
20
+
21
+ #. `#272 <https://github.com/pyexcel/pyexcel/issues/272>`_: remove chardet as a
22
+ requirement
23
+
24
+ **Updated**
25
+
26
+ #. various typos and linted the code
27
+
4
28
  0.7.0 - 12.2.2022
5
29
  --------------------------------------------------------------------------------
6
30
 
@@ -1,6 +1,6 @@
1
1
 
2
2
 
3
- 19 contributors
3
+ 21 contributors
4
4
  ================================================================================
5
5
 
6
6
  In alphabetical order:
@@ -11,12 +11,14 @@ In alphabetical order:
11
11
  * `Ayan Banerjee <https://github.com/ayan-b>`_
12
12
  * `Chris Hill-Scott <https://github.com/quis>`_
13
13
  * `Craig Anderson <https://github.com/craiga>`_
14
- * `Daryl Yu <https://github.com/darylyu>`_
14
+ * `D. Yu <https://github.com/darylyu>`_
15
15
  * `J Harley <https://github.com/julzhk>`_
16
16
  * `Joel Nothman <https://github.com/jnothman>`_
17
17
  * `John Vandenberg <https://github.com/jayvdb>`_
18
18
  * `Linghui Zeng <https://github.com/mathsyouth>`_
19
- * `Nik Nyby <https://github.com/nikolas>`_
19
+ * `Mark Mayo <https://github.com/marksmayo>`_
20
+ * `Mateusz Konieczny <https://github.com/matkoniecz>`_
21
+ * `nikolas <https://github.com/nikolas>`_
20
22
  * `Rintze M. Zelle, PhD <https://github.com/rmzelle>`_
21
23
  * `Simeon Visser <https://github.com/svisser>`_
22
24
  * `Simon Allen <https://github.com/garfunkel>`_
@@ -1,4 +1,4 @@
1
- Copyright (c) 2014-2022 by Onni Software Ltd. and its contributors
1
+ Copyright (c) 2014-2025 by Onni Software Ltd. and its contributors
2
2
  All rights reserved.
3
3
 
4
4
  Redistribution and use in source and binary forms of the software as well
@@ -13,7 +13,7 @@ that the following conditions are met:
13
13
  and/or other materials provided with the distribution.
14
14
 
15
15
  * Neither the name of 'pyexcel' nor the names of the contributors
16
- may not be used to endorse or promote products derived from this software
16
+ may be used to endorse or promote products derived from this software
17
17
  without specific prior written permission.
18
18
 
19
19
  THIS SOFTWARE AND DOCUMENTATION IS PROVIDED BY THE COPYRIGHT HOLDERS AND
@@ -1,14 +1,13 @@
1
- Metadata-Version: 2.1
1
+ Metadata-Version: 2.4
2
2
  Name: pyexcel
3
- Version: 0.7.0
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.2.tar.gz
6
7
  Author: C.W.
7
8
  Author-email: info@pyexcel.org
8
9
  License: New BSD
9
- Download-URL: https://github.com/pyexcel/pyexcel/archive/0.7.0.tar.gz
10
10
  Keywords: python,tsv,tsvzcsv,csvz,xls,xlsx,ods
11
- Platform: UNKNOWN
12
11
  Classifier: Topic :: Software Development :: Libraries
13
12
  Classifier: Programming Language :: Python
14
13
  Classifier: Intended Audience :: Developers
@@ -18,10 +17,29 @@ Classifier: Programming Language :: Python :: 3.7
18
17
  Classifier: Programming Language :: Python :: 3.8
19
18
  Classifier: Development Status :: 3 - Alpha
20
19
  Requires-Python: >=3.6
20
+ License-File: LICENSE
21
+ Requires-Dist: lml>=0.2.0
22
+ Requires-Dist: pyexcel-io>=0.6.2
23
+ Requires-Dist: texttable>=0.8.2
21
24
  Provides-Extra: xls
25
+ Requires-Dist: pyexcel-xls>=0.6.0; extra == "xls"
22
26
  Provides-Extra: xlsx
27
+ Requires-Dist: pyexcel-xlsx>=0.6.0; extra == "xlsx"
23
28
  Provides-Extra: ods
24
- License-File: LICENSE
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
25
43
 
26
44
  ================================================================================
27
45
  pyexcel - Let you focus on data, instead of file formats
@@ -33,9 +51,6 @@ pyexcel - Let you focus on data, instead of file formats
33
51
  .. image:: https://raw.githubusercontent.com/pyexcel/pyexcel-mobans/master/images/awesome-badge.svg
34
52
  :target: https://awesome-python.com/#specific-formats-processing
35
53
 
36
- .. image:: https://github.com/pyexcel/pyexcel/workflows/run_tests/badge.svg
37
- :target: http://github.com/pyexcel/pyexcel/actions
38
-
39
54
  .. image:: https://codecov.io/gh/pyexcel/pyexcel/branch/master/graph/badge.svg
40
55
  :target: https://codecov.io/gh/pyexcel/pyexcel
41
56
 
@@ -45,6 +60,7 @@ pyexcel - Let you focus on data, instead of file formats
45
60
  .. image:: https://anaconda.org/conda-forge/pyexcel/badges/version.svg
46
61
  :target: https://anaconda.org/conda-forge/pyexcel
47
62
 
63
+
48
64
  .. image:: https://pepy.tech/badge/pyexcel/month
49
65
  :target: https://pepy.tech/project/pyexcel
50
66
 
@@ -65,19 +81,11 @@ pyexcel - Let you focus on data, instead of file formats
65
81
  Support the project
66
82
  ================================================================================
67
83
 
68
- If your company has embedded pyexcel and its components into a revenue generating
69
- product, please support me on github, `patreon <https://www.patreon.com/bePatron?u=5537627>`_
70
- or `bounty source <https://salt.bountysource.com/teams/chfw-pyexcel>`_ to maintain
71
- the project and develop it further.
72
-
73
- If you are an individual, you are welcome to support me too and for however long
74
- you feel like. As my backer, you will receive
75
- `early access to pyexcel related contents <https://www.patreon.com/pyexcel/posts>`_.
76
-
77
- And your issues will get prioritized if you would like to become my patreon as `pyexcel pro user`.
78
-
79
- With your financial support, I will be able to invest
80
- 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.
81
89
 
82
90
 
83
91
  Known constraints
@@ -178,8 +186,9 @@ Medieval c.1150-c.1400 Machaut, Landini
178
186
  Renaissance c.1400-c.1600 Gibbons, Frescobaldi
179
187
  Baroque c.1600-c.1750 JS Bach, Vivaldi
180
188
  Classical c.1750-c.1830 Joseph Haydn, Wolfgan Amadeus Mozart
181
- Earley Romantic c.1830-c.1860 Chopin, Mendelssohn, Schumann, Liszt
189
+ Early Romantic c.1830-c.1860 Chopin, Mendelssohn, Schumann, Liszt
182
190
  Late Romantic c.1860-c.1920 Wagner,Verdi
191
+ Modernist 20th century Sergei Rachmaninoff,Calude Debussy
183
192
  =============== ============= ====================================
184
193
 
185
194
 
@@ -199,8 +208,9 @@ And let's check what do we have:
199
208
  Gibbons, Frescobaldi are from Renaissance period (c.1400-c.1600)
200
209
  JS Bach, Vivaldi are from Baroque period (c.1600-c.1750)
201
210
  Joseph Haydn, Wolfgan Amadeus Mozart are from Classical period (c.1750-c.1830)
202
- Chopin, Mendelssohn, Schumann, Liszt are from Earley Romantic period (c.1830-c.1860)
211
+ Chopin, Mendelssohn, Schumann, Liszt are from Early Romantic period (c.1830-c.1860)
203
212
  Wagner,Verdi are from Late Romantic period (c.1860-c.1920)
213
+ Sergei Rachmaninoff,Calude Debussy are from Modernist period (20th century)
204
214
 
205
215
 
206
216
  Get two dimensional array
@@ -216,8 +226,9 @@ Instead, what if you have to use `pyexcel.get_array` to do the same:
216
226
  Gibbons, Frescobaldi are from Renaissance period (c.1400-c.1600)
217
227
  JS Bach, Vivaldi are from Baroque period (c.1600-c.1750)
218
228
  Joseph Haydn, Wolfgan Amadeus Mozart are from Classical period (c.1750-c.1830)
219
- Chopin, Mendelssohn, Schumann, Liszt are from Earley Romantic period (c.1830-c.1860)
229
+ Chopin, Mendelssohn, Schumann, Liszt are from Early Romantic period (c.1830-c.1860)
220
230
  Wagner,Verdi are from Late Romantic period (c.1860-c.1920)
231
+ Sergei Rachmaninoff,Calude Debussy are from Modernist period (20th century)
221
232
 
222
233
 
223
234
  where `start_row` skips the header row.
@@ -228,13 +239,11 @@ Get a dictionary
228
239
 
229
240
  You can get a dictionary too:
230
241
 
231
- Now let's get a dictionary out from the spreadsheet:
232
-
233
242
  .. code-block:: python
234
243
 
235
244
  >>> my_dict = p.get_dict(file_name="your_file.xls", name_columns_by_row=0)
236
245
 
237
- And check what do we have:
246
+ And let's have a look inside:
238
247
 
239
248
  .. code-block:: python
240
249
 
@@ -243,9 +252,9 @@ And check what do we have:
243
252
  True
244
253
  >>> for key, values in my_dict.items():
245
254
  ... print(key + " : " + ','.join([str(item) for item in values]))
246
- Name : Medieval,Renaissance,Baroque,Classical,Earley Romantic,Late Romantic
247
- Period : c.1150-c.1400,c.1400-c.1600,c.1600-c.1750,c.1750-c.1830,c.1830-c.1860,c.1860-c.1920
248
- Representative Composers : Machaut, Landini,Gibbons, Frescobaldi,JS Bach, Vivaldi,Joseph Haydn, Wolfgan Amadeus Mozart,Chopin, Mendelssohn, Schumann, Liszt,Wagner,Verdi
255
+ Name : Medieval,Renaissance,Baroque,Classical,Early Romantic,Late Romantic,Modernist
256
+ Period : c.1150-c.1400,c.1400-c.1600,c.1600-c.1750,c.1750-c.1830,c.1830-c.1860,c.1860-c.1920,20th century
257
+ Representative Composers : Machaut, Landini,Gibbons, Frescobaldi,JS Bach, Vivaldi,Joseph Haydn, Wolfgan Amadeus Mozart,Chopin, Mendelssohn, Schumann, Liszt,Wagner,Verdi,Sergei Rachmaninoff,Calude Debussy
249
258
 
250
259
 
251
260
  Please note that my_dict is an OrderedDict.
@@ -257,29 +266,43 @@ Get a dictionary of two dimensional array
257
266
  Suppose you have a multiple sheet book as the following:
258
267
 
259
268
 
260
- pyexcel:Sheet 1:
261
-
262
- ===================== = =
263
- 1 2 3
264
- 4 5 6
265
- 7 8 9
266
- ===================== = =
267
-
268
- pyexcel:Sheet 2:
269
-
270
- ===================== = =
271
- X Y Z
272
- 1 2 3
273
- 4 5 6
274
- ===================== = =
275
-
276
- pyexcel:Sheet 3:
277
-
278
- ===================== = =
279
- O P Q
280
- 3 2 1
281
- 4 3 2
282
- ===================== = =
269
+ Top Violinist:
270
+
271
+ ================= ========= ================
272
+ Name Period Nationality
273
+ Antonio Vivaldi 1678-1741 Italian
274
+ Niccolo Paganini 1782-1840 Italian
275
+ Pablo de Sarasate 1852-1904 Spainish
276
+ Eugene Ysaye 1858-1931 Belgian
277
+ Fritz Kreisler 1875-1962 Astria-American
278
+ Jascha Heifetz 1901-1987 Russian-American
279
+ David Oistrakh 1908-1974 Russian
280
+ Yehundi Menuhin 1916-1999 American
281
+ Itzhak Perlman 1945- Israeli-American
282
+ Hilary Hahn 1979- American
283
+ ================= ========= ================
284
+
285
+ Noteable Violin Makers:
286
+
287
+ ====================== ========= ================
288
+ Maker Period Country
289
+ Antonio Stradivari 1644-1737 Cremona, Italy
290
+ Giovanni Paolo Maggini 1580-1630 Botticino, Italy
291
+ Amati Family 1500-1740 Cremona, Italy
292
+ Guarneri Family 1626-1744 Cremona, Italy
293
+ Rugeri Family 1628-1719 Cremona, Italy
294
+ Carlo Bergonzi 1683-1747 Cremona, Italy
295
+ Jacob Stainer 1617-1683 Austria
296
+ ====================== ========= ================
297
+
298
+ Most Expensive Violins:
299
+
300
+ ===================== =============== ===================================
301
+ Name Estimated Value Location
302
+ Messiah Stradivarious $ 20,000,000 Ashmolean Museum in Oxford, England
303
+ Vieuxtemps Guarneri $ 16,000,000 On loan to Anne Akiko Meyers
304
+ Lady Blunt $ 15,900,000 Anonymous bidder
305
+ ===================== =============== ===================================
283
306
 
284
307
 
285
308
  Here is the code to obtain those sheets as a single dictionary:
@@ -297,9 +320,9 @@ And check:
297
320
  >>> import json
298
321
  >>> for key, item in book_dict.items():
299
322
  ... print(json.dumps({key: item}))
300
- {"Sheet 1": [[1, 2, 3], [4, 5, 6], [7, 8, 9]]}
301
- {"Sheet 2": [["X", "Y", "Z"], [1, 2, 3], [4, 5, 6]]}
302
- {"Sheet 3": [["O", "P", "Q"], [3, 2, 1], [4, 3, 2]]}
323
+ {"Most Expensive Violins": [["Name", "Estimated Value", "Location"], ["Messiah Stradivarious", "$ 20,000,000", "Ashmolean Museum in Oxford, England"], ["Vieuxtemps Guarneri", "$ 16,000,000", "On loan to Anne Akiko Meyers"], ["Lady Blunt", "$ 15,900,000", "Anonymous bidder"]]}
324
+ {"Noteable Violin Makers": [["Maker", "Period", "Country"], ["Antonio Stradivari", "1644-1737", "Cremona, Italy"], ["Giovanni Paolo Maggini", "1580-1630", "Botticino, Italy"], ["Amati Family", "1500-1740", "Cremona, Italy"], ["Guarneri Family", "1626-1744", "Cremona, Italy"], ["Rugeri Family", "1628-1719", "Cremona, Italy"], ["Carlo Bergonzi", "1683-1747", "Cremona, Italy"], ["Jacob Stainer", "1617-1683", "Austria"]]}
325
+ {"Top Violinist": [["Name", "Period", "Nationality"], ["Antonio Vivaldi", "1678-1741", "Italian"], ["Niccolo Paganini", "1782-1840", "Italian"], ["Pablo de Sarasate", "1852-1904", "Spainish"], ["Eugene Ysaye", "1858-1931", "Belgian"], ["Fritz Kreisler", "1875-1962", "Astria-American"], ["Jascha Heifetz", "1901-1987", "Russian-American"], ["David Oistrakh", "1908-1974", "Russian"], ["Yehundi Menuhin", "1916-1999", "American"], ["Itzhak Perlman", "1945-", "Israeli-American"], ["Hilary Hahn", "1979-", "American"]]}
303
326
 
304
327
 
305
328
  Write data
@@ -312,7 +335,7 @@ Suppose you have the following array:
312
335
 
313
336
  .. code-block:: python
314
337
 
315
- >>> data = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
338
+ >>> data = [['G', 'D', 'A', 'E'], ['Thomastik-Infield Domaints', 'Thomastik-Infield Domaints', 'Thomastik-Infield Domaints', 'Pirastro'], ['Silver wound', '', 'Aluminum wound', 'Gold Label Steel']]
316
339
 
317
340
  And here is the code to save it as an excel file :
318
341
 
@@ -326,13 +349,13 @@ Let's verify it:
326
349
 
327
350
  >>> p.get_sheet(file_name="example.xls")
328
351
  pyexcel_sheet1:
329
- +---+---+---+
330
- | 1 | 2 | 3 |
331
- +---+---+---+
332
- | 4 | 5 | 6 |
333
- +---+---+---+
334
- | 7 | 8 | 9 |
335
- +---+---+---+
352
+ +----------------------------+----------------------------+----------------------------+------------------+
353
+ | G | D | A | E |
354
+ +----------------------------+----------------------------+----------------------------+------------------+
355
+ | Thomastik-Infield Domaints | Thomastik-Infield Domaints | Thomastik-Infield Domaints | Pirastro |
356
+ +----------------------------+----------------------------+----------------------------+------------------+
357
+ | Silver wound | | Aluminum wound | Gold Label Steel |
358
+ +----------------------------+----------------------------+----------------------------+------------------+
336
359
 
337
360
 
338
361
  And here is the code to save it as a csv file :
@@ -347,13 +370,13 @@ Let's verify it:
347
370
 
348
371
  .. code-block:: python
349
372
 
350
- >>> with open("example.csv") as f:
351
- ... for line in f.readlines():
352
- ... print(line.rstrip())
353
- ...
354
- 1:2:3
355
- 4:5:6
356
- 7:8:9
373
+ >>> with open("example.csv") as f:
374
+ ... for line in f.readlines():
375
+ ... print(line.rstrip())
376
+ ...
377
+ G:D:A:E
378
+ Thomastik-Infield Domaints:Thomastik-Infield Domaints:Thomastik-Infield Domaints:Pirastro
379
+ Silver wound::Aluminum wound:Gold Label Steel
357
380
 
358
381
  Export a list of dictionaries
359
382
  **********************************
@@ -1065,7 +1088,7 @@ Available Plugins
1065
1088
  ======================== ======================= =================
1066
1089
  Package name Supported file formats Dependencies
1067
1090
  ======================== ======================= =================
1068
- `pyexcel-io`_ csv, csvz [#f1]_, tsv,
1091
+ `pyexcel-io`_ csv, csvz [#f1]_, tsv, csvz,tsvz readers depends on `chardet`
1069
1092
  tsvz [#f2]_
1070
1093
  `pyexcel-xls`_ xls, xlsx(read only), `xlrd`_,
1071
1094
  xlsm(read only) `xlwt`_
@@ -1191,7 +1214,7 @@ New BSD License
1191
1214
 
1192
1215
 
1193
1216
 
1194
- 19 contributors
1217
+ 21 contributors
1195
1218
  ================================================================================
1196
1219
 
1197
1220
  In alphabetical order:
@@ -1202,12 +1225,14 @@ In alphabetical order:
1202
1225
  * `Ayan Banerjee <https://github.com/ayan-b>`_
1203
1226
  * `Chris Hill-Scott <https://github.com/quis>`_
1204
1227
  * `Craig Anderson <https://github.com/craiga>`_
1205
- * `Daryl Yu <https://github.com/darylyu>`_
1228
+ * `D. Yu <https://github.com/darylyu>`_
1206
1229
  * `J Harley <https://github.com/julzhk>`_
1207
1230
  * `Joel Nothman <https://github.com/jnothman>`_
1208
1231
  * `John Vandenberg <https://github.com/jayvdb>`_
1209
1232
  * `Linghui Zeng <https://github.com/mathsyouth>`_
1210
- * `Nik Nyby <https://github.com/nikolas>`_
1233
+ * `Mark Mayo <https://github.com/marksmayo>`_
1234
+ * `Mateusz Konieczny <https://github.com/matkoniecz>`_
1235
+ * `nikolas <https://github.com/nikolas>`_
1211
1236
  * `Rintze M. Zelle, PhD <https://github.com/rmzelle>`_
1212
1237
  * `Simeon Visser <https://github.com/svisser>`_
1213
1238
  * `Simon Allen <https://github.com/garfunkel>`_
@@ -1219,6 +1244,30 @@ In alphabetical order:
1219
1244
  Change log
1220
1245
  ================================================================================
1221
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
+
1259
+ 0.7.1 - 11.09.2024
1260
+ --------------------------------------------------------------------------------
1261
+
1262
+ **Fixed**
1263
+
1264
+ #. `#272 <https://github.com/pyexcel/pyexcel/issues/272>`_: remove chardet as a
1265
+ requirement
1266
+
1267
+ **Updated**
1268
+
1269
+ #. various typos and linted the code
1270
+
1222
1271
  0.7.0 - 12.2.2022
1223
1272
  --------------------------------------------------------------------------------
1224
1273
 
@@ -1819,5 +1868,3 @@ Change log
1819
1868
  #. utilities to get array and dictionary out from excel files.
1820
1869
  #. cookbok receipes for some common and simple usage of this library.
1821
1870
 
1822
-
1823
-