2016-04-03 9 views
1

Ich versuche, einen Beitrag zu leisten, die Einfuhren in Authentifizierungs-Datei django-Rest-Rahmen, nachdem ich isort wie diese sind laufen (ich habe Import sechs hinzugefügt):falsch bestellen Importe tox mit

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 

wenn ich betreiben ./runtests --lintonly es alle Tests erfolgreich durchlaufen, aber wenn ich tox laufe es gibt mir diese Fehlermeldung:

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' 
+0

Können Sie teilen, was Code haben Sie an die django Rest Rahmen hinzuzufügen. Es könnte mir helfen, das Problem zu reproduzieren und eine Lösung zu finden. –

+0

@Vinit Es waren kaum 2 Zeilen, 'import six' und Ersetzen von' type ('') 'durch' six.string_types' in authentication.py. – dnit13

Antwort

1

von dem, was ich in dem REST-Framework-Quellcode sehen (zB here), six aus denimportiert. Ersetzen import six mit from django.utils import six sollte die isort Warnung beheben:

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 
0

Ich traf einen ähnlichen Fehler (Imports are incorrectly sorted).

isort war glücklich, wenn direkt ausgeführt und beim Ausführen über tox. Die Linien, die isort beschwerte sich über waren:

import pytest 

from my_module import MyThing 

isort, wenn sie direkt ausführen, wusste, dass mein Modul my_module eine erste Partei (meine eigenen Code) war während über tox es nicht. Also, wenn direkt ausgeführt wurde, war es glücklich mit der leeren Zeile zwischen pytest Import und meinem Import, aber über tox wollte es nicht die leere Zeile sehen, da sowohl pytest als auch my_module als Drittanbieter-Importe interpretiert wurden.

Die Lösung war diese Linie meiner setup.cfg hinzuzufügen:

[isort] 
... 
known_first_party = my_module