athena-python-docx 0.21.6__tar.gz → 0.21.7__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.
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/PKG-INFO +1 -1
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/docx/__init__.py +1 -1
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/docx/document.py +17 -1
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/docx/table.py +5 -4
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/pyproject.toml +7 -1
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/tests/test_find_replace_session_open.py +19 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/.gitignore +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/CLAUDE.md +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/DOCX_EXEC_LAB.md +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/README.md +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/docx/_athena_extension.py +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/docx/_batching.py +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/docx/_buffer.py +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/docx/_citations.py +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/docx/_execution.py +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/docx/_http.py +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/docx/_http_doc.py +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/docx/_image_utils.py +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/docx/_postproc.py +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/docx/_ptc.py +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/docx/_references.py +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/docx/_table_styles.py +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/docx/_timeouts.py +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/docx/api.py +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/docx/bookmarks.py +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/docx/charts.py +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/docx/client.py +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/docx/commands.py +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/docx/comments.py +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/docx/enum/__init__.py +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/docx/enum/section.py +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/docx/enum/shape.py +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/docx/enum/style.py +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/docx/enum/table.py +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/docx/enum/text.py +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/docx/errors.py +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/docx/exceptions.py +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/docx/fields.py +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/docx/footnotes.py +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/docx/math.py +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/docx/opc/__init__.py +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/docx/opc/coreprops.py +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/docx/oxml/__init__.py +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/docx/revisions.py +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/docx/sdt.py +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/docx/section.py +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/docx/session.py +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/docx/settings.py +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/docx/shape.py +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/docx/shared.py +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/docx/styles/__init__.py +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/docx/styles/style.py +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/docx/styles/styles.py +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/docx/text/__init__.py +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/docx/text/font.py +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/docx/text/hyperlink.py +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/docx/text/pagebreak.py +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/docx/text/paragraph.py +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/docx/text/parfmt.py +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/docx/text/run.py +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/docx/text/tabstops.py +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/docx/toc.py +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/docx/typing.py +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/scripts/docx_exec_lab.py +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/scripts/docx_exec_lab_examples/fast_table_fill.py +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/scripts/docx_exec_lab_examples/find_replace_literal.py +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/scripts/docx_exec_lab_server.py +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/scripts/dump_wire_fixtures.py +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/scripts/publish.sh +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/scripts/release.sh +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/scripts/round_trip_smoke.py +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/scripts/smoke_test_block_not_found.py +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/scripts/validate_find_replace_asset.py +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/tests/__init__.py +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/tests/conftest.py +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/tests/fidelity/METHODOLOGY.md +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/tests/fidelity/README.md +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/tests/fidelity/__init__.py +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/tests/fidelity/ab_probe_cases.py +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/tests/fidelity/ab_probe_runner.py +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/tests/fidelity/auto_gen_cases.py +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/tests/fidelity/binary_round_trip.py +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/tests/fidelity/cases.py +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/tests/fidelity/complex_cases.py +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/tests/fidelity/coverage_report.py +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/tests/fidelity/extract.py +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/tests/fidelity/extreme_cases.py +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/tests/fidelity/fake_session.py +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/tests/fidelity/firm_templates/README.md +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/tests/fidelity/firm_templates/__init__.py +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/tests/fidelity/firm_templates/_runner.py +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/tests/fidelity/firm_templates/extractor.py +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/tests/fidelity/firm_templates/test_pw_corpus.py +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/tests/fidelity/firm_templates/test_pw_research_digest.py +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/tests/fidelity/local_runner.py +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/tests/fidelity/mega_cases.py +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/tests/fidelity/op_snapshot.py +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/tests/fidelity/op_snapshots/01_basic_paragraph.json +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/tests/fidelity/op_snapshots/02_multiple_headings.json +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/tests/fidelity/op_snapshots/03_runs_with_formatting.json +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/tests/fidelity/op_snapshots/04_font_name_and_size.json +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/tests/fidelity/op_snapshots/05_font_color_rgb.json +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/tests/fidelity/op_snapshots/06_font_character_properties.json +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/tests/fidelity/op_snapshots/07_font_subscript_superscript.json +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/tests/fidelity/op_snapshots/08_font_highlight.json +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/tests/fidelity/op_snapshots/09_paragraph_alignment.json +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/tests/fidelity/op_snapshots/100_table_negative_indexing.json +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/tests/fidelity/op_snapshots/101_table_cells_flat_iteration.json +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/tests/fidelity/op_snapshots/102_text_with_embedded_special_chars.json +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/tests/fidelity/op_snapshots/104_core_properties_datetime.json +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/tests/fidelity/op_snapshots/105_default_one_section.json +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/tests/fidelity/op_snapshots/106_heading_paragraph_format.json +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/tests/fidelity/op_snapshots/107_varying_row_heights.json +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/tests/fidelity/op_snapshots/10_paragraph_indents.json +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/tests/fidelity/op_snapshots/11_paragraph_spacing.json +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/tests/fidelity/op_snapshots/12_paragraph_keep_options.json +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/tests/fidelity/op_snapshots/13_paragraph_tab_stops.json +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/tests/fidelity/op_snapshots/14_run_add_tab_and_break.json +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/tests/fidelity/op_snapshots/15_run_add_break_page.json +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/tests/fidelity/op_snapshots/16_paragraph_clear_and_insert_before.json +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/tests/fidelity/op_snapshots/17_table_basic.json +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/tests/fidelity/op_snapshots/18_table_cell_text.json +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/tests/fidelity/op_snapshots/19_table_row_column_sizing.json +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/tests/fidelity/op_snapshots/20_table_cell_vertical_alignment.json +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/tests/fidelity/op_snapshots/21_table_alignment_and_autofit.json +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/tests/fidelity/op_snapshots/22_table_cell_paragraphs_iteration.json +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/tests/fidelity/op_snapshots/24_table_add_row_column.json +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/tests/fidelity/op_snapshots/25_table_merge_cells.json +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/tests/fidelity/op_snapshots/26_section_page_setup.json +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/tests/fidelity/op_snapshots/27_section_margins.json +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/tests/fidelity/op_snapshots/28_section_add_new.json +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/tests/fidelity/op_snapshots/29_section_headers_linked.json +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/tests/fidelity/op_snapshots/30_styles_iteration.json +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/tests/fidelity/op_snapshots/31_styles_lookup_and_default.json +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/tests/fidelity/op_snapshots/32_styles_add_paragraph_style.json +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/tests/fidelity/op_snapshots/33_core_properties_set_and_get.json +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/tests/fidelity/op_snapshots/34_inline_shapes_iterate_empty.json +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/tests/fidelity/op_snapshots/35_full_report.json +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/tests/fidelity/op_snapshots/36_replace_text_in_paragraph.json +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/tests/fidelity/op_snapshots/37_iterate_runs_and_format_all_bold.json +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/tests/fidelity/op_snapshots/38_font_all_properties.json +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/tests/fidelity/op_snapshots/39_large_body_100_paragraphs.json +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/tests/fidelity/op_snapshots/40_large_table_10x10.json +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/tests/fidelity/op_snapshots/41_unicode_and_emoji.json +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/tests/fidelity/op_snapshots/42_very_long_paragraph.json +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/tests/fidelity/op_snapshots/43_paragraph_text_round_trip.json +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/tests/fidelity/op_snapshots/44_paragraph_alignment_round_trip.json +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/tests/fidelity/op_snapshots/45_cell_text_round_trip.json +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/tests/fidelity/op_snapshots/46_run_text_setter_round_trip.json +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/tests/fidelity/op_snapshots/47_font_size_round_trip.json +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/tests/fidelity/op_snapshots/48_font_color_round_trip.json +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/tests/fidelity/op_snapshots/49_resume_layout.json +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/tests/fidelity/op_snapshots/50_multi_section_doc.json +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/tests/fidelity/op_snapshots/52_iterate_everything.json +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/tests/fidelity/op_snapshots/53_apply_style_to_paragraphs.json +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/tests/fidelity/op_snapshots/54_empty_everything.json +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/tests/fidelity/op_snapshots/55_single_character_runs.json +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/tests/fidelity/op_snapshots/56_everything_in_one.json +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/tests/fidelity/op_snapshots/57_runs_after_multiple_text_appends.json +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/tests/fidelity/op_snapshots/58_modify_runs_in_place.json +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/tests/fidelity/op_snapshots/59_indent_round_trip.json +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/tests/fidelity/op_snapshots/60_space_round_trip.json +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/tests/fidelity/op_snapshots/61_cell_paragraph_with_runs.json +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/tests/fidelity/op_snapshots/62_many_cell_paragraphs.json +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/tests/fidelity/op_snapshots/63_table_style_round_trip.json +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/tests/fidelity/op_snapshots/64_many_sections.json +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/tests/fidelity/op_snapshots/65_20x20_table_formatted.json +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/tests/fidelity/op_snapshots/66_toc_like_structure.json +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/tests/fidelity/op_snapshots/67_paragraph_insert_before_chain.json +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/tests/fidelity/op_snapshots/68_invoice.json +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/tests/fidelity/op_snapshots/69_newsletter.json +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/tests/fidelity/op_snapshots/70_add_and_iterate_back.json +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/tests/fidelity/op_snapshots/71_academic_paper.json +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/tests/fidelity/op_snapshots/72_legal_contract.json +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/tests/fidelity/op_snapshots/73_form_with_many_tables.json +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/tests/fidelity/op_snapshots/74_paragraph_with_10_runs.json +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/tests/fidelity/op_snapshots/75_paragraph_negative_first_line_indent.json +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/tests/fidelity/op_snapshots/76_rgbcolor_from_string.json +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/tests/fidelity/op_snapshots/77_length_unit_conversions.json +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/tests/fidelity/op_snapshots/78_paragraph_copy_style.json +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/tests/fidelity/op_snapshots/79_bulk_cell_formatting.json +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/tests/fidelity/op_snapshots/80_apply_style_after_add_run.json +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/tests/fidelity/op_snapshots/81_multi_page_with_breaks.json +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/tests/fidelity/op_snapshots/82_add_text_on_existing_run.json +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/tests/fidelity/op_snapshots/83_clear_then_repopulate_paragraph.json +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/tests/fidelity/op_snapshots/84_table_reread_row_count.json +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/tests/fidelity/op_snapshots/85_header_footer_access.json +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/tests/fidelity/op_snapshots/86_font_read_unset_returns_none.json +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/tests/fidelity/op_snapshots/87_500_paragraph_doc.json +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/tests/fidelity/op_snapshots/88_mixed_content_iteration.json +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/tests/fidelity/op_snapshots/89_alignment_clear_via_none.json +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/tests/fidelity/op_snapshots/90_cell_add_paragraph_styled.json +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/tests/fidelity/op_snapshots/91_many_small_tables.json +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/tests/fidelity/op_snapshots/92_margins_every_section.json +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/tests/fidelity/op_snapshots/93_font_bool_reads_after_set.json +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/tests/fidelity/op_snapshots/94_page_break_before_paragraph.json +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/tests/fidelity/op_snapshots/95_paragraph_hyperlinks_empty.json +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/tests/fidelity/op_snapshots/96_paragraph_contains_page_break.json +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/tests/fidelity/op_snapshots/97_document_styles_by_key.json +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/tests/fidelity/op_snapshots/98_style_contains_check.json +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/tests/fidelity/op_snapshots/99_run_add_picture_from_bytes.json +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/tests/fidelity/op_snapshots/ex02_unicode_everywhere.json +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/tests/fidelity/op_snapshots/ex03_1000_paragraphs.json +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/tests/fidelity/op_snapshots/ex04_50x50_table.json +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/tests/fidelity/op_snapshots/ex05_long_text_in_cell.json +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/tests/fidelity/op_snapshots/ex06_hundred_tiny_runs.json +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/tests/fidelity/op_snapshots/ex07_every_font_boolean.json +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/tests/fidelity/op_snapshots/ex08_many_continuous_sections.json +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/tests/fidelity/op_snapshots/ex09_many_tab_stops.json +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/tests/fidelity/op_snapshots/ex10_complex_bom.json +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/tests/fidelity/op_snapshots/ex11_banded_rows_formatting.json +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/tests/fidelity/op_snapshots/ex12_section_reconfigure.json +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/tests/fidelity/op_snapshots/ex13_cell_with_10_paragraphs.json +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/tests/fidelity/op_snapshots/ex14_styled_report_table.json +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/tests/fidelity/op_snapshots/ex15_paragraph_all_format_props.json +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/tests/fidelity/op_snapshots/ex16_runs_interleaved_with_breaks.json +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/tests/fidelity/op_snapshots/ex17_all_break_kinds.json +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/tests/fidelity/op_snapshots/ex18_read_back_large_doc.json +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/tests/fidelity/op_snapshots/ex19_mutate_all_runs.json +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/tests/fidelity/op_snapshots/ex20_kitchen_sink_v2.json +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/tests/fidelity/op_snapshots/mega01_book_chapter.json +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/tests/fidelity/op_snapshots/mega02_research_proposal.json +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/tests/fidelity/op_snapshots/mega03_financial_statement.json +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/tests/fidelity/op_snapshots/mega04_recipe_card.json +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/tests/fidelity/op_snapshots/mega05_user_manual.json +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/tests/fidelity/op_snapshots/mega06_complex_newsletter.json +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/tests/fidelity/op_snapshots/mega07_budget_spreadsheet.json +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/tests/fidelity/op_snapshots/mega08_product_catalog.json +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/tests/fidelity/op_snapshots/mega09_signed_contract.json +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/tests/fidelity/op_snapshots/mega10_api_documentation.json +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/tests/fidelity/op_snapshots/rw01_official_quickstart.json +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/tests/fidelity/op_snapshots/rw02_paragraph_style_list.json +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/tests/fidelity/op_snapshots/rw03_character_formatting.json +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/tests/fidelity/op_snapshots/rw04_section_page_setup.json +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/tests/fidelity/op_snapshots/rw05_toc_pattern.json +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/tests/fidelity/op_snapshots/rw06_meeting_minutes.json +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/tests/fidelity/op_snapshots/rw07_dense_formatting_demo.json +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/tests/fidelity/op_snapshots/rw08_table_merged_header.json +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/tests/fidelity/op_snapshots/rw09_bulk_run_iteration.json +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/tests/fidelity/op_snapshots/rw10_colored_grid_table.json +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/tests/fidelity/op_snapshots/rw11_header_text.json +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/tests/fidelity/op_snapshots/rw12_first_page_footer.json +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/tests/fidelity/op_snapshots/rw13_even_page_header.json +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/tests/fidelity/op_snapshots/rw15_paragraph_style_instance.json +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/tests/fidelity/ours_spec.json +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/tests/fidelity/parity_crawl.py +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/tests/fidelity/parity_diff.json +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/tests/fidelity/real_world_cases.py +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/tests/fidelity/round_trip_tests.py +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/tests/fidelity/stock_spec.json +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/tests/fidelity/test_e2e_against_staging.py +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/tests/parity/README.md +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/tests/parity/__init__.py +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/tests/parity/baseline_gaps.json +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/tests/parity/compare.py +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/tests/parity/intentional_deviations.json +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/tests/parity/introspect.py +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/tests/parity/reports/GAP_ANALYSIS.md +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/tests/parity/reports/gap_report.json +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/tests/parity/run_parity.py +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/tests/parity/snapshots/athena_latest.json +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/tests/parity/snapshots/upstream_python_docx_1.2.0.json +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/tests/parity/test_parity_gap.py +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/tests/test_add_section_extract_items.py +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/tests/test_athena_extensions_contract.py +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/tests/test_athena_extensions_registry.py +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/tests/test_batching_perf.py +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/tests/test_block_not_found_error.py +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/tests/test_buffer.py +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/tests/test_cell_add_paragraph_wire_shape.py +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/tests/test_cell_add_table_not_supported.py +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/tests/test_cell_fastpath_runs.py +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/tests/test_cell_inner_add_hyperlink_stash.py +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/tests/test_cell_inner_add_run_via_cell_insert.py +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/tests/test_cell_inner_format_stash.py +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/tests/test_cell_inner_run_format_stash.py +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/tests/test_cell_inner_run_guard.py +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/tests/test_cell_text_plain_fastpath.py +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/tests/test_cell_text_replace_semantics.py +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/tests/test_citations.py +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/tests/test_collapsed_range_format.py +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/tests/test_command_dataclasses.py +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/tests/test_commands.py +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/tests/test_comments.py +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/tests/test_document_asset_id_property.py +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/tests/test_document_clear.py +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/tests/test_document_create.py +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/tests/test_document_create_from_template.py +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/tests/test_document_factory_validation.py +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/tests/test_docx_exec_lab.py +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/tests/test_docx_exec_lab_server.py +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/tests/test_e2e_partial_failure_cascade.py +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/tests/test_execution_scope.py +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/tests/test_http_transport.py +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/tests/test_hyperlink_coalescing.py +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/tests/test_image_url_data_uri.py +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/tests/test_insert_deferred.py +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/tests/test_iter_inner_content.py +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/tests/test_list_styles.py +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/tests/test_merged_cell_secondary_slot.py +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/tests/test_merged_cells.py +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/tests/test_oxml_shim.py +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/tests/test_paragraph_text_len_cache.py +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/tests/test_parity_misc.py +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/tests/test_parity_round2.py +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/tests/test_partial_failure_cascade.py +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/tests/test_phase_a_behavior.py +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/tests/test_phase_b_headers_footers.py +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/tests/test_phase_c_tables.py +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/tests/test_positional_cell_id.py +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/tests/test_postproc_cell_format_rewrite.py +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/tests/test_postproc_cell_run_format_rewrite.py +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/tests/test_postproc_ref_restore.py +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/tests/test_pr19766_review_fixes.py +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/tests/test_ptc.py +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/tests/test_python_docx_api_parity.py +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/tests/test_revisions.py +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/tests/test_run_add_picture_anchor.py +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/tests/test_silent_stub_add_paragraph_style.py +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/tests/test_silent_stub_add_picture.py +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/tests/test_silent_stub_add_run.py +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/tests/test_silent_stub_cell_add_paragraph.py +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/tests/test_silent_stub_comments_add_comment.py +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/tests/test_silent_stub_comments_get.py +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/tests/test_silent_stub_document_audit.py +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/tests/test_silent_stub_document_element.py +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/tests/test_silent_stub_enum_section.py +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/tests/test_silent_stub_font_audit.py +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/tests/test_silent_stub_header_footer.py +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/tests/test_silent_stub_hyperlink.py +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/tests/test_silent_stub_inline_shape.py +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/tests/test_silent_stub_insert_paragraph_before.py +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/tests/test_silent_stub_misc.py +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/tests/test_silent_stub_paragraph_strict.py +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/tests/test_silent_stub_paragraph_style.py +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/tests/test_silent_stub_paragraph_style_strict.py +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/tests/test_silent_stub_parfmt.py +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/tests/test_silent_stub_row_col_cell.py +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/tests/test_silent_stub_run_add_break.py +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/tests/test_silent_stub_run_bool_setters.py +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/tests/test_silent_stub_run_style.py +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/tests/test_silent_stub_run_style_strict.py +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/tests/test_silent_stub_run_text.py +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/tests/test_silent_stub_run_underline.py +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/tests/test_silent_stub_section_audit.py +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/tests/test_silent_stub_section_dimensions.py +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/tests/test_silent_stub_section_onoff.py +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/tests/test_silent_stub_settings.py +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/tests/test_silent_stub_shared_audit.py +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/tests/test_silent_stub_style.py +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/tests/test_silent_stub_styles.py +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/tests/test_silent_stub_table_audit.py +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/tests/test_silent_stub_table_cell.py +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/tests/test_silent_stub_table_dimensions.py +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/tests/test_silent_stub_table_layout.py +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/tests/test_smoke_integration.py +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/tests/test_style_acceptance.py +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/tests/test_style_font.py +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/tests/test_style_setters_contract.py +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/tests/test_table_set_cell_perf.py +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/tests/test_table_style_id_resolution.py +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/tests/test_temporarily_unavailable.py +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/tests/test_validate_find_replace_asset_script.py +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/tests/test_wire_contract.py +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/tests/test_xml_attr_guard.py +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/tests/test_zod_wire_contract.py +0 -0
- {athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/uv.lock +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: athena-python-docx
|
|
3
|
-
Version: 0.21.
|
|
3
|
+
Version: 0.21.7
|
|
4
4
|
Summary: Drop-in replacement for python-docx that connects to Athena's DOCX Studio collaborative document stack
|
|
5
5
|
Project-URL: Homepage, https://athenaintelligence.ai
|
|
6
6
|
Author-email: Athena Intelligence <engineering@athenaintelligence.ai>
|
|
@@ -1222,7 +1222,23 @@ class Document:
|
|
|
1222
1222
|
),
|
|
1223
1223
|
)
|
|
1224
1224
|
if isinstance(result, dict):
|
|
1225
|
-
|
|
1225
|
+
# Tolerate an older docx-studio deployment that returned only
|
|
1226
|
+
# ``{"matches": [...]}``. The SDK's public contract promises
|
|
1227
|
+
# ``count`` and ``truncated`` too; normalizing here prevents a
|
|
1228
|
+
# model script from crashing with ``KeyError: 'count'`` during a
|
|
1229
|
+
# rolling deploy. The server now supplies the true total count,
|
|
1230
|
+
# while this fallback can conservatively report the returned size.
|
|
1231
|
+
matches_obj: object = result.get("matches", [])
|
|
1232
|
+
matches: list[object] = matches_obj if isinstance(matches_obj, list) else []
|
|
1233
|
+
count_obj: object = result.get("count", len(matches))
|
|
1234
|
+
count: int = int(count_obj) if isinstance(count_obj, (int, float)) else len(matches)
|
|
1235
|
+
truncated_obj: object = result.get("truncated", count > len(matches))
|
|
1236
|
+
return {
|
|
1237
|
+
**result,
|
|
1238
|
+
"count": count,
|
|
1239
|
+
"matches": matches,
|
|
1240
|
+
"truncated": bool(truncated_obj),
|
|
1241
|
+
}
|
|
1226
1242
|
return {"count": 0, "matches": [], "truncated": False}
|
|
1227
1243
|
|
|
1228
1244
|
@athena_extension(
|
|
@@ -1477,8 +1477,9 @@ class _Cell:
|
|
|
1477
1477
|
|
|
1478
1478
|
def _cell_info_at(self, row: int, col: int) -> dict | None:
|
|
1479
1479
|
"""Raw ``tables.getCells`` for (row, col). Returns ``None`` when
|
|
1480
|
-
DOCX Studio reports no cell at that grid position
|
|
1481
|
-
|
|
1480
|
+
DOCX Studio reports no cell at that grid position. Current servers
|
|
1481
|
+
resolve a secondary slot covered by a colspan to its master cell;
|
|
1482
|
+
older servers returned ``None`` for that case."""
|
|
1482
1483
|
nid: str = self._table._fresh_node_id()
|
|
1483
1484
|
result: object = run_sync(
|
|
1484
1485
|
self._table._session.doc.tables.get_cells(
|
|
@@ -1500,8 +1501,8 @@ class _Cell:
|
|
|
1500
1501
|
def _cell_info(self) -> dict | None:
|
|
1501
1502
|
"""Return the cell info backing ``(self._row, self._col)``.
|
|
1502
1503
|
|
|
1503
|
-
When ``self`` is the secondary slot of a horizontal merge,
|
|
1504
|
-
DOCX Studio
|
|
1504
|
+
When ``self`` is the secondary slot of a horizontal merge, older
|
|
1505
|
+
DOCX Studio deployments return an empty cell list (only the master is
|
|
1505
1506
|
addressable by its top-left position). Mirror python-docx's
|
|
1506
1507
|
``_Cell``-on-merge semantics by walking back along the row to
|
|
1507
1508
|
find the first cell whose ``colspan`` covers our grid column,
|
|
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "athena-python-docx"
|
|
7
|
-
version = "0.21.
|
|
7
|
+
version = "0.21.7"
|
|
8
8
|
description = "Drop-in replacement for python-docx that connects to Athena's DOCX Studio collaborative document stack"
|
|
9
9
|
readme = "README.md"
|
|
10
10
|
license = "MIT"
|
|
@@ -56,3 +56,9 @@ markers = [
|
|
|
56
56
|
[tool.ruff]
|
|
57
57
|
line-length = 100
|
|
58
58
|
target-version = "py311"
|
|
59
|
+
|
|
60
|
+
[tool.ruff.lint]
|
|
61
|
+
# Keep the SDK's historical Ruff contract explicit. Ruff 0.16 expanded its
|
|
62
|
+
# implicit defaults, which otherwise turns an unpinned CI upgrade into hundreds
|
|
63
|
+
# of unrelated findings. Broader rule families should be adopted deliberately.
|
|
64
|
+
select = ["E4", "E7", "E9", "F"]
|
{athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/tests/test_find_replace_session_open.py
RENAMED
|
@@ -231,3 +231,22 @@ def test_find_text_returns_server_context(fake_sd_methods: Any) -> None:
|
|
|
231
231
|
assert result["truncated"] is True
|
|
232
232
|
assert session.open.await_count == 1
|
|
233
233
|
assert session.send_command.await_count == 1
|
|
234
|
+
|
|
235
|
+
|
|
236
|
+
def test_find_text_normalizes_legacy_matches_only_response(
|
|
237
|
+
fake_sd_methods: Any,
|
|
238
|
+
) -> None:
|
|
239
|
+
"""Rolling deploys must not make ``result['count']`` raise KeyError."""
|
|
240
|
+
session = _make_unopened_session(fake_sd_methods)
|
|
241
|
+
session.send_command.return_value = {
|
|
242
|
+
"matches": [{"text": "Buyer"}, {"text": "Buyer"}],
|
|
243
|
+
}
|
|
244
|
+
doc = _make_unopened_document(session)
|
|
245
|
+
|
|
246
|
+
result = doc.find_text("Buyer")
|
|
247
|
+
|
|
248
|
+
assert result == {
|
|
249
|
+
"count": 2,
|
|
250
|
+
"matches": [{"text": "Buyer"}, {"text": "Buyer"}],
|
|
251
|
+
"truncated": False,
|
|
252
|
+
}
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/scripts/smoke_test_block_not_found.py
RENAMED
|
File without changes
|
{athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/scripts/validate_find_replace_asset.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/tests/fidelity/firm_templates/README.md
RENAMED
|
File without changes
|
{athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/tests/fidelity/firm_templates/__init__.py
RENAMED
|
File without changes
|
{athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/tests/fidelity/firm_templates/_runner.py
RENAMED
|
File without changes
|
{athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/tests/fidelity/firm_templates/extractor.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{athena_python_docx-0.21.6 → athena_python_docx-0.21.7}/tests/fidelity/op_snapshots/68_invoice.json
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|