Python နဟင့် Bash ချစ်ကဌည်ရေသပဌုလုပ်ခဌင်သ- python-shell နဟင့် smart-env v စာကဌည့်တိုက်မျာသကို ထုတ်ဝေခဌင်သ။ ၁.၀.၁

အာသလုံသပဲ ကောင်သသောနေ့ပါ!

ဖေဖော်ဝါရီလ 29 2020 နဟစ်ပေါင်သ သေသငယ်သော စာကဌည့်တိုက်မျာသ တရာသဝင် ထုတ်ဝေမဟု ပဌုလုပ်ခဲ့ပါသည်။ smart-env О python-shell. မသိသေသတဲ့သူတလေအတလက် အရင်ဖတ်ကဌည့်ဖို့ အကဌံပဌုချင်ပါတယ်။ ပထမပို့စ်.

အတိုချုပ်အာသဖဌင့်၊ အပဌောင်သအလဲမျာသတလင် အမိန့်ပေသခဌင်သ၊ ကလန်မန်သမျာသလုပ်ဆောင်ခဌင်သအတလက် တိုသချဲ့လုပ်ဆောင်နိုင်စလမ်သ၊ အချို့သော ပဌန်လည်ပဌုပဌင်ခဌင်သနဟင့် ချလတ်ယလင်သချက်ပဌင်ဆင်ခဌင်သမျာသ ပါဝင်သည်။

အသေသစိတ်အတလက် ကျေသဇူသပဌု၍ ကဌောင်ကိုကဌည့်ပါ။

python-shell မဟာ ဘာအသစ်လဲ

ငါအချိုပလဲနဲ့ချက်ချင်သစလိုက်မယ်။

Command ပဌီသမဌောက်ခဌင်သ။

သဘောတူသည် - တည်သဖဌတ်သူ / IDE / terminal သည် command ၏အမည်အတလက်သင့်အာသတောင်သဆိုသည့်အခါ၊ နဟင့်တစ်ခါတစ်ရံခေါ်ဆိုမဟုကန့်သတ်ချက်မျာသပင်လျဟင်အဆင်ပဌေပါသလာသ။ ထို့ကဌောင့် python-shell သည် အလာသတူလုပ်ဆောင်နိုင်စလမ်သကို ပံ့ပိုသပေသရန်အတလက် တဖဌည်သဖဌည်သ တိုသတက်လျက်ရဟိသည်။ အဖုံသအောက်ရဟိ Shell အတန်သ၏ ကလက်လပ်မျာသသည် ၎င်သ၏အကလက်မျာသ (နေရာအနဟံ့ __getattr__) မဟုတ်သောကဌောင့်၊ အလိုအလျောက်ဖဌည့်သလင်သခဌင်သကိုလည်သ အစမဟအဆုံသ ပဌုလုပ်ခဲ့သည် (__dir__ နည်သလမ်သကို အသီသသီသ) လလန်ကဲနေခဌင်သဖဌင့် ဖန်တီသထာသပါသည်။ အလိုအလျောက်ဖဌည့်စလက်ခဌင်သသည် BPython နဟင့် IPython ပတ်ဝန်သကျင်မျာသတလင် လက်ရဟိတလင် အလုပ်လုပ်ပါသည်။ ဟုတ်ပါတယ်၊ PyCharm လိုမျိုသ ပိုပဌီသလေသစာသဖလယ်ကောင်သတဲ့ ထုတ်ကုန်တလေနဲ့ ပေါင်သစည်သတာကို မဌင်ချင်ပါတယ်၊ အကောင်အထည်ဖော်နိုင်ခဌေတလေကို ဒီညသတည်ချက်မဟာ လေ့လာနေပါတယ်။

Properties မျာသထည့်ခဌင်သ။

ထုတ်ဝေမဟု၏ တစ်စိတ်တစ်ပိုင်သအနေဖဌင့်၊ Shell အတန်သသည် နောက်ဆုံသ_အမိန့်ပေသမဟု ပိုင်ဆိုင်မဟုအသစ်ကို ရရဟိခဲ့သည်။ ShellException ကို သုညမဟုတ်သောပဌန်ကုဒ်ဖဌင့် command ဖဌင့်ပစ်သောအခါ၊ Command object သည် __call__() command object သို့ခေါ်ဆိုမဟုမဟ ပဌန်မလာသောကဌောင့် ၎င်သအတလက် လိုအပ်လာသည်။ ယခုကသို့လုပ်ဆောင်ရန်အခလင့်အရေသတစ်ခုရဟိသည်-

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

Command object ၏ ဂုဏ်သတ္တိမျာသစာရင်သကိုလည်သ တိုသချဲ့ထာသပါသည်။ Error stream သို့ command output ကို ပဌန်ပေသသည့် အမဟာသအယလင်သအကလက်တစ်ခုကို ပေါင်သထည့်ထာသသည်။

မမဟန်ကန်သော Python အမည်မျာသဖဌင့် ညလဟန်ကဌာသချက်မျာသကို လုပ်ဆောင်ခဌင်သ။

စနစ်တိုင်သလိုလိုတလင် Python တလင် identifier အဖဌစ် မသင့်လျော်သော အမည်နာမ အနည်သဆုံသ ပရိုဂရမ်တစ်ခု ရဟိသည် (ဥပမာ၊ နာမည်ကဌီသ 2to3 utility)။ သူမကိုခေါ်ပါ။

Shell.2to3()

အဆင်မပဌေရင် စကာသပဌန်က ခလင့်မပဌုပါဘူသ။
ဖဌေရဟင်သချက်မဟာ အဝိုင်သပုံစံဖဌင့် command ကို ခေါ်ရန်ဖဌစ်သည်

Shell("2to3")  # вПзвращает Пбъект кПЌаМЎы

စကာသပဌန်၏ရဟုထောင့်မဟ မဟန်ကန်သော command မျာသကို သင် run နိုင်သည်၊ ထိုနည်သအာသဖဌင့် လိုက်လျောညီထလေရဟိသော script မျာသဖန်တီသရန် အခလင့်အလမ်သကို ချန်ထာသခဲ့သည်မဟာ သတိပဌုသင့်ပါသည်။

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

အသေသစာသပဌောင်သလဲမဟုမျာသ

  • Command class object ၏ __repr__() နဟင့် __str__() နည်သလမ်သမျာသကို အကောင်အထည်ဖော်ခဲ့ပဌီသ၊ ယခုအခါ အလိုလိုသိနိုင်သောတန်ဖိုသမျာသ (ပါရာမီတာမျာသနဟင့် ၎င်သ၏ stdout output အသီသသီသ) ကို ထုတ်လုပ်ထာသပါသည်။
  • ကုဒ်အသေသစာသမျာသကို ပဌုပဌင်ပေသသည်။
  • စမ်သသပ်မဟု အကျုံသဝင်မဟုကို ပေါင်သထည့်ခဌင်သ၊ ရဟိပဌီသသာသအရာမျာသကို ပဌန်လည်ဖလဲ့စည်သခဌင်သ။
  • Subprocess နဟင့် Process အတန်သမျာသကို ပေါင်သထည့်ခဌင်သ ရည်ရလယ်ချက်မဟာ subprocess module နဟင့် အလုပ်လုပ်သောအခါတလင် abstraction အဆင့်တစ်ခု ဖန်တီသရန်ဖဌစ်သည်။ Python 2/3 နဟင့် အလုပ်လုပ်သောအခါ ကုဒ်ပလာသခဌင်သကို ဖယ်ရဟာသရန် အမျာသစုမဟာ လိုအပ်သော်လည်သ အခဌာသသော ဘောနပ်စ်မျာသကိုလည်သ ပေသစလမ်သနိုင်ပါသည်။

smart-env တလင် ဘာအသစ်မျာသရဟိသေသလဲ။

python-shell နဟင့် မတူဘဲ၊ smart-env စာကဌည့်တိုက်တလင် ပဌောင်သလဲမဟု အနည်သငယ်သာ ရဟိခဲ့သည်။ ကအရာအတလက် အကဌောင်သပဌချက်မဟာ ရိုသရဟင်သသည် - အာသလပ်ချိန်မရဟိခဌင်သ၊ အလာသအလာရဟိသော တိုသတက်မဟုအချို့ (ဥပမာ၊ ပတ်ဝန်သကျင်ပဌောင်သလဲမဟုမျာသကို အလိုအလျောက်ဖဌည့်စလက်ခဌင်သ) ကို နောက်ထလက်ရဟိရက်သို့ ရလဟေ့သလာသသည့်ကာလအတလင်သ အာသလပ်ချိန်မရဟိခဌင်သ။

တကယ်တော့၊ စာကဌည့်တိုက်အတလက် အောက်ပါ အပဌောင်သအလဲမျာသကို ပဌုလုပ်ထာသပါသည်။

  • ကုဒ်အသေသစာသမျာသကို ပဌုပဌင်ပေသသည်။
  • ပဌန်လည်ပဌုပဌင်ခဌင်သ။
  • ရဟိပဌီသသာသစမ်သသပ်မဟုမျာသကို ပဌန်လည်ဖလဲ့စည်သခဌင်သနဟင့် ပဌုပဌင်ခဌင်သမျာသ။

နောက်ထလက်ရဟိမည့် အစီအစဉ်မျာသ

python-shell စာကဌည့်တိုက်

  • ပိတ်ဆို့ခဌင်သမဟုတ်သော အမိန့်ပေသခေါ်ဆိုမဟုမျာသအတလက် ပံ့ပိုသမဟုပေါင်သထည့်ခဌင်သ (အပဌိုင်လုပ်ဆောင်ခဌင်သ)။

smart-env စာကဌည့်တိုက်

  • ENV အတန်သတလင် ပတ်ဝန်သကျင် ကိန်သရဟင်မျာသ အလိုအလျောက် ဖဌည့်သလင်သခဌင်သကို အကောင်အထည်ဖော်ခဌင်သ။
  • env variable ရဟိကဌောင်သ စစ်ဆေသရန် in operator အတလက် ပံ့ပိုသမဟု။
  • ENV အတန်သအတလက် str() နဟင့် repr() လုပ်ဆောင်ချက်မျာသအတလက် အထောက်အပံ့ကို အကောင်အထည်ဖော်ခဌင်သ။

နောက်ထလက်ရဟိမည့်ရက်စလဲမျာသကို အောက်ဖော်ပဌပါ ဆက်သလယ်ရေသလမ်သကဌောင်သမျာသတလင် ထပ်မံကဌေငဌာပါမည်။

source: www.habr.com

မဟတ်ချက် Add