Ticket #6462 (closed defect: fixed)

Opened 14 months ago

Last modified 14 months ago

[with patch, positive review] Unpickling problem for orders in a number field

Reported by: davidloeffler Owned by: was
Priority: major Milestone: sage-4.1.1
Component: number theory Keywords:
Cc: Author(s): David Loeffler
Report Upstream: Reviewer(s): Nick Alexander
Merged in: sage-4.1.1.alpha0 Work issues:

Description (last modified by davidloeffler) (diff)

Unpickling elements of number field orders doesn't work:

sage: L = QuadraticField(-11,'a'); OL = L.maximal_order(); w = OL.0
sage: loads(dumps(w))
---------------------------------------------------------------------------
AttributeError                            Traceback (most recent call last)

/home/david/.sage/temp/groke/24319/_home_david__sage_init_sage_0.py in <module>()

/home/david/sage-4.1/local/lib/python2.6/site-packages/sage/structure/sage_object.so in sage.structure.sage_object.loads (sage/structure/sage_object.c:8076)()

/home/david/sage-4.1/local/lib/python2.6/site-packages/sage/rings/number_field/number_field_element_quadratic.so in sage.rings.number_field.number_field_element_quadratic.__make_NumberFieldElement_quadratic0 (sage/rings/number_field/number_field_element_quadratic.cpp:2792)()

/home/david/sage-4.1/local/lib/python2.6/site-packages/sage/rings/number_field/number_field_element_quadratic.so in sage.rings.number_field.number_field_element_quadratic.NumberFieldElement_quadratic.__init__ (sage/rings/number_field/number_field_element_quadratic.cpp:2897)()

<type 'str'>: (<type 'exceptions.AttributeError'>, AttributeError("'AbsoluteOrder' object has no attribute '_is_maximal'",))

With orders in higher-degree fields, I get a different error message:

sage: L = NumberField(x^3 - x - 1,'a'); OL = L.maximal_order(); w = OL.0
sage: loads(dumps(w))
---------------------------------------------------------------------------
AttributeError                            Traceback (most recent call last)

/home/david/.sage/temp/groke/24319/_home_david__sage_init_sage_0.py in <module>()

/home/david/sage-4.1/local/lib/python2.6/site-packages/sage/structure/sage_object.so in sage.structure.sage_object.loads (sage/structure/sage_object.c:8076)()

/home/david/sage-4.1/local/lib/python2.6/site-packages/sage/rings/number_field/number_field_element.so in sage.rings.number_field.number_field_element.__create__NumberFieldElement_version1 (sage/rings/number_field/number_field_element.cpp:3696)()

/home/david/sage-4.1/local/lib/python2.6/site-packages/sage/rings/number_field/number_field_element.so in sage.rings.number_field.number_field_element.OrderElement_absolute.__init__ (sage/rings/number_field/number_field_element.cpp:20595)()

AttributeError: ("'NumberField_absolute' object has no attribute 'number_field'", <built-in function __create__NumberFieldElement_version1>, (Number Field in a with defining polynomial x^3 - x - 1, <type 'sage.rings.number_field.number_field_element.OrderElement_absolute'>, 1))

(and the analogous thing for relative fields as well.)

This is a real problem because I am working on a computation where I need to be able to save results to disc, and this result is preventing me from loading what I've saved. (Elements of the fields rather than the orders unpickle OK, but it's next to impossible to prevent elements of the orders creeping in somehow when I pickle stuff.)

Attachments

trac_6462-order_elt_pickle_bug.patch Download (6.4 KB) - added by davidloeffler 14 months ago.
patch against 4.1.alpha2

Change History

Changed 14 months ago by davidloeffler

  • description modified (diff)

Changed 14 months ago by davidloeffler

patch against 4.1.alpha2

Changed 14 months ago by davidloeffler

  • summary changed from Unpickling problem for orders in a number field to [with patch, needs review] Unpickling problem for orders in a number field

Changed 14 months ago by ncalexan

  • reviewer set to Nick Alexander
  • summary changed from [with patch, needs review] Unpickling problem for orders in a number field to [with patch, positive review] Unpickling problem for orders in a number field
  • author set to David Loeffler

Fine by me.

Changed 14 months ago by mvngu

David, the patch trac_6462-order_elt_pickle_bug.patch doesn't contain your username. So I'm committing it in your name. Just to let people know, this has been merged in sage-4.1.1-alpha0. I can't close this ticket because I don't have the privilege to do so. Sorry, folks :-(

Changed 14 months ago by mvngu

  • status changed from new to closed
  • resolution set to fixed
  • merged set to sage-4.1.1.alpha0
Note: See TracTickets for help on using tickets.