ټولو ته ښه ورځ!
29 فبروري 2020 کلونو د کتابتونونو رسمي کوچني خپرونه ترسره شوه smart-env и python-shell. د هغو کسانو لپاره چې نه پوهیږي، زه وړاندیز کوم چې تاسو یې لومړی ولولئ
په لنډه توګه، په بدلونونو کې د کمانډ بشپړول، د کمانډونو د چلولو لپاره پراخ شوي وړتیاوې، ځینې بیاکتنې او بګ اصلاحات شامل دي.
د جزیاتو لپاره مهرباني وکړئ بلی وګورئ.
په python-shell کې څه نوي دي؟
زه به سمدلاسه د خوږ سره پیل وکړم.
د امر بشپړول
موافق یاست - دا مناسب دی کله چې مدیر/IDE/ټرمینل تاسو ته د قوماندې نوم لپاره هڅوي ، او ځینې وختونه حتی د تلیفون پیرامیټونه؟ نو python-shell په تدریجي ډول د ورته فعالیت چمتو کولو کې پرمختګ کوي. د دې حقیقت له امله چې د هود لاندې د شیل ټولګي ساحې په حقیقت کې د هغې ساحې نه دي (د هر اړخیز __getattr__)، اوتوماتیک تکمیل هم له سکریچ څخه رامینځته شوی (په ترتیب سره د __dir__ میتود ډیر بار کولو سره). اتوماتیک تکمیل اوس مهال په BPython او IPython چاپیریالونو کې کار کوي. البته، زه غواړم چې د PyCharm په څیر د نورو معتبر محصولاتو سره ادغام وګورم، او د پلي کولو امکانات پدې لوري مطالعه کیږي.
د ملکیتونو اضافه کول
د خوشې کولو برخې په توګه، د شیل ټولګي یو نوی وروستی_کمانډ ملکیت ترلاسه کړ. د دې اړتیا رامینځته شوه ځکه چې کله د ShellException د کمانډ لخوا د غیر صفر بیرته ستنیدو کوډ سره وغورځول شو ، د کمانډ اعتراض د __call__() کال څخه د کمانډ اعتراض ته نه و راستون شوی. اوس د دې کولو فرصت شتون لري:
try:
command = Shell.touch('/foo.txt')
except ShellException:
command = Shell.last_command
د کمانډ اعتراض د ملکیتونو لیست هم پراخ شوی. د تېروتنې ساحه اضافه کړه چې د کمانډ محصول د تېروتنې جریان ته راګرځوي.
د غلط Python نومونو سره کمانډ چلول
نږدې هر سیسټم لږترلږه یو برنامه لري چې نوم یې په 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 کتابتون کې لږ بدلونونه شتون لري. د دې دلیل ساده دی - د وړیا وخت نشتوالی، په کوم کې چې ځینې احتمالي پرمختګونه (د بیلګې په توګه، د چاپیریال متغیراتو اتوماتیک بشپړول) راتلونکي ریلیز ته لیږدول شوي.
په حقیقت کې، په کتابتون کې لاندې بدلونونه رامنځته شوي دي:
- کوچني کوډ اصلاحات.
- ریفکټور کول.
- د موجوده ازموینو بیا تنظیم او اصلاح کول.
د راتلونکو خپرونو لپاره پلانونه
د python-shell کتابتون
- د غیر بلاک کولو کمانډ تلیفونونو لپاره ملاتړ اضافه کول (د اجرا کولو موازي کول).
smart-env کتابتون
- په ENV ټولګي کې د چاپیریال متغیرونو د اتوماتیک بشپړولو پلي کول.
- د ان آپریټر لپاره ملاتړ ترڅو د env متغیر شتون چیک کړي.
- د ENV ټولګي لپاره د str() او repr() دندو لپاره د ملاتړ پلي کول.
د راتلونکو خپرونو نیټې به نور په لاندې ارتباطي چینلونو کې اعلان شي:
د ټیلیګرام چینل (عامه) ټویټر - پدې مقاله کې تازه کړئ.
سرچینه: www.habr.com