Ticket #6462 (closed defect: fixed)
[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
Change History
Note: See
TracTickets for help on using
tickets.

