[Python-checkins] Remove unnecessary test for `xc == 1` in _pydecimal (GH-27102)

ambv webhook-mailer at python.org
Thu Jul 15 06:48:59 EDT 2021


https://github.com/python/cpython/commit/3527569f1cd0df697242b68a8a837f08904872fe
commit: 3527569f1cd0df697242b68a8a837f08904872fe
branch: main
author: Elisha Hollander <just4now666666 at gmail.com>
committer: ambv <lukasz at langa.pl>
date: 2021-07-15T12:48:46+02:00
summary:

Remove unnecessary test for `xc == 1` in _pydecimal (GH-27102)

- if `xc == 1` then the function returns on line 2140;
- other assignments to `xc` are inside the `y.sign == 1` condition block which always returns early

files:
M Lib/_pydecimal.py

diff --git a/Lib/_pydecimal.py b/Lib/_pydecimal.py
index 3d6cece9676c9..f6d9ddf42e473 100644
--- a/Lib/_pydecimal.py
+++ b/Lib/_pydecimal.py
@@ -2230,7 +2230,7 @@ def _power_exact(self, other, p):
             if xe != 0 and len(str(abs(yc*xe))) <= -ye:
                 return None
             xc_bits = _nbits(xc)
-            if xc != 1 and len(str(abs(yc)*xc_bits)) <= -ye:
+            if len(str(abs(yc)*xc_bits)) <= -ye:
                 return None
             m, n = yc, 10**(-ye)
             while m % 2 == n % 2 == 0:
@@ -2243,7 +2243,7 @@ def _power_exact(self, other, p):
         # compute nth root of xc*10**xe
         if n > 1:
             # if 1 < xc < 2**n then xc isn't an nth power
-            if xc != 1 and xc_bits <= n:
+            if xc_bits <= n:
                 return None
 
             xe, rem = divmod(xe, n)



More information about the Python-checkins mailing list