nodezator 1.5.3__tar.gz → 1.5.4__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (706) hide show
  1. {nodezator-1.5.3 → nodezator-1.5.4}/PKG-INFO +40 -41
  2. {nodezator-1.5.3 → nodezator-1.5.4}/README.md +28 -24
  3. nodezator-1.5.4/nodezator/__init__.py +4 -0
  4. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/__main__.py +2 -1
  5. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/appinfo.py +4 -2
  6. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/audioplayer.py +43 -6
  7. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/config.py +5 -1
  8. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/data/aww/manual.nodezator.pysite/ch-defining-complex-viewer-nodes.htsl +1 -1
  9. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/data/aww/manual.nodezator.pysite/ch-distributing-nodes.htsl +1 -1
  10. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/data/aww/manual.nodezator.pysite/ch-loading-nodes.htsl +3 -3
  11. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/data/aww/manual.nodezator.pysite/ch-more-advanced-viewer-node-features-part2.htsl +1 -1
  12. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/data/aww/manual.nodezator.pysite/index.htsl +1 -1
  13. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/data/aww/nodezator.pysite/about.htsl +2 -2
  14. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/data/aww/nodezator.pysite/whats-new/v1-3.htsl +1 -1
  15. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/data/aww/nodezator.pysite/whats-new/v1-4.htsl +7 -7
  16. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/data/aww/nodezator.pysite/whats-new/v1-5.htsl +21 -8
  17. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/data/images/README.md +1 -1
  18. nodezator-1.5.4/nodezator/data/images/indie_smiths_logo.png +0 -0
  19. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/data/locale/en_us/translations_map.pyl +3 -6
  20. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/data/locale/pt_br/translations_map.pyl +2 -5
  21. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/editing/objpopups/operatornode.py +15 -13
  22. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/pygamesetup/constants.py +23 -2
  23. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/pygamesetup/services/normal.py +23 -2
  24. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/splashscreen/factoryfuncs.py +7 -7
  25. nodezator-1.5.4/nodezator/userprefsman/main.py +279 -0
  26. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator.egg-info/PKG-INFO +40 -41
  27. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator.egg-info/SOURCES.txt +1 -2
  28. nodezator-1.5.4/pyproject.toml +60 -0
  29. nodezator-1.5.4/setup.cfg +4 -0
  30. nodezator-1.5.3/nodezator/__init__.py +0 -1
  31. nodezator-1.5.3/nodezator/data/images/indie_python_logo.png +0 -0
  32. nodezator-1.5.3/nodezator/userprefsman/main.py +0 -232
  33. nodezator-1.5.3/pyproject.toml +0 -3
  34. nodezator-1.5.3/setup.cfg +0 -53
  35. {nodezator-1.5.3 → nodezator-1.5.4}/MANIFEST.in +0 -0
  36. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/alphamask/__init__.py +0 -0
  37. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/alphamask/basicop.py +0 -0
  38. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/alphamask/main.py +0 -0
  39. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/alphamask/masksop.py +0 -0
  40. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/alphamask/utils.py +0 -0
  41. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/classes2d/__init__.py +0 -0
  42. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/classes2d/collections.py +0 -0
  43. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/classes2d/single.py +0 -0
  44. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/classes2d/surfaceswitcher.py +0 -0
  45. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/colorsman/__init__.py +0 -0
  46. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/colorsman/color2d.py +0 -0
  47. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/colorsman/colors.py +0 -0
  48. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/colorsman/editor/__init__.py +0 -0
  49. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/colorsman/editor/loopop.py +0 -0
  50. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/colorsman/editor/main.py +0 -0
  51. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/colorsman/editor/panel/__init__.py +0 -0
  52. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/colorsman/editor/panel/colorsop.py +0 -0
  53. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/colorsman/editor/panel/constants.py +0 -0
  54. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/colorsman/editor/panel/data.py +0 -0
  55. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/colorsman/editor/panel/main.py +0 -0
  56. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/colorsman/editor/widgetop.py +0 -0
  57. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/colorsman/editor/widgetsetup/__init__.py +0 -0
  58. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/colorsman/editor/widgetsetup/button.py +0 -0
  59. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/colorsman/editor/widgetsetup/constants.py +0 -0
  60. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/colorsman/editor/widgetsetup/entry.py +0 -0
  61. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/colorsman/editor/widgetsetup/label.py +0 -0
  62. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/colorsman/editor/widgetsetup/scale.py +0 -0
  63. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/colorsman/picker/__init__.py +0 -0
  64. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/colorsman/picker/constants.py +0 -0
  65. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/colorsman/picker/main.py +0 -0
  66. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/colorsman/picker/op.py +0 -0
  67. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/colorsman/viewer/__init__.py +0 -0
  68. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/colorsman/viewer/main.py +0 -0
  69. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/colorsman/viewer/modes/__init__.py +0 -0
  70. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/colorsman/viewer/modes/colorlist.py +0 -0
  71. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/colorsman/viewer/modes/patterns/__init__.py +0 -0
  72. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/colorsman/viewer/modes/patterns/main.py +0 -0
  73. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/colorsman/viewer/modes/patterns/particles.py +0 -0
  74. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/colorsman/viewer/modes/patterns/waves.py +0 -0
  75. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/data/app_icon.png +0 -0
  76. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/data/app_themes/emeralds_on_coal.pyl +0 -0
  77. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/data/aww/help.nodezator.pysite/general-controls.htsl +0 -0
  78. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/data/aww/help.nodezator.pysite/index.htsl +0 -0
  79. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/data/aww/help.nodezator.pysite/text-editor-default-behavior.htsl +0 -0
  80. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/data/aww/help.nodezator.pysite/text-editor-vim-like-behavior.htsl +0 -0
  81. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/data/aww/manual.nodezator.pysite/appendix-color-coded-annotations.htsl +0 -0
  82. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/data/aww/manual.nodezator.pysite/appendix-intfloat-words.htsl +0 -0
  83. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/data/aww/manual.nodezator.pysite/appendix-recipes.htsl +0 -0
  84. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/data/aww/manual.nodezator.pysite/appendix-widget-configurations.htsl +0 -0
  85. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/data/aww/manual.nodezator.pysite/appendix-widget-presets.htsl +0 -0
  86. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/data/aww/manual.nodezator.pysite/ch-basic-way-define-widgets.htsl +0 -0
  87. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/data/aww/manual.nodezator.pysite/ch-color-coding-inputs-outputs.htsl +0 -0
  88. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/data/aww/manual.nodezator.pysite/ch-conditional-execution.htsl +0 -0
  89. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/data/aww/manual.nodezator.pysite/ch-defining-viewer-nodes.htsl +0 -0
  90. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/data/aww/manual.nodezator.pysite/ch-defining-your-first-node.htsl +0 -0
  91. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/data/aww/manual.nodezator.pysite/ch-full-syntax-more-widgets.htsl +0 -0
  92. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/data/aww/manual.nodezator.pysite/ch-looping.htsl +0 -0
  93. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/data/aww/manual.nodezator.pysite/ch-more-advanced-viewer-node-features-part1.htsl +0 -0
  94. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/data/aww/manual.nodezator.pysite/ch-more-ways-define-nodes.htsl +0 -0
  95. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/data/aww/manual.nodezator.pysite/ch-nodes-variable-parameters-custom-outputs.htsl +0 -0
  96. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/data/aww/manual.nodezator.pysite/ch-other-objects.htsl +0 -0
  97. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/data/aww/manual.nodezator.pysite/ch-preview-widgets.htsl +0 -0
  98. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/data/aww/manual.nodezator.pysite/ch-viewer-nodes-with-custom-visualization-loops.htsl +0 -0
  99. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/data/aww/manual.nodezator.pysite/ch-widget-presets-more-widgets.htsl +0 -0
  100. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/data/aww/manual.nodezator.pysite/images/appendix-recipes_img00.png +0 -0
  101. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/data/aww/manual.nodezator.pysite/images/appendix-recipes_img01.png +0 -0
  102. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/data/aww/manual.nodezator.pysite/images/appendix-recipes_img02.png +0 -0
  103. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/data/aww/manual.nodezator.pysite/images/appendix-recipes_img03.png +0 -0
  104. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/data/aww/manual.nodezator.pysite/images/appendix-recipes_img04.png +0 -0
  105. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/data/aww/manual.nodezator.pysite/images/appendix-recipes_img05.png +0 -0
  106. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/data/aww/manual.nodezator.pysite/images/appendix-recipes_img06.png +0 -0
  107. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/data/aww/manual.nodezator.pysite/images/appendix-recipes_img07.png +0 -0
  108. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/data/aww/manual.nodezator.pysite/images/appendix-recipes_img08.png +0 -0
  109. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/data/aww/manual.nodezator.pysite/images/ch-basic-way-define-widgets_img00.png +0 -0
  110. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/data/aww/manual.nodezator.pysite/images/ch-basic-way-define-widgets_img01.png +0 -0
  111. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/data/aww/manual.nodezator.pysite/images/ch-basic-way-define-widgets_img02.png +0 -0
  112. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/data/aww/manual.nodezator.pysite/images/ch-basic-way-define-widgets_img03.png +0 -0
  113. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/data/aww/manual.nodezator.pysite/images/ch-basic-way-define-widgets_img04.png +0 -0
  114. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/data/aww/manual.nodezator.pysite/images/ch-basic-way-define-widgets_img05.png +0 -0
  115. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/data/aww/manual.nodezator.pysite/images/ch-basic-way-define-widgets_img06_and_07.png +0 -0
  116. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/data/aww/manual.nodezator.pysite/images/ch-basic-way-define-widgets_img08.png +0 -0
  117. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/data/aww/manual.nodezator.pysite/images/ch-color-coding_img00.png +0 -0
  118. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/data/aww/manual.nodezator.pysite/images/ch-color-coding_img01.png +0 -0
  119. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/data/aww/manual.nodezator.pysite/images/ch-color-coding_img02.png +0 -0
  120. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/data/aww/manual.nodezator.pysite/images/ch-color-coding_img03.png +0 -0
  121. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/data/aww/manual.nodezator.pysite/images/ch-color-coding_img04.png +0 -0
  122. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/data/aww/manual.nodezator.pysite/images/ch-color-coding_img05.png +0 -0
  123. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/data/aww/manual.nodezator.pysite/images/ch-conditional-execution_img00.png +0 -0
  124. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/data/aww/manual.nodezator.pysite/images/ch-conditional-execution_img01.png +0 -0
  125. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/data/aww/manual.nodezator.pysite/images/ch-conditional-execution_img02.png +0 -0
  126. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/data/aww/manual.nodezator.pysite/images/ch-conditional-execution_img03.png +0 -0
  127. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/data/aww/manual.nodezator.pysite/images/ch-conditional-execution_img04.png +0 -0
  128. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/data/aww/manual.nodezator.pysite/images/ch-conditional-execution_img05.png +0 -0
  129. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/data/aww/manual.nodezator.pysite/images/ch-conditional-execution_img06.png +0 -0
  130. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/data/aww/manual.nodezator.pysite/images/ch-defining-viewer-nodes_img00.png +0 -0
  131. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/data/aww/manual.nodezator.pysite/images/ch-defining-viewer-nodes_img01.png +0 -0
  132. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/data/aww/manual.nodezator.pysite/images/ch-defining-viewer-nodes_img02.png +0 -0
  133. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/data/aww/manual.nodezator.pysite/images/ch-defining-viewer-nodes_img03.png +0 -0
  134. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/data/aww/manual.nodezator.pysite/images/ch-defining-viewer-nodes_img04.png +0 -0
  135. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/data/aww/manual.nodezator.pysite/images/ch-defining-viewer-nodes_img05.png +0 -0
  136. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/data/aww/manual.nodezator.pysite/images/ch-defining-viewer-nodes_img06.png +0 -0
  137. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/data/aww/manual.nodezator.pysite/images/ch-defining-your-first_img00.png +0 -0
  138. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/data/aww/manual.nodezator.pysite/images/ch-defining-your-first_img01.png +0 -0
  139. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/data/aww/manual.nodezator.pysite/images/ch-defining-your-first_img02.png +0 -0
  140. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/data/aww/manual.nodezator.pysite/images/ch-defining-your-first_import_module_node.png +0 -0
  141. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/data/aww/manual.nodezator.pysite/images/ch-full-syntax_img00.png +0 -0
  142. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/data/aww/manual.nodezator.pysite/images/ch-full-syntax_img01.png +0 -0
  143. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/data/aww/manual.nodezator.pysite/images/ch-loading-nodes_dialog_problems_node_packs.png +0 -0
  144. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/data/aww/manual.nodezator.pysite/images/ch-loading-nodes_img00.png +0 -0
  145. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/data/aww/manual.nodezator.pysite/images/ch-loading-nodes_img01.png +0 -0
  146. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/data/aww/manual.nodezator.pysite/images/ch-loading-nodes_img02.png +0 -0
  147. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/data/aww/manual.nodezator.pysite/images/ch-loading-nodes_user_log_showing_missing.png +0 -0
  148. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/data/aww/manual.nodezator.pysite/images/ch-looping_img00.png +0 -0
  149. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/data/aww/manual.nodezator.pysite/images/ch-looping_img01.png +0 -0
  150. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/data/aww/manual.nodezator.pysite/images/ch-looping_img02.png +0 -0
  151. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/data/aww/manual.nodezator.pysite/images/ch-nodes-variable-parameters_img00.png +0 -0
  152. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/data/aww/manual.nodezator.pysite/images/ch-nodes-variable-parameters_img01.png +0 -0
  153. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/data/aww/manual.nodezator.pysite/images/ch-nodes-variable-parameters_img02.png +0 -0
  154. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/data/aww/manual.nodezator.pysite/images/ch-nodes-variable-parameters_img03.png +0 -0
  155. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/data/aww/manual.nodezator.pysite/images/ch-other-objects_img00.png +0 -0
  156. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/data/aww/manual.nodezator.pysite/images/ch-other-objects_img01.png +0 -0
  157. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/data/aww/manual.nodezator.pysite/images/ch-other-objects_img02.png +0 -0
  158. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/data/aww/manual.nodezator.pysite/images/ch-other-objects_img03.png +0 -0
  159. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/data/aww/manual.nodezator.pysite/images/ch-other-objects_img04.png +0 -0
  160. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/data/aww/manual.nodezator.pysite/images/ch-other-objects_img05.png +0 -0
  161. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/data/aww/manual.nodezator.pysite/images/ch-other-objects_img06.png +0 -0
  162. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/data/aww/manual.nodezator.pysite/images/ch-other-objects_img07.png +0 -0
  163. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/data/aww/manual.nodezator.pysite/images/ch-other-objects_img08.png +0 -0
  164. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/data/aww/manual.nodezator.pysite/images/ch-preview-widgets_img00.png +0 -0
  165. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/data/aww/manual.nodezator.pysite/images/ch-preview-widgets_img01_0.png +0 -0
  166. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/data/aww/manual.nodezator.pysite/images/ch-preview-widgets_img01_1.png +0 -0
  167. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/data/aww/manual.nodezator.pysite/images/ch-preview-widgets_img02.png +0 -0
  168. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/data/aww/manual.nodezator.pysite/images/ch-preview-widgets_img03_0.png +0 -0
  169. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/data/aww/manual.nodezator.pysite/images/ch-preview-widgets_img03_1.png +0 -0
  170. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/data/aww/manual.nodezator.pysite/images/ch-preview-widgets_img04_0.png +0 -0
  171. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/data/aww/manual.nodezator.pysite/images/ch-preview-widgets_img04_1.png +0 -0
  172. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/data/aww/manual.nodezator.pysite/images/ch-preview-widgets_img05_0.png +0 -0
  173. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/data/aww/manual.nodezator.pysite/images/ch-preview-widgets_img05_1.png +0 -0
  174. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/data/aww/manual.nodezator.pysite/images/ch-viewer-nodes-with-custom-visualization-loops_img00.png +0 -0
  175. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/data/aww/manual.nodezator.pysite/images/ch-widget-presets_img00.png +0 -0
  176. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/data/aww/manual.nodezator.pysite/images/ch-widget-presets_img01.png +0 -0
  177. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/data/aww/manual.nodezator.pysite/images/ch-widget-presets_img02.png +0 -0
  178. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/data/aww/manual.nodezator.pysite/images/ch-widget-presets_img03.png +0 -0
  179. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/data/aww/manual.nodezator.pysite/images/ch-widget-presets_img04.png +0 -0
  180. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/data/aww/manual.nodezator.pysite/images/ch-widget-presets_img05.png +0 -0
  181. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/data/aww/nodezator.pysite/license.htsl +0 -0
  182. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/data/aww/nodezator.pysite/whats-new/images/v1-4-x/codeblock_clipboard_button.png +0 -0
  183. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/data/aww/nodezator.pysite/whats-new/images/v1-4-x/doctest_format_comparison.png +0 -0
  184. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/data/aww/nodezator.pysite/whats-new/images/v1-4-x/graphs_different_appearances.png +0 -0
  185. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/data/aww/nodezator.pysite/whats-new/images/v1-4-x/local_browser_new_appearance.png +0 -0
  186. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/data/aww/nodezator.pysite/whats-new/images/v1-4-x/new_app_defined_nodes.png +0 -0
  187. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/data/aww/nodezator.pysite/whats-new/images/v1-4-x/new_viewer_node.png +0 -0
  188. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/data/aww/nodezator.pysite/whats-new/images/v1-4-x/nodes_from_new_categories.png +0 -0
  189. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/data/aww/nodezator.pysite/whats-new/images/v1-4-x/operator_nodes_new_appearance.png +0 -0
  190. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/data/aww/nodezator.pysite/whats-new/images/v1-4-x/same_node_different_modes.png +0 -0
  191. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/data/aww/nodezator.pysite/whats-new/images/v1-4-x/widget_visible_invisible.png +0 -0
  192. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/data/aww/nodezator.pysite/whats-new/images/v1-5-x/birds_eye_view.png +0 -0
  193. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/data/aww/nodezator.pysite/whats-new/images/v1-5-x/dialog_to_jump_to_node.png +0 -0
  194. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/data/aww/nodezator.pysite/whats-new/images/v1-5-x/gui_automation_submenu.png +0 -0
  195. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/data/aww/nodezator.pysite/whats-new/images/v1-5-x/not_found_drawing_comparison.png +0 -0
  196. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/data/aww/nodezator.pysite/whats-new/images/v1-5-x/socket_proximity_detection.png +0 -0
  197. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/data/aww/nodezator.pysite/whats-new/images/v1-5-x/system_testing_form.png +0 -0
  198. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/data/aww/nodezator.pysite/whats-new/images/v1-5-x/system_testing_report_initial_portion.png +0 -0
  199. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/data/aww/nodezator.pysite/whats-new/index.htsl +0 -0
  200. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/data/fonts/OFL_license_for_all_other_fonts.txt +0 -0
  201. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/data/fonts/cc0_license_for_nodezator_icons.txt +0 -0
  202. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/data/fonts/enc_sans_sexp_bold_mplus_1p_2000em_med.ttf +0 -0
  203. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/data/fonts/fira_mono_bold_mplus_1m_med.ttf +0 -0
  204. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/data/fonts/nodezator_icons.ttf +0 -0
  205. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/data/fonts/noto_sans_bold.ttf +0 -0
  206. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/data/fonts/noto_sans_italic.ttf +0 -0
  207. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/data/fonts/noto_sans_mono_medium.ttf +0 -0
  208. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/data/fonts/noto_sans_regular.ttf +0 -0
  209. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/data/glossary.rst +0 -0
  210. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/data/images/baseball.svg +0 -0
  211. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/data/images/baseball_glove.png +0 -0
  212. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/data/images/bluesky_logo.png +0 -0
  213. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/data/images/colors_editor_scale_images.png +0 -0
  214. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/data/images/discord_logo.png +0 -0
  215. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/data/images/github_mark.png +0 -0
  216. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/data/images/hand_closed.png +0 -0
  217. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/data/images/hand_open.png +0 -0
  218. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/data/images/kennedy_logo.png +0 -0
  219. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/data/images/mask_wave.png +0 -0
  220. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/data/images/nodezator_logo.png +0 -0
  221. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/data/images/patreon_logo.png +0 -0
  222. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/data/images/pygame_logo.png +0 -0
  223. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/data/images/python_filemanager_icon.png +0 -0
  224. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/data/images/python_menu_icon.png +0 -0
  225. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/data/images/python_splashscreen_icon.png +0 -0
  226. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/data/images/splash_nodezator_robot.png +0 -0
  227. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/data/images/splash_nodezator_robot_arm_a.png +0 -0
  228. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/data/images/splash_nodezator_robot_arm_b.png +0 -0
  229. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/data/images/unlicense_logo.png +0 -0
  230. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/data/locale/en_us/dialogs_map.pyl +0 -0
  231. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/data/locale/en_us/status_messages_map.pyl +0 -0
  232. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/data/locale/pt_br/dialogs_map.pyl +0 -0
  233. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/data/locale/pt_br/status_messages_map.pyl +0 -0
  234. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/data/syntax_themes/comment/fresh_eucalyptus_dark.pyl +0 -0
  235. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/data/syntax_themes/comment/pale_green.pyl +0 -0
  236. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/data/syntax_themes/python/ice_with_candy.pyl +0 -0
  237. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/data/syntax_themes/python/sprinkled_dark.pyl +0 -0
  238. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/data/syntax_themes/user_log/message_temperature.pyl +0 -0
  239. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/data/syntax_themes/user_log/message_temperature_dark.pyl +0 -0
  240. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/data/system_testing/shared/file_with_objects.zip +0 -0
  241. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/data/system_testing/test_cases/stc0000.zip +0 -0
  242. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/data/system_testing/test_cases/stc0001.zip +0 -0
  243. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/data/system_testing/test_cases/stc0002.zip +0 -0
  244. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/data/system_testing/test_cases/stc0003.zip +0 -0
  245. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/data/system_testing/test_cases/stc0004.zip +0 -0
  246. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/data/system_testing/test_cases/stc0005.zip +0 -0
  247. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/data/system_testing/test_cases/stc0006.zip +0 -0
  248. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/data/system_testing/test_cases/stc0007.zip +0 -0
  249. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/data/system_testing/test_cases/stc0008.zip +0 -0
  250. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/data/system_testing/test_cases/stc0009.zip +0 -0
  251. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/data/system_testing/test_cases/stc0010.zip +0 -0
  252. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/data/system_testing/test_cases/stc0011.zip +0 -0
  253. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/data/system_testing/test_id_to_title.pyl +0 -0
  254. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/dialog.py +0 -0
  255. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/editing/__init__.py +0 -0
  256. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/editing/birdseyeview.py +0 -0
  257. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/editing/categorycolors.py +0 -0
  258. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/editing/data.py +0 -0
  259. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/editing/gridlogic.py +0 -0
  260. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/editing/imageexport/__init__.py +0 -0
  261. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/editing/imageexport/form.py +0 -0
  262. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/editing/imageexport/main.py +0 -0
  263. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/editing/jumptonode.py +0 -0
  264. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/editing/main.py +0 -0
  265. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/editing/nodepacksforms/__init__.py +0 -0
  266. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/editing/nodepacksforms/renaming.py +0 -0
  267. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/editing/nodepacksforms/selection.py +0 -0
  268. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/editing/objinsert.py +0 -0
  269. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/editing/objpopups/__init__.py +0 -0
  270. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/editing/objpopups/callablenode.py +0 -0
  271. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/editing/objpopups/constants.py +0 -0
  272. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/editing/objpopups/proxynode.py +0 -0
  273. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/editing/objpopups/textblock.py +0 -0
  274. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/editing/playback/__init__.py +0 -0
  275. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/editing/playback/demonstrate/__init__.py +0 -0
  276. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/editing/playback/demonstrate/constants.py +0 -0
  277. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/editing/playback/demonstrate/filtering.py +0 -0
  278. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/editing/playback/play.py +0 -0
  279. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/editing/playback/record.py +0 -0
  280. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/editing/playback/systemtesting.py +0 -0
  281. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/editing/pythonexporting.py +0 -0
  282. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/editing/reposition.py +0 -0
  283. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/editing/selection.py +0 -0
  284. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/editing/socketpopups/__init__.py +0 -0
  285. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/editing/socketpopups/input.py +0 -0
  286. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/editing/socketpopups/output.py +0 -0
  287. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/editing/socketpopups/proxy.py +0 -0
  288. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/editing/widgetpicker/__init__.py +0 -0
  289. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/editing/widgetpicker/main.py +0 -0
  290. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/editing/widgetpicker/subforms.py +0 -0
  291. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/editing/widgetpopups/__init__.py +0 -0
  292. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/editing/widgetpopups/creation.py +0 -0
  293. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/fileman/__init__.py +0 -0
  294. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/fileman/bookmarkpanel/__init__.py +0 -0
  295. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/fileman/bookmarkpanel/main.py +0 -0
  296. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/fileman/bookmarkpanel/surfs.py +0 -0
  297. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/fileman/constants.py +0 -0
  298. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/fileman/dirpanel/__init__.py +0 -0
  299. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/fileman/dirpanel/extraop.py +0 -0
  300. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/fileman/dirpanel/loadop.py +0 -0
  301. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/fileman/dirpanel/main.py +0 -0
  302. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/fileman/dirpanel/mouseop.py +0 -0
  303. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/fileman/dirpanel/newpathform.py +0 -0
  304. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/fileman/dirpanel/surfs.py +0 -0
  305. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/fileman/main.py +0 -0
  306. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/fileman/op.py +0 -0
  307. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/fileman/pathobj.py +0 -0
  308. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/fileman/surfs.py +0 -0
  309. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/fontsman/__init__.py +0 -0
  310. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/fontsman/cache.py +0 -0
  311. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/fontsman/constants.py +0 -0
  312. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/fontsman/exception.py +0 -0
  313. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/fontsman/preview/__init__.py +0 -0
  314. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/fontsman/preview/cache.py +0 -0
  315. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/fontsman/preview/render.py +0 -0
  316. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/fontsman/test_cache.py +0 -0
  317. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/fontsman/viewer/__init__.py +0 -0
  318. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/fontsman/viewer/main.py +0 -0
  319. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/fontsman/viewer/render.py +0 -0
  320. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/graphman/__init__.py +0 -0
  321. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/graphman/builtinnode/__init__.py +0 -0
  322. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/graphman/builtinnode/constants.py +0 -0
  323. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/graphman/builtinnode/export.py +0 -0
  324. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/graphman/builtinnode/main.py +0 -0
  325. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/graphman/callablenode/__init__.py +0 -0
  326. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/graphman/callablenode/constants.py +0 -0
  327. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/graphman/callablenode/execution.py +0 -0
  328. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/graphman/callablenode/export.py +0 -0
  329. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/graphman/callablenode/main.py +0 -0
  330. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/graphman/callablenode/outputviz.py +0 -0
  331. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/graphman/callablenode/preproc.py +0 -0
  332. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/graphman/callablenode/segment.py +0 -0
  333. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/graphman/callablenode/subparam/__init__.py +0 -0
  334. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/graphman/callablenode/subparam/main.py +0 -0
  335. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/graphman/callablenode/subparam/segment.py +0 -0
  336. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/graphman/callablenode/subparam/unpacking.py +0 -0
  337. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/graphman/callablenode/subparam/widget.py +0 -0
  338. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/graphman/callablenode/surfs.py +0 -0
  339. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/graphman/callablenode/utils.py +0 -0
  340. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/graphman/callablenode/vizop/__init__.py +0 -0
  341. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/graphman/callablenode/vizop/callablereposition.py +0 -0
  342. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/graphman/callablenode/vizop/collapsedreposition.py +0 -0
  343. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/graphman/callablenode/vizop/collapsing.py +0 -0
  344. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/graphman/callablenode/vizop/expandedreposition.py +0 -0
  345. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/graphman/callablenode/vizop/main.py +0 -0
  346. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/graphman/callablenode/vizprep/__init__.py +0 -0
  347. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/graphman/callablenode/vizprep/bodysetup/__init__.py +0 -0
  348. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/graphman/callablenode/vizprep/bodysetup/callablecreation.py +0 -0
  349. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/graphman/callablenode/vizprep/bodysetup/collapsedcreation.py +0 -0
  350. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/graphman/callablenode/vizprep/bodysetup/expandedcreation.py +0 -0
  351. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/graphman/callablenode/vizprep/bodysetup/main.py +0 -0
  352. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/graphman/callablenode/vizprep/calmode/__init__.py +0 -0
  353. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/graphman/callablenode/vizprep/main.py +0 -0
  354. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/graphman/callablenode/vizprep/sigmode/__init__.py +0 -0
  355. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/graphman/callablenode/vizprep/sigmode/param.py +0 -0
  356. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/graphman/callablenode/vizprep/sigmode/varparam.py +0 -0
  357. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/graphman/capsulenode/__init__.py +0 -0
  358. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/graphman/capsulenode/constants.py +0 -0
  359. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/graphman/capsulenode/export.py +0 -0
  360. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/graphman/capsulenode/generaldefs.py +0 -0
  361. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/graphman/capsulenode/main.py +0 -0
  362. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/graphman/capsulenode/pygamedefs.py +0 -0
  363. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/graphman/editlogic.py +0 -0
  364. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/graphman/exception.py +0 -0
  365. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/graphman/execution.py +0 -0
  366. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/graphman/genviewernode/__init__.py +0 -0
  367. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/graphman/genviewernode/constants.py +0 -0
  368. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/graphman/genviewernode/export.py +0 -0
  369. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/graphman/genviewernode/main.py +0 -0
  370. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/graphman/genviewernode/nodedefs/__init__.py +0 -0
  371. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/graphman/genviewernode/nodedefs/viewasmonotext.py +0 -0
  372. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/graphman/genviewernode/nodedefs/viewastext.py +0 -0
  373. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/graphman/genviewernode/nodedefs/viewpythonsource.py +0 -0
  374. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/graphman/genviewernode/nodedefs/viewsurface.py +0 -0
  375. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/graphman/main.py +0 -0
  376. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/graphman/nodepacksissues.py +0 -0
  377. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/graphman/operatornode/__init__.py +0 -0
  378. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/graphman/operatornode/constants.py +0 -0
  379. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/graphman/operatornode/execution.py +0 -0
  380. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/graphman/operatornode/export.py +0 -0
  381. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/graphman/operatornode/main.py +0 -0
  382. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/graphman/operatornode/surfs.py +0 -0
  383. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/graphman/operatornode/vizop.py +0 -0
  384. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/graphman/operatornode/vizprep.py +0 -0
  385. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/graphman/presets.py +0 -0
  386. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/graphman/proxynode/__init__.py +0 -0
  387. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/graphman/proxynode/constants.py +0 -0
  388. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/graphman/proxynode/export.py +0 -0
  389. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/graphman/proxynode/main.py +0 -0
  390. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/graphman/proxynode/segment.py +0 -0
  391. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/graphman/proxynode/surfs.py +0 -0
  392. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/graphman/proxynode/titleupdate.py +0 -0
  393. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/graphman/proxynode/utils.py +0 -0
  394. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/graphman/proxynode/vizop/__init__.py +0 -0
  395. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/graphman/proxynode/vizop/main.py +0 -0
  396. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/graphman/proxynode/vizop/reposition.py +0 -0
  397. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/graphman/proxynode/vizprep.py +0 -0
  398. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/graphman/proxynode/widget.py +0 -0
  399. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/graphman/pythonrepr.py +0 -0
  400. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/graphman/scriptloading/__init__.py +0 -0
  401. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/graphman/scriptloading/node_pack_no_callable.zip +0 -0
  402. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/graphman/scriptloading/node_pack_no_signature.zip +0 -0
  403. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/graphman/scriptloading/node_pack_nodes.zip +0 -0
  404. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/graphman/scriptloading/node_pack_not_callable_object.zip +0 -0
  405. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/graphman/scriptloading/node_pack_not_inspectable.zip +0 -0
  406. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/graphman/scriptloading/node_pack_with_error.zip +0 -0
  407. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/graphman/scriptloading/tests.py +0 -0
  408. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/graphman/socket/__init__.py +0 -0
  409. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/graphman/socket/base.py +0 -0
  410. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/graphman/socket/input.py +0 -0
  411. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/graphman/socket/output.py +0 -0
  412. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/graphman/socket/placeholder.py +0 -0
  413. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/graphman/socket/proxy.py +0 -0
  414. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/graphman/socket/surfs.py +0 -0
  415. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/graphman/socketparenthood/__init__.py +0 -0
  416. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/graphman/socketparenthood/action.py +0 -0
  417. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/graphman/socketparenthood/draw/__init__.py +0 -0
  418. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/graphman/socketparenthood/draw/connectionassist.py +0 -0
  419. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/graphman/socketparenthood/export.py +0 -0
  420. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/graphman/socketparenthood/main.py +0 -0
  421. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/graphman/socketparenthood/support.py +0 -0
  422. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/graphman/socketparenthood/utils.py +0 -0
  423. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/graphman/stlibnode/__init__.py +0 -0
  424. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/graphman/stlibnode/constants.py +0 -0
  425. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/graphman/stlibnode/export.py +0 -0
  426. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/graphman/stlibnode/main.py +0 -0
  427. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/graphman/textblock/__init__.py +0 -0
  428. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/graphman/textblock/check.py +0 -0
  429. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/graphman/textblock/constants.py +0 -0
  430. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/graphman/textblock/export.py +0 -0
  431. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/graphman/textblock/main.py +0 -0
  432. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/graphman/textblock/surf.py +0 -0
  433. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/graphman/thirdlibnode/__init__.py +0 -0
  434. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/graphman/thirdlibnode/constants.py +0 -0
  435. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/graphman/thirdlibnode/export.py +0 -0
  436. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/graphman/thirdlibnode/main.py +0 -0
  437. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/graphman/thirdlibnode/signaturedefs.py +0 -0
  438. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/graphman/utils.py +0 -0
  439. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/graphman/validation/__init__.py +0 -0
  440. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/graphman/validation/doctest.test.md +0 -0
  441. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/graphman/validation/main.py +0 -0
  442. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/graphman/validation/test_data.pyl +0 -0
  443. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/graphman/validation/testmarkdown.py +0 -0
  444. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/graphman/widget/__init__.py +0 -0
  445. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/graphman/widget/export.py +0 -0
  446. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/graphman/widget/popupdefinition.py +0 -0
  447. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/graphman/widget/utils.py +0 -0
  448. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/hideswitch.py +0 -0
  449. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/htsl/__init__.py +0 -0
  450. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/htsl/codeblock.py +0 -0
  451. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/htsl/constants.py +0 -0
  452. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/htsl/creation.py +0 -0
  453. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/htsl/image.py +0 -0
  454. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/htsl/main.py +0 -0
  455. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/htsl/prep.py +0 -0
  456. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/iconfactory.py +0 -0
  457. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/imagesman/__init__.py +0 -0
  458. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/imagesman/cache.py +0 -0
  459. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/imagesman/previewer/__init__.py +0 -0
  460. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/imagesman/previewer/constants.py +0 -0
  461. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/imagesman/previewer/main.py +0 -0
  462. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/imagesman/previewer/op.py +0 -0
  463. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/imagesman/render.py +0 -0
  464. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/knownpacks.py +0 -0
  465. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/logman/__init__.py +0 -0
  466. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/logman/constants.py +0 -0
  467. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/logman/fixeddialog.py +0 -0
  468. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/logman/main.py +0 -0
  469. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/logman/utils.py +0 -0
  470. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/loopman/__init__.py +0 -0
  471. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/loopman/exception.py +0 -0
  472. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/loopman/main.py +0 -0
  473. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/mainloop.py +0 -0
  474. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/memoryman.py +0 -0
  475. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/menu/__init__.py +0 -0
  476. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/menu/behaviour.py +0 -0
  477. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/menu/command.py +0 -0
  478. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/menu/common.py +0 -0
  479. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/menu/hover.py +0 -0
  480. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/menu/iconfactory.py +0 -0
  481. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/menu/main.py +0 -0
  482. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/menu/scroll.py +0 -0
  483. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/menu/submenu/__init__.py +0 -0
  484. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/menu/submenu/main.py +0 -0
  485. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/menu/submenu/scroll.py +0 -0
  486. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/menu/submenu/utils.py +0 -0
  487. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/menu/surffactory.py +0 -0
  488. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/our3rdlibs/__init__.py +0 -0
  489. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/our3rdlibs/behaviour.py +0 -0
  490. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/our3rdlibs/button.py +0 -0
  491. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/our3rdlibs/debug.py +0 -0
  492. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/our3rdlibs/grid/__init__.py +0 -0
  493. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/our3rdlibs/grid/main.py +0 -0
  494. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/our3rdlibs/grid/oop.py +0 -0
  495. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/our3rdlibs/iterablewidget/__init__.py +0 -0
  496. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/our3rdlibs/iterablewidget/list.py +0 -0
  497. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/our3rdlibs/iterablewidget/op.py +0 -0
  498. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/our3rdlibs/iterablewidget/set.py +0 -0
  499. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/our3rdlibs/iterablewidget/surfs.py +0 -0
  500. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/our3rdlibs/keyconst.py +0 -0
  501. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/our3rdlibs/listbox.py +0 -0
  502. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/our3rdlibs/scale.py +0 -0
  503. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/our3rdlibs/searchbox.py +0 -0
  504. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/our3rdlibs/sortingeditor/__init__.py +0 -0
  505. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/our3rdlibs/sortingeditor/main.py +0 -0
  506. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/our3rdlibs/sortingeditor/modes.py +0 -0
  507. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/our3rdlibs/userlogger.py +0 -0
  508. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/ourstdlibs/__init__.py +0 -0
  509. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/ourstdlibs/behaviour.py +0 -0
  510. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/ourstdlibs/collections/__init__.py +0 -0
  511. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/ourstdlibs/collections/fldict/__init__.py +0 -0
  512. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/ourstdlibs/collections/fldict/doctest.test.md +0 -0
  513. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/ourstdlibs/collections/fldict/main.py +0 -0
  514. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/ourstdlibs/collections/fldict/testmarkdown.py +0 -0
  515. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/ourstdlibs/collections/general.py +0 -0
  516. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/ourstdlibs/collections/nestedfromdict.py +0 -0
  517. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/ourstdlibs/color/__init__.py +0 -0
  518. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/ourstdlibs/color/constants.py +0 -0
  519. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/ourstdlibs/color/conversion.py +0 -0
  520. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/ourstdlibs/color/creation.py +0 -0
  521. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/ourstdlibs/color/custom.py +0 -0
  522. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/ourstdlibs/color/largemaps.py +0 -0
  523. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/ourstdlibs/color/property.py +0 -0
  524. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/ourstdlibs/color/utils.py +0 -0
  525. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/ourstdlibs/datetimeutils.py +0 -0
  526. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/ourstdlibs/debug.py +0 -0
  527. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/ourstdlibs/dictutils.py +0 -0
  528. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/ourstdlibs/exceptionutils.py +0 -0
  529. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/ourstdlibs/importutils.py +0 -0
  530. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/ourstdlibs/iterutils.py +0 -0
  531. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/ourstdlibs/mathutils.py +0 -0
  532. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/ourstdlibs/meta.py +0 -0
  533. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/ourstdlibs/path.py +0 -0
  534. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/ourstdlibs/profileutils.py +0 -0
  535. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/ourstdlibs/pyl.py +0 -0
  536. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/ourstdlibs/stringutils.py +0 -0
  537. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/ourstdlibs/timeutils.py +0 -0
  538. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/ourstdlibs/treeutils.py +0 -0
  539. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/pointsman2d/__init__.py +0 -0
  540. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/pointsman2d/create.py +0 -0
  541. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/pointsman2d/shape.py +0 -0
  542. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/pointsman2d/transform.py +0 -0
  543. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/pygamesetup/__init__.py +0 -0
  544. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/pygamesetup/services/__init__.py +0 -0
  545. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/pygamesetup/services/play.py +0 -0
  546. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/pygamesetup/services/record.py +0 -0
  547. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/recentfile.py +0 -0
  548. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/rectsman/__init__.py +0 -0
  549. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/rectsman/cluster.py +0 -0
  550. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/rectsman/constants.py +0 -0
  551. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/rectsman/doctests/README.md +0 -0
  552. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/rectsman/doctests/__init__.py +0 -0
  553. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/rectsman/doctests/fixtures.py +0 -0
  554. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/rectsman/doctests/individual_positioning.test.md +0 -0
  555. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/rectsman/doctests/introduction.test.md +0 -0
  556. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/rectsman/doctests/operations_part01.test.md +0 -0
  557. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/rectsman/doctests/operations_part02.test.md +0 -0
  558. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/rectsman/doctests/operations_part03.test.md +0 -0
  559. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/rectsman/doctests/other_topics_part01.test.md +0 -0
  560. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/rectsman/doctests/other_topics_part02.test.md +0 -0
  561. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/rectsman/doctests/other_topics_part03.test.md +0 -0
  562. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/rectsman/doctests/special_methods_part01.test.md +0 -0
  563. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/rectsman/doctests/special_methods_part02.test.md +0 -0
  564. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/rectsman/doctests/testmarkdown.py +0 -0
  565. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/rectsman/main.py +0 -0
  566. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/rectsman/singlepos.py +0 -0
  567. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/rectsman/sizepos.py +0 -0
  568. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/rectsman/spatial.py +0 -0
  569. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/rectsman/special.py +0 -0
  570. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/rectsman/utils.py +0 -0
  571. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/splashscreen/__init__.py +0 -0
  572. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/splashscreen/animsetup.py +0 -0
  573. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/splashscreen/constants.py +0 -0
  574. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/splashscreen/main.py +0 -0
  575. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/splashscreen/op.py +0 -0
  576. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/surfdef.py +0 -0
  577. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/surfsman/__init__.py +0 -0
  578. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/surfsman/cache.py +0 -0
  579. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/surfsman/draw.py +0 -0
  580. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/surfsman/icon.py +0 -0
  581. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/surfsman/mathutils.py +0 -0
  582. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/surfsman/render.py +0 -0
  583. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/surfsman/svgexport.py +0 -0
  584. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/surfsman/viewer/__init__.py +0 -0
  585. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/surfsman/viewer/constants.py +0 -0
  586. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/surfsman/viewer/main.py +0 -0
  587. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/surfsman/viewer/op.py +0 -0
  588. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/svgutils.py +0 -0
  589. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/syntaxman/__init__.py +0 -0
  590. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/syntaxman/exception.py +0 -0
  591. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/syntaxman/syntaxes/__init__.py +0 -0
  592. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/syntaxman/syntaxes/comment.py +0 -0
  593. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/syntaxman/syntaxes/python/__init__.py +0 -0
  594. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/syntaxman/syntaxes/python/main.py +0 -0
  595. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/syntaxman/syntaxes/python/namemap.py +0 -0
  596. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/syntaxman/syntaxes/python/utils.py +0 -0
  597. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/syntaxman/syntaxes/userlog.py +0 -0
  598. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/syntaxman/utils.py +0 -0
  599. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/systemtesting/__init__.py +0 -0
  600. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/systemtesting/constants.py +0 -0
  601. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/systemtesting/playsupport.py +0 -0
  602. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/systemtesting/reportviewer/__init__.py +0 -0
  603. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/systemtesting/reportviewer/constants.py +0 -0
  604. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/systemtesting/reportviewer/factoryfuncs.py +0 -0
  605. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/systemtesting/reportviewer/op.py +0 -0
  606. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/systemtesting/testcases/__init__.py +0 -0
  607. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/systemtesting/testcases/stc0000.py +0 -0
  608. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/systemtesting/testcases/stc0001.py +0 -0
  609. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/systemtesting/testcases/stc0002.py +0 -0
  610. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/systemtesting/testcases/stc0003.py +0 -0
  611. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/systemtesting/testcases/stc0004.py +0 -0
  612. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/systemtesting/testcases/stc0005.py +0 -0
  613. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/systemtesting/testcases/stc0006.py +0 -0
  614. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/systemtesting/testcases/stc0007.py +0 -0
  615. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/systemtesting/testcases/stc0008.py +0 -0
  616. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/systemtesting/testcases/stc0009.py +0 -0
  617. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/systemtesting/testcases/stc0010.py +0 -0
  618. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/systemtesting/testcases/stc0011.py +0 -0
  619. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/textman/__init__.py +0 -0
  620. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/textman/cache.py +0 -0
  621. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/textman/editor/__init__.py +0 -0
  622. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/textman/editor/constants.py +0 -0
  623. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/textman/editor/cursor/__init__.py +0 -0
  624. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/textman/editor/cursor/main.py +0 -0
  625. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/textman/editor/cursor/modes/__init__.py +0 -0
  626. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/textman/editor/cursor/modes/insert.py +0 -0
  627. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/textman/editor/cursor/modes/normal.py +0 -0
  628. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/textman/editor/cursor/navigation.py +0 -0
  629. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/textman/editor/cursor/op.py +0 -0
  630. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/textman/editor/cursor/syntaxhigh.py +0 -0
  631. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/textman/editor/line.py +0 -0
  632. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/textman/editor/main.py +0 -0
  633. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/textman/entryedition/__init__.py +0 -0
  634. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/textman/entryedition/cursor.py +0 -0
  635. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/textman/entryedition/line.py +0 -0
  636. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/textman/label/__init__.py +0 -0
  637. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/textman/label/autolabel.py +0 -0
  638. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/textman/label/main.py +0 -0
  639. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/textman/render.py +0 -0
  640. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/textman/text.py +0 -0
  641. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/textman/viewer/__init__.py +0 -0
  642. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/textman/viewer/constants.py +0 -0
  643. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/textman/viewer/main.py +0 -0
  644. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/textman/viewer/op.py +0 -0
  645. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/textman/viewer/prep.py +0 -0
  646. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/translation.py +0 -0
  647. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/userprefsman/__init__.py +0 -0
  648. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/userprefsman/constants.py +0 -0
  649. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/userprefsman/generalform.py +0 -0
  650. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/userprefsman/socketdetectionform.py +0 -0
  651. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/userprefsman/utils.py +0 -0
  652. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/userprefsman/validation.py +0 -0
  653. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/videopreview/__init__.py +0 -0
  654. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/videopreview/cache.py +0 -0
  655. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/videopreview/constants.py +0 -0
  656. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/videopreview/previewer.py +0 -0
  657. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/videopreview/render.py +0 -0
  658. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/widget/__init__.py +0 -0
  659. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/widget/checkbutton.py +0 -0
  660. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/widget/colorbutton.py +0 -0
  661. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/widget/defaultholder.py +0 -0
  662. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/widget/intfloatentry/__init__.py +0 -0
  663. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/widget/intfloatentry/main.py +0 -0
  664. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/widget/intfloatentry/modes.py +0 -0
  665. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/widget/intfloatentry/numeval.py +0 -0
  666. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/widget/intfloatentry/op.py +0 -0
  667. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/widget/literaldisplay.py +0 -0
  668. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/widget/literalentry.py +0 -0
  669. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/widget/optionmenu/__init__.py +0 -0
  670. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/widget/optionmenu/creation.py +0 -0
  671. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/widget/optionmenu/main.py +0 -0
  672. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/widget/optionmenu/op.py +0 -0
  673. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/widget/optiontray/__init__.py +0 -0
  674. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/widget/optiontray/creation.py +0 -0
  675. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/widget/optiontray/main.py +0 -0
  676. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/widget/optiontray/op.py +0 -0
  677. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/widget/pathpreview/__init__.py +0 -0
  678. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/widget/pathpreview/audio.py +0 -0
  679. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/widget/pathpreview/base.py +0 -0
  680. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/widget/pathpreview/constants.py +0 -0
  681. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/widget/pathpreview/font.py +0 -0
  682. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/widget/pathpreview/image.py +0 -0
  683. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/widget/pathpreview/path.py +0 -0
  684. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/widget/pathpreview/text.py +0 -0
  685. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/widget/pathpreview/video.py +0 -0
  686. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/widget/sortingbutton.py +0 -0
  687. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/widget/stringentry.py +0 -0
  688. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/widget/textdisplay.py +0 -0
  689. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/winman/__init__.py +0 -0
  690. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/winman/fileop.py +0 -0
  691. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/winman/label.py +0 -0
  692. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/winman/main.py +0 -0
  693. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/winman/menu.py +0 -0
  694. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/winman/states/__init__.py +0 -0
  695. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/winman/states/birdseyeview.py +0 -0
  696. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/winman/states/boxselection.py +0 -0
  697. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/winman/states/loadedfile.py +0 -0
  698. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/winman/states/movingobject.py +0 -0
  699. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/winman/states/nofile.py +0 -0
  700. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/winman/states/segmentdef.py +0 -0
  701. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/winman/states/segmentsev.py +0 -0
  702. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator/winman/switch.py +0 -0
  703. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator.egg-info/dependency_links.txt +0 -0
  704. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator.egg-info/entry_points.txt +0 -0
  705. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator.egg-info/requires.txt +0 -0
  706. {nodezator-1.5.3 → nodezator-1.5.4}/nodezator.egg-info/top_level.txt +0 -0
@@ -1,35 +1,30 @@
1
- Metadata-Version: 2.1
1
+ Metadata-Version: 2.2
2
2
  Name: nodezator
3
- Version: 1.5.3
3
+ Version: 1.5.4
4
4
  Summary: A generalist Python node editor
5
- Home-page: https://nodezator.com
6
- Author: Kennedy Richard
7
- Author-email: kennedy@kennedyrichard.com
5
+ Author-email: Kennedy Richard <kennedy@kennedyrichard.com>
8
6
  License: Unlicense
9
- Project-URL: Source code, https://github.com/IndiePython/nodezator
10
- Project-URL: Forum, https://github.com/IndiePython/nodezator/discussions
11
- Project-URL: User manual, https://manual.nodezator.com
12
- Project-URL: Bug Tracker, https://github.com/IndiePython/nodezator/issues
13
- Project-URL: Donate, https://indiepython.com/donate
7
+ Project-URL: Homepage, https://nodezator.com
8
+ Project-URL: Source Code, https://github.com/IndieSmiths/nodezator
9
+ Project-URL: Forum, https://github.com/IndieSmiths/nodezator/discussions
10
+ Project-URL: User Manual, https://manual.nodezator.com
11
+ Project-URL: Bug Tracker, https://github.com/IndieSmiths/nodezator/issues
12
+ Project-URL: Donate, https://indiesmiths.com/donate
14
13
  Keywords: gui,desktop,application,pygame,pygame-ce,graph,graphs,nodes,node,editor
15
14
  Classifier: License :: OSI Approved :: The Unlicense (Unlicense)
16
15
  Classifier: Development Status :: 4 - Beta
17
16
  Classifier: Programming Language :: Python :: 3
18
- Classifier: Programming Language :: Python :: 3.7
19
- Classifier: Programming Language :: Python :: 3.8
20
- Classifier: Programming Language :: Python :: 3.9
21
- Classifier: Programming Language :: Python :: 3.10
22
17
  Classifier: Programming Language :: Python :: Implementation :: CPython
23
18
  Classifier: Topic :: Software Development
24
- Classifier: Topic :: Software Development :: User Interfaces
25
19
  Classifier: Topic :: Software Development :: Libraries :: pygame
20
+ Classifier: Topic :: Desktop Environment
21
+ Classifier: Topic :: Multimedia
26
22
  Classifier: Topic :: Software Development :: User Interfaces
27
23
  Classifier: Topic :: Software Development :: Code Generators
28
24
  Classifier: Topic :: Artistic Software
29
- Classifier: Topic :: Desktop Environment
30
- Classifier: Topic :: Multimedia
31
25
  Classifier: Topic :: Office/Business
32
26
  Classifier: Topic :: Scientific/Engineering
27
+ Classifier: Intended Audience :: End Users/Desktop
33
28
  Requires-Python: >=3.7
34
29
  Description-Content-Type: text/markdown
35
30
  Requires-Dist: pygame-ce
@@ -69,7 +64,7 @@ main_callable = get_circle_area
69
64
 
70
65
  ![node image](https://nodezator.com/images/get_circle_area_node.png)
71
66
 
72
- You can store these functions/node definitions anywhere you want in your disk and once you launch Nodezator just provide the path so Nodezator can load them. The only requirement is that you organize these nodes definitions in separate files and store then in a folder (more about that further ahead in another section).
67
+ You can store these functions/node definitions anywhere you want in your disk and once you launch Nodezator just provide the path so Nodezator can load them. The only requirement is that you organize these nodes definitions in separate files and store them in a folder (more about that further ahead in another section).
73
68
 
74
69
  You can actually turn **any** callable into a node very easily: classes, methods, etc. All callables available in the Python ecosystem can be turned into a node (even the ones defined in C, for instance).
75
70
 
@@ -93,14 +88,14 @@ There's also a [youtube video][] presenting Nodezator:
93
88
 
94
89
  [![thumb of youtube video](https://img.youtube.com/vi/GlQJvuU7Z_8/hqdefault.jpg)](https://www.youtube.com/watch?v=GlQJvuU7Z_8)
95
90
 
96
- Nodezator is made with pure Python on top of the [pygame-ce][] library (and a bit of the excellent [numpy][] library as well), by [Kennedy Richard Silva Guerra][] (born in 1990), as part of the [Indie Python][] project.
91
+ Nodezator is made with pure Python on top of the [pygame-ce][] library (and a bit of the excellent [numpy][] library as well), by [Kennedy Richard Silva Guerra][] (born in 1990), as part of the [Indie Smiths][] project.
97
92
 
98
93
  > [!NOTE]
99
94
  > Despite being maintained mostly by a single person, Nodezator is a serious and active project that gets a couple of large releases every year.
100
95
 
101
96
  We recommend Nodezator for **intermediate Python users**. Or, in case you are not a programmer, have an intermediate Python user next to you so that person can help you set up a no-code/low-code workflow for you.
102
97
 
103
- Nodezator can already be used in production and supports a vast variety of workflows. It still has a long way to go, though. So, please, be patient and also consider supporting it: https://indiepython.com/donate
98
+ Nodezator can already be used in production and supports a vast variety of workflows. It still has a long way to go, though. So, please, be patient and also consider supporting it: https://indiesmiths.com/donate
104
99
 
105
100
  After you finish reading this README file, you may also want to visit Nodezator's homepage: https://nodezator.com
106
101
 
@@ -167,7 +162,7 @@ Simply put, Nodezator is just a visual, node-based representation of Python.
167
162
 
168
163
  ### Socket proximity detection
169
164
 
170
- Having to click exactly over a socket to drag a new connection out of it and on top of that having to drop such new connection exactly on top of another socket are both repetitive tasks that are difficult to do right in one quick motion. Often, people loose precious time trying to ensure the mouse is exactly over the desired socket, specially considering how often those tasks are performed in any graph edition session.
165
+ Having to click exactly over a socket to drag a new connection out of it and on top of that having to drop such new connection exactly on top of another socket are both repetitive tasks that are difficult to do right in one quick motion. Often, people lose precious time trying to ensure the mouse is exactly over the desired socket, specially considering how often those tasks are performed in any graph edition session.
171
166
 
172
167
  Because of that, Nodezator features socket proximity detection to assist the user when establishing or replacing existing connection. The user doesn't need to click exactly over a socket to drag a new connection out of it anymore. Dropping the new connection exactly over the other socket isn't necessary either. As long as the mouse is close enough, these actions can be carried over effortlessly. Here you can see it in action:
173
168
 
@@ -280,7 +275,7 @@ Once you distributed your nodes, you may want a place wherein to let people know
280
275
 
281
276
  You can do all this on the [nodes gallery][] website. There you can search node packs by name, author and tags.
282
277
 
283
- To have a link to your node pack added to the nodes gallery/database, upload it somewhere people can download/install it from, as described in the manual's chapter about [distributing your nodes][], then submit the relevant info about your node pack in this [node pack submission form][]. Alternatively, you can also submit a pull request to the [nodes gallery repository][] on github following the instructions on the README.md file.
278
+ To have a link to your node pack added to the nodes gallery/database, upload it somewhere people can download/install it from, as described in the manual's chapter about [distributing your nodes][], then submit the relevant info about your node pack in this [node pack submission form][]. Alternatively, you can also submit a pull request to the [nodes gallery repository][] on GitHub following the instructions on the README.md file.
284
279
 
285
280
  You can also [email][] me if you need any help.
286
281
 
@@ -326,9 +321,13 @@ The in-app version is always the most accurate, since it is updated first, where
326
321
 
327
322
  Everyone is welcome to suggest and contribute changes.
328
323
 
329
- If the proposed change is small enough, you can submit your pull request for analysis right away and it will be answered ASAP.
324
+ If the proposed change is small enough, you can submit your pull request (PR) for analysis right away to the `develop` branch and it will be answered ASAP.
325
+
326
+ Please, if submitting a pull request, use the `develop` branch, not the `main` branch. This way it is easier to refine/complement your changes before merging them with `main`.
327
+
328
+ More complex pull requests will also be welcome in the future, but due to the complexity of the app, I will first need to finish implementing the missing system test cases to ensure everyone's future contributions do not break each other.
330
329
 
331
- More complex pull requests will also be welcome in the future, but due to the complexity of the app, I will first need to implement some automated GUI tests to ensure everyone's future contributions do not break each other.
330
+ Speaking of system testing, Nodezator has system testing capabilities that take advantage of GUI automation, with a few test cases already implemented. Just press **Shift+Ctrl+F8** to see the current system test cases run automatically. Once the tests finish running, a report with the results is displayed so you can inspect them. If you need, the report can be exported to a variety of formats with the buttons at the bottom of the report. You can also configure the system testing session in the menu **Gui Automation > System testing > Setup and run custom session**.
332
331
 
333
332
 
334
333
  ## Issues
@@ -341,7 +340,7 @@ If you find a bug that...
341
340
  - causes Nodezator to crash;
342
341
  - representing something malfunctioning or not working at all;
343
342
 
344
- ...then, please, use [github issues][] to submit an issue as soon as possible.
343
+ ...then, please, use [GitHub issues][] to submit an issue as soon as possible.
345
344
 
346
345
  Please, include as much information as you can:
347
346
 
@@ -358,20 +357,20 @@ Nevertheless, never hesitate to ask for help, even if you don't have much info a
358
357
 
359
358
  ### Minor issues
360
359
 
361
- If however, the problem is not as serious/urgent, that is, it doesn't cause Nodezator to crash or malfunction, then, please, open a discussion on [github discussions][] instead. There's a dedicated category for this kind of problem called "Minor issue".
360
+ If however, the problem is not as serious/urgent, that is, it doesn't cause Nodezator to crash or malfunction, then, please, open a discussion on [GitHub discussions][] instead. There's a dedicated category for this kind of problem called "Minor issue".
362
361
 
363
- It doesn't mean your issue is any less important. It is just that in Nodezator and other Indie Python repos we use [github issues][] for things that crash the app or otherwise prevent the user from doing something that is supposed to be available (stuff that cause crashes or malfunctioning). When such a critical issue appears, any other work is paused and all attention is given to that issue so that it can be fixed ASAP.
362
+ It doesn't mean your issue is any less important. It is just that in Nodezator and other Indie Smiths's repos we use [GitHub issues][] for things that crash the app or otherwise prevent the user from doing something that is supposed to be available (stuff that cause crashes or malfunctioning). When such a critical issue appears, any other work is paused and all attention is given to that issue so that it can be fixed ASAP.
364
363
 
365
364
  This measure is taken for the benefit of the users: by doing things this way, whenever you have an urgent/critical issue, it won't compete for space with other less urgent matters. We'll be able to promptly schedule time to solve the issue.
366
365
 
367
- Minor issues, suggestions of improvements, feature requests, feedback about bad experiences, etc. are all important, but they don't have the same urgency as something that crashes the app or causes it to malfunction. This is why we use [github discussions][] for the less urgent stuff. They'll be tended to all the same, just not with the same urgency.
366
+ Minor issues, suggestions of improvements, feature requests, feedback about bad experiences, etc. are all important, but they don't have the same urgency as something that crashes the app or causes it to malfunction. This is why we use [GitHub discussions][] for the less urgent stuff. They'll be tended to all the same, just not with the same urgency.
368
367
 
369
- Of course, [github discussions][] is used for many other important stuff as well, as we'll see in the next section.
368
+ Of course, [GitHub discussions][] is used for many other important stuff as well, as we'll see in the next section.
370
369
 
371
370
 
372
371
  ## Discussions/forum
373
372
 
374
- Consider [github discussions][] as the official online forum for Nodezator.
373
+ Consider [GitHub discussions][] as the official online forum for Nodezator.
375
374
 
376
375
  It is used for many things like announcements to the community, to list planned/requested features, to communicate and discuss current work, etc.
377
376
 
@@ -392,14 +391,14 @@ If you have...
392
391
 
393
392
  Contact me any time via [Twitter/X][] or [email][].
394
393
 
395
- You are also welcome on the Indie Python's [discord server][].
394
+ You are also welcome on the Indie Smiths's [discord server][].
396
395
 
397
396
 
398
397
  ## Patreon and donations
399
398
 
400
- Please, support Nodezator and other useful apps of the Indie Python project by becoming our patron on [patreon][]. You can also make recurrent donations using [github sponsors][], [liberapay][] or [Ko-fi][].
399
+ Please, support Nodezator and other useful apps of the Indie Smiths project by becoming our patron on [patreon][]. You can also make recurrent donations using [GitHub sponsors][], [liberapay][] or [Ko-fi][].
401
400
 
402
- Both [github sponsors][] and [Ko-fi][] also accept one-time donations.
401
+ Both [GitHub sponsors][] and [Ko-fi][] also accept one-time donations.
403
402
 
404
403
  Any amount is welcome and helps. Check the project's [donation page][] for all donation methods available.
405
404
 
@@ -413,7 +412,7 @@ The `nodezator_icons` font used in the app for its icons was created by me and i
413
412
  The logos/images listed below, featured in Nodezator's splash screen (and sometimes in other spots in the app), are all mine:
414
413
 
415
414
  - the Kennedy Richard "KR" logo;
416
- - the Indie Python project logo;
415
+ - the Indie Smiths project logo;
417
416
  - the Nodezator logo;
418
417
  - the robot, called Zenith Green, Nodezator's mascot.
419
418
 
@@ -435,19 +434,19 @@ Also, other parts of the code, despite being carefully designed, might be redesi
435
434
  [youtube video]: https://www.youtube.com/watch?v=GlQJvuU7Z_8
436
435
  [pygame-ce]: https://pyga.me
437
436
  [numpy]: https://numpy.org
438
- [Indie Python]: https://indiepython.com
437
+ [Indie Smiths]: https://indiesmiths.com
439
438
 
440
439
  [manual]: https://manual.nodezator.com
441
440
 
442
441
  [Twitter/X]: https://x.com/KennedyRichard
443
442
  [email]: mailto:kennedy@kennedyrichard.com
444
- [discord server]: https://indiepython.com/discord
443
+ [discord server]: https://indiesmiths.com/discord
445
444
 
446
445
  [patreon]: https://patreon.com/KennedyRichard
447
- [github sponsors]: https://github.com/sponsors/KennedyRichard
446
+ [GitHub sponsors]: https://github.com/sponsors/KennedyRichard
448
447
  [liberapay]: https://liberapay.com/KennedyRichard
449
448
  [Ko-fi]: https://ko-fi.com/kennedyrichard
450
- [donation page]: https://indiepython.com/donate
449
+ [donation page]: https://indiesmiths.com/donate
451
450
 
452
451
  [defining your first node]: https://manual.nodezator.com/ch-defining-your-first-node.html
453
452
  [loading nodes]: https://manual.nodezator.com/ch-loading-nodes.html
@@ -455,10 +454,10 @@ Also, other parts of the code, despite being carefully designed, might be redesi
455
454
  [nodes gallery]: https://gallery.nodezator.com
456
455
 
457
456
  [node pack submission form]: https://docs.google.com/forms/d/e/1FAIpQLSd1XceOnzEeaBZcpkkXEFiAVO_5YUbd43sieQUekh1PZ8dm5A/viewform?usp=sf_link
458
- [nodes gallery repository]: https://github.com/IndiePython/gallery.nodezator.com
457
+ [nodes gallery repository]: https://github.com/IndieSmiths/gallery.nodezator.com
459
458
 
460
- [github issues]: https://github.com/IndiePython/nodezator/issues
461
- [github discussions]: https://github.com/IndiePython/nodezator/discussions
459
+ [GitHub issues]: https://github.com/IndieSmiths/nodezator/issues
460
+ [GitHub discussions]: https://github.com/IndieSmiths/nodezator/discussions
462
461
 
463
462
  [The Unlicense]: https://unlicense.org/
464
463
  [Open Font License]: https://en.wikipedia.org/wiki/SIL_Open_Font_License
@@ -32,7 +32,7 @@ main_callable = get_circle_area
32
32
 
33
33
  ![node image](https://nodezator.com/images/get_circle_area_node.png)
34
34
 
35
- You can store these functions/node definitions anywhere you want in your disk and once you launch Nodezator just provide the path so Nodezator can load them. The only requirement is that you organize these nodes definitions in separate files and store then in a folder (more about that further ahead in another section).
35
+ You can store these functions/node definitions anywhere you want in your disk and once you launch Nodezator just provide the path so Nodezator can load them. The only requirement is that you organize these nodes definitions in separate files and store them in a folder (more about that further ahead in another section).
36
36
 
37
37
  You can actually turn **any** callable into a node very easily: classes, methods, etc. All callables available in the Python ecosystem can be turned into a node (even the ones defined in C, for instance).
38
38
 
@@ -56,14 +56,14 @@ There's also a [youtube video][] presenting Nodezator:
56
56
 
57
57
  [![thumb of youtube video](https://img.youtube.com/vi/GlQJvuU7Z_8/hqdefault.jpg)](https://www.youtube.com/watch?v=GlQJvuU7Z_8)
58
58
 
59
- Nodezator is made with pure Python on top of the [pygame-ce][] library (and a bit of the excellent [numpy][] library as well), by [Kennedy Richard Silva Guerra][] (born in 1990), as part of the [Indie Python][] project.
59
+ Nodezator is made with pure Python on top of the [pygame-ce][] library (and a bit of the excellent [numpy][] library as well), by [Kennedy Richard Silva Guerra][] (born in 1990), as part of the [Indie Smiths][] project.
60
60
 
61
61
  > [!NOTE]
62
62
  > Despite being maintained mostly by a single person, Nodezator is a serious and active project that gets a couple of large releases every year.
63
63
 
64
64
  We recommend Nodezator for **intermediate Python users**. Or, in case you are not a programmer, have an intermediate Python user next to you so that person can help you set up a no-code/low-code workflow for you.
65
65
 
66
- Nodezator can already be used in production and supports a vast variety of workflows. It still has a long way to go, though. So, please, be patient and also consider supporting it: https://indiepython.com/donate
66
+ Nodezator can already be used in production and supports a vast variety of workflows. It still has a long way to go, though. So, please, be patient and also consider supporting it: https://indiesmiths.com/donate
67
67
 
68
68
  After you finish reading this README file, you may also want to visit Nodezator's homepage: https://nodezator.com
69
69
 
@@ -130,7 +130,7 @@ Simply put, Nodezator is just a visual, node-based representation of Python.
130
130
 
131
131
  ### Socket proximity detection
132
132
 
133
- Having to click exactly over a socket to drag a new connection out of it and on top of that having to drop such new connection exactly on top of another socket are both repetitive tasks that are difficult to do right in one quick motion. Often, people loose precious time trying to ensure the mouse is exactly over the desired socket, specially considering how often those tasks are performed in any graph edition session.
133
+ Having to click exactly over a socket to drag a new connection out of it and on top of that having to drop such new connection exactly on top of another socket are both repetitive tasks that are difficult to do right in one quick motion. Often, people lose precious time trying to ensure the mouse is exactly over the desired socket, specially considering how often those tasks are performed in any graph edition session.
134
134
 
135
135
  Because of that, Nodezator features socket proximity detection to assist the user when establishing or replacing existing connection. The user doesn't need to click exactly over a socket to drag a new connection out of it anymore. Dropping the new connection exactly over the other socket isn't necessary either. As long as the mouse is close enough, these actions can be carried over effortlessly. Here you can see it in action:
136
136
 
@@ -243,7 +243,7 @@ Once you distributed your nodes, you may want a place wherein to let people know
243
243
 
244
244
  You can do all this on the [nodes gallery][] website. There you can search node packs by name, author and tags.
245
245
 
246
- To have a link to your node pack added to the nodes gallery/database, upload it somewhere people can download/install it from, as described in the manual's chapter about [distributing your nodes][], then submit the relevant info about your node pack in this [node pack submission form][]. Alternatively, you can also submit a pull request to the [nodes gallery repository][] on github following the instructions on the README.md file.
246
+ To have a link to your node pack added to the nodes gallery/database, upload it somewhere people can download/install it from, as described in the manual's chapter about [distributing your nodes][], then submit the relevant info about your node pack in this [node pack submission form][]. Alternatively, you can also submit a pull request to the [nodes gallery repository][] on GitHub following the instructions on the README.md file.
247
247
 
248
248
  You can also [email][] me if you need any help.
249
249
 
@@ -289,9 +289,13 @@ The in-app version is always the most accurate, since it is updated first, where
289
289
 
290
290
  Everyone is welcome to suggest and contribute changes.
291
291
 
292
- If the proposed change is small enough, you can submit your pull request for analysis right away and it will be answered ASAP.
292
+ If the proposed change is small enough, you can submit your pull request (PR) for analysis right away to the `develop` branch and it will be answered ASAP.
293
293
 
294
- More complex pull requests will also be welcome in the future, but due to the complexity of the app, I will first need to implement some automated GUI tests to ensure everyone's future contributions do not break each other.
294
+ Please, if submitting a pull request, use the `develop` branch, not the `main` branch. This way it is easier to refine/complement your changes before merging them with `main`.
295
+
296
+ More complex pull requests will also be welcome in the future, but due to the complexity of the app, I will first need to finish implementing the missing system test cases to ensure everyone's future contributions do not break each other.
297
+
298
+ Speaking of system testing, Nodezator has system testing capabilities that take advantage of GUI automation, with a few test cases already implemented. Just press **Shift+Ctrl+F8** to see the current system test cases run automatically. Once the tests finish running, a report with the results is displayed so you can inspect them. If you need, the report can be exported to a variety of formats with the buttons at the bottom of the report. You can also configure the system testing session in the menu **Gui Automation > System testing > Setup and run custom session**.
295
299
 
296
300
 
297
301
  ## Issues
@@ -304,7 +308,7 @@ If you find a bug that...
304
308
  - causes Nodezator to crash;
305
309
  - representing something malfunctioning or not working at all;
306
310
 
307
- ...then, please, use [github issues][] to submit an issue as soon as possible.
311
+ ...then, please, use [GitHub issues][] to submit an issue as soon as possible.
308
312
 
309
313
  Please, include as much information as you can:
310
314
 
@@ -321,20 +325,20 @@ Nevertheless, never hesitate to ask for help, even if you don't have much info a
321
325
 
322
326
  ### Minor issues
323
327
 
324
- If however, the problem is not as serious/urgent, that is, it doesn't cause Nodezator to crash or malfunction, then, please, open a discussion on [github discussions][] instead. There's a dedicated category for this kind of problem called "Minor issue".
328
+ If however, the problem is not as serious/urgent, that is, it doesn't cause Nodezator to crash or malfunction, then, please, open a discussion on [GitHub discussions][] instead. There's a dedicated category for this kind of problem called "Minor issue".
325
329
 
326
- It doesn't mean your issue is any less important. It is just that in Nodezator and other Indie Python repos we use [github issues][] for things that crash the app or otherwise prevent the user from doing something that is supposed to be available (stuff that cause crashes or malfunctioning). When such a critical issue appears, any other work is paused and all attention is given to that issue so that it can be fixed ASAP.
330
+ It doesn't mean your issue is any less important. It is just that in Nodezator and other Indie Smiths's repos we use [GitHub issues][] for things that crash the app or otherwise prevent the user from doing something that is supposed to be available (stuff that cause crashes or malfunctioning). When such a critical issue appears, any other work is paused and all attention is given to that issue so that it can be fixed ASAP.
327
331
 
328
332
  This measure is taken for the benefit of the users: by doing things this way, whenever you have an urgent/critical issue, it won't compete for space with other less urgent matters. We'll be able to promptly schedule time to solve the issue.
329
333
 
330
- Minor issues, suggestions of improvements, feature requests, feedback about bad experiences, etc. are all important, but they don't have the same urgency as something that crashes the app or causes it to malfunction. This is why we use [github discussions][] for the less urgent stuff. They'll be tended to all the same, just not with the same urgency.
334
+ Minor issues, suggestions of improvements, feature requests, feedback about bad experiences, etc. are all important, but they don't have the same urgency as something that crashes the app or causes it to malfunction. This is why we use [GitHub discussions][] for the less urgent stuff. They'll be tended to all the same, just not with the same urgency.
331
335
 
332
- Of course, [github discussions][] is used for many other important stuff as well, as we'll see in the next section.
336
+ Of course, [GitHub discussions][] is used for many other important stuff as well, as we'll see in the next section.
333
337
 
334
338
 
335
339
  ## Discussions/forum
336
340
 
337
- Consider [github discussions][] as the official online forum for Nodezator.
341
+ Consider [GitHub discussions][] as the official online forum for Nodezator.
338
342
 
339
343
  It is used for many things like announcements to the community, to list planned/requested features, to communicate and discuss current work, etc.
340
344
 
@@ -355,14 +359,14 @@ If you have...
355
359
 
356
360
  Contact me any time via [Twitter/X][] or [email][].
357
361
 
358
- You are also welcome on the Indie Python's [discord server][].
362
+ You are also welcome on the Indie Smiths's [discord server][].
359
363
 
360
364
 
361
365
  ## Patreon and donations
362
366
 
363
- Please, support Nodezator and other useful apps of the Indie Python project by becoming our patron on [patreon][]. You can also make recurrent donations using [github sponsors][], [liberapay][] or [Ko-fi][].
367
+ Please, support Nodezator and other useful apps of the Indie Smiths project by becoming our patron on [patreon][]. You can also make recurrent donations using [GitHub sponsors][], [liberapay][] or [Ko-fi][].
364
368
 
365
- Both [github sponsors][] and [Ko-fi][] also accept one-time donations.
369
+ Both [GitHub sponsors][] and [Ko-fi][] also accept one-time donations.
366
370
 
367
371
  Any amount is welcome and helps. Check the project's [donation page][] for all donation methods available.
368
372
 
@@ -376,7 +380,7 @@ The `nodezator_icons` font used in the app for its icons was created by me and i
376
380
  The logos/images listed below, featured in Nodezator's splash screen (and sometimes in other spots in the app), are all mine:
377
381
 
378
382
  - the Kennedy Richard "KR" logo;
379
- - the Indie Python project logo;
383
+ - the Indie Smiths project logo;
380
384
  - the Nodezator logo;
381
385
  - the robot, called Zenith Green, Nodezator's mascot.
382
386
 
@@ -398,19 +402,19 @@ Also, other parts of the code, despite being carefully designed, might be redesi
398
402
  [youtube video]: https://www.youtube.com/watch?v=GlQJvuU7Z_8
399
403
  [pygame-ce]: https://pyga.me
400
404
  [numpy]: https://numpy.org
401
- [Indie Python]: https://indiepython.com
405
+ [Indie Smiths]: https://indiesmiths.com
402
406
 
403
407
  [manual]: https://manual.nodezator.com
404
408
 
405
409
  [Twitter/X]: https://x.com/KennedyRichard
406
410
  [email]: mailto:kennedy@kennedyrichard.com
407
- [discord server]: https://indiepython.com/discord
411
+ [discord server]: https://indiesmiths.com/discord
408
412
 
409
413
  [patreon]: https://patreon.com/KennedyRichard
410
- [github sponsors]: https://github.com/sponsors/KennedyRichard
414
+ [GitHub sponsors]: https://github.com/sponsors/KennedyRichard
411
415
  [liberapay]: https://liberapay.com/KennedyRichard
412
416
  [Ko-fi]: https://ko-fi.com/kennedyrichard
413
- [donation page]: https://indiepython.com/donate
417
+ [donation page]: https://indiesmiths.com/donate
414
418
 
415
419
  [defining your first node]: https://manual.nodezator.com/ch-defining-your-first-node.html
416
420
  [loading nodes]: https://manual.nodezator.com/ch-loading-nodes.html
@@ -418,10 +422,10 @@ Also, other parts of the code, despite being carefully designed, might be redesi
418
422
  [nodes gallery]: https://gallery.nodezator.com
419
423
 
420
424
  [node pack submission form]: https://docs.google.com/forms/d/e/1FAIpQLSd1XceOnzEeaBZcpkkXEFiAVO_5YUbd43sieQUekh1PZ8dm5A/viewform?usp=sf_link
421
- [nodes gallery repository]: https://github.com/IndiePython/gallery.nodezator.com
425
+ [nodes gallery repository]: https://github.com/IndieSmiths/gallery.nodezator.com
422
426
 
423
- [github issues]: https://github.com/IndiePython/nodezator/issues
424
- [github discussions]: https://github.com/IndiePython/nodezator/discussions
427
+ [GitHub issues]: https://github.com/IndieSmiths/nodezator/issues
428
+ [GitHub discussions]: https://github.com/IndieSmiths/nodezator/discussions
425
429
 
426
430
  [The Unlicense]: https://unlicense.org/
427
431
  [Open Font License]: https://en.wikipedia.org/wiki/SIL_Open_Font_License
@@ -0,0 +1,4 @@
1
+ from .appinfo import MINIMAL_VERSION_STRING
2
+
3
+
4
+ __version__ = MINIMAL_VERSION_STRING
@@ -4,10 +4,11 @@ Nodezator: A generalist Python node editor developed by
4
4
  Kennedy Richard <kennedy@kennedyrichard.com>.
5
5
 
6
6
  https://kennedyrichard.com
7
+ https://bsky.app/profile/kennedyrichard.com
7
8
  https://x.com/KennedyRichard
8
9
 
9
10
  https://nodezator.com
10
- https://github.com/IndiePython/nodezator
11
+ https://github.com/IndieSmiths/nodezator
11
12
  """
12
13
 
13
14
  ### standard library imports
@@ -20,7 +20,9 @@ from collections import namedtuple
20
20
 
21
21
  AppVersion = namedtuple("AppVersion", "major minor micro release_level")
22
22
 
23
- APP_VERSION = AppVersion(1, 5, 3, "release_candidate")
23
+ APP_VERSION = AppVersion(1, 5, 4, "release_candidate")
24
+
25
+ MINIMAL_VERSION_STRING = '.'.join(map(str, APP_VERSION[:3]))
24
26
 
25
27
 
26
28
  ### titles for the application
@@ -33,7 +35,7 @@ TITLE = "Nodezator"
33
35
  ## supported by any major operating system;
34
36
  APP_DIR_NAME = "nodezator"
35
37
 
36
- ORG_DIR_NAME = 'IndiePython' # org name for pygame.system.get_pref_path
38
+ ORG_DIR_NAME = 'IndieSmiths' # org name for pygame.system.get_pref_path
37
39
 
38
40
  ABBREVIATED_TITLE = "NDZ"
39
41
 
@@ -1,6 +1,8 @@
1
+ """Facility for playing audio."""
2
+
1
3
  ### third-party imports
2
4
 
3
- from pygame import Rect
5
+ from pygame import Rect, error as PygameError
4
6
 
5
7
  from pygame.locals import (
6
8
  QUIT,
@@ -91,7 +93,18 @@ PLAYING_ICON = render_layered_icon(
91
93
  logger = get_new_logger(__name__)
92
94
 
93
95
 
96
+ UNAVAILABLE_AUDIO_MESSAGE = (
97
+ "An error ocurred while trying to set the audio volume"
98
+ " (for usage by the widget that plays audio files to"
99
+ " preview them). You can still use Nodezator normally,"
100
+ " you just won't be able to listen to audio files within"
101
+ " the widget until you figure out the problem. Please, check"
102
+ " the audio on your system."
103
+ )
104
+
105
+
94
106
  class AudioPlayer(Object2D):
107
+
95
108
  def __init__(self):
96
109
  """"""
97
110
 
@@ -137,11 +150,7 @@ class AudioPlayer(Object2D):
137
150
  )
138
151
 
139
152
  ###
140
-
141
153
  self.volume = 0.4
142
- music.set_volume(self.volume)
143
-
144
- ###
145
154
 
146
155
  volume_area = self.volume_area = Rect((0, 0), (100, 30))
147
156
 
@@ -189,6 +198,34 @@ class AudioPlayer(Object2D):
189
198
 
190
199
  def play_audio(self, audio_paths, index=0):
191
200
 
201
+ ### try setting the volume
202
+
203
+ try:
204
+ music.set_volume(self.volume)
205
+
206
+ ### if a pygame error occurs at this spot, it might
207
+ ### mean the mixer wasn't initialized properly due to
208
+ ### a problem on the user's system (at least it happened
209
+ ### before and it is the reason this check exists)
210
+ ###
211
+ ### inform the user of the problem its implications and
212
+ ### leave the player immediately by returning earlier
213
+
214
+ except PygameError:
215
+
216
+ logger.exception(UNAVAILABLE_AUDIO_MESSAGE)
217
+ USER_LOGGER.exception(UNAVAILABLE_AUDIO_MESSAGE)
218
+
219
+ dialog_message = UNAVAILABLE_AUDIO_MESSAGE + (
220
+ " Check the user log for details (on the graph/canvas,"
221
+ " press <Ctrl+Shift+j> or access the \"Help > Show user"
222
+ " log\" option on the menubar)."
223
+ )
224
+
225
+ create_and_show_dialog(dialog_message, level_name='error')
226
+
227
+ return
228
+
192
229
  self.audio_paths = (
193
230
  [audio_paths] if isinstance(audio_paths, str) else audio_paths
194
231
  )
@@ -328,7 +365,7 @@ class AudioPlayer(Object2D):
328
365
  try:
329
366
  music.load(self.audio_path)
330
367
 
331
- except Exception as err:
368
+ except Exception:
332
369
 
333
370
  log_message = (
334
371
  "An error ocurred while trying to"
@@ -82,9 +82,13 @@ SYSTEM_TESTING_DATA_DIR = DATA_DIR / "system_testing"
82
82
  APP_COLORS_FILE = DATA_DIR / "app_themes" / "emeralds_on_coal.pyl"
83
83
 
84
84
 
85
- ### writeable path for config/logs, etc.
85
+ ### writeable paths for config/logs, etc.
86
86
  WRITEABLE_PATH = Path(get_pref_path(ORG_DIR_NAME, APP_DIR_NAME))
87
87
 
88
+ ### previous writeable path, that uses the previous name of
89
+ ### nodezator's parent project
90
+ OLD_WRITEABLE_PATH = Path(get_pref_path('IndiePython', APP_DIR_NAME))
91
+
88
92
 
89
93
  ### check whether ffmpeg (and ffprobe) is available, storing
90
94
  ### the info as a boolean
@@ -189,7 +189,7 @@ main_callable = view_points
189
189
 
190
190
  <p>Before you delve into the code, however, I'd like to point out that <b>there is no perfect or correct way of defining loops in pygame</b>. You can use functions or classes, but even when using classes there are different ways to do it. I could even have split the node script into different modules to make the separation between the different parts even more clear.</p>
191
191
 
192
- <p>Do not stress over the details. The code to be presented is just what I thought was the best solution for what was needed. As long as you understand the purpose of the individual pieces you'll be able to come up with your own solutions. You are also always welcome to ask on <a href="https://indiepython.com/discord">discord</a> or <a href="https://github.com/IndiePython/nodezator/discussions">github discussions</a> every time you have questions.</p>
192
+ <p>Do not stress over the details. The code to be presented is just what I thought was the best solution for what was needed. As long as you understand the purpose of the individual pieces you'll be able to come up with your own solutions. You are also always welcome to ask on <a href="https://indiesmiths.com/discord">discord</a> or <a href="https://github.com/IndieSmiths/nodezator/discussions">GitHub discussions</a> every time you have questions.</p>
193
193
 
194
194
  <p>First of all, we have the imports and the definition of constants:</p>
195
195
 
@@ -142,7 +142,7 @@
142
142
 
143
143
  <p>Beware that this template does not attempt to teach you the best way or configuration for your package. It just presents <b>one</b> possible and relatively straightforward way of packaging your node pack. Teaching about packaging in Python and the many options available is outside the scope of our project.</p>
144
144
 
145
- <p>Even so, we always welcome questions and people seeking help, so if you have any trouble just reach us on <a href="https://github.com/IndiePython/nodezator/discussions">github discussions for Nodezator</a> or the <a href="https://indiepython.com/discord">Indie Python discord server</a>.</p>
145
+ <p>Even so, we always welcome questions and people seeking help, so if you have any trouble just reach us on <a href="https://github.com/IndieSmiths/nodezator/discussions">GitHub discussions for Nodezator</a> or the <a href="https://indiesmiths.com/discord">Indie Smiths discord server</a>.</p>
146
146
 
147
147
 
148
148
  <p><a href="ch-other-objects.htsl">Previous chapter</a> | <a href="index.htsl">Table of contents</a> | <a href="ch-conditional-execution.htsl">Next chapter</a></p>
@@ -25,7 +25,7 @@
25
25
  <li>How to reference them in the .ndz file.</li>
26
26
  </ol>
27
27
 
28
- <p>If you ever encounter any kind of problem, with those or any other task you are trying to perform in Nodezator, don't hesitate to seek help on the <a href="https://indiepython.com/discord">discord server</a>.</p>
28
+ <p>If you ever encounter any kind of problem, with those or any other task you are trying to perform in Nodezator, don't hesitate to seek help on the <a href="https://indiesmiths.com/discord">discord server</a>.</p>
29
29
 
30
30
  <p>Without further ado, let's learn how to do those things.</p>
31
31
 
@@ -223,9 +223,9 @@ pip install mynodepack
223
223
 
224
224
  <p>Hence, if you change the name of parameters/outputs or make other changes that result in an incompatible signature, your file will become invalid or you'll have to update the .ndz file by hand yourself.</p>
225
225
 
226
- <p>A feature that consists in a conflict resolution mode for Nodezator, to guide the user in the resolution of such problems is already listed among the <a href="https://github.com/IndiePython/nodezator/discussions/13">planned/requested features for Nodezator</a>.</p>
226
+ <p>A feature that consists in a conflict resolution mode for Nodezator, to guide the user in the resolution of such problems is already listed among the <a href="https://github.com/IndieSmiths/nodezator/discussions/13">planned/requested features for Nodezator</a>.</p>
227
227
 
228
- <p>For now, if you want to update the signature of a node that is in use, it is easier to delete the instances of that node in the related .ndz files, make your changes, than instantiate and reconnect the node again. Or just seek help on the <a href="https://indiepython.com/discord">discord server</a>.</p>
228
+ <p>For now, if you want to update the signature of a node that is in use, it is easier to delete the instances of that node in the related .ndz files, make your changes, than instantiate and reconnect the node again. Or just seek help on the <a href="https://indiesmiths.com/discord">discord server</a>.</p>
229
229
 
230
230
 
231
231
  <p><a href="ch-more-ways-define-nodes.htsl">Previous chapter</a> | <a href="index.htsl">Table of contents</a> | <a href="ch-color-coding-inputs-outputs.htsl">Next chapter</a></p>
@@ -22,7 +22,7 @@
22
22
 
23
23
  <p>Of course, if your cneeds are different, the <a href="https://pyga.me">pygame-ce</a> specifics to produce the specific visualization you need will be different.</p>
24
24
 
25
- <p>Such pygame-ce specifics are beyond our purpose/responsibility, since this is not a pygame-ce manual, but instead aims only to connect your pygame-ce knowledge with Nodezator tools. Still, when possible, we do want to offer additional guidance, even if outside the scope of our activities/responsibilities. Just keep going forward with your studies and reach out for help whenever needed in our <a href="https://indiepython.com/discord">discord server</a> or <a href="https://github.com/IndiePython/nodezator/discussions">Nodezator GitHub discussions</a>.</p>
25
+ <p>Such pygame-ce specifics are beyond our purpose/responsibility, since this is not a pygame-ce manual, but instead aims only to connect your pygame-ce knowledge with Nodezator tools. Still, when possible, we do want to offer additional guidance, even if outside the scope of our activities/responsibilities. Just keep going forward with your studies and reach out for help whenever needed in our <a href="https://indiesmiths.com/discord">discord server</a> or <a href="https://github.com/IndieSmiths/nodezator/discussions">Nodezator GitHub discussions</a>.</p>
26
26
 
27
27
  <p>Nonetheless, keep in mind that no amount of examples will ever be enough to demonstrate all that you can achieve with pygame-ce for your custom visualizations. There simply isn't a single right way to do everything. This is not a bad thing, it only means pygame-ce is that much versatile (or more precisely, it provides bindings for the versatile underlying <a href="https://www.libsdl.org/">SDL</a> library). It all depends on factors like your proficiency with pygame-ce and the type of visualization you want for the data with which you are dealing.</p>
28
28
 
@@ -10,7 +10,7 @@
10
10
 
11
11
  <p>Welcome to the nodezator manual. This guide is meant for Nodezator's users.</p>
12
12
 
13
- <p>You may also want to take a look at the <a href="https://github.com/IndiePython/nodezator/blob/main/README.md">README</a> file of Nodezator's repository, since it showcases a lot of Nodezator's features and capabilities. Or you may want to <a href="https://gallery.nodezator.com">download example nodes</a>, like the ones used in the <a href="https://www.youtube.com/watch?v=GlQJvuU7Z_8">video presenting Nodezator</a>.</p>
13
+ <p>You may also want to take a look at the <a href="https://github.com/IndieSmiths/nodezator/blob/main/README.md">README</a> file of Nodezator's repository, since it showcases a lot of Nodezator's features and capabilities. Or you may want to <a href="https://gallery.nodezator.com">download example nodes</a>, like the ones used in the <a href="https://www.youtube.com/watch?v=GlQJvuU7Z_8">video presenting Nodezator</a>.</p>
14
14
 
15
15
 
16
16
  <h2>Table of contents</h2>
@@ -14,9 +14,9 @@
14
14
 
15
15
  <p>For tutorials/examples/roadmap and more go to <a href="https://nodezator.com">nodezator.com</a>.</p>
16
16
 
17
- <p>This software is developed by Kennedy Richard (<a href="https://kennedyrichard.com">website</a>|<a href="https://bsky.app/profile/kennedyrichard.com">Bluesky</a>|<a href="https://x.com/KennedyRichard">Twitter/X</a>) as part of the <a href="https://indiepython.com">Indie Python</a> project.</p>
17
+ <p>This software is developed by Kennedy Richard (<a href="https://kennedyrichard.com">website</a>|<a href="https://bsky.app/profile/kennedyrichard.com">Bluesky</a>|<a href="https://x.com/KennedyRichard">Twitter/X</a>) as part of the Indie Smiths project (<a href="https://indiesmiths.com">website</a>|<a href="https://github.com/IndieSmiths">GitHub profile</a>).</p>
18
18
 
19
- <p>Please, become our patron on <a href="https://patreon.com/kennedyrichard">patreon</a> to support development of this and other useful software. All donation methods available, including methods that allow one-time donations are can be found here: <a href="https://indiepython.com/donate">https://indiepython.com/donate</a></p>
19
+ <p>Please, donate via <a href="https://patreon.com/kennedyrichard">Patreon</a>, <a href="https://github.com/sponsors/KennedyRichard">GitHub sponsors</a> or any of the <a href="https://indiesmiths.com/donate">other available donation methods</a> to support development of Nodezator and other free-of-charge public domain apps/games from the Indie Smiths project.</p>
20
20
 
21
21
  </body>
22
22
 
@@ -10,7 +10,7 @@
10
10
 
11
11
  <h1>What's new in Nodezator 1.3.14?</h1>
12
12
 
13
- <p><a href="https://github.com/IndiePython/nodezator/releases/tag/v1.3.14">[v1.3.14] Performance fix</a></p>
13
+ <p><a href="https://github.com/IndieSmiths/nodezator/releases/tag/v1.3.14">[v1.3.14] Performance fix</a></p>
14
14
 
15
15
  <p>It has an important performance fix provided by Mr. Richards <a href="https://github.com/nrichards">@nrichards</a> via pull request. In summary, specific pygame.font.Font objects defined after many calculations were not being stored back for later use in the dictionary used for font caching due to a missing dictionary item asignment. The font caching system can be found in the nodezator/fontsman/cache.py module.</p>
16
16