Ask Your Question

Revision history [back]

click to hide/show revision 1
initial version

How do instantiate a new class properly?

Background

I have created a new class FeynmanGraph that is a subclass of Graph. It has some extra methods, and the module in which it lives also has some extra functions. The most important method for my purposes searches for possible colorings of the vertices that satisfy certain combinatorial criteria that have to do with spanning trees. (The details are not important here.)

The code works. I should mention that I'm editing feynman.sage in a text editor and attaching it to a sage session in a terminal. Once a I create an instance of the class via

G = FeynmanGraph(...)

everything seems to work.

Now, I created a module in which I would like to define specific graphs, with specific labeling of the vertices and edges, as well as plot positioning information. Shouldn't I be able to import the module feynman and make definitions such as the following?

from feynman import *
def FatY(): # a particular graph
    G = FeynmanGraph(...)
    ...
    return G

When I do this, the methods for FeynmanGraph raise all kinds of errors of the type where they don't recognize various functions, such as max or partitions_set.

Question

How do I structure the modules and classes so that I can instantiate the class properly?