summary refs log tree commit diff
diff options
context:
space:
mode:
authorCristina <hi@xmunoz.com>2021-03-31 06:04:27 -0500
committerGitHub <noreply@github.com>2021-03-31 12:04:27 +0100
commit670564446cebb7e287dfc084f88d94e8e68dcc02 (patch)
tree77e8b4910267279aadc00af7d52fb8d3a30c206c
parentRewrite complement.sh (#9685) (diff)
downloadsynapse-670564446cebb7e287dfc084f88d94e8e68dcc02.tar.xz
Deprecate imp (#9718)
Fixes #9642.

Signed-off-by: Cristina Muñoz <hi@xmunoz.com>
Diffstat (limited to '')
-rw-r--r--changelog.d/9718.removal1
-rw-r--r--synapse/storage/prepare_database.py11
2 files changed, 9 insertions, 3 deletions
diff --git a/changelog.d/9718.removal b/changelog.d/9718.removal
new file mode 100644
index 0000000000..6de7814217
--- /dev/null
+++ b/changelog.d/9718.removal
@@ -0,0 +1 @@
+Replace deprecated `imp` module with successor `importlib`. Contributed by Cristina Muñoz.
diff --git a/synapse/storage/prepare_database.py b/synapse/storage/prepare_database.py
index 6c3c2da520..c7f0b8ccb5 100644
--- a/synapse/storage/prepare_database.py
+++ b/synapse/storage/prepare_database.py
@@ -13,7 +13,7 @@
 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 # See the License for the specific language governing permissions and
 # limitations under the License.
-import imp
+import importlib.util
 import logging
 import os
 import re
@@ -454,8 +454,13 @@ def _upgrade_existing_database(
                     )
 
                 module_name = "synapse.storage.v%d_%s" % (v, root_name)
-                with open(absolute_path) as python_file:
-                    module = imp.load_source(module_name, absolute_path, python_file)  # type: ignore
+
+                spec = importlib.util.spec_from_file_location(
+                    module_name, absolute_path
+                )
+                module = importlib.util.module_from_spec(spec)
+                spec.loader.exec_module(module)  # type: ignore
+
                 logger.info("Running script %s", relative_path)
                 module.run_create(cur, database_engine)  # type: ignore
                 if not is_empty: