ಪೈಥಾನ್ ಮತ್ತು ಬ್ಯಾಷ್ ಸ್ನೇಹವನ್ನು ಮಾಡುವುದು: ಪೈಥಾನ್-ಶೆಲ್ ಮತ್ತು ಸ್ಮಾರ್ಟ್-ಎನ್ವಿ ವಿ ಲೈಬ್ರರಿಗಳ ಬಿಡುಗಡೆ. 1.0.1

ಎಲ್ಲರಿಗೂ ಒಳ್ಳೆಯ ದಿನ!

29 ಫೆಬ್ರವರಿ 2020 ವರ್ಷಗಳ ಗ್ರಂಥಾಲಯಗಳ ಅಧಿಕೃತ ಕಿರು-ಬಿಡುಗಡೆ ನಡೆಯಿತು ಸ್ಮಾರ್ಟ್-ಎನ್ವಿ и ಹೆಬ್ಬಾವು-ಚಿಪ್ಪು. ತಿಳಿದಿಲ್ಲದವರಿಗೆ, ಅದನ್ನು ಮೊದಲು ಓದಲು ನಾನು ಸಲಹೆ ನೀಡುತ್ತೇನೆ ಮೊದಲ ಪೋಸ್ಟ್.

ಸಂಕ್ಷಿಪ್ತವಾಗಿ, ಬದಲಾವಣೆಗಳು ಆಜ್ಞೆಯನ್ನು ಪೂರ್ಣಗೊಳಿಸುವಿಕೆ, ಚಾಲನೆಯಲ್ಲಿರುವ ಆಜ್ಞೆಗಳಿಗಾಗಿ ವಿಸ್ತರಿತ ಸಾಮರ್ಥ್ಯಗಳು, ಕೆಲವು ರಿಫ್ಯಾಕ್ಟರಿಂಗ್ ಮತ್ತು ದೋಷ ಪರಿಹಾರಗಳನ್ನು ಒಳಗೊಂಡಿವೆ.

ವಿವರಗಳಿಗಾಗಿ ದಯವಿಟ್ಟು ಬೆಕ್ಕು ನೋಡಿ.

ಪೈಥಾನ್-ಶೆಲ್‌ನಲ್ಲಿ ಹೊಸದೇನಿದೆ?

ನಾನು ತಕ್ಷಣ ಸಿಹಿತಿಂಡಿಗಳೊಂದಿಗೆ ಪ್ರಾರಂಭಿಸುತ್ತೇನೆ.

ಕಮಾಂಡ್ ಪೂರ್ಣಗೊಳಿಸುವಿಕೆ

ಒಪ್ಪುತ್ತೇನೆ - ಎಡಿಟರ್/ಐಡಿಇ/ಟರ್ಮಿನಲ್ ನಿಮ್ಮನ್ನು ಆಜ್ಞೆಯ ಹೆಸರಿಗಾಗಿ ಕೇಳಿದಾಗ ಮತ್ತು ಕೆಲವೊಮ್ಮೆ ಕರೆ ಪ್ಯಾರಾಮೀಟರ್‌ಗಳು ಸಹ ಅನುಕೂಲಕರವಾಗಿದೆಯೇ? ಆದ್ದರಿಂದ ಪೈಥಾನ್-ಶೆಲ್ ಇದೇ ರೀತಿಯ ಕಾರ್ಯವನ್ನು ಒದಗಿಸುವಲ್ಲಿ ಕ್ರಮೇಣ ಪ್ರಗತಿ ಸಾಧಿಸುತ್ತಿದೆ. ಹುಡ್ ಅಡಿಯಲ್ಲಿರುವ ಶೆಲ್ ವರ್ಗದ ಕ್ಷೇತ್ರಗಳು ಅದರ ಕ್ಷೇತ್ರಗಳಲ್ಲ (ಸರ್ವವ್ಯಾಪಿ __getattr__), ಸ್ವಯಂಪೂರ್ಣತೆಯನ್ನು ಸಹ ಮೊದಲಿನಿಂದ ರಚಿಸಲಾಗಿದೆ (ಕ್ರಮವಾಗಿ __dir__ ವಿಧಾನವನ್ನು ಓವರ್‌ಲೋಡ್ ಮಾಡುವ ಮೂಲಕ). ಸ್ವಯಂಪೂರ್ಣಗೊಳಿಸುವಿಕೆಯು ಪ್ರಸ್ತುತ BPython ಮತ್ತು IPython ಪರಿಸರದಲ್ಲಿ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತದೆ. ಸಹಜವಾಗಿ, PyCharm ನಂತಹ ಹೆಚ್ಚು ಗೌರವಾನ್ವಿತ ಉತ್ಪನ್ನಗಳೊಂದಿಗೆ ಏಕೀಕರಣವನ್ನು ನೋಡಲು ನಾನು ಬಯಸುತ್ತೇನೆ ಮತ್ತು ಈ ದಿಕ್ಕಿನಲ್ಲಿ ಅನುಷ್ಠಾನದ ಸಾಧ್ಯತೆಗಳನ್ನು ಅಧ್ಯಯನ ಮಾಡಲಾಗುತ್ತಿದೆ.

ಗುಣಲಕ್ಷಣಗಳನ್ನು ಸೇರಿಸುವುದು

ಬಿಡುಗಡೆಯ ಭಾಗವಾಗಿ, ಶೆಲ್ ವರ್ಗವು ಹೊಸ ಕೊನೆಯ_ಕಮಾಂಡ್ ಆಸ್ತಿಯನ್ನು ಪಡೆಯಿತು. ಶೂನ್ಯವಲ್ಲದ ರಿಟರ್ನ್ ಕೋಡ್‌ನೊಂದಿಗೆ ಕಮಾಂಡ್‌ನಿಂದ ಶೆಲ್‌ಎಕ್ಸೆಪ್ಶನ್ ಅನ್ನು ಎಸೆದಾಗ, ಕಮಾಂಡ್ ಆಬ್ಜೆಕ್ಟ್ ಅನ್ನು __call__() ಕರೆಯಿಂದ ಕಮಾಂಡ್ ಆಬ್ಜೆಕ್ಟ್‌ಗೆ ಹಿಂತಿರುಗಿಸಲಾಗಿಲ್ಲ. ಈಗ ಇದನ್ನು ಮಾಡಲು ಅವಕಾಶವಿದೆ:

try:
    command = Shell.touch('/foo.txt')
except ShellException:
    command = Shell.last_command

ಕಮಾಂಡ್ ಆಬ್ಜೆಕ್ಟ್‌ನ ಗುಣಲಕ್ಷಣಗಳ ಪಟ್ಟಿಯನ್ನು ಸಹ ವಿಸ್ತರಿಸಲಾಗಿದೆ. ದೋಷ ಸ್ಟ್ರೀಮ್‌ಗೆ ಕಮಾಂಡ್ ಔಟ್‌ಪುಟ್ ಅನ್ನು ಹಿಂತಿರುಗಿಸುವ ದೋಷಗಳ ಕ್ಷೇತ್ರವನ್ನು ಸೇರಿಸಲಾಗಿದೆ.

ಅಮಾನ್ಯ ಪೈಥಾನ್ ಹೆಸರುಗಳೊಂದಿಗೆ ಆಜ್ಞೆಗಳನ್ನು ಚಾಲನೆ ಮಾಡಲಾಗುತ್ತಿದೆ

ಬಹುತೇಕ ಪ್ರತಿಯೊಂದು ವ್ಯವಸ್ಥೆಯು ಕನಿಷ್ಟ ಒಂದು ಪ್ರೋಗ್ರಾಂ ಅನ್ನು ಹೊಂದಿದೆ, ಅದರ ಹೆಸರು ಪೈಥಾನ್‌ನಲ್ಲಿ ಗುರುತಿಸುವಿಕೆಯಾಗಿ ಸೂಕ್ತವಲ್ಲ (ಉದಾಹರಣೆಗೆ, ಪ್ರಸಿದ್ಧವಾದ 2to3 ಉಪಯುಕ್ತತೆ). ಅವಳೊಂದಿಗೆ ಕರೆ ಮಾಡಿ

Shell.2to3()

ಅದು ಕೆಲಸ ಮಾಡದಿದ್ದರೆ, ಇಂಟರ್ಪ್ರಿಟರ್ ಅದನ್ನು ಅನುಮತಿಸುವುದಿಲ್ಲ.
ಆಜ್ಞೆಯನ್ನು ವೃತ್ತಾಕಾರದಲ್ಲಿ ಕರೆಯುವುದು ಪರಿಹಾರವಾಗಿದೆ:

Shell("2to3")  # возвращает объект команды

ಅದೇ ರೀತಿಯಲ್ಲಿ ನೀವು ಇಂಟರ್ಪ್ರಿಟರ್ನ ದೃಷ್ಟಿಕೋನದಿಂದ ಮಾನ್ಯವಾಗಿರುವ ಆಜ್ಞೆಗಳನ್ನು ಚಲಾಯಿಸಬಹುದು ಎಂದು ಗಮನಿಸಬೇಕಾದ ಅಂಶವಾಗಿದೆ, ಇದು ಹೊಂದಿಕೊಳ್ಳುವ ಸ್ಕ್ರಿಪ್ಟ್ಗಳನ್ನು ರಚಿಸಲು ಅವಕಾಶವನ್ನು ನೀಡುತ್ತದೆ

cmd = "python{}".format(sys.version_info[0])
Shell(cmd)(*args, **kwargs)

ಸಣ್ಣ ಬದಲಾವಣೆಗಳು

  • ಕಮಾಂಡ್ ಕ್ಲಾಸ್ ಆಬ್ಜೆಕ್ಟ್‌ನ __repr__() ಮತ್ತು __str__() ವಿಧಾನಗಳನ್ನು ಅಳವಡಿಸಲಾಗಿದೆ, ಅದು ಈಗ ಅರ್ಥಗರ್ಭಿತ ಮೌಲ್ಯಗಳನ್ನು ಉತ್ಪಾದಿಸುತ್ತದೆ (ಕ್ರಮವಾಗಿ ಪ್ಯಾರಾಮೀಟರ್‌ಗಳನ್ನು ಹೊಂದಿರುವ ಆಜ್ಞೆ ಮತ್ತು ಅದರ stdout ಔಟ್‌ಪುಟ್).
  • ಸಣ್ಣ ಕೋಡ್ ಪರಿಹಾರಗಳು.
  • ಪರೀಕ್ಷಾ ವ್ಯಾಪ್ತಿಯನ್ನು ಸೇರಿಸುವುದು, ಹಾಗೆಯೇ ಅಸ್ತಿತ್ವದಲ್ಲಿರುವವುಗಳನ್ನು ಮರುಸಂಘಟಿಸುವುದು.
  • ಉಪಪ್ರಕ್ರಿಯೆ ಮತ್ತು ಪ್ರಕ್ರಿಯೆ ತರಗತಿಗಳನ್ನು ಸೇರಿಸುವುದು, ಉಪಪ್ರಕ್ರಿಯೆ ಮಾಡ್ಯೂಲ್‌ನೊಂದಿಗೆ ಕೆಲಸ ಮಾಡುವಾಗ ಹೆಚ್ಚುವರಿ ಮಟ್ಟದ ಅಮೂರ್ತತೆಯನ್ನು ರಚಿಸುವುದು ಇದರ ಉದ್ದೇಶವಾಗಿದೆ. ಪೈಥಾನ್ 2/3 ನೊಂದಿಗೆ ಕೆಲಸ ಮಾಡುವಾಗ ಕೋಡ್ ನಕಲು ತೆಗೆದುಹಾಕಲು ಹೆಚ್ಚಾಗಿ ಅಗತ್ಯವಿದೆ, ಆದರೆ ಇತರ ಬೋನಸ್‌ಗಳನ್ನು ಸಹ ಒದಗಿಸಬಹುದು.

ಸ್ಮಾರ್ಟ್-ಎನ್ವಿಯಲ್ಲಿ ಹೊಸತೇನಿದೆ?

ಪೈಥಾನ್-ಶೆಲ್‌ಗಿಂತ ಭಿನ್ನವಾಗಿ, ಸ್ಮಾರ್ಟ್-ಎನ್ವಿ ಲೈಬ್ರರಿಯಲ್ಲಿ ಕಡಿಮೆ ಬದಲಾವಣೆಗಳಾಗಿವೆ. ಇದಕ್ಕೆ ಕಾರಣ ಸರಳವಾಗಿದೆ - ಉಚಿತ ಸಮಯದ ಕೊರತೆ, ಈ ಸಮಯದಲ್ಲಿ ಕೆಲವು ಸಂಭಾವ್ಯ ಸುಧಾರಣೆಗಳನ್ನು (ಉದಾಹರಣೆಗೆ, ಪರಿಸರ ವೇರಿಯಬಲ್‌ಗಳ ಸ್ವಯಂ ಪೂರ್ಣಗೊಳಿಸುವಿಕೆ) ಮುಂದಿನ ಬಿಡುಗಡೆಗೆ ಸರಿಸಲಾಗಿದೆ.

ವಾಸ್ತವವಾಗಿ, ಗ್ರಂಥಾಲಯಕ್ಕೆ ಈ ಕೆಳಗಿನ ಬದಲಾವಣೆಗಳನ್ನು ಮಾಡಲಾಗಿದೆ:

  • ಸಣ್ಣ ಕೋಡ್ ಪರಿಹಾರಗಳು.
  • ರಿಫ್ಯಾಕ್ಟರಿಂಗ್.
  • ಅಸ್ತಿತ್ವದಲ್ಲಿರುವ ಪರೀಕ್ಷೆಗಳ ಮರುಸಂಘಟನೆ ಮತ್ತು ಪರಿಷ್ಕರಣೆ.

ಮುಂದಿನ ಬಿಡುಗಡೆಗಳ ಯೋಜನೆಗಳು

ಪೈಥಾನ್-ಶೆಲ್ ಲೈಬ್ರರಿ

  • ನಿರ್ಬಂಧಿಸದ ಕಮಾಂಡ್ ಕರೆಗಳಿಗೆ ಬೆಂಬಲವನ್ನು ಸೇರಿಸುವುದು (ಕಾರ್ಯಗತಗೊಳಿಸುವಿಕೆಯ ಸಮಾನಾಂತರಗೊಳಿಸುವಿಕೆ).

ಸ್ಮಾರ್ಟ್-ಎನ್ವಿ ಲೈಬ್ರರಿ

  • ENV ವರ್ಗದಲ್ಲಿ ಪರಿಸರ ವೇರಿಯಬಲ್‌ಗಳ ಸ್ವಯಂಪೂರ್ಣತೆಯ ಅನುಷ್ಠಾನ.
  • env ವೇರಿಯೇಬಲ್‌ನ ಅಸ್ತಿತ್ವವನ್ನು ಪರಿಶೀಲಿಸಲು ಇನ್ ಆಪರೇಟರ್‌ಗೆ ಬೆಂಬಲ.
  • ENV ವರ್ಗಕ್ಕೆ str() ಮತ್ತು repr() ಕಾರ್ಯಗಳಿಗೆ ಬೆಂಬಲದ ಅನುಷ್ಠಾನ.

ಮುಂದಿನ ಬಿಡುಗಡೆಗಳ ದಿನಾಂಕಗಳನ್ನು ಈ ಕೆಳಗಿನ ಸಂವಹನ ಚಾನಲ್‌ಗಳಲ್ಲಿ ಪ್ರಕಟಿಸಲಾಗುವುದು:

ಮೂಲ: www.habr.com

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