|
![](https://seccdn.libravatar.org/avatar/d50945d53b81afb224bf04487323c9a3f0d507badb42ee4509fe63d4369afbe1?s=16&d=retro) |
cd4c38 |
From 01d7101b39dd9049ae3cb9c30195b42ed9c76579 Mon Sep 17 00:00:00 2001
|
|
![](https://seccdn.libravatar.org/avatar/d50945d53b81afb224bf04487323c9a3f0d507badb42ee4509fe63d4369afbe1?s=16&d=retro) |
cd4c38 |
From: "Benjamin A. Beasley" <code@musicinmybrain.net>
|
|
![](https://seccdn.libravatar.org/avatar/d50945d53b81afb224bf04487323c9a3f0d507badb42ee4509fe63d4369afbe1?s=16&d=retro) |
cd4c38 |
Date: Tue, 20 Jun 2023 11:36:40 -0400
|
|
![](https://seccdn.libravatar.org/avatar/d50945d53b81afb224bf04487323c9a3f0d507badb42ee4509fe63d4369afbe1?s=16&d=retro) |
cd4c38 |
Subject: [PATCH 1/2] Do not use importlib find_module API
|
|
![](https://seccdn.libravatar.org/avatar/d50945d53b81afb224bf04487323c9a3f0d507badb42ee4509fe63d4369afbe1?s=16&d=retro) |
cd4c38 |
|
|
![](https://seccdn.libravatar.org/avatar/d50945d53b81afb224bf04487323c9a3f0d507badb42ee4509fe63d4369afbe1?s=16&d=retro) |
cd4c38 |
This API was removed in Python 3.12
|
|
![](https://seccdn.libravatar.org/avatar/d50945d53b81afb224bf04487323c9a3f0d507badb42ee4509fe63d4369afbe1?s=16&d=retro) |
cd4c38 |
(https://github.com/python/cpython/issues/98040).
|
|
![](https://seccdn.libravatar.org/avatar/d50945d53b81afb224bf04487323c9a3f0d507badb42ee4509fe63d4369afbe1?s=16&d=retro) |
cd4c38 |
|
|
![](https://seccdn.libravatar.org/avatar/d50945d53b81afb224bf04487323c9a3f0d507badb42ee4509fe63d4369afbe1?s=16&d=retro) |
cd4c38 |
Fixes Python 3.12 support in grpcio tests.
|
|
![](https://seccdn.libravatar.org/avatar/d50945d53b81afb224bf04487323c9a3f0d507badb42ee4509fe63d4369afbe1?s=16&d=retro) |
cd4c38 |
---
|
|
![](https://seccdn.libravatar.org/avatar/d50945d53b81afb224bf04487323c9a3f0d507badb42ee4509fe63d4369afbe1?s=16&d=retro) |
cd4c38 |
src/python/grpcio_tests/tests/_loader.py | 4 +++-
|
|
![](https://seccdn.libravatar.org/avatar/d50945d53b81afb224bf04487323c9a3f0d507badb42ee4509fe63d4369afbe1?s=16&d=retro) |
cd4c38 |
1 file changed, 3 insertions(+), 1 deletion(-)
|
|
![](https://seccdn.libravatar.org/avatar/d50945d53b81afb224bf04487323c9a3f0d507badb42ee4509fe63d4369afbe1?s=16&d=retro) |
cd4c38 |
|
|
![](https://seccdn.libravatar.org/avatar/d50945d53b81afb224bf04487323c9a3f0d507badb42ee4509fe63d4369afbe1?s=16&d=retro) |
cd4c38 |
diff --git a/src/python/grpcio_tests/tests/_loader.py b/src/python/grpcio_tests/tests/_loader.py
|
|
![](https://seccdn.libravatar.org/avatar/d50945d53b81afb224bf04487323c9a3f0d507badb42ee4509fe63d4369afbe1?s=16&d=retro) |
cd4c38 |
index 80c107aa8e..c497a9aabd 100644
|
|
![](https://seccdn.libravatar.org/avatar/d50945d53b81afb224bf04487323c9a3f0d507badb42ee4509fe63d4369afbe1?s=16&d=retro) |
cd4c38 |
--- a/src/python/grpcio_tests/tests/_loader.py
|
|
![](https://seccdn.libravatar.org/avatar/d50945d53b81afb224bf04487323c9a3f0d507badb42ee4509fe63d4369afbe1?s=16&d=retro) |
cd4c38 |
+++ b/src/python/grpcio_tests/tests/_loader.py
|
|
![](https://seccdn.libravatar.org/avatar/d50945d53b81afb224bf04487323c9a3f0d507badb42ee4509fe63d4369afbe1?s=16&d=retro) |
cd4c38 |
@@ -71,7 +71,9 @@ class Loader(object):
|
|
![](https://seccdn.libravatar.org/avatar/d50945d53b81afb224bf04487323c9a3f0d507badb42ee4509fe63d4369afbe1?s=16&d=retro) |
cd4c38 |
"""
|
|
![](https://seccdn.libravatar.org/avatar/d50945d53b81afb224bf04487323c9a3f0d507badb42ee4509fe63d4369afbe1?s=16&d=retro) |
cd4c38 |
for importer, module_name, is_package in (
|
|
![](https://seccdn.libravatar.org/avatar/d50945d53b81afb224bf04487323c9a3f0d507badb42ee4509fe63d4369afbe1?s=16&d=retro) |
cd4c38 |
pkgutil.walk_packages(package_paths)):
|
|
![](https://seccdn.libravatar.org/avatar/d50945d53b81afb224bf04487323c9a3f0d507badb42ee4509fe63d4369afbe1?s=16&d=retro) |
cd4c38 |
- module = importer.find_module(module_name).load_module(module_name)
|
|
![](https://seccdn.libravatar.org/avatar/d50945d53b81afb224bf04487323c9a3f0d507badb42ee4509fe63d4369afbe1?s=16&d=retro) |
cd4c38 |
+ spec = importer.find_spec(module_name)
|
|
![](https://seccdn.libravatar.org/avatar/d50945d53b81afb224bf04487323c9a3f0d507badb42ee4509fe63d4369afbe1?s=16&d=retro) |
cd4c38 |
+ module = importlib.util.module_from_spec(spec)
|
|
![](https://seccdn.libravatar.org/avatar/d50945d53b81afb224bf04487323c9a3f0d507badb42ee4509fe63d4369afbe1?s=16&d=retro) |
cd4c38 |
+ spec.loader.exec_module(module)
|
|
![](https://seccdn.libravatar.org/avatar/d50945d53b81afb224bf04487323c9a3f0d507badb42ee4509fe63d4369afbe1?s=16&d=retro) |
cd4c38 |
self.visit_module(module)
|
|
![](https://seccdn.libravatar.org/avatar/d50945d53b81afb224bf04487323c9a3f0d507badb42ee4509fe63d4369afbe1?s=16&d=retro) |
cd4c38 |
|
|
![](https://seccdn.libravatar.org/avatar/d50945d53b81afb224bf04487323c9a3f0d507badb42ee4509fe63d4369afbe1?s=16&d=retro) |
cd4c38 |
def visit_module(self, module):
|
|
![](https://seccdn.libravatar.org/avatar/d50945d53b81afb224bf04487323c9a3f0d507badb42ee4509fe63d4369afbe1?s=16&d=retro) |
cd4c38 |
--
|
|
![](https://seccdn.libravatar.org/avatar/d50945d53b81afb224bf04487323c9a3f0d507badb42ee4509fe63d4369afbe1?s=16&d=retro) |
cd4c38 |
2.40.1
|
|
![](https://seccdn.libravatar.org/avatar/d50945d53b81afb224bf04487323c9a3f0d507badb42ee4509fe63d4369afbe1?s=16&d=retro) |
cd4c38 |
|
|
![](https://seccdn.libravatar.org/avatar/d50945d53b81afb224bf04487323c9a3f0d507badb42ee4509fe63d4369afbe1?s=16&d=retro) |
cd4c38 |
|
|
![](https://seccdn.libravatar.org/avatar/d50945d53b81afb224bf04487323c9a3f0d507badb42ee4509fe63d4369afbe1?s=16&d=retro) |
cd4c38 |
From a7191f6781674340740896d5a284ab856e596b2e Mon Sep 17 00:00:00 2001
|
|
![](https://seccdn.libravatar.org/avatar/d50945d53b81afb224bf04487323c9a3f0d507badb42ee4509fe63d4369afbe1?s=16&d=retro) |
cd4c38 |
From: "Benjamin A. Beasley" <code@musicinmybrain.net>
|
|
![](https://seccdn.libravatar.org/avatar/d50945d53b81afb224bf04487323c9a3f0d507badb42ee4509fe63d4369afbe1?s=16&d=retro) |
cd4c38 |
Date: Tue, 20 Jun 2023 12:38:23 -0400
|
|
![](https://seccdn.libravatar.org/avatar/d50945d53b81afb224bf04487323c9a3f0d507badb42ee4509fe63d4369afbe1?s=16&d=retro) |
cd4c38 |
Subject: [PATCH 2/2] More importlib find_module migration
|
|
![](https://seccdn.libravatar.org/avatar/d50945d53b81afb224bf04487323c9a3f0d507badb42ee4509fe63d4369afbe1?s=16&d=retro) |
cd4c38 |
|
|
![](https://seccdn.libravatar.org/avatar/d50945d53b81afb224bf04487323c9a3f0d507badb42ee4509fe63d4369afbe1?s=16&d=retro) |
cd4c38 |
Do not use importlib find_module API in bazel/_gevent_test_main.py
|
|
![](https://seccdn.libravatar.org/avatar/d50945d53b81afb224bf04487323c9a3f0d507badb42ee4509fe63d4369afbe1?s=16&d=retro) |
cd4c38 |
|
|
![](https://seccdn.libravatar.org/avatar/d50945d53b81afb224bf04487323c9a3f0d507badb42ee4509fe63d4369afbe1?s=16&d=retro) |
cd4c38 |
This API was removed in Python 3.12
|
|
![](https://seccdn.libravatar.org/avatar/d50945d53b81afb224bf04487323c9a3f0d507badb42ee4509fe63d4369afbe1?s=16&d=retro) |
cd4c38 |
(https://github.com/python/cpython/issues/98040).
|
|
![](https://seccdn.libravatar.org/avatar/d50945d53b81afb224bf04487323c9a3f0d507badb42ee4509fe63d4369afbe1?s=16&d=retro) |
cd4c38 |
---
|
|
![](https://seccdn.libravatar.org/avatar/d50945d53b81afb224bf04487323c9a3f0d507badb42ee4509fe63d4369afbe1?s=16&d=retro) |
cd4c38 |
bazel/_gevent_test_main.py | 5 ++++-
|
|
![](https://seccdn.libravatar.org/avatar/d50945d53b81afb224bf04487323c9a3f0d507badb42ee4509fe63d4369afbe1?s=16&d=retro) |
cd4c38 |
1 file changed, 4 insertions(+), 1 deletion(-)
|
|
![](https://seccdn.libravatar.org/avatar/d50945d53b81afb224bf04487323c9a3f0d507badb42ee4509fe63d4369afbe1?s=16&d=retro) |
cd4c38 |
|
|
![](https://seccdn.libravatar.org/avatar/d50945d53b81afb224bf04487323c9a3f0d507badb42ee4509fe63d4369afbe1?s=16&d=retro) |
cd4c38 |
diff --git a/bazel/_gevent_test_main.py b/bazel/_gevent_test_main.py
|
|
![](https://seccdn.libravatar.org/avatar/d50945d53b81afb224bf04487323c9a3f0d507badb42ee4509fe63d4369afbe1?s=16&d=retro) |
cd4c38 |
index f7936daaf0..bec31a911b 100644
|
|
![](https://seccdn.libravatar.org/avatar/d50945d53b81afb224bf04487323c9a3f0d507badb42ee4509fe63d4369afbe1?s=16&d=retro) |
cd4c38 |
--- a/bazel/_gevent_test_main.py
|
|
![](https://seccdn.libravatar.org/avatar/d50945d53b81afb224bf04487323c9a3f0d507badb42ee4509fe63d4369afbe1?s=16&d=retro) |
cd4c38 |
+++ b/bazel/_gevent_test_main.py
|
|
![](https://seccdn.libravatar.org/avatar/d50945d53b81afb224bf04487323c9a3f0d507badb42ee4509fe63d4369afbe1?s=16&d=retro) |
cd4c38 |
@@ -42,6 +42,7 @@ import unittest
|
|
![](https://seccdn.libravatar.org/avatar/d50945d53b81afb224bf04487323c9a3f0d507badb42ee4509fe63d4369afbe1?s=16&d=retro) |
cd4c38 |
import sys
|
|
![](https://seccdn.libravatar.org/avatar/d50945d53b81afb224bf04487323c9a3f0d507badb42ee4509fe63d4369afbe1?s=16&d=retro) |
cd4c38 |
import os
|
|
![](https://seccdn.libravatar.org/avatar/d50945d53b81afb224bf04487323c9a3f0d507badb42ee4509fe63d4369afbe1?s=16&d=retro) |
cd4c38 |
import pkgutil
|
|
![](https://seccdn.libravatar.org/avatar/d50945d53b81afb224bf04487323c9a3f0d507badb42ee4509fe63d4369afbe1?s=16&d=retro) |
cd4c38 |
+import importlib
|
|
![](https://seccdn.libravatar.org/avatar/d50945d53b81afb224bf04487323c9a3f0d507badb42ee4509fe63d4369afbe1?s=16&d=retro) |
cd4c38 |
|
|
![](https://seccdn.libravatar.org/avatar/d50945d53b81afb224bf04487323c9a3f0d507badb42ee4509fe63d4369afbe1?s=16&d=retro) |
cd4c38 |
def trace_callback(event, args):
|
|
![](https://seccdn.libravatar.org/avatar/d50945d53b81afb224bf04487323c9a3f0d507badb42ee4509fe63d4369afbe1?s=16&d=retro) |
cd4c38 |
if event in ("switch", "throw"):
|
|
![](https://seccdn.libravatar.org/avatar/d50945d53b81afb224bf04487323c9a3f0d507badb42ee4509fe63d4369afbe1?s=16&d=retro) |
cd4c38 |
@@ -73,7 +74,9 @@ class SingleLoader(object):
|
|
![](https://seccdn.libravatar.org/avatar/d50945d53b81afb224bf04487323c9a3f0d507badb42ee4509fe63d4369afbe1?s=16&d=retro) |
cd4c38 |
tests = []
|
|
![](https://seccdn.libravatar.org/avatar/d50945d53b81afb224bf04487323c9a3f0d507badb42ee4509fe63d4369afbe1?s=16&d=retro) |
cd4c38 |
for importer, module_name, is_package in pkgutil.walk_packages([os.path.dirname(os.path.relpath(__file__))]):
|
|
![](https://seccdn.libravatar.org/avatar/d50945d53b81afb224bf04487323c9a3f0d507badb42ee4509fe63d4369afbe1?s=16&d=retro) |
cd4c38 |
if pattern in module_name:
|
|
![](https://seccdn.libravatar.org/avatar/d50945d53b81afb224bf04487323c9a3f0d507badb42ee4509fe63d4369afbe1?s=16&d=retro) |
cd4c38 |
- module = importer.find_module(module_name).load_module(module_name)
|
|
![](https://seccdn.libravatar.org/avatar/d50945d53b81afb224bf04487323c9a3f0d507badb42ee4509fe63d4369afbe1?s=16&d=retro) |
cd4c38 |
+ spec = importer.find_spec(module_name)
|
|
![](https://seccdn.libravatar.org/avatar/d50945d53b81afb224bf04487323c9a3f0d507badb42ee4509fe63d4369afbe1?s=16&d=retro) |
cd4c38 |
+ module = importlib.util.module_from_spec(spec)
|
|
![](https://seccdn.libravatar.org/avatar/d50945d53b81afb224bf04487323c9a3f0d507badb42ee4509fe63d4369afbe1?s=16&d=retro) |
cd4c38 |
+ spec.loader.exec_module(module)
|
|
![](https://seccdn.libravatar.org/avatar/d50945d53b81afb224bf04487323c9a3f0d507badb42ee4509fe63d4369afbe1?s=16&d=retro) |
cd4c38 |
tests.append(loader.loadTestsFromModule(module))
|
|
![](https://seccdn.libravatar.org/avatar/d50945d53b81afb224bf04487323c9a3f0d507badb42ee4509fe63d4369afbe1?s=16&d=retro) |
cd4c38 |
if len(tests) != 1:
|
|
![](https://seccdn.libravatar.org/avatar/d50945d53b81afb224bf04487323c9a3f0d507badb42ee4509fe63d4369afbe1?s=16&d=retro) |
cd4c38 |
raise AssertionError("Expected only 1 test module. Found {}".format(tests))
|
|
![](https://seccdn.libravatar.org/avatar/d50945d53b81afb224bf04487323c9a3f0d507badb42ee4509fe63d4369afbe1?s=16&d=retro) |
cd4c38 |
--
|
|
![](https://seccdn.libravatar.org/avatar/d50945d53b81afb224bf04487323c9a3f0d507badb42ee4509fe63d4369afbe1?s=16&d=retro) |
cd4c38 |
2.40.1
|
|
![](https://seccdn.libravatar.org/avatar/d50945d53b81afb224bf04487323c9a3f0d507badb42ee4509fe63d4369afbe1?s=16&d=retro) |
cd4c38 |
|