All Downloads are FREE. Search and download functionalities are using the official Maven repository.

Misc.__run__.py Maven / Gradle / Ivy

Go to download

Jython is an implementation of the high-level, dynamic, object-oriented language Python written in 100% Pure Java, and seamlessly integrated with the Java platform. It thus allows you to run Python on any Java platform.

There is a newer version: 2.7.4
Show newest version
# Copyright ? Corporation for National Research Initiatives
import sys, os, java, jarray

# The global `zipfile' is magically inserted by jpython -jar.  IMO this is
# somewhat bogus.  See org/python/util/jpython.java for alternatives

def fixname(s):
    result = []
    lasti = 0
    for i in range(len(s)):
	if s[i] == '/':
	    result.append(s[lasti:i])
	    lasti = i+1
    result.append(s[lasti:])
    return apply(os.path.join, tuple(result))


entries = zipfile.entries()

outdir = sys.prefix #os.path.join(sys.prefix, 'Lib')

print 'Installing to:', outdir

buffer = jarray.zeros(1024, 'b')

testdir = os.path.join(outdir, 'Lib', 'test')
if not os.path.exists(testdir):
    os.mkdir(testdir)

while entries.hasMoreElements():
    entry = entries.nextElement()

    if entry.isDirectory():
	continue

    infile = zipfile.getInputStream(entry)

    name = fixname(entry.getName())

    if name == '__run__.py':
	continue

    outname = os.path.join(outdir, name)

    outfile = java.io.FileOutputStream(outname)

##    print entry.getSize(), entry.getMethod(), entry.DEFLATED

##    if entry.getMethod() == entry.DEFLATED:
##	infile = java.util.zip.GZIPInputStream(infile)

    bytes = entry.getSize() #infile.available()

    print 'copying %s to %s (%d bytes)' % (name, outname, bytes)

    while 1:
	n = infile.read(buffer)
	if n == -1:
	    break
	outfile.write(buffer, 0, n)

    infile.close()
    outfile.close()


print 'Now precompiling library...'
print

import sys, os
import compileall

lib = os.path.join(sys.prefix, 'Lib')
compileall.compile_dir(lib)

print
print 'Installation of Python libraries is complete'




© 2015 - 2024 Weber Informatics LLC | Privacy Policy