-
-
Notifications
You must be signed in to change notification settings - Fork 575
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
Addition of new presentations to Chow rings of matroids #39359
base: develop
Are you sure you want to change the base?
Conversation
Documentation preview for this PR (built with commit 2feb4d6; changes) is ready! 🎉 |
|
||
class ChowRingIdeal_nonaug(ChowRingIdeal): | ||
class ChowRingIdeal_nonaug_fy(ChowRingIdeal): |
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.
You might consider using register_unpickle_override
for backwards compatibility. (Technically speaking, the old class should be deprecated.)
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'm a little confused about the issue here, primarily because the version in my branch defines the FY presentation as ChowRingIdeal_nonaug_fy
(I made that change long ago)
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.
If I created a pickle with the old version, then tried to unpickle it with the new version, it wouldn’t know how to deal with it because the class wouldn’t exist anymore (since its name has changed). This is a backwards incompatible change.
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.
But isn't register_unpickle_override
used only when both versions exist?
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.
No, it redirects the unpickling.
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.
So, would I need to import all of the following from sage.misc.persist import (unpickle_override, register_unpickle_override, SageUnpickler)
and implement another method or something?
Sorry I'm quite new to dealing with pickling
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.
No, just thr unpickle_override. The path is set by strings. There are some examples around the code base, but i don't remember where offhand.
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 hope the new commit fixes this
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.
Why does build-doc-pdf fail when build-doc passes?
I've checked every corner of the documentation. Not sure what I'm missing
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 hope the new commit fixes this
I think so, but you can check it by creating a pickle on the develop branch (using dumps()
and saving the output string), then loading it with your PR (via loads(saved_string)
).
The pdf build is more sensitive than the html. You can usually find the issue by looking through the html doc. |
Indeed, I found it. |
Seems like linting is failing due to some other code not authored by me in this PR |
One failure in the |
What's wrong with the doctests check? The doctests pass locally in all edited files for me |
Looks like somehow the ordering of the output is different. I am not sure why ar this point though. |
Do the tests pass locally for you? |
It doesn't really matter. They should pass on all machines and this indicating that there might be something in the ordering that is machine dependent. |
Is it worth running a |
We could, but it's overkill to do that in the code. It's a bit annoying to do it in the output too. I can only guess that it comes from iterating over the lattice of flats. Still not sure yet what the best thing to do now is. I will think about it. |
Also I get a different order in the doctests too. |
This PR focuses on adding the atom-free and simplicial presentation of Chow rings of matroids. see relevant issue
The former is taken from Definition 4.1 of this paper and the latter from Definition 3.2.1 of this paper.
@tscrim
📝 Checklist
⌛ Dependencies