Author jeff.allen
Recipients fwierzbicki, jamesmudd, jeff.allen
Date 2018-02-27.22:34:41
SpamBayes Score -1.0
Marked as misclassified Yes
Message-id <>
Oh great: automatic imports. This is better than plain old Python! But seriously ... I confirm the observation and agree this is incorrect behaviour.

PS issue2654> dir test_mod
-a----       27/02/2018     21:55            270 Bad.class
-a----       27/02/2018     21:50             69
-a----       27/02/2018     07:56             28
-a----       27/02/2018     07:56             28

PS issue2654> jython
Jython 2.7.2a1+ (default:d74f8c2cd56f, Feb 24 2018, 17:18:53)
[Java HotSpot(TM) 64-Bit Server VM (Oracle Corporation)] on java1.8.0_151
Type "help", "copyright", "credits" or "license" for more information.
>>> import test_mod
Executed:  test_mod\
>>> dir(test_mod)
['__builtins__', '__doc__', '__file__', '__name__', '__package__', '__path__']
>>> test_mod.Bad.x          ### This magical import we want (I think)
>>> dir(test_mod)
['Bad', '__builtins__', '__doc__', '__file__', '__name__', '__package__', '__path__']
>>> type(test_mod.hello)    ### This magical import is not Python :(
Executed:  test_mod\
<type 'module'>

It's not as bad as at first I thought. It would still have my vote to be fixed before 2.7.2 goes out.

The business of package/module import is difficult enough in plain Python. We add Java packages to the mix, which are syntactically similar and semantically different, so it is bound to be difficult. The first thing is to be clear what behaviour we want. The Jython Book has something useful to say here:
The word "disastrous" should give us pause.

On the other hand, the Java semantics are a lot like Python 3 namespace packages (PEP 420). There the first still defines a regular package exclusively at that location.
Date User Action Args
2018-02-27 22:34:42jeff.allensetmessageid: <>
2018-02-27 22:34:42jeff.allensetrecipients: + jeff.allen, fwierzbicki, jamesmudd
2018-02-27 22:34:42jeff.allenlinkissue2654 messages
2018-02-27 22:34:41jeff.allencreate