Defer loading the default DD definitions #95
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
When constructing a DBEntry, a corresponding IDSFactory is created as well. Previously, constructing an IDSFactory would eagerly load the associated Data Dictionary XML files.
In some use cases (e.g.
imas printor visualization libraries like IMAS-Paraview). A default DBEntry is constructed, but all IDSs are read withautoconvert=False. If these IDSs are in an older version of the Data Dictionary, we would previously unnecessarily parse two DD definitions. This was visible to users in the logging output, for example withimas print:This commit defers loading the default Data Dictionary definitions until they are really needed. In the
imas printscenario above, this will skip loading the DD 4.1.0 definitions: saving a bit of time and potential confusion for users.The most visible side effect of this change is in interactive Python sessions:
Before this change, the INFO log message would appear immediately after constructing the
IDSFactory. Now, the XML file is only parsed when we need it for constructing thecore_profilesIDS.N.B. Also fix a couple of type warnings from
tyin touched files.