#12565: E = EllipticCurve('10a1') gives a stupid traceback (rather than a smart
one)
-----------------------------------+----------------------------------------
Reporter: was | Owner: cremona
Type: defect | Status: needs_review
Priority: trivial | Milestone: sage-pending
Component: elliptic curves | Resolution:
Keywords: | Work issues:
Report Upstream: N/A | Reviewers: John Cremona
Authors: R. Andrew Ohana | Merged in:
Dependencies: #12341 | Stopgaps:
-----------------------------------+----------------------------------------
Changes (by cremona):
* status: needs_work => needs_review
* work_issues: needs rebase =>
Old description:
> I don't like this error:
> {{{
> sage: E = EllipticCurve('10a1')
> ---------------------------------------------------------------------------
> AttributeError Traceback (most recent call
> last)
>
> /Users/wstein/sage/install/sage-5.0.beta2/devel/sage-
> git/sage/modular/modsym/padic_lseries/<ipython console> in <module>()
>
> /Users/wstein/sage/install/sage-5.0.beta2/local/lib/python2.7/site-
> packages/sage/schemes/elliptic_curves/constructor.pyc in EllipticCurve(x,
> y, j)
> 293
> 294 if isinstance(x, str):
> --> 295 return ell_rational_field.EllipticCurve_rational_field(x)
> 296
> 297 if rings.is_RingElement(x) and y is None:
>
> /Users/wstein/sage/install/sage-5.0.beta2/local/lib/python2.7/site-
> packages/sage/schemes/elliptic_curves/ell_rational_field.pyc in
> __init__(self, ainvs, extra)
> 197 label = ainvs
> 198 X = sage.databases.cremona.CremonaDatabase()[label]
> --> 199 EllipticCurve_number_field.__init__(self, Q,
> list(X.a_invariants()))
> 200 self.__np = {}
> 201 self.__gens = {}
>
> AttributeError: 'NoneType' object has no attribute 'a_invariants'
> }}}
>
> I would expect something like:
>
> {{{
> ValueError: no known curve with Cremona label '10a1'
> }}}
>
> Another bug. If you use Sage for a level outside the Cremona range and
> you're using a system-wide Sage install, this is the error you get, which
> is pretty scary looking:
> {{{
> sage: E = EllipticCurve('10050000s1')
> Traceback (most recent call last):
> File "/usr/local/share/sage-4.8/local/bin/sage-list-packages", line 21,
> in <module>
> os.makedirs(SAGE_ROOT_TMP)
> File "/usr/local/share/sage-4.8/local/lib/python/os.py", line 157, in
> makedirs
> mkdir(name, mode)
> OSError: [Errno 13] Permission denied: '/usr/local/share/sage-4.8/tmp'
> Using SAGE Server http://www.sagemath.org//packages
>
> Optional package list (shown above) appears to be currently not available
> or corrupted (network error?).
> ---------------------------------------------------------------------------
> AttributeError Traceback (most recent call
> last)
>
> /home/wstein/<ipython console> in <module>()
>
> /usr/local/share/sage-4.8/local/lib/python2.6/site-
> packages/sage/schemes/elliptic_curves/constructor.pyc in EllipticCurve(x,
> y, j)
> 293
> 294 if isinstance(x, str):
> --> 295 return ell_rational_field.EllipticCurve_rational_field(x)
> 296
> 297 if rings.is_RingElement(x) and y is None:
>
> /usr/local/share/sage-4.8/local/lib/python2.6/site-
> packages/sage/schemes/elliptic_curves/ell_rational_field.pyc in
> __init__(self, ainvs, extra)
> 197 label = ainvs
> 198 X = sage.databases.cremona.CremonaDatabase()[label]
> --> 199 EllipticCurve_number_field.__init__(self, Q,
> list(X.a_invariants()))
> 200 self.__np = {}
> 201 self.__gens = {}
>
> AttributeError: 'NoneType' object has no attribute 'a_invariants'
> }}}
>
> ----
>
> Apply patch at #12341
>
> Apply attachment:trac12565.patch
New description:
I don't like this error:
{{{
sage: E = EllipticCurve('10a1')
---------------------------------------------------------------------------
AttributeError Traceback (most recent call
last)
/Users/wstein/sage/install/sage-5.0.beta2/devel/sage-
git/sage/modular/modsym/padic_lseries/<ipython console> in <module>()
/Users/wstein/sage/install/sage-5.0.beta2/local/lib/python2.7/site-
packages/sage/schemes/elliptic_curves/constructor.pyc in EllipticCurve(x,
y, j)
293
294 if isinstance(x, str):
--> 295 return ell_rational_field.EllipticCurve_rational_field(x)
296
297 if rings.is_RingElement(x) and y is None:
/Users/wstein/sage/install/sage-5.0.beta2/local/lib/python2.7/site-
packages/sage/schemes/elliptic_curves/ell_rational_field.pyc in
__init__(self, ainvs, extra)
197 label = ainvs
198 X = sage.databases.cremona.CremonaDatabase()[label]
--> 199 EllipticCurve_number_field.__init__(self, Q,
list(X.a_invariants()))
200 self.__np = {}
201 self.__gens = {}
AttributeError: 'NoneType' object has no attribute 'a_invariants'
}}}
I would expect something like:
{{{
ValueError: no known curve with Cremona label '10a1'
}}}
Another bug. If you use Sage for a level outside the Cremona range and
you're using a system-wide Sage install, this is the error you get, which
is pretty scary looking:
{{{
sage: E = EllipticCurve('10050000s1')
Traceback (most recent call last):
File "/usr/local/share/sage-4.8/local/bin/sage-list-packages", line 21,
in <module>
os.makedirs(SAGE_ROOT_TMP)
File "/usr/local/share/sage-4.8/local/lib/python/os.py", line 157, in
makedirs
mkdir(name, mode)
OSError: [Errno 13] Permission denied: '/usr/local/share/sage-4.8/tmp'
Using SAGE Server http://www.sagemath.org//packages
Optional package list (shown above) appears to be currently not available
or corrupted (network error?).
---------------------------------------------------------------------------
AttributeError Traceback (most recent call
last)
/home/wstein/<ipython console> in <module>()
/usr/local/share/sage-4.8/local/lib/python2.6/site-
packages/sage/schemes/elliptic_curves/constructor.pyc in EllipticCurve(x,
y, j)
293
294 if isinstance(x, str):
--> 295 return ell_rational_field.EllipticCurve_rational_field(x)
296
297 if rings.is_RingElement(x) and y is None:
/usr/local/share/sage-4.8/local/lib/python2.6/site-
packages/sage/schemes/elliptic_curves/ell_rational_field.pyc in
__init__(self, ainvs, extra)
197 label = ainvs
198 X = sage.databases.cremona.CremonaDatabase()[label]
--> 199 EllipticCurve_number_field.__init__(self, Q,
list(X.a_invariants()))
200 self.__np = {}
201 self.__gens = {}
AttributeError: 'NoneType' object has no attribute 'a_invariants'
}}}
----
Apply patch at #12341
Apply attachment:trac_12565-rebase.patch
--
Comment:
I have rebased the patch so that it now works after the rebased #12341.
This was not quite trivial as a little extra coding was needed so that
"Old Cremona labels" could be parsed properly using the regexp method.
I tested sage/databses/cremona.py and all in sage/schemes/elliptic_curves.
--
Ticket URL: <http://trac.sagemath.org/sage_trac/ticket/12565#comment:21>
Sage <http://www.sagemath.org>
Sage: Creating a Viable Open Source Alternative to Magma, Maple, Mathematica,
and MATLAB
--
You received this message because you are subscribed to the Google Groups
"sage-trac" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/sage-trac?hl=en.