Remove utilities.utils.dynamic_import()

This commit is contained in:
Jeremy Stretch 2024-03-21 16:09:53 -04:00
parent 7b1a08a187
commit b86c8a9524
2 changed files with 5 additions and 16 deletions

View File

@ -4,6 +4,7 @@ from django.core.exceptions import (
) )
from django.db.models.fields.related import ManyToOneRel, RelatedField from django.db.models.fields.related import ManyToOneRel, RelatedField
from django.urls import reverse from django.urls import reverse
from django.utils.module_loading import import_string
from django.utils.translation import gettext_lazy as _ from django.utils.translation import gettext_lazy as _
from rest_framework.serializers import Serializer from rest_framework.serializers import Serializer
from rest_framework.views import get_view_name as drf_get_view_name from rest_framework.views import get_view_name as drf_get_view_name
@ -13,7 +14,6 @@ from netbox.api.exceptions import GraphQLTypeNotFound, SerializerNotFound
from netbox.api.fields import RelatedObjectCountField from netbox.api.fields import RelatedObjectCountField
from .query import count_related, dict_to_filter_params from .query import count_related, dict_to_filter_params
from .string import title from .string import title
from .utils import dynamic_import
__all__ = ( __all__ = (
'get_annotations_for_serializer', 'get_annotations_for_serializer',
@ -33,8 +33,8 @@ def get_serializer_for_model(model, prefix=''):
app_label, model_name = model._meta.label.split('.') app_label, model_name = model._meta.label.split('.')
serializer_name = f'{app_label}.api.serializers.{prefix}{model_name}Serializer' serializer_name = f'{app_label}.api.serializers.{prefix}{model_name}Serializer'
try: try:
return dynamic_import(serializer_name) return import_string(serializer_name)
except AttributeError: except ImportError:
raise SerializerNotFound( raise SerializerNotFound(
f"Could not determine serializer for {app_label}.{model_name} with prefix '{prefix}'" f"Could not determine serializer for {app_label}.{model_name} with prefix '{prefix}'"
) )
@ -47,8 +47,8 @@ def get_graphql_type_for_model(model):
app_label, model_name = model._meta.label.split('.') app_label, model_name = model._meta.label.split('.')
class_name = f'{app_label}.graphql.types.{model_name}Type' class_name = f'{app_label}.graphql.types.{model_name}Type'
try: try:
return dynamic_import(class_name) return import_string(class_name)
except AttributeError: except ImportError:
raise GraphQLTypeNotFound(f"Could not find GraphQL type for {app_label}.{model_name}") raise GraphQLTypeNotFound(f"Could not find GraphQL type for {app_label}.{model_name}")

View File

@ -1,17 +1,6 @@
from django.db.models import ManyToOneRel from django.db.models import ManyToOneRel
def dynamic_import(name):
"""
Dynamically import a class from an absolute path string
"""
components = name.split('.')
mod = __import__(components[0])
for comp in components[1:]:
mod = getattr(mod, comp)
return mod
def get_related_models(model, ordered=True): def get_related_models(model, ordered=True):
""" """
Return a list of all models which have a ForeignKey to the given model and the name of the field. For example, Return a list of all models which have a ForeignKey to the given model and the name of the field. For example,