ezdxf 1.3.0b1__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.0b1/src/ezdxf.egg-info → ezdxf-1.3.1}/PKG-INFO +1 -1
  2. ezdxf-1.3.1/integration_tests/test_acis_entites.py +48 -0
  3. ezdxf-1.3.1/integration_tests/test_xref_load_acis.py +85 -0
  4. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/acis/api.py +5 -4
  5. ezdxf-1.3.1/src/ezdxf/acis/cache.py +59 -0
  6. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/acis/entities.py +24 -49
  7. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/acis/mesh.py +80 -0
  8. ezdxf-1.3.1/src/ezdxf/acis/type_hints.py +7 -0
  9. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/addons/acadctb.py +13 -1
  10. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/addons/drawing/frontend.py +5 -2
  11. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/addons/drawing/pipeline.py +14 -8
  12. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/addons/dxf2code.py +1 -1
  13. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/addons/odafc.py +4 -1
  14. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/audit.py +2 -0
  15. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/document.py +21 -11
  16. ezdxf-1.3.1/src/ezdxf/edgeminer.py +1166 -0
  17. ezdxf-1.3.1/src/ezdxf/edgesmith.py +231 -0
  18. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/entities/acad_proxy_entity.py +0 -1
  19. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/entities/acad_table.py +14 -12
  20. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/entities/acis.py +148 -33
  21. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/entities/attrib.py +3 -3
  22. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/entities/block.py +3 -2
  23. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/entities/blockrecord.py +3 -2
  24. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/entities/boundary_paths.py +44 -16
  25. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/entities/dictionary.py +5 -4
  26. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/entities/dimension.py +3 -3
  27. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/entities/dimstyle.py +3 -2
  28. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/entities/dxfentity.py +12 -8
  29. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/entities/dxfgfx.py +4 -4
  30. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/entities/dxfgroups.py +37 -11
  31. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/entities/dxfobj.py +6 -5
  32. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/entities/idbuffer.py +2 -1
  33. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/entities/image.py +4 -4
  34. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/entities/insert.py +3 -2
  35. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/entities/layer.py +2 -1
  36. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/entities/layout.py +7 -4
  37. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/entities/leader.py +4 -3
  38. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/entities/ltype.py +4 -3
  39. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/entities/lwpolyline.py +1 -1
  40. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/entities/material.py +2 -1
  41. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/entities/mesh.py +2 -1
  42. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/entities/mleader.py +4 -3
  43. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/entities/mline.py +5 -5
  44. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/entities/mtext.py +4 -3
  45. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/entities/polygon.py +16 -3
  46. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/entities/spatial_filter.py +3 -2
  47. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/entities/spline.py +2 -2
  48. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/entities/subentity.py +4 -3
  49. ezdxf-1.3.1/src/ezdxf/entities/temporary_transform.py +49 -0
  50. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/entities/text.py +3 -2
  51. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/entities/tolerance.py +4 -3
  52. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/entities/underlay.py +4 -3
  53. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/entities/viewport.py +4 -3
  54. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/entities/visualstyle.py +2 -1
  55. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/graphicsfactory.py +1 -2
  56. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/layouts/base.py +8 -2
  57. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/math/clipping.py +8 -28
  58. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/math/rtree.py +53 -54
  59. ezdxf-1.3.1/src/ezdxf/messenger.py +19 -0
  60. ezdxf-1.3.1/src/ezdxf/msgtypes.py +9 -0
  61. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/path/converter.py +16 -10
  62. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/protocols.py +17 -11
  63. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/render/trace.py +14 -40
  64. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/sections/blocks.py +34 -20
  65. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/tools/clipping_portal.py +24 -18
  66. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/transform.py +100 -5
  67. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/version.py +2 -2
  68. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/xref.py +1 -1
  69. {ezdxf-1.3.0b1 → ezdxf-1.3.1/src/ezdxf.egg-info}/PKG-INFO +1 -1
  70. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf.egg-info/SOURCES.txt +18 -3
  71. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_02_dxf_graphics/test_224_group.py +35 -5
  72. ezdxf-1.3.0b1/tests/test_02_dxf_graphics/test_232_acis.py → ezdxf-1.3.1/tests/test_02_dxf_graphics/test_232a_add_acis.py +1 -1
  73. ezdxf-1.3.0b1/tests/test_02_dxf_graphics/test_232_acis_2.py → ezdxf-1.3.1/tests/test_02_dxf_graphics/test_232b_acis_export.py +33 -12
  74. ezdxf-1.3.0b1/tests/test_02_dxf_graphics/test_232_surface.py → ezdxf-1.3.1/tests/test_02_dxf_graphics/test_232c_acis_surface.py +1 -1
  75. ezdxf-1.3.1/tests/test_02_dxf_graphics/test_232d_acis_copy.py +121 -0
  76. ezdxf-1.3.1/tests/test_02_dxf_graphics/test_232e_acis_transform.py +75 -0
  77. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_02_dxf_graphics/test_249_boundary_paths.py +36 -0
  78. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_04_dxf_high_level_structs/test_413_dxfgroups.py +2 -1
  79. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_04_dxf_high_level_structs/test_424_audit.py +21 -0
  80. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_05_tools/test_531_acis_entities.py +1 -2
  81. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_05_tools/test_532_acis_mesh.py +13 -5
  82. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_05_tools/test_537_transform.py +13 -4
  83. ezdxf-1.3.1/tests/test_05_tools/test_545_acis_cache.py +104 -0
  84. ezdxf-1.3.1/tests/test_05_tools/test_546_edgeminer.py +749 -0
  85. ezdxf-1.3.1/tests/test_05_tools/test_547_edgesmith.py +123 -0
  86. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_06_math/test_619_greiner_hormann.py +97 -5
  87. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_08_addons/test_803_entities_to_code.py +21 -0
  88. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_08_addons/test_806_acadctb.py +28 -8
  89. ezdxf-1.3.1/tests/test_10_issues/test_issue_1078_bbox_calculation.py +43 -0
  90. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/LICENSE +0 -0
  91. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/MANIFEST.in +0 -0
  92. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/README.md +0 -0
  93. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/integration_tests/check_disable_c_ext_by_config_file.py +0 -0
  94. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/integration_tests/check_disable_c_ext_by_env_var.py +0 -0
  95. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/integration_tests/conftest.py +0 -0
  96. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/integration_tests/data/AC1003_LINE_Example.dxf +0 -0
  97. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/integration_tests/data/ASCII_R12.dxf +0 -0
  98. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/integration_tests/data/Leica_Disto_S910.dxf +0 -0
  99. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/integration_tests/data/MODEL.dxf +0 -0
  100. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/integration_tests/data/PLOTFILE.plt +0 -0
  101. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/integration_tests/data/POLI-ALL210_12.DXF +0 -0
  102. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/integration_tests/data/R12_with_trash_beyond_EOF.dxf +0 -0
  103. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/integration_tests/data/XRECORD_0.bin +0 -0
  104. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/integration_tests/data/XRECORD_1.bin +0 -0
  105. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/integration_tests/data/XRECORD_2.bin +0 -0
  106. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/integration_tests/data/acad_table_with_blk_ref.dxf +0 -0
  107. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/integration_tests/data/bin_dxf_r12.dxf +0 -0
  108. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/integration_tests/data/bin_dxf_r13.dxf +0 -0
  109. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/integration_tests/data/bin_dxf_r14.dxf +0 -0
  110. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/integration_tests/data/bin_dxf_r2000.dxf +0 -0
  111. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/integration_tests/data/cc_dxflib.dxf +0 -0
  112. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/integration_tests/data/custom_blocks.dxf +0 -0
  113. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/integration_tests/data/duplicate_handles.dxf +0 -0
  114. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/integration_tests/data/dxf_unicode.dxf +0 -0
  115. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/integration_tests/data/dynblks.zip +0 -0
  116. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/integration_tests/data/empty_handles.dxf +0 -0
  117. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/integration_tests/data/groups.dxf +0 -0
  118. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/integration_tests/data/layout_broken_links.dxf +0 -0
  119. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/integration_tests/data/layout_broken_links_2.dxf +0 -0
  120. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/integration_tests/data/layout_missing_block_definition.dxf +0 -0
  121. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/integration_tests/data/layout_missing_block_record.dxf +0 -0
  122. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/integration_tests/data/mtext_columns_R2007.dxf +0 -0
  123. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/integration_tests/data/mtext_columns_R2018.dxf +0 -0
  124. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/integration_tests/data/mtext_framed_columns.dxf +0 -0
  125. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/integration_tests/data/mtext_text_frame.dxf +0 -0
  126. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/integration_tests/data/no_layouts.dxf +0 -0
  127. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/integration_tests/data/recover01.dxf +0 -0
  128. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/integration_tests/data/recover02.dxf +0 -0
  129. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/integration_tests/data/small_r13.dxf +0 -0
  130. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/integration_tests/data/small_r14.dxf +0 -0
  131. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/integration_tests/test_acad_table.py +0 -0
  132. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/integration_tests/test_all_dimline_styles.py +0 -0
  133. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/integration_tests/test_all_ellipse_transformations.py +0 -0
  134. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/integration_tests/test_anonymous_blocks.py +0 -0
  135. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/integration_tests/test_appsettings.py +0 -0
  136. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/integration_tests/test_audit_critical_dxf_files.py +0 -0
  137. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/integration_tests/test_audit_layouts.py +0 -0
  138. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/integration_tests/test_complex_line_type_2.py +0 -0
  139. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/integration_tests/test_create_basic_graphics.py +0 -0
  140. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/integration_tests/test_document_guid.py +0 -0
  141. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/integration_tests/test_document_page_setup.py +0 -0
  142. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/integration_tests/test_dxf_info_scanning.py +0 -0
  143. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/integration_tests/test_dynblkhelper.py +0 -0
  144. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/integration_tests/test_entities_iterator.py +0 -0
  145. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/integration_tests/test_fix_dulicate_handles.py +0 -0
  146. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/integration_tests/test_geo.py +0 -0
  147. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/integration_tests/test_groups.py +0 -0
  148. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/integration_tests/test_hpgl2_addon.py +0 -0
  149. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/integration_tests/test_ignore_junk_beyond_EOF.py +0 -0
  150. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/integration_tests/test_launcher.py +0 -0
  151. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/integration_tests/test_leica_disto_r12.py +0 -0
  152. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/integration_tests/test_load_dxf_unicode_notation.py +0 -0
  153. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/integration_tests/test_mapbox_earcut.py +0 -0
  154. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/integration_tests/test_mtext_columns.py +0 -0
  155. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/integration_tests/test_mtext_explode_addon.py +0 -0
  156. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/integration_tests/test_mtext_text_frame.py +0 -0
  157. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/integration_tests/test_new_table_entries.py +0 -0
  158. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/integration_tests/test_none_ascii_read_write.py +0 -0
  159. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/integration_tests/test_odafc.py +0 -0
  160. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/integration_tests/test_open_R13_R14.py +0 -0
  161. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/integration_tests/test_open_binary_DXF_files.py +0 -0
  162. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/integration_tests/test_open_coord_order_issue.py +0 -0
  163. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/integration_tests/test_open_exotic_dxf_files.py +0 -0
  164. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/integration_tests/test_polyline_entity.py +0 -0
  165. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/integration_tests/test_preserve_binary_data_in_xrecords.py +0 -0
  166. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/integration_tests/test_r12export.py +0 -0
  167. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/integration_tests/test_r12strict.py +0 -0
  168. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/integration_tests/test_r12writer.py +0 -0
  169. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/integration_tests/test_read_file_without_handles.py +0 -0
  170. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/integration_tests/test_read_write_modern_entites.py +0 -0
  171. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/integration_tests/test_recover.py +0 -0
  172. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/integration_tests/test_redraw_order.py +0 -0
  173. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/integration_tests/test_rotated_block_attributes.py +0 -0
  174. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/integration_tests/test_surface_entities.py +0 -0
  175. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/integration_tests/test_write_fixed_meta_data.py +0 -0
  176. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/integration_tests/test_write_without_handles.py +0 -0
  177. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/integration_tests/test_xref_detach.py +0 -0
  178. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/pyproject.toml +0 -0
  179. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/requirements.txt +0 -0
  180. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/setup.cfg +0 -0
  181. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/setup.py +0 -0
  182. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/__init__.py +0 -0
  183. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/__main__.py +0 -0
  184. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/_options.py +0 -0
  185. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/acc/__init__.py +0 -0
  186. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/acc/bezier3p.pyx +0 -0
  187. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/acc/bezier4p.pyx +0 -0
  188. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/acc/bspline.pyx +0 -0
  189. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/acc/constants.h +0 -0
  190. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/acc/construct.pyx +0 -0
  191. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/acc/linetypes.pyx +0 -0
  192. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/acc/mapbox_earcut.pyx +0 -0
  193. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/acc/matrix44.pxd +0 -0
  194. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/acc/matrix44.pyx +0 -0
  195. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/acc/np_support.pyx +0 -0
  196. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/acc/vector.pxd +0 -0
  197. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/acc/vector.pyx +0 -0
  198. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/acis/__init__.py +0 -0
  199. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/acis/abstract.py +0 -0
  200. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/acis/const.py +0 -0
  201. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/acis/dbg.py +0 -0
  202. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/acis/dxf.py +0 -0
  203. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/acis/hdr.py +0 -0
  204. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/acis/sab.py +0 -0
  205. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/acis/sat.py +0 -0
  206. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/addons/__init__.py +0 -0
  207. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/addons/acisbrowser/__init__.py +0 -0
  208. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/addons/acisbrowser/browser.py +0 -0
  209. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/addons/acisbrowser/data.py +0 -0
  210. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/addons/binpacking.py +0 -0
  211. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/addons/browser/__init__.py +0 -0
  212. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/addons/browser/bookmarks.py +0 -0
  213. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/addons/browser/browser.py +0 -0
  214. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/addons/browser/data.py +0 -0
  215. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/addons/browser/find_dialog.py +0 -0
  216. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/addons/browser/loader.py +0 -0
  217. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/addons/browser/model.py +0 -0
  218. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/addons/browser/reflinks.py +0 -0
  219. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/addons/browser/tags.py +0 -0
  220. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/addons/browser/views.py +0 -0
  221. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/addons/dimlines.py +0 -0
  222. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/addons/drawing/__init__.py +0 -0
  223. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/addons/drawing/backend.py +0 -0
  224. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/addons/drawing/config.py +0 -0
  225. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/addons/drawing/debug_backend.py +0 -0
  226. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/addons/drawing/debug_utils.py +0 -0
  227. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/addons/drawing/dxf.py +0 -0
  228. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/addons/drawing/file_output.py +0 -0
  229. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/addons/drawing/gfxproxy.py +0 -0
  230. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/addons/drawing/hpgl2.py +0 -0
  231. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/addons/drawing/json.py +0 -0
  232. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/addons/drawing/layout.py +0 -0
  233. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/addons/drawing/matplotlib.py +0 -0
  234. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/addons/drawing/mtext_complex.py +0 -0
  235. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/addons/drawing/properties.py +0 -0
  236. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/addons/drawing/pymupdf.py +0 -0
  237. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/addons/drawing/pyqt.py +0 -0
  238. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/addons/drawing/qtviewer.py +0 -0
  239. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/addons/drawing/recorder.py +0 -0
  240. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/addons/drawing/svg.py +0 -0
  241. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/addons/drawing/text.py +0 -0
  242. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/addons/drawing/text_renderer.py +0 -0
  243. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/addons/drawing/type_hints.py +0 -0
  244. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/addons/drawing/unified_text_renderer.py +0 -0
  245. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/addons/dwg/__init__.py +0 -0
  246. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/addons/dwg/classes_section.py +0 -0
  247. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/addons/dwg/const.py +0 -0
  248. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/addons/dwg/crc.py +0 -0
  249. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/addons/dwg/fileheader.py +0 -0
  250. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/addons/dwg/header_section.py +0 -0
  251. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/addons/dwg/loader.py +0 -0
  252. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/addons/genetic_algorithm.py +0 -0
  253. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/addons/geo.py +0 -0
  254. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/addons/gerber_D6673.py +0 -0
  255. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/addons/hpgl2/__init__.py +0 -0
  256. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/addons/hpgl2/api.py +0 -0
  257. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/addons/hpgl2/backend.py +0 -0
  258. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/addons/hpgl2/deps.py +0 -0
  259. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/addons/hpgl2/interpreter.py +0 -0
  260. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/addons/hpgl2/page.py +0 -0
  261. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/addons/hpgl2/plotter.py +0 -0
  262. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/addons/hpgl2/polygon_buffer.py +0 -0
  263. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/addons/hpgl2/properties.py +0 -0
  264. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/addons/hpgl2/tokenizer.py +0 -0
  265. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/addons/hpgl2/viewer.py +0 -0
  266. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/addons/importer.py +0 -0
  267. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/addons/iterdxf.py +0 -0
  268. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/addons/menger_sponge.py +0 -0
  269. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/addons/meshex.py +0 -0
  270. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/addons/mixins.py +0 -0
  271. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/addons/mtextsurrogate.py +0 -0
  272. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/addons/mtxpl.py +0 -0
  273. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/addons/openscad.py +0 -0
  274. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/addons/pycsg.py +0 -0
  275. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/addons/r12export.py +0 -0
  276. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/addons/r12writer.py +0 -0
  277. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/addons/sierpinski_pyramid.py +0 -0
  278. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/addons/tablepainter.py +0 -0
  279. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/addons/text2path.py +0 -0
  280. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/addons/xplayer.py +0 -0
  281. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/addons/xqt.py +0 -0
  282. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/appsettings.py +0 -0
  283. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/bbox.py +0 -0
  284. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/blkrefs.py +0 -0
  285. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/colors.py +0 -0
  286. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/commands.py +0 -0
  287. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/comments.py +0 -0
  288. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/disassemble.py +0 -0
  289. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/dwginfo.py +0 -0
  290. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/dynblkhelper.py +0 -0
  291. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/entities/__init__.py +0 -0
  292. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/entities/acad_xrec_roundtrip.py +0 -0
  293. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/entities/appdata.py +0 -0
  294. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/entities/appid.py +0 -0
  295. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/entities/arc.py +0 -0
  296. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/entities/circle.py +0 -0
  297. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/entities/copy.py +0 -0
  298. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/entities/dimstyleoverride.py +0 -0
  299. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/entities/dxfclass.py +0 -0
  300. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/entities/dxfns.py +0 -0
  301. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/entities/ellipse.py +0 -0
  302. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/entities/factory.py +0 -0
  303. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/entities/geodata.py +0 -0
  304. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/entities/gradient.py +0 -0
  305. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/entities/hatch.py +0 -0
  306. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/entities/helix.py +0 -0
  307. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/entities/light.py +0 -0
  308. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/entities/line.py +0 -0
  309. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/entities/mpolygon.py +0 -0
  310. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/entities/mtext_columns.py +0 -0
  311. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/entities/objectcollection.py +0 -0
  312. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/entities/oleframe.py +0 -0
  313. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/entities/pattern.py +0 -0
  314. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/entities/point.py +0 -0
  315. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/entities/polyline.py +0 -0
  316. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/entities/shape.py +0 -0
  317. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/entities/solid.py +0 -0
  318. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/entities/sun.py +0 -0
  319. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/entities/table.py +0 -0
  320. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/entities/textstyle.py +0 -0
  321. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/entities/ucs.py +0 -0
  322. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/entities/view.py +0 -0
  323. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/entities/vport.py +0 -0
  324. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/entities/xdata.py +0 -0
  325. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/entities/xdict.py +0 -0
  326. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/entities/xline.py +0 -0
  327. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/entitydb.py +0 -0
  328. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/enums.py +0 -0
  329. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/explode.py +0 -0
  330. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/eztypes.py +0 -0
  331. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/filemanagement.py +0 -0
  332. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/fonts/__init__.py +0 -0
  333. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/fonts/font_face.py +0 -0
  334. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/fonts/font_manager.py +0 -0
  335. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/fonts/font_measurements.py +0 -0
  336. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/fonts/font_synonyms.py +0 -0
  337. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/fonts/fonts.py +0 -0
  338. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/fonts/glyphs.py +0 -0
  339. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/fonts/lff.py +0 -0
  340. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/fonts/shapefile.py +0 -0
  341. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/fonts/ttfonts.py +0 -0
  342. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/gfxattribs.py +0 -0
  343. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/groupby.py +0 -0
  344. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/layouts/__init__.py +0 -0
  345. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/layouts/blocklayout.py +0 -0
  346. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/layouts/layout.py +0 -0
  347. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/layouts/layouts.py +0 -0
  348. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/lldxf/__init__.py +0 -0
  349. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/lldxf/attributes.py +0 -0
  350. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/lldxf/const.py +0 -0
  351. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/lldxf/encoding.py +0 -0
  352. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/lldxf/extendedtags.py +0 -0
  353. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/lldxf/fileindex.py +0 -0
  354. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/lldxf/hdrvars.py +0 -0
  355. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/lldxf/loader.py +0 -0
  356. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/lldxf/packedtags.py +0 -0
  357. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/lldxf/repair.py +0 -0
  358. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/lldxf/tagger.py +0 -0
  359. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/lldxf/tags.py +0 -0
  360. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/lldxf/tagwriter.py +0 -0
  361. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/lldxf/types.py +0 -0
  362. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/lldxf/validator.py +0 -0
  363. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/math/__init__.py +0 -0
  364. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/math/_bezier3p.py +0 -0
  365. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/math/_bezier4p.py +0 -0
  366. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/math/_bspline.py +0 -0
  367. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/math/_construct.py +0 -0
  368. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/math/_ctypes.py +0 -0
  369. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/math/_mapbox_earcut.py +0 -0
  370. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/math/_matrix44.py +0 -0
  371. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/math/_vector.py +0 -0
  372. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/math/arc.py +0 -0
  373. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/math/bbox.py +0 -0
  374. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/math/bezier.py +0 -0
  375. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/math/bezier_interpolation.py +0 -0
  376. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/math/box.py +0 -0
  377. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/math/bspline.py +0 -0
  378. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/math/bulge.py +0 -0
  379. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/math/circle.py +0 -0
  380. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/math/clustering.py +0 -0
  381. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/math/construct2d.py +0 -0
  382. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/math/construct3d.py +0 -0
  383. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/math/cspline.py +0 -0
  384. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/math/curvetools.py +0 -0
  385. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/math/ellipse.py +0 -0
  386. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/math/eulerspiral.py +0 -0
  387. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/math/legacy.py +0 -0
  388. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/math/linalg.py +0 -0
  389. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/math/line.py +0 -0
  390. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/math/offset2d.py +0 -0
  391. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/math/parametrize.py +0 -0
  392. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/math/perlin.py +0 -0
  393. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/math/polyline.py +0 -0
  394. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/math/shape.py +0 -0
  395. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/math/transformtools.py +0 -0
  396. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/math/triangulation.py +0 -0
  397. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/math/ucs.py +0 -0
  398. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/npshapes.py +0 -0
  399. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/path/__init__.py +0 -0
  400. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/path/commands.py +0 -0
  401. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/path/nesting.py +0 -0
  402. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/path/path.py +0 -0
  403. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/path/shapes.py +0 -0
  404. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/path/tools.py +0 -0
  405. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/proxygraphic.py +0 -0
  406. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/py.typed +0 -0
  407. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/query.py +0 -0
  408. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/queryparser.py +0 -0
  409. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/r12strict.py +0 -0
  410. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/recover.py +0 -0
  411. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/render/__init__.py +0 -0
  412. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/render/_linetypes.py +0 -0
  413. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/render/abstract_mtext_renderer.py +0 -0
  414. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/render/arrows.py +0 -0
  415. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/render/curves.py +0 -0
  416. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/render/dim_base.py +0 -0
  417. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/render/dim_curved.py +0 -0
  418. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/render/dim_diameter.py +0 -0
  419. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/render/dim_linear.py +0 -0
  420. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/render/dim_ordinate.py +0 -0
  421. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/render/dim_radius.py +0 -0
  422. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/render/dimension.py +0 -0
  423. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/render/forms.py +0 -0
  424. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/render/hatching.py +0 -0
  425. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/render/leader.py +0 -0
  426. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/render/linetypes.py +0 -0
  427. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/render/mesh.py +0 -0
  428. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/render/mleader.py +0 -0
  429. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/render/mline.py +0 -0
  430. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/render/point.py +0 -0
  431. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/render/polyline.py +0 -0
  432. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/render/r12spline.py +0 -0
  433. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/reorder.py +0 -0
  434. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/resources/16x16.png +0 -0
  435. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/resources/24x24.png +0 -0
  436. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/resources/256x256.png +0 -0
  437. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/resources/32x32.png +0 -0
  438. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/resources/48x48.png +0 -0
  439. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/resources/64x64.png +0 -0
  440. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/resources/icon-copy-64px.png +0 -0
  441. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/resources/icon-find-64px.png +0 -0
  442. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/resources/icon-goto-bookmark-64px.png +0 -0
  443. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/resources/icon-goto-handle-64px.png +0 -0
  444. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/resources/icon-goto-line-64px.png +0 -0
  445. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/resources/icon-left-arrow-64px.png +0 -0
  446. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/resources/icon-next-entity-64px.png +0 -0
  447. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/resources/icon-prev-entity-64px.png +0 -0
  448. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/resources/icon-right-arrow-64px.png +0 -0
  449. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/resources/icon-show-in-tree-64px.png +0 -0
  450. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/resources/icon-store-bookmark-64px.png +0 -0
  451. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/revcloud.py +0 -0
  452. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/sections/__init__.py +0 -0
  453. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/sections/acdsdata.py +0 -0
  454. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/sections/classes.py +0 -0
  455. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/sections/entities.py +0 -0
  456. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/sections/header.py +0 -0
  457. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/sections/headervars.py +0 -0
  458. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/sections/objects.py +0 -0
  459. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/sections/table.py +0 -0
  460. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/sections/tables.py +0 -0
  461. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/select.py +0 -0
  462. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/tools/__init__.py +0 -0
  463. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/tools/_iso_pattern.py +0 -0
  464. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/tools/analyze.py +0 -0
  465. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/tools/binarydata.py +0 -0
  466. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/tools/codepage.py +0 -0
  467. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/tools/complex_ltype.py +0 -0
  468. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/tools/crypt.py +0 -0
  469. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/tools/debug.py +0 -0
  470. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/tools/difftags.py +0 -0
  471. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/tools/handle.py +0 -0
  472. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/tools/indexing.py +0 -0
  473. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/tools/juliandate.py +0 -0
  474. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/tools/pattern.py +0 -0
  475. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/tools/rawloader.py +0 -0
  476. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/tools/standards.py +0 -0
  477. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/tools/strip.py +0 -0
  478. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/tools/test.py +0 -0
  479. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/tools/text.py +0 -0
  480. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/tools/text_layout.py +0 -0
  481. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/tools/text_size.py +0 -0
  482. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/tools/zipmanager.py +0 -0
  483. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/units.py +0 -0
  484. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/upright.py +0 -0
  485. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/urecord.py +0 -0
  486. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/xclip.py +0 -0
  487. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf/zoom.py +0 -0
  488. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf.egg-info/dependency_links.txt +0 -0
  489. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf.egg-info/entry_points.txt +0 -0
  490. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf.egg-info/not-zip-safe +0 -0
  491. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf.egg-info/requires.txt +0 -0
  492. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/src/ezdxf.egg-info/top_level.txt +0 -0
  493. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/conftest.py +0 -0
  494. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_00_dxf_low_level_structs/test_001_dxf_types.py +0 -0
  495. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_00_dxf_low_level_structs/test_002_dxf_vertex.py +0 -0
  496. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_00_dxf_low_level_structs/test_003_dxf_binary_tag.py +0 -0
  497. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_00_dxf_low_level_structs/test_004_dxf_value.py +0 -0
  498. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_00_dxf_low_level_structs/test_005_packed_tags.py +0 -0
  499. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_00_dxf_low_level_structs/test_010_binary_data.py +0 -0
  500. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_00_dxf_low_level_structs/test_011_codepage.py +0 -0
  501. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_00_dxf_low_level_structs/test_012_crypt.py +0 -0
  502. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_00_dxf_low_level_structs/test_013_juliandate.py +0 -0
  503. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_00_dxf_low_level_structs/test_014_multi_tags_text.py +0 -0
  504. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_00_dxf_low_level_structs/test_015_entity_structure_validator.py +0 -0
  505. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_00_dxf_low_level_structs/test_016_encoding.py +0 -0
  506. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_00_dxf_low_level_structs/test_018_handle.py +0 -0
  507. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_00_dxf_low_level_structs/test_019_complex_line_type.py +0 -0
  508. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_00_dxf_low_level_structs/test_020_validators_and_fixer.py +0 -0
  509. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_00_dxf_low_level_structs/test_021_fix_line_coordinates.py +0 -0
  510. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_00_dxf_low_level_structs/test_022_set_flag_state.py +0 -0
  511. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_00_dxf_low_level_structs/test_023_fix_invalid_located_group_codes.py +0 -0
  512. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_00_dxf_low_level_structs/test_024_render_tag.py +0 -0
  513. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_00_dxf_low_level_structs/test_040_tags.py +0 -0
  514. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_00_dxf_low_level_structs/test_041_group_tags.py +0 -0
  515. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_00_dxf_low_level_structs/test_042_tags_loader.py +0 -0
  516. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_00_dxf_low_level_structs/test_043_filter_invalid_point_codes.py +0 -0
  517. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_00_dxf_low_level_structs/test_050_extended_tags.py +0 -0
  518. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_00_dxf_low_level_structs/test_051_load_dxf_structure.py +0 -0
  519. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_00_dxf_low_level_structs/test_052_tag_writer.py +0 -0
  520. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_00_dxf_low_level_structs/test_053_embedded_object_tags.py +0 -0
  521. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_00_dxf_low_level_structs/test_054_dxfattr.py +0 -0
  522. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_00_dxf_low_level_structs/test_055_recover_loader.py +0 -0
  523. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_00_dxf_low_level_structs/test_056_special_string_decoding.py +0 -0
  524. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_00_dxf_low_level_structs/test_057_group_code_mapping.py +0 -0
  525. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_00_dxf_low_level_structs/test_058_json_tags.py +0 -0
  526. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_01_dxf_entities/test_101_dxfnamespace.py +0 -0
  527. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_01_dxf_entities/test_102_appdata.py +0 -0
  528. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_01_dxf_entities/test_103_reactors.py +0 -0
  529. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_01_dxf_entities/test_104_extension_dict.py +0 -0
  530. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_01_dxf_entities/test_105_xdata.py +0 -0
  531. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_01_dxf_entities/test_110_dxfentity.py +0 -0
  532. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_01_dxf_entities/test_111_unknown_dxf_entity.py +0 -0
  533. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_01_dxf_entities/test_112a_dxfgfx.py +0 -0
  534. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_01_dxf_entities/test_112b_dxfobj.py +0 -0
  535. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_01_dxf_entities/test_113_dxfclass.py +0 -0
  536. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_01_dxf_entities/test_114_factory.py +0 -0
  537. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_01_dxf_entities/test_115_new_empty_drawing.py +0 -0
  538. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_01_dxf_entities/test_116_dictionary.py +0 -0
  539. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_01_dxf_entities/test_117_layer_table_entry.py +0 -0
  540. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_01_dxf_entities/test_118_appid_table_entry.py +0 -0
  541. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_01_dxf_entities/test_119_ucs_table_entry.py +0 -0
  542. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_01_dxf_entities/test_120_style_table_entry.py +0 -0
  543. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_01_dxf_entities/test_121_ltype_table_entry.py +0 -0
  544. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_01_dxf_entities/test_122_vport_table_entry.py +0 -0
  545. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_01_dxf_entities/test_123_view_table_entry.py +0 -0
  546. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_01_dxf_entities/test_124_dimstyle_table_entry.py +0 -0
  547. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_01_dxf_entities/test_125_image_def.py +0 -0
  548. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_01_dxf_entities/test_126_image_def_reactor.py +0 -0
  549. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_01_dxf_entities/test_127_raster_variables.py +0 -0
  550. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_01_dxf_entities/test_128_pdf_definition.py +0 -0
  551. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_01_dxf_entities/test_129_xrecord.py +0 -0
  552. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_01_dxf_entities/test_130_id_buffer.py +0 -0
  553. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_01_dxf_entities/test_131_field_list.py +0 -0
  554. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_01_dxf_entities/test_132_layer_filter.py +0 -0
  555. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_01_dxf_entities/test_133_sun.py +0 -0
  556. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_01_dxf_entities/test_134_material.py +0 -0
  557. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_01_dxf_entities/test_135_geo_data.py +0 -0
  558. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_01_dxf_entities/test_136_vba_project.py +0 -0
  559. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_01_dxf_entities/test_137_sortentstable.py +0 -0
  560. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_01_dxf_entities/test_138_setup_visual_styles.py +0 -0
  561. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_01_dxf_entities/test_139_user_record.py +0 -0
  562. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_01_dxf_entities/test_140_block_record.py +0 -0
  563. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_01_dxf_entities/test_141_layer_vp_override.py +0 -0
  564. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_01_dxf_entities/test_142_copy_strategy.py +0 -0
  565. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_01_dxf_entities/test_143_spatial_filter.py +0 -0
  566. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_01_dxf_entities/test_144_roundtrip_xrecord.py +0 -0
  567. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_02_dxf_graphics/conftest.py +0 -0
  568. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_02_dxf_graphics/test_200_line.py +0 -0
  569. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_02_dxf_graphics/test_201_point.py +0 -0
  570. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_02_dxf_graphics/test_202_circle.py +0 -0
  571. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_02_dxf_graphics/test_203_arc.py +0 -0
  572. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_02_dxf_graphics/test_204_shape.py +0 -0
  573. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_02_dxf_graphics/test_205_solid.py +0 -0
  574. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_02_dxf_graphics/test_206_text.py +0 -0
  575. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_02_dxf_graphics/test_207_attdef.py +0 -0
  576. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_02_dxf_graphics/test_208_attrib.py +0 -0
  577. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_02_dxf_graphics/test_209_vertex.py +0 -0
  578. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_02_dxf_graphics/test_210_polyline_1.py +0 -0
  579. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_02_dxf_graphics/test_210_polyline_2.py +0 -0
  580. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_02_dxf_graphics/test_210_polyline_explode.py +0 -0
  581. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_02_dxf_graphics/test_210_polyline_vertex_attributes.py +0 -0
  582. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_02_dxf_graphics/test_211_viewport.py +0 -0
  583. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_02_dxf_graphics/test_212_insert.py +0 -0
  584. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_02_dxf_graphics/test_213_minsert.py +0 -0
  585. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_02_dxf_graphics/test_214_block.py +0 -0
  586. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_02_dxf_graphics/test_215_dimension.py +0 -0
  587. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_02_dxf_graphics/test_216_dimlines_R12.py +0 -0
  588. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_02_dxf_graphics/test_217_dimlines_R2000.py +0 -0
  589. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_02_dxf_graphics/test_218_poly_line_mesh_face.py +0 -0
  590. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_02_dxf_graphics/test_219_dxf_r2000_generics.py +0 -0
  591. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_02_dxf_graphics/test_220_lwpolyline_1.py +0 -0
  592. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_02_dxf_graphics/test_220_lwpolyline_2.py +0 -0
  593. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_02_dxf_graphics/test_220_lwpolyline_3.py +0 -0
  594. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_02_dxf_graphics/test_220_lwpolyline_explode.py +0 -0
  595. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_02_dxf_graphics/test_221_ellipse.py +0 -0
  596. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_02_dxf_graphics/test_222_xline.py +0 -0
  597. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_02_dxf_graphics/test_223_ray.py +0 -0
  598. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_02_dxf_graphics/test_225_mtext.py +0 -0
  599. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_02_dxf_graphics/test_226_spline.py +0 -0
  600. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_02_dxf_graphics/test_226_spline_with_linear_segments.py +0 -0
  601. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_02_dxf_graphics/test_227_mesh_packed_data.py +0 -0
  602. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_02_dxf_graphics/test_228_mesh.py +0 -0
  603. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_02_dxf_graphics/test_229a_hatch_dxf_interface.py +0 -0
  604. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_02_dxf_graphics/test_229b_hatch_extended.py +0 -0
  605. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_02_dxf_graphics/test_229c_hatch_transformations.py +0 -0
  606. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_02_dxf_graphics/test_230a_image_as_virtual_entity.py +0 -0
  607. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_02_dxf_graphics/test_230b_image_in_layout_context.py +0 -0
  608. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_02_dxf_graphics/test_231_underlay.py +0 -0
  609. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_02_dxf_graphics/test_231_underlay_2.py +0 -0
  610. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_02_dxf_graphics/test_233_helix.py +0 -0
  611. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_02_dxf_graphics/test_234_light.py +0 -0
  612. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_02_dxf_graphics/test_235_leader.py +0 -0
  613. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_02_dxf_graphics/test_236_multileader.py +0 -0
  614. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_02_dxf_graphics/test_237_mline.py +0 -0
  615. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_02_dxf_graphics/test_238_tolerance.py +0 -0
  616. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_02_dxf_graphics/test_239_proxy_graphic.py +0 -0
  617. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_02_dxf_graphics/test_240_arc_dimension.py +0 -0
  618. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_02_dxf_graphics/test_241_hyperlink.py +0 -0
  619. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_02_dxf_graphics/test_242_random_transform.py +0 -0
  620. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_02_dxf_graphics/test_243_replace_entity.py +0 -0
  621. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_02_dxf_graphics/test_244_large_radial_dimension.py +0 -0
  622. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_02_dxf_graphics/test_245_wipeout.py +0 -0
  623. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_02_dxf_graphics/test_246_spline_audit.py +0 -0
  624. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_02_dxf_graphics/test_247_mtext_columns_R2018.py +0 -0
  625. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_02_dxf_graphics/test_248_mpolygon.py +0 -0
  626. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_02_dxf_graphics/test_248_mtext_linked_columns_R2000_to_R2013.py +0 -0
  627. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_02_dxf_graphics/test_250_virtual_boundary_path_entities.py +0 -0
  628. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_02_dxf_graphics/test_251_upright.py +0 -0
  629. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_02_dxf_graphics/test_252_acad_proxy_entity.py +0 -0
  630. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_02_dxf_graphics/test_253_ole2frame.py +0 -0
  631. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_02_dxf_graphics/test_254_get_font_name.py +0 -0
  632. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_03_dxf_layouts/test_300_layout.py +0 -0
  633. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_03_dxf_layouts/test_301_add_gfx_to_layout.py +0 -0
  634. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_03_dxf_layouts/test_302_block_references.py +0 -0
  635. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_03_dxf_layouts/test_303_auto_block_references.py +0 -0
  636. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_03_dxf_layouts/test_304_new_entity_space.py +0 -0
  637. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_03_dxf_layouts/test_305_copy_and_move_entity_to_layout.py +0 -0
  638. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_03_dxf_layouts/test_306_copy_linked_entities.py +0 -0
  639. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_03_dxf_layouts/test_307_groupby.py +0 -0
  640. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_03_dxf_layouts/test_308_query.py +0 -0
  641. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_03_dxf_layouts/test_309_query_parser.py +0 -0
  642. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_03_dxf_layouts/test_311_add_foreign_entity.py +0 -0
  643. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_03_dxf_layouts/test_312_virtual_layout.py +0 -0
  644. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_03_dxf_layouts/test_313_redraw_order.py +0 -0
  645. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_04_dxf_high_level_structs/test_401_headersection.py +0 -0
  646. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_04_dxf_high_level_structs/test_402_classessection.py +0 -0
  647. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_04_dxf_high_level_structs/test_403_entity_database.py +0 -0
  648. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_04_dxf_high_level_structs/test_404a_tables.py +0 -0
  649. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_04_dxf_high_level_structs/test_404b_object_collections.py +0 -0
  650. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_04_dxf_high_level_structs/test_405_classes.py +0 -0
  651. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_04_dxf_high_level_structs/test_406_blocks_section.py +0 -0
  652. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_04_dxf_high_level_structs/test_407_entity_section.py +0 -0
  653. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_04_dxf_high_level_structs/test_408_objects_section.py +0 -0
  654. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_04_dxf_high_level_structs/test_409_create_objects.py +0 -0
  655. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_04_dxf_high_level_structs/test_410_table.py +0 -0
  656. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_04_dxf_high_level_structs/test_411_acds_data.py +0 -0
  657. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_04_dxf_high_level_structs/test_412_rename_layer.py +0 -0
  658. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_04_dxf_high_level_structs/test_414_block_reference_content.py +0 -0
  659. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_04_dxf_high_level_structs/test_415_layout_management.py +0 -0
  660. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_04_dxf_high_level_structs/test_416a_disassemble.py +0 -0
  661. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_04_dxf_high_level_structs/test_416b_recursive_decompose.py +0 -0
  662. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_04_dxf_high_level_structs/test_417_bbox.py +0 -0
  663. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_04_dxf_high_level_structs/test_418_copy_entities.py +0 -0
  664. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_04_dxf_high_level_structs/test_420_load_dxf_file.py +0 -0
  665. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_04_dxf_high_level_structs/test_421_new_drawings.py +0 -0
  666. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_04_dxf_high_level_structs/test_422_drawing_object.py +0 -0
  667. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_04_dxf_high_level_structs/test_423_read_proe_r2004.py +0 -0
  668. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_04_dxf_high_level_structs/test_425_limits_and_extents.py +0 -0
  669. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_04_dxf_high_level_structs/test_426_ezdxf_metadata.py +0 -0
  670. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_04_dxf_high_level_structs/test_427_appsettings.py +0 -0
  671. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_04_dxf_high_level_structs/test_428_r12_name_translator.py +0 -0
  672. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_04_dxf_high_level_structs/test_429_xclip.py +0 -0
  673. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_05_tools/conftest.py +0 -0
  674. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_05_tools/test_500_units.py +0 -0
  675. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_05_tools/test_501_truecolor.py +0 -0
  676. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_05_tools/test_502_raw_color.py +0 -0
  677. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_05_tools/test_503_indexing.py +0 -0
  678. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_05_tools/test_504_suppress_zeros.py +0 -0
  679. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_05_tools/test_506_version.py +0 -0
  680. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_05_tools/test_508_read_zip.py +0 -0
  681. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_05_tools/test_509_comments.py +0 -0
  682. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_05_tools/test_510_byte_stream.py +0 -0
  683. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_05_tools/test_511_bit_stream.py +0 -0
  684. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_05_tools/test_512_pattern.py +0 -0
  685. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_05_tools/test_513_reorder_entities.py +0 -0
  686. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_05_tools/test_514_text.py +0 -0
  687. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_05_tools/test_515a_fonts_truetype.py +0 -0
  688. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_05_tools/test_515b_fonts_shapefiles.py +0 -0
  689. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_05_tools/test_515c_fonts_lff.py +0 -0
  690. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_05_tools/test_516_zoom.py +0 -0
  691. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_05_tools/test_517_text_layout.py +0 -0
  692. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_05_tools/test_518_header_guid.py +0 -0
  693. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_05_tools/test_519_mtext_editor.py +0 -0
  694. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_05_tools/test_520_mtext_context.py +0 -0
  695. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_05_tools/test_521_mtext_parser.py +0 -0
  696. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_05_tools/test_522_text_scanner.py +0 -0
  697. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_05_tools/test_523_text_size.py +0 -0
  698. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_05_tools/test_524_block_reference_manager.py +0 -0
  699. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_05_tools/test_525_transparency.py +0 -0
  700. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_05_tools/test_526_explode.py +0 -0
  701. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_05_tools/test_527_gfxattribs.py +0 -0
  702. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_05_tools/test_528_difftags.py +0 -0
  703. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_05_tools/test_529_acis_sat.py +0 -0
  704. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_05_tools/test_530_acis_sab.py +0 -0
  705. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_05_tools/test_533_shapefiles.py +0 -0
  706. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_05_tools/test_534_dwg_info.py +0 -0
  707. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_05_tools/test_535_xref_basic.py +0 -0
  708. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_05_tools/test_536_xref_conflict.py +0 -0
  709. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_05_tools/test_538_scale_mtext_inline_commands.py +0 -0
  710. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_05_tools/test_539_npshapes.py +0 -0
  711. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_05_tools/test_540_lff_parser.py +0 -0
  712. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_05_tools/test_541_clipping_portal.py +0 -0
  713. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_05_tools/test_542_itertools.py +0 -0
  714. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_05_tools/test_543_select.py +0 -0
  715. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_05_tools/test_544_revcloud.py +0 -0
  716. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_06_math/conftest.py +0 -0
  717. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_06_math/test_600_base.py +0 -0
  718. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_06_math/test_601_bulge.py +0 -0
  719. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_06_math/test_602_vec3.py +0 -0
  720. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_06_math/test_603_vec2.py +0 -0
  721. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_06_math/test_604_banded_matrix.py +0 -0
  722. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_06_math/test_604_linalg.py +0 -0
  723. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_06_math/test_605_matrix44.py +0 -0
  724. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_06_math/test_606_convexhull.py +0 -0
  725. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_06_math/test_607_perlin_noise.py +0 -0
  726. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_06_math/test_608_intersection_line_line_2d.py +0 -0
  727. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_06_math/test_609_point_on_line.py +0 -0
  728. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_06_math/test_610_ocs.py +0 -0
  729. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_06_math/test_611_ucs.py +0 -0
  730. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_06_math/test_612_ucs_pass_trough.py +0 -0
  731. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_06_math/test_613_is_point_in_polygon_2d.py +0 -0
  732. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_06_math/test_614_construct_3d.py +0 -0
  733. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_06_math/test_615_rytz_axis.py +0 -0
  734. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_06_math/test_616_plane.py +0 -0
  735. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_06_math/test_617_clockwise_orientation.py +0 -0
  736. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_06_math/test_618_clipping.py +0 -0
  737. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_06_math/test_620_knot.py +0 -0
  738. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_06_math/test_621_bspline.py +0 -0
  739. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_06_math/test_622_bsplineu.py +0 -0
  740. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_06_math/test_623_rbspline.py +0 -0
  741. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_06_math/test_624_global_bspline_interpolation.py +0 -0
  742. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_06_math/test_626_local_bspline_interpolation.py +0 -0
  743. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_06_math/test_627_bspline_basis.py +0 -0
  744. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_06_math/test_629_bezier.py +0 -0
  745. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_06_math/test_630a_bezier4p_base.py +0 -0
  746. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_06_math/test_630b_bezier4p_functions.py +0 -0
  747. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_06_math/test_631_euler_spiral.py +0 -0
  748. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_06_math/test_632_bezier3p.py +0 -0
  749. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_06_math/test_640_bbox.py +0 -0
  750. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_06_math/test_641_construction_ray.py +0 -0
  751. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_06_math/test_642_construction_line.py +0 -0
  752. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_06_math/test_643_construction_box.py +0 -0
  753. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_06_math/test_644_construction_circle.py +0 -0
  754. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_06_math/test_645_construction_arc.py +0 -0
  755. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_06_math/test_646_offset_vertices_2d.py +0 -0
  756. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_06_math/test_647_transform_tools.py +0 -0
  757. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_06_math/test_648_construction_ellipse.py +0 -0
  758. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_06_math/test_650_elliptic_arc_span.py +0 -0
  759. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_06_math/test_651_construction_polyline.py +0 -0
  760. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_06_math/test_652_approx_param_t.py +0 -0
  761. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_06_math/test_653_polyline_intersection.py +0 -0
  762. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_06_math/test_654_rtree.py +0 -0
  763. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_06_math/test_655_dbscan.py +0 -0
  764. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_06_math/test_656_k_means.py +0 -0
  765. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_06_math/test_657_mapbox_earcut.py +0 -0
  766. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_06_math/test_658_bevel_tools.py +0 -0
  767. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_06_math/test_659_intersection_line_polygon_3d.py +0 -0
  768. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_06_math/test_660_intersection_ray_polygon_3d.py +0 -0
  769. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_06_math/test_661_is_face_normal_pointing_outwards.py +0 -0
  770. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_06_math/test_662_is_convex_polygon_2d.py +0 -0
  771. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_06_math/test_663_is_axes_aligned_rectange.py +0 -0
  772. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_06_math/test_664_concave_clipping_polygon.py +0 -0
  773. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_06_math/test_665_inverted_clipping_polygon.py +0 -0
  774. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_06_math/test_666_wgs84_transform.py +0 -0
  775. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_07_render/test_701_arrows.py +0 -0
  776. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_07_render/test_702_render_forms.py +0 -0
  777. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_07_render/test_703_mesh_builder.py +0 -0
  778. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_07_render/test_704_render_linear_dimension.py +0 -0
  779. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_07_render/test_705_shape.py +0 -0
  780. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_07_render/test_706_random_path.py +0 -0
  781. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_07_render/test_707_trace.py +0 -0
  782. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_07_render/test_708a_path.py +0 -0
  783. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_07_render/test_708b_path_tools.py +0 -0
  784. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_07_render/test_708c_matplotlib_path_tools.py +0 -0
  785. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_07_render/test_708d_qpainter_path_tools.py +0 -0
  786. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_07_render/test_708e_path_shapes.py +0 -0
  787. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_07_render/test_708f_path_nesting.py +0 -0
  788. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_07_render/test_709_linetype_renderer.py +0 -0
  789. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_07_render/test_711_points.py +0 -0
  790. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_07_render/test_712_render_curved_dimension.py +0 -0
  791. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_07_render/test_713_mleader_builder.py +0 -0
  792. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_07_render/test_714_mleader_render_engine.py +0 -0
  793. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_07_render/test_715_hatching.py +0 -0
  794. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_07_render/test_715_issue_747_explode_3d_dim.py +0 -0
  795. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_08_addons/test_800_mtext_surrogate.py +0 -0
  796. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_08_addons/test_801_r12spline.py +0 -0
  797. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_08_addons/test_802_table_painter.py +0 -0
  798. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_08_addons/test_804_importer.py +0 -0
  799. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_08_addons/test_805_pycsg.py +0 -0
  800. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_08_addons/test_807_dwg_loader_basics.py +0 -0
  801. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_08_addons/test_810_drawing_properties.py +0 -0
  802. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_08_addons/test_811a_drawing_frontend.py +0 -0
  803. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_08_addons/test_811b_drawing_recorder.py +0 -0
  804. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_08_addons/test_811c_viewport_processing.py +0 -0
  805. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_08_addons/test_812_drawing_graphic_proxy.py +0 -0
  806. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_08_addons/test_813_geo_interface.py +0 -0
  807. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_08_addons/test_814_text2path.py +0 -0
  808. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_08_addons/test_815_dxf_browser.py +0 -0
  809. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_08_addons/test_816_bin_packing.py +0 -0
  810. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_08_addons/test_817_genetic_algorithm.py +0 -0
  811. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_08_addons/test_818_meshex.py +0 -0
  812. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_08_addons/test_819_menger_sponge.py +0 -0
  813. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_08_addons/test_820_openscad.py +0 -0
  814. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_08_addons/test_821_hpgl2.py +0 -0
  815. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_08_addons/test_821_hpgl2_polygon_encoded.py +0 -0
  816. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_08_addons/test_823_drawing_layout.py +0 -0
  817. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_08_addons/test_824_svg_drawing_backend.py +0 -0
  818. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_08_addons/test_825_hpgl2_drawing_backend.py +0 -0
  819. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_08_addons/test_826_custom_json_backend.py +0 -0
  820. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_08_addons/test_827_geojson_backend.py +0 -0
  821. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_09_cython_acceleration/test_901_acc_vec2.py +0 -0
  822. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_09_cython_acceleration/test_902_acc_vec3.py +0 -0
  823. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_09_cython_acceleration/test_903_acc_matrix44.py +0 -0
  824. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_09_cython_acceleration/test_904_acc_bezier4p.py +0 -0
  825. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_09_cython_acceleration/test_905_acc_bezier3p.py +0 -0
  826. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_09_cython_acceleration/test_906_acc_bspline.py +0 -0
  827. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_10_issues/test_issue_414_bbox_calculation.py +0 -0
  828. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_10_issues/test_issue_557_reload_dimension_text_style.py +0 -0
  829. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_10_issues/test_issue_574_flattening_error.py +0 -0
  830. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_10_issues/test_issue_589_incorrect_virtual_face3d.py +0 -0
  831. {ezdxf-1.3.0b1 → ezdxf-1.3.1}/tests/test_10_issues/test_issue_749_text_layout.py +0 -0
  832. {ezdxf-1.3.0b1 → 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.0b1
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
@@ -0,0 +1,48 @@
1
+ # Copyright (c) 2024, Manfred Moitzi
2
+ # License: MIT License
3
+ import pytest
4
+ import ezdxf
5
+
6
+ from ezdxf.document import Drawing
7
+ from ezdxf.math import Matrix44
8
+ from ezdxf.render.forms import cube
9
+ from ezdxf.acis.api import body_from_mesh, export_sab
10
+
11
+ FILENAME = "3dsolid.dxf"
12
+
13
+
14
+ @pytest.fixture
15
+ def doc():
16
+ acis_body = body_from_mesh(cube())
17
+ _doc = ezdxf.new()
18
+ msp = _doc.modelspace()
19
+ dxf_3dsolid = msp.add_3dsolid()
20
+ dxf_3dsolid.sab = export_sab([acis_body])
21
+ dxf_3dsolid.transform(Matrix44.translate(10, 11, 12))
22
+ return _doc
23
+
24
+
25
+ def test_apply_transformations_to_acis_entities(doc: Drawing):
26
+ # this is done automatically when exporting the DXF document
27
+ try:
28
+ doc.commit_pending_changes()
29
+ except Exception as e:
30
+ pytest.fail(f"commit_pending_changes() raises unexpected exception: {str(e)}")
31
+
32
+
33
+ def test_export_and_reload_transformed_acis_entities(tmp_path, doc: Drawing):
34
+ file_path = tmp_path / FILENAME
35
+ doc.saveas(file_path)
36
+ del doc
37
+
38
+ doc2 = ezdxf.readfile(file_path)
39
+ # Do not test the current implementation, this may change in the future:
40
+ solids = doc2.query("3DSOLID")
41
+ assert len(solids) == 1
42
+
43
+ dxf_3dsolid = solids[0]
44
+ assert len(dxf_3dsolid.sab) > 16
45
+
46
+
47
+ if __name__ == "__main__":
48
+ pytest.main([__file__])
@@ -0,0 +1,85 @@
1
+ # Copyright (c) 2024, Manfred Moitzi
2
+ # License: MIT License
3
+ import pytest
4
+
5
+ import ezdxf
6
+ import ezdxf.xref
7
+ from ezdxf.document import Drawing
8
+ from ezdxf.entities import Solid3d
9
+ from ezdxf.render import forms
10
+
11
+
12
+ def source_doc_R2007() -> Drawing:
13
+ doc = ezdxf.new("R2007")
14
+ msp = doc.modelspace()
15
+ forms.cube().render_3dsolid(msp)
16
+ return doc
17
+
18
+
19
+ def source_doc_R2013() -> Drawing:
20
+ doc = ezdxf.new("R2013")
21
+ msp = doc.modelspace()
22
+ forms.cube().render_3dsolid(msp)
23
+ return doc
24
+
25
+
26
+ def test_load_acis_from_R2007():
27
+ target_doc = ezdxf.new("R2007")
28
+ source_doc = source_doc_R2007()
29
+ source_msp = source_doc.modelspace()
30
+ source_cube = source_msp[0]
31
+ assert isinstance(source_cube, Solid3d)
32
+
33
+ ezdxf.xref.load_modelspace(source_doc, target_doc)
34
+
35
+ target_msp = target_doc.modelspace()
36
+ loaded_cube = target_msp[0]
37
+ assert isinstance(loaded_cube, Solid3d)
38
+ assert loaded_cube.sat == source_cube.sat
39
+
40
+
41
+ def test_load_acis_from_R2013():
42
+ target_doc = ezdxf.new("R2013")
43
+ source_doc = source_doc_R2013()
44
+ source_msp = source_doc.modelspace()
45
+ source_cube = source_msp[0]
46
+ assert isinstance(source_cube, Solid3d)
47
+
48
+ ezdxf.xref.load_modelspace(source_doc, target_doc)
49
+
50
+ target_msp = target_doc.modelspace()
51
+ loaded_cube = target_msp[0]
52
+ assert isinstance(loaded_cube, Solid3d)
53
+ sab = loaded_cube.sab
54
+ assert len(sab) > 1
55
+ assert sab == source_cube.sab
56
+
57
+
58
+ def test_load_acis_from_2007_into_2013():
59
+ target_doc = ezdxf.new("R2013") # SAB
60
+
61
+ source_doc = source_doc_R2007()
62
+ ezdxf.xref.load_modelspace(source_doc, target_doc)
63
+
64
+ target_msp = target_doc.modelspace()
65
+ loaded_cube = target_msp[0]
66
+ assert isinstance(loaded_cube, Solid3d)
67
+ assert len(loaded_cube.sat) == 0, "SAT data removed"
68
+ assert len(loaded_cube.sab) == 0
69
+
70
+
71
+ def test_load_acis_from_2013_into_2007():
72
+ target_doc = ezdxf.new("R2007") # SAT
73
+
74
+ source_doc = source_doc_R2013()
75
+ ezdxf.xref.load_modelspace(source_doc, target_doc)
76
+
77
+ target_msp = target_doc.modelspace()
78
+ loaded_cube = target_msp[0]
79
+ assert isinstance(loaded_cube, Solid3d)
80
+ assert len(loaded_cube.sat) == 0
81
+ assert len(loaded_cube.sab) == 0, "SAB data removed"
82
+
83
+
84
+ if __name__ == "__main__":
85
+ pytest.main([__file__])
@@ -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.
@@ -119,9 +120,7 @@ class AcisEntity(NoneEntity):
119
120
  self.restore_common(loader, entity_factory)
120
121
  self.restore_data(loader)
121
122
 
122
- def restore_common(
123
- self, loader: DataLoader, entity_factory: Factory
124
- ) -> None:
123
+ def restore_common(self, loader: DataLoader, entity_factory: Factory) -> None:
125
124
  """Load the common part of an ACIS entity."""
126
125
  pass
127
126
 
@@ -149,7 +148,7 @@ class AcisEntity(NoneEntity):
149
148
  pass
150
149
 
151
150
  def entities(self) -> Iterator[AcisEntity]:
152
- """Yield all attributes of this entity of type AcisEntity. """
151
+ """Yield all attributes of this entity of type AcisEntity."""
153
152
  for e in vars(self).values():
154
153
  if isinstance(e, AcisEntity):
155
154
  yield e
@@ -210,9 +209,7 @@ class AsmHeader(AcisEntity):
210
209
  def __init__(self, version: str = ""):
211
210
  self.version = version
212
211
 
213
- def restore_common(
214
- self, loader: DataLoader, entity_factory: Factory
215
- ) -> None:
212
+ def restore_common(self, loader: DataLoader, entity_factory: Factory) -> None:
216
213
  self.version = loader.read_str()
217
214
 
218
215
  def write_common(self, exporter: DataExporter) -> None:
@@ -222,9 +219,7 @@ class AsmHeader(AcisEntity):
222
219
  class SupportsPattern(AcisEntity):
223
220
  pattern: Pattern = NONE_REF
224
221
 
225
- def restore_common(
226
- self, loader: DataLoader, entity_factory: Factory
227
- ) -> None:
222
+ def restore_common(self, loader: DataLoader, entity_factory: Factory) -> None:
228
223
  if loader.version >= Features.PATTERN:
229
224
  self.pattern = restore_entity("pattern", loader, entity_factory)
230
225
 
@@ -238,11 +233,9 @@ class Body(SupportsPattern):
238
233
  pattern: Pattern = NONE_REF
239
234
  lump: Lump = NONE_REF
240
235
  wire: Wire = NONE_REF
241
- transform: "Transform" = NONE_REF
236
+ transform: Transform = NONE_REF
242
237
 
243
- def restore_common(
244
- self, loader: DataLoader, entity_factory: Factory
245
- ) -> None:
238
+ def restore_common(self, loader: DataLoader, entity_factory: Factory) -> None:
246
239
  super().restore_common(loader, entity_factory)
247
240
  self.lump = restore_entity("lump", loader, entity_factory)
248
241
  self.wire = restore_entity("wire", loader, entity_factory)
@@ -292,9 +285,7 @@ class Lump(SupportsPattern):
292
285
  shell: Shell = NONE_REF
293
286
  body: Body = NONE_REF
294
287
 
295
- def restore_common(
296
- self, loader: DataLoader, entity_factory: Factory
297
- ) -> None:
288
+ def restore_common(self, loader: DataLoader, entity_factory: Factory) -> None:
298
289
  super().restore_common(loader, entity_factory)
299
290
  self.next_lump = restore_entity("lump", loader, entity_factory)
300
291
  self.shell = restore_entity("shell", loader, entity_factory)
@@ -336,9 +327,7 @@ class Shell(SupportsPattern):
336
327
  wire: Wire = NONE_REF
337
328
  lump: Lump = NONE_REF
338
329
 
339
- def restore_common(
340
- self, loader: DataLoader, entity_factory: Factory
341
- ) -> None:
330
+ def restore_common(self, loader: DataLoader, entity_factory: Factory) -> None:
342
331
  super().restore_common(loader, entity_factory)
343
332
  self.next_shell = restore_entity("next_shell", loader, entity_factory)
344
333
  self.subshell = restore_entity("subshell", loader, entity_factory)
@@ -390,14 +379,10 @@ class Face(SupportsPattern):
390
379
  surface: Surface = NONE_REF
391
380
  # sense: face normal with respect to the surface
392
381
  sense = False # True = reversed; False = forward
393
- double_sided = (
394
- False # True = double (hollow body); False = single (solid body)
395
- )
382
+ double_sided = False # True = double (hollow body); False = single (solid body)
396
383
  containment = False # if double_sided: True = in, False = out
397
384
 
398
- def restore_common(
399
- self, loader: DataLoader, entity_factory: Factory
400
- ) -> None:
385
+ def restore_common(self, loader: DataLoader, entity_factory: Factory) -> None:
401
386
  super().restore_common(loader, entity_factory)
402
387
  self.next_face = restore_entity("face", loader, entity_factory)
403
388
  self.loop = restore_entity("loop", loader, entity_factory)
@@ -479,9 +464,7 @@ class Plane(Surface):
479
464
  # False: "forward_v" - the normal vector follows right-hand rule
480
465
  reverse_v = False
481
466
 
482
- def restore_common(
483
- self, loader: DataLoader, entity_factory: Factory
484
- ) -> None:
467
+ def restore_common(self, loader: DataLoader, entity_factory: Factory) -> None:
485
468
  super().restore_common(loader, entity_factory)
486
469
  self.origin = Vec3(loader.read_vec3())
487
470
  self.normal = Vec3(loader.read_vec3())
@@ -514,9 +497,7 @@ class Loop(SupportsPattern):
514
497
  coedge: Coedge = NONE_REF
515
498
  face: Face = NONE_REF # parent/owner
516
499
 
517
- def restore_common(
518
- self, loader: DataLoader, entity_factory: Factory
519
- ) -> None:
500
+ def restore_common(self, loader: DataLoader, entity_factory: Factory) -> None:
520
501
  super().restore_common(loader, entity_factory)
521
502
  self.next_loop = restore_entity("loop", loader, entity_factory)
522
503
  self.coedge = restore_entity("coedge", loader, entity_factory)
@@ -577,9 +558,7 @@ class Coedge(SupportsPattern):
577
558
  unknown: int = 0 # only in SAB file!?
578
559
  pcurve: PCurve = NONE_REF
579
560
 
580
- def restore_common(
581
- self, loader: DataLoader, entity_factory: Factory
582
- ) -> None:
561
+ def restore_common(self, loader: DataLoader, entity_factory: Factory) -> None:
583
562
  super().restore_common(loader, entity_factory)
584
563
  self.next_coedge = restore_entity("coedge", loader, entity_factory)
585
564
  self.prev_coedge = restore_entity("coedge", loader, entity_factory)
@@ -618,7 +597,7 @@ class Coedge(SupportsPattern):
618
597
  pass
619
598
 
620
599
  def partner_coedges(self) -> list[Coedge]:
621
- """Returns all partner coedges of this coedge without `self`. """
600
+ """Returns all partner coedges of this coedge without `self`."""
622
601
  coedges: list[Coedge] = []
623
602
  partner_coedge = self.partner_coedge
624
603
  if partner_coedge.is_none:
@@ -649,9 +628,7 @@ class Edge(SupportsPattern):
649
628
  sense: bool = False
650
629
  convexity: str = "unknown"
651
630
 
652
- def restore_common(
653
- self, loader: DataLoader, entity_factory: Factory
654
- ) -> None:
631
+ def restore_common(self, loader: DataLoader, entity_factory: Factory) -> None:
655
632
  super().restore_common(loader, entity_factory)
656
633
  self.start_vertex = restore_entity("vertex", loader, entity_factory)
657
634
  if loader.version >= Features.TOL_MODELING:
@@ -690,9 +667,7 @@ class Vertex(SupportsPattern):
690
667
  ref_count: int = 0 # only in SAB files
691
668
  point: Point = NONE_REF
692
669
 
693
- def restore_common(
694
- self, loader: DataLoader, entity_factory: Factory
695
- ) -> None:
670
+ def restore_common(self, loader: DataLoader, entity_factory: Factory) -> None:
696
671
  super().restore_common(loader, entity_factory)
697
672
  self.edge = restore_entity("edge", loader, entity_factory)
698
673
  self.ref_count = loader.read_int(skip_sat=0)
@@ -759,7 +734,7 @@ class Point(SupportsPattern):
759
734
 
760
735
 
761
736
  class FileLoader(abc.ABC):
762
- records: Sequence[Union[sat.SatEntity, sab.SabEntity]]
737
+ records: Sequence[sat.SatEntity | sab.SabEntity]
763
738
 
764
739
  def __init__(self, version: int):
765
740
  self.entities: dict[int, AcisEntity] = {}
@@ -796,7 +771,7 @@ class FileLoader(abc.ABC):
796
771
 
797
772
 
798
773
  class SabLoader(FileLoader):
799
- def __init__(self, data: Union[bytes, bytearray]):
774
+ def __init__(self, data: bytes | bytearray):
800
775
  builder = sab.parse_sab(data)
801
776
  super().__init__(builder.header.version)
802
777
  self.records = builder.entities
@@ -805,14 +780,14 @@ class SabLoader(FileLoader):
805
780
  return sab.SabDataLoader(data, self.version)
806
781
 
807
782
  @classmethod
808
- def load(cls, data: Union[bytes, bytearray]) -> list[Body]:
783
+ def load(cls, data: bytes | bytearray) -> list[Body]:
809
784
  loader = cls(data)
810
785
  loader.load_entities()
811
786
  return loader.bodies()
812
787
 
813
788
 
814
789
  class SatLoader(FileLoader):
815
- def __init__(self, data: Union[str, Sequence[str]]):
790
+ def __init__(self, data: str | Sequence[str]):
816
791
  builder = sat.parse_sat(data)
817
792
  super().__init__(builder.header.version)
818
793
  self.records = builder.entities
@@ -821,7 +796,7 @@ class SatLoader(FileLoader):
821
796
  return sat.SatDataLoader(data, self.version)
822
797
 
823
798
  @classmethod
824
- def load(cls, data: Union[str, Sequence[str]]) -> list[Body]:
799
+ def load(cls, data: str | Sequence[str]) -> list[Body]:
825
800
  loader = cls(data)
826
801
  loader.load_entities()
827
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):
@@ -6,7 +6,6 @@ from typing import (
6
6
  Optional,
7
7
  Iterable,
8
8
  Tuple,
9
- TYPE_CHECKING,
10
9
  Iterator,
11
10
  Callable,
12
11
  )
@@ -33,7 +32,7 @@ from ezdxf.tools.clipping_portal import (
33
32
  ClippingShape,
34
33
  find_best_clipping_shape,
35
34
  )
36
-
35
+ from ezdxf.layouts import Layout
37
36
  from .backend import BackendInterface, BkPath2d, BkPoints2d, ImageData
38
37
  from .config import LinePolicy, TextPolicy, ColorPolicy, Configuration
39
38
  from .properties import BackendProperties, Filling
@@ -41,9 +40,6 @@ from .properties import Properties, RenderContext
41
40
  from .type_hints import Color
42
41
  from .unified_text_renderer import UnifiedTextRenderer
43
42
 
44
- if TYPE_CHECKING:
45
- from ezdxf.layouts import Layout
46
-
47
43
  PatternKey: TypeAlias = Tuple[str, float]
48
44
  DrawEntitiesCallback: TypeAlias = Callable[[RenderContext, Iterable[DXFGraphic]], None]
49
45
 
@@ -242,7 +238,7 @@ class RenderPipeline2d(AbstractPipeline):
242
238
 
243
239
  def set_config(self, config: Configuration) -> None:
244
240
  self.backend.configure(config)
245
- self.config = config
241
+ self.config = config
246
242
  stage = self._pipeline
247
243
  while True:
248
244
  stage.set_config(config)
@@ -288,8 +284,18 @@ class RenderPipeline2d(AbstractPipeline):
288
284
  m = vp.get_transformation_matrix()
289
285
  clipping_path = make_path(vp)
290
286
  if len(clipping_path):
291
- # TODO: flatten clipping path! max_sagitta = ?
292
- clipping_shape = find_best_clipping_shape(clipping_path.control_vertices())
287
+ vertices = clipping_path.control_vertices()
288
+ if clipping_path.has_curves:
289
+ layout = vp.get_layout()
290
+ if isinstance(layout, Layout):
291
+ # plot paper units:
292
+ # 0: inches, max sagitta = 1/254 = 0.1 mm
293
+ # 1: millimeters, max sagitta = 0.1 mm
294
+ # 2: pixels, max sagitta = 0.1 pixel
295
+ units = layout.dxf.get("plot_paper_units", 1)
296
+ max_sagitta = 1.0 / 254.0 if units == 0 else 0.1
297
+ vertices = list(clipping_path.flattening(max_sagitta))
298
+ clipping_shape = find_best_clipping_shape(vertices)
293
299
  self.clipping_portal.push(clipping_shape, m)
294
300
  return True
295
301
  return False
@@ -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")