<div dir="auto">The issue is, I think, that Aaron has some kind of internal structure (DOM?) that he wants to convert to a x3d.py structure.  He can create python and then run it separately, or try to instantiate x3d.py classes in his code.</div><div dir="auto"><br></div><div dir="auto">I’m not saying this is a great approach, but you can look at Doug and my code for exporting from Blender.  <div><a href="https://github.com/coderextreme/BlenderX3DSupport/blob/main/io_scene_x3dv/blender/exp/x3dv_blender_export.py">https://github.com/coderextreme/BlenderX3DSupport/blob/main/io_scene_x3dv/blender/exp/x3dv_blender_export.py</a></div><div dir="auto"><br></div><div dir="auto">I’ve move back to constructing strings for now.</div><div dir="auto"><br></div><div dir="auto">John </div></div><div><br><div class="gmail_quote gmail_quote_container"><div dir="ltr" class="gmail_attr">On Wed, Jan 15, 2025 at 11:25 AM Brutzman, Donald (Don) (CIV) via x3d-public <<a href="mailto:x3d-public@web3d.org">x3d-public@web3d.org</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 dir="ltr">
<div style="font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif;font-size:11pt;color:rgb(0,0,0)">
Hey guys, "please don't go there."  You should never need to poke around with __init__ or inheritance or any of that internal stuff.  Those code patterns are autogenerated, so you don't have to do any of that.</div>
<div style="font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif;font-size:11pt;color:rgb(0,0,0)">
<br>
</div>
<div style="font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif;font-size:11pt;color:rgb(0,0,0)">
Just build a scene graph.  The vocabulary is simply X3D.</div>
<div style="font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif;font-size:11pt;color:rgb(0,0,0)">
<br>
</div>
<div style="font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif;font-size:11pt;color:rgb(0,0,0)">
Corrolary:   "creativity is punished"   😨</div>
<div style="font-family:"Courier New";font-size:9pt;color:rgb(0,0,0)">
<br>
</div>
<div id="m_-2681979249107581422Signature">
<p style="margin:0in;font-family:Calibri,sans-serif;font-size:11pt"><span style="font-family:"Courier New";font-size:9pt">all the best, Don</span></p>
<p style="margin:0in;font-family:Calibri,sans-serif;font-size:11pt"><span style="font-family:"Courier New";font-size:9pt">--</span></p>
<p style="margin:0in;font-family:Calibri,sans-serif;font-size:11pt"><span style="font-family:"Courier New";font-size:9pt">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></span></p>
<p style="margin:0in;font-family:Calibri,sans-serif;font-size:11pt"><span style="font-family:"Courier New";font-size:9pt">Watkins 270,  MOVES Institute, Monterey CA 93943-5000 USA    +1.831.656.2149</span></p>
<p style="margin:0in;font-family:Calibri,sans-serif;font-size:11pt"><span style="font-family:"Courier New";font-size:9pt">X3D graphics, virtual worlds, navy robotics <a href="https://faculty.nps.edu/brutzman" target="_blank" style="font-family:"Courier New"">https://faculty.nps.edu/brutzman</a></span></p>
<p style="margin:0in;font-family:Calibri,sans-serif;font-size:11pt"><span style="font-family:"Courier New";font-size:9pt"> </span></p>
</div>
<div id="m_-2681979249107581422appendonsend"></div>
<div style="font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif;font-size:11pt;color:rgb(0,0,0)">
<br>
</div>
<hr style="display:inline-block;width:98%">
<div dir="ltr" id="m_-2681979249107581422divRplyFwdMsg"><span style="font-family:Calibri,sans-serif;font-size:11pt;color:rgb(0,0,0)"><b style="font-family:Calibri,sans-serif">From:</b> x3d-public <<a href="mailto:x3d-public-bounces@web3d.org" target="_blank" style="font-family:Calibri,sans-serif">x3d-public-bounces@web3d.org</a>> on behalf of Bergstrom, Aaron via x3d-public <<a href="mailto:x3d-public@web3d.org" target="_blank" style="font-family:Calibri,sans-serif">x3d-public@web3d.org</a>><br>
<b style="font-family:Calibri,sans-serif">Sent:</b> Wednesday, January 15, 2025 9:03 AM</span></div></div><div dir="ltr"><div dir="ltr" id="m_-2681979249107581422divRplyFwdMsg"><span style="font-family:Calibri,sans-serif;font-size:11pt;color:rgb(0,0,0)"><br>
<b style="font-family:Calibri,sans-serif">To:</b> Extensible 3D (X3D) Graphics public discussion <<a href="mailto:x3d-public@web3d.org" target="_blank" style="font-family:Calibri,sans-serif">x3d-public@web3d.org</a>><br>
<b style="font-family:Calibri,sans-serif">Cc:</b> Bergstrom, Aaron <<a href="mailto:aaron.bergstrom@und.edu" target="_blank" style="font-family:Calibri,sans-serif">aaron.bergstrom@und.edu</a>><br>
<b style="font-family:Calibri,sans-serif">Subject:</b> Re: [x3d-public] Question about a Python and x3d.py Error message</span>
<div> </div>
</div>
<p style="margin:0in;font-family:Calibri,sans-serif;font-size:11pt">Apparently, I’m a bit out of my depth when it comes to multi class inheritance. Not really a good tutorial out there for mixing inheritance from Maya python classes and other classes.
 I’m getting another error now.</p>
<p style="margin:0in;font-family:Calibri,sans-serif;font-size:11pt">“'X3DScene' object has no attribute '_Scene__children'”</p>
<p style="margin:0in;font-family:Calibri,sans-serif;font-size:11pt"> </p>
<p style="margin:0in;font-family:Calibri,sans-serif;font-size:11pt">
Looking up similar errors in Google basically tells me I’m not calling the inherited classes __init__ methods.</p>
<p style="margin:0in;font-family:Calibri,sans-serif;font-size:11pt"> </p>
<p style="margin:0in;font-family:Calibri,sans-serif;font-size:11pt">I’ll have to do some more digging.</p>
<p style="margin:0in;font-family:Calibri,sans-serif;font-size:11pt"> </p>
<div style="padding:3pt 0in 0in;border-top-width:1pt;border-top-style:solid;border-top-color:rgb(225,225,225)">
<p style="margin:0in;font-family:Calibri,sans-serif;font-size:11pt"><b style="font-family:Calibri,sans-serif">From:</b> John Carlson <<a href="mailto:yottzumm@gmail.com" target="_blank" style="font-family:Calibri,sans-serif">yottzumm@gmail.com</a>><br>
<b style="font-family:Calibri,sans-serif">Sent:</b> Wednesday, January 15, 2025 10:52 AM<br>
<b style="font-family:Calibri,sans-serif">To:</b> Extensible 3D (X3D) Graphics public discussion <<a href="mailto:x3d-public@web3d.org" target="_blank" style="font-family:Calibri,sans-serif">x3d-public@web3d.org</a>><br>
<b style="font-family:Calibri,sans-serif">Cc:</b> Bergstrom, Aaron <<a href="mailto:aaron.bergstrom@und.edu" target="_blank" style="font-family:Calibri,sans-serif">aaron.bergstrom@und.edu</a>><br>
<b style="font-family:Calibri,sans-serif">Subject:</b> Re: [x3d-public] Question about a Python and x3d.py Error message</p>
</div>
<p style="margin:0in;font-family:Calibri,sans-serif;font-size:11pt"> </p>
<p style="margin:0in;font-family:Calibri,sans-serif;font-size:11pt">self is the first parameter to instance methods.  I don’t know about class methods.  My guess is you might want instance methods, but it’s your design.</p>
<p style="margin:0in;font-family:Calibri,sans-serif;font-size:11pt"> </p>
<p style="margin:0in;font-family:Calibri,sans-serif;font-size:11pt">On Wed, Jan 15, 2025 at 10:37 AM Bergstrom, Aaron via x3d-public <<span style="font-family:Calibri,sans-serif;color:blue"><u style="font-family:Calibri,sans-serif"><a href="mailto:x3d-public@web3d.org" id="m_-2681979249107581422OWAdf5131ee-d919-7710-23fd-ee27e7e047d4" style="margin-top:0px;margin-bottom:0px;font-family:Calibri,sans-serif;color:blue" target="_blank">x3d-public@web3d.org</a></u></span>>
 wrote:</p>
<blockquote style="margin-right:0in;margin-left:4.8pt;padding:0in 0in 0in 6pt;border-left-width:1pt;border-left-style:solid;border-left-color:rgb(204,204,204)">
<p style="margin:0in;font-family:Calibri,sans-serif;font-size:11pt">John,</p>
<p style="margin:0in;font-family:Calibri,sans-serif;font-size:11pt"> </p>
<p style="margin:0in;font-family:Calibri,sans-serif;font-size:11pt">Thanks for responding.</p>
<p style="margin:0in;font-family:Calibri,sans-serif;font-size:11pt"> </p>
<p style="margin:0in;font-family:Calibri,sans-serif;font-size:11pt">So in the case of the code below, would the instance method be the “def creator(cls):” method? If so, would I think do the following: “def creator(cls, self):”</p>
<p style="margin:0in;font-family:Calibri,sans-serif;font-size:11pt"> </p>
<p style="margin:0in;font-family:Calibri,sans-serif;font-size:11pt">Or am I not understanding what you are saying?</p>
<p style="margin:0in;font-family:Calibri,sans-serif;font-size:11pt"> </p>
<p style="margin:0in;font-family:Calibri,sans-serif;font-size:11pt">Thanks,</p>
<p style="margin:0in;font-family:Calibri,sans-serif;font-size:11pt"> </p>
<p style="margin:0in;font-family:Calibri,sans-serif;font-size:11pt">Aaron</p>
<p style="margin:0in;font-family:Calibri,sans-serif;font-size:11pt"> </p>
<div style="padding:3pt 0in 0in;border-top-width:1pt;border-top-style:solid;border-top-color:rgb(225,225,225)">
<p style="margin:0in;font-family:Calibri,sans-serif;font-size:11pt"><b style="font-family:Calibri,sans-serif">From:</b> John Carlson <<span style="font-family:Calibri,sans-serif;color:blue"><u style="font-family:Calibri,sans-serif"><a href="mailto:yottzumm@gmail.com" id="m_-2681979249107581422OWA34264e90-5211-c23b-dbaf-04cd7461b179" style="margin-top:0px;margin-bottom:0px;font-family:Calibri,sans-serif;color:blue" target="_blank">yottzumm@gmail.com</a></u></span>><br>
<b style="font-family:Calibri,sans-serif">Sent:</b> Wednesday, January 15, 2025 10:12 AM<br>
<b style="font-family:Calibri,sans-serif">To:</b> Extensible 3D (X3D) Graphics public discussion <<span style="font-family:Calibri,sans-serif;color:blue"><u style="font-family:Calibri,sans-serif"><a href="mailto:x3d-public@web3d.org" id="m_-2681979249107581422OWA250daba6-ca90-8e7b-85a4-8e1d69f58537" style="margin-top:0px;margin-bottom:0px;font-family:Calibri,sans-serif;color:blue" target="_blank">x3d-public@web3d.org</a></u></span>><br>
<b style="font-family:Calibri,sans-serif">Cc:</b> Bergstrom, Aaron <<span style="font-family:Calibri,sans-serif;color:blue"><u style="font-family:Calibri,sans-serif"><a href="mailto:aaron.bergstrom@und.edu" id="m_-2681979249107581422OWAc2471a4e-d2c6-618d-4a12-1b663e280e74" style="margin-top:0px;margin-bottom:0px;font-family:Calibri,sans-serif;color:blue" target="_blank">aaron.bergstrom@und.edu</a></u></span>><br>
<b style="font-family:Calibri,sans-serif">Subject:</b> Re: [x3d-public] Question about a Python and x3d.py Error message</p>
</div>
<p style="margin:0in;font-family:Calibri,sans-serif;font-size:11pt"> </p>
<p style="margin:0in;font-family:Calibri,sans-serif;font-size:11pt">Aaron, AFAIK, you need “self” as the first parameter in your instance methods (not functions, of course).  I don’t know about class methods.</p>
<p style="margin:0in;font-family:Calibri,sans-serif;font-size:11pt"> </p>
<p style="margin:0in;font-family:Calibri,sans-serif;font-size:11pt">If you’re familiar with Java or C++, this is similar to “this”.</p>
<p style="margin:0in;font-family:Calibri,sans-serif;font-size:11pt"> </p>
<p style="margin:0in;font-family:Calibri,sans-serif;font-size:11pt">On Wed, Jan 15, 2025 at 10:02 AM Bergstrom, Aaron via x3d-public <<span style="font-family:Calibri,sans-serif;color:blue"><u style="font-family:Calibri,sans-serif"><a href="mailto:x3d-public@web3d.org" id="m_-2681979249107581422OWA35f60fac-6759-33af-9fcc-ed95d7648d73" style="margin-top:0px;margin-bottom:0px;font-family:Calibri,sans-serif;color:blue" target="_blank">x3d-public@web3d.org</a></u></span>>
 wrote:</p>
<blockquote style="margin:5pt 0in 5pt 4.8pt;padding:0in 0in 0in 6pt;border-left-width:1pt;border-left-style:solid;border-left-color:rgb(204,204,204)">
<p style="margin:0in;font-family:Calibri,sans-serif;font-size:11pt">I need help troubleshooting a x3d.py error message.</p>
<p style="margin:0in;font-family:Calibri,sans-serif;font-size:11pt"> </p>
<p style="margin:0in;font-family:Calibri,sans-serif;font-size:11pt">In developing a Python version of the Rawkee X3D exporter plugin for Maya, I am attempting to create nodes that inherit from both the Maya Python API 2.0 and x3d.py</p>
<p style="margin:0in;font-family:Calibri,sans-serif;font-size:11pt"> </p>
<p style="margin:0in;font-family:Calibri,sans-serif;font-size:11pt">As such, I have a question about python and multiple class inheritance, and an error I am seeing. Admittedly, I am not the strongest Python programmer.</p>
<p style="margin:0in;font-family:Calibri,sans-serif;font-size:11pt"> </p>
<p style="margin:0in;font-family:Calibri,sans-serif;font-size:11pt">I am getting the following error when I execute the Python code in Maya, and I’m pretty sure I do not of the __init__() function setup correctly.</p>
<p style="margin:0in"> </p>
<p style="margin:0in"># Error: TypeError: file C:\Users\<span style="color:blue"><u><a href="http://user.name/" id="m_-2681979249107581422OWAc6b78eff-64c9-d69f-0f26-70582ba87938" style="margin-top:0px;margin-bottom:0px;color:blue" target="_blank">user.name</a></u></span>\AppData\Roaming\Python\Python311\site-packages\x3d\x3d.py
 line 14984: Scene.hasChild() missing 1 required positional argument: 'self' #</p>
<p style="margin:0in"> </p>
<p style="margin:0in">Can anyone with some Python experience give me an idea of what I am doing wrong here?</p>
<p style="margin:0in"> </p>
<p style="margin:0in">Here is the code:</p>
<p style="margin:0in">#################################################################</p>
<p style="margin:0in;font-family:Calibri,sans-serif;font-size:11pt">import x3d</p>
<p style="margin:0in;font-family:Calibri,sans-serif;font-size:11pt"> </p>
<p style="margin:0in;font-family:Calibri,sans-serif;font-size:11pt">import maya.api.OpenMaya as aom</p>
<p style="margin:0in;font-family:Calibri,sans-serif;font-size:11pt">import maya.api.OpenMayaUI as aomui</p>
<p style="margin:0in;font-family:Calibri,sans-serif;font-size:11pt">import maya.api.OpenMayaRender as aomr</p>
<p style="margin:0in;font-family:Calibri,sans-serif;font-size:11pt"> </p>
<p style="margin:0in;font-family:Calibri,sans-serif;font-size:11pt"># import xmltodict</p>
<p style="margin:0in;font-family:Calibri,sans-serif;font-size:11pt"># import json</p>
<p style="margin:0in;font-family:Calibri,sans-serif;font-size:11pt"> </p>
<p style="margin:0in;font-family:Calibri,sans-serif;font-size:11pt">class X3DScene (aom.MPxNode, x3d.Scene):</p>
<p style="margin:0in;font-family:Calibri,sans-serif;font-size:11pt">    TYPE_NAME    = "Scene"</p>
<p style="margin:0in;font-family:Calibri,sans-serif;font-size:11pt">    TYPE_ID      = aom.MTypeId(0x00108FFF)</p>
<p style="margin:0in;font-family:Calibri,sans-serif;font-size:11pt">    PROFILE_TYPE = "Full"</p>
<p style="margin:0in;font-family:Calibri,sans-serif;font-size:11pt">    VERSION      = "4.0"</p>
<p style="margin:0in;font-family:Calibri,sans-serif;font-size:11pt"> </p>
<p style="margin:0in;font-family:Calibri,sans-serif;font-size:11pt">    def __init__(self):</p>
<p style="margin:0in;font-family:Calibri,sans-serif;font-size:11pt">        super(X3DScene, self).__init__()</p>
<p style="margin:0in;font-family:Calibri,sans-serif;font-size:11pt">       </p>
<p style="margin:0in;font-family:Calibri,sans-serif;font-size:11pt">    @classmethod</p>
<p style="margin:0in;font-family:Calibri,sans-serif;font-size:11pt">    def creator(cls):</p>
<p style="margin:0in;font-family:Calibri,sans-serif;font-size:11pt">        return X3DScene()</p>
<p style="margin:0in;font-family:Calibri,sans-serif;font-size:11pt">       </p>
<p style="margin:0in;font-family:Calibri,sans-serif;font-size:11pt">    @classmethod</p>
<p style="margin:0in;font-family:Calibri,sans-serif;font-size:11pt">    def initialize(cls):</p>
<p style="margin:0in;font-family:Calibri,sans-serif;font-size:11pt">        cls.x3dDoc = x3d.X3D(profile=cls.PROFILE_TYPE, version=cls.VERSION)</p>
<p style="margin:0in;font-family:Calibri,sans-serif;font-size:11pt">        cls.x3dDoc.Scene = cls</p>
<p style="margin:0in;font-family:Calibri,sans-serif;font-size:11pt">        #######################################################</p>
<p style="margin:0in;font-family:Calibri,sans-serif;font-size:11pt">        # Test dump to make sure the class works as expected</p>
<p style="margin:0in;font-family:Calibri,sans-serif;font-size:11pt">        #print(json.dumps(xmltodict.parse(cls.x3dDoc.XML()), indent=4))</p>
<p style="margin:0in;font-family:Calibri,sans-serif;font-size:11pt">        print(cls.x3dDoc.XML())</p>
<p style="margin:0in;font-family:Calibri,sans-serif;font-size:11pt">_______________________________________________<br>
x3d-public mailing list<br>
<span style="font-family:Calibri,sans-serif;color:blue"><u style="font-family:Calibri,sans-serif"><a href="mailto:x3d-public@web3d.org" id="m_-2681979249107581422OWAd36d6a22-8162-20d5-c14d-c510ab80d9e7" style="margin-top:0px;margin-bottom:0px;font-family:Calibri,sans-serif;color:blue" target="_blank">x3d-public@web3d.org</a></u></span><br>
<span style="font-family:Calibri,sans-serif;color:blue"><u style="font-family:Calibri,sans-serif"><a href="http://web3d.org/mailman/listinfo/x3d-public_web3d.org" id="m_-2681979249107581422OWA25c76c02-0150-2b39-7306-2fce9a4f2089" style="margin-top:0px;margin-bottom:0px;font-family:Calibri,sans-serif;color:blue" target="_blank">http://web3d.org/mailman/listinfo/x3d-public_web3d.org</a></u></span></p>
</blockquote>
<p style="margin:0in;font-family:Calibri,sans-serif;font-size:11pt">_______________________________________________<br>
x3d-public mailing list<br>
<span style="font-family:Calibri,sans-serif;color:blue"><u style="font-family:Calibri,sans-serif"><a href="mailto:x3d-public@web3d.org" id="m_-2681979249107581422OWA4dcda9ba-6f95-5591-6536-91ad1a25c475" style="margin-top:0px;margin-bottom:0px;font-family:Calibri,sans-serif;color:blue" target="_blank">x3d-public@web3d.org</a></u></span><br>
<span style="font-family:Calibri,sans-serif;color:blue"><u style="font-family:Calibri,sans-serif"><a href="http://web3d.org/mailman/listinfo/x3d-public_web3d.org" id="m_-2681979249107581422OWAe30b9ce4-d20a-8a85-6f9a-9594615f9457" style="margin-top:0px;margin-bottom:0px;font-family:Calibri,sans-serif;color:blue" target="_blank">http://web3d.org/mailman/listinfo/x3d-public_web3d.org</a></u></span></p>
</blockquote>
</div>

_______________________________________________<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" rel="noreferrer" target="_blank">http://web3d.org/mailman/listinfo/x3d-public_web3d.org</a><br>
</blockquote></div></div>