Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

models: Do not make references for private symbols #718

Merged
merged 1 commit into from
Jun 18, 2021
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 6 additions & 3 deletions leapp/models/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -25,13 +25,12 @@ class Foobar(Model):
"""
import sys

from leapp.exceptions import ModelDefinitionError
from leapp.models import fields
from leapp.models.error_severity import ErrorSeverity

from leapp.exceptions import ModelDefinitionError
from leapp.models.fields import ModelMisuseError
from leapp.topics import DialogTopic, ErrorTopic, Topic
from leapp.utils.meta import get_flattened_subclasses, with_metaclass
from leapp.topics import ErrorTopic, DialogTopic, Topic


class ModelMeta(type):
Expand Down Expand Up @@ -219,6 +218,10 @@ def __delattr__(self, name):
delattr(self._module, name)

def __getattr__(self, item):
# Redirect private imports to the module and don't use our magic
# We do not support importing private Module symbols
if item.startswith('_'):
return getattr(self._module, item)
return getattr(self._module, item, None) or _module_ref(item)

sys.modules[__name__] = ReferenceDict(sys.modules[__name__])
Expand Down