Răsfoiți Sursa

Closes #17725: Clean up `import` statements (#17728)

* #17725: Resolve all F401 errors

* Tweak noqa designation
Jeremy Stretch 1 an în urmă
părinte
comite
e59f776e02
54 a modificat fișierele cu 29 adăugiri și 90 ștergeri
  1. 1 1
      netbox/circuits/apps.py
  2. 0 1
      netbox/circuits/forms/bulk_import.py
  3. 1 2
      netbox/circuits/graphql/filters.py
  4. 1 3
      netbox/core/api/schema.py
  5. 0 2
      netbox/core/api/serializers_/jobs.py
  6. 2 2
      netbox/core/apps.py
  7. 0 2
      netbox/dcim/api/serializers_/manufacturers.py
  8. 0 2
      netbox/dcim/api/serializers_/platforms.py
  9. 0 2
      netbox/dcim/api/serializers_/power.py
  10. 0 2
      netbox/dcim/api/serializers_/roles.py
  11. 1 1
      netbox/dcim/apps.py
  12. 1 1
      netbox/dcim/forms/connections.py
  13. 0 1
      netbox/dcim/graphql/mixins.py
  14. 1 2
      netbox/dcim/models/device_components.py
  15. 0 2
      netbox/dcim/utils.py
  16. 0 2
      netbox/extras/api/serializers_/configtemplates.py
  17. 0 2
      netbox/extras/api/serializers_/customlinks.py
  18. 0 2
      netbox/extras/api/serializers_/exporttemplates.py
  19. 0 2
      netbox/extras/api/serializers_/savedfilters.py
  20. 0 2
      netbox/extras/api/serializers_/tags.py
  21. 1 2
      netbox/extras/api/views.py
  22. 1 1
      netbox/extras/apps.py
  23. 0 1
      netbox/extras/dashboard/widgets.py
  24. 2 1
      netbox/extras/lookups.py
  25. 0 2
      netbox/extras/tests/test_api.py
  26. 0 1
      netbox/extras/validators.py
  27. 1 2
      netbox/extras/views.py
  28. 0 2
      netbox/ipam/api/serializers_/roles.py
  29. 0 2
      netbox/ipam/api/serializers_/services.py
  30. 0 2
      netbox/ipam/api/serializers_/vrfs.py
  31. 1 1
      netbox/ipam/apps.py
  32. 0 1
      netbox/ipam/graphql/mixins.py
  33. 0 2
      netbox/netbox/api/serializers/nested.py
  34. 0 1
      netbox/netbox/plugins/urls.py
  35. 0 2
      netbox/netbox/plugins/views.py
  36. 2 4
      netbox/netbox/settings.py
  37. 1 1
      netbox/netbox/tests/dummy_plugin/views.py
  38. 1 1
      netbox/tenancy/apps.py
  39. 0 1
      netbox/tenancy/filtersets.py
  40. 0 2
      netbox/tenancy/graphql/mixins.py
  41. 1 1
      netbox/users/apps.py
  42. 1 3
      netbox/users/tests/test_views.py
  43. 0 1
      netbox/utilities/management/commands/calculate_cached_counts.py
  44. 1 1
      netbox/utilities/markdown.py
  45. 2 2
      netbox/utilities/release.py
  46. 1 1
      netbox/utilities/serializers/json.py
  47. 1 3
      netbox/utilities/templatetags/form_helpers.py
  48. 0 2
      netbox/virtualization/api/serializers_/clusters.py
  49. 1 1
      netbox/virtualization/apps.py
  50. 0 2
      netbox/vpn/api/serializers_/crypto.py
  51. 1 1
      netbox/vpn/apps.py
  52. 0 2
      netbox/wireless/api/serializers_/wirelesslinks.py
  53. 1 1
      netbox/wireless/apps.py
  54. 1 1
      netbox/wireless/filtersets.py

+ 1 - 1
netbox/circuits/apps.py

@@ -7,7 +7,7 @@ class CircuitsConfig(AppConfig):
 
 
     def ready(self):
     def ready(self):
         from netbox.models.features import register_models
         from netbox.models.features import register_models
-        from . import signals, search
+        from . import signals, search  # noqa: F401
 
 
         # Register models
         # Register models
         register_models(*self.get_models())
         register_models(*self.get_models())

+ 0 - 1
netbox/circuits/forms/bulk_import.py

@@ -1,5 +1,4 @@
 from django import forms
 from django import forms
-from django.utils.safestring import mark_safe
 from django.utils.translation import gettext_lazy as _
 from django.utils.translation import gettext_lazy as _
 
 
 from circuits.choices import *
 from circuits.choices import *

+ 1 - 2
netbox/circuits/graphql/filters.py

@@ -1,7 +1,6 @@
-import strawberry
 import strawberry_django
 import strawberry_django
-from circuits import filtersets, models
 
 
+from circuits import filtersets, models
 from netbox.graphql.filter_mixins import autotype_decorator, BaseFilterMixin
 from netbox.graphql.filter_mixins import autotype_decorator, BaseFilterMixin
 
 
 __all__ = (
 __all__ = (

+ 1 - 3
netbox/core/api/schema.py

@@ -8,10 +8,8 @@ from drf_spectacular.plumbing import (
     build_basic_type, build_choice_field, build_media_type_object, build_object_type, get_doc,
     build_basic_type, build_choice_field, build_media_type_object, build_object_type, get_doc,
 )
 )
 from drf_spectacular.types import OpenApiTypes
 from drf_spectacular.types import OpenApiTypes
-from rest_framework import serializers
-from rest_framework.relations import ManyRelatedField
 
 
-from netbox.api.fields import ChoiceField, SerializedPKRelatedField
+from netbox.api.fields import ChoiceField
 from netbox.api.serializers import WritableNestedSerializer
 from netbox.api.serializers import WritableNestedSerializer
 
 
 # see netbox.api.routers.NetBoxRouter
 # see netbox.api.routers.NetBoxRouter

+ 0 - 2
netbox/core/api/serializers_/jobs.py

@@ -1,5 +1,3 @@
-from rest_framework import serializers
-
 from core.choices import *
 from core.choices import *
 from core.models import Job
 from core.models import Job
 from netbox.api.fields import ChoiceField, ContentTypeField
 from netbox.api.fields import ChoiceField, ContentTypeField

+ 2 - 2
netbox/core/apps.py

@@ -16,9 +16,9 @@ class CoreConfig(AppConfig):
     name = "core"
     name = "core"
 
 
     def ready(self):
     def ready(self):
-        from core.api import schema  # noqa
+        from core.api import schema  # noqa: F401
         from netbox.models.features import register_models
         from netbox.models.features import register_models
-        from . import data_backends, events, search
+        from . import data_backends, events, search  # noqa: F401
 
 
         # Register models
         # Register models
         register_models(*self.get_models())
         register_models(*self.get_models())

+ 0 - 2
netbox/dcim/api/serializers_/manufacturers.py

@@ -1,5 +1,3 @@
-from rest_framework import serializers
-
 from dcim.models import Manufacturer
 from dcim.models import Manufacturer
 from netbox.api.fields import RelatedObjectCountField
 from netbox.api.fields import RelatedObjectCountField
 from netbox.api.serializers import NetBoxModelSerializer
 from netbox.api.serializers import NetBoxModelSerializer

+ 0 - 2
netbox/dcim/api/serializers_/platforms.py

@@ -1,5 +1,3 @@
-from rest_framework import serializers
-
 from dcim.models import Platform
 from dcim.models import Platform
 from extras.api.serializers_.configtemplates import ConfigTemplateSerializer
 from extras.api.serializers_.configtemplates import ConfigTemplateSerializer
 from netbox.api.fields import RelatedObjectCountField
 from netbox.api.fields import RelatedObjectCountField

+ 0 - 2
netbox/dcim/api/serializers_/power.py

@@ -1,5 +1,3 @@
-from rest_framework import serializers
-
 from dcim.choices import *
 from dcim.choices import *
 from dcim.models import PowerFeed, PowerPanel
 from dcim.models import PowerFeed, PowerPanel
 from netbox.api.fields import ChoiceField, RelatedObjectCountField
 from netbox.api.fields import ChoiceField, RelatedObjectCountField

+ 0 - 2
netbox/dcim/api/serializers_/roles.py

@@ -1,5 +1,3 @@
-from rest_framework import serializers
-
 from dcim.models import DeviceRole, InventoryItemRole
 from dcim.models import DeviceRole, InventoryItemRole
 from extras.api.serializers_.configtemplates import ConfigTemplateSerializer
 from extras.api.serializers_.configtemplates import ConfigTemplateSerializer
 from netbox.api.fields import RelatedObjectCountField
 from netbox.api.fields import RelatedObjectCountField

+ 1 - 1
netbox/dcim/apps.py

@@ -10,7 +10,7 @@ class DCIMConfig(AppConfig):
     def ready(self):
     def ready(self):
         from netbox.models.features import register_models
         from netbox.models.features import register_models
         from utilities.counters import connect_counters
         from utilities.counters import connect_counters
-        from . import signals, search
+        from . import signals, search  # noqa: F401
         from .models import CableTermination, Device, DeviceType, VirtualChassis
         from .models import CableTermination, Device, DeviceType, VirtualChassis
 
 
         # Register models
         # Register models

+ 1 - 1
netbox/dcim/forms/connections.py

@@ -4,7 +4,7 @@ from django.utils.translation import gettext_lazy as _
 
 
 from circuits.models import Circuit, CircuitTermination
 from circuits.models import Circuit, CircuitTermination
 from dcim.models import *
 from dcim.models import *
-from utilities.forms.fields import DynamicModelChoiceField, DynamicModelMultipleChoiceField
+from utilities.forms.fields import DynamicModelMultipleChoiceField
 from .model_forms import CableForm
 from .model_forms import CableForm
 
 
 
 

+ 0 - 1
netbox/dcim/graphql/mixins.py

@@ -1,7 +1,6 @@
 from typing import Annotated, List, Union
 from typing import Annotated, List, Union
 
 
 import strawberry
 import strawberry
-import strawberry_django
 
 
 __all__ = (
 __all__ = (
     'CabledObjectMixin',
     'CabledObjectMixin',

+ 1 - 2
netbox/dcim/models/device_components.py

@@ -4,7 +4,7 @@ from django.contrib.contenttypes.fields import GenericForeignKey, GenericRelatio
 from django.core.exceptions import ValidationError
 from django.core.exceptions import ValidationError
 from django.core.validators import MaxValueValidator, MinValueValidator
 from django.core.validators import MaxValueValidator, MinValueValidator
 from django.db import models
 from django.db import models
-from django.db.models import F, Sum
+from django.db.models import Sum
 from django.urls import reverse
 from django.urls import reverse
 from django.utils.translation import gettext_lazy as _
 from django.utils.translation import gettext_lazy as _
 from mptt.models import MPTTModel, TreeForeignKey
 from mptt.models import MPTTModel, TreeForeignKey
@@ -22,7 +22,6 @@ from utilities.tracking import TrackingModelMixin
 from wireless.choices import *
 from wireless.choices import *
 from wireless.utils import get_channel_attr
 from wireless.utils import get_channel_attr
 
 
-
 __all__ = (
 __all__ = (
     'BaseInterface',
     'BaseInterface',
     'CabledObjectModel',
     'CabledObjectModel',

+ 0 - 2
netbox/dcim/utils.py

@@ -1,5 +1,3 @@
-import itertools
-
 from django.contrib.contenttypes.models import ContentType
 from django.contrib.contenttypes.models import ContentType
 from django.db import transaction
 from django.db import transaction
 
 

+ 0 - 2
netbox/extras/api/serializers_/configtemplates.py

@@ -1,5 +1,3 @@
-from rest_framework import serializers
-
 from core.api.serializers_.data import DataFileSerializer, DataSourceSerializer
 from core.api.serializers_.data import DataFileSerializer, DataSourceSerializer
 from extras.models import ConfigTemplate
 from extras.models import ConfigTemplate
 from netbox.api.serializers import ValidatedModelSerializer
 from netbox.api.serializers import ValidatedModelSerializer

+ 0 - 2
netbox/extras/api/serializers_/customlinks.py

@@ -1,5 +1,3 @@
-from rest_framework import serializers
-
 from core.models import ObjectType
 from core.models import ObjectType
 from extras.models import CustomLink
 from extras.models import CustomLink
 from netbox.api.fields import ContentTypeField
 from netbox.api.fields import ContentTypeField

+ 0 - 2
netbox/extras/api/serializers_/exporttemplates.py

@@ -1,5 +1,3 @@
-from rest_framework import serializers
-
 from core.api.serializers_.data import DataFileSerializer, DataSourceSerializer
 from core.api.serializers_.data import DataFileSerializer, DataSourceSerializer
 from core.models import ObjectType
 from core.models import ObjectType
 from extras.models import ExportTemplate
 from extras.models import ExportTemplate

+ 0 - 2
netbox/extras/api/serializers_/savedfilters.py

@@ -1,5 +1,3 @@
-from rest_framework import serializers
-
 from core.models import ObjectType
 from core.models import ObjectType
 from extras.models import SavedFilter
 from extras.models import SavedFilter
 from netbox.api.fields import ContentTypeField
 from netbox.api.fields import ContentTypeField

+ 0 - 2
netbox/extras/api/serializers_/tags.py

@@ -1,5 +1,3 @@
-from rest_framework import serializers
-
 from core.models import ObjectType
 from core.models import ObjectType
 from extras.models import Tag
 from extras.models import Tag
 from netbox.api.fields import ContentTypeField, RelatedObjectCountField
 from netbox.api.fields import ContentTypeField, RelatedObjectCountField

+ 1 - 2
netbox/extras/api/views.py

@@ -1,6 +1,5 @@
 from django.http import Http404
 from django.http import Http404
 from django.shortcuts import get_object_or_404
 from django.shortcuts import get_object_or_404
-from django.utils.module_loading import import_string
 from django_rq.queues import get_connection
 from django_rq.queues import get_connection
 from drf_spectacular.utils import extend_schema, extend_schema_view
 from drf_spectacular.utils import extend_schema, extend_schema_view
 from rest_framework import status
 from rest_framework import status
@@ -15,8 +14,8 @@ from rq import Worker
 
 
 from core.models import ObjectType
 from core.models import ObjectType
 from extras import filtersets
 from extras import filtersets
-from extras.models import *
 from extras.jobs import ScriptJob
 from extras.jobs import ScriptJob
+from extras.models import *
 from netbox.api.authentication import IsAuthenticatedOrLoginNotRequired
 from netbox.api.authentication import IsAuthenticatedOrLoginNotRequired
 from netbox.api.features import SyncedDataMixin
 from netbox.api.features import SyncedDataMixin
 from netbox.api.metadata import ContentTypeMetadata
 from netbox.api.metadata import ContentTypeMetadata

+ 1 - 1
netbox/extras/apps.py

@@ -6,7 +6,7 @@ class ExtrasConfig(AppConfig):
 
 
     def ready(self):
     def ready(self):
         from netbox.models.features import register_models
         from netbox.models.features import register_models
-        from . import dashboard, lookups, search, signals
+        from . import dashboard, lookups, search, signals  # noqa: F401
 
 
         # Register models
         # Register models
         register_models(*self.get_models())
         register_models(*self.get_models())

+ 0 - 1
netbox/extras/dashboard/widgets.py

@@ -15,7 +15,6 @@ from django.utils.translation import gettext as _
 
 
 from core.models import ObjectType
 from core.models import ObjectType
 from extras.choices import BookmarkOrderingChoices
 from extras.choices import BookmarkOrderingChoices
-from netbox.choices import ButtonColorChoices
 from utilities.object_types import object_type_identifier, object_type_name
 from utilities.object_types import object_type_identifier, object_type_name
 from utilities.permissions import get_permission_for_model
 from utilities.permissions import get_permission_for_model
 from utilities.querydict import dict_to_querydict
 from utilities.querydict import dict_to_querydict

+ 2 - 1
netbox/extras/lookups.py

@@ -1,4 +1,5 @@
-from django.db.models import CharField, TextField, Lookup
+from django.db.models import CharField, Lookup
+
 from .fields import CachedValueField
 from .fields import CachedValueField
 
 
 
 

+ 0 - 2
netbox/extras/tests/test_api.py

@@ -12,7 +12,6 @@ from dcim.models import Device, DeviceRole, DeviceType, Manufacturer, Rack, Loca
 from extras.choices import *
 from extras.choices import *
 from extras.models import *
 from extras.models import *
 from extras.scripts import BooleanVar, IntegerVar, Script as PythonClass, StringVar
 from extras.scripts import BooleanVar, IntegerVar, Script as PythonClass, StringVar
-from netbox.events import *
 from users.models import Group, User
 from users.models import Group, User
 from utilities.testing import APITestCase, APIViewTestCases
 from utilities.testing import APITestCase, APIViewTestCases
 
 
@@ -793,7 +792,6 @@ class ScriptTest(APITestCase):
         super().setUp()
         super().setUp()
 
 
         # Monkey-patch the Script model to return our TestScriptClass above
         # Monkey-patch the Script model to return our TestScriptClass above
-        from extras.api.views import ScriptViewSet
         Script.python_class = self.python_class
         Script.python_class = self.python_class
 
 
     def test_get_script(self):
     def test_get_script(self):

+ 0 - 1
netbox/extras/validators.py

@@ -1,4 +1,3 @@
-import inspect
 import operator
 import operator
 
 
 from django.core import validators
 from django.core import validators

+ 1 - 2
netbox/extras/views.py

@@ -6,8 +6,8 @@ from django.db.models import Count, Q
 from django.http import HttpResponseBadRequest, HttpResponseForbidden, HttpResponse
 from django.http import HttpResponseBadRequest, HttpResponseForbidden, HttpResponse
 from django.shortcuts import get_object_or_404, redirect, render
 from django.shortcuts import get_object_or_404, redirect, render
 from django.urls import reverse
 from django.urls import reverse
-from django.utils.module_loading import import_string
 from django.utils import timezone
 from django.utils import timezone
+from django.utils.module_loading import import_string
 from django.utils.translation import gettext as _
 from django.utils.translation import gettext as _
 from django.views.generic import View
 from django.views.generic import View
 
 
@@ -20,7 +20,6 @@ from extras.choices import LogLevelChoices
 from extras.dashboard.forms import DashboardWidgetAddForm, DashboardWidgetForm
 from extras.dashboard.forms import DashboardWidgetAddForm, DashboardWidgetForm
 from extras.dashboard.utils import get_widget_class
 from extras.dashboard.utils import get_widget_class
 from netbox.constants import DEFAULT_ACTION_PERMISSIONS
 from netbox.constants import DEFAULT_ACTION_PERMISSIONS
-from netbox.registry import registry
 from netbox.views import generic
 from netbox.views import generic
 from netbox.views.generic.mixins import TableMixin
 from netbox.views.generic.mixins import TableMixin
 from utilities.forms import ConfirmationForm, get_field_value
 from utilities.forms import ConfirmationForm, get_field_value

+ 0 - 2
netbox/ipam/api/serializers_/roles.py

@@ -1,5 +1,3 @@
-from rest_framework import serializers
-
 from ipam.models import Role
 from ipam.models import Role
 from netbox.api.fields import RelatedObjectCountField
 from netbox.api.fields import RelatedObjectCountField
 from netbox.api.serializers import NetBoxModelSerializer
 from netbox.api.serializers import NetBoxModelSerializer

+ 0 - 2
netbox/ipam/api/serializers_/services.py

@@ -1,5 +1,3 @@
-from rest_framework import serializers
-
 from dcim.api.serializers_.devices import DeviceSerializer
 from dcim.api.serializers_.devices import DeviceSerializer
 from ipam.choices import *
 from ipam.choices import *
 from ipam.models import IPAddress, Service, ServiceTemplate
 from ipam.models import IPAddress, Service, ServiceTemplate

+ 0 - 2
netbox/ipam/api/serializers_/vrfs.py

@@ -1,5 +1,3 @@
-from rest_framework import serializers
-
 from ipam.models import RouteTarget, VRF
 from ipam.models import RouteTarget, VRF
 from netbox.api.fields import RelatedObjectCountField, SerializedPKRelatedField
 from netbox.api.fields import RelatedObjectCountField, SerializedPKRelatedField
 from netbox.api.serializers import NetBoxModelSerializer
 from netbox.api.serializers import NetBoxModelSerializer

+ 1 - 1
netbox/ipam/apps.py

@@ -7,7 +7,7 @@ class IPAMConfig(AppConfig):
 
 
     def ready(self):
     def ready(self):
         from netbox.models.features import register_models
         from netbox.models.features import register_models
-        from . import signals, search
+        from . import signals, search  # noqa: F401
 
 
         # Register models
         # Register models
         register_models(*self.get_models())
         register_models(*self.get_models())

+ 0 - 1
netbox/ipam/graphql/mixins.py

@@ -1,7 +1,6 @@
 from typing import Annotated, List
 from typing import Annotated, List
 
 
 import strawberry
 import strawberry
-import strawberry_django
 
 
 __all__ = (
 __all__ = (
     'IPAddressesMixin',
     'IPAddressesMixin',

+ 0 - 2
netbox/netbox/api/serializers/nested.py

@@ -1,5 +1,3 @@
-from rest_framework import serializers
-
 from extras.models import Tag
 from extras.models import Tag
 from utilities.api import get_related_object_by_attrs
 from utilities.api import get_related_object_by_attrs
 from .base import BaseModelSerializer
 from .base import BaseModelSerializer

+ 0 - 1
netbox/netbox/plugins/urls.py

@@ -3,7 +3,6 @@ from importlib import import_module
 from django.apps import apps
 from django.apps import apps
 from django.conf import settings
 from django.conf import settings
 from django.conf.urls import include
 from django.conf.urls import include
-from django.contrib.admin.views.decorators import staff_member_required
 from django.urls import path
 from django.urls import path
 from django.utils.module_loading import import_string, module_has_submodule
 from django.utils.module_loading import import_string, module_has_submodule
 
 

+ 0 - 2
netbox/netbox/plugins/views.py

@@ -2,9 +2,7 @@ from collections import OrderedDict
 
 
 from django.apps import apps
 from django.apps import apps
 from django.conf import settings
 from django.conf import settings
-from django.shortcuts import render
 from django.urls.exceptions import NoReverseMatch
 from django.urls.exceptions import NoReverseMatch
-from django.views.generic import View
 from drf_spectacular.utils import extend_schema
 from drf_spectacular.utils import extend_schema
 from rest_framework import permissions
 from rest_framework import permissions
 from rest_framework.response import Response
 from rest_framework.response import Response

+ 2 - 4
netbox/netbox/settings.py

@@ -5,14 +5,12 @@ import os
 import platform
 import platform
 import sys
 import sys
 import warnings
 import warnings
-from urllib.parse import urlencode, urlsplit
+from urllib.parse import urlencode
 
 
-import django
 import requests
 import requests
 from django.contrib.messages import constants as messages
 from django.contrib.messages import constants as messages
 from django.core.exceptions import ImproperlyConfigured, ValidationError
 from django.core.exceptions import ImproperlyConfigured, ValidationError
 from django.core.validators import URLValidator
 from django.core.validators import URLValidator
-from django.utils.encoding import force_str
 from django.utils.translation import gettext_lazy as _
 from django.utils.translation import gettext_lazy as _
 
 
 from netbox.config import PARAMS as CONFIG_PARAMS
 from netbox.config import PARAMS as CONFIG_PARAMS
@@ -252,7 +250,7 @@ if STORAGE_BACKEND is not None:
     # django-storage-swift
     # django-storage-swift
     elif STORAGE_BACKEND == 'swift.storage.SwiftStorage':
     elif STORAGE_BACKEND == 'swift.storage.SwiftStorage':
         try:
         try:
-            import swift.utils  # type: ignore
+            import swift.utils  # noqa: F401
         except ModuleNotFoundError as e:
         except ModuleNotFoundError as e:
             if getattr(e, 'name') == 'swift':
             if getattr(e, 'name') == 'swift':
                 raise ImproperlyConfigured(
                 raise ImproperlyConfigured(

+ 1 - 1
netbox/netbox/tests/dummy_plugin/views.py

@@ -8,7 +8,7 @@ from dcim.models import Site
 from utilities.views import register_model_view
 from utilities.views import register_model_view
 from .models import DummyModel
 from .models import DummyModel
 # Trigger registration of custom column
 # Trigger registration of custom column
-from .tables import mycol
+from .tables import mycol  # noqa: F401
 
 
 
 
 class DummyModelsView(View):
 class DummyModelsView(View):

+ 1 - 1
netbox/tenancy/apps.py

@@ -6,7 +6,7 @@ class TenancyConfig(AppConfig):
 
 
     def ready(self):
     def ready(self):
         from netbox.models.features import register_models
         from netbox.models.features import register_models
-        from . import search
+        from . import search  # noqa: F401
 
 
         # Register models
         # Register models
         register_models(*self.get_models())
         register_models(*self.get_models())

+ 0 - 1
netbox/tenancy/filtersets.py

@@ -2,7 +2,6 @@ import django_filters
 from django.db.models import Q
 from django.db.models import Q
 from django.utils.translation import gettext as _
 from django.utils.translation import gettext as _
 
 
-from extras.filters import TagFilter
 from netbox.filtersets import NetBoxModelFilterSet, OrganizationalModelFilterSet
 from netbox.filtersets import NetBoxModelFilterSet, OrganizationalModelFilterSet
 from utilities.filters import ContentTypeFilter, TreeNodeMultipleChoiceFilter
 from utilities.filters import ContentTypeFilter, TreeNodeMultipleChoiceFilter
 from .models import *
 from .models import *

+ 0 - 2
netbox/tenancy/graphql/mixins.py

@@ -1,8 +1,6 @@
 from typing import Annotated, List
 from typing import Annotated, List
 
 
 import strawberry
 import strawberry
-import strawberry_django
-
 
 
 __all__ = (
 __all__ = (
     'ContactAssignmentsMixin',
     'ContactAssignmentsMixin',

+ 1 - 1
netbox/users/apps.py

@@ -6,7 +6,7 @@ class UsersConfig(AppConfig):
 
 
     def ready(self):
     def ready(self):
         from netbox.models.features import register_models
         from netbox.models.features import register_models
-        from . import signals
+        from . import signals  # noqa: F401
 
 
         # Register models
         # Register models
         register_models(*self.get_models())
         register_models(*self.get_models())

+ 1 - 3
netbox/users/tests/test_views.py

@@ -1,8 +1,6 @@
-from django.test import override_settings
-
 from core.models import ObjectType
 from core.models import ObjectType
 from users.models import *
 from users.models import *
-from utilities.testing import ViewTestCases, create_test_user, extract_form_failures
+from utilities.testing import ViewTestCases, create_test_user
 
 
 
 
 class UserTestCase(
 class UserTestCase(

+ 0 - 1
netbox/utilities/management/commands/calculate_cached_counts.py

@@ -1,7 +1,6 @@
 from collections import defaultdict
 from collections import defaultdict
 
 
 from django.core.management.base import BaseCommand
 from django.core.management.base import BaseCommand
-from django.db.models import Count, OuterRef, Subquery
 
 
 from netbox.registry import registry
 from netbox.registry import registry
 from utilities.counters import update_counts
 from utilities.counters import update_counts

+ 1 - 1
netbox/utilities/markdown.py

@@ -14,7 +14,7 @@ class StrikethroughExtension(markdown.Extension):
     """
     """
     def extendMarkdown(self, md):
     def extendMarkdown(self, md):
         md.inlinePatterns.register(
         md.inlinePatterns.register(
-            markdown.inlinepatterns.SimpleTagPattern(STRIKE_RE, 'del'),
+            SimpleTagPattern(STRIKE_RE, 'del'),
             'strikethrough',
             'strikethrough',
             200
             200
         )
         )

+ 2 - 2
netbox/utilities/release.py

@@ -1,9 +1,9 @@
 import datetime
 import datetime
 import os
 import os
-import yaml
 from dataclasses import asdict, dataclass, field
 from dataclasses import asdict, dataclass, field
-from typing import List, Union
+from typing import Union
 
 
+import yaml
 from django.core.exceptions import ImproperlyConfigured
 from django.core.exceptions import ImproperlyConfigured
 
 
 from utilities.datetime import datetime_from_timestamp
 from utilities.datetime import datetime_from_timestamp

+ 1 - 1
netbox/utilities/serializers/json.py

@@ -1,5 +1,5 @@
 from django.contrib.postgres.fields import ArrayField
 from django.contrib.postgres.fields import ArrayField
-from django.core.serializers.json import Deserializer, Serializer as Serializer_  # noqa
+from django.core.serializers.json import Deserializer, Serializer as Serializer_  # noqa: F401
 from django.utils.encoding import is_protected_type
 from django.utils.encoding import is_protected_type
 
 
 # NOTE: Module must contain both Serializer and Deserializer
 # NOTE: Module must contain both Serializer and Deserializer

+ 1 - 3
netbox/utilities/templatetags/form_helpers.py

@@ -1,8 +1,6 @@
-import warnings
-
 from django import template
 from django import template
 
 
-from utilities.forms.rendering import FieldSet, InlineFields, ObjectAttribute, TabbedGroups
+from utilities.forms.rendering import InlineFields, ObjectAttribute, TabbedGroups
 
 
 __all__ = (
 __all__ = (
     'getfield',
     'getfield',

+ 0 - 2
netbox/virtualization/api/serializers_/clusters.py

@@ -1,5 +1,3 @@
-from rest_framework import serializers
-
 from dcim.api.serializers_.sites import SiteSerializer
 from dcim.api.serializers_.sites import SiteSerializer
 from netbox.api.fields import ChoiceField, RelatedObjectCountField
 from netbox.api.fields import ChoiceField, RelatedObjectCountField
 from netbox.api.serializers import NetBoxModelSerializer
 from netbox.api.serializers import NetBoxModelSerializer

+ 1 - 1
netbox/virtualization/apps.py

@@ -9,7 +9,7 @@ class VirtualizationConfig(AppConfig):
     def ready(self):
     def ready(self):
         from netbox.models.features import register_models
         from netbox.models.features import register_models
         from utilities.counters import connect_counters
         from utilities.counters import connect_counters
-        from . import search, signals
+        from . import search, signals  # noqa: F401
         from .models import VirtualMachine
         from .models import VirtualMachine
 
 
         # Register models
         # Register models

+ 0 - 2
netbox/vpn/api/serializers_/crypto.py

@@ -1,5 +1,3 @@
-from rest_framework import serializers
-
 from netbox.api.fields import ChoiceField, SerializedPKRelatedField
 from netbox.api.fields import ChoiceField, SerializedPKRelatedField
 from netbox.api.serializers import NetBoxModelSerializer
 from netbox.api.serializers import NetBoxModelSerializer
 from vpn.choices import *
 from vpn.choices import *

+ 1 - 1
netbox/vpn/apps.py

@@ -7,7 +7,7 @@ class VPNConfig(AppConfig):
 
 
     def ready(self):
     def ready(self):
         from netbox.models.features import register_models
         from netbox.models.features import register_models
-        from . import search
+        from . import search  # noqa: F401
 
 
         # Register models
         # Register models
         register_models(*self.get_models())
         register_models(*self.get_models())

+ 0 - 2
netbox/wireless/api/serializers_/wirelesslinks.py

@@ -1,5 +1,3 @@
-from rest_framework import serializers
-
 from dcim.api.serializers_.device_components import InterfaceSerializer
 from dcim.api.serializers_.device_components import InterfaceSerializer
 from dcim.choices import LinkStatusChoices
 from dcim.choices import LinkStatusChoices
 from netbox.api.fields import ChoiceField
 from netbox.api.fields import ChoiceField

+ 1 - 1
netbox/wireless/apps.py

@@ -6,7 +6,7 @@ class WirelessConfig(AppConfig):
 
 
     def ready(self):
     def ready(self):
         from netbox.models.features import register_models
         from netbox.models.features import register_models
-        from . import signals, search
+        from . import signals, search  # noqa: F401
 
 
         # Register models
         # Register models
         register_models(*self.get_models())
         register_models(*self.get_models())

+ 1 - 1
netbox/wireless/filtersets.py

@@ -6,7 +6,7 @@ from dcim.models import Interface
 from ipam.models import VLAN
 from ipam.models import VLAN
 from netbox.filtersets import OrganizationalModelFilterSet, NetBoxModelFilterSet
 from netbox.filtersets import OrganizationalModelFilterSet, NetBoxModelFilterSet
 from tenancy.filtersets import TenancyFilterSet
 from tenancy.filtersets import TenancyFilterSet
-from utilities.filters import MultiValueNumberFilter, TreeNodeMultipleChoiceFilter
+from utilities.filters import TreeNodeMultipleChoiceFilter
 from .choices import *
 from .choices import *
 from .models import *
 from .models import *