Hi David,

If you type

sage: X = test(H)

you notice that doesn't give an error.  So the problem occurs when
Sage tries to print your object X.  Since you haven't defined a
_repr_() method for your class, Sage tries to use the one inherited
from the hyperelliptic curve class.  You can see the code for that by
typing

sage: H._repr_?

The first line of code wants to get the hyperelliptic polynomials,
and that's where things break down.  I guess you have to write your
own _repr_() method for your inherited class.  It can be as simple as


class test
(sage.schemes.hyperelliptic_curves.hyperelliptic_rational_field.HyperellipticCurve_rational_field):
    def __init__(self,C):
        self.C = C

    def _repr_(self):
        return self.C._repr_()


Disclaimer: I haven't actually tried this out, but I'd be surprised if
it didn't work :)

Of course, if you will eventually have more info that you want printed
about your class, you can customise _repr_() to your liking.



Best,
Alex



On Thu, Nov 05, 2009 at 01:09:25PM -0800, David Holmes wrote:
> 
> Hi,
> 
> I am trying to write a subclass of the class of hypereliptic curves
> over QQ, for example:
> 
> class test
> (sage.schemes.hyperelliptic_curves.hyperelliptic_rational_field.HyperellipticCurve_rational_field):
>     def __init__(self,C):
>         self.C = C
> 
> 
> then in sage I type
> 
> R.<x> = QQ[]
> H = HyperellipticCurve(x^9+1)
> test(H)
> 
> the last lline gives a long string of error traceback ending
> ...
> /usr/local/sage/sage-4.2/local/lib/python/pprint.pyc in _safe_repr
> (object, context, maxlevels, level)
>     318         return format % _commajoin(components), readable,
> recursive
>     319
> --> 320     rep = repr(object)
>     321     return rep, (rep and not rep.startswith('<')), False
>     322
> 
> /usr/local/sage/sage-4.2/local/lib/python2.6/site-packages/sage/
> structure/sage_object.so in
> sage.structure.sage_object.SageObject.__repr__ (sage/structure/
> sage_object.c:1416)()
> 
> /usr/local/sage/sage-4.2/local/lib/python2.6/site-packages/sage/
> schemes/hyperelliptic_curves/hyperelliptic_generic.pyc in _repr_(self)
>      93         """
>      94
> ---> 95         f, h = self._hyperelliptic_polynomials
>      96         R = self.base_ring()
>      97         y = self._printing_ring.gen()
> 
> AttributeError: 'test' object has no attribute
> '_hyperelliptic_polynomials'
> 
> 
> I am not sure what to do about this, any help will be much
> appreciated.
> 
> Thank you,
> 
> David Holmes
> 
> > 

-- 
Alex Ghitza -- Lecturer in Mathematics -- The University of Melbourne
-- Australia -- http://www.ms.unimelb.edu.au/~aghitza/

--~--~---------~--~----~------------~-------~--~----~
To post to this group, send email to sage-support@googlegroups.com
To unsubscribe from this group, send email to 
sage-support-unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/sage-support
URL: http://www.sagemath.org
-~----------~----~----~----~------~----~------~--~---

Reply via email to