python-docx-oss 0.0.8rc1__tar.gz → 0.0.9rc1__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 (472) hide show
  1. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/HISTORY.md +7 -2
  2. {python_docx_oss-0.0.8rc1/python_docx_oss.egg-info → python_docx_oss-0.0.9rc1}/PKG-INFO +8 -3
  3. python_docx_oss-0.0.9rc1/docs/_static/img/example-docx-01.png +0 -0
  4. python_docx_oss-0.0.9rc1/docs/index.rst +116 -0
  5. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/docs/user/install.rst +1 -1
  6. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/docs/user/shapes.rst +4 -3
  7. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/docx/__init__.py +1 -1
  8. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/docx/image/__init__.py +4 -1
  9. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/docx/image/constants.py +1 -0
  10. python_docx_oss-0.0.9rc1/docx/image/svg.py +65 -0
  11. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/docx/oxml/__init__.py +2 -0
  12. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/docx/oxml/ns.py +5 -6
  13. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/docx/oxml/shape.py +45 -13
  14. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/features/_scratch/test_out.docx +0 -0
  15. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1/python_docx_oss.egg-info}/PKG-INFO +8 -3
  16. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/python_docx_oss.egg-info/SOURCES.txt +2 -0
  17. python_docx_oss-0.0.9rc1/tests/image/test_svg.py +57 -0
  18. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/tests/test_files/snippets/inline.txt +1 -1
  19. python_docx_oss-0.0.8rc1/docs/_static/img/example-docx-01.png +0 -0
  20. python_docx_oss-0.0.8rc1/docs/index.rst +0 -115
  21. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/LICENSE +0 -0
  22. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/MANIFEST.in +0 -0
  23. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/README.md +0 -0
  24. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/docs/Makefile +0 -0
  25. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/docs/_static/.gitignore +0 -0
  26. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/docs/_static/img/hdrftr-01.png +0 -0
  27. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/docs/_static/img/hdrftr-02.png +0 -0
  28. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/docs/_static/img/oss.png +0 -0
  29. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/docs/_templates/layout.html +0 -0
  30. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/docs/_templates/sidebarlinks.html +0 -0
  31. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/docs/_themes/armstrong/LICENSE +0 -0
  32. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/docs/_themes/armstrong/layout.html +0 -0
  33. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/docs/_themes/armstrong/rtd-themes.conf +0 -0
  34. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/docs/_themes/armstrong/static/rtd.css_t +0 -0
  35. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/docs/_themes/armstrong/theme.conf +0 -0
  36. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/docs/_themes/armstrong/theme.conf.orig +0 -0
  37. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/docs/api/dml.rst +0 -0
  38. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/docs/api/document.rst +0 -0
  39. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/docs/api/enum/MsoColorType.rst +0 -0
  40. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/docs/api/enum/MsoThemeColorIndex.rst +0 -0
  41. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/docs/api/enum/WdAlignParagraph.rst +0 -0
  42. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/docs/api/enum/WdBuiltinStyle.rst +0 -0
  43. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/docs/api/enum/WdCellVerticalAlignment.rst +0 -0
  44. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/docs/api/enum/WdColorIndex.rst +0 -0
  45. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/docs/api/enum/WdLineSpacing.rst +0 -0
  46. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/docs/api/enum/WdOrientation.rst +0 -0
  47. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/docs/api/enum/WdRowAlignment.rst +0 -0
  48. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/docs/api/enum/WdRowHeightRule.rst +0 -0
  49. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/docs/api/enum/WdSectionStart.rst +0 -0
  50. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/docs/api/enum/WdStyleType.rst +0 -0
  51. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/docs/api/enum/WdTabAlignment.rst +0 -0
  52. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/docs/api/enum/WdTabLeader.rst +0 -0
  53. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/docs/api/enum/WdTableDirection.rst +0 -0
  54. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/docs/api/enum/WdUnderline.rst +0 -0
  55. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/docs/api/enum/index.rst +0 -0
  56. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/docs/api/section.rst +0 -0
  57. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/docs/api/settings.rst +0 -0
  58. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/docs/api/shape.rst +0 -0
  59. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/docs/api/shared.rst +0 -0
  60. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/docs/api/style.rst +0 -0
  61. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/docs/api/table.rst +0 -0
  62. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/docs/api/text.rst +0 -0
  63. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/docs/conf.py +0 -0
  64. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/docs/dev/analysis/features/coreprops.rst +0 -0
  65. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/docs/dev/analysis/features/header.rst +0 -0
  66. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/docs/dev/analysis/features/numbering.rst +0 -0
  67. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/docs/dev/analysis/features/sections.rst +0 -0
  68. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/docs/dev/analysis/features/settings.rst +0 -0
  69. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/docs/dev/analysis/features/shapes/index.rst +0 -0
  70. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/docs/dev/analysis/features/shapes/picture.rst +0 -0
  71. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/docs/dev/analysis/features/shapes/shapes-inline-size.rst +0 -0
  72. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/docs/dev/analysis/features/shapes/shapes-inline.rst +0 -0
  73. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/docs/dev/analysis/features/styles/character-style.rst +0 -0
  74. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/docs/dev/analysis/features/styles/index.rst +0 -0
  75. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/docs/dev/analysis/features/styles/latent-styles.rst +0 -0
  76. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/docs/dev/analysis/features/styles/paragraph-style.rst +0 -0
  77. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/docs/dev/analysis/features/styles/style.rst +0 -0
  78. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/docs/dev/analysis/features/styles/styles.rst +0 -0
  79. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/docs/dev/analysis/features/table/cell-merge.rst +0 -0
  80. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/docs/dev/analysis/features/table/index.rst +0 -0
  81. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/docs/dev/analysis/features/table/table-cell.rst +0 -0
  82. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/docs/dev/analysis/features/table/table-props.rst +0 -0
  83. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/docs/dev/analysis/features/table/table-row.rst +0 -0
  84. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/docs/dev/analysis/features/text/breaks.rst +0 -0
  85. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/docs/dev/analysis/features/text/font-color.rst +0 -0
  86. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/docs/dev/analysis/features/text/font-highlight-color.rst +0 -0
  87. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/docs/dev/analysis/features/text/font.rst +0 -0
  88. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/docs/dev/analysis/features/text/index.rst +0 -0
  89. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/docs/dev/analysis/features/text/paragraph-format.rst +0 -0
  90. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/docs/dev/analysis/features/text/run-content.rst +0 -0
  91. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/docs/dev/analysis/features/text/tab-stops.rst +0 -0
  92. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/docs/dev/analysis/features/text/underline.rst +0 -0
  93. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/docs/dev/analysis/index.rst +0 -0
  94. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/docs/dev/analysis/schema/ct_body.rst +0 -0
  95. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/docs/dev/analysis/schema/ct_document.rst +0 -0
  96. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/docs/dev/analysis/schema/ct_p.rst +0 -0
  97. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/docs/requirements.txt +0 -0
  98. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/docs/user/api-concepts.rst +0 -0
  99. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/docs/user/custom-properties.rst +0 -0
  100. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/docs/user/custom-xml.rst +0 -0
  101. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/docs/user/documents.rst +0 -0
  102. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/docs/user/hdrftr.rst +0 -0
  103. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/docs/user/quickstart.rst +0 -0
  104. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/docs/user/sections.rst +0 -0
  105. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/docs/user/styles-understanding.rst +0 -0
  106. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/docs/user/styles-using.rst +0 -0
  107. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/docs/user/text.rst +0 -0
  108. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/docx/api.py +0 -0
  109. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/docx/blkcntnr.py +0 -0
  110. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/docx/compat.py +0 -0
  111. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/docx/dml/__init__.py +0 -0
  112. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/docx/dml/color.py +0 -0
  113. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/docx/document.py +0 -0
  114. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/docx/enum/__init__.py +0 -0
  115. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/docx/enum/base.py +0 -0
  116. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/docx/enum/dml.py +0 -0
  117. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/docx/enum/section.py +0 -0
  118. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/docx/enum/shape.py +0 -0
  119. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/docx/enum/style.py +0 -0
  120. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/docx/enum/table.py +0 -0
  121. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/docx/enum/text.py +0 -0
  122. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/docx/exceptions.py +0 -0
  123. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/docx/image/bmp.py +0 -0
  124. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/docx/image/emf.py +0 -0
  125. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/docx/image/exceptions.py +0 -0
  126. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/docx/image/gif.py +0 -0
  127. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/docx/image/helpers.py +0 -0
  128. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/docx/image/image.py +0 -0
  129. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/docx/image/jpeg.py +0 -0
  130. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/docx/image/png.py +0 -0
  131. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/docx/image/tiff.py +0 -0
  132. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/docx/opc/__init__.py +0 -0
  133. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/docx/opc/compat.py +0 -0
  134. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/docx/opc/constants.py +0 -0
  135. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/docx/opc/coreprops.py +0 -0
  136. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/docx/opc/customprops.py +0 -0
  137. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/docx/opc/exceptions.py +0 -0
  138. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/docx/opc/oxml.py +0 -0
  139. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/docx/opc/package.py +0 -0
  140. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/docx/opc/packuri.py +0 -0
  141. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/docx/opc/part.py +0 -0
  142. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/docx/opc/parts/__init__.py +0 -0
  143. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/docx/opc/parts/coreprops.py +0 -0
  144. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/docx/opc/parts/customprops.py +0 -0
  145. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/docx/opc/phys_pkg.py +0 -0
  146. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/docx/opc/pkgreader.py +0 -0
  147. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/docx/opc/pkgwriter.py +0 -0
  148. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/docx/opc/rel.py +0 -0
  149. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/docx/opc/shared.py +0 -0
  150. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/docx/opc/spec.py +0 -0
  151. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/docx/oxml/coreprops.py +0 -0
  152. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/docx/oxml/customprops.py +0 -0
  153. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/docx/oxml/document.py +0 -0
  154. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/docx/oxml/exceptions.py +0 -0
  155. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/docx/oxml/numbering.py +0 -0
  156. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/docx/oxml/section.py +0 -0
  157. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/docx/oxml/settings.py +0 -0
  158. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/docx/oxml/shared.py +0 -0
  159. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/docx/oxml/simpletypes.py +0 -0
  160. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/docx/oxml/styles.py +0 -0
  161. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/docx/oxml/table.py +0 -0
  162. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/docx/oxml/text/__init__.py +0 -0
  163. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/docx/oxml/text/font.py +0 -0
  164. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/docx/oxml/text/paragraph.py +0 -0
  165. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/docx/oxml/text/parfmt.py +0 -0
  166. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/docx/oxml/text/run.py +0 -0
  167. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/docx/oxml/xmlchemy.py +0 -0
  168. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/docx/package.py +0 -0
  169. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/docx/parts/__init__.py +0 -0
  170. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/docx/parts/customxml.py +0 -0
  171. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/docx/parts/document.py +0 -0
  172. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/docx/parts/hdrftr.py +0 -0
  173. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/docx/parts/image.py +0 -0
  174. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/docx/parts/numbering.py +0 -0
  175. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/docx/parts/settings.py +0 -0
  176. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/docx/parts/story.py +0 -0
  177. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/docx/parts/styles.py +0 -0
  178. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/docx/section.py +0 -0
  179. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/docx/settings.py +0 -0
  180. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/docx/shape.py +0 -0
  181. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/docx/shared.py +0 -0
  182. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/docx/styles/__init__.py +0 -0
  183. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/docx/styles/latent.py +0 -0
  184. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/docx/styles/style.py +0 -0
  185. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/docx/styles/styles.py +0 -0
  186. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/docx/table.py +0 -0
  187. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/docx/templates/default-docx-template/[Content_Types].xml +0 -0
  188. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/docx/templates/default-docx-template/_rels/.rels +0 -0
  189. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/docx/templates/default-docx-template/customXml/_rels/item1.xml.rels +0 -0
  190. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/docx/templates/default-docx-template/customXml/item1.xml +0 -0
  191. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/docx/templates/default-docx-template/customXml/itemProps1.xml +0 -0
  192. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/docx/templates/default-docx-template/docProps/app.xml +0 -0
  193. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/docx/templates/default-docx-template/docProps/core.xml +0 -0
  194. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/docx/templates/default-docx-template/docProps/thumbnail.jpeg +0 -0
  195. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/docx/templates/default-docx-template/word/_rels/document.xml.rels +0 -0
  196. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/docx/templates/default-docx-template/word/document.xml +0 -0
  197. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/docx/templates/default-docx-template/word/fontTable.xml +0 -0
  198. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/docx/templates/default-docx-template/word/numbering.xml +0 -0
  199. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/docx/templates/default-docx-template/word/settings.xml +0 -0
  200. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/docx/templates/default-docx-template/word/styles.xml +0 -0
  201. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/docx/templates/default-docx-template/word/stylesWithEffects.xml +0 -0
  202. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/docx/templates/default-docx-template/word/theme/theme1.xml +0 -0
  203. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/docx/templates/default-docx-template/word/webSettings.xml +0 -0
  204. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/docx/templates/default-footer.xml +0 -0
  205. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/docx/templates/default-header.xml +0 -0
  206. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/docx/templates/default-numbering.xml +0 -0
  207. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/docx/templates/default-settings.xml +0 -0
  208. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/docx/templates/default-styles.xml +0 -0
  209. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/docx/templates/default.docx +0 -0
  210. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/docx/text/__init__.py +0 -0
  211. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/docx/text/font.py +0 -0
  212. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/docx/text/paragraph.py +0 -0
  213. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/docx/text/parfmt.py +0 -0
  214. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/docx/text/run.py +0 -0
  215. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/docx/text/tabstops.py +0 -0
  216. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/features/api-open-document.feature +0 -0
  217. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/features/blk-add-paragraph.feature +0 -0
  218. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/features/blk-add-table.feature +0 -0
  219. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/features/cel-add-table.feature +0 -0
  220. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/features/cel-text.feature +0 -0
  221. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/features/doc-access-collections.feature +0 -0
  222. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/features/doc-access-sections.feature +0 -0
  223. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/features/doc-add-heading.feature +0 -0
  224. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/features/doc-add-page-break.feature +0 -0
  225. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/features/doc-add-paragraph.feature +0 -0
  226. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/features/doc-add-picture.feature +0 -0
  227. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/features/doc-add-section.feature +0 -0
  228. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/features/doc-add-table.feature +0 -0
  229. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/features/doc-coreprops.feature +0 -0
  230. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/features/doc-customprops.feature +0 -0
  231. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/features/doc-settings.feature +0 -0
  232. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/features/doc-styles.feature +0 -0
  233. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/features/environment.py +0 -0
  234. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/features/hdr-header-footer.feature +0 -0
  235. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/features/img-characterize-image.feature +0 -0
  236. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/features/num-access-numbering-part.feature +0 -0
  237. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/features/par-access-parfmt.feature +0 -0
  238. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/features/par-add-run.feature +0 -0
  239. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/features/par-alignment-prop.feature +0 -0
  240. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/features/par-clear-paragraph.feature +0 -0
  241. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/features/par-insert-paragraph.feature +0 -0
  242. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/features/par-set-text.feature +0 -0
  243. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/features/par-style-prop.feature +0 -0
  244. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/features/run-access-content.feature +0 -0
  245. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/features/run-access-font.feature +0 -0
  246. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/features/run-add-content.feature +0 -0
  247. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/features/run-add-picture.feature +0 -0
  248. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/features/run-char-style.feature +0 -0
  249. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/features/run-clear-run.feature +0 -0
  250. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/features/run-enum-props.feature +0 -0
  251. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/features/sct-section.feature +0 -0
  252. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/features/shp-inline-shape-access.feature +0 -0
  253. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/features/shp-inline-shape-size.feature +0 -0
  254. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/features/steps/api.py +0 -0
  255. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/features/steps/block.py +0 -0
  256. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/features/steps/cell.py +0 -0
  257. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/features/steps/coreprops.py +0 -0
  258. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/features/steps/customprops.py +0 -0
  259. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/features/steps/document.py +0 -0
  260. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/features/steps/font.py +0 -0
  261. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/features/steps/hdrftr.py +0 -0
  262. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/features/steps/helpers.py +0 -0
  263. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/features/steps/image.py +0 -0
  264. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/features/steps/numbering.py +0 -0
  265. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/features/steps/paragraph.py +0 -0
  266. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/features/steps/parfmt.py +0 -0
  267. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/features/steps/section.py +0 -0
  268. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/features/steps/settings.py +0 -0
  269. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/features/steps/shape.py +0 -0
  270. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/features/steps/shared.py +0 -0
  271. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/features/steps/styles.py +0 -0
  272. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/features/steps/table.py +0 -0
  273. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/features/steps/tabstops.py +0 -0
  274. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/features/steps/test_files/blk-containing-table.docx +0 -0
  275. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/features/steps/test_files/court-exif.jpg +0 -0
  276. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/features/steps/test_files/doc-access-sections.docx +0 -0
  277. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/features/steps/test_files/doc-add-section.docx +0 -0
  278. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/features/steps/test_files/doc-coreprops.docx +0 -0
  279. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/features/steps/test_files/doc-customprops.docx +0 -0
  280. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/features/steps/test_files/doc-default.docx +0 -0
  281. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/features/steps/test_files/doc-no-coreprops.docx +0 -0
  282. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/features/steps/test_files/doc-no-customprops.docx +0 -0
  283. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/features/steps/test_files/doc-odd-even-hdrs.docx +0 -0
  284. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/features/steps/test_files/doc-word-default-blank.docx +0 -0
  285. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/features/steps/test_files/fnt-color.docx +0 -0
  286. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/features/steps/test_files/hdr-header-footer.docx +0 -0
  287. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/features/steps/test_files/jfif-300-dpi.jpg +0 -0
  288. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/features/steps/test_files/jpeg420exif.jpg +0 -0
  289. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/features/steps/test_files/lena.bmp +0 -0
  290. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/features/steps/test_files/lena.gif +0 -0
  291. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/features/steps/test_files/lena.tif +0 -0
  292. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/features/steps/test_files/lena_std.jpg +0 -0
  293. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/features/steps/test_files/monty-truth.png +0 -0
  294. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/features/steps/test_files/mountain.bmp +0 -0
  295. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/features/steps/test_files/num-having-numbering-part.docx +0 -0
  296. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/features/steps/test_files/par-alignment.docx +0 -0
  297. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/features/steps/test_files/par-known-paragraphs.docx +0 -0
  298. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/features/steps/test_files/par-known-styles.docx +0 -0
  299. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/features/steps/test_files/python-icon.jpeg +0 -0
  300. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/features/steps/test_files/run-char-style.docx +0 -0
  301. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/features/steps/test_files/run-enumerated-props.docx +0 -0
  302. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/features/steps/test_files/sample.tif +0 -0
  303. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/features/steps/test_files/sct-first-page-hdrftr.docx +0 -0
  304. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/features/steps/test_files/sct-section-props.docx +0 -0
  305. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/features/steps/test_files/set-no-settings-part.docx +0 -0
  306. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/features/steps/test_files/shp-inline-shape-access.docx +0 -0
  307. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/features/steps/test_files/sty-behav-props.docx +0 -0
  308. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/features/steps/test_files/sty-having-no-styles-part.docx +0 -0
  309. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/features/steps/test_files/sty-having-styles-part.docx +0 -0
  310. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/features/steps/test_files/sty-known-styles.docx +0 -0
  311. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/features/steps/test_files/tab-stops.docx +0 -0
  312. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/features/steps/test_files/tbl-2x2-table.docx +0 -0
  313. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/features/steps/test_files/tbl-cell-access.docx +0 -0
  314. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/features/steps/test_files/tbl-col-props.docx +0 -0
  315. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/features/steps/test_files/tbl-having-applied-style.docx +0 -0
  316. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/features/steps/test_files/tbl-having-tables.docx +0 -0
  317. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/features/steps/test_files/tbl-on-off-props.docx +0 -0
  318. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/features/steps/test_files/tbl-props.docx +0 -0
  319. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/features/steps/test_files/test.png +0 -0
  320. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/features/steps/test_files/txt-font-highlight-color.docx +0 -0
  321. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/features/steps/test_files/txt-font-props.docx +0 -0
  322. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/features/steps/text.py +0 -0
  323. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/features/sty-access-font.feature +0 -0
  324. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/features/sty-access-latent-styles.feature +0 -0
  325. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/features/sty-access-parfmt.feature +0 -0
  326. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/features/sty-add-style.feature +0 -0
  327. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/features/sty-delete-style.feature +0 -0
  328. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/features/sty-latent-add-del.feature +0 -0
  329. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/features/sty-latent-props.feature +0 -0
  330. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/features/sty-style-props.feature +0 -0
  331. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/features/tab-access-tabs.feature +0 -0
  332. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/features/tab-tabstop-props.feature +0 -0
  333. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/features/tbl-add-row-or-col.feature +0 -0
  334. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/features/tbl-cell-access.feature +0 -0
  335. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/features/tbl-cell-props.feature +0 -0
  336. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/features/tbl-col-props.feature +0 -0
  337. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/features/tbl-item-access.feature +0 -0
  338. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/features/tbl-merge-cells.feature +0 -0
  339. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/features/tbl-props.feature +0 -0
  340. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/features/tbl-row-props.feature +0 -0
  341. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/features/tbl-style.feature +0 -0
  342. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/features/txt-add-break.feature +0 -0
  343. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/features/txt-font-color.feature +0 -0
  344. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/features/txt-font-props.feature +0 -0
  345. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/features/txt-parfmt-props.feature +0 -0
  346. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/python_docx_oss.egg-info/dependency_links.txt +0 -0
  347. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/python_docx_oss.egg-info/not-zip-safe +0 -0
  348. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/python_docx_oss.egg-info/requires.txt +0 -0
  349. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/python_docx_oss.egg-info/top_level.txt +0 -0
  350. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/setup.cfg +0 -0
  351. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/setup.py +0 -0
  352. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/tests/__init__.py +0 -0
  353. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/tests/dml/__init__.py +0 -0
  354. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/tests/dml/test_color.py +0 -0
  355. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/tests/image/__init__.py +0 -0
  356. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/tests/image/test_bmp.py +0 -0
  357. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/tests/image/test_emf.py +0 -0
  358. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/tests/image/test_gif.py +0 -0
  359. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/tests/image/test_helpers.py +0 -0
  360. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/tests/image/test_image.py +0 -0
  361. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/tests/image/test_jpeg.py +0 -0
  362. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/tests/image/test_png.py +0 -0
  363. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/tests/image/test_tiff.py +0 -0
  364. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/tests/opc/__init__.py +0 -0
  365. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/tests/opc/parts/__init__.py +0 -0
  366. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/tests/opc/parts/test_coreprops.py +0 -0
  367. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/tests/opc/parts/test_customprops.py +0 -0
  368. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/tests/opc/test_coreprops.py +0 -0
  369. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/tests/opc/test_customprops.py +0 -0
  370. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/tests/opc/test_oxml.py +0 -0
  371. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/tests/opc/test_package.py +0 -0
  372. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/tests/opc/test_packuri.py +0 -0
  373. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/tests/opc/test_part.py +0 -0
  374. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/tests/opc/test_phys_pkg.py +0 -0
  375. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/tests/opc/test_pkgreader.py +0 -0
  376. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/tests/opc/test_pkgwriter.py +0 -0
  377. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/tests/opc/test_rel.py +0 -0
  378. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/tests/opc/unitdata/__init__.py +0 -0
  379. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/tests/opc/unitdata/rels.py +0 -0
  380. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/tests/opc/unitdata/types.py +0 -0
  381. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/tests/oxml/__init__.py +0 -0
  382. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/tests/oxml/parts/__init__.py +0 -0
  383. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/tests/oxml/parts/test_document.py +0 -0
  384. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/tests/oxml/parts/unitdata/__init__.py +0 -0
  385. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/tests/oxml/parts/unitdata/document.py +0 -0
  386. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/tests/oxml/test__init__.py +0 -0
  387. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/tests/oxml/test_ns.py +0 -0
  388. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/tests/oxml/test_styles.py +0 -0
  389. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/tests/oxml/test_table.py +0 -0
  390. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/tests/oxml/test_xmlchemy.py +0 -0
  391. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/tests/oxml/text/__init__.py +0 -0
  392. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/tests/oxml/text/test_run.py +0 -0
  393. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/tests/oxml/unitdata/__init__.py +0 -0
  394. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/tests/oxml/unitdata/dml.py +0 -0
  395. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/tests/oxml/unitdata/numbering.py +0 -0
  396. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/tests/oxml/unitdata/section.py +0 -0
  397. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/tests/oxml/unitdata/shared.py +0 -0
  398. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/tests/oxml/unitdata/styles.py +0 -0
  399. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/tests/oxml/unitdata/table.py +0 -0
  400. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/tests/oxml/unitdata/text.py +0 -0
  401. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/tests/parts/__init__.py +0 -0
  402. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/tests/parts/test_customxml.py +0 -0
  403. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/tests/parts/test_document.py +0 -0
  404. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/tests/parts/test_hdrftr.py +0 -0
  405. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/tests/parts/test_image.py +0 -0
  406. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/tests/parts/test_numbering.py +0 -0
  407. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/tests/parts/test_settings.py +0 -0
  408. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/tests/parts/test_story.py +0 -0
  409. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/tests/parts/test_styles.py +0 -0
  410. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/tests/styles/__init__.py +0 -0
  411. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/tests/styles/test_latent.py +0 -0
  412. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/tests/styles/test_style.py +0 -0
  413. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/tests/styles/test_styles.py +0 -0
  414. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/tests/test_api.py +0 -0
  415. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/tests/test_blkcntnr.py +0 -0
  416. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/tests/test_document.py +0 -0
  417. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/tests/test_enum.py +0 -0
  418. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/tests/test_files/150-dpi.png +0 -0
  419. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/tests/test_files/300-dpi.TIF +0 -0
  420. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/tests/test_files/300-dpi.jpg +0 -0
  421. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/tests/test_files/300-dpi.png +0 -0
  422. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/tests/test_files/72-dpi.tiff +0 -0
  423. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/tests/test_files/CVS_LOGO.WMF +0 -0
  424. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/tests/test_files/exif-420-dpi.jpg +0 -0
  425. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/tests/test_files/expanded_docx/[Content_Types].xml +0 -0
  426. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/tests/test_files/expanded_docx/_rels/.rels +0 -0
  427. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/tests/test_files/expanded_docx/customXml/_rels/item1.xml.rels +0 -0
  428. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/tests/test_files/expanded_docx/customXml/item1.xml +0 -0
  429. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/tests/test_files/expanded_docx/customXml/itemProps1.xml +0 -0
  430. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/tests/test_files/expanded_docx/docProps/app.xml +0 -0
  431. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/tests/test_files/expanded_docx/docProps/core.xml +0 -0
  432. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/tests/test_files/expanded_docx/docProps/thumbnail.jpeg +0 -0
  433. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/tests/test_files/expanded_docx/word/_rels/document.xml.rels +0 -0
  434. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/tests/test_files/expanded_docx/word/document.xml +0 -0
  435. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/tests/test_files/expanded_docx/word/fontTable.xml +0 -0
  436. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/tests/test_files/expanded_docx/word/numbering.xml +0 -0
  437. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/tests/test_files/expanded_docx/word/settings.xml +0 -0
  438. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/tests/test_files/expanded_docx/word/styles.xml +0 -0
  439. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/tests/test_files/expanded_docx/word/stylesWithEffects.xml +0 -0
  440. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/tests/test_files/expanded_docx/word/theme/theme1.xml +0 -0
  441. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/tests/test_files/expanded_docx/word/webSettings.xml +0 -0
  442. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/tests/test_files/having-images.docx +0 -0
  443. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/tests/test_files/jfif-iguana.jpg +0 -0
  444. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/tests/test_files/little-endian.tif +0 -0
  445. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/tests/test_files/monty-truth.png +0 -0
  446. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/tests/test_files/python-icon.jpeg +0 -0
  447. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/tests/test_files/python-icon.png +0 -0
  448. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/tests/test_files/python-powered.png +0 -0
  449. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/tests/test_files/python.bmp +0 -0
  450. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/tests/test_files/snippets/add-row-col.txt +0 -0
  451. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/tests/test_files/snippets/new-tbl.txt +0 -0
  452. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/tests/test_files/snippets/tbl-cells.txt +0 -0
  453. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/tests/test_files/sonic.gif +0 -0
  454. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/tests/test_files/test.docx +0 -0
  455. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/tests/test_package.py +0 -0
  456. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/tests/test_section.py +0 -0
  457. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/tests/test_settings.py +0 -0
  458. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/tests/test_shape.py +0 -0
  459. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/tests/test_shared.py +0 -0
  460. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/tests/test_table.py +0 -0
  461. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/tests/text/__init__.py +0 -0
  462. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/tests/text/test_font.py +0 -0
  463. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/tests/text/test_paragraph.py +0 -0
  464. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/tests/text/test_parfmt.py +0 -0
  465. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/tests/text/test_run.py +0 -0
  466. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/tests/text/test_tabstops.py +0 -0
  467. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/tests/unitdata.py +0 -0
  468. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/tests/unitutil/__init__.py +0 -0
  469. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/tests/unitutil/cxml.py +0 -0
  470. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/tests/unitutil/file.py +0 -0
  471. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/tests/unitutil/mock.py +0 -0
  472. {python_docx_oss-0.0.8rc1 → python_docx_oss-0.0.9rc1}/tox.ini +0 -0
@@ -1,9 +1,14 @@
1
1
  ## Release History
2
2
 
3
+ **0.0.9 (2024-11-26)**
4
+
5
+ - svg file support in add_picture. #27
6
+ - update docs.
7
+
3
8
  **0.0.8 (2024-11-22)**
4
9
 
5
- - EastAsia font support fixes #25
6
- - Update README.md #26
10
+ - EastAsia font support fixes. #25
11
+ - Update README.md. #26
7
12
 
8
13
  **0.0.7 (2022-10-29)**
9
14
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: python-docx-oss
3
- Version: 0.0.8rc1
3
+ Version: 0.0.9rc1
4
4
  Summary: CRUD Microsoft Word .docx files.
5
5
  Home-page: https://github.com/lsaint/python-docx-oss
6
6
  Author: Ethan St. Lee
@@ -75,10 +75,15 @@ This project is based on the original work by [Steve Canny](https://github.com/s
75
75
 
76
76
  ## Release History
77
77
 
78
+ **0.0.9 (2024-11-26)**
79
+
80
+ - svg file support in add_picture. #27
81
+ - update docs.
82
+
78
83
  **0.0.8 (2024-11-22)**
79
84
 
80
- - EastAsia font support fixes #25
81
- - Update README.md #26
85
+ - EastAsia font support fixes. #25
86
+ - Update README.md. #26
82
87
 
83
88
  **0.0.7 (2022-10-29)**
84
89
 
@@ -0,0 +1,116 @@
1
+ .. python-docx-oss documentation master file, created by
2
+ sphinx-quickstart on Wed Jul 6 15:38:29 2022.
3
+ You can adapt this file completely to your liking, but it should at least
4
+ contain the root `toctree` directive.
5
+
6
+ Welcome to python-docx-oss's documentation!
7
+ ===========================================
8
+
9
+ Release v\ |release| (:ref:`Installation <install>`)
10
+
11
+ *python-docx-oss* is a Python library for CRUD Microsoft Word (.docx) files.
12
+
13
+
14
+ What it can do
15
+ --------------
16
+
17
+ .. |img| image:: /_static/img/example-docx-01.png
18
+
19
+ Here's an example of what |docx| can do:
20
+
21
+ ::
22
+
23
+ from docx import Document
24
+ from docx.shared import Inches
25
+
26
+ document = Document()
27
+
28
+ document.add_heading('Document Title', 0)
29
+
30
+ p = document.add_paragraph('A plain paragraph having some ')
31
+ p.add_run('bold').bold = True
32
+ p.add_run(' and some ')
33
+ p.add_run('italic.').italic = True
34
+
35
+ document.add_heading('Heading, level 1', level=1)
36
+ document.add_paragraph('Intense quote', style='Intense Quote')
37
+
38
+ document.add_paragraph(
39
+ 'first item in unordered list', style='List Bullet'
40
+ )
41
+ document.add_paragraph(
42
+ 'first item in ordered list', style='List Number'
43
+ )
44
+
45
+ document.add_picture('monty-truth.png', width=Inches(1.25))
46
+
47
+ records = (
48
+ (3, '101', 'Spam'),
49
+ (7, '422', 'Eggs'),
50
+ (4, '631', 'Spam, spam, eggs, and spam')
51
+ )
52
+
53
+ table = document.add_table(rows=1, cols=3)
54
+ hdr_cells = table.rows[0].cells
55
+ hdr_cells[0].text = 'Qty'
56
+ hdr_cells[1].text = 'Id'
57
+ hdr_cells[2].text = 'Desc'
58
+ for qty, id, desc in records:
59
+ row_cells = table.add_row().cells
60
+ row_cells[0].text = str(qty)
61
+ row_cells[1].text = id
62
+ row_cells[2].text = desc
63
+
64
+ document.add_page_break()
65
+
66
+ document.save('demo.docx')
67
+
68
+
69
+ |img|
70
+
71
+
72
+ User Guide
73
+ ----------
74
+
75
+ .. toctree::
76
+ :maxdepth: 1
77
+
78
+ user/install
79
+ user/quickstart
80
+ user/documents
81
+ user/text
82
+ user/sections
83
+ user/hdrftr
84
+ user/api-concepts
85
+ user/styles-understanding
86
+ user/styles-using
87
+ user/shapes
88
+ user/custom-properties
89
+ user/custom-xml
90
+
91
+
92
+ API Documentation
93
+ -----------------
94
+
95
+ .. toctree::
96
+ :maxdepth: 2
97
+
98
+ api/document
99
+ api/settings
100
+ api/style
101
+ api/text
102
+ api/table
103
+ api/section
104
+ api/shape
105
+ api/dml
106
+ api/shared
107
+ api/enum/index
108
+
109
+
110
+ Contributor Guide
111
+ -----------------
112
+
113
+ .. toctree::
114
+ :maxdepth: 1
115
+
116
+ dev/analysis/index
@@ -26,5 +26,5 @@ but if you use this last method you will need to install those yourself.
26
26
  Dependencies
27
27
  ------------
28
28
 
29
- * Python 3.8, 3.9 or 3.10
29
+ * Python >= 3.10
30
30
  * lxml >= 4.6.5
@@ -19,9 +19,10 @@ will cause it to move to the right. Often, a picture is placed in a paragraph
19
19
  by itself, but this is not required. It can have text before and after it in
20
20
  the paragraph in which it's placed.
21
21
 
22
- At the time of writing, |docx| only supports inline pictures. Floating pictures
23
- can be added. If you have an active use case, submit a feature request on the
24
- issue tracker. The ``Document.add_picture()`` method adds a specified picture
22
+ The ``Document.add_picture()`` method adds a specified picture
25
23
  to the end of the document in a paragraph of its own. However, by digging
26
24
  a little deeper into the API you can place text on either side of the picture
27
25
  in its paragraph, or both.
26
+
27
+ If width and height are not specified in svg, the default size is *72px*.
28
+ The ratio of width and height is kept the same as viewbox attribute.
@@ -12,7 +12,7 @@ from docx.parts.numbering import NumberingPart
12
12
  from docx.parts.settings import SettingsPart
13
13
  from docx.parts.styles import StylesPart # noqa
14
14
 
15
- __version__ = "0.0.8rc1"
15
+ __version__ = "0.0.9rc1"
16
16
 
17
17
 
18
18
  # register custom Part classes with opc package reader
@@ -8,11 +8,12 @@ size, as a required step in including them in a document.
8
8
  from __future__ import absolute_import, division, print_function, unicode_literals
9
9
 
10
10
  from docx.image.bmp import Bmp
11
+ from docx.image.emf import Emf
11
12
  from docx.image.gif import Gif
12
13
  from docx.image.jpeg import Exif, Jfif
13
14
  from docx.image.png import Png
15
+ from docx.image.svg import Svg
14
16
  from docx.image.tiff import Tiff
15
- from docx.image.emf import Emf
16
17
 
17
18
 
18
19
  SIGNATURES = (
@@ -26,4 +27,6 @@ SIGNATURES = (
26
27
  (Tiff, 0, b"II*\x00"), # little-endian (Intel) TIFF
27
28
  (Bmp, 0, b"BM"),
28
29
  (Emf, 0, b"\x01\x00\x00\x00"),
30
+ (Svg, 0, b"<svg "),
31
+ (Svg, 0, b"<?xml version="),
29
32
  )
@@ -114,6 +114,7 @@ class MIME_TYPE(object):
114
114
  PNG = "image/png"
115
115
  TIFF = "image/tiff"
116
116
  EMF = "image/emf"
117
+ SVG = "image/svg+xml"
117
118
 
118
119
 
119
120
  class PNG_CHUNK_TYPE(object):
@@ -0,0 +1,65 @@
1
+ import xml.etree.ElementTree as ET
2
+
3
+ from .constants import MIME_TYPE
4
+ from .image import BaseImageHeader
5
+
6
+ BASE_PX = 72
7
+
8
+
9
+ class Svg(BaseImageHeader):
10
+ """
11
+ Image header parser for SVG images.
12
+ """
13
+
14
+ @classmethod
15
+ def from_stream(cls, stream):
16
+ """
17
+ Return |Svg| instance having header properties parsed from SVG image
18
+ in *stream*.
19
+ """
20
+ px_width, px_height = cls._dimensions_from_stream(stream)
21
+ return cls(px_width, px_height, 72, 72)
22
+
23
+ @property
24
+ def content_type(self):
25
+ """
26
+ MIME content type for this image, unconditionally `image/svg+xml` for
27
+ SVG images.
28
+ """
29
+ return MIME_TYPE.SVG
30
+
31
+ @property
32
+ def default_ext(self):
33
+ """
34
+ Default filename extension, always 'svg' for SVG images.
35
+ """
36
+ return "svg"
37
+
38
+ @classmethod
39
+ def _dimensions_from_stream(cls, stream):
40
+ stream.seek(0)
41
+ data = stream.read()
42
+ root = ET.fromstring(data)
43
+ if root.attrib.get("width") is None:
44
+ return cls._calculate_scaled_dimensions(root.attrib["viewBox"])
45
+
46
+ width = int(root.attrib["width"])
47
+ height = int(root.attrib["height"])
48
+ return width, height
49
+
50
+ @classmethod
51
+ def _calculate_scaled_dimensions(
52
+ cls, viewbox: str, base_px: int = BASE_PX
53
+ ) -> tuple[int, int]:
54
+ _, _, logical_width, logical_height = map(int, viewbox.split())
55
+
56
+ aspect_ratio = logical_width / logical_height
57
+
58
+ if aspect_ratio >= 1:
59
+ final_width = base_px
60
+ final_height = base_px / aspect_ratio
61
+ else:
62
+ final_height = base_px
63
+ final_width = base_px * aspect_ratio
64
+
65
+ return int(final_width), int(final_height)
@@ -133,6 +133,8 @@ from .shape import (
133
133
 
134
134
  register_element_cls("a:blip", CT_Blip)
135
135
  register_element_cls("a:ext", CT_PositiveSize2D)
136
+ register_element_cls("a:extLst", CT_Transform2D)
137
+ register_element_cls("asvg:svgBlip", CT_Transform2D)
136
138
  register_element_cls("a:graphic", CT_GraphicalObject)
137
139
  register_element_cls("a:graphicData", CT_GraphicalObjectData)
138
140
  register_element_cls("a:off", CT_Point2D)
@@ -1,5 +1,3 @@
1
- # encoding: utf-8
2
-
3
1
  """
4
2
  Namespace-related objects.
5
3
  """
@@ -25,9 +23,10 @@ nsmap = {
25
23
  "wp": "http://schemas.openxmlformats.org/drawingml/2006/wordprocessingDrawing",
26
24
  "xml": "http://www.w3.org/XML/1998/namespace",
27
25
  "xsi": "http://www.w3.org/2001/XMLSchema-instance",
26
+ "asvg": "http://schemas.microsoft.com/office/drawing/2016/SVG/main",
28
27
  }
29
28
 
30
- pfxmap = dict((value, key) for key, value in nsmap.items())
29
+ pfxmap = {value: key for key, value in nsmap.items()}
31
30
 
32
31
 
33
32
  class NamespacePrefixedTag(str):
@@ -50,7 +49,7 @@ class NamespacePrefixedTag(str):
50
49
  @classmethod
51
50
  def from_clark_name(cls, clark_name):
52
51
  nsuri, local_name = clark_name[1:].split("}")
53
- nstag = "%s:%s" % (pfxmap[nsuri], local_name)
52
+ nstag = f"{pfxmap[nsuri]}:{local_name}"
54
53
  return cls(nstag)
55
54
 
56
55
  @property
@@ -93,7 +92,7 @@ def nsdecls(*prefixes):
93
92
  Return a string containing a namespace declaration for each of the
94
93
  namespace prefix strings, e.g. 'p', 'ct', passed as *prefixes*.
95
94
  """
96
- return " ".join(['xmlns:%s="%s"' % (pfx, nsmap[pfx]) for pfx in prefixes])
95
+ return " ".join([f'xmlns:{pfx}="{nsmap[pfx]}"' for pfx in prefixes])
97
96
 
98
97
 
99
98
  def nspfxmap(*nspfxs):
@@ -102,7 +101,7 @@ def nspfxmap(*nspfxs):
102
101
  *nspfxs*. Any number of namespace prefixes can be supplied, e.g.
103
102
  namespaces('a', 'r', 'p').
104
103
  """
105
- return dict((pfx, nsmap[pfx]) for pfx in nspfxs)
104
+ return {pfx: nsmap[pfx] for pfx in nspfxs}
106
105
 
107
106
 
108
107
  def qn(tag):
@@ -1,6 +1,7 @@
1
1
  """
2
2
  Custom element classes for shape-related elements like ``<w:inline>``
3
3
  """
4
+
4
5
  from docx.oxml import parse_xml
5
6
  from docx.oxml.ns import nsdecls
6
7
  from docx.oxml.xmlchemy import BaseOxmlElement, OneAndOnlyOne
@@ -31,6 +32,7 @@ class CT_Blip(BaseOxmlElement):
31
32
 
32
33
  embed = OptionalAttribute("r:embed", ST_RelationshipId)
33
34
  link = OptionalAttribute("r:link", ST_RelationshipId)
35
+ extLst = ZeroOrOne("a:extLst")
34
36
 
35
37
 
36
38
  class CT_BlipFillProperties(BaseOxmlElement):
@@ -108,7 +110,7 @@ class CT_Inline(BaseOxmlElement):
108
110
  " <a:graphic>\n"
109
111
  ' <a:graphicData uri="URI not set"/>\n'
110
112
  " </a:graphic>\n"
111
- "</wp:inline>" % nsdecls("wp", "a", "pic", "r")
113
+ "</wp:inline>" % nsdecls("wp", "a", "pic", "r", "asvg")
112
114
  )
113
115
 
114
116
 
@@ -145,14 +147,48 @@ class CT_Picture(BaseOxmlElement):
145
147
  contents required to define a viable picture element, based on the
146
148
  values passed as parameters.
147
149
  """
148
- pic = parse_xml(cls._pic_xml())
150
+ if filename.endswith(".svg"):
151
+ pic = parse_xml(cls._pic_xml_svg())
152
+ pic.blipFill.blip.extLst.ext.svgBlip.embed = rId
153
+ else:
154
+ pic = parse_xml(cls._pic_xml())
155
+ pic.blipFill.blip.embed = rId
149
156
  pic.nvPicPr.cNvPr.id = pic_id
150
157
  pic.nvPicPr.cNvPr.name = filename
151
- pic.blipFill.blip.embed = rId
152
158
  pic.spPr.cx = cx
153
159
  pic.spPr.cy = cy
154
160
  return pic
155
161
 
162
+ @classmethod
163
+ def _pic_xml_svg(cls):
164
+ return (
165
+ "<pic:pic %s>\n"
166
+ " <pic:nvPicPr>\n"
167
+ ' <pic:cNvPr id="666" name="unnamed"/>\n'
168
+ " <pic:cNvPicPr/>\n"
169
+ " </pic:nvPicPr>\n"
170
+ " <pic:blipFill>\n"
171
+ " <a:blip>\n"
172
+ " <a:extLst>\n"
173
+ ' <a:ext uri="{96DAC541-7B7A-43D3-8B79-37D633B846F1}">\n'
174
+ " <asvg:svgBlip/>\n"
175
+ " </a:ext>\n"
176
+ " </a:extLst>\n"
177
+ " </a:blip>\n"
178
+ " <a:stretch>\n"
179
+ " <a:fillRect/>\n"
180
+ " </a:stretch>\n"
181
+ " </pic:blipFill>\n"
182
+ " <pic:spPr>\n"
183
+ " <a:xfrm>\n"
184
+ ' <a:off x="0" y="0"/>\n'
185
+ ' <a:ext cx="914400" cy="914400"/>\n'
186
+ " </a:xfrm>\n"
187
+ ' <a:prstGeom prst="rect"/>\n'
188
+ " </pic:spPr>\n"
189
+ "</pic:pic>" % nsdecls("pic", "a", "r", "asvg")
190
+ )
191
+
156
192
  @classmethod
157
193
  def _pic_xml(cls):
158
194
  return (
@@ -174,7 +210,7 @@ class CT_Picture(BaseOxmlElement):
174
210
  " </a:xfrm>\n"
175
211
  ' <a:prstGeom prst="rect"/>\n'
176
212
  " </pic:spPr>\n"
177
- "</pic:pic>" % nsdecls("pic", "a", "r")
213
+ "</pic:pic>" % nsdecls("pic", "a", "r", "asvg")
178
214
  )
179
215
 
180
216
 
@@ -204,6 +240,7 @@ class CT_PositiveSize2D(BaseOxmlElement):
204
240
 
205
241
  cx = RequiredAttribute("cx", ST_PositiveCoordinate)
206
242
  cy = RequiredAttribute("cy", ST_PositiveCoordinate)
243
+ svgBlip = ZeroOrOne("asvg:svgBlip")
207
244
 
208
245
 
209
246
  class CT_PresetGeometry2D(BaseOxmlElement):
@@ -260,9 +297,7 @@ class CT_ShapeProperties(BaseOxmlElement):
260
297
  Shape height as an instance of Emu, or None if not present.
261
298
  """
262
299
  xfrm = self.xfrm
263
- if xfrm is None:
264
- return None
265
- return xfrm.cy
300
+ return None if xfrm is None else xfrm.cy
266
301
 
267
302
  @cy.setter
268
303
  def cy(self, value):
@@ -284,13 +319,12 @@ class CT_Transform2D(BaseOxmlElement):
284
319
 
285
320
  off = ZeroOrOne("a:off", successors=("a:ext",))
286
321
  ext = ZeroOrOne("a:ext", successors=())
322
+ embed = OptionalAttribute("r:embed", ST_RelationshipId)
287
323
 
288
324
  @property
289
325
  def cx(self):
290
326
  ext = self.ext
291
- if ext is None:
292
- return None
293
- return ext.cx
327
+ return None if ext is None else ext.cx
294
328
 
295
329
  @cx.setter
296
330
  def cx(self, value):
@@ -300,9 +334,7 @@ class CT_Transform2D(BaseOxmlElement):
300
334
  @property
301
335
  def cy(self):
302
336
  ext = self.ext
303
- if ext is None:
304
- return None
305
- return ext.cy
337
+ return None if ext is None else ext.cy
306
338
 
307
339
  @cy.setter
308
340
  def cy(self, value):
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: python-docx-oss
3
- Version: 0.0.8rc1
3
+ Version: 0.0.9rc1
4
4
  Summary: CRUD Microsoft Word .docx files.
5
5
  Home-page: https://github.com/lsaint/python-docx-oss
6
6
  Author: Ethan St. Lee
@@ -75,10 +75,15 @@ This project is based on the original work by [Steve Canny](https://github.com/s
75
75
 
76
76
  ## Release History
77
77
 
78
+ **0.0.9 (2024-11-26)**
79
+
80
+ - svg file support in add_picture. #27
81
+ - update docs.
82
+
78
83
  **0.0.8 (2024-11-22)**
79
84
 
80
- - EastAsia font support fixes #25
81
- - Update README.md #26
85
+ - EastAsia font support fixes. #25
86
+ - Update README.md. #26
82
87
 
83
88
  **0.0.7 (2022-10-29)**
84
89
 
@@ -124,6 +124,7 @@ docx/image/helpers.py
124
124
  docx/image/image.py
125
125
  docx/image/jpeg.py
126
126
  docx/image/png.py
127
+ docx/image/svg.py
127
128
  docx/image/tiff.py
128
129
  docx/opc/__init__.py
129
130
  docx/opc/compat.py
@@ -365,6 +366,7 @@ tests/image/test_helpers.py
365
366
  tests/image/test_image.py
366
367
  tests/image/test_jpeg.py
367
368
  tests/image/test_png.py
369
+ tests/image/test_svg.py
368
370
  tests/image/test_tiff.py
369
371
  tests/opc/__init__.py
370
372
  tests/opc/test_coreprops.py
@@ -0,0 +1,57 @@
1
+ import io
2
+ from xml.etree.ElementTree import Element, tostring
3
+
4
+ import pytest
5
+
6
+ from docx.image.svg import BASE_PX, Svg
7
+
8
+
9
+ @pytest.fixture
10
+ def svg_with_dimensions():
11
+ """Fixture for SVG stream with width and height."""
12
+ root = Element("svg", width="200", height="100")
13
+ return io.BytesIO(tostring(root))
14
+
15
+
16
+ @pytest.fixture
17
+ def svg_with_viewbox():
18
+ """Fixture for SVG stream with viewBox but no width and height."""
19
+ root = Element("svg", viewBox="0 0 400 200")
20
+ return io.BytesIO(tostring(root))
21
+
22
+
23
+ @pytest.fixture(
24
+ params=[
25
+ ("0 0 400 200", 72, 36, 72), # Landscape
26
+ ("0 0 200 400", 100, 200, 200), # Portrait
27
+ ("0 0 100 100", 50, 50, 50), # Square
28
+ ]
29
+ )
30
+ def viewbox_data(request):
31
+ """Fixture for different viewBox test cases as tuples."""
32
+ return request.param
33
+
34
+
35
+ @pytest.fixture(
36
+ params=[
37
+ (b'<svg width="200" height="100"/>', 200, 100),
38
+ (b'<svg viewBox="0 0 400 200"/>', BASE_PX, BASE_PX // 2),
39
+ ]
40
+ )
41
+ def svg_stream_data(request):
42
+ return request.param
43
+
44
+
45
+ def test_dimensions_from_stream(svg_stream_data):
46
+ stream_data, expected_width, expected_height = svg_stream_data
47
+ stream = io.BytesIO(stream_data)
48
+ width, height = Svg._dimensions_from_stream(stream)
49
+ assert width == expected_width
50
+ assert height == expected_height
51
+
52
+
53
+ def test_calculate_scaled_dimensions(viewbox_data):
54
+ viewbox, expected_width, expected_height, base_px = viewbox_data
55
+ width, height = Svg._calculate_scaled_dimensions(viewbox, base_px)
56
+ assert width == expected_width
57
+ assert height == expected_height
@@ -1,4 +1,4 @@
1
- <wp:inline xmlns:wp="http://schemas.openxmlformats.org/drawingml/2006/wordprocessingDrawing" xmlns:a="http://schemas.openxmlformats.org/drawingml/2006/main" xmlns:pic="http://schemas.openxmlformats.org/drawingml/2006/picture" xmlns:r="http://schemas.openxmlformats.org/officeDocument/2006/relationships">
1
+ <wp:inline xmlns:wp="http://schemas.openxmlformats.org/drawingml/2006/wordprocessingDrawing" xmlns:a="http://schemas.openxmlformats.org/drawingml/2006/main" xmlns:pic="http://schemas.openxmlformats.org/drawingml/2006/picture" xmlns:r="http://schemas.openxmlformats.org/officeDocument/2006/relationships" xmlns:asvg="http://schemas.microsoft.com/office/drawing/2016/SVG/main">
2
2
  <wp:extent cx="444" cy="888"/>
3
3
  <wp:docPr id="24" name="Picture 24"/>
4
4
  <wp:cNvGraphicFramePr>