diff -Naur a/bottle.py b/bottle.py --- a/bottle.py 2023-02-25 16:33:57.484154733 +0800 +++ b/bottle.py 2023-02-25 16:24:53.631418542 +0800 @@ -64,6 +64,7 @@ py3k = py >= (3, 0, 0) py25 = py < (2, 6, 0) py31 = (3, 1, 0) <= py < (3, 2, 0) +py310 = py >= (3, 10) # Workaround for the missing "as" keyword in py3k. def _e(): return sys.exc_info()[1] @@ -84,7 +85,10 @@ from urllib.parse import urlencode, quote as urlquote, unquote as urlunquote urlunquote = functools.partial(urlunquote, encoding='latin1') from http.cookies import SimpleCookie - from collections import MutableMapping as DictMixin + if py310: + from _collections_abc import MutableMapping as DictMixin + else: + from collections import MutableMapping as DictMixin import pickle from io import BytesIO from configparser import ConfigParser