diff --git a/src/bitmessagecurses/__init__.py b/src/bitmessagecurses/__init__.py index dc6e8a0c..19788c2c 100644 --- a/src/bitmessagecurses/__init__.py +++ b/src/bitmessagecurses/__init__.py @@ -1,3 +1,4 @@ +from __future__ import print_function # Copyright (c) 2014 Luke Montalvo # This file adds a alternative commandline interface, feel free to critique and fork # diff --git a/src/bitmessagekivy/mpybit.py b/src/bitmessagekivy/mpybit.py index 3f9b198b..fe894c68 100644 --- a/src/bitmessagekivy/mpybit.py +++ b/src/bitmessagekivy/mpybit.py @@ -1,4 +1,6 @@ -import kivy_helper_search +from __future__ import print_function +from __future__ import absolute_import +from . import kivy_helper_search import os import queues import shutdown @@ -308,7 +310,7 @@ class Create(Screen): message = self.ids.message.text subject = self.ids.subject.text encoding = 3 - print("message: ", self.ids.message.text) + print(("message: ", self.ids.message.text)) sendMessageToPeople = True if sendMessageToPeople: if toAddress != '': diff --git a/src/bitmessageqt/__init__.py b/src/bitmessageqt/__init__.py index 507e6ca0..6bb695f3 100644 --- a/src/bitmessageqt/__init__.py +++ b/src/bitmessageqt/__init__.py @@ -1,6 +1,7 @@ """ PyQt based UI for bitmessage, the main module """ +from __future__ import absolute_import import hashlib import locale @@ -21,41 +22,41 @@ from debug import logger from tr import _translate from addresses import decodeAddress, addBMIfNotPresent import shared -from bitmessageui import Ui_MainWindow +from .bitmessageui import Ui_MainWindow from bmconfigparser import BMConfigParser import defaults import namecoin -from messageview import MessageView -from migrationwizard import Ui_MigrationWizard -from foldertree import ( +from .messageview import MessageView +from .migrationwizard import Ui_MigrationWizard +from .foldertree import ( AccountMixin, Ui_FolderWidget, Ui_AddressWidget, Ui_SubscriptionWidget, MessageList_AddressWidget, MessageList_SubjectWidget, Ui_AddressBookWidgetItemLabel, Ui_AddressBookWidgetItemAddress) -from settings import Ui_settingsDialog -import settingsmixin -import support +from .settings import Ui_settingsDialog +from . import settingsmixin +from . import support import debug from helper_ackPayload import genAckPayload from helper_sql import sqlQuery, sqlExecute, sqlExecuteChunked, sqlStoredProcedure import helper_search import l10n import openclpow -from utils import str_broadcast_subscribers, avatarize -from account import ( +from .utils import str_broadcast_subscribers, avatarize +from .account import ( getSortedAccounts, getSortedSubscriptions, accountClass, BMAccount, GatewayAccount, MailchuckAccount, AccountColor) -import dialogs +from . import dialogs from network.stats import pendingDownload, pendingUpload -from uisignaler import UISignaler +from .uisignaler import UISignaler import knownnodes import paths from proofofwork import getPowType import queues import shutdown import state -from statusbar import BMStatusBar +from .statusbar import BMStatusBar from network.asyncore_pollchoose import set_rates -import sound +from . import sound try: diff --git a/src/bitmessageqt/address_dialogs.py b/src/bitmessageqt/address_dialogs.py index 60c10369..8fce1f76 100644 --- a/src/bitmessageqt/address_dialogs.py +++ b/src/bitmessageqt/address_dialogs.py @@ -3,6 +3,7 @@ src/bitmessageqt/address_dialogs.py =================================== """ +from __future__ import absolute_import # pylint: disable=attribute-defined-outside-init import hashlib @@ -10,11 +11,11 @@ import hashlib from PyQt4 import QtCore, QtGui import queues -import widgets -from account import AccountMixin, GatewayAccount, MailchuckAccount, accountClass, getSortedAccounts +from . import widgets +from .account import AccountMixin, GatewayAccount, MailchuckAccount, accountClass, getSortedAccounts from addresses import addBMIfNotPresent, decodeAddress, encodeVarint from inventory import Inventory -from retranslateui import RetranslateMixin +from .retranslateui import RetranslateMixin from tr import _translate diff --git a/src/bitmessageqt/addressvalidator.py b/src/bitmessageqt/addressvalidator.py index f9de70a2..f035001e 100644 --- a/src/bitmessageqt/addressvalidator.py +++ b/src/bitmessageqt/addressvalidator.py @@ -1,11 +1,12 @@ +from __future__ import absolute_import from PyQt4 import QtGui from Queue import Empty from addresses import decodeAddress, addBMIfNotPresent -from account import getSortedAccounts +from .account import getSortedAccounts from queues import apiAddressGeneratorReturnQueue, addressGeneratorQueue from tr import _translate -from utils import str_chan +from .utils import str_chan class AddressPassPhraseValidatorMixin(): def setParams(self, passPhraseObject=None, addressObject=None, feedBackObject=None, buttonBox=None, addressMandatory=True): diff --git a/src/bitmessageqt/bitmessageui.py b/src/bitmessageqt/bitmessageui.py index 30d054d0..60c6e52e 100644 --- a/src/bitmessageqt/bitmessageui.py +++ b/src/bitmessageqt/bitmessageui.py @@ -7,14 +7,15 @@ # # WARNING! All changes made in this file will be lost! +from __future__ import absolute_import from PyQt4 import QtCore, QtGui from bmconfigparser import BMConfigParser -from foldertree import AddressBookCompleter -from messageview import MessageView -from messagecompose import MessageCompose -import settingsmixin -from networkstatus import NetworkStatus -from blacklist import Blacklist +from .foldertree import AddressBookCompleter +from .messageview import MessageView +from .messagecompose import MessageCompose +from . import settingsmixin +from .networkstatus import NetworkStatus +from .blacklist import Blacklist try: _fromUtf8 = QtCore.QString.fromUtf8 @@ -771,7 +772,7 @@ class Ui_MainWindow(object): self.actionDeleteAllTrashedMessages.setText(_translate("MainWindow", "Delete all trashed messages", None)) self.actionJoinChan.setText(_translate("MainWindow", "Join / Create chan", None)) -import bitmessage_icons_rc +from . import bitmessage_icons_rc if __name__ == "__main__": import sys diff --git a/src/bitmessageqt/blacklist.py b/src/bitmessageqt/blacklist.py index 3897bddc..e19e658e 100644 --- a/src/bitmessageqt/blacklist.py +++ b/src/bitmessageqt/blacklist.py @@ -1,15 +1,16 @@ +from __future__ import absolute_import from PyQt4 import QtCore, QtGui -import widgets +from . import widgets from addresses import addBMIfNotPresent from bmconfigparser import BMConfigParser -from dialogs import AddAddressDialog +from .dialogs import AddAddressDialog from helper_sql import sqlExecute, sqlQuery from queues import UISignalQueue -from retranslateui import RetranslateMixin +from .retranslateui import RetranslateMixin from tr import _translate -from uisignaler import UISignaler -from utils import avatarize +from .uisignaler import UISignaler +from .utils import avatarize class Blacklist(QtGui.QWidget, RetranslateMixin): diff --git a/src/bitmessageqt/dialogs.py b/src/bitmessageqt/dialogs.py index 1acdbc3f..8cb04f5c 100644 --- a/src/bitmessageqt/dialogs.py +++ b/src/bitmessageqt/dialogs.py @@ -2,19 +2,20 @@ src/bitmessageqt/dialogs.py =========================== """ +from __future__ import absolute_import from PyQt4 import QtGui from version import softwareVersion import paths -import widgets -from address_dialogs import ( +from . import widgets +from .address_dialogs import ( AddAddressDialog, EmailGatewayDialog, NewAddressDialog, NewSubscriptionDialog, RegenerateAddressesDialog, SpecialAddressBehaviorDialog ) -from newchandialog import NewChanDialog -from retranslateui import RetranslateMixin +from .newchandialog import NewChanDialog +from .retranslateui import RetranslateMixin from tr import _translate __all__ = [ diff --git a/src/bitmessageqt/foldertree.py b/src/bitmessageqt/foldertree.py index 2e7e735f..df482ba4 100644 --- a/src/bitmessageqt/foldertree.py +++ b/src/bitmessageqt/foldertree.py @@ -2,6 +2,7 @@ src/bitmessageqt/foldertree.py ============================== """ +from __future__ import absolute_import # pylint: disable=too-many-arguments,bad-super-call,attribute-defined-outside-init from cgi import escape @@ -10,9 +11,9 @@ from PyQt4 import QtCore, QtGui from bmconfigparser import BMConfigParser from helper_sql import sqlExecute, sqlQuery -from settingsmixin import SettingsMixin +from .settingsmixin import SettingsMixin from tr import _translate -from utils import avatarize +from .utils import avatarize # for pylupdate _translate("MainWindow", "inbox") diff --git a/src/bitmessageqt/messageview.py b/src/bitmessageqt/messageview.py index 45f3a79a..87c425f1 100644 --- a/src/bitmessageqt/messageview.py +++ b/src/bitmessageqt/messageview.py @@ -3,10 +3,11 @@ src/bitmessageqt/messageview.py =============================== """ +from __future__ import absolute_import from PyQt4 import QtCore, QtGui -from safehtmlparser import SafeHTMLParser +from .safehtmlparser import SafeHTMLParser class MessageView(QtGui.QTextBrowser): diff --git a/src/bitmessageqt/networkstatus.py b/src/bitmessageqt/networkstatus.py index 5f014563..2f30ec52 100644 --- a/src/bitmessageqt/networkstatus.py +++ b/src/bitmessageqt/networkstatus.py @@ -3,6 +3,7 @@ src/bitmessageqt/networkstatus.py ================================= """ +from __future__ import absolute_import import time @@ -12,12 +13,12 @@ import knownnodes import l10n import network.stats import shared -import widgets +from . import widgets from inventory import Inventory from network.connectionpool import BMConnectionPool -from retranslateui import RetranslateMixin +from .retranslateui import RetranslateMixin from tr import _translate -from uisignaler import UISignaler +from .uisignaler import UISignaler class NetworkStatus(QtGui.QWidget, RetranslateMixin): diff --git a/src/bitmessageqt/newaddresswizard.py b/src/bitmessageqt/newaddresswizard.py index 2311239c..b428c0f5 100644 --- a/src/bitmessageqt/newaddresswizard.py +++ b/src/bitmessageqt/newaddresswizard.py @@ -1,4 +1,5 @@ #!/usr/bin/env python2.7 +from __future__ import print_function from PyQt4 import QtCore, QtGui class NewAddressWizardIntroPage(QtGui.QWizardPage): @@ -234,7 +235,7 @@ class NewAddressWizardWaitPage(QtGui.QWizardPage): self.wizard().button(QtGui.QWizard.NextButton).click() return elif i == 101: - print "haha" + print("haha") return self.progressBar.setValue(i) if i == 50: @@ -347,8 +348,8 @@ if __name__ == '__main__': wizard = Ui_NewAddressWizard(["a", "b", "c", "d"]) if (wizard.exec_()): - print "Email: " + ("yes" if wizard.field("emailAsWell").toBool() else "no") - print "BM: " + ("yes" if wizard.field("onlyBM").toBool() else "no") + print("Email: " + ("yes" if wizard.field("emailAsWell").toBool() else "no")) + print("BM: " + ("yes" if wizard.field("onlyBM").toBool() else "no")) else: - print "Wizard cancelled" + print("Wizard cancelled") sys.exit() diff --git a/src/bitmessageqt/newchandialog.py b/src/bitmessageqt/newchandialog.py index 8db486c1..dc7b120b 100644 --- a/src/bitmessageqt/newchandialog.py +++ b/src/bitmessageqt/newchandialog.py @@ -3,16 +3,17 @@ src/bitmessageqt/newchandialog.py ================================= """ +from __future__ import absolute_import from PyQt4 import QtCore, QtGui -import widgets +from . import widgets from addresses import addBMIfNotPresent -from addressvalidator import AddressValidator, PassPhraseValidator +from .addressvalidator import AddressValidator, PassPhraseValidator from queues import UISignalQueue, addressGeneratorQueue, apiAddressGeneratorReturnQueue -from retranslateui import RetranslateMixin +from .retranslateui import RetranslateMixin from tr import _translate -from utils import str_chan +from .utils import str_chan class NewChanDialog(QtGui.QDialog, RetranslateMixin): diff --git a/src/bitmessageqt/retranslateui.py b/src/bitmessageqt/retranslateui.py index e9d5bb3a..7e1a7fbe 100644 --- a/src/bitmessageqt/retranslateui.py +++ b/src/bitmessageqt/retranslateui.py @@ -1,7 +1,8 @@ +from __future__ import absolute_import from os import path from PyQt4 import QtGui from debug import logger -import widgets +from . import widgets class RetranslateMixin(object): def retranslateUi(self): diff --git a/src/bitmessageqt/support.py b/src/bitmessageqt/support.py index 2a1ddb18..7336fa28 100644 --- a/src/bitmessageqt/support.py +++ b/src/bitmessageqt/support.py @@ -1,14 +1,15 @@ +from __future__ import absolute_import import ctypes from PyQt4 import QtCore, QtGui import ssl import sys import time -import account +from . import account from bmconfigparser import BMConfigParser from debug import logger import defaults -from foldertree import AccountMixin +from .foldertree import AccountMixin from helper_sql import * from l10n import getTranslationLanguage from openclpow import openclAvailable, openclEnabled diff --git a/src/kivymd/date_picker.py b/src/kivymd/date_picker.py index 5194298e..9f361cd8 100644 --- a/src/kivymd/date_picker.py +++ b/src/kivymd/date_picker.py @@ -1,4 +1,5 @@ # -*- coding: utf-8 -*- +from __future__ import print_function from kivy.lang import Builder from kivy.uix.modalview import ModalView from kivymd.label import MDLabel diff --git a/src/network/asyncore_pollchoose.py b/src/network/asyncore_pollchoose.py index 3337c0f0..3f7af951 100644 --- a/src/network/asyncore_pollchoose.py +++ b/src/network/asyncore_pollchoose.py @@ -50,6 +50,7 @@ control than multi-threaded programming. The module documented here solves many of the difficult problems for you, making the task of building sophisticated high-performance network servers and clients a snap. """ +from __future__ import print_function import os import select @@ -788,7 +789,7 @@ class dispatcher: def log_info(self, message, log_type='info'): """Conditionally print a message""" if log_type not in self.ignore_log_types: - print '%s: %s' % (log_type, message) + print('%s: %s' % (log_type, message)) def handle_read_event(self): """Handle a read event""" diff --git a/src/network/bmproto.py b/src/network/bmproto.py index c8efe91e..d78f6933 100644 --- a/src/network/bmproto.py +++ b/src/network/bmproto.py @@ -1,3 +1,4 @@ +from __future__ import absolute_import import base64 import hashlib import socket @@ -6,7 +7,7 @@ import time from binascii import hexlify import addresses -import connectionpool +from . import connectionpool import knownnodes import protocol import state @@ -21,7 +22,7 @@ from network.bmobject import ( BMObjectInvalidError, BMObjectAlreadyHaveError) from network.node import Node from network.proxy import ProxyError -from objectracker import missingObjects, ObjectTracker +from .objectracker import missingObjects, ObjectTracker from queues import objectProcessorQueue, portCheckerQueue, invQueue, addrQueue from randomtrackingdict import RandomTrackingDict diff --git a/src/network/connectionpool.py b/src/network/connectionpool.py index 077f44a5..3b87fedf 100644 --- a/src/network/connectionpool.py +++ b/src/network/connectionpool.py @@ -1,22 +1,23 @@ +from __future__ import absolute_import import errno import re import socket import time -import asyncore_pollchoose as asyncore +from . import asyncore_pollchoose as asyncore import helper_bootstrap import helper_random import knownnodes import protocol import state from bmconfigparser import BMConfigParser -from connectionchooser import chooseConnection +from .connectionchooser import chooseConnection from debug import logger -from proxy import Proxy +from .proxy import Proxy from singleton import Singleton -from tcp import ( +from .tcp import ( TCPServer, Socks5BMConnection, Socks4aBMConnection, TCPConnection) -from udp import UDPSocket +from .udp import UDPSocket @Singleton diff --git a/src/network/dandelion.py b/src/network/dandelion.py index 2678ca57..13b37e52 100644 --- a/src/network/dandelion.py +++ b/src/network/dandelion.py @@ -1,9 +1,10 @@ +from __future__ import absolute_import from collections import namedtuple from random import choice, sample, expovariate from threading import RLock from time import time -import connectionpool +from . import connectionpool import state from debug import logging from queues import invQueue diff --git a/src/network/downloadthread.py b/src/network/downloadthread.py index babce5da..83e0aa19 100644 --- a/src/network/downloadthread.py +++ b/src/network/downloadthread.py @@ -1,15 +1,16 @@ +from __future__ import absolute_import import threading import time import addresses import helper_random import protocol -from dandelion import Dandelion +from .dandelion import Dandelion from debug import logger from helper_threading import StoppableThread from inventory import Inventory from network.connectionpool import BMConnectionPool -from objectracker import missingObjects +from .objectracker import missingObjects class DownloadThread(threading.Thread, StoppableThread): diff --git a/src/network/http-old.py b/src/network/http-old.py index 56d24915..ec133330 100644 --- a/src/network/http-old.py +++ b/src/network/http-old.py @@ -1,3 +1,4 @@ +from __future__ import print_function import asyncore import socket import time @@ -43,7 +44,7 @@ if __name__ == "__main__": if (len(asyncore.socket_map) < parallel): for i in range(parallel - len(asyncore.socket_map)): HTTPClient('127.0.0.1', '/') - print "Active connections: %i" % (len(asyncore.socket_map)) + print("Active connections: %i" % (len(asyncore.socket_map))) asyncore.loop(count=len(asyncore.socket_map)/2) if requestCount % 100 == 0: - print "Processed %i total messages" % (requestCount) + print("Processed %i total messages" % (requestCount)) diff --git a/src/network/http.py b/src/network/http.py index 55cb81a1..3b21b853 100644 --- a/src/network/http.py +++ b/src/network/http.py @@ -1,10 +1,12 @@ +from __future__ import print_function +from __future__ import absolute_import import socket -from advanceddispatcher import AdvancedDispatcher -import asyncore_pollchoose as asyncore -from proxy import Proxy, ProxyError, GeneralProxyError -from socks5 import Socks5Connection, Socks5Resolver, Socks5AuthError, Socks5Error -from socks4a import Socks4aConnection, Socks4aResolver, Socks4aError +from .advanceddispatcher import AdvancedDispatcher +from . import asyncore_pollchoose as asyncore +from .proxy import Proxy, ProxyError, GeneralProxyError +from .socks5 import Socks5Connection, Socks5Resolver, Socks5AuthError, Socks5Error +from .socks4a import Socks4aConnection, Socks4aResolver, Socks4aError class HttpError(ProxyError): pass @@ -16,17 +18,17 @@ class HttpConnection(AdvancedDispatcher): self.destination = (host, 80) self.create_socket(socket.AF_INET, socket.SOCK_STREAM) self.connect(self.destination) - print "connecting in background to %s:%i" % (self.destination[0], self.destination[1]) + print("connecting in background to %s:%i" % (self.destination[0], self.destination[1])) def state_init(self): self.append_write_buf("GET %s HTTP/1.1\r\nHost: %s\r\nConnection: close\r\n\r\n" % (self.path, self.destination[0])) - print "Sending %ib" % (len(self.write_buf)) + print("Sending %ib" % (len(self.write_buf))) self.set_state("http_request_sent", 0) return False def state_http_request_sent(self): if len(self.read_buf) > 0: - print "Received %ib" % (len(self.read_buf)) + print("Received %ib" % (len(self.read_buf))) self.read_buf = b"" if not self.connected: self.set_state("close", 0) @@ -59,13 +61,13 @@ if __name__ == "__main__": for host in ("bootstrap8080.bitmessage.org", "bootstrap8444.bitmessage.org"): proxy = Socks5Resolver(host=host) while len(asyncore.socket_map) > 0: - print "loop %s, len %i" % (proxy.state, len(asyncore.socket_map)) + print("loop %s, len %i" % (proxy.state, len(asyncore.socket_map))) asyncore.loop(timeout=1, count=1) proxy.resolved() proxy = Socks4aResolver(host=host) while len(asyncore.socket_map) > 0: - print "loop %s, len %i" % (proxy.state, len(asyncore.socket_map)) + print("loop %s, len %i" % (proxy.state, len(asyncore.socket_map))) asyncore.loop(timeout=1, count=1) proxy.resolved() diff --git a/src/network/httpd.py b/src/network/httpd.py index b8b6ba21..d3a81dac 100644 --- a/src/network/httpd.py +++ b/src/network/httpd.py @@ -1,7 +1,8 @@ +from __future__ import absolute_import import asyncore import socket -from tls import TLSHandshake +from .tls import TLSHandshake class HTTPRequestHandler(asyncore.dispatcher): response = """HTTP/1.0 200 OK\r diff --git a/src/network/https.py b/src/network/https.py index 151efcb8..c5094430 100644 --- a/src/network/https.py +++ b/src/network/https.py @@ -1,8 +1,9 @@ +from __future__ import absolute_import import asyncore -from http import HTTPClient +from .http import HTTPClient import paths -from tls import TLSHandshake +from .tls import TLSHandshake # self.sslSock = ssl.wrap_socket(self.sock, keyfile = os.path.join(paths.codePath(), 'sslkeys', 'key.pem'), certfile = os.path.join(paths.codePath(), 'sslkeys', 'cert.pem'), server_side = not self.initiatedConnection, ssl_version=ssl.PROTOCOL_TLSv1, do_handshake_on_connect=False, ciphers='AECDH-AES256-SHA') diff --git a/src/network/proxy.py b/src/network/proxy.py index 04f0ac13..b389ec45 100644 --- a/src/network/proxy.py +++ b/src/network/proxy.py @@ -1,9 +1,10 @@ +from __future__ import absolute_import import socket import time -import asyncore_pollchoose as asyncore +from . import asyncore_pollchoose as asyncore import state -from advanceddispatcher import AdvancedDispatcher +from .advanceddispatcher import AdvancedDispatcher from bmconfigparser import BMConfigParser from debug import logger diff --git a/src/network/socks4a.py b/src/network/socks4a.py index bdf59944..00b4167d 100644 --- a/src/network/socks4a.py +++ b/src/network/socks4a.py @@ -1,7 +1,9 @@ +from __future__ import print_function +from __future__ import absolute_import import socket import struct -from proxy import Proxy, ProxyError, GeneralProxyError +from .proxy import Proxy, ProxyError, GeneralProxyError class Socks4aError(ProxyError): @@ -135,4 +137,4 @@ class Socks4aResolver(Socks4a): PyBitmessage, a callback needs to be implemented which hasn't been done yet. """ - print "Resolved %s as %s" % (self.host, self.proxy_sock_name()) + print("Resolved %s as %s" % (self.host, self.proxy_sock_name())) diff --git a/src/network/socks5.py b/src/network/socks5.py index 2e0821da..4e3047d0 100644 --- a/src/network/socks5.py +++ b/src/network/socks5.py @@ -3,12 +3,14 @@ src/network/socks5.py ===================== """ +from __future__ import print_function +from __future__ import absolute_import # pylint: disable=attribute-defined-outside-init import socket import struct -from proxy import GeneralProxyError, Proxy, ProxyError +from .proxy import GeneralProxyError, Proxy, ProxyError class Socks5AuthError(ProxyError): @@ -226,4 +228,4 @@ class Socks5Resolver(Socks5): To use this within PyBitmessage, a callback needs to be implemented which hasn't been done yet. """ - print "Resolved %s as %s" % (self.host, self.proxy_sock_name()) + print("Resolved %s as %s" % (self.host, self.proxy_sock_name())) diff --git a/src/network/stats.py b/src/network/stats.py index 5a0f8064..6c65bb73 100644 --- a/src/network/stats.py +++ b/src/network/stats.py @@ -1,8 +1,9 @@ +from __future__ import absolute_import import time -import asyncore_pollchoose as asyncore +from . import asyncore_pollchoose as asyncore from network.connectionpool import BMConnectionPool -from objectracker import missingObjects +from .objectracker import missingObjects lastReceivedTimestamp = time.time() lastReceivedBytes = 0 diff --git a/src/network/tcp.py b/src/network/tcp.py index 5ebd6a21..ce314ddc 100644 --- a/src/network/tcp.py +++ b/src/network/tcp.py @@ -3,6 +3,7 @@ src/network/tcp.py ================== """ +from __future__ import absolute_import import math import random @@ -10,8 +11,8 @@ import socket import time import addresses -import asyncore_pollchoose as asyncore -import connectionpool +from . import asyncore_pollchoose as asyncore +from . import connectionpool import helper_random import knownnodes import protocol diff --git a/src/network/udp.py b/src/network/udp.py index 225aabf3..c059f0b8 100644 --- a/src/network/udp.py +++ b/src/network/udp.py @@ -1,11 +1,12 @@ +from __future__ import absolute_import import time import socket import state import protocol -from bmproto import BMProto +from .bmproto import BMProto from debug import logger -from objectracker import ObjectTracker +from .objectracker import ObjectTracker from queues import receiveDataQueue diff --git a/src/storage/filesystem.py b/src/storage/filesystem.py index d64894a9..0bee2a16 100644 --- a/src/storage/filesystem.py +++ b/src/storage/filesystem.py @@ -1,3 +1,5 @@ +from __future__ import print_function +from __future__ import absolute_import from binascii import hexlify, unhexlify from os import listdir, makedirs, path, remove, rmdir import string @@ -6,7 +8,7 @@ import time import traceback from paths import lookupAppdataFolder -from storage import InventoryStorage, InventoryItem +from .storage import InventoryStorage, InventoryItem class FilesystemInventory(InventoryStorage): topDir = "inventory" @@ -108,7 +110,7 @@ class FilesystemInventory(InventoryStorage): newInventory[streamNumber] = {} newInventory[streamNumber][hashId] = InventoryItem(objectType, streamNumber, None, expiresTime, tag) except KeyError: - print "error loading %s" % (hexlify(hashId)) + print("error loading %s" % (hexlify(hashId))) pass self._inventory = newInventory # for i, v in self._inventory.items(): diff --git a/src/storage/sqlite.py b/src/storage/sqlite.py index 438cbdcb..dd7209ed 100644 --- a/src/storage/sqlite.py +++ b/src/storage/sqlite.py @@ -1,3 +1,4 @@ +from __future__ import absolute_import import collections from threading import current_thread, enumerate as threadingEnumerate, RLock import Queue @@ -5,7 +6,7 @@ import sqlite3 import time from helper_sql import * -from storage import InventoryStorage, InventoryItem +from .storage import InventoryStorage, InventoryItem class SqliteInventory(InventoryStorage): def __init__(self): diff --git a/src/tests/apinotify_handler.py b/src/tests/apinotify_handler.py index 4574d46a..43b6eea8 100755 --- a/src/tests/apinotify_handler.py +++ b/src/tests/apinotify_handler.py @@ -3,11 +3,12 @@ Utility configured as apinotifypath in bitmessagesettings when pybitmessage started in test mode. """ +from __future__ import absolute_import import sys import tempfile -from test_process import put_signal_file +from .test_process import put_signal_file if __name__ == '__main__': diff --git a/src/tests/core.py b/src/tests/core.py index a323be83..40c44707 100644 --- a/src/tests/core.py +++ b/src/tests/core.py @@ -2,6 +2,7 @@ Tests for core and those that do not work outside (because of import error for example) """ +from __future__ import print_function import os import pickle # nosec diff --git a/src/tests/test_api.py b/src/tests/test_api.py index dfe1b273..c4efc76b 100644 --- a/src/tests/test_api.py +++ b/src/tests/test_api.py @@ -1,13 +1,14 @@ """ Tests using API. """ +from __future__ import absolute_import import base64 import json import time import xmlrpclib # nosec -from test_process import TestProcessProto, TestProcessShutdown +from .test_process import TestProcessProto, TestProcessShutdown class TestAPIProto(TestProcessProto): diff --git a/src/tests/test_config.py b/src/tests/test_config.py index a0a727e5..1e2dd9f9 100644 --- a/src/tests/test_config.py +++ b/src/tests/test_config.py @@ -1,12 +1,13 @@ """ Various tests for config """ +from __future__ import absolute_import import os import unittest from pybitmessage.bmconfigparser import BMConfigParser -from test_process import TestProcessProto +from .test_process import TestProcessProto class TestConfig(unittest.TestCase): diff --git a/src/tests/test_process.py b/src/tests/test_process.py index 73a6e493..bf5b58b1 100644 --- a/src/tests/test_process.py +++ b/src/tests/test_process.py @@ -1,6 +1,7 @@ """ Common reusable code for tests and tests for pybitmessage process. """ +from __future__ import print_function import os import signal