рдореИрдВ рдЗрд╕ рд╕реБрд╡рд┐рдзрд╛ рдХреА рддрд▓рд╛рд╢ рдореЗрдВ рдерд╛, рд▓реЗрдХрд┐рди рдЗрд╕реЗ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реАрдХрд░рдг рдореЗрдВ рдирд╣реАрдВ рджреЗрдЦрд╛, рдЗрд╕рд▓рд┐рдП рдореИрдВ рдПрдХ рд╕реБрд╡рд┐рдзрд╛ рдЕрдиреБрд░реЛрдз рдЦреЛрд▓ рд░рд╣рд╛ рд╣реВрдВред
рдореБрдЭреЗ рдПрдХ рдлрд┐рдХреНрд╕рд░ рджреЗрдЦрдирд╛ рдЕрдЪреНрдЫрд╛ рд▓рдЧреЗрдЧрд╛ рдЬреЛ рдкрд╛рдЗрдерди 2/3 рд╕рдВрдЧрдд рдХреЛрдб рд▓реЗрддрд╛ рд╣реИ рдФрд░ рдЬрд┐рддрдирд╛ рд╕рдВрднрд╡ рд╣реЛ рд╕рдХреЗ рдкрд╛рдЗрдерди 2 рд╕рдорд░реНрдерди рдХреЛ рд╣рдЯрд╛ рджреЗрддрд╛ рд╣реИред
рдпрд╣ рдРрд╕рд╛ рд╣реЛрдЧрд╛:
__future__
рдЖрдпрд╛рдд рд╣рдЯрд╛рдПрдВ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП print_function
)from future import standard_library
рдФрд░ standard_library.install_aliases()
рд▓рд╛рдЗрдиреЛрдВ рдХреЛ рд╣рдЯрд╛ рджреЗрдВfrom builtins import *
рд▓рд╛рдЗрдиреЗрдВ рд╣рдЯрд╛рдПрдВfrom future.utils import python_2_unicode_compatible
рдирд┐рдХрд╛рд▓реЗрдВрдпрджрд┐ рдРрд╕рд╛ рдХреЛрдИ рдлрд┐рдХреНрд╕рд░ рдкрд╣рд▓реЗ рд╕реЗ рдореМрдЬреВрдж рд╣реИ, рддреЛ рдореБрдЭреЗ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдирд╛ рдЕрдЪреНрдЫрд╛ рд▓рдЧреЗрдЧрд╛ред
рдореЗрд░реЗ рдХрдИ рдХреНрд▓рд╛рдЗрдВрдЯ рдЕрдкрдиреЗ рдХреЛрдб рдХреЛ Python 3 рдореЗрдВ рдЕрдкрдЧреНрд░реЗрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП future
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдФрд░ рдлрд┐рд░ рдХреБрдЫ рд╣реА рд╕рдордп рдмрд╛рдж Python 2 рд╕рдкреЛрд░реНрдЯ рдХреЛ рдЫреЛрдбрд╝ рджреЗрддреЗ рд╣реИрдВ рдФрд░ рдРрд╕рд╛ рдлрд┐рдХреНрд╕рд░ рдЙрдирдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдорджрджрдЧрд╛рд░ рд╣реЛрдЧрд╛ред
рдпрджрд┐ рдпрд╣ рдореМрдЬреВрдж рд╣реИ, рддреЛ рдпрд╣ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдкреНрд░рд▓реЗрдЦрд┐рдд рдирд╣реАрдВ рд╣реИред рдореБрдЭреЗ рд╡рд╣ рд╕рдм рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рд╣рдЯрд╛рдирд╛ рдкрдбрд╝рд╛ред рдПрдХ рдлрд┐рдХреНрд╕реНрдЪрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдЬреЛ рдХрд┐ -3
рдЬреИрд╕реЗ рдзреНрд╡рдЬ рдХреЗ рд╕рд╛рде рдСрдЯреЛ-рд░рди рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рдХреЗрд╡рд▓ 3 рдЕрдиреБрдкрд╛рд▓рди рдХреЗ рд▓рд┐рдП рд░рд┐рдлреИрдХреНрдЯрд░ рд╣реИ рдФрд░ python2 рд╕рдВрдЧрддрддрд╛ рдХреЛ рдЕрдирджреЗрдЦрд╛ рдХрд░рдирд╛ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ред
рдореИрдВрдиреЗ рдЦреБрдж рдХреБрдЫ рдмрджрд▓рд╛рд╡ рдХрд┐рдП рдФрд░ рдЙрдиреНрд╣реЗрдВ рдПрдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдмрд╛рдВрдзрд╛ред рдпрд╣ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдпрд╣рд╛рдВ рдЙрдкрд▓рдмреНрдз рд╣реИ: https://github.com/purplediane/drop2
рдПрдХ рд╕рдВрдмрдВрдзрд┐рдд рдЙрдкрдХрд░рдг, рдХреБрдЫ рдУрд╡рд░рд▓реИрдк рдХреЗ рд╕рд╛рде (рдЕрд░реНрдерд╛рддреН __future__
рдЖрдпрд╛рдд):
рдЕрдиреНрдп рдЙрд▓реНрд▓реЗрдЦрдиреАрдп рдмрд╛рддреЗрдВ:
u
рдЙрдкрд╕рд░реНрдЧ рд╣рдЯрд╛рддрд╛ рд╣реИ(object)
рдХреЛ class
рдкрд░рд┐рднрд╛рд╖рд╛рдУрдВ рд╕реЗ рд╣рдЯрд╛рддрд╛ рд╣реИsuper()
рдХреЙрд▓mock
рдЖрдпрд╛рддрдЙрд╕ рдиреЗ рдХрд╣рд╛, рдореИрдВ sed
рд▓рд┐рдП standard_library
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдерд╛:
sed -i '' '/.*standard_library.*/d' **/*.py
-from future import standard_library
-standard_library.install_aliases()
import json
import logging
import urllib.parse
рдореИрдВ рдЗрд╕рдХреЗ рд▓рд┐рдП рднреА рдРрд╕рд╛ рд╣реА рдХрд░рдиреЗ рдХреА рдпреЛрдЬрдирд╛ рдмрдирд╛ рд░рд╣рд╛ рд╣реВрдВ:
.*python_2_unicode_compatible.*
.*implements_iterator.*
from builtins.*
рдореИрдВ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА pyupgrad рд╕реЗ рдЕрд╡рдЧрдд рд╣реВрдВ рдФрд░ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рдЪреБрдХрд╛ рд╣реВрдВред рдпрд╣ рдмрд╣реБрдд рд╣реА рдЙрдкрдпреЛрдЧреА рд╣реИред
pyupgrade
(рд╕рд╛рде рд╣реА рдкреВрд░реНрд╡-рдкреНрд░рддрд┐рдмрджреНрдз рд╣реБрдХ) рдЗрд╕ рдЙрджреНрджреЗрд╢реНрдп рдХреЗ рд▓рд┐рдП рдПрдХ рдорд╣рд╛рди рдЙрдкрдХрд░рдг рд╣реИред рдХреНрдпрд╛ рд╣рдо рдЗрд╕ FR рдХреЛ рдмрдВрдж рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рд╡рд┐рдХрд▓реНрдк рдЙрдкрд▓рдмреНрдз рд╣реИ?
рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА
рдореИрдВрдиреЗ рдЦреБрдж рдХреБрдЫ рдмрджрд▓рд╛рд╡ рдХрд┐рдП рдФрд░ рдЙрдиреНрд╣реЗрдВ рдПрдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдмрд╛рдВрдзрд╛ред рдпрд╣ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдпрд╣рд╛рдВ рдЙрдкрд▓рдмреНрдз рд╣реИ: https://github.com/purplediane/drop2