使用 tox 错误地订购进口
Incorrectly ordered imports using tox
我正在尝试为django-rest-framework做贡献,我运行 isort
之后认证文件中的导入是这样的(我添加了导入六):
from __future__ import unicode_literals
import base64
import six
from django.contrib.auth import authenticate, get_user_model
from django.middleware.csrf import CsrfViewMiddleware
from django.utils.translation import ugettext_lazy as _
from rest_framework import HTTP_HEADER_ENCODING, exceptions
当我 运行 ./runtests --lintonly
它通过了所有测试但是当我 运行 tox
它给了我这个错误:
py27-lint runtests: commands[0] | ./runtests.py --lintonly
Running flake8 code linting
flake8 passed
Running isort code checking
ERROR: /home/nitesh/open_source/django-rest-framework/rest_framework/authentication.py Imports are incorrectly sorted.
isort failed: Some modules have incorrectly ordered imports. Fix by running `isort --recursive .`
ERROR: InvocationError: '/home/nitesh/open_source/django-rest-framework/runtests.py --lintonly'
根据我在 REST 框架源代码中看到的(例如 here),six
是从 django.utils
导入的。将 import six
替换为 from django.utils import six
应该可以解决 isort
警告:
from __future__ import unicode_literals
import base64
from django.utils import six
from django.contrib.auth import authenticate, get_user_model
from django.middleware.csrf import CsrfViewMiddleware
from django.utils.translation import ugettext_lazy as _
from rest_framework import HTTP_HEADER_ENCODING, exceptions
我遇到了类似的错误 (Imports are incorrectly sorted
)。
isort
在直接 运行 时很高兴,在 运行 宁通过 tox
时失败了。 isort
抱怨的行是:
import pytest
from my_module import MyThing
isort
,当直接 运行 时,知道我的模块 my_module
是第一方(我自己的)代码,而通过 tox
则不是。因此,当直接 运行 时,它对 pytest
导入和我的导入之间的空行很满意,但是通过 tox
它不想看到空行,因为 pytest
my_module
被解释为第三方进口。
解决方案是将此行添加到我的 setup.cfg
:
[isort]
...
known_first_party = my_module
我正在尝试为django-rest-framework做贡献,我运行 isort
之后认证文件中的导入是这样的(我添加了导入六):
from __future__ import unicode_literals
import base64
import six
from django.contrib.auth import authenticate, get_user_model
from django.middleware.csrf import CsrfViewMiddleware
from django.utils.translation import ugettext_lazy as _
from rest_framework import HTTP_HEADER_ENCODING, exceptions
当我 运行 ./runtests --lintonly
它通过了所有测试但是当我 运行 tox
它给了我这个错误:
py27-lint runtests: commands[0] | ./runtests.py --lintonly
Running flake8 code linting
flake8 passed
Running isort code checking
ERROR: /home/nitesh/open_source/django-rest-framework/rest_framework/authentication.py Imports are incorrectly sorted.
isort failed: Some modules have incorrectly ordered imports. Fix by running `isort --recursive .`
ERROR: InvocationError: '/home/nitesh/open_source/django-rest-framework/runtests.py --lintonly'
根据我在 REST 框架源代码中看到的(例如 here),six
是从 django.utils
导入的。将 import six
替换为 from django.utils import six
应该可以解决 isort
警告:
from __future__ import unicode_literals
import base64
from django.utils import six
from django.contrib.auth import authenticate, get_user_model
from django.middleware.csrf import CsrfViewMiddleware
from django.utils.translation import ugettext_lazy as _
from rest_framework import HTTP_HEADER_ENCODING, exceptions
我遇到了类似的错误 (Imports are incorrectly sorted
)。
isort
在直接 运行 时很高兴,在 运行 宁通过 tox
时失败了。 isort
抱怨的行是:
import pytest
from my_module import MyThing
isort
,当直接 运行 时,知道我的模块 my_module
是第一方(我自己的)代码,而通过 tox
则不是。因此,当直接 运行 时,它对 pytest
导入和我的导入之间的空行很满意,但是通过 tox
它不想看到空行,因为 pytest
my_module
被解释为第三方进口。
解决方案是将此行添加到我的 setup.cfg
:
[isort]
...
known_first_party = my_module