Глядя на фрагменты кода, которые вы разместили, я думаю, что это связано со строкой global active_games
в методах start()
и end()
.
" Используется ключевое слово global создавать глобальные переменные из неглобальной области, например, внутри функции."(https://www.w3schools.com/python/ref_keyword_global.asp, последний вызов - 02.11.2020, w3cschools.com -> Python Tutorial -> Python global Keyword -> Definition and Usage)
Но вам не нужно объявлять словарь active_games в этих функциях, потому что вы уже объявили их в самом начале своего скрипта, как это
# Store all games running on server
active_games = dict()
Итак, global active_games
делает только то, что переопределяет ваш словарь active_games с пустой переменной с тем же именем, и именно отсюда берется возвращаемое значение None.
Если из описания вашей проблемы сказать, что это не совсем то, что происходит за кулисами, но самое меньшее, что вы можете сделать, - это удалить любые экземпляры global active_games
из своего кода и проверить позже со мной