ืฉื—ืจื•ืจ ืฉืœ JPype 0.7.2, ืกืคืจื™ื•ืช ืœื’ื™ืฉื” ืœืฉื™ืขื•ืจื™ Java ืž-Python

ื–ืžื™ืŸ ืฉื—ืจื•ืจ ื‘ื™ืŸ ื”ืฉื›ื‘ื•ืช JPype 0.7.2, ื”ืžืืคืฉืจ ืœืš ืœืืจื’ืŸ ื’ื™ืฉื” ืžืœืื” ืฉืœ ื™ื™ืฉื•ืžื™ Python ืœืกืคืจื™ื•ืช ื›ื™ืชื•ืช Java. ืขื JPype ืž-Python, ืืชื” ื™ื›ื•ืœ ืœื”ืฉืชืžืฉ ื‘ืกืคืจื™ื•ืช ืกืคืฆื™ืคื™ื•ืช ืœ-Java ื›ื“ื™ ืœื™ืฆื•ืจ ื™ื™ืฉื•ืžื™ื ื”ื™ื‘ืจื™ื“ื™ื™ื ื”ืžืฉืœื‘ื™ื ืงื•ื“ Java ื•-Python. ืฉืœื ื›ืžื• Jython, ืื™ื ื˜ื’ืจืฆื™ื” ืขื Java ืžื•ืฉื’ืช ืœื ื‘ืืžืฆืขื•ืช ื™ืฆื™ืจืช ื•ืจื™ืื ื˜ ืฉืœ Python ืขื‘ื•ืจ ื”-JVM, ืืœื ื‘ืืžืฆืขื•ืช ืื™ื ื˜ืจืืงืฆื™ื” ื‘ืจืžืช ืฉืชื™ ื”ืžื›ื•ื ื•ืช ื”ื•ื™ืจื˜ื•ืืœื™ื•ืช ื”ืžืฉืชืžืฉื•ืช ื‘ื–ื™ื›ืจื•ืŸ ืžืฉื•ืชืฃ. ื”ื’ื™ืฉื” ื”ืžื•ืฆืขืช ืžืืคืฉืจืช ืœื ืจืง ืœื”ืฉื™ื’ ื‘ื™ืฆื•ืขื™ื ื˜ื•ื‘ื™ื, ืืœื ื’ื ืžืกืคืงืช ื’ื™ืฉื” ืœื›ืœ ืกืคืจื™ื•ืช CPython ื•-Java. ืงื•ื“ ืคืจื•ื™ืงื˜ ืžื•ืคืฅ ืขืœ ื™ื“ื™ ืžื•ืจืฉื” ืชื—ืช Apache 2.0.

ืฉื™ื ื•ื™ื™ื ืขื™ืงืจื™ื™ื:

  • ื—ืจื™ื’ื™ื ืฉื ื–ืจืงื• ื‘ืงื•ื“ C++ ื•-Java ืžืกืคืงื™ื ื›ืขืช ืขืจื™ืžืช ื—ืจื™ื’ื™ื ื›ืืฉืจ ืžืชืจื—ืฉ ื—ืจื™ื’ ื‘ืงื•ื“ Python. ืœืคื™ื›ืš, ื›ื“ื™ ืœืงื‘ืœ ืžื™ื“ืข ืขืœ ืžื—ืกื ื™ืช ื”ื—ืจื™ื’ื™ื, ืื™ื ืš ืฆืจื™ืš ืขื•ื“ ืœืงืจื•ื ืœ-stacktrace().
  • ืžื”ื™ืจื•ืช ื”ื—ื–ืจืช ื”ืฉื™ื—ื” ื”ื•ื›ืคืœื”.
  • ื‘ืื•ืคืŸ ืžืฉืžืขื•ืชื™ (ื‘ืกื“ืจื™ ื’ื•ื“ืœ) ืขืœื™ื™ื” ืžื”ื™ืจื•ืช ื”ืฉื™ื“ื•ืจ ืคื ื™ืžื”
    ืžืื’ืจื™ื numpy ืฉืœ ืžืขืจื›ื™ื ืจื‘ ืžื™ืžื“ื™ื™ื. ืคืจื™ืžื™ื˜ื™ื‘ื™ื ืจื‘-ืžืžื“ื™ื™ื ืžืขื‘ื™ืจื™ื ืขื•ืชืงื™ื ืœืงืจื™ืื” ื‘ืœื‘ื“ ืฉื ื•ืฆืจื• ื‘ืชื•ืš ื”-JVM ืขื ืคืจื™ืกืช C ืจืฆื™ืคื”.

  • ื›ืœ ื”ื—ืœืงื™ื ื”ืคื ื™ืžื™ื™ื ื”ื—ืฉื•ืคื™ื ื”ื•ื—ืœืคื• ื‘ื™ื™ืฉื•ื CPython, ื•ื”ืกืžืœื™ื __javaclass__, __javavalue__ ื•__javaproxy__
    ื ืžื—ืง. ื—ืจื™ืฅ Java ื™ื™ืขื•ื“ื™ ื ื•ืกืฃ ืœื›ืœ ืกื•ื’ื™ ื”-CPython ื”ื™ื•ืจืฉื™ื ืžืกื•ื’ื™ ืžื—ืœืงื•ืช jpype. ื›ืœ ื”ืฉื•ืœื—ื ื•ืช ื”ืคืจื˜ื™ื™ื ื”ื•ืขื‘ืจื• ืœ-CPython. ืกื•ื’ื™ Java ื—ื™ื™ื‘ื™ื ื›ืขืช ืœืจืฉืช ืžื”ืžื˜ื-class JClass, ื”ืžืฉืชืžืฉ ื‘ื—ืจื™ืฆื™ ืกื•ื’. ืžื™ืงืกื™ื ื™ื ืขื‘ื•ืจ ืžื—ืœืงื•ืช ื‘ืกื™ืก ืฉืœ Python ืื™ื ื ืžื•ืชืจื™ื. ื”ืกื•ื’ื™ื ื”ื Object, Proxy, Exception, Number ื•ืžืขืจืš ื•ื”ื ื™ื•ืจืฉื™ื ื™ืฉื™ืจื•ืช ืžื”ื™ื™ืฉื•ื ื”ืคื ื™ืžื™ ืฉืœ CPython.

  • ืฉื™ืคื•ืจ ืžืขืงื‘ ื•ื˜ื™ืคื•ืœ ื‘ื—ืจื™ื’ื™ื.
  • ืคืจื•ืกื•ืช ืžืขืจืš ืžืขื•ื‘ื“ื•ืช ื›ืขืช ื›ืชืฆื•ื’ื•ืช ื”ืชื•ืžื›ื•ืช ื‘ื›ืชื™ื‘ื” ื—ื–ืจื” ืœืžืงื•ืจ, ื›ื’ื•ืŸ ืžืขืจืš numpy. ืขื‘ื•ืจ ื—ื™ืชื•ืš ืžืขืจืš, ื ื™ืชื ืช ืชืžื™ื›ื” ืœื”ื’ื“ืจื” ื•ืื—ื–ื•ืจ ืฉืœ ืขืจื›ื™ื ื‘ืฉืœื‘ื™ื (ืคืจื•ืกื” (ื”ืชื—ืœื”, ืขืฆื™ืจื”, ืฉืœื‘)).
  • ืžืขืจื›ื™ื ืชื•ืžื›ื™ื ื›ืขืช ื‘-"__reversed__".
  • ืžืขืจื›ื™ Java ืชื•ืžื›ื™ื ื›ืขืช ื‘ืžืžืฉืง API ืฉืœ memoryview ื•ืžืกื™ืจื™ื ืืช ื”ืชืœื•ืช ื‘-numpy ื›ื“ื™ ืœื”ืขื‘ื™ืจ ืืช ืชื•ื›ืŸ ื”ืžืื’ืจ.
  • Numpy ืื™ื ื” ืขื•ื“ ืชืœื•ืช (ืชื•ืกืคืช) ื•ื”ืขื‘ืจืช ื–ื™ื›ืจื•ืŸ ืœ-numpy ื–ืžื™ื ื” ืœืœื ืงื•ืžืคื™ืœืฆื™ื” ืขื ืชืžื™ื›ืช numpy.
  • JInterface ืชื•ื›ื ืŸ ื›ืžื—ืœืงืช ืžื˜ื”. ื”ืฉืชืžืฉ ื‘-isinstance(cls, JInterface) ื›ื“ื™ ืœื‘ื“ื•ืง ืื ื™ืฉ ืžืžืฉืงื™ื.
  • ื”ื•ืกืคืช TLD ื—ืกืจื™ื "mil", "net" ื•-"edu" ืœื™ื™ื‘ื•ื โ€‹โ€‹ื‘ืจื™ืจืช ืžื—ื“ืœ.
  • ื”ื•ื“ืขื•ืช ืฉื’ื™ืื” ืžืฉื•ืคืจื•ืช ืขื‘ื•ืจ UnsupportedClassVersion ื‘ืžื”ืœืš ื”ืืชื—ื•ืœ.
  • java.util.Map ื–ื•ืจืง ื›ืขืช KeyError ืื ื”ืืœืžื ื˜ ืœื ื ืžืฆื. ืขืจื›ื™ื ืฉื”ื ืืคืก ืขื“ื™ื™ืŸ ื—ื•ื–ืจื™ื ืœืœื ื›ืฆืคื•ื™. ื”ืฉืชืžืฉ ื‘-get() ืื ืืชื” ืจื•ืฆื” ืœื”ืชื™ื™ื—ืก ืœืžืคืชื—ื•ืช ืจื™ืงื™ื ื›ืืœ None.
  • ื”ื•ืกืจ java.util.Collection ืžื›ื™ื•ื•ืŸ ืฉื”ื•ื ืžืขืžื™ืก ื‘ืื•ืคืŸ ืžื•ื–ืจ ื‘ื™ืŸ remove(Object) ืœื‘ื™ืŸ remove(int) ื‘ืจืฉื™ืžื•ืช. ื”ืฉืชืžืฉ ื‘ืฉื™ื˜ืช Java remove() ื›ื“ื™ ืœื’ืฉืช ืœื”ืชื ื”ื’ื•ืช Java ืžืงื•ืจื™ืช, ืืš ืžื•ืžืœืฅ ืžืื•ื“ ืœื”ื˜ื™ืœ ืืช ื”ืกื•ื’ ืœื‘ืงืจืช ืขื•ืžืก ื™ืชืจ.
  • ื›ืขืช ื ื™ืชืŸ ืœืชืคื•ืก java.lang.IndexOutOfBoundsException ื‘ืืžืฆืขื•ืช ืžื—ืœืงืช ื”ื—ืจื™ื’ื” IndexError ื‘ืขืช ื’ื™ืฉื” ืœืจื›ื™ื‘ื™ java.util.List.

ืžืงื•ืจ: OpenNet.ru

ื”ื•ืกืคืช ืชื’ื•ื‘ื”