In the newest version of the sqlalchemy 1.4.2 they replaced sqlalchemy.engine.cursor -> ResultProxy with some other stuff.
This leads to the following error:
(.venv) mau@mau maubot % python3 -m maubot
[2021-03-24 10:27:49,912] [INFO@maubot.init] Initializing maubot 0.1.0
[2021-03-24 10:27:49,912] [DEBUG@maubot.instance.zip] Preloading plugins...
Traceback (most recent call last):
File "/Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.7/lib/python3.7/runpy.py", line 193, in _run_module_as_main
"__main__", mod_spec)
File "/Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.7/lib/python3.7/runpy.py", line 85, in _run_code
exec(code, run_globals)
File "/Users/mau/Projects/maubot/maubot/maubot/__main__.py", line 61, in <module>
management_api = init_mgmt_api(config, loop)
File "/Users/mau/Projects/maubot/maubot/maubot/management/api/__init__.py", line 43, in init
importlib.import_module(f"maubot.management.api.{pkg}")
File "/Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.7/lib/python3.7/importlib/__init__.py", line 127, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "<frozen importlib._bootstrap>", line 1006, in _gcd_import
File "<frozen importlib._bootstrap>", line 983, in _find_and_load
File "<frozen importlib._bootstrap>", line 967, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 677, in _load_unlocked
File "<frozen importlib._bootstrap_external>", line 728, in exec_module
File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
File "/Users/mau/Projects/maubot/maubot/maubot/management/api/instance_database.py", line 22, in <module>
from sqlalchemy.engine.result import ResultProxy, RowProxy
ImportError: cannot import name 'ResultProxy' from 'sqlalchemy.engine.result' (/Users/mau/Projects/maubot/.venv/lib/python3.7/site-packages/sqlalchemy/engine/result.py)
Therefore I suggest for now to restrict the module version to <1.4
This means you can add an alias for a maubot server when logging in,
and then use that alias instead of typing the full URL each time.
Mostly useful for people with more than one maubot instance, as the
default server already didn't need to be typed out each time.