<div><div dir="auto">I think what we want to do is create packages out of components, so that a component, say navigation, contains several classes.   Don, do you concur?</div></div><div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Tue, Apr 23, 2019 at 4:17 PM Peitso, Loren (CIV) <<a href="mailto:lepeitso@nps.edu">lepeitso@nps.edu</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">



<div dir="auto">
I don't think so.  It looks to me like you are trying to identify something internal to a module that way.  Import works on the module itself and builds the interpreter’s symbol table for the whole module to allow resolving everything correctly.
<div><br>
</div>
<div>from xxx import yyy   Kind of does what you ask for one method at a time.  And you can probably use the as functionality too,  you do still pollute namespace that way, but not quite as willy-nilly.</div>
<div><br>
</div>
<div>Really though, just because it might feel a little more java-ish for the from imports and how they avoid needing to prepend module names, thats exactly a backwards goal if you want the end result to be robust in Python.</div>
<div><br>
<div id="m_3582575932797894683AppleMailSignature" dir="ltr">v/r Loren
<div><br>
</div>
<div>Sent from my iPhone</div>
</div>
<div dir="ltr"><br>
On Apr 23, 2019, at 13:16, John Carlson <<a href="mailto:yottzumm@gmail.com" target="_blank">yottzumm@gmail.com</a>> wrote:<br>
<br>
</div>
<blockquote type="cite">
<div dir="ltr">


<div class="m_3582575932797894683WordSection1">
<p class="MsoNormal">Could I do:</p>
<p class="MsoNormal"><u></u> <u></u></p>
<p class="MsoNormal">import org.web3d.x3d.jsail.Core.X3DObject.X3DObject as X3D</p>
<p class="MsoNormal"><u></u> <u></u></p>
<p class="MsoNormal">???</p>
<p class="MsoNormal"><u></u> <u></u></p>
<p class="MsoNormal">Sent from <a href="https://go.microsoft.com/fwlink/?LinkId=550986" target="_blank">
Mail</a> for Windows 10</p>
<p class="MsoNormal"><u></u> <u></u></p>
<div style="border:none;border-top:solid #e1e1e1 1.0pt;padding:3.0pt 0in 0in 0in">
<p class="MsoNormal" style="border:none;padding:0in"><b>From: </b><a href="mailto:lepeitso@nps.edu" target="_blank">Peitso, Loren (CIV)</a><br>
<b>Sent: </b>Tuesday, April 23, 2019 11:23 AM<br>
<b>To: </b><a href="mailto:yottzumm@gmail.com" target="_blank">John Carlson</a>; <a href="mailto:brutzman@nps.edu" target="_blank">
Brutzman, Donald (Don) (CIV)</a><br>
<b>Cc: </b><a href="mailto:x3d-public@web3d.org" target="_blank">X3D Graphics public mailing list</a><br>
<b>Subject: </b>Re: need help with import</p>
</div>
<p class="MsoNormal"><u></u> <u></u></p>
<p><span style="font-size:12.0pt;color:black">You want <u></u><u></u></span></p>
<p><span style="font-size:12.0pt;color:black"><u></u> <u></u></span></p>
<p><span style="color:#212121">import classpath<u></u><u></u></span></p>
<p><span style="color:#212121">import org.web3d.x3d.jsail.Core.X3DObject as X3D               </span><span style="font-size:12.0pt;color:black"><u></u><u></u></span></p>
<p><span style="color:#212121"><br>
<br>
</span><span style="font-size:12.0pt;color:black"><u></u><u></u></span></p>
<p><span style="color:#212121">X3D0 = X3D.X3D() /</span><span style="font-size:12.0pt;color:black"><u></u><u></u></span></p>
<p><span style="color:#212121"><br>
<br>
</span><span style="font-size:12.0pt;color:black"><u></u><u></u></span></p>
<p><span style="color:#212121"><br>
<br>
</span><span style="font-size:12.0pt;color:black"><u></u><u></u></span></p>
<p><span style="color:#212121"><br>
<br>
</span><span style="font-size:12.0pt;color:black"><u></u><u></u></span></p>
<p><span style="color:#212121">The module error was due to not having the module name prepended to the constructor call, which is the required tradeoff for avoiding the namespace messes of from inporting.   It is the from style importing that creates potential
 silent namespace overwrite problems.  </span><span style="font-size:12.0pt;color:black"><u></u><u></u></span></p>
<p><span style="color:#212121"><br>
<br>
</span><span style="font-size:12.0pt;color:black"><u></u><u></u></span></p>
<p><span style="color:#212121">I hope this helps. Apologies on the terseness, I'm down with a bug.</span><span style="font-size:12.0pt;color:black"><u></u><u></u></span></p>
<p><span style="color:#212121"><br>
<br>
</span><span style="font-size:12.0pt;color:black"><u></u><u></u></span></p>
<p><span style="color:#212121">v/r  Loren</span><span style="font-size:12.0pt;color:black"><u></u><u></u></span></p>
<p><span style="color:#212121"><br>
<br>
</span><span style="font-size:12.0pt;color:black"><u></u><u></u></span></p>
<p><span style="color:#212121"><br>
<br>
</span><span style="font-size:12.0pt;color:black"><u></u><u></u></span></p>
<p><span style="color:#212121"><br>
<br>
</span><span style="font-size:12.0pt;color:black"><u></u><u></u></span></p>
<p class="MsoNormal"><F85A8FD195EF4BCE94B2236B20B5A947.png><u></u><u></u></p></div></div></blockquote></div></div><div dir="auto"><div><blockquote type="cite"><div dir="ltr"><div class="m_3582575932797894683WordSection1">
<div id="m_3582575932797894683divRplyFwdMsg">
<p class="MsoNormal"><b><span style="color:black">From:</span></b><span style="color:black"> John Carlson <<a href="mailto:yottzumm@gmail.com" target="_blank">yottzumm@gmail.com</a>><br>
<b>Sent:</b> Tuesday, April 23, 2019 12:08:09 AM<br>
<b>To:</b> Brutzman, Donald (Don) (CIV); Peitso, Loren (CIV)<br>
<b>Cc:</b> X3D Graphics public mailing list<br>
<b>Subject:</b> RE: need help with import</span> <u></u><u></u></p>
<div>
<p class="MsoNormal"> <u></u><u></u></p>
</div>
</div>
<div>
<div>
<p class="m_3582575932797894683xmsonormal">I think that Loren suggested import * clouded the namespace too much (did we get the same email?).</p>
<p class="m_3582575932797894683xmsonormal"> </p>
<p class="m_3582575932797894683xmsonormal">We could do</p>
<p class="m_3582575932797894683xmsonormal"> </p>
<p class="m_3582575932797894683xmsonormal">import X3Dautoclass</p>
<p class="m_3582575932797894683xmsonormal"> </p>
<p class="m_3582575932797894683xmsonormal">John  </p>
<p class="m_3582575932797894683xmsonormal"> </p>
<p class="m_3582575932797894683xmsonormal">Sent from <a href="https://go.microsoft.com/fwlink/?LinkId=550986" target="_blank">
Mail</a> for Windows 10</p>
<p class="m_3582575932797894683xmsonormal"> </p>
<div style="border:none;border-top:solid #e1e1e1 1.0pt;padding:3.0pt 0in 0in 0in">
<p class="m_3582575932797894683xmsonormal"><b>From: </b><a href="mailto:brutzman@nps.edu" target="_blank">Brutzman, Donald (Don) (CIV)</a><br>
<b>Sent: </b>Tuesday, April 23, 2019 12:53 AM<br>
<b>To: </b><a href="mailto:yottzumm@gmail.com" target="_blank">John Carlson</a>; <a href="mailto:lepeitso@nps.edu" target="_blank">
Peitso, Loren (CIV)</a><br>
<b>Cc: </b><a href="mailto:x3d-public@web3d.org" target="_blank">X3D Graphics public mailing list</a><br>
<b>Subject: </b>Re: need help with import</p>
</div>
<p class="m_3582575932797894683xmsonormal"> </p>
<p class="m_3582575932797894683xmsonormal">Yes this is a Loren question.</p>
<p class="m_3582575932797894683xmsonormal"> </p>
<p class="m_3582575932797894683xmsonormal">From prior email conversation and guidance from Loren, I think a good .py file starts with</p>
<p class="m_3582575932797894683xmsonormal"> </p>
<p class="m_3582575932797894683xmsonormal">from X3Dautoclass import *</p>
<p class="m_3582575932797894683xmsonormal">X3D0 = X3D() \</p>
<p class="m_3582575932797894683xmsonormal">    .setProfile("Immersive") \</p>
<p class="m_3582575932797894683xmsonormal">    .setVersion("3.3") \</p>
<p class="m_3582575932797894683xmsonormal">    # [etc.]</p>
<p class="m_3582575932797894683xmsonormal"> </p>
<p class="m_3582575932797894683xmsonormal"> </p>
<p class="m_3582575932797894683xmsonormal"> </p>
<p class="m_3582575932797894683xmsonormal">On 4/22/2019 10:15 PM, John Carlson wrote:</p>
<p class="m_3582575932797894683xmsonormal">> import classpath</p>
<p class="m_3582575932797894683xmsonormal">> </p>
<p class="m_3582575932797894683xmsonormal">> import org.web3d.x3d.jsail.Core.X3DObject as X3D</p>
<p class="m_3582575932797894683xmsonormal">> </p>
<p class="m_3582575932797894683xmsonormal">> The above doesn’t work. Message:</p>
<p class="m_3582575932797894683xmsonormal">> </p>
<p class="m_3582575932797894683xmsonormal">> $ python <a href="http://abox.future.py" target="_blank">abox.future.py</a></p>
<p class="m_3582575932797894683xmsonormal">> </p>
<p class="m_3582575932797894683xmsonormal">> Traceback (most recent call last):</p>
<p class="m_3582575932797894683xmsonormal">> </p>
<p class="m_3582575932797894683xmsonormal">>    File "<a href="http://abox.future.py" target="_blank">abox.future.py</a>", line 20, in <module></p>
<p class="m_3582575932797894683xmsonormal">> </p>
<p class="m_3582575932797894683xmsonormal">>      X3D0 = X3D() \</p>
<p class="m_3582575932797894683xmsonormal">> </p>
<p class="m_3582575932797894683xmsonormal">> TypeError: 'module' object is not callable</p>
<p class="m_3582575932797894683xmsonormal">> </p>
<p class="m_3582575932797894683xmsonormal">> $ cat org/web3d/x3d/jsail/Core/X3DObject.py</p>
<p class="m_3582575932797894683xmsonormal">> </p>
<p class="m_3582575932797894683xmsonormal">> from jnius import autoclass</p>
<p class="m_3582575932797894683xmsonormal">> </p>
<p class="m_3582575932797894683xmsonormal">> X3DObject = autoclass('org.web3d.x3d.jsail.Core.X3DObject')</p>
<p class="m_3582575932797894683xmsonormal">> </p>
<p class="m_3582575932797894683xmsonormal">> Suggestions?</p>
<p class="m_3582575932797894683xmsonormal">> </p>
<p class="m_3582575932797894683xmsonormal">> Thanks,</p>
<p class="m_3582575932797894683xmsonormal">> </p>
<p class="m_3582575932797894683xmsonormal">> John</p>
<p class="m_3582575932797894683xmsonormal">> </p>
<p class="m_3582575932797894683xmsonormal"> </p>
<p class="m_3582575932797894683xmsonormal"> </p>
<p class="m_3582575932797894683xmsonormal">all the best, Don</p>
<p class="m_3582575932797894683xmsonormal">-- </p>
<p class="m_3582575932797894683xmsonormal">Don Brutzman  Naval Postgraduate School, Code USW/Br       <a href="mailto:brutzman@nps.edu" target="_blank">
brutzman@nps.edu</a></p>
<p class="m_3582575932797894683xmsonormal">Watkins 270,  MOVES Institute, Monterey CA 93943-5000 USA   +1.831.656.2149</p>
<p class="m_3582575932797894683xmsonormal">X3D graphics, virtual worlds, navy robotics <a href="http://faculty.nps.edu/brutzman" target="_blank">
http://faculty.nps.edu/brutzman</a></p>
</div>
</div>
<p class="m_3582575932797894683xmsonormal"> </p>
<p class="MsoNormal"><u></u> <u></u></p>
</div></div></blockquote></div></div><div dir="auto"><div><blockquote type="cite"><div dir="ltr"><div class="m_3582575932797894683WordSection1"></div>
</div>
</blockquote>
<blockquote type="cite">
<div dir="ltr"><F85A8FD195EF4BCE94B2236B20B5A947.png></div>
</blockquote>
</div>
</div>

</blockquote></div></div>