Merge "Handle deprecation of inspect.getargspec"
This commit is contained in:
commit
0260f0e86b
|
@ -13,7 +13,6 @@
|
||||||
|
|
||||||
import contextlib
|
import contextlib
|
||||||
import functools
|
import functools
|
||||||
import inspect
|
|
||||||
import operator
|
import operator
|
||||||
import threading
|
import threading
|
||||||
import warnings
|
import warnings
|
||||||
|
@ -27,6 +26,7 @@ from oslo_db import exception
|
||||||
from oslo_db import options
|
from oslo_db import options
|
||||||
from oslo_db.sqlalchemy import engines
|
from oslo_db.sqlalchemy import engines
|
||||||
from oslo_db.sqlalchemy import orm
|
from oslo_db.sqlalchemy import orm
|
||||||
|
from oslo_db.sqlalchemy import utils
|
||||||
|
|
||||||
|
|
||||||
class _symbol(object):
|
class _symbol(object):
|
||||||
|
@ -970,7 +970,7 @@ class _TransactionContextManager(object):
|
||||||
|
|
||||||
def __call__(self, fn):
|
def __call__(self, fn):
|
||||||
"""Decorate a function."""
|
"""Decorate a function."""
|
||||||
argspec = inspect.getargspec(fn)
|
argspec = utils.getargspec(fn)
|
||||||
if argspec.args[0] == 'self' or argspec.args[0] == 'cls':
|
if argspec.args[0] == 'self' or argspec.args[0] == 'cls':
|
||||||
context_index = 1
|
context_index = 1
|
||||||
else:
|
else:
|
||||||
|
|
|
@ -18,6 +18,7 @@
|
||||||
|
|
||||||
import collections
|
import collections
|
||||||
import contextlib
|
import contextlib
|
||||||
|
import inspect as pyinspect
|
||||||
import itertools
|
import itertools
|
||||||
import logging
|
import logging
|
||||||
import re
|
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):
|
class NonCommittingConnectable(object):
|
||||||
"""A ``Connectable`` substitute which rolls all operations back.
|
"""A ``Connectable`` substitute which rolls all operations back.
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue