docx4j 0.1.0__py3-none-any.whl
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.
- docx4j-0.1.0.dist-info/METADATA +246 -0
- docx4j-0.1.0.dist-info/RECORD +256 -0
- docx4j-0.1.0.dist-info/WHEEL +4 -0
- docx4j-0.1.0.dist-info/licenses/LICENSE +202 -0
- docx4j-0.1.0.dist-info/licenses/NOTICE +41 -0
- docx4j_py/__init__.py +3007 -0
- docx4j_py/child.py +894 -0
- docx4j_py/customxml/__init__.py +95 -0
- docx4j_py/customxml/el.py +63 -0
- docx4j_py/dml/__init__.py +2146 -0
- docx4j_py/dml/chart/__init__.py +6138 -0
- docx4j_py/dml/chart/el.py +1875 -0
- docx4j_py/dml/chart_drawing/__init__.py +602 -0
- docx4j_py/dml/chart_drawing/el.py +287 -0
- docx4j_py/dml/compatibility/__init__.py +63 -0
- docx4j_py/dml/compatibility/el.py +54 -0
- docx4j_py/dml/diagram/__init__.py +3420 -0
- docx4j_py/dml/diagram/el.py +704 -0
- docx4j_py/dml/locked_canvas/__init__.py +50 -0
- docx4j_py/dml/locked_canvas/el.py +54 -0
- docx4j_py/dml/main/__init__.py +11378 -0
- docx4j_py/dml/main/el.py +2864 -0
- docx4j_py/dml/picture/__init__.py +115 -0
- docx4j_py/dml/picture/el.py +101 -0
- docx4j_py/dml/spreadsheet_drawing/__init__.py +820 -0
- docx4j_py/dml/spreadsheet_drawing/el.py +337 -0
- docx4j_py/dml/wordprocessing_drawing/__init__.py +717 -0
- docx4j_py/dml/wordprocessing_drawing/el.py +195 -0
- docx4j_py/docprops/__init__.py +414 -0
- docx4j_py/docprops/core/__init__.py +221 -0
- docx4j_py/docprops/core/el.py +54 -0
- docx4j_py/docprops/custom/__init__.py +345 -0
- docx4j_py/docprops/custom/el.py +63 -0
- docx4j_py/docprops/dc/__init__.py +642 -0
- docx4j_py/docprops/dc/el.py +189 -0
- docx4j_py/docprops/dcmitype/__init__.py +54 -0
- docx4j_py/docprops/dcmitype/el.py +47 -0
- docx4j_py/docprops/dcterms/__init__.py +1195 -0
- docx4j_py/docprops/dcterms/el.py +342 -0
- docx4j_py/docprops/extended/__init__.py +304 -0
- docx4j_py/docprops/extended/el.py +90 -0
- docx4j_py/docprops/variant_types/__init__.py +1011 -0
- docx4j_py/docprops/variant_types/el.py +360 -0
- docx4j_py/docx/__init__.py +178 -0
- docx4j_py/docx/_base.py +193 -0
- docx4j_py/docx/comments.py +246 -0
- docx4j_py/docx/coreprops.py +344 -0
- docx4j_py/docx/document.py +264 -0
- docx4j_py/docx/enums.py +420 -0
- docx4j_py/docx/section.py +605 -0
- docx4j_py/docx/settings.py +77 -0
- docx4j_py/docx/shape.py +235 -0
- docx4j_py/docx/shared.py +192 -0
- docx4j_py/docx/styles.py +565 -0
- docx4j_py/docx/table.py +853 -0
- docx4j_py/docx/text.py +1839 -0
- docx4j_py/el_index.py +147 -0
- docx4j_py/fragments.py +263 -0
- docx4j_py/inkml/__init__.py +1428 -0
- docx4j_py/inkml/el.py +273 -0
- docx4j_py/math/__init__.py +2875 -0
- docx4j_py/math/el.py +1055 -0
- docx4j_py/mathml/__init__.py +868 -0
- docx4j_py/mathml/el.py +450 -0
- docx4j_py/mce/__init__.py +171 -0
- docx4j_py/mce/el.py +72 -0
- docx4j_py/model/__init__.py +16 -0
- docx4j_py/model/content/__init__.py +553 -0
- docx4j_py/model/content/addresses.py +610 -0
- docx4j_py/model/content/api_script.py +1275 -0
- docx4j_py/model/content/body.py +1295 -0
- docx4j_py/model/content/comments.py +1266 -0
- docx4j_py/model/content/compatibility.py +270 -0
- docx4j_py/model/content/controls.py +1094 -0
- docx4j_py/model/content/describe.py +466 -0
- docx4j_py/model/content/enums.py +215 -0
- docx4j_py/model/content/errors.py +160 -0
- docx4j_py/model/content/font.py +307 -0
- docx4j_py/model/content/lists.py +1186 -0
- docx4j_py/model/content/ooxml.py +469 -0
- docx4j_py/model/content/paragraph.py +1661 -0
- docx4j_py/model/content/picture.py +619 -0
- docx4j_py/model/content/range.py +491 -0
- docx4j_py/model/content/reports.py +1130 -0
- docx4j_py/model/content/styles.py +692 -0
- docx4j_py/model/content/table.py +1035 -0
- docx4j_py/model/content/text_model.py +722 -0
- docx4j_py/model/content/tracked_change.py +850 -0
- docx4j_py/model/content/tracking.py +1149 -0
- docx4j_py/model/content/trial.py +579 -0
- docx4j_py/model/customxml/__init__.py +144 -0
- docx4j_py/model/customxml/bindings.py +497 -0
- docx4j_py/model/customxml/insert.py +216 -0
- docx4j_py/model/customxml/kinds.py +682 -0
- docx4j_py/model/customxml/mapping.py +249 -0
- docx4j_py/model/customxml/nodes.py +720 -0
- docx4j_py/model/customxml/parts.py +735 -0
- docx4j_py/model/customxml/template.py +898 -0
- docx4j_py/model/customxml/xpath.py +184 -0
- docx4j_py/model/fonts/__init__.py +162 -0
- docx4j_py/model/fonts/data.py +216 -0
- docx4j_py/model/fonts/default_theme.py +95 -0
- docx4j_py/model/fonts/fallback.py +328 -0
- docx4j_py/model/fonts/fonts_in_use.py +238 -0
- docx4j_py/model/fonts/language_tags.py +100 -0
- docx4j_py/model/fonts/mapper.py +769 -0
- docx4j_py/model/fonts/physical_font.py +83 -0
- docx4j_py/model/fonts/registry.py +140 -0
- docx4j_py/model/fonts/run_font_selector.py +661 -0
- docx4j_py/model/fonts/scripts.py +167 -0
- docx4j_py/model/fonts/theme_fonts.py +125 -0
- docx4j_py/model/listnumbering/__init__.py +79 -0
- docx4j_py/model/listnumbering/definitions.py +862 -0
- docx4j_py/model/listnumbering/emulator.py +1049 -0
- docx4j_py/model/listnumbering/formats.py +438 -0
- docx4j_py/model/markdown/__init__.py +111 -0
- docx4j_py/model/markdown/export.py +1071 -0
- docx4j_py/model/markdown/importer.py +774 -0
- docx4j_py/model/property_catalogue.py +1126 -0
- docx4j_py/model/property_resolver.py +731 -0
- docx4j_py/model/sessions.py +362 -0
- docx4j_py/model/style_util.py +561 -0
- docx4j_py/namespaces.py +384 -0
- docx4j_py/oart/__init__.py +1358 -0
- docx4j_py/oart/animation_2018/__init__.py +116 -0
- docx4j_py/oart/animation_2018/el.py +54 -0
- docx4j_py/oart/animation_model3d_2018/__init__.py +117 -0
- docx4j_py/oart/animation_model3d_2018/el.py +85 -0
- docx4j_py/oart/chart_2007/__init__.py +175 -0
- docx4j_py/oart/chart_2007/el.py +119 -0
- docx4j_py/oart/chart_2012/__init__.py +589 -0
- docx4j_py/oart/chart_2012/el.py +436 -0
- docx4j_py/oart/chart_2014/__init__.py +342 -0
- docx4j_py/oart/chart_2014/el.py +197 -0
- docx4j_py/oart/chart_2017_03/__init__.py +79 -0
- docx4j_py/oart/chart_2017_03/el.py +63 -0
- docx4j_py/oart/chart_ac_2014/__init__.py +50 -0
- docx4j_py/oart/chart_ac_2014/el.py +54 -0
- docx4j_py/oart/chart_drawing_2010/__init__.py +159 -0
- docx4j_py/oart/chart_drawing_2010/el.py +112 -0
- docx4j_py/oart/chart_style_2012/__init__.py +1105 -0
- docx4j_py/oart/chart_style_2012/el.py +370 -0
- docx4j_py/oart/chartex_2014/__init__.py +3077 -0
- docx4j_py/oart/chartex_2014/el.py +954 -0
- docx4j_py/oart/command_2013/__init__.py +683 -0
- docx4j_py/oart/command_2013/el.py +163 -0
- docx4j_py/oart/decorative_2017/__init__.py +63 -0
- docx4j_py/oart/decorative_2017/el.py +54 -0
- docx4j_py/oart/diagram_2008/__init__.py +267 -0
- docx4j_py/oart/diagram_2008/el.py +188 -0
- docx4j_py/oart/diagram_2010/__init__.py +72 -0
- docx4j_py/oart/diagram_2010/el.py +63 -0
- docx4j_py/oart/diagram_2016_11/__init__.py +161 -0
- docx4j_py/oart/diagram_2016_11/el.py +72 -0
- docx4j_py/oart/diagram_2016_12/__init__.py +60 -0
- docx4j_py/oart/diagram_2016_12/el.py +63 -0
- docx4j_py/oart/hyperlink_color_2018/__init__.py +69 -0
- docx4j_py/oart/hyperlink_color_2018/el.py +54 -0
- docx4j_py/oart/ink_action_2014/__init__.py +335 -0
- docx4j_py/oart/ink_action_2014/el.py +110 -0
- docx4j_py/oart/main_2010/__init__.py +1422 -0
- docx4j_py/oart/main_2010/el.py +497 -0
- docx4j_py/oart/main_2012/__init__.py +261 -0
- docx4j_py/oart/main_2012/el.py +81 -0
- docx4j_py/oart/main_2014/__init__.py +140 -0
- docx4j_py/oart/main_2014/el.py +90 -0
- docx4j_py/oart/main_2016_11/__init__.py +64 -0
- docx4j_py/oart/main_2016_11/el.py +54 -0
- docx4j_py/oart/model3d_2017/__init__.py +702 -0
- docx4j_py/oart/model3d_2017/el.py +315 -0
- docx4j_py/oart/picture_2010/__init__.py +60 -0
- docx4j_py/oart/picture_2010/el.py +63 -0
- docx4j_py/oart/spreadsheet_drawing_2010/__init__.py +159 -0
- docx4j_py/oart/spreadsheet_drawing_2010/el.py +112 -0
- docx4j_py/oart/svg_2016/__init__.py +71 -0
- docx4j_py/oart/svg_2016/el.py +54 -0
- docx4j_py/oart/theme_2012/__init__.py +91 -0
- docx4j_py/oart/theme_2012/el.py +65 -0
- docx4j_py/openpackaging/__init__.py +222 -0
- docx4j_py/openpackaging/api.py +59 -0
- docx4j_py/openpackaging/content_types.py +508 -0
- docx4j_py/openpackaging/exceptions.py +47 -0
- docx4j_py/openpackaging/load.py +256 -0
- docx4j_py/openpackaging/mce.py +165 -0
- docx4j_py/openpackaging/packages/__init__.py +28 -0
- docx4j_py/openpackaging/packages/opc_package.py +465 -0
- docx4j_py/openpackaging/packages/wordprocessingml_package.py +459 -0
- docx4j_py/openpackaging/part_name.py +263 -0
- docx4j_py/openpackaging/parts/__init__.py +54 -0
- docx4j_py/openpackaging/parts/binary_part.py +189 -0
- docx4j_py/openpackaging/parts/default_xml_part.py +171 -0
- docx4j_py/openpackaging/parts/dml.py +244 -0
- docx4j_py/openpackaging/parts/docprops.py +127 -0
- docx4j_py/openpackaging/parts/namespaces.py +153 -0
- docx4j_py/openpackaging/parts/part.py +194 -0
- docx4j_py/openpackaging/parts/parts_map.py +75 -0
- docx4j_py/openpackaging/parts/registry.py +311 -0
- docx4j_py/openpackaging/parts/relationships_part.py +438 -0
- docx4j_py/openpackaging/parts/wml/__init__.py +621 -0
- docx4j_py/openpackaging/parts/wml/comments.py +353 -0
- docx4j_py/openpackaging/parts/xml_part.py +397 -0
- docx4j_py/openpackaging/resources.py +35 -0
- docx4j_py/openpackaging/save.py +100 -0
- docx4j_py/openpackaging/stores.py +602 -0
- docx4j_py/py.typed +0 -0
- docx4j_py/relationships/__init__.py +98 -0
- docx4j_py/relationships/el.py +63 -0
- docx4j_py/resources/KnownStyles.xml +2225 -0
- docx4j_py/resources/__init__.py +10 -0
- docx4j_py/resources/fonts/__init__.py +9 -0
- docx4j_py/resources/fonts/families.json +754 -0
- docx4j_py/resources/fonts/registry.json +183 -0
- docx4j_py/resources/fonts/substitutions.json +2649 -0
- docx4j_py/resources/fonts/theme-2007.xml +2 -0
- docx4j_py/resources/fonts/theme-2013.xml +2 -0
- docx4j_py/resources/fonts/theme-2023.xml +2 -0
- docx4j_py/resources/openpackaging/__init__.py +6 -0
- docx4j_py/resources/openpackaging/fontTable.xml +2 -0
- docx4j_py/resources/openpackaging/numbering.xml +208 -0
- docx4j_py/resources/openpackaging/styles.xml +497 -0
- docx4j_py/resources/warmup_document.xml +168 -0
- docx4j_py/resources/warmup_styles.xml +48 -0
- docx4j_py/runtime.py +235 -0
- docx4j_py/shared_types/__init__.py +67 -0
- docx4j_py/shared_types/el.py +47 -0
- docx4j_py/traversal.py +537 -0
- docx4j_py/w14/__init__.py +1714 -0
- docx4j_py/w14/el.py +604 -0
- docx4j_py/w15/__init__.py +358 -0
- docx4j_py/w15/el.py +207 -0
- docx4j_py/w15symex/__init__.py +71 -0
- docx4j_py/w15symex/el.py +54 -0
- docx4j_py/w16cid/__init__.py +96 -0
- docx4j_py/w16cid/el.py +63 -0
- docx4j_py/wml/__init__.py +23326 -0
- docx4j_py/wml/builders.py +730 -0
- docx4j_py/wml/el.py +5880 -0
- docx4j_py/wml/pictures.py +371 -0
- docx4j_py/wml/sdt.py +465 -0
- docx4j_py/wne/__init__.py +614 -0
- docx4j_py/wne/el.py +208 -0
- docx4j_py/word/__init__.py +114 -0
- docx4j_py/word/msink/__init__.py +345 -0
- docx4j_py/word/msink/el.py +78 -0
- docx4j_py/word/wp14/__init__.py +140 -0
- docx4j_py/word/wp14/el.py +81 -0
- docx4j_py/word/wp15/__init__.py +79 -0
- docx4j_py/word/wp15/el.py +54 -0
- docx4j_py/word/wpc/__init__.py +130 -0
- docx4j_py/word/wpc/el.py +94 -0
- docx4j_py/word/wpg/__init__.py +179 -0
- docx4j_py/word/wpg/el.py +128 -0
- docx4j_py/word/wps/__init__.py +215 -0
- docx4j_py/word/wps/el.py +137 -0
- docx4j_py/xml_ns/__init__.py +50 -0
- docx4j_py/xml_ns/el.py +47 -0
|
@@ -0,0 +1,246 @@
|
|
|
1
|
+
Metadata-Version: 2.5
|
|
2
|
+
Name: docx4j
|
|
3
|
+
Version: 0.1.0
|
|
4
|
+
Summary: docx4j for Python: ECMA-376 WordprocessingML as typed objects, the Open Packaging engine, and a content API in Office JS's vocabulary with a python-docx facade
|
|
5
|
+
Project-URL: Homepage, https://github.com/plutext/docx4j-python
|
|
6
|
+
Project-URL: Source, https://github.com/plutext/docx4j-python
|
|
7
|
+
Project-URL: Changelog, https://github.com/plutext/docx4j-python/blob/main/CHANGELOG.md
|
|
8
|
+
Project-URL: Issues, https://github.com/plutext/docx4j-python/issues
|
|
9
|
+
Project-URL: docx4j, https://www.docx4java.org
|
|
10
|
+
Author-email: Plutext Pty Ltd <jharrop@plutext.com>
|
|
11
|
+
License-Expression: Apache-2.0
|
|
12
|
+
License-File: LICENSE
|
|
13
|
+
License-File: NOTICE
|
|
14
|
+
Keywords: agents,docx,docx4j,mcp,office-open-xml,ooxml,python-docx,wordprocessingml
|
|
15
|
+
Classifier: Development Status :: 3 - Alpha
|
|
16
|
+
Classifier: Intended Audience :: Developers
|
|
17
|
+
Classifier: Operating System :: OS Independent
|
|
18
|
+
Classifier: Programming Language :: Python :: 3
|
|
19
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
20
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
21
|
+
Classifier: Programming Language :: Python :: 3.14
|
|
22
|
+
Classifier: Topic :: Office/Business :: Office Suites
|
|
23
|
+
Classifier: Topic :: Text Processing :: Markup :: XML
|
|
24
|
+
Classifier: Typing :: Typed
|
|
25
|
+
Requires-Python: >=3.12
|
|
26
|
+
Requires-Dist: docx4j-xsdata[lxml]<26.3,>=26.2.1
|
|
27
|
+
Requires-Dist: markdown-it-py>=3.0
|
|
28
|
+
Provides-Extra: baseline
|
|
29
|
+
Requires-Dist: xsdata[cli,lxml]==26.2; extra == 'baseline'
|
|
30
|
+
Provides-Extra: dev
|
|
31
|
+
Requires-Dist: docx4j-xsdata[cli,lxml]<26.3,>=26.2.1; extra == 'dev'
|
|
32
|
+
Requires-Dist: pytest; extra == 'dev'
|
|
33
|
+
Provides-Extra: parity
|
|
34
|
+
Requires-Dist: python-docx==1.2.0; extra == 'parity'
|
|
35
|
+
Description-Content-Type: text/markdown
|
|
36
|
+
|
|
37
|
+
# docx4j for Python
|
|
38
|
+
|
|
39
|
+
[docx4j](https://www.docx4java.org) for Python: the whole of ECMA-376 WordprocessingML as typed
|
|
40
|
+
objects, generated from docx4j's own schema tree; docx4j's Open Packaging engine written by hand
|
|
41
|
+
over them (`.docx` in, typed parts and relationships, `.docx` out, every part you did not touch
|
|
42
|
+
written back byte for byte); a content API in the vocabulary of Office JS's `Word.Body`,
|
|
43
|
+
`Paragraph`, `Range`, `Table`, comments, tracked changes and lists, built for agents; and a
|
|
44
|
+
python-docx facade so code already written runs. The classes carry docx4j's names (`P`, `R`,
|
|
45
|
+
`PPr`, `Tbl`, `Document`, `Styles`), so fifteen years of docx4j documentation and examples read
|
|
46
|
+
across; the design is the same as [docx4j-core-ts](https://github.com/plutext/docx4j-core-ts).
|
|
47
|
+
|
|
48
|
+
```
|
|
49
|
+
pip install docx4j
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
The distribution is `docx4j`; the import name is `docx4j_py`, as `python-docx` imports as
|
|
53
|
+
`docx`. Python 3.12 or later.
|
|
54
|
+
|
|
55
|
+
## Open, edit, save
|
|
56
|
+
|
|
57
|
+
```python
|
|
58
|
+
from docx4j_py import load
|
|
59
|
+
|
|
60
|
+
pkg = load("in.docx") # a WordprocessingMLPackage
|
|
61
|
+
body = pkg.body # Word.Body over word/document.xml
|
|
62
|
+
|
|
63
|
+
print(body.text) # a paragraph per line
|
|
64
|
+
for paragraph in body.paragraphs: # tables and content controls descended into
|
|
65
|
+
print(paragraph.style, paragraph.text)
|
|
66
|
+
|
|
67
|
+
title = body.insert_paragraph("Report", location="Start", style="Heading 1")
|
|
68
|
+
title.alignment = "Centered"
|
|
69
|
+
hit = body.search("quick brown fox")[0] # matches span runs freely
|
|
70
|
+
hit.font.italic = True # the runs are split at the boundaries
|
|
71
|
+
hit.insert_text("slow red fox") # Replace is a Range's default location
|
|
72
|
+
body.paragraphs[-1].insert_paragraph("The end.") # After is a Paragraph's
|
|
73
|
+
|
|
74
|
+
pkg.save("out.docx") # only the parts you touched are re-marshalled
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
A part that is never touched is written back byte for byte; reading a part's `contents` --- which
|
|
78
|
+
`pkg.body` does for `word/document.xml` --- marks it for re-marshalling, and a re-marshalled part
|
|
79
|
+
is canonically identical to its source. Nothing is dropped silently: what lenient parsing could
|
|
80
|
+
not place is reported per part (`part.skipped`), and `LoadOptions(strict=True)` raises instead.
|
|
81
|
+
|
|
82
|
+
From nothing:
|
|
83
|
+
|
|
84
|
+
```python
|
|
85
|
+
from docx4j_py import create_package
|
|
86
|
+
|
|
87
|
+
pkg = create_package() # docx4j's createPackage: A4, one section, the default styles
|
|
88
|
+
body = pkg.body
|
|
89
|
+
body.insert_paragraph("Created by docx4j", style="Heading 1")
|
|
90
|
+
paragraph = body.insert_paragraph("One paragraph, three runs")
|
|
91
|
+
paragraph.search("three runs")[0].font.italic = True
|
|
92
|
+
table = body.insert_table(3, 2, values=[["Name", "Value"], ["a", "1"]], style="TableGrid")
|
|
93
|
+
table.header_row_count = 1
|
|
94
|
+
table.add_rows(1, values=[["b", "2"]])
|
|
95
|
+
pkg.save("hello.docx")
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
## For agents
|
|
99
|
+
|
|
100
|
+
An agent cannot hold a Python object across tool calls, and a 200-page document does not fit in
|
|
101
|
+
its context window. So the API gives it **addresses** --- strings that survive an edit --- and
|
|
102
|
+
**budgets** on everything it reads. Four calls are the loop: read the outline, find the text,
|
|
103
|
+
edit by address, check the report.
|
|
104
|
+
|
|
105
|
+
```python
|
|
106
|
+
from docx4j_py import load
|
|
107
|
+
|
|
108
|
+
pkg = load("in.docx")
|
|
109
|
+
|
|
110
|
+
outline = pkg.outline() # small, structured, enough to choose an address from
|
|
111
|
+
outline.to_markdown() # the cheapest thing to show a model
|
|
112
|
+
outline.to_json() # under 64 KB for a 200-page document
|
|
113
|
+
|
|
114
|
+
hits = pkg.find("quick brown fox") # matches with their addresses and 40 characters either side
|
|
115
|
+
hits[0].address, hits[0].snippet # ('w14:5A2B1C3D', '… over the quick brown fox, which …')
|
|
116
|
+
|
|
117
|
+
paragraph = pkg.paragraph_at(hits[0].address) # 'w14:5A2B1C3D', 'body/3', or contains='Chapter 1'
|
|
118
|
+
paragraph.insert_paragraph("Added by an agent.", location="After")
|
|
119
|
+
|
|
120
|
+
pkg.last_change.to_json() # what that call did, for the tool result
|
|
121
|
+
pkg.save("out.docx")
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
`w14:5A2B1C3D` is the `w14:paraId` Word writes and survives every edit; `body/3` is the ordinal.
|
|
125
|
+
Every mutating call records a `ChangeReport`; `pkg.dry_run()` applies calls to a copy and throws
|
|
126
|
+
it away; `describe()` reads what the document offers (its styles, page, parts, authors) without
|
|
127
|
+
unmarshalling anything; every error carries a `code` and a `hint` naming what to do instead.
|
|
128
|
+
|
|
129
|
+
An agent should leave the trail Word already has: tracked changes for what it did, and a comment
|
|
130
|
+
for why, where the human who opens the document will see them.
|
|
131
|
+
|
|
132
|
+
```python
|
|
133
|
+
from docx4j_py import load
|
|
134
|
+
from docx4j_py.model.content import Author
|
|
135
|
+
|
|
136
|
+
pkg = load("in.docx")
|
|
137
|
+
pkg.author = Author("Claude", initials="C", email="claude@example.com")
|
|
138
|
+
pkg.change_tracking_mode = "TrackAll" # every edit from here is a revision
|
|
139
|
+
|
|
140
|
+
count = pkg.body.replace_text("document", "report") # a w:del and a w:ins per hit
|
|
141
|
+
pkg.find("report")[0].range(pkg.body).insert_comment(
|
|
142
|
+
"Changed 'document' to 'report': the brief asks for a report."
|
|
143
|
+
)
|
|
144
|
+
[c.to_dict() for c in pkg.get_tracked_changes()] # for the tool result
|
|
145
|
+
pkg.body.to_markdown(view="markup") # {--deleted--}{++inserted++}{>>a comment<<}
|
|
146
|
+
pkg.save("out.docx")
|
|
147
|
+
```
|
|
148
|
+
|
|
149
|
+
Markdown goes both ways: `pkg.to_markdown(addresses=True)` puts each block's address in an HTML
|
|
150
|
+
comment before it, and `body.insert_markdown(text)` writes CommonMark plus GFM tables through the
|
|
151
|
+
document's own styles, creating the numbering part when there is none.
|
|
152
|
+
|
|
153
|
+
## python-docx code runs
|
|
154
|
+
|
|
155
|
+
`docx4j_py.docx` is a structural subset of python-docx's public API --- python-docx's names and
|
|
156
|
+
semantics, this engine underneath. Its promise is a committed member list derived from
|
|
157
|
+
python-docx 1.2.0: 305 of 312 members, the rest refused with a reason each. python-docx is not a
|
|
158
|
+
dependency.
|
|
159
|
+
|
|
160
|
+
```python
|
|
161
|
+
from docx4j_py.docx import Document, Pt
|
|
162
|
+
|
|
163
|
+
doc = Document("in.docx") # or Document() for a new one
|
|
164
|
+
doc.add_heading("Report", level=1) # a built-in style it lacks is defined
|
|
165
|
+
p = doc.add_paragraph("Plain, ")
|
|
166
|
+
p.add_run("bold").bold = True
|
|
167
|
+
p.runs[1].font.size = Pt(14)
|
|
168
|
+
doc.add_table(rows=2, cols=2, style="Table Grid").cell(0, 0).text = "a"
|
|
169
|
+
for paragraph in doc.paragraphs:
|
|
170
|
+
print(paragraph.style.name, paragraph.text)
|
|
171
|
+
|
|
172
|
+
print(doc.package.last_change.to_dict()) # what python-docx does not have: a ChangeReport,
|
|
173
|
+
doc.save("out.docx") # parts untouched byte for byte, the typed tree
|
|
174
|
+
```
|
|
175
|
+
|
|
176
|
+
## The object model and the engine
|
|
177
|
+
|
|
178
|
+
Every element has a constructor in its namespace's `el` module, with `p`, `r`, `t` and `tbl` as
|
|
179
|
+
sugar; `wml(...)` parses a fragment with docx4j's prefixes declared; `to_xml` is the inverse.
|
|
180
|
+
The tree stays reachable from every view (`paragraph.element` is the typed `P`).
|
|
181
|
+
|
|
182
|
+
```python
|
|
183
|
+
from docx4j_py.wml import el, p, r, to_xml, wml
|
|
184
|
+
|
|
185
|
+
para = p("Hello ", r("World", bold=True), style="Heading1")
|
|
186
|
+
same = wml('<w:p><w:pPr><w:pStyle w:val="Heading1"/></w:pPr><w:r><w:t>Hello</w:t></w:r></w:p>')
|
|
187
|
+
print(to_xml(el.p(content=[el.r(content=[el.t("Hello World")])]), pretty=True))
|
|
188
|
+
```
|
|
189
|
+
|
|
190
|
+
Under `docx4j_py.openpackaging`: `OpcPackage`, `WordprocessingMLPackage`, `PartName`,
|
|
191
|
+
`ContentTypeManager`, `RelationshipsPart`, the typed WordprocessingML parts, `PartStore` and
|
|
192
|
+
`PartSink` (zip, directory, memory, flat OPC); `docx4j_py.model` has docx4j's `PropertyResolver`,
|
|
193
|
+
`StyleUtil`, numbering emulator and font selection, with zero differences on docx4j's 45 parity
|
|
194
|
+
goldens.
|
|
195
|
+
|
|
196
|
+
```python
|
|
197
|
+
from docx4j_py import load
|
|
198
|
+
from docx4j_py.openpackaging import LoadOptions, MemoryPartSink
|
|
199
|
+
from docx4j_py.wml import warm_up
|
|
200
|
+
|
|
201
|
+
warm_up() # a server does this once, before the first request
|
|
202
|
+
with load("in.docx", options=LoadOptions(strict=True)) as pkg:
|
|
203
|
+
settings = pkg.get_part("/word/settings.xml").contents # typed, lazily, on first access
|
|
204
|
+
pkg.save_to(MemoryPartSink())
|
|
205
|
+
```
|
|
206
|
+
|
|
207
|
+
## What is and is not in 0.1
|
|
208
|
+
|
|
209
|
+
**WordprocessingML only.** `.pptx` and `.xlsx` load and save through the generic OPC path (every
|
|
210
|
+
part byte for byte), but nothing in them is typed: PresentationML and SpreadsheetML are
|
|
211
|
+
[CR-001 Phase D](https://github.com/plutext/docx4j-python/blob/main/docs/change-requests/CR-001-object-model.md)
|
|
212
|
+
(the object model) and
|
|
213
|
+
[CR-002 Phase C](https://github.com/plutext/docx4j-python/blob/main/docs/change-requests/CR-002-engine.md)
|
|
214
|
+
(the engine), and their content APIs are CR-004 and CR-005. Everything is synchronous.
|
|
215
|
+
|
|
216
|
+
**The wheel is large for pure Python** --- about 1 MB compressed, 238 modules, 6 MB installed
|
|
217
|
+
--- because it is the whole of WordprocessingML and what it embeds (DrawingML, OMML, VML, the
|
|
218
|
+
`w14` to `w16` extensions) as typed classes, 148,000 lines of generated code. Importing
|
|
219
|
+
`docx4j_py` imports all of it, about 0.6 s once per process; a long-running process is the
|
|
220
|
+
intended host.
|
|
221
|
+
|
|
222
|
+
What `0.x` promises, surface by surface:
|
|
223
|
+
|
|
224
|
+
| Surface | Stability in `0.x` |
|
|
225
|
+
|---|---|
|
|
226
|
+
| `docx4j_py.load`, `create_package`, `WordprocessingMLPackage`, the parts, `PartStore` / `PartSink` | Stable: docx4j's names and behaviour; departures are recorded in CR-002 section 12.3 |
|
|
227
|
+
| The content API (`Body`, `Paragraph`, `Range`, `Table`, ..., the agent surface, markdown) | Stable in shape: Office JS's vocabulary is borrowed, not invented; a member may be added in a minor, none renamed |
|
|
228
|
+
| `docx4j_py.docx`, the python-docx facade | Stable: its promise is the committed member list, 305 of 312 |
|
|
229
|
+
| The generated model (`docx4j_py.wml` and the rest, `el`) | Regenerates with the schema; class and field names are docx4j's and do not move, but a schema refresh adds fields and classes in a minor |
|
|
230
|
+
| `docx4j_py.model` (resolver, `StyleUtil`, fonts, numbering) | Stable: docx4j's, zero differences on the goldens |
|
|
231
|
+
|
|
232
|
+
## Links
|
|
233
|
+
|
|
234
|
+
- Repository: <https://github.com/plutext/docx4j-python> --- the full README, with the whole
|
|
235
|
+
content API, the audit trail, lists, custom XML templates and `to_api_script` shown
|
|
236
|
+
- The design, as change requests: [CR-001](https://github.com/plutext/docx4j-python/blob/main/docs/change-requests/CR-001-object-model.md)
|
|
237
|
+
the object model, [CR-002](https://github.com/plutext/docx4j-python/blob/main/docs/change-requests/CR-002-engine.md)
|
|
238
|
+
the engine, [CR-003](https://github.com/plutext/docx4j-python/blob/main/docs/change-requests/CR-003-content-api.md)
|
|
239
|
+
the content API
|
|
240
|
+
- [docx4j](https://www.docx4java.org), the Java original, and
|
|
241
|
+
[docx4j-core-ts](https://github.com/plutext/docx4j-core-ts), the TypeScript engine of the same design
|
|
242
|
+
- [Changelog](https://github.com/plutext/docx4j-python/blob/main/CHANGELOG.md)
|
|
243
|
+
|
|
244
|
+
Apache-2.0, as docx4j is; the generated model imports
|
|
245
|
+
[docx4j-xsdata](https://pypi.org/project/docx4j-xsdata/), a fork of xsdata (MIT). Every fence
|
|
246
|
+
above is executed by the test suite (`tests/test_readme.py`).
|
|
@@ -0,0 +1,256 @@
|
|
|
1
|
+
docx4j_py/__init__.py,sha256=dvUVcJSiSKA1-t7vnhyv6Foo0iTWaJWcIAC934npuYU,100205
|
|
2
|
+
docx4j_py/child.py,sha256=2mnyvFhs5bF34qdQmVy5gEq0mNG6apfZVrIawJdYq6o,33570
|
|
3
|
+
docx4j_py/el_index.py,sha256=UEIy2rg384SPagtxU5QgszaII751PD0CpO76CS5jq80,11215
|
|
4
|
+
docx4j_py/fragments.py,sha256=HA_9MGgMptC5IzCNNNGdrq2QTK0n_X76SmHkf-OtteU,10497
|
|
5
|
+
docx4j_py/namespaces.py,sha256=eRXJwYHiB6Fut_35JKio3kbVb4Kiq88648_oRb_244I,18650
|
|
6
|
+
docx4j_py/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
7
|
+
docx4j_py/runtime.py,sha256=Aq7Z0g2POuzyhVIvYbnRY-novKKH4xg6rzGxrb3pPeA,8959
|
|
8
|
+
docx4j_py/traversal.py,sha256=HB98QTHNq1yRTr7I-Dxy9TYe6At1x1i8lJOL--YEC7E,20572
|
|
9
|
+
docx4j_py/customxml/__init__.py,sha256=vcaURnXA9RZ7IlMqj7tcFInYIm6A8JfnsOYdX7Z7Fxo,2961
|
|
10
|
+
docx4j_py/customxml/el.py,sha256=bBk9ftGHerfWypitvcumh1uwI-E9z_TCf6SNvFjORw8,2379
|
|
11
|
+
docx4j_py/dml/__init__.py,sha256=fpH_feuPYf68-OkQ_5LpfZxQr-E_XbBP1a2xrzvmKSQ,79274
|
|
12
|
+
docx4j_py/dml/chart/__init__.py,sha256=_VDGSOu9crqXbCuuJl68N7kpCmrtGyaamyjDB4zgqeM,171184
|
|
13
|
+
docx4j_py/dml/chart/el.py,sha256=Y99FozJAf1vLF9BbQJRengNv3ojb8tlovhb_7JS3QT4,89479
|
|
14
|
+
docx4j_py/dml/chart_drawing/__init__.py,sha256=erx0ZWEKBIylw5cXslHrUUp8cv9NJQqSVo12j3SuMmE,18471
|
|
15
|
+
docx4j_py/dml/chart_drawing/el.py,sha256=WxuMaeYyNWwT4OWdyYZYL2EQhMyPBH6jhXDxj6Sy8Qs,14882
|
|
16
|
+
docx4j_py/dml/compatibility/__init__.py,sha256=-QUlhrvhtY6LqLi3eDgvbIOIyVWCf5X-TCmMBFB-N1k,2000
|
|
17
|
+
docx4j_py/dml/compatibility/el.py,sha256=Lri3nQ1PN3Q1Wk_kTsIdLWV3RVNfyQWsqljaW02QNmI,1956
|
|
18
|
+
docx4j_py/dml/diagram/__init__.py,sha256=25dL86DQmywv_Ux8CHSKnYJWOXk2YO1Nl2wnz_BSYBA,89305
|
|
19
|
+
docx4j_py/dml/diagram/el.py,sha256=3iu9MVBIoSPNXHrwrMOdQB6qOa8btAyjKy62qi7vizw,34640
|
|
20
|
+
docx4j_py/dml/locked_canvas/__init__.py,sha256=bj6Axw3UUbvScmvQBxwD0eAoBII8Udjw-eHKGCJ3Ozo,1784
|
|
21
|
+
docx4j_py/dml/locked_canvas/el.py,sha256=kMBcWOtyeRBMh1F_npRjPVoVtohmOpY7spoQcuUTSXg,1937
|
|
22
|
+
docx4j_py/dml/main/__init__.py,sha256=EnUOFZzixWjPhd3h8FCUzqpSl2feIQm_JvuWU6kqz_0,332338
|
|
23
|
+
docx4j_py/dml/main/el.py,sha256=MShFlKnlwFTFGAzCH94RTcr0SshlBf6-3Fl4EYUyftg,144230
|
|
24
|
+
docx4j_py/dml/picture/__init__.py,sha256=Rm85YovH1tP1UcBMRGNE1Fj96X_6TbxIy6xa86B5snI,3578
|
|
25
|
+
docx4j_py/dml/picture/el.py,sha256=AaYSJThKfhKgZ9rCPHU3RCski0DHaqali5rAIOKeJic,4309
|
|
26
|
+
docx4j_py/dml/spreadsheet_drawing/__init__.py,sha256=PSWsEkDvrSuumiuepdmmngSVF_8y0BdI1pMwmTO01vk,25550
|
|
27
|
+
docx4j_py/dml/spreadsheet_drawing/el.py,sha256=L7VkBvA14mA8_NeN6vywTo1Q4fVZWYHZq409MXUGngo,18339
|
|
28
|
+
docx4j_py/dml/wordprocessing_drawing/__init__.py,sha256=TawPMA4YVAnXBkeTl8Xcd0oMM8QYcV9eK3j-NRdtlls,19768
|
|
29
|
+
docx4j_py/dml/wordprocessing_drawing/el.py,sha256=ymJIjgkwGlT3CA0fuO82Ip3ipi-jbIUAGeuy90kY9TE,9830
|
|
30
|
+
docx4j_py/docprops/__init__.py,sha256=u2QxsbvjNBKc86A4tP00ObCCPLF6eFZgOr9c60F3Bpc,13117
|
|
31
|
+
docx4j_py/docprops/core/__init__.py,sha256=2fsBUH-tCSaFX3LMVyxy6iavI6JC-npDYd9Xk3Vmf1g,6407
|
|
32
|
+
docx4j_py/docprops/core/el.py,sha256=zn6euJyvlKKVoSWcoC3D3f0fCDRz0ceztLqmgxQkC8U,1999
|
|
33
|
+
docx4j_py/docprops/custom/__init__.py,sha256=eDB8LG7jokt_XWlqJR2nkrebz15Jnhf4SXfV1AApuJA,11702
|
|
34
|
+
docx4j_py/docprops/custom/el.py,sha256=cDCh8Uvp4u7_8yh0bR8UOr5GUGnikASMDl4ScPtc_1Q,2513
|
|
35
|
+
docx4j_py/docprops/dc/__init__.py,sha256=1Jj4bBbHGLfREEOIQ7kP1LEzbgkp_h6xj6wCFlRtqj4,18566
|
|
36
|
+
docx4j_py/docprops/dc/el.py,sha256=n5chD-8gkGFfMTVWlcBHbNwPGUZK2asJVtisUZ6NuCo,6782
|
|
37
|
+
docx4j_py/docprops/dcmitype/__init__.py,sha256=EH7Orcm7LcHDwi5SMukawDhRYkR2ccAPq55TNTWwFz8,1777
|
|
38
|
+
docx4j_py/docprops/dcmitype/el.py,sha256=otWFDoxF7D_kW11-x1piHMyNtZmPAiSHnmVGupJsu6I,1326
|
|
39
|
+
docx4j_py/docprops/dcterms/__init__.py,sha256=pIXxbal3d8aePE_bgAtZCJ7UuqEntO2Y2LjuW3cCmfc,29856
|
|
40
|
+
docx4j_py/docprops/dcterms/el.py,sha256=chS0Wz6ys1biJmVH7N_Yr6mTKrM8xsebxQO9qkV5o3U,13199
|
|
41
|
+
docx4j_py/docprops/extended/__init__.py,sha256=k1QY1kmUpKc755-U78NAD4RAl7UNeJyJJ0yik779TBk,7744
|
|
42
|
+
docx4j_py/docprops/extended/el.py,sha256=1m7miygIXG1onNeuEvr3TN6tWHEZ3bCcIijDlacU1HI,4242
|
|
43
|
+
docx4j_py/docprops/variant_types/__init__.py,sha256=hLGncmjIPi_RomkUJ0LmWZbMZHdW1ZfCl56HkPs84wA,31292
|
|
44
|
+
docx4j_py/docprops/variant_types/el.py,sha256=9LyzLvuUQZGcPVj2tzYImOWk7cQ69aB1MKPrllBKF3o,18069
|
|
45
|
+
docx4j_py/docx/__init__.py,sha256=sNpa6PVc3a7Cm2FXkRgQQ_aWUj25rWd-_yAdsqfuSTM,4927
|
|
46
|
+
docx4j_py/docx/_base.py,sha256=llwhFGl5XGOYfRSeeHZ_qI1MrzwWTbphMNS37ZB4jas,7631
|
|
47
|
+
docx4j_py/docx/comments.py,sha256=YMcmH7pUSVBgYea3GbBgAMMVR9hKdtKSEZpqzdxS6dw,9034
|
|
48
|
+
docx4j_py/docx/coreprops.py,sha256=yaB3IVc2FIankxYOuNtJWSYi2NzmvEpDpvEKFodotdk,11330
|
|
49
|
+
docx4j_py/docx/document.py,sha256=_npaM4t0ZUplGsKMQqM60G1917hqOXh9nE--xopR9Pk,10491
|
|
50
|
+
docx4j_py/docx/enums.py,sha256=osCuA_y0D0lUKEo4gAmb2DbTdinkzSgzYd0vo_UPnzo,14621
|
|
51
|
+
docx4j_py/docx/section.py,sha256=mtz2i1A5QLgNvv7j2afrvI7BjyG4hNcrvPJPkX1qq_k,22247
|
|
52
|
+
docx4j_py/docx/settings.py,sha256=jTTIdgKjy8S4gunvOCym-1rDsh3AxKZo4iq-G8AcMMM,2739
|
|
53
|
+
docx4j_py/docx/shape.py,sha256=yfUsNLNgycbp1uOJNGFbSey60FP7p3e34RF4sAvvPaw,8374
|
|
54
|
+
docx4j_py/docx/shared.py,sha256=NhW7Ov4IEqiqLoLoBiaCHPpGnnm1ww_jRQIuPCBa65U,6133
|
|
55
|
+
docx4j_py/docx/styles.py,sha256=q0qYtxFEA7IacqE8qOG2MzDWm3upRZ80U0-9MTkAoT0,20755
|
|
56
|
+
docx4j_py/docx/table.py,sha256=mCZuekHFzoFhyo94C4CozcU6mxHT-KcOZHv2KsfkxVQ,30725
|
|
57
|
+
docx4j_py/docx/text.py,sha256=MNArWSsQ64I4CiPtcTbSwdVcdpb2KVNx6MTo5wqlooA,65309
|
|
58
|
+
docx4j_py/inkml/__init__.py,sha256=uyfKN_X03fHb6iqYc2x2K5ilhMVgeO3xYA5fBIylX_U,35152
|
|
59
|
+
docx4j_py/inkml/el.py,sha256=M-XV9txIyB5oD0BR5FQkS9SUUGxerYEs3xDprQhCVEg,11634
|
|
60
|
+
docx4j_py/math/__init__.py,sha256=qmp37hynt_GulvPxPC0rqh_xYZupsB-NN1Fi9BIzPJw,87494
|
|
61
|
+
docx4j_py/math/el.py,sha256=SgaMaxQStpXcazIakFWp7gLltepBwybGoMxY_YhkUmE,46228
|
|
62
|
+
docx4j_py/mathml/__init__.py,sha256=8Inxi0yPGNAxdPrQl1HKBA6BYyYjIJJvgJqVLEwj_PU,24633
|
|
63
|
+
docx4j_py/mathml/el.py,sha256=ur5WZleZ9s4HY494Lge7Cm0c2xmCcgSwBhzMgcWtJpw,14880
|
|
64
|
+
docx4j_py/mce/__init__.py,sha256=z7e6xrTiAiq7m2jPQUhSCVGttzomcQVawabW3a1-1nY,5120
|
|
65
|
+
docx4j_py/mce/el.py,sha256=U3k0KvnlC6kFJQ8YL7fWEzSatkOXC7niUqcLc_eiySY,2995
|
|
66
|
+
docx4j_py/model/__init__.py,sha256=AyavQbREkkEty6ZjoEr2kPSr8g3P0B0zgexrTGgIgZw,729
|
|
67
|
+
docx4j_py/model/property_catalogue.py,sha256=xarcPI-3ZmU_sKzc2y6k6Vuo7s2eO8PpFCCl4WZbitE,41617
|
|
68
|
+
docx4j_py/model/property_resolver.py,sha256=ovoWYdUlWBFXUEwTO1JJsw11QoAQivps-uTy5_09LYk,30438
|
|
69
|
+
docx4j_py/model/sessions.py,sha256=7N3xt-VFhAHHJmmB_UPgFH531pdhdM7RP8fIWX9cEno,14008
|
|
70
|
+
docx4j_py/model/style_util.py,sha256=SHYRjhfa_MT1muWFiG0_lznrXbrhWmVOhXUj9gKvFN4,19994
|
|
71
|
+
docx4j_py/model/content/__init__.py,sha256=of9oRff_py2I3WdTrvEOQqUnIdU5PtfBgIueGkcWZd8,21536
|
|
72
|
+
docx4j_py/model/content/addresses.py,sha256=p1ooeqpgy_oA0FEddnpQlTVg_sjuC5a3pUX6ZT6PTQU,22463
|
|
73
|
+
docx4j_py/model/content/api_script.py,sha256=GwB0A6w5iG8oZbDJyHJFQRbubj0x3zyi7IIr-oNskv4,50116
|
|
74
|
+
docx4j_py/model/content/body.py,sha256=ZMCGPN5Bdf49xyG1qc3hHs5RtBJMj8W8CaQHKuLD4Kk,53632
|
|
75
|
+
docx4j_py/model/content/comments.py,sha256=IxZ9zgcOXZANuNLDFGfr4U4PxbEF1Vi19raDYBoY1QE,49763
|
|
76
|
+
docx4j_py/model/content/compatibility.py,sha256=XJrvS5toup9W1OulketcFClO4pL7M8VOUS5lP93kyxM,10133
|
|
77
|
+
docx4j_py/model/content/controls.py,sha256=N_e9EjdhYa8JRcxMIknSTasO3gzQhDovt9VIJni37uw,43583
|
|
78
|
+
docx4j_py/model/content/describe.py,sha256=FFGi9B461z7of-7KMQwNfeV5AfYJQe8vRQatrcSKzks,17179
|
|
79
|
+
docx4j_py/model/content/enums.py,sha256=jiTlqRxNC-nbYYLEylTDmUK4FNkMkUb3IG47x0nc8iY,6516
|
|
80
|
+
docx4j_py/model/content/errors.py,sha256=twf4Z1dKJWpvGd4gWQr1x8EsRmibWvonR6IR9smBJXw,6406
|
|
81
|
+
docx4j_py/model/content/font.py,sha256=H6a0qtZ0sbWZlvNF9Bc3AJ69zbW85ivPfITxQghyZm4,12254
|
|
82
|
+
docx4j_py/model/content/lists.py,sha256=048HJMJmCRDsMqom-f1YoeKr8ssx2xb-ci4yABAHwxM,48167
|
|
83
|
+
docx4j_py/model/content/ooxml.py,sha256=pVZBCEW0nbMTZ0kkL9Rf0AwcHIk71FkAtXXeIkk4eYU,18019
|
|
84
|
+
docx4j_py/model/content/paragraph.py,sha256=BzkzJnIz_tH8gQlr6csrwcUNmu0WIxPBPm_lXssV21g,68352
|
|
85
|
+
docx4j_py/model/content/picture.py,sha256=l0yi6g0gBFjbC9t1Bok8YLggd7JsuzPMHsxIyPQgpfU,24108
|
|
86
|
+
docx4j_py/model/content/range.py,sha256=KJQSAZGwE54cQjuKNxW5YlRXLE1kgaHKvcI76e7avcU,19958
|
|
87
|
+
docx4j_py/model/content/reports.py,sha256=en2vBDpjAxFQ5TduZBS5MDE_LLx6nUGImCxAzV6m6L4,40762
|
|
88
|
+
docx4j_py/model/content/styles.py,sha256=bJF9o3iiQsDOf58r_8Xi_w-4d7eDswVxVx9MoYPfJPA,34443
|
|
89
|
+
docx4j_py/model/content/table.py,sha256=0AQEcZVPKoOEUO9J7CTxZf7TeVNKXa-8jpOyM-eEBGM,40284
|
|
90
|
+
docx4j_py/model/content/text_model.py,sha256=11AWW8r9_9Xfr_XqPWAbAlCylKO6g3sMZiyTHX4nBww,26605
|
|
91
|
+
docx4j_py/model/content/tracked_change.py,sha256=ZVE04tQUSBrmRVyFI0-0u8fHEFTyK-aejnPFSZiPNzw,32903
|
|
92
|
+
docx4j_py/model/content/tracking.py,sha256=DptwefPrTR6sFk7gZS03vTt3Csj2GXWOuSZgGs5Ft_0,43801
|
|
93
|
+
docx4j_py/model/content/trial.py,sha256=lW2lOx_sSGsXd34aHUiWZPmRSGYpUqsWHdfpbTdDlpI,23629
|
|
94
|
+
docx4j_py/model/customxml/__init__.py,sha256=jT75Reim5mUwBY8mAigPgxbhmFcLsihzORpIJiR3cKM,4630
|
|
95
|
+
docx4j_py/model/customxml/bindings.py,sha256=fDL3lHm7IS-86G33tGlhpBaHEOYkXdaB2CTHLjLwutQ,19102
|
|
96
|
+
docx4j_py/model/customxml/insert.py,sha256=NkxIOZBU0r8JCa0JPSaNLrPXthUyoRY1YsqzhLwydY0,8449
|
|
97
|
+
docx4j_py/model/customxml/kinds.py,sha256=c1gPyVyZc8BJxWBvLykkTrcGoIkxJ3jiSmRLapwxY-k,26345
|
|
98
|
+
docx4j_py/model/customxml/mapping.py,sha256=48Up5HmQvA9fqIUAE3Y9YPLZ2w1Vq1JMjvleLTpsE4w,10568
|
|
99
|
+
docx4j_py/model/customxml/nodes.py,sha256=Hsck0cNT-FseQHJuZlb20H8LK8WCHnHJGA8hJ5006AE,27868
|
|
100
|
+
docx4j_py/model/customxml/parts.py,sha256=7RGGwLeGYLs--Zsl_EZ_k4SkX07BgxJVbza07qzNb4I,31125
|
|
101
|
+
docx4j_py/model/customxml/template.py,sha256=0PGb89UGbdhPQIxwDaTbdMv1qCyKwOfbmbvdpA6lOdI,35191
|
|
102
|
+
docx4j_py/model/customxml/xpath.py,sha256=1JxxXHk_g2ZwHrpb3ZqDAsT1ANov0GgkNt5hp4JbOwk,6588
|
|
103
|
+
docx4j_py/model/fonts/__init__.py,sha256=OUutUbWu3TVLrtGoUjFz-IaJ0hxILo3FsOlKiLyTHfU,4433
|
|
104
|
+
docx4j_py/model/fonts/data.py,sha256=mHbEHwtok8Ql-zMDqBPgK8J9i6ipZrNB7GNNWYKZRlE,6581
|
|
105
|
+
docx4j_py/model/fonts/default_theme.py,sha256=Y_gU6Kp5XhCjWj12JVvlgq0g2ONLEGFPOHuNmIZkwD0,3584
|
|
106
|
+
docx4j_py/model/fonts/fallback.py,sha256=mZZqhZoBGFuRiH7fjRmc1aqPIEsXqjaJyZbZHz7FiDI,11687
|
|
107
|
+
docx4j_py/model/fonts/fonts_in_use.py,sha256=3zLflgTOm0pZxMmeVhZIKdXXu6KG44yyeZ6jop-f0Dg,9854
|
|
108
|
+
docx4j_py/model/fonts/language_tags.py,sha256=4xk-eanLeshLtthSPsLmUqkMoR1j6k1Z1FpF1R-maQ0,3821
|
|
109
|
+
docx4j_py/model/fonts/mapper.py,sha256=8wYpd2Xewjn7e36ybdy17EBnL6NqsqosICCMXR2tKRQ,31358
|
|
110
|
+
docx4j_py/model/fonts/physical_font.py,sha256=gDFHZYPD8foq87_IUl_UkoR_hHM8SwbU9jvT1MUOr3Q,3433
|
|
111
|
+
docx4j_py/model/fonts/registry.py,sha256=eAPOoVYiOWHnbfAOp6ROwJp8_MX5Uv7Za5V2PrkFf6Q,5120
|
|
112
|
+
docx4j_py/model/fonts/run_font_selector.py,sha256=CvGXeg9y9Wz50ZJXM3qdcr42f0JUU4QQzElBVyUNlKQ,27852
|
|
113
|
+
docx4j_py/model/fonts/scripts.py,sha256=zltf31AsxUbh42LIlULtJP63sGa7uo_4UJtPu4gorqs,5953
|
|
114
|
+
docx4j_py/model/fonts/theme_fonts.py,sha256=ATvXBXcssDW-PSFJHb--7-3Hoc631u10gaZWL7UFhCc,4920
|
|
115
|
+
docx4j_py/model/listnumbering/__init__.py,sha256=5T-8u-YaWLYk5WU328PH1HKjq_EZzhSTIt4zd4Uy2-k,2300
|
|
116
|
+
docx4j_py/model/listnumbering/definitions.py,sha256=SB2Q9_tanZ-G2X9-iu_ydleScXTeeNNDo0EUwbfT86c,34330
|
|
117
|
+
docx4j_py/model/listnumbering/emulator.py,sha256=rOs0VGmuW6mRaBWsyms03ROXxSp26F6uSOJhL40rs0M,41671
|
|
118
|
+
docx4j_py/model/listnumbering/formats.py,sha256=hJk-FytO1gVHxjjK7hUYnVx9VktStEiZLx1IaTZSohQ,15421
|
|
119
|
+
docx4j_py/model/markdown/__init__.py,sha256=ZBlkdpPyRUwzVROKyTP6w3zftqSrPDxASeTZJTfa2Ko,3788
|
|
120
|
+
docx4j_py/model/markdown/export.py,sha256=4IdsJZ6AlrzMKmH61BPK8gC01OsKz5T73fZUlGkdSag,41347
|
|
121
|
+
docx4j_py/model/markdown/importer.py,sha256=Dc20ha2VQwDdg6hYpL9PMSpbDBn06gwS2pXNuVB0AD0,32795
|
|
122
|
+
docx4j_py/oart/__init__.py,sha256=KgKYDLP8Q0nLVV4Niq2sEWRmwX1pxv6Wou-RDO6BclQ,54451
|
|
123
|
+
docx4j_py/oart/animation_2018/__init__.py,sha256=UIG8UbkrO0-DmqgG2kQIzy-7E5s6PCm8f2OLxCVYFE0,3335
|
|
124
|
+
docx4j_py/oart/animation_2018/el.py,sha256=UfNUGiazFdWRd9hDWr8-xXk3uBtxA5hFr1yIXuf_-1E,1950
|
|
125
|
+
docx4j_py/oart/animation_model3d_2018/__init__.py,sha256=WWYDtj17U2EElOX6Ge5HNwGcDjOpNd7N6plISROFIdg,3635
|
|
126
|
+
docx4j_py/oart/animation_model3d_2018/el.py,sha256=3i4y6LtiCfXenLkaaE2_kFjuH6d8OfURe-2KRZti07o,3630
|
|
127
|
+
docx4j_py/oart/chart_2007/__init__.py,sha256=KR8IXM2YgIa0zm6tW5lx18pQduEgyC_R8kOReYTpIdI,5093
|
|
128
|
+
docx4j_py/oart/chart_2007/el.py,sha256=gwMCURl1BB_IV9061rNHS2nYkG5yQE9Q9mdRI3JFGHI,5366
|
|
129
|
+
docx4j_py/oart/chart_2012/__init__.py,sha256=qgk9Ufvc0OZB-_Zmzc8LPsDCDNNKRS8nXJTXjvto-DI,16224
|
|
130
|
+
docx4j_py/oart/chart_2012/el.py,sha256=QYN16M4K3HrQ-18NivS845kKshXc-SLCdv_R3M7z3GI,22221
|
|
131
|
+
docx4j_py/oart/chart_2014/__init__.py,sha256=CssJAMQ8jR1lFq_kV9m2kMBcKYllQQYnu6VqQk08xOs,9682
|
|
132
|
+
docx4j_py/oart/chart_2014/el.py,sha256=pEykwS2ZtLqy7wkkyxEJcjItbec3rYQiZpBsmSs8gkA,9656
|
|
133
|
+
docx4j_py/oart/chart_2017_03/__init__.py,sha256=3GwUdwkHnY5AvlodKgamxPtN2q7Lede0_ZTWs1e4pbw,2470
|
|
134
|
+
docx4j_py/oart/chart_2017_03/el.py,sha256=ZRRROmbX6weQ4YSjK-axt6UvGcu6hrFW-qsZvSNuUqI,2536
|
|
135
|
+
docx4j_py/oart/chart_ac_2014/__init__.py,sha256=WAM7L03JbQlkxLSTyIe-l9Zm3NBeIBq8uTO78335UIw,1785
|
|
136
|
+
docx4j_py/oart/chart_ac_2014/el.py,sha256=Cu3riLfbIN3W_OF2Yg7LsdhNm7PIdSMxyo8DZFP1jX8,1949
|
|
137
|
+
docx4j_py/oart/chart_drawing_2010/__init__.py,sha256=bt2Zif6jxT7d1CR0b3V3vxyKCWcu0dHy7-aE7Yls4Eg,4968
|
|
138
|
+
docx4j_py/oart/chart_drawing_2010/el.py,sha256=kNuC0dl5AKJAMSHqtTVAA6TB0qp2iLDJKeWDUZltm1g,5395
|
|
139
|
+
docx4j_py/oart/chart_style_2012/__init__.py,sha256=aWuntM3QZrSoM5tJ4cdFe7npvocEfFEozgcGKlKkr48,36317
|
|
140
|
+
docx4j_py/oart/chart_style_2012/el.py,sha256=UHRpSAp3BfDXfJronN9ig0ioepJ9RF5yJUJ7ZByztiA,18681
|
|
141
|
+
docx4j_py/oart/chartex_2014/__init__.py,sha256=DqERW8O7MlFQA2eMmI26jTdj8ehpGBso8CxSYqf3KNs,80731
|
|
142
|
+
docx4j_py/oart/chartex_2014/el.py,sha256=OxuYNjLHS7pZAepKM2PszPF-julECPfHH9UEdMENc14,52291
|
|
143
|
+
docx4j_py/oart/command_2013/__init__.py,sha256=mi_T3c4T6nKjwFQK5ti9WlXFFNwppi6anEIkBaR4nbY,17548
|
|
144
|
+
docx4j_py/oart/command_2013/el.py,sha256=aD1SRtdpkKEqynov5almqNyZ2dEWKIqUy_XBgTvkaS8,8515
|
|
145
|
+
docx4j_py/oart/decorative_2017/__init__.py,sha256=485KwdDJ5Fna5IlbxghKPHHr5d9nFN0J32HQinDXApM,2006
|
|
146
|
+
docx4j_py/oart/decorative_2017/el.py,sha256=Ly2arjOkkMdUuOazK0I2oc0fokOCjKKi5ZCIIpRtq4s,1911
|
|
147
|
+
docx4j_py/oart/diagram_2008/__init__.py,sha256=JiR449_uqOpbcuhQiYap6ESE-4jASmzcGlVpxHb2U4I,7908
|
|
148
|
+
docx4j_py/oart/diagram_2008/el.py,sha256=Iz-P8OZ3yNB6Q7p9TGWbzcuUWMfhchLsmPFKfGiPRkM,8865
|
|
149
|
+
docx4j_py/oart/diagram_2010/__init__.py,sha256=ZZsltyt8XGNLSlIfWsDek_dci1AImlhjGGEUyCleynU,2327
|
|
150
|
+
docx4j_py/oart/diagram_2010/el.py,sha256=snuYuYIqANyJqioIBpBWCQKZEzXDeWdfgtn87cg4jOM,2393
|
|
151
|
+
docx4j_py/oart/diagram_2016_11/__init__.py,sha256=HIRvhH9QXmBkquDVQscGcJ-l_LEA7dC2u-6Q-Brxnfo,4920
|
|
152
|
+
docx4j_py/oart/diagram_2016_11/el.py,sha256=ab85MJoSifYmQpgATcSUuHnpaEHeEsZT3Fny9Y5yROI,3050
|
|
153
|
+
docx4j_py/oart/diagram_2016_12/__init__.py,sha256=BzCFUfuPwJfDxo2SlTD3BciaucMZmHDPV2kkCkBQn1c,1998
|
|
154
|
+
docx4j_py/oart/diagram_2016_12/el.py,sha256=A-QZSP4WrYELo6woUHUTQ2zC7xFspqwOZWUo8GlwT68,2270
|
|
155
|
+
docx4j_py/oart/hyperlink_color_2018/__init__.py,sha256=3cwiknMgn33C-CVWzTWCZ3gr-lPYJfBg18GZsjPE2iA,2132
|
|
156
|
+
docx4j_py/oart/hyperlink_color_2018/el.py,sha256=UEP0eAQmUKDqQ6j5QQAyGOYlRxNQfqPDlKnV1aRJJR4,1923
|
|
157
|
+
docx4j_py/oart/ink_action_2014/__init__.py,sha256=d8ZwtHeOHvetXAZy5--Yb3bxri7bNufsK9_TPa7UgcM,9340
|
|
158
|
+
docx4j_py/oart/ink_action_2014/el.py,sha256=Fga1oIUMpg0o7MApJMAJxxcCos_cpNqTICSs_4FNG0o,4876
|
|
159
|
+
docx4j_py/oart/main_2010/__init__.py,sha256=9v5xaCrr3sDlT-djzfoQuiHmkiDjTpvWxhMkum8OcNw,39256
|
|
160
|
+
docx4j_py/oart/main_2010/el.py,sha256=bqT8CsqtEKaiIxLlt0NGJXpqX1EqLl_mUmJTXzowBp8,28985
|
|
161
|
+
docx4j_py/oart/main_2012/__init__.py,sha256=glsA3f3fklaxSPdxxDdAHCjghYrKBqtDClEIy4QPwjU,7008
|
|
162
|
+
docx4j_py/oart/main_2012/el.py,sha256=ZgtQrGspuzZmMzz4eH94zAjhsn_8J1ociK35vJGw5d8,3338
|
|
163
|
+
docx4j_py/oart/main_2014/__init__.py,sha256=pNJREyv9xqziHukj-Q2e4oWVwTSGYru4Ge5bs9wnpog,4015
|
|
164
|
+
docx4j_py/oart/main_2014/el.py,sha256=RWM0FAbeZOvfq2zNUBiG2OY7yLGpx5zYTrv1t7A1MIM,3460
|
|
165
|
+
docx4j_py/oart/main_2016_11/__init__.py,sha256=Fgm0HLfIsp6gsOpDSwBoj8IsFNF_y_bGa4fGmZDzZN4,2145
|
|
166
|
+
docx4j_py/oart/main_2016_11/el.py,sha256=LIVzRf1MrpVuPWTi-bvmTegmWY9dCnENo9pSUuA7EnU,1926
|
|
167
|
+
docx4j_py/oart/model3d_2017/__init__.py,sha256=2jTFQc82Bk2RoeEdkwNX35bg-89rQn-Dc0EGZcWYzPw,20033
|
|
168
|
+
docx4j_py/oart/model3d_2017/el.py,sha256=nABJIw1jt3EsHih6XqWO5u6mhb8a5l8hD5I8WmxpGZ0,14948
|
|
169
|
+
docx4j_py/oart/picture_2010/__init__.py,sha256=8Lfp6o9e5s8uoesntooXxROn9afRUQbDSLcOTMN-6t0,1989
|
|
170
|
+
docx4j_py/oart/picture_2010/el.py,sha256=xc5Ao4arb5CWQPsu0yUY389CY7NfKr4ctyk8m5QPBBM,2216
|
|
171
|
+
docx4j_py/oart/spreadsheet_drawing_2010/__init__.py,sha256=nubBnM-piKeFIlkQeuDnfw7OOyO5bydvcQe-4s9QYJ8,5012
|
|
172
|
+
docx4j_py/oart/spreadsheet_drawing_2010/el.py,sha256=1jvRjEEFHuThU2FK419NTN-Dm8vF1iz3hiOsgeiaGlg,5523
|
|
173
|
+
docx4j_py/oart/svg_2016/__init__.py,sha256=HBFYUtcoxAPY7FSr08rWEjOCZuPXLFmZBs4y1E8JkBo,2287
|
|
174
|
+
docx4j_py/oart/svg_2016/el.py,sha256=XLPWSp4ELZ6XP6b8HGPZysLadDf5i1pKx1lFoobe-Iw,1831
|
|
175
|
+
docx4j_py/oart/theme_2012/__init__.py,sha256=aRjYQGTe-ru7NCPhGrzLi9dB5oMOIauEWT-mw2rDq0A,2916
|
|
176
|
+
docx4j_py/oart/theme_2012/el.py,sha256=WOYfIBta5nrxIpI7LB2QFBxcSXjZqeBXoSTnqphOqkM,2414
|
|
177
|
+
docx4j_py/openpackaging/__init__.py,sha256=qXzwVLGrYtQc6fFeZtRI1ahh4IJUOS0DosdTqnY8xMg,6113
|
|
178
|
+
docx4j_py/openpackaging/api.py,sha256=_aAeKGC5N8cVSMp3H-xzauAhKrOnBS0rp33k9O_I_ro,2059
|
|
179
|
+
docx4j_py/openpackaging/content_types.py,sha256=e4tuZVSNPr77sk7VNIrdp9LN3XdCqWsMqRm-M9mJFmo,21936
|
|
180
|
+
docx4j_py/openpackaging/exceptions.py,sha256=w9sRDCqmDNaXkwpotIeWKRgzDnSoN_MS-jf8UnWBKaU,1645
|
|
181
|
+
docx4j_py/openpackaging/load.py,sha256=WVIo7JWv-ClI4f6crTtn7w-FsugWWdb-9Q29SBr8jRQ,10457
|
|
182
|
+
docx4j_py/openpackaging/mce.py,sha256=Yu-j4qUVVVRZd3yr7zs08k9umDZ6HUbps2b5hbLs7bI,6348
|
|
183
|
+
docx4j_py/openpackaging/part_name.py,sha256=W51_6CUrGrmhDRsFBdj-M2zGCXCriVr82p-_Lp81nno,10520
|
|
184
|
+
docx4j_py/openpackaging/resources.py,sha256=G2QCsQdOHKkihEX5osDiMn8EN_TABrO6JN4Yl270GBw,1443
|
|
185
|
+
docx4j_py/openpackaging/save.py,sha256=58en3TRpA9kcrn3DANLaSssfOiFdkxAlmkjUcAHITvU,3717
|
|
186
|
+
docx4j_py/openpackaging/stores.py,sha256=BX5Tn-acu4AXoL2fGP-4rY_P0fRXQz3tfmUnn7LclLU,21107
|
|
187
|
+
docx4j_py/openpackaging/packages/__init__.py,sha256=MF6n8vBn51XZWtx-35cPs7zldL4NEzPUh3np_EgOC-s,755
|
|
188
|
+
docx4j_py/openpackaging/packages/opc_package.py,sha256=PivAA5yRPeH7LcKC19hcGlA3x-Xol54R8Gs_THWNe8c,19443
|
|
189
|
+
docx4j_py/openpackaging/packages/wordprocessingml_package.py,sha256=o7yMWX-sKKF7PIGHNx3GBvAUOCVWTg441i6dqhTA6Io,19466
|
|
190
|
+
docx4j_py/openpackaging/parts/__init__.py,sha256=ri2U312r_qE506PgUP7dy9UbcAlrNkYy1lpQ7Fsq6h0,1461
|
|
191
|
+
docx4j_py/openpackaging/parts/binary_part.py,sha256=X4BP_7SS9kzKB8tBNdpAl_wEXFMfAxCQtz-_LhZsFw0,6299
|
|
192
|
+
docx4j_py/openpackaging/parts/default_xml_part.py,sha256=KWx9D0OAXjqcLjkrEkJgspaNY1pQi2k35XJsQkzO7-U,6532
|
|
193
|
+
docx4j_py/openpackaging/parts/dml.py,sha256=st-V1c4UxRTA9qogJ_OT6iQLh4FVm3LbNXdezdQwPMo,7711
|
|
194
|
+
docx4j_py/openpackaging/parts/docprops.py,sha256=CQ3hYT0chXkbflcVpgeKowNgLfOw_8w3c1T-8CJNS9Q,4558
|
|
195
|
+
docx4j_py/openpackaging/parts/namespaces.py,sha256=Yuq75drGJNGA0b8YPP_YWJinle18zwKKuxV_cFeoUpI,7262
|
|
196
|
+
docx4j_py/openpackaging/parts/part.py,sha256=_pxFBnqOBuJIBabrNo5dddsggrWGWoPRbIqf2TnURk8,7557
|
|
197
|
+
docx4j_py/openpackaging/parts/parts_map.py,sha256=U7Et1J1ADXCp0nWGFk6md0QXYSlGVKzFHYfvClm-8tc,2715
|
|
198
|
+
docx4j_py/openpackaging/parts/registry.py,sha256=8yndLxfd4qngZ-Qr3gJq8q-9m4dUzhL5HwZOmmb0Pxc,13269
|
|
199
|
+
docx4j_py/openpackaging/parts/relationships_part.py,sha256=o848wwC6NNnxE4y5hMhxo_4m4bDCn2OL_OdoCj7UjKo,16978
|
|
200
|
+
docx4j_py/openpackaging/parts/xml_part.py,sha256=pXnIKLmdwzIhD8JLFucslNQDVjdpUdpcJrtMHy6fgZg,16038
|
|
201
|
+
docx4j_py/openpackaging/parts/wml/__init__.py,sha256=aZVNULqVoyaGBeWSnmfANB64KEwIafFvxMJWNaBQiEA,22609
|
|
202
|
+
docx4j_py/openpackaging/parts/wml/comments.py,sha256=7nlG3PkdPmA5EcjRNA6UA4eNPfICRvISDp10_hocAKw,13373
|
|
203
|
+
docx4j_py/relationships/__init__.py,sha256=Gk7v0DjoskseDnK-5XsBINzMdS1ZuAbIiq0H05WEMHE,2835
|
|
204
|
+
docx4j_py/relationships/el.py,sha256=3babfgiPnOvyCapv2L-tWBCwxutHZ7donwt8ePmgD8A,2461
|
|
205
|
+
docx4j_py/resources/KnownStyles.xml,sha256=uUG6lPpalG4Xf4_jVeJYdFlYi8_UGBdVSCzh1x2f8Ac,77893
|
|
206
|
+
docx4j_py/resources/__init__.py,sha256=VU41ir3T4ONvWNFNLHDAJhBoG6MSxomzTiqhxmWabKo,577
|
|
207
|
+
docx4j_py/resources/warmup_document.xml,sha256=QWG0IubxNsOQcAlRL7nPvyqj5BQgHBa0jwlgaHwA2k8,7531
|
|
208
|
+
docx4j_py/resources/warmup_styles.xml,sha256=qxbPZegOzNd17V5OWTzyHVmp-v6p4VM0Pj--stWcfvg,3018
|
|
209
|
+
docx4j_py/resources/fonts/__init__.py,sha256=rLeR90t5qqrE7VhdcCZpYKRfDleSEIZlVc8SNr4giA8,503
|
|
210
|
+
docx4j_py/resources/fonts/families.json,sha256=bwBVJtnbt86zUg5MRjaKKimPUa7UP-GgiZPSPMbqh90,15485
|
|
211
|
+
docx4j_py/resources/fonts/registry.json,sha256=Me3baAnwE8TACFuV1-qBxx6LE9cgFnIyQL6YomUPyR4,3162
|
|
212
|
+
docx4j_py/resources/fonts/substitutions.json,sha256=7FqFbMilvlC0TrE5jB1ND0GMoFW3Grj4GheXvACaFaU,114346
|
|
213
|
+
docx4j_py/resources/fonts/theme-2007.xml,sha256=jhLM0ZQExYOW-7FgSZiZNO5bA0kX-OECYfwcXBqo0yI,8384
|
|
214
|
+
docx4j_py/resources/fonts/theme-2013.xml,sha256=rdE0ORJ23dXvXfj8fGxkQQmbWxDZww8FJdS1Ip78cYo,8390
|
|
215
|
+
docx4j_py/resources/fonts/theme-2023.xml,sha256=psoDW6x1-npTiV3OsgJ_urydHCcM7lJ2EkOr-fSRQfo,8717
|
|
216
|
+
docx4j_py/resources/openpackaging/__init__.py,sha256=LFhx26OPdbi2X2PmGzRdI_6oYxnN66Ax8eFUfZj6HzM,300
|
|
217
|
+
docx4j_py/resources/openpackaging/fontTable.xml,sha256=gNPQZ1kkfr079Lr2XPUkNbZVyoqtQrRLuCqRBoaA4R4,38017
|
|
218
|
+
docx4j_py/resources/openpackaging/numbering.xml,sha256=ddxoWTSeX1JLtf7Apa8tOyBbrU-dnMXIHTfJ5Ju4YdQ,6932
|
|
219
|
+
docx4j_py/resources/openpackaging/styles.xml,sha256=lu8PDNQEe3nYyA48WbAkvnrq0YjFhDDjMFOmmV6Nohk,17319
|
|
220
|
+
docx4j_py/shared_types/__init__.py,sha256=6kuLs9NgA03AfUYSNJ6OTQYouZWAqpHhVflCvFuNtII,1919
|
|
221
|
+
docx4j_py/shared_types/el.py,sha256=FnmsVzcyb_R7cwox0UVoNKIx-CACzc9piX_Fhh9txO8,1390
|
|
222
|
+
docx4j_py/w14/__init__.py,sha256=6V5TFrSlw661pu4utDdbsbEhzRsuGeXxQYLtB-P0ln0,49958
|
|
223
|
+
docx4j_py/w14/el.py,sha256=0R4SOCQTvCGUn1_UJJ33x3vA11X-EEUyZ41G1XSRbTk,28552
|
|
224
|
+
docx4j_py/w15/__init__.py,sha256=L2LrGeFLgGzaYyCGOAgdHYaAL7m13e1mwiG_YtKSFaM,9959
|
|
225
|
+
docx4j_py/w15/el.py,sha256=SY-9kE05dns3-SD-aWmSB7RIm8O3yiGPp4lQGc_-yz8,9425
|
|
226
|
+
docx4j_py/w15symex/__init__.py,sha256=QWNZx52c2T_zHw00VJqEseSgcZSCDmSCQ6MnqLHvP8I,2250
|
|
227
|
+
docx4j_py/w15symex/el.py,sha256=xJ0_-jZhbA-iwHMxr_-X6WzgAOdfwPVMN6jUSgYgPN8,1788
|
|
228
|
+
docx4j_py/w16cid/__init__.py,sha256=nklpFFnECvBzo8Jz2tYSakIzboJq8vbaHC1gtgEE7SM,2973
|
|
229
|
+
docx4j_py/w16cid/el.py,sha256=CDe1bi9HeEFKypUTndgjkBTj4DcFhT3w_mdi83vLpPA,2295
|
|
230
|
+
docx4j_py/wml/__init__.py,sha256=S9kcidC7r6bChGX_lFPAZzwegVGdezN2LDF7qeXhzSI,753515
|
|
231
|
+
docx4j_py/wml/builders.py,sha256=AkET8Ad1HilDu0MgjSkS-zri2D0wmpiSMX0IYHOkgsI,26468
|
|
232
|
+
docx4j_py/wml/el.py,sha256=PvxbHEbntkkRkHBIp-eh5D3iS46QXiJmkWDqatD4msw,325758
|
|
233
|
+
docx4j_py/wml/pictures.py,sha256=nA1MjYKXQtdyKgTTfY7iQsj5pN7hpUa_2SSXibiXRCo,14956
|
|
234
|
+
docx4j_py/wml/sdt.py,sha256=2caYazf4hj8xNu6OGu-ZXjf48EK2vH1CJGgX86dOAFU,15616
|
|
235
|
+
docx4j_py/wne/__init__.py,sha256=qLM9QqFUoWyAmJsuvRlY03sz5yThxPKjOgnEpOUDPu0,17373
|
|
236
|
+
docx4j_py/wne/el.py,sha256=jHKuHLAb6cGMp42QYdxEi-sBw7Gejs_fYYqoJ0cEKtg,8417
|
|
237
|
+
docx4j_py/word/__init__.py,sha256=Fgwz60GwgwQtdy4lU0lCtMIYfRSbzAFzaPBoDKGftfg,3575
|
|
238
|
+
docx4j_py/word/msink/__init__.py,sha256=m9jEsWpeEXbP5H3d3Rn5JLQuWAe3slPBOwBwe2p8sfo,9315
|
|
239
|
+
docx4j_py/word/msink/el.py,sha256=hu3nAQxIRETsZKpmNRvEv8Dva7DathzoIroRLJBGgFc,2857
|
|
240
|
+
docx4j_py/word/wp14/__init__.py,sha256=PQbRRC6oof-qtcoyGehHCxD23c_ouVah5fjxVZV-XzA,4034
|
|
241
|
+
docx4j_py/word/wp14/el.py,sha256=1W448jS2jAq6H6oFPn2Yokh8wXo35iwNib_mGebzcjQ,3492
|
|
242
|
+
docx4j_py/word/wp15/__init__.py,sha256=Hbc7UataGXSjVv19UWPIKingAg1qh79gtxqPDecF4Fs,2385
|
|
243
|
+
docx4j_py/word/wp15/el.py,sha256=Lgs3n9R8v-drwZ9O9rjD-PAOR3Y-3NlmN3Y88zyMgBE,1907
|
|
244
|
+
docx4j_py/word/wpc/__init__.py,sha256=xN2Z0QelCSia7_Num-ZrcqY6ReBGrx2JIcxUFA5RgbA,4488
|
|
245
|
+
docx4j_py/word/wpc/el.py,sha256=araiBLwMpnYNbMl9oL8z6tuNoksh8vqTbQ_DaRRsI90,3955
|
|
246
|
+
docx4j_py/word/wpg/__init__.py,sha256=U9GwM6IPrjfotSw5LKb99dEoQnl3oQ5R6KUyDR3RBUE,6010
|
|
247
|
+
docx4j_py/word/wpg/el.py,sha256=9_iin_OWoyfKcUYsYvLtHoJZVRES3j6wy5MnWg8I-Oc,6179
|
|
248
|
+
docx4j_py/word/wps/__init__.py,sha256=v3QwgOdA6wLz1jFZiuoXWamtlpCZ_dz9D27_7Zc4dAY,6771
|
|
249
|
+
docx4j_py/word/wps/el.py,sha256=qQO6QcSBsHEmdnYajyegi430aD7Qo5MgGbYWJPk18Ig,6577
|
|
250
|
+
docx4j_py/xml_ns/__init__.py,sha256=1w6C4zzuX5V4wzejDIGIk9Ed943qvmpAOiaqZr-aGOU,1585
|
|
251
|
+
docx4j_py/xml_ns/el.py,sha256=qGkO6i4pzdH4SOfUMHk6xHtsmVWe4N0_P8GrzOwG824,1320
|
|
252
|
+
docx4j-0.1.0.dist-info/METADATA,sha256=EwB5WSzWMxMwbWVtZ5bQPXC--VQ7MGfyL1NLKoMZFmg,12489
|
|
253
|
+
docx4j-0.1.0.dist-info/WHEEL,sha256=THafob7ofN-NsuMN7Mg4qZyHaQI7KkD-QlcQatYhXPo,87
|
|
254
|
+
docx4j-0.1.0.dist-info/licenses/LICENSE,sha256=z8d0m5b2O9McPEK1xHG_dWgUBT6EfBDz6wA0F7xSPTA,11358
|
|
255
|
+
docx4j-0.1.0.dist-info/licenses/NOTICE,sha256=T1JVTyiFGNVGGnY3zgCbrqyzEzlCCBMadt-8dD53iik,2588
|
|
256
|
+
docx4j-0.1.0.dist-info/RECORD,,
|