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.
Files changed (544) hide show
  1. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/Cargo.lock +2 -2
  2. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/Cargo.toml +1 -1
  3. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/PKG-INFO +7 -7
  4. {hwpxkit-0.2.0/packages/hwpx-python → hwpxkit-0.2.1}/README.md +6 -6
  5. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/packages/hwpx-python/Cargo.toml +2 -2
  6. {hwpxkit-0.2.0 → hwpxkit-0.2.1/packages/hwpx-python}/README.md +6 -6
  7. {hwpxkit-0.2.0/packages/hwpx-python/python/hwpx → hwpxkit-0.2.1/packages/hwpx-python/python/hwpxkit}/__init__.py +6 -6
  8. {hwpxkit-0.2.0/packages/hwpx-python/python/hwpx → hwpxkit-0.2.1/packages/hwpx-python/python/hwpxkit}/__init__.pyi +1 -1
  9. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/packages/hwpx-python/scripts/check_release_docs_test.py +19 -0
  10. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/packages/hwpx-python/scripts/check_release_versions.py +28 -8
  11. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/packages/hwpx-python/scripts/check_release_versions_test.py +56 -3
  12. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/packages/hwpx-python/scripts/check_sdist_contents.py +8 -8
  13. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/packages/hwpx-python/scripts/check_sdist_contents_test.py +23 -23
  14. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/packages/hwpx-python/scripts/check_sdist_install.py +9 -7
  15. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/packages/hwpx-python/scripts/check_sdist_install_test.py +25 -22
  16. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/packages/hwpx-python/scripts/check_wheel_contents.py +11 -11
  17. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/packages/hwpx-python/scripts/check_wheel_contents_test.py +55 -55
  18. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/packages/hwpx-python/scripts/check_wheel_install.py +9 -7
  19. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/packages/hwpx-python/scripts/check_wheel_install_test.py +14 -11
  20. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/packages/hwpx-python/src/lib.rs +5 -4
  21. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/packages/hwpx-python/uv.lock +1 -1
  22. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/pyproject.toml +7 -7
  23. {hwpxkit-0.2.0/python/hwpx → hwpxkit-0.2.1/python/hwpxkit}/__init__.py +6 -6
  24. {hwpxkit-0.2.0/python/hwpx → hwpxkit-0.2.1/python/hwpxkit}/__init__.pyi +1 -1
  25. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/Cargo.toml +0 -0
  26. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/README.md +0 -0
  27. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/benches/hwpx_bench_data.rs +0 -0
  28. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/benches/parse_benchmark.rs +0 -0
  29. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/cfb.rs +0 -0
  30. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/decompress.rs +0 -0
  31. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/diagnostics/mod.rs +0 -0
  32. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/document/bindata/mod.rs +0 -0
  33. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/document/bodytext/CLAUDE.md +0 -0
  34. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/document/bodytext/char_shape.rs +0 -0
  35. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/document/bodytext/chart_data.rs +0 -0
  36. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/document/bodytext/constants.rs +0 -0
  37. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/document/bodytext/control_char.rs +0 -0
  38. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/document/bodytext/ctrl_data.rs +0 -0
  39. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/document/bodytext/ctrl_header/auto_number.rs +0 -0
  40. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/document/bodytext/ctrl_header/bookmark_marker.rs +0 -0
  41. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/document/bodytext/ctrl_header/caption.rs +0 -0
  42. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/document/bodytext/ctrl_header/column_definition.rs +0 -0
  43. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/document/bodytext/ctrl_header/comment.rs +0 -0
  44. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/document/bodytext/ctrl_header/field.rs +0 -0
  45. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/document/bodytext/ctrl_header/footnote_endnote.rs +0 -0
  46. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/document/bodytext/ctrl_header/header_footer.rs +0 -0
  47. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/document/bodytext/ctrl_header/hide.rs +0 -0
  48. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/document/bodytext/ctrl_header/ids.rs +0 -0
  49. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/document/bodytext/ctrl_header/mod.rs +0 -0
  50. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/document/bodytext/ctrl_header/object_common.rs +0 -0
  51. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/document/bodytext/ctrl_header/overlap.rs +0 -0
  52. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/document/bodytext/ctrl_header/page_adjust.rs +0 -0
  53. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/document/bodytext/ctrl_header/page_number_position.rs +0 -0
  54. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/document/bodytext/ctrl_header/section_definition.rs +0 -0
  55. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/document/bodytext/ctrl_header/types.rs +0 -0
  56. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/document/bodytext/eqedit.rs +0 -0
  57. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/document/bodytext/footnote_shape.rs +0 -0
  58. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/document/bodytext/form_object.rs +0 -0
  59. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/document/bodytext/line_seg.rs +0 -0
  60. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/document/bodytext/list_header.rs +0 -0
  61. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/document/bodytext/memo_list.rs +0 -0
  62. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/document/bodytext/memo_shape.rs +0 -0
  63. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/document/bodytext/mod.rs +0 -0
  64. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/document/bodytext/page_border_fill.rs +0 -0
  65. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/document/bodytext/page_def.rs +0 -0
  66. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/document/bodytext/para_header.rs +0 -0
  67. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/document/bodytext/range_tag.rs +0 -0
  68. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/document/bodytext/record_tree.rs +0 -0
  69. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/document/bodytext/shape_component/arc.rs +0 -0
  70. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/document/bodytext/shape_component/common.rs +0 -0
  71. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/document/bodytext/shape_component/container.rs +0 -0
  72. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/document/bodytext/shape_component/curve.rs +0 -0
  73. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/document/bodytext/shape_component/ellipse.rs +0 -0
  74. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/document/bodytext/shape_component/line.rs +0 -0
  75. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/document/bodytext/shape_component/mod.rs +0 -0
  76. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/document/bodytext/shape_component/ole.rs +0 -0
  77. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/document/bodytext/shape_component/picture.rs +0 -0
  78. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/document/bodytext/shape_component/polygon.rs +0 -0
  79. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/document/bodytext/shape_component/rectangle.rs +0 -0
  80. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/document/bodytext/shape_component/textart.rs +0 -0
  81. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/document/bodytext/shape_component/unknown.rs +0 -0
  82. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/document/bodytext/table.rs +0 -0
  83. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/document/bodytext/video_data.rs +0 -0
  84. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/document/constants.rs +0 -0
  85. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/document/docinfo/bin_data.rs +0 -0
  86. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/document/docinfo/border_fill.rs +0 -0
  87. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/document/docinfo/bullet.rs +0 -0
  88. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/document/docinfo/char_shape.rs +0 -0
  89. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/document/docinfo/compatible_document.rs +0 -0
  90. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/document/docinfo/constants.rs +0 -0
  91. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/document/docinfo/distribute_doc_data.rs +0 -0
  92. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/document/docinfo/doc_data.rs +0 -0
  93. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/document/docinfo/document_properties.rs +0 -0
  94. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/document/docinfo/face_name.rs +0 -0
  95. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/document/docinfo/forbidden_char.rs +0 -0
  96. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/document/docinfo/id_mappings.rs +0 -0
  97. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/document/docinfo/layout_compatibility.rs +0 -0
  98. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/document/docinfo/memo_shape.rs +0 -0
  99. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/document/docinfo/mod.rs +0 -0
  100. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/document/docinfo/numbering.rs +0 -0
  101. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/document/docinfo/para_shape.rs +0 -0
  102. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/document/docinfo/style.rs +0 -0
  103. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/document/docinfo/tab_def.rs +0 -0
  104. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/document/docinfo/track_change.rs +0 -0
  105. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/document/docinfo/track_change_author.rs +0 -0
  106. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/document/docinfo/track_change_content.rs +0 -0
  107. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/document/fileheader/constants.rs +0 -0
  108. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/document/fileheader/mod.rs +0 -0
  109. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/document/fileheader/serialize.rs +0 -0
  110. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/document/mod.rs +0 -0
  111. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/document/preview_image.rs +0 -0
  112. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/document/preview_text.rs +0 -0
  113. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/document/scripts/mod.rs +0 -0
  114. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/document/scripts/script.rs +0 -0
  115. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/document/scripts/script_version.rs +0 -0
  116. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/document/summary_information.rs +0 -0
  117. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/document/xml_template.rs +0 -0
  118. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/error.rs +0 -0
  119. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/lib.rs +0 -0
  120. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/parser/detect.rs +0 -0
  121. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/parser/hwpx/CLAUDE.md +0 -0
  122. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/parser/hwpx/bindata.rs +0 -0
  123. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/parser/hwpx/container.rs +0 -0
  124. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/parser/hwpx/header.rs +0 -0
  125. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/parser/hwpx/mod.rs +0 -0
  126. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/parser/hwpx/package.rs +0 -0
  127. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/parser/hwpx/section.rs +0 -0
  128. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/parser/hwpx/xml_attr.rs +0 -0
  129. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/parser/hwpx/xml_budget.rs +0 -0
  130. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/parser/mod.rs +0 -0
  131. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/types.rs +0 -0
  132. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/viewer/core/bodytext.rs +0 -0
  133. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/viewer/core/mod.rs +0 -0
  134. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/viewer/core/paragraph.rs +0 -0
  135. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/viewer/core/renderer.rs +0 -0
  136. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/viewer/html/CLAUDE.md +0 -0
  137. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/viewer/html/common.rs +0 -0
  138. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/viewer/html/ctrl_header/column_def.rs +0 -0
  139. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/viewer/html/ctrl_header/endnote.rs +0 -0
  140. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/viewer/html/ctrl_header/field.rs +0 -0
  141. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/viewer/html/ctrl_header/footer.rs +0 -0
  142. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/viewer/html/ctrl_header/footnote.rs +0 -0
  143. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/viewer/html/ctrl_header/header.rs +0 -0
  144. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/viewer/html/ctrl_header/mod.rs +0 -0
  145. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/viewer/html/ctrl_header/section_def.rs +0 -0
  146. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/viewer/html/ctrl_header/shape_object.rs +0 -0
  147. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/viewer/html/ctrl_header/table/cells.rs +0 -0
  148. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/viewer/html/ctrl_header/table/constants.rs +0 -0
  149. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/viewer/html/ctrl_header/table/geometry.rs +0 -0
  150. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/viewer/html/ctrl_header/table/mod.rs +0 -0
  151. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/viewer/html/ctrl_header/table/position.rs +0 -0
  152. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/viewer/html/ctrl_header/table/process.rs +0 -0
  153. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/viewer/html/ctrl_header/table/render.rs +0 -0
  154. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/viewer/html/ctrl_header/table/size.rs +0 -0
  155. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/viewer/html/ctrl_header/table/svg/borders.rs +0 -0
  156. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/viewer/html/ctrl_header/table/svg/fills.rs +0 -0
  157. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/viewer/html/ctrl_header/table/svg.rs +0 -0
  158. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/viewer/html/document.rs +0 -0
  159. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/viewer/html/image.rs +0 -0
  160. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/viewer/html/line_segment.rs +0 -0
  161. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/viewer/html/mod.rs +0 -0
  162. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/viewer/html/options.rs +0 -0
  163. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/viewer/html/page.rs +0 -0
  164. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/viewer/html/pagination.rs +0 -0
  165. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/viewer/html/paragraph.rs +0 -0
  166. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/viewer/html/security.rs +0 -0
  167. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/viewer/html/styles.rs +0 -0
  168. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/viewer/html/text.rs +0 -0
  169. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/viewer/markdown/collect.rs +0 -0
  170. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/viewer/markdown/common.rs +0 -0
  171. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/viewer/markdown/ctrl_header/column_def.rs +0 -0
  172. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/viewer/markdown/ctrl_header/endnote.rs +0 -0
  173. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/viewer/markdown/ctrl_header/field.rs +0 -0
  174. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/viewer/markdown/ctrl_header/footer.rs +0 -0
  175. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/viewer/markdown/ctrl_header/footnote.rs +0 -0
  176. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/viewer/markdown/ctrl_header/header.rs +0 -0
  177. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/viewer/markdown/ctrl_header/mod.rs +0 -0
  178. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/viewer/markdown/ctrl_header/page_number.rs +0 -0
  179. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/viewer/markdown/ctrl_header/shape_object.rs +0 -0
  180. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/viewer/markdown/ctrl_header/table.rs +0 -0
  181. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/viewer/markdown/document/bodytext/CLAUDE.md +0 -0
  182. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/viewer/markdown/document/bodytext/list_header.rs +0 -0
  183. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/viewer/markdown/document/bodytext/mod.rs +0 -0
  184. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/viewer/markdown/document/bodytext/para_text.rs +0 -0
  185. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/viewer/markdown/document/bodytext/paragraph.rs +0 -0
  186. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/viewer/markdown/document/bodytext/shape_component.rs +0 -0
  187. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/viewer/markdown/document/bodytext/shape_component_picture.rs +0 -0
  188. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/viewer/markdown/document/bodytext/table.rs +0 -0
  189. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/viewer/markdown/document/docinfo.rs +0 -0
  190. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/viewer/markdown/document/fileheader.rs +0 -0
  191. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/viewer/markdown/document/mod.rs +0 -0
  192. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/viewer/markdown/mod.rs +0 -0
  193. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/viewer/markdown/renderer.rs +0 -0
  194. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/viewer/markdown/security.rs +0 -0
  195. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/viewer/markdown/utils.rs +0 -0
  196. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/viewer/mod.rs +0 -0
  197. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/src/viewer/shared.rs +0 -0
  198. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/cfb_tests.rs +0 -0
  199. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/common.rs +0 -0
  200. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/corpus/manifest.toml +0 -0
  201. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/corpus_tests.rs +0 -0
  202. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/decompress_tests.rs +0 -0
  203. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/fileheader_tests.rs +0 -0
  204. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/fixtures/CLAUDE.md +0 -0
  205. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/fixtures/aligns.hwp +0 -0
  206. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/fixtures/borderfill.hwp +0 -0
  207. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/fixtures/charshape.hwp +0 -0
  208. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/fixtures/charstyle.hwp +0 -0
  209. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/fixtures/example.hwp +0 -0
  210. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/fixtures/facename.hwp +0 -0
  211. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/fixtures/facename2.hwp +0 -0
  212. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/fixtures/footnote-endnote.hwp +0 -0
  213. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/fixtures/headerfooter.hwp +0 -0
  214. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/fixtures/hwpSummaryInformation.hwp +0 -0
  215. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/fixtures/hyperlink.hwpx +0 -0
  216. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/fixtures/issue144-fields-crossing-lineseg-boundary.hwp +0 -0
  217. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/fixtures/issue30.hwp +0 -0
  218. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/fixtures/linespacing.html +0 -0
  219. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/fixtures/linespacing.hwp +0 -0
  220. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/fixtures/linespacing.hwpx +0 -0
  221. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/fixtures/linespacing.xml +0 -0
  222. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/fixtures/linespacing.xsl +0 -0
  223. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/fixtures/linespacing_style.css +0 -0
  224. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/fixtures/lists-bullet.html +0 -0
  225. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/fixtures/lists-bullet.hwp +0 -0
  226. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/fixtures/lists-bullet_style.css +0 -0
  227. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/fixtures/lists.hwp +0 -0
  228. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/fixtures/matrix.hwp +0 -0
  229. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/fixtures/multicolumns-in-common-controls.html +0 -0
  230. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/fixtures/multicolumns-in-common-controls.hwp +0 -0
  231. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/fixtures/multicolumns-in-common-controls_style.css +0 -0
  232. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/fixtures/multicolumns-layout.hwp +0 -0
  233. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/fixtures/multicolumns-widths.hwp +0 -0
  234. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/fixtures/multicolumns.hwp +0 -0
  235. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/fixtures/noori-1page.jpg +0 -0
  236. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/fixtures/noori-2page.jpg +0 -0
  237. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/fixtures/noori-3page.jpg +0 -0
  238. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/fixtures/noori.html +0 -0
  239. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/fixtures/noori.hwp +0 -0
  240. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/fixtures/noori_hd1.png +0 -0
  241. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/fixtures/noori_hd2.png +0 -0
  242. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/fixtures/noori_hd3.png +0 -0
  243. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/fixtures/noori_hd4.png +0 -0
  244. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/fixtures/noori_style.css +0 -0
  245. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/fixtures/outline.hwp +0 -0
  246. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/fixtures/page.hwp +0 -0
  247. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/fixtures/pagedefs.html +0 -0
  248. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/fixtures/pagedefs.hwp +0 -0
  249. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/fixtures/pagedefs_style.css +0 -0
  250. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/fixtures/parashape.hwp +0 -0
  251. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/fixtures/password-12345.hwp +0 -0
  252. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/fixtures/sample-5017-pics.hwp +0 -0
  253. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/fixtures/sample-5017.hwp +0 -0
  254. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/fixtures/selfintroduce.hwp +0 -0
  255. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/fixtures/shapecontainer-2.hwp +0 -0
  256. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/fixtures/shapeline.hwp +0 -0
  257. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/fixtures/shapepict-scaled.hwp +0 -0
  258. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/fixtures/shaperect.hwp +0 -0
  259. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/fixtures/strikethrough.html +0 -0
  260. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/fixtures/strikethrough.hwp +0 -0
  261. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/fixtures/strikethrough_style.css +0 -0
  262. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/fixtures/tabdef.hwp +0 -0
  263. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/fixtures/table-caption.html +0 -0
  264. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/fixtures/table-caption.hwp +0 -0
  265. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/fixtures/table-caption_style.css +0 -0
  266. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/fixtures/table-position.html +0 -0
  267. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/fixtures/table-position.hwp +0 -0
  268. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/fixtures/table-position_style.css +0 -0
  269. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/fixtures/table.html +0 -0
  270. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/fixtures/table.hwp +0 -0
  271. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/fixtures/table2.html +0 -0
  272. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/fixtures/table2.hwp +0 -0
  273. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/fixtures/table2_style.css +0 -0
  274. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/fixtures/table_style.css +0 -0
  275. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/fixtures/test-hwpx.hwpx +0 -0
  276. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/fixtures/textbox.hwp +0 -0
  277. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/fixtures/underline-styles.hwp +0 -0
  278. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/fixtures/viewtext.hwp +0 -0
  279. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/hwpx_bench_data_tests.rs +0 -0
  280. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/hwpx_robustness_tests.rs +0 -0
  281. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/hwpx_tests.rs +0 -0
  282. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/parser_tests.rs +0 -0
  283. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshot_tests.rs +0 -0
  284. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/CLAUDE.md +0 -0
  285. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/aligns.html +0 -0
  286. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/aligns.json +0 -0
  287. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/aligns.md +0 -0
  288. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/borderfill.html +0 -0
  289. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/borderfill.json +0 -0
  290. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/borderfill.md +0 -0
  291. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/charshape.html +0 -0
  292. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/charshape.json +0 -0
  293. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/charshape.md +0 -0
  294. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/charstyle.html +0 -0
  295. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/charstyle.json +0 -0
  296. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/charstyle.md +0 -0
  297. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/example.html +0 -0
  298. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/example.json +0 -0
  299. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/example.md +0 -0
  300. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/facename.html +0 -0
  301. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/facename.json +0 -0
  302. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/facename.md +0 -0
  303. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/facename2.html +0 -0
  304. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/facename2.json +0 -0
  305. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/facename2.md +0 -0
  306. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/footnote-endnote.html +0 -0
  307. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/footnote-endnote.json +0 -0
  308. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/footnote-endnote.md +0 -0
  309. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/headerfooter.html +0 -0
  310. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/headerfooter.json +0 -0
  311. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/headerfooter.md +0 -0
  312. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/hwpSummaryInformation.html +0 -0
  313. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/hwpSummaryInformation.json +0 -0
  314. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/hwpSummaryInformation.md +0 -0
  315. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/hwpx_tests__hwpx_hyperlink_html.snap +0 -0
  316. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/hwpx_tests__hwpx_hyperlink_json.snap +0 -0
  317. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/hwpx_tests__hwpx_hyperlink_markdown.snap +0 -0
  318. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/hwpx_tests__hwpx_linespacing_html.snap +0 -0
  319. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/hwpx_tests__hwpx_linespacing_json.snap +0 -0
  320. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/hwpx_tests__hwpx_linespacing_markdown.snap +0 -0
  321. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/hwpx_tests__hwpx_test_hwpx_html.snap +0 -0
  322. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/hwpx_tests__hwpx_test_hwpx_json.snap +0 -0
  323. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/hwpx_tests__hwpx_test_hwpx_markdown.snap +0 -0
  324. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/images/BIN0001.jpg +0 -0
  325. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/images/BIN0002.bmp +0 -0
  326. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/images/BIN0003.bmp +0 -0
  327. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/images/BIN0004.jpg +0 -0
  328. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/images/noori/BIN0001.jpg +0 -0
  329. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/images/noori/BIN0002.bmp +0 -0
  330. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/images/noori/BIN0003.bmp +0 -0
  331. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/images/noori/BIN0004.jpg +0 -0
  332. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/issue144-fields-crossing-lineseg-boundary.html +0 -0
  333. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/issue144-fields-crossing-lineseg-boundary.json +0 -0
  334. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/issue144-fields-crossing-lineseg-boundary.md +0 -0
  335. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/issue30.html +0 -0
  336. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/issue30.json +0 -0
  337. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/issue30.md +0 -0
  338. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/linespacing.html +0 -0
  339. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/linespacing.json +0 -0
  340. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/linespacing.md +0 -0
  341. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/lists-bullet.html +0 -0
  342. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/lists-bullet.json +0 -0
  343. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/lists-bullet.md +0 -0
  344. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/lists.html +0 -0
  345. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/lists.json +0 -0
  346. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/lists.md +0 -0
  347. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/matrix.html +0 -0
  348. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/matrix.json +0 -0
  349. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/matrix.md +0 -0
  350. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/multicolumns-in-common-controls.html +0 -0
  351. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/multicolumns-in-common-controls.json +0 -0
  352. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/multicolumns-in-common-controls.md +0 -0
  353. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/multicolumns-layout.html +0 -0
  354. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/multicolumns-layout.json +0 -0
  355. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/multicolumns-layout.md +0 -0
  356. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/multicolumns-widths.html +0 -0
  357. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/multicolumns-widths.json +0 -0
  358. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/multicolumns-widths.md +0 -0
  359. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/multicolumns.html +0 -0
  360. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/multicolumns.json +0 -0
  361. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/multicolumns.md +0 -0
  362. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/noori.html +0 -0
  363. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/noori.json +0 -0
  364. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/noori.md +0 -0
  365. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/outline.html +0 -0
  366. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/outline.json +0 -0
  367. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/outline.md +0 -0
  368. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/page.html +0 -0
  369. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/page.json +0 -0
  370. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/page.md +0 -0
  371. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/pagedefs.html +0 -0
  372. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/pagedefs.json +0 -0
  373. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/pagedefs.md +0 -0
  374. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/parashape.html +0 -0
  375. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/parashape.json +0 -0
  376. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/parashape.md +0 -0
  377. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/sample-5017-pics.json +0 -0
  378. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/sample-5017-pics.md +0 -0
  379. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/sample-5017.json +0 -0
  380. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/sample-5017.md +0 -0
  381. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/selfintroduce.html +0 -0
  382. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/selfintroduce.json +0 -0
  383. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/selfintroduce.md +0 -0
  384. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/shapecontainer-2.json +0 -0
  385. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/shapecontainer-2.md +0 -0
  386. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/shapeline.html +0 -0
  387. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/shapeline.json +0 -0
  388. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/shapeline.md +0 -0
  389. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/shapepict-scaled.json +0 -0
  390. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/shapepict-scaled.md +0 -0
  391. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/shaperect.html +0 -0
  392. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/shaperect.json +0 -0
  393. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/shaperect.md +0 -0
  394. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/snapshot_tests__aligns_html.snap +0 -0
  395. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/snapshot_tests__aligns_json.snap +0 -0
  396. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/snapshot_tests__aligns_markdown.snap +0 -0
  397. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/snapshot_tests__borderfill_html.snap +0 -0
  398. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/snapshot_tests__borderfill_json.snap +0 -0
  399. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/snapshot_tests__borderfill_markdown.snap +0 -0
  400. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/snapshot_tests__charshape_html.snap +0 -0
  401. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/snapshot_tests__charshape_json.snap +0 -0
  402. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/snapshot_tests__charshape_markdown.snap +0 -0
  403. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/snapshot_tests__charstyle_html.snap +0 -0
  404. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/snapshot_tests__charstyle_json.snap +0 -0
  405. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/snapshot_tests__charstyle_markdown.snap +0 -0
  406. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/snapshot_tests__example_html.snap +0 -0
  407. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/snapshot_tests__example_json.snap +0 -0
  408. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/snapshot_tests__example_markdown.snap +0 -0
  409. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/snapshot_tests__facename2_html.snap +0 -0
  410. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/snapshot_tests__facename2_json.snap +0 -0
  411. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/snapshot_tests__facename2_markdown.snap +0 -0
  412. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/snapshot_tests__facename_html.snap +0 -0
  413. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/snapshot_tests__facename_json.snap +0 -0
  414. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/snapshot_tests__facename_markdown.snap +0 -0
  415. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/snapshot_tests__footnote_endnote_html.snap +0 -0
  416. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/snapshot_tests__footnote_endnote_json.snap +0 -0
  417. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/snapshot_tests__footnote_endnote_markdown.snap +0 -0
  418. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/snapshot_tests__headerfooter_html.snap +0 -0
  419. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/snapshot_tests__headerfooter_json.snap +0 -0
  420. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/snapshot_tests__headerfooter_markdown.snap +0 -0
  421. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/snapshot_tests__hwpSummaryInformation_html.snap +0 -0
  422. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/snapshot_tests__hwpSummaryInformation_json.snap +0 -0
  423. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/snapshot_tests__hwpSummaryInformation_markdown.snap +0 -0
  424. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/snapshot_tests__issue144_fields_crossing_lineseg_boundary_html.snap +0 -0
  425. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/snapshot_tests__issue144_fields_crossing_lineseg_boundary_json.snap +0 -0
  426. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/snapshot_tests__issue144_fields_crossing_lineseg_boundary_markdown.snap +0 -0
  427. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/snapshot_tests__issue30_html.snap +0 -0
  428. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/snapshot_tests__issue30_json.snap +0 -0
  429. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/snapshot_tests__issue30_markdown.snap +0 -0
  430. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/snapshot_tests__linespacing_html.snap +0 -0
  431. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/snapshot_tests__linespacing_json.snap +0 -0
  432. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/snapshot_tests__linespacing_markdown.snap +0 -0
  433. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/snapshot_tests__lists_bullet_html.snap +0 -0
  434. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/snapshot_tests__lists_bullet_json.snap +0 -0
  435. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/snapshot_tests__lists_bullet_markdown.snap +0 -0
  436. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/snapshot_tests__lists_html.snap +0 -0
  437. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/snapshot_tests__lists_json.snap +0 -0
  438. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/snapshot_tests__lists_markdown.snap +0 -0
  439. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/snapshot_tests__matrix_html.snap +0 -0
  440. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/snapshot_tests__matrix_json.snap +0 -0
  441. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/snapshot_tests__matrix_markdown.snap +0 -0
  442. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/snapshot_tests__multicolumns_html.snap +0 -0
  443. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/snapshot_tests__multicolumns_in_common_controls_html.snap +0 -0
  444. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/snapshot_tests__multicolumns_in_common_controls_json.snap +0 -0
  445. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/snapshot_tests__multicolumns_in_common_controls_markdown.snap +0 -0
  446. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/snapshot_tests__multicolumns_json.snap +0 -0
  447. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/snapshot_tests__multicolumns_layout_html.snap +0 -0
  448. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/snapshot_tests__multicolumns_layout_json.snap +0 -0
  449. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/snapshot_tests__multicolumns_layout_markdown.snap +0 -0
  450. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/snapshot_tests__multicolumns_markdown.snap +0 -0
  451. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/snapshot_tests__multicolumns_widths_html.snap +0 -0
  452. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/snapshot_tests__multicolumns_widths_json.snap +0 -0
  453. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/snapshot_tests__multicolumns_widths_markdown.snap +0 -0
  454. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/snapshot_tests__noori_html.snap +0 -0
  455. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/snapshot_tests__noori_json.snap +0 -0
  456. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/snapshot_tests__noori_markdown.snap +0 -0
  457. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/snapshot_tests__outline_html.snap +0 -0
  458. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/snapshot_tests__outline_json.snap +0 -0
  459. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/snapshot_tests__outline_markdown.snap +0 -0
  460. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/snapshot_tests__page_html.snap +0 -0
  461. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/snapshot_tests__page_json.snap +0 -0
  462. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/snapshot_tests__page_markdown.snap +0 -0
  463. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/snapshot_tests__pagedefs_html.snap +0 -0
  464. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/snapshot_tests__pagedefs_json.snap +0 -0
  465. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/snapshot_tests__pagedefs_markdown.snap +0 -0
  466. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/snapshot_tests__parashape_html.snap +0 -0
  467. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/snapshot_tests__parashape_json.snap +0 -0
  468. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/snapshot_tests__parashape_markdown.snap +0 -0
  469. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/snapshot_tests__selfintroduce_html.snap +0 -0
  470. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/snapshot_tests__selfintroduce_json.snap +0 -0
  471. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/snapshot_tests__selfintroduce_markdown.snap +0 -0
  472. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/snapshot_tests__shapeline_html.snap +0 -0
  473. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/snapshot_tests__shapeline_json.snap +0 -0
  474. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/snapshot_tests__shapeline_markdown.snap +0 -0
  475. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/snapshot_tests__shaperect_html.snap +0 -0
  476. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/snapshot_tests__shaperect_json.snap +0 -0
  477. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/snapshot_tests__shaperect_markdown.snap +0 -0
  478. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/snapshot_tests__strikethrough_html.snap +0 -0
  479. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/snapshot_tests__strikethrough_json.snap +0 -0
  480. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/snapshot_tests__strikethrough_markdown.snap +0 -0
  481. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/snapshot_tests__tabdef_html.snap +0 -0
  482. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/snapshot_tests__tabdef_json.snap +0 -0
  483. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/snapshot_tests__tabdef_markdown.snap +0 -0
  484. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/snapshot_tests__table2_html.snap +0 -0
  485. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/snapshot_tests__table2_json.snap +0 -0
  486. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/snapshot_tests__table2_markdown.snap +0 -0
  487. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/snapshot_tests__table_caption_html.snap +0 -0
  488. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/snapshot_tests__table_caption_json.snap +0 -0
  489. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/snapshot_tests__table_caption_markdown.snap +0 -0
  490. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/snapshot_tests__table_html.snap +0 -0
  491. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/snapshot_tests__table_json.snap +0 -0
  492. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/snapshot_tests__table_markdown.snap +0 -0
  493. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/snapshot_tests__table_position_html.snap +0 -0
  494. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/snapshot_tests__table_position_json.snap +0 -0
  495. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/snapshot_tests__table_position_markdown.snap +0 -0
  496. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/snapshot_tests__textbox_html.snap +0 -0
  497. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/snapshot_tests__textbox_json.snap +0 -0
  498. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/snapshot_tests__textbox_markdown.snap +0 -0
  499. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/snapshot_tests__underline_styles_html.snap +0 -0
  500. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/snapshot_tests__underline_styles_json.snap +0 -0
  501. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/snapshot_tests__underline_styles_markdown.snap +0 -0
  502. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/snapshot_tests__viewtext_html.snap +0 -0
  503. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/snapshot_tests__viewtext_json.snap +0 -0
  504. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/snapshot_tests__viewtext_markdown.snap +0 -0
  505. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/strikethrough.html +0 -0
  506. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/strikethrough.json +0 -0
  507. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/strikethrough.md +0 -0
  508. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/tabdef.html +0 -0
  509. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/tabdef.json +0 -0
  510. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/tabdef.md +0 -0
  511. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/table-caption.html +0 -0
  512. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/table-caption.json +0 -0
  513. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/table-caption.md +0 -0
  514. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/table-position.html +0 -0
  515. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/table-position.json +0 -0
  516. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/table-position.md +0 -0
  517. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/table.html +0 -0
  518. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/table.json +0 -0
  519. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/table.md +0 -0
  520. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/table2.html +0 -0
  521. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/table2.json +0 -0
  522. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/table2.md +0 -0
  523. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/textbox.html +0 -0
  524. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/textbox.json +0 -0
  525. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/textbox.md +0 -0
  526. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/underline-styles.html +0 -0
  527. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/underline-styles.json +0 -0
  528. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/underline-styles.md +0 -0
  529. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/viewtext.html +0 -0
  530. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/viewtext.json +0 -0
  531. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/snapshots/viewtext.md +0 -0
  532. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/test_crossing_hyperlink.rs +0 -0
  533. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/crates/hwp-core/tests/test_new_file.rs +0 -0
  534. {hwpxkit-0.2.0/packages/hwpx-python/python/hwpx → hwpxkit-0.2.1/packages/hwpx-python/python/hwpxkit}/py.typed +0 -0
  535. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/packages/hwpx-python/scripts/check_no_production_debug_output.py +0 -0
  536. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/packages/hwpx-python/scripts/check_no_production_debug_output_test.py +0 -0
  537. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/packages/hwpx-python/scripts/check_no_production_panics.py +0 -0
  538. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/packages/hwpx-python/scripts/check_no_production_panics_test.py +0 -0
  539. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/packages/hwpx-python/scripts/check_no_production_todos.py +0 -0
  540. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/packages/hwpx-python/scripts/check_no_production_todos_test.py +0 -0
  541. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/packages/hwpx-python/scripts/check_pyo3_gil_release.py +0 -0
  542. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/packages/hwpx-python/scripts/check_pyo3_gil_release_test.py +0 -0
  543. {hwpxkit-0.2.0 → hwpxkit-0.2.1}/packages/hwpx-python/scripts/check_workflows_test.py +0 -0
  544. {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.0"
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.0"
357
+ version = "0.2.1"
358
358
  dependencies = [
359
359
  "hwp-core",
360
360
  "pyo3",
@@ -3,7 +3,7 @@ members = ["crates/*", "packages/hwpx-python"]
3
3
  resolver = "2"
4
4
 
5
5
  [workspace.package]
6
- version = "0.2.0"
6
+ version = "0.2.1"
7
7
  edition = "2021"
8
8
  authors = ["kevin <ftkevin12@gmail.com>"]
9
9
  license = "MIT"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: hwpxkit
3
- Version: 0.2.0
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
- # hwpx
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 hwpx
69
+ import hwpxkit
70
70
 
71
71
  # Parse from file path
72
- doc = hwpx.parse_file("document.hwpx")
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 = hwpx.parse(f.read())
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. `hwpx.parse_file()` rejects source files larger than 512 MiB before reading
133
- them into memory; callers that use `hwpx.parse(bytes)` are responsible for bounding the
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
- # hwpx
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 hwpx
44
+ import hwpxkit
45
45
 
46
46
  # Parse from file path
47
- doc = hwpx.parse_file("document.hwpx")
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 = hwpx.parse(f.read())
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. `hwpx.parse_file()` rejects source files larger than 512 MiB before reading
108
- them into memory; callers that use `hwpx.parse(bytes)` are responsible for bounding the
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.0"
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 = "hwpx"
15
+ name = "_native"
16
16
  crate-type = ["cdylib"]
17
17
 
18
18
  [features]
@@ -1,4 +1,4 @@
1
- # hwpx
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 hwpx
44
+ import hwpxkit
45
45
 
46
46
  # Parse from file path
47
- doc = hwpx.parse_file("document.hwpx")
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 = hwpx.parse(f.read())
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. `hwpx.parse_file()` rejects source files larger than 512 MiB before reading
108
- them into memory; callers that use `hwpx.parse(bytes)` are responsible for bounding the
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
- hwpx - Python bindings for HWP/HWPX document parser
2
+ hwpxkit - Python bindings for HWP/HWPX document parser
3
3
 
4
4
  Example usage:
5
- >>> import hwpx
5
+ >>> import hwpxkit
6
6
  >>>
7
7
  >>> # Parse from file path
8
- >>> doc = hwpx.parse_file("document.hwpx")
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 = hwpx.parse(f.read())
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 .hwpx import parse, parse_file, Document
28
+ from ._native import parse, parse_file, Document
29
29
 
30
30
  __all__ = ["parse", "parse_file", "Document"]
31
- __version__ = "0.2.0"
31
+ __version__ = "0.2.1"
@@ -1,4 +1,4 @@
1
- """Type stubs for hwpx module"""
1
+ """Type stubs for hwpxkit module"""
2
2
  from typing import Dict, List, Optional, TypedDict
3
3
 
4
4
  class DiagnosticContext(TypedDict):
@@ -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
- init_path = root / "packages/hwpx-python/python/hwpx/__init__.py"
85
- init_text = init_path.read_text(encoding="utf-8")
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/python/hwpx/__init__.py version "
92
- f"{init_match.group(1)!r} does not match workspace version {workspace_version!r}"
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/hwpx/__init__.py",
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/hwpx/__init__.py", '__version__ = "0.2.1"\n')
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/hwpx/__init__.py", result.stderr)
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 hwpx source distribution contents."""
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/hwpx/__init__.py",
35
- "python/hwpx/__init__.pyi",
36
- "python/hwpx/py.typed",
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/hwpx/__init__.py", "")
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}: hwpx __init__.py is missing __version__")
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/hwpx/__init__.py": init_version,
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/hwpx/__init__.pyi", "")
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.0"
17
- VERSION = "0.2.0"
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": "# hwpx\n",
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/hwpx/__init__.py": (
82
+ f"{ROOT}/python/hwpxkit/__init__.py": (
83
83
  f'__version__ = "{version}"\n'
84
84
  ),
85
- f"{ROOT}/python/hwpx/__init__.pyi": """
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/hwpx/py.typed": "",
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.0.tar.gz"
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.0.tar.gz"
127
+ sdist = Path(tmp) / "hwpxkit-0.2.1.tar.gz"
128
128
  files = valid_files()
129
- del files[f"{ROOT}/python/hwpx/py.typed"]
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.0.tar.gz"
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.0.tar.gz"
159
+ sdist = Path(tmp) / "hwpxkit-0.2.1.tar.gz"
160
160
  files = valid_files()
161
- files[f"{ROOT}/python/hwpx/__init__.py"] = (
162
- '__version__ = "0.2.1"\n'
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.0.tar.gz"
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.0\n"
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.0.tar.gz"
189
+ sdist = Path(tmp) / "hwpxkit-0.2.1.tar.gz"
190
190
  files = valid_files()
191
- files[f"{ROOT}/python/hwpx/__init__.pyi"] = """
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.0.tar.gz"
205
+ sdist = Path(tmp) / "hwpxkit-0.2.1.tar.gz"
206
206
  files = valid_files()
207
- files[f"{ROOT}/python/hwpx/__init__.pyi"] = """
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.0.tar.gz"
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.0.tar.gz"
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.0.tar.gz"
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 hwpx sdist in a fresh virtualenv and smoke test the package."""
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 hwpx
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.__version__ == expected_version
124
- assert callable(hwpx.parse)
125
- assert callable(hwpx.parse_file)
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 = hwpx.parse_file(str(fixture_path))
128
- doc_from_bytes = hwpx.parse(fixture_path.read_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)