From d47e9be4fb204988ec659fc59882b2f5964afa3f Mon Sep 17 00:00:00 2001
From: "Sybren A. Stvel" <sybren@stuvel.eu>
Date: Thu, 22 Jan 2015 17:05:39 +1100
Subject: [PATCH] Fix: replaced Python module "imp" with "implib"

Python 3.4.0 deprecated the "imp" module, and replaced it with
"importlib". This changes imp.reload() into implib.reload().

Reviewers: campbellbarton

Differential Revision: https://developer.blender.org/D1016
---
 add_curve_extra_objects/__init__.py      |  8 +++----
 add_curve_sapling/__init__.py            |  4 ++--
 add_mesh_BoltFactory/__init__.py         |  4 ++--
 add_mesh_extra_objects/__init__.py       | 28 ++++++++++++------------
 io_anim_bvh/__init__.py                  |  6 ++---
 io_anim_nuke_chan/__init__.py            |  6 ++---
 io_coat3D/__init__.py                    |  6 ++---
 io_convert_image_to_mesh_img/__init__.py |  4 ++--
 io_curve_svg/__init__.py                 |  4 ++--
 io_mesh_ply/__init__.py                  |  6 ++---
 io_mesh_raw/__init__.py                  |  6 ++---
 io_mesh_stl/__init__.py                  |  6 ++---
 io_mesh_uv_layout/__init__.py            |  8 +++----
 io_scene_3ds/__init__.py                 |  6 ++---
 io_scene_ms3d/__init__.py                |  8 +++----
 io_scene_obj/__init__.py                 |  6 ++---
 io_scene_vrml2/__init__.py               |  4 ++--
 io_scene_x3d/__init__.py                 |  6 ++---
 io_shape_mdd/__init__.py                 |  6 ++---
 light_field_tools/__init__.py            |  4 ++--
 mesh_inset/__init__.py                   |  2 +-
 mocap/__init__.py                        |  8 +++----
 netrender/__init__.py                    | 26 +++++++++++-----------
 object_fracture/__init__.py              |  6 ++---
 object_fracture_cell/__init__.py         |  4 ++--
 object_print3d_utils/__init__.py         |  6 ++---
 render_copy_settings/__init__.py         |  8 +++----
 render_povray/__init__.py                |  8 +++----
 render_renderfarmfi/rpc.py               | 10 ++++-----
 render_renderfarmfi/utils.py             | 12 +++++-----
 rigify/__init__.py                       | 12 +++++-----
 rigify/rigs/biped/arm/__init__.py        |  8 +++----
 rigify/rigs/biped/leg/__init__.py        |  8 +++----
 rigify/rigs/pitchipoy/super_widgets.py   |  2 +-
 rigify/ui.py                             |  4 ++--
 rigify/utils.py                          |  6 ++---
 space_view3d_math_vis/__init__.py        |  6 ++---
 system_demo_mode/__init__.py             |  4 ++--
 ui_translate/__init__.py                 | 12 +++++-----
 ui_translate/edit_translation.py         |  6 ++---
 ui_translate/settings.py                 |  4 ++--
 ui_translate/update_addon.py             |  8 +++----
 ui_translate/update_svn.py               |  8 +++----
 ui_translate/update_ui.py                |  6 ++---
 44 files changed, 160 insertions(+), 160 deletions(-)

diff --git a/add_curve_extra_objects/__init__.py b/add_curve_extra_objects/__init__.py
index 5dffb0d41..f3b24131f 100644
--- a/add_curve_extra_objects/__init__.py
+++ b/add_curve_extra_objects/__init__.py
@@ -31,10 +31,10 @@ bl_info = {
     "category": "Add Curve"}
 
 if "bpy" in locals():
-    import imp
-    imp.reload(add_curve_aceous_galore)
-    imp.reload(add_curve_spirals)
-    imp.reload(add_curve_torus_knots)
+    import importlib
+    importlib.reload(add_curve_aceous_galore)
+    importlib.reload(add_curve_spirals)
+    importlib.reload(add_curve_torus_knots)
 
 else:
     from . import add_curve_aceous_galore
diff --git a/add_curve_sapling/__init__.py b/add_curve_sapling/__init__.py
index 719675ed3..7e09fb289 100644
--- a/add_curve_sapling/__init__.py
+++ b/add_curve_sapling/__init__.py
@@ -33,8 +33,8 @@ bl_info = {
 
 
 if "bpy" in locals():
-    import imp
-    imp.reload(utils)
+    import importlib
+    importlib.reload(utils)
 else:
     from add_curve_sapling import utils
 
diff --git a/add_mesh_BoltFactory/__init__.py b/add_mesh_BoltFactory/__init__.py
index 0f1c6919b..6dd32b86c 100644
--- a/add_mesh_BoltFactory/__init__.py
+++ b/add_mesh_BoltFactory/__init__.py
@@ -30,8 +30,8 @@ bl_info = {
 
 
 if "bpy" in locals():
-    import imp
-    imp.reload(Boltfactory)
+    import importlib
+    importlib.reload(Boltfactory)
 else:
     from add_mesh_BoltFactory import Boltfactory
 
diff --git a/add_mesh_extra_objects/__init__.py b/add_mesh_extra_objects/__init__.py
index be0860422..41bebc7f1 100644
--- a/add_mesh_extra_objects/__init__.py
+++ b/add_mesh_extra_objects/__init__.py
@@ -32,20 +32,20 @@ bl_info = {
 }
 
 if "bpy" in locals():
-    import imp
-    imp.reload(add_mesh_extra_objects)
-    imp.reload(add_mesh_twisted_torus)
-    imp.reload(add_mesh_gemstones)
-    imp.reload(add_mesh_gears)
-    imp.reload(add_mesh_3d_function_surface)
-    imp.reload(add_mesh_polysphere)
-    imp.reload(add_mesh_supertoroid)
-    imp.reload(add_mesh_pyramid)
-    imp.reload(add_mesh_torusknot)
-    imp.reload(add_mesh_honeycomb)
-    imp.reload(add_mesh_teapot)
-    imp.reload(add_mesh_pipe_joint)
-    imp.reload(add_mesh_solid)
+    import importlib
+    importlib.reload(add_mesh_extra_objects)
+    importlib.reload(add_mesh_twisted_torus)
+    importlib.reload(add_mesh_gemstones)
+    importlib.reload(add_mesh_gears)
+    importlib.reload(add_mesh_3d_function_surface)
+    importlib.reload(add_mesh_polysphere)
+    importlib.reload(add_mesh_supertoroid)
+    importlib.reload(add_mesh_pyramid)
+    importlib.reload(add_mesh_torusknot)
+    importlib.reload(add_mesh_honeycomb)
+    importlib.reload(add_mesh_teapot)
+    importlib.reload(add_mesh_pipe_joint)
+    importlib.reload(add_mesh_solid)
 
 else:
     from . import add_mesh_extra_objects
diff --git a/io_anim_bvh/__init__.py b/io_anim_bvh/__init__.py
index 6e7576c1c..e7d6c7b24 100644
--- a/io_anim_bvh/__init__.py
+++ b/io_anim_bvh/__init__.py
@@ -31,11 +31,11 @@ bl_info = {
     "category": "Import-Export"}
 
 if "bpy" in locals():
-    import imp
+    import importlib
     if "import_bvh" in locals():
-        imp.reload(import_bvh)
+        importlib.reload(import_bvh)
     if "export_bvh" in locals():
-        imp.reload(export_bvh)
+        importlib.reload(export_bvh)
 
 import bpy
 from bpy.props import (StringProperty,
diff --git a/io_anim_nuke_chan/__init__.py b/io_anim_nuke_chan/__init__.py
index 5dcccfc73..16c927829 100644
--- a/io_anim_nuke_chan/__init__.py
+++ b/io_anim_nuke_chan/__init__.py
@@ -35,11 +35,11 @@ bl_info = {
 # To support reload properly, try to access a package var,
 # if it's there, reload everything
 if "bpy" in locals():
-    import imp
+    import importlib
     if "import_nuke_chan" in locals():
-        imp.reload(import_nuke_chan)
+        importlib.reload(import_nuke_chan)
     if "export_nuke_chan" in locals():
-        imp.reload(export_nuke_chan)
+        importlib.reload(export_nuke_chan)
 
 
 import bpy
diff --git a/io_coat3D/__init__.py b/io_coat3D/__init__.py
index 3db5b51b2..8cbe4e540 100644
--- a/io_coat3D/__init__.py
+++ b/io_coat3D/__init__.py
@@ -31,9 +31,9 @@ bl_info = {
 
 
 if "bpy" in locals():
-    import imp
-    imp.reload(coat)
-    imp.reload(tex)
+    import importlib
+    importlib.reload(coat)
+    importlib.reload(tex)
 else:
     from . import coat
     from . import tex
diff --git a/io_convert_image_to_mesh_img/__init__.py b/io_convert_image_to_mesh_img/__init__.py
index a0d921264..35b60997b 100644
--- a/io_convert_image_to_mesh_img/__init__.py
+++ b/io_convert_image_to_mesh_img/__init__.py
@@ -46,8 +46,8 @@ bl_info = {
 
 
 if "bpy" in locals():
-    import imp
-    imp.reload(import_img)
+    import importlib
+    importlib.reload(import_img)
 else:
     from . import import_img
 
diff --git a/io_curve_svg/__init__.py b/io_curve_svg/__init__.py
index 629d85899..d97b9b431 100644
--- a/io_curve_svg/__init__.py
+++ b/io_curve_svg/__init__.py
@@ -35,9 +35,9 @@ bl_info = {
 # To support reload properly, try to access a package var,
 # if it's there, reload everything
 if "bpy" in locals():
-    import imp
+    import importlib
     if "import_svg" in locals():
-        imp.reload(import_svg)
+        importlib.reload(import_svg)
 
 
 import bpy
diff --git a/io_mesh_ply/__init__.py b/io_mesh_ply/__init__.py
index d85fb46b8..5fa9b2645 100644
--- a/io_mesh_ply/__init__.py
+++ b/io_mesh_ply/__init__.py
@@ -36,11 +36,11 @@ bl_info = {
 # To support reload properly, try to access a package var,
 # if it's there, reload everything
 if "bpy" in locals():
-    import imp
+    import importlib
     if "export_ply" in locals():
-        imp.reload(export_ply)
+        importlib.reload(export_ply)
     if "import_ply" in locals():
-        imp.reload(import_ply)
+        importlib.reload(import_ply)
 
 
 import os
diff --git a/io_mesh_raw/__init__.py b/io_mesh_raw/__init__.py
index 4a5ece92b..696409320 100644
--- a/io_mesh_raw/__init__.py
+++ b/io_mesh_raw/__init__.py
@@ -33,11 +33,11 @@ bl_info = {
 }
 
 if "bpy" in locals():
-    import imp
+    import importlib
     if "import_raw" in locals():
-        imp.reload(import_raw)
+        importlib.reload(import_raw)
     if "export_raw" in locals():
-        imp.reload(export_raw)
+        importlib.reload(export_raw)
 else:
     import bpy
 
diff --git a/io_mesh_stl/__init__.py b/io_mesh_stl/__init__.py
index c3d628d5f..975e52bfc 100644
--- a/io_mesh_stl/__init__.py
+++ b/io_mesh_stl/__init__.py
@@ -48,11 +48,11 @@ Import:
 """
 
 if "bpy" in locals():
-    import imp
+    import importlib
     if "stl_utils" in locals():
-        imp.reload(stl_utils)
+        importlib.reload(stl_utils)
     if "blender_utils" in locals():
-        imp.reload(blender_utils)
+        importlib.reload(blender_utils)
 
 import os
 
diff --git a/io_mesh_uv_layout/__init__.py b/io_mesh_uv_layout/__init__.py
index 2460d26d0..accf67557 100644
--- a/io_mesh_uv_layout/__init__.py
+++ b/io_mesh_uv_layout/__init__.py
@@ -36,13 +36,13 @@ bl_info = {
 # @todo write the wiki page
 
 if "bpy" in locals():
-    import imp
+    import importlib
     if "export_uv_eps" in locals():
-        imp.reload(export_uv_eps)
+        importlib.reload(export_uv_eps)
     if "export_uv_png" in locals():
-        imp.reload(export_uv_png)
+        importlib.reload(export_uv_png)
     if "export_uv_svg" in locals():
-        imp.reload(export_uv_svg)
+        importlib.reload(export_uv_svg)
 
 import bpy
 
diff --git a/io_scene_3ds/__init__.py b/io_scene_3ds/__init__.py
index 981b7ffa3..73459c12c 100644
--- a/io_scene_3ds/__init__.py
+++ b/io_scene_3ds/__init__.py
@@ -32,11 +32,11 @@ bl_info = {
     "category": "Import-Export"}
 
 if "bpy" in locals():
-    import imp
+    import importlib
     if "import_3ds" in locals():
-        imp.reload(import_3ds)
+        importlib.reload(import_3ds)
     if "export_3ds" in locals():
-        imp.reload(export_3ds)
+        importlib.reload(export_3ds)
 
 
 import bpy
diff --git a/io_scene_ms3d/__init__.py b/io_scene_ms3d/__init__.py
index a4d04db90..794aae6b7 100644
--- a/io_scene_ms3d/__init__.py
+++ b/io_scene_ms3d/__init__.py
@@ -48,9 +48,9 @@ bl_info = {
 # To support reload properly, try to access a package var,
 # if it's there, reload everything
 if 'bpy' in locals():
-    import imp
+    import importlib
     if 'io_scene_ms3d.ms3d_ui' in locals():
-        imp.reload(io_scene_ms3d.ms3d_ui)
+        importlib.reload(io_scene_ms3d.ms3d_ui)
 else:
     from io_scene_ms3d.ms3d_ui import (
             Ms3dImportOperator,
@@ -74,8 +74,8 @@ from bpy.types import (
 def register():
     ####################
     # F8 - key
-    import imp
-    imp.reload(ms3d_ui)
+    import importlib
+    importlib.reload(ms3d_ui)
     # F8 - key
     ####################
 
diff --git a/io_scene_obj/__init__.py b/io_scene_obj/__init__.py
index f252da6be..c1eb79506 100644
--- a/io_scene_obj/__init__.py
+++ b/io_scene_obj/__init__.py
@@ -33,11 +33,11 @@ bl_info = {
     "category": "Import-Export"}
 
 if "bpy" in locals():
-    import imp
+    import importlib
     if "import_obj" in locals():
-        imp.reload(import_obj)
+        importlib.reload(import_obj)
     if "export_obj" in locals():
-        imp.reload(export_obj)
+        importlib.reload(export_obj)
 
 
 import bpy
diff --git a/io_scene_vrml2/__init__.py b/io_scene_vrml2/__init__.py
index e16ae73f1..594833c79 100644
--- a/io_scene_vrml2/__init__.py
+++ b/io_scene_vrml2/__init__.py
@@ -31,9 +31,9 @@ bl_info = {
     "category": "Import-Export"}
 
 if "bpy" in locals():
-    import imp
+    import importlib
     if "export_vrml2" in locals():
-        imp.reload(export_vrml2)
+        importlib.reload(export_vrml2)
 
 
 import os
diff --git a/io_scene_x3d/__init__.py b/io_scene_x3d/__init__.py
index 767b223ad..e12dedc77 100644
--- a/io_scene_x3d/__init__.py
+++ b/io_scene_x3d/__init__.py
@@ -31,11 +31,11 @@ bl_info = {
     "category": "Import-Export"}
 
 if "bpy" in locals():
-    import imp
+    import importlib
     if "import_x3d" in locals():
-        imp.reload(import_x3d)
+        importlib.reload(import_x3d)
     if "export_x3d" in locals():
-        imp.reload(export_x3d)
+        importlib.reload(export_x3d)
 
 import bpy
 from bpy.props import StringProperty, BoolProperty, EnumProperty, FloatProperty
diff --git a/io_shape_mdd/__init__.py b/io_shape_mdd/__init__.py
index c612543fd..d3e4c58b4 100644
--- a/io_shape_mdd/__init__.py
+++ b/io_shape_mdd/__init__.py
@@ -31,11 +31,11 @@ bl_info = {
     "category": "Import-Export"}
 
 if "bpy" in locals():
-    import imp
+    import importlib
     if "import_mdd" in locals():
-        imp.reload(import_mdd)
+        importlib.reload(import_mdd)
     if "export_mdd" in locals():
-        imp.reload(export_mdd)
+        importlib.reload(export_mdd)
 
 
 import bpy
diff --git a/light_field_tools/__init__.py b/light_field_tools/__init__.py
index 54e56fe6b..f1899b2d9 100644
--- a/light_field_tools/__init__.py
+++ b/light_field_tools/__init__.py
@@ -32,8 +32,8 @@ bl_info = {
 
 
 if "bpy" in locals():
-    import imp
-    imp.reload(light_field_tools)
+    import importlib
+    importlib.reload(light_field_tools)
 else:
     from . import light_field_tools
 
diff --git a/mesh_inset/__init__.py b/mesh_inset/__init__.py
index 947f43f02..d06546820 100644
--- a/mesh_inset/__init__.py
+++ b/mesh_inset/__init__.py
@@ -32,7 +32,7 @@ bl_info = {
 
 
 if "bpy" in locals():
-    import imp
+    import importlib
 else:
     from . import geom
     from . import model
diff --git a/mocap/__init__.py b/mocap/__init__.py
index 5dca80667..c9dd69333 100644
--- a/mocap/__init__.py
+++ b/mocap/__init__.py
@@ -33,13 +33,13 @@ bl_info = {
 }
 
 if "bpy" in locals():
-    import imp
+    import importlib
     if "mocap_constraints" in locals():
-        imp.reload(mocap_constraints)
+        importlib.reload(mocap_constraints)
     if "retarget" in locals():
-        imp.reload(retarget)
+        importlib.reload(retarget)
     if "mocap_tools" in locals():
-        imp.reload(mocap_tools)
+        importlib.reload(mocap_tools)
 else:
     import bpy
     from bpy.props import (BoolProperty,
diff --git a/netrender/__init__.py b/netrender/__init__.py
index 32abe9f81..4186f8b94 100644
--- a/netrender/__init__.py
+++ b/netrender/__init__.py
@@ -34,19 +34,19 @@ bl_info = {
 
 # To support reload properly, try to access a package var, if it's there, reload everything
 if "init_data" in locals():
-    import imp
-    imp.reload(model)
-    imp.reload(operators)
-    imp.reload(client)
-    imp.reload(slave)
-    imp.reload(master)
-    imp.reload(master_html)
-    imp.reload(utils)
-    imp.reload(balancing)
-    imp.reload(ui)
-    imp.reload(repath)
-    imp.reload(versioning)
-    imp.reload(baking)
+    import importlib
+    importlib.reload(model)
+    importlib.reload(operators)
+    importlib.reload(client)
+    importlib.reload(slave)
+    importlib.reload(master)
+    importlib.reload(master_html)
+    importlib.reload(utils)
+    importlib.reload(balancing)
+    importlib.reload(ui)
+    importlib.reload(repath)
+    importlib.reload(versioning)
+    importlib.reload(baking)
 else:
     from netrender import model
     from netrender import operators
diff --git a/object_fracture/__init__.py b/object_fracture/__init__.py
index 5e1e3f076..e01f774ab 100644
--- a/object_fracture/__init__.py
+++ b/object_fracture/__init__.py
@@ -30,9 +30,9 @@ bl_info = {
 
 
 if "bpy" in locals():
-    import imp
-    imp.reload(fracture_ops)
-    imp.reload(fracture_setup)
+    import importlib
+    importlib.reload(fracture_ops)
+    importlib.reload(fracture_setup)
 else:
     from . import fracture_ops
     from . import fracture_setup
diff --git a/object_fracture_cell/__init__.py b/object_fracture_cell/__init__.py
index abc8b7f32..b5cccff1e 100644
--- a/object_fracture_cell/__init__.py
+++ b/object_fracture_cell/__init__.py
@@ -30,8 +30,8 @@ bl_info = {
 
 
 #if "bpy" in locals():
-#    import imp
-#    imp.reload(fracture_cell_setup)
+#    import importlib
+#    importlib.reload(fracture_cell_setup)
 
 import bpy
 from bpy.props import (StringProperty,
diff --git a/object_print3d_utils/__init__.py b/object_print3d_utils/__init__.py
index 5c5d341e2..32cfba7d1 100644
--- a/object_print3d_utils/__init__.py
+++ b/object_print3d_utils/__init__.py
@@ -32,9 +32,9 @@ bl_info = {
 
 
 if "bpy" in locals():
-    import imp
-    imp.reload(ui)
-    imp.reload(operators)
+    import importlib
+    importlib.reload(ui)
+    importlib.reload(operators)
 else:
     import bpy
     from bpy.props import (StringProperty,
diff --git a/render_copy_settings/__init__.py b/render_copy_settings/__init__.py
index 7e6751109..7ca398448 100644
--- a/render_copy_settings/__init__.py
+++ b/render_copy_settings/__init__.py
@@ -33,10 +33,10 @@ bl_info = {
 
 
 if "bpy" in locals():
-    import imp
-    imp.reload(operator)
-    imp.reload(panel)
-    imp.reload(translations)
+    import importlib
+    importlib.reload(operator)
+    importlib.reload(panel)
+    importlib.reload(translations)
 
 else:
     from . import operator, panel, translations
diff --git a/render_povray/__init__.py b/render_povray/__init__.py
index 87eafda67..d0e6d8550 100644
--- a/render_povray/__init__.py
+++ b/render_povray/__init__.py
@@ -32,10 +32,10 @@ bl_info = {
 }
 
 if "bpy" in locals():
-    import imp
-    imp.reload(ui)
-    imp.reload(render)
-    imp.reload(update_files)
+    import importlib
+    importlib.reload(ui)
+    importlib.reload(render)
+    importlib.reload(update_files)
 
 else:
     import bpy
diff --git a/render_renderfarmfi/rpc.py b/render_renderfarmfi/rpc.py
index bb5d6a457..22c06e43e 100644
--- a/render_renderfarmfi/rpc.py
+++ b/render_renderfarmfi/rpc.py
@@ -17,7 +17,7 @@
 # ##### END GPL LICENSE BLOCK #####
 
 import xmlrpc.client
-import imp
+import importlib
 import time
 import bpy
 
@@ -31,9 +31,9 @@ def _is_dev():
     pwfile = bpy.utils.user_resource('CONFIG', 'rffi', True)
     pwmod = None
     try:
-        pwmod = imp.find_module('rffi_dev',[pwfile])
+        pwmod = implib.find_module('rffi_dev',[pwfile])
         try:
-            user_creds = imp.load_module('rffi_dev', pwmod[0], pwmod[1], pwmod[2])
+            user_creds = implib.load_module('rffi_dev', pwmod[0], pwmod[1], pwmod[2])
             if 'dev' in dir(user_creds) and user_creds.dev:
                 is_dev = True
         except ImportError:
@@ -52,9 +52,9 @@ def _be_verbose():
     pwfile = bpy.utils.user_resource('CONFIG', 'rffi', True)
     pwmod = None
     try:
-        pwmod = imp.find_module('rffi_dev',[pwfile])
+        pwmod = implib.find_module('rffi_dev',[pwfile])
         try:
-            user_creds = imp.load_module('rffi_dev', pwmod[0], pwmod[1], pwmod[2])
+            user_creds = implib.load_module('rffi_dev', pwmod[0], pwmod[1], pwmod[2])
             if 'verbose' in dir(user_creds) and user_creds.verbose:
                 be_verbose = True
         except ImportError:
diff --git a/render_renderfarmfi/utils.py b/render_renderfarmfi/utils.py
index 8afcfd78b..50e18cfd7 100644
--- a/render_renderfarmfi/utils.py
+++ b/render_renderfarmfi/utils.py
@@ -16,7 +16,7 @@
 #
 # ##### END GPL LICENSE BLOCK #####
 
-import imp
+import importlib
 
 from os.path import join
 
@@ -37,12 +37,12 @@ def _read_credentials():
 
     pwfile = bpy.utils.user_resource('CONFIG', 'rffi', True)
     try:
-        pwmod = imp.find_module('rffi_credentials',[pwfile])
+        pwmod = implib.find_module('rffi_credentials',[pwfile])
     except ImportError:
         _write_credentials('', '')
-        pwmod = imp.find_module('rffi_credentials',[pwfile])
+        pwmod = implib.find_module('rffi_credentials',[pwfile])
     try:
-        user_creds = imp.load_module('rffi_credentials', pwmod[0], pwmod[1], pwmod[2])
+        user_creds = implib.load_module('rffi_credentials', pwmod[0], pwmod[1], pwmod[2])
         bpy.rffi_user = user_creds.user
         bpy.rffi_hash = user_creds.hash
         bpy.rffi_creds_found = True
@@ -50,9 +50,9 @@ def _read_credentials():
         # doesn't exist yet, write template
         _write_credentials('', '')
         pwfile = bpy.utils.user_resource('CONFIG', 'rffi', True)
-        pwmod = imp.find_module('rffi_credentials',[pwfile])
+        pwmod = implib.find_module('rffi_credentials',[pwfile])
         try:
-            user_creds = imp.load_module('rffi_credentials', pwmod[0], pwmod[1], pwmod[2])
+            user_creds = implib.load_module('rffi_credentials', pwmod[0], pwmod[1], pwmod[2])
             bpy.rffi_user = user_creds.user
             bpy.rffi_hash = user_creds.hash
             bpy.rffi_creds_found = True
diff --git a/rigify/__init__.py b/rigify/__init__.py
index 2d9684223..6e6f751c7 100644
--- a/rigify/__init__.py
+++ b/rigify/__init__.py
@@ -32,12 +32,12 @@ bl_info = {
 
 
 if "bpy" in locals():
-    import imp
-    imp.reload(generate)
-    imp.reload(ui)
-    imp.reload(utils)
-    imp.reload(metarig_menu)
-    imp.reload(rig_lists)
+    import importlib
+    importlib.reload(generate)
+    importlib.reload(ui)
+    importlib.reload(utils)
+    importlib.reload(metarig_menu)
+    importlib.reload(rig_lists)
 else:
     from . import utils, rig_lists, generate, ui, metarig_menu
 
diff --git a/rigify/rigs/biped/arm/__init__.py b/rigify/rigs/biped/arm/__init__.py
index b6af3fb8b..e418a45a1 100644
--- a/rigify/rigs/biped/arm/__init__.py
+++ b/rigify/rigs/biped/arm/__init__.py
@@ -19,12 +19,12 @@
 # <pep8 compliant>
 
 import bpy
-import imp
+import importlib
 from . import fk, ik, deform
 
-imp.reload(fk)
-imp.reload(ik)
-imp.reload(deform)
+importlib.reload(fk)
+importlib.reload(ik)
+importlib.reload(deform)
 
 script = """
 fk_arm = ["%s", "%s", "%s"]
diff --git a/rigify/rigs/biped/leg/__init__.py b/rigify/rigs/biped/leg/__init__.py
index 0ddaf3ed8..97241eada 100644
--- a/rigify/rigs/biped/leg/__init__.py
+++ b/rigify/rigs/biped/leg/__init__.py
@@ -19,12 +19,12 @@
 # <pep8 compliant>
 
 import bpy
-import imp
+import importlib
 from . import fk, ik, deform
 
-imp.reload(fk)
-imp.reload(ik)
-imp.reload(deform)
+importlib.reload(fk)
+importlib.reload(ik)
+importlib.reload(deform)
 
 script = """
 fk_leg = ["%s", "%s", "%s", "%s"]
diff --git a/rigify/rigs/pitchipoy/super_widgets.py b/rigify/rigs/pitchipoy/super_widgets.py
index 3a31f8be4..aee6c14e9 100644
--- a/rigify/rigs/pitchipoy/super_widgets.py
+++ b/rigify/rigs/pitchipoy/super_widgets.py
@@ -1,5 +1,5 @@
 import bpy
-import imp
+import importlib
 import importlib
 from   ...utils import create_widget
 
diff --git a/rigify/ui.py b/rigify/ui.py
index 59955957b..46e2905a6 100644
--- a/rigify/ui.py
+++ b/rigify/ui.py
@@ -277,8 +277,8 @@ class Generate(bpy.types.Operator):
     bl_options = {'UNDO'}
 
     def execute(self, context):
-        import imp
-        imp.reload(generate)
+        import importlib
+        importlib.reload(generate)
 
         use_global_undo = context.user_preferences.edit.use_global_undo
         context.user_preferences.edit.use_global_undo = False
diff --git a/rigify/utils.py b/rigify/utils.py
index 15505d0de..a4e588c98 100644
--- a/rigify/utils.py
+++ b/rigify/utils.py
@@ -19,7 +19,7 @@
 # <pep8 compliant>
 
 import bpy
-import imp
+import importlib
 import importlib
 import math
 import random
@@ -647,7 +647,7 @@ def get_rig_type(rig_type):
     """
     name = ".%s.%s" % (RIG_DIR, rig_type)
     submod = importlib.import_module(name, package=MODULE_NAME)
-    imp.reload(submod)
+    importlib.reload(submod)
     return submod
 
 
@@ -656,7 +656,7 @@ def get_metarig_module(metarig_name):
     """
     name = ".%s.%s" % (METARIG_DIR, metarig_name)
     submod = importlib.import_module(name, package=MODULE_NAME)
-    imp.reload(submod)
+    importlib.reload(submod)
     return submod
 
 
diff --git a/space_view3d_math_vis/__init__.py b/space_view3d_math_vis/__init__.py
index b25ce989a..056e83fb9 100644
--- a/space_view3d_math_vis/__init__.py
+++ b/space_view3d_math_vis/__init__.py
@@ -33,9 +33,9 @@ bl_info = {
 
 
 if "bpy" in locals():
-    import imp
-    imp.reload(utils)
-    imp.reload(draw)
+    import importlib
+    importlib.reload(utils)
+    importlib.reload(draw)
 else:
     from . import utils, draw
 
diff --git a/system_demo_mode/__init__.py b/system_demo_mode/__init__.py
index 103c4af8b..60a343fc3 100644
--- a/system_demo_mode/__init__.py
+++ b/system_demo_mode/__init__.py
@@ -32,9 +32,9 @@ bl_info = {
 
 # To support reload properly, try to access a package var, if it's there, reload everything
 if "bpy" in locals():
-    import imp
+    import importlib
     if "config" in locals():
-        imp.reload(config)
+        importlib.reload(config)
 
 
 import bpy
diff --git a/ui_translate/__init__.py b/ui_translate/__init__.py
index 64aeb01aa..04b9d1f39 100644
--- a/ui_translate/__init__.py
+++ b/ui_translate/__init__.py
@@ -33,12 +33,12 @@ bl_info = {
 
 
 if "bpy" in locals():
-    import imp
-    imp.reload(settings)
-    imp.reload(edit_translation)
-    imp.reload(update_svn)
-    imp.reload(update_addon)
-    imp.reload(update_ui)
+    import importlib
+    importlib.reload(settings)
+    importlib.reload(edit_translation)
+    importlib.reload(update_svn)
+    importlib.reload(update_addon)
+    importlib.reload(update_ui)
 else:
     import bpy
     from . import (settings,
diff --git a/ui_translate/edit_translation.py b/ui_translate/edit_translation.py
index b486df378..d32a4c5d5 100644
--- a/ui_translate/edit_translation.py
+++ b/ui_translate/edit_translation.py
@@ -19,9 +19,9 @@
 # <pep8 compliant>
 
 if "bpy" in locals():
-    import imp
-    imp.reload(settings)
-    imp.reload(utils_i18n)
+    import importlib
+    importlib.reload(settings)
+    importlib.reload(utils_i18n)
 else:
     import bpy
     from bpy.props import (BoolProperty,
diff --git a/ui_translate/settings.py b/ui_translate/settings.py
index 07479f08e..cbe25b145 100644
--- a/ui_translate/settings.py
+++ b/ui_translate/settings.py
@@ -19,8 +19,8 @@
 # <pep8 compliant>
 
 if "bpy" in locals():
-    import imp
-    imp.reload(settings_i18n)
+    import importlib
+    importlib.reload(settings_i18n)
 else:
     import bpy
     from bpy.props import (BoolProperty,
diff --git a/ui_translate/update_addon.py b/ui_translate/update_addon.py
index cbf1999f8..ab7411ddb 100644
--- a/ui_translate/update_addon.py
+++ b/ui_translate/update_addon.py
@@ -19,10 +19,10 @@
 # <pep8 compliant>
 
 if "bpy" in locals():
-    import imp
-    imp.reload(settings)
-    imp.reload(utils_i18n)
-    imp.reload(bl_extract_messages)
+    import importlib
+    importlib.reload(settings)
+    importlib.reload(utils_i18n)
+    importlib.reload(bl_extract_messages)
 else:
     import bpy
     from bpy.props import (BoolProperty,
diff --git a/ui_translate/update_svn.py b/ui_translate/update_svn.py
index ef148c5a9..7b6b07345 100644
--- a/ui_translate/update_svn.py
+++ b/ui_translate/update_svn.py
@@ -19,10 +19,10 @@
 # <pep8 compliant>
 
 if "bpy" in locals():
-    import imp
-    imp.reload(settings)
-    imp.reload(utils_i18n)
-    imp.reload(utils_languages_menu)
+    import importlib
+    importlib.reload(settings)
+    importlib.reload(utils_i18n)
+    importlib.reload(utils_languages_menu)
 else:
     import bpy
     from bpy.props import (BoolProperty,
diff --git a/ui_translate/update_ui.py b/ui_translate/update_ui.py
index df2bef32b..7053b03a3 100644
--- a/ui_translate/update_ui.py
+++ b/ui_translate/update_ui.py
@@ -19,9 +19,9 @@
 # <pep8 compliant>
 
 if "bpy" in locals():
-    import imp
-    imp.reload(settings)
-    imp.reload(utils_i18n)
+    import importlib
+    importlib.reload(settings)
+    importlib.reload(utils_i18n)
 else:
     import bpy
     from bpy.props import (BoolProperty,
-- 
GitLab