Python እና Bash ጓደኝነትን መፍጠር፡ የፒቶን-ሼል እና የስማርት-ኤንቪ ቤተ-መጻሕፍት መልቀቅ። 1.0.1

መልካም ቀን ለሁሉም!

29 የካቲት 2020 ዓመቶች የቤተ-መጻህፍት ይፋዊ ማይክሮ-መለቀቅ ተካሄደ smart-env и ፓይቶን-ሼል. በእውቀቱ ውስጥ ላልሆኑ, መጀመሪያ እንዲያነቡት እመክራችኋለሁ የመጀመሪያ ልጥፍ.

በአጭሩ፣ ለውጦቹ የትዕዛዝ ማጠናቀቅን፣ ትእዛዞችን የማስኬድ ችሎታዎች፣ አንዳንድ የማሻሻያ እና የሳንካ ጥገናዎችን ያካትታሉ።

ለዝርዝሮች እባክዎን ድመትን ይመልከቱ።

በ python-shell ውስጥ ምን አዲስ ነገር አለ?

ወዲያውኑ በጣፋጭነት እጀምራለሁ.

የትእዛዝ ማጠናቀቅ

እስማማለሁ - አርታኢ / IDE / ተርሚናል የትዕዛዙን ስም ሲጠይቅ እና አንዳንድ ጊዜ የጥሪ መለኪያዎችን ሲጠይቅ ምቹ ነው? ስለዚህ python-shell ተመሳሳይ ተግባራትን በማቅረብ ቀስ በቀስ እድገት እያደረገ ነው። በኮፈኑ ስር ያለው የሼል ክፍል ሜዳዎች ከሜዳው ውጪ በመሆናቸው (በቦታው የሚገኘው __ጌታትር__) አውቶማቲክ ማጠናቀቂያ ከባዶ ተፈጥሯል (በቅደም ተከተል የ__dir__ ዘዴን ከመጠን በላይ በመጫን)። ራስ-ማጠናቀቅ በአሁኑ ጊዜ በ BPython እና IPython አካባቢዎች ውስጥ ይሰራል። በእርግጥ እንደ PyCharm ካሉ በጣም የተከበሩ ምርቶች ጋር ውህደትን ማየት እፈልጋለሁ, እና የትግበራ እድሎች በዚህ አቅጣጫ እየተጠኑ ነው.

ንብረቶችን መጨመር

እንደ የተለቀቀው አካል፣ የሼል ክፍል አዲስ የመጨረሻ_ትእዛዝ ንብረት ተቀብሏል። የሱ አስፈላጊነት የተነሳው ShellException ዜሮ ያልሆነ የመመለሻ ኮድ ባለው ትእዛዝ ሲጣል የትእዛዝ እቃው ከ__call__() ጥሪ ወደ ትእዛዝ ነገር አልተመለሰም። አሁን ይህንን ለማድረግ እድሉ አለ-

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

የትእዛዝ ዕቃው የባህሪዎች ዝርዝርም ተዘርግቷል። የትዕዛዙን ውጤት ወደ የስህተት ዥረቱ የሚመልስ የስህተት መስክ ታክሏል።

ትእዛዞችን ልክ ባልሆኑ የፓይዘን ስሞች በማሄድ ላይ

ሁሉም ማለት ይቻላል በ Python ውስጥ ስሙ እንደ መለያ (ለምሳሌ ፣ የታወቀው 2to3 መገልገያ) ቢያንስ አንድ ፕሮግራም አለው ። ጋር ይደውሉላት

Shell.2to3()

ካልሰራ, አስተርጓሚው እንዲያልፍ አይፈቅድም.
መፍትሄው ትዕዛዙን በአደባባይ መጥራት ነው።

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

በተመሳሳይ መልኩ ከአስተርጓሚው አንጻር ትክክለኛ የሆኑ ትዕዛዞችን ማስኬድ እንደሚችሉ ልብ ሊባል የሚገባው ነው, ይህም እንደ ተለዋዋጭ ስክሪፕቶች ለመፍጠር እድል ይሰጣል.

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

ጥቃቅን ለውጦች

  • የትእዛዝ ክፍል ነገር __repr__() እና __str__() ስልቶች ተተግብረዋል፣ እነዚህም አሁን ሊታወቁ የሚችሉ እሴቶችን (በቅደም ተከተል መለኪያዎች ያሉት ትእዛዝ)።
  • አነስተኛ ኮድ ማስተካከያዎች።
  • የሙከራ ሽፋን መጨመር, እንዲሁም ያሉትን እንደገና ማደራጀት.
  • የንዑስ ሂደት እና የሂደት ክፍሎችን መጨመር, ዓላማው ከንዑስ ሂደት ሞጁል ጋር ሲሰራ ተጨማሪ የአብስትራክሽን ደረጃን መፍጠር ነው. ከፓይዘን 2/3 ጋር ሲሰራ የኮድ ማባዛትን ለማጥፋት በብዛት ያስፈልጋል፣ነገር ግን ሌሎች ጥቅማጥቅሞችን የመስጠት አቅም አለው።

በስማርት-ኤንቪ ውስጥ ምን አዲስ ነገር አለ?

ከpython-shell በተለየ፣ በስማርት-ኤንቪ ቤተ-መጽሐፍት ላይ ያነሱ ለውጦች አሉ። የዚህ ምክንያቱ ቀላል ነው - ነፃ ጊዜ እጦት, በዚህ ጊዜ አንዳንድ ሊሆኑ የሚችሉ ማሻሻያዎች (ለምሳሌ, የአካባቢ ተለዋዋጮችን በራስ-ሰር ማጠናቀቅ) ወደ ቀጣዩ ልቀት ተወስደዋል.

በእውነቱ፣ በቤተ-መጽሐፍት ላይ የሚከተሉት ለውጦች ተደርገዋል።

  • አነስተኛ ኮድ ማስተካከያዎች።
  • እንደገና መፈጠር።
  • የነባር ሙከራዎችን እንደገና ማደራጀትና ማሻሻል.

ለቀጣይ ልቀቶች ዕቅዶች

python-ሼል ቤተ መጻሕፍት

  • ላልታገዱ የትዕዛዝ ጥሪዎች ድጋፍን ማከል (የአፈፃፀም ትይዩ)።

smart-env ላይብረሪ

  • በ ENV ክፍል ውስጥ የአካባቢ ተለዋዋጮችን በራስ-ሰር ማጠናቀቅን መተግበር።
  • የኢንቭ ተለዋዋጭ መኖሩን ለማረጋገጥ በኦፕሬተር ውስጥ ያለው ድጋፍ።
  • ለ ENV ክፍል ለ str () እና repr () ተግባራት ድጋፍን መተግበር።

የቀጣዮቹ ህትመቶች ቀናት በሚከተሉት የመገናኛ መንገዶች ይገለፃሉ፡

ምንጭ: hab.com

አስተያየት ያክሉ