questions on python script compiling for embedding

Collapse
This topic is closed.
X
X
 
  • Time
  • Show
Clear All
new posts
  • phoolimin@gmail.com

    #1

    questions on python script compiling for embedding

    Dear all,

    I am trying to embed python into another scripting language, to do this
    I need to solve a number of problems on importing or compiling python
    script. First let me state what exactly I want to do, that is, I want
    the following syntax to be supported in the host language which I am
    developing:

    ############### ############### ############### #########
    # scripts in the host language

    routine Test()
    do
    println("printe d by Test()");
    end

    global astring = "ASTRING";

    # begin python scripts:
    @begin(python)

    def PyTest( s ):
    print s
    return 1000;

    # access global variables from the host scripts
    pystring = astring;

    # call function defined in the host script:
    Test();

    @end(python)

    # call a python function:
    n = PyTest( "invoke python function" );

    ############### ############### ############### #########

    So there are the following problems come out naturally:

    #1. can I compile a block of python script to get the list of
    variables, classes and functions etc. (or at least the names) without
    executing?

    Because I need the host script to see the python definitions.

    The Py_CompileStrin gFlags() seems to do the work. But it returns a code
    object, which I don't know exactly and if it is possible to get the
    list of variables, classes and functions from this kind of object.

    ##2. Can I pass a list global variables for such compiling?

    Because I need python scripts also see the variables functions etc.
    defined in the host scripts.

    *********
    For these two problem, a C API like this would be pefect:
    PyObject* Py_CompileStrin gFlagsXXX( const char *str, const char *file,
    int start, PyObject *module, PyCompilerFlags *flags );

    Different from Py_CompileStrin gFlags(), this function should take
    another parameter (Python module object), which serve as a
    **namespace**, to solve undefined names in the souce "str", and store
    global variables, functions and classes etc defined in this source
    string.

    So the third question is:

    ###3. Is there some way, or how to do such thing as
    Py_CompileStrin gFlagsXXX() would do???

    Of course, I do not expect such API should be added soon or even added.

    Thanks a lot,

    Limin

Working...