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

Brutzman, Donald (Don) (CIV) brutzman at nps.edu
Sun Dec 5 21:47:17 PST 2021


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



  1.  X3D Resources, Examples: Scene Archives for X3D - model links and build log follows.
  2.  https://www.web3d.org/x3d/content/examples/X3dResources.html#Examples
  3.  https://www.web3d.org/x3d/content/examples/build.python.all.log.txt
  4.  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/399d7bd9/attachment-0001.html>


More information about the x3d-public mailing list