This is an automated email from the ASF dual-hosted git repository.

jialiang pushed a commit to branch trunk
in repository https://gitbox.apache.org/repos/asf/ambari.git


The following commit(s) were added to refs/heads/trunk by this push:
     new 1b323d7820 AMBARI-26524: Fix inspect deprecations for Python 3.11 
compatibility (#4034)
1b323d7820 is described below

commit 1b323d782060fa61aed1373cbd2a266cc2bf2c61
Author: HARSHITH GANDHE <[email protected]>
AuthorDate: Thu Jul 3 12:04:00 2025 +0530

    AMBARI-26524: Fix inspect deprecations for Python 3.11 compatibility (#4034)
---
 .../src/main/python/ambari_jinja2/docs/jinjaext.py     |  7 ++++---
 .../resource_management/libraries/script/script.py     |  4 ++--
 ambari-common/src/test/python/mock/mock.py             | 18 ++++++++----------
 3 files changed, 14 insertions(+), 15 deletions(-)

diff --git a/ambari-common/src/main/python/ambari_jinja2/docs/jinjaext.py 
b/ambari-common/src/main/python/ambari_jinja2/docs/jinjaext.py
index b9fb4003a8..94c76a0e55 100644
--- a/ambari-common/src/main/python/ambari_jinja2/docs/jinjaext.py
+++ b/ambari-common/src/main/python/ambari_jinja2/docs/jinjaext.py
@@ -91,11 +91,12 @@ def format_function(name, aliases, func):
             signature = match.group(1)
     else:
         try:
-            argspec = inspect.getargspec(func)
+            sig = inspect.signature(func)
+            params = list(sig.parameters.values())
             if getattr(func, 'environmentfilter', False) or \
                getattr(func, 'contextfilter', False):
-                del argspec[0][0]
-            signature = inspect.formatargspec(*argspec)
+                params = params[1:]
+            signature = f"({', '.join(str(param) for param in params)})"
         except:
             pass
     result = [f'.. function:: {name}{signature}', '']
diff --git 
a/ambari-common/src/main/python/resource_management/libraries/script/script.py 
b/ambari-common/src/main/python/resource_management/libraries/script/script.py
index 4247689152..6b231349d3 100644
--- 
a/ambari-common/src/main/python/resource_management/libraries/script/script.py
+++ 
b/ambari-common/src/main/python/resource_management/libraries/script/script.py
@@ -1149,7 +1149,7 @@ class Script(object):
     else:
       # To remain backward compatible with older stacks, only pass 
upgrade_type if available.
       # TODO, remove checking the argspec for "upgrade_type" once all of the 
services support that optional param.
-      if "upgrade_type" in inspect.getargspec(self.stop).args:
+      if "upgrade_type" in inspect.signature(self.stop).parameters:
         self.stop(env, upgrade_type=upgrade_type)
       else:
         if is_stack_upgrade:
@@ -1192,7 +1192,7 @@ class Script(object):
       # To remain backward compatible with older stacks, only pass 
upgrade_type if available.
       # TODO, remove checking the argspec for "upgrade_type" once all of the 
services support that optional param.
       self.pre_start(env)
-      if "upgrade_type" in inspect.getargspec(self.start).args:
+      if "upgrade_type" in inspect.signature(self.start).parameters:
         self.start(env, upgrade_type=upgrade_type)
       else:
         if is_stack_upgrade:
diff --git a/ambari-common/src/test/python/mock/mock.py 
b/ambari-common/src/test/python/mock/mock.py
index 076ef12c2b..983a62f17a 100644
--- a/ambari-common/src/test/python/mock/mock.py
+++ b/ambari-common/src/test/python/mock/mock.py
@@ -201,16 +201,14 @@ def _getsignature(func, skipfirst, instance=False):
     regargs = regargs[1:]
 
   if inPy3k:
-    signature = inspect.formatargspec(
-      regargs,
-      varargs,
-      varkw,
-      defaults,
-      kwonly,
-      kwonlydef,
-      ann,
-      formatvalue=lambda value: "",
-    )
+    parts = []
+    if regargs:
+      parts.extend(regargs)
+    if varargs:
+      parts.append("*" + varargs)
+    if varkw:
+      parts.append("**" + varkw)
+    signature = "(" + ", ".join(parts) + ")"
   else:
     signature = inspect.formatargspec(
       regargs, varargs, varkwargs, defaults, formatvalue=lambda value: ""


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to