Taking Frédéric's advice to heart, I have begun porting SnapPy to 
Sage+Python3.  (We have supported Python 3 outside of Sage for a few years 
now.)  Right now, I am having difficulty with how to register something as 
a field.  Below is the minimal (non) working example: if you run it with 
Python 2 it will print "True", but with Python 3 you get "False".  
Suggestions? 

Thanks, Nathan

---------

import sage.all
from sage.structure.parent import Parent
from sage.structure.unique_representation import UniqueRepresentation
from sage.categories.fields import Fields
from sage.misc.classcall_metaclass import ClasscallMetaclass

class SnappyNumbersMetaclass(ClasscallMetaclass):
    """
    Metaclass for Sage parents of SnapPy Number objects.
    """
    def __new__(mcs, name, bases, dict):
        dict['category'] = lambda self : Fields()
        return ClasscallMetaclass.__new__(mcs, name, bases, dict)

class SnapPyNumbers(UniqueRepresentation, Parent):
    """
    Sage parents of SnapPy Number objects.
    """
    __metaclass__ = SnappyNumbersMetaclass

    def __init__(self, precision):
        Parent.__init__(self)
        self._precision = precision

SPN = SnapPyNumbers(53)
print(SPN in Fields)

-- 
You received this message because you are subscribed to the Google Groups 
"sage-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-devel+unsubscr...@googlegroups.com.
To post to this group, send email to sage-devel@googlegroups.com.
Visit this group at https://groups.google.com/group/sage-devel.
For more options, visit https://groups.google.com/d/optout.

Reply via email to