Skip to content

Commit 49aff3b

Browse files
committed
Apply Tim patch for java import
1 parent ef38f55 commit 49aff3b

File tree

1 file changed

+13
-13
lines changed

1 file changed

+13
-13
lines changed

graalpython/lib-graalpython/java.py

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -42,18 +42,17 @@
4242

4343

4444
class JavaPackageLoader:
45+
@staticmethod
46+
def is_java_package(name):
47+
try:
48+
package = type("java.lang.Package")
49+
return any(p.getName().startswith(name) for p in package.getPackages())
50+
except KeyError:
51+
if sys.flags.verbose:
52+
from _warnings import warn
53+
warn("Host lookup allowed, but java.lang.Package not available. Importing from Java cannot work.")
54+
return False
4555
if __graalpython__.jython_emulation_enabled:
46-
@staticmethod
47-
def is_java_package(name):
48-
try:
49-
package = type("java.lang.Package")
50-
return any(p.getName().startswith(name) for p in package.getPackages())
51-
except KeyError:
52-
if sys.flags.verbose:
53-
from _warnings import warn
54-
warn("Host lookup allowed, but java.lang.Package not available. Importing from Java cannot work.")
55-
return False
56-
5756
@staticmethod
5857
def _make_getattr(modname):
5958
modname = modname + "."
@@ -87,6 +86,8 @@ def __getattr__(key, default=None):
8786
return type(modname_wo + key)
8887
except KeyError:
8988
pass
89+
if JavaPackageLoader.is_java_package(modname + key):
90+
return JavaPackageLoader._create_module(modname + key)
9091
raise AttributeError(key)
9192
return __getattr__
9293

@@ -198,5 +199,4 @@ def find_spec(self, fullname, path, target=None):
198199

199200

200201
sys.meta_path.append(JavaImportFinder())
201-
if __graalpython__.jython_emulation_enabled:
202-
__getattr__ = JavaPackageLoader._make_getattr("java")
202+
__getattr__ = JavaPackageLoader._make_getattr("java")

0 commit comments

Comments
 (0)