move updater to own module

This commit is contained in:
Fabian Dill
2020-01-18 15:45:52 +01:00
parent ec95e4ab5e
commit b58558eb75
6 changed files with 60 additions and 39 deletions

View File

@@ -3,41 +3,18 @@ import asyncio
import json
import logging
import shlex
import subprocess
import sys
import urllib.parse
import importlib
import ModuleUpdate
ModuleUpdate.update()
import colorama
import websockets
import aioconsole
import Items
import Regions
def update_command():
subprocess.call([sys.executable, '-m', 'pip', 'install', '-r', 'requirements.txt', '--upgrade'])
with open('requirements.txt') as requirementsfile:
for line in requirementsfile.readlines():
module, remoteversion = line.split(">=")
try:
module = importlib.import_module(module)
except:
import traceback
traceback.print_exc()
input(f'Required python module {module} not found, press enter to install it')
update_command()
else:
if hasattr(module, "__version__"):
module_version = module.__version__
module = module.__name__ #also unloads the module to make it writable
if type(module_version) == str:
module_version = tuple(int(part.strip()) for part in module_version.split("."))
remoteversion = tuple(int(part.strip()) for part in remoteversion.split("."))
if module_version < remoteversion:
input(f'Required python module {module} is outdated ({module_version}<{remoteversion}), press enter to upgrade it')
update_command()
import aioconsole
import websockets
import colorama
class ReceivedItem:
def __init__(self, item, location, player):
self.item = item