Ṣiṣe Python ati Bash Ore: Tu ti Python-ikarahun ati ki o smati-env v ikawe. 1.0.1

O dara ọjọ gbogbo eniyan!

Kínní 29, 2020 osise bulọọgi-Tu ti ikawe mu ibi smart-env и Python-ikarahun. Fun awọn ti ko mọ, Mo daba pe ki o ka ni akọkọ akọkọ post.

Ni kukuru, awọn iyipada pẹlu ipari pipaṣẹ, awọn agbara ti o gbooro fun ṣiṣe awọn aṣẹ, diẹ ninu awọn atunṣe ati awọn atunṣe kokoro.

Fun alaye jọwọ wo ologbo.

Kini tuntun ni Python-shell?

Emi yoo bẹrẹ lẹsẹkẹsẹ pẹlu desaati.

Ipari pipaṣẹ

Gba - o rọrun nigbati olootu/IDE/terminal ba ta ọ fun orukọ aṣẹ naa, ati nigbakan paapaa awọn aye ipe? Nitorinaa Python-shell n ni ilọsiwaju diẹdiẹ ni ipese iṣẹ ṣiṣe ti o jọra. Nitori otitọ pe awọn aaye ti kilasi Shell labẹ hood jẹ de-facto kii ṣe awọn aaye rẹ (__getattr__ ti o wa ni ibi gbogbo), a tun ṣẹda adaṣe lati ibere (nipa fifi sori ọna __dir__, lẹsẹsẹ). Ipari adaṣe lọwọlọwọ n ṣiṣẹ ni awọn agbegbe BPython ati IPython. Nitoribẹẹ, Emi yoo fẹ lati rii isọpọ pẹlu awọn ọja ọlá diẹ sii bii PyCharm, ati awọn iṣeeṣe imuse ti wa ni ikẹkọ ni itọsọna yii.

Fifi-ini

Gẹgẹbi apakan ti itusilẹ, kilasi Shell gba ohun-ini last_command tuntun kan. Awọn iwulo fun o dide nitori nigbati ShellException ti ju nipasẹ aṣẹ kan pẹlu koodu ipadabọ ti kii-odo, ohun elo aṣẹ ko pada lati ipe __call __ () si ohun aṣẹ naa. Bayi anfani wa lati ṣe eyi:

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

Atokọ awọn ohun-ini ti ohun elo pipaṣẹ tun ti fẹ sii. Ṣe afikun aaye awọn aṣiṣe ti o da iṣẹjade pipaṣẹ pada si ṣiṣan aṣiṣe.

Ṣiṣe awọn aṣẹ pẹlu awọn orukọ Python ti ko tọ

Fere gbogbo eto ni o kere ju eto kan ti orukọ rẹ ko dara bi idamo ni Python (fun apẹẹrẹ, ohun elo 2to3 ti a mọ daradara). Pe rẹ pẹlu

Shell.2to3()

Ti ko ba ṣiṣẹ, onitumọ ko ni jẹ ki o kọja.
Ojutu ni lati pe aṣẹ ni ọna iyipo:

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

O ṣe akiyesi pe ni ọna kanna o le ṣiṣe awọn aṣẹ ti o wulo lati oju-ọna ti onitumọ, eyi ti o fi aaye silẹ lati ṣẹda awọn iwe afọwọkọ ti o rọ bi

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

Awọn iyipada kekere

  • Awọn ọna __repr__ () ati __str__ () ti ohun elo kilasi aṣẹ ti ni imuse, eyiti o ṣe awọn iye inu inu bayi (aṣẹ kan pẹlu awọn ayeraye ati iṣelọpọ stdout, lẹsẹsẹ).
  • Awọn atunṣe koodu kekere.
  • Ṣafikun agbegbe idanwo, bakanna bi atunto awọn ti o wa tẹlẹ.
  • Ṣafikun ilana-ilana ati awọn kilasi ilana, idi eyiti o jẹ lati ṣẹda ipele afikun ti abstraction nigbati o n ṣiṣẹ pẹlu module subprocess. O nilo pupọ julọ lati yọkuro ẹda koodu nigba ṣiṣẹ pẹlu Python 2/3, ṣugbọn o le pese awọn imoriri miiran daradara.

Kini tuntun ni smart-env?

Ko dabi Python-shell, awọn ayipada diẹ ti wa ninu ile-ikawe smart-env. Idi fun eyi rọrun - aini akoko ọfẹ, lakoko eyiti diẹ ninu awọn ilọsiwaju ti o pọju (fun apẹẹrẹ, adaṣe ti awọn oniyipada ayika) ni a gbe lọ si itusilẹ atẹle.

Ni otitọ, awọn ayipada wọnyi ti ṣe si ile-ikawe:

  • Awọn atunṣe koodu kekere.
  • Atunṣe.
  • Atunto ati isọdọtun ti awọn idanwo to wa.

Eto fun tókàn tu

Python-ikarahun ìkàwé

  • Ṣafikun atilẹyin fun awọn ipe pipaṣẹ ti kii ṣe idinamọ (ifaramọ ti ipaniyan).

smart-env ìkàwé

  • Imuse ti adaṣe adaṣe ti awọn oniyipada ayika ni kilasi ENV.
  • Atilẹyin fun oniṣẹ ẹrọ lati ṣayẹwo aye ti oniyipada env.
  • Imuse ti support fun str () ati repr () awọn iṣẹ fun ENV kilasi.

Awọn ọjọ ti awọn idasilẹ atẹle yoo jẹ ikede siwaju ni awọn ikanni ibaraẹnisọrọ atẹle:

orisun: www.habr.com

Fi ọrọìwòye kun