From: Susan A. R. P. <rp...@ve...> - 2013-11-02 21:22:04
|
<html><head> <link media="all" type="text/css" href="/webmail/static/deg/css/wysiwyg-3933289048.css" rel="stylesheet"> </head> <body> Same result. The Module is there but the code is not loaded / run.<br><br><br>Nov 2, 2013 01:20:18 PM, jem...@fr... wrote:<br><blockquote style="border-left: 3px solid rgb(102, 153, 204)">I haven't done this, but from a quick perusal of org/python/core/imp.java<br>it looks like you can call imp.createFromCode(String name, PyCode c, String moduleLocation).<br>First you would need to compile your embedded source to get a PyCode by<br>calling PythonInterpreter.compile. So my guess is you'd do this:<br><br> PyCode code = allocator.compile(SCRIPTCODE);<br> PyModule module = imp.createFromCode("X",code,"embedded script");<br> allocator.exec("a = X.Test();");<br><br><br><br><br><br><br>On 11/2/2013 5:02 AM, Susan And Richard Pike wrote:<br>> I am using the embedded interpreter and would like to add embedded script code as a module. Alas I am stuck.<br>><br>> example below:<br>><br>> package testjython;<br>><br>> import java.io.ByteArrayInputStream;<br>> import java.io.InputStream;<br>> import org.python.util.PythonInterpreter;<br>><br>> public class TestJYTHON {<br>><br>> static String SCRIPTCODE = "import sys\n" +<br>> "\n" +<br>> "class Test:\n" +<br>> " def __init__(self):\n" +<br>> " self.name = \"Test\"\n";<br>><br>> <br>> <br>> public static void main(String[] args) {<br>><br>> InputStream stream = new ByteArrayInputStream(SCRIPTCODE.getBytes());<br>> <br>> PythonInterpreter allocator = new PythonInterpreter();<br>> <br>> // Import as module "X"<br>> allocator.execfile(stream, SCRIPTCODE);<br>> <br>> allocator.exec("a = X.Test");<br>> }<br>> }<br>><br>> ------------------------------------------------------------------------------<br>> Android is increasing in popularity, but the open development platform that<br>> developers love is also attractive to malware creators. Download this white<br>> paper to learn more about secure code signing practices that can help keep<br>> Android apps secure.<br>> http://pubads.g.doubleclick.net/gampad/clk?id=65839951&iu=/4140/ostg.clktrk<br>> _______________________________________________<br>> Jython-dev mailing list<br>> Jyt...@li...<br>> https://lists.sourceforge.net/lists/listinfo/jython-dev<br><br><br>------------------------------------------------------------------------------<br>Android is increasing in popularity, but the open development platform that<br>developers love is also attractive to malware creators. Download this white<br>paper to learn more about secure code signing practices that can help keep<br>Android apps secure.<br>http://pubads.g.doubleclick.net/gampad/clk?id=65839951&iu=/4140/ostg.clktrk<br>_______________________________________________<br>Jython-dev mailing list<br>Jyt...@li...<br>https://lists.sourceforge.net/lists/listinfo/jython-dev<br></blockquote> </body></html> |
From: rpike <rp...@ve...> - 2013-11-02 22:41:15
|
Thankyou so much for this. Truly appreciated.... I'd rather be riding.... -------- Original message -------- From: Jeff Emanuel <jem...@fr...> Date: 11/02/2013 5:57 PM (GMT-05:00) To: jyt...@li... Subject: Re: [Jython-dev] Adding Code As A Module This works for me: import java.io.ByteArrayInputStream; import java.io.InputStream; import org.python.util.PythonInterpreter; import org.python.core.*; public class TestJYTHON { static String SCRIPTCODE = "import sys\n" + "\n" + "class Test:\n" + " def __init__(self):\n" + " self.name = \"Test\"\n"; public static void main(String[] args) { InputStream stream = new ByteArrayInputStream(SCRIPTCODE.getBytes()); PythonInterpreter allocator = new PythonInterpreter(); PyCode code = allocator.compile(SCRIPTCODE); PyObject module = imp.createFromCode("X",code,"embedded script"); allocator.exec("import sys\n"); allocator.exec("X=sys.modules['X']\n"); allocator.exec("a = X.Test()\n"); allocator.exec("print a\n"); } } On 11/2/2013 3:21 PM, Susan And Richard Pike wrote: Same result. The Module is there but the code is not loaded / run. Nov 2, 2013 01:20:18 PM, jem...@fr... wrote: I haven't done this, but from a quick perusal of org/python/core/imp.java it looks like you can call imp.createFromCode(String name, PyCode c, String moduleLocation). First you would need to compile your embedded source to get a PyCode by calling PythonInterpreter.compile. So my guess is you'd do this: PyCode code = allocator.compile(SCRIPTCODE); PyModule module = imp.createFromCode("X",code,"embedded script"); allocator.exec("a = X.Test();"); On 11/2/2013 5:02 AM, Susan And Richard Pike wrote: > I am using the embedded interpreter and would like to add embedded script code as a module. Alas I am stuck. > > example below: > > package testjython; > > import java.io.ByteArrayInputStream; > import java.io.InputStream; > import org.python.util.PythonInterpreter; > > public class TestJYTHON { > > static String SCRIPTCODE = "import sys\n" + > "\n" + > "class Test:\n" + > " def __init__(self):\n" + > " self.name = \"Test\"\n"; > > > > public static void main(String[] args) { > > InputStream stream = new ByteArrayInputStream(SCRIPTCODE.getBytes()); > > PythonInterpreter allocator = new PythonInterpreter(); > > // Import as module "X" > allocator.execfile(stream, SCRIPTCODE); > > allocator.exec("a = X.Test"); > } > } > > ------------------------------------------------------------------------------ > Android is increasing in popularity, but the open development platform that > developers love is also attractive to malware creators. Download this white > paper to learn more about secure code signing practices that can help keep > Android apps secure. > http://pubads.g.doubleclick.net/gampad/clk?id=65839951&iu=/4140/ostg.clktrk > _______________________________________________ > Jython-dev mailing list > Jyt...@li... > https://lists.sourceforge.net/lists/listinfo/jython-dev ------------------------------------------------------------------------------ Android is increasing in popularity, but the open development platform that developers love is also attractive to malware creators. Download this white paper to learn more about secure code signing practices that can help keep Android apps secure. http://pubads.g.doubleclick.net/gampad/clk?id=65839951&iu=/4140/ostg.clktrk _______________________________________________ Jython-dev mailing list Jyt...@li... https://lists.sourceforge.net/lists/listinfo/jython-dev ------------------------------------------------------------------------------ Android is increasing in popularity, but the open development platform that developers love is also attractive to malware creators. Download this white paper to learn more about secure code signing practices that can help keep Android apps secure. http://pubads.g.doubleclick.net/gampad/clk?id=65839951&iu=/4140/ostg.clktrk _______________________________________________ Jython-dev mailing list Jyt...@li... https://lists.sourceforge.net/lists/listinfo/jython-dev |
From: Susan A. R. P. <rp...@ve...> - 2013-11-08 02:53:08
|
Heres a follow up. I added the code in and came accross the next problem. If I load a module that imports another module the im.createFromCode fails because the dependancy (import) of the other module is not loaded. Is there any way I can compile the module and then determine what imports the compiled code requires to execute correctly. example Module 1 class X(object): def __init__(self): self.Name = "Richard" Module 2: import X class Y(object): def __init__(self): self.Name = "Pike" self.xInstance = X() // If I compile X I should really compile and load Y first. Is there an easy way to determine this dependancy? Nov 2, 2013 05:57:25 PM, jem...@fr... wrote: =========================================== This works for me: import java.io.ByteArrayInputStream; import java.io.InputStream; import org.python.util.PythonInterpreter; import org.python.core.*; public class TestJYTHON { static String SCRIPTCODE = "import sys\n" + "\n" + "class Test:\n" + " def __init__(self):\n" + " self.name = \"Test\"\n"; public static void main(String[] args) { InputStream stream = new ByteArrayInputStream(SCRIPTCODE.getBytes()); PythonInterpreter allocator = new PythonInterpreter(); PyCode code = allocator.compile(SCRIPTCODE); PyObject module = imp.createFromCode("X",code,"embedded script"); allocator.exec("import sys\n"); allocator.exec("X=sys.modules['X']\n"); allocator.exec("a = X.Test()\n"); allocator.exec("print a\n"); } } On 11/2/2013 3:21 PM, Susan And Richard Pike wrote: Same result. The Module is there but the code is not loaded / run. Nov 2, 2013 01:20:18 PM, jem...@fr... wrote: I haven't done this, but from a quick perusal of org/python/core/imp.java it looks like you can call imp.createFromCode(String name, PyCode c, String moduleLocation). First you would need to compile your embedded source to get a PyCode by calling PythonInterpreter.compile. So my guess is you'd do this: PyCode code = allocator.compile(SCRIPTCODE); PyModule module = imp.createFromCode("X",code,"embedded script"); allocator.exec("a = X.Test();"); On 11/2/2013 5:02 AM, Susan And Richard Pike wrote: > I am using the embedded interpreter and would like to add embedded script code as a module. Alas I am stuck. > > example below: > > package testjython; > > import java.io.ByteArrayInputStream; > import java.io.InputStream; > import org.python.util.PythonInterpreter; > > public class TestJYTHON { > > static String SCRIPTCODE = "import sys\n" + > "\n" + > "class Test:\n" + > " def __init__(self):\n" + > " self.name = \"Test\"\n"; > > > > public static void main(String[] args) { > > InputStream stream = new ByteArrayInputStream(SCRIPTCODE.getBytes()); > > PythonInterpreter allocator = new PythonInterpreter(); > > // Import as module "X" > allocator.execfile(stream, SCRIPTCODE); > > allocator.exec("a = X.Test"); > } > } > > ------------------------------------------------------------------------------ > Android is increasing in popularity, but the open development platform that > developers love is also attractive to malware creators. Download this white > paper to learn more about secure code signing practices that can help keep > Android apps secure. > http://pubads.g.doubleclick.net/gampad/clk?id=65839951&iu=/4140/ostg.clktrk > _______________________________________________ > Jython-dev mailing list > Jyt...@li... > https://lists.sourceforge.net/lists/listinfo/jython-dev ------------------------------------------------------------------------------ Android is increasing in popularity, but the open development platform that developers love is also attractive to malware creators. Download this white paper to learn more about secure code signing practices that can help keep Android apps secure. http://pubads.g.doubleclick.net/gampad/clk?id=65839951&iu=/4140/ostg.clktrk _______________________________________________ Jython-dev mailing list Jyt...@li... https://lists.sourceforge.net/lists/listinfo/jython-dev ------------------------------------------------------------------------------ Android is increasing in popularity, but the open development platform that developers love is also attractive to malware creators. Download this white paper to learn more about secure code signing practices that can help keep Android apps secure. http://pubads.g.doubleclick.net/gampad/clk?id=65839951&iu=/4140/ostg.clktrk _______________________________________________ Jython-dev mailing list Jyt...@li... https://lists.sourceforge.net/lists/listinfo/jython-dev ------------------------------------------------------------------------------ Android is increasing in popularity, but the open development platform that developers love is also attractive to malware creators. Download this white paper to learn more about secure code signing practices that can help keep Android apps secure. http://pubads.g.doubleclick.net/gampad/clk?id=65839951&iu=/4140/ostg.clktrk _______________________________________________ Jython-dev mailing list Jyt...@li... https://lists.sourceforge.net/lists/listinfo/jython-dev |
From: Jeff E. <jem...@fr...> - 2013-11-02 21:57:12
|
This works for me: import java.io.ByteArrayInputStream; import java.io.InputStream; import org.python.util.PythonInterpreter; import org.python.core.*; public class TestJYTHON { static String SCRIPTCODE = "import sys\n" + "\n" + "class Test:\n" + " def __init__(self):\n" + " self.name = \"Test\"\n"; public static void main(String[] args) { InputStream stream = new ByteArrayInputStream(SCRIPTCODE.getBytes()); PythonInterpreter allocator = new PythonInterpreter(); PyCode code = allocator.compile(SCRIPTCODE); PyObject module = imp.createFromCode("X",code,"embedded script"); allocator.exec("import sys\n"); allocator.exec("X=sys.modules['X']\n"); allocator.exec("a = X.Test()\n"); allocator.exec("print a\n"); } } On 11/2/2013 3:21 PM, Susan And Richard Pike wrote: > Same result. The Module is there but the code is not loaded / run. > > > Nov 2, 2013 01:20:18 PM, jem...@fr... wrote: > > I haven't done this, but from a quick perusal of org/python/core/imp.java > it looks like you can call imp.createFromCode(String name, PyCode c, String moduleLocation). > First you would need to compile your embedded source to get a PyCode by > calling PythonInterpreter.compile. So my guess is you'd do this: > > PyCode code = allocator.compile(SCRIPTCODE); > PyModule module = imp.createFromCode("X",code,"embedded script"); > allocator.exec("a = X.Test();"); > > > > > > > On 11/2/2013 5:02 AM, Susan And Richard Pike wrote: > > I am using the embedded interpreter and would like to add embedded script code as a module. Alas I am stuck. > > > > example below: > > > > package testjython; > > > > import java.io.ByteArrayInputStream; > > import java.io.InputStream; > > import org.python.util.PythonInterpreter; > > > > public class TestJYTHON { > > > > static String SCRIPTCODE = "import sys\n" + > > "\n" + > > "class Test:\n" + > > " def __init__(self):\n" + > > " self.name = \"Test\"\n"; > > > > > > > > public static void main(String[] args) { > > > > InputStream stream = new ByteArrayInputStream(SCRIPTCODE.getBytes()); > > > > PythonInterpreter allocator = new PythonInterpreter(); > > > > // Import as module "X" > > allocator.execfile(stream, SCRIPTCODE); > > > > allocator.exec("a = X.Test"); > > } > > } > > > > ------------------------------------------------------------------------------ > > Android is increasing in popularity, but the open development platform that > > developers love is also attractive to malware creators. Download this white > > paper to learn more about secure code signing practices that can help keep > > Android apps secure. > > http://pubads.g.doubleclick.net/gampad/clk?id=65839951&iu=/4140/ostg.clktrk > > _______________________________________________ > > Jython-dev mailing list > > Jyt...@li... > > https://lists.sourceforge.net/lists/listinfo/jython-dev > > > ------------------------------------------------------------------------------ > Android is increasing in popularity, but the open development platform that > developers love is also attractive to malware creators. Download this white > paper to learn more about secure code signing practices that can help keep > Android apps secure. > http://pubads.g.doubleclick.net/gampad/clk?id=65839951&iu=/4140/ostg.clktrk > _______________________________________________ > Jython-dev mailing list > Jyt...@li... > https://lists.sourceforge.net/lists/listinfo/jython-dev > > > > ------------------------------------------------------------------------------ > Android is increasing in popularity, but the open development platform that > developers love is also attractive to malware creators. Download this white > paper to learn more about secure code signing practices that can help keep > Android apps secure. > http://pubads.g.doubleclick.net/gampad/clk?id=65839951&iu=/4140/ostg.clktrk > > > _______________________________________________ > Jython-dev mailing list > Jyt...@li... > https://lists.sourceforge.net/lists/listinfo/jython-dev |