Çêkirina Dostaniya Python û Bash: Rakirina pirtûkxaneyên python-shell û smart-env v. 1.0.1

Roja her kesî baş!

29 Sibatê 2020 salan Micro-berdana fermî ya pirtûkxaneyan pêk hat smart-env и python-shell. Ji bo kesên ku nizanin, ez pêşniyar dikim ku hûn pêşî bixwînin yekem post.

Bi kurtasî, guheztin temamkirina fermanê, kapasîteyên berfireh ên ji bo xebitandina fermanan, hin nûvekirin û rastkirina xeletiyan vedihewîne.

Ji bo hûrguliyan ji kerema xwe pisîkê bibînin.

Di python-shell de çi nû ye?

Ez ê tavilê bi şîrînê dest pê bikim.

Temamkirina fermanê

Dipejirînin - dema ku edîtor / IDE / termînalê ji we re navê fermanê, û carinan jî pîvanên bangê ji we dipirse, hêsan e? Ji ber vê yekê python-shell di peydakirina fonksiyonên wekhev de hêdî hêdî pêşkeftinê çêdike. Ji ber vê yekê ku zeviyên çîna Shell-ê yên di bin kaxezê de de-fakto ne zeviyên wê ne (__getattr__-ya berbelav), temamkirina otomatîkî jî ji sifrê hate afirandin (bi rêzê ve bi barkirina rêbaza __dir__ ve). Temamkirina otomatîkî niha di hawîrdorên BPython û IPython de dixebite. Bê guman, ez dixwazim entegrasyonê bi hilberên hêjatir ên mîna PyCharm re bibînim, û îmkanên pêkanînê di vî alî de têne lêkolîn kirin.

Zêdekirina taybetmendiyên

Wekî beşek ji berdanê, pola Shell taybetmendiyek last_command nû wergirt. Pêdiviya wê rabû ji ber ku dema ku ShellException ji hêla fermanek bi kodek vegerê ya ne-sifir ve hate avêtin, tişta Ferman ji banga __call__() ji objeya fermanê re nehat vegerandin. Niha derfetek ji bo vê yekê heye:

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

Navnîşa taybetmendiyên objeya Fermandariyê jî berfireh bûye. Qadeke çewtiyê lê zêde kir ku derketina fermanê vedigerîne çema xeletiyê.

Fermanên bi navên Python nederbasdar dimeşîne

Hema hema her pergal bi kêmî ve bernameyek heye ku navê wê wekî nasnameyek di Python-ê de ne maqûl e (mînakî, amûra naskirî 2to3). Bi wê re bang bikin

Shell.2to3()

Ger ew nexebite, wergêr wê nehêle.
Çareserî ev e ku emrê bi rengek dordorê bang bikin:

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

Hêjayî gotinê ye ku bi heman awayî hûn dikarin fermanên ku ji nihêrîna wergêr re derbasdar in bimeşînin, ku fersendê dihêle ku hûn nivîsarên maqûl ên mîna

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

Guhertinên piçûk

  • Rêbazên __repr__() û __str__() yên objeya sinifa Fermandariyê hatine bicîh kirin, ku naha nirxên întuîtîv çêdikin (fermanek bi parametre û derketina wê ya stdout, bi rêzê ve).
  • Rastkirinên koda piçûk.
  • Zêdekirina vegirtina testê, û her weha ji nû ve organîzekirina yên heyî.
  • Zêdekirina çînên Binpêvajo û Pêvajoyê, ku mebesta wê ew e ku dema ku bi modula binepêvajoyê re bixebitin, astek zêde ya abstrakasyonê biafirînin. Bi piranî pêdivî ye ku dema ku bi Python 2/3 re dixebitin ji holê rakirina dubarekirina kodê, lê bi potansiyel dikare bonusên din jî peyda bike.

Di smart-env de çi nû ye?

Berevajî python-shell, di pirtûkxaneya smart-env de kêmtir guhertin hene. Sedema vê hêsan e - nebûna dema vala, ku di dema wê de hin çêtirkirinên potansiyel (mînakî, xweseriya guhêrbarên hawîrdorê) hatin veguheztin bo serbestberdana din.

Bi rastî, guhertinên jêrîn li pirtûkxaneyê hatine çêkirin:

  • Rastkirinên koda piçûk.
  • Refactoring.
  • Ji nû ve organîzekirin û paqijkirina ceribandinên heyî.

Planên ji bo weşanên paşîn

pirtûkxaneya python-shell

  • Zêdekirina piştgirî ji bo bangên fermanê yên ne-astengkirî (paralelîzasyona darvekirinê).

pirtûkxaneya smart-env

  • Di çîna ENV de bicihkirina xweseriya guhêrbarên jîngehê.
  • Piştgiriya ji bo operatora in ku hebûna guhêrbarek env kontrol bike.
  • Pêkanîna piştgirî ji bo fonksiyonên str () û repr () ji bo çîna ENV.

Dîrokên weşanên din dê di kanalên pêwendiyê yên jêrîn de bêne eşkere kirin:

Source: www.habr.com

Add a comment