Python-future: рдлреНрдпреВрдЪрд░рд╛рдЗрдЬреНрдб рдХреЛрдб рд╕реЗ __future__/рднрд╡рд┐рд╖реНрдп рдХреЗ рдЖрдпрд╛рдд рдХреЛ рд╣рдЯрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдлрд┐рдХреНрд╕рд░

рдХреЛ рдирд┐рд░реНрдорд┐рдд 28 рдордИ 2019  ┬╖  5рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: PythonCharmers/python-future

рдореИрдВ рдЗрд╕ рд╕реБрд╡рд┐рдзрд╛ рдХреА рддрд▓рд╛рд╢ рдореЗрдВ рдерд╛, рд▓реЗрдХрд┐рди рдЗрд╕реЗ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реАрдХрд░рдг рдореЗрдВ рдирд╣реАрдВ рджреЗрдЦрд╛, рдЗрд╕рд▓рд┐рдП рдореИрдВ рдПрдХ рд╕реБрд╡рд┐рдзрд╛ рдЕрдиреБрд░реЛрдз рдЦреЛрд▓ рд░рд╣рд╛ рд╣реВрдВред

рдореБрдЭреЗ рдПрдХ рдлрд┐рдХреНрд╕рд░ рджреЗрдЦрдирд╛ рдЕрдЪреНрдЫрд╛ рд▓рдЧреЗрдЧрд╛ рдЬреЛ рдкрд╛рдЗрдерди 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 рд╕рдкреЛрд░реНрдЯ рдХреЛ рдЫреЛрдбрд╝ рджреЗрддреЗ рд╣реИрдВ рдФрд░ рдРрд╕рд╛ рдлрд┐рдХреНрд╕рд░ рдЙрдирдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдорджрджрдЧрд╛рд░ рд╣реЛрдЧрд╛ред

futurize script help wanted unscheduled wontfix / cantfix

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

рдореИрдВрдиреЗ рдЦреБрдж рдХреБрдЫ рдмрджрд▓рд╛рд╡ рдХрд┐рдП рдФрд░ рдЙрдиреНрд╣реЗрдВ рдПрдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдмрд╛рдВрдзрд╛ред рдпрд╣ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдпрд╣рд╛рдВ рдЙрдкрд▓рдмреНрдз рд╣реИ: https://github.com/purplediane/drop2

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

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

рдореИрдВрдиреЗ рдЦреБрдж рдХреБрдЫ рдмрджрд▓рд╛рд╡ рдХрд┐рдП рдФрд░ рдЙрдиреНрд╣реЗрдВ рдПрдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдмрд╛рдВрдзрд╛ред рдпрд╣ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдпрд╣рд╛рдВ рдЙрдкрд▓рдмреНрдз рд╣реИ: https://github.com/purplediane/drop2

рдПрдХ рд╕рдВрдмрдВрдзрд┐рдд рдЙрдкрдХрд░рдг, рдХреБрдЫ рдУрд╡рд░рд▓реИрдк рдХреЗ рд╕рд╛рде (рдЕрд░реНрдерд╛рддреН __future__ рдЖрдпрд╛рдд):

asottile/pyupgrad: рднрд╛рд╖рд╛ рдХреЗ рдирдП рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЗ рд▓рд┐рдП рд╕рд┐рдВрдЯреИрдХреНрд╕ рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдЕрдкрдЧреНрд░реЗрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЙрдкрдХрд░рдг (рдФрд░ рдкреВрд░реНрд╡-рдкреНрд░рддрд┐рдмрджреНрдз рд╣реБрдХ)ред

рдЕрдиреНрдп рдЙрд▓реНрд▓реЗрдЦрдиреАрдп рдмрд╛рддреЗрдВ:

  • 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 рдХреЛ рдмрдВрдж рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рд╡рд┐рдХрд▓реНрдк рдЙрдкрд▓рдмреНрдз рд╣реИ?

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

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

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

ambv picture ambv  ┬╖  13рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

xmo-odoo picture xmo-odoo  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

asottile picture asottile  ┬╖  18рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

sriram-mv picture sriram-mv  ┬╖  14рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ