[libcamera-devel] mojom: Drop using imp module.
diff mbox series

Message ID 20231230190219.375528-1-raj.khem@gmail.com
State Superseded
Headers show
Series
  • [libcamera-devel] mojom: Drop using imp module.
Related show

Commit Message

Khem Raj Dec. 30, 2023, 7:02 p.m. UTC
This module is gone in python 3.12 onwards, in most places it is unused
so remove from those places, in some places where its still is needed
replace it with importlib.util

Fixes [1]

[1] https://bugs.libcamera.org/show_bug.cgi?id=206

Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
 utils/ipc/mojo/public/tools/mojom/mojom/fileutil.py        | 1 -
 .../ipc/mojo/public/tools/mojom/mojom/fileutil_unittest.py | 1 -
 .../tools/mojom/mojom/generate/generator_unittest.py       | 7 ++-----
 .../tools/mojom/mojom/generate/translate_unittest.py       | 1 -
 .../mojo/public/tools/mojom/mojom/parse/ast_unittest.py    | 1 -
 .../mojom/mojom/parse/conditional_features_unittest.py     | 7 ++-----
 utils/ipc/mojo/public/tools/mojom/mojom/parse/lexer.py     | 1 -
 .../mojo/public/tools/mojom/mojom/parse/lexer_unittest.py  | 6 ++----
 .../mojo/public/tools/mojom/mojom/parse/parser_unittest.py | 1 -
 9 files changed, 6 insertions(+), 20 deletions(-)

Comments

Kieran Bingham Dec. 30, 2023, 9:04 p.m. UTC | #1
Quoting Khem Raj (2023-12-30 19:02:19)
> This module is gone in python 3.12 onwards, in most places it is unused
> so remove from those places, in some places where its still is needed
> replace it with importlib.util

This should really be handled by updating to / importing the latest Mojom.

But I wouldn't refuse merging this as it fixes things now.

I don't think the importlib.util usages are used by our implementation -
but it's a more complete fix I expect.

Acked-by: Kieran Bingham <kieran.bingham@ideasonboard.com>


Paul, What's your plan on updating mojom here?

--
Kieran


> 
> Fixes [1]
> 
> [1] https://bugs.libcamera.org/show_bug.cgi?id=206
> 
> Signed-off-by: Khem Raj <raj.khem@gmail.com>
> ---
>  utils/ipc/mojo/public/tools/mojom/mojom/fileutil.py        | 1 -
>  .../ipc/mojo/public/tools/mojom/mojom/fileutil_unittest.py | 1 -
>  .../tools/mojom/mojom/generate/generator_unittest.py       | 7 ++-----
>  .../tools/mojom/mojom/generate/translate_unittest.py       | 1 -
>  .../mojo/public/tools/mojom/mojom/parse/ast_unittest.py    | 1 -
>  .../mojom/mojom/parse/conditional_features_unittest.py     | 7 ++-----
>  utils/ipc/mojo/public/tools/mojom/mojom/parse/lexer.py     | 1 -
>  .../mojo/public/tools/mojom/mojom/parse/lexer_unittest.py  | 6 ++----
>  .../mojo/public/tools/mojom/mojom/parse/parser_unittest.py | 1 -
>  9 files changed, 6 insertions(+), 20 deletions(-)
> 
> diff --git a/utils/ipc/mojo/public/tools/mojom/mojom/fileutil.py b/utils/ipc/mojo/public/tools/mojom/mojom/fileutil.py
> index bf626f54..e1c823da 100644
> --- a/utils/ipc/mojo/public/tools/mojom/mojom/fileutil.py
> +++ b/utils/ipc/mojo/public/tools/mojom/mojom/fileutil.py
> @@ -3,7 +3,6 @@
>  # found in the LICENSE file.
>  
>  import errno
> -import imp
>  import os.path
>  import sys
>  
> diff --git a/utils/ipc/mojo/public/tools/mojom/mojom/fileutil_unittest.py b/utils/ipc/mojo/public/tools/mojom/mojom/fileutil_unittest.py
> index ff5753a2..e754151f 100644
> --- a/utils/ipc/mojo/public/tools/mojom/mojom/fileutil_unittest.py
> +++ b/utils/ipc/mojo/public/tools/mojom/mojom/fileutil_unittest.py
> @@ -2,7 +2,6 @@
>  # Use of this source code is governed by a BSD-style license that can be
>  # found in the LICENSE file.
>  
> -import imp
>  import os.path
>  import shutil
>  import sys
> diff --git a/utils/ipc/mojo/public/tools/mojom/mojom/generate/generator_unittest.py b/utils/ipc/mojo/public/tools/mojom/mojom/generate/generator_unittest.py
> index 32c884a8..6cae6092 100644
> --- a/utils/ipc/mojo/public/tools/mojom/mojom/generate/generator_unittest.py
> +++ b/utils/ipc/mojo/public/tools/mojom/mojom/generate/generator_unittest.py
> @@ -2,7 +2,7 @@
>  # Use of this source code is governed by a BSD-style license that can be
>  # found in the LICENSE file.
>  
> -import imp
> +import importlib.util
>  import os.path
>  import sys
>  import unittest
> @@ -18,10 +18,7 @@ def _GetDirAbove(dirname):
>      if tail == dirname:
>        return path
>  
> -
> -try:
> -  imp.find_module("mojom")
> -except ImportError:
> +if importlib.util.find_spec("mojom") is None:
>    sys.path.append(os.path.join(_GetDirAbove("pylib"), "pylib"))
>  from mojom.generate import generator
>  
> diff --git a/utils/ipc/mojo/public/tools/mojom/mojom/generate/translate_unittest.py b/utils/ipc/mojo/public/tools/mojom/mojom/generate/translate_unittest.py
> index 19905c8a..09724d88 100644
> --- a/utils/ipc/mojo/public/tools/mojom/mojom/generate/translate_unittest.py
> +++ b/utils/ipc/mojo/public/tools/mojom/mojom/generate/translate_unittest.py
> @@ -2,7 +2,6 @@
>  # Use of this source code is governed by a BSD-style license that can be
>  # found in the LICENSE file.
>  
> -import imp
>  import os.path
>  import sys
>  import unittest
> diff --git a/utils/ipc/mojo/public/tools/mojom/mojom/parse/ast_unittest.py b/utils/ipc/mojo/public/tools/mojom/mojom/parse/ast_unittest.py
> index 62798631..4ab51033 100644
> --- a/utils/ipc/mojo/public/tools/mojom/mojom/parse/ast_unittest.py
> +++ b/utils/ipc/mojo/public/tools/mojom/mojom/parse/ast_unittest.py
> @@ -2,7 +2,6 @@
>  # Use of this source code is governed by a BSD-style license that can be
>  # found in the LICENSE file.
>  
> -import imp
>  import os.path
>  import sys
>  import unittest
> diff --git a/utils/ipc/mojo/public/tools/mojom/mojom/parse/conditional_features_unittest.py b/utils/ipc/mojo/public/tools/mojom/mojom/parse/conditional_features_unittest.py
> index aa609be7..f3c2c95f 100644
> --- a/utils/ipc/mojo/public/tools/mojom/mojom/parse/conditional_features_unittest.py
> +++ b/utils/ipc/mojo/public/tools/mojom/mojom/parse/conditional_features_unittest.py
> @@ -2,7 +2,7 @@
>  # Use of this source code is governed by a BSD-style license that can be
>  # found in the LICENSE file.
>  
> -import imp
> +import importlib.util
>  import os
>  import sys
>  import unittest
> @@ -18,10 +18,7 @@ def _GetDirAbove(dirname):
>      if tail == dirname:
>        return path
>  
> -
> -try:
> -  imp.find_module('mojom')
> -except ImportError:
> +if importlib.util.find_spec("mojom") is None:
>    sys.path.append(os.path.join(_GetDirAbove('pylib'), 'pylib'))
>  import mojom.parse.ast as ast
>  import mojom.parse.conditional_features as conditional_features
> diff --git a/utils/ipc/mojo/public/tools/mojom/mojom/parse/lexer.py b/utils/ipc/mojo/public/tools/mojom/mojom/parse/lexer.py
> index 3e084bbf..1e8b49f2 100644
> --- a/utils/ipc/mojo/public/tools/mojom/mojom/parse/lexer.py
> +++ b/utils/ipc/mojo/public/tools/mojom/mojom/parse/lexer.py
> @@ -2,7 +2,6 @@
>  # Use of this source code is governed by a BSD-style license that can be
>  # found in the LICENSE file.
>  
> -import imp
>  import os.path
>  import sys
>  
> diff --git a/utils/ipc/mojo/public/tools/mojom/mojom/parse/lexer_unittest.py b/utils/ipc/mojo/public/tools/mojom/mojom/parse/lexer_unittest.py
> index eadc6587..77976507 100644
> --- a/utils/ipc/mojo/public/tools/mojom/mojom/parse/lexer_unittest.py
> +++ b/utils/ipc/mojo/public/tools/mojom/mojom/parse/lexer_unittest.py
> @@ -2,7 +2,7 @@
>  # Use of this source code is governed by a BSD-style license that can be
>  # found in the LICENSE file.
>  
> -import imp
> +import importlib.util
>  import os.path
>  import sys
>  import unittest
> @@ -22,9 +22,7 @@ def _GetDirAbove(dirname):
>  sys.path.insert(1, os.path.join(_GetDirAbove("mojo"), "third_party"))
>  from ply import lex
>  
> -try:
> -  imp.find_module("mojom")
> -except ImportError:
> +if importlib.util.find_spec("mojom") is None:
>    sys.path.append(os.path.join(_GetDirAbove("pylib"), "pylib"))
>  import mojom.parse.lexer
>  
> diff --git a/utils/ipc/mojo/public/tools/mojom/mojom/parse/parser_unittest.py b/utils/ipc/mojo/public/tools/mojom/mojom/parse/parser_unittest.py
> index 6d6b7153..7e8acf43 100644
> --- a/utils/ipc/mojo/public/tools/mojom/mojom/parse/parser_unittest.py
> +++ b/utils/ipc/mojo/public/tools/mojom/mojom/parse/parser_unittest.py
> @@ -2,7 +2,6 @@
>  # Use of this source code is governed by a BSD-style license that can be
>  # found in the LICENSE file.
>  
> -import imp
>  import os.path
>  import sys
>  import unittest
> -- 
> 2.43.0
>
Laurent Pinchart Jan. 2, 2024, 1:58 p.m. UTC | #2
On Sat, Dec 30, 2023 at 09:04:05PM +0000, Kieran Bingham wrote:
> Quoting Khem Raj (2023-12-30 19:02:19)
> > This module is gone in python 3.12 onwards, in most places it is unused
> > so remove from those places, in some places where its still is needed
> > replace it with importlib.util
> 
> This should really be handled by updating to / importing the latest Mojom.
> 
> But I wouldn't refuse merging this as it fixes things now.
> 
> I don't think the importlib.util usages are used by our implementation -
> but it's a more complete fix I expect.
> 
> Acked-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
> 
> Paul, What's your plan on updating mojom here?

I gave this a try in the plane today and it seems to work fine. I'll
post patches soon.

> > Fixes [1]
> > 
> > [1] https://bugs.libcamera.org/show_bug.cgi?id=206
> > 
> > Signed-off-by: Khem Raj <raj.khem@gmail.com>
> > ---
> >  utils/ipc/mojo/public/tools/mojom/mojom/fileutil.py        | 1 -
> >  .../ipc/mojo/public/tools/mojom/mojom/fileutil_unittest.py | 1 -
> >  .../tools/mojom/mojom/generate/generator_unittest.py       | 7 ++-----
> >  .../tools/mojom/mojom/generate/translate_unittest.py       | 1 -
> >  .../mojo/public/tools/mojom/mojom/parse/ast_unittest.py    | 1 -
> >  .../mojom/mojom/parse/conditional_features_unittest.py     | 7 ++-----
> >  utils/ipc/mojo/public/tools/mojom/mojom/parse/lexer.py     | 1 -
> >  .../mojo/public/tools/mojom/mojom/parse/lexer_unittest.py  | 6 ++----
> >  .../mojo/public/tools/mojom/mojom/parse/parser_unittest.py | 1 -
> >  9 files changed, 6 insertions(+), 20 deletions(-)
> > 
> > diff --git a/utils/ipc/mojo/public/tools/mojom/mojom/fileutil.py b/utils/ipc/mojo/public/tools/mojom/mojom/fileutil.py
> > index bf626f54..e1c823da 100644
> > --- a/utils/ipc/mojo/public/tools/mojom/mojom/fileutil.py
> > +++ b/utils/ipc/mojo/public/tools/mojom/mojom/fileutil.py
> > @@ -3,7 +3,6 @@
> >  # found in the LICENSE file.
> >  
> >  import errno
> > -import imp
> >  import os.path
> >  import sys
> >  
> > diff --git a/utils/ipc/mojo/public/tools/mojom/mojom/fileutil_unittest.py b/utils/ipc/mojo/public/tools/mojom/mojom/fileutil_unittest.py
> > index ff5753a2..e754151f 100644
> > --- a/utils/ipc/mojo/public/tools/mojom/mojom/fileutil_unittest.py
> > +++ b/utils/ipc/mojo/public/tools/mojom/mojom/fileutil_unittest.py
> > @@ -2,7 +2,6 @@
> >  # Use of this source code is governed by a BSD-style license that can be
> >  # found in the LICENSE file.
> >  
> > -import imp
> >  import os.path
> >  import shutil
> >  import sys
> > diff --git a/utils/ipc/mojo/public/tools/mojom/mojom/generate/generator_unittest.py b/utils/ipc/mojo/public/tools/mojom/mojom/generate/generator_unittest.py
> > index 32c884a8..6cae6092 100644
> > --- a/utils/ipc/mojo/public/tools/mojom/mojom/generate/generator_unittest.py
> > +++ b/utils/ipc/mojo/public/tools/mojom/mojom/generate/generator_unittest.py
> > @@ -2,7 +2,7 @@
> >  # Use of this source code is governed by a BSD-style license that can be
> >  # found in the LICENSE file.
> >  
> > -import imp
> > +import importlib.util
> >  import os.path
> >  import sys
> >  import unittest
> > @@ -18,10 +18,7 @@ def _GetDirAbove(dirname):
> >      if tail == dirname:
> >        return path
> >  
> > -
> > -try:
> > -  imp.find_module("mojom")
> > -except ImportError:
> > +if importlib.util.find_spec("mojom") is None:
> >    sys.path.append(os.path.join(_GetDirAbove("pylib"), "pylib"))
> >  from mojom.generate import generator
> >  
> > diff --git a/utils/ipc/mojo/public/tools/mojom/mojom/generate/translate_unittest.py b/utils/ipc/mojo/public/tools/mojom/mojom/generate/translate_unittest.py
> > index 19905c8a..09724d88 100644
> > --- a/utils/ipc/mojo/public/tools/mojom/mojom/generate/translate_unittest.py
> > +++ b/utils/ipc/mojo/public/tools/mojom/mojom/generate/translate_unittest.py
> > @@ -2,7 +2,6 @@
> >  # Use of this source code is governed by a BSD-style license that can be
> >  # found in the LICENSE file.
> >  
> > -import imp
> >  import os.path
> >  import sys
> >  import unittest
> > diff --git a/utils/ipc/mojo/public/tools/mojom/mojom/parse/ast_unittest.py b/utils/ipc/mojo/public/tools/mojom/mojom/parse/ast_unittest.py
> > index 62798631..4ab51033 100644
> > --- a/utils/ipc/mojo/public/tools/mojom/mojom/parse/ast_unittest.py
> > +++ b/utils/ipc/mojo/public/tools/mojom/mojom/parse/ast_unittest.py
> > @@ -2,7 +2,6 @@
> >  # Use of this source code is governed by a BSD-style license that can be
> >  # found in the LICENSE file.
> >  
> > -import imp
> >  import os.path
> >  import sys
> >  import unittest
> > diff --git a/utils/ipc/mojo/public/tools/mojom/mojom/parse/conditional_features_unittest.py b/utils/ipc/mojo/public/tools/mojom/mojom/parse/conditional_features_unittest.py
> > index aa609be7..f3c2c95f 100644
> > --- a/utils/ipc/mojo/public/tools/mojom/mojom/parse/conditional_features_unittest.py
> > +++ b/utils/ipc/mojo/public/tools/mojom/mojom/parse/conditional_features_unittest.py
> > @@ -2,7 +2,7 @@
> >  # Use of this source code is governed by a BSD-style license that can be
> >  # found in the LICENSE file.
> >  
> > -import imp
> > +import importlib.util
> >  import os
> >  import sys
> >  import unittest
> > @@ -18,10 +18,7 @@ def _GetDirAbove(dirname):
> >      if tail == dirname:
> >        return path
> >  
> > -
> > -try:
> > -  imp.find_module('mojom')
> > -except ImportError:
> > +if importlib.util.find_spec("mojom") is None:
> >    sys.path.append(os.path.join(_GetDirAbove('pylib'), 'pylib'))
> >  import mojom.parse.ast as ast
> >  import mojom.parse.conditional_features as conditional_features
> > diff --git a/utils/ipc/mojo/public/tools/mojom/mojom/parse/lexer.py b/utils/ipc/mojo/public/tools/mojom/mojom/parse/lexer.py
> > index 3e084bbf..1e8b49f2 100644
> > --- a/utils/ipc/mojo/public/tools/mojom/mojom/parse/lexer.py
> > +++ b/utils/ipc/mojo/public/tools/mojom/mojom/parse/lexer.py
> > @@ -2,7 +2,6 @@
> >  # Use of this source code is governed by a BSD-style license that can be
> >  # found in the LICENSE file.
> >  
> > -import imp
> >  import os.path
> >  import sys
> >  
> > diff --git a/utils/ipc/mojo/public/tools/mojom/mojom/parse/lexer_unittest.py b/utils/ipc/mojo/public/tools/mojom/mojom/parse/lexer_unittest.py
> > index eadc6587..77976507 100644
> > --- a/utils/ipc/mojo/public/tools/mojom/mojom/parse/lexer_unittest.py
> > +++ b/utils/ipc/mojo/public/tools/mojom/mojom/parse/lexer_unittest.py
> > @@ -2,7 +2,7 @@
> >  # Use of this source code is governed by a BSD-style license that can be
> >  # found in the LICENSE file.
> >  
> > -import imp
> > +import importlib.util
> >  import os.path
> >  import sys
> >  import unittest
> > @@ -22,9 +22,7 @@ def _GetDirAbove(dirname):
> >  sys.path.insert(1, os.path.join(_GetDirAbove("mojo"), "third_party"))
> >  from ply import lex
> >  
> > -try:
> > -  imp.find_module("mojom")
> > -except ImportError:
> > +if importlib.util.find_spec("mojom") is None:
> >    sys.path.append(os.path.join(_GetDirAbove("pylib"), "pylib"))
> >  import mojom.parse.lexer
> >  
> > diff --git a/utils/ipc/mojo/public/tools/mojom/mojom/parse/parser_unittest.py b/utils/ipc/mojo/public/tools/mojom/mojom/parse/parser_unittest.py
> > index 6d6b7153..7e8acf43 100644
> > --- a/utils/ipc/mojo/public/tools/mojom/mojom/parse/parser_unittest.py
> > +++ b/utils/ipc/mojo/public/tools/mojom/mojom/parse/parser_unittest.py
> > @@ -2,7 +2,6 @@
> >  # Use of this source code is governed by a BSD-style license that can be
> >  # found in the LICENSE file.
> >  
> > -import imp
> >  import os.path
> >  import sys
> >  import unittest

Patch
diff mbox series

diff --git a/utils/ipc/mojo/public/tools/mojom/mojom/fileutil.py b/utils/ipc/mojo/public/tools/mojom/mojom/fileutil.py
index bf626f54..e1c823da 100644
--- a/utils/ipc/mojo/public/tools/mojom/mojom/fileutil.py
+++ b/utils/ipc/mojo/public/tools/mojom/mojom/fileutil.py
@@ -3,7 +3,6 @@ 
 # found in the LICENSE file.
 
 import errno
-import imp
 import os.path
 import sys
 
diff --git a/utils/ipc/mojo/public/tools/mojom/mojom/fileutil_unittest.py b/utils/ipc/mojo/public/tools/mojom/mojom/fileutil_unittest.py
index ff5753a2..e754151f 100644
--- a/utils/ipc/mojo/public/tools/mojom/mojom/fileutil_unittest.py
+++ b/utils/ipc/mojo/public/tools/mojom/mojom/fileutil_unittest.py
@@ -2,7 +2,6 @@ 
 # Use of this source code is governed by a BSD-style license that can be
 # found in the LICENSE file.
 
-import imp
 import os.path
 import shutil
 import sys
diff --git a/utils/ipc/mojo/public/tools/mojom/mojom/generate/generator_unittest.py b/utils/ipc/mojo/public/tools/mojom/mojom/generate/generator_unittest.py
index 32c884a8..6cae6092 100644
--- a/utils/ipc/mojo/public/tools/mojom/mojom/generate/generator_unittest.py
+++ b/utils/ipc/mojo/public/tools/mojom/mojom/generate/generator_unittest.py
@@ -2,7 +2,7 @@ 
 # Use of this source code is governed by a BSD-style license that can be
 # found in the LICENSE file.
 
-import imp
+import importlib.util
 import os.path
 import sys
 import unittest
@@ -18,10 +18,7 @@  def _GetDirAbove(dirname):
     if tail == dirname:
       return path
 
-
-try:
-  imp.find_module("mojom")
-except ImportError:
+if importlib.util.find_spec("mojom") is None:
   sys.path.append(os.path.join(_GetDirAbove("pylib"), "pylib"))
 from mojom.generate import generator
 
diff --git a/utils/ipc/mojo/public/tools/mojom/mojom/generate/translate_unittest.py b/utils/ipc/mojo/public/tools/mojom/mojom/generate/translate_unittest.py
index 19905c8a..09724d88 100644
--- a/utils/ipc/mojo/public/tools/mojom/mojom/generate/translate_unittest.py
+++ b/utils/ipc/mojo/public/tools/mojom/mojom/generate/translate_unittest.py
@@ -2,7 +2,6 @@ 
 # Use of this source code is governed by a BSD-style license that can be
 # found in the LICENSE file.
 
-import imp
 import os.path
 import sys
 import unittest
diff --git a/utils/ipc/mojo/public/tools/mojom/mojom/parse/ast_unittest.py b/utils/ipc/mojo/public/tools/mojom/mojom/parse/ast_unittest.py
index 62798631..4ab51033 100644
--- a/utils/ipc/mojo/public/tools/mojom/mojom/parse/ast_unittest.py
+++ b/utils/ipc/mojo/public/tools/mojom/mojom/parse/ast_unittest.py
@@ -2,7 +2,6 @@ 
 # Use of this source code is governed by a BSD-style license that can be
 # found in the LICENSE file.
 
-import imp
 import os.path
 import sys
 import unittest
diff --git a/utils/ipc/mojo/public/tools/mojom/mojom/parse/conditional_features_unittest.py b/utils/ipc/mojo/public/tools/mojom/mojom/parse/conditional_features_unittest.py
index aa609be7..f3c2c95f 100644
--- a/utils/ipc/mojo/public/tools/mojom/mojom/parse/conditional_features_unittest.py
+++ b/utils/ipc/mojo/public/tools/mojom/mojom/parse/conditional_features_unittest.py
@@ -2,7 +2,7 @@ 
 # Use of this source code is governed by a BSD-style license that can be
 # found in the LICENSE file.
 
-import imp
+import importlib.util
 import os
 import sys
 import unittest
@@ -18,10 +18,7 @@  def _GetDirAbove(dirname):
     if tail == dirname:
       return path
 
-
-try:
-  imp.find_module('mojom')
-except ImportError:
+if importlib.util.find_spec("mojom") is None:
   sys.path.append(os.path.join(_GetDirAbove('pylib'), 'pylib'))
 import mojom.parse.ast as ast
 import mojom.parse.conditional_features as conditional_features
diff --git a/utils/ipc/mojo/public/tools/mojom/mojom/parse/lexer.py b/utils/ipc/mojo/public/tools/mojom/mojom/parse/lexer.py
index 3e084bbf..1e8b49f2 100644
--- a/utils/ipc/mojo/public/tools/mojom/mojom/parse/lexer.py
+++ b/utils/ipc/mojo/public/tools/mojom/mojom/parse/lexer.py
@@ -2,7 +2,6 @@ 
 # Use of this source code is governed by a BSD-style license that can be
 # found in the LICENSE file.
 
-import imp
 import os.path
 import sys
 
diff --git a/utils/ipc/mojo/public/tools/mojom/mojom/parse/lexer_unittest.py b/utils/ipc/mojo/public/tools/mojom/mojom/parse/lexer_unittest.py
index eadc6587..77976507 100644
--- a/utils/ipc/mojo/public/tools/mojom/mojom/parse/lexer_unittest.py
+++ b/utils/ipc/mojo/public/tools/mojom/mojom/parse/lexer_unittest.py
@@ -2,7 +2,7 @@ 
 # Use of this source code is governed by a BSD-style license that can be
 # found in the LICENSE file.
 
-import imp
+import importlib.util
 import os.path
 import sys
 import unittest
@@ -22,9 +22,7 @@  def _GetDirAbove(dirname):
 sys.path.insert(1, os.path.join(_GetDirAbove("mojo"), "third_party"))
 from ply import lex
 
-try:
-  imp.find_module("mojom")
-except ImportError:
+if importlib.util.find_spec("mojom") is None:
   sys.path.append(os.path.join(_GetDirAbove("pylib"), "pylib"))
 import mojom.parse.lexer
 
diff --git a/utils/ipc/mojo/public/tools/mojom/mojom/parse/parser_unittest.py b/utils/ipc/mojo/public/tools/mojom/mojom/parse/parser_unittest.py
index 6d6b7153..7e8acf43 100644
--- a/utils/ipc/mojo/public/tools/mojom/mojom/parse/parser_unittest.py
+++ b/utils/ipc/mojo/public/tools/mojom/mojom/parse/parser_unittest.py
@@ -2,7 +2,6 @@ 
 # Use of this source code is governed by a BSD-style license that can be
 # found in the LICENSE file.
 
-import imp
 import os.path
 import sys
 import unittest