PyPI рдкрд╛рдЗрдерди рдкреНрдпрд╛рдХреЗрдЬ рдбрд╛рдЗрд░реЗрдХреНрдЯрд░реАрдорд╛ рджреБрдИ рдЦрд░рд╛рдм рдкреБрд╕реНрддрдХрд╛рд▓рдпрд╣рд░реВ рдкрддреНрддрд╛ рд▓рдЧрд╛рдЗрдпреЛ

рдкрд╛рдЗрдерди рдкреНрдпрд╛рдХреЗрдЬ рдбрд╛рдЗрд░реЗрдХреНрдЯрд░реАрдорд╛ PyPI (рдкрд╛рдЗрдерди рдкреНрдпрд╛рдХреЗрдЬ рдЗрдиреНрдбреЗрдХреНрд╕) рдкрддреНрддрд╛ рд▓рд╛рдЧреНрдпреЛ рдЦрд░рд╛рдм рдкреНрдпрд╛рдХреЗрдЬрд╣рд░реВ "python3-dateutil"рд░"jeIlyfish", рдЬреБрди рдПрдХ рд▓реЗрдЦрдХ рджреНрд╡рд╛рд░рд╛ рдЕрдкрд▓реЛрдб рдЧрд░рд┐рдПрдХреЛ рдерд┐рдпреЛ olgired2017 рд░ рд▓реЛрдХрдкреНрд░рд┐рдп рдкреНрдпрд╛рдХреЗрдЬрдХреЛ рд░реВрдкрдорд╛ рднреЗрд╖рдорд╛"dateutil"рд░"рдЬреЗрд▓реАрдлрд┐рд╢" (рдирд╛рдордорд╛ "l" (L) рдХреЛ рд╕рдЯреНрдЯрд╛ "I" (i) рдкреНрд░рддреАрдХрдХреЛ рдкреНрд░рдпреЛрдЧрджреНрд╡рд╛рд░рд╛ рдЫреБрдЯреНрдпрд╛рдЗрдПрдХреЛ)ред рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдкреНрдпрд╛рдХреЗрдЬрд╣рд░реВ рд╕реНрдерд╛рдкрдирд╛ рдЧрд░реЗрдкрдЫрд┐, рдЗрдиреНрдХреНрд░рд┐рдкреНрд╢рди рдХреБрдЮреНрдЬреАрд╣рд░реВ рд░ рдкреНрд░рдгрд╛рд▓реАрдорд╛ рдлреЗрд▓рд╛ рдкрд░реЗрдХрд╛ рдЧреЛрдкреНрдп рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛ рдбреЗрдЯрд╛ рдЖрдХреНрд░рдордгрдХрд░реНрддрд╛рдХреЛ рд╕рд░реНрднрд░рдорд╛ рдкрдард╛рдЗрдпреЛред рд╕рдорд╕реНрдпрд╛рдЧреНрд░рд╕реНрдд рдкреНрдпрд╛рдХреЗрдЬрд╣рд░реВ рдЕрдм PyPI рдбрд╛рдЗрд░реЗрдХреНрдЯрд░реАрдмрд╛рдЯ рд╣рдЯрд╛рдЗрдПрдХрд╛ рдЫрдиреНред

рдорд╛рд▓рд┐рд╕рд┐рдпрд╕ рдХреЛрдб рдЖрдлреИрдВ "jeIlyfish" рдкреНрдпрд╛рдХреЗрдЬрдорд╛ рдЙрдкрд╕реНрдерд┐рдд рдерд┐рдпреЛ, рд░ "python3-dateutil" рдкреНрдпрд╛рдХреЗрдЬрд▓реЗ рдпрд╕рд▓рд╛рдИ рдирд┐рд░реНрднрд░рддрд╛рдХреЛ рд░реВрдкрдорд╛ рдкреНрд░рдпреЛрдЧ рдЧрд░реНтАНрдпреЛред
рдирд╛рдорд╣рд░реВ рдЦреЛрдЬреНрджрд╛ рдЯрд╛рдЗрдкрд┐рдЩ рддреНрд░реБрдЯрд┐рд╣рд░реВ рдЧрд░реНрдиреЗ рдмреЗрд╡рд╛рд╕реНрддрд╛ рдЧрд░реНрдиреЗ рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛рд╣рд░реВрдХреЛ рдЖрдзрд╛рд░рдорд╛ рдЪрдпрди рдЧрд░рд┐рдПрдХреЛ рдерд┐рдпреЛ (typosquatting)ред рдЦрд░рд╛рдм рдкреНрдпрд╛рдХреЗрдЬ "jeIlyfish" рд▓рдЧрднрдЧ рдПрдХ рд╡рд░реНрд╖ рдкрд╣рд┐рд▓реЗ, рдбрд┐рд╕реЗрдореНрдмрд░ 11, 2018 рдорд╛ рдбрд╛рдЙрдирд▓реЛрдб рдЧрд░рд┐рдПрдХреЛ рдерд┐рдпреЛ, рд░ рдкрддреНрддрд╛ рд▓рдЧрд╛рдЙрди рд╕рдХрд┐рдПрдиред рдкреНрдпрд╛рдХреЗрдЬ "python3-dateutil" рдиреЛрднреЗрдореНрдмрд░ 29, 2019 рдорд╛ рдЕрдкрд▓реЛрдб рдЧрд░рд┐рдПрдХреЛ рдерд┐рдпреЛ рд░ рдХреЗрд╣рд┐ рджрд┐рди рдкрдЫрд┐ рд╡рд┐рдХрд╛рд╕рдХрд░реНрддрд╛рд╣рд░реВ рдордзреНрдпреЗ рдПрдХ рдорд╛рдЭ рд╢рдВрдХрд╛ рдЙрддреНрдкрдиреНрди рднрдпреЛред рджреБрд░реНрднрд╛рд╡рдирд╛рдкреВрд░реНрдг рдкреНрдпрд╛рдХреЗрдЬрд╣рд░реВрдХреЛ рд╕реНрдерд╛рдкрдирд╛рд╣рд░реВрдХреЛ рд╕рдВрдЦреНрдпрд╛рдорд╛ рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рджрд╛рди рдЧрд░рд┐рдПрдХреЛ рдЫреИрдиред

рдЬреЗрд▓реАрдлрд┐рд╢ рдкреНрдпрд╛рдХреЗрдЬрд▓реЗ рдмрд╛рд╣реНрдп GitLab-рдЖрдзрд╛рд░рд┐рдд рднрдгреНрдбрд╛рд░рдмрд╛рдЯ "рд╣реНрдпрд╛рд╕" рдХреЛ рд╕реВрдЪреА рдбрд╛рдЙрдирд▓реЛрдб рдЧрд░реНрдиреЗ рдХреЛрдб рд╕рдорд╛рд╡реЗрд╢ рдЧрд░реНрдпреЛред рдпреА "рд╣реНрдпрд╛рд╕рд╣рд░реВ" рд╕рдБрдЧ рдХрд╛рдо рдЧрд░реНрдиреЗ рддрд░реНрдХрдХреЛ рд╡рд┐рд╢реНрд▓реЗрд╖рдгрд▓реЗ рджреЗрдЦрд╛рдпреЛ рдХрд┐ рддрд┐рдиреАрд╣рд░реВрд▓реЗ рдЖрдзрд╛рд░ 64 рдкреНрд░рдХрд╛рд░реНрдп рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рдПрдиреНрдХреЛрдб рдЧрд░рд┐рдПрдХреЛ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕рдорд╛рд╡реЗрд╢ рдЧрд░реНрджрдЫ рд░ рдбрд┐рдХреЛрдбрд┐рдЩ рдкрдЫрд┐ рд╕реБрд░реВ рдЧрд░реНрдпреЛред рд╕реНрдХреНрд░рд┐рдкреНрдЯрд▓реЗ рдкреНрд░рдгрд╛рд▓реАрдорд╛ SSH рд░ GPG рдХреБрдЮреНрдЬреАрд╣рд░реВ рдлреЗрд▓рд╛ рдкрд╛рд░реНрдпреЛ, рд╕рд╛рдереИ рдЧреГрд╣ рдбрд╛рдЗрд░реЗрдХреНрдЯрд░реАрдмрд╛рдЯ рдХреЗрд╣реА рдкреНрд░рдХрд╛рд░рдХрд╛ рдлрд╛рдЗрд▓рд╣рд░реВ рд░ PyCharm рдкрд░рд┐рдпреЛрдЬрдирд╛рд╣рд░реВрдХрд╛ рд▓рд╛рдЧрд┐ рдкреНрд░рдорд╛рдгрд╣рд░реВ, рд░ рддреНрдпрд╕рдкрдЫрд┐ рддрд┐рдиреАрд╣рд░реВрд▓рд╛рдИ DigitalOcean рдХреНрд▓рд╛рдЙрдб рдкреВрд░реНрд╡рд╛рдзрд╛рд░рдорд╛ рдЪрд▓рд┐рд░рд╣реЗрдХреЛ рдмрд╛рд╣реНрдп рд╕рд░реНрднрд░рдорд╛ рдкрдард╛рдЗрдпреЛред

рд╕реНрд░реЛрдд: opennet.ru

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдердкреНрди