diff --git a/0001-Implement-getargspec-using-inspect.Signature.patch b/0001-Implement-getargspec-using-inspect.Signature.patch new file mode 100644 index 0000000..32f27b5 --- /dev/null +++ b/0001-Implement-getargspec-using-inspect.Signature.patch @@ -0,0 +1,45 @@ +From 9161e24e45bb568c57d9c62e4815b5fe3b4e0950 Mon Sep 17 00:00:00 2001 +From: Riley Banks +Date: Tue, 11 Jan 2022 08:40:42 +0100 +Subject: [PATCH] Implement getargspec using inspect.Signature + +--- + bottle.py | 20 +++++++++++++++++++- + 1 file changed, 19 insertions(+), 1 deletion(-) + +diff --git a/bottle.py b/bottle.py +index 08bce53..c700625 100644 +--- a/bottle.py ++++ b/bottle.py +@@ -40,9 +40,27 @@ import base64, cgi, email.utils, functools, hmac, itertools, mimetypes,\ + from datetime import date as datedate, datetime, timedelta + from tempfile import TemporaryFile + from traceback import format_exc, print_exc +-from inspect import getargspec + from unicodedata import normalize + ++# inspect.getargspec was removed in Python 3.6, use ++# Signature-based version where we can (Python 3.3+) ++try: ++ from inspect import signature ++ def getargspec(func): ++ params = signature(func).parameters ++ args, varargs, keywords, defaults = [], None, None, [] ++ for name, param in params.items(): ++ if param.kind == param.VAR_POSITIONAL: ++ varargs = name ++ elif param.kind == param.VAR_KEYWORD: ++ keywords = name ++ else: ++ args.append(name) ++ if param.default is not param.empty: ++ defaults.append(param.default) ++ return (args, varargs, keywords, tuple(defaults) or defaults) ++except ImportError: ++ from inspect import getargspec + + try: from simplejson import dumps as json_dumps, loads as json_lds + except ImportError: # pragma: no cover +-- +2.33.1 + diff --git a/python-bottle.spec b/python-bottle.spec index 74be9d1..f1de0b4 100644 --- a/python-bottle.spec +++ b/python-bottle.spec @@ -9,6 +9,10 @@ License: MIT URL: http://bottlepy.org Source0: https://github.com/bottlepy/%{srcname}/archive/%{version}.tar.gz#/%{srcname}-%{version}.tar.gz +# Python 3.11 compatibility, implement getargspec using inspect.Signature +# https://github.com/bottlepy/bottle/commit/6fd2aae7fd3d3ee6782c603628e6ec48fc0579e5 +Patch: 0001-Implement-getargspec-using-inspect.Signature.patch + BuildArch: noarch BuildRequires: python%{python3_pkgversion}-devel