[x3d-public] X3DPSAIL x3d.py package updated and deployed to x3d.py, adding initial support for JSON export

John Carlson yottzumm at gmail.com
Sun Dec 5 22:29:39 PST 2021


On 12/6/21 00:19, John Carlson wrote:
>
> Don, I will probably begin working on JSON export testing after I take 
> the JSON import example for a short spin.  It's good to get a code 
> download.
>
> Note that SFVec3f should put a tuple in the structure when parsing 
> JSON...normal JSON does not include tuples, so there needs to be a 
> type conversion.
>
> That is, centerOfRotation and position in Viewpoint should be tuples, 
> not lists as JSON provides.
>
Fixed as far as I am concerned right now.  I will try to remove my tuple 
soon.
>
> I sent a previous message about HelloWorld.py and how the fields might 
> be converted to lists in the the constructor call.
>
That has been done, AFAICT.
>
> I will probably talk to you about how to make MF fields iterable in 
> the next few days and whether they need to be
>
> I think that pretty much summarizes previous messages.
>
> On 12/5/21 23:47, Brutzman, Donald (Don) (CIV) wrote:
>>
>> Am happy to report that after a bunch of work, X3DPSAIL x3d.py 
>> package is updated and deployed to x3d.py
>>
>> Python users can update using PyPy with the command “pip install x3d” 
>> – pretty simple!
>>
>> https://pypi.org/project/x3d
>>
>> Documentation:
>>
>>   * Python X3D Package x3d.py, X3D Python Scene Access Interface
>>     Library (X3DPSAIL)
>>   * The x3d.py Python X3D Package supports programmers with Python
>>     interfaces and objects for standards-based X3D programming, all
>>     as open source.
>>   * https://www.web3d.org/x3d/stylesheets/python/python.html
>>
>> Improvements include:
>>
>>  1. VRML export improvements and JSON export added, though likely
>>     with a few bugs still.
>>  2. added method XMLvalidate() for well-formed checkes and schema
>>     validation,
>>  3. added utility function prepend_line_numbers() for prettier file
>>     outputs/excerpts when desired,
>>  4. fixed hasChild() function,
>>  5. confirmed fixed-value functions working as constants (no set
>>     methods),
>>  6. added appropriate @classmethod and @staticmethod annotations for
>>     simpler invocation,
>>  7. VRML and JSON export smoke tests,
>>  8. Display selected REGEX_XML() values (available for all field
>>     types) and TOOLTIP_URL() values (available for all types, nodes
>>     and statements).
>>
>> Repeating and refining rapid-fire smoke tests and also immense 
>> regression tests for all X3D Example Archives.
>>
>>  1. Example usage in detail:
>>     https://www.web3d.org/x3d/stylesheets/python/examples/PythonX3dSmokeTests.py
>>  2. Example usage results:
>>     https://www.web3d.org/x3d/stylesheets/python/build.examples.log.txt
>>  3. Sample IDLE screenshot:
>>     https://www.web3d.org/x3d/stylesheets/python/images/PythonX3dSmokeTestsIDLE.png
>>
>>  4. X3D Resources, Examples: Scene Archives for X3D - model links and
>>     build log follows.
>>  5. https://www.web3d.org/x3d/content/examples/X3dResources.html#Examples
>>  6. https://www.web3d.org/x3d/content/examples/build.python.all.log.txt
>>  7. Once again X3dToPython.xslt stylesheet applies latest greatest
>>     code patterns and includes a self-test block at the end,
>>     self-reporting either success or a problem.
>>
>> Vince, your reported apostrophe/quotation serialization issues look 
>> to be fixed according to the following test excerpts.  How are these:
>>
>>   * https://www.web3d.org/x3d/stylesheets/python/examples/HelloWorld.x3d
>>
>>   <Scene>
>>
>>     <!-- Example scene to illustrate X3D nodes and fields (XML 
>> elements and attributes) -->
>>
>>     <WorldInfo title='Hello World!'/>
>>
>>     <WorldInfo title='Hello ' apostrophe 1'/>
>>
>>     <WorldInfo title="Hello ' apostrophe 2"/>
>>
>>     <WorldInfo title='Hello " quotation mark 3'/>
>>
>>     <WorldInfo title="Hello " quotation mark 4"/>
>>
>>     <MetadataSet name="items'">
>>
>>         <MetadataInteger containerField="value" name="one" value="1"/>
>>
>>         <MetadataInteger containerField="value" name="two" value="2"/>
>>
>>     </MetadataSet>
>>
>>     <Group>
>>
>>   * https://www.web3d.org/x3d/stylesheets/python/examples/HelloWorld.py
>>
>> Scene=Scene(
>>
>>     #  Example scene to illustrate X3D nodes and fields (XML elements 
>> and attributes)
>>
>>     children=[
>>
>>     WorldInfo(title='Hello World!'),
>>
>>     WorldInfo(title="Hello ' apostrophe 1"),
>>
>>     WorldInfo(title="Hello ' apostrophe 2"),
>>
>>     WorldInfo(title='Hello " quotation mark 3'),
>>
>>     WorldInfo(title='Hello " quotation mark 4'),
>>
>>     MetadataSet(name="items'",
>>
>>       value=[
>>
>> MetadataInteger(name='one',value=[1]),
>>
>> MetadataInteger(name='two',value=[2])]),
>>
>>     Group(
>>
>> Lots and lots of code tuneups performed by paying attention to pylint 
>> warnings.  Hopefully no unintended side effects for others, meanwhile 
>> the test cases all seem stable.  This pylint quest originally started 
>> with over 100K lines of warning (urrk cough cough cough) and is now 
>> down to 700 lines...  The great bug hunt continues.
>>
>>   * https://www.web3d.org/x3d/stylesheets/python/build.pylint.log.txt
>>   * pylint reports: “Your code has been rated at 9.89/10 (previous
>>     run: 9.89/10, +0.00)”
>>
>> John, please collect your comments and examples regarding JSON export 
>> flaws.  The build.examples.log.txt file is a good place to start.  Am 
>> returning to work this week, finishing up everything not yet done 
>> this year…
>>
>> New TODOs include figuring out how to apply regexes on each field 
>> during XML export for additional quality assurance.
>>
>>   * https://www.web3d.org/specifications/X3dRegularExpressions.html
>>
>> Issue reports always welcome.  Have fun with X3D Python!  8)
>>
>> all the best, Don
>>
>> -- 
>>
>> Don Brutzman  Naval Postgraduate School, Code USW/Br brutzman at nps.edu
>>
>> Watkins 270,  MOVES Institute, Monterey CA 93943-5000 USA    
>> +1.831.656.2149
>>
>> X3D graphics, virtual worlds, navy robotics https:// 
>> faculty.nps.edu/brutzman
>>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://web3d.org/pipermail/x3d-public_web3d.org/attachments/20211206/a0e5141c/attachment-0001.html>


More information about the x3d-public mailing list