2010-12-20 10 views
6

Jest uważany za zły Python użyć importu tak:Narzędzie do wykrywania nieproporcjonalnego importu względnego w Pythonie?

import my_module 

Kiedy robisz względną importu i to będzie działać:

from . import my_module 

Czy istnieje narzędzie, które może wykryć te non-kropka względnej importuje w moim kodzie i ostrzega mnie, żebym mógł zaktualizować je do kropkowanej składni? My project ma setki modułów Pythona i chciałbym to zrobić automatycznie. (Możliwe, że takie narzędzie przesłoniłoby __import__ i wykryłoby zły import, jak to się dzieje, gdy uruchomię program.)

Czy ktoś wie o takim narzędziu?

+0

2to3 automatycznie konwertować je, ponieważ jest to obowiązkowe w Pythonie 3 - może być w stanie modyfikowanie odpowiedni kod, który do analizy statycznej. –

+3

Odpowiedni kod znajduje się tutaj: http://svn.python.org/view/python/trunk/Lib/lib2to3/fixes/fix_import.py?view=markup Alternatywnie, możesz po prostu uruchomić program 2to3 z tylko tym narzędziem: '2to3 -w -f import myproject/' –

+0

@Thomas K: To działało, nie krępuj się, aby opublikować go jako rzeczywistą odpowiedź. –

Odpowiedz

4

[Reposted jako odpowiedź, ponieważ najwyraźniej wystarczyły]

2to3 automatycznie konwertuje je, ponieważ jest to obowiązkowe w Pythonie 3.

Oto relevant source code jeśli chcesz zmodyfikować go do swoich celów.

Alternatywnie, można po prostu uruchomić 2to3 tylko z tego utrwalacza: 2to3 -w -f import myproject/

0

pylint daje ostrzeżenia o względnym imporcie, wraz z tonami innych rzeczy, które z jakiegoś powodu są uważane za "zły Python".

+0

Czy rzeczywiście odróżnia moduły lokalne od modułów 'site-packages'? –

+0

Tak; jest świadomy sys.path i powinien wydawać ostrzeżenia tylko dla faktycznego importu względnego. – geoffspear

+0

Wypróbowany, nie wyświetlał ostrzeżeń o imporcie. –

Powiązane problemy