python-hwpx 1.7__tar.gz → 1.8__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {python_hwpx-1.7/src/python_hwpx.egg-info → python_hwpx-1.8}/PKG-INFO +1 -1
- {python_hwpx-1.7 → python_hwpx-1.8}/pyproject.toml +1 -1
- {python_hwpx-1.7 → python_hwpx-1.8}/src/hwpx/oxml/document.py +2 -2
- {python_hwpx-1.7 → python_hwpx-1.8/src/python_hwpx.egg-info}/PKG-INFO +1 -1
- {python_hwpx-1.7 → python_hwpx-1.8}/tests/test_document_formatting.py +3 -0
- {python_hwpx-1.7 → python_hwpx-1.8}/LICENSE +0 -0
- {python_hwpx-1.7 → python_hwpx-1.8}/README.md +0 -0
- {python_hwpx-1.7 → python_hwpx-1.8}/setup.cfg +0 -0
- {python_hwpx-1.7 → python_hwpx-1.8}/src/hwpx/__init__.py +0 -0
- {python_hwpx-1.7 → python_hwpx-1.8}/src/hwpx/data/Skeleton.hwpx +0 -0
- {python_hwpx-1.7 → python_hwpx-1.8}/src/hwpx/document.py +0 -0
- {python_hwpx-1.7 → python_hwpx-1.8}/src/hwpx/opc/package.py +0 -0
- {python_hwpx-1.7 → python_hwpx-1.8}/src/hwpx/oxml/__init__.py +0 -0
- {python_hwpx-1.7 → python_hwpx-1.8}/src/hwpx/oxml/body.py +0 -0
- {python_hwpx-1.7 → python_hwpx-1.8}/src/hwpx/oxml/common.py +0 -0
- {python_hwpx-1.7 → python_hwpx-1.8}/src/hwpx/oxml/header.py +0 -0
- {python_hwpx-1.7 → python_hwpx-1.8}/src/hwpx/oxml/parser.py +0 -0
- {python_hwpx-1.7 → python_hwpx-1.8}/src/hwpx/oxml/schema.py +0 -0
- {python_hwpx-1.7 → python_hwpx-1.8}/src/hwpx/oxml/utils.py +0 -0
- {python_hwpx-1.7 → python_hwpx-1.8}/src/hwpx/package.py +0 -0
- {python_hwpx-1.7 → python_hwpx-1.8}/src/hwpx/templates.py +0 -0
- {python_hwpx-1.7 → python_hwpx-1.8}/src/hwpx/tools/__init__.py +0 -0
- {python_hwpx-1.7 → python_hwpx-1.8}/src/hwpx/tools/_schemas/header.xsd +0 -0
- {python_hwpx-1.7 → python_hwpx-1.8}/src/hwpx/tools/_schemas/section.xsd +0 -0
- {python_hwpx-1.7 → python_hwpx-1.8}/src/hwpx/tools/object_finder.py +0 -0
- {python_hwpx-1.7 → python_hwpx-1.8}/src/hwpx/tools/text_extractor.py +0 -0
- {python_hwpx-1.7 → python_hwpx-1.8}/src/hwpx/tools/validator.py +0 -0
- {python_hwpx-1.7 → python_hwpx-1.8}/src/python_hwpx.egg-info/SOURCES.txt +0 -0
- {python_hwpx-1.7 → python_hwpx-1.8}/src/python_hwpx.egg-info/dependency_links.txt +0 -0
- {python_hwpx-1.7 → python_hwpx-1.8}/src/python_hwpx.egg-info/entry_points.txt +0 -0
- {python_hwpx-1.7 → python_hwpx-1.8}/src/python_hwpx.egg-info/requires.txt +0 -0
- {python_hwpx-1.7 → python_hwpx-1.8}/src/python_hwpx.egg-info/top_level.txt +0 -0
- {python_hwpx-1.7 → python_hwpx-1.8}/tests/test_inline_models.py +0 -0
- {python_hwpx-1.7 → python_hwpx-1.8}/tests/test_integration_hwpx_compatibility.py +0 -0
- {python_hwpx-1.7 → python_hwpx-1.8}/tests/test_memo_and_style_editing.py +0 -0
- {python_hwpx-1.7 → python_hwpx-1.8}/tests/test_oxml_parsing.py +0 -0
- {python_hwpx-1.7 → python_hwpx-1.8}/tests/test_section_headers.py +0 -0
- {python_hwpx-1.7 → python_hwpx-1.8}/tests/test_tables_default_border.py +0 -0
- {python_hwpx-1.7 → python_hwpx-1.8}/tests/test_text_extractor_annotations.py +0 -0
|
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "python-hwpx"
|
|
7
|
-
version = "1.
|
|
7
|
+
version = "1.8"
|
|
8
8
|
description = "Hancom HWPX 패키지를 로드하고 편집하기 위한 Python 유틸리티 모음"
|
|
9
9
|
readme = { file = "README.md", content-type = "text/markdown" }
|
|
10
10
|
license = { file = "LICENSE" }
|
|
@@ -119,14 +119,14 @@ def _create_paragraph_element(
|
|
|
119
119
|
return paragraph
|
|
120
120
|
|
|
121
121
|
|
|
122
|
-
_LAYOUT_CACHE_ELEMENT_NAMES = {"
|
|
122
|
+
_LAYOUT_CACHE_ELEMENT_NAMES = {"linesegarray"}
|
|
123
123
|
|
|
124
124
|
|
|
125
125
|
def _clear_paragraph_layout_cache(paragraph: ET.Element) -> None:
|
|
126
126
|
"""Remove cached layout metadata such as ``<hp:lineSegArray>``."""
|
|
127
127
|
|
|
128
128
|
for child in list(paragraph):
|
|
129
|
-
if _element_local_name(child) in _LAYOUT_CACHE_ELEMENT_NAMES:
|
|
129
|
+
if _element_local_name(child).lower() in _LAYOUT_CACHE_ELEMENT_NAMES:
|
|
130
130
|
paragraph.remove(child)
|
|
131
131
|
|
|
132
132
|
|
|
@@ -309,7 +309,9 @@ def test_table_set_cell_text_removes_layout_cache() -> None:
|
|
|
309
309
|
paragraph = sublist.find(f"{HP}p")
|
|
310
310
|
assert paragraph is not None
|
|
311
311
|
ET.SubElement(paragraph, f"{HP}lineSegArray")
|
|
312
|
+
ET.SubElement(paragraph, f"{HP}linesegarray")
|
|
312
313
|
assert paragraph.find(f"{HP}lineSegArray") is not None
|
|
314
|
+
assert paragraph.find(f"{HP}linesegarray") is not None
|
|
313
315
|
text_element = paragraph.find(f".//{HP}t")
|
|
314
316
|
assert text_element is not None
|
|
315
317
|
text_element.text = "Cached"
|
|
@@ -318,6 +320,7 @@ def test_table_set_cell_text_removes_layout_cache() -> None:
|
|
|
318
320
|
|
|
319
321
|
assert table.cell(0, 0).text == "Updated"
|
|
320
322
|
assert paragraph.find(f"{HP}lineSegArray") is None
|
|
323
|
+
assert paragraph.find(f"{HP}linesegarray") is None
|
|
321
324
|
|
|
322
325
|
|
|
323
326
|
def test_table_merge_cells_updates_spans_and_structure() -> None:
|
|
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
|