Ejemplo n.º 1
0
    def generate(self):
        OutHeader1("Module " + self.name)
        Output("#include \"Python.h\"")
        Output()

        if self.includestuff:
            Output()
            Output("%s", self.includestuff)

        self.declareModuleVariables()

        GeneratorGroup.generate(self)

        if self.finalstuff:
            Output()
            Output("%s", self.finalstuff)

        Output()
        Output("void init%s(void)", self.name)
        OutLbrace()
        Output("PyObject *m;")
        Output("PyObject *d;")
        Output()

        if self.initstuff:
            Output("%s", self.initstuff)
            Output()

        Output("m = Py_InitModule(\"%s\", %s_methods);",
               self.name, self.prefix)
        Output("d = PyModule_GetDict(m);")
        self.createModuleVariables()
        OutRbrace()
        OutHeader1("End module " + self.name)
Ejemplo n.º 2
0
    def generate(self):
        OutHeader1("Module " + self.name)
        Output("#include \"Python.h\"")
        Output()

        if self.includestuff:
            Output()
            Output("%s", self.includestuff)

        self.declareModuleVariables()

        GeneratorGroup.generate(self)

        if self.finalstuff:
            Output()
            Output("%s", self.finalstuff)

        Output()
        Output("void init%s(void)", self.name)
        OutLbrace()
        Output("PyObject *m;")
        Output("PyObject *d;")
        Output()

        if self.initstuff:
            Output("%s", self.initstuff)
            Output()

        Output("m = Py_InitModule(\"%s\", %s_methods);",
               self.name, self.prefix)
        Output("d = PyModule_GetDict(m);")
        self.createModuleVariables()
        OutRbrace()
        OutHeader1("End module " + self.name)
Ejemplo n.º 3
0
	def __init__(self, name, prefix = None,
		     includestuff = None,
		     finalstuff = None,
		     initstuff = None):
		GeneratorGroup.__init__(self, prefix or name)
		self.name = name
		self.includestuff = includestuff
		self.initstuff = initstuff
		self.finalstuff = finalstuff
Ejemplo n.º 4
0
	def __init__(self, name, prefix = None,
		     includestuff = None,
		     finalstuff = None,
		     initstuff = None,
		     variablestuff = None):
		GeneratorGroup.__init__(self, prefix or name)
		self.name = name
		self.includestuff = includestuff
		self.initstuff = initstuff
		self.finalstuff = finalstuff
		self.variablestuff = variablestuff
		self.typeobjects = []
	def __init__(self, name, prefix, itselftype):
		"""ObjectDefinition constructor.  May be extended, but do not override.
		
		- name: the object's official name, e.g. 'SndChannel'.
		- prefix: the prefix used for the object's functions and data, e.g. 'SndCh'.
		- itselftype: the C type actually contained in the object, e.g. 'SndChannelPtr'.
		
		XXX For official Python data types, rules for the 'Py' prefix are a problem.
		"""
		
		GeneratorGroup.__init__(self, prefix or name)
		self.name = name
		self.itselftype = itselftype
		self.objecttype = name + 'Object'
		self.typename = name + '_Type'
		self.argref = ""	# set to "*" if arg to <type>_New should be pointer
		self.static = "static " # set to "" to make <type>_New and <type>_Convert public
		self.basechain = "NULL" # set to &<basetype>_chain to chain methods
Ejemplo n.º 6
0
	def __init__(self, name, prefix, itselftype):
		"""ObjectDefinition constructor.  May be extended, but do not override.
		
		- name: the object's official name, e.g. 'SndChannel'.
		- prefix: the prefix used for the object's functions and data, e.g. 'SndCh'.
		- itselftype: the C type actually contained in the object, e.g. 'SndChannelPtr'.
		
		XXX For official Python data types, rules for the 'Py' prefix are a problem.
		"""
		
		GeneratorGroup.__init__(self, prefix or name)
		self.name = name
		self.itselftype = itselftype
		self.objecttype = name + 'Object'
		self.typename = name + '_Type'
		self.argref = ""	# set to "*" if arg to <type>_New should be pointer
		self.static = "static " # set to "" to make <type>_New and <type>_Convert public
		self.basechain = "NULL" # set to &<basetype>_chain to chain methods
Ejemplo n.º 7
0
    def generate(self):
        # XXX This should use long strings and %(varname)s substitution!

        OutHeader2("Object type " + self.name)

        sf = self.static and "static "
        Output("%sPyTypeObject %s;", sf, self.typename)
        Output()
        Output("#define %s_Check(x) ((x)->ob_type == &%s || PyObject_TypeCheck((x), &%s))",
               self.prefix, self.typename, self.typename)
        Output()
        Output("typedef struct %s {", self.objecttype)
        IndentLevel()
        Output("PyObject_HEAD")
        self.outputStructMembers()
        DedentLevel()
        Output("} %s;", self.objecttype)

        self.outputNew()

        self.outputConvert()

        self.outputDealloc()

        GeneratorGroup.generate(self)

        Output()
        self.outputMethodChain()

        self.outputGetattr()

        self.outputSetattr()

        self.outputCompare()

        self.outputRepr()

        self.outputHash()

        self.outputPEP253Hooks()

        self.outputTypeObject()

        OutHeader2("End object type " + self.name)
Ejemplo n.º 8
0
    def __init__(self, name, prefix, itselftype):
        """ObjectDefinition constructor.  May be extended, but do not override.

        - name: the object's official name, e.g. 'SndChannel'.
        - prefix: the prefix used for the object's functions and data, e.g. 'SndCh'.
        - itselftype: the C type actually contained in the object, e.g. 'SndChannelPtr'.

        XXX For official Python data types, rules for the 'Py' prefix are a problem.
        """

        GeneratorGroup.__init__(self, prefix or name)
        self.name = name
        self.itselftype = itselftype
        self.objecttype = name + 'Object'
        self.typename = name + '_Type'
        self.static = "static " # set to "" to make <type>_New and <type>_Convert public
        self.modulename = None
        if hasattr(self, "assertions"):
            self.assertions()
    def __init__(self, name, prefix, itselftype):
        """ObjectDefinition constructor.  May be extended, but do not override.

        - name: the object's official name, e.g. 'SndChannel'.
        - prefix: the prefix used for the object's functions and data, e.g. 'SndCh'.
        - itselftype: the C type actually contained in the object, e.g. 'SndChannelPtr'.

        XXX For official Python data types, rules for the 'Py' prefix are a problem.
        """

        GeneratorGroup.__init__(self, prefix or name)
        self.name = name
        self.itselftype = itselftype
        self.objecttype = name + 'Object'
        self.typename = name + '_Type'
        self.static = "static " # set to "" to make <type>_New and <type>_Convert public
        self.modulename = None
        if hasattr(self, "assertions"):
            self.assertions()
Ejemplo n.º 10
0
    def generate(self):
        # XXX This should use long strings and %(varname)s substitution!

        OutHeader2("Object type " + self.name)

        self.outputCheck()

        Output("typedef struct %s {", self.objecttype)
        IndentLevel()
        Output("PyObject_HEAD")
        self.outputStructMembers()
        DedentLevel()
        Output("} %s;", self.objecttype)

        self.outputNew()

        self.outputConvert()

        self.outputDealloc()

        GeneratorGroup.generate(self)

        Output()
        self.outputMethodChain()

        self.outputGetattr()

        self.outputSetattr()

        self.outputCompare()

        self.outputRepr()

        self.outputHash()

        self.outputPEP253Hooks()

        self.outputTypeObject()

        OutHeader2("End object type " + self.name)
    def generate(self):
        # XXX This should use long strings and %(varname)s substitution!

        OutHeader2("Object type " + self.name)

        self.outputCheck()

        Output("typedef struct %s {", self.objecttype)
        IndentLevel()
        Output("PyObject_HEAD")
        self.outputStructMembers()
        DedentLevel()
        Output("} %s;", self.objecttype)

        self.outputNew()

        self.outputConvert()

        self.outputDealloc()

        GeneratorGroup.generate(self)

        Output()
        self.outputMethodChain()

        self.outputGetattr()

        self.outputSetattr()

        self.outputCompare()

        self.outputRepr()

        self.outputHash()

        self.outputPEP253Hooks()

        self.outputTypeObject()

        OutHeader2("End object type " + self.name)
	def generate(self):
		# XXX This should use long strings and %(varname)s substitution!

		OutHeader2("Object type " + self.name)

		sf = self.static and "staticforward "
		Output("%sPyTypeObject %s;", sf, self.typename)
		Output()
		Output("#define %s_Check(x) ((x)->ob_type == &%s)",
		       self.prefix, self.typename)
		Output()
		Output("typedef struct %s {", self.objecttype)
		IndentLevel()
		Output("PyObject_HEAD")
		self.outputStructMembers()
		DedentLevel()
		Output("} %s;", self.objecttype)

		self.outputNew()
		
		self.outputConvert()

		self.outputDealloc()

		GeneratorGroup.generate(self)

		Output()
		Output("%sPyMethodChain %s_chain = { %s_methods, %s };",
		        self.static,    self.prefix, self.prefix, self.basechain)

		self.outputGetattr()

		self.outputSetattr()
		
		self.outputTypeObject()

		OutHeader2("End object type " + self.name)
Ejemplo n.º 13
0
 def add(self, g, dupcheck=0):
     g.setselftype(self.objecttype, self.itselftype)
     GeneratorGroup.add(self, g, dupcheck)
Ejemplo n.º 14
0
from bgenOutput import *
Ejemplo n.º 15
0
from bgenOutput import *
Ejemplo n.º 16
0
from bgenOutput import *
Ejemplo n.º 17
0
from bgenOutput import *
	def add(self, g):
		g.setselftype(self.objecttype, self.itselftype)
		GeneratorGroup.add(self, g)
Ejemplo n.º 19
0
	def add(self, g):
		g.setselftype(self.objecttype, self.itselftype)
		GeneratorGroup.add(self, g)