Thread: python - be: Implement C Interface for extension module and have the PL

python - be: Implement C Interface for extension module and have the PL

From
jwp@pgfoundry.org (James William Pye)
Date:
Log Message:
-----------
Implement C Interface for extension module and have the PL use it.

Accessing the objects in the extension module meant getting all the attributes
one needed. Now, only one attribute need be gotten by a C user, "CI". While not
all functions are yet provided, the ones pl.c needs have been along with the
necessary entries to initialize the PL in the extension module. This simplifies
the process greatly as there is now no need to pass around CObjects to tp_new
routines via Python object calls, as PLCall_Initialize and Pull_Initialize may
be directly called.

Fixes bug todo #1000300,
http://pgfoundry.org/tracker/index.php?func=detail&aid=1000300&group_id=1000094&atid=442
Various other fixes and touchups.

Modified Files:
--------------
    be:
        setup.py (r1.9 -> r1.10)
        (http://cvs.pgfoundry.org/cgi-bin/cvsweb.cgi/python/be/setup.py.diff?r1=1.9&r2=1.10)
    be/include/pypg:
        error.h (r1.3 -> r1.4)
        (http://cvs.pgfoundry.org/cgi-bin/cvsweb.cgi/python/be/include/pypg/error.h.diff?r1=1.3&r2=1.4)
        externs.h (r1.7 -> r1.8)
        (http://cvs.pgfoundry.org/cgi-bin/cvsweb.cgi/python/be/include/pypg/externs.h.diff?r1=1.7&r2=1.8)
        type.h (r1.4 -> r1.5)
        (http://cvs.pgfoundry.org/cgi-bin/cvsweb.cgi/python/be/include/pypg/type.h.diff?r1=1.4&r2=1.5)
    be/include/pypg/call:
        pl.h (r1.3 -> r1.4)
        (http://cvs.pgfoundry.org/cgi-bin/cvsweb.cgi/python/be/include/pypg/call/pl.h.diff?r1=1.3&r2=1.4)
        trigger.h (r1.3 -> r1.4)
        (http://cvs.pgfoundry.org/cgi-bin/cvsweb.cgi/python/be/include/pypg/call/trigger.h.diff?r1=1.3&r2=1.4)
    be/src:
        __init__.py (r1.1.1.1 -> r1.2)
        (http://cvs.pgfoundry.org/cgi-bin/cvsweb.cgi/python/be/src/__init__.py.diff?r1=1.1.1.1&r2=1.2)
        conv.c (r1.4 -> r1.5)
        (http://cvs.pgfoundry.org/cgi-bin/cvsweb.cgi/python/be/src/conv.c.diff?r1=1.4&r2=1.5)
        function.c (r1.3 -> r1.4)
        (http://cvs.pgfoundry.org/cgi-bin/cvsweb.cgi/python/be/src/function.c.diff?r1=1.3&r2=1.4)
        globals.c (r1.6 -> r1.7)
        (http://cvs.pgfoundry.org/cgi-bin/cvsweb.cgi/python/be/src/globals.c.diff?r1=1.6&r2=1.7)
        module.c (r1.11 -> r1.12)
        (http://cvs.pgfoundry.org/cgi-bin/cvsweb.cgi/python/be/src/module.c.diff?r1=1.11&r2=1.12)
        namespace.c (r1.2 -> r1.3)
        (http://cvs.pgfoundry.org/cgi-bin/cvsweb.cgi/python/be/src/namespace.c.diff?r1=1.2&r2=1.3)
        object.c (r1.6 -> r1.7)
        (http://cvs.pgfoundry.org/cgi-bin/cvsweb.cgi/python/be/src/object.c.diff?r1=1.6&r2=1.7)
        pl.c (r1.10 -> r1.11)
        (http://cvs.pgfoundry.org/cgi-bin/cvsweb.cgi/python/be/src/pl.c.diff?r1=1.10&r2=1.11)
        relation.c (r1.2 -> r1.3)
        (http://cvs.pgfoundry.org/cgi-bin/cvsweb.cgi/python/be/src/relation.c.diff?r1=1.2&r2=1.3)
        tif.c (r1.4 -> r1.5)
        (http://cvs.pgfoundry.org/cgi-bin/cvsweb.cgi/python/be/src/tif.c.diff?r1=1.4&r2=1.5)
        transaction.c (r1.4 -> r1.5)
        (http://cvs.pgfoundry.org/cgi-bin/cvsweb.cgi/python/be/src/transaction.c.diff?r1=1.4&r2=1.5)
        type.c (r1.6 -> r1.7)
        (http://cvs.pgfoundry.org/cgi-bin/cvsweb.cgi/python/be/src/type.c.diff?r1=1.6&r2=1.7)
        utils.c (r1.6 -> r1.7)
        (http://cvs.pgfoundry.org/cgi-bin/cvsweb.cgi/python/be/src/utils.c.diff?r1=1.6&r2=1.7)
    be/src/call:
        pl.c (r1.4 -> r1.5)
        (http://cvs.pgfoundry.org/cgi-bin/cvsweb.cgi/python/be/src/call/pl.c.diff?r1=1.4&r2=1.5)
        trigger.c (r1.4 -> r1.5)
        (http://cvs.pgfoundry.org/cgi-bin/cvsweb.cgi/python/be/src/call/trigger.c.diff?r1=1.4&r2=1.5)

Added Files:
-----------
    be/include/pypg:
        ci.h (r1.1)

(http://cvs.pgfoundry.org/cgi-bin/cvsweb.cgi/python/be/include/pypg/ci.h?rev=1.1&content-type=text/x-cvsweb-markup)
        cis.h (r1.1)

(http://cvs.pgfoundry.org/cgi-bin/cvsweb.cgi/python/be/include/pypg/cis.h?rev=1.1&content-type=text/x-cvsweb-markup)