پٿون ۽ بش دوستي ٺاهڻ: پٿون-شيل ۽ سمارٽ-اين وي وي لائبريرين جو رليز. 1.0.1

سٺو ڏينهن سڀني کي!

29 فيبروري 2020 سال لائبريرين جو سرڪاري مائڪرو رليز ٿيو smart-env и python- shell. انهن لاءِ جيڪي نه ڄاڻندا آهن، مان صلاح ڏيان ٿو ته توهان ان کي پهرين پڙهو پهرين پوسٽ.

مختصر ۾، تبديلين ۾ ڪمانڊ مڪمل ٿيڻ، ڪمانڊ هلائڻ لاءِ وڌايل صلاحيتون، ڪجھ ريفيڪٽرنگ ۽ بگ فيڪس شامل آھن.

تفصيل لاءِ مهرباني ڪري ڏسو cat.

python-shell ۾ نئون ڇا آهي؟

مان فوري طور تي شيرين سان شروع ڪندس.

حڪم جي مڪمل ٿيڻ

متفق آهيو - اهو آسان آهي جڏهن ايڊيٽر/IDE/ٽرمينل توهان کي حڪم جي نالي لاءِ اشارو ڪري ٿو، ۽ ڪڏهن ڪڏهن ڪال پيٽرولر به؟ تنهن ڪري python-shell بتدريج ترقي ڪري رهيو آهي ساڳي ڪارڪردگي مهيا ڪرڻ ۾. ان حقيقت جي ڪري ته شيل ڪلاس جا شعبا بنيادي طور تي آهن نه ته ان جا شعبا (هر طرف __getattr__)، خودڪار مڪمل ٿيڻ پڻ شروع کان ٺاهي وئي (بالترتيب __dir__ طريقي سان اوور لوڊ ڪندي). خودڪار مڪمل ڪرڻ في الحال BPython ۽ IPython ماحول ۾ ڪم ڪري ٿو. يقينن، مان ڏسڻ چاهيان ٿو انضمام وڌيڪ قابل احترام پروڊڪٽس جهڙوڪ PyCharm، ۽ عمل درآمد جي امڪانن جو اڀياس ڪيو پيو وڃي هن هدايت ۾.

خاصيتون شامل ڪرڻ

ڇڏڻ جي حصي جي طور تي، شيل ڪلاس هڪ نئين آخري_command ملڪيت حاصل ڪئي. ان جي ضرورت ان ڪري پيدا ٿي، ڇاڪاڻ ته جڏهن 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__() طريقا لاڳو ڪيا ويا آھن، جيڪي ھاڻي وجداني قدر پيدا ڪن ٿا (ھڪ حڪم پيرا ميٽرز ۽ ان جي stdout ٻاھر، ترتيب سان).
  • معمولي ڪوڊ جي اصلاح.
  • ٽيسٽ ڪوريج شامل ڪرڻ، گڏو گڏ موجوده کي ٻيهر منظم ڪرڻ.
  • ذيلي پروسيس ۽ پروسيس ڪلاس کي شامل ڪرڻ، جنهن جو مقصد هڪ اضافي سطح جو خلاصو پيدا ڪرڻ آهي جڏهن سب پروسيس ماڊل سان ڪم ڪندي. Python 2/3 سان ڪم ڪرڻ دوران ڪوڊ جي نقل کي ختم ڪرڻ جي ضرورت آهي، پر ممڪن طور تي ٻيا بونس پڻ مهيا ڪري سگھن ٿا.

smart-env ۾ نئون ڇا آهي؟

python-shell جي برعڪس، سمارٽ-env لائبريري ۾ گهٽ تبديليون ڪيون ويون آهن. هن جو سبب سادو آهي - مفت وقت جي کوٽ، جنهن دوران ڪجهه امڪاني بهتري (مثال طور، ماحولياتي متغيرن جي خودڪار مڪمل ٿيڻ) کي ايندڙ رليز ڏانهن منتقل ڪيو ويو.

حقيقت ۾، لائبريري ۾ هيٺيون تبديليون ڪيون ويون آهن:

  • معمولي ڪوڊ جي اصلاح.
  • Refactoring.
  • موجوده ٽيسٽ جي بحالي ۽ بحالي.

ايندڙ رليز لاءِ منصوبا

python-shell لائبريري

  • غير بلاڪنگ ڪمانڊ ڪالن لاءِ سپورٽ شامل ڪرڻ (عمل جي متوازي).

سمارٽ-env لائبريري

  • ENV ڪلاس ۾ ماحولياتي متغير جي خودڪار مڪمل ڪرڻ جو عمل.
  • env variable جي وجود کي جانچڻ لاءِ ان آپريٽر لاءِ سپورٽ.
  • ENV ڪلاس لاءِ str() ۽ repr() افعال لاءِ سپورٽ جو نفاذ.

ايندڙ رليز جي تاريخن جو وڌيڪ اعلان ڪيو ويندو هيٺين ڪميونيڪيشن چينلز ۾:

جو ذريعو: www.habr.com

تبصرو شامل ڪريو