JPype 1.0 ಬಿಡುಗಡೆ, ಪೈಥಾನ್‌ನಿಂದ ಜಾವಾ ತರಗತಿಗಳನ್ನು ಪ್ರವೇಶಿಸಲು ಲೈಬ್ರರಿಗಳು

ಲಭ್ಯವಿದೆ ಇಂಟರ್ಲೇಯರ್ ಬಿಡುಗಡೆ JPype 1.0, ಇದು ಜಾವಾ ಕ್ಲಾಸ್ ಲೈಬ್ರರಿಗಳಿಗೆ ಪೈಥಾನ್ ಅಪ್ಲಿಕೇಶನ್‌ಗಳ ಸಂಪೂರ್ಣ ಪ್ರವೇಶವನ್ನು ಸಂಘಟಿಸಲು ನಿಮಗೆ ಅನುಮತಿಸುತ್ತದೆ. ಪೈಥಾನ್‌ನಿಂದ JPype ನೊಂದಿಗೆ, ಜಾವಾ ಮತ್ತು ಪೈಥಾನ್ ಕೋಡ್ ಅನ್ನು ಸಂಯೋಜಿಸುವ ಹೈಬ್ರಿಡ್ ಅಪ್ಲಿಕೇಶನ್‌ಗಳನ್ನು ರಚಿಸಲು ನೀವು ಜಾವಾ-ನಿರ್ದಿಷ್ಟ ಲೈಬ್ರರಿಗಳನ್ನು ಬಳಸಬಹುದು. Jython ಗಿಂತ ಭಿನ್ನವಾಗಿ, JVM ಗಾಗಿ ಪೈಥಾನ್ ರೂಪಾಂತರವನ್ನು ರಚಿಸುವ ಮೂಲಕ ಜಾವಾದೊಂದಿಗೆ ಏಕೀಕರಣವನ್ನು ಸಾಧಿಸಲಾಗುತ್ತದೆ, ಆದರೆ ಹಂಚಿಕೆಯ ಮೆಮೊರಿಯನ್ನು ಬಳಸಿಕೊಂಡು ಎರಡೂ ವರ್ಚುವಲ್ ಯಂತ್ರಗಳ ಮಟ್ಟದಲ್ಲಿ ಪರಸ್ಪರ ಕ್ರಿಯೆಯ ಮೂಲಕ ಸಾಧಿಸಲಾಗುತ್ತದೆ. ಪ್ರಸ್ತಾವಿತ ವಿಧಾನವು ಉತ್ತಮ ಕಾರ್ಯಕ್ಷಮತೆಯನ್ನು ಸಾಧಿಸಲು ಮಾತ್ರವಲ್ಲದೆ ಎಲ್ಲಾ ಸಿಪಿಥಾನ್ ಮತ್ತು ಜಾವಾ ಲೈಬ್ರರಿಗಳಿಗೆ ಪ್ರವೇಶವನ್ನು ಒದಗಿಸುತ್ತದೆ. ಪ್ರಾಜೆಕ್ಟ್ ಕೋಡ್ ವಿತರಿಸುವವರು ಅಪಾಚೆ 2.0 ಅಡಿಯಲ್ಲಿ ಪರವಾನಗಿ ಪಡೆದಿದೆ.

ಪ್ರಮುಖ ಬದಲಾವಣೆಗಳು:

  • JChar ರಿಟರ್ನ್ ಪ್ರಕಾರವಾಗಿ ಬೆಂಬಲಿತವಾಗಿದೆ. ಹೊಂದಾಣಿಕೆಗಾಗಿ, JChar ಅನ್ನು "str" ​​ನಿಂದ ಪಡೆಯಲಾಗಿದೆ ಮತ್ತು "int" ಗೆ ಸೂಚ್ಯವಾದ ಪರಿವರ್ತನೆಯನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸುತ್ತದೆ. ಆದ್ದರಿಂದ, ಇದು ಒಪ್ಪಂದಗಳಲ್ಲಿ ಚೆಕ್ಗಳನ್ನು ಹಾದುಹೋಗುತ್ತದೆ. ಆದರೆ ಇದರರ್ಥ ಪೈಥಾನ್‌ನಲ್ಲಿ ಇದನ್ನು ಇನ್ನು ಮುಂದೆ ಸಂಖ್ಯಾ ಪ್ರಕಾರವೆಂದು ಪರಿಗಣಿಸಲಾಗುವುದಿಲ್ಲ ಮತ್ತು ಆದ್ದರಿಂದ ಜಾವಾದ ಪ್ರಕಾರದ ಪರಿವರ್ತನೆ ನಿಯಮಗಳಿಗೆ ಅನುಗುಣವಾಗಿ 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

ಕಾಮೆಂಟ್ ಅನ್ನು ಸೇರಿಸಿ