import reflect import sys RandomAccessFile = reflect.get_class('java.io.RandomAccessFile') System = reflect.get_class('java.lang.System') class JavaFile: def __init__(self, input=None, output=None): self.in_f = input self.out_f = output def read(self, size=1000000000): # power not yet implemented = 2**30 result = [] dest = bytearray(1024) while size: if size < 1024: buff = size else: buff = 1024 n = self.in_f.read(dest, 0, buff) if n in (0, -1): break size -= n result.append(dest.to_string(0, n)) return ''.join(result) def read_char(self): code = self.in_f.read() return chr(code) if code != -1 else ''
import reflect import os Socket = reflect.get_class('java.net.Socket') class socket: def __init__(self): pass def connect(self, address): (addr, port) = address self._socket = Socket.new(addr, port) def makefile(self, mode='r+'): return os.JavaFile(self._socket.getInputStream(), self._socket.getOutputStream())
def deep_recur(i): if i != 0: return deep_recur(i - 1) deep_recur(3000) s = '123' * 3000 a = [] for i in xrange(10): a.append(s) assert ''.join(a) == s * 10 import reflect f = reflect.get_class('java.io.FileInputStream') file = f.new('main.py') assert file.read() == 35 # 35 is code of '#' import os f = os.File('main.py') assert f.read(20) == "# Copyright (C) 2011" l = [1, 2, 3] l2 = list(xrange(20)) assert max(2, 3, 1, 5, 3) == 5 assert max(2, 3, 1) == 3 assert max([1, 2, 3]) == 3
import reflect JFrame = reflect.get_class('javax.swing.JFrame') JButton = reflect.get_class('javax.swing.JButton') ActionListener = reflect.get_class('java.awt.event.ActionListener') def click(ev): print 'Hello world!' f = JFrame.new() f.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE) button = JButton.new('Hello, world!') button.addActionListener( reflect.implement(ActionListener, {'actionPerformed': click})) f.add(button) f.pack() f.setVisible(True)
import reflect JFrame = reflect.get_class('javax.swing.JFrame') JButton = reflect.get_class('javax.swing.JButton') ActionListener = reflect.get_class('java.awt.event.ActionListener') def click(ev): print 'Hello world!' f = JFrame.new() f.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE) button = JButton.new('Hello, world!') button.addActionListener(reflect.implement(ActionListener, {'actionPerformed': click})) f.add(button) f.pack() f.setVisible(True)
import reflect import sys RandomAccessFile = reflect.get_class('java.io.RandomAccessFile') System = reflect.get_class('java.lang.System') class JavaFile: def __init__(self, input=None, output=None): self.in_f = input self.out_f = output def read(self, size=1000000000): # power not yet implemented = 2**30 result = [] dest = bytearray(1024) while size: if size < 1024: buff = size else: buff = 1024 n = self.in_f.read(dest, 0, buff) if n in (0, -1): break size -= n result.append(dest.to_string(0, n)) return ''.join(result) def read_char(self): code = self.in_f.read() return chr(code) if code != -1 else '' def readline(self):
import reflect System = reflect.get_class('java.lang.System') def clock(): return System.currentTimeMillis() / 1000.