-
Notifications
You must be signed in to change notification settings - Fork 670
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
distopia 0.4.0 compatibility changes #4734
base: develop
Are you sure you want to change the base?
Conversation
Hello @hmacdope! Thanks for updating this PR. We checked the lines you've touched for PEP 8 issues, and found:
Comment last updated at 2025-01-06 18:00:18 UTC |
Linter Bot Results:Hi @hmacdope! Thanks for making this PR. We linted your code and found the following: Some issues were found with the formatting of your code.
Please have a look at the Please note: The |
Codecov ReportAttention: Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## develop #4734 +/- ##
===========================================
- Coverage 93.65% 93.64% -0.02%
===========================================
Files 177 189 +12
Lines 21795 22916 +1121
Branches 3067 3079 +12
===========================================
+ Hits 20413 21459 +1046
- Misses 931 1006 +75
Partials 451 451 ☔ View full report in Codecov by Sentry. |
@orbeckst @richardjgowers this is ready for a first look over. The failing tests are for a 180 degree dihedral where numpy returns np.pi and distopia returns -np.pi (equivalent in polar coordinates). Are we ok to change the test to account for this? There are also options for changing in distopia but at the cost of a lot of performance improvement. |
I'd be ok with changing tests but adding a note to docs. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I am not sure if the tests are actually run — if we can confirm that they run then I have no blockers.
ALso updated CHANGELOG, please.
FYI, upstream distopia 0.3.0 release is currently breaking all tests, see #4739 . |
Co-authored-by: Oliver Beckstein <[email protected]>
@orbeckst this is probably ready for another look. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Quick first look (sorry for brevity), see minor comments and below:
- Could you please also make PEP8 happy?
- Coverage?
Something is not right with the macos-13 tests — they timed out at 55 mins and they are again taking much longer than all the other runners. |
This is unrelated to this PR as far as I can tell (we probably should re-open #4781?). It's been a while but iirc the macos13 images had a sudden performance drop at some point in the last year-ish and it never was resolved. We could drop the tests to be "non optional deps only" that might help keep things a bit sane for now. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Couple things, apparent missing test coverage is the biggest thing, otherwise (assuming @orbeckst's comments are addressed), lgtm.
has_distopia_020 = all([hasattr(distopia, func) for func in needed_funcs]) | ||
if not has_distopia_020: | ||
# check for compatibility: currently needs to be >=0.3.1, | ||
# some versions of `distopia` don't have a version attribute |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Are these versions known? I.e. if we know that this only affects a certain set of releases and they are all <0.3.1, then can we skip the warning altogther and just assume that this only happens in old versions we don't care about?
(intent: I'm trying to completly bypass the follow-up "there are no tests for line 50" with a blunt solution)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We can (now) just say that if we are not able to determine the version then it's too old.
@hmacdope any bandwidth to get this one done soon-ish? It would be really good to have it in to finish one of the performance track items. |
If I can jump in here - it would be great to get this into a hypothetical v2.9.0 release of MDAnalysis (i.e. one that deals with #4899 and allows us to do py3.13). |
@orbeckst this is probably ready for another round of review. I cut a new release of |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Sorry, just quick: there are distopia-related tests that are failing. Can you please check and fix or if necessary skip tests as needed?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Please see small fixes in comments.
has_distopia_020 = all([hasattr(distopia, func) for func in needed_funcs]) | ||
if not has_distopia_020: | ||
# check for compatibility: currently needs to be >=0.3.1, | ||
# some versions of `distopia` don't have a version attribute |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We can (now) just say that if we are not able to determine the version then it's too old.
package/MDAnalysis/lib/_distopia.py
Outdated
try: | ||
distopia_version = Version(distopia.__version__) | ||
except AttributeError: | ||
warnings.warn("distopia version cannot be determined, assuming 0.0.0") |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Although we don't need to issue the warning, we need to be able to set the fake distopia version.
Is it worthwhile testing this code path with a proper mock? – @IAlibay ?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Test is simple enough through monkeypatch. Adding it would be great, but I'm not sure it needs to be a blocker for this PR. At the end of the day we'll pin the conda-forge recipe to distopia>=0.4 and probably should do the same for pypi (is there a pypi release of distopia?).
TLDR; I'd be ok to see this is as a follow-up PR, but I agree we probably should do it at some point.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Can we push to seperate issue? Will raise when this is closed.
(is there a pypi release of distopia?).
No there isn't, very hard to ship required libs.
Test implementation of distopia-0.3.0 distances API.
Changes made in this Pull Request:
PR Checklist
Developers certificate of origin
📚 Documentation preview 📚: https://mdanalysis--4734.org.readthedocs.build/en/4734/