Fabric: рдЧреИрд░-рдПрд╕рдПрд╕рдПрдЪ-рдирд┐рд░реНрднрд░ рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреЛ рдЕрд▓рдЧ lib . рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░реЗрдВ

рдХреЛ рдирд┐рд░реНрдорд┐рдд 22 рдлрд╝рд░ре░ 2012  ┬╖  55рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: fabric/fabric

рдЪреАрдЬреЗрдВ рд╕рд┐рд░ рдкрд░ рдЖ рд░рд╣реА рд╣реИрдВ рдФрд░ рдлреИрдмреНрд░рд┐рдХ рдХреЗ рдХрд╛рд░реНрдп рдирд┐рд╖реНрдкрд╛рджрди рд╕рд╛рдордЧреНрд░реА рдХреЛ рдЕрдкрдиреЗ "рдерд░реНрдб рдкрд╛рд░реНрдЯреА" рдЯреВрд▓/рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░рдирд╛ рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ рддрд╛рдХрд┐ рдЗрд╕реЗ рд╣рдорд╛рд░реА рдПрд╕рдПрд╕рдПрдЪ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рд╕реЗ рд╕реНрд╡рддрдВрддреНрд░ рд░реВрдк рд╕реЗ рдЙрдкрдпреЛрдЧ/рд╕рдВрджрд░реНрднрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХреЗред

рдЕрднреА, рдлреИрдм-рдПрдЬрд╝-рд░рдирд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рдЗрдЪреНрдЫреБрдХ рдХрд┐рд╕реА рднреА рд╡реНрдпрдХреНрддрд┐ рдХреЛ рдЕрднреА рднреА ssh рдФрд░ PyCrypto рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░рдирд╛ рд╣реЛрдЧрд╛, рдЬреЛ рдмреЗрдХрд╛рд░ рд╣реИред

рдФрд░ рдЕрдЧрд░ рд╣рдо рдЗрд╕реЗ рдЯрд╛рд╕реНрдХ рд░рдирд┐рдВрдЧ рдФрд░ рдПрд╕рдПрд╕рдПрдЪ рдХреЗ рдмреАрдЪ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рддреЛ "рдлреИрдмреНрд░рд┐рдХ" "рдПрд╕рдПрд╕рдПрдЪ + рдирдП рд░рдирд░ рдЯреВрд▓ рдкрд░ рдирд┐рд░реНрднрд░рддрд╛" рд╣реЛрдирд╛ рдЗрд╕рдХреЗ рд╡рд┐рдкрд░реАрдд рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдмрд╣реБрдд рдЕрдзрд┐рдХ рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИ (рджреЛрдиреЛрдВ рдкреБрди: рдкреАрдЫреЗ рдХреА рд╕рдВрдЧрддрддрд╛, рдФрд░ рд╕рдордЧреНрд░ рдЙрдкрдпреЛрдЧрд┐рддрд╛)ред

рдмреИрдХрд╡рд░реНрдб рдХрдВрдкреЗрдЯ рдХреА рдмрд╛рдд рдХрд░реЗрдВ рддреЛ, рдореИрдВ рдЗрд╕ 2.0 рдХреЛ рдЪрд┐рд╣реНрдирд┐рдд рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ 2.0 рдмреИрдХрд╡рд░реНрдб рдЕрд╕рдВрдЧрдд рдмрд╛рдзрд╛ рдкрд░ рдЗрд╕реЗ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП _more_ рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИ (рдХреНрдпреЛрдВрдХрд┐ рдХрдо рд╕реЗ рдХрдо рдпрд╣ рдлреИрдмреНрд░рд┐рдХ рдХреЗ рд▓рд┐рдП рдПрдХ рдирдИ рдЗрдВрд╕реНрдЯреЙрд▓ рдирд┐рд░реНрднрд░рддрд╛ рдЬреЛрдбрд╝рддрд╛ рд╣реИ), рд▓реЗрдХрд┐рди рд╡рд┐рднрд╛рдЬрди рдХрд░рдирд╛, рдХрд╣реЗрдВ, 1.6 рдпрд╛ рд╕рдордп рдмреЗрд╣рддрд░ рд╣реЛрдиреЗ рдкрд░ 1.7 рднреА рдХрд╛рдлреА рд╕рдВрднрд╡ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред


рд╕реНрдкрд╖реНрдЯ рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП, рдпрд╣ рдирдпрд╛ рдЙрдкрдХрд░рдг рд╣реЛрдЧрд╛:

  • рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рд╕рдВрднрд╡рддрдГ, рд▓реЗрдХрд┐рди рд╢рд╛рдпрдж рд╣рдо рд╕рд┐рд░реНрдл Paver . рдЬреИрд╕реЗ рдореМрдЬреВрджрд╛ рдЯреВрд▓ рдкрд░ рдирдЬрд╝рд░ рди рдбрд╛рд▓реЗрдВ

    • рдкреЗрд╡рд░ рдмрд╣реБрдд рдХреБрдЫ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдореИрдВ рдХрднреА рднреА рдЗрд╕рдХрд╛ рдмрд╣реБрдд рдмрдбрд╝рд╛ рдкреНрд░рд╢рдВрд╕рдХ рдирд╣реАрдВ рд░рд╣рд╛ рдХрд┐ рдЗрд╕рдХрд╛ рдПрдкреАрдЖрдИ рдХреИрд╕рд╛ рдорд╣рд╕реВрд╕ рдХрд░рддрд╛ рд╣реИ

    • рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХрд┐рд╕реА рднреА рдЕрдиреНрдп рдЙрдкрдХрд░рдг рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкрддрд╛ рдирд╣реАрдВ рд╣реИ рдЬреЛ рд╕рднреА рдкреНрд░рд╕рд┐рджреНрдз рд╣реИрдВ рдФрд░ рдЙрдкрдпреЛрдЧ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдХрд┐рд╕реА рднреА рдмреЗрд╣рддрд░ рдлрд┐рдЯ рд╣реИрдВ

    • рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ: рдмреЗрдХрд░ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЖрдзрд╛ рд╕рднреНрдп рджрд┐рдЦрддрд╛ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдПрдХ рдЖрджрд░реНрд╢ рдореИрдЪ рдирд╣реАрдВ рд╣реИ (рдХреБрдЫ рднреА рдирд╣реАрдВ рд╣реЛрдЧрд╛, рдХреБрдЫ рднреА рдХреБрдЫ рдмрджрд▓рд╛рд╡ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред)

  • рдлреИрдмреНрд░рд┐рдХ рд╕реЗ рдПрдХ рдЕрд▓рдЧ рдкрд╣рдЪрд╛рди рд░рдЦреЗрдВ, рдЬрдмрдХрд┐ рд╕рдВрднрд╡рдд: "рд╕рдВрдмрджреНрдз" рд╢реЗрд╖ рд╣реИ

    • рдирд╛рдо рдордВрдерди рдЖрд╡рдХред

  • рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдлреИрдмреНрд░рд┐рдХ рдХреЗ рднреАрддрд░ рдореМрдЬреВрдж "рдЖрд░реНрдЧ рдХреЗ рд╕рд╛рде рд╕реАрдПрд▓рдЖрдИ рд╕реЗ рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рдкрд╛рдпрдерди рдХреЙрд▓реЗрдмрд▓ рдЪрд▓рд╛рдПрдВ" рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЛ рд╢рд╛рдорд┐рд▓ рдХрд░реЗрдВ
  • рдпрджрд┐ рдХреЗрд╡рд▓ рдкреЛрд╕реНрдЯ-рд░рд┐рдкрдЖрдЙрдЯ рдПрдХреАрдХрд░рдг рдХреЛ рдЖрд╕рд╛рди рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рддреЛ рдЙрд╕ рдорд╢реАрдирд░реА рдХреЗ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рддрд░реАрдХреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреБрдЫ рд░рд┐рдлреИрдХреНрдЯрд░рд┐рдВрдЧ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ
  • рд╕рдВрднрд╡рддрдГ рдмрд▓реНрд▓реЗ рд╕реЗ рдХреБрдЫ рд╢реЗрд╖ рдмрдбрд╝реЗ рдХрд╛рд░реНрдп-рдзрд╛рд╡рдХ "рд▓рд╛рдкрддрд╛ рд╕реБрд╡рд┐рдзрд╛рдУрдВ" рдХреЛ рд▓рд╛рдЧреВ рдХрд░реЗрдВ (рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕рд┐рд░реНрдл # 452)
Packaging Refactoring Support

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

рдлреИрдмреНрд░рд┐рдХ 2.0 рдХреЗ рд▓рд┐рдП рдХреЛрдИ рдИрдЯреАрдП рдФрд░ 1.0 рдХреЛ рдЖрдордВрддреНрд░рд┐рдд рдХрд░реЗрдВ рдХреНрдпреЛрдВрдХрд┐ рдкрд╛рдпрдерди 3.5 рдХрд▓ рдЬрд╛рд░реА рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ рдФрд░ рдЙрдмрдВрдЯреВ 16.04 рдПрд▓рдЯреАрдПрд╕ рдореЗрдВ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╣реЛрдЧрд╛?

рд╕рднреА 55 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

:рдХреЗрдХ:

рдПрдХ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдирдпрд╛ рдЙрдкрдХрд░рдг рдЬреЛ рдЙрдкрдпреЛрдЧ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдЕрдЪреНрдЫреА рддрд░рд╣ рдлрд┐рдЯ рд╣реЛрдЧрд╛, рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рд╣рдореЗрд╢рд╛ рдПрдХ рд╡рд┐рдХрд▓реНрдк рднреА рд╣реЛрддрд╛ рд╣реИред

рдЕрджреНрдпрддрди рд╡рд┐рд╡рд░рдг рдПрдХ рдЧреБрдЪреНрдЫрд╛ред

@kennethreitz : рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдлреИрдмреНрд░рд┐рдХ рдХреЗ рдЙрд╕ рдЖрдзреЗ рд╣рд┐рд╕реНрд╕реЗ рдХреА рдореМрдЬреВрджрд╛ рдЬрд░реВрд░рддреЛрдВ/рдлреАрдЪрд░ рд╕реЗрдЯ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдПрдХ рдирдИ "рдЪреАрдЬ" рд╣реЛрдЧреАред рд╡рд┐рдЪрд╛рд░ рдпрд╣ рд╣реИ рдХрд┐ рдЗрд╕рдХреА рдЕрдкрдиреА рдЗрдХрд╛рдИ рдкреБрди: рд╕реНрдерд╛рдкрдирд╛, рд╡рд┐рдХрд╛рд╕ рдХрд╛рд░реНрдпрдХреНрд░рдо рдЗрддреНрдпрд╛рджрд┐ рд╣реЛ, рд▓реЗрдХрд┐рди рдлрд┐рд░ рднреА рдлреИрдмреНрд░рд┐рдХ рджреЗрд╡/рд╕рдореБрджрд╛рдп рджреНрд╡рд╛рд░рд╛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рд╡рд┐рдЪрд╛рд░:

  • рдЯреЛрдиреА - рдЬреИрд╕рд╛ рдХрд┐ рдЯреЛрдиреА рдорд╛рд╕реНрдЯрд░реНрд╕ рдЙрд░реНрдл тАЛтАЛрдж рдЯрд╛рд╕реНрдХрдорд╛рд╕реНрдЯрд░ (рдХреЙрдорд┐рдХ рдмреБрдХреНрд╕ ~)
  • рд╕реАрдИрдУ - рдЪреАрдЬреЗрдВ рдЪрд▓рд╛рддрд╛ рд╣реИ, (рдпрд╛ рд╕реАрдЬрд╝рд░ рдпрд╛ рдЙрд╕ рддрд░реНрдЬ рдкрд░ рдХреБрдЫ рдЗрд╕реА рддрд░рд╣)

рдХреНрд╖рдорд╛ рдХрд░реЗрдВ, рдореИрдВ рдирд╛рдореЛрдВ рдХреЛ рдЪреВрд╕рддрд╛ рд╣реВрдБ :(

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛ "рдХрд┐рд░реНрдХ" (рдХрдкреНрддрд╛рди рдХрд┐рд░реНрдХ рдХреЗ рд░реВрдк рдореЗрдВ) рдЬреИрд╕реА рдЪреАрдЬреЗрдВред

рдореИрдВрдиреЗ рдХреБрдЫ рдРрд╕реЗ рдХрдкрдбрд╝реЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рдЬреЛ рдЪрд▓ рд░рд╣реЗ рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд╕рд╛рде рдХрд░рдирд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдореИрдВ рдЙрд╕ рдПрдХ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдирд╣реАрдВ рд╕реЛрдЪ рд╕рдХрддрд╛ рдЬреЛ рдХрд╛рд░реНрдпреЛрдВ + рдХрдкрдбрд╝реЗ рд╕реЗ рдЬреБрдбрд╝рд╛ рд╣реЛред

рд▓реЗрдХрд┐рди рд▓реВрдо рдХреЛрдИ рдмреБрд░рд╛ рдирд╛рдо рдирд╣реАрдВ рд╣реИ рдФрд░ рди рд╣реА рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИред

рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдирд╛рдо рдордВрдердиред

рдЕрд╡рдзрд╛рд░рдгрд╛рдУрдВ

  • рджреМрдбрд╝рдирд╛/рдЬреЙрдЧрд┐рдВрдЧ/рдЖрджрд┐
  • рдирд┐рд╖реНрдкрд╛рджрди (рдЖрджреЗрд╢реЛрдВ рдХрд╛, рд▓реЛрдЧ рд╢рд╛рдпрдж рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпрд╣ рдереЛрдбрд╝рд╛ рдореИрдХрд╛рдмреНрд░реЗ рд╣реИ, рдЖрджрд┐)
  • рдХрд╛рд░реНрдп (рдЬреИрд╕реЗ-рдХрд░рдиреЗ рдХреЗ рдХрд╛рдо, рдХрд╛рдо рдЖрджрд┐)
  • рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ # 461 рд╕реЗ рдХреБрдЫ рдЕрд╕реНрд╡реАрдХреГрдд рдпрд╛ рдЗрд╕реА рддрд░рд╣ рдХреЗ рдирд╛рдо, рдЬрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрдкрдбрд╝реЗ рд╕реЗ рдЪреАрдЬреЛрдВ рдХреЛ рдмреБрдирд╛рдИ рдпрд╛ рдПрдХ рд╕рд╛рде рд░рдЦрдиреЗ рдХрд╛ рд╡рд┐рдЪрд╛рд░ рднреА рдХрд╛рд░реНрдпреЛрдВ рдкрд░ рд▓рд╛рдЧреВ рд╣реЛрддрд╛ рд╣реИ

рдкреАрдкреАрдкреАрдЖрдИ рдкрд░ рдирд╛рдо рдирд╣реАрдВ рд▓рд┐рдП рдЧрдП

  • runner
  • executor
  • go

    • рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛ рдФрд░/рдпрд╛ рдмреЛрд░реНрдб рдЧреЗрдо рдХреЗ рд╕рд╛рде рднреНрд░рдо, рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдпрджрд┐ рдкреВрд░реНрд╡ рдореЗрдВ рдПрдХ рдмрд╛рдЗрдирд░реА рд╣реИ рдЬрд┐рд╕реЗ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ go рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ

    • рдмреЗрд╣рддрд░ рдпрд╛ рдмрджрддрд░ рдХреЗ рд▓рд┐рдП, рдХрдИ рд╕рдВрднрд╛рд╡рд┐рдд рдореВрд░реНрдЦрддрд╛рдкреВрд░реНрдг рдХрд╛рд░реНрдп рдирд╛рдо рд╣реИрдВ рдЬреИрд╕реЗ away рдпрд╛ fuck_yourself рдпрд╛ bother_somebody_else

  • weaver

рдмрд╛рдЗрдирд░реА рдирд╛рдо

рдзрдиреНрдпрд╡рд╛рдж, рдСрдХреНрд╕рдлрд╝реЛрд░реНрдб рдЕрдореЗрд░рд┐рдХрди рд░рд╛рдЗрдЯрд░ рдХрд╛ рдерд┐рд╕реЙрд░рд╕ рдЬреИрд╕рд╛ рдХрд┐ OS X рдХреЗ рдбрд┐рдХреНрд╢рдирд░реА рдПрдкреНрд▓рд┐рдХреЗрд╢рди рджреНрд╡рд╛рд░рд╛ рдкреНрд░рд╕реНрддреБрдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ!

  • run
  • execute
  • go

    • рдКрдкрд░ рджреЗрдЦреЛ

  • create (рдЬреИрд╕реЗ make )
  • fabricate (рдмрд╣реБрдд рд▓рдВрдмрд╛, рдмрд╣реБрдд рдЖрд╕рд╛рдиреА рд╕реЗ рднреНрд░рдорд┐рдд рд╣реЛрдиреЗ рд╡рд╛рд▓рд╛ fab )
  • fab (рдЕрд░реНрдерд╛рдд рдЗрд╕ рдирдП lib рдХреЛ рдЕрд▓рдЧ рдирд╛рдо рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рд▓реЗрдХрд┐рди рдлрд┐рд░ рднреА fab рдмрд╛рдЗрдирд░реА рд╕реНрдерд╛рдкрд┐рдд рдХрд░ рд░рд╣рд╛ рд╣реИ; рдпрджрд┐ рджреЛрдиреЛрдВ рд╕рд┐рд╕реНрдЯрдо рдкрд░ рдореМрдЬреВрдж рд╣реИрдВ рддреЛ рдлреИрдмреНрд░рд┐рдХ рдПрдХ рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рд▓реЗрддрд╛ рд╣реИ? рдПрдХ рдЧреВрдВрдЧрд╛ рд╡рд┐рдЪрд╛рд░ рдХреА рддрд░рд╣ рд▓рдЧрддрд╛ рд╣реИред)
  • generate
  • produce
  • fashion (рдореЗрд╣)
  • build
  • devise
  • shape
  • setup
  • weave

рдЖрдЬ рдЯреЙрдк рдмреНрд░реЗрдирд╕реНрдЯреЙрд░реНрдорд┐рдВрдЧ рдлреЙрд░реНрдо рдореЗрдВ рдирд╣реАрдВ рд╣реИред рдореЛрд░ рдЪрд╛рд╣рддреЗ рд╣реИрдВред

@dstufft рд▓реВрдо рдХрд╛ рдПрдХ рдареАрдХ рдирд╛рдо рд╣реИ, рдФрд░ рд╕реАрдИрдУ рдПрдХ рдЕрдзрд┐рдХрддрд░ рдареАрдХ рдЕрд╡рдзрд╛рд░рдгрд╛ рд╣реИ (рдХреЙрдорд┐рдХ рдмреБрдХ рд╕рдВрджрд░реНрдн рдХрд╛ рдПрдХ рдмрдбрд╝рд╛ рдкреНрд░рд╢рдВрд╕рдХ рдирд╣реАрдВ рд╣реИ, рдЕрдЧрд░ рдХреЗрд╡рд▓ рдЗрд╕рд▓рд┐рдП рдХрд┐ рдпрд╣ рдЕрд╕реНрдкрд╖реНрдЯ рд▓рдЧрддрд╛ рд╣реИ, рдореИрдВрдиреЗ рдЪрд░рд┐рддреНрд░ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХрднреА рдирд╣реАрдВ рд╕реБрдирд╛;))ред рдореБрдЦреНрдп рд╕рдорд╕реНрдпрд╛ рдПрдХ рдЕрдЪреНрдЫреЗ рдмрд╛рдЗрдирд░реА рдирд╛рдо рдХреЗ рд╕рд╛рде рдЖ рд░рд╣реА рд╣реИ, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдПрдХ рдХреНрд░рд┐рдпрд╛ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдЬрд░реВрд░реА рд╣реИред рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЙрдирдореЗрдВ рд╕реЗ рдХрд┐рд╕реА рдХреЗ рд▓рд┐рдП рдХреНрдпрд╛ рдХрд╛рдо рдХрд░реЗрдЧрд╛ред

рдмреЙрд╕: рдЪреАрдЬреЗрдВ рдЪрд▓рд╛рддрд╛ рд╣реИред

рд╣рд┐рд╕реНрд╕рд╛ рд▓реЗрдирд╛ рдХрд┐рдВрдбрд╛ рдореЗрдХ рдХреА рддрд░рд╣ рд╣реИ, рд▓реЗрдХрд┐рди рдкрд╛рдпрдерди рдХреЗ рд▓рд┐рдПред

рдХрд╛рд░реНрдпрдХрд╛рд░реАред

рдореБрдЭреЗ рдЗрд╕рдХрд╛ рд╡рд┐рдЪрд╛рд░ рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рдЗрд░реНрдж-рдЧрд┐рд░реНрдж рдЙрдиреНрдореБрдЦ рдХрд░рдирд╛ рдкрд╕рдВрдж рд╣реИред рд╣рдореНрдо..

@kennethreitz рдореБрдЭреЗ рдмреЙрд╕ рдкрд╕рдВрдж рд╣реИ, рдиреНрдпреВ рдЬрд░реНрд╕реА рдХреЗ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдореВрд▓ рдирд┐рд╡рд╛рд╕реА рдХреЗ рд╕рд╛рде рд╕рдВрднрд╛рд╡рд┐рдд рднреНрд░рдо рдХреЗ рдЕрд▓рд╛рд╡рд╛ (рдХреНрд╖рдорд╛ рдХрд░реЗрдВ, рд╕рд┐рд░реНрдл рдПрдХ рдкреНрд░рд╢рдВрд╕рдХ рдирд╣реАрдВ, рдХреЙрд▓реЗрдЬ рдореЗрдВ рдЦрд░рд╛рдм рд░реВрдордореЗрдЯ рдЕрдиреБрднрд╡)

рдЬреИрд╕рд╛ рдХрд┐ рдореИрдВрдиреЗ @dstufft рд╕реЗ рдХрд╣рд╛, рдмрд╛рдЗрдирд░реА рдирд╛рдо рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдпрд╣рд╛рдВ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдпрджрд┐ рдЖрдк рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рддреЛ рдХреГрдкрдпрд╛ рдЙрдиреНрд╣реЗрдВ рднреА рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВред рдпрджрд┐ рдкреНрд░реЛрдЬреЗрдХреНрдЯ-рдирд╛рдо-рдП-рдмрд╛рдЗрдирд░реА рдереЛрдбрд╝реЗ рдЧреВрдВрдЧрд╛ рд▓рдЧрддрд╛ рд╣реИ рддреЛ рдПрдХ рдорд╣рд╛рди рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдирд╛рдо рдорджрдж рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ;)

рдиреМрдХрд░рд╛рдиреА рджрд┐рд▓рдЪрд╕реНрдк рд╣реИред рдЖрдкрдХреЗ рд▓рд┐рдП рдЖрдкрдХреЗ рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдХрд░рддрд╛ рд╣реИред "рдореЗрдХ" рдХреЗ рд╕рдорд╛рдиред

рдмрдЯрд▓рд░ рднреАред рд╣рдо рдПрдХ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рдмреНрд░рд┐рдЯрд┐рд╢-рд▓рдЧрдиреЗ рд╡рд╛рд▓рд╛ рдмрдЯрд▓рд░ рдирд╛рдо рдЪреБрди рд╕рдХрддреЗ рд╣реИрдВред

maid clean , maid release , maid test ред рдореБрдЭреЗрдВ рдпрд╣ рдкрд╕рдВрдж рд╣реИред

рдореЗрд░реЗ (рдЕрд╕реАрдо, рд╕реНрд╡рд╛рднрд╛рд╡рд┐рдХ рд░реВрдк рд╕реЗ) рдорд░реНрджрд╛рдирдЧреА рдкрд░ рдереЛрдкрдиреЗ рдХреЗ рдЕрд▓рд╛рд╡рд╛, maid рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╣реИ, рднрд▓реЗ рд╣реА рдпрд╣ рдХреНрд░рд┐рдпрд╛ рдкреИрдЯрд░реНрди рдореЗрдВ рдлрд┐рдЯ рди рд╣реЛред (рдпрд╛рдиреА рдпрд╣ рдмреЗрд╣рддрд░ рдЧреИрд░-рдХреНрд░рд┐рдпрд╛ рдмрд╛рдЗрдирд░реА рдирд╛рдореЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рд╣реИред) (рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ: рдФрд░ рдмрдЯрд▓рд░ рдХреНрдпрд╛ рдХрд░рддреЗ рд╣реИрдВ _do_? рдмрдЯрд▓?)

рдореИрдВрдиреЗ рдмрд╕ рдирд╛рдо рдареБрдХрд░рд╛ рджрд┐рдпрд╛, рдмрд╕ рдорд╛рдорд▓реЗ рдореЗрдВред рдореБрдЭреЗ рдпрд╣ рдЕрдм рддрдХ рдмрд╣реБрдд рдкрд╕рдВрдж рд╣реИред

рдПрдХ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдирд╛рдо рдХреЗ рд░реВрдк рдореЗрдВ рдмреЙрд╕ рдкрд╣рд▓реЗ рд╣реА FWIW рд▓рд┐рдпрд╛ рдЬрд╛ рдЪреБрдХрд╛ рд╣реИ

рдордВрдЧрд▓рд╡рд╛рд░, 21 рдлрд░рд╡рд░реА, 2012 рдХреЛ рд░рд╛рдд 8:38 рдмрдЬреЗ, рдЬреЗрдл рдлреЛрд░реНрд╕рд┐рдпрд░ рдиреЗ рд▓рд┐рдЦрд╛:

рдореЗрд░реЗ (рдЕрд╕реАрдо, рд╕реНрд╡рд╛рднрд╛рд╡рд┐рдХ рд░реВрдк рд╕реЗ) рдорд░реНрджрд╛рдирдЧреА рдкрд░ рдереЛрдкрдиреЗ рдХреЗ рдЕрд▓рд╛рд╡рд╛, maid рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╣реИ, рднрд▓реЗ рд╣реА рдпрд╣ рдХреНрд░рд┐рдпрд╛ рдкреИрдЯрд░реНрди рдореЗрдВ рдлрд┐рдЯ рди рд╣реЛред (рдпрд╛рдиреА рдпрд╣ рдмреЗрд╣рддрд░ рдЧреИрд░-рдХреНрд░рд┐рдпрд╛ рдмрд╛рдЗрдирд░реА рдирд╛рдореЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рд╣реИред)


рдЗрд╕ рдИрдореЗрд▓ рдХрд╛ рд╕реАрдзреЗ рдЙрддреНрддрд░ рджреЗрдВ рдпрд╛ рдЗрд╕реЗ GitHub рдкрд░ рджреЗрдЦреЗрдВ:
https://github.com/fabric/fabric/issues/565#issuecomment -4095609

intern рднреА рдПрдХ рдЕрд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рд░реВрдк рд╕реЗ рдмрдврд╝рд┐рдпрд╛ рд╡рд┐рдХрд▓реНрдк рд╣реИред

@dstufft рддреЛ рдпрд╣ рд╣реИ, рдФрд░ рдореИрдВ рдЗрд╕рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрдЪреНрдЫрд╛ рдмрд╛рдЗрдирд░реА рдирд╛рдо рдирд╣реАрдВ рд╕реЛрдЪ рд╕рдХрд╛, boss docs рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдлрд┐рдЯ рдирд╣реАрдВ рд╣реИред

@kennethreitz рдиреЗ рдЖрдИрдЖрд░рд╕реА рдкрд░ bake рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рд╣реИ, рдЬреЛ рдореЗрдХ/рд░реЗрдХ рдереАрдо рдореЗрдВ рдлрд┐рдЯ рдмреИрдарддрд╛ рд╣реИ, рдФрд░ рдПрдХ рдЖрд╣реНрд╡рд╛рди рдХреНрд░рд┐рдпрд╛ рдХреЗ рд░реВрдк рдореЗрдВ рднреА рдлрд┐рдЯ рдмреИрдарддрд╛ рд╣реИ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП $ bake docs , рд╣рд╛рд▓рд╛рдВрдХрд┐ рд╡рд┐рд╖рдпрдЧрдд рд░реВрдк рд╕реЗ рдпрд╣ рдереЛрдбрд╝рд╛ рджреВрд░ рд╣реИ, рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ' рдбреА рд╢реЗрдл рдпрд╛ рдХреБрдЫ рдФрд░ рдореЗрдВ рдмреЗрд╣рддрд░ рдлрд┐рдЯред

рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ: deliver рднреАред рдЗрд╕ рдкрд░ рдореЗрд░реА рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреБрдЫ рд╕рдХрд╛рд░рд╛рддреНрдордХ рдереА ( $ deliver build $ deliver docs ) рд▓реЗрдХрд┐рди рдЗрд╕рдХреЗ рд╕рд╛рде рдЬрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЛрдИ _great_ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдирд╛рдо рдирд╣реАрдВ рд╣реИ рдЬреЛ рдереЛрдбрд╝рд╛ рдмрд╣реБрдд рдореВрд░реНрдЦрддрд╛рдкреВрд░реНрдг рдирд╣реАрдВ рд╣реИ, рдФрд░ рдпрд╣ рдереЛрдбрд╝рд╛ рд▓рдВрдмрд╛ рд╣реИред

$ invoke taskname (рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рдирд╛рдо: invoker , invoked , ???)

рдЖрд╣реНрд╡рд╛рди рдХрд┐рдпрд╛ред

рдореБрдЭреЗ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ Invoked рдФрд░ invoke docs invoke tests invoke publish рдЖрджрд┐ рдкрд╕рдВрдж рд╣реИрдВред

рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХрд╛ рдирд╛рдо рд╕рд┐рд░реНрдл "рдЖрдордВрддреНрд░рдг" рднреА рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдХреНрдпрд╛ рдмрд╛рдЗрдирд░реА рдФрд░ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдирд╛рдореЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ?

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ 'рдЖрд╣реНрд╡рд╛рди' рдореЗрдВ 'рдЖрд╣реНрд╡рд╛рди' рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдереЛрдбрд╝рд╛ рдЕрдзрд┐рдХ рдкрд┐рдЬреНрдЬрд╛рдЬрд╝ рд╣реИ, рд▓реЗрдХрд┐рди рдХреЛрдИ рднреА рдХрд╛рдо рдХрд░ рд╕рдХрддрд╛ рд╣реИред

рдирд╛рдо рдХрд╛ рдЕрд▓рдЧ рд╣реЛрдирд╛ рдЬрд░реВрд░реА рдирд╣реАрдВ рд╣реИ, рдирд╣реАрдВ, рдпрд╣ рд╕рд┐рд░реНрдл рдЗрддрдирд╛ рд╣реИ рдХрд┐ рдХрдИ рдмрд╛рд░ рдпрд╣ рдЕрдзрд┐рдХ рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИред


рдЯреНрд░реЗрди рдореЗрдВ рдЪрд▓рддреЗ рд╕рдордп рдореЗрд░реЗ рдорди рдореЗрдВ рдПрдХ рд╡рд┐рдЪрд╛рд░ рдЖрдпрд╛ (рдЕрдм рдЙрдХреНрдд рдЯреНрд░реЗрди рдореЗрдВ :P go go Smartphone tethering!) рдЬреЛ рдпрд╣ рд╣реИ рдХрд┐ рд╣рдо _рд╕рдВрднрд╡рддрдГ рдпрд╣ рд╕рдм рдЫреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдмрд╕ рдкреВрд░реЗ fab + fabfile.py рд╕рд╛рдЗрдб рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЗрд╕ "рдирдИ" рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреА рдЪреАрдЬрд╝реЗрдВ (рдФрд░ рдЗрд╕реЗ рдХреЙрд▓ рдХрд░реЗрдВ, рдХрд╣реЗрдВ, fabricator )ред

рджреВрд╕рд░реЗ рд╢рдмреНрджреЛрдВ рдореЗрдВ, рд╕реНрдЯреИрдВрдбрдЕрд▓реЛрди рд▓рд┐рдм рдХреЗ рд▓рд┐рдП рдПрдХ рдХреЙрд▓ рдХрд░рдиреЗ рдпреЛрдЧреНрдп рдФрд░ рдПрд╕рдПрд╕рдПрдЪ-рдЙрдкрдпреЛрдЧ рд╕реЗрдЯрдЕрдк рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрд▓рдЧ рд╣реЛрдирд╛ рдЬрд░реВрд░реА рдирд╣реАрдВ рд╣реИ, рдФрд░ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛтАЛтАЛрдХрд┐ рдПрдХ рдиреБрдХрд╕рд╛рди рднреА рд╣реЛ рд╕рдХрддрд╛ рд╣реИред

рдкреНрд▓рд╕рд╕:

  • рдирдП рдмрд╛рдЗрдирд░реА рдирд╛рдо рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ
  • рд╡реИрд╕реЗ рднреА рджреЛ рдмрд╛рдЗрдирд░реА рдирд╛рдореЛрдВ рдХрд╛ рд╣реЛрдирд╛ рднреНрд░рдорд┐рдд рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рд╣реЛрдЧрд╛
  • рдпрджрд┐ рдирдпрд╛ lib _didn't_ "fabfiles" рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рддреЛ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рджреЛ рдЕрд▓рдЧ-рдЕрд▓рдЧ "рдХрд╛рд░реНрдп рдлрд╝рд╛рдЗрд▓" рдкреНрд░рдХрд╛рд░ рднреА рд╣реЛрдВрдЧреЗ, рдлрд┐рд░ рд╕реЗ рднреНрд░рдорд┐рдд/рдЕрддрд┐рд░рд┐рдХреНрдд рдХреЛрдб/рдЖрджрд┐

рдорд╛рдЗрдирд╕:

  • рд╕рдорд╛рди рдирд╛рдореЛрдВ рдХреЗ рдХрд╛рд░рдг рджреЛ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рдмреАрдЪ рд╕рдВрднрд╛рд╡рд┐рдд рднреНрд░рдо
  • рд╕рднреА рдлреИрдмреНрд░рд┐рдХ-рдЖрдЗрдореНрд╕ (рдЬреИрд╕реЗ рд▓рдЧрднрдЧ рд╕рднреА рд╕реАрдПрд▓рдЖрдИ рдЭрдВрдбреЗ, рдЖрджрд┐) рдХреЛ рдХрд╛рдо рдХрд░рдирд╛ рдЬрд╛рд░реА рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдирдИ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЛ рдЕрддрд┐рд░рд┐рдХреНрдд рдПрдХреНрд╕реНрдЯреЗрдВрд╕рд┐рдмрд▓ рд╣реЛрдирд╛ рд╣реЛрдЧрд╛-

    • рдпрд╛рдиреА pip install fabricator рд╣рдореЗрдВ fab рджреЗрддрд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рдЭрдВрдбреЗ рдХреЗ рдХреБрдЫ рдЫреЛрдЯреЗ рд╕реЗрдЯ рд╣реЛрдВрдЧреЗ

    • рдлрд┐рд░ рдпрджрд┐ рдЖрдк pip install fabric , рддреЛ рдЕрдЪрд╛рдирдХ рдЙрд╕реА fab рдХреЛ рд╕рднреА рдЕрддрд┐рд░рд┐рдХреНрдд рдлреИрдмреНрд░рд┐рдХ рд╕реАрдПрд▓рдЖрдИ рдЭрдВрдбреЗ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рд╣реЛрдВрдЧреЗ, рдпрджрд┐ рдЕрдиреНрдп рдЪреАрдЬреЗрдВ рднреА рдирд╣реАрдВ рд╣реИрдВ

    • рдУрдЯреАрдУрдПрдЪ рдпрд╣ "рдХреНрд▓рд╛рдЗрдВрдЯ" рдХреЛрдб рдХреЛ рд╕реАрдПрд▓рдЖрдИ рдкрд╛рд░реНрд╕рд┐рдВрдЧ рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░рдиреЗ рдХреА рдЗрдЬрд╛рдЬрдд рджреЗрдиреЗ рдЬреИрд╕рд╛ рдирд╣реАрдВ рд╣реИ, рдпрд╣ рдПрдХ _bad_ рдЪреАрдЬ рд╣реИ, рдпрд╣ рдХреЗрд╡рд▓ рдФрд░ рдХрд╛рдо рд╣реИ рдЬрд┐рд╕реЗ рд╕рд╛рдордиреЗ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рд╣реИред

рдЖрдкрдХреЗ рдкрд╛рд╕ рдПрдХ рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдХреНрд▓рд╛рдЗрдВрдЯ рдПрдХреНрд╕реНрдЯреЗрдВрд╕рд┐рдмрд▓ рдмрди рд╕рдХрддрд╛ рд╣реИред рджреЗрдЦреЗрдВ рдХрд┐ рдХреИрд╕реЗ рдирд╛рдХ рдЕрдкрдиреЗ рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдЯреВрд▓ рд╕реЗ рдкреНрд▓рдЧрдЗрди рдПрдВрдЯреНрд░реАрдкреЙрдЗрдВрдЯ рдХреЛ рд╡реНрдпрдХреНрдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЕрддрд┐рд░рд┐рдХреНрдд рдПрдХреНрд╕реНрдЯреЗрдВрд╕рд┐рдмрд┐рд▓рд┐рдЯреА рдПрдХ рдЕрдЪреНрдЫреА рдмрд╛рдд рд╣реЛрдЧреА рдЪрд╛рд╣реЗ рд╡рд╣ рдХрд┐рд╕реА рднреА рддрд░рд╣ рд╕реЗ рдЬрд╛рдПред

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдирд╛рдо рднреНрд░рдо рдПрдХ рдореБрджреНрджрд╛ рд╣реЛрдЧрд╛ред

рдпрд╣ рдПрдХ рдирд┐рдЬреА рдмрд╛рдд рд╣реИ рд▓реЗрдХрд┐рди рдореБрдЭреЗ invoke test invoke docs рд╕реЗ рдмреЗрд╣рддрд░ fab test рдХрд╛ рд▓реБрдХ рдкрд╕рдВрдж рд╣реИред

рдЬрд╣рд╛рдВ рддрдХ тАЛтАЛтАЛтАЛрдЕрд▓рдЧ-рдЕрд▓рдЧ рдмрд╛рдпрдиреЗрд░рд┐рдЬрд╝ рдЬрд╛рддреЗ рд╣реИрдВ, рдореИрдВ рд╕рд┐рд░реНрдл рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реВрдВрдЧрд╛ рдХрд┐ рдХреЛрд░ рдмрд╛рдЗрдирд░реА (рдЗрдирд╡реЛрдХ) рд╕рднреА рдлреИрдмреНрд░рд┐рдХ рдЪреАрдЬреЛрдВ рдХреЛ рд╣реЛрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХреНрд╕реНрдЯреЗрдВрд╕рд┐рдмрд▓ рд╣реИ, рдФрд░ рдлрд┐рд░ рдлреИрдм рдХреЛ рдЙрд╕реА рдПрдВрдЯреНрд░реА рдкреЙрдЗрдВрдЯ рдХреЛ рдЗрдирд╡реЛрдХ рдХреЗ рд░реВрдк рдореЗрдВ рдХреЙрд▓ рдХрд░реЗрдВ (рдпрд╛рдиреА рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдлреИрдм/рдЗрдирд╡реЛрдХ рдмрд╛рдпрдиреЗрд░рд┐рдЬрд╝ main() (рдпрд╛ рдЬреЛ рдХреБрдЫ рднреА) рдХреЗ рдЕрд▓реНрдЯреНрд░рд╛ рдиреНрдпреВрдирддрд░ рдХреЙрд▓рд░реНрд╕ рд╣реЛрдВрдЧреЗред

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЕрдЧрд░ рдЖрдк рдЗрдирд╡реЛрдХ + рдлреИрдмреНрд░рд┐рдХ рд░реВрдЯ рдкрд░ рдЬрд╛рддреЗ рд╣реИрдВ рдЬреЛ рдХрд┐ 2.0 рд╕реЗ рдкрд╣рд▓реЗ рдлреИрдмрдлрд╛рдЗрд▓реНрд╕ рдФрд░ "рдЗрдирд╡реЛрдХрдлрд╛рдЗрд▓реНрд╕" рджреЛрдиреЛрдВ рд╣реИрдВ? рд╕рдорд░реНрдерд┐рдд рд╣реЛрдЧрд╛, рдФрд░ рдлрд┐рд░ 2.0 рдХреЗ рд╕рд╛рде рдмрд╕ рдлрд╛рдЗрд▓реЛрдВ рдХреЛ рдЖрдордВрддреНрд░рд┐рдд рдХрд░реЗрдВ?

рддреЛ рдЕрдирд┐рд╡рд╛рд░реНрдп рд░реВрдк рд╕реЗ рдореИрдВ рдЗрд╕реЗ рдЕрд▓рдЧ "рдЯрд╛рд╕реНрдХ рд░рдирд░" рдФрд░ "рд░рд┐рдореЛрдЯ/рдПрд╕рдПрд╕рдПрдЪ рд╕реНрдЯрдл" рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП +1 рд╣реВрдВ, 1.x рдХреЗ рд▓рд┐рдП рдХреЙрдореНрдкреЗрдЯ рд╢рд┐рдо рдореЗрдВ рдбрд╛рд▓ рд░рд╣рд╛ рд╣реВрдВ, рдФрд░ 2.x рдХреЗ рд▓рд┐рдП рд╕рд╛рдорд╛рди рдХреЛ рдмрд╣рд┐рд╖реНрдХреГрдд рдХрд░ рд░рд╣рд╛ рд╣реВрдВред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╡рд┐рднрд╛рдЬрди рджреЛрдиреЛрдВ libs рдХреЛ рдмреЗрд╣рддрд░ рдмрдирд╛ рджреЗрдЧрд╛, рдХрд╛рд░реНрдп рдзрд╛рд╡рдХ рдХреБрдЫ рд╡рд╛рдХрдИ рдЕрдЪреНрдЫреА рдПрдХреНрд╕реНрдЯреЗрдВрд╕рд┐рдмрд┐рд▓рд┐рдЯреА рдХрд╛ рд╕рдорд░реНрдерди рдХрд░реЗрдЧрд╛ (рдФрд░ рд╢рд╛рдпрдж рдмрд╛рд╣рд░реА рдХрд╛рд░реНрдп рдЬрд┐рдиреНрд╣реЗрдВ рдЖрд╕рд╛рдиреА рд╕реЗ рдирд┐рд░реНрднрд░ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рджреМрдбрд╝рд╛ рдЖрджрд┐)ред рдФрд░ рд░рд┐рдореЛрдЯ/рдПрд╕рдПрд╕рдПрдЪ рд╕рд╛рдорд╛рди рдХреЛ рдЬрд┐рдореНрдореЗрджрд╛рд░рд┐рдпреЛрдВ рдХрд╛ рдПрдХ рдЫреЛрдЯрд╛ рд╕реЗрдЯ рд╣реЛрдиреЗ рд╕реЗ рд▓рд╛рдн рд╣реЛрдЧрд╛ рдЬрд┐рд╕рд╕реЗ рдЗрд╕реЗ рдФрд░ рдЕрдзрд┐рдХ рдХреЗрдВрджреНрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХреЗ/

рдореЗрд░реЗ рд╕реЗрдВрдЯ рд╡реИрд╕реЗ рднреАред

рдореБрдЭреЗ рд╕реНрдкрд╖реНрдЯ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдореИрдВ рджреВрд╕рд░реЗ рддрд░реАрдХреЗ рд╕реЗ рдирдлрд░рдд рдирд╣реАрдВ рдХрд░рддрд╛, рдореБрдЭреЗ рдЦреБрд╢реА рд╣реИ рдХрд┐ рдпрд╣ рдЪрд░реНрдЪрд╛ рдмрд┐рд▓реНрдХреБрд▓ рд╣реЛ рд░рд╣реА рд╣реИ :)

@dstufft рд╡рд┐рдЪрд╛рд░реЛрдВ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдмрд╣реБрдд рдзрдиреНрдпрд╡рд╛рдж, рдореИрдВ рдЙрд╕ рд╕рдм рд╕реЗ рдХрд╛рдлреА рд╕рд╣рдордд рд╣реВрдВред рдЖрдк рдмрд╛рдпрдиреЗрд░рд┐рдЬрд╝ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕рд┐рд░реНрдл рд╕реНрдЯрдмреНрд╕ рд╣реЛрдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕рд╣реА рд╣реИрдВ, рдЗрд╕ рддрд░рд╣ рдлреИрдмреНрд░рд┐рдХ рдЕрдм рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдореЗрд░реА рдЪрд┐рдВрддрд╛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╡реНрдпрд╡рд╣рд╛рд░ рдФрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рднреНрд░рдо рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╣реИред

@dcolish рдореЗрд░рд╛ рдорддрд▓рдм рдпрд╣ рдирд╣реАрдВ рдерд╛ рдХрд┐ рд╕реАрдПрд▓рдЖрдИ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХрд░рдирд╛ рд╕рдВрднрд╡ рдирд╣реАрдВ рд╣реИ, рдФрд░ рдирд╛рдХ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдЬрд╛рдВрдЪ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрдЪреНрдЫреА рдкреВрд░реНрд╡ рдХрд▓рд╛ рд╣реИред

рдЕрдЧрд░ рд╣рдо "рдЖрд╣реНрд╡рд╛рди" рдХреЗ рд╕рд╛рде рдЬрд╛рддреЗ рд╣реИрдВ, рддреЛ рд╢рд╛рдпрдж рдлрд╝рд╛рдЗрд▓ рдирд╛рдо invocations(.py) рд╣реЛ рд╕рдХрддрд╛ рд╣реИ? рдореВрд░реНрдЦрддрд╛рдкреВрд░реНрдг/рдереАрдордкрд╛рд░реНрдХ рдкрдХреНрд╖ рдкрд░ рдПрдХ рд╕реНрдкрд░реНрд╢, рд▓реЗрдХрд┐рди рдпрд╣ рд╡реНрдпрд╛рдХрд░рдгрд┐рдХ рд░реВрдк рд╕реЗ рдлрд┐рдЯ рдмреИрдарддрд╛ рд╣реИ, рдФрд░ invokefile.py рдореБрдЭреЗ рдереЛрдбрд╝рд╛ рдЕрдЬреАрдм рд▓рдЧрддрд╛ рд╣реИред рдпрд╛ рд╕рдВрднрд╡рддрдГ рд░реЗрдХ рд╕рдореНрдореЗрд▓рди рдорд╛рд░реНрдЧ рдкрд░ рдЬрд╛рдПрдВ рдФрд░ рдХреЗрд╡рд▓ tasks(.py) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред

рдЖрдВрд╢рд┐рдХ рд░реВрдк рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рдореЗрдВ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдЖрдЧреЗ рдмрдврд╝рдиреЗ рд╡рд╛рд▓реЗ рдореЙрдбреНрдпреВрд▓/рдлрд╝реЛрд▓реНрдбрд░ рдкрд╣рд▓реВ рдкрд░ рдзреНрдпрд╛рди рджреЗрдирд╛ рдЪрд╛рд╣рд┐рдПред рдЪреВрдВрдХрд┐ рдпрд╣ рдЬрд╕реНрдЯ рдкрд╛рдпрдерди рд╣реИ рдпрд╛ рддреЛ рдЕрднреА рднреА рд╕рдорд░реНрдерд┐рдд рд╣реЛрдЧрд╛, рд▓реЗрдХрд┐рди рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рд╕рд╛рдордЧреНрд░реА рдФрд░ рдбреЙрдХреНрд╕ рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ, invocations/__init__.py рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╣реЛрдирд╛ рдПрдХ рдЕрдЪреНрдЫреА рдмрд╛рдд рд╣реЛ рд╕рдХрддреА рд╣реИред

рдореБрдЭреЗ tasks.py рдкрд╕рдВрдж рд╣реИред invocations.py рдЯрд╛рдЗрдк рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдЬреАрдм рд╣реИред

рд╡реИрд╕реЗ рдРрд╕рд╛ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЖрдкрдХреЛ рдЗрд╕реЗ рдмрд╣реБрдд рдмрд╛рд░ рдЯрд╛рдЗрдк рдХрд░рдирд╛ рд╣реЛрдЧрд╛, рд╣реИ рдирд╛? ;) рд▓реЗрдХрд┐рди рд╣рд╛рдБ, tasks/ рдпрд╛ tasks.py рд╡рд┐рд╢реНрд╡ рд╕реНрддрд░ рдкрд░ рдХреБрдЫ рдЕрдзрд┐рдХ рд╕реНрдкрд╖реНрдЯ рд╣реИред

рдЯрд╛рд╕реНрдХрдлрд╛рдЗрд▓.py

рдЖрдк invoke рдХрд╛рд░реНрдп (.py|/), рд╢рдмреНрджрд╛рдВрдХрди рд╡реИрд╕реЗ рднреА рдЕрдЪреНрдЫрд╛ рд╣реИ :)

рд╣рд╛рдВ, "рдпреЗ tasks рд╣реИрдВ, рдЬрд┐рд╕реЗ рдЖрдк invoke " рд╕реЗрдЯрдЕрдк рдмрд╣реБрдд рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ, рдпрд╣ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдЗрд╕рдХреЗ рдЕрдВрдЧреНрд░реЗрдЬреА рд╡рд┐рд╡рд░рдг рдХреЗ рд╕рд╛рде рдХреАрд╡рд░реНрдб рдХреЛ рдмрд╛рдВрдзрдиреЗ рдХреЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕реЗред рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд╣реИ, рдХреЛрдИ рддрд╛рдордЭрд╛рдо рдирд╣реАрдВ, рдХреЛрдИ рджрдВрдн рдирд╣реАрдВ, рдЖрджрд┐ред

@kennethreitz рдореИрдВрдиреЗ рдХрднреА рднреА рдирд╛рдордХрд░рдг рд╕рдореНрдореЗрд▓рди рдХреЗ рд░реВрдк рдореЗрдВ XYZFile рдХрд╛ рдПрдХ рдмрдбрд╝рд╛ рдкреНрд░рд╢рдВрд╕рдХ рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИ, рдФрд░ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдЗрди рджрд┐рдиреЛрдВ рд╕реЗ рдпрд╣ рдЕрдХреНрд╕рд░ _not_ рдПрдХ рдлрд╝рд╛рдЗрд▓ рд╣реИ, рдореБрдЭреЗ рдлреИрдм 1.x рдХреЗ рдмрд╛рд╣рд░ рд╕рдореНрдореЗрд▓рди рдЬрд╛рд░реА рд░рдЦрдиреЗ рдХреА рдХреЛрдИ рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ :)

рдореИрдВ рдРрд╕рд╛ рд╣реЛрддреЗ рджреЗрдЦрдирд╛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдкрд╕рдВрдж рдХрд░реВрдВрдЧрд╛ред рдореИрдВрдиреЗ рд╣рдореЗрд╢рд╛ рдлреИрдмреНрд░рд┐рдХ рдХреЛ рдПрдХ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ рд▓рд┐рдП "рдХрд╛рд░реНрдпреЛрдВ" рдХреЛ рд╕реНрдЯреЛрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рдкрд╛рдЗрдереЛрдирд┐рдХ рддрд░реАрдХреЗ рдХреЗ рд░реВрдк рдореЗрдВ рджреЗрдЦрд╛ рд╣реИ, рдЪрд╛рд╣реЗ рд╡реЗ рд╕реНрдерд╛рдиреАрдп рдпрд╛ рд░рд┐рдореЛрдЯ рдЖрдзрд╛рд░рд┐рдд рд╣реЛрдВ, рд░реЗрдХ/рдореЗрдХ рдХреЗ рдХрд░реАрдм рдХреБрдЫред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдЬрдм рдирдП рд▓реЛрдЧреЛрдВ рд╕реЗ рдкрд░рд┐рдЪрдп рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рдЧрдИ, рддреЛ рдХрдИ рд▓реЛрдЧ рдЗрд╕ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕реЗ рднреНрд░рдорд┐рдд рдереЗ рдФрд░ рдЗрд╕реЗ рдХреЗрд╡рд▓ рдПрдХ рдкрд░рд┐рдирд┐рдпреЛрдЬрди рдЙрдкрдХрд░рдг рдХреЗ рд░реВрдк рдореЗрдВ рджреЗрдЦрд╛ред

рдореИрдВ рдореЙрдбреНрдпреВрд▓/рдлрд╝реЛрд▓реНрдбрд░ рдкрд╣рд▓реВ рдХреЛ рджреВрд╕рд░реЗ рд╕реНрдерд╛рди рдкрд░ рд░рдЦреВрдВрдЧрд╛, рддрд╛рдХрд┐ рдбреНрд░реЙрдк-рдЗрди рд╕рдХреНрд╖рдо рд╕рд╛рдорд╛рдиреНрдп рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдЖрд╕рд╛рди рдмрдирд╛рдпрд╛ рдЬрд╛ рд╕рдХреЗред рдирдИ рд╢реИрд▓реА рдХреЗ рдХрд╛рд░реНрдп рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдЙрд╕ рдУрд░ рдПрдХ рдЕрдЪреНрдЫрд╛ рд░рд╛рд╕реНрддрд╛ рддрдп рдХрд░рддреЗ рд╣реИрдВред

@askedrelic рд╣рд╛рдБ, рдпрд╣ рджреЛ-рдПрдХ-рдПрдХ рд╣реЛрдирд╛ рд╣рдореЗрд╢рд╛ рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ рдереЛрдбрд╝рд╛ рднреНрд░рдорд┐рдд рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рд░рд╣рд╛ рд╣реИред


рдЕрд╕рдВрдмрдВрдзрд┐рдд: рдореИрдВ рдЗрд╕ рд╕реВрддреНрд░ рдкрд░ @tswicegood рдХреЛ рд╕рдорди рдХрд░рддрд╛ рд╣реВрдВ рдХреНрдпреЛрдВрдХрд┐ рд╡рд╣ рдФрд░ рдореИрдВ рдХреБрдЫ рд╕рдкреНрддрд╛рд╣ рдкрд╣рд▓реЗ рдЗрд╕ рдореБрджреНрджреЗ рдкрд░ рдЪрд░реНрдЪрд╛ рдХрд░ рд░рд╣реЗ рдереЗ рдФрд░ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╡рд╣ рдЗрд╕рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реЛрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред рд╣рдореЗрд╢рд╛ рдХреА рддрд░рд╣ рдореИрдВ рдЕрд╕рд╣рдордд рд╣реЛрдиреЗ рдХрд╛ рдЕрдзрд┐рдХрд╛рд░ рд╕реБрд░рдХреНрд╖рд┐рдд рд░рдЦрддрд╛ рд╣реВрдВ;)

рдореБрдЭреЗ рдмреБрд▓рд╛рдпрд╛ рдЧрдпрд╛ рдерд╛? :-)

рдореБрдЭреЗ $#$1 fabfile #$ рдХреЗ рдмрдЬрд╛рдп рдореЙрдбреНрдпреВрд▓ рдХреЗ рд░реВрдк рдореЗрдВ tasks рдкрд░ рдЬрд╛рдиреЗ рдХрд╛ рд╡рд┐рдЪрд╛рд░ рдкрд╕рдВрдж рд╣реИред рдЕрдзрд┐рдХ рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИ рдФрд░ рдЫреЛрдЯрд╛ рд╣реЛрддрд╛ рд╣реИред рдореИрдВ, рдПрдХ рдХреЗ рд▓рд┐рдП, рдЖрд░реНрдорд╕реНрдЯреНрд░рд╛рдВрдЧ рдХреЗ рдЕрдВрджрд░ fab test рдЪрд▓рд╛рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рдкреВрд░реНрдг рдбрд┐рдкреЛ рд╕реНрдЯреИрдХ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рд╕реЗ рдирдлрд░рдд рдХрд░рддрд╛ рд╣реВрдВ, рдЗрд╕рд▓рд┐рдП рдХреБрдЫ рднреА рдЬреЛ рдирд┐рдХрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдореИрдВ рдПрдХ рдмрдбрд╝рд╛ рдкреНрд▓рд╕ рд╡рди рд╣реВрдВред

рдЬрд╣рд╛рдВ рддрдХ тАЛтАЛтАЛтАЛрдирд╛рдордХрд░рдг рд╣реИ, рдмрд╛рд╣рд░реА рдирд┐рд╖реНрдкрд╛рджрди рдпреЛрдЧреНрдп рд╣реЛрдиреЗ рд╕реЗ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреНрдпрд╛ рд╣реИ рдЬреЛ рд▓реЛрдЧреЛрдВ рдХреЛ рдЗрд╕реЗ рдиреАрдЪреЗ рд╕реЗ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ:

if __name__ == "__main__":
    <some_mod>.main()

рддреЛ рдЖрдк рдмрд╕ рдкрд╛рдпрдерди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред рдореИрдВ рдирд┐рд╖реНрдкрд╛рджрди рдпреЛрдЧреНрдп рдХреЗ рд╕рд╛рде рдареАрдХ рд╣реВрдВ, рдмрд╕ рдпрд╣ рдирд╣реАрдВ рдкрддрд╛ рдХрд┐ рдпрд╣ рдЖрд╡рд╢реНрдпрдХ рд╣реИ рдпрд╛ рдирд╣реАрдВред

рдПрдлрдбрдмреНрд▓реНрдпреВрдЖрдИрдбрдмреНрд▓реНрдпреВ, рдореИрдВрдиреЗ рдХреБрдЫ рд╣рдлреНрддреЗ рдкрд╣рд▓реЗ flunky рдирд╛рдордХ рдкреИрдХреЗрдЬ рдирд┐рд░реНрдорд╛рдг рдХреЛ рд╕рдВрднрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╢реБрд░реВ рдХреА рдереАред рдЙрд╕ рдкрд░рд┐рдЪрд░ рд╡рд┐рд╖рдп рдХреЗ рд╕рд╛рде рдЪрд┐рдкрдХреЗ рд╣реБрдП, footman рдпрд╛ lacky рджреЛрдиреЛрдВ рдЙрдкрд▓рдмреНрдз рд╣реИрдВ (рдмрд╛рдж рдореЗрдВ lackie - рдПрдХ рд░реВрдмреА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рд╕рд╛рде рд╕рдВрдШрд░реНрд╖ рд╣реИ)ред рджреВрд╕рд░рд╛ рд╢реБрдХреНрд░рд╡рд╛рд░ рд╣реЛрдЧрд╛, рдЬреИрд╕рд╛ рдХрд┐ рд▓рдбрд╝рдХреА/рдкреБрд░реБрд╖ рд╢реБрдХреНрд░рд╡рд╛рд░ рдореЗрдВ рд╣реЛрддрд╛ рд╣реИред рдпрд╣ рдЧрд┐рдЯрд╣рдм/рдкреАрдИрдкреАрдЖрдИ/рд╣реЛрдордмреНрд░реВ рдкрд░реАрдХреНрд╖рдг рдкрд╛рд╕ рдХрд░рддрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдЗрд╕рдХрд╛ рдирд╛рдо рдХреБрдЫ рднреА рдирд╣реАрдВ рд╣реИред рджрд░рдЕрд╕рд▓, рдЕрдм рдЬрдм рдореИрдВ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪрддрд╛ рд╣реВрдВ рддреЛ рдпрд╣ рдореЗрд░реА рдкрд╣рд▓реА рдкрд╕рдВрдж рд╣реЛрдЧреАред

рд╕рд╛рдЗрдб рдмреЗрдЯ, рдореБрдЭреЗ рдЖрд╢реНрдЪрд░реНрдп рд╣реИ рдХрд┐ рдЬрдм рддрдХ @niran рдиреЗ рдПрдХ рдкреАрдЖрд░ рдкреНрд░рд╕реНрддреБрдд рдирд╣реАрдВ рдХрд┐рдпрд╛, рддрдм рддрдХ рдпрд╣ рд╕реНрдкрд╖реНрдЯ, рдпрджреНрдпрдкрд┐ рднрдпрд╛рдирдХ рдереАрдо рдЧреАрдд рдХреЛ рд╢рд╛рдорд┐рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП README рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░ рд░рд╣рд╛ рдерд╛ред

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдПрдХ рдСрди-рдпреЛрд░- $PATH "рдмрд╛рдЗрдирд░реА" (espред рдпрд╣ рджреЗрдЦрддреЗ рд╣реБрдП рдХрд┐ рдпрд╣ рд╡рд░реНрддрдорд╛рди рдореЗрдВ _not_ рдПрдХ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдмрд╛рдЗрдирд░реА рд╣реИ, рд▓реЗрдХрд┐рди рд╕рд┐рд░реНрдл рдПрдХ рд╕реЗрдЯрдкреВрд▓-рдирд┐рд░реНрдорд┐рдд рд╕реНрдЯрдм рд╣реИ рдЬреЛ рдХреЙрд▓ рдХрд░рддрд╛ рд╣реИ (invoked|fabric).main() ) рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рдЕрдиреБрдХреВрд▓ рд╣реИ , рдФрд░ рдореБрдЭреЗ рдЙрд╕ рд╕реНрдЯрдм рдХреА рд╕рд╛рдордЧреНрд░реА рдХреЛ рдХрд╛рд░реНрдп рдореЙрдбреНрдпреВрд▓ рдХреЗ рдЕрдВрджрд░ рд╕реНрд╡рдд: рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рд▓рд╛рдн рдирд╣реАрдВ рджрд┐рдЦ рд░рд╣рд╛ рд╣реИ (рдФрд░ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЗрд╕рдореЗрдВ рдХрдИ рдбрд╛рдЙрдирд╕рд╛рдЗрдбреНрд╕ рджреЗрдЦреЗрдВред)

рдФрд░ рд╣рд╛рдВ, рдЗрд╕рдХрд╛ рдкреВрд░рд╛ рдмрд┐рдВрджреБ рдПрдХ рдРрд╕реЗ рдХрд╛рдо рдХреЗ рд╕рд╛рде рд╕рдорд╛рдкреНрдд рд╣реЛрдирд╛ рд╣реИ рдЬреЛ рдЖрдкрдХреЛ рдмрд┐рдирд╛ рдХрд┐рд╕реА рдПрд╕рдПрд╕рдПрдЪ/рдиреЗрдЯрд╡рд░реНрдХ/рдХреНрд░рд┐рдкреНрдЯреЛ рдбрд┐рдкреНрд╕ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреЗ рдХрд╛рд░реНрдпрдкреВрд░реНрдг рд╕рд╛рдорд╛рди рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рджреЗрддрд╛ рд╣реИ :)

рдореИрдВ рдирд┐рд╖реНрдкрд╛рджрди рдпреЛрдЧреНрдп рдкрд░ @bitpropet рд╕реЗ рдкреВрд░реА рддрд░рд╣ рд╕рд╣рдордд рд╣реВрдВред рдЗрд╕рд╕реЗ рджреМрдбрд╝рдиреЗ рдореЗрдВ рдЖрд╕рд╛рдиреА рд╣реЛрддреА рд╣реИред рдЕрдЧрд░ рдХреЛрдИ рдЕрдкрдиреА рдирд┐рдЬреА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдкрд░ invoke / fab рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдХреБрдЫ рдФрд░ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реИ рддреЛ рдпрд╣ рд╕рд┐рд░реНрдл рдПрдХ рдЖрдзрд╛рд░ рд╣реИ рдЬрд┐рд╕рд╕реЗ рдЖрдк рдЖрд╕рд╛рдиреА рд╕реЗ рдЕрдкрдирд╛ рдЦреБрдж рдХрд╛ рдмрд╛рдЗрдирд░реА рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ (рдФрд░ рдпрд╣ рдЖрд╕рд╛рдиреА рд╕реЗ finalname.__main__.main рдкрд░ рд░рд╣ рд╕рдХрддрд╛ рд╣реИ , рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рдЖрдк рднреА рдХреЗрд╡рд▓ python -m finalname рдпрджрд┐ рдЖрдк рдЪрд╛рд╣реЗрдВ рддреЛ рднреА рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

+1ред

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

@bitpropet рдХреНрд╖рдорд╛ рдХрд░реЗрдВ, рдореБрдЭреЗ рд▓рдЧрд╛ рдХрд┐ рдЖрдк рдкреНрд░рд╡реЗрд╢ рдмрд┐рдВрджреБрдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирддреЗ рд╣реИрдВред рдореИрдВ рдЕрдкрдиреЗ рддрд░реАрдХреЗ рд╕реЗ, рдирд╛рдХ рдХреЗ рд╕рдорд╛рди рдПрдХ рдлреИрд╢рди рдореЗрдВ рдлреНрд░рдВрдЯрдПрдВрдб рдХрд░рдиреЗ рдФрд░ рдирд╛рдо рдХреЛ рдлреИрдм рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдорддрджрд╛рди рдХрд░ рд░рд╣рд╛ рдерд╛ред

рд╡рд┐рдЪрд╛рд░ рдорд╣рд╛рди рд╣реИрдВ, рдореБрдЭреЗ рд╡рд┐рдЪрд╛рд░ рдкрд╕рдВрдж рд╣реИрдВ :)

рд╢реБрдХреНрд░рд╡рд╛рд░ рдХрд╛ рджрд┐рди рдереЛрдбрд╝рд╛ рдмрд╣реБрдд рдкреНрдпрд╛рд░рд╛ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдореБрдЭреЗ рдкреЙрдк рд╕рдВрд╕реНрдХреГрддрд┐ рд╕рдВрджрд░реНрдн рдкрд╕рдВрдж рд╣реИред рд╡рд╣ рдЧрд╛рдирд╛ рдмрд╣реБрдд рдмрдврд╝рд┐рдпрд╛ рд╣реИ! :рдЯреНрд░реЙрд▓ рдлрд╝реЗрд╕:


рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЕрднреА рдХреЗ рд▓рд┐рдП рдореИрдВ рдкреИрдХреЗрдЬ/рдкреНрд░реЛрдЬреЗрдХреНрдЯ, рдФрд░ рдмрд╛рдЗрдирд░реА, рдирд╛рдо рджреЛрдиреЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рд╕реАрдзреЗ invoke рдХреЗ рд╕рд╛рде рдЬрд╛ рд░рд╣рд╛ рд╣реВрдВред рдпреЛрдЗрдВрдХ! Invoker рдпрд╛ Invoked рдкреВрд░реНрд╡ рдХреЗ рд▓рд┐рдП рдЕрдиреНрдп рд╕рдВрднрд╛рд╡рдирд╛рдПрдВ рдереАрдВ (рдпрд╛рдиреА рдЕрднреА рднреА invoke рдмрд╛рдЗрдирд░реА рдХреЗ рд╕рд╛рде) рд▓реЗрдХрд┐рди рдореИрдВ рд╕реАрдзрд╛ рдорд╛рд░реНрдЧ рдирд╣реАрдВ рдЬрд╛рдиреЗ рдХреЗ рдХрд┐рд╕реА рднреА рдЕрдЪреНрдЫреЗ рдХрд╛рд░рдг рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдирд╣реАрдВ рд╕реЛрдЪ рд╕рдХрд╛ред

рдЗрд╕ рдирд╛рдо рдХрд╛ рдореБрдЦреНрдп рдкрд╣рд▓реВ рд╕рд╛рдорд╛рдиреНрдпрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рд╣рд░ рдЙрд╕ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рд╕рд╛рде рдПрдХ рд╕рдорд╕реНрдпрд╛ рд╣реИ рдЬрд┐рд╕реЗ рдореИрдВрдиреЗ рдХрднреА рд▓рд┐рдпрд╛ рд╣реИ рдпрд╛ рдмрдирд╛рдпрд╛ рд╣реИ, рдФрд░ рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рдЕрдзрд┐рдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╡рд┐рдХрд▓реНрдкреЛрдВ рдореЗрдВ рд╕реЗ рдХреЛрдИ рднреА рдореБрдЭреЗ рд╕рд╣реА рдирд╣реАрдВ рд▓рдЧрд╛ред /рдФрдЪрд┐рддреНрдп

@dcolish рдиреЗ рд╕реНрд╡реАрдХрд╛рд░ рдХрд┐рдпрд╛, рдзрдиреНрдпрд╡рд╛рдж!


рдореИрдВрдиреЗ рдЕрднреА рддрдХ рдХреЛрдИ рдЕрдВрддрд┐рдо рдирд┐рд░реНрдгрдп рдирд╣реАрдВ рд▓рд┐рдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕ рд╕рдордп рд╕рдордЭрджрд╛рд░ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдпрд╣ рд╣реИ:

  • Invoke рдЕрдкрдиреА рд╣реА рдЪреАрдЬрд╝ рд╣реИ, рдЕрдкрдиреА рдирдИ рдкрд╣рдЪрд╛рди/"рдмреНрд░рд╛рдВрдб", invoke рдмрд╛рдЗрдирд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, tasks рдореЙрдбреНрдпреВрд▓ рдХреА рддрд▓рд╛рд╢ рдХрд░рддрд╛ рд╣реИ, рдЖрджрд┐ред

    • рдпрд╣ рдХреЗрд╡рд▓ рдЗрдирд╡реЛрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рд╕рд╛рдл, рд╕реАрдзрд╛ рдЕрд╡рдзрд╛рд░рдгрд╛рддреНрдордХ рд╣реИ, рди рдХрд┐ рдлреИрдмреНрд░рд┐рдХ рдХрд╛, рдРрддрд┐рд╣рд╛рд╕рд┐рдХ рд╕рд╛рдорд╛рди рдХреЛ рд╣рдЯрд╛рддрд╛ рд╣реИ, рдЖрджрд┐

  • Invoke рдХрд┐рд╕реА рднреА рд╕рд╛рдЭрд╛ рдХреЛрдб рдХреЛ рдЙрдЬрд╛рдЧрд░ рдХрд░рддрд╛ рд╣реИ рдЬрд┐рд╕реЗ рдлреИрдмреНрд░рд┐рдХ (рдпрд╛ рдЕрдиреНрдп рдЙрдкрдХрд░рдг) рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдПрдкреАрдЖрдИ рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ
  • рдлреИрдмреНрд░рд┐рдХ fab рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЬрд╛рд░реА рд░рдЦрддрд╛ рд╣реИ рдФрд░ fabfile рдореЙрдбреНрдпреВрд▓ рдХреА рддрд▓рд╛рд╢ рдХрд░рддрд╛ рд╣реИ, рдЬрдмрдХрд┐ рдЗрдирд╡реЛрдХ рдкрд░ рдЗрдВрд╕реНрдЯреЙрд▓-рдЯрд╛рдЗрдо рдирд┐рд░реНрднрд░рддрд╛ рдЬреЛрдбрд╝рддрд╛ рд╣реИ, рдФрд░ рдЙрд╕ рд╕рд╛рдЭрд╛ рдХреЛрдб рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрдирд╡реЛрдХ рдХреЗ рдПрдкреАрдЖрдИ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ

    • рдЗрд╕рдХрд╛ рдорддрд▓рдм рдпрд╣ рд╣реИ рдХрд┐ рдлреИрдмреНрд░рд┐рдХ рдХреЛ рджреЛ рдмрд╛рдпрдиреЗрд░рд┐рдЬрд╝ рдореЗрдВ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛, рд▓реЗрдХрд┐рди рдлреИрдмреНрд░рд┐рдХ рдкрд░ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕реЗ, рдЙрдиреНрд╣реЗрдВ рдпрд╣ рдЬрд╛рдирдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ рдХрд┐ invoke / tasks рдореМрдЬреВрдж рд╣реИрдВ/рд╡рд┐рдХрд▓реНрдк рд╣реИрдВ, рдХреНрдпреЛрдВрдХрд┐ рд╡реЗ' d рдХрднреА рдЙрдирдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░ рд░рд╣реЗ рд╣реИрдВ -- fab рдЕрднреА рднреА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХрд╛ рдПрдХ рд╕реБрдкрд░рд╕реЗрдЯ рд╣реИред

    • рдЬреЛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рд▓рд┐рдП рдЗрдирд╡реЛрдХ рджреЛрдиреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдЕрдиреНрдп рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ рдЬрд┐рдирдореЗрдВ рдХреЛрдИ рдлреИрдмрдлрд╛рдЗрд▓ рдирд╣реАрдВ рд╣реИ) _рдФрд░_ рдлреИрдмреНрд░рд┐рдХ рд╕реНрдЯрд┐рдХрд┐рдВрдЧ рдкреЙрдЗрдВрдЯ рд╣реИрдВ, рдкреБрди: рдХреИрд╕реЗ invoke рдФрд░ fabric рдПрдХ рджреВрд╕рд░реЗ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИрдВ рдФрд░ рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд░рддреЗ рд╣реИрдВ . рдЗрди рд▓реЛрдЧреЛрдВ рдХреЛ invoke рдФрд░ fab рдореЗрдВ рдПрдХ-рджреВрд╕рд░реЗ рдХреЗ рд╕рд╛рдзрд╛рд░рдг рдЙрдкрдирд╛рдо рд╣реЛрдиреЗ рдореЗрдВ рдХреБрдЫ рд░реБрдЪрд┐ рд╣реЛ рд╕рдХрддреА рд╣реИ (рдпрд╛рдиреА рдлреИрдмреНрд░рд┐рдХ рдХреЗ рдЗрдВрд╕реНрдЯреЙрд▓ рд╣реЛрдиреЗ рд╕реЗ invoke рдХреИрд╕реЗ рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд░рддрд╛ рд╣реИ, рдЬреИрд╕реЗ рдирд╛рдХ рдкреНрд▓рдЧрдЗрдиреНрд╕ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВред)

    • рд╣рд╛рд▓рд╛рдВрдХрд┐, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рджреЛрдиреЛрдВ рдХрд╛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд░рдирд╛ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рд╣реИ - fab _must_ рдЕрдВрддрд░ _at рдХрдо рд╕реЗ рдХрдо_ рдореЗрдВ "рдореИрдВ рдХрд┐рд╕ рдХрд╛рд░реНрдп рдореЙрдбреНрдпреВрд▓ рдХреА рддрд▓рд╛рд╢ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ?" рдЕрд░реНрде, рдХрд┐рд╕ рдмрд┐рдВрджреБ рдкрд░ рд╣рдо рдЗрд╕рдХрд╛ рдЕрдкрдирд╛ рдкреНрд░рд╛рдгреА рднреА рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рдлреИрдмреНрд░рд┐рдХ рдФрд░ рдЗрдирд╡реЛрдХ рдХреЗ рдмреАрдЪ рдХрд╛ рд╕рдВрдмрдВрдз рдХреЗрд╡рд▓ рдЗрд╕ рдмрд╛рдд рдореЗрдВ рд╣реИ рдХрд┐ рдлреИрдмреНрд░рд┐рдХ рдЗрдирд╡реЛрдХ рдХреЗ рдХреЛрдбрдмреЗрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреИрд╕реЗ рдХрд░рддрд╛ рд╣реИред

рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ: рдореБрдЭреЗ рдХреБрдЫ рднреА рдЕрдВрддрд┐рдо рдмрдирд╛рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ _how_ рдкрд░ рдПрдХ рдирдЬрд╝рд░ рдбрд╛рд▓рдиреА рдЪрд╛рд╣рд┐рдП, рдпрд╣ рдЬрд▓реНрджреА рд╕реЗ рдХрд╛рдо рдХрд░реЗрдЧрд╛ред рдЕрднреНрдпрд╛рд╕ рдмрдирд╛рдо рд╕рд┐рджреНрдзрд╛рдВрдд рдФрд░ рд╡рд╣ рд╕рдмред рдХреЛрдгреЛрдВ рдореЗрдВ рднрд╛рдЧ рд╕рдХрддрд╛ рд╣реВрдБ рдореИрдВ рдпрд╣рд╛рдБ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдирд╣реАрдВ рд╕реЛрдЪ рд░рд╣рд╛ рд╣реВрдБред

рдЗрдирд╡реЛрдХ рдореЗрдВ рдЕрдм рдмреАрдЯрд╛ рд░рд┐рд▓реАрдЬ рд╣реИ (рд╣рд╛рд▓ рд╣реА рдореЗрдВ рдЗрд╕реЗ рдмрдирд╛рдиреЗ рдХреЗ рдмрд╣реБрдд рд╕рд╛рд░реЗ рдХрд╛рдо рдХреЗ рдмрд╛рдж)ред рдкрд╣рд▓реЗ рд╕реЗ рдореМрдЬреВрдж:

  • рдмреЗрд╣рддрд░, рдЕрдзрд┐рдХ рд╕реНрдкрд╖реНрдЯ рд▓реЗрдХрд┐рди рдлрд┐рд░ рднреА рд▓рдЧрднрдЧ рд╢реВрдиреНрдп-рдмреЙрдпрд▓рд░рдкреНрд▓реЗрдЯ рдиреЗрдорд╕реНрдкреЗрд╕рд┐рдВрдЧ
  • "рд░рд┐рдпрд▓" рд╕реАрдПрд▓рдЖрдИ рдлреНрд▓реИрдЧ рдкрд╛рд░реНрд╕рд░, рдЕрдм рдФрд░ рдирд╣реАрдВ foo:bar,lol , рдЬрд┐рд╕рдореЗрдВ рд╕реАрдПрд▓рдЖрдИ рд╕реНрдкреЗрдХ рдореЗрдВ рдлрд╝рдВрдХреНрд╢рди argspec рдХрд╛ рдСрдЯреЛ рдЕрдиреБрд╡рд╛рдж рд╢рд╛рдорд┐рд▓ рд╣реИ
  • рдХрд╛рд░реНрдп рдирд┐рд╖реНрдкрд╛рджрди рдмрд┐рдЯреНрд╕ рдХреЛ рдПрдХреНрд╕реНрдЯреЗрдВрд╕рд┐рдмрд▓/рдУрд╡рд░рд░рд╛рдЗрдб рдХрд░рдиреЗ рдпреЛрдЧреНрдп рдкреБрди: рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд┐рдпрд╛ рдЧрдпрд╛: рд╕рдорд╛рдВрддрд░рддрд╛
  • рдЬреЛ рд╕рдорд░реНрдерди рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛: рдкреВрд░реНрд╡-рдХрд╛рд░реНрдп (рдЕрдиреНрдп рдХрд╛рд░реНрдпреЛрдВ рд╕реЗ рдкрд╣рд▓реЗ рдЪрд▓рдиреЗ рд╡рд╛рд▓реЗ рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░реЗрдВ)
  • рдХреИрдкреНрдЪрд░-рдПрдВрдб-рдкреНрд░рд┐рдВрдЯ рд╕рдХреНрд╖рдо рд╕реНрдерд╛рдиреАрдп рдХрд╛рд░реНрдп рдзрд╛рд╡рдХ run (рдпрджреНрдпрдкрд┐ рд╢рд╛рдпрдж рд╡рд┐рдВрдбреЛрдЬрд╝ рдкрд░ рдХрд╛рд░реНрдпрд╛рддреНрдордХ рдирд╣реАрдВ рд╣реИ)
  • рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдПрдХ рдФрд░ рдЬреЛрдбрд╝реА рдмрд┐рдЯреНрд╕ рднреВрд▓ рд░рд╣реЗ рд╣реЛрдВ?

рдЗрд╕ рдкрд░ рджреМрдбрд╝рдирд╛ рдФрд░ рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк рд╢реБрд░реВ рдХрд░рдиреЗ рдХреА рдЙрдореНрдореАрдж рдХрд░рдирд╛ рдХрд┐ рдЗрд╕ рд╕рдкреНрддрд╛рд╣ рдлреИрдм 2 рдЗрд╕ рдкрд░ рдХреИрд╕реЗ рдмреЛрд▓реНрдЯ рд▓рдЧрд╛рдПрдЧрд╛ред

рд╕реНрд╡рдЪреНрдЫ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ
рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдирд┐рд░реНрдорд╛рдг
"рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ" "рд░рд╛рдЬреНрдп"

рдлреИрдмреНрд░рд┐рдХ 2 рдХреА рдХреНрдпрд╛ рд╕реНрдерд┐рддрд┐ рд╣реИ? рдХреНрдпрд╛ рд╡рд╣рд╛рдВ рдХреЛрдИ рдХрд╛рдВрдЯрд╛ рд╣реИ рдЬреЛ рдЗрд╕реЗ рдврдХ рд░рд╣рд╛ рд╣реИ? рдореЗрд░рд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рд╡рд╣ рд╕рд╛рдорд╛рди рдЬреЛ рдлреИрдмреНрд░рд┐рдХ 2 рдХреЛ рдХрд╡рд░ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдЬреЛ рдХрд┐ рдЖрд╣реНрд╡рд╛рди рдирд╣реАрдВ рд╣реИред

@mvaled рдпрд╣ рдЬрд▓реНрдж рд╣реА рджрд┐рдЦрд╛рдИ рджреЗрдЧрд╛, рдХрдкрдбрд╝реЗ рд░реЗрдкреЛ рдХреА рдПрдХ рдирд┐рдЬреА 'рд╕рд╛рдл' рд╢рд╛рдЦрд╛ рдореЗрдВ рд░рд╣рд╛ рд╣реИред

рдХреНрд╖рдорд╛ рдХрд░реЗрдВ рдпрджрд┐ рдпрд╣ рд╡рд┐рд╖рдп рд╕реЗ рд╣рдЯрдХрд░ рд╣реИ рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдлрд┐рд░ рд╕реЗ рдкреВрдЫрдирд╛ рд╣реИ:
рдореБрдЭреЗ рдлреИрдмреНрд░рд┐рдХ 2 рдХрд╣рд╛рдВ рдорд┐рд▓ рд╕рдХрддрд╛ рд╣реИ?
рдореБрдЭреЗ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЖрд╣реНрд╡рд╛рди рдкрд╕рдВрдж рд╣реИ рдФрд░ рдпрд╣ рдПрдХ рдмрдбрд╝реЗ рд╕реБрдзрд╛рд░ рдХреА рддрд░рд╣ рд▓рдЧрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдПрдХ рдЖрд╣реНрд╡рд╛рди 1.0 рд░рд┐рд▓реАрдЬ рдХреЗ рд▓рд┐рдП рдХреНрдпрд╛ рдЧреБрдо рд╣реИ? (рдХрдкрдбрд╝реЗ 2 рдХреЗ рдЖрдзрд╛рд░ рдХреЗ рд░реВрдк рдореЗрдВ рд╡рд░реНрдгрд┐рдд)

рдЗрдирд╡реЛрдХ рдФрд░ рдлреИрдмреНрд░рд┐рдХ рдкрд░ рд╕рднреА рдорд╣рд╛рди рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж!

@dmr рдореИрдВ рдЗрдирд╡реЛрдХ рдХреЗ рд╢реАрд░реНрд╖ рдкрд░ рдлреИрдмреНрд░рд┐рдХ 2 рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рдмреАрдЪ рдореЗрдВ рд╣реВрдВред рдлреИрдмреНрд░рд┐рдХ 1 рд╕реЗ рдкреЛрд░реНрдЯ рдХреА рдЬрд╛рдиреЗ рд╡рд╛рд▓реА рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХрд╛ рдПрдХ рдЧреБрдЪреНрдЫрд╛ рдЗрдирд╡реЛрдХ рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдирд┐рд░реНрдгрдпреЛрдВ рдХреЛ рд╕реВрдЪрд┐рдд рдХрд░реЗрдЧрд╛ (рдирдИ рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдпрд╛ рдореМрдЬреВрджрд╛ рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП - рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рд╣рд╛рд▓рд┐рдпрд╛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдУрд╡рд░рд╣рд╛рд▓ рдЗрдирдореЗрдВ рд╕реЗ рдПрдХ рдерд╛), рдЗрд╕рд▓рд┐рдП рдореИрдВ рдЗрдирд╡реЛрдХ 1.0 рдХреЛ рддрдм рддрдХ рд▓реЗрдмрд▓ рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рдЬрдм рддрдХ рдХрд┐ рдпрд╣ " рд▓рдбрд╝рд╛рдИ рдХрд╛ рдкрд░реАрдХреНрд╖рдг" рдкрд░реНрдпрд╛рдкреНрдд рд░реВрдк рд╕реЗред

рдореЗрд░реА рдпреЛрдЬрдирд╛ рд╣реИ рдХрд┐ рдкрд╛рдпрдХреЙрди рджреНрд╡рд╛рд░рд╛ рдЬрдирддрд╛ рдХреЗ рд▓рд┐рдП рдирд╡реАрдирддрдо (рдЖрджрд░реНрд╢ рд░реВрдк рд╕реЗ рдмрд╣реБрдд рдЬрд▓реНрдж) рдлреИрдмреНрд░рд┐рдХ 2 рдХрд╛ рдЕрд▓реНрдлрд╛ рддреИрдпрд╛рд░ рдХрд┐рдпрд╛ рдЬрд╛рдП рдФрд░ рдЗрд╕рд╕реЗ рдлреИрдмреНрд░рд┐рдХ 2.0 + рдЗрдирд╡реЛрдХ 1.0 рд╣реЛ рдЬрд╛рдПрдЧрд╛ред

рд╕реНрдкрд╖реНрдЯреАрдХрд░рдг рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж, рдореИрдВ рдХрд╣рд╛рдВ рдорджрдж рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ?

рдореИрдВ рдЗрд╕ рдкрд░ рдЕрд▓реНрдкрд╛рд╡рдзрд┐ рдХреЗ рд▓рд┐рдП рдПрдХ рдирд┐рдЬреА рд╢рд╛рдЦрд╛ рдореЗрдВ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдЬрдм рддрдХ рдХрд┐ рдореБрдЭреЗ рдХреБрдЫ рдРрд╕рд╛ рдирд╣реАрдВ рдорд┐рд▓рддрд╛ рдЬрд┐рд╕рд╕реЗ рдореИрдВ рдЦреБрд╢ рд╣реВрдВ рдФрд░ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж рдЯреНрд╡рд┐рдЯрд░/рдореЗрд▓рд┐рдВрдЧ рд╕реВрдЪреА/рдЖрджрд┐ рдкрд░ рдШреЛрд╖рдгрд╛ рдХрд░реВрдВрдЧрд╛, рдЗрд╕рд▓рд┐рдП рдХреГрдкрдпрд╛ рдмрдиреЗ рд░рд╣реЗрдВред

рдореИрдВрдиреЗ рд╢реЗрд▓ рдХрдорд╛рдВрдб рдФрд░ рдХреБрдЫ рдкреИрд░рд╛рдореАрдХреЛ рдХреЗ рд╕рдВрдпреЛрдЬрди рдореЗрдВ рдЗрдирд╡реЛрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрд╡рд┐рдЪ рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░ рджрд┐рдпрд╛ рдХреНрдпреЛрдВрдХрд┐ рдлреИрдмреНрд░рд┐рдХ рдореЗрд░реА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ python3 рд╕рдорд░реНрдерди рдХреЗ рдмрд┐рдирд╛ рдЕрдВрддрд┐рдо рдкреИрдХреЗрдЬ рд╣реИ

рдлреИрдмреНрд░рд┐рдХ 2.0 рдХреЗ рд▓рд┐рдП рдХреЛрдИ рдИрдЯреАрдП рдФрд░ 1.0 рдХреЛ рдЖрдордВрддреНрд░рд┐рдд рдХрд░реЗрдВ рдХреНрдпреЛрдВрдХрд┐ рдкрд╛рдпрдерди 3.5 рдХрд▓ рдЬрд╛рд░реА рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ рдФрд░ рдЙрдмрдВрдЯреВ 16.04 рдПрд▓рдЯреАрдПрд╕ рдореЗрдВ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╣реЛрдЧрд╛?

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

shadyabhi picture shadyabhi  ┬╖  5рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

peteruhnak picture peteruhnak  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

omzev picture omzev  ┬╖  6рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

bitprophet picture bitprophet  ┬╖  6рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

TimotheeJeannin picture TimotheeJeannin  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ