Tweaked the import logic so that the Imported() class returns the actual module imported when executing the import, rather than returning itself. Also fixed awesome so that it loads and looks for _prep_function() with a safe and correct namespace

This commit is contained in:
Anton Hvornum 2020-09-30 09:56:35 +00:00
parent 63d774b7d7
commit 54e2161e29
3 changed files with 3 additions and 3 deletions

View File

@ -47,7 +47,7 @@ class Imported():
def __enter__(self, *args, **kwargs):
self.spec.loader.exec_module(self.imported)
return self
return self.imported
def __exit__(self, *args, **kwargs):
# TODO: https://stackoverflow.com/questions/28157929/how-to-safely-handle-an-exception-inside-a-context-manager

View File

@ -94,7 +94,7 @@ while 1:
while 1:
profile = archinstall.select_profile(archinstall.list_profiles())
if profile != str: # Got a imported profile
if type(profile) != str: # Got a imported profile
if not profile[1]._prep_function():
archinstall.log(' * Profile\'s preperation requirements was not fulfilled.', bg='black', fg='red')
continue

View File

@ -11,7 +11,7 @@ def _prep_function(*args, **kwargs):
"""
profile = archinstall.Profile(None, 'xorg')
with profile.load_instructions() as imported:
with profile.load_instructions(namespace='xorg.py') as imported:
if hasattr(imported, '_prep_function'):
return imported._prep_function()
else: