ezdxf 1.3.0rc0__zip → 1.3.1__zip

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 (832) hide show
  1. {ezdxf-1.3.0rc0/src/ezdxf.egg-info → ezdxf-1.3.1}/PKG-INFO +1 -1
  2. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/acis/api.py +5 -4
  3. ezdxf-1.3.1/src/ezdxf/acis/cache.py +59 -0
  4. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/acis/entities.py +8 -7
  5. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/acis/mesh.py +80 -0
  6. ezdxf-1.3.1/src/ezdxf/acis/type_hints.py +7 -0
  7. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/addons/acadctb.py +13 -1
  8. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/addons/drawing/frontend.py +5 -2
  9. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/addons/dxf2code.py +1 -1
  10. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/addons/odafc.py +4 -1
  11. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/audit.py +2 -0
  12. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/document.py +5 -6
  13. ezdxf-1.3.1/src/ezdxf/edgeminer.py +1166 -0
  14. ezdxf-1.3.1/src/ezdxf/edgesmith.py +231 -0
  15. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/entities/acad_proxy_entity.py +0 -1
  16. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/entities/acad_table.py +12 -11
  17. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/entities/acis.py +30 -4
  18. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/entities/boundary_paths.py +44 -16
  19. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/entities/dxfentity.py +2 -6
  20. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/entities/dxfgroups.py +37 -11
  21. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/entities/layout.py +3 -1
  22. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/entities/polygon.py +12 -0
  23. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/graphicsfactory.py +1 -2
  24. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/layouts/base.py +8 -2
  25. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/math/clipping.py +8 -28
  26. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/math/rtree.py +53 -54
  27. ezdxf-1.3.1/src/ezdxf/messenger.py +19 -0
  28. ezdxf-1.3.1/src/ezdxf/msgtypes.py +9 -0
  29. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/path/converter.py +16 -10
  30. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/protocols.py +6 -1
  31. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/render/trace.py +14 -40
  32. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/sections/blocks.py +34 -20
  33. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/tools/clipping_portal.py +24 -18
  34. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/version.py +2 -2
  35. {ezdxf-1.3.0rc0 → ezdxf-1.3.1/src/ezdxf.egg-info}/PKG-INFO +1 -1
  36. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf.egg-info/SOURCES.txt +10 -0
  37. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_02_dxf_graphics/test_224_group.py +35 -5
  38. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_02_dxf_graphics/test_249_boundary_paths.py +36 -0
  39. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_04_dxf_high_level_structs/test_413_dxfgroups.py +2 -1
  40. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_04_dxf_high_level_structs/test_424_audit.py +21 -0
  41. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_05_tools/test_532_acis_mesh.py +13 -5
  42. ezdxf-1.3.1/tests/test_05_tools/test_545_acis_cache.py +104 -0
  43. ezdxf-1.3.1/tests/test_05_tools/test_546_edgeminer.py +749 -0
  44. ezdxf-1.3.1/tests/test_05_tools/test_547_edgesmith.py +123 -0
  45. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_06_math/test_619_greiner_hormann.py +97 -5
  46. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_08_addons/test_803_entities_to_code.py +21 -0
  47. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_08_addons/test_806_acadctb.py +28 -8
  48. ezdxf-1.3.1/tests/test_10_issues/test_issue_1078_bbox_calculation.py +43 -0
  49. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/LICENSE +0 -0
  50. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/MANIFEST.in +0 -0
  51. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/README.md +0 -0
  52. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/integration_tests/check_disable_c_ext_by_config_file.py +0 -0
  53. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/integration_tests/check_disable_c_ext_by_env_var.py +0 -0
  54. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/integration_tests/conftest.py +0 -0
  55. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/integration_tests/data/AC1003_LINE_Example.dxf +0 -0
  56. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/integration_tests/data/ASCII_R12.dxf +0 -0
  57. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/integration_tests/data/Leica_Disto_S910.dxf +0 -0
  58. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/integration_tests/data/MODEL.dxf +0 -0
  59. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/integration_tests/data/PLOTFILE.plt +0 -0
  60. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/integration_tests/data/POLI-ALL210_12.DXF +0 -0
  61. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/integration_tests/data/R12_with_trash_beyond_EOF.dxf +0 -0
  62. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/integration_tests/data/XRECORD_0.bin +0 -0
  63. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/integration_tests/data/XRECORD_1.bin +0 -0
  64. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/integration_tests/data/XRECORD_2.bin +0 -0
  65. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/integration_tests/data/acad_table_with_blk_ref.dxf +0 -0
  66. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/integration_tests/data/bin_dxf_r12.dxf +0 -0
  67. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/integration_tests/data/bin_dxf_r13.dxf +0 -0
  68. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/integration_tests/data/bin_dxf_r14.dxf +0 -0
  69. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/integration_tests/data/bin_dxf_r2000.dxf +0 -0
  70. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/integration_tests/data/cc_dxflib.dxf +0 -0
  71. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/integration_tests/data/custom_blocks.dxf +0 -0
  72. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/integration_tests/data/duplicate_handles.dxf +0 -0
  73. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/integration_tests/data/dxf_unicode.dxf +0 -0
  74. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/integration_tests/data/dynblks.zip +0 -0
  75. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/integration_tests/data/empty_handles.dxf +0 -0
  76. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/integration_tests/data/groups.dxf +0 -0
  77. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/integration_tests/data/layout_broken_links.dxf +0 -0
  78. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/integration_tests/data/layout_broken_links_2.dxf +0 -0
  79. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/integration_tests/data/layout_missing_block_definition.dxf +0 -0
  80. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/integration_tests/data/layout_missing_block_record.dxf +0 -0
  81. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/integration_tests/data/mtext_columns_R2007.dxf +0 -0
  82. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/integration_tests/data/mtext_columns_R2018.dxf +0 -0
  83. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/integration_tests/data/mtext_framed_columns.dxf +0 -0
  84. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/integration_tests/data/mtext_text_frame.dxf +0 -0
  85. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/integration_tests/data/no_layouts.dxf +0 -0
  86. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/integration_tests/data/recover01.dxf +0 -0
  87. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/integration_tests/data/recover02.dxf +0 -0
  88. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/integration_tests/data/small_r13.dxf +0 -0
  89. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/integration_tests/data/small_r14.dxf +0 -0
  90. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/integration_tests/test_acad_table.py +0 -0
  91. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/integration_tests/test_acis_entites.py +0 -0
  92. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/integration_tests/test_all_dimline_styles.py +0 -0
  93. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/integration_tests/test_all_ellipse_transformations.py +0 -0
  94. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/integration_tests/test_anonymous_blocks.py +0 -0
  95. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/integration_tests/test_appsettings.py +0 -0
  96. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/integration_tests/test_audit_critical_dxf_files.py +0 -0
  97. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/integration_tests/test_audit_layouts.py +0 -0
  98. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/integration_tests/test_complex_line_type_2.py +0 -0
  99. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/integration_tests/test_create_basic_graphics.py +0 -0
  100. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/integration_tests/test_document_guid.py +0 -0
  101. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/integration_tests/test_document_page_setup.py +0 -0
  102. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/integration_tests/test_dxf_info_scanning.py +0 -0
  103. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/integration_tests/test_dynblkhelper.py +0 -0
  104. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/integration_tests/test_entities_iterator.py +0 -0
  105. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/integration_tests/test_fix_dulicate_handles.py +0 -0
  106. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/integration_tests/test_geo.py +0 -0
  107. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/integration_tests/test_groups.py +0 -0
  108. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/integration_tests/test_hpgl2_addon.py +0 -0
  109. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/integration_tests/test_ignore_junk_beyond_EOF.py +0 -0
  110. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/integration_tests/test_launcher.py +0 -0
  111. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/integration_tests/test_leica_disto_r12.py +0 -0
  112. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/integration_tests/test_load_dxf_unicode_notation.py +0 -0
  113. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/integration_tests/test_mapbox_earcut.py +0 -0
  114. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/integration_tests/test_mtext_columns.py +0 -0
  115. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/integration_tests/test_mtext_explode_addon.py +0 -0
  116. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/integration_tests/test_mtext_text_frame.py +0 -0
  117. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/integration_tests/test_new_table_entries.py +0 -0
  118. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/integration_tests/test_none_ascii_read_write.py +0 -0
  119. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/integration_tests/test_odafc.py +0 -0
  120. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/integration_tests/test_open_R13_R14.py +0 -0
  121. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/integration_tests/test_open_binary_DXF_files.py +0 -0
  122. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/integration_tests/test_open_coord_order_issue.py +0 -0
  123. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/integration_tests/test_open_exotic_dxf_files.py +0 -0
  124. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/integration_tests/test_polyline_entity.py +0 -0
  125. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/integration_tests/test_preserve_binary_data_in_xrecords.py +0 -0
  126. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/integration_tests/test_r12export.py +0 -0
  127. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/integration_tests/test_r12strict.py +0 -0
  128. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/integration_tests/test_r12writer.py +0 -0
  129. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/integration_tests/test_read_file_without_handles.py +0 -0
  130. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/integration_tests/test_read_write_modern_entites.py +0 -0
  131. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/integration_tests/test_recover.py +0 -0
  132. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/integration_tests/test_redraw_order.py +0 -0
  133. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/integration_tests/test_rotated_block_attributes.py +0 -0
  134. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/integration_tests/test_surface_entities.py +0 -0
  135. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/integration_tests/test_write_fixed_meta_data.py +0 -0
  136. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/integration_tests/test_write_without_handles.py +0 -0
  137. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/integration_tests/test_xref_detach.py +0 -0
  138. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/integration_tests/test_xref_load_acis.py +0 -0
  139. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/pyproject.toml +0 -0
  140. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/requirements.txt +0 -0
  141. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/setup.cfg +0 -0
  142. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/setup.py +0 -0
  143. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/__init__.py +0 -0
  144. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/__main__.py +0 -0
  145. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/_options.py +0 -0
  146. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/acc/__init__.py +0 -0
  147. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/acc/bezier3p.pyx +0 -0
  148. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/acc/bezier4p.pyx +0 -0
  149. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/acc/bspline.pyx +0 -0
  150. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/acc/constants.h +0 -0
  151. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/acc/construct.pyx +0 -0
  152. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/acc/linetypes.pyx +0 -0
  153. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/acc/mapbox_earcut.pyx +0 -0
  154. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/acc/matrix44.pxd +0 -0
  155. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/acc/matrix44.pyx +0 -0
  156. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/acc/np_support.pyx +0 -0
  157. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/acc/vector.pxd +0 -0
  158. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/acc/vector.pyx +0 -0
  159. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/acis/__init__.py +0 -0
  160. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/acis/abstract.py +0 -0
  161. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/acis/const.py +0 -0
  162. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/acis/dbg.py +0 -0
  163. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/acis/dxf.py +0 -0
  164. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/acis/hdr.py +0 -0
  165. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/acis/sab.py +0 -0
  166. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/acis/sat.py +0 -0
  167. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/addons/__init__.py +0 -0
  168. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/addons/acisbrowser/__init__.py +0 -0
  169. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/addons/acisbrowser/browser.py +0 -0
  170. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/addons/acisbrowser/data.py +0 -0
  171. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/addons/binpacking.py +0 -0
  172. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/addons/browser/__init__.py +0 -0
  173. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/addons/browser/bookmarks.py +0 -0
  174. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/addons/browser/browser.py +0 -0
  175. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/addons/browser/data.py +0 -0
  176. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/addons/browser/find_dialog.py +0 -0
  177. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/addons/browser/loader.py +0 -0
  178. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/addons/browser/model.py +0 -0
  179. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/addons/browser/reflinks.py +0 -0
  180. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/addons/browser/tags.py +0 -0
  181. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/addons/browser/views.py +0 -0
  182. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/addons/dimlines.py +0 -0
  183. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/addons/drawing/__init__.py +0 -0
  184. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/addons/drawing/backend.py +0 -0
  185. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/addons/drawing/config.py +0 -0
  186. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/addons/drawing/debug_backend.py +0 -0
  187. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/addons/drawing/debug_utils.py +0 -0
  188. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/addons/drawing/dxf.py +0 -0
  189. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/addons/drawing/file_output.py +0 -0
  190. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/addons/drawing/gfxproxy.py +0 -0
  191. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/addons/drawing/hpgl2.py +0 -0
  192. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/addons/drawing/json.py +0 -0
  193. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/addons/drawing/layout.py +0 -0
  194. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/addons/drawing/matplotlib.py +0 -0
  195. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/addons/drawing/mtext_complex.py +0 -0
  196. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/addons/drawing/pipeline.py +0 -0
  197. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/addons/drawing/properties.py +0 -0
  198. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/addons/drawing/pymupdf.py +0 -0
  199. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/addons/drawing/pyqt.py +0 -0
  200. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/addons/drawing/qtviewer.py +0 -0
  201. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/addons/drawing/recorder.py +0 -0
  202. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/addons/drawing/svg.py +0 -0
  203. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/addons/drawing/text.py +0 -0
  204. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/addons/drawing/text_renderer.py +0 -0
  205. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/addons/drawing/type_hints.py +0 -0
  206. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/addons/drawing/unified_text_renderer.py +0 -0
  207. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/addons/dwg/__init__.py +0 -0
  208. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/addons/dwg/classes_section.py +0 -0
  209. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/addons/dwg/const.py +0 -0
  210. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/addons/dwg/crc.py +0 -0
  211. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/addons/dwg/fileheader.py +0 -0
  212. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/addons/dwg/header_section.py +0 -0
  213. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/addons/dwg/loader.py +0 -0
  214. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/addons/genetic_algorithm.py +0 -0
  215. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/addons/geo.py +0 -0
  216. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/addons/gerber_D6673.py +0 -0
  217. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/addons/hpgl2/__init__.py +0 -0
  218. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/addons/hpgl2/api.py +0 -0
  219. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/addons/hpgl2/backend.py +0 -0
  220. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/addons/hpgl2/deps.py +0 -0
  221. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/addons/hpgl2/interpreter.py +0 -0
  222. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/addons/hpgl2/page.py +0 -0
  223. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/addons/hpgl2/plotter.py +0 -0
  224. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/addons/hpgl2/polygon_buffer.py +0 -0
  225. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/addons/hpgl2/properties.py +0 -0
  226. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/addons/hpgl2/tokenizer.py +0 -0
  227. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/addons/hpgl2/viewer.py +0 -0
  228. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/addons/importer.py +0 -0
  229. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/addons/iterdxf.py +0 -0
  230. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/addons/menger_sponge.py +0 -0
  231. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/addons/meshex.py +0 -0
  232. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/addons/mixins.py +0 -0
  233. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/addons/mtextsurrogate.py +0 -0
  234. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/addons/mtxpl.py +0 -0
  235. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/addons/openscad.py +0 -0
  236. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/addons/pycsg.py +0 -0
  237. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/addons/r12export.py +0 -0
  238. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/addons/r12writer.py +0 -0
  239. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/addons/sierpinski_pyramid.py +0 -0
  240. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/addons/tablepainter.py +0 -0
  241. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/addons/text2path.py +0 -0
  242. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/addons/xplayer.py +0 -0
  243. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/addons/xqt.py +0 -0
  244. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/appsettings.py +0 -0
  245. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/bbox.py +0 -0
  246. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/blkrefs.py +0 -0
  247. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/colors.py +0 -0
  248. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/commands.py +0 -0
  249. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/comments.py +0 -0
  250. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/disassemble.py +0 -0
  251. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/dwginfo.py +0 -0
  252. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/dynblkhelper.py +0 -0
  253. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/entities/__init__.py +0 -0
  254. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/entities/acad_xrec_roundtrip.py +0 -0
  255. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/entities/appdata.py +0 -0
  256. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/entities/appid.py +0 -0
  257. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/entities/arc.py +0 -0
  258. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/entities/attrib.py +0 -0
  259. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/entities/block.py +0 -0
  260. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/entities/blockrecord.py +0 -0
  261. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/entities/circle.py +0 -0
  262. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/entities/copy.py +0 -0
  263. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/entities/dictionary.py +0 -0
  264. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/entities/dimension.py +0 -0
  265. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/entities/dimstyle.py +0 -0
  266. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/entities/dimstyleoverride.py +0 -0
  267. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/entities/dxfclass.py +0 -0
  268. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/entities/dxfgfx.py +0 -0
  269. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/entities/dxfns.py +0 -0
  270. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/entities/dxfobj.py +0 -0
  271. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/entities/ellipse.py +0 -0
  272. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/entities/factory.py +0 -0
  273. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/entities/geodata.py +0 -0
  274. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/entities/gradient.py +0 -0
  275. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/entities/hatch.py +0 -0
  276. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/entities/helix.py +0 -0
  277. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/entities/idbuffer.py +0 -0
  278. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/entities/image.py +0 -0
  279. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/entities/insert.py +0 -0
  280. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/entities/layer.py +0 -0
  281. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/entities/leader.py +0 -0
  282. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/entities/light.py +0 -0
  283. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/entities/line.py +0 -0
  284. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/entities/ltype.py +0 -0
  285. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/entities/lwpolyline.py +0 -0
  286. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/entities/material.py +0 -0
  287. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/entities/mesh.py +0 -0
  288. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/entities/mleader.py +0 -0
  289. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/entities/mline.py +0 -0
  290. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/entities/mpolygon.py +0 -0
  291. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/entities/mtext.py +0 -0
  292. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/entities/mtext_columns.py +0 -0
  293. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/entities/objectcollection.py +0 -0
  294. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/entities/oleframe.py +0 -0
  295. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/entities/pattern.py +0 -0
  296. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/entities/point.py +0 -0
  297. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/entities/polyline.py +0 -0
  298. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/entities/shape.py +0 -0
  299. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/entities/solid.py +0 -0
  300. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/entities/spatial_filter.py +0 -0
  301. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/entities/spline.py +0 -0
  302. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/entities/subentity.py +0 -0
  303. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/entities/sun.py +0 -0
  304. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/entities/table.py +0 -0
  305. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/entities/temporary_transform.py +0 -0
  306. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/entities/text.py +0 -0
  307. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/entities/textstyle.py +0 -0
  308. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/entities/tolerance.py +0 -0
  309. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/entities/ucs.py +0 -0
  310. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/entities/underlay.py +0 -0
  311. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/entities/view.py +0 -0
  312. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/entities/viewport.py +0 -0
  313. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/entities/visualstyle.py +0 -0
  314. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/entities/vport.py +0 -0
  315. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/entities/xdata.py +0 -0
  316. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/entities/xdict.py +0 -0
  317. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/entities/xline.py +0 -0
  318. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/entitydb.py +0 -0
  319. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/enums.py +0 -0
  320. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/explode.py +0 -0
  321. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/eztypes.py +0 -0
  322. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/filemanagement.py +0 -0
  323. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/fonts/__init__.py +0 -0
  324. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/fonts/font_face.py +0 -0
  325. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/fonts/font_manager.py +0 -0
  326. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/fonts/font_measurements.py +0 -0
  327. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/fonts/font_synonyms.py +0 -0
  328. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/fonts/fonts.py +0 -0
  329. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/fonts/glyphs.py +0 -0
  330. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/fonts/lff.py +0 -0
  331. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/fonts/shapefile.py +0 -0
  332. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/fonts/ttfonts.py +0 -0
  333. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/gfxattribs.py +0 -0
  334. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/groupby.py +0 -0
  335. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/layouts/__init__.py +0 -0
  336. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/layouts/blocklayout.py +0 -0
  337. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/layouts/layout.py +0 -0
  338. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/layouts/layouts.py +0 -0
  339. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/lldxf/__init__.py +0 -0
  340. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/lldxf/attributes.py +0 -0
  341. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/lldxf/const.py +0 -0
  342. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/lldxf/encoding.py +0 -0
  343. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/lldxf/extendedtags.py +0 -0
  344. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/lldxf/fileindex.py +0 -0
  345. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/lldxf/hdrvars.py +0 -0
  346. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/lldxf/loader.py +0 -0
  347. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/lldxf/packedtags.py +0 -0
  348. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/lldxf/repair.py +0 -0
  349. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/lldxf/tagger.py +0 -0
  350. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/lldxf/tags.py +0 -0
  351. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/lldxf/tagwriter.py +0 -0
  352. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/lldxf/types.py +0 -0
  353. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/lldxf/validator.py +0 -0
  354. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/math/__init__.py +0 -0
  355. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/math/_bezier3p.py +0 -0
  356. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/math/_bezier4p.py +0 -0
  357. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/math/_bspline.py +0 -0
  358. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/math/_construct.py +0 -0
  359. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/math/_ctypes.py +0 -0
  360. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/math/_mapbox_earcut.py +0 -0
  361. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/math/_matrix44.py +0 -0
  362. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/math/_vector.py +0 -0
  363. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/math/arc.py +0 -0
  364. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/math/bbox.py +0 -0
  365. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/math/bezier.py +0 -0
  366. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/math/bezier_interpolation.py +0 -0
  367. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/math/box.py +0 -0
  368. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/math/bspline.py +0 -0
  369. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/math/bulge.py +0 -0
  370. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/math/circle.py +0 -0
  371. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/math/clustering.py +0 -0
  372. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/math/construct2d.py +0 -0
  373. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/math/construct3d.py +0 -0
  374. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/math/cspline.py +0 -0
  375. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/math/curvetools.py +0 -0
  376. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/math/ellipse.py +0 -0
  377. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/math/eulerspiral.py +0 -0
  378. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/math/legacy.py +0 -0
  379. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/math/linalg.py +0 -0
  380. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/math/line.py +0 -0
  381. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/math/offset2d.py +0 -0
  382. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/math/parametrize.py +0 -0
  383. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/math/perlin.py +0 -0
  384. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/math/polyline.py +0 -0
  385. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/math/shape.py +0 -0
  386. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/math/transformtools.py +0 -0
  387. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/math/triangulation.py +0 -0
  388. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/math/ucs.py +0 -0
  389. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/npshapes.py +0 -0
  390. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/path/__init__.py +0 -0
  391. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/path/commands.py +0 -0
  392. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/path/nesting.py +0 -0
  393. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/path/path.py +0 -0
  394. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/path/shapes.py +0 -0
  395. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/path/tools.py +0 -0
  396. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/proxygraphic.py +0 -0
  397. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/py.typed +0 -0
  398. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/query.py +0 -0
  399. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/queryparser.py +0 -0
  400. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/r12strict.py +0 -0
  401. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/recover.py +0 -0
  402. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/render/__init__.py +0 -0
  403. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/render/_linetypes.py +0 -0
  404. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/render/abstract_mtext_renderer.py +0 -0
  405. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/render/arrows.py +0 -0
  406. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/render/curves.py +0 -0
  407. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/render/dim_base.py +0 -0
  408. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/render/dim_curved.py +0 -0
  409. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/render/dim_diameter.py +0 -0
  410. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/render/dim_linear.py +0 -0
  411. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/render/dim_ordinate.py +0 -0
  412. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/render/dim_radius.py +0 -0
  413. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/render/dimension.py +0 -0
  414. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/render/forms.py +0 -0
  415. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/render/hatching.py +0 -0
  416. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/render/leader.py +0 -0
  417. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/render/linetypes.py +0 -0
  418. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/render/mesh.py +0 -0
  419. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/render/mleader.py +0 -0
  420. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/render/mline.py +0 -0
  421. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/render/point.py +0 -0
  422. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/render/polyline.py +0 -0
  423. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/render/r12spline.py +0 -0
  424. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/reorder.py +0 -0
  425. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/resources/16x16.png +0 -0
  426. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/resources/24x24.png +0 -0
  427. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/resources/256x256.png +0 -0
  428. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/resources/32x32.png +0 -0
  429. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/resources/48x48.png +0 -0
  430. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/resources/64x64.png +0 -0
  431. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/resources/icon-copy-64px.png +0 -0
  432. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/resources/icon-find-64px.png +0 -0
  433. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/resources/icon-goto-bookmark-64px.png +0 -0
  434. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/resources/icon-goto-handle-64px.png +0 -0
  435. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/resources/icon-goto-line-64px.png +0 -0
  436. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/resources/icon-left-arrow-64px.png +0 -0
  437. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/resources/icon-next-entity-64px.png +0 -0
  438. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/resources/icon-prev-entity-64px.png +0 -0
  439. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/resources/icon-right-arrow-64px.png +0 -0
  440. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/resources/icon-show-in-tree-64px.png +0 -0
  441. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/resources/icon-store-bookmark-64px.png +0 -0
  442. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/revcloud.py +0 -0
  443. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/sections/__init__.py +0 -0
  444. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/sections/acdsdata.py +0 -0
  445. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/sections/classes.py +0 -0
  446. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/sections/entities.py +0 -0
  447. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/sections/header.py +0 -0
  448. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/sections/headervars.py +0 -0
  449. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/sections/objects.py +0 -0
  450. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/sections/table.py +0 -0
  451. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/sections/tables.py +0 -0
  452. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/select.py +0 -0
  453. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/tools/__init__.py +0 -0
  454. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/tools/_iso_pattern.py +0 -0
  455. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/tools/analyze.py +0 -0
  456. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/tools/binarydata.py +0 -0
  457. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/tools/codepage.py +0 -0
  458. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/tools/complex_ltype.py +0 -0
  459. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/tools/crypt.py +0 -0
  460. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/tools/debug.py +0 -0
  461. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/tools/difftags.py +0 -0
  462. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/tools/handle.py +0 -0
  463. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/tools/indexing.py +0 -0
  464. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/tools/juliandate.py +0 -0
  465. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/tools/pattern.py +0 -0
  466. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/tools/rawloader.py +0 -0
  467. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/tools/standards.py +0 -0
  468. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/tools/strip.py +0 -0
  469. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/tools/test.py +0 -0
  470. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/tools/text.py +0 -0
  471. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/tools/text_layout.py +0 -0
  472. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/tools/text_size.py +0 -0
  473. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/tools/zipmanager.py +0 -0
  474. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/transform.py +0 -0
  475. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/units.py +0 -0
  476. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/upright.py +0 -0
  477. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/urecord.py +0 -0
  478. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/xclip.py +0 -0
  479. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/xref.py +0 -0
  480. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf/zoom.py +0 -0
  481. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf.egg-info/dependency_links.txt +0 -0
  482. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf.egg-info/entry_points.txt +0 -0
  483. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf.egg-info/not-zip-safe +0 -0
  484. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf.egg-info/requires.txt +0 -0
  485. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/src/ezdxf.egg-info/top_level.txt +0 -0
  486. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/conftest.py +0 -0
  487. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_00_dxf_low_level_structs/test_001_dxf_types.py +0 -0
  488. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_00_dxf_low_level_structs/test_002_dxf_vertex.py +0 -0
  489. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_00_dxf_low_level_structs/test_003_dxf_binary_tag.py +0 -0
  490. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_00_dxf_low_level_structs/test_004_dxf_value.py +0 -0
  491. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_00_dxf_low_level_structs/test_005_packed_tags.py +0 -0
  492. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_00_dxf_low_level_structs/test_010_binary_data.py +0 -0
  493. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_00_dxf_low_level_structs/test_011_codepage.py +0 -0
  494. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_00_dxf_low_level_structs/test_012_crypt.py +0 -0
  495. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_00_dxf_low_level_structs/test_013_juliandate.py +0 -0
  496. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_00_dxf_low_level_structs/test_014_multi_tags_text.py +0 -0
  497. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_00_dxf_low_level_structs/test_015_entity_structure_validator.py +0 -0
  498. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_00_dxf_low_level_structs/test_016_encoding.py +0 -0
  499. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_00_dxf_low_level_structs/test_018_handle.py +0 -0
  500. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_00_dxf_low_level_structs/test_019_complex_line_type.py +0 -0
  501. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_00_dxf_low_level_structs/test_020_validators_and_fixer.py +0 -0
  502. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_00_dxf_low_level_structs/test_021_fix_line_coordinates.py +0 -0
  503. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_00_dxf_low_level_structs/test_022_set_flag_state.py +0 -0
  504. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_00_dxf_low_level_structs/test_023_fix_invalid_located_group_codes.py +0 -0
  505. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_00_dxf_low_level_structs/test_024_render_tag.py +0 -0
  506. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_00_dxf_low_level_structs/test_040_tags.py +0 -0
  507. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_00_dxf_low_level_structs/test_041_group_tags.py +0 -0
  508. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_00_dxf_low_level_structs/test_042_tags_loader.py +0 -0
  509. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_00_dxf_low_level_structs/test_043_filter_invalid_point_codes.py +0 -0
  510. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_00_dxf_low_level_structs/test_050_extended_tags.py +0 -0
  511. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_00_dxf_low_level_structs/test_051_load_dxf_structure.py +0 -0
  512. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_00_dxf_low_level_structs/test_052_tag_writer.py +0 -0
  513. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_00_dxf_low_level_structs/test_053_embedded_object_tags.py +0 -0
  514. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_00_dxf_low_level_structs/test_054_dxfattr.py +0 -0
  515. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_00_dxf_low_level_structs/test_055_recover_loader.py +0 -0
  516. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_00_dxf_low_level_structs/test_056_special_string_decoding.py +0 -0
  517. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_00_dxf_low_level_structs/test_057_group_code_mapping.py +0 -0
  518. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_00_dxf_low_level_structs/test_058_json_tags.py +0 -0
  519. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_01_dxf_entities/test_101_dxfnamespace.py +0 -0
  520. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_01_dxf_entities/test_102_appdata.py +0 -0
  521. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_01_dxf_entities/test_103_reactors.py +0 -0
  522. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_01_dxf_entities/test_104_extension_dict.py +0 -0
  523. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_01_dxf_entities/test_105_xdata.py +0 -0
  524. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_01_dxf_entities/test_110_dxfentity.py +0 -0
  525. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_01_dxf_entities/test_111_unknown_dxf_entity.py +0 -0
  526. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_01_dxf_entities/test_112a_dxfgfx.py +0 -0
  527. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_01_dxf_entities/test_112b_dxfobj.py +0 -0
  528. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_01_dxf_entities/test_113_dxfclass.py +0 -0
  529. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_01_dxf_entities/test_114_factory.py +0 -0
  530. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_01_dxf_entities/test_115_new_empty_drawing.py +0 -0
  531. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_01_dxf_entities/test_116_dictionary.py +0 -0
  532. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_01_dxf_entities/test_117_layer_table_entry.py +0 -0
  533. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_01_dxf_entities/test_118_appid_table_entry.py +0 -0
  534. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_01_dxf_entities/test_119_ucs_table_entry.py +0 -0
  535. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_01_dxf_entities/test_120_style_table_entry.py +0 -0
  536. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_01_dxf_entities/test_121_ltype_table_entry.py +0 -0
  537. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_01_dxf_entities/test_122_vport_table_entry.py +0 -0
  538. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_01_dxf_entities/test_123_view_table_entry.py +0 -0
  539. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_01_dxf_entities/test_124_dimstyle_table_entry.py +0 -0
  540. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_01_dxf_entities/test_125_image_def.py +0 -0
  541. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_01_dxf_entities/test_126_image_def_reactor.py +0 -0
  542. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_01_dxf_entities/test_127_raster_variables.py +0 -0
  543. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_01_dxf_entities/test_128_pdf_definition.py +0 -0
  544. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_01_dxf_entities/test_129_xrecord.py +0 -0
  545. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_01_dxf_entities/test_130_id_buffer.py +0 -0
  546. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_01_dxf_entities/test_131_field_list.py +0 -0
  547. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_01_dxf_entities/test_132_layer_filter.py +0 -0
  548. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_01_dxf_entities/test_133_sun.py +0 -0
  549. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_01_dxf_entities/test_134_material.py +0 -0
  550. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_01_dxf_entities/test_135_geo_data.py +0 -0
  551. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_01_dxf_entities/test_136_vba_project.py +0 -0
  552. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_01_dxf_entities/test_137_sortentstable.py +0 -0
  553. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_01_dxf_entities/test_138_setup_visual_styles.py +0 -0
  554. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_01_dxf_entities/test_139_user_record.py +0 -0
  555. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_01_dxf_entities/test_140_block_record.py +0 -0
  556. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_01_dxf_entities/test_141_layer_vp_override.py +0 -0
  557. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_01_dxf_entities/test_142_copy_strategy.py +0 -0
  558. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_01_dxf_entities/test_143_spatial_filter.py +0 -0
  559. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_01_dxf_entities/test_144_roundtrip_xrecord.py +0 -0
  560. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_02_dxf_graphics/conftest.py +0 -0
  561. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_02_dxf_graphics/test_200_line.py +0 -0
  562. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_02_dxf_graphics/test_201_point.py +0 -0
  563. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_02_dxf_graphics/test_202_circle.py +0 -0
  564. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_02_dxf_graphics/test_203_arc.py +0 -0
  565. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_02_dxf_graphics/test_204_shape.py +0 -0
  566. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_02_dxf_graphics/test_205_solid.py +0 -0
  567. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_02_dxf_graphics/test_206_text.py +0 -0
  568. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_02_dxf_graphics/test_207_attdef.py +0 -0
  569. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_02_dxf_graphics/test_208_attrib.py +0 -0
  570. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_02_dxf_graphics/test_209_vertex.py +0 -0
  571. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_02_dxf_graphics/test_210_polyline_1.py +0 -0
  572. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_02_dxf_graphics/test_210_polyline_2.py +0 -0
  573. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_02_dxf_graphics/test_210_polyline_explode.py +0 -0
  574. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_02_dxf_graphics/test_210_polyline_vertex_attributes.py +0 -0
  575. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_02_dxf_graphics/test_211_viewport.py +0 -0
  576. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_02_dxf_graphics/test_212_insert.py +0 -0
  577. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_02_dxf_graphics/test_213_minsert.py +0 -0
  578. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_02_dxf_graphics/test_214_block.py +0 -0
  579. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_02_dxf_graphics/test_215_dimension.py +0 -0
  580. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_02_dxf_graphics/test_216_dimlines_R12.py +0 -0
  581. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_02_dxf_graphics/test_217_dimlines_R2000.py +0 -0
  582. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_02_dxf_graphics/test_218_poly_line_mesh_face.py +0 -0
  583. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_02_dxf_graphics/test_219_dxf_r2000_generics.py +0 -0
  584. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_02_dxf_graphics/test_220_lwpolyline_1.py +0 -0
  585. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_02_dxf_graphics/test_220_lwpolyline_2.py +0 -0
  586. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_02_dxf_graphics/test_220_lwpolyline_3.py +0 -0
  587. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_02_dxf_graphics/test_220_lwpolyline_explode.py +0 -0
  588. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_02_dxf_graphics/test_221_ellipse.py +0 -0
  589. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_02_dxf_graphics/test_222_xline.py +0 -0
  590. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_02_dxf_graphics/test_223_ray.py +0 -0
  591. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_02_dxf_graphics/test_225_mtext.py +0 -0
  592. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_02_dxf_graphics/test_226_spline.py +0 -0
  593. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_02_dxf_graphics/test_226_spline_with_linear_segments.py +0 -0
  594. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_02_dxf_graphics/test_227_mesh_packed_data.py +0 -0
  595. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_02_dxf_graphics/test_228_mesh.py +0 -0
  596. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_02_dxf_graphics/test_229a_hatch_dxf_interface.py +0 -0
  597. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_02_dxf_graphics/test_229b_hatch_extended.py +0 -0
  598. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_02_dxf_graphics/test_229c_hatch_transformations.py +0 -0
  599. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_02_dxf_graphics/test_230a_image_as_virtual_entity.py +0 -0
  600. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_02_dxf_graphics/test_230b_image_in_layout_context.py +0 -0
  601. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_02_dxf_graphics/test_231_underlay.py +0 -0
  602. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_02_dxf_graphics/test_231_underlay_2.py +0 -0
  603. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_02_dxf_graphics/test_232a_add_acis.py +0 -0
  604. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_02_dxf_graphics/test_232b_acis_export.py +0 -0
  605. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_02_dxf_graphics/test_232c_acis_surface.py +0 -0
  606. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_02_dxf_graphics/test_232d_acis_copy.py +0 -0
  607. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_02_dxf_graphics/test_232e_acis_transform.py +0 -0
  608. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_02_dxf_graphics/test_233_helix.py +0 -0
  609. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_02_dxf_graphics/test_234_light.py +0 -0
  610. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_02_dxf_graphics/test_235_leader.py +0 -0
  611. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_02_dxf_graphics/test_236_multileader.py +0 -0
  612. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_02_dxf_graphics/test_237_mline.py +0 -0
  613. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_02_dxf_graphics/test_238_tolerance.py +0 -0
  614. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_02_dxf_graphics/test_239_proxy_graphic.py +0 -0
  615. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_02_dxf_graphics/test_240_arc_dimension.py +0 -0
  616. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_02_dxf_graphics/test_241_hyperlink.py +0 -0
  617. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_02_dxf_graphics/test_242_random_transform.py +0 -0
  618. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_02_dxf_graphics/test_243_replace_entity.py +0 -0
  619. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_02_dxf_graphics/test_244_large_radial_dimension.py +0 -0
  620. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_02_dxf_graphics/test_245_wipeout.py +0 -0
  621. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_02_dxf_graphics/test_246_spline_audit.py +0 -0
  622. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_02_dxf_graphics/test_247_mtext_columns_R2018.py +0 -0
  623. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_02_dxf_graphics/test_248_mpolygon.py +0 -0
  624. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_02_dxf_graphics/test_248_mtext_linked_columns_R2000_to_R2013.py +0 -0
  625. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_02_dxf_graphics/test_250_virtual_boundary_path_entities.py +0 -0
  626. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_02_dxf_graphics/test_251_upright.py +0 -0
  627. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_02_dxf_graphics/test_252_acad_proxy_entity.py +0 -0
  628. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_02_dxf_graphics/test_253_ole2frame.py +0 -0
  629. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_02_dxf_graphics/test_254_get_font_name.py +0 -0
  630. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_03_dxf_layouts/test_300_layout.py +0 -0
  631. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_03_dxf_layouts/test_301_add_gfx_to_layout.py +0 -0
  632. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_03_dxf_layouts/test_302_block_references.py +0 -0
  633. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_03_dxf_layouts/test_303_auto_block_references.py +0 -0
  634. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_03_dxf_layouts/test_304_new_entity_space.py +0 -0
  635. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_03_dxf_layouts/test_305_copy_and_move_entity_to_layout.py +0 -0
  636. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_03_dxf_layouts/test_306_copy_linked_entities.py +0 -0
  637. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_03_dxf_layouts/test_307_groupby.py +0 -0
  638. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_03_dxf_layouts/test_308_query.py +0 -0
  639. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_03_dxf_layouts/test_309_query_parser.py +0 -0
  640. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_03_dxf_layouts/test_311_add_foreign_entity.py +0 -0
  641. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_03_dxf_layouts/test_312_virtual_layout.py +0 -0
  642. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_03_dxf_layouts/test_313_redraw_order.py +0 -0
  643. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_04_dxf_high_level_structs/test_401_headersection.py +0 -0
  644. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_04_dxf_high_level_structs/test_402_classessection.py +0 -0
  645. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_04_dxf_high_level_structs/test_403_entity_database.py +0 -0
  646. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_04_dxf_high_level_structs/test_404a_tables.py +0 -0
  647. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_04_dxf_high_level_structs/test_404b_object_collections.py +0 -0
  648. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_04_dxf_high_level_structs/test_405_classes.py +0 -0
  649. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_04_dxf_high_level_structs/test_406_blocks_section.py +0 -0
  650. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_04_dxf_high_level_structs/test_407_entity_section.py +0 -0
  651. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_04_dxf_high_level_structs/test_408_objects_section.py +0 -0
  652. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_04_dxf_high_level_structs/test_409_create_objects.py +0 -0
  653. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_04_dxf_high_level_structs/test_410_table.py +0 -0
  654. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_04_dxf_high_level_structs/test_411_acds_data.py +0 -0
  655. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_04_dxf_high_level_structs/test_412_rename_layer.py +0 -0
  656. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_04_dxf_high_level_structs/test_414_block_reference_content.py +0 -0
  657. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_04_dxf_high_level_structs/test_415_layout_management.py +0 -0
  658. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_04_dxf_high_level_structs/test_416a_disassemble.py +0 -0
  659. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_04_dxf_high_level_structs/test_416b_recursive_decompose.py +0 -0
  660. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_04_dxf_high_level_structs/test_417_bbox.py +0 -0
  661. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_04_dxf_high_level_structs/test_418_copy_entities.py +0 -0
  662. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_04_dxf_high_level_structs/test_420_load_dxf_file.py +0 -0
  663. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_04_dxf_high_level_structs/test_421_new_drawings.py +0 -0
  664. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_04_dxf_high_level_structs/test_422_drawing_object.py +0 -0
  665. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_04_dxf_high_level_structs/test_423_read_proe_r2004.py +0 -0
  666. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_04_dxf_high_level_structs/test_425_limits_and_extents.py +0 -0
  667. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_04_dxf_high_level_structs/test_426_ezdxf_metadata.py +0 -0
  668. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_04_dxf_high_level_structs/test_427_appsettings.py +0 -0
  669. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_04_dxf_high_level_structs/test_428_r12_name_translator.py +0 -0
  670. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_04_dxf_high_level_structs/test_429_xclip.py +0 -0
  671. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_05_tools/conftest.py +0 -0
  672. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_05_tools/test_500_units.py +0 -0
  673. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_05_tools/test_501_truecolor.py +0 -0
  674. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_05_tools/test_502_raw_color.py +0 -0
  675. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_05_tools/test_503_indexing.py +0 -0
  676. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_05_tools/test_504_suppress_zeros.py +0 -0
  677. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_05_tools/test_506_version.py +0 -0
  678. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_05_tools/test_508_read_zip.py +0 -0
  679. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_05_tools/test_509_comments.py +0 -0
  680. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_05_tools/test_510_byte_stream.py +0 -0
  681. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_05_tools/test_511_bit_stream.py +0 -0
  682. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_05_tools/test_512_pattern.py +0 -0
  683. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_05_tools/test_513_reorder_entities.py +0 -0
  684. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_05_tools/test_514_text.py +0 -0
  685. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_05_tools/test_515a_fonts_truetype.py +0 -0
  686. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_05_tools/test_515b_fonts_shapefiles.py +0 -0
  687. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_05_tools/test_515c_fonts_lff.py +0 -0
  688. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_05_tools/test_516_zoom.py +0 -0
  689. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_05_tools/test_517_text_layout.py +0 -0
  690. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_05_tools/test_518_header_guid.py +0 -0
  691. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_05_tools/test_519_mtext_editor.py +0 -0
  692. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_05_tools/test_520_mtext_context.py +0 -0
  693. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_05_tools/test_521_mtext_parser.py +0 -0
  694. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_05_tools/test_522_text_scanner.py +0 -0
  695. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_05_tools/test_523_text_size.py +0 -0
  696. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_05_tools/test_524_block_reference_manager.py +0 -0
  697. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_05_tools/test_525_transparency.py +0 -0
  698. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_05_tools/test_526_explode.py +0 -0
  699. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_05_tools/test_527_gfxattribs.py +0 -0
  700. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_05_tools/test_528_difftags.py +0 -0
  701. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_05_tools/test_529_acis_sat.py +0 -0
  702. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_05_tools/test_530_acis_sab.py +0 -0
  703. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_05_tools/test_531_acis_entities.py +0 -0
  704. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_05_tools/test_533_shapefiles.py +0 -0
  705. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_05_tools/test_534_dwg_info.py +0 -0
  706. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_05_tools/test_535_xref_basic.py +0 -0
  707. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_05_tools/test_536_xref_conflict.py +0 -0
  708. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_05_tools/test_537_transform.py +0 -0
  709. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_05_tools/test_538_scale_mtext_inline_commands.py +0 -0
  710. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_05_tools/test_539_npshapes.py +0 -0
  711. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_05_tools/test_540_lff_parser.py +0 -0
  712. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_05_tools/test_541_clipping_portal.py +0 -0
  713. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_05_tools/test_542_itertools.py +0 -0
  714. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_05_tools/test_543_select.py +0 -0
  715. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_05_tools/test_544_revcloud.py +0 -0
  716. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_06_math/conftest.py +0 -0
  717. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_06_math/test_600_base.py +0 -0
  718. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_06_math/test_601_bulge.py +0 -0
  719. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_06_math/test_602_vec3.py +0 -0
  720. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_06_math/test_603_vec2.py +0 -0
  721. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_06_math/test_604_banded_matrix.py +0 -0
  722. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_06_math/test_604_linalg.py +0 -0
  723. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_06_math/test_605_matrix44.py +0 -0
  724. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_06_math/test_606_convexhull.py +0 -0
  725. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_06_math/test_607_perlin_noise.py +0 -0
  726. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_06_math/test_608_intersection_line_line_2d.py +0 -0
  727. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_06_math/test_609_point_on_line.py +0 -0
  728. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_06_math/test_610_ocs.py +0 -0
  729. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_06_math/test_611_ucs.py +0 -0
  730. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_06_math/test_612_ucs_pass_trough.py +0 -0
  731. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_06_math/test_613_is_point_in_polygon_2d.py +0 -0
  732. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_06_math/test_614_construct_3d.py +0 -0
  733. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_06_math/test_615_rytz_axis.py +0 -0
  734. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_06_math/test_616_plane.py +0 -0
  735. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_06_math/test_617_clockwise_orientation.py +0 -0
  736. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_06_math/test_618_clipping.py +0 -0
  737. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_06_math/test_620_knot.py +0 -0
  738. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_06_math/test_621_bspline.py +0 -0
  739. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_06_math/test_622_bsplineu.py +0 -0
  740. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_06_math/test_623_rbspline.py +0 -0
  741. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_06_math/test_624_global_bspline_interpolation.py +0 -0
  742. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_06_math/test_626_local_bspline_interpolation.py +0 -0
  743. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_06_math/test_627_bspline_basis.py +0 -0
  744. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_06_math/test_629_bezier.py +0 -0
  745. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_06_math/test_630a_bezier4p_base.py +0 -0
  746. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_06_math/test_630b_bezier4p_functions.py +0 -0
  747. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_06_math/test_631_euler_spiral.py +0 -0
  748. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_06_math/test_632_bezier3p.py +0 -0
  749. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_06_math/test_640_bbox.py +0 -0
  750. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_06_math/test_641_construction_ray.py +0 -0
  751. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_06_math/test_642_construction_line.py +0 -0
  752. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_06_math/test_643_construction_box.py +0 -0
  753. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_06_math/test_644_construction_circle.py +0 -0
  754. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_06_math/test_645_construction_arc.py +0 -0
  755. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_06_math/test_646_offset_vertices_2d.py +0 -0
  756. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_06_math/test_647_transform_tools.py +0 -0
  757. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_06_math/test_648_construction_ellipse.py +0 -0
  758. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_06_math/test_650_elliptic_arc_span.py +0 -0
  759. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_06_math/test_651_construction_polyline.py +0 -0
  760. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_06_math/test_652_approx_param_t.py +0 -0
  761. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_06_math/test_653_polyline_intersection.py +0 -0
  762. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_06_math/test_654_rtree.py +0 -0
  763. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_06_math/test_655_dbscan.py +0 -0
  764. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_06_math/test_656_k_means.py +0 -0
  765. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_06_math/test_657_mapbox_earcut.py +0 -0
  766. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_06_math/test_658_bevel_tools.py +0 -0
  767. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_06_math/test_659_intersection_line_polygon_3d.py +0 -0
  768. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_06_math/test_660_intersection_ray_polygon_3d.py +0 -0
  769. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_06_math/test_661_is_face_normal_pointing_outwards.py +0 -0
  770. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_06_math/test_662_is_convex_polygon_2d.py +0 -0
  771. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_06_math/test_663_is_axes_aligned_rectange.py +0 -0
  772. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_06_math/test_664_concave_clipping_polygon.py +0 -0
  773. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_06_math/test_665_inverted_clipping_polygon.py +0 -0
  774. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_06_math/test_666_wgs84_transform.py +0 -0
  775. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_07_render/test_701_arrows.py +0 -0
  776. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_07_render/test_702_render_forms.py +0 -0
  777. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_07_render/test_703_mesh_builder.py +0 -0
  778. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_07_render/test_704_render_linear_dimension.py +0 -0
  779. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_07_render/test_705_shape.py +0 -0
  780. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_07_render/test_706_random_path.py +0 -0
  781. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_07_render/test_707_trace.py +0 -0
  782. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_07_render/test_708a_path.py +0 -0
  783. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_07_render/test_708b_path_tools.py +0 -0
  784. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_07_render/test_708c_matplotlib_path_tools.py +0 -0
  785. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_07_render/test_708d_qpainter_path_tools.py +0 -0
  786. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_07_render/test_708e_path_shapes.py +0 -0
  787. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_07_render/test_708f_path_nesting.py +0 -0
  788. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_07_render/test_709_linetype_renderer.py +0 -0
  789. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_07_render/test_711_points.py +0 -0
  790. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_07_render/test_712_render_curved_dimension.py +0 -0
  791. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_07_render/test_713_mleader_builder.py +0 -0
  792. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_07_render/test_714_mleader_render_engine.py +0 -0
  793. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_07_render/test_715_hatching.py +0 -0
  794. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_07_render/test_715_issue_747_explode_3d_dim.py +0 -0
  795. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_08_addons/test_800_mtext_surrogate.py +0 -0
  796. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_08_addons/test_801_r12spline.py +0 -0
  797. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_08_addons/test_802_table_painter.py +0 -0
  798. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_08_addons/test_804_importer.py +0 -0
  799. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_08_addons/test_805_pycsg.py +0 -0
  800. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_08_addons/test_807_dwg_loader_basics.py +0 -0
  801. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_08_addons/test_810_drawing_properties.py +0 -0
  802. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_08_addons/test_811a_drawing_frontend.py +0 -0
  803. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_08_addons/test_811b_drawing_recorder.py +0 -0
  804. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_08_addons/test_811c_viewport_processing.py +0 -0
  805. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_08_addons/test_812_drawing_graphic_proxy.py +0 -0
  806. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_08_addons/test_813_geo_interface.py +0 -0
  807. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_08_addons/test_814_text2path.py +0 -0
  808. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_08_addons/test_815_dxf_browser.py +0 -0
  809. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_08_addons/test_816_bin_packing.py +0 -0
  810. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_08_addons/test_817_genetic_algorithm.py +0 -0
  811. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_08_addons/test_818_meshex.py +0 -0
  812. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_08_addons/test_819_menger_sponge.py +0 -0
  813. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_08_addons/test_820_openscad.py +0 -0
  814. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_08_addons/test_821_hpgl2.py +0 -0
  815. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_08_addons/test_821_hpgl2_polygon_encoded.py +0 -0
  816. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_08_addons/test_823_drawing_layout.py +0 -0
  817. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_08_addons/test_824_svg_drawing_backend.py +0 -0
  818. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_08_addons/test_825_hpgl2_drawing_backend.py +0 -0
  819. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_08_addons/test_826_custom_json_backend.py +0 -0
  820. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_08_addons/test_827_geojson_backend.py +0 -0
  821. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_09_cython_acceleration/test_901_acc_vec2.py +0 -0
  822. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_09_cython_acceleration/test_902_acc_vec3.py +0 -0
  823. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_09_cython_acceleration/test_903_acc_matrix44.py +0 -0
  824. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_09_cython_acceleration/test_904_acc_bezier4p.py +0 -0
  825. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_09_cython_acceleration/test_905_acc_bezier3p.py +0 -0
  826. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_09_cython_acceleration/test_906_acc_bspline.py +0 -0
  827. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_10_issues/test_issue_414_bbox_calculation.py +0 -0
  828. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_10_issues/test_issue_557_reload_dimension_text_style.py +0 -0
  829. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_10_issues/test_issue_574_flattening_error.py +0 -0
  830. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_10_issues/test_issue_589_incorrect_virtual_face3d.py +0 -0
  831. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_10_issues/test_issue_749_text_layout.py +0 -0
  832. {ezdxf-1.3.0rc0 → ezdxf-1.3.1}/tests/test_10_issues/test_issue_873_circle_inverted_normal.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: ezdxf
3
- Version: 1.3.0rc0
3
+ Version: 1.3.1
4
4
  Summary: A Python package to create/manipulate DXF drawings.
5
5
  Author-email: Manfred Moitzi <me@mozman.at>
6
6
  Project-URL: Repository, https://github.com/mozman/ezdxf
@@ -1,5 +1,5 @@
1
- # Copyright (c) 2022-2024, Manfred Moitzi
2
- # License: MIT License
1
+ # Copyright (c) 2022-2024, Manfred Moitzi
2
+ # License: MIT License
3
3
  # Public API module (interface)
4
4
  """
5
5
  The main goals of this ACIS support library is:
@@ -24,7 +24,8 @@ from .const import (
24
24
  InvalidLinkStructure,
25
25
  ExportError,
26
26
  )
27
- from .mesh import mesh_from_body, body_from_mesh
27
+ from .mesh import mesh_from_body, body_from_mesh, vertices_from_body
28
28
  from .entities import load, export_sat, export_sab, Body
29
29
  from .dbg import AcisDebugger, dump_sab_as_text
30
- from .dxf import export_dxf, load_dxf
30
+ from .dxf import export_dxf, load_dxf
31
+ from .cache import AcisCache
@@ -0,0 +1,59 @@
1
+ # Copyright (c) 2024, Manfred Moitzi
2
+ # License: MIT License
3
+ from __future__ import annotations
4
+ from typing import TYPE_CHECKING, Sequence
5
+ from .entities import Body, load
6
+ from .type_hints import EncodedData
7
+
8
+ if TYPE_CHECKING:
9
+ from ezdxf.entities import DXFEntity
10
+
11
+ __all__ = ["AcisCache"]
12
+ NO_BODIES: Sequence[Body] = tuple()
13
+
14
+
15
+ class AcisCache:
16
+ """This cache manages ACIS bodies created from SAT or SAB data stored in DXF
17
+ entities.
18
+
19
+ Each entry is a list of ACIS bodies and is indexed by a hash calculated from the
20
+ source content of the SAT or SAB data.
21
+
22
+ """
23
+ def __init__(self) -> None:
24
+ self._entries: dict[int, Sequence[Body]] = {}
25
+ self.hits: int = 0
26
+ self.misses: int = 0
27
+
28
+ @staticmethod
29
+ def hash_data(data: EncodedData) -> int:
30
+ if isinstance(data, list):
31
+ return hash(tuple(data))
32
+ elif isinstance(data, bytearray):
33
+ return hash(bytes(data))
34
+ return hash(data)
35
+
36
+ def __len__(self) -> int:
37
+ return len(self._entries)
38
+
39
+ def get_bodies(self, data: EncodedData) -> Sequence[Body]:
40
+ if not data:
41
+ return NO_BODIES
42
+
43
+ hash_value = AcisCache.hash_data(data)
44
+ bodies = self._entries.get(hash_value, NO_BODIES)
45
+ if bodies is not NO_BODIES:
46
+ self.hits += 1
47
+ return bodies
48
+
49
+ self.misses += 1
50
+ bodies = tuple(load(data))
51
+ self._entries[hash_value] = bodies
52
+ return bodies
53
+
54
+ def from_dxf_entity(self, entity: DXFEntity) -> Sequence[Body]:
55
+ from ezdxf.entities import Body as DxfBody
56
+
57
+ if not isinstance(entity, DxfBody):
58
+ return NO_BODIES
59
+ return self.get_bodies(entity.acis_data)
@@ -1,12 +1,13 @@
1
1
  # Copyright (c) 2022-2024, Manfred Moitzi
2
2
  # License: MIT License
3
3
  from __future__ import annotations
4
- from typing import Union, Callable, Type, Any, Sequence, Iterator
4
+ from typing import Callable, Type, Any, Sequence, Iterator
5
5
  import abc
6
6
 
7
7
  from . import sab, sat, const, hdr
8
8
  from .const import Features
9
9
  from .abstract import DataLoader, AbstractEntity, DataExporter
10
+ from .type_hints import EncodedData
10
11
  from ezdxf.math import Matrix44, Vec3, NULLVEC
11
12
 
12
13
  Factory = Callable[[AbstractEntity], "AcisEntity"]
@@ -15,7 +16,7 @@ ENTITY_TYPES: dict[str, Type[AcisEntity]] = {}
15
16
  INF = float("inf")
16
17
 
17
18
 
18
- def load(data: Union[str, Sequence[str], bytes, bytearray]) -> list[Body]:
19
+ def load(data: EncodedData) -> list[Body]:
19
20
  """Returns a list of :class:`Body` entities from :term:`SAT` or :term:`SAB`
20
21
  data. Accepts :term:`SAT` data as a single string or a sequence of strings
21
22
  and :term:`SAB` data as bytes or bytearray.
@@ -733,7 +734,7 @@ class Point(SupportsPattern):
733
734
 
734
735
 
735
736
  class FileLoader(abc.ABC):
736
- records: Sequence[Union[sat.SatEntity, sab.SabEntity]]
737
+ records: Sequence[sat.SatEntity | sab.SabEntity]
737
738
 
738
739
  def __init__(self, version: int):
739
740
  self.entities: dict[int, AcisEntity] = {}
@@ -770,7 +771,7 @@ class FileLoader(abc.ABC):
770
771
 
771
772
 
772
773
  class SabLoader(FileLoader):
773
- def __init__(self, data: Union[bytes, bytearray]):
774
+ def __init__(self, data: bytes | bytearray):
774
775
  builder = sab.parse_sab(data)
775
776
  super().__init__(builder.header.version)
776
777
  self.records = builder.entities
@@ -779,14 +780,14 @@ class SabLoader(FileLoader):
779
780
  return sab.SabDataLoader(data, self.version)
780
781
 
781
782
  @classmethod
782
- def load(cls, data: Union[bytes, bytearray]) -> list[Body]:
783
+ def load(cls, data: bytes | bytearray) -> list[Body]:
783
784
  loader = cls(data)
784
785
  loader.load_entities()
785
786
  return loader.bodies()
786
787
 
787
788
 
788
789
  class SatLoader(FileLoader):
789
- def __init__(self, data: Union[str, Sequence[str]]):
790
+ def __init__(self, data: str | Sequence[str]):
790
791
  builder = sat.parse_sat(data)
791
792
  super().__init__(builder.header.version)
792
793
  self.records = builder.entities
@@ -795,7 +796,7 @@ class SatLoader(FileLoader):
795
796
  return sat.SatDataLoader(data, self.version)
796
797
 
797
798
  @classmethod
798
- def load(cls, data: Union[str, Sequence[str]]) -> list[Body]:
799
+ def load(cls, data: str | Sequence[str]) -> list[Body]:
799
800
  loader = cls(data)
800
801
  loader.load_entities()
801
802
  return loader.bodies()
@@ -333,3 +333,83 @@ def make_vertices(vertices: Iterable[Vec3]) -> Iterator[entities.Vertex]:
333
333
  vertex = entities.Vertex()
334
334
  vertex.point = point
335
335
  yield vertex
336
+
337
+
338
+ def vertices_from_body(body: Body) -> list[Vec3]:
339
+ """Returns all stored vertices in the given :class:`Body` entity.
340
+ The result is not optimized, meaning the vertices are in no particular order and
341
+ there are duplicates.
342
+
343
+ This function can be useful to determining the approximate bounding box of an
344
+ :term:`ACIS` entity. The result is exact for polyhedra with flat faces with
345
+ straight edges, but not for bodies with curved edges and faces.
346
+
347
+ Args:
348
+ body: ACIS entity of type :class:`Body`
349
+
350
+ Raises:
351
+ TypeError: given `body` entity has invalid type
352
+
353
+ """
354
+
355
+ if not isinstance(body, Body):
356
+ raise TypeError(f"expected a body entity, got: {type(body)}")
357
+ lump = body.lump
358
+ transform = body.transform
359
+ vertices: list[Vec3] = []
360
+
361
+ m: Optional[Matrix44] = None
362
+ if not transform.is_none:
363
+ m = transform.matrix
364
+ while not lump.is_none:
365
+ vertices.extend(vertices_from_lump(lump, m))
366
+ lump = lump.next_lump
367
+ return vertices
368
+
369
+
370
+ def vertices_from_lump(lump: Lump, m: Matrix44 | None = None) -> list[Vec3]:
371
+ """Returns all stored vertices from a given :class:`Lump` entity.
372
+ Applies the transformation :class:`~ezdxf.math.Matrix44` `m` to all vertices if not
373
+ ``None``.
374
+
375
+ Args:
376
+ lump: :class:`Lump` entity
377
+ m: optional transformation matrix
378
+
379
+ Raises:
380
+ TypeError: `lump` has invalid ACIS type
381
+
382
+ """
383
+ if not isinstance(lump, Lump):
384
+ raise TypeError(f"expected a lump entity, got: {type(lump)}")
385
+
386
+ vertices: list[Vec3] = []
387
+ shell = lump.shell
388
+ if shell.is_none:
389
+ return vertices # not a shell
390
+
391
+ face = shell.face
392
+ while not face.is_none:
393
+ first_coedge = NONE_REF
394
+ try:
395
+ first_coedge = face.loop.coedge
396
+ except AttributeError: # loop is a none-entity
397
+ pass
398
+ coedge = first_coedge
399
+ while not coedge.is_none: # invalid coedge or face is not closed
400
+ # the edge entity contains the vertices and the curve type
401
+ edge = coedge.edge
402
+ try:
403
+ vertices.append(edge.start_vertex.point.location)
404
+ vertices.append(edge.end_vertex.point.location)
405
+ except AttributeError:
406
+ # one of the involved entities is a none-entity or an
407
+ # incompatible entity type -> ignore this face!
408
+ break
409
+ coedge = coedge.next_coedge
410
+ if coedge is first_coedge: # a valid closed face
411
+ break
412
+ face = face.next_face
413
+ if m is not None:
414
+ return list(m.transform_vertices(vertices))
415
+ return vertices
@@ -0,0 +1,7 @@
1
+ # Copyright (c) 2024, Manfred Moitzi
2
+ # License: MIT License
3
+ from __future__ import annotations
4
+ from typing import Sequence, Union
5
+ from typing_extensions import TypeAlias
6
+
7
+ EncodedData: TypeAlias = Union[str, Sequence[str], bytes, bytearray]
@@ -725,7 +725,7 @@ class PlotStyleFileParser:
725
725
  return get_mapping()
726
726
  else: # it's a simple name=value line
727
727
  value: str = line.split("=", 1)[1]
728
- value = value.lstrip('"') # strings look like this: name="value
728
+ value = sanitized_value(value)
729
729
  line_index += 1
730
730
  return value
731
731
 
@@ -745,6 +745,18 @@ class PlotStyleFileParser:
745
745
  return self.data.get(name, default)
746
746
 
747
747
 
748
+ def sanitized_value(value: str) -> str:
749
+ value = value.strip()
750
+ if value.startswith('"'): # strings: <name>="string
751
+ return value[1:]
752
+
753
+ # remove unknown appendix like this: "0.0076200000000 (+7.Z+"8V?S_LC )"
754
+ # the pattern is "<float|int> (<some data>)", see issue #1069
755
+ if value.endswith(")"):
756
+ return value.split(" ")[0]
757
+ return value
758
+
759
+
748
760
  def int2color(color: int) -> tuple[int, int, int, int]:
749
761
  """Convert color integer value from CTB-file to ``(r, g, b, color_type)
750
762
  tuple.
@@ -851,6 +851,8 @@ class UniversalFrontend:
851
851
  entity, segments=self.config.circle_approximation_count // 2
852
852
  )
853
853
  for polygon in trace.polygons(): # polygon is a sequence of Vec2()
854
+ if len(polygon) < 3:
855
+ continue
854
856
  if transform:
855
857
  points = ocs.points_to_wcs(
856
858
  Vec3(v.x, v.y, elevation) for v in polygon
@@ -861,8 +863,9 @@ class UniversalFrontend:
861
863
  properties.filling = Filling()
862
864
  self.pipeline.draw_filled_polygon(points, properties)
863
865
  return
864
-
865
- self.pipeline.draw_path(make_path(entity), properties)
866
+ polyline_path = make_path(entity)
867
+ if len(polyline_path):
868
+ self.pipeline.draw_path(polyline_path, properties)
866
869
 
867
870
  def draw_composite_entity(self, entity: DXFGraphic, properties: Properties) -> None:
868
871
  def draw_insert(insert: Insert):
@@ -762,7 +762,7 @@ class _SourceCodeGenerator:
762
762
  add_line(f"e.set_seed_points({entity.seeds})")
763
763
  if entity.pattern:
764
764
  self.add_list_source_code(
765
- entity.pattern.lines,
765
+ map(str, entity.pattern.lines),
766
766
  prolog="e.set_pattern_definition([",
767
767
  epilog="])",
768
768
  )
@@ -131,7 +131,10 @@ def readfile(
131
131
  infile = Path(filename).absolute()
132
132
  if not infile.is_file():
133
133
  raise FileNotFoundError(f"No such file: '{infile}'")
134
- version = _detect_version(filename) if version is None else version
134
+ if isinstance(version, str):
135
+ version = map_version(version)
136
+ else:
137
+ version = _detect_version(filename)
135
138
 
136
139
  with tempfile.TemporaryDirectory(prefix="odafc_") as tmp_dir:
137
140
  args = _odafc_arguments(
@@ -41,6 +41,7 @@ class AuditError(IntEnum):
41
41
  REMOVED_STANDALONE_ATTRIB_ENTITY = 13
42
42
  MISPLACED_ROOT_DICT = 14
43
43
  ROOT_DICT_NOT_FOUND = 15
44
+ REMOVED_ENTITY_WITH_INVALID_OWNER_HANDLE = 16
44
45
 
45
46
  UNDEFINED_LINETYPE = 100
46
47
  UNDEFINED_DIMENSION_STYLE = 101
@@ -89,6 +90,7 @@ class AuditError(IntEnum):
89
90
  INVALID_TRANSPARENCY = 223
90
91
  INVALID_CREASE_VALUE_COUNT = 224
91
92
  INVALID_ELLIPSE_RATIO = 225
93
+ INVALID_HATCH_BOUNDARY_PATH = 226
92
94
 
93
95
 
94
96
  REQUIRED_ROOT_DICT_ENTRIES = ("ACAD_GROUP", "ACAD_PLOTSTYLENAME")
@@ -52,7 +52,6 @@ from ezdxf.lldxf.tagwriter import (
52
52
  JSONTagWriter,
53
53
  )
54
54
  from ezdxf.query import EntityQuery
55
- from ezdxf.protocols import SupportsTemporaryTransformation
56
55
  from ezdxf.render.dimension import DimensionRenderer
57
56
  from ezdxf.sections.acdsdata import AcDsDataSection, new_acds_data_section
58
57
  from ezdxf.sections.blocks import BlocksSection
@@ -65,6 +64,7 @@ from ezdxf.tools import guid
65
64
  from ezdxf.tools.codepage import tocodepage, toencoding
66
65
  from ezdxf.tools.juliandate import juliandate
67
66
  from ezdxf.tools.text import safe_string, MAX_STR_LEN
67
+ from ezdxf import messenger, msgtypes
68
68
 
69
69
 
70
70
  logger = logging.getLogger("ezdxf")
@@ -111,6 +111,7 @@ def _validate_handle_seed(seed: str) -> str:
111
111
  class Drawing:
112
112
  def __init__(self, dxfversion=DXF2013) -> None:
113
113
  self.entitydb = EntityDB()
114
+ self.messenger = messenger.Messenger(self)
114
115
  target_dxfversion = dxfversion.upper()
115
116
  self._dxfversion: str = const.acad_release_to_dxf_version.get(
116
117
  target_dxfversion, target_dxfversion
@@ -586,8 +587,8 @@ class Drawing:
586
587
  fmt: "asc" for ASCII DXF (default) or "bin" for binary DXF
587
588
 
588
589
  """
589
- # These changes may alter the document content (create new entities, blocks ...)
590
- # and have to be done before the export and the update of internal structures
590
+ # These changes may alter the document content (create new entities, blocks ...)
591
+ # and have to be done before the export and the update of internal structures
591
592
  # can be done.
592
593
  self.commit_pending_changes()
593
594
 
@@ -647,9 +648,7 @@ class Drawing:
647
648
  tagwriter.write_tag2(0, "EOF")
648
649
 
649
650
  def commit_pending_changes(self) -> None:
650
- entities = list(self.entitydb.values()) # entitydb may change while iterating
651
- for entity in entities:
652
- entity.commit_pending_changes()
651
+ self.messenger.broadcast(msgtypes.COMMIT_PENDING_CHANGES)
653
652
 
654
653
  def update_all(self) -> None:
655
654
  if self.dxfversion > DXF12: