hwpxkit 0.2.0__tar.gz → 0.2.1__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/Cargo.lock +2 -2
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/Cargo.toml +1 -1
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/PKG-INFO +7 -7
- {hwpxkit-0.2.0/packages/hwpx-python → hwpxkit-0.2.1}/README.md +6 -6
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/packages/hwpx-python/Cargo.toml +2 -2
- {hwpxkit-0.2.0 → hwpxkit-0.2.1/packages/hwpx-python}/README.md +6 -6
- {hwpxkit-0.2.0/packages/hwpx-python/python/hwpx → hwpxkit-0.2.1/packages/hwpx-python/python/hwpxkit}/__init__.py +6 -6
- {hwpxkit-0.2.0/packages/hwpx-python/python/hwpx → hwpxkit-0.2.1/packages/hwpx-python/python/hwpxkit}/__init__.pyi +1 -1
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/packages/hwpx-python/scripts/check_release_docs_test.py +19 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/packages/hwpx-python/scripts/check_release_versions.py +28 -8
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/packages/hwpx-python/scripts/check_release_versions_test.py +56 -3
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/packages/hwpx-python/scripts/check_sdist_contents.py +8 -8
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/packages/hwpx-python/scripts/check_sdist_contents_test.py +23 -23
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/packages/hwpx-python/scripts/check_sdist_install.py +9 -7
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/packages/hwpx-python/scripts/check_sdist_install_test.py +25 -22
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/packages/hwpx-python/scripts/check_wheel_contents.py +11 -11
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/packages/hwpx-python/scripts/check_wheel_contents_test.py +55 -55
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/packages/hwpx-python/scripts/check_wheel_install.py +9 -7
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/packages/hwpx-python/scripts/check_wheel_install_test.py +14 -11
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/packages/hwpx-python/src/lib.rs +5 -4
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/packages/hwpx-python/uv.lock +1 -1
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/pyproject.toml +7 -7
- {hwpxkit-0.2.0/python/hwpx → hwpxkit-0.2.1/python/hwpxkit}/__init__.py +6 -6
- {hwpxkit-0.2.0/python/hwpx → hwpxkit-0.2.1/python/hwpxkit}/__init__.pyi +1 -1
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/Cargo.toml +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/README.md +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/benches/hwpx_bench_data.rs +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/benches/parse_benchmark.rs +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/cfb.rs +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/decompress.rs +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/diagnostics/mod.rs +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/document/bindata/mod.rs +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/document/bodytext/CLAUDE.md +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/document/bodytext/char_shape.rs +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/document/bodytext/chart_data.rs +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/document/bodytext/constants.rs +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/document/bodytext/control_char.rs +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/document/bodytext/ctrl_data.rs +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/document/bodytext/ctrl_header/auto_number.rs +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/document/bodytext/ctrl_header/bookmark_marker.rs +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/document/bodytext/ctrl_header/caption.rs +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/document/bodytext/ctrl_header/column_definition.rs +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/document/bodytext/ctrl_header/comment.rs +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/document/bodytext/ctrl_header/field.rs +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/document/bodytext/ctrl_header/footnote_endnote.rs +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/document/bodytext/ctrl_header/header_footer.rs +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/document/bodytext/ctrl_header/hide.rs +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/document/bodytext/ctrl_header/ids.rs +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/document/bodytext/ctrl_header/mod.rs +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/document/bodytext/ctrl_header/object_common.rs +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/document/bodytext/ctrl_header/overlap.rs +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/document/bodytext/ctrl_header/page_adjust.rs +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/document/bodytext/ctrl_header/page_number_position.rs +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/document/bodytext/ctrl_header/section_definition.rs +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/document/bodytext/ctrl_header/types.rs +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/document/bodytext/eqedit.rs +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/document/bodytext/footnote_shape.rs +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/document/bodytext/form_object.rs +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/document/bodytext/line_seg.rs +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/document/bodytext/list_header.rs +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/document/bodytext/memo_list.rs +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/document/bodytext/memo_shape.rs +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/document/bodytext/mod.rs +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/document/bodytext/page_border_fill.rs +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/document/bodytext/page_def.rs +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/document/bodytext/para_header.rs +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/document/bodytext/range_tag.rs +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/document/bodytext/record_tree.rs +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/document/bodytext/shape_component/arc.rs +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/document/bodytext/shape_component/common.rs +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/document/bodytext/shape_component/container.rs +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/document/bodytext/shape_component/curve.rs +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/document/bodytext/shape_component/ellipse.rs +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/document/bodytext/shape_component/line.rs +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/document/bodytext/shape_component/mod.rs +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/document/bodytext/shape_component/ole.rs +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/document/bodytext/shape_component/picture.rs +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/document/bodytext/shape_component/polygon.rs +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/document/bodytext/shape_component/rectangle.rs +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/document/bodytext/shape_component/textart.rs +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/document/bodytext/shape_component/unknown.rs +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/document/bodytext/table.rs +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/document/bodytext/video_data.rs +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/document/constants.rs +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/document/docinfo/bin_data.rs +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/document/docinfo/border_fill.rs +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/document/docinfo/bullet.rs +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/document/docinfo/char_shape.rs +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/document/docinfo/compatible_document.rs +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/document/docinfo/constants.rs +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/document/docinfo/distribute_doc_data.rs +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/document/docinfo/doc_data.rs +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/document/docinfo/document_properties.rs +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/document/docinfo/face_name.rs +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/document/docinfo/forbidden_char.rs +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/document/docinfo/id_mappings.rs +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/document/docinfo/layout_compatibility.rs +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/document/docinfo/memo_shape.rs +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/document/docinfo/mod.rs +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/document/docinfo/numbering.rs +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/document/docinfo/para_shape.rs +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/document/docinfo/style.rs +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/document/docinfo/tab_def.rs +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/document/docinfo/track_change.rs +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/document/docinfo/track_change_author.rs +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/document/docinfo/track_change_content.rs +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/document/fileheader/constants.rs +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/document/fileheader/mod.rs +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/document/fileheader/serialize.rs +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/document/mod.rs +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/document/preview_image.rs +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/document/preview_text.rs +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/document/scripts/mod.rs +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/document/scripts/script.rs +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/document/scripts/script_version.rs +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/document/summary_information.rs +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/document/xml_template.rs +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/error.rs +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/lib.rs +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/parser/detect.rs +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/parser/hwpx/CLAUDE.md +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/parser/hwpx/bindata.rs +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/parser/hwpx/container.rs +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/parser/hwpx/header.rs +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/parser/hwpx/mod.rs +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/parser/hwpx/package.rs +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/parser/hwpx/section.rs +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/parser/hwpx/xml_attr.rs +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/parser/hwpx/xml_budget.rs +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/parser/mod.rs +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/types.rs +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/viewer/core/bodytext.rs +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/viewer/core/mod.rs +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/viewer/core/paragraph.rs +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/viewer/core/renderer.rs +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/viewer/html/CLAUDE.md +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/viewer/html/common.rs +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/viewer/html/ctrl_header/column_def.rs +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/viewer/html/ctrl_header/endnote.rs +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/viewer/html/ctrl_header/field.rs +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/viewer/html/ctrl_header/footer.rs +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/viewer/html/ctrl_header/footnote.rs +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/viewer/html/ctrl_header/header.rs +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/viewer/html/ctrl_header/mod.rs +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/viewer/html/ctrl_header/section_def.rs +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/viewer/html/ctrl_header/shape_object.rs +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/viewer/html/ctrl_header/table/cells.rs +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/viewer/html/ctrl_header/table/constants.rs +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/viewer/html/ctrl_header/table/geometry.rs +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/viewer/html/ctrl_header/table/mod.rs +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/viewer/html/ctrl_header/table/position.rs +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/viewer/html/ctrl_header/table/process.rs +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/viewer/html/ctrl_header/table/render.rs +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/viewer/html/ctrl_header/table/size.rs +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/viewer/html/ctrl_header/table/svg/borders.rs +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/viewer/html/ctrl_header/table/svg/fills.rs +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/viewer/html/ctrl_header/table/svg.rs +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/viewer/html/document.rs +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/viewer/html/image.rs +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/viewer/html/line_segment.rs +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/viewer/html/mod.rs +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/viewer/html/options.rs +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/viewer/html/page.rs +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/viewer/html/pagination.rs +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/viewer/html/paragraph.rs +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/viewer/html/security.rs +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/viewer/html/styles.rs +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/viewer/html/text.rs +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/viewer/markdown/collect.rs +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/viewer/markdown/common.rs +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/viewer/markdown/ctrl_header/column_def.rs +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/viewer/markdown/ctrl_header/endnote.rs +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/viewer/markdown/ctrl_header/field.rs +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/viewer/markdown/ctrl_header/footer.rs +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/viewer/markdown/ctrl_header/footnote.rs +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/viewer/markdown/ctrl_header/header.rs +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/viewer/markdown/ctrl_header/mod.rs +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/viewer/markdown/ctrl_header/page_number.rs +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/viewer/markdown/ctrl_header/shape_object.rs +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/viewer/markdown/ctrl_header/table.rs +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/viewer/markdown/document/bodytext/CLAUDE.md +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/viewer/markdown/document/bodytext/list_header.rs +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/viewer/markdown/document/bodytext/mod.rs +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/viewer/markdown/document/bodytext/para_text.rs +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/viewer/markdown/document/bodytext/paragraph.rs +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/viewer/markdown/document/bodytext/shape_component.rs +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/viewer/markdown/document/bodytext/shape_component_picture.rs +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/viewer/markdown/document/bodytext/table.rs +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/viewer/markdown/document/docinfo.rs +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/viewer/markdown/document/fileheader.rs +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/viewer/markdown/document/mod.rs +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/viewer/markdown/mod.rs +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/viewer/markdown/renderer.rs +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/viewer/markdown/security.rs +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/viewer/markdown/utils.rs +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/viewer/mod.rs +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/viewer/shared.rs +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/cfb_tests.rs +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/common.rs +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/corpus/manifest.toml +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/corpus_tests.rs +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/decompress_tests.rs +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/fileheader_tests.rs +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/fixtures/CLAUDE.md +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/fixtures/aligns.hwp +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/fixtures/borderfill.hwp +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/fixtures/charshape.hwp +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/fixtures/charstyle.hwp +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/fixtures/example.hwp +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/fixtures/facename.hwp +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/fixtures/facename2.hwp +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/fixtures/footnote-endnote.hwp +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/fixtures/headerfooter.hwp +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/fixtures/hwpSummaryInformation.hwp +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/fixtures/hyperlink.hwpx +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/fixtures/issue144-fields-crossing-lineseg-boundary.hwp +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/fixtures/issue30.hwp +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/fixtures/linespacing.html +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/fixtures/linespacing.hwp +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/fixtures/linespacing.hwpx +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/fixtures/linespacing.xml +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/fixtures/linespacing.xsl +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/fixtures/linespacing_style.css +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/fixtures/lists-bullet.html +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/fixtures/lists-bullet.hwp +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/fixtures/lists-bullet_style.css +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/fixtures/lists.hwp +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/fixtures/matrix.hwp +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/fixtures/multicolumns-in-common-controls.html +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/fixtures/multicolumns-in-common-controls.hwp +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/fixtures/multicolumns-in-common-controls_style.css +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/fixtures/multicolumns-layout.hwp +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/fixtures/multicolumns-widths.hwp +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/fixtures/multicolumns.hwp +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/fixtures/noori-1page.jpg +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/fixtures/noori-2page.jpg +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/fixtures/noori-3page.jpg +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/fixtures/noori.html +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/fixtures/noori.hwp +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/fixtures/noori_hd1.png +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/fixtures/noori_hd2.png +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/fixtures/noori_hd3.png +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/fixtures/noori_hd4.png +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/fixtures/noori_style.css +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/fixtures/outline.hwp +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/fixtures/page.hwp +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/fixtures/pagedefs.html +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/fixtures/pagedefs.hwp +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/fixtures/pagedefs_style.css +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/fixtures/parashape.hwp +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/fixtures/password-12345.hwp +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/fixtures/sample-5017-pics.hwp +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/fixtures/sample-5017.hwp +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/fixtures/selfintroduce.hwp +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/fixtures/shapecontainer-2.hwp +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/fixtures/shapeline.hwp +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/fixtures/shapepict-scaled.hwp +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/fixtures/shaperect.hwp +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/fixtures/strikethrough.html +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/fixtures/strikethrough.hwp +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/fixtures/strikethrough_style.css +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/fixtures/tabdef.hwp +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/fixtures/table-caption.html +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/fixtures/table-caption.hwp +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/fixtures/table-caption_style.css +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/fixtures/table-position.html +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/fixtures/table-position.hwp +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/fixtures/table-position_style.css +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/fixtures/table.html +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/fixtures/table.hwp +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/fixtures/table2.html +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/fixtures/table2.hwp +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/fixtures/table2_style.css +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/fixtures/table_style.css +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/fixtures/test-hwpx.hwpx +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/fixtures/textbox.hwp +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/fixtures/underline-styles.hwp +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/fixtures/viewtext.hwp +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/hwpx_bench_data_tests.rs +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/hwpx_robustness_tests.rs +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/hwpx_tests.rs +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/parser_tests.rs +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshot_tests.rs +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/CLAUDE.md +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/aligns.html +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/aligns.json +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/aligns.md +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/borderfill.html +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/borderfill.json +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/borderfill.md +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/charshape.html +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/charshape.json +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/charshape.md +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/charstyle.html +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/charstyle.json +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/charstyle.md +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/example.html +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/example.json +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/example.md +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/facename.html +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/facename.json +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/facename.md +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/facename2.html +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/facename2.json +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/facename2.md +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/footnote-endnote.html +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/footnote-endnote.json +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/footnote-endnote.md +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/headerfooter.html +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/headerfooter.json +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/headerfooter.md +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/hwpSummaryInformation.html +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/hwpSummaryInformation.json +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/hwpSummaryInformation.md +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/hwpx_tests__hwpx_hyperlink_html.snap +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/hwpx_tests__hwpx_hyperlink_json.snap +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/hwpx_tests__hwpx_hyperlink_markdown.snap +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/hwpx_tests__hwpx_linespacing_html.snap +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/hwpx_tests__hwpx_linespacing_json.snap +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/hwpx_tests__hwpx_linespacing_markdown.snap +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/hwpx_tests__hwpx_test_hwpx_html.snap +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/hwpx_tests__hwpx_test_hwpx_json.snap +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/hwpx_tests__hwpx_test_hwpx_markdown.snap +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/images/BIN0001.jpg +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/images/BIN0002.bmp +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/images/BIN0003.bmp +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/images/BIN0004.jpg +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/images/noori/BIN0001.jpg +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/images/noori/BIN0002.bmp +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/images/noori/BIN0003.bmp +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/images/noori/BIN0004.jpg +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/issue144-fields-crossing-lineseg-boundary.html +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/issue144-fields-crossing-lineseg-boundary.json +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/issue144-fields-crossing-lineseg-boundary.md +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/issue30.html +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/issue30.json +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/issue30.md +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/linespacing.html +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/linespacing.json +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/linespacing.md +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/lists-bullet.html +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/lists-bullet.json +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/lists-bullet.md +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/lists.html +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/lists.json +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/lists.md +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/matrix.html +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/matrix.json +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/matrix.md +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/multicolumns-in-common-controls.html +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/multicolumns-in-common-controls.json +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/multicolumns-in-common-controls.md +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/multicolumns-layout.html +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/multicolumns-layout.json +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/multicolumns-layout.md +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/multicolumns-widths.html +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/multicolumns-widths.json +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/multicolumns-widths.md +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/multicolumns.html +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/multicolumns.json +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/multicolumns.md +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/noori.html +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/noori.json +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/noori.md +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/outline.html +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/outline.json +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/outline.md +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/page.html +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/page.json +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/page.md +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/pagedefs.html +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/pagedefs.json +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/pagedefs.md +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/parashape.html +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/parashape.json +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/parashape.md +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/sample-5017-pics.json +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/sample-5017-pics.md +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/sample-5017.json +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/sample-5017.md +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/selfintroduce.html +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/selfintroduce.json +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/selfintroduce.md +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/shapecontainer-2.json +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/shapecontainer-2.md +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/shapeline.html +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/shapeline.json +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/shapeline.md +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/shapepict-scaled.json +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/shapepict-scaled.md +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/shaperect.html +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/shaperect.json +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/shaperect.md +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/snapshot_tests__aligns_html.snap +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/snapshot_tests__aligns_json.snap +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/snapshot_tests__aligns_markdown.snap +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/snapshot_tests__borderfill_html.snap +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/snapshot_tests__borderfill_json.snap +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/snapshot_tests__borderfill_markdown.snap +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/snapshot_tests__charshape_html.snap +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/snapshot_tests__charshape_json.snap +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/snapshot_tests__charshape_markdown.snap +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/snapshot_tests__charstyle_html.snap +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/snapshot_tests__charstyle_json.snap +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/snapshot_tests__charstyle_markdown.snap +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/snapshot_tests__example_html.snap +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/snapshot_tests__example_json.snap +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/snapshot_tests__example_markdown.snap +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/snapshot_tests__facename2_html.snap +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/snapshot_tests__facename2_json.snap +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/snapshot_tests__facename2_markdown.snap +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/snapshot_tests__facename_html.snap +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/snapshot_tests__facename_json.snap +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/snapshot_tests__facename_markdown.snap +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/snapshot_tests__footnote_endnote_html.snap +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/snapshot_tests__footnote_endnote_json.snap +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/snapshot_tests__footnote_endnote_markdown.snap +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/snapshot_tests__headerfooter_html.snap +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/snapshot_tests__headerfooter_json.snap +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/snapshot_tests__headerfooter_markdown.snap +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/snapshot_tests__hwpSummaryInformation_html.snap +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/snapshot_tests__hwpSummaryInformation_json.snap +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/snapshot_tests__hwpSummaryInformation_markdown.snap +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/snapshot_tests__issue144_fields_crossing_lineseg_boundary_html.snap +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/snapshot_tests__issue144_fields_crossing_lineseg_boundary_json.snap +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/snapshot_tests__issue144_fields_crossing_lineseg_boundary_markdown.snap +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/snapshot_tests__issue30_html.snap +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/snapshot_tests__issue30_json.snap +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/snapshot_tests__issue30_markdown.snap +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/snapshot_tests__linespacing_html.snap +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/snapshot_tests__linespacing_json.snap +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/snapshot_tests__linespacing_markdown.snap +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/snapshot_tests__lists_bullet_html.snap +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/snapshot_tests__lists_bullet_json.snap +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/snapshot_tests__lists_bullet_markdown.snap +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/snapshot_tests__lists_html.snap +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/snapshot_tests__lists_json.snap +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/snapshot_tests__lists_markdown.snap +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/snapshot_tests__matrix_html.snap +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/snapshot_tests__matrix_json.snap +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/snapshot_tests__matrix_markdown.snap +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/snapshot_tests__multicolumns_html.snap +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/snapshot_tests__multicolumns_in_common_controls_html.snap +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/snapshot_tests__multicolumns_in_common_controls_json.snap +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/snapshot_tests__multicolumns_in_common_controls_markdown.snap +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/snapshot_tests__multicolumns_json.snap +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/snapshot_tests__multicolumns_layout_html.snap +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/snapshot_tests__multicolumns_layout_json.snap +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/snapshot_tests__multicolumns_layout_markdown.snap +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/snapshot_tests__multicolumns_markdown.snap +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/snapshot_tests__multicolumns_widths_html.snap +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/snapshot_tests__multicolumns_widths_json.snap +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/snapshot_tests__multicolumns_widths_markdown.snap +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/snapshot_tests__noori_html.snap +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/snapshot_tests__noori_json.snap +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/snapshot_tests__noori_markdown.snap +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/snapshot_tests__outline_html.snap +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/snapshot_tests__outline_json.snap +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/snapshot_tests__outline_markdown.snap +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/snapshot_tests__page_html.snap +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/snapshot_tests__page_json.snap +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/snapshot_tests__page_markdown.snap +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/snapshot_tests__pagedefs_html.snap +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/snapshot_tests__pagedefs_json.snap +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/snapshot_tests__pagedefs_markdown.snap +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/snapshot_tests__parashape_html.snap +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/snapshot_tests__parashape_json.snap +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/snapshot_tests__parashape_markdown.snap +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/snapshot_tests__selfintroduce_html.snap +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/snapshot_tests__selfintroduce_json.snap +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/snapshot_tests__selfintroduce_markdown.snap +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/snapshot_tests__shapeline_html.snap +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/snapshot_tests__shapeline_json.snap +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/snapshot_tests__shapeline_markdown.snap +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/snapshot_tests__shaperect_html.snap +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/snapshot_tests__shaperect_json.snap +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/snapshot_tests__shaperect_markdown.snap +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/snapshot_tests__strikethrough_html.snap +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/snapshot_tests__strikethrough_json.snap +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/snapshot_tests__strikethrough_markdown.snap +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/snapshot_tests__tabdef_html.snap +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/snapshot_tests__tabdef_json.snap +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/snapshot_tests__tabdef_markdown.snap +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/snapshot_tests__table2_html.snap +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/snapshot_tests__table2_json.snap +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/snapshot_tests__table2_markdown.snap +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/snapshot_tests__table_caption_html.snap +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/snapshot_tests__table_caption_json.snap +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/snapshot_tests__table_caption_markdown.snap +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/snapshot_tests__table_html.snap +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/snapshot_tests__table_json.snap +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/snapshot_tests__table_markdown.snap +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/snapshot_tests__table_position_html.snap +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/snapshot_tests__table_position_json.snap +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/snapshot_tests__table_position_markdown.snap +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/snapshot_tests__textbox_html.snap +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/snapshot_tests__textbox_json.snap +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/snapshot_tests__textbox_markdown.snap +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/snapshot_tests__underline_styles_html.snap +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/snapshot_tests__underline_styles_json.snap +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/snapshot_tests__underline_styles_markdown.snap +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/snapshot_tests__viewtext_html.snap +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/snapshot_tests__viewtext_json.snap +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/snapshot_tests__viewtext_markdown.snap +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/strikethrough.html +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/strikethrough.json +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/strikethrough.md +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/tabdef.html +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/tabdef.json +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/tabdef.md +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/table-caption.html +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/table-caption.json +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/table-caption.md +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/table-position.html +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/table-position.json +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/table-position.md +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/table.html +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/table.json +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/table.md +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/table2.html +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/table2.json +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/table2.md +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/textbox.html +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/textbox.json +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/textbox.md +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/underline-styles.html +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/underline-styles.json +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/underline-styles.md +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/viewtext.html +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/viewtext.json +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/viewtext.md +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/test_crossing_hyperlink.rs +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/test_new_file.rs +0 -0
- {hwpxkit-0.2.0/packages/hwpx-python/python/hwpx → hwpxkit-0.2.1/packages/hwpx-python/python/hwpxkit}/py.typed +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/packages/hwpx-python/scripts/check_no_production_debug_output.py +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/packages/hwpx-python/scripts/check_no_production_debug_output_test.py +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/packages/hwpx-python/scripts/check_no_production_panics.py +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/packages/hwpx-python/scripts/check_no_production_panics_test.py +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/packages/hwpx-python/scripts/check_no_production_todos.py +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/packages/hwpx-python/scripts/check_no_production_todos_test.py +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/packages/hwpx-python/scripts/check_pyo3_gil_release.py +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/packages/hwpx-python/scripts/check_pyo3_gil_release_test.py +0 -0
- {hwpxkit-0.2.0 → hwpxkit-0.2.1}/packages/hwpx-python/scripts/check_workflows_test.py +0 -0
- {hwpxkit-0.2.0/python/hwpx → hwpxkit-0.2.1/python/hwpxkit}/py.typed +0 -0
|
@@ -332,7 +332,7 @@ checksum = "fc0fef456e4baa96da950455cd02c081ca953b141298e41db3fc7e36b1da849c"
|
|
|
332
332
|
|
|
333
333
|
[[package]]
|
|
334
334
|
name = "hwp-core"
|
|
335
|
-
version = "0.2.
|
|
335
|
+
version = "0.2.1"
|
|
336
336
|
dependencies = [
|
|
337
337
|
"base64",
|
|
338
338
|
"cfb",
|
|
@@ -354,7 +354,7 @@ dependencies = [
|
|
|
354
354
|
|
|
355
355
|
[[package]]
|
|
356
356
|
name = "hwpx-python"
|
|
357
|
-
version = "0.2.
|
|
357
|
+
version = "0.2.1"
|
|
358
358
|
dependencies = [
|
|
359
359
|
"hwp-core",
|
|
360
360
|
"pyo3",
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: hwpxkit
|
|
3
|
-
Version: 0.2.
|
|
3
|
+
Version: 0.2.1
|
|
4
4
|
Classifier: Development Status :: 4 - Beta
|
|
5
5
|
Classifier: Intended Audience :: Developers
|
|
6
6
|
Classifier: License :: OSI Approved :: MIT License
|
|
@@ -23,7 +23,7 @@ Description-Content-Type: text/markdown; charset=UTF-8; variant=GFM
|
|
|
23
23
|
Project-URL: Homepage, https://github.com/Han-taz/hwpx-rust
|
|
24
24
|
Project-URL: Repository, https://github.com/Han-taz/hwpx-rust
|
|
25
25
|
|
|
26
|
-
#
|
|
26
|
+
# hwpxkit
|
|
27
27
|
|
|
28
28
|
Python bindings for HWP/HWPX document parser.
|
|
29
29
|
|
|
@@ -66,14 +66,14 @@ The built wheel will be in the `dist/` directory.
|
|
|
66
66
|
### Parse a document
|
|
67
67
|
|
|
68
68
|
```python
|
|
69
|
-
import
|
|
69
|
+
import hwpxkit
|
|
70
70
|
|
|
71
71
|
# Parse from file path
|
|
72
|
-
doc =
|
|
72
|
+
doc = hwpxkit.parse_file("document.hwpx")
|
|
73
73
|
|
|
74
74
|
# Or parse from bytes
|
|
75
75
|
with open("document.hwpx", "rb") as f:
|
|
76
|
-
doc =
|
|
76
|
+
doc = hwpxkit.parse(f.read())
|
|
77
77
|
```
|
|
78
78
|
|
|
79
79
|
### Convert to Markdown
|
|
@@ -129,8 +129,8 @@ for item in report["items"]:
|
|
|
129
129
|
|
|
130
130
|
HWP/HWPX input is treated as untrusted. The Rust parser enforces HWPX ZIP, XML, and
|
|
131
131
|
section resource limits and returns structured diagnostics for unsupported or lossy
|
|
132
|
-
content. `
|
|
133
|
-
them into memory; callers that use `
|
|
132
|
+
content. `hwpxkit.parse_file()` rejects source files larger than 512 MiB before reading
|
|
133
|
+
them into memory; callers that use `hwpxkit.parse(bytes)` are responsible for bounding the
|
|
134
134
|
bytes they pass in. See the repository security model for details.
|
|
135
135
|
|
|
136
136
|
### Document properties
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
#
|
|
1
|
+
# hwpxkit
|
|
2
2
|
|
|
3
3
|
Python bindings for HWP/HWPX document parser.
|
|
4
4
|
|
|
@@ -41,14 +41,14 @@ The built wheel will be in the `dist/` directory.
|
|
|
41
41
|
### Parse a document
|
|
42
42
|
|
|
43
43
|
```python
|
|
44
|
-
import
|
|
44
|
+
import hwpxkit
|
|
45
45
|
|
|
46
46
|
# Parse from file path
|
|
47
|
-
doc =
|
|
47
|
+
doc = hwpxkit.parse_file("document.hwpx")
|
|
48
48
|
|
|
49
49
|
# Or parse from bytes
|
|
50
50
|
with open("document.hwpx", "rb") as f:
|
|
51
|
-
doc =
|
|
51
|
+
doc = hwpxkit.parse(f.read())
|
|
52
52
|
```
|
|
53
53
|
|
|
54
54
|
### Convert to Markdown
|
|
@@ -104,8 +104,8 @@ for item in report["items"]:
|
|
|
104
104
|
|
|
105
105
|
HWP/HWPX input is treated as untrusted. The Rust parser enforces HWPX ZIP, XML, and
|
|
106
106
|
section resource limits and returns structured diagnostics for unsupported or lossy
|
|
107
|
-
content. `
|
|
108
|
-
them into memory; callers that use `
|
|
107
|
+
content. `hwpxkit.parse_file()` rejects source files larger than 512 MiB before reading
|
|
108
|
+
them into memory; callers that use `hwpxkit.parse(bytes)` are responsible for bounding the
|
|
109
109
|
bytes they pass in. See the repository security model for details.
|
|
110
110
|
|
|
111
111
|
### Document properties
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[package]
|
|
2
2
|
name = "hwpx-python"
|
|
3
|
-
version = "0.2.
|
|
3
|
+
version = "0.2.1"
|
|
4
4
|
edition = "2021"
|
|
5
5
|
authors = ["kevin <ftkevin12@gmail.com>"]
|
|
6
6
|
license = "MIT"
|
|
@@ -12,7 +12,7 @@ keywords = ["hwp", "hwpx", "hancom", "parser"]
|
|
|
12
12
|
publish = false
|
|
13
13
|
|
|
14
14
|
[lib]
|
|
15
|
-
name = "
|
|
15
|
+
name = "_native"
|
|
16
16
|
crate-type = ["cdylib"]
|
|
17
17
|
|
|
18
18
|
[features]
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
#
|
|
1
|
+
# hwpxkit
|
|
2
2
|
|
|
3
3
|
Python bindings for HWP/HWPX document parser.
|
|
4
4
|
|
|
@@ -41,14 +41,14 @@ The built wheel will be in the `dist/` directory.
|
|
|
41
41
|
### Parse a document
|
|
42
42
|
|
|
43
43
|
```python
|
|
44
|
-
import
|
|
44
|
+
import hwpxkit
|
|
45
45
|
|
|
46
46
|
# Parse from file path
|
|
47
|
-
doc =
|
|
47
|
+
doc = hwpxkit.parse_file("document.hwpx")
|
|
48
48
|
|
|
49
49
|
# Or parse from bytes
|
|
50
50
|
with open("document.hwpx", "rb") as f:
|
|
51
|
-
doc =
|
|
51
|
+
doc = hwpxkit.parse(f.read())
|
|
52
52
|
```
|
|
53
53
|
|
|
54
54
|
### Convert to Markdown
|
|
@@ -104,8 +104,8 @@ for item in report["items"]:
|
|
|
104
104
|
|
|
105
105
|
HWP/HWPX input is treated as untrusted. The Rust parser enforces HWPX ZIP, XML, and
|
|
106
106
|
section resource limits and returns structured diagnostics for unsupported or lossy
|
|
107
|
-
content. `
|
|
108
|
-
them into memory; callers that use `
|
|
107
|
+
content. `hwpxkit.parse_file()` rejects source files larger than 512 MiB before reading
|
|
108
|
+
them into memory; callers that use `hwpxkit.parse(bytes)` are responsible for bounding the
|
|
109
109
|
bytes they pass in. See the repository security model for details.
|
|
110
110
|
|
|
111
111
|
### Document properties
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
"""
|
|
2
|
-
|
|
2
|
+
hwpxkit - Python bindings for HWP/HWPX document parser
|
|
3
3
|
|
|
4
4
|
Example usage:
|
|
5
|
-
>>> import
|
|
5
|
+
>>> import hwpxkit
|
|
6
6
|
>>>
|
|
7
7
|
>>> # Parse from file path
|
|
8
|
-
>>> doc =
|
|
8
|
+
>>> doc = hwpxkit.parse_file("document.hwpx")
|
|
9
9
|
>>>
|
|
10
10
|
>>> # Or parse from bytes
|
|
11
11
|
>>> with open("document.hwpx", "rb") as f:
|
|
12
|
-
... doc =
|
|
12
|
+
... doc = hwpxkit.parse(f.read())
|
|
13
13
|
>>>
|
|
14
14
|
>>> # Convert to markdown
|
|
15
15
|
>>> markdown = doc.to_markdown()
|
|
@@ -25,7 +25,7 @@ Example usage:
|
|
|
25
25
|
>>> json_str = doc.to_json()
|
|
26
26
|
"""
|
|
27
27
|
|
|
28
|
-
from .
|
|
28
|
+
from ._native import parse, parse_file, Document
|
|
29
29
|
|
|
30
30
|
__all__ = ["parse", "parse_file", "Document"]
|
|
31
|
-
__version__ = "0.2.
|
|
31
|
+
__version__ = "0.2.1"
|
|
@@ -9,6 +9,8 @@ from pathlib import Path
|
|
|
9
9
|
|
|
10
10
|
ROOT = Path(__file__).resolve().parents[3]
|
|
11
11
|
RELEASE_DOC = ROOT / "docs" / "release.md"
|
|
12
|
+
SECURITY_DOC = ROOT / "docs" / "security-model.md"
|
|
13
|
+
PERFORMANCE_DOC = ROOT / "docs" / "performance.md"
|
|
12
14
|
ROOT_README = ROOT / "README.md"
|
|
13
15
|
PYTHON_README = ROOT / "packages" / "hwpx-python" / "README.md"
|
|
14
16
|
CI_WORKFLOW = ROOT / ".github" / "workflows" / "ci.yml"
|
|
@@ -116,6 +118,11 @@ class ReleaseDocsTest(unittest.TestCase):
|
|
|
116
118
|
def test_distribution_docs_use_hwpxkit_name(self) -> None:
|
|
117
119
|
self.assertIn("pip install hwpxkit", text(ROOT_README))
|
|
118
120
|
self.assertIn("pip install hwpxkit", text(PYTHON_README))
|
|
121
|
+
self.assertIn("import hwpxkit", text(ROOT_README))
|
|
122
|
+
self.assertIn("import hwpxkit", text(PYTHON_README))
|
|
123
|
+
self.assertIn("hwpxkit.parse_file", text(ROOT_README))
|
|
124
|
+
self.assertIn("hwpxkit.parse_file", text(PYTHON_README))
|
|
125
|
+
self.assertIn("Import `hwpxkit` and verify `hwpxkit.__version__`", text(RELEASE_DOC))
|
|
119
126
|
self.assertIn("PyPI project: `hwpxkit`", text(RELEASE_DOC))
|
|
120
127
|
self.assertIn("https://pypi.org/p/hwpxkit", text(BUILD_WHEELS_WORKFLOW))
|
|
121
128
|
|
|
@@ -123,14 +130,26 @@ class ReleaseDocsTest(unittest.TestCase):
|
|
|
123
130
|
ROOT_README,
|
|
124
131
|
PYTHON_README,
|
|
125
132
|
RELEASE_DOC,
|
|
133
|
+
SECURITY_DOC,
|
|
134
|
+
PERFORMANCE_DOC,
|
|
126
135
|
BUILD_WHEELS_WORKFLOW,
|
|
136
|
+
*sorted((ROOT / "docs").glob("*.md")),
|
|
127
137
|
*sorted((ROOT / "docs" / "plans").glob("*.md")),
|
|
138
|
+
*sorted((ROOT / "docs" / "superpowers" / "plans").glob("*.md")),
|
|
128
139
|
]
|
|
129
140
|
forbidden_tokens = [
|
|
130
141
|
"pip install hwpx\n",
|
|
131
142
|
"PyPI project: `hwpx`",
|
|
132
143
|
"https://pypi.org/p/hwpx\n",
|
|
133
144
|
"hwpx-0.2.0.tar.gz",
|
|
145
|
+
"import hwpx\n",
|
|
146
|
+
"from hwpx import",
|
|
147
|
+
"hwpx.parse",
|
|
148
|
+
"hwpx.parse_file",
|
|
149
|
+
"hwpx.__version__",
|
|
150
|
+
"python/hwpx/",
|
|
151
|
+
"hwpx/__init__.pyi",
|
|
152
|
+
"hwpx/py.typed",
|
|
134
153
|
]
|
|
135
154
|
|
|
136
155
|
for path in doc_paths:
|
|
@@ -15,6 +15,8 @@ VERSION_RE = re.compile(r"^\d+\.\d+\.\d+(?:[-+][0-9A-Za-z.-]+)?$")
|
|
|
15
15
|
INIT_VERSION_RE = re.compile(r"^__version__ = [\"']([^\"']+)[\"']$", re.MULTILINE)
|
|
16
16
|
WORKSPACE_PACKAGES = ("hwp-core", "hwpx-python")
|
|
17
17
|
PYPI_PROJECT_NAME = "hwpxkit"
|
|
18
|
+
PYTHON_MODULE_NAME = "hwpxkit._native"
|
|
19
|
+
PYTHON_RUST_LIB_NAME = "_native"
|
|
18
20
|
|
|
19
21
|
|
|
20
22
|
def default_root() -> Path:
|
|
@@ -66,6 +68,14 @@ def check_versions(root: Path) -> list[str]:
|
|
|
66
68
|
f"does not match workspace version {workspace_version!r}"
|
|
67
69
|
)
|
|
68
70
|
|
|
71
|
+
python_cargo = load_toml(root / "packages/hwpx-python/Cargo.toml")
|
|
72
|
+
python_lib_name = python_cargo.get("lib", {}).get("name")
|
|
73
|
+
if python_lib_name != PYTHON_RUST_LIB_NAME:
|
|
74
|
+
errors.append(
|
|
75
|
+
"packages/hwpx-python/Cargo.toml lib name "
|
|
76
|
+
f"{python_lib_name!r} does not match {PYTHON_RUST_LIB_NAME!r}"
|
|
77
|
+
)
|
|
78
|
+
|
|
69
79
|
pyproject = load_toml(root / "packages/hwpx-python/pyproject.toml")
|
|
70
80
|
pyproject_name = pyproject.get("project", {}).get("name")
|
|
71
81
|
if pyproject_name != PYPI_PROJECT_NAME:
|
|
@@ -81,17 +91,27 @@ def check_versions(root: Path) -> list[str]:
|
|
|
81
91
|
f"{pyproject_version!r} does not match workspace version {workspace_version!r}"
|
|
82
92
|
)
|
|
83
93
|
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
init_match = INIT_VERSION_RE.search(init_text)
|
|
87
|
-
if not init_match:
|
|
88
|
-
errors.append("packages/hwpx-python/python/hwpx/__init__.py is missing __version__")
|
|
89
|
-
elif init_match.group(1) != workspace_version:
|
|
94
|
+
module_name = pyproject.get("tool", {}).get("maturin", {}).get("module-name")
|
|
95
|
+
if module_name != PYTHON_MODULE_NAME:
|
|
90
96
|
errors.append(
|
|
91
|
-
"packages/hwpx-python/
|
|
92
|
-
f"{
|
|
97
|
+
"packages/hwpx-python/pyproject.toml module-name "
|
|
98
|
+
f"{module_name!r} does not match {PYTHON_MODULE_NAME!r}"
|
|
93
99
|
)
|
|
94
100
|
|
|
101
|
+
init_path = root / "packages/hwpx-python/python/hwpxkit/__init__.py"
|
|
102
|
+
if not init_path.is_file():
|
|
103
|
+
errors.append("packages/hwpx-python/python/hwpxkit/__init__.py is missing")
|
|
104
|
+
else:
|
|
105
|
+
init_text = init_path.read_text(encoding="utf-8")
|
|
106
|
+
init_match = INIT_VERSION_RE.search(init_text)
|
|
107
|
+
if not init_match:
|
|
108
|
+
errors.append("packages/hwpx-python/python/hwpxkit/__init__.py is missing __version__")
|
|
109
|
+
elif init_match.group(1) != workspace_version:
|
|
110
|
+
errors.append(
|
|
111
|
+
"packages/hwpx-python/python/hwpxkit/__init__.py version "
|
|
112
|
+
f"{init_match.group(1)!r} does not match workspace version {workspace_version!r}"
|
|
113
|
+
)
|
|
114
|
+
|
|
95
115
|
cargo_lock = load_toml(root / "Cargo.lock")
|
|
96
116
|
lock_packages = cargo_lock.get("package", [])
|
|
97
117
|
found_workspace_packages: set[str] = set()
|
|
@@ -62,6 +62,9 @@ edition.workspace = true
|
|
|
62
62
|
name = "hwpx-python"
|
|
63
63
|
version = "{version}"
|
|
64
64
|
edition = "2021"
|
|
65
|
+
|
|
66
|
+
[lib]
|
|
67
|
+
name = "_native"
|
|
65
68
|
""".lstrip(),
|
|
66
69
|
)
|
|
67
70
|
write(
|
|
@@ -70,10 +73,13 @@ edition = "2021"
|
|
|
70
73
|
[project]
|
|
71
74
|
name = "hwpxkit"
|
|
72
75
|
version = "{version}"
|
|
76
|
+
|
|
77
|
+
[tool.maturin]
|
|
78
|
+
module-name = "hwpxkit._native"
|
|
73
79
|
""".lstrip(),
|
|
74
80
|
)
|
|
75
81
|
write(
|
|
76
|
-
root / "packages/hwpx-python/python/
|
|
82
|
+
root / "packages/hwpx-python/python/hwpxkit/__init__.py",
|
|
77
83
|
f'__version__ = "{version}"\n',
|
|
78
84
|
)
|
|
79
85
|
|
|
@@ -100,12 +106,12 @@ class CheckReleaseVersionsTest(unittest.TestCase):
|
|
|
100
106
|
with tempfile.TemporaryDirectory() as tmp:
|
|
101
107
|
root = Path(tmp)
|
|
102
108
|
make_repo(root)
|
|
103
|
-
write(root / "packages/hwpx-python/python/
|
|
109
|
+
write(root / "packages/hwpx-python/python/hwpxkit/__init__.py", '__version__ = "0.2.1"\n')
|
|
104
110
|
|
|
105
111
|
result = self.run_checker(root)
|
|
106
112
|
|
|
107
113
|
self.assertNotEqual(result.returncode, 0)
|
|
108
|
-
self.assertIn("packages/hwpx-python/python/
|
|
114
|
+
self.assertIn("packages/hwpx-python/python/hwpxkit/__init__.py", result.stderr)
|
|
109
115
|
self.assertIn("0.2.1", result.stderr)
|
|
110
116
|
self.assertIn("0.2.0", result.stderr)
|
|
111
117
|
|
|
@@ -155,6 +161,53 @@ version = "0.2.0"
|
|
|
155
161
|
self.assertIn("hwpx", result.stderr)
|
|
156
162
|
self.assertIn("hwpxkit", result.stderr)
|
|
157
163
|
|
|
164
|
+
def test_rejects_maturin_module_name_drift(self) -> None:
|
|
165
|
+
with tempfile.TemporaryDirectory() as tmp:
|
|
166
|
+
root = Path(tmp)
|
|
167
|
+
make_repo(root)
|
|
168
|
+
write(
|
|
169
|
+
root / "packages/hwpx-python/pyproject.toml",
|
|
170
|
+
"""
|
|
171
|
+
[project]
|
|
172
|
+
name = "hwpxkit"
|
|
173
|
+
version = "0.2.0"
|
|
174
|
+
|
|
175
|
+
[tool.maturin]
|
|
176
|
+
module-name = "hwpx"
|
|
177
|
+
""".lstrip(),
|
|
178
|
+
)
|
|
179
|
+
|
|
180
|
+
result = self.run_checker(root)
|
|
181
|
+
|
|
182
|
+
self.assertNotEqual(result.returncode, 0)
|
|
183
|
+
self.assertIn("pyproject.toml module-name", result.stderr)
|
|
184
|
+
self.assertIn("hwpx", result.stderr)
|
|
185
|
+
self.assertIn("hwpxkit._native", result.stderr)
|
|
186
|
+
|
|
187
|
+
def test_rejects_rust_lib_name_drift(self) -> None:
|
|
188
|
+
with tempfile.TemporaryDirectory() as tmp:
|
|
189
|
+
root = Path(tmp)
|
|
190
|
+
make_repo(root)
|
|
191
|
+
write(
|
|
192
|
+
root / "packages/hwpx-python/Cargo.toml",
|
|
193
|
+
"""
|
|
194
|
+
[package]
|
|
195
|
+
name = "hwpx-python"
|
|
196
|
+
version = "0.2.0"
|
|
197
|
+
edition = "2021"
|
|
198
|
+
|
|
199
|
+
[lib]
|
|
200
|
+
name = "hwpx"
|
|
201
|
+
""".lstrip(),
|
|
202
|
+
)
|
|
203
|
+
|
|
204
|
+
result = self.run_checker(root)
|
|
205
|
+
|
|
206
|
+
self.assertNotEqual(result.returncode, 0)
|
|
207
|
+
self.assertIn("packages/hwpx-python/Cargo.toml lib name", result.stderr)
|
|
208
|
+
self.assertIn("hwpx", result.stderr)
|
|
209
|
+
self.assertIn("_native", result.stderr)
|
|
210
|
+
|
|
158
211
|
|
|
159
212
|
if __name__ == "__main__":
|
|
160
213
|
unittest.main()
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
#!/usr/bin/env python3
|
|
2
|
-
"""Validate packaged
|
|
2
|
+
"""Validate packaged hwpxkit source distribution contents."""
|
|
3
3
|
|
|
4
4
|
from __future__ import annotations
|
|
5
5
|
|
|
@@ -31,9 +31,9 @@ REQUIRED_FILES = {
|
|
|
31
31
|
"packages/hwpx-python/Cargo.toml",
|
|
32
32
|
"pyproject.toml",
|
|
33
33
|
"packages/hwpx-python/src/lib.rs",
|
|
34
|
-
"python/
|
|
35
|
-
"python/
|
|
36
|
-
"python/
|
|
34
|
+
"python/hwpxkit/__init__.py",
|
|
35
|
+
"python/hwpxkit/__init__.pyi",
|
|
36
|
+
"python/hwpxkit/py.typed",
|
|
37
37
|
}
|
|
38
38
|
|
|
39
39
|
FORBIDDEN_COMPONENTS = {"__pycache__", ".venv", "target", "dist", ".maturin"}
|
|
@@ -191,10 +191,10 @@ def check_versions(
|
|
|
191
191
|
if python_cargo_version is None:
|
|
192
192
|
errors.append(f"{sdist_name}: packages/hwpx-python/Cargo.toml is missing package version")
|
|
193
193
|
|
|
194
|
-
init_py = text_files.get("python/
|
|
194
|
+
init_py = text_files.get("python/hwpxkit/__init__.py", "")
|
|
195
195
|
init_match = INIT_VERSION_RE.search(init_py)
|
|
196
196
|
if not init_match:
|
|
197
|
-
errors.append(f"{sdist_name}:
|
|
197
|
+
errors.append(f"{sdist_name}: hwpxkit __init__.py is missing __version__")
|
|
198
198
|
init_version = init_match.group(1) if init_match else None
|
|
199
199
|
|
|
200
200
|
versions = {
|
|
@@ -202,7 +202,7 @@ def check_versions(
|
|
|
202
202
|
"Cargo.toml": workspace_version,
|
|
203
203
|
"pyproject.toml": pyproject_version,
|
|
204
204
|
"packages/hwpx-python/Cargo.toml": python_cargo_version,
|
|
205
|
-
"python/
|
|
205
|
+
"python/hwpxkit/__init__.py": init_version,
|
|
206
206
|
}
|
|
207
207
|
expected = workspace_version or next((version for version in versions.values() if version), None)
|
|
208
208
|
if expected:
|
|
@@ -313,7 +313,7 @@ def validate_sdist(path: str) -> list[str]:
|
|
|
313
313
|
f"{sdist_name}: missing required source files: {', '.join(missing)}"
|
|
314
314
|
)
|
|
315
315
|
|
|
316
|
-
init_pyi = text_files.get("python/
|
|
316
|
+
init_pyi = text_files.get("python/hwpxkit/__init__.pyi", "")
|
|
317
317
|
if init_pyi and not STUB_WARNINGS_RE.search(init_pyi):
|
|
318
318
|
errors.append(f"{sdist_name}: type stub is missing Document.warnings property")
|
|
319
319
|
if init_pyi and not STUB_DIAGNOSTIC_REPORT_RE.search(init_pyi):
|
|
@@ -13,8 +13,8 @@ from pathlib import Path
|
|
|
13
13
|
|
|
14
14
|
|
|
15
15
|
SCRIPT = Path(__file__).with_name("check_sdist_contents.py")
|
|
16
|
-
ROOT = "hwpxkit-0.2.
|
|
17
|
-
VERSION = "0.2.
|
|
16
|
+
ROOT = "hwpxkit-0.2.1"
|
|
17
|
+
VERSION = "0.2.1"
|
|
18
18
|
|
|
19
19
|
|
|
20
20
|
def add_bytes(tar: tarfile.TarFile, name: str, data: bytes) -> None:
|
|
@@ -53,7 +53,7 @@ version = "{version}"
|
|
|
53
53
|
[workspace.package]
|
|
54
54
|
version = "{version}"
|
|
55
55
|
""".lstrip(),
|
|
56
|
-
f"{ROOT}/README.md": "#
|
|
56
|
+
f"{ROOT}/README.md": "# hwpxkit\n",
|
|
57
57
|
f"{ROOT}/crates/hwp-core/Cargo.toml": """
|
|
58
58
|
[package]
|
|
59
59
|
name = "hwp-core"
|
|
@@ -79,10 +79,10 @@ name = "hwpxkit"
|
|
|
79
79
|
version = "{version}"
|
|
80
80
|
""".lstrip(),
|
|
81
81
|
f"{ROOT}/packages/hwpx-python/src/lib.rs": "",
|
|
82
|
-
f"{ROOT}/python/
|
|
82
|
+
f"{ROOT}/python/hwpxkit/__init__.py": (
|
|
83
83
|
f'__version__ = "{version}"\n'
|
|
84
84
|
),
|
|
85
|
-
f"{ROOT}/python/
|
|
85
|
+
f"{ROOT}/python/hwpxkit/__init__.pyi": """
|
|
86
86
|
from typing import TypedDict
|
|
87
87
|
|
|
88
88
|
class DiagnosticSummary(TypedDict):
|
|
@@ -100,7 +100,7 @@ class Document:
|
|
|
100
100
|
def warnings(self) -> tuple[str, ...]: ...
|
|
101
101
|
def diagnostic_report(self) -> DiagnosticReport: ...
|
|
102
102
|
""".lstrip(),
|
|
103
|
-
f"{ROOT}/python/
|
|
103
|
+
f"{ROOT}/python/hwpxkit/py.typed": "",
|
|
104
104
|
}
|
|
105
105
|
|
|
106
106
|
|
|
@@ -115,7 +115,7 @@ class CheckSdistContentsTest(unittest.TestCase):
|
|
|
115
115
|
|
|
116
116
|
def test_accepts_valid_sdist(self) -> None:
|
|
117
117
|
with tempfile.TemporaryDirectory() as tmp:
|
|
118
|
-
sdist = Path(tmp) / "hwpxkit-0.2.
|
|
118
|
+
sdist = Path(tmp) / "hwpxkit-0.2.1.tar.gz"
|
|
119
119
|
make_sdist(sdist, valid_files())
|
|
120
120
|
|
|
121
121
|
result = self.run_checker(sdist)
|
|
@@ -124,9 +124,9 @@ class CheckSdistContentsTest(unittest.TestCase):
|
|
|
124
124
|
|
|
125
125
|
def test_rejects_generated_artifacts_and_missing_required_files(self) -> None:
|
|
126
126
|
with tempfile.TemporaryDirectory() as tmp:
|
|
127
|
-
sdist = Path(tmp) / "hwpxkit-0.2.
|
|
127
|
+
sdist = Path(tmp) / "hwpxkit-0.2.1.tar.gz"
|
|
128
128
|
files = valid_files()
|
|
129
|
-
del files[f"{ROOT}/python/
|
|
129
|
+
del files[f"{ROOT}/python/hwpxkit/py.typed"]
|
|
130
130
|
files[f"{ROOT}/packages/hwpx-python/.venv/bin/python"] = ""
|
|
131
131
|
files[f"{ROOT}/packages/hwpx-python/scripts/__pycache__/checker.pyc"] = ""
|
|
132
132
|
files[f"{ROOT}/packages/hwpx-python/hwpx.cpython-314-darwin.so"] = ""
|
|
@@ -142,7 +142,7 @@ class CheckSdistContentsTest(unittest.TestCase):
|
|
|
142
142
|
|
|
143
143
|
def test_rejects_missing_hwpx_parser_modules_required_for_source_build(self) -> None:
|
|
144
144
|
with tempfile.TemporaryDirectory() as tmp:
|
|
145
|
-
sdist = Path(tmp) / "hwpxkit-0.2.
|
|
145
|
+
sdist = Path(tmp) / "hwpxkit-0.2.1.tar.gz"
|
|
146
146
|
files = valid_files()
|
|
147
147
|
del files[f"{ROOT}/crates/hwp-core/src/parser/hwpx/package.rs"]
|
|
148
148
|
del files[f"{ROOT}/crates/hwp-core/src/parser/hwpx/xml_attr.rs"]
|
|
@@ -156,25 +156,25 @@ class CheckSdistContentsTest(unittest.TestCase):
|
|
|
156
156
|
|
|
157
157
|
def test_rejects_version_mismatch(self) -> None:
|
|
158
158
|
with tempfile.TemporaryDirectory() as tmp:
|
|
159
|
-
sdist = Path(tmp) / "hwpxkit-0.2.
|
|
159
|
+
sdist = Path(tmp) / "hwpxkit-0.2.1.tar.gz"
|
|
160
160
|
files = valid_files()
|
|
161
|
-
files[f"{ROOT}/python/
|
|
162
|
-
'__version__ = "0.2.
|
|
161
|
+
files[f"{ROOT}/python/hwpxkit/__init__.py"] = (
|
|
162
|
+
'__version__ = "0.2.2"\n'
|
|
163
163
|
)
|
|
164
164
|
make_sdist(sdist, files)
|
|
165
165
|
|
|
166
166
|
result = self.run_checker(sdist)
|
|
167
167
|
|
|
168
168
|
self.assertNotEqual(result.returncode, 0)
|
|
169
|
+
self.assertIn("0.2.2", result.stderr)
|
|
169
170
|
self.assertIn("0.2.1", result.stderr)
|
|
170
|
-
self.assertIn("0.2.0", result.stderr)
|
|
171
171
|
|
|
172
172
|
def test_rejects_pkg_info_name_mismatch(self) -> None:
|
|
173
173
|
with tempfile.TemporaryDirectory() as tmp:
|
|
174
|
-
sdist = Path(tmp) / "hwpxkit-0.2.
|
|
174
|
+
sdist = Path(tmp) / "hwpxkit-0.2.1.tar.gz"
|
|
175
175
|
files = valid_files()
|
|
176
176
|
files[f"{ROOT}/PKG-INFO"] = (
|
|
177
|
-
"Metadata-Version: 2.1\nName: not-hwpxkit\nVersion: 0.2.
|
|
177
|
+
"Metadata-Version: 2.1\nName: not-hwpxkit\nVersion: 0.2.1\n"
|
|
178
178
|
)
|
|
179
179
|
make_sdist(sdist, files)
|
|
180
180
|
|
|
@@ -186,9 +186,9 @@ class CheckSdistContentsTest(unittest.TestCase):
|
|
|
186
186
|
|
|
187
187
|
def test_rejects_missing_diagnostic_report_stub(self) -> None:
|
|
188
188
|
with tempfile.TemporaryDirectory() as tmp:
|
|
189
|
-
sdist = Path(tmp) / "hwpxkit-0.2.
|
|
189
|
+
sdist = Path(tmp) / "hwpxkit-0.2.1.tar.gz"
|
|
190
190
|
files = valid_files()
|
|
191
|
-
files[f"{ROOT}/python/
|
|
191
|
+
files[f"{ROOT}/python/hwpxkit/__init__.pyi"] = """
|
|
192
192
|
class Document:
|
|
193
193
|
@property
|
|
194
194
|
def warnings(self) -> tuple[str, ...]: ...
|
|
@@ -202,9 +202,9 @@ class Document:
|
|
|
202
202
|
|
|
203
203
|
def test_rejects_missing_diagnostic_summary_metadata_fields(self) -> None:
|
|
204
204
|
with tempfile.TemporaryDirectory() as tmp:
|
|
205
|
-
sdist = Path(tmp) / "hwpxkit-0.2.
|
|
205
|
+
sdist = Path(tmp) / "hwpxkit-0.2.1.tar.gz"
|
|
206
206
|
files = valid_files()
|
|
207
|
-
files[f"{ROOT}/python/
|
|
207
|
+
files[f"{ROOT}/python/hwpxkit/__init__.pyi"] = """
|
|
208
208
|
from typing import TypedDict
|
|
209
209
|
|
|
210
210
|
class DiagnosticSummary(TypedDict):
|
|
@@ -230,7 +230,7 @@ class Document:
|
|
|
230
230
|
|
|
231
231
|
def test_rejects_malicious_member_paths(self) -> None:
|
|
232
232
|
with tempfile.TemporaryDirectory() as tmp:
|
|
233
|
-
sdist = Path(tmp) / "hwpxkit-0.2.
|
|
233
|
+
sdist = Path(tmp) / "hwpxkit-0.2.1.tar.gz"
|
|
234
234
|
files = valid_files()
|
|
235
235
|
files[f"{ROOT}/../evil.py"] = ""
|
|
236
236
|
files["/tmp/absolute.py"] = ""
|
|
@@ -243,7 +243,7 @@ class Document:
|
|
|
243
243
|
|
|
244
244
|
def test_rejects_oversized_required_text_file(self) -> None:
|
|
245
245
|
with tempfile.TemporaryDirectory() as tmp:
|
|
246
|
-
sdist = Path(tmp) / "hwpxkit-0.2.
|
|
246
|
+
sdist = Path(tmp) / "hwpxkit-0.2.1.tar.gz"
|
|
247
247
|
files = valid_files()
|
|
248
248
|
files[f"{ROOT}/PKG-INFO"] += "x" * (1024 * 1024 + 1)
|
|
249
249
|
make_sdist(sdist, files)
|
|
@@ -255,7 +255,7 @@ class Document:
|
|
|
255
255
|
|
|
256
256
|
def test_rejects_invalid_utf8_required_text_file_without_traceback(self) -> None:
|
|
257
257
|
with tempfile.TemporaryDirectory() as tmp:
|
|
258
|
-
sdist = Path(tmp) / "hwpxkit-0.2.
|
|
258
|
+
sdist = Path(tmp) / "hwpxkit-0.2.1.tar.gz"
|
|
259
259
|
files = valid_files()
|
|
260
260
|
files[f"{ROOT}/PKG-INFO"] = b"\xff"
|
|
261
261
|
make_sdist(sdist, files)
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
#!/usr/bin/env python3
|
|
2
|
-
"""Install an
|
|
2
|
+
"""Install an hwpxkit sdist in a fresh virtualenv and smoke test the package."""
|
|
3
3
|
|
|
4
4
|
from __future__ import annotations
|
|
5
5
|
|
|
@@ -113,19 +113,21 @@ def venv_python_path(venv_dir: Path) -> Path:
|
|
|
113
113
|
def smoke_code(expected_version: str, fixture_path: Path) -> str:
|
|
114
114
|
return f"""
|
|
115
115
|
import importlib.metadata
|
|
116
|
+
import importlib.util
|
|
116
117
|
import json
|
|
117
118
|
from pathlib import Path
|
|
118
|
-
import
|
|
119
|
+
import hwpxkit
|
|
119
120
|
|
|
120
121
|
expected_version = {expected_version!r}
|
|
121
122
|
fixture_path = Path({str(fixture_path)!r})
|
|
122
123
|
assert importlib.metadata.version("hwpxkit") == expected_version
|
|
123
|
-
assert hwpx
|
|
124
|
-
assert
|
|
125
|
-
assert callable(
|
|
124
|
+
assert importlib.util.find_spec("hwpx") is None
|
|
125
|
+
assert hwpxkit.__version__ == expected_version
|
|
126
|
+
assert callable(hwpxkit.parse)
|
|
127
|
+
assert callable(hwpxkit.parse_file)
|
|
126
128
|
|
|
127
|
-
doc =
|
|
128
|
-
doc_from_bytes =
|
|
129
|
+
doc = hwpxkit.parse_file(str(fixture_path))
|
|
130
|
+
doc_from_bytes = hwpxkit.parse(fixture_path.read_bytes())
|
|
129
131
|
assert doc.section_count == doc_from_bytes.section_count
|
|
130
132
|
assert doc.section_count >= 1
|
|
131
133
|
assert isinstance(doc.version, str)
|