diff --git a/netbox/circuits/forms.py b/netbox/circuits/forms.py index 8d276b3f3..2fa381dfe 100644 --- a/netbox/circuits/forms.py +++ b/netbox/circuits/forms.py @@ -2,13 +2,13 @@ from django import forms from django.db.models import Count from taggit.forms import TagField -from dcim.models import Site, Device, Rack +from dcim.models import Site from extras.forms import AddRemoveTagsForm, CustomFieldForm, CustomFieldBulkEditForm, CustomFieldFilterForm from tenancy.forms import TenancyForm from tenancy.models import Tenant from utilities.forms import ( - AnnotatedMultipleChoiceField, APISelect, add_blank_choice, BootstrapMixin, ChainedFieldsMixin, - ChainedModelChoiceField, CommentField, CSVChoiceField, FilterChoiceField, SmallTextarea, SlugField, + AnnotatedMultipleChoiceField, add_blank_choice, BootstrapMixin, CommentField, CSVChoiceField, FilterChoiceField, + SmallTextarea, SlugField, ) from .constants import CIRCUIT_STATUS_CHOICES from .models import Circuit, CircuitTermination, CircuitType, Provider diff --git a/netbox/dcim/forms.py b/netbox/dcim/forms.py index 56407e961..f230604f2 100644 --- a/netbox/dcim/forms.py +++ b/netbox/dcim/forms.py @@ -1,4 +1,5 @@ import re +from operator import attrgetter from django import forms from django.contrib.auth.models import User @@ -8,7 +9,6 @@ from django.core.exceptions import ObjectDoesNotExist from django.db.models import Count, Q from mptt.forms import TreeNodeChoiceField from natsort import natsorted -from operator import attrgetter from taggit.forms import TagField from timezone_field import TimeZoneFormField diff --git a/netbox/dcim/signals.py b/netbox/dcim/signals.py index 26e30babb..b37c34226 100644 --- a/netbox/dcim/signals.py +++ b/netbox/dcim/signals.py @@ -1,4 +1,4 @@ -from django.db.models.signals import post_save, post_delete, pre_delete +from django.db.models.signals import post_save, pre_delete from django.dispatch import receiver from .models import Cable, Device, VirtualChassis diff --git a/netbox/dcim/views.py b/netbox/dcim/views.py index 446bbfffe..0367be3c9 100644 --- a/netbox/dcim/views.py +++ b/netbox/dcim/views.py @@ -16,7 +16,7 @@ from natsort import natsorted from circuits.models import Circuit from extras.models import Graph, TopologyMap, GRAPH_TYPE_INTERFACE, GRAPH_TYPE_SITE from extras.views import ObjectConfigContextView -from ipam.models import Prefix, Service, VLAN +from ipam.models import Prefix, VLAN from ipam.tables import InterfaceIPAddressTable, InterfaceVLANTable from utilities.forms import ConfirmationForm from utilities.paginator import EnhancedPaginator @@ -26,7 +26,6 @@ from utilities.views import ( ) from virtualization.models import VirtualMachine from . import filters, forms, tables -from .constants import CONNECTION_STATUS_CONNECTED from .models import ( Cable, ConsolePort, ConsolePortTemplate, ConsoleServerPort, ConsoleServerPortTemplate, Device, DeviceBay, DeviceBayTemplate, DeviceRole, DeviceType, FrontPort, FrontPortTemplate, Interface, InterfaceTemplate, diff --git a/netbox/extras/api/serializers.py b/netbox/extras/api/serializers.py index ba438fd15..c62fab635 100644 --- a/netbox/extras/api/serializers.py +++ b/netbox/extras/api/serializers.py @@ -7,10 +7,10 @@ from dcim.api.serializers import ( NestedRegionSerializer, NestedSiteSerializer, ) from dcim.models import Device, DeviceRole, Platform, Rack, Region, Site +from extras.constants import * from extras.models import ( ConfigContext, ExportTemplate, Graph, ImageAttachment, ObjectChange, ReportResult, TopologyMap, ) -from extras.constants import * from tenancy.api.serializers import NestedTenantSerializer, NestedTenantGroupSerializer from tenancy.models import Tenant, TenantGroup from users.api.serializers import NestedUserSerializer diff --git a/netbox/extras/apps.py b/netbox/extras/apps.py index 6ada525a2..2d4517c26 100644 --- a/netbox/extras/apps.py +++ b/netbox/extras/apps.py @@ -1,6 +1,6 @@ from django.apps import AppConfig -from django.core.exceptions import ImproperlyConfigured from django.conf import settings +from django.core.exceptions import ImproperlyConfigured class ExtrasConfig(AppConfig): diff --git a/netbox/extras/middleware.py b/netbox/extras/middleware.py index 5cbe392d4..16461c32a 100644 --- a/netbox/extras/middleware.py +++ b/netbox/extras/middleware.py @@ -1,7 +1,7 @@ -from datetime import timedelta import random import threading import uuid +from datetime import timedelta from django.conf import settings from django.db.models.signals import post_delete, post_save @@ -14,7 +14,6 @@ from .constants import ( ) from .models import ObjectChange - _thread_locals = threading.local() diff --git a/netbox/extras/reports.py b/netbox/extras/reports.py index b1e051301..fc41b45f9 100644 --- a/netbox/extras/reports.py +++ b/netbox/extras/reports.py @@ -1,7 +1,7 @@ -from collections import OrderedDict import importlib import inspect import pkgutil +from collections import OrderedDict from django.conf import settings from django.utils import timezone diff --git a/netbox/extras/webhooks.py b/netbox/extras/webhooks.py index a0c927b64..1af7086a0 100644 --- a/netbox/extras/webhooks.py +++ b/netbox/extras/webhooks.py @@ -3,8 +3,8 @@ import datetime from django.conf import settings from django.contrib.contenttypes.models import ContentType -from extras.models import Webhook from extras.constants import OBJECTCHANGE_ACTION_CREATE, OBJECTCHANGE_ACTION_DELETE, OBJECTCHANGE_ACTION_UPDATE +from extras.models import Webhook from utilities.api import get_serializer_for_model from .constants import WEBHOOK_MODELS diff --git a/netbox/extras/webhooks_worker.py b/netbox/extras/webhooks_worker.py index 2122d1154..9fecd4b9f 100644 --- a/netbox/extras/webhooks_worker.py +++ b/netbox/extras/webhooks_worker.py @@ -1,8 +1,8 @@ import hashlib import hmac -import requests import json +import requests from django_rq import job from rest_framework.utils.encoders import JSONEncoder diff --git a/netbox/ipam/fields.py b/netbox/ipam/fields.py index 97a4de62f..d6ffa894d 100644 --- a/netbox/ipam/fields.py +++ b/netbox/ipam/fields.py @@ -2,8 +2,8 @@ from django.core.exceptions import ValidationError from django.db import models from netaddr import AddrFormatError, IPNetwork -from .formfields import IPFormField from . import lookups +from .formfields import IPFormField def prefix_validator(prefix): diff --git a/netbox/ipam/filters.py b/netbox/ipam/filters.py index 9749d0630..7b9dbb6ca 100644 --- a/netbox/ipam/filters.py +++ b/netbox/ipam/filters.py @@ -1,7 +1,7 @@ import django_filters +import netaddr from django.core.exceptions import ValidationError from django.db.models import Q -import netaddr from netaddr.core import AddrFormatError from dcim.models import Site, Device, Interface diff --git a/netbox/ipam/urls.py b/netbox/ipam/urls.py index 238ab7fb5..c2f7badd3 100644 --- a/netbox/ipam/urls.py +++ b/netbox/ipam/urls.py @@ -4,7 +4,6 @@ from extras.views import ObjectChangeLogView from . import views from .models import Aggregate, IPAddress, Prefix, RIR, Role, Service, VLAN, VLANGroup, VRF - app_name = 'ipam' urlpatterns = [ diff --git a/netbox/netbox/admin.py b/netbox/netbox/admin.py index 34faba233..61796aabd 100644 --- a/netbox/netbox/admin.py +++ b/netbox/netbox/admin.py @@ -1,7 +1,7 @@ from django.conf import settings from django.contrib.admin import AdminSite -from django.contrib.auth.models import Group, User from django.contrib.auth.admin import GroupAdmin, UserAdmin +from django.contrib.auth.models import Group, User from taggit.admin import TagAdmin from taggit.models import Tag diff --git a/netbox/netbox/urls.py b/netbox/netbox/urls.py index 3122ae7d9..45c99beb9 100644 --- a/netbox/netbox/urls.py +++ b/netbox/netbox/urls.py @@ -1,8 +1,8 @@ from django.conf import settings from django.conf.urls import include, url from django.views.static import serve -from drf_yasg.views import get_schema_view from drf_yasg import openapi +from drf_yasg.views import get_schema_view from netbox.views import APIRootView, HomeView, SearchView from users.views import LoginView, LogoutView diff --git a/netbox/netbox/wsgi.py b/netbox/netbox/wsgi.py index ecfd81d9a..137f057c0 100644 --- a/netbox/netbox/wsgi.py +++ b/netbox/netbox/wsgi.py @@ -2,7 +2,6 @@ import os from django.core.wsgi import get_wsgi_application - os.environ.setdefault("DJANGO_SETTINGS_MODULE", "netbox.settings") application = get_wsgi_application() diff --git a/netbox/tenancy/views.py b/netbox/tenancy/views.py index ed17695b2..97334c9f0 100644 --- a/netbox/tenancy/views.py +++ b/netbox/tenancy/views.py @@ -1,5 +1,5 @@ from django.contrib.auth.mixins import PermissionRequiredMixin -from django.db.models import Count, Q +from django.db.models import Count from django.shortcuts import get_object_or_404, render from django.views.generic import View diff --git a/netbox/utilities/api.py b/netbox/utilities/api.py index 1b25f9ae9..429c34a19 100644 --- a/netbox/utilities/api.py +++ b/netbox/utilities/api.py @@ -1,6 +1,6 @@ from collections import OrderedDict -import pytz +import pytz from django.conf import settings from django.contrib.contenttypes.models import ContentType from django.core.exceptions import ObjectDoesNotExist diff --git a/netbox/utilities/fields.py b/netbox/utilities/fields.py index dfbe00ef3..a2b601103 100644 --- a/netbox/utilities/fields.py +++ b/netbox/utilities/fields.py @@ -3,7 +3,6 @@ from django.db import models from .forms import ColorSelect - ColorValidator = RegexValidator( regex='^[0-9a-f]{6}$', message='Enter a valid hexadecimal RGB color code.', diff --git a/netbox/utilities/forms.py b/netbox/utilities/forms.py index 2a2d7f88f..90b3c9e4f 100644 --- a/netbox/utilities/forms.py +++ b/netbox/utilities/forms.py @@ -1,7 +1,7 @@ import csv -from io import StringIO import json import re +from io import StringIO from django import forms from django.conf import settings diff --git a/netbox/utilities/management/commands/makemigrations.py b/netbox/utilities/management/commands/makemigrations.py index f906feb5a..fbcf82eaf 100644 --- a/netbox/utilities/management/commands/makemigrations.py +++ b/netbox/utilities/management/commands/makemigrations.py @@ -1,6 +1,7 @@ # noinspection PyUnresolvedReferences from django.core.management.commands.makemigrations import Command from django.db import models + from . import custom_deconstruct models.Field.deconstruct = custom_deconstruct diff --git a/netbox/utilities/management/commands/migrate.py b/netbox/utilities/management/commands/migrate.py index 9c2a04284..2aa51b713 100644 --- a/netbox/utilities/management/commands/migrate.py +++ b/netbox/utilities/management/commands/migrate.py @@ -1,6 +1,7 @@ # noinspection PyUnresolvedReferences from django.core.management.commands.migrate import Command from django.db import models + from . import custom_deconstruct models.Field.deconstruct = custom_deconstruct diff --git a/netbox/utilities/middleware.py b/netbox/utilities/middleware.py index f2d17ee3e..4e321ab19 100644 --- a/netbox/utilities/middleware.py +++ b/netbox/utilities/middleware.py @@ -1,5 +1,3 @@ -import sys - from django.conf import settings from django.db import ProgrammingError from django.http import Http404, HttpResponseRedirect diff --git a/netbox/utilities/utils.py b/netbox/utilities/utils.py index 4aa1b5b3c..7a2368235 100644 --- a/netbox/utilities/utils.py +++ b/netbox/utilities/utils.py @@ -1,6 +1,5 @@ import datetime import json -import six from django.core.serializers import serialize from django.http import HttpResponse @@ -25,7 +24,7 @@ def csv_format(data): value = value.isoformat() # Force conversion to string first so we can check for any commas - if not isinstance(value, six.string_types): + if not isinstance(value, str): value = '{}'.format(value) # Double-quote the value if it contains a comma diff --git a/netbox/utilities/views.py b/netbox/utilities/views.py index e5751acb3..052f02e13 100644 --- a/netbox/utilities/views.py +++ b/netbox/utilities/views.py @@ -1,6 +1,6 @@ +import sys from collections import OrderedDict from copy import deepcopy -import sys from django.conf import settings from django.contrib import messages @@ -23,8 +23,8 @@ from django.views.generic import View from django_tables2 import RequestConfig from extras.models import CustomField, CustomFieldValue, ExportTemplate -from utilities.utils import queryset_to_csv from utilities.forms import BootstrapMixin, CSVDataField +from utilities.utils import queryset_to_csv from .error_handlers import handle_protectederror from .forms import ConfirmationForm from .paginator import EnhancedPaginator