[tor-commits] [stem/master] Fix static checks

atagar at torproject.org atagar at torproject.org
Thu Mar 26 23:20:08 UTC 2020


commit d4998ded0018302c6c36b186fe4de4f19270e8d8
Author: Damian Johnson <atagar at torproject.org>
Date:   Thu Mar 26 16:18:17 2020 -0700

    Fix static checks
    
    I didn't install pycodestyle and pyflakes when upgrading to python 3.7 so quite
    a few regressions slipped in.
---
 stem/exit_policy.py                                |  2 --
 stem/response/events.py                            |  1 -
 stem/util/ed25519.py                               | 25 +++-------------------
 stem/util/enum.py                                  |  2 --
 stem/util/str_tools.py                             | 22 +++++++------------
 test/integ/control/controller.py                   |  1 -
 test/settings.cfg                                  | 11 +++++++++-
 test/unit/client/size.py                           |  1 -
 test/unit/descriptor/extrainfo_descriptor.py       |  1 -
 test/unit/descriptor/hidden_service_v3.py          |  2 --
 test/unit/descriptor/microdescriptor.py            |  1 -
 .../networkstatus/directory_authority.py           |  2 --
 test/unit/descriptor/networkstatus/document_v2.py  |  2 --
 .../descriptor/networkstatus/key_certificate.py    |  1 -
 test/unit/descriptor/remote.py                     |  1 -
 test/unit/descriptor/router_status_entry.py        |  1 -
 test/unit/doctest.py                               |  1 -
 test/unit/exit_policy/policy.py                    |  2 --
 test/unit/tutorial_examples.py                     |  3 ---
 19 files changed, 21 insertions(+), 61 deletions(-)

diff --git a/stem/exit_policy.py b/stem/exit_policy.py
index f67e9f82..ddcd7dfd 100644
--- a/stem/exit_policy.py
+++ b/stem/exit_policy.py
@@ -64,8 +64,6 @@ exiting to a destination is permissible or not. For instance...
 """
 
 import functools
-import re
-import socket
 import zlib
 
 import stem.util
diff --git a/stem/response/events.py b/stem/response/events.py
index 542c0f22..fdd17a25 100644
--- a/stem/response/events.py
+++ b/stem/response/events.py
@@ -766,7 +766,6 @@ class NewConsensusEvent(Event):
     :returns: **list** of :class:`~stem.descriptor.router_status_entry.RouterStatusEntryV3`
     """
 
-
     if self._parsed is None:
       self._parsed = list(stem.descriptor.router_status_entry._parse_file(
         io.BytesIO(str_tools._to_bytes(self.consensus_content)),
diff --git a/stem/util/ed25519.py b/stem/util/ed25519.py
index 67b2db3c..7c0161dc 100644
--- a/stem/util/ed25519.py
+++ b/stem/util/ed25519.py
@@ -41,33 +41,14 @@ arithmetic, so we cannot handle secrets without risking their disclosure.
 
 import hashlib
 import operator
-import sys
 
 
 __version__ = "1.0.dev0"
 
-
-# Useful for very coarse version differentiation.
-PY3 = sys.version_info[0] == 3
-
-if PY3:
-    indexbytes = operator.getitem
-    intlist2bytes = bytes
-    int2byte = operator.methodcaller("to_bytes", 1, "big")
-else:
-    int2byte = chr
-    range = xrange
-
-    def indexbytes(buf, i):
-        return ord(buf[i])
-
-    def intlist2bytes(l):
-        return b"".join(chr(c) for c in l)
-
-
 b = 256
 q = 2 ** 255 - 19
 l = 2 ** 252 + 27742317777372353535851937790883648493
+int2byte = operator.methodcaller("to_bytes", 1, "big")
 
 
 def H(m):
@@ -223,7 +204,7 @@ def encodepoint(P):
 
 
 def bit(h, i):
-    return (indexbytes(h, i // 8) >> (i % 8)) & 1
+    return (operator.getitem(h, i // 8) >> (i % 8)) & 1
 
 
 def publickey_unsafe(sk):
@@ -252,7 +233,7 @@ def signature_unsafe(m, sk, pk):
     h = H(sk)
     a = 2 ** (b - 2) + sum(2 ** i * bit(h, i) for i in range(3, b - 2))
     r = Hint(
-        intlist2bytes([indexbytes(h, j) for j in range(b // 8, b // 4)]) + m
+        bytes([operator.getitem(h, j) for j in range(b // 8, b // 4)]) + m
     )
     R = scalarmult_B(r)
     S = (r + Hint(encodepoint(R) + pk + m) * a) % l
diff --git a/stem/util/enum.py b/stem/util/enum.py
index abaf2490..56bf119d 100644
--- a/stem/util/enum.py
+++ b/stem/util/enum.py
@@ -40,8 +40,6 @@ constructed as simple type listings...
     +- __iter__ - iterator over our enum keys
 """
 
-import stem.util
-
 
 def UppercaseEnum(*args):
   """
diff --git a/stem/util/str_tools.py b/stem/util/str_tools.py
index 8ce22dc9..c1285626 100644
--- a/stem/util/str_tools.py
+++ b/stem/util/str_tools.py
@@ -56,18 +56,6 @@ TIME_UNITS = (
 
 _timestamp_re = re.compile(r'(\d{4})-(\d{2})-(\d{2}) (\d{2}):(\d{2}):(\d{2})')
 
-def _to_bytes_impl(msg):
-  if isinstance(msg, str):
-    return codecs.latin_1_encode(msg, 'replace')[0]
-  else:
-    return msg
-
-def _to_unicode_impl(msg):
-  if msg is not None and not isinstance(msg, str):
-    return msg.decode('utf-8', 'replace')
-  else:
-    return msg
-
 
 def _to_bytes(msg):
   """
@@ -82,7 +70,10 @@ def _to_bytes(msg):
   :returns: ASCII bytes for string
   """
 
-  return _to_bytes_impl(msg)
+  if isinstance(msg, str):
+    return codecs.latin_1_encode(msg, 'replace')[0]
+  else:
+    return msg
 
 
 def _to_unicode(msg):
@@ -96,7 +87,10 @@ def _to_unicode(msg):
   :returns: unicode conversion
   """
 
-  return _to_unicode_impl(msg)
+  if msg is not None and not isinstance(msg, str):
+    return msg.decode('utf-8', 'replace')
+  else:
+    return msg
 
 
 def _decode_b64(msg):
diff --git a/test/integ/control/controller.py b/test/integ/control/controller.py
index 5e92bfd7..8b8b3205 100644
--- a/test/integ/control/controller.py
+++ b/test/integ/control/controller.py
@@ -26,7 +26,6 @@ import test.runner
 from stem import Flag, Signal
 from stem.control import EventType, Listener, State
 from stem.exit_policy import ExitPolicy
-from stem.version import Requirement
 
 # Router status entry for a relay with a nickname other than 'Unnamed'. This is
 # used for a few tests that need to look up a relay.
diff --git a/test/settings.cfg b/test/settings.cfg
index d796993a..38a37ef9 100644
--- a/test/settings.cfg
+++ b/test/settings.cfg
@@ -205,10 +205,19 @@ pyflakes.ignore stem/util/__init__.py => undefined name 'unicode'
 pyflakes.ignore stem/util/conf.py => undefined name 'unicode'
 pyflakes.ignore stem/util/test_tools.py => 'pyflakes' imported but unused
 pyflakes.ignore stem/util/test_tools.py => 'pycodestyle' imported but unused
+pyflakes.ignore test/__init__.py => undefined name 'test'
+pyflakes.ignore test/require.py => 'cryptography.utils.int_from_bytes' imported but unused
+pyflakes.ignore test/require.py => 'cryptography.utils.int_to_bytes' imported but unused
+pyflakes.ignore test/require.py => 'cryptography.hazmat.backends.default_backend' imported but unused
+pyflakes.ignore test/require.py => 'cryptography.hazmat.primitives.ciphers.algorithms' imported but unused
+pyflakes.ignore test/require.py => 'cryptography.hazmat.primitives.ciphers.Cipher' imported but unused
+pyflakes.ignore test/require.py => 'cryptography.hazmat.primitives.ciphers.modes' imported but unused
+pyflakes.ignore test/require.py => 'cryptography.hazmat.primitives.serialization.load_der_public_key' imported but unused
+pyflakes.ignore test/require.py => 'cryptography.hazmat.primitives.asymmetric.ed25519.Ed25519PublicKey' imported but unused
 pyflakes.ignore test/unit/response/events.py => 'from stem import *' used; unable to detect undefined names
 pyflakes.ignore test/unit/response/events.py => *may be undefined, or defined from star imports: stem
 pyflakes.ignore stem/util/str_tools.py => undefined name 'unicode'
-pyflakes.ignore test/__init__.py => undefined name 'test'
+pyflakes.ignore test/integ/interpreter.py => 'readline' imported but unused
 
 # Test modules we want to run. Modules are roughly ordered by the dependencies
 # so the lowest level tests come first. This is because a problem in say,
diff --git a/test/unit/client/size.py b/test/unit/client/size.py
index d3bb4a4a..ae171501 100644
--- a/test/unit/client/size.py
+++ b/test/unit/client/size.py
@@ -2,7 +2,6 @@
 Unit tests for stem.client.Size.
 """
 
-import re
 import unittest
 
 from stem.client.datatype import Size
diff --git a/test/unit/descriptor/extrainfo_descriptor.py b/test/unit/descriptor/extrainfo_descriptor.py
index 2dae4de7..793a8129 100644
--- a/test/unit/descriptor/extrainfo_descriptor.py
+++ b/test/unit/descriptor/extrainfo_descriptor.py
@@ -7,7 +7,6 @@ import functools
 import unittest
 
 import stem.descriptor
-import test.require
 
 from stem.descriptor.extrainfo_descriptor import (
   RelayExtraInfoDescriptor,
diff --git a/test/unit/descriptor/hidden_service_v3.py b/test/unit/descriptor/hidden_service_v3.py
index c24eb1ad..33c4da21 100644
--- a/test/unit/descriptor/hidden_service_v3.py
+++ b/test/unit/descriptor/hidden_service_v3.py
@@ -13,8 +13,6 @@ import stem.descriptor.hidden_service
 
 import test.require
 
-from unittest.mock import patch, Mock
-
 from stem.descriptor.hidden_service import (
   IntroductionPointV3,
   HiddenServiceDescriptorV3,
diff --git a/test/unit/descriptor/microdescriptor.py b/test/unit/descriptor/microdescriptor.py
index b0b8ebaf..e70b7307 100644
--- a/test/unit/descriptor/microdescriptor.py
+++ b/test/unit/descriptor/microdescriptor.py
@@ -6,7 +6,6 @@ import unittest
 
 import stem.descriptor
 import stem.exit_policy
-import test.require
 
 from stem.descriptor.microdescriptor import Microdescriptor
 from test.unit.descriptor import get_resource
diff --git a/test/unit/descriptor/networkstatus/directory_authority.py b/test/unit/descriptor/networkstatus/directory_authority.py
index 6153aa64..d4bb9905 100644
--- a/test/unit/descriptor/networkstatus/directory_authority.py
+++ b/test/unit/descriptor/networkstatus/directory_authority.py
@@ -4,8 +4,6 @@ Unit tests for the DirectoryAuthority of stem.descriptor.networkstatus.
 
 import unittest
 
-import test.require
-
 from stem.descriptor.networkstatus import (
   DirectoryAuthority,
   KeyCertificate,
diff --git a/test/unit/descriptor/networkstatus/document_v2.py b/test/unit/descriptor/networkstatus/document_v2.py
index 7fb96328..6ab0606b 100644
--- a/test/unit/descriptor/networkstatus/document_v2.py
+++ b/test/unit/descriptor/networkstatus/document_v2.py
@@ -5,8 +5,6 @@ Unit tests for the NetworkStatusDocumentV2 of stem.descriptor.networkstatus.
 import datetime
 import unittest
 
-import test.require
-
 from stem.descriptor.networkstatus import NetworkStatusDocumentV2
 from test.unit.descriptor import get_resource
 
diff --git a/test/unit/descriptor/networkstatus/key_certificate.py b/test/unit/descriptor/networkstatus/key_certificate.py
index ee5cd92c..21453a36 100644
--- a/test/unit/descriptor/networkstatus/key_certificate.py
+++ b/test/unit/descriptor/networkstatus/key_certificate.py
@@ -6,7 +6,6 @@ import datetime
 import unittest
 
 import stem.descriptor
-import test.require
 
 from stem.descriptor.networkstatus import KeyCertificate
 from test.unit.descriptor import get_resource
diff --git a/test/unit/descriptor/remote.py b/test/unit/descriptor/remote.py
index d3f43995..e57da92b 100644
--- a/test/unit/descriptor/remote.py
+++ b/test/unit/descriptor/remote.py
@@ -3,7 +3,6 @@ Unit tests for stem.descriptor.remote.
 """
 
 import http.client
-import io
 import socket
 import time
 import unittest
diff --git a/test/unit/descriptor/router_status_entry.py b/test/unit/descriptor/router_status_entry.py
index 4b2837b8..1fafd2c8 100644
--- a/test/unit/descriptor/router_status_entry.py
+++ b/test/unit/descriptor/router_status_entry.py
@@ -8,7 +8,6 @@ import functools
 import unittest
 
 import stem.descriptor
-import test.require
 
 from stem import Flag
 from stem.exit_policy import MicroExitPolicy
diff --git a/test/unit/doctest.py b/test/unit/doctest.py
index 267d2ca5..40791cf3 100644
--- a/test/unit/doctest.py
+++ b/test/unit/doctest.py
@@ -119,7 +119,6 @@ class TestDocumentation(unittest.TestCase):
           test_run = doctest.testfile(path, **args)
       elif path.endswith('/stem/manual.py'):
         try:
-          import sqlite3
           test_run = doctest.testfile(path, **args)
         except ImportError:
           pass  # manual module requires sqlite3
diff --git a/test/unit/exit_policy/policy.py b/test/unit/exit_policy/policy.py
index f1e74aeb..fede80ac 100644
--- a/test/unit/exit_policy/policy.py
+++ b/test/unit/exit_policy/policy.py
@@ -5,8 +5,6 @@ Unit tests for the stem.exit_policy.ExitPolicy class.
 import pickle
 import unittest
 
-from unittest.mock import Mock, patch
-
 from stem.exit_policy import (
   DEFAULT_POLICY_RULES,
   ExitPolicy,
diff --git a/test/unit/tutorial_examples.py b/test/unit/tutorial_examples.py
index fccdba57..5ccf1ce2 100644
--- a/test/unit/tutorial_examples.py
+++ b/test/unit/tutorial_examples.py
@@ -7,9 +7,6 @@ import itertools
 import os
 import unittest
 
-import stem.response
-import stem.descriptor.remote
-
 from unittest.mock import Mock, patch
 
 from stem.control import Controller



More information about the tor-commits mailing list