แงแแแแแก แแแ แแ แแฆแ!
แแแแแ แแแแ 29 2020 แฌแแแก แแแแแแ แแ แแแแแแแแแแแแแก แแคแแชแแแแฃแ แ แแแแ แแแแแแจแแแแ smart-env ะธ แแแแแแ-แญแฃแ แแ. แแแแช แแ แแชแแก, แแแ แฉแแแ แฏแแ แฌแแแแแแฎแแ
แแแแแแ, แชแแแแแแแแแ แแแแชแแแก แแ แซแแแแแแก แแแกแ แฃแแแแแก, แแ แซแแแแแแแแก แแแจแแแแแก แแแคแแ แแแแแฃแ แจแแกแแซแแแแแแแแแก, แแแแแแ แ แ แแคแแฅแขแแ แแ แแแแก แแ แจแแชแแแแแแแก แแแแแกแฌแแ แแแแก.
แแแขแแแแแแกแแแแก แแฎแแแแ แแแขแ.
แ แ แแ แแก แแฎแแแ แแแแแแแก แญแฃแ แแแจแ?
แแแจแแแแ แแแแแฌแงแแ แแแกแแ แขแแ.
แแ แซแแแแแแก แแแกแ แฃแแแแ
แแแแแแฎแแแแ - แแแกแแฎแแ แฎแแแแแแ, แ แแแแกแแช แ แแแแฅแขแแ แ/IDE/แขแแ แแแแแแ แแแแแฎแแแ แแ แซแแแแแแก แกแแฎแแแก แแ แแแแฏแแ แแแ แแก แแแ แแแแขแ แแแกแแช แแ? แแกแ แ แแ, python-shell แแแแแแแแ แแ แแแ แแกแแ แแแก แแกแแแแกแ แคแฃแแฅแชแแแแแ แแแแก แฃแแ แฃแแแแแกแแงแแคแแ. แแแแแแแแแแ แ แแฅแแแแ, แ แแ แฅแฃแแแก แฅแแแจ Shell แแแแกแแก แแแแแแ แแ-แคแแฅแขแแ แแ แแ แ แแแกแ แแแแแแ (แงแแแแแแแแก แแแแ แชแแแแแฃแแ __getattr__), แแแขแแแแขแฃแ แ แแแกแ แฃแแแแ แแกแแแ แจแแแฅแแแ แแฃแแแแแ (แจแแกแแแแแแกแแ __dir__ แแแแแแแก แแแแแขแแแ แแแแ). แแแขแแแแขแฃแ แ แแแกแ แฃแแแแ แแแแแแแ แแฃแจแแแแก BPython แแ IPython แแแ แแแแจแ. แ แ แแฅแแ แฃแแแ, แแแแแ แแแฎแแแ แแแขแแแ แแชแแ แฃแคแ แ แแแขแแแชแแแฃแ แแ แแแฃแฅแขแแแแแ, แ แแแแ แแชแแ PyCharm แแ แแ แแแแแ แแฃแแแแแ แแแแฎแแ แชแแแแแแแก แจแแกแแซแแแแแแแแแ แจแแกแฌแแแแแแแ.
แแแแกแแแแแแก แแแแแขแแแ
แ แแแแ แช แแแแแจแแแแแก แแแฌแแแ, Shell แแแแกแแ แแแแฆแ แแฎแแแ last_command แแแแกแแแ. แแแแก แแฃแชแแแแแแแแ แแแฉแแแ, แ แแแแแ แ แแแแกแแช ShellException แแฅแแ แฉแแแแแแฃแแ แแ แซแแแแแแ, แ แแแแแกแแช แแฅแแก แแ แแแฃแแแแแแ แแแแ แฃแแแแแก แแแแ, Command แแแแแฅแขแ แแ แแแแ แฃแแแแฃแแ __call__() แแแ แแแแ แแ แซแแแแแแก แแแแแฅแขแแ. แแฎแแ แแ แแก แแแแก แแแแแแแแแก แจแแกแแซแแแแแแแ:
try:
command = Shell.touch('/foo.txt')
except ShellException:
command = Shell.last_command
แแกแแแ แแแคแแ แแแแแ Command แแแแแฅแขแแก แแแแกแแแแแแก แกแแ. แแแแแขแแแฃแแแ แจแแชแแแแแแแก แแแแ, แ แแแแแแช แแแ แฃแแแแก แแ แซแแแแแแก แแแแแแแแแแก แจแแชแแแแแก แแแแแแจแ.
แแ แซแแแแแแแแก แแแจแแแแ แแแแแแแก แแ แแกแฌแแ แ แกแแฎแแแแแแ
แแแแฅแแแก แงแแแแ แกแแกแขแแแแก แแฅแแก แแแแแแฃแ แแ แแ แแ แแแ แแแ, แ แแแแแก แกแแฎแแแ แแ แแ แแก แจแแกแแคแแ แแกแ แแแแแแแก แแแแแขแแคแแแแขแแ แแ (แแแแแแแแแ, แชแแแแแแ 2to3 แแ แแแ แแแ). แแแฃแ แแแ แแแก
Shell.2to3()
แแฃ แแก แแ แแฃแจแแแแก, แแแ แฏแแแแแ แแ แแแฃแจแแแแก.
แแแแแกแแแแแ แแ แแก แแ แซแแแแแแก แแแแแซแแฎแแแ แจแแแแแแแแ แแแแ:
Shell("2to3") # ะฒะพะทะฒัะฐัะฐะตั ะพะฑัะตะบั ะบะพะผะฐะฝะดั
แแฆแกแแแแจแแแแแ, แ แแ แแแแแแแแฃแ แแ แจแแแแซแแแแ แแฌแแ แแแแ แแ แซแแแแแแแ, แ แแแแแแแช แแแฅแแแแแแก แแแ แฏแแแแแแก แแแแแกแแแ แแกแแ, แ แแช แกแแจแฃแแแแแแก แแแซแแแแ แจแแฅแแแแ แแแฅแแแแ แกแแ แแแขแแแ, แ แแแแ แแชแแ
cmd = "python{}".format(sys.version_info[0])
Shell(cmd)(*args, **kwargs)
แฃแแแแจแแแแแ แชแแแแแแแแแ
- แแแแฎแแ แชแแแแแ Command แแแแกแแก แแแแแฅแขแแก __repr__() แแ __str__() แแแแแแแแ, แ แแแแแแแช แแฎแแ แแฌแแ แแแแแแ แแแขแฃแแชแแฃแ แแแแจแแแแแแแแแก (แแ แซแแแแแ แแแ แแแแขแ แแแแ แแ แแแกแ stdout แแแแแแแแแแ, แจแแกแแแแแแกแแ).
- แแชแแ แ แแแแแก แจแแกแฌแแ แแแแแ.
- แกแแขแแกแขแ แแแคแแ แแแก แแแแแขแแแ, แแกแแแ แแ แกแแแฃแแแก แ แแแ แแแแแแแชแแ.
- Subprocess แแ Process แแแแกแแแแก แแแแแขแแแ, แ แแแแแก แแแแแแแ แแแกแขแ แแฅแชแแแก แแแแแขแแแแแ แแแแแก แจแแฅแแแ แฅแแแแ แแชแแกแแก แแแแฃแแแแ แแฃแจแแแแแกแแก. แซแแ แแแแแแ แกแแญแแ แแ แแแแแก แแฃแแแแ แแแแก แแฆแแแกแแคแฎแแ แแแแ Python 2/3-แแแ แแฃแจแแแแแกแแก, แแแแ แแ แแแขแแแชแแฃแ แแ แจแแฃแซแแแ แกแฎแแ แแแแฃแกแแแแก แแแฌแแแแแแช.
แ แ แแ แแก แแฎแแแ smart-env-แจแ?
python-shell-แแกแแแ แแแแกแฎแแแแแแแ, smart-env แแแแแแแแแแแจแ แแแแแแแ แชแแแแแแแแแ แแแฎแแ. แแแแก แแแแแแ แแแ แขแแแแ - แแแแแกแฃแคแแแ แแ แแแก แแแแแแแแแ, แ แแแแแก แแ แแกแแช แแแแแแ แแ แแแขแแแชแแฃแ แ แแแฃแแฏแแแแกแแแ (แแแแแแแแแ, แแแ แแแแก แชแแแแแแแแก แแแขแแแแขแฃแ แ แแแกแ แฃแแแแ) แแแแแแแแ แจแแแแแ แแแแแจแแแแแจแ.
แคแแฅแขแแแ แแแแ, แแแแแแแแแแแจแ แแแแฎแแ แชแแแแแ แจแแแแแแ แชแแแแแแแแแ:
- แแชแแ แ แแแแแก แจแแกแฌแแ แแแแแ.
- แ แแคแแฅแขแแ แแ แแแ.
- แแ แกแแแฃแแ แขแแกแขแแแแก แ แแแ แแแแแแแชแแ แแ แแแฎแแแฌแ.
แแแแแแแ แจแแแแแแ แแแแแจแแแแแแแกแแแแก
python-shell แแแแแแแแแแ
- แแแฃแแแแแแแ แแ แซแแแแแแก แแแ แแแแก แแฎแแ แแแญแแ แแก แแแแแขแแแ (แจแแกแ แฃแแแแแก แแแ แแแแแแแแชแแ).
smart-env แแแแแแแแแแ
- แแแ แแแแก แชแแแแแแแแก แแแขแแแแขแฃแ แ แจแแแกแแแแก แแแแฎแแ แชแแแแแแ ENV แแแแกแจแ.
- in แแแแ แแขแแ แแก แแฎแแ แแแญแแ แ env แชแแแแแแก แแ แกแแแแแแก แจแแกแแแแฌแแแแแแ.
- str() แแ repr() แคแฃแแฅแชแแแแแก แแฎแแ แแแญแแ แแก แแแแฎแแ แชแแแแแแ ENV แแแแกแแกแแแแก.
แจแแแแแแ แแแแแจแแแแแก แแแ แแฆแแแ แจแแแแแแแจแ แแแแแชแฎแแแแแแ แจแแแแแ แกแแแแแฃแแแแแชแแ แแ แฎแแแแ:
แขแแแแแ แแแแก แแ แฎแ (แกแแฏแแ แ) Twitter - แแแแแแฎแแแ แแ แกแขแแขแแแจแ.
แฌแงแแ แ: www.habr.com