Merge pull request #16 from tiagofmcosta/master

Handling multiple imports in the same line when using aliases
This commit is contained in:
Vadim Kravcenko 2015-05-09 09:08:57 +02:00
commit d6da9ddc96
2 changed files with 12 additions and 4 deletions

View File

@ -52,11 +52,9 @@ def get_all_imports(start_path):
for item in s.groups():
if "," in item:
for match in item.split(","):
imports.append(match.strip())
imports.append(get_import_name_without_alias(match))
else:
to_append = item.partition(
' as ')[0].partition('.')[0]
imports.append(to_append.strip())
imports.append(get_import_name_without_alias(item))
third_party_packages = set(imports) - set(set(packages) & set(imports))
logging.debug(
'Found third-party packages: {0}'.format(third_party_packages))
@ -130,6 +128,10 @@ def get_pkg_names_from_import_names(pkgs):
return result
def get_import_name_without_alias(import_name):
return import_name.partition(' as ')[0].partition('.')[0].strip()
def init(args):
print("Looking for imports")
imports = get_all_imports(args['<path>'])

View File

@ -82,6 +82,12 @@ class TestPipreqs(unittest.TestCase):
for item in self.modules2:
self.assertTrue(item.lower() in data)
def test_get_import_name_without_alias(self):
import_name_with_alias = "requests as R"
expected_import_name_without_alias = "requests"
import_name_without_aliases = pipreqs.get_import_name_without_alias(import_name_with_alias)
self.assertEqual(import_name_without_aliases, expected_import_name_without_alias)
def tearDown(self):
try:
os.remove(self.requirements_path)