jep 4.2.2__tar.gz → 4.3.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {jep-4.2.2 → jep-4.3.0}/LICENSE +1 -1
- {jep-4.2.2 → jep-4.3.0}/MANIFEST.in +1 -0
- {jep-4.2.2/src/main/python/jep.egg-info → jep-4.3.0}/PKG-INFO +22 -17
- {jep-4.2.2 → jep-4.3.0}/README.rst +5 -7
- {jep-4.2.2 → jep-4.3.0}/commands/java.py +32 -10
- {jep-4.2.2 → jep-4.3.0}/pom.xml +3 -3
- jep-4.3.0/pyproject.toml +48 -0
- jep-4.3.0/release_notes/4.3-notes.rst +33 -0
- {jep-4.2.2 → jep-4.3.0}/setup.py +1 -26
- {jep-4.2.2 → jep-4.3.0}/src/main/c/Include/pyembed.h +24 -7
- {jep-4.2.2 → jep-4.3.0}/src/main/c/Include/pyjarray.h +3 -2
- {jep-4.2.2 → jep-4.3.0}/src/main/c/Include/pyjbuffer.h +1 -4
- {jep-4.2.2 → jep-4.3.0}/src/main/c/Include/pyjclass.h +3 -5
- {jep-4.2.2 → jep-4.3.0}/src/main/c/Include/pyjconstructor.h +3 -5
- {jep-4.2.2 → jep-4.3.0}/src/main/c/Include/pyjfield.h +4 -4
- {jep-4.2.2 → jep-4.3.0}/src/main/c/Include/pyjmethod.h +5 -5
- {jep-4.2.2 → jep-4.3.0}/src/main/c/Include/pyjmonitor.h +2 -7
- {jep-4.2.2 → jep-4.3.0}/src/main/c/Include/pyjmultimethod.h +5 -5
- {jep-4.2.2 → jep-4.3.0}/src/main/c/Include/pyjobject.h +3 -4
- {jep-4.2.2 → jep-4.3.0}/src/main/c/Include/pyjtype.h +3 -1
- {jep-4.2.2 → jep-4.3.0}/src/main/c/Jep/convert_j2p.c +0 -4
- {jep-4.2.2 → jep-4.3.0}/src/main/c/Jep/java_access/Class.c +3 -3
- {jep-4.2.2 → jep-4.3.0}/src/main/c/Jep/jep.c +21 -12
- {jep-4.2.2 → jep-4.3.0}/src/main/c/Jep/jep_numpy.c +32 -4
- {jep-4.2.2 → jep-4.3.0}/src/main/c/Jep/maininterpreter.c +21 -27
- {jep-4.2.2 → jep-4.3.0}/src/main/c/Jep/pyembed.c +347 -275
- {jep-4.2.2 → jep-4.3.0}/src/main/c/Objects/pyjarray.c +72 -140
- {jep-4.2.2 → jep-4.3.0}/src/main/c/Objects/pyjbuffer.c +9 -49
- {jep-4.2.2 → jep-4.3.0}/src/main/c/Objects/pyjclass.c +63 -55
- {jep-4.2.2 → jep-4.3.0}/src/main/c/Objects/pyjconstructor.c +16 -58
- {jep-4.2.2 → jep-4.3.0}/src/main/c/Objects/pyjfield.c +33 -53
- {jep-4.2.2 → jep-4.3.0}/src/main/c/Objects/pyjmethod.c +34 -50
- {jep-4.2.2 → jep-4.3.0}/src/main/c/Objects/pyjmonitor.c +29 -56
- {jep-4.2.2 → jep-4.3.0}/src/main/c/Objects/pyjmultimethod.c +44 -79
- {jep-4.2.2 → jep-4.3.0}/src/main/c/Objects/pyjobject.c +39 -45
- {jep-4.2.2 → jep-4.3.0}/src/main/c/Objects/pyjtype.c +69 -134
- {jep-4.2.2 → jep-4.3.0}/src/main/java/jep/Interpreter.java +46 -1
- {jep-4.2.2 → jep-4.3.0}/src/main/java/jep/Jep.java +84 -30
- {jep-4.2.2 → jep-4.3.0}/src/main/java/jep/JepConfig.java +11 -9
- {jep-4.2.2 → jep-4.3.0}/src/main/java/jep/LibraryLocator.java +19 -17
- {jep-4.2.2 → jep-4.3.0}/src/main/java/jep/MainInterpreter.java +25 -15
- jep-4.3.0/src/main/java/jep/PyConfig.java +436 -0
- {jep-4.2.2 → jep-4.3.0}/src/main/java/jep/python/MemoryManager.java +13 -9
- {jep-4.2.2 → jep-4.3.0}/src/main/python/jep/java_import_hook.py +9 -8
- {jep-4.2.2 → jep-4.3.0}/src/main/python/jep/version.py +1 -1
- {jep-4.2.2 → jep-4.3.0/src/main/python/jep.egg-info}/PKG-INFO +22 -17
- {jep-4.2.2 → jep-4.3.0}/src/main/python/jep.egg-info/SOURCES.txt +6 -0
- jep-4.3.0/src/main/python/jep.egg-info/requires.txt +3 -0
- jep-4.3.0/src/test/java/jep/test/TestAttach.java +191 -0
- jep-4.3.0/src/test/java/jep/test/TestIsolatedSubInterpreter.java +44 -0
- {jep-4.2.2 → jep-4.3.0}/src/test/java/jep/test/TestPreInitVariables.java +15 -15
- {jep-4.2.2 → jep-4.3.0}/src/test/java/jep/test/TestSharedArgv.java +6 -2
- {jep-4.2.2 → jep-4.3.0}/src/test/java/jep/test/TestSubInterpOptions.java +65 -21
- {jep-4.2.2 → jep-4.3.0}/src/test/python/test_allow_python_enquirer.py +0 -3
- jep-4.3.0/src/test/python/test_attach.py +10 -0
- {jep-4.2.2 → jep-4.3.0}/src/test/python/test_import.py +2 -1
- {jep-4.2.2 → jep-4.3.0}/src/test/python/test_preinits.py +2 -1
- {jep-4.2.2 → jep-4.3.0}/src/test/python/test_regressions.py +4 -1
- {jep-4.2.2 → jep-4.3.0}/src/test/python/test_types.py +7 -12
- jep-4.2.2/src/main/java/jep/PyConfig.java +0 -196
- {jep-4.2.2 → jep-4.3.0}/AUTHORS +0 -0
- {jep-4.2.2 → jep-4.3.0}/commands/__init__.py +0 -0
- {jep-4.2.2 → jep-4.3.0}/commands/_msvccompiler.py +0 -0
- {jep-4.2.2 → jep-4.3.0}/commands/build_ext.py +0 -0
- {jep-4.2.2 → jep-4.3.0}/commands/clean.py +0 -0
- {jep-4.2.2 → jep-4.3.0}/commands/dist.py +0 -0
- {jep-4.2.2 → jep-4.3.0}/commands/install_lib.py +0 -0
- {jep-4.2.2 → jep-4.3.0}/commands/javadoc.py +0 -0
- {jep-4.2.2 → jep-4.3.0}/commands/link_util.py +0 -0
- {jep-4.2.2 → jep-4.3.0}/commands/msvc9compiler.py +0 -0
- {jep-4.2.2 → jep-4.3.0}/commands/python.py +0 -0
- {jep-4.2.2 → jep-4.3.0}/commands/scripts.py +0 -0
- {jep-4.2.2 → jep-4.3.0}/commands/test.py +0 -0
- {jep-4.2.2 → jep-4.3.0}/commands/util.py +0 -0
- {jep-4.2.2 → jep-4.3.0}/release_notes/1.0-notes.rst +0 -0
- {jep-4.2.2 → jep-4.3.0}/release_notes/1.1-notes.rst +0 -0
- {jep-4.2.2 → jep-4.3.0}/release_notes/2.0-notes.rst +0 -0
- {jep-4.2.2 → jep-4.3.0}/release_notes/2.1-notes.rst +0 -0
- {jep-4.2.2 → jep-4.3.0}/release_notes/2.2-notes.rst +0 -0
- {jep-4.2.2 → jep-4.3.0}/release_notes/2.3-notes.rst +0 -0
- {jep-4.2.2 → jep-4.3.0}/release_notes/2.4-notes.rst +0 -0
- {jep-4.2.2 → jep-4.3.0}/release_notes/3.0-notes.rst +0 -0
- {jep-4.2.2 → jep-4.3.0}/release_notes/3.1-notes.rst +0 -0
- {jep-4.2.2 → jep-4.3.0}/release_notes/3.2-notes.rst +0 -0
- {jep-4.2.2 → jep-4.3.0}/release_notes/3.3-notes.rst +0 -0
- {jep-4.2.2 → jep-4.3.0}/release_notes/3.4-notes.rst +0 -0
- {jep-4.2.2 → jep-4.3.0}/release_notes/3.5-notes.rst +0 -0
- {jep-4.2.2 → jep-4.3.0}/release_notes/3.6-notes.rst +0 -0
- {jep-4.2.2 → jep-4.3.0}/release_notes/3.7-notes.rst +0 -0
- {jep-4.2.2 → jep-4.3.0}/release_notes/3.8-notes.rst +0 -0
- {jep-4.2.2 → jep-4.3.0}/release_notes/3.9-notes.rst +0 -0
- {jep-4.2.2 → jep-4.3.0}/release_notes/4.0-notes.rst +0 -0
- {jep-4.2.2 → jep-4.3.0}/release_notes/4.1-notes.rst +0 -0
- {jep-4.2.2 → jep-4.3.0}/release_notes/4.2-notes.rst +0 -0
- {jep-4.2.2 → jep-4.3.0}/setup.cfg +0 -0
- {jep-4.2.2 → jep-4.3.0}/src/main/c/Include/Jep.h +0 -0
- {jep-4.2.2 → jep-4.3.0}/src/main/c/Include/convert_j2p.h +0 -0
- {jep-4.2.2 → jep-4.3.0}/src/main/c/Include/convert_p2j.h +0 -0
- {jep-4.2.2 → jep-4.3.0}/src/main/c/Include/java_access/AnnotatedElement.h +0 -0
- {jep-4.2.2 → jep-4.3.0}/src/main/c/Include/java_access/ArrayList.h +0 -0
- {jep-4.2.2 → jep-4.3.0}/src/main/c/Include/java_access/AutoCloseable.h +0 -0
- {jep-4.2.2 → jep-4.3.0}/src/main/c/Include/java_access/BigInteger.h +0 -0
- {jep-4.2.2 → jep-4.3.0}/src/main/c/Include/java_access/Boolean.h +0 -0
- {jep-4.2.2 → jep-4.3.0}/src/main/c/Include/java_access/Buffer.h +0 -0
- {jep-4.2.2 → jep-4.3.0}/src/main/c/Include/java_access/Byte.h +0 -0
- {jep-4.2.2 → jep-4.3.0}/src/main/c/Include/java_access/ByteBuffer.h +0 -0
- {jep-4.2.2 → jep-4.3.0}/src/main/c/Include/java_access/ByteOrder.h +0 -0
- {jep-4.2.2 → jep-4.3.0}/src/main/c/Include/java_access/CharBuffer.h +0 -0
- {jep-4.2.2 → jep-4.3.0}/src/main/c/Include/java_access/Character.h +0 -0
- {jep-4.2.2 → jep-4.3.0}/src/main/c/Include/java_access/Class.h +0 -0
- {jep-4.2.2 → jep-4.3.0}/src/main/c/Include/java_access/ClassLoader.h +0 -0
- {jep-4.2.2 → jep-4.3.0}/src/main/c/Include/java_access/Collection.h +0 -0
- {jep-4.2.2 → jep-4.3.0}/src/main/c/Include/java_access/Collections.h +0 -0
- {jep-4.2.2 → jep-4.3.0}/src/main/c/Include/java_access/Comparable.h +0 -0
- {jep-4.2.2 → jep-4.3.0}/src/main/c/Include/java_access/Double.h +0 -0
- {jep-4.2.2 → jep-4.3.0}/src/main/c/Include/java_access/DoubleBuffer.h +0 -0
- {jep-4.2.2 → jep-4.3.0}/src/main/c/Include/java_access/Entry.h +0 -0
- {jep-4.2.2 → jep-4.3.0}/src/main/c/Include/java_access/Executable.h +0 -0
- {jep-4.2.2 → jep-4.3.0}/src/main/c/Include/java_access/Field.h +0 -0
- {jep-4.2.2 → jep-4.3.0}/src/main/c/Include/java_access/Float.h +0 -0
- {jep-4.2.2 → jep-4.3.0}/src/main/c/Include/java_access/FloatBuffer.h +0 -0
- {jep-4.2.2 → jep-4.3.0}/src/main/c/Include/java_access/HashMap.h +0 -0
- {jep-4.2.2 → jep-4.3.0}/src/main/c/Include/java_access/IntBuffer.h +0 -0
- {jep-4.2.2 → jep-4.3.0}/src/main/c/Include/java_access/Integer.h +0 -0
- {jep-4.2.2 → jep-4.3.0}/src/main/c/Include/java_access/Iterable.h +0 -0
- {jep-4.2.2 → jep-4.3.0}/src/main/c/Include/java_access/Iterator.h +0 -0
- {jep-4.2.2 → jep-4.3.0}/src/main/c/Include/java_access/JPyCallable.h +0 -0
- {jep-4.2.2 → jep-4.3.0}/src/main/c/Include/java_access/JPyMethod.h +0 -0
- {jep-4.2.2 → jep-4.3.0}/src/main/c/Include/java_access/JPyObject.h +0 -0
- {jep-4.2.2 → jep-4.3.0}/src/main/c/Include/java_access/JepException.h +0 -0
- {jep-4.2.2 → jep-4.3.0}/src/main/c/Include/java_access/List.h +0 -0
- {jep-4.2.2 → jep-4.3.0}/src/main/c/Include/java_access/Long.h +0 -0
- {jep-4.2.2 → jep-4.3.0}/src/main/c/Include/java_access/LongBuffer.h +0 -0
- {jep-4.2.2 → jep-4.3.0}/src/main/c/Include/java_access/Map.h +0 -0
- {jep-4.2.2 → jep-4.3.0}/src/main/c/Include/java_access/Member.h +0 -0
- {jep-4.2.2 → jep-4.3.0}/src/main/c/Include/java_access/Method.h +0 -0
- {jep-4.2.2 → jep-4.3.0}/src/main/c/Include/java_access/Modifier.h +0 -0
- {jep-4.2.2 → jep-4.3.0}/src/main/c/Include/java_access/Number.h +0 -0
- {jep-4.2.2 → jep-4.3.0}/src/main/c/Include/java_access/Object.h +0 -0
- {jep-4.2.2 → jep-4.3.0}/src/main/c/Include/java_access/Proxy.h +0 -0
- {jep-4.2.2 → jep-4.3.0}/src/main/c/Include/java_access/Short.h +0 -0
- {jep-4.2.2 → jep-4.3.0}/src/main/c/Include/java_access/ShortBuffer.h +0 -0
- {jep-4.2.2 → jep-4.3.0}/src/main/c/Include/java_access/String.h +0 -0
- {jep-4.2.2 → jep-4.3.0}/src/main/c/Include/java_access/Throwable.h +0 -0
- {jep-4.2.2 → jep-4.3.0}/src/main/c/Include/jep_exceptions.h +0 -0
- {jep-4.2.2 → jep-4.3.0}/src/main/c/Include/jep_numpy.h +0 -0
- {jep-4.2.2 → jep-4.3.0}/src/main/c/Include/jep_platform.h +0 -0
- {jep-4.2.2 → jep-4.3.0}/src/main/c/Include/jep_util.h +0 -0
- {jep-4.2.2 → jep-4.3.0}/src/main/c/Include/pyjautocloseable.h +0 -0
- {jep-4.2.2 → jep-4.3.0}/src/main/c/Include/pyjcollection.h +0 -0
- {jep-4.2.2 → jep-4.3.0}/src/main/c/Include/pyjiterable.h +0 -0
- {jep-4.2.2 → jep-4.3.0}/src/main/c/Include/pyjiterator.h +0 -0
- {jep-4.2.2 → jep-4.3.0}/src/main/c/Include/pyjlist.h +0 -0
- {jep-4.2.2 → jep-4.3.0}/src/main/c/Include/pyjmap.h +0 -0
- {jep-4.2.2 → jep-4.3.0}/src/main/c/Include/pyjnumber.h +0 -0
- {jep-4.2.2 → jep-4.3.0}/src/main/c/Include/winconfig.h +0 -0
- {jep-4.2.2 → jep-4.3.0}/src/main/c/Jep/convert_p2j.c +0 -0
- {jep-4.2.2 → jep-4.3.0}/src/main/c/Jep/java_access/AnnotatedElement.c +0 -0
- {jep-4.2.2 → jep-4.3.0}/src/main/c/Jep/java_access/ArrayList.c +0 -0
- {jep-4.2.2 → jep-4.3.0}/src/main/c/Jep/java_access/AutoCloseable.c +0 -0
- {jep-4.2.2 → jep-4.3.0}/src/main/c/Jep/java_access/BigInteger.c +0 -0
- {jep-4.2.2 → jep-4.3.0}/src/main/c/Jep/java_access/Boolean.c +0 -0
- {jep-4.2.2 → jep-4.3.0}/src/main/c/Jep/java_access/Buffer.c +0 -0
- {jep-4.2.2 → jep-4.3.0}/src/main/c/Jep/java_access/Byte.c +0 -0
- {jep-4.2.2 → jep-4.3.0}/src/main/c/Jep/java_access/ByteBuffer.c +0 -0
- {jep-4.2.2 → jep-4.3.0}/src/main/c/Jep/java_access/ByteOrder.c +0 -0
- {jep-4.2.2 → jep-4.3.0}/src/main/c/Jep/java_access/CharBuffer.c +0 -0
- {jep-4.2.2 → jep-4.3.0}/src/main/c/Jep/java_access/Character.c +0 -0
- {jep-4.2.2 → jep-4.3.0}/src/main/c/Jep/java_access/ClassLoader.c +0 -0
- {jep-4.2.2 → jep-4.3.0}/src/main/c/Jep/java_access/Collection.c +0 -0
- {jep-4.2.2 → jep-4.3.0}/src/main/c/Jep/java_access/Collections.c +0 -0
- {jep-4.2.2 → jep-4.3.0}/src/main/c/Jep/java_access/Comparable.c +0 -0
- {jep-4.2.2 → jep-4.3.0}/src/main/c/Jep/java_access/Double.c +0 -0
- {jep-4.2.2 → jep-4.3.0}/src/main/c/Jep/java_access/DoubleBuffer.c +0 -0
- {jep-4.2.2 → jep-4.3.0}/src/main/c/Jep/java_access/Entry.c +0 -0
- {jep-4.2.2 → jep-4.3.0}/src/main/c/Jep/java_access/Executable.c +0 -0
- {jep-4.2.2 → jep-4.3.0}/src/main/c/Jep/java_access/Field.c +0 -0
- {jep-4.2.2 → jep-4.3.0}/src/main/c/Jep/java_access/Float.c +0 -0
- {jep-4.2.2 → jep-4.3.0}/src/main/c/Jep/java_access/FloatBuffer.c +0 -0
- {jep-4.2.2 → jep-4.3.0}/src/main/c/Jep/java_access/HashMap.c +0 -0
- {jep-4.2.2 → jep-4.3.0}/src/main/c/Jep/java_access/IntBuffer.c +0 -0
- {jep-4.2.2 → jep-4.3.0}/src/main/c/Jep/java_access/Integer.c +0 -0
- {jep-4.2.2 → jep-4.3.0}/src/main/c/Jep/java_access/Iterable.c +0 -0
- {jep-4.2.2 → jep-4.3.0}/src/main/c/Jep/java_access/Iterator.c +0 -0
- {jep-4.2.2 → jep-4.3.0}/src/main/c/Jep/java_access/JPyCallable.c +0 -0
- {jep-4.2.2 → jep-4.3.0}/src/main/c/Jep/java_access/JPyMethod.c +0 -0
- {jep-4.2.2 → jep-4.3.0}/src/main/c/Jep/java_access/JPyObject.c +0 -0
- {jep-4.2.2 → jep-4.3.0}/src/main/c/Jep/java_access/JepException.c +0 -0
- {jep-4.2.2 → jep-4.3.0}/src/main/c/Jep/java_access/List.c +0 -0
- {jep-4.2.2 → jep-4.3.0}/src/main/c/Jep/java_access/Long.c +0 -0
- {jep-4.2.2 → jep-4.3.0}/src/main/c/Jep/java_access/LongBuffer.c +0 -0
- {jep-4.2.2 → jep-4.3.0}/src/main/c/Jep/java_access/Map.c +0 -0
- {jep-4.2.2 → jep-4.3.0}/src/main/c/Jep/java_access/Member.c +0 -0
- {jep-4.2.2 → jep-4.3.0}/src/main/c/Jep/java_access/Method.c +0 -0
- {jep-4.2.2 → jep-4.3.0}/src/main/c/Jep/java_access/Modifier.c +0 -0
- {jep-4.2.2 → jep-4.3.0}/src/main/c/Jep/java_access/Number.c +0 -0
- {jep-4.2.2 → jep-4.3.0}/src/main/c/Jep/java_access/Object.c +0 -0
- {jep-4.2.2 → jep-4.3.0}/src/main/c/Jep/java_access/Proxy.c +0 -0
- {jep-4.2.2 → jep-4.3.0}/src/main/c/Jep/java_access/Short.c +0 -0
- {jep-4.2.2 → jep-4.3.0}/src/main/c/Jep/java_access/ShortBuffer.c +0 -0
- {jep-4.2.2 → jep-4.3.0}/src/main/c/Jep/java_access/String.c +0 -0
- {jep-4.2.2 → jep-4.3.0}/src/main/c/Jep/java_access/Throwable.c +0 -0
- {jep-4.2.2 → jep-4.3.0}/src/main/c/Jep/jep_exceptions.c +0 -0
- {jep-4.2.2 → jep-4.3.0}/src/main/c/Jep/jep_util.c +0 -0
- {jep-4.2.2 → jep-4.3.0}/src/main/c/Jep/python/invocationhandler.c +0 -0
- {jep-4.2.2 → jep-4.3.0}/src/main/c/Jep/python/jep_object.c +0 -0
- {jep-4.2.2 → jep-4.3.0}/src/main/c/Jep/python/jpycallable.c +0 -0
- {jep-4.2.2 → jep-4.3.0}/src/main/c/Jep/python/pypointer.c +0 -0
- {jep-4.2.2 → jep-4.3.0}/src/main/c/Objects/pyjautocloseable.c +0 -0
- {jep-4.2.2 → jep-4.3.0}/src/main/c/Objects/pyjcollection.c +0 -0
- {jep-4.2.2 → jep-4.3.0}/src/main/c/Objects/pyjiterable.c +0 -0
- {jep-4.2.2 → jep-4.3.0}/src/main/c/Objects/pyjiterator.c +0 -0
- {jep-4.2.2 → jep-4.3.0}/src/main/c/Objects/pyjlist.c +0 -0
- {jep-4.2.2 → jep-4.3.0}/src/main/c/Objects/pyjmap.c +0 -0
- {jep-4.2.2 → jep-4.3.0}/src/main/c/Objects/pyjnumber.c +0 -0
- {jep-4.2.2 → jep-4.3.0}/src/main/java/jep/AbstractNDArray.java +0 -0
- {jep-4.2.2 → jep-4.3.0}/src/main/java/jep/AllowPythonClassEnquirer.java +0 -0
- {jep-4.2.2 → jep-4.3.0}/src/main/java/jep/ClassEnquirer.java +0 -0
- {jep-4.2.2 → jep-4.3.0}/src/main/java/jep/ClassList.java +0 -0
- {jep-4.2.2 → jep-4.3.0}/src/main/java/jep/DirectNDArray.java +0 -0
- {jep-4.2.2 → jep-4.3.0}/src/main/java/jep/JepAccess.java +0 -0
- {jep-4.2.2 → jep-4.3.0}/src/main/java/jep/JepException.java +0 -0
- {jep-4.2.2 → jep-4.3.0}/src/main/java/jep/NDArray.java +0 -0
- {jep-4.2.2 → jep-4.3.0}/src/main/java/jep/NamingConventionClassEnquirer.java +0 -0
- {jep-4.2.2 → jep-4.3.0}/src/main/java/jep/Proxy.java +0 -0
- {jep-4.2.2 → jep-4.3.0}/src/main/java/jep/PyMethod.java +0 -0
- {jep-4.2.2 → jep-4.3.0}/src/main/java/jep/Run.java +0 -0
- {jep-4.2.2 → jep-4.3.0}/src/main/java/jep/SharedInterpreter.java +0 -0
- {jep-4.2.2 → jep-4.3.0}/src/main/java/jep/SubInterpreter.java +0 -0
- {jep-4.2.2 → jep-4.3.0}/src/main/java/jep/SubInterpreterOptions.java +0 -0
- {jep-4.2.2 → jep-4.3.0}/src/main/java/jep/python/InvocationHandler.java +0 -0
- {jep-4.2.2 → jep-4.3.0}/src/main/java/jep/python/PyBuiltins.java +0 -0
- {jep-4.2.2 → jep-4.3.0}/src/main/java/jep/python/PyCallable.java +0 -0
- {jep-4.2.2 → jep-4.3.0}/src/main/java/jep/python/PyObject.java +0 -0
- {jep-4.2.2 → jep-4.3.0}/src/main/java/jep/python/PyPointer.java +0 -0
- {jep-4.2.2 → jep-4.3.0}/src/main/python/jep/__init__.py +0 -0
- {jep-4.2.2 → jep-4.3.0}/src/main/python/jep/console.py +0 -0
- {jep-4.2.2 → jep-4.3.0}/src/main/python/jep/jdbc.py +0 -0
- {jep-4.2.2 → jep-4.3.0}/src/main/python/jep/redirect_streams.py +0 -0
- {jep-4.2.2 → jep-4.3.0}/src/main/python/jep/shared_modules_hook.py +0 -0
- {jep-4.2.2 → jep-4.3.0}/src/main/python/jep.egg-info/dependency_links.txt +0 -0
- {jep-4.2.2 → jep-4.3.0}/src/main/python/jep.egg-info/not-zip-safe +0 -0
- {jep-4.2.2 → jep-4.3.0}/src/main/python/jep.egg-info/top_level.txt +0 -0
- {jep-4.2.2 → jep-4.3.0}/src/main/resources/jep/classlist_10.txt +0 -0
- {jep-4.2.2 → jep-4.3.0}/src/main/resources/jep/classlist_11.txt +0 -0
- {jep-4.2.2 → jep-4.3.0}/src/main/resources/jep/classlist_8.txt +0 -0
- {jep-4.2.2 → jep-4.3.0}/src/main/resources/jep/classlist_9.txt +0 -0
- {jep-4.2.2 → jep-4.3.0}/src/main/scripts/jep +0 -0
- {jep-4.2.2 → jep-4.3.0}/src/main/scripts/jep.bat +0 -0
- {jep-4.2.2 → jep-4.3.0}/src/test/java/jep/test/Test.java +0 -0
- {jep-4.2.2 → jep-4.3.0}/src/test/java/jep/test/TestAllowPythonEnquirer.java +0 -0
- {jep-4.2.2 → jep-4.3.0}/src/test/java/jep/test/TestCloseWithThreads.java +0 -0
- {jep-4.2.2 → jep-4.3.0}/src/test/java/jep/test/TestCompiledScript.java +0 -0
- {jep-4.2.2 → jep-4.3.0}/src/test/java/jep/test/TestDefaultMethods.java +0 -0
- {jep-4.2.2 → jep-4.3.0}/src/test/java/jep/test/TestExceptionCause.java +0 -0
- {jep-4.2.2 → jep-4.3.0}/src/test/java/jep/test/TestExec.java +0 -0
- {jep-4.2.2 → jep-4.3.0}/src/test/java/jep/test/TestGetByteArray.java +0 -0
- {jep-4.2.2 → jep-4.3.0}/src/test/java/jep/test/TestGetCollectionBoxing.java +0 -0
- {jep-4.2.2 → jep-4.3.0}/src/test/java/jep/test/TestGetJPyObject.java +0 -0
- {jep-4.2.2 → jep-4.3.0}/src/test/java/jep/test/TestGetTempValue.java +0 -0
- {jep-4.2.2 → jep-4.3.0}/src/test/java/jep/test/TestGetWithClass.java +0 -0
- {jep-4.2.2 → jep-4.3.0}/src/test/java/jep/test/TestInvoke.java +0 -0
- {jep-4.2.2 → jep-4.3.0}/src/test/java/jep/test/TestIteratorable.java +0 -0
- {jep-4.2.2 → jep-4.3.0}/src/test/java/jep/test/TestOverload.java +0 -0
- {jep-4.2.2 → jep-4.3.0}/src/test/java/jep/test/TestPyBuiltins.java +0 -0
- {jep-4.2.2 → jep-4.3.0}/src/test/java/jep/test/TestPyJObject.java +0 -0
- {jep-4.2.2 → jep-4.3.0}/src/test/java/jep/test/TestPyJType.java +0 -0
- {jep-4.2.2 → jep-4.3.0}/src/test/java/jep/test/TestRedirectStreams.java +0 -0
- {jep-4.2.2 → jep-4.3.0}/src/test/java/jep/test/TestSharedInterpreter.java +0 -0
- {jep-4.2.2 → jep-4.3.0}/src/test/java/jep/test/TestSharedModules.java +0 -0
- {jep-4.2.2 → jep-4.3.0}/src/test/java/jep/test/TestSharedModulesThreads.java +0 -0
- {jep-4.2.2 → jep-4.3.0}/src/test/java/jep/test/closeable/TestAutoCloseable.java +0 -0
- {jep-4.2.2 → jep-4.3.0}/src/test/java/jep/test/numpy/TestNumpy.java +0 -0
- {jep-4.2.2 → jep-4.3.0}/src/test/java/jep/test/numpy/TestNumpyArrayToString.java +0 -0
- {jep-4.2.2 → jep-4.3.0}/src/test/java/jep/test/numpy/TestNumpyProdShared.java +0 -0
- {jep-4.2.2 → jep-4.3.0}/src/test/java/jep/test/synchronization/TestCrossLangSync.java +0 -0
- {jep-4.2.2 → jep-4.3.0}/src/test/java/jep/test/types/TestFieldTypes.java +0 -0
- {jep-4.2.2 → jep-4.3.0}/src/test/java/jep/test/types/TestMethodTypes.java +0 -0
- {jep-4.2.2 → jep-4.3.0}/src/test/java/jep/test/types/TestStaticFieldTypes.java +0 -0
- {jep-4.2.2 → jep-4.3.0}/src/test/java/jep/test/types/TestStaticMethodTypes.java +0 -0
- {jep-4.2.2 → jep-4.3.0}/src/test/java/jep/test/util/SubInterpreterThread.java +0 -0
- {jep-4.2.2 → jep-4.3.0}/src/test/python/__init__.py +0 -0
- {jep-4.2.2 → jep-4.3.0}/src/test/python/data/read_file.txt +0 -0
- {jep-4.2.2 → jep-4.3.0}/src/test/python/jep_pipe.py +0 -0
- {jep-4.2.2 → jep-4.3.0}/src/test/python/lib/fakenetty.jar +0 -0
- {jep-4.2.2 → jep-4.3.0}/src/test/python/lib/sqlitejdbc-v056.jar +0 -0
- {jep-4.2.2 → jep-4.3.0}/src/test/python/runtests.py +0 -0
- {jep-4.2.2 → jep-4.3.0}/src/test/python/subprocess/invoke_args.py +0 -0
- {jep-4.2.2 → jep-4.3.0}/src/test/python/subprocess/iter_itr_crash.py +0 -0
- {jep-4.2.2 → jep-4.3.0}/src/test/python/test_array.py +0 -0
- {jep-4.2.2 → jep-4.3.0}/src/test/python/test_autocloseable.py +0 -0
- {jep-4.2.2 → jep-4.3.0}/src/test/python/test_call.py +0 -0
- {jep-4.2.2 → jep-4.3.0}/src/test/python/test_compare.py +0 -0
- {jep-4.2.2 → jep-4.3.0}/src/test/python/test_convert.py +0 -0
- {jep-4.2.2 → jep-4.3.0}/src/test/python/test_dir.py +0 -0
- {jep-4.2.2 → jep-4.3.0}/src/test/python/test_exceptions.py +0 -0
- {jep-4.2.2 → jep-4.3.0}/src/test/python/test_exec.py +0 -0
- {jep-4.2.2 → jep-4.3.0}/src/test/python/test_getvalue.py +0 -0
- {jep-4.2.2 → jep-4.3.0}/src/test/python/test_invoke.py +0 -0
- {jep-4.2.2 → jep-4.3.0}/src/test/python/test_iterators.py +0 -0
- {jep-4.2.2 → jep-4.3.0}/src/test/python/test_jdbc.py +0 -0
- {jep-4.2.2 → jep-4.3.0}/src/test/python/test_jproxy.py +0 -0
- {jep-4.2.2 → jep-4.3.0}/src/test/python/test_lists.py +0 -0
- {jep-4.2.2 → jep-4.3.0}/src/test/python/test_maps.py +0 -0
- {jep-4.2.2 → jep-4.3.0}/src/test/python/test_numbers.py +0 -0
- {jep-4.2.2 → jep-4.3.0}/src/test/python/test_numpy.py +0 -0
- {jep-4.2.2 → jep-4.3.0}/src/test/python/test_object.py +0 -0
- {jep-4.2.2 → jep-4.3.0}/src/test/python/test_overload.py +0 -0
- {jep-4.2.2 → jep-4.3.0}/src/test/python/test_pybuiltins.py +0 -0
- {jep-4.2.2 → jep-4.3.0}/src/test/python/test_python_memory.py +0 -0
- {jep-4.2.2 → jep-4.3.0}/src/test/python/test_redirect_streams.py +0 -0
- {jep-4.2.2 → jep-4.3.0}/src/test/python/test_run_script.py +0 -0
- {jep-4.2.2 → jep-4.3.0}/src/test/python/test_shared_interpreter.py +0 -0
- {jep-4.2.2 → jep-4.3.0}/src/test/python/test_shared_modules.py +0 -0
- {jep-4.2.2 → jep-4.3.0}/src/test/python/test_sub_interp_options.py +0 -0
- {jep-4.2.2 → jep-4.3.0}/src/test/python/test_synchronized.py +0 -0
{jep-4.2.2 → jep-4.3.0}/LICENSE
RENAMED
|
@@ -1,29 +1,36 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: jep
|
|
3
|
-
Version: 4.
|
|
4
|
-
Summary: Jep embeds CPython in Java
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
3
|
+
Version: 4.3.0
|
|
4
|
+
Summary: Jep embeds CPython in Java through JNI.
|
|
5
|
+
Author-email: Mike Johnson <mike@mrj0.com>
|
|
6
|
+
Maintainer-email: Nate Jensen <ndjensen@gmail.com>, Ben Steffensmeier <ben.steffensmeier@gmail.com>
|
|
7
|
+
License: Zlib
|
|
8
|
+
Project-URL: Homepage, https://github.com/ninia/jep
|
|
9
|
+
Project-URL: Documentation, https://github.com/ninia/jep/wiki
|
|
10
|
+
Project-URL: JavaDoc, https://ninia.github.io/jep/javadoc
|
|
11
|
+
Project-URL: Repository, https://github.com/ninia/jep.git
|
|
12
|
+
Project-URL: Issues, https://github.com/ninia/jep.issues
|
|
9
13
|
Keywords: java
|
|
10
14
|
Classifier: License :: OSI Approved :: zlib/libpng License
|
|
11
15
|
Classifier: Development Status :: 5 - Production/Stable
|
|
12
16
|
Classifier: Intended Audience :: Developers
|
|
13
17
|
Classifier: Topic :: Software Development
|
|
18
|
+
Classifier: Topic :: Software Development :: Libraries :: Java Libraries
|
|
14
19
|
Classifier: Programming Language :: Java
|
|
15
20
|
Classifier: Programming Language :: Python
|
|
16
|
-
Classifier: Programming Language :: Python :: 3
|
|
17
|
-
Classifier: Programming Language :: Python :: 3.7
|
|
18
|
-
Classifier: Programming Language :: Python :: 3.8
|
|
19
|
-
Classifier: Programming Language :: Python :: 3.9
|
|
21
|
+
Classifier: Programming Language :: Python :: 3
|
|
20
22
|
Classifier: Programming Language :: Python :: 3.10
|
|
21
23
|
Classifier: Programming Language :: Python :: 3.11
|
|
22
24
|
Classifier: Programming Language :: Python :: 3.12
|
|
23
25
|
Classifier: Programming Language :: Python :: 3.13
|
|
26
|
+
Classifier: Programming Language :: Python :: 3.14
|
|
24
27
|
Classifier: Programming Language :: Python :: Implementation :: CPython
|
|
28
|
+
Requires-Python: >=3.10
|
|
29
|
+
Description-Content-Type: text/x-rst
|
|
25
30
|
License-File: LICENSE
|
|
26
31
|
License-File: AUTHORS
|
|
32
|
+
Provides-Extra: numpy
|
|
33
|
+
Requires-Dist: numpy>=1.7; extra == "numpy"
|
|
27
34
|
|
|
28
35
|
.. image:: https://img.shields.io/pypi/pyversions/Jep.svg
|
|
29
36
|
:target: https://pypi.python.org/pypi/jep
|
|
@@ -66,16 +73,14 @@ Some benefits of embedding CPython in a JVM:
|
|
|
66
73
|
|
|
67
74
|
Installation
|
|
68
75
|
------------
|
|
69
|
-
Simply run ``pip install
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
required, however those settings enable Jep to make customizations for your
|
|
74
|
-
environment such as enabling numpy specific behavior if numpy is installed.
|
|
76
|
+
Simply run ``pip install jep`` or download the source and run
|
|
77
|
+
``pip install .``. Building and installing require the JDK and Python,
|
|
78
|
+
to be installed beforehand. Pip will need to be able to install setuptools
|
|
79
|
+
and numpy to build jep.
|
|
75
80
|
|
|
76
81
|
Dependencies
|
|
77
82
|
------------
|
|
78
|
-
* Python >= 3.
|
|
83
|
+
* Python >= 3.10
|
|
79
84
|
* Java >= 1.8
|
|
80
85
|
* NumPy >= 1.7 (optional)
|
|
81
86
|
|
|
@@ -39,16 +39,14 @@ Some benefits of embedding CPython in a JVM:
|
|
|
39
39
|
|
|
40
40
|
Installation
|
|
41
41
|
------------
|
|
42
|
-
Simply run ``pip install
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
required, however those settings enable Jep to make customizations for your
|
|
47
|
-
environment such as enabling numpy specific behavior if numpy is installed.
|
|
42
|
+
Simply run ``pip install jep`` or download the source and run
|
|
43
|
+
``pip install .``. Building and installing require the JDK and Python,
|
|
44
|
+
to be installed beforehand. Pip will need to be able to install setuptools
|
|
45
|
+
and numpy to build jep.
|
|
48
46
|
|
|
49
47
|
Dependencies
|
|
50
48
|
------------
|
|
51
|
-
* Python >= 3.
|
|
49
|
+
* Python >= 3.10
|
|
52
50
|
* Java >= 1.8
|
|
53
51
|
* NumPy >= 1.7 (optional)
|
|
54
52
|
|
|
@@ -10,6 +10,7 @@ import fnmatch
|
|
|
10
10
|
import traceback
|
|
11
11
|
import sys
|
|
12
12
|
import logging
|
|
13
|
+
import textwrap
|
|
13
14
|
from pathlib import Path
|
|
14
15
|
|
|
15
16
|
from commands.util import configure_error
|
|
@@ -278,13 +279,32 @@ class build_jar(Command):
|
|
|
278
279
|
if not os.path.exists(dest_dir):
|
|
279
280
|
os.makedirs(dest_dir)
|
|
280
281
|
shutil.copy(src, dest)
|
|
281
|
-
|
|
282
|
+
|
|
282
283
|
self.setup_meta_inf(os.path.join('build', 'java'))
|
|
283
284
|
|
|
284
|
-
self.spawn([self.jar, '-cf',
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
285
|
+
self.spawn([self.jar, '-cf',
|
|
286
|
+
f'build/java/jep-{self.version}-sources.jar',
|
|
287
|
+
'-C','build/java/jep.src/main/java', 'jep',
|
|
288
|
+
'-C', 'build/java', 'META-INF'
|
|
289
|
+
])
|
|
290
|
+
self.spawn([self.jar, '-cfem',
|
|
291
|
+
f'build/java/jep-{self.version}.jar',
|
|
292
|
+
'jep.Run',
|
|
293
|
+
'build/java/MANIFEST-ADD.MF',
|
|
294
|
+
'-C', 'build/java', 'jep',
|
|
295
|
+
'-C', 'build/java', 'META-INF'
|
|
296
|
+
])
|
|
297
|
+
self.spawn([self.jar, '-cf',
|
|
298
|
+
f'build/java/jep-{self.version}-test-sources.jar',
|
|
299
|
+
'-C', 'build/java/jep.test.src/test/java', 'jep',
|
|
300
|
+
'-C', 'build/java', 'META-INF'
|
|
301
|
+
])
|
|
302
|
+
self.spawn([self.jar, '-cfe',
|
|
303
|
+
f'build/java/jep-{self.version}-test.jar',
|
|
304
|
+
'test.jep.Test',
|
|
305
|
+
'-C', 'build/java/test', 'jep',
|
|
306
|
+
'-C', 'build/java', 'META-INF'
|
|
307
|
+
])
|
|
288
308
|
|
|
289
309
|
|
|
290
310
|
def run(self):
|
|
@@ -294,13 +314,15 @@ class build_jar(Command):
|
|
|
294
314
|
logging.debug('skipping packing jar files (up to date)')
|
|
295
315
|
|
|
296
316
|
def setup_meta_inf(self, dest_dir):
|
|
297
|
-
pom_dir = os.path.join(dest_dir, 'META-INF', 'maven', '
|
|
317
|
+
pom_dir = os.path.join(dest_dir, 'META-INF', 'maven', 'org.ninia', 'jep')
|
|
298
318
|
if not os.path.exists(pom_dir):
|
|
299
319
|
os.makedirs(pom_dir)
|
|
300
320
|
shutil.copy('pom.xml', pom_dir)
|
|
301
|
-
pom_props ="""
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
321
|
+
pom_props = textwrap.dedent(f"""\
|
|
322
|
+
artifactId=jep
|
|
323
|
+
groupId=org.ninia
|
|
324
|
+
version={self.version}""")
|
|
305
325
|
with open(os.path.join(pom_dir, 'pom.properties'), 'w') as f:
|
|
306
326
|
f.write(pom_props)
|
|
327
|
+
with open(os.path.join(dest_dir, 'MANIFEST-ADD.MF'), 'w') as f:
|
|
328
|
+
f.write("Automatic-Module-Name: org.ninia.jep\n")
|
{jep-4.2.2 → jep-4.3.0}/pom.xml
RENAMED
|
@@ -4,9 +4,9 @@
|
|
|
4
4
|
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
|
|
5
5
|
<modelVersion>4.0.0</modelVersion>
|
|
6
6
|
|
|
7
|
-
<groupId>
|
|
7
|
+
<groupId>org.ninia</groupId>
|
|
8
8
|
<artifactId>jep</artifactId>
|
|
9
|
-
<version>4.
|
|
9
|
+
<version>4.3.0</version>
|
|
10
10
|
<packaging>jar</packaging>
|
|
11
11
|
|
|
12
12
|
<name>Java Embedded Python</name>
|
|
@@ -39,7 +39,7 @@
|
|
|
39
39
|
<scm>
|
|
40
40
|
<connection>scm:git:git://github.com/ninia/jep.git</connection>
|
|
41
41
|
<developerConnection>scm:git:ssh://github.com:ninia/jep.git</developerConnection>
|
|
42
|
-
<url>https://github.com/ninia/jep/tree/v4.
|
|
42
|
+
<url>https://github.com/ninia/jep/tree/v4.3.0</url>
|
|
43
43
|
</scm>
|
|
44
44
|
|
|
45
45
|
<properties>
|
jep-4.3.0/pyproject.toml
ADDED
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
[build-system]
|
|
2
|
+
requires = [
|
|
3
|
+
"setuptools >= 61.0",
|
|
4
|
+
"numpy >= 1.7" # Remove numpy to build without numpy support.
|
|
5
|
+
]
|
|
6
|
+
build-backend = "setuptools.build_meta:__legacy__"
|
|
7
|
+
|
|
8
|
+
[project]
|
|
9
|
+
name = "jep"
|
|
10
|
+
description = "Jep embeds CPython in Java through JNI."
|
|
11
|
+
dynamic = ["version"]
|
|
12
|
+
license = { "text" = "Zlib"}
|
|
13
|
+
readme = "README.rst"
|
|
14
|
+
requires-python = ">= 3.10"
|
|
15
|
+
authors = [
|
|
16
|
+
{name = "Mike Johnson", email = "mike@mrj0.com"}
|
|
17
|
+
]
|
|
18
|
+
maintainers = [
|
|
19
|
+
{name = "Nate Jensen", email = "ndjensen@gmail.com"},
|
|
20
|
+
{name = "Ben Steffensmeier", email = "ben.steffensmeier@gmail.com"}
|
|
21
|
+
]
|
|
22
|
+
classifiers = [
|
|
23
|
+
"License :: OSI Approved :: zlib/libpng License",
|
|
24
|
+
"Development Status :: 5 - Production/Stable",
|
|
25
|
+
"Intended Audience :: Developers",
|
|
26
|
+
"Topic :: Software Development",
|
|
27
|
+
"Topic :: Software Development :: Libraries :: Java Libraries",
|
|
28
|
+
"Programming Language :: Java",
|
|
29
|
+
"Programming Language :: Python",
|
|
30
|
+
"Programming Language :: Python :: 3",
|
|
31
|
+
"Programming Language :: Python :: 3.10",
|
|
32
|
+
"Programming Language :: Python :: 3.11",
|
|
33
|
+
"Programming Language :: Python :: 3.12",
|
|
34
|
+
"Programming Language :: Python :: 3.13",
|
|
35
|
+
"Programming Language :: Python :: 3.14",
|
|
36
|
+
"Programming Language :: Python :: Implementation :: CPython"
|
|
37
|
+
]
|
|
38
|
+
keywords = ["java"]
|
|
39
|
+
|
|
40
|
+
[project.urls]
|
|
41
|
+
Homepage = "https://github.com/ninia/jep"
|
|
42
|
+
Documentation = "https://github.com/ninia/jep/wiki"
|
|
43
|
+
JavaDoc = "https://ninia.github.io/jep/javadoc"
|
|
44
|
+
Repository = "https://github.com/ninia/jep.git"
|
|
45
|
+
Issues = "https://github.com/ninia/jep.issues"
|
|
46
|
+
|
|
47
|
+
[project.optional-dependencies]
|
|
48
|
+
numpy = ["numpy >= 1.7"]
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
Jep 4.3 Release Notes
|
|
2
|
+
*********************
|
|
3
|
+
The maven groupId for Jep has changed from black.ninia to org.ninia. This
|
|
4
|
+
release drops support for versions of Python older than 3.10. It includes
|
|
5
|
+
changes to modernize and simplify the build, improve compatibility with
|
|
6
|
+
isolated sub-interpreters, and remove use of deprecated Python features.
|
|
7
|
+
|
|
8
|
+
Updates to PyConfig
|
|
9
|
+
*******************
|
|
10
|
+
`PyConfig <https://ninia.github.io/jep/javadoc/4.3/jep/PyConfig.html>`_ has
|
|
11
|
+
been updated so that the API maps directly to the PyConfig structure in the
|
|
12
|
+
Python C API which was introduced with
|
|
13
|
+
`PEP 587 <https://peps.python.org/pep-0587/>`_. Most of the existing methods
|
|
14
|
+
are now deprecated. The deprecated methods will continue to work as they did
|
|
15
|
+
before for now but they will be removed in a future release.
|
|
16
|
+
|
|
17
|
+
Share Interpreter State between Threads
|
|
18
|
+
***************************************
|
|
19
|
+
It is now possible to attach multiple threads to an existing Interpreter using
|
|
20
|
+
`Interpreter.attach() <https://ninia.github.io/jep/javadoc/4.3/jep/Interpreter.html#attach-boolean->`_.
|
|
21
|
+
Interpreters created this way will share state such as ``sys.modules`` and
|
|
22
|
+
even have the option to share globals which allows multiple threads to have
|
|
23
|
+
identical access to an interpreter.
|
|
24
|
+
|
|
25
|
+
Modernized build
|
|
26
|
+
****************
|
|
27
|
+
Project configuration is now in pyproject.toml. The actual build is still
|
|
28
|
+
done with the legacy setuptools. For compatibility with the isolated build
|
|
29
|
+
environment used by pip, numpy is now a required build dependency. When jep is
|
|
30
|
+
built with numpy it can be used without numpy as long as NDArrays are not
|
|
31
|
+
passed from Java to Python. It is still possible to build jep without numpy
|
|
32
|
+
if neccesary but it now requires downloading the source and modifying
|
|
33
|
+
pyproject.toml to remove the numpy dependency.
|
{jep-4.2.2 → jep-4.3.0}/setup.py
RENAMED
|
@@ -81,35 +81,10 @@ if __name__ == '__main__':
|
|
|
81
81
|
#Disable warnings about Secure CRT Functions in util.c and pyembed.c.
|
|
82
82
|
defines.append(('_CRT_SECURE_NO_WARNINGS', 1))
|
|
83
83
|
|
|
84
|
-
setup(
|
|
85
|
-
version=VERSION,
|
|
86
|
-
description='Jep embeds CPython in Java',
|
|
87
|
-
long_description=read_file('README.rst'),
|
|
88
|
-
author='Jep Developers',
|
|
89
|
-
author_email='jep-project@googlegroups.com',
|
|
90
|
-
url='https://github.com/ninia/jep',
|
|
84
|
+
setup(version=VERSION,
|
|
91
85
|
packages=['jep'],
|
|
92
86
|
package_dir={'': 'src/main/python'},
|
|
93
87
|
scripts=['src/main/scripts/jep'],
|
|
94
|
-
keywords='java',
|
|
95
|
-
license='zlib/libpng',
|
|
96
|
-
classifiers=[
|
|
97
|
-
'License :: OSI Approved :: zlib/libpng License',
|
|
98
|
-
'Development Status :: 5 - Production/Stable',
|
|
99
|
-
'Intended Audience :: Developers',
|
|
100
|
-
'Topic :: Software Development',
|
|
101
|
-
'Programming Language :: Java',
|
|
102
|
-
'Programming Language :: Python',
|
|
103
|
-
'Programming Language :: Python :: 3.6',
|
|
104
|
-
'Programming Language :: Python :: 3.7',
|
|
105
|
-
'Programming Language :: Python :: 3.8',
|
|
106
|
-
'Programming Language :: Python :: 3.9',
|
|
107
|
-
'Programming Language :: Python :: 3.10',
|
|
108
|
-
'Programming Language :: Python :: 3.11',
|
|
109
|
-
'Programming Language :: Python :: 3.12',
|
|
110
|
-
'Programming Language :: Python :: 3.13',
|
|
111
|
-
'Programming Language :: Python :: Implementation :: CPython',
|
|
112
|
-
],
|
|
113
88
|
ext_modules=[
|
|
114
89
|
Extension(
|
|
115
90
|
name='jep',
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/*
|
|
2
2
|
jep - Java Embedded Python
|
|
3
3
|
|
|
4
|
-
Copyright (c) 2004-
|
|
4
|
+
Copyright (c) 2004-2025 JEP AUTHORS.
|
|
5
5
|
|
|
6
6
|
This file is licensed under the the zlib/libpng License.
|
|
7
7
|
|
|
@@ -42,16 +42,32 @@ struct __JepThread {
|
|
|
42
42
|
};
|
|
43
43
|
typedef struct __JepThread JepThread;
|
|
44
44
|
|
|
45
|
+
struct __JepModuleState {
|
|
46
|
+
PyObject *pyJTypeCache;
|
|
45
47
|
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
48
|
+
PyTypeObject *PyJType_Type;
|
|
49
|
+
PyTypeObject *PyJField_Type;
|
|
50
|
+
PyTypeObject *PyJMethod_Type;
|
|
51
|
+
PyTypeObject *PyJConstructor_Type;
|
|
52
|
+
PyTypeObject *PyJMultiMethod_Type;
|
|
53
|
+
|
|
54
|
+
PyTypeObject *PyJObject_Type;
|
|
55
|
+
PyTypeObject *PyJClass_Type;
|
|
56
|
+
PyTypeObject *PyJArray_Type;
|
|
57
|
+
|
|
58
|
+
PyTypeObject *PyJMonitor_Type;
|
|
59
|
+
PyTypeObject *PyJArrayIter_Type;
|
|
60
|
+
};
|
|
61
|
+
typedef struct __JepModuleState JepModuleState;
|
|
62
|
+
|
|
63
|
+
void pyembed_startup(JNIEnv*, jboolean, jobjectArray, jint, jint, jstring, jint,
|
|
64
|
+
jint, jstring, jint, jint, jint, jint, jint);
|
|
49
65
|
void pyembed_shutdown(JavaVM*);
|
|
50
66
|
void pyembed_shared_import(JNIEnv*, jstring);
|
|
51
67
|
|
|
52
|
-
intptr_t
|
|
53
|
-
|
|
54
|
-
void pyembed_thread_close(JNIEnv*, intptr_t);
|
|
68
|
+
intptr_t pyembed_thread_init_sub(JNIEnv*, jobject, jobject, jboolean, jboolean, jint, jint, jint, jint, jint, jint, jint);
|
|
69
|
+
intptr_t pyembed_thread_init_shared(JNIEnv*, jobject, jobject, intptr_t, jboolean);
|
|
70
|
+
void pyembed_thread_close(JNIEnv*, intptr_t, jboolean);
|
|
55
71
|
|
|
56
72
|
void pyembed_close(void);
|
|
57
73
|
void pyembed_run(JNIEnv*, intptr_t, char*);
|
|
@@ -69,6 +85,7 @@ jobject pyembed_getvalue(JNIEnv*, intptr_t, char*, jclass);
|
|
|
69
85
|
JNIEnv* pyembed_get_env(void);
|
|
70
86
|
JepThread* pyembed_get_jepthread(void);
|
|
71
87
|
PyObject* pyembed_get_jep_module(void);
|
|
88
|
+
JepModuleState* pyembed_get_module_state(void);
|
|
72
89
|
|
|
73
90
|
// -------------------------------------------------- set() methods
|
|
74
91
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/*
|
|
2
2
|
jep - Java Embedded Python
|
|
3
3
|
|
|
4
|
-
Copyright (c) 2004-
|
|
4
|
+
Copyright (c) 2004-2025 JEP AUTHORS.
|
|
5
5
|
|
|
6
6
|
This file is licensed under the the zlib/libpng License.
|
|
7
7
|
|
|
@@ -32,7 +32,8 @@
|
|
|
32
32
|
#define _Included_pyjarray
|
|
33
33
|
|
|
34
34
|
|
|
35
|
-
extern
|
|
35
|
+
extern PyType_Spec PyJArray_Spec;
|
|
36
|
+
extern PyType_Spec PyJArrayIter_Spec;
|
|
36
37
|
|
|
37
38
|
// c storage for our stuff, managed by python interpreter.
|
|
38
39
|
typedef struct {
|
|
@@ -37,9 +37,6 @@
|
|
|
37
37
|
#ifndef _Included_pyjbuffer
|
|
38
38
|
#define _Included_pyjbuffer
|
|
39
39
|
|
|
40
|
-
extern
|
|
41
|
-
|
|
42
|
-
#define PyJBuffer_Check(pyobj) \
|
|
43
|
-
PyObject_TypeCheck(pyobj, &PyJBuffer_Type)
|
|
40
|
+
extern PyType_Spec PyJBuffer_Spec;
|
|
44
41
|
|
|
45
42
|
#endif // ndef pyjbuffer
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/*
|
|
2
2
|
jep - Java Embedded Python
|
|
3
3
|
|
|
4
|
-
Copyright (c) 2004-
|
|
4
|
+
Copyright (c) 2004-2025 JEP AUTHORS.
|
|
5
5
|
|
|
6
6
|
This file is licensed under the the zlib/libpng License.
|
|
7
7
|
|
|
@@ -36,7 +36,7 @@
|
|
|
36
36
|
#ifndef _Included_pyjclass
|
|
37
37
|
#define _Included_pyjclass
|
|
38
38
|
|
|
39
|
-
extern
|
|
39
|
+
extern PyType_Spec PyJClass_Spec;
|
|
40
40
|
|
|
41
41
|
typedef struct {
|
|
42
42
|
PyObject_HEAD
|
|
@@ -52,8 +52,6 @@ typedef struct {
|
|
|
52
52
|
|
|
53
53
|
PyObject* PyJClass_Wrap(JNIEnv*, jobject);
|
|
54
54
|
|
|
55
|
-
|
|
56
|
-
PyObject_TypeCheck(pyobj, &PyJClass_Type)
|
|
57
|
-
|
|
55
|
+
int PyJClass_Check(PyObject*);
|
|
58
56
|
|
|
59
57
|
#endif // ndef pyjclass
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/*
|
|
2
2
|
jep - Java Embedded Python
|
|
3
3
|
|
|
4
|
-
Copyright (c) 2016-
|
|
4
|
+
Copyright (c) 2016-2025 JEP AUTHORS.
|
|
5
5
|
|
|
6
6
|
This file is licensed under the the zlib/libpng License.
|
|
7
7
|
|
|
@@ -31,11 +31,9 @@
|
|
|
31
31
|
#ifndef _Included_pyjconstructor
|
|
32
32
|
#define _Included_pyjconstructor
|
|
33
33
|
|
|
34
|
-
extern
|
|
34
|
+
extern PyType_Spec PyJConstructor_Spec;
|
|
35
35
|
|
|
36
36
|
/* Second arg must be a java.lang.reflect.Constructor */
|
|
37
|
-
PyObject* PyJConstructor_New(JNIEnv*, jobject);
|
|
38
|
-
|
|
39
|
-
int PyJConstructor_Check(PyObject*);
|
|
37
|
+
PyObject* PyJConstructor_New(JNIEnv*, JepModuleState*, jobject);
|
|
40
38
|
|
|
41
39
|
#endif // ndef pyjconstructor
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/*
|
|
2
2
|
jep - Java Embedded Python
|
|
3
3
|
|
|
4
|
-
Copyright (c) 2004-
|
|
4
|
+
Copyright (c) 2004-2025 JEP AUTHORS.
|
|
5
5
|
|
|
6
6
|
This file is licensed under the the zlib/libpng License.
|
|
7
7
|
|
|
@@ -31,7 +31,7 @@
|
|
|
31
31
|
#ifndef _Included_pyjfield
|
|
32
32
|
#define _Included_pyjfield
|
|
33
33
|
|
|
34
|
-
extern
|
|
34
|
+
extern PyType_Spec PyJField_Spec;
|
|
35
35
|
|
|
36
36
|
/* Represents a java field on a java object and allows getting and setting values */
|
|
37
37
|
typedef struct {
|
|
@@ -47,8 +47,8 @@ typedef struct {
|
|
|
47
47
|
} PyJFieldObject;
|
|
48
48
|
|
|
49
49
|
|
|
50
|
-
PyJFieldObject* PyJField_New(JNIEnv*, jobject);
|
|
51
|
-
int PyJField_Check(PyObject*);
|
|
50
|
+
PyJFieldObject* PyJField_New(JNIEnv*, JepModuleState*, jobject);
|
|
51
|
+
int PyJField_Check(JepModuleState*, PyObject*);
|
|
52
52
|
|
|
53
53
|
PyObject* pyjfield_get(PyJFieldObject*, PyJObject*);
|
|
54
54
|
int pyjfield_set(PyJFieldObject*, PyJObject*, PyObject*);
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/*
|
|
2
2
|
jep - Java Embedded Python
|
|
3
3
|
|
|
4
|
-
Copyright (c) 2004-
|
|
4
|
+
Copyright (c) 2004-2025 JEP AUTHORS.
|
|
5
5
|
|
|
6
6
|
This file is licensed under the the zlib/libpng License.
|
|
7
7
|
|
|
@@ -32,7 +32,7 @@
|
|
|
32
32
|
#define _Included_pyjmethod
|
|
33
33
|
|
|
34
34
|
|
|
35
|
-
extern
|
|
35
|
+
extern PyType_Spec PyJMethod_Spec;
|
|
36
36
|
|
|
37
37
|
/*
|
|
38
38
|
* A callable python object which wraps a java method and is dynamically added
|
|
@@ -54,10 +54,10 @@ typedef struct {
|
|
|
54
54
|
} PyJMethodObject;
|
|
55
55
|
|
|
56
56
|
/* Create a new PyJMethod from a java.lang.reflect.Method*/
|
|
57
|
-
PyJMethodObject* PyJMethod_New(JNIEnv*, jobject);
|
|
57
|
+
PyJMethodObject* PyJMethod_New(JNIEnv*, JepModuleState*, jobject);
|
|
58
58
|
|
|
59
59
|
/* Check if the arg is a PyJMethodObject */
|
|
60
|
-
int PyJMethod_Check(PyObject *obj);
|
|
60
|
+
int PyJMethod_Check(JepModuleState*, PyObject *obj);
|
|
61
61
|
|
|
62
62
|
/*
|
|
63
63
|
* Get the number of parameters the method is expecting. If the method has not
|
|
@@ -68,7 +68,7 @@ int PyJMethod_GetParameterCount(PyJMethodObject*, JNIEnv*);
|
|
|
68
68
|
/*
|
|
69
69
|
* Check if a method is compatible with the types of a tuple of arguments.
|
|
70
70
|
* This will return a 0 if the arguments are not valid for this method and a
|
|
71
|
-
* positive integer if the arguments are valid. Returns a negative value on error.
|
|
71
|
+
* positive integer if the arguments are valid. Returns a negative value on error.
|
|
72
72
|
* Larger numbers indicate a better match between the arguments and the expected parameter types.
|
|
73
73
|
* This function uses pyarg_matches_jtype to determine how well arguments match.
|
|
74
74
|
* This function does not need to be called before using calling this method, it is only
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/*
|
|
2
2
|
jep - Java Embedded Python
|
|
3
3
|
|
|
4
|
-
Copyright (c) 2017-
|
|
4
|
+
Copyright (c) 2017-2025 JEP AUTHORS.
|
|
5
5
|
|
|
6
6
|
This file is licensed under the the zlib/libpng License.
|
|
7
7
|
|
|
@@ -37,7 +37,7 @@
|
|
|
37
37
|
#ifndef _Included_pyjmonitor
|
|
38
38
|
#define _Included_pyjmonitor
|
|
39
39
|
|
|
40
|
-
extern
|
|
40
|
+
extern PyType_Spec PyJMonitor_Spec;
|
|
41
41
|
|
|
42
42
|
typedef struct {
|
|
43
43
|
PyObject_HEAD
|
|
@@ -51,9 +51,4 @@ typedef struct {
|
|
|
51
51
|
*/
|
|
52
52
|
PyObject* PyJMonitor_New(jobject);
|
|
53
53
|
|
|
54
|
-
/*
|
|
55
|
-
* Returns true if the object is a PyJMonitor.
|
|
56
|
-
*/
|
|
57
|
-
int PyJMonitor_Check(PyObject*);
|
|
58
|
-
|
|
59
54
|
#endif // ndef pyjmonitor
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/*
|
|
2
2
|
jep - Java Embedded Python
|
|
3
3
|
|
|
4
|
-
Copyright (c) 2015-
|
|
4
|
+
Copyright (c) 2015-2025 JEP_AUTHORS.
|
|
5
5
|
|
|
6
6
|
This file is licensed under the the zlib/libpng License.
|
|
7
7
|
|
|
@@ -33,7 +33,7 @@
|
|
|
33
33
|
#define _Included_pyjmultimethod
|
|
34
34
|
|
|
35
35
|
|
|
36
|
-
extern
|
|
36
|
+
extern PyType_Spec PyJMultiMethod_Spec;
|
|
37
37
|
|
|
38
38
|
typedef struct {
|
|
39
39
|
PyObject_HEAD
|
|
@@ -45,11 +45,11 @@ typedef struct {
|
|
|
45
45
|
* make a PyJMultiMethod, after creation it is possible to add more than two
|
|
46
46
|
* methods using PyJMultiMethod_Append.
|
|
47
47
|
*/
|
|
48
|
-
PyObject* PyJMultiMethod_New(PyObject*, PyObject*);
|
|
48
|
+
PyObject* PyJMultiMethod_New(JepModuleState*, PyObject*, PyObject*);
|
|
49
49
|
/* Args must be a PyJMultiMethodObject and a PyJMethodObject */
|
|
50
|
-
int PyJMultiMethod_Append(PyObject*, PyObject*);
|
|
50
|
+
int PyJMultiMethod_Append(JepModuleState*, PyObject*, PyObject*);
|
|
51
51
|
/* Check if the arg is a PyJMultiMethodObject */
|
|
52
|
-
int PyJMultiMethod_Check(PyObject*);
|
|
52
|
+
int PyJMultiMethod_Check(JepModuleState*, PyObject*);
|
|
53
53
|
/* Get the name of a PyJMultiMethodObject, returns a new reference to the name */
|
|
54
54
|
PyObject* PyJMultiMethod_GetName(PyObject*);
|
|
55
55
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/*
|
|
2
2
|
jep - Java Embedded Python
|
|
3
3
|
|
|
4
|
-
Copyright (c) 2004-
|
|
4
|
+
Copyright (c) 2004-2025 JEP AUTHORS.
|
|
5
5
|
|
|
6
6
|
This file is licensed under the the zlib/libpng License.
|
|
7
7
|
|
|
@@ -31,7 +31,7 @@
|
|
|
31
31
|
#define _Included_pyjobject
|
|
32
32
|
|
|
33
33
|
|
|
34
|
-
extern
|
|
34
|
+
extern PyType_Spec PyJObject_Spec;
|
|
35
35
|
|
|
36
36
|
/*
|
|
37
37
|
* The common fields for PyJObject. The usage of this macro is similar to
|
|
@@ -59,8 +59,7 @@ typedef struct {
|
|
|
59
59
|
*/
|
|
60
60
|
PyObject* PyJObject_New(JNIEnv*, PyTypeObject*, jobject, jclass);
|
|
61
61
|
|
|
62
|
-
|
|
63
|
-
PyObject_TypeCheck(pyobj, &PyJObject_Type)
|
|
62
|
+
int PyJObject_Check(PyObject*);
|
|
64
63
|
|
|
65
64
|
|
|
66
65
|
#endif // ndef pyjobject
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/*
|
|
2
2
|
jep - Java Embedded Python
|
|
3
3
|
|
|
4
|
-
Copyright (c) 2020-
|
|
4
|
+
Copyright (c) 2020-2025 JEP AUTHORS.
|
|
5
5
|
|
|
6
6
|
This file is licensed under the the zlib/libpng License.
|
|
7
7
|
|
|
@@ -30,6 +30,8 @@
|
|
|
30
30
|
#ifndef _Included_pyjtype
|
|
31
31
|
#define _Included_pyjtype
|
|
32
32
|
|
|
33
|
+
extern PyType_Spec PyJType_Spec;
|
|
34
|
+
|
|
33
35
|
/*
|
|
34
36
|
* Get a PyTypeObject for the java class provided.
|
|
35
37
|
*/
|
|
@@ -105,11 +105,7 @@ static PyObject* pyjobject_convert_pyobject(PyObject* pyjob)
|
|
|
105
105
|
PyObject* topy = PyObject_GetAttrString(pyjob, "_to_python");
|
|
106
106
|
if (topy != NULL) {
|
|
107
107
|
Py_DECREF(pyjob);
|
|
108
|
-
#if PY_MAJOR_VERSION > 3 || PY_MINOR_VERSION >= 9
|
|
109
108
|
result = PyObject_CallNoArgs(topy);
|
|
110
|
-
#else
|
|
111
|
-
result = PyObject_CallObject(topy, NULL);
|
|
112
|
-
#endif
|
|
113
109
|
Py_DECREF(topy);
|
|
114
110
|
} else {
|
|
115
111
|
/* This is exactly what is done in PyObject_HasAttr. */
|