mirror of
https://github.com/netbox-community/netbox.git
synced 2026-04-19 15:31:35 +02:00
- Adopt Ruff `I` (isort) rules for consistent import sorting - Add two `# isort: split` boundaries to keep required imports pinned in `__init__.py` modules
This commit is contained in:
@@ -1,6 +1,10 @@
|
||||
from django.contrib.contenttypes.fields import GenericForeignKey
|
||||
from django.core.exceptions import (
|
||||
FieldDoesNotExist, FieldError, MultipleObjectsReturned, ObjectDoesNotExist, ValidationError,
|
||||
FieldDoesNotExist,
|
||||
FieldError,
|
||||
MultipleObjectsReturned,
|
||||
ObjectDoesNotExist,
|
||||
ValidationError,
|
||||
)
|
||||
from django.db.models.fields.related import ManyToOneRel, RelatedField
|
||||
from django.urls import reverse
|
||||
@@ -13,6 +17,7 @@ from rest_framework.views import get_view_name as drf_get_view_name
|
||||
from extras.constants import HTTP_CONTENT_TYPE_JSON
|
||||
from netbox.api.exceptions import GraphQLTypeNotFound, SerializerNotFound
|
||||
from netbox.api.fields import RelatedObjectCountField
|
||||
|
||||
from .query import count_related, dict_to_filter_params
|
||||
from .string import title
|
||||
|
||||
|
||||
@@ -1,8 +1,9 @@
|
||||
from django.apps import apps
|
||||
from django.db.models import F, Count, OuterRef, Subquery
|
||||
from django.db.models import Count, F, OuterRef, Subquery
|
||||
from django.db.models.signals import post_delete, post_save, pre_delete
|
||||
|
||||
from netbox.registry import registry
|
||||
|
||||
from .fields import CounterCacheField
|
||||
|
||||
|
||||
|
||||
@@ -2,6 +2,7 @@ from django import forms
|
||||
from django.contrib.postgres.forms import SimpleArrayField
|
||||
from django.utils.safestring import mark_safe
|
||||
from django.utils.translation import gettext_lazy as _
|
||||
|
||||
from utilities.data import ranges_to_string, string_to_ranges
|
||||
|
||||
from ..utils import parse_numeric_range
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
from django import forms
|
||||
from django.utils.translation import gettext_lazy as _
|
||||
from django.contrib.contenttypes.models import ContentType
|
||||
from django.core.exceptions import MultipleObjectsReturned, ObjectDoesNotExist, FieldError
|
||||
from django.core.exceptions import FieldError, MultipleObjectsReturned, ObjectDoesNotExist
|
||||
from django.db.models import Q
|
||||
from django.utils.translation import gettext_lazy as _
|
||||
|
||||
from utilities.choices import unpack_grouped_choices
|
||||
from utilities.object_types import object_type_identifier
|
||||
|
||||
@@ -3,10 +3,11 @@ import json
|
||||
from django import forms
|
||||
from django.conf import settings
|
||||
from django.db.models import Count
|
||||
from django.forms.fields import JSONField as _JSONField, InvalidJSONInput
|
||||
from django.forms.fields import InvalidJSONInput
|
||||
from django.forms.fields import JSONField as _JSONField
|
||||
from django.templatetags.static import static
|
||||
from django.utils.translation import gettext_lazy as _
|
||||
from netaddr import AddrFormatError, EUI
|
||||
from netaddr import EUI, AddrFormatError
|
||||
|
||||
from utilities.forms import widgets
|
||||
from utilities.validators import EnhancedURLValidator
|
||||
|
||||
@@ -6,6 +6,7 @@ from django.utils.translation import gettext as _
|
||||
|
||||
from utilities.choices import unpack_grouped_choices
|
||||
from utilities.querysets import RestrictedQuerySet
|
||||
|
||||
from .constants import *
|
||||
|
||||
__all__ = (
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
from django import forms
|
||||
|
||||
from netbox.choices import ColorChoices
|
||||
|
||||
from ..utils import add_blank_choice
|
||||
|
||||
__all__ = (
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
from urllib.parse import urlsplit
|
||||
|
||||
from django.http import HttpResponse
|
||||
from django.urls import reverse
|
||||
from urllib.parse import urlsplit
|
||||
|
||||
__all__ = (
|
||||
'htmx_current_url',
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
from django.db.models import Manager
|
||||
from mptt.managers import TreeManager as TreeManager_
|
||||
from mptt.querysets import TreeQuerySet as TreeQuerySet_
|
||||
|
||||
from django.db.models import Manager
|
||||
from .querysets import RestrictedQuerySet
|
||||
|
||||
__all__ = (
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
from django.core.paginator import Paginator, Page
|
||||
from django.core.paginator import Page, Paginator
|
||||
|
||||
from netbox.config import get_config
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
from django.conf import settings
|
||||
from django.apps import apps
|
||||
from django.conf import settings
|
||||
from django.db.models import Q
|
||||
from django.utils.translation import gettext_lazy as _
|
||||
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
from urllib.parse import urlparse
|
||||
|
||||
from django.conf import settings
|
||||
from django.utils.module_loading import import_string
|
||||
from urllib.parse import urlparse
|
||||
|
||||
__all__ = (
|
||||
'DefaultProxyRouter',
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
from django.db.models import Count, OuterRef, Subquery, QuerySet
|
||||
from django.db.models import Count, OuterRef, QuerySet, Subquery
|
||||
from django.db.models.functions import Coalesce
|
||||
|
||||
from utilities.mptt import TreeManager
|
||||
|
||||
@@ -2,6 +2,7 @@ from urllib.parse import urlencode
|
||||
|
||||
from django.http import QueryDict
|
||||
from django.utils.datastructures import MultiValueDict
|
||||
|
||||
from netbox.models.features import CloningMixin
|
||||
|
||||
__all__ = (
|
||||
|
||||
@@ -7,6 +7,7 @@ from django.utils.translation import gettext_lazy as _
|
||||
from netaddr import AddrFormatError, IPAddress
|
||||
|
||||
from netbox.registry import registry
|
||||
|
||||
from .constants import HTTP_REQUEST_META_SAFE_COPY
|
||||
|
||||
__all__ = (
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
from django.contrib.postgres.fields import ArrayField
|
||||
from django.core.serializers.json import Deserializer, Serializer as Serializer_ # noqa: F401
|
||||
from django.core.serializers.json import Deserializer # noqa: F401
|
||||
from django.core.serializers.json import Serializer as Serializer_
|
||||
from django.utils.encoding import is_protected_type
|
||||
|
||||
# NOTE: Module must contain both Serializer and Deserializer
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
import logging
|
||||
|
||||
from urllib.parse import urlparse
|
||||
from urllib3 import PoolManager, HTTPConnectionPool, HTTPSConnectionPool
|
||||
from urllib3.connection import HTTPConnection, HTTPSConnection
|
||||
from .constants import HTTP_PROXY_SOCK_RDNS_SCHEMAS
|
||||
|
||||
from urllib3 import HTTPConnectionPool, HTTPSConnectionPool, PoolManager
|
||||
from urllib3.connection import HTTPConnection, HTTPSConnection
|
||||
|
||||
from .constants import HTTP_PROXY_SOCK_RDNS_SCHEMAS
|
||||
|
||||
logger = logging.getLogger('netbox.utilities')
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import logging
|
||||
from urllib.parse import urlparse, urlunparse, parse_qs, urlencode
|
||||
from urllib.parse import parse_qs, urlencode, urlparse, urlunparse
|
||||
|
||||
from django import template
|
||||
from django.templatetags.static import static
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import json
|
||||
from typing import Dict, Any
|
||||
from typing import Any, Dict
|
||||
from urllib.parse import quote
|
||||
|
||||
from django import template
|
||||
@@ -8,10 +8,10 @@ from django.utils.html import conditional_escape
|
||||
from django.utils.translation import gettext_lazy as _
|
||||
|
||||
from core.models import ObjectType
|
||||
from utilities.forms import get_selected_values, TableConfigForm
|
||||
from utilities.forms.mixins import FORM_FIELD_LOOKUPS
|
||||
from utilities.views import get_viewname, get_action_url
|
||||
from netbox.settings import DISK_BASE_UNIT, RAM_BASE_UNIT
|
||||
from utilities.forms import TableConfigForm, get_selected_values
|
||||
from utilities.forms.mixins import FORM_FIELD_LOOKUPS
|
||||
from utilities.views import get_action_url, get_viewname
|
||||
|
||||
__all__ = (
|
||||
'action_url',
|
||||
|
||||
@@ -20,6 +20,7 @@ from netbox.models.features import ChangeLoggingMixin
|
||||
from users.constants import TOKEN_PREFIX
|
||||
from users.models import ObjectPermission, Token, User
|
||||
from utilities.api import get_graphql_type_for_model
|
||||
|
||||
from .base import ModelTestCase
|
||||
from .utils import disable_logging, disable_warnings, get_random_string
|
||||
|
||||
|
||||
@@ -6,9 +6,10 @@ from django.contrib.contenttypes.models import ContentType
|
||||
from django.contrib.postgres.fields import ArrayField, RangeField
|
||||
from django.core.exceptions import FieldDoesNotExist
|
||||
from django.db import transaction
|
||||
from django.db.models import ManyToManyField, ManyToManyRel, JSONField
|
||||
from django.db.models import JSONField, ManyToManyField, ManyToManyRel
|
||||
from django.forms.models import model_to_dict
|
||||
from django.test import Client, TestCase as _TestCase
|
||||
from django.test import Client
|
||||
from django.test import TestCase as _TestCase
|
||||
from netaddr import IPNetwork
|
||||
from taggit.managers import TaggableManager
|
||||
|
||||
@@ -17,6 +18,7 @@ from users.models import ObjectPermission, User
|
||||
from utilities.data import ranges_to_string
|
||||
from utilities.object_types import object_type_identifier
|
||||
from utilities.permissions import resolve_permission_type
|
||||
|
||||
from .utils import DUMMY_CF_DATA, extract_form_failures
|
||||
|
||||
__all__ = (
|
||||
|
||||
@@ -13,6 +13,7 @@ from core.models import ObjectChange, ObjectType
|
||||
from netbox.choices import CSVDelimiterChoices, ImportFormatChoices
|
||||
from netbox.models.features import ChangeLoggingMixin, CustomFieldsMixin
|
||||
from users.models import ObjectPermission
|
||||
|
||||
from .base import ModelTestCase
|
||||
from .utils import add_custom_field_data, disable_warnings, get_random_string, post_data
|
||||
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
from django.db.backends.postgresql.psycopg_any import NumericRange
|
||||
from django.test import TestCase
|
||||
|
||||
from utilities.data import (
|
||||
check_ranges_overlap,
|
||||
get_config_value_ci,
|
||||
|
||||
@@ -9,13 +9,13 @@ import dcim.filtersets # noqa: F401 - Import to register Device filterset
|
||||
from dcim.forms.filtersets import DeviceFilterForm
|
||||
from dcim.models import Device
|
||||
from netbox.filtersets import BaseFilterSet
|
||||
from utilities.filtersets import register_filterset
|
||||
from tenancy.models import Tenant
|
||||
from users.models import User
|
||||
from utilities.filtersets import register_filterset
|
||||
from utilities.forms.fields import TagFilterField
|
||||
from utilities.forms.mixins import FilterModifierMixin
|
||||
from utilities.forms.widgets import FilterModifierWidget
|
||||
from utilities.templatetags.helpers import applied_filters
|
||||
from tenancy.models import Tenant
|
||||
|
||||
|
||||
# Test model for FilterModifierMixin tests
|
||||
|
||||
@@ -7,20 +7,34 @@ from taggit.managers import TaggableManager
|
||||
|
||||
from dcim.choices import *
|
||||
from dcim.fields import MACAddressField
|
||||
from dcim.filtersets import DeviceFilterSet, SiteFilterSet, InterfaceFilterSet
|
||||
from dcim.filtersets import DeviceFilterSet, InterfaceFilterSet, SiteFilterSet
|
||||
from dcim.models import (
|
||||
Device, DeviceRole, DeviceType, Interface, MACAddress, Manufacturer, Platform, Rack, Region, Site
|
||||
Device,
|
||||
DeviceRole,
|
||||
DeviceType,
|
||||
Interface,
|
||||
MACAddress,
|
||||
Manufacturer,
|
||||
Platform,
|
||||
Rack,
|
||||
Region,
|
||||
Site,
|
||||
)
|
||||
from extras.filters import TagFilter
|
||||
from extras.models import TaggedItem
|
||||
from ipam.filtersets import ASNFilterSet
|
||||
from ipam.models import RIR, ASN
|
||||
from ipam.models import ASN, RIR
|
||||
from netbox.filtersets import BaseFilterSet
|
||||
from wireless.choices import WirelessRoleChoices
|
||||
from utilities.filters import (
|
||||
MultiValueCharFilter, MultiValueDateFilter, MultiValueDateTimeFilter, MultiValueMACAddressFilter,
|
||||
MultiValueNumberFilter, MultiValueTimeFilter, TreeNodeMultipleChoiceFilter,
|
||||
MultiValueCharFilter,
|
||||
MultiValueDateFilter,
|
||||
MultiValueDateTimeFilter,
|
||||
MultiValueMACAddressFilter,
|
||||
MultiValueNumberFilter,
|
||||
MultiValueTimeFilter,
|
||||
TreeNodeMultipleChoiceFilter,
|
||||
)
|
||||
from wireless.choices import WirelessRoleChoices
|
||||
|
||||
|
||||
class TreeNodeMultipleChoiceFilterTest(TestCase):
|
||||
|
||||
@@ -6,7 +6,7 @@ from netbox.choices import ImportFormatChoices
|
||||
from utilities.forms.bulk_import import BulkImportForm
|
||||
from utilities.forms.fields.csv import CSVSelectWidget
|
||||
from utilities.forms.forms import BulkRenameForm
|
||||
from utilities.forms.utils import get_field_value, expand_alphanumeric_pattern, expand_ipaddress_pattern
|
||||
from utilities.forms.utils import expand_alphanumeric_pattern, expand_ipaddress_pattern, get_field_value
|
||||
from utilities.forms.widgets.select import AvailableOptions, SelectedOptions
|
||||
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
from django.test import TestCase, RequestFactory
|
||||
|
||||
from django.test import RequestFactory, TestCase
|
||||
from netaddr import IPAddress
|
||||
|
||||
from utilities.request import get_client_ip
|
||||
|
||||
|
||||
|
||||
@@ -17,6 +17,7 @@ from netbox.registry import registry
|
||||
from utilities.relations import get_related_models
|
||||
from utilities.request import safe_for_redirect
|
||||
from utilities.string import title
|
||||
|
||||
from .permissions import resolve_permission
|
||||
|
||||
__all__ = (
|
||||
|
||||
Reference in New Issue
Block a user