Repository navigation
Conversation
|
The rest is OCP: registering 321 packages on import, which costs about a second. upd: |
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## master #2097 +/- ##
==========================================
+ Coverage 95.76% 95.81% +0.05%
==========================================
Files 30 30
Lines 9584 9609 +25
Branches 1437 1444 +7
==========================================
+ Hits 9178 9207 +29
+ Misses 250 247 -3
+ Partials 156 155 -1 ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
|
Thanks, but with the exception of |
|
My reasoning was to put each import next to its only use, so that the change stays small and no caller of dxf.py can bring ezdxf back by accident - two files, a dozen lines. Your split reads better in the package, though: the core does not import the I/O modules until it exports, and dxf.py stays a plain module about ezdxf. Agreed. To keep vtk out of OK to touch that one, or ezdxf only for now @adam-urbanczyk ? |
|
Yeah, not problem with changing |
As suggested in review, the I/O modules keep plain imports and the functions that export or import load them. STEPExportModeLiterals moves to types, so that Assembly.export needs no exporter import.
importers.dxf holds only the private _importDXF, and importDXF is reached through importers.
The subprocess test resolves them where coverage does not see it.
They never run, so no test can cover them.
import cadqueryloaded ezdxf and vtk although most sessions never touch a DXF or a render window. They are now imported by the functions that use them, and a test in a fresh interpreter keeps them out.Here the import drops from 1.50 to 1.10 seconds - 0.35 for ezdxf with fontTools, 0.15 for vtk - and loads 417 modules instead of 693.
Annotations that name vtk types are forward references now;
typing.get_type_hints()on those five functions resolves them once vtk is imported.