|
From: Brad C. <bk...@mu...> - 2001-01-10 15:47:37
|
For some reason the @sig line in the code below doesn't work. The
resulting .java file doesn't have a public Put() method..
I added java.lang to the String type to see if that would fix it.. no go (the
web docs say that all types *except* those in java.lang need to be fully
specified, yet the example on the web page does have java.lang.String
spelled out).
Does anyone have any ideas?
-- Python Code --
# FTPClient
from ftplib import FTP
class FTPClient:
def __init__(self):
pass
def Put(self,host,user,passwd,fileName,filePath):
"@sig public void Put(java.lang.String host, java.lang.String user,
java.lang.String passwd, java.lang.String fileName, java.lang.String
filePath)"
ftp = FTP(host,user,passwd)
file = open(filePath,"rb");
ftp.storbinary("stor "+fileName,file,512)
ftp.quit()
--- Resulting Java Class
package tinitools;
import org.python.core.*;
public class FTPClient extends java.lang.Object {
static String[] jpy$properties = new String[] {"python.modules.builtin", "exceptions:org.python.core.exceptions", "python.options.showJavaExceptions", "true"};
static String[] jpy$packages = new String[] {"org.python.core", null, "java.lang", null, "java.io", null, "java.net", null};
public static class _PyInner extends PyFunctionTable implements PyRunnable {
private static PyObject s$0;
private static PyObject s$1;
private static PyObject s$2;
private static PyObject s$3;
private static PyObject i$4;
private static PyFunctionTable funcTable;
private static PyCode c$0___init__;
private static PyCode c$1_Put;
private static PyCode c$2_FTPClient;
private static PyCode c$3_main;
private static void initConstants() {
s$0 = Py.newString("E:\\prj\\src\\jbuilder\\tini\\python\\FTPClient.py");
s$1 = Py.newString("@sig public void Put(java.lang.String host, java.lang.String user, java.lang.String passwd, java.lang.String fileName, java.lang.String filePath)");
s$2 = Py.newString("rb");
s$3 = Py.newString("stor ");
i$4 = Py.newInteger(512);
funcTable = new _PyInner();
c$0___init__ = Py.newCode(1, new String[] {"self"}, "E:\\prj\\src\\jbuilder\\tini\\python\\FTPClient.py", "__init__", false, false, funcTable, 0);
c$1_Put = Py.newCode(6, new String[] {"self", "host", "user", "passwd", "fileName", "filePath", "ftp", "file"}, "E:\\prj\\src\\jbuilder\\tini\\python\\FTPClient.py", "Put", false, false, funcTable, 1);
c$2_FTPClient = Py.newCode(0, new String[] {"__init__", "Put"}, "E:\\prj\\src\\jbuilder\\tini\\python\\FTPClient.py", "FTPClient", false, false, funcTable, 2);
c$3_main = Py.newCode(0, new String[] {}, "E:\\prj\\src\\jbuilder\\tini\\python\\FTPClient.py", "main", false, false, funcTable, 3);
}
public PyCode getMain() {
if (c$3_main == null) _PyInner.initConstants();
return c$3_main;
}
public PyObject call_function(int index, PyFrame frame) {
switch (index){
case 0:
return _PyInner.__init__$1(frame);
case 1:
return _PyInner.Put$2(frame);
case 2:
return _PyInner.FTPClient$3(frame);
case 3:
return _PyInner.main$4(frame);
default:
return null;
}
}
private static PyObject __init__$1(PyFrame frame) {
// pass
return Py.None;
}
private static PyObject Put$2(PyFrame frame) {
/* @sig public void Put(java.lang.String host, java.lang.String user, java.lang.String passwd, java.lang.String fileName, java.lang.String filePath) */
frame.setlocal(6, frame.getglobal("FTP").__call__(frame.getlocal(1), frame.getlocal(2), frame.getlocal(3)));
frame.setlocal(7, frame.getglobal("open").__call__(frame.getlocal(5), s$2));
frame.getlocal(6).invoke("storbinary", new PyObject[] {s$3._add(frame.getlocal(4)), frame.getlocal(7), i$4});
frame.getlocal(6).invoke("quit");
return Py.None;
}
private static PyObject FTPClient$3(PyFrame frame) {
frame.setlocal("__init__", new PyFunction(frame.f_globals, new PyObject[] {}, c$0___init__));
frame.setlocal("Put", new PyFunction(frame.f_globals, new PyObject[] {}, c$1_Put));
return frame.getf_locals();
}
private static PyObject main$4(PyFrame frame) {
frame.setglobal("__file__", s$0);
org.python.core.imp.importFromAs("ftplib", new String[] {"FTP"}, new String[] {"FTP"}, frame);
frame.setglobal("FTPClient", Py.makeClass("FTPClient", new PyObject[] {}, c$2_FTPClient, null));
return Py.None;
}
}
public static void moduleDictInit(PyObject dict) {
dict.__setitem__("__name__", new PyString("FTPClient"));
Py.runCode(new _PyInner().getMain(), dict, dict);
}
public static void main(String[] args) {
String[] newargs = new String[args.length+1];
newargs[0] = "FTPClient";
System.arraycopy(args, 0, newargs, 1, args.length);
Py.runMain("tinitools.FTPClient$_PyInner", newargs, jpy$packages, jpy$properties, "tinitools", new String[] {"FTPClient", "sre_compile", "javapath", "sre_constants", "sre_parse", "string", "copy_reg", "ftplib", "javaos", "socket", "re", "sre"});
}
}
Brad Clements, bk...@mu... (315)268-1000
http://www.murkworks.com (315)268-9812 Fax
netmeeting: ils://ils.murkworks.com AOL-IM: BKClements
|