Skip to content

Commit 029426a

Browse files
authored
Merge pull request #55 from cloudblue/LITE-25849-add-isort
LITE-25849 Add isort
2 parents 89320a6 + 9c88d14 commit 029426a

35 files changed

+157
-127
lines changed

.github/workflows/build.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ jobs:
1414
runs-on: ubuntu-latest
1515
strategy:
1616
matrix:
17-
python-version: ['3.6', '3.7', '3.8', '3.9', '3.10']
17+
python-version: ['3.7', '3.8', '3.9', '3.10']
1818
steps:
1919
- name: Checkout project
2020
uses: actions/checkout@v2

README.md

+3-1
Original file line numberDiff line numberDiff line change
@@ -271,7 +271,9 @@ Development
271271
===========
272272

273273
1. Python 3.6+
274-
0. Install dependencies `requirements/dev.txt` and `requirements/extra.txt`
274+
2. Install dependencies `requirements/dev.txt` and `requirements/extra.txt`
275+
3. We use `isort` library to order and format our imports, and we check it using `flake8-isort` library (automatically on `flake8` run).
276+
For convenience you may run `isort .` to order imports.
275277

276278
Testing
277279
=======

dj_rql/constants.py

-1
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@
33
#
44

55
from django.db import models
6-
76
from py_rql.constants import FilterLookups, FilterTypes as FT
87

98

dj_rql/drf/backend.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,10 @@
33
#
44
from threading import Lock
55

6-
from dj_rql.drf._utils import get_query
7-
86
from rest_framework.filters import BaseFilterBackend
97

8+
from dj_rql.drf._utils import get_query
9+
1010

1111
lock = Lock()
1212

dj_rql/drf/compat.py

+5-5
Original file line numberDiff line numberDiff line change
@@ -4,23 +4,23 @@
44

55
from collections import Counter
66

7-
from dj_rql.constants import DjangoLookups as DJL, FilterTypes
8-
from dj_rql.drf._utils import get_query
9-
from dj_rql.drf.backend import RQLFilterBackend
10-
117
from py_rql.constants import (
12-
ComparisonOperators as CO,
138
RQL_ANY_SYMBOL,
149
RQL_FALSE,
1510
RQL_LIMIT_PARAM,
1611
RQL_NULL,
1712
RQL_OFFSET_PARAM,
1813
RQL_ORDERING_OPERATOR,
1914
RQL_TRUE,
15+
ComparisonOperators as CO,
2016
SearchOperators as SO,
2117
)
2218
from py_rql.exceptions import RQLFilterParsingError
2319

20+
from dj_rql.constants import DjangoLookups as DJL, FilterTypes
21+
from dj_rql.drf._utils import get_query
22+
from dj_rql.drf.backend import RQLFilterBackend
23+
2424

2525
class CompatibilityRQLFilterBackend(RQLFilterBackend):
2626
"""

dj_rql/drf/paginations.py

+3-5
Original file line numberDiff line numberDiff line change
@@ -2,17 +2,15 @@
22
# Copyright © 2022 Ingram Micro Inc. All rights reserved.
33
#
44

5-
from dj_rql.drf._utils import get_query
6-
from dj_rql.transformer import RQLLimitOffsetTransformer
7-
85
from lark.exceptions import LarkError
9-
106
from py_rql.exceptions import RQLFilterParsingError
117
from py_rql.parser import RQLParser
12-
138
from rest_framework.pagination import LimitOffsetPagination, _positive_int
149
from rest_framework.response import Response
1510

11+
from dj_rql.drf._utils import get_query
12+
from dj_rql.transformer import RQLLimitOffsetTransformer
13+
1614

1715
class RQLLimitOffsetPagination(LimitOffsetPagination):
1816
""" RQL limit offset pagination. """

dj_rql/filter_cls.py

+18-13
Original file line numberDiff line numberDiff line change
@@ -8,23 +8,18 @@
88
from datetime import datetime
99
from uuid import uuid4
1010

11-
from dj_rql._dataclasses import FilterArgs, OptimizationArgs
12-
from dj_rql.constants import DjangoLookups, FilterTypes, SUPPORTED_FIELD_TYPES
13-
from dj_rql.fields import SelectField
14-
from dj_rql.openapi import RQLFilterClassSpecification
15-
from dj_rql.qs import Annotation, NPR, NSR
16-
from dj_rql.transformer import RQLToDjangoORMTransformer
17-
18-
from django.db.models import ForeignKey, ManyToManyField, Model, OneToOneField, OneToOneRel, Q
11+
from django.db.models import (
12+
ForeignKey,
13+
ManyToManyField,
14+
Model,
15+
OneToOneField,
16+
OneToOneRel,
17+
Q,
18+
)
1919
from django.utils.dateparse import parse_date, parse_datetime
2020
from django.utils.functional import cached_property
21-
2221
from lark.exceptions import LarkError
23-
2422
from py_rql.constants import (
25-
ComparisonOperators,
26-
FilterLookups,
27-
ListOperators,
2823
RESERVED_FILTER_NAMES,
2924
RQL_ANY_SYMBOL,
3025
RQL_EMPTY,
@@ -34,11 +29,21 @@
3429
RQL_PLUS,
3530
RQL_SEARCH_PARAM,
3631
RQL_TRUE,
32+
ComparisonOperators,
33+
FilterLookups,
34+
ListOperators,
3735
SearchOperators,
3836
)
3937
from py_rql.exceptions import RQLFilterLookupError, RQLFilterParsingError, RQLFilterValueError
4038
from py_rql.parser import RQLParser
4139

40+
from dj_rql._dataclasses import FilterArgs, OptimizationArgs
41+
from dj_rql.constants import SUPPORTED_FIELD_TYPES, DjangoLookups, FilterTypes
42+
from dj_rql.fields import SelectField
43+
from dj_rql.openapi import RQLFilterClassSpecification
44+
from dj_rql.qs import NPR, NSR, Annotation
45+
from dj_rql.transformer import RQLToDjangoORMTransformer
46+
4247

4348
iterable_types = (list, tuple)
4449

dj_rql/management/commands/generate_rql_class.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -5,12 +5,12 @@
55
import json
66
import re
77

8-
from dj_rql.filter_cls import NestedAutoRQLFilterClass
9-
108
from django.core.management import BaseCommand
119
from django.db.models import ForeignKey, OneToOneField, OneToOneRel
1210
from django.utils.module_loading import import_string
1311

12+
from dj_rql.filter_cls import NestedAutoRQLFilterClass
13+
1414

1515
TEMPLATE = """from {model_package} import {model_name}
1616

dj_rql/openapi.py

+6-3
Original file line numberDiff line numberDiff line change
@@ -5,12 +5,15 @@
55
from copy import copy
66
from numbers import Number
77

8-
from dj_rql.constants import FilterTypes
9-
108
from py_rql.constants import (
11-
FilterLookups, RQL_NULL, RQL_ORDERING_OPERATOR, RQL_SEARCH_PARAM,
9+
RQL_NULL,
10+
RQL_ORDERING_OPERATOR,
11+
RQL_SEARCH_PARAM,
12+
FilterLookups,
1213
)
1314

15+
from dj_rql.constants import FilterTypes
16+
1417

1518
class RQLFilterDescriptionTemplate:
1619
BASE_TEMPLATE = '{description}\n\n**lookups:** {lookups}'

dj_rql/transformer.py

+4-5
Original file line numberDiff line numberDiff line change
@@ -2,19 +2,18 @@
22
# Copyright © 2022 Ingram Micro Inc. All rights reserved.
33
#
44

5-
from dj_rql._dataclasses import FilterArgs
6-
75
from lark import Tree
8-
96
from py_rql.constants import (
7+
RQL_LIMIT_PARAM,
8+
RQL_OFFSET_PARAM,
109
ComparisonOperators,
1110
ListOperators,
1211
LogicalOperators,
13-
RQL_LIMIT_PARAM,
14-
RQL_OFFSET_PARAM,
1512
)
1613
from py_rql.transformer import BaseRQLTransformer
1714

15+
from dj_rql._dataclasses import FilterArgs
16+
1817

1918
class RQLToDjangoORMTransformer(BaseRQLTransformer):
2019
""" Parsed RQL AST tree transformer to Django ORM Query.

docs/conf.py

-1
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@
33
from datetime import datetime
44

55
import django
6-
76
from setuptools_scm import get_version
87

98

requirements/test.txt

+3-2
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ flake8-commas==2.0.0
1818
flake8-comprehensions==3.7.0
1919
flake8-debugger==4.0.0
2020
flake8-eradicate==1.1.0
21-
flake8-import-order==0.18.1
21+
flake8-isort==5.0.3
2222
flake8-string-format==0.3.0
23-
importlib-metadata>=4.0.0,<5.0.0
23+
importlib-metadata>=4.0.0,<5.0.0
24+
isort==5.10.1

setup.cfg

+12
Original file line numberDiff line numberDiff line change
@@ -12,3 +12,15 @@ addopts = --show-capture=no --create-db --nomigrations --junitxml=tests/reports/
1212
filterwarnings =
1313
ignore::UserWarning
1414
DJANGO_SETTINGS_MODULE = tests.dj_rf.settings
15+
16+
[isort]
17+
src_paths = *
18+
sections = FUTURE,STDLIB,THIRDPARTY,FIRSTPARTY,LOCALFOLDER
19+
group_by_package = True
20+
multi_line_output = 3
21+
force_grid_wrap = 4
22+
combine_as_imports = True
23+
use_parentheses = True
24+
include_trailing_comma = True
25+
line_length = 100
26+
lines_after_imports = 2

tests/constants.py

+6-1
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,12 @@
33
#
44

55
from py_rql.constants import (
6-
ComparisonOperators, ListOperators, LogicalOperators, RQL_EMPTY, RQL_NULL, SearchOperators,
6+
RQL_EMPTY,
7+
RQL_NULL,
8+
ComparisonOperators,
9+
ListOperators,
10+
LogicalOperators,
11+
SearchOperators,
712
)
813

914

tests/dj_rf/filters.py

+13-6
Original file line numberDiff line numberDiff line change
@@ -4,15 +4,22 @@
44
from copy import deepcopy
55

66
from cachetools import LFUCache, LRUCache
7+
from django.db.models import (
8+
AutoField,
9+
CharField,
10+
F,
11+
IntegerField,
12+
)
13+
from py_rql.constants import RQL_NULL, FilterLookups
714

815
from dj_rql.fields import SelectField
916
from dj_rql.filter_cls import RQLFilterClass
10-
from dj_rql.qs import AN, NSR, PR, SR
11-
12-
from django.db.models import AutoField, CharField, F, IntegerField
13-
14-
from py_rql.constants import FilterLookups, RQL_NULL
15-
17+
from dj_rql.qs import (
18+
AN,
19+
NSR,
20+
PR,
21+
SR,
22+
)
1623
from tests.dj_rf.models import Book
1724

1825

tests/dj_rf/models.py

-2
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,7 @@
55
from uuid import uuid4
66

77
from django.db import models
8-
98
from django_fsm import FSMField
10-
119
from model_utils import Choices
1210

1311

tests/dj_rf/serializers.py

+7-3
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,15 @@
22
# Copyright © 2022 Ingram Micro Inc. All rights reserved.
33
#
44

5-
from dj_rql.drf.serializers import RQLMixin
6-
75
from rest_framework import serializers
86

9-
from tests.dj_rf.models import Author, Book, Page, Publisher
7+
from dj_rql.drf.serializers import RQLMixin
8+
from tests.dj_rf.models import (
9+
Author,
10+
Book,
11+
Page,
12+
Publisher,
13+
)
1014

1115

1216
class PublisherReferenceSerializer(RQLMixin, serializers.ModelSerializer):

tests/dj_rf/settings.py

+1
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44

55
import os
66

7+
78
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
89

910
SECRET_KEY = '6^1@%4#qtc+bookwp4w5k-+nbo+clm!skzdhnyl@rf&06b5tl6'

tests/dj_rf/urls.py

+5-2
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,14 @@
44

55
from django.conf.urls import include
66
from django.urls import re_path
7-
87
from rest_framework.routers import SimpleRouter
98

109
from tests.dj_rf.view import (
11-
AutoViewSet, DRFViewSet, DjangoFiltersViewSet, DynamicFilterClsViewSet, NoFilterClsViewSet,
10+
AutoViewSet,
11+
DjangoFiltersViewSet,
12+
DRFViewSet,
13+
DynamicFilterClsViewSet,
14+
NoFilterClsViewSet,
1215
SelectViewSet,
1316
)
1417

tests/dj_rf/view.py

+7-7
Original file line numberDiff line numberDiff line change
@@ -2,20 +2,20 @@
22
# Copyright © 2022 Ingram Micro Inc. All rights reserved.
33
#
44

5-
from dj_rql.drf.backend import RQLFilterBackend
6-
from dj_rql.drf.compat import DjangoFiltersRQLFilterBackend
7-
from dj_rql.drf.paginations import RQLContentRangeLimitOffsetPagination
8-
from dj_rql.filter_cls import AutoRQLFilterClass
9-
105
from django.db.models import CharField, IntegerField, Value
11-
126
from rest_framework import mixins
137
from rest_framework.decorators import action
148
from rest_framework.response import Response
159
from rest_framework.viewsets import GenericViewSet
1610

11+
from dj_rql.drf.backend import RQLFilterBackend
12+
from dj_rql.drf.compat import DjangoFiltersRQLFilterBackend
13+
from dj_rql.drf.paginations import RQLContentRangeLimitOffsetPagination
14+
from dj_rql.filter_cls import AutoRQLFilterClass
1715
from tests.dj_rf.filters import (
18-
BooksFilterClass, SelectBooksFilterClass, SelectDetailedBooksFilterClass,
16+
BooksFilterClass,
17+
SelectBooksFilterClass,
18+
SelectDetailedBooksFilterClass,
1919
)
2020
from tests.dj_rf.models import Book
2121
from tests.dj_rf.serializers import BookSerializer, SelectBookSerializer

tests/test_commands/test_generate_rql_class.py

+1-2
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,8 @@
44

55
import os
66

7-
from django.core.management import call_command
8-
97
import pytest
8+
from django.core.management import call_command
109

1110
from tests.dj_rf.models import AutoMain, Publisher
1211

tests/test_drf/conftest.py

+2-3
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,11 @@
22
# Copyright © 2021 Ingram Micro Inc. All rights reserved.
33
#
44

5-
from dj_rql.drf.backend import RQLFilterBackend, _FilterClassCache
6-
75
import pytest
8-
96
from rest_framework.test import APIClient
107

8+
from dj_rql.drf.backend import RQLFilterBackend, _FilterClassCache
9+
1110

1211
@pytest.fixture
1312
def api_client():

0 commit comments

Comments
 (0)