athena-python-docx 0.11.0__tar.gz → 0.11.2__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (337) hide show
  1. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/CLAUDE.md +12 -0
  2. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/PKG-INFO +1 -1
  3. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/docx/__init__.py +1 -1
  4. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/docx/_http_doc.py +25 -10
  5. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/docx/errors.py +22 -0
  6. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/docx/table.py +72 -53
  7. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/pyproject.toml +1 -1
  8. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/tests/fidelity/complex_cases.py +15 -37
  9. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/tests/fidelity/extreme_cases.py +3 -12
  10. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/tests/fidelity/op_snapshots/22_table_cell_paragraphs_iteration.json +3 -1
  11. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/tests/fidelity/op_snapshots/62_many_cell_paragraphs.json +15 -5
  12. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/tests/fidelity/op_snapshots/69_newsletter.json +13 -5
  13. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/tests/fidelity/op_snapshots/90_cell_add_paragraph_styled.json +3 -1
  14. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/tests/fidelity/op_snapshots/ex13_cell_with_10_paragraphs.json +30 -10
  15. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/tests/fidelity/op_snapshots/mega01_book_chapter.json +18 -6
  16. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/tests/fidelity/real_world_cases.py +4 -13
  17. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/tests/test_block_not_found_error.py +69 -0
  18. athena_python_docx-0.11.2/tests/test_cell_add_paragraph_wire_shape.py +133 -0
  19. athena_python_docx-0.11.2/tests/test_cell_add_table_not_supported.py +79 -0
  20. athena_python_docx-0.11.0/tests/fidelity/op_snapshots/103_cell_tables_enumeration.json +0 -14
  21. athena_python_docx-0.11.0/tests/fidelity/op_snapshots/23_nested_table.json +0 -9
  22. athena_python_docx-0.11.0/tests/fidelity/op_snapshots/51_nested_tables_deep.json +0 -14
  23. athena_python_docx-0.11.0/tests/fidelity/op_snapshots/ex01_five_levels_deep_tables.json +0 -24
  24. athena_python_docx-0.11.0/tests/fidelity/op_snapshots/rw14_nested_cell_table.json +0 -10
  25. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/.gitignore +0 -0
  26. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/README.md +0 -0
  27. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/docx/_athena_extension.py +0 -0
  28. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/docx/_batching.py +0 -0
  29. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/docx/_buffer.py +0 -0
  30. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/docx/_http.py +0 -0
  31. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/docx/_image_utils.py +0 -0
  32. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/docx/_ptc.py +0 -0
  33. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/docx/_table_styles.py +0 -0
  34. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/docx/api.py +0 -0
  35. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/docx/bookmarks.py +0 -0
  36. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/docx/charts.py +0 -0
  37. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/docx/client.py +0 -0
  38. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/docx/commands.py +0 -0
  39. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/docx/comments.py +0 -0
  40. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/docx/document.py +0 -0
  41. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/docx/enum/__init__.py +0 -0
  42. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/docx/enum/section.py +0 -0
  43. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/docx/enum/style.py +0 -0
  44. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/docx/enum/table.py +0 -0
  45. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/docx/enum/text.py +0 -0
  46. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/docx/exceptions.py +0 -0
  47. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/docx/fields.py +0 -0
  48. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/docx/footnotes.py +0 -0
  49. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/docx/math.py +0 -0
  50. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/docx/opc/__init__.py +0 -0
  51. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/docx/opc/coreprops.py +0 -0
  52. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/docx/oxml/__init__.py +0 -0
  53. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/docx/revisions.py +0 -0
  54. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/docx/sdt.py +0 -0
  55. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/docx/section.py +0 -0
  56. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/docx/settings.py +0 -0
  57. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/docx/shape.py +0 -0
  58. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/docx/shared.py +0 -0
  59. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/docx/styles/__init__.py +0 -0
  60. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/docx/styles/style.py +0 -0
  61. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/docx/styles/styles.py +0 -0
  62. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/docx/text/__init__.py +0 -0
  63. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/docx/text/font.py +0 -0
  64. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/docx/text/hyperlink.py +0 -0
  65. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/docx/text/pagebreak.py +0 -0
  66. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/docx/text/paragraph.py +0 -0
  67. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/docx/text/parfmt.py +0 -0
  68. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/docx/text/run.py +0 -0
  69. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/docx/text/tabstops.py +0 -0
  70. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/docx/toc.py +0 -0
  71. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/docx/typing.py +0 -0
  72. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/scripts/publish.sh +0 -0
  73. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/scripts/release.sh +0 -0
  74. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/scripts/round_trip_smoke.py +0 -0
  75. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/scripts/smoke_test_block_not_found.py +0 -0
  76. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/tests/__init__.py +0 -0
  77. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/tests/conftest.py +0 -0
  78. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/tests/fidelity/METHODOLOGY.md +0 -0
  79. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/tests/fidelity/README.md +0 -0
  80. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/tests/fidelity/__init__.py +0 -0
  81. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/tests/fidelity/ab_probe_cases.py +0 -0
  82. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/tests/fidelity/ab_probe_runner.py +0 -0
  83. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/tests/fidelity/auto_gen_cases.py +0 -0
  84. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/tests/fidelity/binary_round_trip.py +0 -0
  85. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/tests/fidelity/cases.py +0 -0
  86. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/tests/fidelity/coverage_report.py +0 -0
  87. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/tests/fidelity/extract.py +0 -0
  88. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/tests/fidelity/fake_session.py +0 -0
  89. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/tests/fidelity/firm_templates/README.md +0 -0
  90. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/tests/fidelity/firm_templates/__init__.py +0 -0
  91. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/tests/fidelity/firm_templates/_runner.py +0 -0
  92. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/tests/fidelity/firm_templates/extractor.py +0 -0
  93. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/tests/fidelity/firm_templates/test_pw_corpus.py +0 -0
  94. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/tests/fidelity/firm_templates/test_pw_research_digest.py +0 -0
  95. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/tests/fidelity/local_runner.py +0 -0
  96. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/tests/fidelity/mega_cases.py +0 -0
  97. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/tests/fidelity/op_snapshot.py +0 -0
  98. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/tests/fidelity/op_snapshots/01_basic_paragraph.json +0 -0
  99. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/tests/fidelity/op_snapshots/02_multiple_headings.json +0 -0
  100. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/tests/fidelity/op_snapshots/03_runs_with_formatting.json +0 -0
  101. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/tests/fidelity/op_snapshots/04_font_name_and_size.json +0 -0
  102. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/tests/fidelity/op_snapshots/05_font_color_rgb.json +0 -0
  103. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/tests/fidelity/op_snapshots/06_font_character_properties.json +0 -0
  104. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/tests/fidelity/op_snapshots/07_font_subscript_superscript.json +0 -0
  105. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/tests/fidelity/op_snapshots/08_font_highlight.json +0 -0
  106. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/tests/fidelity/op_snapshots/09_paragraph_alignment.json +0 -0
  107. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/tests/fidelity/op_snapshots/100_table_negative_indexing.json +0 -0
  108. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/tests/fidelity/op_snapshots/101_table_cells_flat_iteration.json +0 -0
  109. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/tests/fidelity/op_snapshots/102_text_with_embedded_special_chars.json +0 -0
  110. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/tests/fidelity/op_snapshots/104_core_properties_datetime.json +0 -0
  111. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/tests/fidelity/op_snapshots/105_default_one_section.json +0 -0
  112. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/tests/fidelity/op_snapshots/106_heading_paragraph_format.json +0 -0
  113. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/tests/fidelity/op_snapshots/107_varying_row_heights.json +0 -0
  114. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/tests/fidelity/op_snapshots/10_paragraph_indents.json +0 -0
  115. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/tests/fidelity/op_snapshots/11_paragraph_spacing.json +0 -0
  116. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/tests/fidelity/op_snapshots/12_paragraph_keep_options.json +0 -0
  117. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/tests/fidelity/op_snapshots/13_paragraph_tab_stops.json +0 -0
  118. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/tests/fidelity/op_snapshots/14_run_add_tab_and_break.json +0 -0
  119. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/tests/fidelity/op_snapshots/15_run_add_break_page.json +0 -0
  120. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/tests/fidelity/op_snapshots/16_paragraph_clear_and_insert_before.json +0 -0
  121. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/tests/fidelity/op_snapshots/17_table_basic.json +0 -0
  122. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/tests/fidelity/op_snapshots/18_table_cell_text.json +0 -0
  123. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/tests/fidelity/op_snapshots/19_table_row_column_sizing.json +0 -0
  124. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/tests/fidelity/op_snapshots/20_table_cell_vertical_alignment.json +0 -0
  125. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/tests/fidelity/op_snapshots/21_table_alignment_and_autofit.json +0 -0
  126. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/tests/fidelity/op_snapshots/24_table_add_row_column.json +0 -0
  127. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/tests/fidelity/op_snapshots/25_table_merge_cells.json +0 -0
  128. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/tests/fidelity/op_snapshots/26_section_page_setup.json +0 -0
  129. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/tests/fidelity/op_snapshots/27_section_margins.json +0 -0
  130. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/tests/fidelity/op_snapshots/28_section_add_new.json +0 -0
  131. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/tests/fidelity/op_snapshots/29_section_headers_linked.json +0 -0
  132. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/tests/fidelity/op_snapshots/30_styles_iteration.json +0 -0
  133. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/tests/fidelity/op_snapshots/31_styles_lookup_and_default.json +0 -0
  134. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/tests/fidelity/op_snapshots/32_styles_add_paragraph_style.json +0 -0
  135. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/tests/fidelity/op_snapshots/33_core_properties_set_and_get.json +0 -0
  136. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/tests/fidelity/op_snapshots/34_inline_shapes_iterate_empty.json +0 -0
  137. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/tests/fidelity/op_snapshots/35_full_report.json +0 -0
  138. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/tests/fidelity/op_snapshots/36_replace_text_in_paragraph.json +0 -0
  139. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/tests/fidelity/op_snapshots/37_iterate_runs_and_format_all_bold.json +0 -0
  140. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/tests/fidelity/op_snapshots/38_font_all_properties.json +0 -0
  141. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/tests/fidelity/op_snapshots/39_large_body_100_paragraphs.json +0 -0
  142. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/tests/fidelity/op_snapshots/40_large_table_10x10.json +0 -0
  143. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/tests/fidelity/op_snapshots/41_unicode_and_emoji.json +0 -0
  144. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/tests/fidelity/op_snapshots/42_very_long_paragraph.json +0 -0
  145. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/tests/fidelity/op_snapshots/43_paragraph_text_round_trip.json +0 -0
  146. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/tests/fidelity/op_snapshots/44_paragraph_alignment_round_trip.json +0 -0
  147. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/tests/fidelity/op_snapshots/45_cell_text_round_trip.json +0 -0
  148. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/tests/fidelity/op_snapshots/46_run_text_setter_round_trip.json +0 -0
  149. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/tests/fidelity/op_snapshots/47_font_size_round_trip.json +0 -0
  150. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/tests/fidelity/op_snapshots/48_font_color_round_trip.json +0 -0
  151. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/tests/fidelity/op_snapshots/49_resume_layout.json +0 -0
  152. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/tests/fidelity/op_snapshots/50_multi_section_doc.json +0 -0
  153. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/tests/fidelity/op_snapshots/52_iterate_everything.json +0 -0
  154. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/tests/fidelity/op_snapshots/53_apply_style_to_paragraphs.json +0 -0
  155. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/tests/fidelity/op_snapshots/54_empty_everything.json +0 -0
  156. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/tests/fidelity/op_snapshots/55_single_character_runs.json +0 -0
  157. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/tests/fidelity/op_snapshots/56_everything_in_one.json +0 -0
  158. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/tests/fidelity/op_snapshots/57_runs_after_multiple_text_appends.json +0 -0
  159. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/tests/fidelity/op_snapshots/58_modify_runs_in_place.json +0 -0
  160. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/tests/fidelity/op_snapshots/59_indent_round_trip.json +0 -0
  161. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/tests/fidelity/op_snapshots/60_space_round_trip.json +0 -0
  162. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/tests/fidelity/op_snapshots/61_cell_paragraph_with_runs.json +0 -0
  163. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/tests/fidelity/op_snapshots/63_table_style_round_trip.json +0 -0
  164. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/tests/fidelity/op_snapshots/64_many_sections.json +0 -0
  165. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/tests/fidelity/op_snapshots/65_20x20_table_formatted.json +0 -0
  166. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/tests/fidelity/op_snapshots/66_toc_like_structure.json +0 -0
  167. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/tests/fidelity/op_snapshots/67_paragraph_insert_before_chain.json +0 -0
  168. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/tests/fidelity/op_snapshots/68_invoice.json +0 -0
  169. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/tests/fidelity/op_snapshots/70_add_and_iterate_back.json +0 -0
  170. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/tests/fidelity/op_snapshots/71_academic_paper.json +0 -0
  171. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/tests/fidelity/op_snapshots/72_legal_contract.json +0 -0
  172. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/tests/fidelity/op_snapshots/73_form_with_many_tables.json +0 -0
  173. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/tests/fidelity/op_snapshots/74_paragraph_with_10_runs.json +0 -0
  174. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/tests/fidelity/op_snapshots/75_paragraph_negative_first_line_indent.json +0 -0
  175. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/tests/fidelity/op_snapshots/76_rgbcolor_from_string.json +0 -0
  176. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/tests/fidelity/op_snapshots/77_length_unit_conversions.json +0 -0
  177. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/tests/fidelity/op_snapshots/78_paragraph_copy_style.json +0 -0
  178. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/tests/fidelity/op_snapshots/79_bulk_cell_formatting.json +0 -0
  179. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/tests/fidelity/op_snapshots/80_apply_style_after_add_run.json +0 -0
  180. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/tests/fidelity/op_snapshots/81_multi_page_with_breaks.json +0 -0
  181. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/tests/fidelity/op_snapshots/82_add_text_on_existing_run.json +0 -0
  182. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/tests/fidelity/op_snapshots/83_clear_then_repopulate_paragraph.json +0 -0
  183. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/tests/fidelity/op_snapshots/84_table_reread_row_count.json +0 -0
  184. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/tests/fidelity/op_snapshots/85_header_footer_access.json +0 -0
  185. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/tests/fidelity/op_snapshots/86_font_read_unset_returns_none.json +0 -0
  186. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/tests/fidelity/op_snapshots/87_500_paragraph_doc.json +0 -0
  187. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/tests/fidelity/op_snapshots/88_mixed_content_iteration.json +0 -0
  188. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/tests/fidelity/op_snapshots/89_alignment_clear_via_none.json +0 -0
  189. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/tests/fidelity/op_snapshots/91_many_small_tables.json +0 -0
  190. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/tests/fidelity/op_snapshots/92_margins_every_section.json +0 -0
  191. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/tests/fidelity/op_snapshots/93_font_bool_reads_after_set.json +0 -0
  192. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/tests/fidelity/op_snapshots/94_page_break_before_paragraph.json +0 -0
  193. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/tests/fidelity/op_snapshots/95_paragraph_hyperlinks_empty.json +0 -0
  194. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/tests/fidelity/op_snapshots/96_paragraph_contains_page_break.json +0 -0
  195. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/tests/fidelity/op_snapshots/97_document_styles_by_key.json +0 -0
  196. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/tests/fidelity/op_snapshots/98_style_contains_check.json +0 -0
  197. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/tests/fidelity/op_snapshots/99_run_add_picture_from_bytes.json +0 -0
  198. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/tests/fidelity/op_snapshots/ex02_unicode_everywhere.json +0 -0
  199. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/tests/fidelity/op_snapshots/ex03_1000_paragraphs.json +0 -0
  200. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/tests/fidelity/op_snapshots/ex04_50x50_table.json +0 -0
  201. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/tests/fidelity/op_snapshots/ex05_long_text_in_cell.json +0 -0
  202. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/tests/fidelity/op_snapshots/ex06_hundred_tiny_runs.json +0 -0
  203. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/tests/fidelity/op_snapshots/ex07_every_font_boolean.json +0 -0
  204. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/tests/fidelity/op_snapshots/ex08_many_continuous_sections.json +0 -0
  205. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/tests/fidelity/op_snapshots/ex09_many_tab_stops.json +0 -0
  206. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/tests/fidelity/op_snapshots/ex10_complex_bom.json +0 -0
  207. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/tests/fidelity/op_snapshots/ex11_banded_rows_formatting.json +0 -0
  208. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/tests/fidelity/op_snapshots/ex12_section_reconfigure.json +0 -0
  209. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/tests/fidelity/op_snapshots/ex14_styled_report_table.json +0 -0
  210. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/tests/fidelity/op_snapshots/ex15_paragraph_all_format_props.json +0 -0
  211. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/tests/fidelity/op_snapshots/ex16_runs_interleaved_with_breaks.json +0 -0
  212. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/tests/fidelity/op_snapshots/ex17_all_break_kinds.json +0 -0
  213. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/tests/fidelity/op_snapshots/ex18_read_back_large_doc.json +0 -0
  214. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/tests/fidelity/op_snapshots/ex19_mutate_all_runs.json +0 -0
  215. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/tests/fidelity/op_snapshots/ex20_kitchen_sink_v2.json +0 -0
  216. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/tests/fidelity/op_snapshots/mega02_research_proposal.json +0 -0
  217. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/tests/fidelity/op_snapshots/mega03_financial_statement.json +0 -0
  218. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/tests/fidelity/op_snapshots/mega04_recipe_card.json +0 -0
  219. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/tests/fidelity/op_snapshots/mega05_user_manual.json +0 -0
  220. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/tests/fidelity/op_snapshots/mega06_complex_newsletter.json +0 -0
  221. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/tests/fidelity/op_snapshots/mega07_budget_spreadsheet.json +0 -0
  222. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/tests/fidelity/op_snapshots/mega08_product_catalog.json +0 -0
  223. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/tests/fidelity/op_snapshots/mega09_signed_contract.json +0 -0
  224. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/tests/fidelity/op_snapshots/mega10_api_documentation.json +0 -0
  225. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/tests/fidelity/op_snapshots/rw01_official_quickstart.json +0 -0
  226. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/tests/fidelity/op_snapshots/rw02_paragraph_style_list.json +0 -0
  227. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/tests/fidelity/op_snapshots/rw03_character_formatting.json +0 -0
  228. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/tests/fidelity/op_snapshots/rw04_section_page_setup.json +0 -0
  229. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/tests/fidelity/op_snapshots/rw05_toc_pattern.json +0 -0
  230. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/tests/fidelity/op_snapshots/rw06_meeting_minutes.json +0 -0
  231. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/tests/fidelity/op_snapshots/rw07_dense_formatting_demo.json +0 -0
  232. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/tests/fidelity/op_snapshots/rw08_table_merged_header.json +0 -0
  233. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/tests/fidelity/op_snapshots/rw09_bulk_run_iteration.json +0 -0
  234. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/tests/fidelity/op_snapshots/rw10_colored_grid_table.json +0 -0
  235. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/tests/fidelity/op_snapshots/rw11_header_text.json +0 -0
  236. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/tests/fidelity/op_snapshots/rw12_first_page_footer.json +0 -0
  237. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/tests/fidelity/op_snapshots/rw13_even_page_header.json +0 -0
  238. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/tests/fidelity/op_snapshots/rw15_paragraph_style_instance.json +0 -0
  239. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/tests/fidelity/ours_spec.json +0 -0
  240. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/tests/fidelity/parity_crawl.py +0 -0
  241. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/tests/fidelity/parity_diff.json +0 -0
  242. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/tests/fidelity/round_trip_tests.py +0 -0
  243. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/tests/fidelity/runner.py +0 -0
  244. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/tests/fidelity/stock_spec.json +0 -0
  245. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/tests/fidelity/test_e2e_against_staging.py +0 -0
  246. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/tests/parity/README.md +0 -0
  247. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/tests/parity/__init__.py +0 -0
  248. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/tests/parity/baseline_gaps.json +0 -0
  249. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/tests/parity/compare.py +0 -0
  250. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/tests/parity/intentional_deviations.json +0 -0
  251. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/tests/parity/introspect.py +0 -0
  252. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/tests/parity/reports/GAP_ANALYSIS.md +0 -0
  253. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/tests/parity/reports/gap_report.json +0 -0
  254. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/tests/parity/run_parity.py +0 -0
  255. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/tests/parity/snapshots/athena_latest.json +0 -0
  256. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/tests/parity/snapshots/upstream_python_docx_1.2.0.json +0 -0
  257. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/tests/parity/test_parity_gap.py +0 -0
  258. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/tests/test_athena_extensions_contract.py +0 -0
  259. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/tests/test_athena_extensions_registry.py +0 -0
  260. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/tests/test_batching_perf.py +0 -0
  261. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/tests/test_buffer.py +0 -0
  262. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/tests/test_cell_text_plain_fastpath.py +0 -0
  263. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/tests/test_collapsed_range_format.py +0 -0
  264. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/tests/test_command_dataclasses.py +0 -0
  265. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/tests/test_commands.py +0 -0
  266. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/tests/test_comments.py +0 -0
  267. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/tests/test_document_asset_id_property.py +0 -0
  268. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/tests/test_document_create.py +0 -0
  269. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/tests/test_document_create_from_template.py +0 -0
  270. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/tests/test_document_factory_validation.py +0 -0
  271. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/tests/test_e2e_partial_failure_cascade.py +0 -0
  272. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/tests/test_http_transport.py +0 -0
  273. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/tests/test_hyperlink_coalescing.py +0 -0
  274. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/tests/test_insert_deferred.py +0 -0
  275. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/tests/test_iter_inner_content.py +0 -0
  276. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/tests/test_list_styles.py +0 -0
  277. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/tests/test_merged_cell_secondary_slot.py +0 -0
  278. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/tests/test_merged_cells.py +0 -0
  279. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/tests/test_oxml_shim.py +0 -0
  280. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/tests/test_paragraph_text_len_cache.py +0 -0
  281. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/tests/test_parity_misc.py +0 -0
  282. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/tests/test_parity_round2.py +0 -0
  283. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/tests/test_partial_failure_cascade.py +0 -0
  284. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/tests/test_phase_a_behavior.py +0 -0
  285. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/tests/test_phase_b_headers_footers.py +0 -0
  286. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/tests/test_phase_c_tables.py +0 -0
  287. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/tests/test_pr19766_review_fixes.py +0 -0
  288. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/tests/test_ptc.py +0 -0
  289. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/tests/test_python_docx_api_parity.py +0 -0
  290. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/tests/test_revisions.py +0 -0
  291. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/tests/test_silent_stub_add_paragraph_style.py +0 -0
  292. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/tests/test_silent_stub_add_picture.py +0 -0
  293. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/tests/test_silent_stub_add_run.py +0 -0
  294. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/tests/test_silent_stub_cell_add_paragraph.py +0 -0
  295. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/tests/test_silent_stub_comments_add_comment.py +0 -0
  296. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/tests/test_silent_stub_comments_get.py +0 -0
  297. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/tests/test_silent_stub_document_audit.py +0 -0
  298. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/tests/test_silent_stub_document_element.py +0 -0
  299. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/tests/test_silent_stub_enum_section.py +0 -0
  300. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/tests/test_silent_stub_font_audit.py +0 -0
  301. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/tests/test_silent_stub_header_footer.py +0 -0
  302. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/tests/test_silent_stub_hyperlink.py +0 -0
  303. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/tests/test_silent_stub_inline_shape.py +0 -0
  304. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/tests/test_silent_stub_insert_paragraph_before.py +0 -0
  305. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/tests/test_silent_stub_misc.py +0 -0
  306. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/tests/test_silent_stub_paragraph_strict.py +0 -0
  307. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/tests/test_silent_stub_paragraph_style.py +0 -0
  308. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/tests/test_silent_stub_paragraph_style_strict.py +0 -0
  309. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/tests/test_silent_stub_parfmt.py +0 -0
  310. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/tests/test_silent_stub_row_col_cell.py +0 -0
  311. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/tests/test_silent_stub_run_add_break.py +0 -0
  312. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/tests/test_silent_stub_run_bool_setters.py +0 -0
  313. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/tests/test_silent_stub_run_style.py +0 -0
  314. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/tests/test_silent_stub_run_style_strict.py +0 -0
  315. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/tests/test_silent_stub_run_text.py +0 -0
  316. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/tests/test_silent_stub_run_underline.py +0 -0
  317. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/tests/test_silent_stub_section_audit.py +0 -0
  318. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/tests/test_silent_stub_section_dimensions.py +0 -0
  319. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/tests/test_silent_stub_section_onoff.py +0 -0
  320. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/tests/test_silent_stub_settings.py +0 -0
  321. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/tests/test_silent_stub_shared_audit.py +0 -0
  322. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/tests/test_silent_stub_style.py +0 -0
  323. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/tests/test_silent_stub_styles.py +0 -0
  324. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/tests/test_silent_stub_table_audit.py +0 -0
  325. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/tests/test_silent_stub_table_cell.py +0 -0
  326. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/tests/test_silent_stub_table_dimensions.py +0 -0
  327. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/tests/test_silent_stub_table_layout.py +0 -0
  328. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/tests/test_smoke_integration.py +0 -0
  329. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/tests/test_style_acceptance.py +0 -0
  330. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/tests/test_style_font.py +0 -0
  331. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/tests/test_style_setters_contract.py +0 -0
  332. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/tests/test_table_set_cell_perf.py +0 -0
  333. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/tests/test_table_style_id_resolution.py +0 -0
  334. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/tests/test_temporarily_unavailable.py +0 -0
  335. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/tests/test_wire_contract.py +0 -0
  336. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/tests/test_zod_wire_contract.py +0 -0
  337. {athena_python_docx-0.11.0 → athena_python_docx-0.11.2}/uv.lock +0 -0
@@ -39,6 +39,18 @@ These standard python-docx members don't apply to a Superdoc-backed SDK:
39
39
  `Comment.tables` — SuperDoc models a comment as a single text body,
40
40
  not a `BlockItemContainer`. Use `Comment.text` instead. The
41
41
  paragraph/table-bearing surface raises `CommentsNotImplementedError`.
42
+ - **`_Cell.add_table(rows, cols)`** — surface preserved for parity
43
+ (signature matches python-docx, no `width` kwarg) but raises
44
+ :class:`docx.errors.NestedTableNotSupportedError` (subclass of
45
+ `NotImplementedError`) at runtime since 0.11.2. SuperDoc 1.8.1 has
46
+ no anchor or content-fragment shape that places a new table inside
47
+ an existing `tableCell` — `create.table` rejects cell-inner
48
+ paragraph anchors with `INVALID_TARGET`, and the `doc.insert`
49
+ workaround used by `_Cell.add_paragraph` doesn't generalize
50
+ because the apps/api `Insert` schema doesn't yet forward
51
+ `nestingPolicy: {tables: "allow"}` and the SuperDoc table-content
52
+ fragment shape isn't documented. Tracked at
53
+ `docx-studio/SUPERDOC_UPSTREAM_REQUESTS.md` § 13.
42
54
  - **`docx.oxml.*`** — the entire raw-OOXML module tree (``ns.qn``,
43
55
  ``OxmlElement``, ``CT_*`` classes, etc.) is unavailable because the
44
56
  SDK is HTTP-only against a SuperDoc Y.Doc; there is no local lxml
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: athena-python-docx
3
- Version: 0.11.0
3
+ Version: 0.11.2
4
4
  Summary: Drop-in replacement for python-docx that connects to Athena's Superdoc/Keryx collaborative document stack
5
5
  Project-URL: Homepage, https://athenaintelligence.ai
6
6
  Author-email: Athena Intelligence <engineering@athenaintelligence.ai>
@@ -6,7 +6,7 @@ See CLAUDE.md for the API parity contract.
6
6
 
7
7
  from __future__ import annotations
8
8
 
9
- __version__ = "0.11.0"
9
+ __version__ = "0.11.2"
10
10
 
11
11
  from docx.api import Document
12
12
  from docx._buffer import flush_all
@@ -186,22 +186,32 @@ _NOT_FOUND_ERROR_NAMES: frozenset[str] = frozenset(
186
186
 
187
187
 
188
188
  def _looks_like_block_not_found(err_obj: dict) -> bool:
189
- """Detect SuperDoc's ``Block "<type>:<id>" was not found`` shape.
189
+ """Detect SuperDoc's cell-inner-paragraph addressing failures.
190
190
 
191
- Triggers the typed :class:`BlockNotFoundError` so agent code can
192
- distinguish a missing-block miss (cell-inner-paragraph addressing
193
- bug, stale id from a different session) from a generic transport
194
- or validation error.
191
+ SuperDoc emits two shapes for the same underlying gap
192
+ (``SUPERDOC_UPSTREAM_REQUESTS.md`` § 13):
193
+
194
+ * ``Block "paragraph:<uuid>" was not found.`` — older "not found" form.
195
+ * ``INVALID_TARGET - Expected paragraph:<uuid> but found tableCell:<id>.``
196
+ — newer type-mismatch form, surfaced when the supplied paragraph
197
+ anchor resolves to its containing ``tableCell`` instead.
198
+
199
+ Both surface as :class:`BlockNotFoundError` so agent code can route
200
+ them through the same cell-paragraph hint path.
195
201
  """
196
202
  msg = err_obj.get("message")
197
203
  if not isinstance(msg, str):
198
204
  return False
199
205
  lower = msg.lower()
200
- if "not found" not in lower:
201
- return False
202
- # Be conservative: require either ``block "`` (the SuperDoc CLI's
203
- # quoted-id format) or ``block <id>`` followed by ``not found``.
204
- return 'block "' in lower or ('block ' in lower and ' was not found' in lower)
206
+ if "not found" in lower:
207
+ return 'block "' in lower or (
208
+ 'block ' in lower and ' was not found' in lower
209
+ )
210
+ if "invalid_target" in lower or "invalid target" in lower:
211
+ # "Expected paragraph:<id> but found tableCell:<id>" — the new
212
+ # variant of the § 13 cell-inner-paragraph addressing gap.
213
+ return "but found tablecell" in lower
214
+ return False
205
215
 
206
216
 
207
217
  # Commands that target a paragraph block (or its inline range) and
@@ -239,6 +249,11 @@ _PARAGRAPH_TARGETING_COMMANDS: frozenset[str] = frozenset(
239
249
  "Replace",
240
250
  "InsertLineBreak",
241
251
  "InsertTab",
252
+ # Create-* anchor-into-cell-inner-paragraph variant of § 13.
253
+ "CreateParagraph",
254
+ "CreateHeading",
255
+ "CreateTable",
256
+ "CreateImage",
242
257
  }
243
258
  )
244
259
 
@@ -128,6 +128,28 @@ class LocalSaveTargetNotSupportedError(DocxError, NotImplementedError):
128
128
  """
129
129
 
130
130
 
131
+ class NestedTableNotSupportedError(DocxError, NotImplementedError):
132
+ """Raised when ``_Cell.add_table(...)`` is called.
133
+
134
+ SuperDoc 1.8.1 cannot place a new top-level block inside an
135
+ existing ``tableCell`` — ``create.table`` rejects a cell-inner
136
+ paragraph anchor with ``INVALID_TARGET - Expected paragraph:<id>
137
+ but found tableCell:<id>``, and there is no ``create.table``
138
+ anchor shape ("inside this cell") that addresses cell content
139
+ directly. The ``doc.insert``-based workaround used by
140
+ ``_Cell.text`` / ``_Cell.add_paragraph`` requires a
141
+ ``nestingPolicy: {tables: "allow"}`` flag and a table content
142
+ fragment that aren't yet plumbed through the docx-studio command
143
+ bus, so this entire method is unsupported until upstream
144
+ SuperDoc lands the cell-inner addressing fix tracked in
145
+ ``docx-studio/SUPERDOC_UPSTREAM_REQUESTS.md`` § 13.
146
+
147
+ Subclasses :class:`NotImplementedError` so a generic
148
+ ``except NotImplementedError`` catches it without importing the
149
+ typed class.
150
+ """
151
+
152
+
131
153
  class ValidationError(DocxError):
132
154
  """Raised when SDK-level validation fails (bad args, out-of-range indices)."""
133
155
 
@@ -1345,23 +1345,24 @@ class _Cell:
1345
1345
  only ``str`` was honored and passing a ``ParagraphStyle`` got
1346
1346
  ``repr()``'d into the style id slot, silently producing a
1347
1347
  paragraph with a garbage style reference.
1348
+
1349
+ Routes through ``doc.insert`` with the cell itself as the
1350
+ target and ``placement: 'insideEnd'`` — mirroring the wire
1351
+ path that ``_Cell.text`` uses. SuperDoc 1.8.1 cannot resolve a
1352
+ ``create.paragraph`` ``at`` anchor that points at a cell-inner
1353
+ paragraph (SUPERDOC_UPSTREAM_REQUESTS.md § 13); attempting it
1354
+ raises ``INVALID_TARGET - Expected paragraph:<id> but found
1355
+ tableCell:<id>``.
1348
1356
  """
1349
1357
  from docx.document import _extract_inserted_node_id
1350
1358
  from docx.styles.style import ParagraphStyle
1351
1359
  from docx.text.paragraph import Paragraph
1352
1360
 
1353
- # python-docx 1.x: ``text`` is ``str`` (lxml TypeErrors on
1354
- # non-str). Was: any value flowed straight to the wire
1355
- # ``text`` field — SuperDoc's permissive parser swallowed or
1356
- # rejected silently.
1357
1361
  if not isinstance(text, str):
1358
1362
  raise TypeError(
1359
1363
  f"_Cell.add_paragraph text requires str; got "
1360
1364
  f"{type(text).__name__} {text!r}",
1361
1365
  )
1362
- # ``style`` is ``str | ParagraphStyle | None``. Was: catch-all
1363
- # ``str(style)`` shipped garbage like ``"<MyStyle object at
1364
- # 0x...>"`` as a style id — Word silently fell back to Normal.
1365
1366
  style_id: str | None
1366
1367
  if style is None:
1367
1368
  style_id = None
@@ -1376,38 +1377,49 @@ class _Cell:
1376
1377
  f"{type(style).__name__} {style!r}",
1377
1378
  )
1378
1379
 
1379
- ids = self._inner_paragraph_ids()
1380
- if ids:
1381
- anchor = {
1382
- "kind": "after",
1383
- "target": {
1384
- "kind": "block",
1385
- "nodeType": "paragraph",
1386
- "nodeId": ids[-1],
1387
- },
1388
- }
1389
- else:
1390
- # No paragraphs yet — create one inside the cell (sibling of cell
1391
- # is invalid; fall back to documentEnd and accept degraded placement).
1392
- anchor = {"kind": "documentEnd"}
1380
+ fragment: dict = {
1381
+ "kind": "paragraph",
1382
+ "paragraph": {
1383
+ "inlines": (
1384
+ [{"kind": "run", "run": {"text": text}}]
1385
+ if text
1386
+ else []
1387
+ ),
1388
+ },
1389
+ }
1393
1390
 
1391
+ session = self._table._session
1392
+ cell_id = self._cell_id()
1394
1393
  result: object = run_sync(
1395
- self._table._session.doc.create.paragraph(
1396
- {"text": text, "at": anchor},
1394
+ session.doc.insert(
1395
+ {
1396
+ "target": {
1397
+ "kind": "block",
1398
+ "nodeType": "tableCell",
1399
+ "nodeId": cell_id,
1400
+ },
1401
+ "placement": "insideEnd",
1402
+ "content": fragment,
1403
+ },
1397
1404
  ),
1398
1405
  )
1406
+
1407
+ node_id: str = ""
1399
1408
  if isinstance(result, dict):
1400
- node_id: str = _extract_inserted_node_id(
1409
+ node_id = _extract_inserted_node_id(
1401
1410
  result, expected_type="paragraph",
1402
1411
  )
1403
- else:
1404
- node_id = ""
1412
+ if not node_id:
1413
+ ids = self._inner_paragraph_ids()
1414
+ if ids:
1415
+ node_id = ids[-1]
1405
1416
  if not node_id:
1406
1417
  raise RuntimeError(
1407
- f"Superdoc did not return nodeId for _Cell.add_paragraph: {result!r}",
1418
+ f"docx-studio did not return nodeId for "
1419
+ f"_Cell.add_paragraph (cell={cell_id!r}): {result!r}",
1408
1420
  )
1409
1421
  para = Paragraph(
1410
- session=self._table._session,
1422
+ session=session,
1411
1423
  node_id=node_id,
1412
1424
  node_type="paragraph",
1413
1425
  )
@@ -1418,40 +1430,47 @@ class _Cell:
1418
1430
  def add_table(self, rows: int, cols: int) -> Table:
1419
1431
  """Append a nested table inside the cell.
1420
1432
 
1421
- Mirrors python-docx ``_Cell.add_table(rows, cols) -> Table``.
1433
+ Mirrors python-docx ``_Cell.add_table(rows, cols) -> Table``
1434
+ at the API surface, but raises
1435
+ :class:`docx.errors.NestedTableNotSupportedError` at runtime
1436
+ — SuperDoc 1.8.1 has no addressable shape for "create table
1437
+ inside this cell" (every available anchor either targets a
1438
+ cell-inner paragraph SuperDoc can't resolve, or promotes the
1439
+ new block to the cell's parent row level). The unblock is
1440
+ tracked at ``docx-studio/SUPERDOC_UPSTREAM_REQUESTS.md`` § 13;
1441
+ the same gap was the proximate cause of the
1442
+ ``_Cell.add_paragraph`` failure fixed in 0.11.1 (#20745), and
1443
+ that fix worked only because ``doc.insert`` accepts a paragraph
1444
+ content fragment against a ``tableCell`` target — there is no
1445
+ analogous table-content fragment path through the current
1446
+ docx-studio command bus.
1447
+
1448
+ ``rows`` and ``cols`` are still validated upfront so callers
1449
+ get the same ``ValidationError`` they would have hit before, in
1450
+ case they were branching on it.
1451
+
1422
1452
  Note that upstream's ``_Cell.add_table`` does not take a
1423
1453
  ``width`` parameter — Word inherits cell-table widths from
1424
1454
  layout. ``Document.add_table`` and ``Section.header.add_table``
1425
1455
  DO take ``width`` because they're block-level.
1426
1456
  """
1427
- from docx.document import _extract_inserted_node_id
1457
+ from docx.errors import NestedTableNotSupportedError
1428
1458
 
1429
1459
  if rows < 1 or cols < 1:
1430
1460
  raise ValidationError(f"rows/cols must be >=1; got {rows}/{cols}")
1431
- # We can target the cell's last paragraph as an anchor.
1432
- ids = self._inner_paragraph_ids()
1433
- if ids:
1434
- anchor = {
1435
- "kind": "after",
1436
- "target": {
1437
- "kind": "block",
1438
- "nodeType": "paragraph",
1439
- "nodeId": ids[-1],
1440
- },
1441
- }
1442
- else:
1443
- anchor = {"kind": "documentEnd"}
1444
- result: object = run_sync(
1445
- self._table._session.doc.create.table(
1446
- {"rows": rows, "columns": cols, "at": anchor},
1447
- ),
1461
+ raise NestedTableNotSupportedError(
1462
+ "_Cell.add_table is unsupported on SuperDoc 1.8.1. The cell "
1463
+ "addressing gap (SUPERDOC_UPSTREAM_REQUESTS.md § 13) means "
1464
+ "no anchor or content-fragment shape currently lets the SDK "
1465
+ "place a new table inside an existing tableCell. Workarounds: "
1466
+ "(a) build the table at document or section level via "
1467
+ "Document.add_table and reference it from cell text, or "
1468
+ "(b) include the nested table in the original template "
1469
+ "document and address its cells directly. This method will "
1470
+ "be reinstated once SuperDoc exposes either recursive "
1471
+ "paragraph-anchor lookup or a cell-scoped create.table "
1472
+ "variant.",
1448
1473
  )
1449
- node_id: str = _extract_inserted_node_id(result, expected_type="table") if isinstance(result, dict) else ""
1450
- if not node_id:
1451
- raise RuntimeError(
1452
- f"Superdoc did not return nodeId for nested table: {result!r}",
1453
- )
1454
- return Table(session=self._table._session, node_id=node_id)
1455
1474
 
1456
1475
  def merge(self, other_cell: "_Cell") -> "_Cell":
1457
1476
  """Return a merged cell created by spanning the rectangular
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "athena-python-docx"
7
- version = "0.11.0"
7
+ version = "0.11.2"
8
8
  description = "Drop-in replacement for python-docx that connects to Athena's Superdoc/Keryx collaborative document stack"
9
9
  readme = "README.md"
10
10
  license = "MIT"
@@ -319,18 +319,15 @@ CASES: list[ComplexCase] = [
319
319
  expected_ops=("tables.getCells", "create.paragraph"),
320
320
  tags=("level5", "table"),
321
321
  ),
322
- ComplexCase(
323
- name="23_nested_table",
324
- description="Add a nested table inside a cell",
325
- script=(
326
- "outer = doc.add_table(rows=1, cols=1)\n"
327
- "cell = outer.cell(0, 0)\n"
328
- "nested = cell.add_table(rows=2, cols=2)\n"
329
- 'nested.cell(0, 0).text = "nested"'
330
- ),
331
- expected_ops=("create.table",),
332
- tags=("level5", "table", "nested"),
333
- ),
322
+ # Removed in 0.11.2 (#20745 follow-up): ``_Cell.add_table`` now
323
+ # raises ``NestedTableNotSupportedError`` because SuperDoc 1.8.1
324
+ # has no addressable shape for "create new table inside this cell"
325
+ # — every available anchor either targets a cell-inner paragraph
326
+ # SuperDoc can't resolve or promotes the new block to the cell's
327
+ # parent row. Tracked at SUPERDOC_UPSTREAM_REQUESTS.md § 13. Pre-
328
+ # 0.11.2 this case "passed" by silently writing the nested table
329
+ # to documentEnd, which round-tripped in the fake but is wrong in
330
+ # production. See tests/test_cell_add_table_not_supported.py.
334
331
  ComplexCase(
335
332
  name="24_table_add_row_column",
336
333
  description="Add row and column dynamically (python-docx 1.x requires width for add_column)",
@@ -745,17 +742,9 @@ CASES: list[ComplexCase] = [
745
742
  ),
746
743
 
747
744
  # ---------- Level 17: deep nesting + iteration ----------
748
- ComplexCase(
749
- name="51_nested_tables_deep",
750
- description="Table in cell that contains another table in a cell",
751
- script=(
752
- "outer = doc.add_table(rows=1, cols=1)\n"
753
- "mid = outer.cell(0, 0).add_table(rows=1, cols=1)\n"
754
- "inner = mid.cell(0, 0).add_table(rows=2, cols=2)\n"
755
- 'inner.cell(0, 0).text = "deepest"'
756
- ),
757
- tags=("level17", "nested"),
758
- ),
745
+ # 51_nested_tables_deep removed in 0.11.2 (#20745 follow-up):
746
+ # _Cell.add_table now raises NestedTableNotSupportedError on
747
+ # SuperDoc 1.8.1; see SUPERDOC_UPSTREAM_REQUESTS.md § 13.
759
748
  ComplexCase(
760
749
  name="52_iterate_everything",
761
750
  description="Create a doc then iterate sections/paragraphs/tables",
@@ -1784,20 +1773,9 @@ CASES: list[ComplexCase] = [
1784
1773
  ),
1785
1774
 
1786
1775
  # ---------- Level 56: cell.tables for nested detection ----------
1787
- ComplexCase(
1788
- name="103_cell_tables_enumeration",
1789
- description="Enumerate cell.tables after nesting",
1790
- script=(
1791
- "outer = doc.add_table(rows=1, cols=1)\n"
1792
- "c = outer.cell(0, 0)\n"
1793
- "c.add_table(rows=2, cols=2)\n"
1794
- "c.add_table(rows=1, cols=1)\n"
1795
- "# cell.tables should list nested tables\n"
1796
- "nested = c.tables\n"
1797
- "# don't assert exact count — fake may not fully reflect"
1798
- ),
1799
- tags=("level56", "nested"),
1800
- ),
1776
+ # 103_cell_tables_enumeration removed in 0.11.2 (#20745 follow-up):
1777
+ # _Cell.add_table raises NestedTableNotSupportedError; see
1778
+ # SUPERDOC_UPSTREAM_REQUESTS.md § 13.
1801
1779
 
1802
1780
  # ---------- Level 57: core properties pull in datetime ----------
1803
1781
  ComplexCase(
@@ -11,18 +11,9 @@ from tests.fidelity.complex_cases import ComplexCase
11
11
 
12
12
  EXTREME_CASES: list[ComplexCase] = [
13
13
  # ---- Deep nesting ----
14
- ComplexCase(
15
- name="ex01_five_levels_deep_tables",
16
- description="5-level deep nested tables",
17
- script=(
18
- "current = doc.add_table(rows=1, cols=1).cell(0, 0)\n"
19
- "for i in range(4):\n"
20
- " nested = current.add_table(rows=1, cols=1)\n"
21
- " current = nested.cell(0, 0)\n"
22
- "current.text = 'deepest'"
23
- ),
24
- tags=("extreme", "nested"),
25
- ),
14
+ # ex01_five_levels_deep_tables removed in 0.11.2 (#20745 follow-up):
15
+ # _Cell.add_table raises NestedTableNotSupportedError on SuperDoc
16
+ # 1.8.1; see SUPERDOC_UPSTREAM_REQUESTS.md § 13.
26
17
 
27
18
  # ---- Unicode stress ----
28
19
  ComplexCase(
@@ -3,8 +3,10 @@
3
3
  "tables.setCell",
4
4
  "tables.get",
5
5
  "tables.getCells",
6
+ "insert",
7
+ "tables.get",
8
+ "tables.getCells",
6
9
  "getNodeById",
7
- "create.paragraph",
8
10
  "tables.get",
9
11
  "tables.getCells",
10
12
  "getNodeById",
@@ -2,24 +2,34 @@
2
2
  "create.table",
3
3
  "tables.get",
4
4
  "tables.getCells",
5
+ "insert",
6
+ "tables.get",
7
+ "tables.getCells",
5
8
  "getNodeById",
6
- "create.paragraph",
9
+ "tables.get",
10
+ "tables.getCells",
11
+ "insert",
7
12
  "tables.get",
8
13
  "tables.getCells",
9
14
  "getNodeById",
10
- "create.paragraph",
15
+ "tables.get",
16
+ "tables.getCells",
17
+ "insert",
11
18
  "tables.get",
12
19
  "tables.getCells",
13
20
  "getNodeById",
14
- "create.paragraph",
21
+ "tables.get",
22
+ "tables.getCells",
23
+ "insert",
15
24
  "tables.get",
16
25
  "tables.getCells",
17
26
  "getNodeById",
18
- "create.paragraph",
27
+ "tables.get",
28
+ "tables.getCells",
29
+ "insert",
19
30
  "tables.get",
20
31
  "tables.getCells",
21
32
  "getNodeById",
22
- "create.paragraph",
23
33
  "tables.get",
24
34
  "tables.getCells",
25
35
  "getNodeById",
@@ -38,20 +38,28 @@
38
38
  "tables.setStyle",
39
39
  "tables.get",
40
40
  "tables.getCells",
41
+ "insert",
42
+ "tables.get",
43
+ "tables.getCells",
41
44
  "getNodeById",
42
- "create.paragraph",
43
45
  "getNodeById",
44
46
  "format.apply",
45
47
  "tables.get",
46
48
  "tables.getCells",
47
- "getNodeById",
48
- "create.paragraph",
49
+ "insert",
49
50
  "tables.get",
50
51
  "tables.getCells",
51
52
  "getNodeById",
52
- "create.paragraph",
53
+ "tables.get",
54
+ "tables.getCells",
55
+ "insert",
53
56
  "tables.get",
54
57
  "tables.getCells",
55
58
  "getNodeById",
56
- "create.paragraph"
59
+ "tables.get",
60
+ "tables.getCells",
61
+ "insert",
62
+ "tables.get",
63
+ "tables.getCells",
64
+ "getNodeById"
57
65
  ]
@@ -2,8 +2,10 @@
2
2
  "create.table",
3
3
  "tables.get",
4
4
  "tables.getCells",
5
+ "insert",
6
+ "tables.get",
7
+ "tables.getCells",
5
8
  "getNodeById",
6
- "create.paragraph",
7
9
  "styles.paragraph.setStyle",
8
10
  "getNodeById"
9
11
  ]
@@ -3,52 +3,72 @@
3
3
  "tables.setStyle",
4
4
  "tables.get",
5
5
  "tables.getCells",
6
+ "insert",
7
+ "tables.get",
8
+ "tables.getCells",
6
9
  "getNodeById",
7
- "create.paragraph",
8
10
  "format.paragraph.setAlignment",
9
11
  "tables.get",
10
12
  "tables.getCells",
13
+ "insert",
14
+ "tables.get",
15
+ "tables.getCells",
11
16
  "getNodeById",
12
- "create.paragraph",
13
17
  "format.paragraph.setAlignment",
14
18
  "tables.get",
15
19
  "tables.getCells",
20
+ "insert",
21
+ "tables.get",
22
+ "tables.getCells",
16
23
  "getNodeById",
17
- "create.paragraph",
18
24
  "format.paragraph.setAlignment",
19
25
  "tables.get",
20
26
  "tables.getCells",
27
+ "insert",
28
+ "tables.get",
29
+ "tables.getCells",
21
30
  "getNodeById",
22
- "create.paragraph",
23
31
  "format.paragraph.setAlignment",
24
32
  "tables.get",
25
33
  "tables.getCells",
34
+ "insert",
35
+ "tables.get",
36
+ "tables.getCells",
26
37
  "getNodeById",
27
- "create.paragraph",
28
38
  "format.paragraph.setAlignment",
29
39
  "tables.get",
30
40
  "tables.getCells",
41
+ "insert",
42
+ "tables.get",
43
+ "tables.getCells",
31
44
  "getNodeById",
32
- "create.paragraph",
33
45
  "format.paragraph.setAlignment",
34
46
  "tables.get",
35
47
  "tables.getCells",
48
+ "insert",
49
+ "tables.get",
50
+ "tables.getCells",
36
51
  "getNodeById",
37
- "create.paragraph",
38
52
  "format.paragraph.setAlignment",
39
53
  "tables.get",
40
54
  "tables.getCells",
55
+ "insert",
56
+ "tables.get",
57
+ "tables.getCells",
41
58
  "getNodeById",
42
- "create.paragraph",
43
59
  "format.paragraph.setAlignment",
44
60
  "tables.get",
45
61
  "tables.getCells",
62
+ "insert",
63
+ "tables.get",
64
+ "tables.getCells",
46
65
  "getNodeById",
47
- "create.paragraph",
48
66
  "format.paragraph.setAlignment",
49
67
  "tables.get",
50
68
  "tables.getCells",
69
+ "insert",
70
+ "tables.get",
71
+ "tables.getCells",
51
72
  "getNodeById",
52
- "create.paragraph",
53
73
  "format.paragraph.setAlignment"
54
74
  ]
@@ -45,8 +45,10 @@
45
45
  "tables.setCell",
46
46
  "tables.get",
47
47
  "tables.getCells",
48
+ "insert",
49
+ "tables.get",
50
+ "tables.getCells",
48
51
  "getNodeById",
49
- "create.paragraph",
50
52
  "getNodeById",
51
53
  "getNodeById",
52
54
  "format.apply",
@@ -54,8 +56,10 @@
54
56
  "format.apply",
55
57
  "tables.get",
56
58
  "tables.getCells",
59
+ "insert",
60
+ "tables.get",
61
+ "tables.getCells",
57
62
  "getNodeById",
58
- "create.paragraph",
59
63
  "getNodeById",
60
64
  "getNodeById",
61
65
  "format.apply",
@@ -63,8 +67,10 @@
63
67
  "format.apply",
64
68
  "tables.get",
65
69
  "tables.getCells",
70
+ "insert",
71
+ "tables.get",
72
+ "tables.getCells",
66
73
  "getNodeById",
67
- "create.paragraph",
68
74
  "getNodeById",
69
75
  "getNodeById",
70
76
  "format.apply",
@@ -72,8 +78,10 @@
72
78
  "format.apply",
73
79
  "tables.get",
74
80
  "tables.getCells",
81
+ "insert",
82
+ "tables.get",
83
+ "tables.getCells",
75
84
  "getNodeById",
76
- "create.paragraph",
77
85
  "getNodeById",
78
86
  "getNodeById",
79
87
  "format.apply",
@@ -81,8 +89,10 @@
81
89
  "format.apply",
82
90
  "tables.get",
83
91
  "tables.getCells",
92
+ "insert",
93
+ "tables.get",
94
+ "tables.getCells",
84
95
  "getNodeById",
85
- "create.paragraph",
86
96
  "getNodeById",
87
97
  "getNodeById",
88
98
  "format.apply",
@@ -90,8 +100,10 @@
90
100
  "format.apply",
91
101
  "tables.get",
92
102
  "tables.getCells",
103
+ "insert",
104
+ "tables.get",
105
+ "tables.getCells",
93
106
  "getNodeById",
94
- "create.paragraph",
95
107
  "getNodeById",
96
108
  "getNodeById",
97
109
  "format.apply",