-
Notifications
You must be signed in to change notification settings - Fork 133
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
first attempt to serialize some groups #2410
first attempt to serialize some groups #2410
Conversation
Codecov Report
@@ Coverage Diff @@
## master #2410 +/- ##
==========================================
+ Coverage 80.22% 80.35% +0.12%
==========================================
Files 473 483 +10
Lines 67257 69365 +2108
==========================================
+ Hits 53960 55739 +1779
- Misses 13297 13626 +329
|
The serialization interface promises that one can save some Oscar objects x, y, z, ... to (several) files, such that the following holds.
For an object that is based on a GAP object, requirement 1. makes it necessary to record the information about the It is likely that using Julia's (Note that GAP's "pickling/unpickling" approach does not deal (yet) with objects which rely on the identity of families.) |
Currently two tests are failing: (O.k., restarted the tests, now they passed.) |
you can take a look at my branch to see how one would go about reformatting for the refactor |
(more tests, more documentation)
- extended the tests - fixed handling of `id` fields: use `save_typed_object`/`load_typed_object` instead of `save_object`/`load_object` for subobjects that need an `id` - rearranged the code to be recursive
After a quick look, seems good for a first attempt |
I restarted CI and merge once it is green. I would really like to use this. |
Thanks @ThomasBreuer! |
This is just for discussing what we want for groups.
The current code tries to save and restore only data living on the Oscar side, and ignores additional knowledge stored in the objects on the GAP side.
(Still some objects have to be manipulated on the GAP side because they have no counterpart in Oscar; in the current code, this holds for the "full f. p. group" of a subgroup of an f. p. group.)
An alternative approach would be to serialize mainly the objects on the GAP side, together with their known attributes, and to rebuild the Oscar objects from the deserialized GAP objects.
(For serializing/deserializing GAP objects in GAP, there is currently essentially the "pickling/unpickling" approach provided by the IO package.)