Skip to content
This repository has been archived by the owner on Dec 23, 2021. It is now read-only.

Commit

Permalink
Fix hinted compilation missing *ALL* packages
Browse files Browse the repository at this point in the history
Since `full_name` is now a ModuleName instance but `self.import_files` and `self.import_calls` are string lists, we need to call `asString()` method on ModuleName in order to make comparisons work again.
  • Loading branch information
deajan committed Mar 30, 2021
1 parent 030d122 commit c6ecc1f
Showing 1 changed file with 6 additions and 5 deletions.
11 changes: 6 additions & 5 deletions hinted-compilation/hinted-mods.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
# Copyright 2019-2020, Jorj McKie, mailto:<[email protected]>
# Copyright 2019-2020, Orsiris de Jong, mailto:<[email protected]>
# Copyright 2019-2021, Orsiris de Jong, mailto:<[email protected]>
#
# Part of "Nuitka", an optimizing Python compiler that is compatible and
# integrates with CPython, but also works on its own.
Expand Down Expand Up @@ -86,11 +86,12 @@ def get_checklist(full_name):
"""
if not full_name: # guard against nonsense
return []
checklist = [full_name] # full name is always looked up first
checklist = [full_name.asString(), full_name.asString() + '.*'] # full name is always looked up first
m0 = ""
while True: # generate *-import names
pkg, full_name = full_name.splitPackageName()
if not pkg: break
if not pkg:
break
m = pkg.asString()
m0 += "." + m if m0 else m
checklist.append(m0 + ".*")
Expand Down Expand Up @@ -374,7 +375,7 @@ def onModuleEncounter(self, module_filename, module_name, module_kind):
self.info(ignore_msg)
return False, "dropped by plugin " + plugin.plugin_name

if full_name == "cv2":
if full_name.asString() == "cv2":
return True, "needed by OpenCV"

if str(full_name.getTopLevelPackageName()).startswith("pywin"):
Expand All @@ -385,7 +386,7 @@ def onModuleEncounter(self, module_filename, module_name, module_kind):
if m in checklist:
return True, "module is hinted to" # ok

if check_dependents(full_name, self.import_files) is True:
if check_dependents(full_name.asString(), self.import_files) is True:
return True, "parent of recursed-to module"

# next we ask if implicit imports knows our candidate
Expand Down

0 comments on commit c6ecc1f

Please sign in to comment.