Merge "Handle deprecation of inspect.getargspec"
This commit is contained in:
commit
0260f0e86b
|
@ -13,7 +13,6 @@
|
|||
|
||||
import contextlib
|
||||
import functools
|
||||
import inspect
|
||||
import operator
|
||||
import threading
|
||||
import warnings
|
||||
|
@ -27,6 +26,7 @@ from oslo_db import exception
|
|||
from oslo_db import options
|
||||
from oslo_db.sqlalchemy import engines
|
||||
from oslo_db.sqlalchemy import orm
|
||||
from oslo_db.sqlalchemy import utils
|
||||
|
||||
|
||||
class _symbol(object):
|
||||
|
@ -970,7 +970,7 @@ class _TransactionContextManager(object):
|
|||
|
||||
def __call__(self, fn):
|
||||
"""Decorate a function."""
|
||||
argspec = inspect.getargspec(fn)
|
||||
argspec = utils.getargspec(fn)
|
||||
if argspec.args[0] == 'self' or argspec.args[0] == 'cls':
|
||||
context_index = 1
|
||||
else:
|
||||
|
|
|
@ -18,6 +18,7 @@
|
|||
|
||||
import collections
|
||||
import contextlib
|
||||
import inspect as pyinspect
|
||||
import itertools
|
||||
import logging
|
||||
import re
|
||||
|
@ -1227,6 +1228,25 @@ def suspend_fk_constraints_for_col_alter(
|
|||
)
|
||||
|
||||
|
||||
def getargspec(fn):
|
||||
"""Inspects a function for its argspec.
|
||||
|
||||
This is to handle a difference between py2/3. The Python 2.x getargspec
|
||||
call is deprecated in Python 3.x, with the suggestion to use the signature
|
||||
call instead.
|
||||
|
||||
To keep compatibility with the results, while avoiding deprecation
|
||||
warnings, this instead will use the getfullargspec instead.
|
||||
|
||||
:param fn: The function to inspect.
|
||||
:returns: The argspec for the function.
|
||||
"""
|
||||
if hasattr(pyinspect, 'getfullargspec'):
|
||||
return pyinspect.getfullargspec(fn)
|
||||
|
||||
return pyinspect.getargspec(fn)
|
||||
|
||||
|
||||
class NonCommittingConnectable(object):
|
||||
"""A ``Connectable`` substitute which rolls all operations back.
|
||||
|
||||
|
|
Loading…
Reference in New Issue