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): def __enter__(self, *args, **kwargs):
self.spec.loader.exec_module(self.imported) self.spec.loader.exec_module(self.imported)
return self return self.imported
def __exit__(self, *args, **kwargs): def __exit__(self, *args, **kwargs):
# TODO: https://stackoverflow.com/questions/28157929/how-to-safely-handle-an-exception-inside-a-context-manager # 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: while 1:
profile = archinstall.select_profile(archinstall.list_profiles()) 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(): if not profile[1]._prep_function():
archinstall.log(' * Profile\'s preperation requirements was not fulfilled.', bg='black', fg='red') archinstall.log(' * Profile\'s preperation requirements was not fulfilled.', bg='black', fg='red')
continue continue

View File

@ -11,7 +11,7 @@ def _prep_function(*args, **kwargs):
""" """
profile = archinstall.Profile(None, 'xorg') 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'): if hasattr(imported, '_prep_function'):
return imported._prep_function() return imported._prep_function()
else: else: