Sorry! I hadn't seen that, that's great, thank you! The denominator is 
proving to be a bit tricky to deal with, mostly because I can't decide what 
I want to do with it. I did it though, but I'm not happy with it. I'm also 
an amatuer at regex(this is the first time I've used it, I figured it was 
about time I started learning now). But, I Think it should work? So, I made 
another method named sage_prodstring that does a similar job to 
sage_polystring. Here is the code for it:

    def sage_prodstring(self):
    """
        If this Macaulay2 element is a Product, return a string
        representation of this Product that is suitable for
        evaluation in Python. Needed internally for using to_sage on 
objects of class Divide. 

        EXAMPLES::


        """
    external_string = self.external_String()
    prod_String = re.findall("new Power from \{(.+?),(.+?)\}", 
external_string)
    final_Prod = ""
    for i in range(0, len(prod_String)):
        final_Prod += "(" + prod_String[i][0] + ")" + '^' + prod_String[i][1
] + "*"
    final_Prod = final_Prod[:-1]
    return final_Prod

I don't really know what to put in the Examples part. If you have any 
recommendations, I'd love to know. Also, I feel like this implementation is 
inneficient, since it first runs external_string, which is a Sage method 
that parses Macaulay's ascii art into a str, and then my method parses that 
str into something that you could actually use as python code. I feel like, 
ideally, I wouldn't need to run external_string, and could directly convert 
the ascii output from macaulay directly into the python code output I 
wanted, but i couldn't figure out exactly how to do that... I hope this is 
okay. I don't think i can test it yet until I fill in the spot for the 
Example though. 

I then used this method in the to_sage() function for the denominator, as 
seen here:

            elif cls_str == "Divide":
                div_Numerator = self.numerator()
                div_Denominator = self.denominator()
                div_Numerator = div_Numerator.sage_polystring()
        div_Denominator = div_Denominator.sage_prodstring()
                sage_Div = "(" +  div_Numerator ")" + "/" + "(" + 
div_Denominator + ")"
                return sage_Div

How does it look? Thanks for all the help thus far.

-- 
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