nodezator 1.5.3__tar.gz → 1.5.5__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.3 → nodezator-1.5.5}/PKG-INFO +45 -42
- {nodezator-1.5.3 → nodezator-1.5.5}/README.md +33 -25
- nodezator-1.5.5/nodezator/__init__.py +4 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/__main__.py +2 -1
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/appinfo.py +4 -2
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/audioplayer.py +43 -6
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/config.py +5 -1
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/data/aww/manual.nodezator.pysite/ch-defining-complex-viewer-nodes.htsl +1 -1
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/data/aww/manual.nodezator.pysite/ch-distributing-nodes.htsl +1 -1
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/data/aww/manual.nodezator.pysite/ch-loading-nodes.htsl +3 -3
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/data/aww/manual.nodezator.pysite/ch-more-advanced-viewer-node-features-part2.htsl +1 -1
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/data/aww/manual.nodezator.pysite/index.htsl +1 -1
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/data/aww/nodezator.pysite/about.htsl +2 -2
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/data/aww/nodezator.pysite/whats-new/v1-3.htsl +1 -1
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/data/aww/nodezator.pysite/whats-new/v1-4.htsl +7 -7
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/data/aww/nodezator.pysite/whats-new/v1-5.htsl +35 -8
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/data/images/README.md +1 -1
- nodezator-1.5.5/nodezator/data/images/indie_smiths_logo.png +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/data/locale/en_us/translations_map.pyl +3 -6
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/data/locale/pt_br/translations_map.pyl +2 -5
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/editing/objpopups/operatornode.py +15 -13
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/pygamesetup/constants.py +23 -2
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/pygamesetup/services/normal.py +23 -2
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/splashscreen/factoryfuncs.py +7 -7
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/surfsman/icon.py +57 -15
- nodezator-1.5.5/nodezator/userprefsman/main.py +279 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator.egg-info/PKG-INFO +45 -42
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator.egg-info/SOURCES.txt +1 -2
- nodezator-1.5.5/pyproject.toml +60 -0
- nodezator-1.5.5/setup.cfg +4 -0
- nodezator-1.5.3/nodezator/__init__.py +0 -1
- nodezator-1.5.3/nodezator/data/images/indie_python_logo.png +0 -0
- nodezator-1.5.3/nodezator/userprefsman/main.py +0 -232
- nodezator-1.5.3/pyproject.toml +0 -3
- nodezator-1.5.3/setup.cfg +0 -53
- {nodezator-1.5.3 → nodezator-1.5.5}/MANIFEST.in +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/alphamask/__init__.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/alphamask/basicop.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/alphamask/main.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/alphamask/masksop.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/alphamask/utils.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/classes2d/__init__.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/classes2d/collections.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/classes2d/single.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/classes2d/surfaceswitcher.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/colorsman/__init__.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/colorsman/color2d.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/colorsman/colors.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/colorsman/editor/__init__.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/colorsman/editor/loopop.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/colorsman/editor/main.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/colorsman/editor/panel/__init__.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/colorsman/editor/panel/colorsop.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/colorsman/editor/panel/constants.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/colorsman/editor/panel/data.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/colorsman/editor/panel/main.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/colorsman/editor/widgetop.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/colorsman/editor/widgetsetup/__init__.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/colorsman/editor/widgetsetup/button.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/colorsman/editor/widgetsetup/constants.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/colorsman/editor/widgetsetup/entry.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/colorsman/editor/widgetsetup/label.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/colorsman/editor/widgetsetup/scale.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/colorsman/picker/__init__.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/colorsman/picker/constants.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/colorsman/picker/main.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/colorsman/picker/op.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/colorsman/viewer/__init__.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/colorsman/viewer/main.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/colorsman/viewer/modes/__init__.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/colorsman/viewer/modes/colorlist.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/colorsman/viewer/modes/patterns/__init__.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/colorsman/viewer/modes/patterns/main.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/colorsman/viewer/modes/patterns/particles.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/colorsman/viewer/modes/patterns/waves.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/data/app_icon.png +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/data/app_themes/emeralds_on_coal.pyl +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/data/aww/help.nodezator.pysite/general-controls.htsl +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/data/aww/help.nodezator.pysite/index.htsl +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/data/aww/help.nodezator.pysite/text-editor-default-behavior.htsl +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/data/aww/help.nodezator.pysite/text-editor-vim-like-behavior.htsl +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/data/aww/manual.nodezator.pysite/appendix-color-coded-annotations.htsl +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/data/aww/manual.nodezator.pysite/appendix-intfloat-words.htsl +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/data/aww/manual.nodezator.pysite/appendix-recipes.htsl +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/data/aww/manual.nodezator.pysite/appendix-widget-configurations.htsl +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/data/aww/manual.nodezator.pysite/appendix-widget-presets.htsl +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/data/aww/manual.nodezator.pysite/ch-basic-way-define-widgets.htsl +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/data/aww/manual.nodezator.pysite/ch-color-coding-inputs-outputs.htsl +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/data/aww/manual.nodezator.pysite/ch-conditional-execution.htsl +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/data/aww/manual.nodezator.pysite/ch-defining-viewer-nodes.htsl +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/data/aww/manual.nodezator.pysite/ch-defining-your-first-node.htsl +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/data/aww/manual.nodezator.pysite/ch-full-syntax-more-widgets.htsl +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/data/aww/manual.nodezator.pysite/ch-looping.htsl +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/data/aww/manual.nodezator.pysite/ch-more-advanced-viewer-node-features-part1.htsl +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/data/aww/manual.nodezator.pysite/ch-more-ways-define-nodes.htsl +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/data/aww/manual.nodezator.pysite/ch-nodes-variable-parameters-custom-outputs.htsl +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/data/aww/manual.nodezator.pysite/ch-other-objects.htsl +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/data/aww/manual.nodezator.pysite/ch-preview-widgets.htsl +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/data/aww/manual.nodezator.pysite/ch-viewer-nodes-with-custom-visualization-loops.htsl +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/data/aww/manual.nodezator.pysite/ch-widget-presets-more-widgets.htsl +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/data/aww/manual.nodezator.pysite/images/appendix-recipes_img00.png +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/data/aww/manual.nodezator.pysite/images/appendix-recipes_img01.png +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/data/aww/manual.nodezator.pysite/images/appendix-recipes_img02.png +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/data/aww/manual.nodezator.pysite/images/appendix-recipes_img03.png +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/data/aww/manual.nodezator.pysite/images/appendix-recipes_img04.png +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/data/aww/manual.nodezator.pysite/images/appendix-recipes_img05.png +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/data/aww/manual.nodezator.pysite/images/appendix-recipes_img06.png +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/data/aww/manual.nodezator.pysite/images/appendix-recipes_img07.png +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/data/aww/manual.nodezator.pysite/images/appendix-recipes_img08.png +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/data/aww/manual.nodezator.pysite/images/ch-basic-way-define-widgets_img00.png +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/data/aww/manual.nodezator.pysite/images/ch-basic-way-define-widgets_img01.png +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/data/aww/manual.nodezator.pysite/images/ch-basic-way-define-widgets_img02.png +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/data/aww/manual.nodezator.pysite/images/ch-basic-way-define-widgets_img03.png +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/data/aww/manual.nodezator.pysite/images/ch-basic-way-define-widgets_img04.png +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/data/aww/manual.nodezator.pysite/images/ch-basic-way-define-widgets_img05.png +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/data/aww/manual.nodezator.pysite/images/ch-basic-way-define-widgets_img06_and_07.png +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/data/aww/manual.nodezator.pysite/images/ch-basic-way-define-widgets_img08.png +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/data/aww/manual.nodezator.pysite/images/ch-color-coding_img00.png +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/data/aww/manual.nodezator.pysite/images/ch-color-coding_img01.png +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/data/aww/manual.nodezator.pysite/images/ch-color-coding_img02.png +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/data/aww/manual.nodezator.pysite/images/ch-color-coding_img03.png +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/data/aww/manual.nodezator.pysite/images/ch-color-coding_img04.png +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/data/aww/manual.nodezator.pysite/images/ch-color-coding_img05.png +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/data/aww/manual.nodezator.pysite/images/ch-conditional-execution_img00.png +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/data/aww/manual.nodezator.pysite/images/ch-conditional-execution_img01.png +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/data/aww/manual.nodezator.pysite/images/ch-conditional-execution_img02.png +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/data/aww/manual.nodezator.pysite/images/ch-conditional-execution_img03.png +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/data/aww/manual.nodezator.pysite/images/ch-conditional-execution_img04.png +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/data/aww/manual.nodezator.pysite/images/ch-conditional-execution_img05.png +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/data/aww/manual.nodezator.pysite/images/ch-conditional-execution_img06.png +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/data/aww/manual.nodezator.pysite/images/ch-defining-viewer-nodes_img00.png +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/data/aww/manual.nodezator.pysite/images/ch-defining-viewer-nodes_img01.png +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/data/aww/manual.nodezator.pysite/images/ch-defining-viewer-nodes_img02.png +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/data/aww/manual.nodezator.pysite/images/ch-defining-viewer-nodes_img03.png +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/data/aww/manual.nodezator.pysite/images/ch-defining-viewer-nodes_img04.png +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/data/aww/manual.nodezator.pysite/images/ch-defining-viewer-nodes_img05.png +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/data/aww/manual.nodezator.pysite/images/ch-defining-viewer-nodes_img06.png +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/data/aww/manual.nodezator.pysite/images/ch-defining-your-first_img00.png +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/data/aww/manual.nodezator.pysite/images/ch-defining-your-first_img01.png +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/data/aww/manual.nodezator.pysite/images/ch-defining-your-first_img02.png +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/data/aww/manual.nodezator.pysite/images/ch-defining-your-first_import_module_node.png +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/data/aww/manual.nodezator.pysite/images/ch-full-syntax_img00.png +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/data/aww/manual.nodezator.pysite/images/ch-full-syntax_img01.png +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/data/aww/manual.nodezator.pysite/images/ch-loading-nodes_dialog_problems_node_packs.png +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/data/aww/manual.nodezator.pysite/images/ch-loading-nodes_img00.png +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/data/aww/manual.nodezator.pysite/images/ch-loading-nodes_img01.png +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/data/aww/manual.nodezator.pysite/images/ch-loading-nodes_img02.png +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/data/aww/manual.nodezator.pysite/images/ch-loading-nodes_user_log_showing_missing.png +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/data/aww/manual.nodezator.pysite/images/ch-looping_img00.png +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/data/aww/manual.nodezator.pysite/images/ch-looping_img01.png +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/data/aww/manual.nodezator.pysite/images/ch-looping_img02.png +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/data/aww/manual.nodezator.pysite/images/ch-nodes-variable-parameters_img00.png +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/data/aww/manual.nodezator.pysite/images/ch-nodes-variable-parameters_img01.png +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/data/aww/manual.nodezator.pysite/images/ch-nodes-variable-parameters_img02.png +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/data/aww/manual.nodezator.pysite/images/ch-nodes-variable-parameters_img03.png +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/data/aww/manual.nodezator.pysite/images/ch-other-objects_img00.png +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/data/aww/manual.nodezator.pysite/images/ch-other-objects_img01.png +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/data/aww/manual.nodezator.pysite/images/ch-other-objects_img02.png +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/data/aww/manual.nodezator.pysite/images/ch-other-objects_img03.png +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/data/aww/manual.nodezator.pysite/images/ch-other-objects_img04.png +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/data/aww/manual.nodezator.pysite/images/ch-other-objects_img05.png +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/data/aww/manual.nodezator.pysite/images/ch-other-objects_img06.png +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/data/aww/manual.nodezator.pysite/images/ch-other-objects_img07.png +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/data/aww/manual.nodezator.pysite/images/ch-other-objects_img08.png +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/data/aww/manual.nodezator.pysite/images/ch-preview-widgets_img00.png +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/data/aww/manual.nodezator.pysite/images/ch-preview-widgets_img01_0.png +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/data/aww/manual.nodezator.pysite/images/ch-preview-widgets_img01_1.png +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/data/aww/manual.nodezator.pysite/images/ch-preview-widgets_img02.png +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/data/aww/manual.nodezator.pysite/images/ch-preview-widgets_img03_0.png +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/data/aww/manual.nodezator.pysite/images/ch-preview-widgets_img03_1.png +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/data/aww/manual.nodezator.pysite/images/ch-preview-widgets_img04_0.png +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/data/aww/manual.nodezator.pysite/images/ch-preview-widgets_img04_1.png +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/data/aww/manual.nodezator.pysite/images/ch-preview-widgets_img05_0.png +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/data/aww/manual.nodezator.pysite/images/ch-preview-widgets_img05_1.png +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/data/aww/manual.nodezator.pysite/images/ch-viewer-nodes-with-custom-visualization-loops_img00.png +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/data/aww/manual.nodezator.pysite/images/ch-widget-presets_img00.png +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/data/aww/manual.nodezator.pysite/images/ch-widget-presets_img01.png +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/data/aww/manual.nodezator.pysite/images/ch-widget-presets_img02.png +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/data/aww/manual.nodezator.pysite/images/ch-widget-presets_img03.png +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/data/aww/manual.nodezator.pysite/images/ch-widget-presets_img04.png +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/data/aww/manual.nodezator.pysite/images/ch-widget-presets_img05.png +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/data/aww/nodezator.pysite/license.htsl +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/data/aww/nodezator.pysite/whats-new/images/v1-4-x/codeblock_clipboard_button.png +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/data/aww/nodezator.pysite/whats-new/images/v1-4-x/doctest_format_comparison.png +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/data/aww/nodezator.pysite/whats-new/images/v1-4-x/graphs_different_appearances.png +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/data/aww/nodezator.pysite/whats-new/images/v1-4-x/local_browser_new_appearance.png +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/data/aww/nodezator.pysite/whats-new/images/v1-4-x/new_app_defined_nodes.png +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/data/aww/nodezator.pysite/whats-new/images/v1-4-x/new_viewer_node.png +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/data/aww/nodezator.pysite/whats-new/images/v1-4-x/nodes_from_new_categories.png +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/data/aww/nodezator.pysite/whats-new/images/v1-4-x/operator_nodes_new_appearance.png +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/data/aww/nodezator.pysite/whats-new/images/v1-4-x/same_node_different_modes.png +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/data/aww/nodezator.pysite/whats-new/images/v1-4-x/widget_visible_invisible.png +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/data/aww/nodezator.pysite/whats-new/images/v1-5-x/birds_eye_view.png +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/data/aww/nodezator.pysite/whats-new/images/v1-5-x/dialog_to_jump_to_node.png +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/data/aww/nodezator.pysite/whats-new/images/v1-5-x/gui_automation_submenu.png +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/data/aww/nodezator.pysite/whats-new/images/v1-5-x/not_found_drawing_comparison.png +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/data/aww/nodezator.pysite/whats-new/images/v1-5-x/socket_proximity_detection.png +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/data/aww/nodezator.pysite/whats-new/images/v1-5-x/system_testing_form.png +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/data/aww/nodezator.pysite/whats-new/images/v1-5-x/system_testing_report_initial_portion.png +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/data/aww/nodezator.pysite/whats-new/index.htsl +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/data/fonts/OFL_license_for_all_other_fonts.txt +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/data/fonts/cc0_license_for_nodezator_icons.txt +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/data/fonts/enc_sans_sexp_bold_mplus_1p_2000em_med.ttf +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/data/fonts/fira_mono_bold_mplus_1m_med.ttf +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/data/fonts/nodezator_icons.ttf +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/data/fonts/noto_sans_bold.ttf +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/data/fonts/noto_sans_italic.ttf +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/data/fonts/noto_sans_mono_medium.ttf +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/data/fonts/noto_sans_regular.ttf +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/data/glossary.rst +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/data/images/baseball.svg +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/data/images/baseball_glove.png +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/data/images/bluesky_logo.png +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/data/images/colors_editor_scale_images.png +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/data/images/discord_logo.png +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/data/images/github_mark.png +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/data/images/hand_closed.png +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/data/images/hand_open.png +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/data/images/kennedy_logo.png +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/data/images/mask_wave.png +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/data/images/nodezator_logo.png +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/data/images/patreon_logo.png +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/data/images/pygame_logo.png +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/data/images/python_filemanager_icon.png +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/data/images/python_menu_icon.png +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/data/images/python_splashscreen_icon.png +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/data/images/splash_nodezator_robot.png +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/data/images/splash_nodezator_robot_arm_a.png +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/data/images/splash_nodezator_robot_arm_b.png +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/data/images/unlicense_logo.png +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/data/locale/en_us/dialogs_map.pyl +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/data/locale/en_us/status_messages_map.pyl +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/data/locale/pt_br/dialogs_map.pyl +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/data/locale/pt_br/status_messages_map.pyl +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/data/syntax_themes/comment/fresh_eucalyptus_dark.pyl +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/data/syntax_themes/comment/pale_green.pyl +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/data/syntax_themes/python/ice_with_candy.pyl +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/data/syntax_themes/python/sprinkled_dark.pyl +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/data/syntax_themes/user_log/message_temperature.pyl +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/data/syntax_themes/user_log/message_temperature_dark.pyl +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/data/system_testing/shared/file_with_objects.zip +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/data/system_testing/test_cases/stc0000.zip +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/data/system_testing/test_cases/stc0001.zip +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/data/system_testing/test_cases/stc0002.zip +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/data/system_testing/test_cases/stc0003.zip +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/data/system_testing/test_cases/stc0004.zip +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/data/system_testing/test_cases/stc0005.zip +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/data/system_testing/test_cases/stc0006.zip +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/data/system_testing/test_cases/stc0007.zip +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/data/system_testing/test_cases/stc0008.zip +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/data/system_testing/test_cases/stc0009.zip +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/data/system_testing/test_cases/stc0010.zip +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/data/system_testing/test_cases/stc0011.zip +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/data/system_testing/test_id_to_title.pyl +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/dialog.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/editing/__init__.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/editing/birdseyeview.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/editing/categorycolors.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/editing/data.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/editing/gridlogic.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/editing/imageexport/__init__.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/editing/imageexport/form.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/editing/imageexport/main.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/editing/jumptonode.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/editing/main.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/editing/nodepacksforms/__init__.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/editing/nodepacksforms/renaming.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/editing/nodepacksforms/selection.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/editing/objinsert.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/editing/objpopups/__init__.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/editing/objpopups/callablenode.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/editing/objpopups/constants.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/editing/objpopups/proxynode.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/editing/objpopups/textblock.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/editing/playback/__init__.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/editing/playback/demonstrate/__init__.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/editing/playback/demonstrate/constants.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/editing/playback/demonstrate/filtering.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/editing/playback/play.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/editing/playback/record.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/editing/playback/systemtesting.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/editing/pythonexporting.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/editing/reposition.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/editing/selection.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/editing/socketpopups/__init__.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/editing/socketpopups/input.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/editing/socketpopups/output.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/editing/socketpopups/proxy.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/editing/widgetpicker/__init__.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/editing/widgetpicker/main.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/editing/widgetpicker/subforms.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/editing/widgetpopups/__init__.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/editing/widgetpopups/creation.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/fileman/__init__.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/fileman/bookmarkpanel/__init__.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/fileman/bookmarkpanel/main.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/fileman/bookmarkpanel/surfs.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/fileman/constants.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/fileman/dirpanel/__init__.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/fileman/dirpanel/extraop.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/fileman/dirpanel/loadop.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/fileman/dirpanel/main.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/fileman/dirpanel/mouseop.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/fileman/dirpanel/newpathform.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/fileman/dirpanel/surfs.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/fileman/main.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/fileman/op.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/fileman/pathobj.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/fileman/surfs.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/fontsman/__init__.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/fontsman/cache.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/fontsman/constants.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/fontsman/exception.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/fontsman/preview/__init__.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/fontsman/preview/cache.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/fontsman/preview/render.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/fontsman/test_cache.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/fontsman/viewer/__init__.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/fontsman/viewer/main.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/fontsman/viewer/render.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/graphman/__init__.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/graphman/builtinnode/__init__.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/graphman/builtinnode/constants.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/graphman/builtinnode/export.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/graphman/builtinnode/main.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/graphman/callablenode/__init__.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/graphman/callablenode/constants.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/graphman/callablenode/execution.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/graphman/callablenode/export.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/graphman/callablenode/main.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/graphman/callablenode/outputviz.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/graphman/callablenode/preproc.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/graphman/callablenode/segment.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/graphman/callablenode/subparam/__init__.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/graphman/callablenode/subparam/main.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/graphman/callablenode/subparam/segment.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/graphman/callablenode/subparam/unpacking.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/graphman/callablenode/subparam/widget.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/graphman/callablenode/surfs.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/graphman/callablenode/utils.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/graphman/callablenode/vizop/__init__.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/graphman/callablenode/vizop/callablereposition.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/graphman/callablenode/vizop/collapsedreposition.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/graphman/callablenode/vizop/collapsing.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/graphman/callablenode/vizop/expandedreposition.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/graphman/callablenode/vizop/main.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/graphman/callablenode/vizprep/__init__.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/graphman/callablenode/vizprep/bodysetup/__init__.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/graphman/callablenode/vizprep/bodysetup/callablecreation.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/graphman/callablenode/vizprep/bodysetup/collapsedcreation.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/graphman/callablenode/vizprep/bodysetup/expandedcreation.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/graphman/callablenode/vizprep/bodysetup/main.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/graphman/callablenode/vizprep/calmode/__init__.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/graphman/callablenode/vizprep/main.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/graphman/callablenode/vizprep/sigmode/__init__.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/graphman/callablenode/vizprep/sigmode/param.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/graphman/callablenode/vizprep/sigmode/varparam.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/graphman/capsulenode/__init__.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/graphman/capsulenode/constants.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/graphman/capsulenode/export.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/graphman/capsulenode/generaldefs.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/graphman/capsulenode/main.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/graphman/capsulenode/pygamedefs.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/graphman/editlogic.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/graphman/exception.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/graphman/execution.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/graphman/genviewernode/__init__.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/graphman/genviewernode/constants.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/graphman/genviewernode/export.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/graphman/genviewernode/main.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/graphman/genviewernode/nodedefs/__init__.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/graphman/genviewernode/nodedefs/viewasmonotext.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/graphman/genviewernode/nodedefs/viewastext.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/graphman/genviewernode/nodedefs/viewpythonsource.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/graphman/genviewernode/nodedefs/viewsurface.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/graphman/main.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/graphman/nodepacksissues.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/graphman/operatornode/__init__.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/graphman/operatornode/constants.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/graphman/operatornode/execution.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/graphman/operatornode/export.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/graphman/operatornode/main.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/graphman/operatornode/surfs.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/graphman/operatornode/vizop.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/graphman/operatornode/vizprep.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/graphman/presets.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/graphman/proxynode/__init__.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/graphman/proxynode/constants.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/graphman/proxynode/export.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/graphman/proxynode/main.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/graphman/proxynode/segment.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/graphman/proxynode/surfs.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/graphman/proxynode/titleupdate.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/graphman/proxynode/utils.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/graphman/proxynode/vizop/__init__.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/graphman/proxynode/vizop/main.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/graphman/proxynode/vizop/reposition.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/graphman/proxynode/vizprep.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/graphman/proxynode/widget.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/graphman/pythonrepr.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/graphman/scriptloading/__init__.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/graphman/scriptloading/node_pack_no_callable.zip +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/graphman/scriptloading/node_pack_no_signature.zip +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/graphman/scriptloading/node_pack_nodes.zip +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/graphman/scriptloading/node_pack_not_callable_object.zip +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/graphman/scriptloading/node_pack_not_inspectable.zip +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/graphman/scriptloading/node_pack_with_error.zip +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/graphman/scriptloading/tests.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/graphman/socket/__init__.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/graphman/socket/base.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/graphman/socket/input.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/graphman/socket/output.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/graphman/socket/placeholder.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/graphman/socket/proxy.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/graphman/socket/surfs.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/graphman/socketparenthood/__init__.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/graphman/socketparenthood/action.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/graphman/socketparenthood/draw/__init__.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/graphman/socketparenthood/draw/connectionassist.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/graphman/socketparenthood/export.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/graphman/socketparenthood/main.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/graphman/socketparenthood/support.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/graphman/socketparenthood/utils.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/graphman/stlibnode/__init__.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/graphman/stlibnode/constants.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/graphman/stlibnode/export.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/graphman/stlibnode/main.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/graphman/textblock/__init__.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/graphman/textblock/check.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/graphman/textblock/constants.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/graphman/textblock/export.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/graphman/textblock/main.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/graphman/textblock/surf.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/graphman/thirdlibnode/__init__.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/graphman/thirdlibnode/constants.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/graphman/thirdlibnode/export.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/graphman/thirdlibnode/main.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/graphman/thirdlibnode/signaturedefs.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/graphman/utils.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/graphman/validation/__init__.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/graphman/validation/doctest.test.md +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/graphman/validation/main.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/graphman/validation/test_data.pyl +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/graphman/validation/testmarkdown.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/graphman/widget/__init__.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/graphman/widget/export.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/graphman/widget/popupdefinition.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/graphman/widget/utils.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/hideswitch.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/htsl/__init__.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/htsl/codeblock.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/htsl/constants.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/htsl/creation.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/htsl/image.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/htsl/main.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/htsl/prep.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/iconfactory.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/imagesman/__init__.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/imagesman/cache.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/imagesman/previewer/__init__.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/imagesman/previewer/constants.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/imagesman/previewer/main.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/imagesman/previewer/op.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/imagesman/render.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/knownpacks.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/logman/__init__.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/logman/constants.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/logman/fixeddialog.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/logman/main.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/logman/utils.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/loopman/__init__.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/loopman/exception.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/loopman/main.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/mainloop.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/memoryman.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/menu/__init__.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/menu/behaviour.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/menu/command.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/menu/common.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/menu/hover.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/menu/iconfactory.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/menu/main.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/menu/scroll.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/menu/submenu/__init__.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/menu/submenu/main.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/menu/submenu/scroll.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/menu/submenu/utils.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/menu/surffactory.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/our3rdlibs/__init__.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/our3rdlibs/behaviour.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/our3rdlibs/button.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/our3rdlibs/debug.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/our3rdlibs/grid/__init__.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/our3rdlibs/grid/main.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/our3rdlibs/grid/oop.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/our3rdlibs/iterablewidget/__init__.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/our3rdlibs/iterablewidget/list.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/our3rdlibs/iterablewidget/op.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/our3rdlibs/iterablewidget/set.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/our3rdlibs/iterablewidget/surfs.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/our3rdlibs/keyconst.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/our3rdlibs/listbox.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/our3rdlibs/scale.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/our3rdlibs/searchbox.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/our3rdlibs/sortingeditor/__init__.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/our3rdlibs/sortingeditor/main.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/our3rdlibs/sortingeditor/modes.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/our3rdlibs/userlogger.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/ourstdlibs/__init__.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/ourstdlibs/behaviour.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/ourstdlibs/collections/__init__.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/ourstdlibs/collections/fldict/__init__.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/ourstdlibs/collections/fldict/doctest.test.md +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/ourstdlibs/collections/fldict/main.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/ourstdlibs/collections/fldict/testmarkdown.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/ourstdlibs/collections/general.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/ourstdlibs/collections/nestedfromdict.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/ourstdlibs/color/__init__.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/ourstdlibs/color/constants.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/ourstdlibs/color/conversion.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/ourstdlibs/color/creation.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/ourstdlibs/color/custom.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/ourstdlibs/color/largemaps.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/ourstdlibs/color/property.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/ourstdlibs/color/utils.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/ourstdlibs/datetimeutils.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/ourstdlibs/debug.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/ourstdlibs/dictutils.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/ourstdlibs/exceptionutils.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/ourstdlibs/importutils.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/ourstdlibs/iterutils.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/ourstdlibs/mathutils.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/ourstdlibs/meta.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/ourstdlibs/path.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/ourstdlibs/profileutils.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/ourstdlibs/pyl.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/ourstdlibs/stringutils.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/ourstdlibs/timeutils.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/ourstdlibs/treeutils.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/pointsman2d/__init__.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/pointsman2d/create.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/pointsman2d/shape.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/pointsman2d/transform.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/pygamesetup/__init__.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/pygamesetup/services/__init__.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/pygamesetup/services/play.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/pygamesetup/services/record.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/recentfile.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/rectsman/__init__.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/rectsman/cluster.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/rectsman/constants.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/rectsman/doctests/README.md +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/rectsman/doctests/__init__.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/rectsman/doctests/fixtures.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/rectsman/doctests/individual_positioning.test.md +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/rectsman/doctests/introduction.test.md +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/rectsman/doctests/operations_part01.test.md +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/rectsman/doctests/operations_part02.test.md +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/rectsman/doctests/operations_part03.test.md +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/rectsman/doctests/other_topics_part01.test.md +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/rectsman/doctests/other_topics_part02.test.md +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/rectsman/doctests/other_topics_part03.test.md +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/rectsman/doctests/special_methods_part01.test.md +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/rectsman/doctests/special_methods_part02.test.md +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/rectsman/doctests/testmarkdown.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/rectsman/main.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/rectsman/singlepos.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/rectsman/sizepos.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/rectsman/spatial.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/rectsman/special.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/rectsman/utils.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/splashscreen/__init__.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/splashscreen/animsetup.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/splashscreen/constants.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/splashscreen/main.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/splashscreen/op.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/surfdef.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/surfsman/__init__.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/surfsman/cache.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/surfsman/draw.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/surfsman/mathutils.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/surfsman/render.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/surfsman/svgexport.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/surfsman/viewer/__init__.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/surfsman/viewer/constants.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/surfsman/viewer/main.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/surfsman/viewer/op.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/svgutils.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/syntaxman/__init__.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/syntaxman/exception.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/syntaxman/syntaxes/__init__.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/syntaxman/syntaxes/comment.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/syntaxman/syntaxes/python/__init__.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/syntaxman/syntaxes/python/main.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/syntaxman/syntaxes/python/namemap.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/syntaxman/syntaxes/python/utils.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/syntaxman/syntaxes/userlog.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/syntaxman/utils.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/systemtesting/__init__.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/systemtesting/constants.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/systemtesting/playsupport.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/systemtesting/reportviewer/__init__.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/systemtesting/reportviewer/constants.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/systemtesting/reportviewer/factoryfuncs.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/systemtesting/reportviewer/op.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/systemtesting/testcases/__init__.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/systemtesting/testcases/stc0000.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/systemtesting/testcases/stc0001.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/systemtesting/testcases/stc0002.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/systemtesting/testcases/stc0003.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/systemtesting/testcases/stc0004.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/systemtesting/testcases/stc0005.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/systemtesting/testcases/stc0006.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/systemtesting/testcases/stc0007.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/systemtesting/testcases/stc0008.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/systemtesting/testcases/stc0009.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/systemtesting/testcases/stc0010.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/systemtesting/testcases/stc0011.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/textman/__init__.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/textman/cache.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/textman/editor/__init__.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/textman/editor/constants.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/textman/editor/cursor/__init__.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/textman/editor/cursor/main.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/textman/editor/cursor/modes/__init__.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/textman/editor/cursor/modes/insert.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/textman/editor/cursor/modes/normal.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/textman/editor/cursor/navigation.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/textman/editor/cursor/op.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/textman/editor/cursor/syntaxhigh.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/textman/editor/line.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/textman/editor/main.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/textman/entryedition/__init__.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/textman/entryedition/cursor.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/textman/entryedition/line.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/textman/label/__init__.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/textman/label/autolabel.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/textman/label/main.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/textman/render.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/textman/text.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/textman/viewer/__init__.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/textman/viewer/constants.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/textman/viewer/main.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/textman/viewer/op.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/textman/viewer/prep.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/translation.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/userprefsman/__init__.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/userprefsman/constants.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/userprefsman/generalform.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/userprefsman/socketdetectionform.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/userprefsman/utils.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/userprefsman/validation.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/videopreview/__init__.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/videopreview/cache.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/videopreview/constants.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/videopreview/previewer.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/videopreview/render.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/widget/__init__.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/widget/checkbutton.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/widget/colorbutton.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/widget/defaultholder.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/widget/intfloatentry/__init__.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/widget/intfloatentry/main.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/widget/intfloatentry/modes.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/widget/intfloatentry/numeval.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/widget/intfloatentry/op.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/widget/literaldisplay.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/widget/literalentry.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/widget/optionmenu/__init__.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/widget/optionmenu/creation.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/widget/optionmenu/main.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/widget/optionmenu/op.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/widget/optiontray/__init__.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/widget/optiontray/creation.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/widget/optiontray/main.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/widget/optiontray/op.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/widget/pathpreview/__init__.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/widget/pathpreview/audio.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/widget/pathpreview/base.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/widget/pathpreview/constants.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/widget/pathpreview/font.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/widget/pathpreview/image.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/widget/pathpreview/path.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/widget/pathpreview/text.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/widget/pathpreview/video.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/widget/sortingbutton.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/widget/stringentry.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/widget/textdisplay.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/winman/__init__.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/winman/fileop.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/winman/label.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/winman/main.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/winman/menu.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/winman/states/__init__.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/winman/states/birdseyeview.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/winman/states/boxselection.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/winman/states/loadedfile.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/winman/states/movingobject.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/winman/states/nofile.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/winman/states/segmentdef.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/winman/states/segmentsev.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator/winman/switch.py +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator.egg-info/dependency_links.txt +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator.egg-info/entry_points.txt +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator.egg-info/requires.txt +0 -0
- {nodezator-1.5.3 → nodezator-1.5.5}/nodezator.egg-info/top_level.txt +0 -0
|
@@ -1,35 +1,30 @@
|
|
|
1
|
-
Metadata-Version: 2.
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
2
|
Name: nodezator
|
|
3
|
-
Version: 1.5.
|
|
3
|
+
Version: 1.5.5
|
|
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,9 @@ 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. This small video (~2min) actually shows you how to define and load a node in **less than 60 seconds**:
|
|
68
|
+
|
|
69
|
+
[](https://www.youtube.com/watch?v=cMfoaEs0fGY)
|
|
73
70
|
|
|
74
71
|
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
72
|
|
|
@@ -93,14 +90,14 @@ There's also a [youtube video][] presenting Nodezator:
|
|
|
93
90
|
|
|
94
91
|
[](https://www.youtube.com/watch?v=GlQJvuU7Z_8)
|
|
95
92
|
|
|
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
|
|
93
|
+
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
94
|
|
|
98
95
|
> [!NOTE]
|
|
99
96
|
> 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
97
|
|
|
101
98
|
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
99
|
|
|
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://
|
|
100
|
+
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
101
|
|
|
105
102
|
After you finish reading this README file, you may also want to visit Nodezator's homepage: https://nodezator.com
|
|
106
103
|
|
|
@@ -113,7 +110,7 @@ On top of making it very easy to define nodes, Nodezator comes packed full of us
|
|
|
113
110
|
|
|
114
111
|
As we said before, Nodezator allows you to convert callables from third-party libraries with minimal effort. Here are just a few screenshots showing the usage of Nodezator with different libraries.
|
|
115
112
|
|
|
116
|
-
Here's
|
|
113
|
+
Here's a simple graph showing Nodezator usage with the [Pillow](https://python-pillow.org/) library.
|
|
117
114
|
|
|
118
115
|

|
|
119
116
|
|
|
@@ -167,7 +164,7 @@ Simply put, Nodezator is just a visual, node-based representation of Python.
|
|
|
167
164
|
|
|
168
165
|
### Socket proximity detection
|
|
169
166
|
|
|
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
|
|
167
|
+
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
168
|
|
|
172
169
|
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
170
|
|
|
@@ -251,6 +248,8 @@ However, users are encouraged to define their own nodes for their specific purpo
|
|
|
251
248
|
|
|
252
249
|

|
|
253
250
|
|
|
251
|
+
In case you missed it at the beginning of this README, here's the link to a small video demonstrating how to define and load a node in less than 60 seconds: https://www.youtube.com/watch?v=cMfoaEs0fGY
|
|
252
|
+
|
|
254
253
|
Nodes are created from Python scripts organized within folders that we call **node packs**. You can create a node pack folder **anywhere you want in your disk**. Under the hood, Nodezator treats it as a package in some contexts, so you can name that folder whatever you like, as long as it is a Python identifier. That is, it must start with a letter or underscore and contain only letters, digits and underscores.
|
|
255
254
|
|
|
256
255
|
In other words, you **create nodes by writing Python functions/callables using your preferred text editor or IDE** and only then you **launch Nodezator in order to load them as nodes**, so you can create, edit and execute graphs.
|
|
@@ -280,7 +279,7 @@ Once you distributed your nodes, you may want a place wherein to let people know
|
|
|
280
279
|
|
|
281
280
|
You can do all this on the [nodes gallery][] website. There you can search node packs by name, author and tags.
|
|
282
281
|
|
|
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
|
|
282
|
+
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
283
|
|
|
285
284
|
You can also [email][] me if you need any help.
|
|
286
285
|
|
|
@@ -326,9 +325,13 @@ The in-app version is always the most accurate, since it is updated first, where
|
|
|
326
325
|
|
|
327
326
|
Everyone is welcome to suggest and contribute changes.
|
|
328
327
|
|
|
329
|
-
If the proposed change is small enough, you can submit your pull request for analysis right away and it will be answered ASAP.
|
|
328
|
+
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.
|
|
329
|
+
|
|
330
|
+
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`.
|
|
331
|
+
|
|
332
|
+
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
333
|
|
|
331
|
-
|
|
334
|
+
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
335
|
|
|
333
336
|
|
|
334
337
|
## Issues
|
|
@@ -341,7 +344,7 @@ If you find a bug that...
|
|
|
341
344
|
- causes Nodezator to crash;
|
|
342
345
|
- representing something malfunctioning or not working at all;
|
|
343
346
|
|
|
344
|
-
...then, please, use [
|
|
347
|
+
...then, please, use [GitHub issues][] to submit an issue as soon as possible.
|
|
345
348
|
|
|
346
349
|
Please, include as much information as you can:
|
|
347
350
|
|
|
@@ -358,20 +361,20 @@ Nevertheless, never hesitate to ask for help, even if you don't have much info a
|
|
|
358
361
|
|
|
359
362
|
### Minor issues
|
|
360
363
|
|
|
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 [
|
|
364
|
+
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
365
|
|
|
363
|
-
It doesn't mean your issue is any less important. It is just that in Nodezator and other Indie
|
|
366
|
+
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
367
|
|
|
365
368
|
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
369
|
|
|
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 [
|
|
370
|
+
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
371
|
|
|
369
|
-
Of course, [
|
|
372
|
+
Of course, [GitHub discussions][] is used for many other important stuff as well, as we'll see in the next section.
|
|
370
373
|
|
|
371
374
|
|
|
372
375
|
## Discussions/forum
|
|
373
376
|
|
|
374
|
-
Consider [
|
|
377
|
+
Consider [GitHub discussions][] as the official online forum for Nodezator.
|
|
375
378
|
|
|
376
379
|
It is used for many things like announcements to the community, to list planned/requested features, to communicate and discuss current work, etc.
|
|
377
380
|
|
|
@@ -392,14 +395,14 @@ If you have...
|
|
|
392
395
|
|
|
393
396
|
Contact me any time via [Twitter/X][] or [email][].
|
|
394
397
|
|
|
395
|
-
You are also welcome on the Indie
|
|
398
|
+
You are also welcome on the Indie Smiths's [discord server][].
|
|
396
399
|
|
|
397
400
|
|
|
398
401
|
## Patreon and donations
|
|
399
402
|
|
|
400
|
-
Please, support Nodezator and other useful apps of the Indie
|
|
403
|
+
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
404
|
|
|
402
|
-
Both [
|
|
405
|
+
Both [GitHub sponsors][] and [Ko-fi][] also accept one-time donations.
|
|
403
406
|
|
|
404
407
|
Any amount is welcome and helps. Check the project's [donation page][] for all donation methods available.
|
|
405
408
|
|
|
@@ -413,7 +416,7 @@ The `nodezator_icons` font used in the app for its icons was created by me and i
|
|
|
413
416
|
The logos/images listed below, featured in Nodezator's splash screen (and sometimes in other spots in the app), are all mine:
|
|
414
417
|
|
|
415
418
|
- the Kennedy Richard "KR" logo;
|
|
416
|
-
- the Indie
|
|
419
|
+
- the Indie Smiths project logo;
|
|
417
420
|
- the Nodezator logo;
|
|
418
421
|
- the robot, called Zenith Green, Nodezator's mascot.
|
|
419
422
|
|
|
@@ -435,19 +438,19 @@ Also, other parts of the code, despite being carefully designed, might be redesi
|
|
|
435
438
|
[youtube video]: https://www.youtube.com/watch?v=GlQJvuU7Z_8
|
|
436
439
|
[pygame-ce]: https://pyga.me
|
|
437
440
|
[numpy]: https://numpy.org
|
|
438
|
-
[Indie
|
|
441
|
+
[Indie Smiths]: https://indiesmiths.com
|
|
439
442
|
|
|
440
443
|
[manual]: https://manual.nodezator.com
|
|
441
444
|
|
|
442
445
|
[Twitter/X]: https://x.com/KennedyRichard
|
|
443
446
|
[email]: mailto:kennedy@kennedyrichard.com
|
|
444
|
-
[discord server]: https://
|
|
447
|
+
[discord server]: https://indiesmiths.com/discord
|
|
445
448
|
|
|
446
449
|
[patreon]: https://patreon.com/KennedyRichard
|
|
447
|
-
[
|
|
450
|
+
[GitHub sponsors]: https://github.com/sponsors/KennedyRichard
|
|
448
451
|
[liberapay]: https://liberapay.com/KennedyRichard
|
|
449
452
|
[Ko-fi]: https://ko-fi.com/kennedyrichard
|
|
450
|
-
[donation page]: https://
|
|
453
|
+
[donation page]: https://indiesmiths.com/donate
|
|
451
454
|
|
|
452
455
|
[defining your first node]: https://manual.nodezator.com/ch-defining-your-first-node.html
|
|
453
456
|
[loading nodes]: https://manual.nodezator.com/ch-loading-nodes.html
|
|
@@ -455,10 +458,10 @@ Also, other parts of the code, despite being carefully designed, might be redesi
|
|
|
455
458
|
[nodes gallery]: https://gallery.nodezator.com
|
|
456
459
|
|
|
457
460
|
[node pack submission form]: https://docs.google.com/forms/d/e/1FAIpQLSd1XceOnzEeaBZcpkkXEFiAVO_5YUbd43sieQUekh1PZ8dm5A/viewform?usp=sf_link
|
|
458
|
-
[nodes gallery repository]: https://github.com/
|
|
461
|
+
[nodes gallery repository]: https://github.com/IndieSmiths/gallery.nodezator.com
|
|
459
462
|
|
|
460
|
-
[
|
|
461
|
-
[
|
|
463
|
+
[GitHub issues]: https://github.com/IndieSmiths/nodezator/issues
|
|
464
|
+
[GitHub discussions]: https://github.com/IndieSmiths/nodezator/discussions
|
|
462
465
|
|
|
463
466
|
[The Unlicense]: https://unlicense.org/
|
|
464
467
|
[Open Font License]: https://en.wikipedia.org/wiki/SIL_Open_Font_License
|
|
@@ -32,7 +32,9 @@ 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. This small video (~2min) actually shows you how to define and load a node in **less than 60 seconds**:
|
|
36
|
+
|
|
37
|
+
[](https://www.youtube.com/watch?v=cMfoaEs0fGY)
|
|
36
38
|
|
|
37
39
|
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
40
|
|
|
@@ -56,14 +58,14 @@ There's also a [youtube video][] presenting Nodezator:
|
|
|
56
58
|
|
|
57
59
|
[](https://www.youtube.com/watch?v=GlQJvuU7Z_8)
|
|
58
60
|
|
|
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
|
|
61
|
+
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
62
|
|
|
61
63
|
> [!NOTE]
|
|
62
64
|
> 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
65
|
|
|
64
66
|
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
67
|
|
|
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://
|
|
68
|
+
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
69
|
|
|
68
70
|
After you finish reading this README file, you may also want to visit Nodezator's homepage: https://nodezator.com
|
|
69
71
|
|
|
@@ -76,7 +78,7 @@ On top of making it very easy to define nodes, Nodezator comes packed full of us
|
|
|
76
78
|
|
|
77
79
|
As we said before, Nodezator allows you to convert callables from third-party libraries with minimal effort. Here are just a few screenshots showing the usage of Nodezator with different libraries.
|
|
78
80
|
|
|
79
|
-
Here's
|
|
81
|
+
Here's a simple graph showing Nodezator usage with the [Pillow](https://python-pillow.org/) library.
|
|
80
82
|
|
|
81
83
|

|
|
82
84
|
|
|
@@ -130,7 +132,7 @@ Simply put, Nodezator is just a visual, node-based representation of Python.
|
|
|
130
132
|
|
|
131
133
|
### Socket proximity detection
|
|
132
134
|
|
|
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
|
|
135
|
+
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
136
|
|
|
135
137
|
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
138
|
|
|
@@ -214,6 +216,8 @@ However, users are encouraged to define their own nodes for their specific purpo
|
|
|
214
216
|
|
|
215
217
|

|
|
216
218
|
|
|
219
|
+
In case you missed it at the beginning of this README, here's the link to a small video demonstrating how to define and load a node in less than 60 seconds: https://www.youtube.com/watch?v=cMfoaEs0fGY
|
|
220
|
+
|
|
217
221
|
Nodes are created from Python scripts organized within folders that we call **node packs**. You can create a node pack folder **anywhere you want in your disk**. Under the hood, Nodezator treats it as a package in some contexts, so you can name that folder whatever you like, as long as it is a Python identifier. That is, it must start with a letter or underscore and contain only letters, digits and underscores.
|
|
218
222
|
|
|
219
223
|
In other words, you **create nodes by writing Python functions/callables using your preferred text editor or IDE** and only then you **launch Nodezator in order to load them as nodes**, so you can create, edit and execute graphs.
|
|
@@ -243,7 +247,7 @@ Once you distributed your nodes, you may want a place wherein to let people know
|
|
|
243
247
|
|
|
244
248
|
You can do all this on the [nodes gallery][] website. There you can search node packs by name, author and tags.
|
|
245
249
|
|
|
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
|
|
250
|
+
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
251
|
|
|
248
252
|
You can also [email][] me if you need any help.
|
|
249
253
|
|
|
@@ -289,9 +293,13 @@ The in-app version is always the most accurate, since it is updated first, where
|
|
|
289
293
|
|
|
290
294
|
Everyone is welcome to suggest and contribute changes.
|
|
291
295
|
|
|
292
|
-
If the proposed change is small enough, you can submit your pull request for analysis right away and it will be answered ASAP.
|
|
296
|
+
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.
|
|
297
|
+
|
|
298
|
+
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`.
|
|
299
|
+
|
|
300
|
+
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.
|
|
293
301
|
|
|
294
|
-
|
|
302
|
+
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
303
|
|
|
296
304
|
|
|
297
305
|
## Issues
|
|
@@ -304,7 +312,7 @@ If you find a bug that...
|
|
|
304
312
|
- causes Nodezator to crash;
|
|
305
313
|
- representing something malfunctioning or not working at all;
|
|
306
314
|
|
|
307
|
-
...then, please, use [
|
|
315
|
+
...then, please, use [GitHub issues][] to submit an issue as soon as possible.
|
|
308
316
|
|
|
309
317
|
Please, include as much information as you can:
|
|
310
318
|
|
|
@@ -321,20 +329,20 @@ Nevertheless, never hesitate to ask for help, even if you don't have much info a
|
|
|
321
329
|
|
|
322
330
|
### Minor issues
|
|
323
331
|
|
|
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 [
|
|
332
|
+
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
333
|
|
|
326
|
-
It doesn't mean your issue is any less important. It is just that in Nodezator and other Indie
|
|
334
|
+
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
335
|
|
|
328
336
|
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
337
|
|
|
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 [
|
|
338
|
+
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
339
|
|
|
332
|
-
Of course, [
|
|
340
|
+
Of course, [GitHub discussions][] is used for many other important stuff as well, as we'll see in the next section.
|
|
333
341
|
|
|
334
342
|
|
|
335
343
|
## Discussions/forum
|
|
336
344
|
|
|
337
|
-
Consider [
|
|
345
|
+
Consider [GitHub discussions][] as the official online forum for Nodezator.
|
|
338
346
|
|
|
339
347
|
It is used for many things like announcements to the community, to list planned/requested features, to communicate and discuss current work, etc.
|
|
340
348
|
|
|
@@ -355,14 +363,14 @@ If you have...
|
|
|
355
363
|
|
|
356
364
|
Contact me any time via [Twitter/X][] or [email][].
|
|
357
365
|
|
|
358
|
-
You are also welcome on the Indie
|
|
366
|
+
You are also welcome on the Indie Smiths's [discord server][].
|
|
359
367
|
|
|
360
368
|
|
|
361
369
|
## Patreon and donations
|
|
362
370
|
|
|
363
|
-
Please, support Nodezator and other useful apps of the Indie
|
|
371
|
+
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
372
|
|
|
365
|
-
Both [
|
|
373
|
+
Both [GitHub sponsors][] and [Ko-fi][] also accept one-time donations.
|
|
366
374
|
|
|
367
375
|
Any amount is welcome and helps. Check the project's [donation page][] for all donation methods available.
|
|
368
376
|
|
|
@@ -376,7 +384,7 @@ The `nodezator_icons` font used in the app for its icons was created by me and i
|
|
|
376
384
|
The logos/images listed below, featured in Nodezator's splash screen (and sometimes in other spots in the app), are all mine:
|
|
377
385
|
|
|
378
386
|
- the Kennedy Richard "KR" logo;
|
|
379
|
-
- the Indie
|
|
387
|
+
- the Indie Smiths project logo;
|
|
380
388
|
- the Nodezator logo;
|
|
381
389
|
- the robot, called Zenith Green, Nodezator's mascot.
|
|
382
390
|
|
|
@@ -398,19 +406,19 @@ Also, other parts of the code, despite being carefully designed, might be redesi
|
|
|
398
406
|
[youtube video]: https://www.youtube.com/watch?v=GlQJvuU7Z_8
|
|
399
407
|
[pygame-ce]: https://pyga.me
|
|
400
408
|
[numpy]: https://numpy.org
|
|
401
|
-
[Indie
|
|
409
|
+
[Indie Smiths]: https://indiesmiths.com
|
|
402
410
|
|
|
403
411
|
[manual]: https://manual.nodezator.com
|
|
404
412
|
|
|
405
413
|
[Twitter/X]: https://x.com/KennedyRichard
|
|
406
414
|
[email]: mailto:kennedy@kennedyrichard.com
|
|
407
|
-
[discord server]: https://
|
|
415
|
+
[discord server]: https://indiesmiths.com/discord
|
|
408
416
|
|
|
409
417
|
[patreon]: https://patreon.com/KennedyRichard
|
|
410
|
-
[
|
|
418
|
+
[GitHub sponsors]: https://github.com/sponsors/KennedyRichard
|
|
411
419
|
[liberapay]: https://liberapay.com/KennedyRichard
|
|
412
420
|
[Ko-fi]: https://ko-fi.com/kennedyrichard
|
|
413
|
-
[donation page]: https://
|
|
421
|
+
[donation page]: https://indiesmiths.com/donate
|
|
414
422
|
|
|
415
423
|
[defining your first node]: https://manual.nodezator.com/ch-defining-your-first-node.html
|
|
416
424
|
[loading nodes]: https://manual.nodezator.com/ch-loading-nodes.html
|
|
@@ -418,10 +426,10 @@ Also, other parts of the code, despite being carefully designed, might be redesi
|
|
|
418
426
|
[nodes gallery]: https://gallery.nodezator.com
|
|
419
427
|
|
|
420
428
|
[node pack submission form]: https://docs.google.com/forms/d/e/1FAIpQLSd1XceOnzEeaBZcpkkXEFiAVO_5YUbd43sieQUekh1PZ8dm5A/viewform?usp=sf_link
|
|
421
|
-
[nodes gallery repository]: https://github.com/
|
|
429
|
+
[nodes gallery repository]: https://github.com/IndieSmiths/gallery.nodezator.com
|
|
422
430
|
|
|
423
|
-
[
|
|
424
|
-
[
|
|
431
|
+
[GitHub issues]: https://github.com/IndieSmiths/nodezator/issues
|
|
432
|
+
[GitHub discussions]: https://github.com/IndieSmiths/nodezator/discussions
|
|
425
433
|
|
|
426
434
|
[The Unlicense]: https://unlicense.org/
|
|
427
435
|
[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, 5, "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.3 → nodezator-1.5.5}/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>
|