Draft
Conversation
added 2 commits
June 17, 2025 11:09
First round of removals and changes for expiring the deprecation of DenseOperatorInterace and DenseStateInterface. As of this commit there are still a significant number of broken codepaths that need patching.
Second round of patches for expiration of dense interfaces. This round removes the DenseEffectInterface and includes numerous patches to the testing and codebase for code that previously relied on the dense interfaces.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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 removes the
DenseOperatorInterface,DenseStateInterfaceandDenseEffectInterfaceclasses. These classes enabled interfacing with certain densely parameterized model members as if they we numpy arrays. These classes were official deprecated with the release of 0.9.13 and as an issue is being tracked by #447. Following discussions it was decided that due to some pernicious bugs introduced by these classes, as well as the suboptimality of having a bifurcated API, the best course of action was to simplify the codebase and remove these.As a side-effect of these changes issue #397 should be resolved.
Simply removing these classes obviously breaks a lot of code and backwards compatibility, so included here are a number of patches which at a minimum transition the main pyGSTi codebase away from the old API. We had originally targeted full removal in 0.9.14, but now that I've seen just how much of the code needed patching I suggest we push the full removal to 0.9.15. This will allow us to merge in this PR shortly after 0.9.14 is released, and as such will maximize the amount of time we can beta test these changes on develop making it much more likely we'll suss out any stragglers before wider release.