Make h5py and ruamel lazy loading #4788
Merged
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.
This PR uses the lazy_loader package to make the qcodes import time lower. The lazy_loader package has been adapoted by several scientific python packages, for details see https://scientific-python.org/specs/spec-0001/
The h5py and ruamal components have been selected because they take time in the import and are only used in components that not all users will use (e.g. the legacy dataset and the Monitor). The PR is intended to be fully backwards compatible.
More gains can be made with non-backwards compatible changes. For example in the main qcodes
__init__.py
the number of direct imports which could be reduced.Also see #4543
@jenshnielsen