рд╕рд╣реА рдЯреВрд▓рдХрд┐рдЯ рдвреВрдБрдврдирд╛: рд▓реЛрдХрдкреНрд░рд┐рдп рдкрд╛рдпрдерди рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░рдирд╛

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





рдЕрд╡рд▓реЛрдХрди


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

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

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

рдореБрдЭреЗ рдРрд╕рд╛ рд▓рдЧрд╛ рдХрд┐ рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдирд╛ рдмрд╣реБрдд рджрд┐рд▓рдЪрд╕реНрдк рдерд╛ рдХрд┐ рдЗрди рдЯреВрд▓реНрд╕ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рддреИрдпрд╛рд░ рдХрд┐рдП рдЧрдП рдирдП рдкрд╛рдпрдерди рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ рдЗрди рдЯреВрд▓реНрд╕ рдХреЛ рдкрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд╣рд╛рдпрдХ рд▓реЗрдЦрдХ рдХрд┐рд╕ рддрд░рд╣ рдХреЗ рд╕рд╣рд╛рдпрдХ рдЙрдкрдХрд░рдг рдХреЛ рдпреЛрдЧреНрдп рдорд╛рдирддреЗ рд╣реИрдВред

рдореИрдВрдиреЗ 18 рд╕рдмрд╕реЗ рд▓реЛрдХрдкреНрд░рд┐рдп рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдкреНрд░реЛрдЬреЗрдХреНрдЯреНрд╕ (рдЧрд┐рдерд╣рдм рдкрд░ 76 рд╕реЗ 6300 рд╕рд┐рддрд╛рд░реЛрдВ рд╕реЗ) рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд┐рдпрд╛ рдФрд░ рдЙрдирдХреА рддреБрд▓рдирд╛ рдореЗрдВ, рд╡рд┐рд╢реЗрд╖ рдзреНрдпрд╛рди рджрд┐рдпрд╛ рдХрд┐ рд╡реЗ рдХрд┐рд╕ рдкреНрд░рдХрд╛рд░ рдХреЗ рд╕рд╣рд╛рдпрдХ рдЙрдкрдХрд░рдгреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред рдЗрд╕ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХреЗ рдкрд░рд┐рдгрд╛рдо рдЗрд╕ рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рдкрд╛рдП рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВ ред

рдиреАрдЪреЗ рдореИрдВ рдореБрдЦреНрдп рдирд┐рд╖реНрдХрд░реНрд╖реЛрдВ рдХреЛ рд╕рд╛рдЭрд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдЬреЛ рдореИрдВрдиреЗ рд▓реЛрдХрдкреНрд░рд┐рдп рдЯреЗрдореНрдкрд▓реЗрдЯреНрд╕ рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░рддреЗ рд╕рдордп рдХрд┐рдП рд╣реИрдВред

рдбреА рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдорд╛рдирдХреЛрдВ


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

тЦНFlake8


рдореИрдВ рдХрд╛рдлреА рд╕рдордп рд╕реЗ Flake8 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ , рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдпрд╣ рдкрддрд╛ рдирд╣реАрдВ рдерд╛ рдХрд┐ рд▓рд╛рдЗрдирд┐рдВрдЧ рдХреЗ рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рдкреНрд░рдореБрдЦ рд╕реНрдерд╛рди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдпрд╣ рдирд╣реАрдВ рдкрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдХрд┐рд╕ рд╕реНрдерд╛рди рдкрд░ рд╣реИред рдореИрдВрдиреЗ рд╕реЛрдЪрд╛ рдерд╛ рдХрд┐ рдпрд╣ рдПрдХ рдкреНрд░рдХрд╛рд░ рдХреА рдкреНрд░рддрд┐рдпреЛрдЧрд┐рддрд╛ рдореЗрдВ рдореМрдЬреВрдж рд╣реИ, рд▓реЗрдХрд┐рди рдЕрдзрд┐рдХрд╛рдВрд╢ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рдЦрд╛рдХреЗ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред

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

тЦНрдкреНрдпрд╛рд░ рдФрд░ рдХрд╡рд░реЗрдЬ


рдмрд╣реБрд╕рдВрдЦреНрдпрдХ рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдкрд╛рдЗрд╕реНрдЯреЗрд╕реНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ ред рдпрд╣ рдорд╛рдирдХ unittest рдкрд░реАрдХреНрд╖рдг рдврд╛рдВрдЪреЗ рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЛ рдХрдо рдХрд░рддрд╛ рд╣реИред рдЬрдм рд╕рд╛рде рд╕рдВрдпреБрдХреНрдд Pytest рдФрд░ рднреА рдЕрдзрд┐рдХ рдЖрдХрд░реНрд╖рдХ рд▓рдЧ рд░рд╣рд╛ рд╣реИ tox ред рд▓рдЧрднрдЧ рдЖрдзреЗ рдЦрд╛рдХреЛрдВ рдореЗрдВ рдпрд╣реА рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдкрд░реАрдХреНрд╖рдг рдХреЗ рд╕рд╛рде рдХреЛрдб рдХрд╡рд░реЗрдЬ рдХреЛ рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рдмрд╛рд░ рдХрд╡рд░реЗрдЬ рдСрд░реЗрдХрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЬрд╛рдВрдЪрд╛ рдЬрд╛рддрд╛ рд╣реИ ред

тЦНSphinx


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

рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рд╣рдо рдХрд╣ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдпрджрд┐ рдЖрдк рдЕрдкрдиреЗ рд╡рд░реНрддрдорд╛рди рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ Flake8, pytest рдФрд░ Sphinx рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ рдЙрдиреНрд╣реЗрдВ рд╢реБрд░реВ рдХрд░рдиреЗ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред

рд╣реЛрдирд╣рд╛рд░ рдФрдЬрд╛рд░


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

тЦНPyproject.toml


рдкреАрдИрдкреА 518pyproject.toml рдореЗрдВ рдлрд╝рд╛рдЗрд▓ рдЙрдкрдпреЛрдЧ рдХрд╛ рд╕реБрдЭрд╛рд╡ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ ред рдпрд╣ рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╡рд┐рдзрд╛рдирд╕рднрд╛ рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЖрдзреБрдирд┐рдХ рддрдВрддреНрд░ рд╣реИред рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рдпреБрд╡рд╛ рдЯреЗрдореНрдкрд▓реЗрдЯреНрд╕ рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

тЦНPoetry


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

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

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╕рд╛рд╡рдзрд╛рди рд░рд╣рдирд╛ рд╣реИ, рддреЛ рдЕрдкрдиреА рдкрд░рд┐рдпреЛрдЬрдирд╛ (рдПрдХ рд╣реА рдирд┐рд░реНрднрд░рддрд╛ рдХреЗ рд▓рд┐рдП рдЪрд▓рд╛ рдЬрд╛рддрд╛ рд╣реИ) рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ Condaред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдХрд╡рд┐рддрд╛ рдЖрдкрдХреЛ рд╕реВрдЯ рдирд╣реАрдВ рдХрд░реЗрдЧреА, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдЙрдкрдХрд░рдг, рдЕрдкрдиреЗ рд╡рд░реНрддрдорд╛рди рд░реВрдк рдореЗрдВ, рдбреЗрд╡рд▓рдкрд░ рдХреЛ рдкрд╛рдЗрдк рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдФрд░ virtualenv рдХреЛ рдмрд╛рдВрдзрддрд╛ рд╣реИ ред

тЦНDependabot


Dependabot рдирд┐рдпрдорд┐рдд рд░реВрдк рд╕реЗ рдЕрдкреНрд░рдЪрд▓рди рдХреЗ рд▓рд┐рдП рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреА рдирд┐рд░реНрднрд░рддрд╛ рдХреА рдЬрд╛рдБрдЪ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдкреАрдЖрд░ рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдЦреЛрд▓рдХрд░ рдбреЗрд╡рд▓рдкрд░ рдХреА рдорджрдж рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддрд╛ рд╣реИред

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

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

рд╡реНрдпрдХреНрддрд┐рдЧрдд рд╕рд┐рдлрд╛рд░рд┐рд╢реЗрдВ


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

тЦНPre-рд▓рд┐рдЦреЗрдВ


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

тЦНPylint


рдпрджреНрдпрдкрд┐ рдкрд╛рдЗрд▓рд┐рдВрдЯ рдХреА рдзреАрдореА рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд▓реЛрдЪрдирд╛ рдХреА рдЬрд╛рддреА рд╣реИ , рд╣рд╛рд▓рд╛рдВрдХрд┐ рдЗрд╕ рдЙрдкрдХрд░рдг рдХреА рдЗрд╕рдХреА рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреА рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдЖрд▓реЛрдЪрдирд╛ рдХреА рдЬрд╛рддреА рд╣реИ, рдореИрдВ рдХрд╣ рд╕рдХрддрд╛ рд╣реВрдВ рдХрд┐ рдЗрд╕рдиреЗ рдореБрдЭреЗ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдХреЗ рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рдЦреБрдж рд╕реЗ рдКрдкрд░ рдмрдврд╝рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреАред

рд╡рд╣ рдореБрдЭреЗ рдХреЛрдб рдХреЗ рдЙрди рд╣рд┐рд╕реНрд╕реЛрдВ рдкрд░ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдирд┐рд░реНрджреЗрд╢ рджреЗрддрд╛ рд╣реИ рдЬрд┐рдиреНрд╣реЗрдВ рдореИрдВ рд╕реБрдзрд╛рд░ рд╕рдХрддрд╛ рд╣реВрдВ, рдореБрдЭреЗ рдмрддрд╛рддрд╛ рд╣реИ рдХрд┐ рдХреЛрдб рдХреЛ рдирд┐рдпрдореЛрдВ рдХрд╛ рдмреЗрд╣рддрд░ рдЕрдиреБрдкрд╛рд▓рди рдХреИрд╕реЗ рдХрд░реЗрдВред рдПрдХ рдореБрдлреНрдд рдЯреВрд▓ рдХреЗ рд▓рд┐рдП, рдпрд╣ рдЕрдХреЗрд▓реЗ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдмрд╣реБрдд рдЕрдзрд┐рдХ рд╣реИред рдЗрд╕рд▓рд┐рдП, рдореИрдВ Pylint рдХреЗ рд╕рд╛рде рдЬреБрдбрд╝реЗ рдЕрд╕реБрд╡рд┐рдзрд╛ рдХреЗ рд╕рд╛рде рддреИрдпрд╛рд░ рд╣реВрдВред

тЦНBlack


рдХреЛрдб рдореЗрдВ рд░рд┐рдХреНрдд рд╕реНрдерд╛рди рдбрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣рд╕ рдХреА рдЬрдбрд╝ рдореЗрдВ рдХрд╛рд▓рд╛ред рдпрд╣ рд╣рдорд╛рд░реА рдЯреАрдо рдХреЛ рдЦрд╛рд▓реА рдмрд╛рдд рдХрд░рдиреЗ рдФрд░ рд╡рд┐рднрд┐рдиреНрди рд╕рдВрдкрд╛рджрдХреЛрдВ рдХреА рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреЗ рдХрд╛рд░рдг рдлрд╛рдЗрд▓реЛрдВ рдореЗрдВ рдЕрд░реНрдерд╣реАрди рдЕрдВрддрд░ рд╕реЗ рдмрдЪрд╛рддрд╛ рд╣реИред

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

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

рд╕рдмрдЯреЛрдЯрд▓


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

рд▓реЗрдХрд┐рди рдЗрд╕ рддрдереНрдп рдХреЛ рджреЗрдЦрддреЗ рд╣реБрдП рдХрд┐ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рдЦрд╛рдХреЗ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдХрд┐рдЬреЗрдЯрд░ рдкреНрд░рдореБрдЦ рдврд╛рдВрдЪрд╛ рд╣реИ, рдЬреЛ рд▓реЛрдЧ рдРрд╕реЗ рдЦрд╛рдХреЗ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓реЗрддреЗ рд╣реИрдВ, рдЬрд┐рдиреНрд╣реЛрдВрдиреЗ рдХреБрдХрд┐рд╕реЗрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИ, рдЗрд╕рдХреЗ рд▓рд┐рдП рдЕрдЪреНрдЫреЗ рдХрд╛рд░рдг рд╣реЛрдиреЗ рдЪрд╛рд╣рд┐рдПред рдЗрд╕ рддрд░рд╣ рдХреЗ рдирд┐рд░реНрдгрдп рдХреЛ рдмрд╣реБрдд рдЙрдЪрд┐рдд рдард╣рд░рд╛рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред

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

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

рдмреЛрдирд╕: рдЯреЗрдореНрдкрд▓реЗрдЯ рдЕрдиреБрд╢рдВрд╕рд╛рдПрдБ


тЦНDjango


рд╕рдмрд╕реЗ рд▓реЛрдХрдкреНрд░рд┐рдп Django рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдХреЗ рд╕рд╛рде, wemake-django- рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ ред рдпрд╣ рдПрдХ рдЧрд╣рди рд╡рд┐рдЪрд╛рд░ рдЙрддреНрдкрд╛рдж рдХреА рдЫрд╛рдк рджреЗрддрд╛ рд╣реИред

тЦН рдбрд╛рдЯрд╛ рдкреНрд░реЛрд╕реЗрд╕рд┐рдВрдЧ рдФрд░ рд╡рд┐рд╢реНрд▓реЗрд╖рдг


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

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

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

Templates рд╕рд╛рдорд╛рдиреНрдп рдЙрджреНрджреЗрд╢реНрдп рдЯреЗрдореНрдкрд▓реЗрдЯ


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

рдпрд╣ рдПрдХ рдкреНрд░рд╕рд┐рджреНрдз рдкреИрдЯрд░реНрди рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдпрд╣ рддрдереНрдп рдкрд╕рдВрдж рд╣реИ рдХрд┐ рдЗрд╕рдореЗрдВ рдкреЛрдПрдЯреНрд░реА, рдЖрдЗрд╕реЛрд░реНрдЯ , рдмреНрд▓реИрдХ, рдкрд╛рдЗрд▓рд┐рдВрдЯ, рдФрд░ рдореИрдкреА рд╣реИ ред

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

рдпрд╣рд╛рдБ рдХреБрдЫ рдЬреЛрдбрд╝реЗ рд╣реИрдВ рдЬреЛ GitHub Actions Technology рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ:

  1. рдЕрдЬрдЧрд░ рдЙрддреНрддрдо рдЖрдЪрд░рдг Cookiecutter рдЯреЗрдореНрдкрд▓реЗрдЯ рд╣реИ, рдЬреЛ, рдореИрдВ рдЯрд┐рдкреНрдкрдгреА рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рдореЗрд░реА рдкрд╕рдВрджреАрджрд╛ рдЙрдкрдХрд░рдг рдХреЗ рд╕рдмрд╕реЗ рд╣реИред
  2. рдкрд╛рдпрдерди рдкреНрд░реЛрдЬреЗрдХреНрдЯреНрд╕ рдЯреЗрдореНрдкрд▓реЗрдЯ рдХреЗ рд▓рд┐рдП рдмреНрд▓реВрдкреНрд░рд┐рдВрдЯ / рдмреЙрдпрд▓рд░рдкреНрд▓реЗрдЯ , рдЬреЛ рдореБрдЭреЗ рдХрд╛рдлреА рджрд┐рд▓рдЪрд╕реНрдк рд▓рдЧрддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдЙрдиреНрд╣реЗрдВ рдмреИрдВрдбрд┐рдЯ рдХреЗ рд╕рд╛рде рд╕рд╛рдорд╛рдиреНрдп рд╕реБрд░рдХреНрд╖рд╛ рдореБрджреНрджреЛрдВ рдХреЛ рдЦреЛрдЬрдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рджреЗрддрд╛ рд╣реИ , рдЖрд╢рд╛рдЬрдирдХ рд▓рдЧрддрд╛ рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЗрд╕ рдЯреЗрдореНрдкрд▓реЗрдЯ рдореЗрдВ рдПрдХ рдЙрд▓реНрд▓реЗрдЦрдиреАрдп рд╡рд┐рд╢реЗрд╖рддрд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рдЗрд╕ рддрдереНрдп рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реИ рдХрд┐ рд╕рднреА рдЙрдкрдХрд░рдг рдХреА рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдПрдХ рд╣реА рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдПрдХрддреНрд░ рдХреА рдЬрд╛рддреА рд╣реИрдВ setup.cfgред

рдФрд░ рдЕрдВрдд рдореЗрдВ - рдореИрдВ wemake-python-package рдЯреЗрдореНрдкрд▓реЗрдЯ рдкрд░ рдПрдХ рдирдЬрд╝рд░ рдбрд╛рд▓рдиреЗ рдХреА рд╕рд▓рд╛рд╣ рджреЗрддрд╛ рд╣реВрдВ ред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╡реИрд╕реЗ рднреА рдХрд░рдиреЗ рд▓рд╛рдпрдХ рд╣реИред рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ - рдпрджрд┐ рдЖрдк рдПрдХ рд╣реА рдбреЗрд╡рд▓рдкрд░ рдХреЗ Django- рдЯреЗрдореНрдкрд▓реЗрдЯ рдХреЛ рдкрд╕рдВрдж рдХрд░рддреЗ рд╣реИрдВ, рдпрд╛ рдпрджрд┐ рдЖрдк рд╢реБрджреНрдз рдлреНрд▓реЗрдХ 8 рдХреЗ рдмрдЬрд╛рдп рдЙрдиреНрдирдд рд╡реЗрдореЗрдХ-рдкрд╛рдпрдерди-рд╕реНрдЯрд╛рдЗрд▓рдЧрд╛рдЗрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдЬрд╛ рд░рд╣реЗ рд╣реИрдВ ред

рд╕рд╛рд░рд╛рдВрд╢


рдЗрд╕ рд▓реЗрдЦ рдХреЗ рдкреНрд░рдХрд╛рд╢рд┐рдд рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж, рдореИрдВрдиреЗ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЧреБрдЗрдбреЛ рд╡реИрди рд░реЛрд╕реБрдо рдХреЛ рд▓рд┐рдЦрд╛ред

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

рдкреНрд░рд┐рдп рдкрд╛рдардХреЛрдВ! рдЖрдк рдХрд┐рд╕ рдкрд╛рдпрдерди рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ?


All Articles