Rev 4: Some more basic exploration of using python from java. in http://bzr.arbash-meinel.com/branches/bzr/bzrlib_java_test

John Arbash Meinel john at arbash-meinel.com
Fri Mar 30 18:21:15 BST 2007


At http://bzr.arbash-meinel.com/branches/bzr/bzrlib_java_test

------------------------------------------------------------
revno: 4
revision-id: john at arbash-meinel.com-20070330172114-5xuo3laqvxm4paqh
parent: john at arbash-meinel.com-20070330170126-pm6jbxvamdqp8tf5
committer: John Arbash Meinel <john at arbash-meinel.com>
branch nick: bzrlib_java_test
timestamp: Fri 2007-03-30 12:21:14 -0500
message:
  Some more basic exploration of using python from java.
modified:
  ImportBzrlibTest.java          importbzrlibtest.jav-20070330163449-4vo592rbe92sp2ql-1
  print_tester.py                print_tester.py-20070330170106-i5zfzn47ohmyae79-2
-------------- next part --------------
=== modified file 'ImportBzrlibTest.java'
--- a/ImportBzrlibTest.java	2007-03-30 17:01:26 +0000
+++ b/ImportBzrlibTest.java	2007-03-30 17:21:14 +0000
@@ -47,6 +47,20 @@
             jep.runScript("print_tester.py");
             jep.invoke("just_print", "test_str");
             jep.invoke("write_to_stdout", "test_str");
+            jep.invoke("import_jep_and_print");
+
+            jep.invoke("dir_of_object", jep);
+
+            Object ret1 = jep.invoke("return_py_object");
+            System.out.println("ret1: " + ret1);
+            Object ret2 = jep.invoke("return_py_object", "str");
+            System.out.println("ret2: " + ret2);
+
+            jep.eval("def customFunction(param):\n" +
+                     "  '''this is my function'''\n" +
+                     "  return param + 1\n");
+            System.out.println("custom func: "
+                                + jep.invoke("customFunction", 2));
         } finally {
             if (jep != null)
                 jep.close();

=== modified file 'print_tester.py'
--- a/print_tester.py	2007-03-30 17:01:26 +0000
+++ b/print_tester.py	2007-03-30 17:21:14 +0000
@@ -16,6 +16,7 @@
 
 """Some simple tests for file io"""
 
+import pprint
 import sys
 
 
@@ -27,3 +28,27 @@
 def write_to_stdout(obj):
     """Use sys.stdout.write for different effect."""
     sys.stdout.write('Writing to sys.stdout: %s\n' % (obj,))
+
+
+def import_jep_and_print():
+    """Import the 'jep' module and print info about it."""
+    import jep
+    print 'dir(jep):'
+    pprint.pprint(dir(jep))
+
+def dir_of_object(obj):
+    """Print out the dir() of an object."""
+    print 'dir(obj) [%s]:' % (obj,)
+    pprint.pprint(dir(obj))
+
+
+class BasicClass(object):
+    """Just a very simple class to pass to Java"""
+
+    def __init__(self, value=None):
+        self.value = value
+
+
+def return_py_object(value=None):
+    """Return a python object back to Java."""
+    return BasicClass(value)



More information about the bazaar-commits mailing list