From 822f58ea5d503a27342768ef93575abbdd1f82d1 Mon Sep 17 00:00:00 2001 From: Dmitri Bogomolov <4glitch@gmail.com> Date: Thu, 27 May 2021 15:44:05 +0300 Subject: [PATCH 1/4] Rewritten weird imports in class_sqlThread and fixed import from tr --- src/class_sqlThread.py | 52 +++++++++++++++++++----------------------- 1 file changed, 23 insertions(+), 29 deletions(-) diff --git a/src/class_sqlThread.py b/src/class_sqlThread.py index d2a0d2ec..d22ffadb 100644 --- a/src/class_sqlThread.py +++ b/src/class_sqlThread.py @@ -9,28 +9,22 @@ import sys import threading import time -if sys.version_info[0] == 3: - from . import helper_sql - from . import helper_startup - from . import paths - from . import queues - from . import state - from . import tr - from .bmconfigparser import BMConfigParser - from .debug import logger - # pylint: disable=attribute-defined-outside-init,protected-access - from .addresses import encodeAddress -else: +try: import helper_sql import helper_startup import paths import queues import state - import tr + from addresses import encodeAddress from bmconfigparser import BMConfigParser from debug import logger - # pylint: disable=attribute-defined-outside-init,protected-access - from addresses import encodeAddress + from tr import _translate +except ImportError: + from . import helper_sql, helper_startup, paths, queues, state + from .addresses import encodeAddress + from .bmconfigparser import BMConfigParser + from .debug import logger + from .tr import _translate class sqlThread(threading.Thread): @@ -454,10 +448,10 @@ class sqlThread(threading.Thread): ' sqlThread will now exit.') queues.UISignalQueue.put(( 'alert', ( - tr._translate( + _translate( "MainWindow", "Disk full"), - tr._translate( + _translate( "MainWindow", 'Alert: Your disk or data storage volume is full. Bitmessage will now exit.'), True))) @@ -484,10 +478,10 @@ class sqlThread(threading.Thread): ' sqlThread will now exit.') queues.UISignalQueue.put(( 'alert', ( - tr._translate( + _translate( "MainWindow", "Disk full"), - tr._translate( + _translate( "MainWindow", 'Alert: Your disk or data storage volume is full. Bitmessage will now exit.'), True))) @@ -510,10 +504,10 @@ class sqlThread(threading.Thread): ' sqlThread will now exit.') queues.UISignalQueue.put(( 'alert', ( - tr._translate( + _translate( "MainWindow", "Disk full"), - tr._translate( + _translate( "MainWindow", 'Alert: Your disk or data storage volume is full. Bitmessage will now exit.'), True))) @@ -535,10 +529,10 @@ class sqlThread(threading.Thread): ' sqlThread will now exit.') queues.UISignalQueue.put(( 'alert', ( - tr._translate( + _translate( "MainWindow", "Disk full"), - tr._translate( + _translate( "MainWindow", 'Alert: Your disk or data storage volume is full. Bitmessage will now exit.'), True))) @@ -561,10 +555,10 @@ class sqlThread(threading.Thread): ' sqlThread will now exit.') queues.UISignalQueue.put(( 'alert', ( - tr._translate( + _translate( "MainWindow", "Disk full"), - tr._translate( + _translate( "MainWindow", 'Alert: Your disk or data storage volume is full. Bitmessage will now exit.'), True))) @@ -588,10 +582,10 @@ class sqlThread(threading.Thread): ' sqlThread will now exit.') queues.UISignalQueue.put(( 'alert', ( - tr._translate( + _translate( "MainWindow", "Disk full"), - tr._translate( + _translate( "MainWindow", 'Alert: Your disk or data storage volume is full. Bitmessage will now exit.'), True))) @@ -609,10 +603,10 @@ class sqlThread(threading.Thread): ' sqlThread will now exit.') queues.UISignalQueue.put(( 'alert', ( - tr._translate( + _translate( "MainWindow", "Disk full"), - tr._translate( + _translate( "MainWindow", 'Alert: Your disk or data storage volume is full. Bitmessage will now exit.'), True))) -- 2.45.1 From b75585f26cd4e0397543613f80223f8dd9f0415f Mon Sep 17 00:00:00 2001 From: Dmitri Bogomolov <4glitch@gmail.com> Date: Wed, 7 Jul 2021 21:49:56 +0300 Subject: [PATCH 2/4] Rewritten the weird imports in debug --- src/debug.py | 21 +++++---------------- 1 file changed, 5 insertions(+), 16 deletions(-) diff --git a/src/debug.py b/src/debug.py index 3acd8e2c..a70cb543 100644 --- a/src/debug.py +++ b/src/debug.py @@ -35,26 +35,15 @@ Logging is thread-safe so you don't have to worry about locks, just import and log. """ -# import ConfigParser -import sys -if sys.version_info[0] == 3: - # python 3 - import configparser as ConfigParser -else: - # python 2 - import ConfigParser - import logging import logging.config import os import sys -if sys.version_info[0] == 3: - from . import helper_startup - from . import state -else: - import helper_startup - import state +from six.moves import configparser + +import helper_startup +import state helper_startup.loadConfig() @@ -86,7 +75,7 @@ def configureLogging(): False, 'Loaded logger configuration from %s' % logging_config ) - except (OSError, ConfigParser.NoSectionError, KeyError): + except (OSError, configparser.NoSectionError, KeyError): if os.path.isfile(logging_config): fail_msg = \ 'Failed to load logger configuration from %s, using default' \ -- 2.45.1 From db21f3ea6b444f6d1ece77296d2bb5c52960443d Mon Sep 17 00:00:00 2001 From: Dmitri Bogomolov <4glitch@gmail.com> Date: Wed, 7 Jul 2021 21:54:16 +0300 Subject: [PATCH 3/4] Revisit helper_startup: rewrite weird imports, fix W504 and line length --- src/helper_startup.py | 33 +++++++++++++++------------------ 1 file changed, 15 insertions(+), 18 deletions(-) diff --git a/src/helper_startup.py b/src/helper_startup.py index 332fe058..09f0265e 100644 --- a/src/helper_startup.py +++ b/src/helper_startup.py @@ -10,19 +10,15 @@ import sys import time from distutils.version import StrictVersion -import sys -if sys.version_info[0] == 3: - from . import defaults - from . import helper_random - from . import paths - from . import state - from .bmconfigparser import BMConfigParser -else: +try: import defaults import helper_random import paths import state from bmconfigparser import BMConfigParser +except ImportError: + from . import defaults, helper_random, paths, state + from .bmconfigparser import BMConfigParser try: from plugins.plugin import get_plugin @@ -180,9 +176,9 @@ def updateConfig(): # acts as a salt config.set( 'bitmessagesettings', 'identiconsuffix', ''.join( - helper_random.randomchoice("123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz") - for x in range(12) - ) + helper_random.randomchoice( + "123456789ABCDEFGHJKLMNPQRSTUVWXYZ" + "abcdefghijkmnopqrstuvwxyz") for x in range(12)) ) # a twelve character pseudo-password to salt the identicons # Add settings to support no longer resending messages after @@ -249,14 +245,15 @@ def updateConfig(): 'bitmessagesettings', 'maxacceptablenoncetrialsperbyte') == 0: config.set( 'bitmessagesettings', 'maxacceptablenoncetrialsperbyte', - str(defaults.ridiculousDifficulty * - defaults.networkDefaultProofOfWorkNonceTrialsPerByte) + str(defaults.ridiculousDifficulty + * defaults.networkDefaultProofOfWorkNonceTrialsPerByte) ) - if config.safeGetInt('bitmessagesettings', 'maxacceptablepayloadlengthextrabytes') == 0: + if config.safeGetInt( + 'bitmessagesettings', 'maxacceptablepayloadlengthextrabytes') == 0: config.set( 'bitmessagesettings', 'maxacceptablepayloadlengthextrabytes', - str(defaults.ridiculousDifficulty * - defaults.networkDefaultPayloadLengthExtraBytes) + str(defaults.ridiculousDifficulty + * defaults.networkDefaultPayloadLengthExtraBytes) ) if not config.has_option('bitmessagesettings', 'onionhostname'): @@ -298,8 +295,8 @@ def adjustHalfOpenConnectionsLimit(): # connections at a time. VER_THIS = StrictVersion(platform.version()) is_limited = ( - StrictVersion("5.1.2600") <= VER_THIS and - StrictVersion("6.0.6000") >= VER_THIS + StrictVersion("5.1.2600") <= VER_THIS + and StrictVersion("6.0.6000") >= VER_THIS ) except ValueError: pass -- 2.45.1 From f9c49fbeb375f8ae69eb2bfc64fb76b7923b813c Mon Sep 17 00:00:00 2001 From: Dmitri Bogomolov <4glitch@gmail.com> Date: Wed, 7 Jul 2021 22:08:45 +0300 Subject: [PATCH 4/4] Import queue from six.moves in the top level module --- src/helper_sql.py | 14 ++++---------- src/multiqueue.py | 21 +++++++++------------ src/network/connectionchooser.py | 4 ++-- src/queues.py | 28 +++++++++++++--------------- src/shutdown.py | 12 +++++++----- 5 files changed, 35 insertions(+), 44 deletions(-) diff --git a/src/helper_sql.py b/src/helper_sql.py index 5bd2f0f7..cba98884 100644 --- a/src/helper_sql.py +++ b/src/helper_sql.py @@ -16,20 +16,14 @@ SQLite objects can only be used from one thread. or isn't thread-safe. """ - -# import Queue -import sys -if sys.version_info[0] == 3: - import queue as Queue #python3 -else: - import Queue #python2 - import threading +from six.moves import queue -sqlSubmitQueue = Queue.Queue() + +sqlSubmitQueue = queue.Queue() """the queue for SQL""" -sqlReturnQueue = Queue.Queue() +sqlReturnQueue = queue.Queue() """the queue for results""" sql_lock = threading.Lock() """ lock to prevent queueing a new request until the previous response diff --git a/src/multiqueue.py b/src/multiqueue.py index 886d693d..88b6a4dd 100644 --- a/src/multiqueue.py +++ b/src/multiqueue.py @@ -3,21 +3,17 @@ A queue with multiple internal subqueues. Elements are added into a random subqueue, and retrieval rotates """ -import sys -if sys.version_info[0] == 3: - import queue as Queue -else: - import Queue - from collections import deque -if sys.version_info[0] == 3: - from . import helper_random -else: +from six.moves import queue + +try: import helper_random +except ImportError: + from . import helper_random -class MultiQueue(Queue.Queue): +class MultiQueue(queue.Queue): """A base queue class""" # pylint: disable=redefined-builtin,attribute-defined-outside-init defaultQueueCount = 10 @@ -27,7 +23,7 @@ class MultiQueue(Queue.Queue): self.queueCount = MultiQueue.defaultQueueCount else: self.queueCount = count - Queue.Queue.__init__(self, maxsize) + queue.Queue.__init__(self, maxsize) # Initialize the queue representation def _init(self, maxsize): @@ -42,7 +38,8 @@ class MultiQueue(Queue.Queue): # Put a new item in the queue def _put(self, item): # self.queue.append(item) - self.queues[helper_random.randomrandrange(self.queueCount)].append((item)) + self.queues[helper_random.randomrandrange(self.queueCount)].append( + (item)) # Get an item from the queue def _get(self): diff --git a/src/network/connectionchooser.py b/src/network/connectionchooser.py index badd98b7..c31bbb6a 100644 --- a/src/network/connectionchooser.py +++ b/src/network/connectionchooser.py @@ -9,7 +9,7 @@ import knownnodes import protocol import state from bmconfigparser import BMConfigParser -from queues import Queue, portCheckerQueue +from queues import queue, portCheckerQueue logger = logging.getLogger('default') @@ -37,7 +37,7 @@ def chooseConnection(stream): retval = portCheckerQueue.get(False) portCheckerQueue.task_done() return retval - except Queue.Empty: + except queue.Empty: pass # with a probability of 0.5, connect to a discovered peer if random.choice((False, True)) and not haveOnion: diff --git a/src/queues.py b/src/queues.py index 0c03b251..4a9b98d2 100644 --- a/src/queues.py +++ b/src/queues.py @@ -2,10 +2,8 @@ import threading import time -try: - import queue as Queue -except ImportError: - import Queue + +from six.moves import queue try: from multiqueue import MultiQueue @@ -13,13 +11,13 @@ except ImportError: from .multiqueue import MultiQueue -class ObjectProcessorQueue(Queue.Queue): +class ObjectProcessorQueue(queue.Queue): """Special queue class using lock for `.threads.objectProcessor`""" maxSize = 32000000 def __init__(self): - Queue.Queue.__init__(self) + queue.Queue.__init__(self) self.sizeLock = threading.Lock() #: in Bytes. We maintain this to prevent nodes from flooding us #: with objects which take up too much memory. If this gets @@ -31,27 +29,27 @@ class ObjectProcessorQueue(Queue.Queue): time.sleep(1) with self.sizeLock: self.curSize += len(item[1]) - Queue.Queue.put(self, item, block, timeout) + queue.Queue.put(self, item, block, timeout) def get(self, block=True, timeout=None): - item = Queue.Queue.get(self, block, timeout) + item = queue.Queue.get(self, block, timeout) with self.sizeLock: self.curSize -= len(item[1]) return item -workerQueue = Queue.Queue() -UISignalQueue = Queue.Queue() -addressGeneratorQueue = Queue.Queue() +workerQueue = queue.Queue() +UISignalQueue = queue.Queue() +addressGeneratorQueue = queue.Queue() #: `.network.ReceiveQueueThread` instances dump objects they hear #: on the network into this queue to be processed. objectProcessorQueue = ObjectProcessorQueue() invQueue = MultiQueue() addrQueue = MultiQueue() -portCheckerQueue = Queue.Queue() -receiveDataQueue = Queue.Queue() +portCheckerQueue = queue.Queue() +receiveDataQueue = queue.Queue() #: The address generator thread uses this queue to get information back #: to the API thread. -apiAddressGeneratorReturnQueue = Queue.Queue() +apiAddressGeneratorReturnQueue = queue.Queue() #: for exceptions -excQueue = Queue.Queue() +excQueue = queue.Queue() diff --git a/src/shutdown.py b/src/shutdown.py index 74332a81..3e2b8ca8 100644 --- a/src/shutdown.py +++ b/src/shutdown.py @@ -1,9 +1,11 @@ """shutdown function""" + import os -import Queue import threading import time +from six.moves import queue + import state from debug import logger from helper_sql import sqlQuery, sqlStoredProcedure @@ -69,14 +71,14 @@ def doCleanShutdown(): sqlStoredProcedure('exit') # flush queues - for queue in ( + for q in ( workerQueue, UISignalQueue, addressGeneratorQueue, objectProcessorQueue): while True: try: - queue.get(False) - queue.task_done() - except Queue.Empty: + q.get(False) + q.task_done() + except queue.Empty: break if state.thisapp.daemon or not state.enableGUI: -- 2.45.1