<html><head><meta http-equiv="content-type" content="text/html; charset=utf-8"></head><body dir="auto">Based on a tiny bit of code review, the below parameter changes may be necessary.  I don’t think we should clutter up the code with numerous unnecessary parameters.<div><br></div><div>However, the output JSON is not pretty yet.  I will take the string and run it through json.loads and json.dumps when I get a chance.  I’m fairly sure the JSON doesn’t pass jsonlint though, so parsing is premature.</div><div><br></div><div>Are you parsing XML yet, or do you see my code as a new generation of X3DJSONLD?</div><div><br></div><div>John</div><div><br><div dir="ltr">Sent from my iPad</div><div dir="ltr"><br><blockquote type="cite">On Dec 6, 2021, at 2:27 AM, John Carlson <yottzumm@gmail.com> wrote:<br><br></blockquote></div><blockquote type="cite"><div dir="ltr">
  
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  
  
    <p><span style="font-family:monospace"><span style="color:#000000;background-color:#ffffff;">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></span></p>
    <p><span style="font-family:monospace"><span style="color:#000000;background-color:#ffffff;">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.<br>
        </span></span></p>
    <p><span style="font-family:monospace"><span style="color:#000000;background-color:#ffffff;">$ diff
          /c/x3d-code/www.web3d.org/x3d/stylesheets/python/x3d.py x3d.py
        </span><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()<br>
      </span></p>
    <div class="moz-cite-prefix">On 12/6/21 00:36, Brutzman, Donald
      (Don) (CIV) wrote:<br>
    </div>
    <blockquote type="cite" cite="mid:BY3PR13MB4884016BED404D334152E2A7C46D9@BY3PR13MB4884.namprd13.prod.outlook.com">
      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
      <meta name="Generator" content="Microsoft Word 15 (filtered
        medium)">
      <style>@font-face
        {font-family:Wingdings;
        panose-1:5 0 0 0 0 0 0 0 0 0;}@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;}a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}p.MsoListParagraph, li.MsoListParagraph, div.MsoListParagraph
        {mso-style-priority:34;
        margin-top:0in;
        margin-right:0in;
        margin-bottom:0in;
        margin-left:.5in;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;}span.EmailStyle21
        {mso-style-type:personal-reply;
        font-family:"Calibri",sans-serif;
        color:windowtext;}.MsoChpDefault
        {mso-style-type:export-only;
        font-size:10.0pt;}div.WordSection1
        {page:WordSection1;}ol
        {margin-bottom:0in;}ul
        {margin-bottom:0in;}</style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
      <div class="WordSection1">
        <p class="MsoNormal">I think it cleaned up OK.  Changes tested
          and checked in, now version 4.0.44 on PyPi.<o:p></o:p></p>
        <p class="MsoNormal"><o:p> </o:p></p>
        <ul style="margin-top:0in" type="disc">
          <li class="MsoListParagraph" style="margin-left:0in;mso-list:l3 level1 lfo5"><a class="moz-txt-link-freetext" href="https://pypi.org/project/x3d">https://pypi.org/project/x3d</a><o:p></o:p></li>
        </ul>
        <div>
          <p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Courier
              New",serif"><o:p> </o:p></span></p>
          <p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Courier
              New",serif">all the best, Don<o:p></o:p></span></p>
          <p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Courier
              New",serif">--
              <o:p></o:p></span></p>
          <p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Courier
              New",serif">Don Brutzman  Naval Postgraduate School,
              Code USW/Br        <a class="moz-txt-link-abbreviated" href="mailto:brutzman@nps.edu">brutzman@nps.edu</a><o:p></o:p></span></p>
          <p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Courier
              New",serif">Watkins 270,  MOVES Institute, Monterey
              CA 93943-5000 USA    +1.831.656.2149<o:p></o:p></span></p>
          <p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Courier
              New",serif">X3D graphics, virtual worlds, navy
              robotics https://</span>
            <span style="font-size:10.0pt;font-family:"Courier
              New",serif">faculty.nps.edu/brutzman<o:p></o:p></span></p>
        </div>
        <p class="MsoNormal"><o:p> </o:p></p>
        <div>
          <div style="border:none;border-top:solid #E1E1E1
            1.0pt;padding:3.0pt 0in 0in 0in">
            <p class="MsoNormal"><b>From:</b> Brutzman, Donald (Don)
              (CIV) <a class="moz-txt-link-rfc2396E" href="mailto:brutzman@nps.edu"><brutzman@nps.edu></a>
              <br>
              <b>Sent:</b> Sunday, December 5, 2021 10:09 PM<br>
              <b>To:</b> <a class="moz-txt-link-abbreviated" href="mailto:vmarchetti@kshell.com">vmarchetti@kshell.com</a>; John Carlson
              <a class="moz-txt-link-rfc2396E" href="mailto:yottzumm@gmail.com"><yottzumm@gmail.com></a><br>
              <b>Cc:</b> X3D-Public <a class="moz-txt-link-rfc2396E" href="mailto:x3d-public@web3d.org"><x3d-public@web3d.org></a>;
              Brutzman, Donald (Don) (CIV) <a class="moz-txt-link-rfc2396E" href="mailto:brutzman@nps.edu"><brutzman@nps.edu></a><br>
              <b>Subject:</b> RE: [x3d-public] Results for today with
              x3d.py, _X3DField<o:p></o:p></p>
          </div>
        </div>
        <p class="MsoNormal"><o:p> </o:p></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.<o:p></o:p></p>
        <p class="MsoNormal"><o:p> </o:p></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.<o:p></o:p></p>
        <p class="MsoNormal"><o:p> </o:p></p>
        <p class="MsoNormal">The specification does not show X3DField
          inheriting from anything.<o:p></o:p></p>
        <p class="MsoNormal"><o:p> </o:p></p>
        <ul style="margin-top:0in" type="disc">
          <li class="MsoListParagraph" style="margin-left:0in;mso-list:l1 level1 lfo3">X3D4
            Architecture, 5.2.3 X3DField<o:p></o:p></li>
          <li class="MsoListParagraph" style="margin-left:0in;mso-list:l1 level1 lfo3"><a class="moz-txt-link-freetext" href="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/fieldTypes.html#X3DField">https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/fieldTypes.html#X3DField</a><o:p></o:p></li>
        </ul>
        <p class="MsoNormal"><o:p> </o:p></p>
        <ul style="margin-top:0in" type="disc">
          <li class="MsoListParagraph" style="margin-left:0in;mso-list:l1 level1 lfo3">X3D4
            Architecture, 54.4.2.3 Interface hierarchy
            <o:p></o:p></li>
          <li class="MsoListParagraph" style="margin-left:0in;mso-list:l1 level1 lfo3">(looks like
            first line of Figure 4.2 needs more whitespace)<o:p></o:p></li>
          <li class="MsoListParagraph" style="margin-left:0in;mso-list:l1 level1 lfo3"><a class="moz-txt-link-freetext" href="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/concepts.html#InterfaceHierarchy">https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/concepts.html#InterfaceHierarchy</a><o:p></o:p></li>
        </ul>
        <p class="MsoNormal"><o:p> </o:p></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…<o:p></o:p></p>
        <p class="MsoNormal"><o:p> </o:p></p>
        <p class="MsoNormal">Will work on fixing the autogeneration of
          offending version.<o:p></o:p></p>
        <div>
          <p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Courier
              New",serif"><o:p> </o:p></span></p>
          <p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Courier
              New",serif">all the best, Don<o:p></o:p></span></p>
          <p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Courier
              New",serif">--
              <o:p></o:p></span></p>
          <p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Courier
              New",serif">Don Brutzman  Naval Postgraduate School,
              Code USW/Br       
              <a href="mailto:brutzman@nps.edu" moz-do-not-send="true" class="moz-txt-link-freetext">brutzman@nps.edu</a><o:p></o:p></span></p>
          <p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Courier
              New",serif">Watkins 270,  MOVES Institute, Monterey
              CA 93943-5000 USA    +1.831.656.2149<o:p></o:p></span></p>
          <p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Courier
              New",serif">X3D graphics, virtual worlds, navy
              robotics https://</span>
            <span style="font-size:10.0pt;font-family:"Courier
              New",serif">faculty.nps.edu/brutzman<o:p></o:p></span></p>
        </div>
        <p class="MsoNormal"><o:p> </o:p></p>
        <div>
          <div style="border:none;border-top:solid #E1E1E1
            1.0pt;padding:3.0pt 0in 0in 0in">
            <p class="MsoNormal"><b>From:</b> <a href="mailto:vmarchetti@kshell.com" moz-do-not-send="true" class="moz-txt-link-freetext">vmarchetti@kshell.com</a>
              <<a href="mailto:vmarchetti@kshell.com" moz-do-not-send="true" class="moz-txt-link-freetext">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" moz-do-not-send="true" class="moz-txt-link-freetext">yottzumm@gmail.com</a>><br>
              <b>Cc:</b> Brutzman, Donald (Don) (CIV) <<a href="mailto:brutzman@nps.edu" moz-do-not-send="true" class="moz-txt-link-freetext">brutzman@nps.edu</a>>;
              X3D-Public <<a href="mailto:x3d-public@web3d.org" moz-do-not-send="true" class="moz-txt-link-freetext">x3d-public@web3d.org</a>><br>
              <b>Subject:</b> Re: [x3d-public] Results for today with
              x3d.py, _X3DField<o:p></o:p></p>
          </div>
        </div>
        <p class="MsoNormal"><o:p> </o:p></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.
            <o:p></o:p></p>
          <div>
            <p class="MsoNormal"><o:p> </o:p></p>
          </div>
          <div>
            <p class="MsoNormal">In the x3d.py file, only three classes
              are defined as direct subclasses of object:<o:p></o:p></p>
          </div>
          <div>
            <p class="MsoNormal"><o:p> </o:p></p>
          </div>
          <div>
            <p class="MsoNormal">class _X3DField<o:p></o:p></p>
          </div>
          <div>
            <p class="MsoNormal">class _X3DNode<o:p></o:p></p>
          </div>
          <div>
            <p class="MsoNormal">class _X3DStatement<o:p></o:p></p>
          </div>
          <div>
            <p class="MsoNormal"><o:p> </o:p></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.<o:p></o:p></p>
          </div>
          <div>
            <div>
              <div>
                <div>
                  <p class="MsoNormal" style="margin-bottom:12.0pt"><o:p> </o:p></p>
                  <blockquote style="margin-top:5.0pt;margin-bottom:5.0pt">
                    <div>
                      <p class="MsoNormal">On Dec 4, 2021, at 11:40 PM,
                        John Carlson <<a href="mailto:yottzumm@gmail.com" moz-do-not-send="true" class="moz-txt-link-freetext">yottzumm@gmail.com</a>>
                        wrote:<o:p></o:p></p>
                    </div>
                    <p class="MsoNormal"><o:p> </o:p></p>
                    <div>
                      <div>
                        <p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span style="font-family:"Courier
                            New",serif;color:black;background:white">Two
                            declarations of _X3DField?</span><o:p></o:p></p>
                        <p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span style="font-family:"Courier
                            New",serif;color:black;background:white">$
                            grep "class _X3DField" x3d.py          </span><o:p></o:p></p>
                        <div>
                          <p class="MsoNormal"><o:p> </o:p></p>
                        </div>
                        <p class="MsoNormal"><b><span style="font-family:"Courier
                              New",serif;color:#FF5454;background:white">class
                              _X3DField</span></b><span style="font-family:"Courier
                            New",serif;color:black;background:white">(object):
                          </span><o:p></o:p></p>
                        <p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><b><span style="font-family:"Courier
                              New",serif;color:#FF5454;background:white">class
                              _X3DField</span></b><span style="font-family:"Courier
                            New",serif;color:black;background:white">(_X3DNode):</span><o:p></o:p></p>
                        <p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span style="font-family:"Courier
                            New",serif;color:black;background:white">Is
                            there a pylint?</span><o:p></o:p></p>
                        <p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span style="font-family:"Courier
                            New",serif;color:black;background:white">Isn't
                            multiple inheritance possible?</span><o:p></o:p></p>
                        <p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span style="font-family:"Courier
                            New",serif;color:black;background:white">Thanks!</span><o:p></o:p></p>
                        <p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span style="font-family:"Courier
                            New",serif;color:black;background:white">John</span><o:p></o:p></p>
                        <div>
                          <p class="MsoNormal"><o:p> </o:p></p>
                        </div>
                      </div>
                      <p class="MsoNormal">_______________________________________________<br>
                        x3d-public mailing list<br>
                        <a href="mailto:x3d-public@web3d.org" moz-do-not-send="true" class="moz-txt-link-freetext">x3d-public@web3d.org</a><br>
                        <a href="http://web3d.org/mailman/listinfo/x3d-public_web3d.org" moz-do-not-send="true" class="moz-txt-link-freetext">http://web3d.org/mailman/listinfo/x3d-public_web3d.org</a><o:p></o:p></p>
                    </div>
                  </blockquote>
                </div>
                <p class="MsoNormal"><o:p> </o:p></p>
              </div>
            </div>
          </div>
        </div>
      </div>
    </blockquote>
  
</div></blockquote></div></body></html>