Python-future: рд╡рд┐рднрд╛рдЬрди рдХрд╛ old_div . рдореЗрдВ рдЧрд▓рдд рд░реВрдкрд╛рдВрддрд░рдг

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

рдЙрджрд╛рд╣рд░рдг рдХреЛрдб

рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреЛрдб рдореЗрдВ рдПрдХ рдкреБрд░рд╛рдиреА рд╢реИрд▓реА рдХрд╛ рд╡рд┐рднрд╛рдЬрди рд╣реИред

(x / 2 * 3.0)

рдЕрдкреЗрдХреНрд╖рд┐рдд рдкрд░рд┐рдгрд╛рдо

рдЙрдкрд░реЛрдХреНрдд рдХреЛрдб рдХреЛ x рдХреЛ рдЕрд╕рд╛рдЗрди рдХрд┐рдП рдЧрдП рдордирдорд╛рдиреЗ рдорд╛рдиреЛрдВ рдХреЗ рд╕рд╛рде рдЪрд▓рд╛рдиреЗ рдХрд╛ рдкрд░рд┐рдгрд╛рдо рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рдЬрд╣рд╛рдВ рдХреЛрд╖реНрдардХ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рд╕рдВрдЪрд╛рд▓рди рдХрд╛ рдХреНрд░рдо рджрд┐рдЦрд╛рддреЗ рд╣реИрдВ (x / 2) * 3.0 ред рдпрд╛ рдХрд┐рд╕реА рдЕрдиреНрдп рдХреНрд░рдо рдореЗрдВ рд▓рд┐рдЦреЗ рдЧрдП рдкрд░рд┐рдгрд╛рдо рдХрд╛ рдореВрд▓реНрдпрд╛рдВрдХрди x * (3.0 / 2) рд░реВрдк рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред

рд╕рдорд╕реНрдпрд╛

рдПрдХ рдмрд╛рд░ рдЬрдм рд╣рдо рдЙрдкрд░реЛрдХреНрдд рдХреЛрдб рдкрд░ futurize рдЪрд▓рд╛рддреЗ рд╣реИрдВ, рддреЛ fix_division_safe рдлрд┐рдХреНрд╕реНрдЪрд░ рджреНрд╡рд╛рд░рд╛ рдПрдХ old_div рдбрд╛рд▓рд╛ рдЬрд╛рддрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдБрдХрд┐ рдЬреИрд╕рд╛ рдХрд┐ рдиреАрдЪреЗ рджрд┐рдП рдЧрдП рдЕрдВрддрд░ рдореЗрдВ рджреЗрдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдлрд╝рдВрдХреНрд╢рди рдХреЛ рддрд░реНрдХреЛрдВ рдХреЗ рдЧрд▓рдд рдХреНрд░рдо рдХреЗ рд╕рд╛рде рдмреБрд▓рд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

$ futurize --stage2 src/example.py
RefactoringTool: Refactored src/example.py
--- src/example.py      (original)
+++ src/example.py      (refactored)
@@ -1 +1,3 @@
-(x / 2 * 3.0)
+from __future__ import division
+from past.utils import old_div
+(old_div(x, 2 * 3.0))
RefactoringTool: Files that need to be modified:
RefactoringTool: src/example.py

рдЕрдкреЗрдХреНрд╖рд┐рдд рд░реВрдкрд╛рдВрддрд░рдг

рдЬреИрд╕рд╛ рдХрд┐ 'рдЕрдкреЗрдХреНрд╖рд┐рдд рдкрд░рд┐рдгрд╛рдо' рдЦрдВрдб рдореЗрдВ рдкрд╣рд▓реЗ рд╣реА рдХрд╣рд╛ рдЧрдпрд╛ рд╣реИ, рд╕рд╣реА рд░реВрдкрд╛рдВрддрд░рдг рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдерд╛: (old_div(x, 2) * 3.0)

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

рдореБрдЭреЗ рдпрд╣ рд╕рдорд╕реНрдпрд╛ рднреА рд╣реИ, рдкрд╛рдпрдерди 2.7.16 рдкрд░ рдлреНрдпреВрдЪрд░рд╛рдЗрдЬрд╝ 0.17.1 рдЪрд▓ рд░рд╣рд╛ рд╣реИред рдпрд╣ рдЙрджрд╛рд╣рд░рдг рд╕рдорд╕реНрдпрд╛ рдХреЛ рджрд┐рдЦрд╛рддрд╛ рд╣реИ:

$ echo 'x = 100/10 * 10' | futurize --stage2 -

RefactoringTool: Refactored <stdin>
--- <stdin> (original)
+++ <stdin> (refactored)
@@ -1 +1,3 @@
-x = 100/10 * 10
+from __future__ import division
+from past.utils import old_div
+x = old_div(100,10 * 10)
RefactoringTool: Files that need to be modified:
RefactoringTool: <stdin>

рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ 100/10 * 10 (==100) old_div(100,10 * 10) (==1) рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣ рдореЗрд░реЗ рд▓рд┐рдП рдПрдХ рдмрдбрд╝реА рдмрдЧ рдХреА рддрд░рд╣ рд▓рдЧрддрд╛ рд╣реИред

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

рдпрд╛ рдХрд┐рд╕реА рдЕрдиреНрдп рдХреНрд░рдо рдореЗрдВ рд▓рд┐рдЦреЗ рдЧрдП рдкрд░рд┐рдгрд╛рдо рдХрд╛ рдореВрд▓реНрдпрд╛рдВрдХрди x * (3.0 / 2) рд░реВрдк рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред

рдЬрдмрдХрд┐ рдЧрдгрд┐рддреАрдп рд░реВрдк рд╕реЗ рд╕рдордХрдХреНрд╖, рдпрд╣ рдкрд╛рдпрдерди 2 рдкрд░ рдмрд░рд╛рдмрд░ рдирд╣реАрдВ рд╣реИред рдпрджрд┐ x рдПрдХ int , рддреЛ x / 2 рдХреБрдЫ рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдкрд╣рд▓реЗ рдЫреЛрдЯрд╛ рд╣реЛ рдЬрд╛рдПрдЧрд╛, рдЬрдмрдХрд┐ (3.0 / 2) рд╣реЛрдЧрд╛ рд╣рдореЗрд╢рд╛ 1.5 рд░рд╣реЗрдВ рдФрд░ рдХрднреА рднреА рдЫреЛрдЯрд╛ рди рдХрд░реЗрдВред

рд╣рд╛рд▓рд╛рдВрдХрд┐ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ, рдпрд╣ рдмрдЧ рдирд╣реАрдВ рдмрджрд▓рддрд╛ рд╣реИред

рдореИрдВрдиреЗ рднреА рдРрд╕рд╛ рд╣реА рд╕реЛрдЪрд╛ рдерд╛, рдпрд╣реА рд╡рдЬрд╣ рд╣реИ рдХрд┐ рдореИрдВрдиреЗ рдЙрджрд╛рд╣рд░рдг рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд╛рдпрдерди 2.7.15 рдХреЗ рд╕рд╛рде-рд╕рд╛рде рдкрд╛рдпрдерди 3.7.1 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдФрд░ рдкреБрд╖реНрдЯрд┐ рдХреА рдХрд┐ рд╡реЗ рд╕рдорд╛рди рд╡реНрдпрд╡рд╣рд╛рд░ рджрд┐рдЦрд╛рддреЗ рд╣реИрдВред рдпрд╣ рд╕реБрдирдХрд░ рдЕрдЪреНрдЫрд╛ рд▓рдЧрд╛ рдХрд┐ рдореЗрд░рд╛ рдкрд╣рд▓рд╛ рдЗрд░рд╛рджрд╛ рдкреВрд░реА рддрд░рд╣ рдЧрд▓рдд рдирд╣реАрдВ рдерд╛ред

рд╢рд╛рдпрдж рдпрд╣ рдУрдПрд╕ рд╕реЗ рднреА рдЬреБрдбрд╝рд╛ рд╣реИ? рдореИрдВ рд╡рд┐рдВрдбреЛрдЬ 7 x64 рдкрд░ рдЙрджрд╛рд╣рд░рдг рдЪрд▓рд╛ рд░рд╣рд╛ рд╣реВрдВред

рдХреНрдпрд╛ рдЖрдк рдПрдХ рдЙрджрд╛рд╣рд░рдг рджреЗ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдХрд┐рди рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдкрд╛рдпрдерди 2 рджреВрд╕рд░реЗ рддрд░реАрдХреЗ рд╕реЗ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдХрд╛ рдореВрд▓реНрдпрд╛рдВрдХрди рдХрд░реЗрдЧрд╛?

>>> y = range(10)

>>> [x / 2 * 3.0 for x in y]
[0.0, 0.0, 3.0, 3.0, 6.0, 6.0, 9.0, 9.0, 12.0, 12.0]

>>> [x * (3.0 / 2) for x in y]
[0.0, 1.5, 3.0, 4.5, 6.0, 7.5, 9.0, 10.5, 12.0, 13.5]

(рдЖрдкрдХрд╛ рдЕрдкреЗрдХреНрд╖рд┐рдд рд░реВрдкрд╛рдВрддрд░рдг рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рд╕рд╣реА рдкрд░рд┐рдгрд╛рдо рд╣реИред)

рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдореИрдВ рдХреНрдпрд╛ рдЙрдореНрдореАрдж рдХрд░рддрд╛ред рд╣рд╛рд▓рд╛рдВрдХрд┐ рдореИрдВрдиреЗ рдПрдХреНрд╕ рдХреЗ рд▓рд┐рдП 1 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ рдФрд░ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк 1.5 рдорд┐рд▓рд╛ред

рдореИрдВ рдпрд╣ рднреА рдЙрд▓реНрд▓реЗрдЦ рдХрд░рдирд╛ рднреВрд▓ рдЧрдпрд╛ рдХрд┐ рдпрджрд┐ рдЖрдк рдХреЛрд╖реНрдардХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ рддреЛ рдХреЛрдб рдХрд╛ рдПрдХ рдЕрд▓рдЧ рдЖрдЙрдЯрдкреБрдЯ рд╣реЛрддрд╛ рд╣реИред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рдлреНрдпреВрдЪрд░рд╛рдЗрдЬ рд╕рд╣реА рд░реВрдкрд╛рдВрддрд░рдг рджреЗрдЧрд╛ред

1 / 2 * 3.0 - -> old_div(1, 2) * 3.0

рдореБрдЭреЗ рдЙрд╕реА рдмрдЧ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рдирд╛ рдкрдбрд╝рд╛ рдФрд░ рдореИрдВ рдЕрдкрдиреА рд╢рд╛рдЦрд╛ рдкрд░ рдЗрд╕реЗ рдареАрдХ рдХрд░рдиреЗ рдкрд░ рдХрд╛рдо рдХрд░ рд░рд╣рд╛
рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореЗрд░реЗ рдкрд░рд┐рд╡рд░реНрддрди рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдареАрдХ рдХрд░рддреЗ рд╣реИрдВ:

$ cat sample.py          
x =  10
(x / 2 * 3.0)

рдореВрд▓ рдЖрдЙрдЯрдкреБрдЯ

$ futurize sample.py 
RefactoringTool: Skipping optional fixer: idioms
RefactoringTool: Skipping optional fixer: ws_comma
RefactoringTool: Refactored sample.py
--- sample.py   (original)
+++ sample.py   (refactored)
@@ -1,2 +1,4 @@
+from __future__ import division
+from past.utils import old_div
 x =  10
-(x / 2 * 3.0)
+(old_div(x, 2 * 3.0))
RefactoringTool: Files that need to be modified:
RefactoringTool: sample.py

рдирдпрд╛ рдЖрдЙрдЯрдкреБрдЯ

$ futurize sample.py
RefactoringTool: Skipping optional fixer: idioms
RefactoringTool: Skipping optional fixer: ws_comma
RefactoringTool: Refactored sample.py
--- sample.py   (original)
+++ sample.py   (refactored)
@@ -1,2 +1,4 @@
+from __future__ import division
+from past.utils import old_div
 x =  10
-(x / 2 * 3.0)
+(old_div(x, 2) * 3.0)
RefactoringTool: Files that need to be modified:
RefactoringTool: sample.py

рдЬрдм рдореИрдВ рд╕рдордп рджреЗрдЦреВрдВрдЧрд╛ рддреЛ рдореИрдВ рдПрдХ рдкреБрд▓ рдЕрдиреБрд░реЛрдз рдмрдирд╛рдиреЗ рдЬрд╛ рд░рд╣рд╛ рд╣реВрдВ ..

рдпрд╣рд╛рдБ рдФрд░ рдЙрджрд╛рд╣рд░рдг рд╣реИрдВред

рдореИрдВ рдпрд╣ рднреА рдЙрд▓реНрд▓реЗрдЦ рдХрд░рдирд╛ рднреВрд▓ рдЧрдпрд╛ рдХрд┐ рдпрджрд┐ рдЖрдк рдХреЛрд╖реНрдардХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ рддреЛ рдХреЛрдб рдХрд╛ рдПрдХ рдЕрд▓рдЧ рдЖрдЙрдЯрдкреБрдЯ рд╣реЛрддрд╛ рд╣реИред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рдлреНрдпреВрдЪрд░рд╛рдЗрдЬ рд╕рд╣реА рд░реВрдкрд╛рдВрддрд░рдг рджреЗрдЧрд╛ред

1 / 2 * 3.0 - -> old_div(1, 2) * 3.0

рдЖрдкрдиреЗ рдЬреЛ рдХрд╣рд╛ рдЙрд╕рдХреЗ рд╡рд┐рдкрд░реАрдд, рдореИрдВ рджреЗрдЦ рд░рд╣рд╛ рд╣реВрдВ рдХрд┐ 1 / 2 * 3.0 рдХреЛ old_div(1, 2 * 3.0) рдЧрд▓рдд рддрд░реАрдХреЗ рд╕реЗ рдорд╛рд╕реНрдЯрд░ рдкрд░ рд╡рд░реНрддрдорд╛рди рдХреЛрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред

$ cat sample2.py
1 / 2 * 3.0
x =  10
x / 2
x / 2.0
x / 2 * 3
x / (2 * 3)
x * 2 / 3

рдореВрд▓ рдЖрдЙрдЯрдкреБрдЯ

$ futurize sample2.py
RefactoringTool: Skipping optional fixer: idioms
RefactoringTool: Skipping optional fixer: ws_comma
RefactoringTool: Refactored sample2.py
--- sample2.py  (original)
+++ sample2.py  (refactored)
@@ -1,7 +1,9 @@
-1 / 2 * 3.0
+from __future__ import division
+from past.utils import old_div
+old_div(1, 2 * 3.0)
 x =  10
-x / 2
+old_div(x, 2)
 x / 2.0
-x / 2 * 3
-x / (2 * 3)
-x * 2 / 3
+old_div(x, 2 * 3)
+old_div(x, (2 * 3))
+old_div(x * 2, 3)
RefactoringTool: Files that need to be modified:
RefactoringTool: sample2.py

рдирдпрд╛ рдЖрдЙрдЯрдкреБрдЯ

$ futurize sample2.py
RefactoringTool: Skipping optional fixer: idioms
RefactoringTool: Skipping optional fixer: ws_comma
RefactoringTool: Refactored sample2.py
--- sample2.py  (original)
+++ sample2.py  (refactored)
@@ -1,7 +1,9 @@
-1 / 2 * 3.0
+from __future__ import division
+from past.utils import old_div
+old_div(1, 2) * 3.0
 x =  10
-x / 2
+old_div(x, 2)
 x / 2.0
-x / 2 * 3
-x / (2 * 3)
-x * 2 / 3
+old_div(x, 2) * 3
+old_div(x, (2 * 3))
+old_div(x * 2, 3)
RefactoringTool: Files that need to be modified:
RefactoringTool: sample2.py

PR created (https://github.com/PythonCharmers/python-future/pull/441)

рдореИрдВрдиреЗ рдпрд╣ рднреА рджреЗрдЦрд╛ рд╣реИ рдХрд┐ old_div рддрдм рднреА рдбрд╛рд▓рд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрдм рдмрд╛рдПрдБ рдФрд░ рджрд╛рдПрдБ рджреЛрдиреЛрдВ рдСрдкрд░реЗрдВрдб рддреИрд░рддреЗ рд╣реИрдВ рдЬреИрд╕реЗ

1.0/1024.0

рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ

old_div(1.0,1024.0)

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рд░реВрдкрд╛рдВрддрд░рдг рдЕрдирд╛рд╡рд╢реНрдпрдХ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рд╡рд┐рднрд╛рдЬрди рдЬрд╣рд╛рдВ рджреЛрдиреЛрдВ рдСрдкрд░реЗрдВрдб рддреИрд░рддреЗ рд╣реИрдВ, рд╡рд╣реА рдкрд░рд┐рдгрд╛рдо рдЙрддреНрдкрдиреНрди рдХрд░рддреЗ рд╣реИрдВ, рджреЛрдиреЛрдВ рдкрд╛рдпрдерди 2 рдФрд░ рдкрд╛рдпрдерди 3 рдореЗрдВред

@mattgathu рдЖрдк рдлреНрдпреВрдЪрд░рд╛рдЗрдЬрд╝ рдФрд░ рдкрд╛рдпрдерди рдХреЗ рдХрд┐рд╕ рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ? Python 3.7.2 рдФрд░ рдлреНрдпреВрдЪрд░рд╛рдЗрдЬрд╝ 0.17.1 (PyPI рдореЗрдВ рдирд╡реАрдирддрдо) рдХреЗ рд╕рд╛рде, 1.0/1024.0 рдмрд░рдХрд░рд╛рд░ рд░рд╣рддрд╛ рд╣реИ рдЬрдм futurize d.

$ python --version
Python 3.7.2
$ futurize --version
0.17.1

$ cat test.py
1.0 / 1024.0
1   / 1024.0
1.0 / 1024

$ futurize test.py
RefactoringTool: Skipping optional fixer: idioms
RefactoringTool: Skipping optional fixer: ws_comma
RefactoringTool: No files need to be modified.

рдпрд╣рд╛рдБ рдореЗрд░реЗ рд╕рдВрд╕реНрдХрд░рдг рд╣реИрдВ:

$ python -V
Python 2.7.16
$ futurize --version
0.16.0

рдореИрдВрдиреЗ 0.17.0 рдореЗрдВ рдЕрдкрдЧреНрд░реЗрдб рдХрд┐рдпрд╛ рд╣реИ рдФрд░ рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рд╣реИред рдзрдиреНрдпрд╡рд╛рдж

рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ v0.17.0 рдореЗрдВ рдЕрдирд╛рд╡рд╢реНрдпрдХ рд░реВрдкрд╛рдВрддрд░рдгреЛрдВ рдХреЛ рдЫреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдиреНрд╣рд╛рдВрд╕рдореЗрдВрдЯ рд╢рд╛рдорд┐рд▓ рд╣реИред

https://github.com/PythonCharmers/python-future/releases/tag/v0.17.0

рдЬрдЯрд┐рд▓ рднрд╛рд╡реЛрдВ рдХреЗ рдмреЗрд╣рддрд░ рд░реВрдкрд╛рдВрддрд░рдг рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП fix_division_safe рдХреЛ рдареАрдХ рдХрд░реЗрдВ, рдФрд░ рд╕реНрдкрд╖реНрдЯ рдлреНрд▓реЛрдЯ рдбрд┐рд╡реАрдЬрди рдХреЛ рдЫреЛрдбрд╝ рджреЗрдВред

рдореБрдЭреЗ рдпрд╣ рд╕рдорд╕реНрдпрд╛ рднреА рд╣реИ, рдкрд╛рдпрдерди 2.7.16 рдкрд░ рдлреНрдпреВрдЪрд░рд╛рдЗрдЬрд╝ 0.17.1 рдЪрд▓ рд░рд╣рд╛ рд╣реИред рдпрд╣ рдЙрджрд╛рд╣рд░рдг рд╕рдорд╕реНрдпрд╛ рдХреЛ рджрд┐рдЦрд╛рддрд╛ рд╣реИ:

$ echo 'x = 100/10 * 10' | futurize --stage2 -

RefactoringTool: Refactored <stdin>
--- <stdin> (original)
+++ <stdin> (refactored)
@@ -1 +1,3 @@
-x = 100/10 * 10
+from __future__ import division
+from past.utils import old_div
+x = old_div(100,10 * 10)
RefactoringTool: Files that need to be modified:
RefactoringTool: <stdin>

рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ 100/10 * 10 (==100) old_div(100,10 * 10) (==1) рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣ рдореЗрд░реЗ рд▓рд┐рдП рдПрдХ рдмрдбрд╝реА рдмрдЧ рдХреА рддрд░рд╣ рд▓рдЧрддрд╛ рд╣реИред

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

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

wimglenn picture wimglenn  ┬╖  5рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

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

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

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

treyhunner picture treyhunner  ┬╖  5рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ