рд╣рдо рдкрд╛рдпрдерди рдФрд░ рдмреИрд╢ рдХреЛ рдПрдХ рд╕рд╛рде рд▓рд╛рддреЗ рд╣реИрдВ: рдЕрдЬрдЧрд░-рд╢реЗрд▓ рдФрд░ рд╕реНрдорд╛рд░реНрдЯ-рдПрди рд╡реА рд╡реА рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреА рд░рд┐рд╣рд╛рдИред 1.0.1

рд╕рдмрдХреЗ рд▓рд┐рдП рджрд┐рди рдЕрдЪреНрдЫрд╛ рд╣реЛ!

29 рдлрд░рд╡рд░реА, 2020 рдХреЛ рд╕реНрдорд╛рд░реНрдЯ-рдПрдирд╡ рдФрд░ рдЕрдЬрдЧрд░-рд╢реЗрд▓ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреА рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рдорд╛рдЗрдХреНрд░реЛ-рд░рд┐рд▓реАрдЬрд╝ рдЖрдпреЛрдЬрд┐рдд рдХреА рдЧрдИ рдереА ред рдЬреЛ рд▓реЛрдЧ рдирд╣реАрдВ рдЬрд╛рдирддреЗ рд╣реИрдВ, рдЙрдирдХреЗ рд▓рд┐рдП, рдореЗрд░рд╛ рд╕реБрдЭрд╛рд╡ рд╣реИ рдХрд┐ рдЖрдк рдкрд╣рд▓реА рдкреЛрд╕реНрдЯ рдкрд╣рд▓реА рдмрд╛рд░ рдкрдврд╝реЗрдВ ред

рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ, рдмрджрд▓рд╛рд╡реЛрдВ рдореЗрдВ рдСрдЯреЛ-рдХрдорд╛рдВрдбреНрд╕ рдХрд╛ рдкреВрд░рд╛ рд╣реЛрдирд╛, рдХрдорд╛рдВрдбреНрд╕ рдЪрд▓рд╛рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░рдирд╛, рдереЛрдбрд╝рд╛ рд░рд┐рдлреИрдХреНрдЯрд┐рдВрдЧ рдФрд░ рдмрдЧ рдлрд┐рдХреНрд╕ рд╢рд╛рдорд┐рд▓ рд╣реИрдВред

рдореИрдВ рдмрд┐рд▓реНрд▓реА рдХреЗ рдиреАрдЪреЗ рд╡рд┐рд╡рд░рдг рдорд╛рдВрдЧрддрд╛ рд╣реВрдВред

рдЕрдЬрдЧрд░-рдЦреЛрд▓ рдореЗрдВ рдирдпрд╛ рдХреНрдпрд╛ рд╣реИ?


рдореИрдВ рдорд┐рдард╛рдИ рдХреЗ рд╕рд╛рде рдЕрднреА рд╢реБрд░реВ рдХрд░реВрдБрдЧрд╛ред

рдЯреАрдо рдкреВрд░реА рдХрд░ рд░рд╣реА рд╣реИ


рд╕рд╣рдордд - рдпрд╣ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИ рдЬрдм рд╕рдВрдкрд╛рджрдХ / рдЖрдИрдбреАрдИ / рдЯрд░реНрдорд┐рдирд▓ рдХрдорд╛рдВрдб рдХреЗ рдирд╛рдо рдХрд╛ рд╕рдВрдХреЗрдд рджреЗрддрд╛ рд╣реИ, рдФрд░ рдХрднреА-рдХрднреА рдХреЙрд▓ рдкреИрд░рд╛рдореАрдЯрд░? рддреЛ рдЗрд╕ рддрд░рд╣ рдХреА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рдореЗрдВ рдЕрдЬрдЧрд░-рдЦреЛрд▓ рдереЛрдбрд╝рд╛ рдЖрдЧреЗ рдмрдврд╝ рд░рд╣рд╛ рд╣реИред рдЗрд╕ рддрдереНрдп рдХреЗ рдХрд╛рд░рдг рдХрд┐ рдбреА-рдлреИрдХреНрдЯреЛ рд╣реБрдб рдХреЗ рддрд╣рдд рд╢реИрд▓ рд╡рд░реНрдЧ рдХреЗ рдХреНрд╖реЗрддреНрд░ рдЗрд╕рдХреЗ рдХреНрд╖реЗрддреНрд░ рдирд╣реАрдВ рд╣реИрдВ (рд╕рд░реНрд╡рд╡реНрдпрд╛рдкреА __getattr__), рд╕реНрд╡рддрдГ рдкреВрд░реНрдгрддрд╛ рдХреЛ рдЦрд░реЛрдВрдЪ рд╕реЗ рднреА рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рдерд╛ (рдХреНрд░рдорд╢рдГ __dirat рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ)ред рд╕реНрд╡рддрдГ рдкреВрд░реНрдгрддрд╛ рд╡рд░реНрддрдорд╛рди рдореЗрдВ BPython рдФрд░ IPython рд╡рд╛рддрд╛рд╡рд░рдг рдкрд░ рдЪрд▓ рд░рд╣реА рд╣реИред рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ, рдореИрдВ PyCharm рдЬреИрд╕реЗ рдЕрдзрд┐рдХ рд╕рдореНрдорд╛рдирд┐рдд рдЙрддреНрдкрд╛рджреЛрдВ рдХреЗ рд╕рд╛рде рдПрдХреАрдХрд░рдг рджреЗрдЦрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ, рдФрд░ рдЗрд╕ рджрд┐рд╢рд╛ рдореЗрдВ рд╣рдо рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреА рд╕рдВрднрд╛рд╡рдирд╛рдПрдВ рддрд▓рд╛рд╢ рд░рд╣реЗ рд╣реИрдВред

рдЧреБрдг рдЬреЛрдбрд╝рдирд╛


рд░рд┐рд▓реАрдЬ рдХреЗ рд╣рд┐рд╕реНрд╕реЗ рдХреЗ рд░реВрдк рдореЗрдВ, рд╢реЗрд▓ рд╡рд░реНрдЧ рдХреЛ рдПрдХ рдирдпрд╛ last_command рд╕рдВрдкрддреНрддрд┐ рдорд┐рд▓реАред рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдЗрд╕ рддрдереНрдп рдХреЗ рдХрд╛рд░рдг рдЙрддреНрдкрдиреНрди рд╣реБрдИ рдХрд┐ рдЬрдм рд╢реЗрд▓-рдЕрдкрд╡рд╛рдж рдХреЛ рдЧреИрд░-рд╢реВрдиреНрдп рд░рд┐рдЯрд░реНрди рдХреЛрдб рдХреЗ рд╕рд╛рде рдПрдХ рдХрдорд╛рдВрдб рджреНрд╡рд╛рд░рд╛ рдлреЗрдВрдХ рджрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдХрдорд╛рдВрдб рдСрдмреНрдЬреЗрдХреНрдЯ __call __ () рдХрдорд╛рдВрдб рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рдХреЙрд▓ рд╕реЗ рд╡рд╛рдкрд╕ рдирд╣реАрдВ рдЖрдпрд╛ред рдЕрдм рдРрд╕рд╛ рдХрд░рдиреЗ рдХрд╛ рдЕрд╡рд╕рд░ рд╣реИ:

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

рдХрдорд╛рдВрдб рдСрдмреНрдЬреЗрдХреНрдЯ рдХреА рд╕рдВрдкрддреНрддрд┐рдпреЛрдВ рдХреА рд╕реВрдЪреА рдХрд╛ рднреА рд╡рд┐рд╕реНрддрд╛рд░ рдХрд┐рдпрд╛ред рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЗ рдХреНрд╖реЗрддреНрд░ рдХреЛ рдЬреЛрдбрд╝рд╛, рдЬреЛ рдХрдорд╛рдВрдб рдХреЗ рдЖрдЙрдЯрдкреБрдЯ рдХреЛ рддреНрд░реБрдЯрд┐ рд╕реНрдЯреНрд░реАрдо рдореЗрдВ рд▓реМрдЯрд╛рддрд╛ рд╣реИред

рдкрд╛рдпрдерди рдЕрдорд╛рдиреНрдп рдирд╛рдореЛрдВ рдХреЗ рд╕рд╛рде рдХрдорд╛рдВрдбрд┐рдВрдЧ рд░рдирд┐рдВрдЧ


рд▓рдЧрднрдЧ рдХрд┐рд╕реА рднреА рдкреНрд░рдгрд╛рд▓реА рдореЗрдВ рдХрдо рд╕реЗ рдХрдо рдПрдХ рдХрд╛рд░реНрдпрдХреНрд░рдо рд╣реИ рдЬрд┐рд╕рдХрд╛ рдирд╛рдо рдкрд╛рдпрдерди рдореЗрдВ рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ рдХреЗ рд░реВрдк рдореЗрдВ рдлрд┐рдЯ рдирд╣реАрдВ рд╣реИ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдкреНрд░рд╕рд┐рджреНрдз рдЙрдкрдпреЛрдЧрд┐рддрд╛ 2to3)ред рдЙрд╕рдХреЗ рд╕рд╛рде рдмреБрд▓рд╛рдУ

Shell.2to3()

рд╡рд┐рдлрд▓ рд░рд╣рддрд╛ рд╣реИ - рджреБрднрд╛рд╖рд┐рдпрд╛ рдЫреЛрдбрд╝ рдирд╣реАрдВ рдЬрд╛рдПрдЧрд╛ред
рд╕рдорд╛рдзрд╛рди рдПрдХ рд╕рдорд╛рдзрд╛рди рдореЗрдВ рдХрдорд╛рдВрдб рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣реИ:

Shell("2to3")  #   

рдпрд╣ рдзреНрдпрд╛рди рджреЗрдиреЗ рдпреЛрдЧреНрдп рд╣реИ рдХрд┐ рдЙрд╕реА рддрд░рд╣ рд╕реЗ рдХрдорд╛рдВрдб рдХреЛ рдЪрд▓рд╛рдирд╛ рд╕рдВрднрд╡ рд╣реИ рдЬреЛ рдХрд┐ рджреБрднрд╛рд╖рд┐рдпрд╛ рдХреЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕реЗ рдорд╛рдиреНрдп рд╣реИрдВ, рдЬреЛ рд▓рдЪреАрд▓реА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдВрднрд╡ рдмрдирд╛рддрд╛ рд╣реИ

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

рдЫреЛрдЯреЗ - рдореЛрдЯреЗ рдмрджрд▓рд╛рд╡


  • рдХрдорд╛рдВрдб рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ __repr __ () рдФрд░ __str __ () рддрд░реАрдХреЗ рд▓рд╛рдЧреВ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ, рдЬреЛ рдЕрдм рд╕рд╣рдЬ рдореВрд▓реНрдпреЛрдВ (рдХреНрд░рдорд╢рдГ рдорд╛рдкрджрдВрдбреЛрдВ рдФрд░ рдЗрд╕рдХреЗ рд╕реНрдЯрдбрдЖрдЙрдЯ рдирд┐рдХрд╛рд╕ рдХреЗ рд╕рд╛рде рдПрдХ рдХрдорд╛рдВрдб) рдХрд╛ рдЙрддреНрдкрд╛рджрди рдХрд░рддреЗ рд╣реИрдВред
  • рдХреЛрдб рджреНрд╡рд╛рд░рд╛ рдорд╛рдореВрд▓реА рд╕реБрдзрд╛рд░ред
  • рдореМрдЬреВрджрд╛ рд▓реЛрдЧреЛрдВ рдХреЛ рдкреБрдирд░реНрдЧрдард┐рдд рдХрд░рдиреЗ рдХреЗ рд╕рд╛рде-рд╕рд╛рде рдкрд░реАрдХреНрд╖рдг рдХрд╡рд░реЗрдЬ рдХреЛ рдЬреЛрдбрд╝рдирд╛ред
  • рдЙрдкрдкреНрд░реЛрд╕реЗрд╕ рдФрд░ рдкреНрд░реЛрд╕реЗрд╕ рдХреНрд▓рд╛рд╕реЗрд╕ рдХреЛ рдЬреЛрдбрд╝рдирд╛, рдЬрд┐рд╕рдХрд╛ рдЙрджреНрджреЗрд╢реНрдп рдЙрдкрдкреНрд░реЛрд╕реЗрд╕ рдореЙрдбреНрдпреВрд▓ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╕рдордп рдЕрддрд┐рд░рд┐рдХреНрдд рд╕реНрддрд░ рдХрд╛ рдЕрдореВрд░реНрдд рдмрдирд╛рдирд╛ рд╣реИред рдЕрдзрд┐рдХрд╛рдВрд╢ рднрд╛рдЧ рдХреЗ рд▓рд┐рдП, рдкрд╛рдпрдерди 2/3 рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╕рдордп рдХреЛрдб рдХреА рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рдХреЛ рд╕рдорд╛рдкреНрдд рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рд╕рдВрднрд╛рд╡рд┐рдд рд░реВрдк рд╕реЗ рдЕрдиреНрдп рдмреЛрдирд╕ рджреЗ рд╕рдХрддрд╛ рд╣реИред

рд╕реНрдорд╛рд░реНрдЯ-рдПрдирд╡реА рдореЗрдВ рдирдпрд╛ рдХреНрдпрд╛ рд╣реИ?


рдЕрдЬрдЧрд░-рд╢реЗрд▓ рдХреЗ рд╡рд┐рдкрд░реАрдд, рд╕реНрдорд╛рд░реНрдЯ-рдПрдирд╡реА рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдореЗрдВ рдХрдо рдмрджрд▓рд╛рд╡ рд╣реИрдВред рдЗрд╕рдХрд╛ рдХрд╛рд░рдг рд╕рд░рд▓ рд╣реИ - рдЦрд╛рд▓реА рд╕рдордп рдХреА рдХрдореА, рдЬрд┐рд╕рдХреЗ рджреМрд░рд╛рди рдХреБрдЫ рд╕рдВрднрд╛рд╡рд┐рдд рд╕реБрдзрд╛рд░ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдкрд░реНрдпрд╛рд╡рд░рдг рдЪрд░ рдХреЗ рдкреВрд░рд╛ рд╣реЛрдиреЗ) рдХреЛ рдЕрдЧрд▓реА рд░рд┐рд▓реАрдЬ рддрдХ рд▓реЗ рдЬрд╛рдпрд╛ рдЧрдпрд╛ред

рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдкреБрд╕реНрддрдХрд╛рд▓рдп рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкрд░рд┐рд╡рд░реНрддрди рдХрд┐рдП рдЧрдП рд╣реИрдВ:

  • рдХреЛрдб рджреНрд╡рд╛рд░рд╛ рдорд╛рдореВрд▓реА рд╕реБрдзрд╛рд░ред
  • рдкреБрдирд░реНрд░рдЪрдирд╛
  • рдореМрдЬреВрджрд╛ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХрд╛ рдкреБрдирд░реНрдЧрдарди рдФрд░ рдкрд░рд┐рд╢реЛрдзрдиред

рдЕрдЧрд▓реА рд░рд┐рд▓реАрдЬ рдХреА рдпреЛрдЬрдирд╛


рдЕрдЬрдЧрд░-рдЦреЛрд▓ рдкреБрд╕реНрддрдХрд╛рд▓рдп


  • рдЧреИрд░-рдмреНрд▓реЙрдХрд┐рдВрдЧ рдХрдорд╛рдВрдб рдХреЙрд▓ (рд╕рдорд╛рдирд╛рдВрддрд░ рдирд┐рд╖реНрдкрд╛рджрди) рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рдЬреЛрдбрд╝рдирд╛ред

рд╕реНрдорд╛рд░реНрдЯ-рдПрдирд╡реА рд▓рд╛рдЗрдмреНрд░реЗрд░реА


  • рдИрдПрдирд╡реА рдХрдХреНрд╖рд╛ рдореЗрдВ рдкрд░реНрдпрд╛рд╡рд░рдг рдЪрд░ рдХреЗ рдЖрддреНрдо-рд╕рдорд╛рдкрди рдХрд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрдиред
  • рдПрдХ рдПрдирд╡реА рдЪрд░ рдХреЗ рдЕрд╕реНрддрд┐рддреНрд╡ рдХреЛ рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдСрдкрд░реЗрдЯрд░ рдореЗрдВ рд╕рд╣рд╛рдпрддрд╛ред
  • ENV рд╡рд░реНрдЧ рдХреЗ рд▓рд┐рдП str () рдФрд░ repr () рдХрд╛рд░реНрдп рдХреЛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХрд░рдирд╛ред

рдЕрдЧрд▓реЗ рд░рд┐рд▓реАрдЬ рдХреА рддрд╛рд░реАрдЦреЛрдВ рдХреЛ рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╕рдВрдЪрд╛рд░ рдЪреИрдирд▓реЛрдВ рдореЗрдВ рдШреЛрд╖рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛:


All Articles