-
Notifications
You must be signed in to change notification settings - Fork 2
Allow subclassing from missing dependency #27
Copy link
Copy link
Open
Description
Problem
So far generalimport does not allow users to create subclasses of missing dependencies. So this code:
generalimport("my_module")
import my_module
class SubClass(my_module.BaseClass):
def __init__(self):
...fails with:
Traceback (most recent call last):
File "/work/generalimport/example.py", line 6, in <module>
class SubClass(test_module.BaseClass):
File "/work/generalimport/generalimport/fake_module.py", line 21, in error_func
raise MissingOptionalDependency(f"Optional dependency {name} was used but it isn't installed.")
generalimport.exception.MissingOptionalDependency: Optional dependency 'test_module' was used but it isn't installed.
This is quite limiting in OOP and makes using generalimport with libraries like sqlalchemy close to impossible.
Proposed solution
I propose leveraging __mro_entries__ to make this usecase work. Classes based on non-existing modules should fail only when initialized.
PR coming soon 🙂
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels
Type
Projects
Status
No status