<div dir="auto">Slept all day.  I probably will have some time tonight.</div><div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Wed, Dec 8, 2021 at 9:59 AM Brutzman, Donald (Don) (CIV) <<a href="mailto:brutzman@nps.edu">brutzman@nps.edu</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;padding-left:1ex;border-left-color:rgb(204,204,204)">





<div lang="EN-US" link="blue" vlink="purple" style="word-wrap:break-word">
<div class="m_-5456792643138357681WordSection1">
<p class="MsoNormal">We’re up to 4.0.45 now, propagated.<u></u><u></u></p>
<p class="MsoNormal"><u></u> <u></u></p>
<p class="MsoNormal">The way to test is to <u></u><u></u></p>
<ol style="margin-top:0in" start="1" type="a">
<li class="m_-5456792643138357681MsoListParagraph" style="margin-left:0in">look at the examples and find a flaw<u></u><u></u></li><li class="m_-5456792643138357681MsoListParagraph" style="margin-left:0in">then try to deduce cause of flaw,<u></u><u></u></li><li class="m_-5456792643138357681MsoListParagraph" style="margin-left:0in">then find offending block in x3d.py  and consider fix, possibly testing locally<u></u><u></u></li><li class="m_-5456792643138357681MsoListParagraph" style="margin-left:0in">then confirm whether or not this is part of a recursive pattern (as are all the exports)<u></u><u></u></li><li class="m_-5456792643138357681MsoListParagraph" style="margin-left:0in">then I apply corrected code pattern in the autogenerator for X3DUOM to x3d.py<u></u><u></u></li></ol>
<p class="MsoNormal"><u></u> <u></u></p>
<p class="MsoNormal">First steps are most important.  I recommend not trying to fix any of the export recursion patterns, it requires close debugging across autogeneration/inspection/debugging/generation with version-control comparison throughout.<u></u><u></u></p>
<div>
<p class="MsoNormal"><span style="font-size:10pt;font-family:"Courier New""><u style="font-family:"Courier New""></u> <u style="font-family:"Courier New""></u></span></p>
<p class="MsoNormal"><span style="font-size:10pt;font-family:"Courier New"">all the best, Don<u style="font-family:"Courier New""></u><u style="font-family:"Courier New""></u></span></p>
<p class="MsoNormal"><span style="font-size:10pt;font-family:"Courier New"">-- <u style="font-family:"Courier New""></u>
<u style="font-family:"Courier New""></u></span></p>
<p class="MsoNormal"><span style="font-size:10pt;font-family:"Courier New"">Don Brutzman  Naval Postgraduate School, Code USW/Br        <a href="mailto:brutzman@nps.edu" target="_blank" style="font-family:"Courier New"">brutzman@nps.edu</a><u style="font-family:"Courier New""></u><u style="font-family:"Courier New""></u></span></p>
<p class="MsoNormal"><span style="font-size:10pt;font-family:"Courier New"">Watkins 270,  MOVES Institute, Monterey CA 93943-5000 USA    +1.831.656.2149<u style="font-family:"Courier New""></u><u style="font-family:"Courier New""></u></span></p>
<p class="MsoNormal"><span style="font-size:10pt;font-family:"Courier New"">X3D graphics, virtual worlds, navy robotics https://</span>
<span style="font-size:10pt;font-family:"Courier New""><a href="http://faculty.nps.edu/brutzman" target="_blank" style="font-family:"Courier New"">faculty.nps.edu/brutzman</a><u style="font-family:"Courier New""></u><u style="font-family:"Courier New""></u></span></p>
</div>
<p class="MsoNormal"><u></u> <u></u></p>
<div>
<div style="border-style:solid none none;border-top-width:1pt;padding:3pt 0in 0in;border-top-color:rgb(225,225,225)">
<p class="MsoNormal"><b>From:</b> John Carlson <<a href="mailto:yottzumm@gmail.com" target="_blank">yottzumm@gmail.com</a>> <br>
<b>Sent:</b> Monday, December 6, 2021 12:27 AM<br>
<b>To:</b> Brutzman, Donald (Don) (CIV) <<a href="mailto:brutzman@nps.edu" target="_blank">brutzman@nps.edu</a>>; <a href="mailto:vmarchetti@kshell.com" target="_blank">vmarchetti@kshell.com</a><br>
<b>Cc:</b> X3D-Public <<a href="mailto:x3d-public@web3d.org" target="_blank">x3d-public@web3d.org</a>><br>
<b>Subject:</b> Re: [x3d-public] Results for today with x3d.py, _X3DField<u></u><u></u></p>
</div>
</div>
<p class="MsoNormal"><u></u> <u></u></p>
<div style="border:1pt solid rgb(0,70,121);padding:2pt">
<p class="MsoNormal" style="line-height:12pt;background-color:rgb(0,70,121)"><span style="font-size:10pt;color:yellow">NPS WARNING: *external sender* verify before acting.<u></u><u></u></span></p>
</div></div></div><div lang="EN-US" link="blue" vlink="purple" style="word-wrap:break-word"><div class="m_-5456792643138357681WordSection1">
<p class="MsoNormal"><u></u> <u></u></p>
<div>
<p><span style="font-family:"Courier New";background-color:white;color:black">Apparently the package/module hasn't propagated yet, because it said I had 4.0.43 up-to-date.   But I got x3d.py from sourceforge:</span><u></u><u></u></p>
<p><span style="font-family:"Courier New";background-color:white;color:black">The follow diff allowed me to export JSON as found in a previous attachment.   Perhaps we should add indent and syntaxs to all JSON def methods?  Also, the str I adding I think prints out
 NoneType...not desired in JSON, perhaps we need to throw an exception? if each.JSON() returns None or NoneType? I will review particulars you have changed.</span><u></u><u></u></p>
<p><span style="font-family:"Courier New";background-color:white;color:black">$ diff /c/x3d-code/<a href="http://www.web3d.org/x3d/stylesheets/python/x3d.py" target="_blank" style="font-family:"Courier New"">www.web3d.org/x3d/stylesheets/python/x3d.py</a> x3d.py
</span><span style="font-family:"Courier New""><br>
12286c12286 <br>
<                     result += each.JSON(indentLevel=indentLevel+1, syntax=syntax)
<br>
--- <br>
>                     result += str(each.JSON()) <br>
42390c42390 <br>
<                     result += each.JSON(indentLevel=indentLevel+1, syntax=syntax)
<br>
--- <br>
>                     result += each.JSON() <br>
77395c77395 <br>
<                 result += self.geometry.JSON(indentLevel=indentLevel+1, syntax=syntax)
<br>
--- <br>
>                 result += self.geometry.JSON() <br>
89045c89045 <br>
<                     result += each.JSON(indentLevel=indentLevel+1, syntax=syntax)
<br>
--- <br>
>                     result += each.JSON()</span><u></u><u></u></p>
<div>
<p class="MsoNormal">On 12/6/21 00:36, Brutzman, Donald (Don) (CIV) wrote:<u></u><u></u></p>
</div>
<blockquote style="margin-top:5pt;margin-bottom:5pt">
<p class="MsoNormal">I think it cleaned up OK.  Changes tested and checked in, now version 4.0.44 on PyPi.<u></u><u></u></p>
<p class="MsoNormal"> <u></u><u></u></p>
<ol style="margin-top:0in" start="1" type="1">
<li class="m_-5456792643138357681MsoListParagraph" style="margin-left:0in"><a href="https://nam10.safelinks.protection.outlook.com/?url=https%3A%2F%2Fpypi.org%2Fproject%2Fx3d&data=04%7C01%7Cbrutzman%40nps.edu%7Cb52539c9cf264ecdf4e808d9b8923579%7C6d936231a51740ea9199f7578963378e%7C0%7C0%7C637743760828837395%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C2000&sdata=LMPMZa6twQZYSAEc1eiWcIQyv14AtGuoZCYns8ROHm4%3D&reserved=0" target="_blank">https://pypi.org/project/x3d</a><u></u><u></u></li></ol>
<div>
<p class="MsoNormal"><span style="font-size:10pt;font-family:"Courier New ,serif",serif"> </span><u></u><u></u></p>
<p class="MsoNormal"><span style="font-size:10pt;font-family:"Courier New ,serif",serif">all the best, Don</span><u></u><u></u></p>
<p class="MsoNormal"><span style="font-size:10pt;font-family:"Courier New ,serif",serif">--
</span><u></u><u></u></p>
<p class="MsoNormal"><span style="font-size:10pt;font-family:"Courier New ,serif",serif">Don Brutzman  Naval Postgraduate School, Code USW/Br       
<a href="mailto:brutzman@nps.edu" target="_blank" style="font-family:"Courier New ,serif",serif">brutzman@nps.edu</a></span><u></u><u></u></p>
<p class="MsoNormal"><span style="font-size:10pt;font-family:"Courier New ,serif",serif">Watkins 270,  MOVES Institute, Monterey CA 93943-5000 USA    +1.831.656.2149</span><u></u><u></u></p>
<p class="MsoNormal"><span style="font-size:10pt;font-family:"Courier New ,serif",serif">X3D graphics, virtual worlds, navy robotics https://</span>
<span style="font-size:10pt;font-family:"Courier New ,serif",serif"><a href="http://faculty.nps.edu/brutzman" target="_blank" style="font-family:"Courier New ,serif",serif">faculty.nps.edu/brutzman</a></span><u></u><u></u></p>
</div>
<p class="MsoNormal"> <u></u><u></u></p>
<div>
<div style="border-style:solid none none;border-top-width:1pt;padding:3pt 0in 0in;border-top-color:rgb(225,225,225)">
<p class="MsoNormal"><b>From:</b> Brutzman, Donald (Don) (CIV) <a href="mailto:brutzman@nps.edu" target="_blank">
<brutzman@nps.edu></a> <br>
<b>Sent:</b> Sunday, December 5, 2021 10:09 PM<br>
<b>To:</b> <a href="mailto:vmarchetti@kshell.com" target="_blank">vmarchetti@kshell.com</a>; John Carlson
<a href="mailto:yottzumm@gmail.com" target="_blank"><yottzumm@gmail.com></a><br>
<b>Cc:</b> X3D-Public <a href="mailto:x3d-public@web3d.org" target="_blank"><x3d-public@web3d.org></a>; Brutzman, Donald (Don) (CIV)
<a href="mailto:brutzman@nps.edu" target="_blank"><brutzman@nps.edu></a><br>
<b>Subject:</b> RE: [x3d-public] Results for today with x3d.py, _X3DField<u></u><u></u></p>
</div>
</div>
<p class="MsoNormal"> <u></u><u></u></p>
<p class="MsoNormal">Thanks for reports and correct diagnosis.  I did take out the three “object” inheritances earlier today, pylint says it is no longer required in Python 3, no ill effects noted.<u></u><u></u></p>
<p class="MsoNormal"> <u></u><u></u></p>
<p class="MsoNormal">I have tried to follow X3D4 Architecture exactly, and am keen to avoid overwriting!  Hopefully tonight’s build looks a bit better.<u></u><u></u></p>
<p class="MsoNormal"> <u></u><u></u></p>
<p class="MsoNormal">The specification does not show X3DField inheriting from anything.<u></u><u></u></p>
<p class="MsoNormal"> <u></u><u></u></p>
<ol style="margin-top:0in" start="1" type="1">
<li class="m_-5456792643138357681MsoListParagraph" style="margin-left:0in">X3D4 Architecture, 5.2.3 X3DField<u></u><u></u></li><li class="m_-5456792643138357681MsoListParagraph" style="margin-left:0in"><a href="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/fieldTypes.html#X3DField" target="_blank">https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/fieldTypes.html#X3DField</a><u></u><u></u></li></ol>
<p class="MsoNormal"> <u></u><u></u></p>
<ol style="margin-top:0in" start="3" type="1">
<li class="m_-5456792643138357681MsoListParagraph" style="margin-left:0in">X3D4 Architecture, 54.4.2.3 Interface hierarchy
<u></u><u></u></li><li class="m_-5456792643138357681MsoListParagraph" style="margin-left:0in">(looks like first line of Figure 4.2 needs more whitespace)<u></u><u></u></li><li class="m_-5456792643138357681MsoListParagraph" style="margin-left:0in"><a href="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/concepts.html#InterfaceHierarchy" target="_blank">https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/concepts.html#InterfaceHierarchy</a><u></u><u></u></li></ol>
<p class="MsoNormal"> <u></u><u></u></p>
<p class="MsoNormal">Sure enough, searching for “class _ X3DField” in x3d.py reveals two abstract class definitions, ouch!  That’s more like multiple personalities that multiple inheritance…<u></u><u></u></p>
<p class="MsoNormal"> <u></u><u></u></p>
<p class="MsoNormal">Will work on fixing the autogeneration of offending version.<u></u><u></u></p>
<div>
<p class="MsoNormal"><span style="font-size:10pt;font-family:"Courier New ,serif",serif"> </span><u></u><u></u></p>
<p class="MsoNormal"><span style="font-size:10pt;font-family:"Courier New ,serif",serif">all the best, Don</span><u></u><u></u></p>
<p class="MsoNormal"><span style="font-size:10pt;font-family:"Courier New ,serif",serif">--
</span><u></u><u></u></p>
<p class="MsoNormal"><span style="font-size:10pt;font-family:"Courier New ,serif",serif">Don Brutzman  Naval Postgraduate School, Code USW/Br       
<a href="mailto:brutzman@nps.edu" target="_blank" style="font-family:"Courier New ,serif",serif">brutzman@nps.edu</a></span><u></u><u></u></p>
<p class="MsoNormal"><span style="font-size:10pt;font-family:"Courier New ,serif",serif">Watkins 270,  MOVES Institute, Monterey CA 93943-5000 USA    +1.831.656.2149</span><u></u><u></u></p>
<p class="MsoNormal"><span style="font-size:10pt;font-family:"Courier New ,serif",serif">X3D graphics, virtual worlds, navy robotics https://</span>
<span style="font-size:10pt;font-family:"Courier New ,serif",serif"><a href="http://faculty.nps.edu/brutzman" target="_blank" style="font-family:"Courier New ,serif",serif">faculty.nps.edu/brutzman</a></span><u></u><u></u></p>
</div>
<p class="MsoNormal"> <u></u><u></u></p>
<div>
<div style="border-style:solid none none;border-top-width:1pt;padding:3pt 0in 0in;border-top-color:rgb(225,225,225)">
<p class="MsoNormal"><b>From:</b> <a href="mailto:vmarchetti@kshell.com" target="_blank">vmarchetti@kshell.com</a> <<a href="mailto:vmarchetti@kshell.com" target="_blank">vmarchetti@kshell.com</a>>
<br>
<b>Sent:</b> Sunday, December 5, 2021 3:59 AM<br>
<b>To:</b> John Carlson <<a href="mailto:yottzumm@gmail.com" target="_blank">yottzumm@gmail.com</a>><br>
<b>Cc:</b> Brutzman, Donald (Don) (CIV) <<a href="mailto:brutzman@nps.edu" target="_blank">brutzman@nps.edu</a>>; X3D-Public <<a href="mailto:x3d-public@web3d.org" target="_blank">x3d-public@web3d.org</a>><br>
<b>Subject:</b> Re: [x3d-public] Results for today with x3d.py, _X3DField<u></u><u></u></p>
</div>
</div>
<p class="MsoNormal"> <u></u><u></u></p>
<div>
<p class="MsoNormal">Python does support multiple inheritance, but these fragments are not an example of a multiple-inheritance situation -- rather, the later class definition -- where _X3DField is a subclass of _X3DNode, overwrites the earlier class definition.
<u></u><u></u></p>
<div>
<p class="MsoNormal"> <u></u><u></u></p>
</div>
<div>
<p class="MsoNormal">In the x3d.py file, only three classes are defined as direct subclasses of object:<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal"> <u></u><u></u></p>
</div>
<div>
<p class="MsoNormal">class _X3DField<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal">class _X3DNode<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal">class _X3DStatement<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal"> <u></u><u></u></p>
</div>
<div>
<p class="MsoNormal">So I think the operative question is whether it is a design intent that _X3DField also should be a subclass of _X3DNode.  I judge the answer is no, since that would include support for DEF, USE, and metadata. In that light, the second class
 defintion for _X3DField would be regarded as a bug, to be corrected by modifying the X3duomToX3dPythonPackage.xslt stylesheet.<u></u><u></u></p>
</div>
<div>
<div>
<div>
<div>
<p class="MsoNormal" style="margin-bottom:12pt"> <u></u><u></u></p>
<blockquote style="margin-top:5pt;margin-bottom:5pt">
<div>
<p class="MsoNormal">On Dec 4, 2021, at 11:40 PM, John Carlson <<a href="mailto:yottzumm@gmail.com" target="_blank">yottzumm@gmail.com</a>> wrote:<u></u><u></u></p>
</div>
<p class="MsoNormal"> <u></u><u></u></p>
<div>
<div>
<p class="MsoNormal">Two declarations of _X3DField?<u></u><u></u></p>
<p class="MsoNormal">$ grep "class _X3DField" x3d.py          <u></u><u></u></p>
<div>
<p class="MsoNormal"> <u></u><u></u></p>
</div>
<p class="MsoNormal"><b>class _X3DField</b>(object): <u></u><u></u></p>
<p class="MsoNormal"><b>class _X3DField</b>(_X3DNode):<u></u><u></u></p>
<p class="MsoNormal">Is there a pylint?<u></u><u></u></p>
<p class="MsoNormal">Isn't multiple inheritance possible?<u></u><u></u></p>
<p class="MsoNormal">Thanks!<u></u><u></u></p>
<p class="MsoNormal">John<u></u><u></u></p>
<div>
<p class="MsoNormal"> <u></u><u></u></p>
</div>
</div>
<p class="MsoNormal">_______________________________________________<br>
x3d-public mailing list<br>
<a href="mailto:x3d-public@web3d.org" target="_blank">x3d-public@web3d.org</a><br>
<a href="http://web3d.org/mailman/listinfo/x3d-public_web3d.org" target="_blank">http://web3d.org/mailman/listinfo/x3d-public_web3d.org</a><u></u><u></u></p>
</div>
</blockquote>
</div>
<p class="MsoNormal"> <u></u><u></u></p>
</div>
</div>
</div>
</div>
</blockquote>
</div>
</div>
</div>

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