ezdxf 1.3.4rc0__zip → 1.3.5b0__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.
- {ezdxf-1.3.4rc0/src/ezdxf.egg-info → ezdxf-1.3.5b0}/PKG-INFO +1 -1
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/addons/odafc.py +16 -5
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/addons/openscad.py +12 -14
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/audit.py +26 -1
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/blkrefs.py +33 -2
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/entities/__init__.py +5 -1
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/entities/attrib.py +32 -5
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/entities/dictionary.py +1 -1
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/entities/dimension.py +5 -6
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/entities/insert.py +28 -4
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/layouts/base.py +3 -4
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/layouts/blocklayout.py +1 -1
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/layouts/layouts.py +10 -13
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/lldxf/const.py +4 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/math/bulge.py +6 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/math/rtree.py +2 -1
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/sections/blocks.py +30 -11
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/sections/table.py +2 -1
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/version.py +2 -2
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0/src/ezdxf.egg-info}/PKG-INFO +1 -1
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_02_dxf_graphics/test_208_attrib.py +23 -2
- ezdxf-1.3.5b0/tests/test_03_dxf_layouts/test_303_auto_block_references.py +188 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_04_dxf_high_level_structs/test_406_blocks_section.py +12 -4
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_04_dxf_high_level_structs/test_424_audit.py +40 -5
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_05_tools/test_524_block_reference_manager.py +28 -10
- ezdxf-1.3.4rc0/tests/test_03_dxf_layouts/test_303_auto_block_references.py +0 -97
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/LICENSE +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/MANIFEST.in +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/README.md +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/integration_tests/check_disable_c_ext_by_config_file.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/integration_tests/check_disable_c_ext_by_env_var.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/integration_tests/conftest.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/integration_tests/data/AC1003_LINE_Example.dxf +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/integration_tests/data/ASCII_R12.dxf +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/integration_tests/data/Leica_Disto_S910.dxf +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/integration_tests/data/MODEL.dxf +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/integration_tests/data/PLOTFILE.plt +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/integration_tests/data/POLI-ALL210_12.DXF +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/integration_tests/data/R12_with_trash_beyond_EOF.dxf +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/integration_tests/data/XRECORD_0.bin +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/integration_tests/data/XRECORD_1.bin +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/integration_tests/data/XRECORD_2.bin +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/integration_tests/data/acad_table_with_blk_ref.dxf +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/integration_tests/data/bin_dxf_r12.dxf +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/integration_tests/data/bin_dxf_r13.dxf +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/integration_tests/data/bin_dxf_r14.dxf +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/integration_tests/data/bin_dxf_r2000.dxf +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/integration_tests/data/cc_dxflib.dxf +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/integration_tests/data/custom_blocks.dxf +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/integration_tests/data/duplicate_handles.dxf +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/integration_tests/data/dxf_unicode.dxf +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/integration_tests/data/dynblks.zip +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/integration_tests/data/empty_handles.dxf +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/integration_tests/data/groups.dxf +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/integration_tests/data/issue1106.dxf +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/integration_tests/data/layout_broken_links.dxf +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/integration_tests/data/layout_broken_links_2.dxf +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/integration_tests/data/layout_missing_block_definition.dxf +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/integration_tests/data/layout_missing_block_record.dxf +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/integration_tests/data/mtext_columns_R2007.dxf +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/integration_tests/data/mtext_columns_R2018.dxf +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/integration_tests/data/mtext_framed_columns.dxf +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/integration_tests/data/mtext_text_frame.dxf +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/integration_tests/data/no_layouts.dxf +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/integration_tests/data/r12_blocks_with_no_names.dxf +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/integration_tests/data/r2000_blocks_with_no_name_and_no_block_record.dxf +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/integration_tests/data/r2000_blocks_with_no_names.dxf +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/integration_tests/data/recover01.dxf +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/integration_tests/data/recover02.dxf +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/integration_tests/data/small_r13.dxf +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/integration_tests/data/small_r14.dxf +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/integration_tests/test_acad_table.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/integration_tests/test_acis_entites.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/integration_tests/test_all_dimline_styles.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/integration_tests/test_all_ellipse_transformations.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/integration_tests/test_anonymous_blocks.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/integration_tests/test_appsettings.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/integration_tests/test_audit_critical_dxf_files.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/integration_tests/test_audit_layouts.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/integration_tests/test_complex_line_type_2.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/integration_tests/test_create_basic_graphics.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/integration_tests/test_document_guid.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/integration_tests/test_document_page_setup.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/integration_tests/test_dxf_info_scanning.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/integration_tests/test_dynblkhelper.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/integration_tests/test_entities_iterator.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/integration_tests/test_fix_dulicate_handles.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/integration_tests/test_geo.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/integration_tests/test_groups.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/integration_tests/test_hpgl2_addon.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/integration_tests/test_ignore_junk_beyond_EOF.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/integration_tests/test_launcher.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/integration_tests/test_load_dxf_unicode_notation.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/integration_tests/test_mapbox_earcut.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/integration_tests/test_missing_block_names.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/integration_tests/test_mtext_columns.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/integration_tests/test_mtext_explode_addon.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/integration_tests/test_mtext_text_frame.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/integration_tests/test_new_table_entries.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/integration_tests/test_none_ascii_read_write.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/integration_tests/test_odafc.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/integration_tests/test_open_R13_R14.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/integration_tests/test_open_binary_DXF_files.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/integration_tests/test_open_coord_order_issue.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/integration_tests/test_open_exotic_dxf_files.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/integration_tests/test_polyline_entity.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/integration_tests/test_preserve_binary_data_in_xrecords.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/integration_tests/test_r12_with_subclass_markers.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/integration_tests/test_r12export.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/integration_tests/test_r12strict.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/integration_tests/test_r12writer.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/integration_tests/test_read_file_without_handles.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/integration_tests/test_read_write_modern_entites.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/integration_tests/test_recover.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/integration_tests/test_redraw_order.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/integration_tests/test_rotated_block_attributes.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/integration_tests/test_surface_entities.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/integration_tests/test_write_fixed_meta_data.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/integration_tests/test_write_without_handles.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/integration_tests/test_xref_detach.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/integration_tests/test_xref_load_acis.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/pyproject.toml +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/requirements.txt +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/setup.cfg +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/setup.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/__init__.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/__main__.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/_options.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/acc/__init__.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/acc/bezier3p.pyx +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/acc/bezier4p.pyx +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/acc/bspline.pyx +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/acc/constants.h +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/acc/construct.pyx +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/acc/linetypes.pyx +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/acc/mapbox_earcut.pyx +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/acc/matrix44.pxd +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/acc/matrix44.pyx +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/acc/np_support.pyx +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/acc/vector.pxd +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/acc/vector.pyx +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/acis/__init__.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/acis/abstract.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/acis/api.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/acis/cache.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/acis/const.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/acis/dbg.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/acis/dxf.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/acis/entities.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/acis/hdr.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/acis/mesh.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/acis/sab.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/acis/sat.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/acis/type_hints.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/addons/__init__.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/addons/acadctb.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/addons/acisbrowser/__init__.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/addons/acisbrowser/browser.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/addons/acisbrowser/data.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/addons/binpacking.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/addons/browser/__init__.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/addons/browser/bookmarks.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/addons/browser/browser.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/addons/browser/data.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/addons/browser/find_dialog.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/addons/browser/loader.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/addons/browser/model.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/addons/browser/reflinks.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/addons/browser/tags.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/addons/browser/views.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/addons/dimlines.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/addons/drawing/__init__.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/addons/drawing/backend.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/addons/drawing/config.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/addons/drawing/debug_backend.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/addons/drawing/debug_utils.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/addons/drawing/dxf.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/addons/drawing/file_output.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/addons/drawing/frontend.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/addons/drawing/gfxproxy.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/addons/drawing/hpgl2.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/addons/drawing/json.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/addons/drawing/layout.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/addons/drawing/matplotlib.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/addons/drawing/mtext_complex.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/addons/drawing/pipeline.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/addons/drawing/properties.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/addons/drawing/pymupdf.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/addons/drawing/pyqt.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/addons/drawing/qtviewer.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/addons/drawing/recorder.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/addons/drawing/svg.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/addons/drawing/text.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/addons/drawing/text_renderer.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/addons/drawing/type_hints.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/addons/drawing/unified_text_renderer.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/addons/dwg/__init__.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/addons/dwg/classes_section.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/addons/dwg/const.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/addons/dwg/crc.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/addons/dwg/fileheader.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/addons/dwg/header_section.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/addons/dwg/loader.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/addons/dxf2code.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/addons/genetic_algorithm.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/addons/geo.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/addons/gerber_D6673.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/addons/hpgl2/__init__.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/addons/hpgl2/api.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/addons/hpgl2/backend.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/addons/hpgl2/deps.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/addons/hpgl2/interpreter.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/addons/hpgl2/page.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/addons/hpgl2/plotter.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/addons/hpgl2/polygon_buffer.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/addons/hpgl2/properties.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/addons/hpgl2/tokenizer.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/addons/hpgl2/viewer.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/addons/importer.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/addons/iterdxf.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/addons/menger_sponge.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/addons/meshex.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/addons/mixins.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/addons/mtextsurrogate.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/addons/mtxpl.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/addons/pycsg.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/addons/r12export.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/addons/r12writer.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/addons/sierpinski_pyramid.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/addons/tablepainter.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/addons/text2path.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/addons/xplayer.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/addons/xqt.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/appsettings.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/bbox.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/colors.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/commands.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/comments.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/disassemble.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/document.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/dwginfo.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/dynblkhelper.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/edgeminer.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/edgesmith.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/entities/acad_proxy_entity.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/entities/acad_table.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/entities/acad_xrec_roundtrip.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/entities/acis.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/entities/appdata.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/entities/appid.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/entities/arc.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/entities/block.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/entities/blockrecord.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/entities/boundary_paths.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/entities/circle.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/entities/copy.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/entities/dimstyle.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/entities/dimstyleoverride.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/entities/dxfclass.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/entities/dxfentity.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/entities/dxfgfx.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/entities/dxfgroups.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/entities/dxfns.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/entities/dxfobj.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/entities/ellipse.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/entities/factory.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/entities/geodata.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/entities/gradient.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/entities/hatch.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/entities/helix.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/entities/idbuffer.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/entities/image.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/entities/layer.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/entities/layout.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/entities/leader.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/entities/light.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/entities/line.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/entities/ltype.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/entities/lwpolyline.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/entities/material.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/entities/mesh.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/entities/mleader.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/entities/mline.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/entities/mpolygon.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/entities/mtext.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/entities/mtext_columns.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/entities/objectcollection.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/entities/oleframe.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/entities/pattern.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/entities/point.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/entities/polygon.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/entities/polyline.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/entities/shape.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/entities/solid.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/entities/spatial_filter.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/entities/spline.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/entities/subentity.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/entities/sun.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/entities/table.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/entities/temporary_transform.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/entities/text.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/entities/textstyle.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/entities/tolerance.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/entities/ucs.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/entities/underlay.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/entities/view.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/entities/viewport.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/entities/visualstyle.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/entities/vport.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/entities/xdata.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/entities/xdict.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/entities/xline.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/entitydb.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/enums.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/explode.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/eztypes.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/filemanagement.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/fonts/__init__.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/fonts/font_face.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/fonts/font_manager.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/fonts/font_measurements.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/fonts/font_synonyms.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/fonts/fonts.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/fonts/glyphs.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/fonts/lff.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/fonts/shapefile.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/fonts/ttfonts.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/gfxattribs.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/graphicsfactory.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/groupby.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/layouts/__init__.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/layouts/layout.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/lldxf/__init__.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/lldxf/attributes.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/lldxf/encoding.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/lldxf/extendedtags.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/lldxf/fileindex.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/lldxf/hdrvars.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/lldxf/loader.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/lldxf/packedtags.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/lldxf/repair.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/lldxf/tagger.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/lldxf/tags.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/lldxf/tagwriter.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/lldxf/types.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/lldxf/validator.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/math/__init__.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/math/_bezier3p.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/math/_bezier4p.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/math/_bspline.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/math/_construct.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/math/_ctypes.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/math/_mapbox_earcut.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/math/_matrix44.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/math/_vector.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/math/arc.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/math/bbox.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/math/bezier.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/math/bezier_interpolation.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/math/box.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/math/bspline.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/math/circle.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/math/clipping.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/math/clustering.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/math/construct2d.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/math/construct3d.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/math/cspline.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/math/curvetools.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/math/ellipse.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/math/eulerspiral.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/math/legacy.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/math/linalg.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/math/line.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/math/offset2d.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/math/parametrize.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/math/perlin.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/math/polyline.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/math/shape.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/math/transformtools.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/math/triangulation.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/math/ucs.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/messenger.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/msgtypes.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/npshapes.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/path/__init__.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/path/commands.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/path/converter.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/path/nesting.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/path/path.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/path/shapes.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/path/tools.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/protocols.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/proxygraphic.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/py.typed +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/query.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/queryparser.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/r12strict.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/recover.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/render/__init__.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/render/_linetypes.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/render/abstract_mtext_renderer.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/render/arrows.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/render/curves.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/render/dim_base.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/render/dim_curved.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/render/dim_diameter.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/render/dim_linear.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/render/dim_ordinate.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/render/dim_radius.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/render/dimension.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/render/forms.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/render/hatching.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/render/leader.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/render/linetypes.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/render/mesh.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/render/mleader.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/render/mline.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/render/point.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/render/polyline.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/render/r12spline.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/render/trace.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/reorder.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/resources/16x16.png +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/resources/24x24.png +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/resources/256x256.png +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/resources/32x32.png +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/resources/48x48.png +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/resources/64x64.png +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/resources/icon-copy-64px.png +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/resources/icon-find-64px.png +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/resources/icon-goto-bookmark-64px.png +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/resources/icon-goto-handle-64px.png +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/resources/icon-goto-line-64px.png +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/resources/icon-left-arrow-64px.png +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/resources/icon-next-entity-64px.png +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/resources/icon-prev-entity-64px.png +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/resources/icon-right-arrow-64px.png +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/resources/icon-show-in-tree-64px.png +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/resources/icon-store-bookmark-64px.png +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/revcloud.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/sections/__init__.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/sections/acdsdata.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/sections/classes.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/sections/entities.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/sections/header.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/sections/headervars.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/sections/objects.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/sections/tables.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/select.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/tools/__init__.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/tools/_iso_pattern.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/tools/analyze.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/tools/binarydata.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/tools/clipping_portal.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/tools/codepage.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/tools/complex_ltype.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/tools/crypt.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/tools/debug.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/tools/difftags.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/tools/handle.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/tools/indexing.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/tools/juliandate.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/tools/pattern.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/tools/rawloader.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/tools/standards.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/tools/strip.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/tools/test.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/tools/text.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/tools/text_layout.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/tools/text_size.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/tools/zipmanager.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/transform.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/units.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/upright.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/urecord.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/xclip.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/xref.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf/zoom.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf.egg-info/SOURCES.txt +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf.egg-info/dependency_links.txt +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf.egg-info/entry_points.txt +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf.egg-info/not-zip-safe +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf.egg-info/requires.txt +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/src/ezdxf.egg-info/top_level.txt +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/conftest.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_00_dxf_low_level_structs/test_001_dxf_types.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_00_dxf_low_level_structs/test_002_dxf_vertex.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_00_dxf_low_level_structs/test_003_dxf_binary_tag.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_00_dxf_low_level_structs/test_004_dxf_value.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_00_dxf_low_level_structs/test_005_packed_tags.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_00_dxf_low_level_structs/test_010_binary_data.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_00_dxf_low_level_structs/test_011_codepage.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_00_dxf_low_level_structs/test_012_crypt.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_00_dxf_low_level_structs/test_013_juliandate.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_00_dxf_low_level_structs/test_014_multi_tags_text.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_00_dxf_low_level_structs/test_015_entity_structure_validator.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_00_dxf_low_level_structs/test_016_encoding.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_00_dxf_low_level_structs/test_018_handle.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_00_dxf_low_level_structs/test_019_complex_line_type.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_00_dxf_low_level_structs/test_020_validators_and_fixer.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_00_dxf_low_level_structs/test_021_fix_line_coordinates.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_00_dxf_low_level_structs/test_022_set_flag_state.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_00_dxf_low_level_structs/test_023_fix_invalid_located_group_codes.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_00_dxf_low_level_structs/test_024_render_tag.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_00_dxf_low_level_structs/test_040_tags.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_00_dxf_low_level_structs/test_041_group_tags.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_00_dxf_low_level_structs/test_042_tags_loader.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_00_dxf_low_level_structs/test_043_filter_invalid_point_codes.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_00_dxf_low_level_structs/test_050_extended_tags.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_00_dxf_low_level_structs/test_051_load_dxf_structure.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_00_dxf_low_level_structs/test_052_tag_writer.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_00_dxf_low_level_structs/test_053_embedded_object_tags.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_00_dxf_low_level_structs/test_054_dxfattr.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_00_dxf_low_level_structs/test_055_recover_loader.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_00_dxf_low_level_structs/test_056_special_string_decoding.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_00_dxf_low_level_structs/test_057_group_code_mapping.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_00_dxf_low_level_structs/test_058_json_tags.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_01_dxf_entities/test_101_dxfnamespace.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_01_dxf_entities/test_102_appdata.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_01_dxf_entities/test_103_reactors.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_01_dxf_entities/test_104_extension_dict.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_01_dxf_entities/test_105_xdata.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_01_dxf_entities/test_110_dxfentity.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_01_dxf_entities/test_111_unknown_dxf_entity.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_01_dxf_entities/test_112a_dxfgfx.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_01_dxf_entities/test_112b_dxfobj.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_01_dxf_entities/test_113_dxfclass.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_01_dxf_entities/test_114_factory.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_01_dxf_entities/test_115_new_empty_drawing.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_01_dxf_entities/test_116_dictionary.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_01_dxf_entities/test_117_layer_table_entry.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_01_dxf_entities/test_118_appid_table_entry.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_01_dxf_entities/test_119_ucs_table_entry.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_01_dxf_entities/test_120_style_table_entry.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_01_dxf_entities/test_121_ltype_table_entry.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_01_dxf_entities/test_122_vport_table_entry.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_01_dxf_entities/test_123_view_table_entry.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_01_dxf_entities/test_124_dimstyle_table_entry.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_01_dxf_entities/test_125_image_def.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_01_dxf_entities/test_126_image_def_reactor.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_01_dxf_entities/test_127_raster_variables.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_01_dxf_entities/test_128_pdf_definition.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_01_dxf_entities/test_129_xrecord.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_01_dxf_entities/test_130_id_buffer.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_01_dxf_entities/test_131_field_list.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_01_dxf_entities/test_132_layer_filter.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_01_dxf_entities/test_133_sun.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_01_dxf_entities/test_134_material.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_01_dxf_entities/test_135_geo_data.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_01_dxf_entities/test_136_vba_project.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_01_dxf_entities/test_137_sortentstable.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_01_dxf_entities/test_138_setup_visual_styles.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_01_dxf_entities/test_139_user_record.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_01_dxf_entities/test_140_block_record.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_01_dxf_entities/test_141_layer_vp_override.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_01_dxf_entities/test_142_copy_strategy.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_01_dxf_entities/test_143_spatial_filter.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_01_dxf_entities/test_144_roundtrip_xrecord.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_02_dxf_graphics/conftest.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_02_dxf_graphics/test_200_line.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_02_dxf_graphics/test_201_point.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_02_dxf_graphics/test_202_circle.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_02_dxf_graphics/test_203_arc.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_02_dxf_graphics/test_204_shape.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_02_dxf_graphics/test_205_solid.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_02_dxf_graphics/test_206_text.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_02_dxf_graphics/test_207_attdef.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_02_dxf_graphics/test_209_vertex.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_02_dxf_graphics/test_210_polyline_1.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_02_dxf_graphics/test_210_polyline_2.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_02_dxf_graphics/test_210_polyline_explode.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_02_dxf_graphics/test_210_polyline_vertex_attributes.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_02_dxf_graphics/test_211_viewport.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_02_dxf_graphics/test_212_insert.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_02_dxf_graphics/test_213_minsert.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_02_dxf_graphics/test_214_block.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_02_dxf_graphics/test_215_dimension.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_02_dxf_graphics/test_216_dimlines_R12.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_02_dxf_graphics/test_217_dimlines_R2000.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_02_dxf_graphics/test_218_poly_line_mesh_face.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_02_dxf_graphics/test_219_dxf_r2000_generics.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_02_dxf_graphics/test_220_lwpolyline_1.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_02_dxf_graphics/test_220_lwpolyline_2.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_02_dxf_graphics/test_220_lwpolyline_3.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_02_dxf_graphics/test_220_lwpolyline_explode.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_02_dxf_graphics/test_221_ellipse.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_02_dxf_graphics/test_222_xline.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_02_dxf_graphics/test_223_ray.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_02_dxf_graphics/test_224_group.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_02_dxf_graphics/test_225_mtext.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_02_dxf_graphics/test_226_spline.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_02_dxf_graphics/test_226_spline_with_linear_segments.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_02_dxf_graphics/test_227_mesh_packed_data.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_02_dxf_graphics/test_228_mesh.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_02_dxf_graphics/test_229a_hatch_dxf_interface.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_02_dxf_graphics/test_229b_hatch_extended.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_02_dxf_graphics/test_229c_hatch_transformations.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_02_dxf_graphics/test_230a_image_as_virtual_entity.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_02_dxf_graphics/test_230b_image_in_layout_context.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_02_dxf_graphics/test_231_underlay.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_02_dxf_graphics/test_231_underlay_2.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_02_dxf_graphics/test_232a_add_acis.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_02_dxf_graphics/test_232b_acis_export.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_02_dxf_graphics/test_232c_acis_surface.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_02_dxf_graphics/test_232d_acis_copy.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_02_dxf_graphics/test_232e_acis_transform.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_02_dxf_graphics/test_233_helix.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_02_dxf_graphics/test_234_light.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_02_dxf_graphics/test_235_leader.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_02_dxf_graphics/test_236_multileader.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_02_dxf_graphics/test_237_mline.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_02_dxf_graphics/test_238_tolerance.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_02_dxf_graphics/test_239_proxy_graphic.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_02_dxf_graphics/test_240_arc_dimension.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_02_dxf_graphics/test_241_hyperlink.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_02_dxf_graphics/test_242_random_transform.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_02_dxf_graphics/test_243_replace_entity.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_02_dxf_graphics/test_244_large_radial_dimension.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_02_dxf_graphics/test_245_wipeout.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_02_dxf_graphics/test_246_spline_audit.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_02_dxf_graphics/test_247_mtext_columns_R2018.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_02_dxf_graphics/test_248_mpolygon.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_02_dxf_graphics/test_248_mtext_linked_columns_R2000_to_R2013.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_02_dxf_graphics/test_249_boundary_paths.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_02_dxf_graphics/test_250_virtual_boundary_path_entities.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_02_dxf_graphics/test_251_upright.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_02_dxf_graphics/test_252_acad_proxy_entity.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_02_dxf_graphics/test_253_ole2frame.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_02_dxf_graphics/test_254_get_font_name.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_03_dxf_layouts/test_300_layout.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_03_dxf_layouts/test_301_add_gfx_to_layout.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_03_dxf_layouts/test_302_block_references.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_03_dxf_layouts/test_304_new_entity_space.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_03_dxf_layouts/test_305_copy_and_move_entity_to_layout.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_03_dxf_layouts/test_306_copy_linked_entities.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_03_dxf_layouts/test_307_groupby.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_03_dxf_layouts/test_308_query.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_03_dxf_layouts/test_309_query_parser.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_03_dxf_layouts/test_311_add_foreign_entity.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_03_dxf_layouts/test_312_virtual_layout.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_03_dxf_layouts/test_313_redraw_order.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_04_dxf_high_level_structs/test_401_headersection.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_04_dxf_high_level_structs/test_402_classessection.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_04_dxf_high_level_structs/test_403_entity_database.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_04_dxf_high_level_structs/test_404a_tables.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_04_dxf_high_level_structs/test_404b_object_collections.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_04_dxf_high_level_structs/test_405_classes.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_04_dxf_high_level_structs/test_407_entity_section.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_04_dxf_high_level_structs/test_408_objects_section.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_04_dxf_high_level_structs/test_409_create_objects.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_04_dxf_high_level_structs/test_410_table.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_04_dxf_high_level_structs/test_411_acds_data.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_04_dxf_high_level_structs/test_412_rename_layer.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_04_dxf_high_level_structs/test_413_dxfgroups.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_04_dxf_high_level_structs/test_414_block_reference_content.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_04_dxf_high_level_structs/test_415_layout_management.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_04_dxf_high_level_structs/test_416a_disassemble.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_04_dxf_high_level_structs/test_416b_recursive_decompose.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_04_dxf_high_level_structs/test_417_bbox.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_04_dxf_high_level_structs/test_418_copy_entities.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_04_dxf_high_level_structs/test_420_load_dxf_file.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_04_dxf_high_level_structs/test_421_new_drawings.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_04_dxf_high_level_structs/test_422_drawing_object.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_04_dxf_high_level_structs/test_423_read_proe_r2004.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_04_dxf_high_level_structs/test_425_limits_and_extents.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_04_dxf_high_level_structs/test_426_ezdxf_metadata.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_04_dxf_high_level_structs/test_427_appsettings.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_04_dxf_high_level_structs/test_428_r12_name_translator.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_04_dxf_high_level_structs/test_429_xclip.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_05_tools/conftest.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_05_tools/test_500_units.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_05_tools/test_501_truecolor.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_05_tools/test_502_raw_color.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_05_tools/test_503_indexing.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_05_tools/test_504_suppress_zeros.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_05_tools/test_506_version.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_05_tools/test_508_read_zip.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_05_tools/test_509_comments.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_05_tools/test_510_byte_stream.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_05_tools/test_511_bit_stream.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_05_tools/test_512_pattern.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_05_tools/test_513_reorder_entities.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_05_tools/test_514_text.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_05_tools/test_515a_fonts_truetype.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_05_tools/test_515b_fonts_shapefiles.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_05_tools/test_515c_fonts_lff.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_05_tools/test_516_zoom.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_05_tools/test_517_text_layout.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_05_tools/test_518_header_guid.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_05_tools/test_519_mtext_editor.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_05_tools/test_520_mtext_context.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_05_tools/test_521_mtext_parser.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_05_tools/test_522_text_scanner.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_05_tools/test_523_text_size.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_05_tools/test_525_transparency.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_05_tools/test_526_explode.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_05_tools/test_527_gfxattribs.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_05_tools/test_528_difftags.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_05_tools/test_529_acis_sat.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_05_tools/test_530_acis_sab.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_05_tools/test_531_acis_entities.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_05_tools/test_532_acis_mesh.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_05_tools/test_533_shapefiles.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_05_tools/test_534_dwg_info.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_05_tools/test_535_xref_basic.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_05_tools/test_536_xref_conflict.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_05_tools/test_537_transform.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_05_tools/test_538_scale_mtext_inline_commands.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_05_tools/test_539_npshapes.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_05_tools/test_540_lff_parser.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_05_tools/test_541_clipping_portal.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_05_tools/test_542_itertools.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_05_tools/test_543_select.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_05_tools/test_544_revcloud.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_05_tools/test_545_acis_cache.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_05_tools/test_546_edgeminer.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_05_tools/test_547_edgesmith.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_06_math/conftest.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_06_math/test_600_base.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_06_math/test_601_bulge.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_06_math/test_602_vec3.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_06_math/test_603_vec2.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_06_math/test_604_banded_matrix.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_06_math/test_604_linalg.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_06_math/test_605_matrix44.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_06_math/test_606_convexhull.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_06_math/test_607_perlin_noise.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_06_math/test_608_intersection_line_line_2d.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_06_math/test_609_point_on_line.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_06_math/test_610_ocs.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_06_math/test_611_ucs.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_06_math/test_612_ucs_pass_trough.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_06_math/test_613_is_point_in_polygon_2d.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_06_math/test_614_construct_3d.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_06_math/test_615_rytz_axis.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_06_math/test_616_plane.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_06_math/test_617_clockwise_orientation.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_06_math/test_618_clipping.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_06_math/test_619_greiner_hormann.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_06_math/test_620_knot.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_06_math/test_621_bspline.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_06_math/test_622_bsplineu.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_06_math/test_623_rbspline.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_06_math/test_624_global_bspline_interpolation.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_06_math/test_626_local_bspline_interpolation.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_06_math/test_627_bspline_basis.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_06_math/test_629_bezier.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_06_math/test_630a_bezier4p_base.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_06_math/test_630b_bezier4p_functions.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_06_math/test_631_euler_spiral.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_06_math/test_632_bezier3p.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_06_math/test_640_bbox.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_06_math/test_641_construction_ray.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_06_math/test_642_construction_line.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_06_math/test_643_construction_box.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_06_math/test_644_construction_circle.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_06_math/test_645_construction_arc.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_06_math/test_646_offset_vertices_2d.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_06_math/test_647_transform_tools.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_06_math/test_648_construction_ellipse.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_06_math/test_650_elliptic_arc_span.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_06_math/test_651_construction_polyline.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_06_math/test_652_approx_param_t.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_06_math/test_653_polyline_intersection.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_06_math/test_654_rtree.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_06_math/test_655_dbscan.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_06_math/test_656_k_means.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_06_math/test_657_mapbox_earcut.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_06_math/test_658_bevel_tools.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_06_math/test_659_intersection_line_polygon_3d.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_06_math/test_660_intersection_ray_polygon_3d.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_06_math/test_661_is_face_normal_pointing_outwards.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_06_math/test_662_is_convex_polygon_2d.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_06_math/test_663_is_axes_aligned_rectange.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_06_math/test_664_concave_clipping_polygon.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_06_math/test_665_inverted_clipping_polygon.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_06_math/test_666_wgs84_transform.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_07_render/test_701_arrows.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_07_render/test_702_render_forms.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_07_render/test_703_mesh_builder.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_07_render/test_704_render_linear_dimension.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_07_render/test_705_shape.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_07_render/test_706_random_path.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_07_render/test_707_trace.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_07_render/test_708a_path.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_07_render/test_708b_path_tools.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_07_render/test_708c_matplotlib_path_tools.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_07_render/test_708d_qpainter_path_tools.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_07_render/test_708e_path_shapes.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_07_render/test_708f_path_nesting.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_07_render/test_709_linetype_renderer.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_07_render/test_711_points.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_07_render/test_712_render_curved_dimension.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_07_render/test_713_mleader_builder.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_07_render/test_714_mleader_render_engine.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_07_render/test_715_hatching.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_07_render/test_715_issue_747_explode_3d_dim.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_08_addons/test_800_mtext_surrogate.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_08_addons/test_801_r12spline.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_08_addons/test_802_table_painter.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_08_addons/test_803_entities_to_code.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_08_addons/test_804_importer.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_08_addons/test_805_pycsg.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_08_addons/test_806_acadctb.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_08_addons/test_807_dwg_loader_basics.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_08_addons/test_810_drawing_properties.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_08_addons/test_811a_drawing_frontend.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_08_addons/test_811b_drawing_recorder.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_08_addons/test_811c_viewport_processing.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_08_addons/test_812_drawing_graphic_proxy.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_08_addons/test_813_geo_interface.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_08_addons/test_814_text2path.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_08_addons/test_815_dxf_browser.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_08_addons/test_816_bin_packing.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_08_addons/test_817_genetic_algorithm.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_08_addons/test_818_meshex.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_08_addons/test_819_menger_sponge.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_08_addons/test_820_openscad.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_08_addons/test_821_hpgl2.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_08_addons/test_821_hpgl2_polygon_encoded.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_08_addons/test_823_drawing_layout.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_08_addons/test_824_svg_drawing_backend.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_08_addons/test_825_hpgl2_drawing_backend.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_08_addons/test_826_custom_json_backend.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_08_addons/test_827_geojson_backend.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_09_cython_acceleration/test_901_acc_vec2.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_09_cython_acceleration/test_902_acc_vec3.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_09_cython_acceleration/test_903_acc_matrix44.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_09_cython_acceleration/test_904_acc_bezier4p.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_09_cython_acceleration/test_905_acc_bezier3p.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_09_cython_acceleration/test_906_acc_bspline.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_10_issues/test_issue_1078_bbox_calculation.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_10_issues/test_issue_414_bbox_calculation.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_10_issues/test_issue_557_reload_dimension_text_style.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_10_issues/test_issue_574_flattening_error.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_10_issues/test_issue_589_incorrect_virtual_face3d.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_10_issues/test_issue_749_text_layout.py +0 -0
- {ezdxf-1.3.4rc0 → ezdxf-1.3.5b0}/tests/test_10_issues/test_issue_873_circle_inverted_normal.py +0 -0
|
@@ -23,8 +23,6 @@ from ezdxf.lldxf.validator import (
|
|
|
23
23
|
)
|
|
24
24
|
|
|
25
25
|
logger = logging.getLogger("ezdxf")
|
|
26
|
-
win_exec_path = ezdxf.options.get("odafc-addon", "win_exec_path").strip('"')
|
|
27
|
-
unix_exec_path = ezdxf.options.get("odafc-addon", "unix_exec_path").strip('"')
|
|
28
26
|
|
|
29
27
|
|
|
30
28
|
class ODAFCError(IOError):
|
|
@@ -93,14 +91,23 @@ LINUX = "Linux"
|
|
|
93
91
|
DARWIN = "Darwin"
|
|
94
92
|
|
|
95
93
|
|
|
94
|
+
def get_win_exec_path() -> str:
|
|
95
|
+
return ezdxf.options.get("odafc-addon", "win_exec_path").strip('"')
|
|
96
|
+
|
|
97
|
+
|
|
98
|
+
def get_unix_exec_path() -> str:
|
|
99
|
+
return ezdxf.options.get("odafc-addon", "unix_exec_path").strip('"')
|
|
100
|
+
|
|
101
|
+
|
|
96
102
|
def is_installed() -> bool:
|
|
97
103
|
"""Returns ``True`` if the ODAFileConverter is installed."""
|
|
98
104
|
if platform.system() in (LINUX, DARWIN):
|
|
105
|
+
unix_exec_path = get_unix_exec_path()
|
|
99
106
|
if unix_exec_path and Path(unix_exec_path).is_file():
|
|
100
107
|
return True
|
|
101
108
|
return shutil.which("ODAFileConverter") is not None
|
|
102
109
|
# Windows:
|
|
103
|
-
return os.path.exists(
|
|
110
|
+
return os.path.exists(get_win_exec_path())
|
|
104
111
|
|
|
105
112
|
|
|
106
113
|
def map_version(version: str) -> str:
|
|
@@ -371,6 +378,8 @@ def _get_odafc_path(system: str) -> str:
|
|
|
371
378
|
# return this path as exec path.
|
|
372
379
|
# This may help if the "which" command can not find the "ODAFileConverter"
|
|
373
380
|
# command and also adds support for AppImages provided by ODA.
|
|
381
|
+
unix_exec_path = get_unix_exec_path()
|
|
382
|
+
|
|
374
383
|
if system != WINDOWS and unix_exec_path:
|
|
375
384
|
if Path(unix_exec_path).is_file():
|
|
376
385
|
return unix_exec_path
|
|
@@ -381,7 +390,7 @@ def _get_odafc_path(system: str) -> str:
|
|
|
381
390
|
|
|
382
391
|
path = shutil.which("ODAFileConverter")
|
|
383
392
|
if not path and system == WINDOWS:
|
|
384
|
-
path =
|
|
393
|
+
path = get_win_exec_path()
|
|
385
394
|
if not Path(path).is_file():
|
|
386
395
|
path = None
|
|
387
396
|
|
|
@@ -434,7 +443,9 @@ def _run_with_no_gui(
|
|
|
434
443
|
with _linux_dummy_display() as display:
|
|
435
444
|
env = os.environ.copy()
|
|
436
445
|
env["DISPLAY"] = display
|
|
437
|
-
proc = subprocess.run(
|
|
446
|
+
proc = subprocess.run(
|
|
447
|
+
[command] + arguments, text=True, capture_output=True, env=env
|
|
448
|
+
)
|
|
438
449
|
|
|
439
450
|
elif system == DARWIN:
|
|
440
451
|
# TODO: unknown how to prevent the GUI from appearing on macOS
|
|
@@ -16,18 +16,13 @@ from ezdxf.render import MeshBuilder, MeshTransformer
|
|
|
16
16
|
from ezdxf.addons import meshex
|
|
17
17
|
|
|
18
18
|
|
|
19
|
-
DEFAULT_WIN_OPENSCAD_PATH = ezdxf.options.get(
|
|
20
|
-
"openscad-addon", "win_exec_path"
|
|
21
|
-
).strip('"')
|
|
22
|
-
CMD = "openscad"
|
|
23
|
-
|
|
24
|
-
|
|
25
19
|
class Operation(enum.Enum):
|
|
26
20
|
union = 0
|
|
27
21
|
difference = 1
|
|
28
22
|
intersection = 2
|
|
29
23
|
|
|
30
24
|
|
|
25
|
+
CMD = "openscad"
|
|
31
26
|
UNION = Operation.union
|
|
32
27
|
DIFFERENCE = Operation.difference
|
|
33
28
|
INTERSECTION = Operation.intersection
|
|
@@ -37,16 +32,21 @@ def get_openscad_path() -> str:
|
|
|
37
32
|
if platform.system() in ("Linux", "Darwin"):
|
|
38
33
|
return CMD
|
|
39
34
|
else:
|
|
40
|
-
return
|
|
35
|
+
return ezdxf.options.get("openscad-addon", "win_exec_path").strip('"')
|
|
41
36
|
|
|
42
37
|
|
|
43
38
|
def is_installed() -> bool:
|
|
44
|
-
|
|
45
|
-
|
|
39
|
+
"""Returns ``True`` if OpenSCAD is installed.
|
|
40
|
+
|
|
41
|
+
Searches on Windows the path stored in the options as "win_exec_path" in section
|
|
42
|
+
"[openscad-addon]" which is "C:\\Program Files\\OpenSCAD\\openscad.exe" by default.
|
|
43
|
+
|
|
44
|
+
Searches the "openscad" command on Linux and macOS.
|
|
45
|
+
|
|
46
46
|
"""
|
|
47
47
|
if platform.system() in ("Linux", "Darwin"):
|
|
48
48
|
return shutil.which(CMD) is not None
|
|
49
|
-
return Path(
|
|
49
|
+
return Path(get_openscad_path()).exists()
|
|
50
50
|
|
|
51
51
|
|
|
52
52
|
def run(script: str, exec_path: Optional[str] = None) -> MeshTransformer:
|
|
@@ -94,7 +94,7 @@ def run(script: str, exec_path: Optional[str] = None) -> MeshTransformer:
|
|
|
94
94
|
def str_matrix44(m: Matrix44) -> str:
|
|
95
95
|
# OpenSCAD uses column major order!
|
|
96
96
|
import numpy as np
|
|
97
|
-
|
|
97
|
+
|
|
98
98
|
def cleanup(values: Iterable) -> Iterable:
|
|
99
99
|
for value in values:
|
|
100
100
|
if isinstance(value, np.float64):
|
|
@@ -295,9 +295,7 @@ class Script:
|
|
|
295
295
|
return "\n".join(self.data)
|
|
296
296
|
|
|
297
297
|
|
|
298
|
-
def boolean_operation(
|
|
299
|
-
op: Operation, mesh1: MeshBuilder, mesh2: MeshBuilder
|
|
300
|
-
) -> str:
|
|
298
|
+
def boolean_operation(op: Operation, mesh1: MeshBuilder, mesh2: MeshBuilder) -> str:
|
|
301
299
|
"""Returns an `OpenSCAD`_ script to apply the given boolean operation to the
|
|
302
300
|
given meshes.
|
|
303
301
|
|
|
@@ -42,6 +42,8 @@ class AuditError(IntEnum):
|
|
|
42
42
|
MISPLACED_ROOT_DICT = 14
|
|
43
43
|
ROOT_DICT_NOT_FOUND = 15
|
|
44
44
|
REMOVED_ENTITY_WITH_INVALID_OWNER_HANDLE = 16
|
|
45
|
+
MODELSPACE_NOT_FOUND = 17
|
|
46
|
+
ACTIVE_PAPERSPACE_LAYOUT_NOT_FOUND = 18
|
|
45
47
|
|
|
46
48
|
UNDEFINED_LINETYPE = 100
|
|
47
49
|
UNDEFINED_DIMENSION_STYLE = 101
|
|
@@ -91,6 +93,7 @@ class AuditError(IntEnum):
|
|
|
91
93
|
INVALID_CREASE_VALUE_COUNT = 224
|
|
92
94
|
INVALID_ELLIPSE_RATIO = 225
|
|
93
95
|
INVALID_HATCH_BOUNDARY_PATH = 226
|
|
96
|
+
TAG_ATTRIBUTE_MISSING = 227
|
|
94
97
|
|
|
95
98
|
|
|
96
99
|
REQUIRED_ROOT_DICT_ENTRIES = ("ACAD_GROUP", "ACAD_PLOTSTYLENAME")
|
|
@@ -109,7 +112,7 @@ class ErrorEntry:
|
|
|
109
112
|
self.message: str = message # error message
|
|
110
113
|
self.data: Any = data # additional data as an arbitrary object
|
|
111
114
|
|
|
112
|
-
|
|
115
|
+
|
|
113
116
|
class Auditor:
|
|
114
117
|
def __init__(self, doc: Drawing) -> None:
|
|
115
118
|
assert doc is not None and doc.rootdict is not None and doc.entitydb is not None
|
|
@@ -237,6 +240,8 @@ class Auditor:
|
|
|
237
240
|
return self.errors
|
|
238
241
|
self.doc.entitydb.audit(self)
|
|
239
242
|
self.check_root_dict_entries()
|
|
243
|
+
self.check_modelspace_exist()
|
|
244
|
+
self.check_active_layout_exist()
|
|
240
245
|
self.check_tables()
|
|
241
246
|
self.doc.objects.audit(self)
|
|
242
247
|
self.doc.blocks.audit(self)
|
|
@@ -296,6 +301,26 @@ class Auditor:
|
|
|
296
301
|
dxf_entity=rootdict,
|
|
297
302
|
)
|
|
298
303
|
|
|
304
|
+
def check_modelspace_exist(self) -> None:
|
|
305
|
+
msp = self.doc.modelspace()
|
|
306
|
+
if not msp.is_alive:
|
|
307
|
+
self.add_error(
|
|
308
|
+
code=AuditError.MODELSPACE_NOT_FOUND,
|
|
309
|
+
message=f"Required modelspace layout not found.",
|
|
310
|
+
)
|
|
311
|
+
|
|
312
|
+
def check_active_layout_exist(self) -> None:
|
|
313
|
+
try:
|
|
314
|
+
layout = self.doc.active_layout()
|
|
315
|
+
except const.DXFStructureError:
|
|
316
|
+
layout = None # type: ignore
|
|
317
|
+
|
|
318
|
+
if layout is None or layout.is_alive is False:
|
|
319
|
+
self.add_error(
|
|
320
|
+
code=AuditError.ACTIVE_PAPERSPACE_LAYOUT_NOT_FOUND,
|
|
321
|
+
message=f"Required active paperspace layout not found.",
|
|
322
|
+
)
|
|
323
|
+
|
|
299
324
|
def check_tables(self) -> None:
|
|
300
325
|
table_section = self.doc.tables
|
|
301
326
|
table_section.viewports.audit(self)
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# Copyright (c) 2021-
|
|
1
|
+
# Copyright (c) 2021-2024, Manfred Moitzi
|
|
2
2
|
# License: MIT License
|
|
3
3
|
from __future__ import annotations
|
|
4
4
|
from typing import TYPE_CHECKING, Iterable, Optional, Iterator
|
|
@@ -12,7 +12,7 @@ if TYPE_CHECKING:
|
|
|
12
12
|
from ezdxf.lldxf.tags import Tags
|
|
13
13
|
from ezdxf.entities import DXFEntity, BlockRecord
|
|
14
14
|
|
|
15
|
-
__all__ = ["BlockDefinitionIndex", "BlockReferenceCounter"]
|
|
15
|
+
__all__ = ["BlockDefinitionIndex", "BlockReferenceCounter", "find_unreferenced_blocks"]
|
|
16
16
|
|
|
17
17
|
"""
|
|
18
18
|
Where are block references located:
|
|
@@ -207,3 +207,34 @@ def header_section_handles(doc: "Drawing") -> Iterable[str]:
|
|
|
207
207
|
block = doc.blocks.get(blk_name, None)
|
|
208
208
|
if block is not None:
|
|
209
209
|
yield block.block_record.dxf.handle
|
|
210
|
+
|
|
211
|
+
|
|
212
|
+
def find_unreferenced_blocks(doc: Drawing) -> set[str]:
|
|
213
|
+
"""Returns the names of all block definitions without references.
|
|
214
|
+
|
|
215
|
+
.. warning::
|
|
216
|
+
|
|
217
|
+
The DXF reference does not document all uses of blocks. The INSERT entity is
|
|
218
|
+
just one explicit use case, but there are also many indirect block references
|
|
219
|
+
and the customizability of DXF allows you to store block names and handles in
|
|
220
|
+
many places.
|
|
221
|
+
|
|
222
|
+
There are some rules for storing names and handles and this module checks all of
|
|
223
|
+
these known rules, but there is no guarantee that everyone follows these rules.
|
|
224
|
+
|
|
225
|
+
Therefore, it is still possible to destroy a DXF document by deleting an
|
|
226
|
+
absolutely necessary block definition.
|
|
227
|
+
|
|
228
|
+
.. versionadded:: 1.3.5
|
|
229
|
+
|
|
230
|
+
"""
|
|
231
|
+
ref_counter = BlockReferenceCounter(doc)
|
|
232
|
+
unreferenced_blocks: set[str] = set()
|
|
233
|
+
|
|
234
|
+
for block in doc.blocks:
|
|
235
|
+
if not block.is_alive or block.is_any_layout:
|
|
236
|
+
continue
|
|
237
|
+
count = ref_counter.by_name(block.name)
|
|
238
|
+
if count == 0:
|
|
239
|
+
unreferenced_blocks.add(block.name)
|
|
240
|
+
return unreferenced_blocks
|
|
@@ -100,7 +100,11 @@ from .mleader import MLeader, MLeaderStyle, MLeaderStyleCollection, MultiLeader
|
|
|
100
100
|
# register graphical entities R2007
|
|
101
101
|
|
|
102
102
|
from .light import Light
|
|
103
|
-
from .acad_table import
|
|
103
|
+
from .acad_table import (
|
|
104
|
+
AcadTableBlockContent,
|
|
105
|
+
acad_table_to_block,
|
|
106
|
+
read_acad_table_content,
|
|
107
|
+
)
|
|
104
108
|
|
|
105
109
|
# register graphical entities R2010
|
|
106
110
|
|
|
@@ -4,6 +4,8 @@ from __future__ import annotations
|
|
|
4
4
|
from typing import TYPE_CHECKING, Optional
|
|
5
5
|
from typing_extensions import Self
|
|
6
6
|
import copy
|
|
7
|
+
|
|
8
|
+
from ezdxf.audit import Auditor, AuditError
|
|
7
9
|
from ezdxf.lldxf import validator
|
|
8
10
|
from ezdxf.math import NULLVEC, Vec3, Z_AXIS, OCS, Matrix44
|
|
9
11
|
from ezdxf.lldxf.attributes import (
|
|
@@ -40,7 +42,6 @@ from .copy import default_copy
|
|
|
40
42
|
if TYPE_CHECKING:
|
|
41
43
|
from ezdxf.lldxf.tagwriter import AbstractTagWriter
|
|
42
44
|
from ezdxf.lldxf.tags import Tags
|
|
43
|
-
from ezdxf.entities import DXFEntity
|
|
44
45
|
from ezdxf import xref
|
|
45
46
|
|
|
46
47
|
|
|
@@ -81,6 +82,7 @@ attrib_fields = {
|
|
|
81
82
|
# ezdxf stores the last group code 280 as "lock_position" attribute and does
|
|
82
83
|
# not export a version tag for any DXF version.
|
|
83
84
|
# Tag string (cannot contain spaces):
|
|
85
|
+
# Mandatory by AutoCAD!
|
|
84
86
|
"tag": DXFAttr(
|
|
85
87
|
2,
|
|
86
88
|
default="",
|
|
@@ -118,7 +120,7 @@ attrib_fields = {
|
|
|
118
120
|
# 4 = multiline ATTDEF
|
|
119
121
|
"attribute_type": DXFAttr(
|
|
120
122
|
71,
|
|
121
|
-
default=
|
|
123
|
+
default=const.ATTRIB_TYPE_SINGLE_LINE,
|
|
122
124
|
dxfversion=const.DXF2018,
|
|
123
125
|
optional=True,
|
|
124
126
|
validator=validator.is_one_of({1, 2, 4}),
|
|
@@ -345,6 +347,14 @@ class BaseAttrib(Text):
|
|
|
345
347
|
self._embedded_mtext.set_mtext(mtext)
|
|
346
348
|
_update_content_from_mtext(self, mtext)
|
|
347
349
|
_update_location_from_mtext(self, mtext)
|
|
350
|
+
|
|
351
|
+
# set attribute type:
|
|
352
|
+
if isinstance(self, Attrib):
|
|
353
|
+
attribute_type = const.ATTRIB_TYPE_MULTI_LINE
|
|
354
|
+
else:
|
|
355
|
+
attribute_type = const.ATTDEF_TYPE_MULTI_LINE
|
|
356
|
+
self.dxf.attribute_type = attribute_type
|
|
357
|
+
|
|
348
358
|
# misc properties
|
|
349
359
|
self.dxf.style = mtext.dxf.style
|
|
350
360
|
self.dxf.height = mtext.dxf.char_height
|
|
@@ -356,7 +366,7 @@ class BaseAttrib(Text):
|
|
|
356
366
|
|
|
357
367
|
def embed_mtext(self, mtext: MText, graphic_properties=True) -> None:
|
|
358
368
|
"""Set multi-line properties from a :class:`MText` entity and destroy the
|
|
359
|
-
source entity
|
|
369
|
+
source entity afterward.
|
|
360
370
|
|
|
361
371
|
The multi-line ATTRIB/ATTDEF entity requires DXF R2018, otherwise an
|
|
362
372
|
ordinary single line ATTRIB/ATTDEF entity will be exported.
|
|
@@ -370,6 +380,15 @@ class BaseAttrib(Text):
|
|
|
370
380
|
self.set_mtext(mtext, graphic_properties)
|
|
371
381
|
mtext.destroy()
|
|
372
382
|
|
|
383
|
+
def discard_mtext(self) -> None:
|
|
384
|
+
"""Discard multi-line feature.
|
|
385
|
+
|
|
386
|
+
The embedded MTEXT will be removed and the ATTRIB/ATTDEF will be converted to a
|
|
387
|
+
single-line attribute.
|
|
388
|
+
"""
|
|
389
|
+
self._embedded_mtext = None
|
|
390
|
+
self.dxf.attribute_type = const.ATTRIB_TYPE_SINGLE_LINE
|
|
391
|
+
|
|
373
392
|
def register_resources(self, registry: xref.Registry) -> None:
|
|
374
393
|
"""Register required resources to the resource registry."""
|
|
375
394
|
super().register_resources(registry)
|
|
@@ -394,6 +413,16 @@ class BaseAttrib(Text):
|
|
|
394
413
|
self.post_transform(m)
|
|
395
414
|
return self
|
|
396
415
|
|
|
416
|
+
def audit(self, auditor: Auditor) -> None:
|
|
417
|
+
"""Validity check."""
|
|
418
|
+
super().audit(auditor)
|
|
419
|
+
if not self.dxf.hasattr("tag"):
|
|
420
|
+
auditor.fixed_error(
|
|
421
|
+
code=AuditError.TAG_ATTRIBUTE_MISSING,
|
|
422
|
+
message=f'Missing mandatory "tag" attribute, entity {str(self)} deleted.',
|
|
423
|
+
)
|
|
424
|
+
auditor.trash(self)
|
|
425
|
+
|
|
397
426
|
|
|
398
427
|
def _update_content_from_mtext(text: Text, mtext: MText) -> None:
|
|
399
428
|
content = mtext.plain_text(split=True, fast=True)
|
|
@@ -457,7 +486,6 @@ class AttDef(BaseAttrib):
|
|
|
457
486
|
self.export_acdb_text(tagwriter)
|
|
458
487
|
self.export_acdb_attdef(tagwriter)
|
|
459
488
|
if tagwriter.dxfversion >= const.DXF2018:
|
|
460
|
-
self.dxf.attribute_type = 4 if self.has_embedded_mtext_entity else 1
|
|
461
489
|
self.export_dxf_r2018_features(tagwriter)
|
|
462
490
|
|
|
463
491
|
def export_acdb_attdef(self, tagwriter: AbstractTagWriter) -> None:
|
|
@@ -508,7 +536,6 @@ class Attrib(BaseAttrib):
|
|
|
508
536
|
self.export_acdb_attrib_text(tagwriter)
|
|
509
537
|
self.export_acdb_attrib(tagwriter)
|
|
510
538
|
if tagwriter.dxfversion >= const.DXF2018:
|
|
511
|
-
self.dxf.attribute_type = 2 if self.has_embedded_mtext_entity else 1
|
|
512
539
|
self.export_dxf_r2018_features(tagwriter)
|
|
513
540
|
|
|
514
541
|
def export_acdb_attrib_text(self, tagwriter: AbstractTagWriter) -> None:
|
|
@@ -414,7 +414,7 @@ class OverrideMixin:
|
|
|
414
414
|
|
|
415
415
|
# transform block record handles into block names
|
|
416
416
|
for attrib_name in ("dimblk", "dimblk1", "dimblk2", "dimldrblk"):
|
|
417
|
-
blkrec_handle = data.pop(attrib_name + "_handle",
|
|
417
|
+
blkrec_handle = data.pop(attrib_name + "_handle", "")
|
|
418
418
|
if blkrec_handle:
|
|
419
419
|
set_arrow_name(attrib_name, blkrec_handle)
|
|
420
420
|
|
|
@@ -433,7 +433,7 @@ class OverrideMixin:
|
|
|
433
433
|
|
|
434
434
|
# transform linetype handles into LTYPE entry names
|
|
435
435
|
for attrib_name in ("dimltype", "dimltex1", "dimltex2"):
|
|
436
|
-
handle = data.pop(attrib_name + "_handle",
|
|
436
|
+
handle = data.pop(attrib_name + "_handle", "")
|
|
437
437
|
if handle:
|
|
438
438
|
set_ltype_name(attrib_name, handle)
|
|
439
439
|
return data
|
|
@@ -487,7 +487,7 @@ class Dimension(DXFGraphic, OverrideMixin):
|
|
|
487
487
|
self.virtual_block_content: Optional[EntitySpace] = None
|
|
488
488
|
|
|
489
489
|
def copy(self, copy_strategy=default_copy) -> Dimension:
|
|
490
|
-
virtual_copy = super().copy(copy_strategy=copy_strategy)
|
|
490
|
+
virtual_copy: Dimension = super().copy(copy_strategy=copy_strategy) # type: ignore
|
|
491
491
|
# The new virtual copy can not reference the same geometry block as the
|
|
492
492
|
# original dimension entity:
|
|
493
493
|
virtual_copy.dxf.discard("geometry")
|
|
@@ -804,10 +804,9 @@ class Dimension(DXFGraphic, OverrideMixin):
|
|
|
804
804
|
|
|
805
805
|
ocs = self.ocs()
|
|
806
806
|
dim_elevation = self.dxf.text_midpoint.z
|
|
807
|
-
|
|
807
|
+
m: Matrix44 | None = None
|
|
808
808
|
insert = self.dxf.get("insert", None)
|
|
809
809
|
if insert:
|
|
810
|
-
transform = True
|
|
811
810
|
insert = Vec3(ocs.to_wcs(insert))
|
|
812
811
|
m = Matrix44.translate(insert.x, insert.y, insert.z)
|
|
813
812
|
|
|
@@ -823,7 +822,7 @@ class Dimension(DXFGraphic, OverrideMixin):
|
|
|
823
822
|
# POINT:
|
|
824
823
|
ocs_to_wcs(copy, dim_elevation)
|
|
825
824
|
|
|
826
|
-
if
|
|
825
|
+
if m is not None:
|
|
827
826
|
copy.transform(m)
|
|
828
827
|
yield copy
|
|
829
828
|
|
|
@@ -12,6 +12,8 @@ from typing import (
|
|
|
12
12
|
)
|
|
13
13
|
from typing_extensions import Self
|
|
14
14
|
import math
|
|
15
|
+
import logging
|
|
16
|
+
|
|
15
17
|
from ezdxf.lldxf import validator
|
|
16
18
|
from ezdxf.lldxf.attributes import (
|
|
17
19
|
DXFAttr,
|
|
@@ -69,6 +71,7 @@ if TYPE_CHECKING:
|
|
|
69
71
|
|
|
70
72
|
__all__ = ["Insert"]
|
|
71
73
|
|
|
74
|
+
logger = logging.getLogger("ezdxf")
|
|
72
75
|
ABS_TOL = 1e-9
|
|
73
76
|
|
|
74
77
|
# DXF files as XREF:
|
|
@@ -628,8 +631,8 @@ class Insert(LinkedEntities):
|
|
|
628
631
|
if the property :attr:`Insert.mcount` > 1, use the :meth:`Insert.multi_insert`
|
|
629
632
|
method to resolve the MINSERT entity into multiple INSERT entities.
|
|
630
633
|
|
|
631
|
-
This method does not apply the clipping path created by the XCLIP command.
|
|
632
|
-
The method returns all entities and ignores the clipping path polygon and no
|
|
634
|
+
This method does not apply the clipping path created by the XCLIP command.
|
|
635
|
+
The method returns all entities and ignores the clipping path polygon and no
|
|
633
636
|
entity is clipped.
|
|
634
637
|
|
|
635
638
|
The `skipped_entity_callback()` will be called for all entities which are not
|
|
@@ -718,18 +721,39 @@ class Insert(LinkedEntities):
|
|
|
718
721
|
pairs
|
|
719
722
|
|
|
720
723
|
"""
|
|
721
|
-
|
|
722
724
|
def unpack(dxfattribs) -> tuple[str, str, UVec]:
|
|
723
725
|
tag = dxfattribs.pop("tag")
|
|
724
|
-
text = values.get(tag,
|
|
726
|
+
text = values.get(tag, None)
|
|
727
|
+
if text is None: # get default value from ATTDEF
|
|
728
|
+
text = dxfattribs.get("text", "")
|
|
725
729
|
location = dxfattribs.pop("insert")
|
|
726
730
|
return tag, text, location
|
|
727
731
|
|
|
728
732
|
def autofill() -> None:
|
|
729
733
|
for attdef in block_layout.attdefs(): # type: ignore
|
|
730
734
|
dxfattribs = attdef.dxfattribs(drop={"prompt", "handle"})
|
|
735
|
+
|
|
736
|
+
# Caution! Some mandatory values may not exist!
|
|
737
|
+
# These are DXF structure errors, but loaded DXF files may have errors!
|
|
738
|
+
if "tag" not in dxfattribs:
|
|
739
|
+
# ATTRIB without "tag" makes no sense!
|
|
740
|
+
logger.warning(
|
|
741
|
+
f"Skipping {str(attdef)}: missing mandatory 'tag' attribute"
|
|
742
|
+
)
|
|
743
|
+
continue
|
|
744
|
+
if "insert" not in dxfattribs:
|
|
745
|
+
# Don't know where to place the ATTRIB entity.
|
|
746
|
+
logger.warning(
|
|
747
|
+
f"Skipping {str(attdef)}: missing mandatory 'insert' attribute"
|
|
748
|
+
)
|
|
749
|
+
continue
|
|
750
|
+
|
|
731
751
|
tag, text, location = unpack(dxfattribs)
|
|
732
752
|
attrib = self.add_attrib(tag, text, location, dxfattribs)
|
|
753
|
+
if attdef.has_embedded_mtext_entity:
|
|
754
|
+
mtext = attdef.virtual_mtext_entity()
|
|
755
|
+
mtext.text = text
|
|
756
|
+
attrib.embed_mtext(mtext)
|
|
733
757
|
attrib.transform(m)
|
|
734
758
|
|
|
735
759
|
block_layout = self.block()
|
|
@@ -51,9 +51,6 @@ class _AbstractLayout(CreatorInterface):
|
|
|
51
51
|
"""Returns drawing entity database. (internal API)"""
|
|
52
52
|
return self.doc.entitydb
|
|
53
53
|
|
|
54
|
-
def rename(self, name) -> None:
|
|
55
|
-
pass
|
|
56
|
-
|
|
57
54
|
def __len__(self) -> int:
|
|
58
55
|
"""Returns count of entities owned by the layout."""
|
|
59
56
|
return len(self.entity_space)
|
|
@@ -134,7 +131,9 @@ class BaseLayout(_AbstractLayout):
|
|
|
134
131
|
@property
|
|
135
132
|
def is_active_paperspace(self) -> bool:
|
|
136
133
|
"""``True`` if is active layout."""
|
|
137
|
-
|
|
134
|
+
if self.block_record.is_alive:
|
|
135
|
+
return self.block_record.is_active_paperspace
|
|
136
|
+
return False
|
|
138
137
|
|
|
139
138
|
@property
|
|
140
139
|
def is_any_paperspace(self) -> bool:
|
|
@@ -93,7 +93,7 @@ class BlockLayout(BaseLayout):
|
|
|
93
93
|
"""
|
|
94
94
|
return self.get_attdef(tag) is not None
|
|
95
95
|
|
|
96
|
-
def get_attdef(self, tag: str) -> Optional[
|
|
96
|
+
def get_attdef(self, tag: str) -> Optional[AttDef]:
|
|
97
97
|
"""Returns attached :class:`~ezdxf.entities.attrib.Attdef` entity by
|
|
98
98
|
`tag` name.
|
|
99
99
|
"""
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
# Copyright (c) 2011-
|
|
1
|
+
# Copyright (c) 2011-2024, Manfred Moitzi
|
|
2
2
|
# License: MIT License
|
|
3
3
|
from __future__ import annotations
|
|
4
4
|
from typing import TYPE_CHECKING, Iterator, cast, Optional
|
|
5
5
|
import logging
|
|
6
|
-
from ezdxf.lldxf.const import DXFKeyError, DXFValueError,
|
|
6
|
+
from ezdxf.lldxf.const import DXFKeyError, DXFValueError, DXFStructureError
|
|
7
7
|
from ezdxf.lldxf.const import (
|
|
8
8
|
MODEL_SPACE_R2000,
|
|
9
9
|
PAPER_SPACE_R2000,
|
|
@@ -22,8 +22,7 @@ logger = logging.getLogger("ezdxf")
|
|
|
22
22
|
|
|
23
23
|
|
|
24
24
|
def key(name: str) -> str:
|
|
25
|
-
"""AutoCAD uses case
|
|
26
|
-
sensitive."""
|
|
25
|
+
"""AutoCAD uses case-insensitive layout names, but stores the name case-sensitive."""
|
|
27
26
|
return name.upper()
|
|
28
27
|
|
|
29
28
|
|
|
@@ -205,12 +204,11 @@ class Layouts:
|
|
|
205
204
|
return cast(Modelspace, self.get("Model"))
|
|
206
205
|
|
|
207
206
|
def names(self) -> list[str]:
|
|
208
|
-
"""Returns a list of all layout names, all names in original case
|
|
209
|
-
sensitive form."""
|
|
207
|
+
"""Returns a list of all layout names, all names in original case-sensitive form."""
|
|
210
208
|
return [layout.name for layout in self._layouts.values()]
|
|
211
209
|
|
|
212
210
|
def get(self, name: Optional[str]) -> Layout:
|
|
213
|
-
"""Returns :class:`~ezdxf.layouts.Layout` by `name`, case
|
|
211
|
+
"""Returns :class:`~ezdxf.layouts.Layout` by `name`, case-insensitive
|
|
214
212
|
"Model" == "MODEL".
|
|
215
213
|
|
|
216
214
|
Args:
|
|
@@ -226,8 +224,8 @@ class Layouts:
|
|
|
226
224
|
not exist.
|
|
227
225
|
|
|
228
226
|
Args:
|
|
229
|
-
old_name: actual layout name, case
|
|
230
|
-
new_name: new layout name, case
|
|
227
|
+
old_name: actual layout name, case-insensitive
|
|
228
|
+
new_name: new layout name, case-insensitive
|
|
231
229
|
|
|
232
230
|
Raises:
|
|
233
231
|
DXFValueError: try to rename ``'Model'``
|
|
@@ -245,7 +243,6 @@ class Layouts:
|
|
|
245
243
|
|
|
246
244
|
layout = self.get(old_name)
|
|
247
245
|
self._discard(layout)
|
|
248
|
-
layout.rename(new_name)
|
|
249
246
|
self._add_layout(new_name, layout)
|
|
250
247
|
|
|
251
248
|
def names_in_taborder(self) -> list[str]:
|
|
@@ -311,7 +308,7 @@ class Layouts:
|
|
|
311
308
|
name (str): layout name as shown in tabs
|
|
312
309
|
|
|
313
310
|
Raises:
|
|
314
|
-
DXFKeyError: if layout `name` do not
|
|
311
|
+
DXFKeyError: if layout `name` do not exist
|
|
315
312
|
DXFValueError: deleting modelspace layout is not possible
|
|
316
313
|
DXFValueError: deleting last paperspace layout is not possible
|
|
317
314
|
|
|
@@ -338,7 +335,7 @@ class Layouts:
|
|
|
338
335
|
for layout in self:
|
|
339
336
|
if layout.is_active_paperspace:
|
|
340
337
|
return cast(Paperspace, layout)
|
|
341
|
-
raise
|
|
338
|
+
raise DXFStructureError("No active paperspace layout found.")
|
|
342
339
|
|
|
343
340
|
def audit(self, auditor: Auditor):
|
|
344
341
|
from ezdxf.audit import AuditError
|
|
@@ -377,7 +374,7 @@ class Layouts:
|
|
|
377
374
|
message=f'Removed orphaned layout {str(br)} "{name}"',
|
|
378
375
|
)
|
|
379
376
|
if name in doc.blocks:
|
|
380
|
-
doc.blocks.delete_block(name)
|
|
377
|
+
doc.blocks.delete_block(name, safe=False)
|
|
381
378
|
else:
|
|
382
379
|
doc.block_records.remove(name)
|
|
383
380
|
# Does not check the LAYOUT content this is done in the BlockSection,
|
|
@@ -570,6 +570,10 @@ ATTRIB_CONST = 2 # This is a constant attribute
|
|
|
570
570
|
ATTRIB_VERIFY = 4 # Verification is required on input of this attribute
|
|
571
571
|
ATTRIB_IS_PRESET = 8 # no prompt during insertion
|
|
572
572
|
|
|
573
|
+
ATTRIB_TYPE_SINGLE_LINE = 1
|
|
574
|
+
ATTRIB_TYPE_MULTI_LINE = 2
|
|
575
|
+
ATTDEF_TYPE_MULTI_LINE = 4
|
|
576
|
+
|
|
573
577
|
# '|' is allowed in layer name, as ltype name ...
|
|
574
578
|
INVALID_NAME_CHARACTERS = '<>/\\":;?*=`'
|
|
575
579
|
INVALID_LAYER_NAME_CHARACTERS = set(INVALID_NAME_CHARACTERS)
|
|
@@ -89,6 +89,12 @@ def bulge_to_arc(
|
|
|
89
89
|
and 2D :class:`~ezdxf.entities.Polyline` entities start at the vertex which
|
|
90
90
|
includes the bulge value and ends at the following vertex.
|
|
91
91
|
|
|
92
|
+
.. important::
|
|
93
|
+
|
|
94
|
+
The return values always describe a counter-clockwise oriented arc, so for
|
|
95
|
+
clockwise arcs (negative bulge values) the start and end angles are swapped and
|
|
96
|
+
the arc starts at the `end_point` and ends at the `start_point`.
|
|
97
|
+
|
|
92
98
|
Based on Bulge to Arc by `Lee Mac`_.
|
|
93
99
|
|
|
94
100
|
Args:
|
|
@@ -8,6 +8,7 @@
|
|
|
8
8
|
# - Research paper of Antonin Guttman:
|
|
9
9
|
# http://www-db.deis.unibo.it/courses/SI-LS/papers/Gut84.pdf
|
|
10
10
|
from __future__ import annotations
|
|
11
|
+
from operator import itemgetter
|
|
11
12
|
import statistics
|
|
12
13
|
from typing import Iterator, Callable, Sequence, Iterable, TypeVar, Generic
|
|
13
14
|
import abc
|
|
@@ -260,7 +261,7 @@ def box_split(points: list[T], max_size: int) -> Sequence[Node[T]]:
|
|
|
260
261
|
n = len(points)
|
|
261
262
|
size: tuple[float, float, float] = BoundingBox(points).size.xyz
|
|
262
263
|
dim = size.index(max(size))
|
|
263
|
-
points.sort(key=
|
|
264
|
+
points.sort(key=itemgetter(dim))
|
|
264
265
|
k = math.ceil(n / max_size)
|
|
265
266
|
return tuple(
|
|
266
267
|
make_node(points[i : i + k], max_size, box_split) for i in range(0, n, k)
|