Skip to content

Commit dc08372

Browse files
authored
Merge pull request #18 from RLBot/upgrade
Making rlbot upgrades take immediate effect.
2 parents 474315a + 7f22f1b commit dc08372

1 file changed

Lines changed: 18 additions & 17 deletions

File tree

run.py

Lines changed: 18 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,40 +1,41 @@
1+
import sys
2+
13
# https://stackoverflow.com/a/51704613
24
try:
35
from pip import main as pipmain
46
except ImportError:
57
from pip._internal import main as pipmain
68

7-
89
DEFAULT_LOGGER = 'rlbot'
910

10-
# https://stackoverflow.com/a/24773951
11-
def install_and_import(package):
12-
import importlib
11+
if __name__ == '__main__':
1312

1413
try:
15-
importlib.import_module(package)
16-
except ImportError:
17-
pipmain(['install', package])
18-
finally:
19-
globals()[package] = importlib.import_module(package)
14+
from rlbot.utils import public_utils, logging_utils
2015

16+
logger = logging_utils.get_logger(DEFAULT_LOGGER)
17+
if not public_utils.have_internet():
18+
logger.log(logging_utils.logging_level,
19+
'Skipping upgrade check for now since it looks like you have no internet')
20+
elif public_utils.is_safe_to_upgrade():
21+
pipmain(['install', '-r', 'requirements.txt', '--upgrade', '--upgrade-strategy=eager'])
2122

22-
if __name__ == '__main__':
23-
install_and_import('rlbot')
24-
from rlbot.utils import public_utils, logging_utils
25-
logger = logging_utils.get_logger(DEFAULT_LOGGER)
26-
if not public_utils.have_internet():
27-
logger.log(logging_utils.logging_level, 'Skipping upgrade check for now since it looks like you have no internet')
28-
elif public_utils.is_safe_to_upgrade():
23+
# https://stackoverflow.com/a/44401013
24+
rlbots = [module for module in sys.modules if module.startswith('rlbot')]
25+
for rlbot_module in rlbots:
26+
sys.modules.pop(rlbot_module)
27+
28+
except ImportError:
2929
pipmain(['install', '-r', 'requirements.txt', '--upgrade', '--upgrade-strategy=eager'])
3030

3131
try:
32-
import sys
3332
if len(sys.argv) > 1 and sys.argv[1] == 'gui':
3433
from rlbot.gui.qt_root import RLBotQTGui
34+
3535
RLBotQTGui.main()
3636
else:
3737
from rlbot import runner
38+
3839
runner.main()
3940
except Exception as e:
4041
print("Encountered exception: ", e)

0 commit comments

Comments
 (0)