From: Paul G. <pau...@so...> - 2002-03-14 08:32:58
|
Here is a variation on the method described below. It assumes that you have the python code that defines your methods stored in a Sting. This allows you to retrieve the function definitions from a database, resource, hardcoded string, etc. static final String code = "def helloWorld():\n print 'Hello World\n'"; // example using a hardcoded string .... interp_ = new InteractiveConsole(); code = code.trim(); StringTokenizer st = new StringTokenizer (code, System.getProperty("line.separator")); while (st.hasMoreTokens()) { String lineOfCode = st.nextToken(); interp_.push(lineOfCode); } .... -Paul >>- I would also like to expose some python functions into the global >>namespace of any executed python script. These functions are actually >>implemented in Java and provide some app-specific functionality to the >>python environment. >> > >I'm not one of the 'experts', but this is how I do it and it seems to work= > fine; just 'execfile' the file with the functions: > > InputStream functionFileStream =3D FileIO.FindFileOrStream(= > functionListName, dataPath, "functions", debugLevel); > python.execfile( functionFileStream, functionListName); // pass the name= > for parsing errors > >This way the names are scoped into the top level. > >(My 'FindFileOrStream' finds the function file in a file or jar in the= > 'dataPath'. I have a list of functions files in an XML configuration= > file.) > >- Jim > > -- Paul Giotta Software Architect Technoparkstrasse 1, CH-8005 Zurich. Email: pau...@So... Home Page WWW: http://www.softwired-inc.com *Next stop UBIQUITY!* Office: +41 1 4452370 | Fax: +41 1 4452372 | Mobile: +41 76 389 1180 *** Go Mobile: Out NOW: iBus//Mobile 2.1 *** ***iBus//MessageServer 4.5 with XA extensions*** |