python-docx-oss 0.1.0rc1__tar.gz → 0.1.1__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.
- python_docx_oss-0.1.1/HISTORY.md +80 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/MANIFEST.in +1 -1
- python_docx_oss-0.1.1/PKG-INFO +215 -0
- python_docx_oss-0.1.1/README.md +186 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/docs/conf.py +2 -2
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/docs/index.rst +17 -9
- python_docx_oss-0.1.1/docs/user/custom-xml.rst +95 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/docs/user/documents.rst +20 -18
- python_docx_oss-0.1.1/docs/user/install.rst +31 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/pyproject.toml +10 -3
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/requirements-test.txt +1 -1
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/src/docx/__init__.py +1 -1
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/src/docx/image/emf.py +1 -1
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/src/docx/parts/customxml.py +11 -6
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/src/docx/parts/document.py +2 -2
- python_docx_oss-0.1.1/src/python_docx_oss.egg-info/PKG-INFO +215 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/src/python_docx_oss.egg-info/SOURCES.txt +12 -1
- python_docx_oss-0.1.1/tests/fixtures/README.md +16 -0
- python_docx_oss-0.1.1/tests/fixtures/customxml/generate_fixture.py +127 -0
- python_docx_oss-0.1.1/tests/fixtures/customxml/multiple-custom-xml-parts.docx +0 -0
- python_docx_oss-0.1.1/tests/fixtures/documents/word-blank.docx +0 -0
- python_docx_oss-0.1.1/tests/fixtures/drawing/word-floating-picture.docx +0 -0
- python_docx_oss-0.1.1/tests/fixtures/fonts/word-east-asian-fonts.docx +0 -0
- python_docx_oss-0.1.1/tests/fixtures/images/word-svg-image.docx +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/tests/image/test_emf.py +3 -2
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/tests/image/test_svg.py +0 -1
- python_docx_oss-0.1.1/tests/integration/__init__.py +1 -0
- python_docx_oss-0.1.1/tests/integration/customxml/__init__.py +1 -0
- python_docx_oss-0.1.1/tests/integration/customxml/test_custom_xml_roundtrip.py +90 -0
- python_docx_oss-0.1.1/tests/integration/test_word_roundtrip.py +131 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/tests/opc/parts/test_customprops.py +0 -2
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/tests/opc/test_customprops.py +7 -4
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/tests/opc/test_phys_pkg.py +2 -2
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/tests/opc/test_rel.py +3 -1
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/tests/oxml/test_xmlchemy.py +4 -1
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/tests/parts/test_customxml.py +19 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/tests/text/test_font.py +8 -2
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/tests/unitutil/cxml.py +3 -3
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/tox.ini +1 -1
- python_docx_oss-0.1.0rc1/PKG-INFO +0 -57
- python_docx_oss-0.1.0rc1/README.md +0 -32
- python_docx_oss-0.1.0rc1/docs/user/custom-xml.rst +0 -66
- python_docx_oss-0.1.0rc1/docs/user/install.rst +0 -30
- python_docx_oss-0.1.0rc1/features/_scratch/test_out.docx +0 -0
- python_docx_oss-0.1.0rc1/src/python_docx_oss.egg-info/PKG-INFO +0 -57
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/LICENSE +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/docs/Makefile +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/docs/_static/.gitignore +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/docs/_static/img/comment-parts.png +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/docs/_static/img/example-docx-01.png +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/docs/_static/img/hdrftr-01.png +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/docs/_static/img/hdrftr-02.png +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/docs/_static/img/oss.png +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/docs/_templates/layout.html +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/docs/_templates/sidebarlinks.html +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/docs/_themes/armstrong/LICENSE +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/docs/_themes/armstrong/layout.html +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/docs/_themes/armstrong/rtd-themes.conf +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/docs/_themes/armstrong/static/rtd.css_t +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/docs/_themes/armstrong/theme.conf +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/docs/_themes/armstrong/theme.conf.orig +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/docs/api/comments.rst +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/docs/api/dml.rst +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/docs/api/document.rst +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/docs/api/enum/MsoColorType.rst +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/docs/api/enum/MsoThemeColorIndex.rst +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/docs/api/enum/WdAlignParagraph.rst +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/docs/api/enum/WdBuiltinStyle.rst +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/docs/api/enum/WdCellVerticalAlignment.rst +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/docs/api/enum/WdColorIndex.rst +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/docs/api/enum/WdLineSpacing.rst +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/docs/api/enum/WdOrientation.rst +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/docs/api/enum/WdRowAlignment.rst +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/docs/api/enum/WdRowHeightRule.rst +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/docs/api/enum/WdSectionStart.rst +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/docs/api/enum/WdStyleType.rst +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/docs/api/enum/WdTabAlignment.rst +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/docs/api/enum/WdTabLeader.rst +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/docs/api/enum/WdTableDirection.rst +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/docs/api/enum/WdUnderline.rst +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/docs/api/enum/index.rst +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/docs/api/section.rst +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/docs/api/settings.rst +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/docs/api/shape.rst +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/docs/api/shared.rst +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/docs/api/style.rst +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/docs/api/table.rst +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/docs/api/text.rst +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/docs/dev/analysis/features/comments.rst +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/docs/dev/analysis/features/coreprops.rst +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/docs/dev/analysis/features/header.rst +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/docs/dev/analysis/features/numbering.rst +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/docs/dev/analysis/features/sections.rst +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/docs/dev/analysis/features/settings.rst +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/docs/dev/analysis/features/shapes/index.rst +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/docs/dev/analysis/features/shapes/picture.rst +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/docs/dev/analysis/features/shapes/shapes-inline-size.rst +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/docs/dev/analysis/features/shapes/shapes-inline.rst +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/docs/dev/analysis/features/styles/character-style.rst +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/docs/dev/analysis/features/styles/index.rst +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/docs/dev/analysis/features/styles/latent-styles.rst +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/docs/dev/analysis/features/styles/paragraph-style.rst +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/docs/dev/analysis/features/styles/style.rst +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/docs/dev/analysis/features/styles/styles.rst +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/docs/dev/analysis/features/table/cell-merge.rst +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/docs/dev/analysis/features/table/index.rst +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/docs/dev/analysis/features/table/table-cell.rst +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/docs/dev/analysis/features/table/table-props.rst +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/docs/dev/analysis/features/table/table-row.rst +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/docs/dev/analysis/features/text/breaks.rst +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/docs/dev/analysis/features/text/font-color.rst +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/docs/dev/analysis/features/text/font-highlight-color.rst +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/docs/dev/analysis/features/text/font.rst +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/docs/dev/analysis/features/text/hyperlink.rst +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/docs/dev/analysis/features/text/index.rst +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/docs/dev/analysis/features/text/paragraph-format.rst +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/docs/dev/analysis/features/text/run-content.rst +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/docs/dev/analysis/features/text/tab-stops.rst +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/docs/dev/analysis/features/text/underline.rst +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/docs/dev/analysis/index.rst +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/docs/dev/analysis/schema/ct_body.rst +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/docs/dev/analysis/schema/ct_document.rst +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/docs/dev/analysis/schema/ct_p.rst +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/docs/requirements.txt +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/docs/user/api-concepts.rst +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/docs/user/comments.rst +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/docs/user/custom-properties.rst +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/docs/user/hdrftr.rst +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/docs/user/quickstart.rst +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/docs/user/sections.rst +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/docs/user/shapes.rst +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/docs/user/styles-understanding.rst +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/docs/user/styles-using.rst +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/docs/user/tables.rst +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/docs/user/text.rst +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/features/api-open-document.feature +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/features/blk-add-paragraph.feature +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/features/blk-add-table.feature +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/features/blk-iter-inner-content.feature +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/features/cmt-mutations.feature +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/features/cmt-props.feature +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/features/doc-access-collections.feature +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/features/doc-access-sections.feature +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/features/doc-add-comment.feature +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/features/doc-add-heading.feature +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/features/doc-add-page-break.feature +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/features/doc-add-paragraph.feature +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/features/doc-add-picture.feature +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/features/doc-add-section.feature +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/features/doc-add-table.feature +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/features/doc-comments.feature +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/features/doc-coreprops.feature +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/features/doc-customprops.feature +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/features/doc-settings.feature +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/features/doc-styles.feature +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/features/environment.py +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/features/hdr-header-footer.feature +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/features/hlk-props.feature +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/features/img-characterize-image.feature +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/features/num-access-numbering-part.feature +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/features/par-access-inner-content.feature +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/features/par-access-parfmt.feature +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/features/par-add-run.feature +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/features/par-alignment-prop.feature +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/features/par-clear-paragraph.feature +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/features/par-insert-paragraph.feature +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/features/par-set-text.feature +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/features/par-style-prop.feature +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/features/pbk-split-para.feature +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/features/run-access-font.feature +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/features/run-access-inner-content.feature +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/features/run-add-content.feature +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/features/run-add-picture.feature +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/features/run-char-style.feature +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/features/run-clear-run.feature +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/features/run-enum-props.feature +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/features/sct-section.feature +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/features/shp-inline-shape-access.feature +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/features/shp-inline-shape-size.feature +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/features/steps/api.py +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/features/steps/block.py +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/features/steps/comments.py +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/features/steps/coreprops.py +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/features/steps/customprops.py +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/features/steps/document.py +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/features/steps/font.py +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/features/steps/hdrftr.py +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/features/steps/helpers.py +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/features/steps/hyperlink.py +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/features/steps/image.py +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/features/steps/numbering.py +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/features/steps/pagebreak.py +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/features/steps/paragraph.py +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/features/steps/parfmt.py +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/features/steps/section.py +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/features/steps/settings.py +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/features/steps/shape.py +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/features/steps/shared.py +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/features/steps/styles.py +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/features/steps/table.py +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/features/steps/tabstops.py +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/features/steps/test_files/blk-containing-table.docx +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/features/steps/test_files/blk-paras-and-tables.docx +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/features/steps/test_files/comments-rich-para.docx +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/features/steps/test_files/court-exif.jpg +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/features/steps/test_files/doc-access-sections.docx +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/features/steps/test_files/doc-add-section.docx +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/features/steps/test_files/doc-coreprops.docx +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/features/steps/test_files/doc-customprops-legacy.docx +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/features/steps/test_files/doc-customprops.docx +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/features/steps/test_files/doc-default.docx +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/features/steps/test_files/doc-no-coreprops.docx +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/features/steps/test_files/doc-no-customprops.docx +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/features/steps/test_files/doc-odd-even-hdrs.docx +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/features/steps/test_files/doc-word-default-blank.docx +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/features/steps/test_files/fnt-color.docx +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/features/steps/test_files/hdr-header-footer.docx +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/features/steps/test_files/jfif-300-dpi.jpg +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/features/steps/test_files/jpeg420exif.jpg +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/features/steps/test_files/lena.bmp +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/features/steps/test_files/lena.gif +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/features/steps/test_files/lena.tif +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/features/steps/test_files/lena_std.jpg +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/features/steps/test_files/monty-truth.png +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/features/steps/test_files/mountain.bmp +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/features/steps/test_files/num-having-numbering-part.docx +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/features/steps/test_files/par-alignment.docx +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/features/steps/test_files/par-hlink-frags.docx +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/features/steps/test_files/par-hyperlinks.docx +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/features/steps/test_files/par-known-paragraphs.docx +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/features/steps/test_files/par-known-styles.docx +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/features/steps/test_files/par-rendered-page-breaks.docx +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/features/steps/test_files/python-icon.jpeg +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/features/steps/test_files/run-char-style.docx +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/features/steps/test_files/run-enumerated-props.docx +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/features/steps/test_files/sample.tif +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/features/steps/test_files/sct-first-page-hdrftr.docx +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/features/steps/test_files/sct-inner-content.docx +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/features/steps/test_files/sct-section-props.docx +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/features/steps/test_files/set-no-settings-part.docx +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/features/steps/test_files/shp-inline-shape-access.docx +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/features/steps/test_files/sty-behav-props.docx +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/features/steps/test_files/sty-having-no-styles-part.docx +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/features/steps/test_files/sty-having-styles-part.docx +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/features/steps/test_files/sty-known-styles.docx +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/features/steps/test_files/tab-stops.docx +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/features/steps/test_files/tbl-2x2-table.docx +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/features/steps/test_files/tbl-cell-access.docx +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/features/steps/test_files/tbl-cell-props.docx +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/features/steps/test_files/tbl-col-props.docx +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/features/steps/test_files/tbl-having-applied-style.docx +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/features/steps/test_files/tbl-having-tables.docx +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/features/steps/test_files/tbl-on-off-props.docx +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/features/steps/test_files/tbl-props.docx +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/features/steps/test_files/test.png +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/features/steps/test_files/txt-font-highlight-color.docx +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/features/steps/test_files/txt-font-props.docx +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/features/steps/text.py +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/features/sty-access-font.feature +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/features/sty-access-latent-styles.feature +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/features/sty-access-parfmt.feature +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/features/sty-add-style.feature +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/features/sty-delete-style.feature +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/features/sty-latent-add-del.feature +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/features/sty-latent-props.feature +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/features/sty-style-props.feature +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/features/tab-access-tabs.feature +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/features/tab-tabstop-props.feature +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/features/tbl-add-row-or-col.feature +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/features/tbl-cell-access.feature +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/features/tbl-cell-add-table.feature +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/features/tbl-cell-props.feature +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/features/tbl-cell-text.feature +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/features/tbl-col-props.feature +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/features/tbl-item-access.feature +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/features/tbl-merge-cells.feature +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/features/tbl-props.feature +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/features/tbl-row-props.feature +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/features/tbl-style.feature +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/features/txt-add-break.feature +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/features/txt-font-color.feature +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/features/txt-font-props.feature +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/features/txt-parfmt-props.feature +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/requirements-dev.txt +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/requirements-docs.txt +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/requirements.txt +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/setup.cfg +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/src/docx/api.py +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/src/docx/blkcntnr.py +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/src/docx/comments.py +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/src/docx/dml/__init__.py +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/src/docx/dml/color.py +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/src/docx/document.py +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/src/docx/drawing/__init__.py +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/src/docx/enum/__init__.py +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/src/docx/enum/base.py +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/src/docx/enum/dml.py +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/src/docx/enum/section.py +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/src/docx/enum/shape.py +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/src/docx/enum/style.py +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/src/docx/enum/table.py +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/src/docx/enum/text.py +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/src/docx/exceptions.py +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/src/docx/image/__init__.py +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/src/docx/image/bmp.py +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/src/docx/image/constants.py +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/src/docx/image/exceptions.py +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/src/docx/image/gif.py +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/src/docx/image/helpers.py +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/src/docx/image/image.py +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/src/docx/image/jpeg.py +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/src/docx/image/png.py +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/src/docx/image/svg.py +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/src/docx/image/tiff.py +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/src/docx/opc/__init__.py +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/src/docx/opc/constants.py +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/src/docx/opc/coreprops.py +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/src/docx/opc/customprops.py +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/src/docx/opc/exceptions.py +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/src/docx/opc/oxml.py +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/src/docx/opc/package.py +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/src/docx/opc/packuri.py +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/src/docx/opc/part.py +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/src/docx/opc/parts/__init__.py +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/src/docx/opc/parts/coreprops.py +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/src/docx/opc/parts/customprops.py +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/src/docx/opc/phys_pkg.py +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/src/docx/opc/pkgreader.py +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/src/docx/opc/pkgwriter.py +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/src/docx/opc/rel.py +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/src/docx/opc/shared.py +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/src/docx/opc/spec.py +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/src/docx/oxml/__init__.py +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/src/docx/oxml/comments.py +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/src/docx/oxml/coreprops.py +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/src/docx/oxml/customprops.py +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/src/docx/oxml/dml/CT_ExtensionList.py +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/src/docx/oxml/document.py +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/src/docx/oxml/drawing.py +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/src/docx/oxml/exceptions.py +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/src/docx/oxml/ns.py +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/src/docx/oxml/numbering.py +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/src/docx/oxml/parser.py +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/src/docx/oxml/section.py +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/src/docx/oxml/settings.py +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/src/docx/oxml/shape.py +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/src/docx/oxml/shared.py +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/src/docx/oxml/simpletypes.py +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/src/docx/oxml/styles.py +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/src/docx/oxml/table.py +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/src/docx/oxml/text/__init__.py +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/src/docx/oxml/text/font.py +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/src/docx/oxml/text/hyperlink.py +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/src/docx/oxml/text/pagebreak.py +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/src/docx/oxml/text/paragraph.py +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/src/docx/oxml/text/parfmt.py +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/src/docx/oxml/text/run.py +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/src/docx/oxml/xmlchemy.py +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/src/docx/package.py +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/src/docx/parts/__init__.py +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/src/docx/parts/comments.py +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/src/docx/parts/hdrftr.py +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/src/docx/parts/image.py +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/src/docx/parts/numbering.py +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/src/docx/parts/settings.py +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/src/docx/parts/story.py +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/src/docx/parts/styles.py +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/src/docx/py.typed +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/src/docx/section.py +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/src/docx/settings.py +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/src/docx/shape.py +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/src/docx/shared.py +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/src/docx/styles/__init__.py +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/src/docx/styles/latent.py +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/src/docx/styles/style.py +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/src/docx/styles/styles.py +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/src/docx/table.py +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/src/docx/templates/default-comments.xml +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/src/docx/templates/default-docx-template/[Content_Types].xml +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/src/docx/templates/default-docx-template/_rels/.rels +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/src/docx/templates/default-docx-template/customXml/_rels/item1.xml.rels +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/src/docx/templates/default-docx-template/customXml/item1.xml +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/src/docx/templates/default-docx-template/customXml/itemProps1.xml +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/src/docx/templates/default-docx-template/docProps/app.xml +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/src/docx/templates/default-docx-template/docProps/core.xml +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/src/docx/templates/default-docx-template/docProps/thumbnail.jpeg +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/src/docx/templates/default-docx-template/word/_rels/document.xml.rels +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/src/docx/templates/default-docx-template/word/document.xml +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/src/docx/templates/default-docx-template/word/fontTable.xml +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/src/docx/templates/default-docx-template/word/numbering.xml +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/src/docx/templates/default-docx-template/word/settings.xml +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/src/docx/templates/default-docx-template/word/styles.xml +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/src/docx/templates/default-docx-template/word/stylesWithEffects.xml +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/src/docx/templates/default-docx-template/word/theme/theme1.xml +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/src/docx/templates/default-docx-template/word/webSettings.xml +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/src/docx/templates/default-footer.xml +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/src/docx/templates/default-header.xml +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/src/docx/templates/default-numbering.xml +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/src/docx/templates/default-settings.xml +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/src/docx/templates/default-styles.xml +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/src/docx/templates/default.docx +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/src/docx/text/__init__.py +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/src/docx/text/font.py +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/src/docx/text/hyperlink.py +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/src/docx/text/pagebreak.py +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/src/docx/text/paragraph.py +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/src/docx/text/parfmt.py +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/src/docx/text/run.py +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/src/docx/text/tabstops.py +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/src/docx/types.py +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/src/python_docx_oss.egg-info/dependency_links.txt +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/src/python_docx_oss.egg-info/requires.txt +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/src/python_docx_oss.egg-info/top_level.txt +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/tests/__init__.py +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/tests/conftest.py +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/tests/dml/__init__.py +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/tests/dml/test_color.py +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/tests/image/__init__.py +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/tests/image/test_bmp.py +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/tests/image/test_gif.py +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/tests/image/test_helpers.py +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/tests/image/test_image.py +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/tests/image/test_jpeg.py +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/tests/image/test_png.py +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/tests/image/test_tiff.py +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/tests/opc/__init__.py +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/tests/opc/parts/__init__.py +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/tests/opc/parts/test_coreprops.py +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/tests/opc/test_coreprops.py +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/tests/opc/test_oxml.py +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/tests/opc/test_package.py +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/tests/opc/test_packuri.py +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/tests/opc/test_part.py +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/tests/opc/test_pkgreader.py +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/tests/opc/test_pkgwriter.py +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/tests/opc/unitdata/__init__.py +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/tests/opc/unitdata/rels.py +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/tests/opc/unitdata/types.py +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/tests/oxml/__init__.py +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/tests/oxml/parts/__init__.py +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/tests/oxml/parts/test_document.py +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/tests/oxml/parts/unitdata/__init__.py +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/tests/oxml/parts/unitdata/document.py +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/tests/oxml/test__init__.py +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/tests/oxml/test_comments.py +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/tests/oxml/test_document.py +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/tests/oxml/test_ns.py +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/tests/oxml/test_section.py +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/tests/oxml/test_styles.py +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/tests/oxml/test_table.py +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/tests/oxml/text/__init__.py +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/tests/oxml/text/test_hyperlink.py +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/tests/oxml/text/test_run.py +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/tests/oxml/unitdata/__init__.py +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/tests/oxml/unitdata/dml.py +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/tests/oxml/unitdata/numbering.py +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/tests/oxml/unitdata/section.py +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/tests/oxml/unitdata/shared.py +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/tests/oxml/unitdata/styles.py +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/tests/oxml/unitdata/table.py +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/tests/oxml/unitdata/text.py +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/tests/parts/__init__.py +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/tests/parts/test_comments.py +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/tests/parts/test_document.py +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/tests/parts/test_hdrftr.py +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/tests/parts/test_image.py +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/tests/parts/test_numbering.py +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/tests/parts/test_settings.py +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/tests/parts/test_story.py +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/tests/parts/test_styles.py +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/tests/styles/__init__.py +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/tests/styles/test_latent.py +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/tests/styles/test_style.py +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/tests/styles/test_styles.py +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/tests/test_api.py +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/tests/test_blkcntnr.py +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/tests/test_comments.py +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/tests/test_document.py +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/tests/test_drawing.py +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/tests/test_enum.py +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/tests/test_files/150-dpi.png +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/tests/test_files/300-dpi.TIF +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/tests/test_files/300-dpi.jpg +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/tests/test_files/300-dpi.png +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/tests/test_files/72-dpi.tiff +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/tests/test_files/CVS_LOGO.WMF +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/tests/test_files/blk-inner-content.docx +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/tests/test_files/exif-420-dpi.jpg +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/tests/test_files/expanded_docx/[Content_Types].xml +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/tests/test_files/expanded_docx/_rels/.rels +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/tests/test_files/expanded_docx/customXml/_rels/item1.xml.rels +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/tests/test_files/expanded_docx/customXml/item1.xml +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/tests/test_files/expanded_docx/customXml/itemProps1.xml +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/tests/test_files/expanded_docx/docProps/app.xml +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/tests/test_files/expanded_docx/docProps/core.xml +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/tests/test_files/expanded_docx/docProps/thumbnail.jpeg +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/tests/test_files/expanded_docx/word/_rels/document.xml.rels +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/tests/test_files/expanded_docx/word/document.xml +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/tests/test_files/expanded_docx/word/fontTable.xml +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/tests/test_files/expanded_docx/word/numbering.xml +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/tests/test_files/expanded_docx/word/settings.xml +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/tests/test_files/expanded_docx/word/styles.xml +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/tests/test_files/expanded_docx/word/stylesWithEffects.xml +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/tests/test_files/expanded_docx/word/theme/theme1.xml +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/tests/test_files/expanded_docx/word/webSettings.xml +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/tests/test_files/having-images.docx +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/tests/test_files/jfif-iguana.jpg +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/tests/test_files/jpeg_without_app0_and_app1.jpg +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/tests/test_files/little-endian.tif +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/tests/test_files/monty-truth.png +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/tests/test_files/python-icon.jpeg +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/tests/test_files/python-icon.png +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/tests/test_files/python-powered.png +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/tests/test_files/python.bmp +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/tests/test_files/sct-inner-content.docx +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/tests/test_files/snippets/add-row-col.txt +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/tests/test_files/snippets/inline.txt +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/tests/test_files/snippets/new-tbl.txt +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/tests/test_files/snippets/tbl-cells.txt +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/tests/test_files/sonic.emf +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/tests/test_files/sonic.gif +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/tests/test_files/test.docx +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/tests/test_package.py +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/tests/test_section.py +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/tests/test_settings.py +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/tests/test_shape.py +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/tests/test_shared.py +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/tests/test_table.py +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/tests/text/__init__.py +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/tests/text/test_hyperlink.py +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/tests/text/test_pagebreak.py +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/tests/text/test_paragraph.py +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/tests/text/test_parfmt.py +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/tests/text/test_run.py +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/tests/text/test_tabstops.py +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/tests/unitdata.py +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/tests/unitutil/__init__.py +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/tests/unitutil/file.py +0 -0
- {python_docx_oss-0.1.0rc1 → python_docx_oss-0.1.1}/tests/unitutil/mock.py +0 -0
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
## Release History
|
|
2
|
+
|
|
3
|
+
**0.1.1 (2026-08-21)**
|
|
4
|
+
|
|
5
|
+
- Added Python 3.14 support and CI coverage for Python 3.12 through 3.14.
|
|
6
|
+
- Added real Microsoft Word document round-trip coverage for floating pictures,
|
|
7
|
+
SVG images, East Asian fonts, and multiple Custom XML parts.
|
|
8
|
+
- Fixed automatic Custom XML part naming to select an available `itemN.xml`
|
|
9
|
+
name and reject explicit name collisions.
|
|
10
|
+
- Expanded the project overview, installation guide, in-memory document examples,
|
|
11
|
+
and Custom XML lifecycle documentation.
|
|
12
|
+
|
|
13
|
+
**0.1.0 (2026-02-02)**
|
|
14
|
+
|
|
15
|
+
- **UPSTREAM MERGE** with python-docx 1.2.0.
|
|
16
|
+
- Backward Compatibility: Fixed a regression where `Font.name` returned a dictionary. It now correctly returns a string (ASCII name) while supporting multi-script assignment via setter. Added `Font.eastAsia` and `Font.hAnsi` properties for fine-grained font control.
|
|
17
|
+
|
|
18
|
+
**0.0.12 (2025-12-03)**
|
|
19
|
+
|
|
20
|
+
- default dpi for jpeg #33
|
|
21
|
+
|
|
22
|
+
**0.0.11 (2025-11-17)**
|
|
23
|
+
|
|
24
|
+
- round-float viewbox and enhance svg unit parsing #31
|
|
25
|
+
|
|
26
|
+
**0.0.10 (2025-11-13)**
|
|
27
|
+
|
|
28
|
+
- Fix modern bool representations in .docx files. #29
|
|
29
|
+
- Fix \_dimensions_from_stream doesn't handle units properly from svg. #30
|
|
30
|
+
|
|
31
|
+
**0.0.9 (2024-11-26)**
|
|
32
|
+
|
|
33
|
+
- svg file support in add_picture. #27
|
|
34
|
+
- update docs.
|
|
35
|
+
|
|
36
|
+
**0.0.8 (2024-11-22)**
|
|
37
|
+
|
|
38
|
+
- EastAsia font support fixes. #25
|
|
39
|
+
- Update README.md. #26
|
|
40
|
+
|
|
41
|
+
**0.0.7 (2022-10-29)**
|
|
42
|
+
|
|
43
|
+
- add emf image file support. #24
|
|
44
|
+
|
|
45
|
+
**0.0.6 (2022-10-21)**
|
|
46
|
+
|
|
47
|
+
- change default custom xml file name to item1. #23
|
|
48
|
+
|
|
49
|
+
**0.0.5 (2022-8-08)**
|
|
50
|
+
|
|
51
|
+
- minor refactor custom-properties.
|
|
52
|
+
- add add_float_picture in Document. #21
|
|
53
|
+
|
|
54
|
+
**0.0.4 (2022-7-21)**
|
|
55
|
+
|
|
56
|
+
- public python-docx-oss docs @ readthedocs.
|
|
57
|
+
- add delete_item in CustomXmlPart. #17
|
|
58
|
+
|
|
59
|
+
**0.0.3 (2022-7-01)**
|
|
60
|
+
|
|
61
|
+
- Change method text to texts in CT_R. #14
|
|
62
|
+
- Add external target_ref setter. #15
|
|
63
|
+
- Blacken all Python files.
|
|
64
|
+
|
|
65
|
+
**0.0.2 (2022-06-24)**
|
|
66
|
+
|
|
67
|
+
- Add custom xml support. #10
|
|
68
|
+
- Add Part **eq**.
|
|
69
|
+
- Add Part element setter.
|
|
70
|
+
- Add Relationships parts_with_reltype.
|
|
71
|
+
|
|
72
|
+
**0.0.1 (2022-06-16)**
|
|
73
|
+
|
|
74
|
+
- Only support Python3.8, 3.9 and 3.10.
|
|
75
|
+
- Add custom properties support. #2
|
|
76
|
+
- Add drop_rels in Package. #5
|
|
77
|
+
- Add drop_rels in Part. #5
|
|
78
|
+
- Add default NumberingPart. #4
|
|
79
|
+
- Fix Python3.8+ **dict** TypeError. #6
|
|
80
|
+
- Add some typehint.
|
|
@@ -0,0 +1,215 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: python-docx-oss
|
|
3
|
+
Version: 0.1.1
|
|
4
|
+
Summary: Create, read, and update Microsoft Word .docx files.
|
|
5
|
+
Author: Ethan St Lee
|
|
6
|
+
License-Expression: MIT
|
|
7
|
+
Project-URL: Changelog, https://github.com/lsaint/python-docx-oss/blob/master/HISTORY.md
|
|
8
|
+
Project-URL: Documentation, https://python-docx-oss.readthedocs.io/en/latest/
|
|
9
|
+
Project-URL: Issues, https://github.com/lsaint/python-docx-oss/issues
|
|
10
|
+
Project-URL: Repository, https://github.com/lsaint/python-docx-oss
|
|
11
|
+
Keywords: docx,office,openxml,word
|
|
12
|
+
Classifier: Development Status :: 5 - Production/Stable
|
|
13
|
+
Classifier: Environment :: Console
|
|
14
|
+
Classifier: Intended Audience :: Developers
|
|
15
|
+
Classifier: Operating System :: OS Independent
|
|
16
|
+
Classifier: Programming Language :: Python
|
|
17
|
+
Classifier: Programming Language :: Python :: 3
|
|
18
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
19
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
20
|
+
Classifier: Programming Language :: Python :: 3.14
|
|
21
|
+
Classifier: Topic :: Office/Business :: Office Suites
|
|
22
|
+
Classifier: Topic :: Software Development :: Libraries
|
|
23
|
+
Requires-Python: >=3.12
|
|
24
|
+
Description-Content-Type: text/markdown
|
|
25
|
+
License-File: LICENSE
|
|
26
|
+
Requires-Dist: lxml>=3.1.0
|
|
27
|
+
Requires-Dist: typing_extensions>=4.9.0
|
|
28
|
+
Dynamic: license-file
|
|
29
|
+
|
|
30
|
+
<p align="center">
|
|
31
|
+
<img src="https://raw.githubusercontent.com/lsaint/python-docx-oss/master/docs/_static/img/oss.png" width="400" alt="python-docx-oss"/>
|
|
32
|
+
</p>
|
|
33
|
+
|
|
34
|
+
<p align="center">
|
|
35
|
+
<strong>A Python SDK for advanced creation and manipulation of Microsoft Word <code>.docx</code> files.</strong>
|
|
36
|
+
</p>
|
|
37
|
+
|
|
38
|
+
<p align="center">
|
|
39
|
+
<a href="https://pypi.org/project/python-docx-oss/"><img alt="PyPI" src="https://img.shields.io/pypi/v/python-docx-oss"></a>
|
|
40
|
+
<a href="https://pypi.org/project/python-docx-oss/"><img alt="Python versions" src="https://img.shields.io/pypi/pyversions/python-docx-oss.svg"></a>
|
|
41
|
+
<a href="https://github.com/astral-sh/ruff"><img alt="Code style: Ruff" src="https://img.shields.io/badge/code%20style-ruff-FF6B6B.svg?logo=ruff&logoColor=white"></a>
|
|
42
|
+
<a href="https://github.com/lsaint/python-docx-oss/blob/master/LICENSE"><img alt="License: MIT" src="https://img.shields.io/badge/License-MIT-yellow.svg"></a>
|
|
43
|
+
</p>
|
|
44
|
+
|
|
45
|
+
## Overview
|
|
46
|
+
|
|
47
|
+
`python-docx-oss` is an independently evolving DOCX SDK built on the proven API
|
|
48
|
+
foundation of [`python-docx`](https://github.com/python-openxml/python-docx). It keeps
|
|
49
|
+
the familiar `docx` programming model while extending it for advanced OOXML and Open
|
|
50
|
+
Packaging Convention (OPC) workflows.
|
|
51
|
+
|
|
52
|
+
Use it when an application needs more than basic paragraphs and tables: custom document
|
|
53
|
+
metadata, application-owned XML, vector images, floating pictures, East Asian fonts,
|
|
54
|
+
or low-level package and relationship access.
|
|
55
|
+
|
|
56
|
+
## Features
|
|
57
|
+
|
|
58
|
+
| Capability | Support |
|
|
59
|
+
| --- | --- |
|
|
60
|
+
| Documents, paragraphs, runs, tables, styles, sections, headers, and footers | ✓ |
|
|
61
|
+
| Custom document properties | ✓ |
|
|
62
|
+
| Custom XML parts | ✓ |
|
|
63
|
+
| SVG and EMF images | ✓ |
|
|
64
|
+
| Inline and floating pictures | ✓ |
|
|
65
|
+
| Independent ASCII, High ANSI, and East Asian font controls | ✓ |
|
|
66
|
+
| Low-level OPC parts and relationships | ✓ |
|
|
67
|
+
| File-path and in-memory stream processing | ✓ |
|
|
68
|
+
|
|
69
|
+
## Installation
|
|
70
|
+
|
|
71
|
+
```bash
|
|
72
|
+
python -m pip install python-docx-oss
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
The distribution name is `python-docx-oss`, but the Python import namespace remains
|
|
76
|
+
`docx`:
|
|
77
|
+
|
|
78
|
+
```python
|
|
79
|
+
from docx import Document
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
> [!WARNING]
|
|
83
|
+
> `python-docx` and `python-docx-oss` provide the same `docx` import namespace. Do not
|
|
84
|
+
> install both distributions in the same Python environment.
|
|
85
|
+
|
|
86
|
+
`python-docx-oss` currently supports Python 3.12, 3.13, and 3.14.
|
|
87
|
+
|
|
88
|
+
## Quick Start
|
|
89
|
+
|
|
90
|
+
Create a document entirely in memory:
|
|
91
|
+
|
|
92
|
+
```python
|
|
93
|
+
from io import BytesIO
|
|
94
|
+
|
|
95
|
+
from docx import Document
|
|
96
|
+
|
|
97
|
+
document = Document()
|
|
98
|
+
document.add_heading("Quarterly Report", level=1)
|
|
99
|
+
document.add_paragraph("Generated entirely in memory.")
|
|
100
|
+
|
|
101
|
+
output = BytesIO()
|
|
102
|
+
document.save(output)
|
|
103
|
+
|
|
104
|
+
docx_bytes = output.getvalue()
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
The same APIs also accept filesystem paths:
|
|
108
|
+
|
|
109
|
+
```python
|
|
110
|
+
document = Document("input.docx")
|
|
111
|
+
document.add_paragraph("Appended by python-docx-oss.")
|
|
112
|
+
document.save("output.docx")
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
## Advanced Capabilities
|
|
116
|
+
|
|
117
|
+
### Custom properties
|
|
118
|
+
|
|
119
|
+
```python
|
|
120
|
+
document = Document()
|
|
121
|
+
document.custom_properties["workflow_status"] = "approved"
|
|
122
|
+
document.custom_properties["revision"] = 3
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
Custom properties are visible in Microsoft Word and stored in
|
|
126
|
+
`/docProps/custom.xml`. See [Working with custom
|
|
127
|
+
properties](docs/user/custom-properties.rst).
|
|
128
|
+
|
|
129
|
+
### Custom XML
|
|
130
|
+
|
|
131
|
+
```python
|
|
132
|
+
custom_xml = document.part.add_custom_xml_part(
|
|
133
|
+
'<order xmlns="urn:example:orders" id="A-001"/>',
|
|
134
|
+
)
|
|
135
|
+
custom_xml.add_item("status", "ready")
|
|
136
|
+
```
|
|
137
|
+
|
|
138
|
+
See [Working with Custom XML](docs/user/custom-xml.rst) for lifecycle and compatibility
|
|
139
|
+
considerations.
|
|
140
|
+
|
|
141
|
+
### East Asian fonts
|
|
142
|
+
|
|
143
|
+
```python
|
|
144
|
+
run = document.add_paragraph().add_run("English 与中文")
|
|
145
|
+
run.font.name = "Open Sans"
|
|
146
|
+
run.font.eastAsia = "Microsoft YaHei"
|
|
147
|
+
```
|
|
148
|
+
|
|
149
|
+
SVG and EMF streams can be passed to the standard picture APIs. Floating pictures are
|
|
150
|
+
available through `Document.add_float_picture()` and `Run.add_float_picture()`.
|
|
151
|
+
|
|
152
|
+
## Compatibility and Scope
|
|
153
|
+
|
|
154
|
+
- The project maintains broad compatibility with the public `python-docx` API while
|
|
155
|
+
following its own versioning and product roadmap.
|
|
156
|
+
- Compatibility does not extend to every private or internal `python-docx` API. Test
|
|
157
|
+
those integrations before migrating production systems.
|
|
158
|
+
- The SDK focuses exclusively on DOCX. It is not a general XLSX/PPTX Office suite.
|
|
159
|
+
- It edits document structure but does not implement Word's page-layout rendering
|
|
160
|
+
engine.
|
|
161
|
+
- CLI, MCP, web, desktop, and Agent runtimes belong in separate packages that consume
|
|
162
|
+
this SDK.
|
|
163
|
+
|
|
164
|
+
## Documentation
|
|
165
|
+
|
|
166
|
+
- [Documentation site](https://python-docx-oss.readthedocs.io/en/latest/)
|
|
167
|
+
- [Installation guide](docs/user/install.rst)
|
|
168
|
+
- [Quickstart](docs/user/quickstart.rst)
|
|
169
|
+
- [User guide](docs/index.rst)
|
|
170
|
+
- [API reference](docs/index.rst#api-documentation)
|
|
171
|
+
- [Custom properties](docs/user/custom-properties.rst)
|
|
172
|
+
- [Custom XML](docs/user/custom-xml.rst)
|
|
173
|
+
- [Release history](HISTORY.md)
|
|
174
|
+
|
|
175
|
+
## Quality and Testing
|
|
176
|
+
|
|
177
|
+
The test suite combines unit and acceptance coverage with in-memory round-trip tests
|
|
178
|
+
using documents created by Microsoft Word. The integration fixtures cover floating
|
|
179
|
+
pictures, SVG fallback relationships, East Asian fonts, Custom XML parts, and core OPC
|
|
180
|
+
package preservation.
|
|
181
|
+
|
|
182
|
+
For local development:
|
|
183
|
+
|
|
184
|
+
```bash
|
|
185
|
+
uv sync
|
|
186
|
+
uv run pytest
|
|
187
|
+
uv run ruff check .
|
|
188
|
+
uv run pyright
|
|
189
|
+
```
|
|
190
|
+
|
|
191
|
+
## Project Status
|
|
192
|
+
|
|
193
|
+
The current focus is stabilizing the independent SDK baseline, its in-memory workflows,
|
|
194
|
+
and its advanced OOXML capabilities before expanding document inspection, comparison,
|
|
195
|
+
sanitization, composition, and validation APIs.
|
|
196
|
+
|
|
197
|
+
## Credits
|
|
198
|
+
|
|
199
|
+
This project builds on the original work of
|
|
200
|
+
[`python-docx`](https://github.com/python-openxml/python-docx) creator Steve Canny and
|
|
201
|
+
its contributors. `python-docx-oss` is maintained by Ethan St Lee and its contributors.
|
|
202
|
+
|
|
203
|
+
## Why “OSS”?
|
|
204
|
+
|
|
205
|
+
In Brazilian jiu-jitsu, “oss” is a greeting and an expression of respect. It reflects
|
|
206
|
+
the same spirit of discipline and collaboration behind this project.
|
|
207
|
+
|
|
208
|
+
## License
|
|
209
|
+
|
|
210
|
+
`python-docx-oss` is released under the [MIT License](LICENSE).
|
|
211
|
+
|
|
212
|
+
## Support
|
|
213
|
+
|
|
214
|
+
If this project is useful to you, you can support its continued development through
|
|
215
|
+
the [donation page](https://lsaint.github.io/donation/?utm_source=github&utm_medium=readme&utm_campaign=python-docx-oss).
|
|
@@ -0,0 +1,186 @@
|
|
|
1
|
+
<p align="center">
|
|
2
|
+
<img src="https://raw.githubusercontent.com/lsaint/python-docx-oss/master/docs/_static/img/oss.png" width="400" alt="python-docx-oss"/>
|
|
3
|
+
</p>
|
|
4
|
+
|
|
5
|
+
<p align="center">
|
|
6
|
+
<strong>A Python SDK for advanced creation and manipulation of Microsoft Word <code>.docx</code> files.</strong>
|
|
7
|
+
</p>
|
|
8
|
+
|
|
9
|
+
<p align="center">
|
|
10
|
+
<a href="https://pypi.org/project/python-docx-oss/"><img alt="PyPI" src="https://img.shields.io/pypi/v/python-docx-oss"></a>
|
|
11
|
+
<a href="https://pypi.org/project/python-docx-oss/"><img alt="Python versions" src="https://img.shields.io/pypi/pyversions/python-docx-oss.svg"></a>
|
|
12
|
+
<a href="https://github.com/astral-sh/ruff"><img alt="Code style: Ruff" src="https://img.shields.io/badge/code%20style-ruff-FF6B6B.svg?logo=ruff&logoColor=white"></a>
|
|
13
|
+
<a href="https://github.com/lsaint/python-docx-oss/blob/master/LICENSE"><img alt="License: MIT" src="https://img.shields.io/badge/License-MIT-yellow.svg"></a>
|
|
14
|
+
</p>
|
|
15
|
+
|
|
16
|
+
## Overview
|
|
17
|
+
|
|
18
|
+
`python-docx-oss` is an independently evolving DOCX SDK built on the proven API
|
|
19
|
+
foundation of [`python-docx`](https://github.com/python-openxml/python-docx). It keeps
|
|
20
|
+
the familiar `docx` programming model while extending it for advanced OOXML and Open
|
|
21
|
+
Packaging Convention (OPC) workflows.
|
|
22
|
+
|
|
23
|
+
Use it when an application needs more than basic paragraphs and tables: custom document
|
|
24
|
+
metadata, application-owned XML, vector images, floating pictures, East Asian fonts,
|
|
25
|
+
or low-level package and relationship access.
|
|
26
|
+
|
|
27
|
+
## Features
|
|
28
|
+
|
|
29
|
+
| Capability | Support |
|
|
30
|
+
| --- | --- |
|
|
31
|
+
| Documents, paragraphs, runs, tables, styles, sections, headers, and footers | ✓ |
|
|
32
|
+
| Custom document properties | ✓ |
|
|
33
|
+
| Custom XML parts | ✓ |
|
|
34
|
+
| SVG and EMF images | ✓ |
|
|
35
|
+
| Inline and floating pictures | ✓ |
|
|
36
|
+
| Independent ASCII, High ANSI, and East Asian font controls | ✓ |
|
|
37
|
+
| Low-level OPC parts and relationships | ✓ |
|
|
38
|
+
| File-path and in-memory stream processing | ✓ |
|
|
39
|
+
|
|
40
|
+
## Installation
|
|
41
|
+
|
|
42
|
+
```bash
|
|
43
|
+
python -m pip install python-docx-oss
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
The distribution name is `python-docx-oss`, but the Python import namespace remains
|
|
47
|
+
`docx`:
|
|
48
|
+
|
|
49
|
+
```python
|
|
50
|
+
from docx import Document
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
> [!WARNING]
|
|
54
|
+
> `python-docx` and `python-docx-oss` provide the same `docx` import namespace. Do not
|
|
55
|
+
> install both distributions in the same Python environment.
|
|
56
|
+
|
|
57
|
+
`python-docx-oss` currently supports Python 3.12, 3.13, and 3.14.
|
|
58
|
+
|
|
59
|
+
## Quick Start
|
|
60
|
+
|
|
61
|
+
Create a document entirely in memory:
|
|
62
|
+
|
|
63
|
+
```python
|
|
64
|
+
from io import BytesIO
|
|
65
|
+
|
|
66
|
+
from docx import Document
|
|
67
|
+
|
|
68
|
+
document = Document()
|
|
69
|
+
document.add_heading("Quarterly Report", level=1)
|
|
70
|
+
document.add_paragraph("Generated entirely in memory.")
|
|
71
|
+
|
|
72
|
+
output = BytesIO()
|
|
73
|
+
document.save(output)
|
|
74
|
+
|
|
75
|
+
docx_bytes = output.getvalue()
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
The same APIs also accept filesystem paths:
|
|
79
|
+
|
|
80
|
+
```python
|
|
81
|
+
document = Document("input.docx")
|
|
82
|
+
document.add_paragraph("Appended by python-docx-oss.")
|
|
83
|
+
document.save("output.docx")
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
## Advanced Capabilities
|
|
87
|
+
|
|
88
|
+
### Custom properties
|
|
89
|
+
|
|
90
|
+
```python
|
|
91
|
+
document = Document()
|
|
92
|
+
document.custom_properties["workflow_status"] = "approved"
|
|
93
|
+
document.custom_properties["revision"] = 3
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
Custom properties are visible in Microsoft Word and stored in
|
|
97
|
+
`/docProps/custom.xml`. See [Working with custom
|
|
98
|
+
properties](docs/user/custom-properties.rst).
|
|
99
|
+
|
|
100
|
+
### Custom XML
|
|
101
|
+
|
|
102
|
+
```python
|
|
103
|
+
custom_xml = document.part.add_custom_xml_part(
|
|
104
|
+
'<order xmlns="urn:example:orders" id="A-001"/>',
|
|
105
|
+
)
|
|
106
|
+
custom_xml.add_item("status", "ready")
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
See [Working with Custom XML](docs/user/custom-xml.rst) for lifecycle and compatibility
|
|
110
|
+
considerations.
|
|
111
|
+
|
|
112
|
+
### East Asian fonts
|
|
113
|
+
|
|
114
|
+
```python
|
|
115
|
+
run = document.add_paragraph().add_run("English 与中文")
|
|
116
|
+
run.font.name = "Open Sans"
|
|
117
|
+
run.font.eastAsia = "Microsoft YaHei"
|
|
118
|
+
```
|
|
119
|
+
|
|
120
|
+
SVG and EMF streams can be passed to the standard picture APIs. Floating pictures are
|
|
121
|
+
available through `Document.add_float_picture()` and `Run.add_float_picture()`.
|
|
122
|
+
|
|
123
|
+
## Compatibility and Scope
|
|
124
|
+
|
|
125
|
+
- The project maintains broad compatibility with the public `python-docx` API while
|
|
126
|
+
following its own versioning and product roadmap.
|
|
127
|
+
- Compatibility does not extend to every private or internal `python-docx` API. Test
|
|
128
|
+
those integrations before migrating production systems.
|
|
129
|
+
- The SDK focuses exclusively on DOCX. It is not a general XLSX/PPTX Office suite.
|
|
130
|
+
- It edits document structure but does not implement Word's page-layout rendering
|
|
131
|
+
engine.
|
|
132
|
+
- CLI, MCP, web, desktop, and Agent runtimes belong in separate packages that consume
|
|
133
|
+
this SDK.
|
|
134
|
+
|
|
135
|
+
## Documentation
|
|
136
|
+
|
|
137
|
+
- [Documentation site](https://python-docx-oss.readthedocs.io/en/latest/)
|
|
138
|
+
- [Installation guide](docs/user/install.rst)
|
|
139
|
+
- [Quickstart](docs/user/quickstart.rst)
|
|
140
|
+
- [User guide](docs/index.rst)
|
|
141
|
+
- [API reference](docs/index.rst#api-documentation)
|
|
142
|
+
- [Custom properties](docs/user/custom-properties.rst)
|
|
143
|
+
- [Custom XML](docs/user/custom-xml.rst)
|
|
144
|
+
- [Release history](HISTORY.md)
|
|
145
|
+
|
|
146
|
+
## Quality and Testing
|
|
147
|
+
|
|
148
|
+
The test suite combines unit and acceptance coverage with in-memory round-trip tests
|
|
149
|
+
using documents created by Microsoft Word. The integration fixtures cover floating
|
|
150
|
+
pictures, SVG fallback relationships, East Asian fonts, Custom XML parts, and core OPC
|
|
151
|
+
package preservation.
|
|
152
|
+
|
|
153
|
+
For local development:
|
|
154
|
+
|
|
155
|
+
```bash
|
|
156
|
+
uv sync
|
|
157
|
+
uv run pytest
|
|
158
|
+
uv run ruff check .
|
|
159
|
+
uv run pyright
|
|
160
|
+
```
|
|
161
|
+
|
|
162
|
+
## Project Status
|
|
163
|
+
|
|
164
|
+
The current focus is stabilizing the independent SDK baseline, its in-memory workflows,
|
|
165
|
+
and its advanced OOXML capabilities before expanding document inspection, comparison,
|
|
166
|
+
sanitization, composition, and validation APIs.
|
|
167
|
+
|
|
168
|
+
## Credits
|
|
169
|
+
|
|
170
|
+
This project builds on the original work of
|
|
171
|
+
[`python-docx`](https://github.com/python-openxml/python-docx) creator Steve Canny and
|
|
172
|
+
its contributors. `python-docx-oss` is maintained by Ethan St Lee and its contributors.
|
|
173
|
+
|
|
174
|
+
## Why “OSS”?
|
|
175
|
+
|
|
176
|
+
In Brazilian jiu-jitsu, “oss” is a greeting and an expression of respect. It reflects
|
|
177
|
+
the same spirit of discipline and collaboration behind this project.
|
|
178
|
+
|
|
179
|
+
## License
|
|
180
|
+
|
|
181
|
+
`python-docx-oss` is released under the [MIT License](LICENSE).
|
|
182
|
+
|
|
183
|
+
## Support
|
|
184
|
+
|
|
185
|
+
If this project is useful to you, you can support its continued development through
|
|
186
|
+
the [donation page](https://lsaint.github.io/donation/?utm_source=github&utm_medium=readme&utm_campaign=python-docx-oss).
|
|
@@ -20,8 +20,8 @@ from docx import __version__ # noqa
|
|
|
20
20
|
# -- Project information -----------------------------------------------------
|
|
21
21
|
|
|
22
22
|
project = "python-docx-oss"
|
|
23
|
-
copyright = "2022, Ethan St
|
|
24
|
-
author = "Ethan St
|
|
23
|
+
copyright = "2022-2026, Ethan St Lee"
|
|
24
|
+
author = "Ethan St Lee"
|
|
25
25
|
|
|
26
26
|
# The full version, including alpha/beta/rc tags
|
|
27
27
|
release = __version__
|
|
@@ -1,14 +1,12 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
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
|
-
===========================================
|
|
1
|
+
python-docx-oss documentation
|
|
2
|
+
=============================
|
|
8
3
|
|
|
9
4
|
Release v\ |release| (:ref:`Installation <install>`)
|
|
10
5
|
|
|
11
|
-
*python-docx-oss* is
|
|
6
|
+
*python-docx-oss* is an independently developed Python SDK for creating,
|
|
7
|
+
reading, and updating Microsoft Word (``.docx``) files. It combines familiar
|
|
8
|
+
document APIs with advanced WordprocessingML capabilities such as floating and
|
|
9
|
+
vector images, East Asian font control, custom properties, and Custom XML.
|
|
12
10
|
|
|
13
11
|
|
|
14
12
|
What it can do
|
|
@@ -16,7 +14,17 @@ What it can do
|
|
|
16
14
|
|
|
17
15
|
.. |img| image:: /_static/img/example-docx-01.png
|
|
18
16
|
|
|
19
|
-
|
|
17
|
+
The library supports common document operations, including paragraphs, text
|
|
18
|
+
formatting, tables, sections, headers, footers, comments, and images. It also
|
|
19
|
+
supports capabilities needed by more demanding document workflows:
|
|
20
|
+
|
|
21
|
+
* floating images with position and text wrapping;
|
|
22
|
+
* SVG and EMF vector images;
|
|
23
|
+
* separate Latin and East Asian font settings;
|
|
24
|
+
* document custom properties; and
|
|
25
|
+
* multiple Custom XML parts that survive a load/save round trip.
|
|
26
|
+
|
|
27
|
+
Here is a small example:
|
|
20
28
|
|
|
21
29
|
::
|
|
22
30
|
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
.. _custom_xml:
|
|
2
|
+
|
|
3
|
+
Working with Custom XML
|
|
4
|
+
=======================
|
|
5
|
+
|
|
6
|
+
A ``.docx`` file is an Open Packaging Conventions package. Custom XML parts
|
|
7
|
+
store application-specific XML inside its ``customXml`` directory without
|
|
8
|
+
placing that data in the visible document body.
|
|
9
|
+
|
|
10
|
+
.. warning::
|
|
11
|
+
|
|
12
|
+
Some applications that edit ``.docx`` files may remove Custom XML parts.
|
|
13
|
+
Test the complete editing workflow used by your application. For simple
|
|
14
|
+
scalar metadata, :ref:`Custom Properties <custom_properties>` may be a more
|
|
15
|
+
interoperable choice.
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
Creating a part
|
|
19
|
+
---------------
|
|
20
|
+
|
|
21
|
+
Create a Custom XML part from a well-formed XML string::
|
|
22
|
+
|
|
23
|
+
from docx import Document
|
|
24
|
+
|
|
25
|
+
document = Document()
|
|
26
|
+
customers = document.part.add_custom_xml_part(
|
|
27
|
+
'<customers xmlns="urn:example:customers"><customer id="1">Ada</customer></customers>'
|
|
28
|
+
)
|
|
29
|
+
document.save("customers.docx")
|
|
30
|
+
|
|
31
|
+
When no ``file_name`` is supplied, |docx| selects the next available package
|
|
32
|
+
name matching ``/customXml/itemN.xml``. For example, if ``item1.xml`` and
|
|
33
|
+
``item3.xml`` already exist, the new part is named ``item2.xml``.
|
|
34
|
+
|
|
35
|
+
An explicit name can be supplied without the ``.xml`` suffix::
|
|
36
|
+
|
|
37
|
+
audit = document.part.add_custom_xml_part(
|
|
38
|
+
"<audit><event>created</event></audit>",
|
|
39
|
+
file_name="audit",
|
|
40
|
+
)
|
|
41
|
+
|
|
42
|
+
The resulting part name is ``/customXml/audit.xml``. A ``ValueError`` is raised
|
|
43
|
+
if that part name already exists.
|
|
44
|
+
|
|
45
|
+
|
|
46
|
+
Finding parts
|
|
47
|
+
-------------
|
|
48
|
+
|
|
49
|
+
``document.part.custom_xml_parts`` returns all Custom XML parts related to the
|
|
50
|
+
main document. Select a part by its package name or root element rather than by
|
|
51
|
+
list position::
|
|
52
|
+
|
|
53
|
+
parts_by_name = {
|
|
54
|
+
str(part.partname): part
|
|
55
|
+
for part in document.part.custom_xml_parts
|
|
56
|
+
}
|
|
57
|
+
customers = parts_by_name["/customXml/item1.xml"]
|
|
58
|
+
|
|
59
|
+
print(customers.tag)
|
|
60
|
+
print(customers.attrib)
|
|
61
|
+
print(customers.items)
|
|
62
|
+
|
|
63
|
+
|
|
64
|
+
Updating child elements
|
|
65
|
+
-----------------------
|
|
66
|
+
|
|
67
|
+
``items`` contains the child elements of the part's root element. These are
|
|
68
|
+
``lxml`` elements, so their text and attributes can be updated directly::
|
|
69
|
+
|
|
70
|
+
customer = customers.items[0]
|
|
71
|
+
customer.text = "Grace"
|
|
72
|
+
customer.attrib["status"] = "active"
|
|
73
|
+
|
|
74
|
+
Use Clark notation when adding an element in a namespace::
|
|
75
|
+
|
|
76
|
+
customers.add_item(
|
|
77
|
+
"{urn:example:customers}customer",
|
|
78
|
+
"Linus",
|
|
79
|
+
id="2",
|
|
80
|
+
)
|
|
81
|
+
|
|
82
|
+
|
|
83
|
+
Deleting child elements
|
|
84
|
+
-----------------------
|
|
85
|
+
|
|
86
|
+
Delete a child by passing the element itself::
|
|
87
|
+
|
|
88
|
+
customer = customers.items[0]
|
|
89
|
+
customers.delete_item(customer)
|
|
90
|
+
|
|
91
|
+
The indexes in ``items`` can change after deletion. Removing an entire Custom
|
|
92
|
+
XML part is not currently provided by this API.
|
|
93
|
+
|
|
94
|
+
Existing relationships to Custom XML property parts, such as
|
|
95
|
+
``itemPropsN.xml``, are preserved during load/save round trips.
|
|
@@ -61,34 +61,36 @@ Things to note:
|
|
|
61
61
|
what you intend.
|
|
62
62
|
|
|
63
63
|
|
|
64
|
-
Opening a
|
|
65
|
-
|
|
64
|
+
Opening a file-like document
|
|
65
|
+
----------------------------
|
|
66
66
|
|
|
67
67
|
|docx| can open a document from a so-called *file-like* object. It can also
|
|
68
68
|
save to a file-like object. This can be handy when you want to get the source
|
|
69
69
|
or target document over a network connection or from a database and don't want
|
|
70
|
-
to (or aren't allowed to) interact with the file system.
|
|
71
|
-
|
|
72
|
-
a document like so::
|
|
70
|
+
to (or aren't allowed to) interact with the file system. A ``.docx`` package is
|
|
71
|
+
binary, so an in-memory stream must be an :class:`io.BytesIO` object::
|
|
73
72
|
|
|
74
|
-
|
|
75
|
-
document = Document(f)
|
|
76
|
-
f.close()
|
|
73
|
+
from io import BytesIO
|
|
77
74
|
|
|
78
|
-
|
|
75
|
+
from docx import Document
|
|
79
76
|
|
|
80
|
-
with open(
|
|
81
|
-
source_stream =
|
|
77
|
+
with open("foobar.docx", "rb") as file:
|
|
78
|
+
source_stream = BytesIO(file.read())
|
|
82
79
|
document = Document(source_stream)
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
80
|
+
|
|
81
|
+
document.add_paragraph("Added in memory")
|
|
82
|
+
|
|
83
|
+
target_stream = BytesIO()
|
|
86
84
|
document.save(target_stream)
|
|
87
85
|
|
|
88
|
-
The
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
86
|
+
The caller owns streams passed to |docx| and is responsible for closing them.
|
|
87
|
+
After saving, rewind the output stream before reading it or opening it again::
|
|
88
|
+
|
|
89
|
+
target_stream.seek(0)
|
|
90
|
+
reopened = Document(target_stream)
|
|
91
|
+
|
|
92
|
+
Always open ``.docx`` files in binary mode (``"rb"`` for reading and ``"wb"``
|
|
93
|
+
for writing).
|
|
92
94
|
|
|
93
95
|
Okay, so you've got a document open and are pretty sure you can save it
|
|
94
96
|
somewhere later. Next step is to get some content in there ...
|