JPype 1.0 విడుదల, పైథాన్ నుండి జావా తరగతులను యాక్సెస్ చేయడానికి లైబ్రరీలు

అందుబాటులో పొర విడుదల JPype 1.0, ఇది జావా భాషలోని క్లాస్ లైబ్రరీలకు పూర్తి ప్రాప్తిని కలిగి ఉండటానికి పైథాన్ అప్లికేషన్‌లను అనుమతిస్తుంది. పైథాన్ నుండి JPypeతో, మీరు జావా మరియు పైథాన్ కోడ్‌లను కలిపి హైబ్రిడ్ అప్లికేషన్‌లను రూపొందించడానికి జావా-నిర్దిష్ట లైబ్రరీలను ఉపయోగించవచ్చు. Jython వలె కాకుండా, JVM కోసం పైథాన్ వేరియంట్‌ను సృష్టించడం ద్వారా కాకుండా, షేర్డ్ మెమరీని ఉపయోగించి రెండు వర్చువల్ మిషన్‌ల స్థాయిలో పరస్పర చర్య చేయడం ద్వారా జావాతో ఏకీకరణ సాధించబడుతుంది. ప్రతిపాదిత విధానం మంచి పనితీరును సాధించడమే కాకుండా, అన్ని CPython మరియు Java లైబ్రరీలకు యాక్సెస్‌ను అందిస్తుంది. ప్రాజెక్ట్ కోడ్ ద్వారా పంపిణీ చేయబడింది Apache 2.0 క్రింద లైసెన్స్ పొందింది.

ప్రధాన మార్పులు:

  • JChar రిటర్న్ రకంగా మద్దతు ఇస్తుంది. అనుకూలత కోసం, JChar "str" ​​నుండి వారసత్వంగా పొందుతుంది మరియు "పూర్ణాంకానికి" అవ్యక్త మార్పిడిని అమలు చేస్తుంది. అందువలన, ఇది ఒప్పందాలలో చెక్కులను పాస్ చేస్తుంది. కానీ దీనర్థం ఇది ఇకపై పైథాన్‌లో సంఖ్యా రకంగా పరిగణించబడదు మరియు అందువల్ల జావా రకం మార్పిడి నియమాలకు అనుగుణంగా isinstance(c, int) Falseకి మూల్యాంకనం చేస్తుంది.
  • జావా రకాన్ని ప్రసారం చేయడానికి ఒక ఆపరేటర్ పరిచయం చేయబడింది, Type@obj (@ అనేది అంతర్గత ఉత్పత్తి కోసం పైథాన్ ఆపరేటర్; జావాలో ఒకటి లేదు).
  • జావా శ్రేణులను సృష్టించడానికి సంజ్ఞామానం జోడించబడింది. స్థిర పరిమాణ శ్రేణుల కోసం టైప్[s1][s2][s3], తరువాత సృష్టించబడే శ్రేణుల కోసం టైప్[:][:][:].
  • @FunctionalInterface __call__తో పైథాన్ ఆబ్జెక్ట్‌ల నుండి జావా ఫంక్టర్‌లను సృష్టించడానికి మిమ్మల్ని అనుమతిస్తుంది.
  • తీసివేయబడిన JIterator తీసివేయబడింది, JExceptionను ఫ్యాక్టరీగా ఉపయోగించడం, get_default_jvm_path మరియు jpype.reflect.
  • డిఫాల్ట్‌గా, జావా స్ట్రింగ్‌లు పైథాన్ స్ట్రింగ్‌లుగా మార్చబడవు.
  • పైథాన్ "__int__"ని నిలిపివేసింది, కాబట్టి పూర్ణాంకం మరియు ఫ్లోటింగ్-పాయింట్ రకాల మధ్య అవ్యక్త కాస్ట్‌లు టైప్‌ఎర్రర్‌ను ఉత్పత్తి చేస్తాయి.
  • JException ఉపయోగం నిలిపివేయబడింది. అన్ని మినహాయింపులను క్యాచ్ చేయడానికి లేదా ఆబ్జెక్ట్ జావా మినహాయింపు రకం అని తనిఖీ చేయడానికి, java.lang.Throwableని ఉపయోగించండి.
  • జావా మినహాయింపుల యొక్క క్యాస్కేడింగ్ కారణాలు ఇప్పుడు పైథాన్ స్టాక్ ఫ్రేమ్‌లలో ప్రతిబింబిస్తాయి.
  • JString నిలిపివేయబడింది. జావా స్ట్రింగ్‌ను సృష్టించడానికి లేదా ఆబ్జెక్ట్ జావా స్ట్రింగ్ రకంలో ఉందో లేదో తనిఖీ చేయడానికి, java.lang.Stringని ఉపయోగించండి.
  • జావా క్లాస్‌లలో రెప్ర్ పద్ధతులు అప్‌డేట్ చేయబడ్డాయి.
  • java.util.List collections.abc.Sequence మరియు collections.abc.MutableSequence కోసం ఒప్పందాలను అమలు చేస్తుంది.
  • java.util.Collection సేకరణలు.abc.Collection కోసం ఒప్పందాన్ని అమలు చేస్తుంది.
  • జావా తరగతులు ప్రైవేట్‌గా ఉంటాయి మరియు పైథాన్ నుండి పొడిగించినప్పుడు టైప్‌ఎర్రర్‌ను విసురుతుంది.
  • కంట్రోల్-సిని జాగ్రత్తగా నిర్వహించండి. జావా కంట్రోల్-సి సిగ్నల్‌ను ప్రాసెస్ చేసినప్పుడు మునుపటి సంస్కరణలు క్రాష్ అవుతాయి ఎందుకంటే అవి కాల్ సమయంలో జావాను రద్దు చేస్తాయి. JPype ఇప్పుడు Java నుండి తిరిగి వచ్చినప్పుడు InterruptedExceptionను విసురుతుంది. కంట్రోల్-సి ప్రస్తుతం అమలులో ఉన్న విధంగా పెద్ద జావా విధానాలను త్రోసివేయదు, ఎందుకంటే దీని కోసం జావాకు ప్రత్యేక సాధనం లేదు.

తరువాత, దిద్దుబాటు విడుదల 1.0.1 సృష్టించబడింది, ఇది పైథాన్ 3.8.4 విడుదలతో సమస్యల పరిష్కారానికి మార్పులను జోడించింది. పైథాన్ "ఆబ్జెక్ట్" మరియు "టైప్" కోసం "__setattr__" వినియోగానికి సంబంధించిన లాజిక్‌ను మార్చింది, ఇది ఉత్పన్నమైన తరగతులను సవరించడానికి ఉపయోగించకుండా నిరోధిస్తుంది. దోష తనిఖీ "__setattr__" పద్ధతి నుండి కూడా అప్పగించబడింది, కాబట్టి కొన్ని సమర్ధత తనిఖీలలోని మినహాయింపు రకాలు తదనుగుణంగా నవీకరించబడాలి.

మూలం: opennet.ru

ఒక వ్యాఖ్యను జోడించండి