diff --git a/varlink/server.py b/varlink/server.py index 03e7259..8031cd5 100644 --- a/varlink/server.py +++ b/varlink/server.py @@ -3,7 +3,6 @@ import os import socket import stat -import string from socketserver import BaseServer, StreamRequestHandler, ThreadingMixIn from .error import InterfaceNotFound, InvalidParameter, MethodNotImplemented, VarlinkEncoder, VarlinkError @@ -138,23 +137,16 @@ def _handle(self, message, raw_message, _server=None, _request=None): kwargs = {} - if hasattr(inspect, "signature"): - sig = inspect.signature(func) - arg_names = [ - ( - sig.parameters[k].kind - in (inspect.Parameter.POSITIONAL_OR_KEYWORD, inspect.Parameter.KEYWORD_ONLY) - and k - or None - ) - for k in sig.parameters.keys() - ] - else: - from itertools import izip - - spec = inspect.getargspec(func) - matched_args = [reversed(x) for x in [spec.args, spec.defaults or []]] - arg_names = dict(izip(*matched_args)) + sig = inspect.signature(func) + arg_names = [ + ( + sig.parameters[k].kind + in (inspect.Parameter.POSITIONAL_OR_KEYWORD, inspect.Parameter.KEYWORD_ONLY) + and k + or None + ) + for k in sig.parameters.keys() + ] if message.get("more", False) or message.get("oneway", False) or message.get("upgrade", False): if message.get("more", False) and "_more" in arg_names: @@ -312,7 +304,7 @@ def get_listen_fd(): except OSError: return None - fields = string.split(os.environ["LISTEN_FDNAMES"], ":") + fields = os.environ.get("LISTEN_FDNAMES", "").split(":") if len(fields) != fds: return None