From b507ffb17024efc9922f2f3d0b8f5fa124ba93e6 Mon Sep 17 00:00:00 2001 From: Jack Rosenthal Date: Sat, 7 Oct 2023 21:03:31 -0600 Subject: [PATCH] fillerbase: Drop usage of inspect.getargspec() inspect.getargspec() was deprecated in Python 3.3, and removed in Python 3.11. Change to using inspect.signature to see if the method accepts keyword arguments. Fixes: #13 --- sprox/fillerbase.py | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/sprox/fillerbase.py b/sprox/fillerbase.py index d92898d..8619e53 100644 --- a/sprox/fillerbase.py +++ b/sprox/fillerbase.py @@ -226,11 +226,13 @@ def get_value(self, values=None, **kw): for field in self.__fields__: field_method = getattr(self, field, None) if inspect.ismethod(field_method): - argspec = inspect.getargspec(field_method) - if argspec and (len(argspec[0])-2>=len(kw) or argspec[2]): - value = getattr(self, field)(obj, **kw) + signature = inspect.signature(field_method) + try: + signature.bind(obj, **kw) + except TypeError: + value = field_method(obj) else: - value = getattr(self, field)(obj) + value = field_method(obj, **kw) else: value = getattr(obj, field) if 'password' in field.lower():