nodezator 1.5.2__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.
- {nodezator-1.5.2 → nodezator-1.5.4}/PKG-INFO +40 -41
- {nodezator-1.5.2 → nodezator-1.5.4}/README.md +28 -24
- nodezator-1.5.4/nodezator/__init__.py +4 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/__main__.py +2 -1
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/appinfo.py +4 -2
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/audioplayer.py +43 -6
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/config.py +5 -1
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/data/aww/manual.nodezator.pysite/ch-defining-complex-viewer-nodes.htsl +1 -1
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/data/aww/manual.nodezator.pysite/ch-distributing-nodes.htsl +1 -1
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/data/aww/manual.nodezator.pysite/ch-loading-nodes.htsl +3 -3
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/data/aww/manual.nodezator.pysite/ch-more-advanced-viewer-node-features-part2.htsl +1 -1
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/data/aww/manual.nodezator.pysite/index.htsl +1 -1
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/data/aww/nodezator.pysite/about.htsl +2 -2
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/data/aww/nodezator.pysite/whats-new/v1-3.htsl +1 -1
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/data/aww/nodezator.pysite/whats-new/v1-4.htsl +7 -7
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/data/aww/nodezator.pysite/whats-new/v1-5.htsl +31 -7
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/data/images/README.md +1 -1
- nodezator-1.5.4/nodezator/data/images/indie_smiths_logo.png +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/data/locale/en_us/translations_map.pyl +3 -6
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/data/locale/pt_br/translations_map.pyl +2 -5
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/editing/objpopups/operatornode.py +15 -13
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/fileman/op.py +17 -4
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/htsl/codeblock.py +133 -3
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/htsl/constants.py +2 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/htsl/main.py +4 -2
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/htsl/prep.py +53 -9
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/pygamesetup/constants.py +23 -2
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/pygamesetup/services/normal.py +23 -2
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/splashscreen/factoryfuncs.py +7 -7
- nodezator-1.5.4/nodezator/userprefsman/main.py +279 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator.egg-info/PKG-INFO +40 -41
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator.egg-info/SOURCES.txt +1 -2
- nodezator-1.5.4/pyproject.toml +60 -0
- nodezator-1.5.4/setup.cfg +4 -0
- nodezator-1.5.2/nodezator/__init__.py +0 -1
- nodezator-1.5.2/nodezator/data/images/indie_python_logo.png +0 -0
- nodezator-1.5.2/nodezator/userprefsman/main.py +0 -232
- nodezator-1.5.2/pyproject.toml +0 -3
- nodezator-1.5.2/setup.cfg +0 -53
- {nodezator-1.5.2 → nodezator-1.5.4}/MANIFEST.in +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/alphamask/__init__.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/alphamask/basicop.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/alphamask/main.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/alphamask/masksop.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/alphamask/utils.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/classes2d/__init__.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/classes2d/collections.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/classes2d/single.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/classes2d/surfaceswitcher.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/colorsman/__init__.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/colorsman/color2d.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/colorsman/colors.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/colorsman/editor/__init__.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/colorsman/editor/loopop.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/colorsman/editor/main.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/colorsman/editor/panel/__init__.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/colorsman/editor/panel/colorsop.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/colorsman/editor/panel/constants.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/colorsman/editor/panel/data.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/colorsman/editor/panel/main.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/colorsman/editor/widgetop.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/colorsman/editor/widgetsetup/__init__.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/colorsman/editor/widgetsetup/button.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/colorsman/editor/widgetsetup/constants.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/colorsman/editor/widgetsetup/entry.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/colorsman/editor/widgetsetup/label.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/colorsman/editor/widgetsetup/scale.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/colorsman/picker/__init__.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/colorsman/picker/constants.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/colorsman/picker/main.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/colorsman/picker/op.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/colorsman/viewer/__init__.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/colorsman/viewer/main.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/colorsman/viewer/modes/__init__.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/colorsman/viewer/modes/colorlist.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/colorsman/viewer/modes/patterns/__init__.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/colorsman/viewer/modes/patterns/main.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/colorsman/viewer/modes/patterns/particles.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/colorsman/viewer/modes/patterns/waves.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/data/app_icon.png +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/data/app_themes/emeralds_on_coal.pyl +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/data/aww/help.nodezator.pysite/general-controls.htsl +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/data/aww/help.nodezator.pysite/index.htsl +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/data/aww/help.nodezator.pysite/text-editor-default-behavior.htsl +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/data/aww/help.nodezator.pysite/text-editor-vim-like-behavior.htsl +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/data/aww/manual.nodezator.pysite/appendix-color-coded-annotations.htsl +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/data/aww/manual.nodezator.pysite/appendix-intfloat-words.htsl +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/data/aww/manual.nodezator.pysite/appendix-recipes.htsl +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/data/aww/manual.nodezator.pysite/appendix-widget-configurations.htsl +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/data/aww/manual.nodezator.pysite/appendix-widget-presets.htsl +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/data/aww/manual.nodezator.pysite/ch-basic-way-define-widgets.htsl +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/data/aww/manual.nodezator.pysite/ch-color-coding-inputs-outputs.htsl +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/data/aww/manual.nodezator.pysite/ch-conditional-execution.htsl +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/data/aww/manual.nodezator.pysite/ch-defining-viewer-nodes.htsl +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/data/aww/manual.nodezator.pysite/ch-defining-your-first-node.htsl +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/data/aww/manual.nodezator.pysite/ch-full-syntax-more-widgets.htsl +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/data/aww/manual.nodezator.pysite/ch-looping.htsl +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/data/aww/manual.nodezator.pysite/ch-more-advanced-viewer-node-features-part1.htsl +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/data/aww/manual.nodezator.pysite/ch-more-ways-define-nodes.htsl +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/data/aww/manual.nodezator.pysite/ch-nodes-variable-parameters-custom-outputs.htsl +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/data/aww/manual.nodezator.pysite/ch-other-objects.htsl +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/data/aww/manual.nodezator.pysite/ch-preview-widgets.htsl +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/data/aww/manual.nodezator.pysite/ch-viewer-nodes-with-custom-visualization-loops.htsl +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/data/aww/manual.nodezator.pysite/ch-widget-presets-more-widgets.htsl +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/data/aww/manual.nodezator.pysite/images/appendix-recipes_img00.png +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/data/aww/manual.nodezator.pysite/images/appendix-recipes_img01.png +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/data/aww/manual.nodezator.pysite/images/appendix-recipes_img02.png +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/data/aww/manual.nodezator.pysite/images/appendix-recipes_img03.png +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/data/aww/manual.nodezator.pysite/images/appendix-recipes_img04.png +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/data/aww/manual.nodezator.pysite/images/appendix-recipes_img05.png +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/data/aww/manual.nodezator.pysite/images/appendix-recipes_img06.png +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/data/aww/manual.nodezator.pysite/images/appendix-recipes_img07.png +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/data/aww/manual.nodezator.pysite/images/appendix-recipes_img08.png +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/data/aww/manual.nodezator.pysite/images/ch-basic-way-define-widgets_img00.png +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/data/aww/manual.nodezator.pysite/images/ch-basic-way-define-widgets_img01.png +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/data/aww/manual.nodezator.pysite/images/ch-basic-way-define-widgets_img02.png +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/data/aww/manual.nodezator.pysite/images/ch-basic-way-define-widgets_img03.png +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/data/aww/manual.nodezator.pysite/images/ch-basic-way-define-widgets_img04.png +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/data/aww/manual.nodezator.pysite/images/ch-basic-way-define-widgets_img05.png +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/data/aww/manual.nodezator.pysite/images/ch-basic-way-define-widgets_img06_and_07.png +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/data/aww/manual.nodezator.pysite/images/ch-basic-way-define-widgets_img08.png +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/data/aww/manual.nodezator.pysite/images/ch-color-coding_img00.png +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/data/aww/manual.nodezator.pysite/images/ch-color-coding_img01.png +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/data/aww/manual.nodezator.pysite/images/ch-color-coding_img02.png +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/data/aww/manual.nodezator.pysite/images/ch-color-coding_img03.png +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/data/aww/manual.nodezator.pysite/images/ch-color-coding_img04.png +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/data/aww/manual.nodezator.pysite/images/ch-color-coding_img05.png +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/data/aww/manual.nodezator.pysite/images/ch-conditional-execution_img00.png +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/data/aww/manual.nodezator.pysite/images/ch-conditional-execution_img01.png +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/data/aww/manual.nodezator.pysite/images/ch-conditional-execution_img02.png +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/data/aww/manual.nodezator.pysite/images/ch-conditional-execution_img03.png +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/data/aww/manual.nodezator.pysite/images/ch-conditional-execution_img04.png +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/data/aww/manual.nodezator.pysite/images/ch-conditional-execution_img05.png +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/data/aww/manual.nodezator.pysite/images/ch-conditional-execution_img06.png +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/data/aww/manual.nodezator.pysite/images/ch-defining-viewer-nodes_img00.png +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/data/aww/manual.nodezator.pysite/images/ch-defining-viewer-nodes_img01.png +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/data/aww/manual.nodezator.pysite/images/ch-defining-viewer-nodes_img02.png +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/data/aww/manual.nodezator.pysite/images/ch-defining-viewer-nodes_img03.png +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/data/aww/manual.nodezator.pysite/images/ch-defining-viewer-nodes_img04.png +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/data/aww/manual.nodezator.pysite/images/ch-defining-viewer-nodes_img05.png +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/data/aww/manual.nodezator.pysite/images/ch-defining-viewer-nodes_img06.png +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/data/aww/manual.nodezator.pysite/images/ch-defining-your-first_img00.png +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/data/aww/manual.nodezator.pysite/images/ch-defining-your-first_img01.png +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/data/aww/manual.nodezator.pysite/images/ch-defining-your-first_img02.png +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/data/aww/manual.nodezator.pysite/images/ch-defining-your-first_import_module_node.png +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/data/aww/manual.nodezator.pysite/images/ch-full-syntax_img00.png +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/data/aww/manual.nodezator.pysite/images/ch-full-syntax_img01.png +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/data/aww/manual.nodezator.pysite/images/ch-loading-nodes_dialog_problems_node_packs.png +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/data/aww/manual.nodezator.pysite/images/ch-loading-nodes_img00.png +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/data/aww/manual.nodezator.pysite/images/ch-loading-nodes_img01.png +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/data/aww/manual.nodezator.pysite/images/ch-loading-nodes_img02.png +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/data/aww/manual.nodezator.pysite/images/ch-loading-nodes_user_log_showing_missing.png +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/data/aww/manual.nodezator.pysite/images/ch-looping_img00.png +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/data/aww/manual.nodezator.pysite/images/ch-looping_img01.png +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/data/aww/manual.nodezator.pysite/images/ch-looping_img02.png +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/data/aww/manual.nodezator.pysite/images/ch-nodes-variable-parameters_img00.png +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/data/aww/manual.nodezator.pysite/images/ch-nodes-variable-parameters_img01.png +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/data/aww/manual.nodezator.pysite/images/ch-nodes-variable-parameters_img02.png +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/data/aww/manual.nodezator.pysite/images/ch-nodes-variable-parameters_img03.png +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/data/aww/manual.nodezator.pysite/images/ch-other-objects_img00.png +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/data/aww/manual.nodezator.pysite/images/ch-other-objects_img01.png +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/data/aww/manual.nodezator.pysite/images/ch-other-objects_img02.png +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/data/aww/manual.nodezator.pysite/images/ch-other-objects_img03.png +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/data/aww/manual.nodezator.pysite/images/ch-other-objects_img04.png +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/data/aww/manual.nodezator.pysite/images/ch-other-objects_img05.png +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/data/aww/manual.nodezator.pysite/images/ch-other-objects_img06.png +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/data/aww/manual.nodezator.pysite/images/ch-other-objects_img07.png +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/data/aww/manual.nodezator.pysite/images/ch-other-objects_img08.png +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/data/aww/manual.nodezator.pysite/images/ch-preview-widgets_img00.png +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/data/aww/manual.nodezator.pysite/images/ch-preview-widgets_img01_0.png +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/data/aww/manual.nodezator.pysite/images/ch-preview-widgets_img01_1.png +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/data/aww/manual.nodezator.pysite/images/ch-preview-widgets_img02.png +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/data/aww/manual.nodezator.pysite/images/ch-preview-widgets_img03_0.png +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/data/aww/manual.nodezator.pysite/images/ch-preview-widgets_img03_1.png +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/data/aww/manual.nodezator.pysite/images/ch-preview-widgets_img04_0.png +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/data/aww/manual.nodezator.pysite/images/ch-preview-widgets_img04_1.png +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/data/aww/manual.nodezator.pysite/images/ch-preview-widgets_img05_0.png +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/data/aww/manual.nodezator.pysite/images/ch-preview-widgets_img05_1.png +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/data/aww/manual.nodezator.pysite/images/ch-viewer-nodes-with-custom-visualization-loops_img00.png +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/data/aww/manual.nodezator.pysite/images/ch-widget-presets_img00.png +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/data/aww/manual.nodezator.pysite/images/ch-widget-presets_img01.png +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/data/aww/manual.nodezator.pysite/images/ch-widget-presets_img02.png +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/data/aww/manual.nodezator.pysite/images/ch-widget-presets_img03.png +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/data/aww/manual.nodezator.pysite/images/ch-widget-presets_img04.png +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/data/aww/manual.nodezator.pysite/images/ch-widget-presets_img05.png +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/data/aww/nodezator.pysite/license.htsl +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/data/aww/nodezator.pysite/whats-new/images/v1-4-x/codeblock_clipboard_button.png +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/data/aww/nodezator.pysite/whats-new/images/v1-4-x/doctest_format_comparison.png +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/data/aww/nodezator.pysite/whats-new/images/v1-4-x/graphs_different_appearances.png +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/data/aww/nodezator.pysite/whats-new/images/v1-4-x/local_browser_new_appearance.png +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/data/aww/nodezator.pysite/whats-new/images/v1-4-x/new_app_defined_nodes.png +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/data/aww/nodezator.pysite/whats-new/images/v1-4-x/new_viewer_node.png +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/data/aww/nodezator.pysite/whats-new/images/v1-4-x/nodes_from_new_categories.png +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/data/aww/nodezator.pysite/whats-new/images/v1-4-x/operator_nodes_new_appearance.png +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/data/aww/nodezator.pysite/whats-new/images/v1-4-x/same_node_different_modes.png +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/data/aww/nodezator.pysite/whats-new/images/v1-4-x/widget_visible_invisible.png +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/data/aww/nodezator.pysite/whats-new/images/v1-5-x/birds_eye_view.png +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/data/aww/nodezator.pysite/whats-new/images/v1-5-x/dialog_to_jump_to_node.png +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/data/aww/nodezator.pysite/whats-new/images/v1-5-x/gui_automation_submenu.png +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/data/aww/nodezator.pysite/whats-new/images/v1-5-x/not_found_drawing_comparison.png +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/data/aww/nodezator.pysite/whats-new/images/v1-5-x/socket_proximity_detection.png +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/data/aww/nodezator.pysite/whats-new/images/v1-5-x/system_testing_form.png +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/data/aww/nodezator.pysite/whats-new/images/v1-5-x/system_testing_report_initial_portion.png +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/data/aww/nodezator.pysite/whats-new/index.htsl +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/data/fonts/OFL_license_for_all_other_fonts.txt +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/data/fonts/cc0_license_for_nodezator_icons.txt +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/data/fonts/enc_sans_sexp_bold_mplus_1p_2000em_med.ttf +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/data/fonts/fira_mono_bold_mplus_1m_med.ttf +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/data/fonts/nodezator_icons.ttf +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/data/fonts/noto_sans_bold.ttf +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/data/fonts/noto_sans_italic.ttf +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/data/fonts/noto_sans_mono_medium.ttf +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/data/fonts/noto_sans_regular.ttf +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/data/glossary.rst +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/data/images/baseball.svg +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/data/images/baseball_glove.png +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/data/images/bluesky_logo.png +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/data/images/colors_editor_scale_images.png +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/data/images/discord_logo.png +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/data/images/github_mark.png +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/data/images/hand_closed.png +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/data/images/hand_open.png +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/data/images/kennedy_logo.png +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/data/images/mask_wave.png +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/data/images/nodezator_logo.png +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/data/images/patreon_logo.png +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/data/images/pygame_logo.png +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/data/images/python_filemanager_icon.png +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/data/images/python_menu_icon.png +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/data/images/python_splashscreen_icon.png +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/data/images/splash_nodezator_robot.png +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/data/images/splash_nodezator_robot_arm_a.png +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/data/images/splash_nodezator_robot_arm_b.png +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/data/images/unlicense_logo.png +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/data/locale/en_us/dialogs_map.pyl +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/data/locale/en_us/status_messages_map.pyl +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/data/locale/pt_br/dialogs_map.pyl +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/data/locale/pt_br/status_messages_map.pyl +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/data/syntax_themes/comment/fresh_eucalyptus_dark.pyl +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/data/syntax_themes/comment/pale_green.pyl +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/data/syntax_themes/python/ice_with_candy.pyl +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/data/syntax_themes/python/sprinkled_dark.pyl +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/data/syntax_themes/user_log/message_temperature.pyl +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/data/syntax_themes/user_log/message_temperature_dark.pyl +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/data/system_testing/shared/file_with_objects.zip +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/data/system_testing/test_cases/stc0000.zip +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/data/system_testing/test_cases/stc0001.zip +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/data/system_testing/test_cases/stc0002.zip +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/data/system_testing/test_cases/stc0003.zip +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/data/system_testing/test_cases/stc0004.zip +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/data/system_testing/test_cases/stc0005.zip +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/data/system_testing/test_cases/stc0006.zip +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/data/system_testing/test_cases/stc0007.zip +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/data/system_testing/test_cases/stc0008.zip +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/data/system_testing/test_cases/stc0009.zip +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/data/system_testing/test_cases/stc0010.zip +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/data/system_testing/test_cases/stc0011.zip +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/data/system_testing/test_id_to_title.pyl +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/dialog.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/editing/__init__.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/editing/birdseyeview.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/editing/categorycolors.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/editing/data.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/editing/gridlogic.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/editing/imageexport/__init__.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/editing/imageexport/form.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/editing/imageexport/main.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/editing/jumptonode.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/editing/main.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/editing/nodepacksforms/__init__.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/editing/nodepacksforms/renaming.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/editing/nodepacksforms/selection.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/editing/objinsert.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/editing/objpopups/__init__.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/editing/objpopups/callablenode.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/editing/objpopups/constants.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/editing/objpopups/proxynode.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/editing/objpopups/textblock.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/editing/playback/__init__.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/editing/playback/demonstrate/__init__.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/editing/playback/demonstrate/constants.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/editing/playback/demonstrate/filtering.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/editing/playback/play.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/editing/playback/record.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/editing/playback/systemtesting.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/editing/pythonexporting.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/editing/reposition.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/editing/selection.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/editing/socketpopups/__init__.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/editing/socketpopups/input.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/editing/socketpopups/output.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/editing/socketpopups/proxy.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/editing/widgetpicker/__init__.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/editing/widgetpicker/main.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/editing/widgetpicker/subforms.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/editing/widgetpopups/__init__.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/editing/widgetpopups/creation.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/fileman/__init__.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/fileman/bookmarkpanel/__init__.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/fileman/bookmarkpanel/main.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/fileman/bookmarkpanel/surfs.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/fileman/constants.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/fileman/dirpanel/__init__.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/fileman/dirpanel/extraop.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/fileman/dirpanel/loadop.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/fileman/dirpanel/main.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/fileman/dirpanel/mouseop.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/fileman/dirpanel/newpathform.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/fileman/dirpanel/surfs.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/fileman/main.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/fileman/pathobj.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/fileman/surfs.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/fontsman/__init__.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/fontsman/cache.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/fontsman/constants.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/fontsman/exception.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/fontsman/preview/__init__.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/fontsman/preview/cache.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/fontsman/preview/render.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/fontsman/test_cache.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/fontsman/viewer/__init__.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/fontsman/viewer/main.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/fontsman/viewer/render.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/graphman/__init__.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/graphman/builtinnode/__init__.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/graphman/builtinnode/constants.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/graphman/builtinnode/export.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/graphman/builtinnode/main.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/graphman/callablenode/__init__.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/graphman/callablenode/constants.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/graphman/callablenode/execution.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/graphman/callablenode/export.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/graphman/callablenode/main.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/graphman/callablenode/outputviz.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/graphman/callablenode/preproc.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/graphman/callablenode/segment.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/graphman/callablenode/subparam/__init__.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/graphman/callablenode/subparam/main.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/graphman/callablenode/subparam/segment.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/graphman/callablenode/subparam/unpacking.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/graphman/callablenode/subparam/widget.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/graphman/callablenode/surfs.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/graphman/callablenode/utils.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/graphman/callablenode/vizop/__init__.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/graphman/callablenode/vizop/callablereposition.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/graphman/callablenode/vizop/collapsedreposition.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/graphman/callablenode/vizop/collapsing.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/graphman/callablenode/vizop/expandedreposition.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/graphman/callablenode/vizop/main.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/graphman/callablenode/vizprep/__init__.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/graphman/callablenode/vizprep/bodysetup/__init__.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/graphman/callablenode/vizprep/bodysetup/callablecreation.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/graphman/callablenode/vizprep/bodysetup/collapsedcreation.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/graphman/callablenode/vizprep/bodysetup/expandedcreation.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/graphman/callablenode/vizprep/bodysetup/main.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/graphman/callablenode/vizprep/calmode/__init__.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/graphman/callablenode/vizprep/main.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/graphman/callablenode/vizprep/sigmode/__init__.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/graphman/callablenode/vizprep/sigmode/param.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/graphman/callablenode/vizprep/sigmode/varparam.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/graphman/capsulenode/__init__.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/graphman/capsulenode/constants.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/graphman/capsulenode/export.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/graphman/capsulenode/generaldefs.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/graphman/capsulenode/main.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/graphman/capsulenode/pygamedefs.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/graphman/editlogic.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/graphman/exception.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/graphman/execution.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/graphman/genviewernode/__init__.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/graphman/genviewernode/constants.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/graphman/genviewernode/export.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/graphman/genviewernode/main.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/graphman/genviewernode/nodedefs/__init__.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/graphman/genviewernode/nodedefs/viewasmonotext.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/graphman/genviewernode/nodedefs/viewastext.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/graphman/genviewernode/nodedefs/viewpythonsource.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/graphman/genviewernode/nodedefs/viewsurface.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/graphman/main.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/graphman/nodepacksissues.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/graphman/operatornode/__init__.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/graphman/operatornode/constants.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/graphman/operatornode/execution.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/graphman/operatornode/export.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/graphman/operatornode/main.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/graphman/operatornode/surfs.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/graphman/operatornode/vizop.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/graphman/operatornode/vizprep.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/graphman/presets.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/graphman/proxynode/__init__.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/graphman/proxynode/constants.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/graphman/proxynode/export.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/graphman/proxynode/main.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/graphman/proxynode/segment.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/graphman/proxynode/surfs.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/graphman/proxynode/titleupdate.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/graphman/proxynode/utils.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/graphman/proxynode/vizop/__init__.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/graphman/proxynode/vizop/main.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/graphman/proxynode/vizop/reposition.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/graphman/proxynode/vizprep.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/graphman/proxynode/widget.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/graphman/pythonrepr.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/graphman/scriptloading/__init__.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/graphman/scriptloading/node_pack_no_callable.zip +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/graphman/scriptloading/node_pack_no_signature.zip +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/graphman/scriptloading/node_pack_nodes.zip +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/graphman/scriptloading/node_pack_not_callable_object.zip +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/graphman/scriptloading/node_pack_not_inspectable.zip +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/graphman/scriptloading/node_pack_with_error.zip +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/graphman/scriptloading/tests.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/graphman/socket/__init__.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/graphman/socket/base.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/graphman/socket/input.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/graphman/socket/output.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/graphman/socket/placeholder.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/graphman/socket/proxy.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/graphman/socket/surfs.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/graphman/socketparenthood/__init__.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/graphman/socketparenthood/action.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/graphman/socketparenthood/draw/__init__.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/graphman/socketparenthood/draw/connectionassist.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/graphman/socketparenthood/export.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/graphman/socketparenthood/main.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/graphman/socketparenthood/support.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/graphman/socketparenthood/utils.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/graphman/stlibnode/__init__.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/graphman/stlibnode/constants.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/graphman/stlibnode/export.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/graphman/stlibnode/main.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/graphman/textblock/__init__.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/graphman/textblock/check.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/graphman/textblock/constants.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/graphman/textblock/export.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/graphman/textblock/main.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/graphman/textblock/surf.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/graphman/thirdlibnode/__init__.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/graphman/thirdlibnode/constants.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/graphman/thirdlibnode/export.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/graphman/thirdlibnode/main.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/graphman/thirdlibnode/signaturedefs.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/graphman/utils.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/graphman/validation/__init__.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/graphman/validation/doctest.test.md +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/graphman/validation/main.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/graphman/validation/test_data.pyl +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/graphman/validation/testmarkdown.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/graphman/widget/__init__.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/graphman/widget/export.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/graphman/widget/popupdefinition.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/graphman/widget/utils.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/hideswitch.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/htsl/__init__.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/htsl/creation.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/htsl/image.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/iconfactory.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/imagesman/__init__.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/imagesman/cache.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/imagesman/previewer/__init__.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/imagesman/previewer/constants.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/imagesman/previewer/main.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/imagesman/previewer/op.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/imagesman/render.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/knownpacks.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/logman/__init__.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/logman/constants.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/logman/fixeddialog.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/logman/main.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/logman/utils.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/loopman/__init__.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/loopman/exception.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/loopman/main.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/mainloop.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/memoryman.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/menu/__init__.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/menu/behaviour.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/menu/command.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/menu/common.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/menu/hover.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/menu/iconfactory.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/menu/main.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/menu/scroll.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/menu/submenu/__init__.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/menu/submenu/main.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/menu/submenu/scroll.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/menu/submenu/utils.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/menu/surffactory.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/our3rdlibs/__init__.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/our3rdlibs/behaviour.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/our3rdlibs/button.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/our3rdlibs/debug.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/our3rdlibs/grid/__init__.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/our3rdlibs/grid/main.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/our3rdlibs/grid/oop.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/our3rdlibs/iterablewidget/__init__.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/our3rdlibs/iterablewidget/list.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/our3rdlibs/iterablewidget/op.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/our3rdlibs/iterablewidget/set.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/our3rdlibs/iterablewidget/surfs.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/our3rdlibs/keyconst.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/our3rdlibs/listbox.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/our3rdlibs/scale.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/our3rdlibs/searchbox.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/our3rdlibs/sortingeditor/__init__.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/our3rdlibs/sortingeditor/main.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/our3rdlibs/sortingeditor/modes.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/our3rdlibs/userlogger.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/ourstdlibs/__init__.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/ourstdlibs/behaviour.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/ourstdlibs/collections/__init__.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/ourstdlibs/collections/fldict/__init__.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/ourstdlibs/collections/fldict/doctest.test.md +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/ourstdlibs/collections/fldict/main.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/ourstdlibs/collections/fldict/testmarkdown.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/ourstdlibs/collections/general.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/ourstdlibs/collections/nestedfromdict.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/ourstdlibs/color/__init__.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/ourstdlibs/color/constants.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/ourstdlibs/color/conversion.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/ourstdlibs/color/creation.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/ourstdlibs/color/custom.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/ourstdlibs/color/largemaps.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/ourstdlibs/color/property.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/ourstdlibs/color/utils.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/ourstdlibs/datetimeutils.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/ourstdlibs/debug.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/ourstdlibs/dictutils.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/ourstdlibs/exceptionutils.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/ourstdlibs/importutils.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/ourstdlibs/iterutils.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/ourstdlibs/mathutils.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/ourstdlibs/meta.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/ourstdlibs/path.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/ourstdlibs/profileutils.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/ourstdlibs/pyl.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/ourstdlibs/stringutils.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/ourstdlibs/timeutils.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/ourstdlibs/treeutils.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/pointsman2d/__init__.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/pointsman2d/create.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/pointsman2d/shape.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/pointsman2d/transform.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/pygamesetup/__init__.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/pygamesetup/services/__init__.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/pygamesetup/services/play.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/pygamesetup/services/record.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/recentfile.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/rectsman/__init__.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/rectsman/cluster.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/rectsman/constants.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/rectsman/doctests/README.md +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/rectsman/doctests/__init__.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/rectsman/doctests/fixtures.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/rectsman/doctests/individual_positioning.test.md +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/rectsman/doctests/introduction.test.md +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/rectsman/doctests/operations_part01.test.md +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/rectsman/doctests/operations_part02.test.md +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/rectsman/doctests/operations_part03.test.md +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/rectsman/doctests/other_topics_part01.test.md +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/rectsman/doctests/other_topics_part02.test.md +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/rectsman/doctests/other_topics_part03.test.md +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/rectsman/doctests/special_methods_part01.test.md +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/rectsman/doctests/special_methods_part02.test.md +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/rectsman/doctests/testmarkdown.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/rectsman/main.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/rectsman/singlepos.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/rectsman/sizepos.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/rectsman/spatial.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/rectsman/special.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/rectsman/utils.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/splashscreen/__init__.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/splashscreen/animsetup.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/splashscreen/constants.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/splashscreen/main.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/splashscreen/op.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/surfdef.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/surfsman/__init__.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/surfsman/cache.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/surfsman/draw.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/surfsman/icon.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/surfsman/mathutils.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/surfsman/render.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/surfsman/svgexport.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/surfsman/viewer/__init__.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/surfsman/viewer/constants.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/surfsman/viewer/main.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/surfsman/viewer/op.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/svgutils.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/syntaxman/__init__.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/syntaxman/exception.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/syntaxman/syntaxes/__init__.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/syntaxman/syntaxes/comment.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/syntaxman/syntaxes/python/__init__.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/syntaxman/syntaxes/python/main.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/syntaxman/syntaxes/python/namemap.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/syntaxman/syntaxes/python/utils.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/syntaxman/syntaxes/userlog.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/syntaxman/utils.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/systemtesting/__init__.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/systemtesting/constants.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/systemtesting/playsupport.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/systemtesting/reportviewer/__init__.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/systemtesting/reportviewer/constants.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/systemtesting/reportviewer/factoryfuncs.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/systemtesting/reportviewer/op.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/systemtesting/testcases/__init__.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/systemtesting/testcases/stc0000.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/systemtesting/testcases/stc0001.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/systemtesting/testcases/stc0002.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/systemtesting/testcases/stc0003.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/systemtesting/testcases/stc0004.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/systemtesting/testcases/stc0005.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/systemtesting/testcases/stc0006.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/systemtesting/testcases/stc0007.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/systemtesting/testcases/stc0008.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/systemtesting/testcases/stc0009.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/systemtesting/testcases/stc0010.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/systemtesting/testcases/stc0011.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/textman/__init__.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/textman/cache.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/textman/editor/__init__.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/textman/editor/constants.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/textman/editor/cursor/__init__.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/textman/editor/cursor/main.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/textman/editor/cursor/modes/__init__.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/textman/editor/cursor/modes/insert.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/textman/editor/cursor/modes/normal.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/textman/editor/cursor/navigation.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/textman/editor/cursor/op.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/textman/editor/cursor/syntaxhigh.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/textman/editor/line.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/textman/editor/main.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/textman/entryedition/__init__.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/textman/entryedition/cursor.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/textman/entryedition/line.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/textman/label/__init__.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/textman/label/autolabel.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/textman/label/main.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/textman/render.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/textman/text.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/textman/viewer/__init__.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/textman/viewer/constants.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/textman/viewer/main.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/textman/viewer/op.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/textman/viewer/prep.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/translation.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/userprefsman/__init__.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/userprefsman/constants.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/userprefsman/generalform.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/userprefsman/socketdetectionform.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/userprefsman/utils.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/userprefsman/validation.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/videopreview/__init__.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/videopreview/cache.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/videopreview/constants.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/videopreview/previewer.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/videopreview/render.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/widget/__init__.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/widget/checkbutton.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/widget/colorbutton.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/widget/defaultholder.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/widget/intfloatentry/__init__.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/widget/intfloatentry/main.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/widget/intfloatentry/modes.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/widget/intfloatentry/numeval.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/widget/intfloatentry/op.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/widget/literaldisplay.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/widget/literalentry.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/widget/optionmenu/__init__.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/widget/optionmenu/creation.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/widget/optionmenu/main.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/widget/optionmenu/op.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/widget/optiontray/__init__.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/widget/optiontray/creation.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/widget/optiontray/main.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/widget/optiontray/op.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/widget/pathpreview/__init__.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/widget/pathpreview/audio.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/widget/pathpreview/base.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/widget/pathpreview/constants.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/widget/pathpreview/font.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/widget/pathpreview/image.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/widget/pathpreview/path.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/widget/pathpreview/text.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/widget/pathpreview/video.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/widget/sortingbutton.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/widget/stringentry.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/widget/textdisplay.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/winman/__init__.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/winman/fileop.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/winman/label.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/winman/main.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/winman/menu.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/winman/states/__init__.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/winman/states/birdseyeview.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/winman/states/boxselection.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/winman/states/loadedfile.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/winman/states/movingobject.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/winman/states/nofile.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/winman/states/segmentdef.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/winman/states/segmentsev.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator/winman/switch.py +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator.egg-info/dependency_links.txt +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator.egg-info/entry_points.txt +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator.egg-info/requires.txt +0 -0
- {nodezator-1.5.2 → nodezator-1.5.4}/nodezator.egg-info/top_level.txt +0 -0
|
@@ -1,35 +1,30 @@
|
|
|
1
|
-
Metadata-Version: 2.
|
|
1
|
+
Metadata-Version: 2.2
|
|
2
2
|
Name: nodezator
|
|
3
|
-
Version: 1.5.
|
|
3
|
+
Version: 1.5.4
|
|
4
4
|
Summary: A generalist Python node editor
|
|
5
|
-
|
|
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:
|
|
10
|
-
Project-URL:
|
|
11
|
-
Project-URL:
|
|
12
|
-
Project-URL:
|
|
13
|
-
Project-URL:
|
|
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
|

|
|
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
|
|
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
|
[](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
|
|
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://
|
|
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
|
|
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
|
|
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
|
-
|
|
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 [
|
|
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 [
|
|
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
|
|
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 [
|
|
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, [
|
|
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 [
|
|
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
|
|
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
|
|
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 [
|
|
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
|
|
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
|
|
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://
|
|
443
|
+
[discord server]: https://indiesmiths.com/discord
|
|
445
444
|
|
|
446
445
|
[patreon]: https://patreon.com/KennedyRichard
|
|
447
|
-
[
|
|
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://
|
|
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/
|
|
457
|
+
[nodes gallery repository]: https://github.com/IndieSmiths/gallery.nodezator.com
|
|
459
458
|
|
|
460
|
-
[
|
|
461
|
-
[
|
|
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
|

|
|
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
|
|
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
|
[](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
|
|
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://
|
|
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
|
|
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
|
|
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
|
-
|
|
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 [
|
|
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 [
|
|
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
|
|
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 [
|
|
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, [
|
|
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 [
|
|
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
|
|
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
|
|
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 [
|
|
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
|
|
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
|
|
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://
|
|
411
|
+
[discord server]: https://indiesmiths.com/discord
|
|
408
412
|
|
|
409
413
|
[patreon]: https://patreon.com/KennedyRichard
|
|
410
|
-
[
|
|
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://
|
|
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/
|
|
425
|
+
[nodes gallery repository]: https://github.com/IndieSmiths/gallery.nodezator.com
|
|
422
426
|
|
|
423
|
-
[
|
|
424
|
-
[
|
|
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
|
|
@@ -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/
|
|
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,
|
|
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 = '
|
|
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
|
|
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
|
|
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://
|
|
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/
|
|
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>
|
{nodezator-1.5.2 → nodezator-1.5.4}/nodezator/data/aww/manual.nodezator.pysite/ch-loading-nodes.htsl
RENAMED
|
@@ -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://
|
|
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/
|
|
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://
|
|
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://
|
|
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/
|
|
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://
|
|
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,
|
|
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/
|
|
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
|
|