From 7b1911620f900e05664c734118720f34f6c6ced3 Mon Sep 17 00:00:00 2001 From: Itamar Turner-Trauring Date: Tue, 2 Mar 2021 09:31:35 -0500 Subject: [PATCH] Port to Python 3. --- src/allmydata/storage_client.py | 4 ++-- src/allmydata/util/_python3.py | 2 ++ src/allmydata/web/storage.py | 15 +++++++++++---- src/allmydata/web/storage_plugins.py | 10 ++++++++++ 4 files changed, 25 insertions(+), 6 deletions(-) diff --git a/src/allmydata/storage_client.py b/src/allmydata/storage_client.py index 75c554562..0986ded06 100644 --- a/src/allmydata/storage_client.py +++ b/src/allmydata/storage_client.py @@ -236,11 +236,11 @@ class StorageFarmBroker(service.MultiService): for plugin in getPlugins(IFoolscapStoragePlugin) } - return { + return UnicodeKeyDict({ name: plugins[name].get_client_resource(node_config) for (name, config) in self.storage_client_config.storage_plugins.items() - } + }) @log_call( action_type=u"storage-client:broker:make-storage-server", diff --git a/src/allmydata/util/_python3.py b/src/allmydata/util/_python3.py index 74aa1cea8..8152c9912 100644 --- a/src/allmydata/util/_python3.py +++ b/src/allmydata/util/_python3.py @@ -128,6 +128,8 @@ PORTED_MODULES = [ "allmydata.web.private", "allmydata.web.root", "allmydata.web.status", + "allmydata.web.storage", + "allmydata.web.storage_plugins", "allmydata.webish", ] diff --git a/src/allmydata/web/storage.py b/src/allmydata/web/storage.py index 9452c2a4e..f2f021a15 100644 --- a/src/allmydata/web/storage.py +++ b/src/allmydata/web/storage.py @@ -1,4 +1,14 @@ +""" +Ported to Python 3. +""" +from __future__ import absolute_import +from __future__ import division +from __future__ import print_function +from __future__ import unicode_literals + from future.utils import PY2 +if PY2: + from future.builtins import filter, map, zip, ascii, chr, hex, input, next, oct, open, pow, round, super, bytes, dict, list, object, range, str, max, min # noqa: F401 import time from twisted.python.filepath import FilePath @@ -318,7 +328,4 @@ class StorageStatus(MultiFormatResource): "lease-checker": self._storage.lease_checker.get_state(), "lease-checker-progress": self._storage.lease_checker.get_progress(), } - result = json.dumps(d, indent=1) + "\n" - if PY2: - result = result.decode("utf-8") - return result.encode("utf-8") + return json.dumps(d, indent=1) + "\n" diff --git a/src/allmydata/web/storage_plugins.py b/src/allmydata/web/storage_plugins.py index 939047c6e..41bed9d81 100644 --- a/src/allmydata/web/storage_plugins.py +++ b/src/allmydata/web/storage_plugins.py @@ -1,7 +1,17 @@ """ This module implements a resource which has as children the web resources of all enabled storage client plugins. + +Ported to Python 3. """ +from __future__ import absolute_import +from __future__ import division +from __future__ import print_function +from __future__ import unicode_literals + +from future.utils import PY2 +if PY2: + from future.builtins import filter, map, zip, ascii, chr, hex, input, next, oct, open, pow, round, super, bytes, dict, list, object, range, str, max, min # noqa: F401 from twisted.web.resource import ( Resource,