Π― ΠΈΡΠΊΠ°Π» ΡΡΡ ΡΡΠ½ΠΊΡΠΈΡ, Π½ΠΎ Π½Π΅ Π½Π°ΡΠ΅Π» Π΅Π΅ Π² Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ, ΠΏΠΎΡΡΠΎΠΌΡ ΠΎΡΠΊΡΡΠ²Π°Ρ Π·Π°ΠΏΡΠΎΡ ΡΡΠ½ΠΊΡΠΈΠΈ.
Π― Π±Ρ Ρ ΠΎΡΠ΅Π» ΡΠ²ΠΈΠ΄Π΅ΡΡ ΠΈΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅, ΠΊΠΎΡΠΎΡΠΎΠ΅ Π±Π΅ΡΠ΅Ρ ΠΊΠΎΠ΄, ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΡΠΉ Ρ Python 2/3, ΠΈ ΡΠ΄Π°Π»ΡΠ΅Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΡ Python 2 ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ Π»ΡΡΡΠ΅.
ΠΡΠΎ ΠΌΠΎΠ³Π»ΠΎ Π±Ρ:
__future__
(Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, print_function
)from future import standard_library
ΠΈ standard_library.install_aliases()
from builtins import *
ΡΡΡΠΎΠΊfrom future.utils import python_2_unicode_compatible
ΠΡΠ»ΠΈ ΡΠ°ΠΊΠΎΠΉ ΡΠΈΠΊΡΠ°ΡΠΎΡ ΡΠΆΠ΅ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ, Ρ Π±Ρ Ρ ΠΎΡΠ΅Π» ΡΠ·Π½Π°ΡΡ ΠΎΠ± ΡΡΠΎΠΌ.
ΠΠ΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠΈ ΠΊΠ»ΠΈΠ΅Π½ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ future
Π΄Π»Ρ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ ΡΠ²ΠΎΠ΅Π³ΠΎ ΠΊΠΎΠ΄Π° Π΄ΠΎ Python 3, Π° Π·Π°ΡΠ΅ΠΌ Π²ΡΠΊΠΎΡΠ΅ ΠΏΠΎΡΠ»Π΅ ΡΡΠΎΠ³ΠΎ ΠΎΡΠΊΠ°Π·ΡΠ²Π°ΡΡΡΡ ΠΎΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΈ Python 2, ΠΈ ΡΠ°ΠΊΠΎΠΉ ΡΠΈΠΊΡΠ°ΡΠΎΡ Π±ΡΠ΄Π΅Ρ ΠΈΠΌ ΠΎΡΠ΅Π½Ρ ΠΏΠΎΠ»Π΅Π·Π΅Π½.
ΠΡΠ»ΠΈ ΠΎΠ½ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ, Π·Π½Π°ΡΠΈΡ, ΠΎΠ½ ΠΏΠ»ΠΎΡ
ΠΎ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½. ΠΡΠΈΡΠ»ΠΎΡΡ Π²ΡΠ΅ ΡΡΠΎ Π²ΡΡΡΠ½ΡΡ ΡΠ΄Π°Π»ΠΈΡΡ. ΠΡΠ»ΠΎ Π±Ρ Π·Π΄ΠΎΡΠΎΠ²ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΏΡΠΈΡΠΏΠΎΡΠΎΠ±Π»Π΅Π½ΠΈΠ΅, ΠΊΠΎΡΠΎΡΠΎΠ΅ Π·Π°ΠΏΡΡΠΊΠ°Π΅ΡΡΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Ρ ΡΠ°ΠΊΠΈΠΌ ΡΠ»Π°Π³ΠΎΠΌ, ΠΊΠ°ΠΊ -3
ΠΎΠ·Π½Π°ΡΠ°ΡΡΠΈΠΌ ΡΠ΅ΡΠ°ΠΊΡΠΎΡΠΈΠ½Π³ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΡ 3 ΠΈ ΠΈΠ³Π½ΠΎΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡΠΈ Ρ python2.
Π― ΡΠ°ΠΌ ΡΠ΄Π΅Π»Π°Π» Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΡ ΠΈ ΡΠΎΠ±ΡΠ°Π» ΠΈΡ Π² ΡΠΊΡΠΈΠΏΡ. Π Π½Π°ΡΡΠΎΡΡΠ΅Π΅ Π²ΡΠ΅ΠΌΡ ΠΎΠ½ Π΄ΠΎΡΡΡΠΏΠ΅Π½ Π·Π΄Π΅ΡΡ: https://github.com/purplediane/drop2
Π‘Π²ΡΠ·Π°Π½Π½ΡΠΉ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ Ρ Π½Π΅ΠΊΠΎΡΠΎΡΡΠΌ ΠΏΠ΅ΡΠ΅ΠΊΡΡΡΠΈΠ΅ΠΌ (Π° ΠΈΠΌΠ΅Π½Π½ΠΎ __future__
import):
ΠΡΡΠ³ΠΈΠ΅ ΠΏΡΠΈΠΌΠ΅ΡΠ°ΡΠ΅Π»ΡΠ½ΡΠ΅ Π²Π΅ΡΠΈ:
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.*
Π― ΡΠΆΠ΅ Π·Π½Π°Ρ ΠΎ pyupgrade ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π» Π΅Π³ΠΎ. ΠΡΠΎ ΠΎΡΠ΅Π½Ρ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ.
pyupgrade
(ΠΏΠ»ΡΡ Π»ΠΎΠ²ΡΡΠΊΠ° ΠΏΠ΅ΡΠ΅Π΄ ΡΠΈΠΊΡΠ°ΡΠΈΠ΅ΠΉ) - ΠΎΡΠ»ΠΈΡΠ½ΡΠΉ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ Π΄Π»Ρ ΡΡΠΎΠΉ ΡΠ΅Π»ΠΈ. ΠΠΎΠΆΠ΅ΠΌ Π»ΠΈ ΠΌΡ Π·Π°ΠΊΡΡΡΡ ΡΡΠΎΡ FR, Π΅ΡΠ»ΠΈ Π΅ΡΡΡ Π°Π»ΡΡΠ΅ΡΠ½Π°ΡΠΈΠ²Π°?
Π‘Π°ΠΌΡΠΉ ΠΏΠΎΠ»Π΅Π·Π½ΡΠΉ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΉ
Π― ΡΠ°ΠΌ ΡΠ΄Π΅Π»Π°Π» Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΡ ΠΈ ΡΠΎΠ±ΡΠ°Π» ΠΈΡ Π² ΡΠΊΡΠΈΠΏΡ. Π Π½Π°ΡΡΠΎΡΡΠ΅Π΅ Π²ΡΠ΅ΠΌΡ ΠΎΠ½ Π΄ΠΎΡΡΡΠΏΠ΅Π½ Π·Π΄Π΅ΡΡ: https://github.com/purplediane/drop2