PrEditor 2.2.0__tar.gz → 2.4.0__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.
- {preditor-2.2.0 → preditor-2.4.0}/.github/workflows/release.yml +3 -3
- {preditor-2.2.0 → preditor-2.4.0}/.github/workflows/static-analysis-and-test.yml +12 -12
- {preditor-2.2.0 → preditor-2.4.0}/PKG-INFO +32 -1
- {preditor-2.2.0 → preditor-2.4.0}/PrEditor.egg-info/PKG-INFO +32 -1
- {preditor-2.2.0 → preditor-2.4.0}/README.md +31 -0
- {preditor-2.2.0 → preditor-2.4.0}/preditor/gui/console_base.py +7 -5
- {preditor-2.2.0 → preditor-2.4.0}/preditor/gui/group_tab_widget/group_tab_widget.py +5 -2
- {preditor-2.2.0 → preditor-2.4.0}/preditor/gui/loggerwindow.py +17 -2
- {preditor-2.2.0 → preditor-2.4.0}/preditor/prefs.py +1 -1
- {preditor-2.2.0 → preditor-2.4.0}/preditor/resource/settings.ini +1 -1
- {preditor-2.2.0 → preditor-2.4.0}/preditor/stream/director.py +4 -0
- {preditor-2.2.0 → preditor-2.4.0}/preditor/version.py +3 -3
- {preditor-2.2.0 → preditor-2.4.0}/.coveragerc +0 -0
- {preditor-2.2.0 → preditor-2.4.0}/.github/ISSUE_TEMPLATE/BUG_REPORT.md +0 -0
- {preditor-2.2.0 → preditor-2.4.0}/.github/ISSUE_TEMPLATE/FEATURE_REQUEST.md +0 -0
- {preditor-2.2.0 → preditor-2.4.0}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
- {preditor-2.2.0 → preditor-2.4.0}/.gitignore +0 -0
- {preditor-2.2.0 → preditor-2.4.0}/.pre-commit-config.yaml +0 -0
- {preditor-2.2.0 → preditor-2.4.0}/CODE_OF_CONDUCT.md +0 -0
- {preditor-2.2.0 → preditor-2.4.0}/CONTRIBUTING.md +0 -0
- {preditor-2.2.0 → preditor-2.4.0}/LICENSE +0 -0
- {preditor-2.2.0 → preditor-2.4.0}/MANIFEST.in +0 -0
- {preditor-2.2.0 → preditor-2.4.0}/PrEditor.egg-info/SOURCES.txt +0 -0
- {preditor-2.2.0 → preditor-2.4.0}/PrEditor.egg-info/dependency_links.txt +0 -0
- {preditor-2.2.0 → preditor-2.4.0}/PrEditor.egg-info/entry_points.txt +0 -0
- {preditor-2.2.0 → preditor-2.4.0}/PrEditor.egg-info/requires.txt +0 -0
- {preditor-2.2.0 → preditor-2.4.0}/PrEditor.egg-info/top_level.txt +0 -0
- {preditor-2.2.0 → preditor-2.4.0}/examples/add_to_app.py +0 -0
- {preditor-2.2.0 → preditor-2.4.0}/examples/output_capture_and_show.py +0 -0
- {preditor-2.2.0 → preditor-2.4.0}/examples/output_console.py +0 -0
- {preditor-2.2.0 → preditor-2.4.0}/examples/output_console.ui +0 -0
- {preditor-2.2.0 → preditor-2.4.0}/preditor/__init__.py +0 -0
- {preditor-2.2.0 → preditor-2.4.0}/preditor/__main__.py +0 -0
- {preditor-2.2.0 → preditor-2.4.0}/preditor/about_module.py +0 -0
- {preditor-2.2.0 → preditor-2.4.0}/preditor/cli.py +0 -0
- {preditor-2.2.0 → preditor-2.4.0}/preditor/config.py +0 -0
- {preditor-2.2.0 → preditor-2.4.0}/preditor/constants.py +0 -0
- {preditor-2.2.0 → preditor-2.4.0}/preditor/contexts.py +0 -0
- {preditor-2.2.0 → preditor-2.4.0}/preditor/cores/__init__.py +0 -0
- {preditor-2.2.0 → preditor-2.4.0}/preditor/cores/core.py +0 -0
- {preditor-2.2.0 → preditor-2.4.0}/preditor/dccs/.hab.json +0 -0
- {preditor-2.2.0 → preditor-2.4.0}/preditor/dccs/maya/PrEditor_maya.mod +0 -0
- {preditor-2.2.0 → preditor-2.4.0}/preditor/dccs/maya/README.md +0 -0
- {preditor-2.2.0 → preditor-2.4.0}/preditor/dccs/maya/plug-ins/PrEditor_maya.py +0 -0
- {preditor-2.2.0 → preditor-2.4.0}/preditor/dccs/studiomax/PackageContents.xml +0 -0
- {preditor-2.2.0 → preditor-2.4.0}/preditor/dccs/studiomax/PrEditor-PrEditor_Show.mcr +0 -0
- {preditor-2.2.0 → preditor-2.4.0}/preditor/dccs/studiomax/README.md +0 -0
- {preditor-2.2.0 → preditor-2.4.0}/preditor/dccs/studiomax/preditor.ms +0 -0
- {preditor-2.2.0 → preditor-2.4.0}/preditor/dccs/studiomax/preditor_menu.mnx +0 -0
- {preditor-2.2.0 → preditor-2.4.0}/preditor/debug.py +0 -0
- {preditor-2.2.0 → preditor-2.4.0}/preditor/delayable_engine/__init__.py +0 -0
- {preditor-2.2.0 → preditor-2.4.0}/preditor/delayable_engine/delayables.py +0 -0
- {preditor-2.2.0 → preditor-2.4.0}/preditor/enum.py +0 -0
- {preditor-2.2.0 → preditor-2.4.0}/preditor/excepthooks.py +0 -0
- {preditor-2.2.0 → preditor-2.4.0}/preditor/gui/__init__.py +0 -0
- {preditor-2.2.0 → preditor-2.4.0}/preditor/gui/app.py +0 -0
- {preditor-2.2.0 → preditor-2.4.0}/preditor/gui/codehighlighter.py +0 -0
- {preditor-2.2.0 → preditor-2.4.0}/preditor/gui/completer.py +0 -0
- {preditor-2.2.0 → preditor-2.4.0}/preditor/gui/console.py +0 -0
- {preditor-2.2.0 → preditor-2.4.0}/preditor/gui/dialog.py +0 -0
- {preditor-2.2.0 → preditor-2.4.0}/preditor/gui/drag_tab_bar.py +0 -0
- {preditor-2.2.0 → preditor-2.4.0}/preditor/gui/editor_chooser.py +0 -0
- {preditor-2.2.0 → preditor-2.4.0}/preditor/gui/errordialog.py +0 -0
- {preditor-2.2.0 → preditor-2.4.0}/preditor/gui/find_files.py +0 -0
- {preditor-2.2.0 → preditor-2.4.0}/preditor/gui/fuzzy_search/__init__.py +0 -0
- {preditor-2.2.0 → preditor-2.4.0}/preditor/gui/fuzzy_search/fuzzy_search.py +0 -0
- {preditor-2.2.0 → preditor-2.4.0}/preditor/gui/group_tab_widget/__init__.py +0 -0
- {preditor-2.2.0 → preditor-2.4.0}/preditor/gui/group_tab_widget/grouped_tab_menu.py +0 -0
- {preditor-2.2.0 → preditor-2.4.0}/preditor/gui/group_tab_widget/grouped_tab_models.py +0 -0
- {preditor-2.2.0 → preditor-2.4.0}/preditor/gui/group_tab_widget/grouped_tab_widget.py +0 -0
- {preditor-2.2.0 → preditor-2.4.0}/preditor/gui/group_tab_widget/one_tab_widget.py +0 -0
- {preditor-2.2.0 → preditor-2.4.0}/preditor/gui/level_buttons.py +0 -0
- {preditor-2.2.0 → preditor-2.4.0}/preditor/gui/logger_window_handler.py +0 -0
- {preditor-2.2.0 → preditor-2.4.0}/preditor/gui/logger_window_plugin.py +0 -0
- {preditor-2.2.0 → preditor-2.4.0}/preditor/gui/newtabwidget.py +0 -0
- {preditor-2.2.0 → preditor-2.4.0}/preditor/gui/output_console.py +0 -0
- {preditor-2.2.0 → preditor-2.4.0}/preditor/gui/qtdesigner/__init__.py +0 -0
- {preditor-2.2.0 → preditor-2.4.0}/preditor/gui/qtdesigner/_log_plugin.py +0 -0
- {preditor-2.2.0 → preditor-2.4.0}/preditor/gui/qtdesigner/console_base_plugin.py +0 -0
- {preditor-2.2.0 → preditor-2.4.0}/preditor/gui/qtdesigner/console_predit_plugin.py +0 -0
- {preditor-2.2.0 → preditor-2.4.0}/preditor/gui/set_text_editor_path_dialog.py +0 -0
- {preditor-2.2.0 → preditor-2.4.0}/preditor/gui/status_label.py +0 -0
- {preditor-2.2.0 → preditor-2.4.0}/preditor/gui/suggest_path_quotes_dialog.py +0 -0
- {preditor-2.2.0 → preditor-2.4.0}/preditor/gui/ui/editor_chooser.ui +0 -0
- {preditor-2.2.0 → preditor-2.4.0}/preditor/gui/ui/errordialog.ui +0 -0
- {preditor-2.2.0 → preditor-2.4.0}/preditor/gui/ui/find_files.ui +0 -0
- {preditor-2.2.0 → preditor-2.4.0}/preditor/gui/ui/loggerwindow.ui +0 -0
- {preditor-2.2.0 → preditor-2.4.0}/preditor/gui/ui/set_text_editor_path_dialog.ui +0 -0
- {preditor-2.2.0 → preditor-2.4.0}/preditor/gui/ui/suggest_path_quotes_dialog.ui +0 -0
- {preditor-2.2.0 → preditor-2.4.0}/preditor/gui/window.py +0 -0
- {preditor-2.2.0 → preditor-2.4.0}/preditor/gui/workbox_mixin.py +0 -0
- {preditor-2.2.0 → preditor-2.4.0}/preditor/gui/workbox_text_edit.py +0 -0
- {preditor-2.2.0 → preditor-2.4.0}/preditor/gui/workboxwidget.py +0 -0
- {preditor-2.2.0 → preditor-2.4.0}/preditor/logging_config.py +0 -0
- {preditor-2.2.0 → preditor-2.4.0}/preditor/osystem.py +0 -0
- {preditor-2.2.0 → preditor-2.4.0}/preditor/plugins.py +0 -0
- {preditor-2.2.0 → preditor-2.4.0}/preditor/resource/error_mail.html +0 -0
- {preditor-2.2.0 → preditor-2.4.0}/preditor/resource/error_mail_inline.html +0 -0
- {preditor-2.2.0 → preditor-2.4.0}/preditor/resource/img/README.md +0 -0
- {preditor-2.2.0 → preditor-2.4.0}/preditor/resource/img/arrow_forward.png +0 -0
- {preditor-2.2.0 → preditor-2.4.0}/preditor/resource/img/check-bold.png +0 -0
- {preditor-2.2.0 → preditor-2.4.0}/preditor/resource/img/chevron-down.png +0 -0
- {preditor-2.2.0 → preditor-2.4.0}/preditor/resource/img/chevron-up.png +0 -0
- {preditor-2.2.0 → preditor-2.4.0}/preditor/resource/img/close-thick.png +0 -0
- {preditor-2.2.0 → preditor-2.4.0}/preditor/resource/img/comment-edit.png +0 -0
- {preditor-2.2.0 → preditor-2.4.0}/preditor/resource/img/content-copy.png +0 -0
- {preditor-2.2.0 → preditor-2.4.0}/preditor/resource/img/content-cut.png +0 -0
- {preditor-2.2.0 → preditor-2.4.0}/preditor/resource/img/content-duplicate.png +0 -0
- {preditor-2.2.0 → preditor-2.4.0}/preditor/resource/img/content-paste.png +0 -0
- {preditor-2.2.0 → preditor-2.4.0}/preditor/resource/img/content-save.png +0 -0
- {preditor-2.2.0 → preditor-2.4.0}/preditor/resource/img/debug_disabled.png +0 -0
- {preditor-2.2.0 → preditor-2.4.0}/preditor/resource/img/eye-check.png +0 -0
- {preditor-2.2.0 → preditor-2.4.0}/preditor/resource/img/file-plus.png +0 -0
- {preditor-2.2.0 → preditor-2.4.0}/preditor/resource/img/file-remove.png +0 -0
- {preditor-2.2.0 → preditor-2.4.0}/preditor/resource/img/format-align-left.png +0 -0
- {preditor-2.2.0 → preditor-2.4.0}/preditor/resource/img/format-letter-case-lower.png +0 -0
- {preditor-2.2.0 → preditor-2.4.0}/preditor/resource/img/format-letter-case-upper.png +0 -0
- {preditor-2.2.0 → preditor-2.4.0}/preditor/resource/img/format-letter-case.svg +0 -0
- {preditor-2.2.0 → preditor-2.4.0}/preditor/resource/img/information.png +0 -0
- {preditor-2.2.0 → preditor-2.4.0}/preditor/resource/img/logging_critical.png +0 -0
- {preditor-2.2.0 → preditor-2.4.0}/preditor/resource/img/logging_custom.png +0 -0
- {preditor-2.2.0 → preditor-2.4.0}/preditor/resource/img/logging_debug.png +0 -0
- {preditor-2.2.0 → preditor-2.4.0}/preditor/resource/img/logging_error.png +0 -0
- {preditor-2.2.0 → preditor-2.4.0}/preditor/resource/img/logging_info.png +0 -0
- {preditor-2.2.0 → preditor-2.4.0}/preditor/resource/img/logging_not_set.png +0 -0
- {preditor-2.2.0 → preditor-2.4.0}/preditor/resource/img/logging_warning.png +0 -0
- {preditor-2.2.0 → preditor-2.4.0}/preditor/resource/img/marker.png +0 -0
- {preditor-2.2.0 → preditor-2.4.0}/preditor/resource/img/play.png +0 -0
- {preditor-2.2.0 → preditor-2.4.0}/preditor/resource/img/playlist-play.png +0 -0
- {preditor-2.2.0 → preditor-2.4.0}/preditor/resource/img/plus-minus-variant.png +0 -0
- {preditor-2.2.0 → preditor-2.4.0}/preditor/resource/img/preditor.ico +0 -0
- {preditor-2.2.0 → preditor-2.4.0}/preditor/resource/img/preditor.png +0 -0
- {preditor-2.2.0 → preditor-2.4.0}/preditor/resource/img/preditor.psd +0 -0
- {preditor-2.2.0 → preditor-2.4.0}/preditor/resource/img/preditor.svg +0 -0
- {preditor-2.2.0 → preditor-2.4.0}/preditor/resource/img/regex.svg +0 -0
- {preditor-2.2.0 → preditor-2.4.0}/preditor/resource/img/restart.svg +0 -0
- {preditor-2.2.0 → preditor-2.4.0}/preditor/resource/img/skip-forward-outline.png +0 -0
- {preditor-2.2.0 → preditor-2.4.0}/preditor/resource/img/skip-next-outline.png +0 -0
- {preditor-2.2.0 → preditor-2.4.0}/preditor/resource/img/skip-next.png +0 -0
- {preditor-2.2.0 → preditor-2.4.0}/preditor/resource/img/skip-previous.png +0 -0
- {preditor-2.2.0 → preditor-2.4.0}/preditor/resource/img/subdirectory-arrow-right.png +0 -0
- {preditor-2.2.0 → preditor-2.4.0}/preditor/resource/img/text-search-variant.png +0 -0
- {preditor-2.2.0 → preditor-2.4.0}/preditor/resource/img/warning-big.png +0 -0
- {preditor-2.2.0 → preditor-2.4.0}/preditor/resource/lang/python.json +0 -0
- {preditor-2.2.0 → preditor-2.4.0}/preditor/resource/pref_updates/pref_updates.json +0 -0
- {preditor-2.2.0 → preditor-2.4.0}/preditor/resource/stylesheet/Bright.css +0 -0
- {preditor-2.2.0 → preditor-2.4.0}/preditor/resource/stylesheet/Dark.css +0 -0
- {preditor-2.2.0 → preditor-2.4.0}/preditor/scintilla/__init__.py +0 -0
- {preditor-2.2.0 → preditor-2.4.0}/preditor/scintilla/delayables/__init__.py +0 -0
- {preditor-2.2.0 → preditor-2.4.0}/preditor/scintilla/delayables/smart_highlight.py +0 -0
- {preditor-2.2.0 → preditor-2.4.0}/preditor/scintilla/delayables/spell_check.py +0 -0
- {preditor-2.2.0 → preditor-2.4.0}/preditor/scintilla/documenteditor.py +0 -0
- {preditor-2.2.0 → preditor-2.4.0}/preditor/scintilla/finddialog.py +0 -0
- {preditor-2.2.0 → preditor-2.4.0}/preditor/scintilla/lang/__init__.py +0 -0
- {preditor-2.2.0 → preditor-2.4.0}/preditor/scintilla/lang/config/bash.ini +0 -0
- {preditor-2.2.0 → preditor-2.4.0}/preditor/scintilla/lang/config/batch.ini +0 -0
- {preditor-2.2.0 → preditor-2.4.0}/preditor/scintilla/lang/config/cpp.ini +0 -0
- {preditor-2.2.0 → preditor-2.4.0}/preditor/scintilla/lang/config/css.ini +0 -0
- {preditor-2.2.0 → preditor-2.4.0}/preditor/scintilla/lang/config/eyeonscript.ini +0 -0
- {preditor-2.2.0 → preditor-2.4.0}/preditor/scintilla/lang/config/html.ini +0 -0
- {preditor-2.2.0 → preditor-2.4.0}/preditor/scintilla/lang/config/javascript.ini +0 -0
- {preditor-2.2.0 → preditor-2.4.0}/preditor/scintilla/lang/config/lua.ini +0 -0
- {preditor-2.2.0 → preditor-2.4.0}/preditor/scintilla/lang/config/maxscript.ini +0 -0
- {preditor-2.2.0 → preditor-2.4.0}/preditor/scintilla/lang/config/mel.ini +0 -0
- {preditor-2.2.0 → preditor-2.4.0}/preditor/scintilla/lang/config/mu.ini +0 -0
- {preditor-2.2.0 → preditor-2.4.0}/preditor/scintilla/lang/config/nsi.ini +0 -0
- {preditor-2.2.0 → preditor-2.4.0}/preditor/scintilla/lang/config/perl.ini +0 -0
- {preditor-2.2.0 → preditor-2.4.0}/preditor/scintilla/lang/config/puppet.ini +0 -0
- {preditor-2.2.0 → preditor-2.4.0}/preditor/scintilla/lang/config/python.ini +0 -0
- {preditor-2.2.0 → preditor-2.4.0}/preditor/scintilla/lang/config/ruby.ini +0 -0
- {preditor-2.2.0 → preditor-2.4.0}/preditor/scintilla/lang/config/sql.ini +0 -0
- {preditor-2.2.0 → preditor-2.4.0}/preditor/scintilla/lang/config/xml.ini +0 -0
- {preditor-2.2.0 → preditor-2.4.0}/preditor/scintilla/lang/config/yaml.ini +0 -0
- {preditor-2.2.0 → preditor-2.4.0}/preditor/scintilla/lang/language.py +0 -0
- {preditor-2.2.0 → preditor-2.4.0}/preditor/scintilla/lexers/__init__.py +0 -0
- {preditor-2.2.0 → preditor-2.4.0}/preditor/scintilla/lexers/cpplexer.py +0 -0
- {preditor-2.2.0 → preditor-2.4.0}/preditor/scintilla/lexers/javascriptlexer.py +0 -0
- {preditor-2.2.0 → preditor-2.4.0}/preditor/scintilla/lexers/maxscriptlexer.py +0 -0
- {preditor-2.2.0 → preditor-2.4.0}/preditor/scintilla/lexers/mellexer.py +0 -0
- {preditor-2.2.0 → preditor-2.4.0}/preditor/scintilla/lexers/mulexer.py +0 -0
- {preditor-2.2.0 → preditor-2.4.0}/preditor/scintilla/lexers/pythonlexer.py +0 -0
- {preditor-2.2.0 → preditor-2.4.0}/preditor/scintilla/ui/finddialog.ui +0 -0
- {preditor-2.2.0 → preditor-2.4.0}/preditor/settings.py +0 -0
- {preditor-2.2.0 → preditor-2.4.0}/preditor/stream/__init__.py +0 -0
- {preditor-2.2.0 → preditor-2.4.0}/preditor/stream/console_handler.py +0 -0
- {preditor-2.2.0 → preditor-2.4.0}/preditor/stream/manager.py +0 -0
- {preditor-2.2.0 → preditor-2.4.0}/preditor/streamhandler_helper.py +0 -0
- {preditor-2.2.0 → preditor-2.4.0}/preditor/utils/__init__.py +0 -0
- {preditor-2.2.0 → preditor-2.4.0}/preditor/utils/call_stack.py +0 -0
- {preditor-2.2.0 → preditor-2.4.0}/preditor/utils/cute.py +0 -0
- {preditor-2.2.0 → preditor-2.4.0}/preditor/utils/stylesheets.py +0 -0
- {preditor-2.2.0 → preditor-2.4.0}/preditor/utils/text_search.py +0 -0
- {preditor-2.2.0 → preditor-2.4.0}/preditor/weakref.py +0 -0
- {preditor-2.2.0 → preditor-2.4.0}/pyproject.toml +0 -0
- {preditor-2.2.0 → preditor-2.4.0}/requirements-cli.txt +0 -0
- {preditor-2.2.0 → preditor-2.4.0}/requirements-dev.txt +0 -0
- {preditor-2.2.0 → preditor-2.4.0}/requirements-qsci5.txt +0 -0
- {preditor-2.2.0 → preditor-2.4.0}/requirements-qsci6.txt +0 -0
- {preditor-2.2.0 → preditor-2.4.0}/requirements-shortcut.txt +0 -0
- {preditor-2.2.0 → preditor-2.4.0}/requirements.txt +0 -0
- {preditor-2.2.0 → preditor-2.4.0}/setup.cfg +0 -0
- {preditor-2.2.0 → preditor-2.4.0}/tox.ini +0 -0
|
@@ -11,12 +11,12 @@ jobs:
|
|
|
11
11
|
|
|
12
12
|
steps:
|
|
13
13
|
- name: Checkout code
|
|
14
|
-
uses: actions/checkout@
|
|
14
|
+
uses: actions/checkout@v6
|
|
15
15
|
with:
|
|
16
16
|
fetch-depth: 0
|
|
17
17
|
|
|
18
18
|
- name: Setup Python
|
|
19
|
-
uses: actions/setup-python@
|
|
19
|
+
uses: actions/setup-python@v6
|
|
20
20
|
with:
|
|
21
21
|
python-version: "3.x"
|
|
22
22
|
|
|
@@ -31,7 +31,7 @@ jobs:
|
|
|
31
31
|
|
|
32
32
|
# Upload the built pip packages so we can inspect them
|
|
33
33
|
- name: Upload packages.
|
|
34
|
-
uses: actions/upload-artifact@
|
|
34
|
+
uses: actions/upload-artifact@v7
|
|
35
35
|
with:
|
|
36
36
|
name: pip-packages
|
|
37
37
|
path: |
|
|
@@ -17,10 +17,10 @@ jobs:
|
|
|
17
17
|
|
|
18
18
|
steps:
|
|
19
19
|
- name: Checkout code
|
|
20
|
-
uses: actions/checkout@
|
|
20
|
+
uses: actions/checkout@v6
|
|
21
21
|
|
|
22
22
|
- name: Setup Python
|
|
23
|
-
uses: actions/setup-python@
|
|
23
|
+
uses: actions/setup-python@v6
|
|
24
24
|
with:
|
|
25
25
|
python-version: "3.11"
|
|
26
26
|
|
|
@@ -60,10 +60,10 @@ jobs:
|
|
|
60
60
|
|
|
61
61
|
steps:
|
|
62
62
|
- name: Checkout code
|
|
63
|
-
uses: actions/checkout@
|
|
63
|
+
uses: actions/checkout@v6
|
|
64
64
|
|
|
65
65
|
- name: Setup Python
|
|
66
|
-
uses: actions/setup-python@
|
|
66
|
+
uses: actions/setup-python@v6
|
|
67
67
|
with:
|
|
68
68
|
python-version: ${{ matrix.python }}
|
|
69
69
|
|
|
@@ -77,7 +77,7 @@ jobs:
|
|
|
77
77
|
tox -e begin,py -- --tb short
|
|
78
78
|
|
|
79
79
|
- name: Upload coverage
|
|
80
|
-
uses: actions/upload-artifact@
|
|
80
|
+
uses: actions/upload-artifact@v7
|
|
81
81
|
with:
|
|
82
82
|
name: coverage-${{ matrix.os }}-${{ matrix.python }}
|
|
83
83
|
path: .coverage/*
|
|
@@ -97,10 +97,10 @@ jobs:
|
|
|
97
97
|
runs-on: ubuntu-latest
|
|
98
98
|
steps:
|
|
99
99
|
- name: Checkout code
|
|
100
|
-
uses: actions/checkout@
|
|
100
|
+
uses: actions/checkout@v6
|
|
101
101
|
|
|
102
102
|
- name: Setup Python
|
|
103
|
-
uses: actions/setup-python@
|
|
103
|
+
uses: actions/setup-python@v6
|
|
104
104
|
with:
|
|
105
105
|
python-version: "3.x"
|
|
106
106
|
|
|
@@ -115,7 +115,7 @@ jobs:
|
|
|
115
115
|
tox -e begin
|
|
116
116
|
|
|
117
117
|
- name: Download coverage artifacts
|
|
118
|
-
uses: actions/download-artifact@
|
|
118
|
+
uses: actions/download-artifact@v8
|
|
119
119
|
with:
|
|
120
120
|
path: .coverage/
|
|
121
121
|
pattern: coverage-*
|
|
@@ -136,7 +136,7 @@ jobs:
|
|
|
136
136
|
# python -m coverage report --fail-under=100
|
|
137
137
|
|
|
138
138
|
- name: Upload HTML report if check failed.
|
|
139
|
-
uses: actions/upload-artifact@
|
|
139
|
+
uses: actions/upload-artifact@v7
|
|
140
140
|
with:
|
|
141
141
|
name: html-report
|
|
142
142
|
path: htmlcov
|
|
@@ -160,12 +160,12 @@ jobs:
|
|
|
160
160
|
|
|
161
161
|
steps:
|
|
162
162
|
- name: Checkout code
|
|
163
|
-
uses: actions/checkout@
|
|
163
|
+
uses: actions/checkout@v6
|
|
164
164
|
with:
|
|
165
165
|
fetch-depth: 0
|
|
166
166
|
|
|
167
167
|
- name: Setup Python
|
|
168
|
-
uses: actions/setup-python@
|
|
168
|
+
uses: actions/setup-python@v6
|
|
169
169
|
with:
|
|
170
170
|
python-version: "3.x"
|
|
171
171
|
|
|
@@ -179,7 +179,7 @@ jobs:
|
|
|
179
179
|
python -m build --wheel --sdist
|
|
180
180
|
|
|
181
181
|
- name: Upload packages.
|
|
182
|
-
uses: actions/upload-artifact@
|
|
182
|
+
uses: actions/upload-artifact@v7
|
|
183
183
|
with:
|
|
184
184
|
name: pip-packages
|
|
185
185
|
path: |
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: PrEditor
|
|
3
|
-
Version: 2.
|
|
3
|
+
Version: 2.4.0
|
|
4
4
|
Summary: A python REPL and Editor and console based on Qt.
|
|
5
5
|
Author-email: Blur Studio <opensource@blur.com>
|
|
6
6
|
License: LGPL-3.0
|
|
@@ -262,6 +262,37 @@ or add menu items. When using this plugin, make sure to use the
|
|
|
262
262
|
to the LoggingLevelButton's handlers sub-menus. This allows you to install a
|
|
263
263
|
handler instance on a specific logging object.
|
|
264
264
|
|
|
265
|
+
# Testing
|
|
266
|
+
|
|
267
|
+
We use [tox](https://tox.wiki/) to run tests across multiple python versions and to run
|
|
268
|
+
linting/formatting checks. This ensures that the code works correctly across all
|
|
269
|
+
supported versions of python.
|
|
270
|
+
|
|
271
|
+
While you can run `pytest` directly, using `tox` is recommended as it ensures all
|
|
272
|
+
dependencies are correctly installed and runs the full suite of checks.
|
|
273
|
+
|
|
274
|
+
To run all tests and checks:
|
|
275
|
+
```batch
|
|
276
|
+
tox
|
|
277
|
+
```
|
|
278
|
+
|
|
279
|
+
You can speed up testing by `-p` to make the tests run in parallel.
|
|
280
|
+
|
|
281
|
+
To run only a specific environment (e.g., python 3.11):
|
|
282
|
+
```batch
|
|
283
|
+
tox -e py311
|
|
284
|
+
```
|
|
285
|
+
|
|
286
|
+
To run a specific test file or pass arguments to pytest, use `--`:
|
|
287
|
+
```batch
|
|
288
|
+
tox -e py311 -- tests/test_stream.py
|
|
289
|
+
```
|
|
290
|
+
|
|
291
|
+
To run only the linting checks:
|
|
292
|
+
```batch
|
|
293
|
+
tox -e black,flake8,deptry
|
|
294
|
+
```
|
|
295
|
+
|
|
265
296
|
# Qt Designer integration
|
|
266
297
|
|
|
267
298
|
PrEditor includes some reusable widgets that are useful to integrate into your
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: PrEditor
|
|
3
|
-
Version: 2.
|
|
3
|
+
Version: 2.4.0
|
|
4
4
|
Summary: A python REPL and Editor and console based on Qt.
|
|
5
5
|
Author-email: Blur Studio <opensource@blur.com>
|
|
6
6
|
License: LGPL-3.0
|
|
@@ -262,6 +262,37 @@ or add menu items. When using this plugin, make sure to use the
|
|
|
262
262
|
to the LoggingLevelButton's handlers sub-menus. This allows you to install a
|
|
263
263
|
handler instance on a specific logging object.
|
|
264
264
|
|
|
265
|
+
# Testing
|
|
266
|
+
|
|
267
|
+
We use [tox](https://tox.wiki/) to run tests across multiple python versions and to run
|
|
268
|
+
linting/formatting checks. This ensures that the code works correctly across all
|
|
269
|
+
supported versions of python.
|
|
270
|
+
|
|
271
|
+
While you can run `pytest` directly, using `tox` is recommended as it ensures all
|
|
272
|
+
dependencies are correctly installed and runs the full suite of checks.
|
|
273
|
+
|
|
274
|
+
To run all tests and checks:
|
|
275
|
+
```batch
|
|
276
|
+
tox
|
|
277
|
+
```
|
|
278
|
+
|
|
279
|
+
You can speed up testing by `-p` to make the tests run in parallel.
|
|
280
|
+
|
|
281
|
+
To run only a specific environment (e.g., python 3.11):
|
|
282
|
+
```batch
|
|
283
|
+
tox -e py311
|
|
284
|
+
```
|
|
285
|
+
|
|
286
|
+
To run a specific test file or pass arguments to pytest, use `--`:
|
|
287
|
+
```batch
|
|
288
|
+
tox -e py311 -- tests/test_stream.py
|
|
289
|
+
```
|
|
290
|
+
|
|
291
|
+
To run only the linting checks:
|
|
292
|
+
```batch
|
|
293
|
+
tox -e black,flake8,deptry
|
|
294
|
+
```
|
|
295
|
+
|
|
265
296
|
# Qt Designer integration
|
|
266
297
|
|
|
267
298
|
PrEditor includes some reusable widgets that are useful to integrate into your
|
|
@@ -216,6 +216,37 @@ or add menu items. When using this plugin, make sure to use the
|
|
|
216
216
|
to the LoggingLevelButton's handlers sub-menus. This allows you to install a
|
|
217
217
|
handler instance on a specific logging object.
|
|
218
218
|
|
|
219
|
+
# Testing
|
|
220
|
+
|
|
221
|
+
We use [tox](https://tox.wiki/) to run tests across multiple python versions and to run
|
|
222
|
+
linting/formatting checks. This ensures that the code works correctly across all
|
|
223
|
+
supported versions of python.
|
|
224
|
+
|
|
225
|
+
While you can run `pytest` directly, using `tox` is recommended as it ensures all
|
|
226
|
+
dependencies are correctly installed and runs the full suite of checks.
|
|
227
|
+
|
|
228
|
+
To run all tests and checks:
|
|
229
|
+
```batch
|
|
230
|
+
tox
|
|
231
|
+
```
|
|
232
|
+
|
|
233
|
+
You can speed up testing by `-p` to make the tests run in parallel.
|
|
234
|
+
|
|
235
|
+
To run only a specific environment (e.g., python 3.11):
|
|
236
|
+
```batch
|
|
237
|
+
tox -e py311
|
|
238
|
+
```
|
|
239
|
+
|
|
240
|
+
To run a specific test file or pass arguments to pytest, use `--`:
|
|
241
|
+
```batch
|
|
242
|
+
tox -e py311 -- tests/test_stream.py
|
|
243
|
+
```
|
|
244
|
+
|
|
245
|
+
To run only the linting checks:
|
|
246
|
+
```batch
|
|
247
|
+
tox -e black,flake8,deptry
|
|
248
|
+
```
|
|
249
|
+
|
|
219
250
|
# Qt Designer integration
|
|
220
251
|
|
|
221
252
|
PrEditor includes some reusable widgets that are useful to integrate into your
|
|
@@ -8,7 +8,7 @@ from fractions import Fraction
|
|
|
8
8
|
from typing import Optional
|
|
9
9
|
|
|
10
10
|
from Qt import QtCompat
|
|
11
|
-
from Qt.QtCore import Property, Qt
|
|
11
|
+
from Qt.QtCore import Property, Qt, QTimer
|
|
12
12
|
from Qt.QtGui import (
|
|
13
13
|
QColor,
|
|
14
14
|
QFontMetrics,
|
|
@@ -308,9 +308,9 @@ class ConsoleBase(QTextEdit):
|
|
|
308
308
|
workbox = self.controller.workbox_for_name(name)
|
|
309
309
|
if not workbox:
|
|
310
310
|
return None
|
|
311
|
-
if lineNum > workbox.
|
|
311
|
+
if lineNum > workbox.__num_lines__():
|
|
312
312
|
return None
|
|
313
|
-
txt = workbox.
|
|
313
|
+
txt = workbox.__text_part__(lineNum=lineNum).strip() + "\n"
|
|
314
314
|
return txt
|
|
315
315
|
|
|
316
316
|
def init_actions(self):
|
|
@@ -514,8 +514,10 @@ class ConsoleBase(QTextEdit):
|
|
|
514
514
|
if not self._first_show:
|
|
515
515
|
return False
|
|
516
516
|
|
|
517
|
-
# Configure the stream callbacks if enabled
|
|
518
|
-
|
|
517
|
+
# Configure the stream callbacks if enabled. Delay calling these until
|
|
518
|
+
# the UI has been fully shown. This is prevents some DCC's like
|
|
519
|
+
# Houdini 21.0(possibly Qt6) from segfaulting.
|
|
520
|
+
QTimer.singleShot(0, self.update_streams)
|
|
519
521
|
|
|
520
522
|
# Redefine highlight variables now that stylesheet may have been updated
|
|
521
523
|
self.codeHighlighter().defineHighlightVariables()
|
|
@@ -375,6 +375,9 @@ class GroupTabWidget(OneTabWidget):
|
|
|
375
375
|
missing_name = f"{group_name}/{name}"
|
|
376
376
|
workboxes_missing_id.append(missing_name)
|
|
377
377
|
continue
|
|
378
|
+
else:
|
|
379
|
+
# If only the tempfile is set, use it as the workbox_id
|
|
380
|
+
workbox_id = Path(tempfile).stem
|
|
378
381
|
|
|
379
382
|
orphaned_by_instance = tab.get('orphaned_by_instance', False)
|
|
380
383
|
|
|
@@ -389,7 +392,7 @@ class GroupTabWidget(OneTabWidget):
|
|
|
389
392
|
|
|
390
393
|
# There is a file on disk, add the tab, creating the group
|
|
391
394
|
# tab if it hasn't already been created.
|
|
392
|
-
|
|
395
|
+
localprefs = dict(
|
|
393
396
|
workbox_id=workbox_id,
|
|
394
397
|
filename=filename,
|
|
395
398
|
backup_file=backup_file,
|
|
@@ -398,7 +401,7 @@ class GroupTabWidget(OneTabWidget):
|
|
|
398
401
|
tempfile=tempfile,
|
|
399
402
|
)
|
|
400
403
|
tab_widget, editor = self.add_new_tab(
|
|
401
|
-
group_name, title=name, prefs=
|
|
404
|
+
group_name, title=name, prefs=localprefs
|
|
402
405
|
)
|
|
403
406
|
|
|
404
407
|
editor.__set_last_workbox_name__(editor.__workbox_name__())
|
|
@@ -897,7 +897,13 @@ class LoggerWindow(Window):
|
|
|
897
897
|
|
|
898
898
|
# Present a QFontDialog for user to choose a font
|
|
899
899
|
title = "Pick a {} font. Current font is: {}".format(kind, curFontFamily)
|
|
900
|
-
|
|
900
|
+
fontReturn = QFontDialog.getFont(origFont, self, title, options=options)
|
|
901
|
+
|
|
902
|
+
# QFontDialog.getFont returns a different order for Qt5 vs Qt6
|
|
903
|
+
if isinstance(fontReturn[0], bool):
|
|
904
|
+
okClicked, newFont = fontReturn
|
|
905
|
+
else:
|
|
906
|
+
newFont, okClicked = fontReturn
|
|
901
907
|
|
|
902
908
|
if okClicked:
|
|
903
909
|
if doGui:
|
|
@@ -1327,7 +1333,16 @@ class LoggerWindow(Window):
|
|
|
1327
1333
|
"""Clears the console before executing all workbox code"""
|
|
1328
1334
|
if self.uiClearBeforeRunningCHK.isChecked():
|
|
1329
1335
|
self.clearLog()
|
|
1330
|
-
self.current_workbox()
|
|
1336
|
+
workbox = self.current_workbox()
|
|
1337
|
+
if workbox is None:
|
|
1338
|
+
# If the user has not picked the workbox editor class but tries to use
|
|
1339
|
+
# the shortcut for them, raise a user friendly warning.
|
|
1340
|
+
raise RuntimeError(
|
|
1341
|
+
"You must choose an Editor Class in the workbox section before "
|
|
1342
|
+
"you can run code from it. (To run console code don't use Shift "
|
|
1343
|
+
"or Ctrl when pressing Return.)"
|
|
1344
|
+
)
|
|
1345
|
+
workbox.__exec_all__()
|
|
1331
1346
|
|
|
1332
1347
|
if self.uiAutoPromptCHK.isChecked():
|
|
1333
1348
|
console = self.console()
|
|
@@ -294,7 +294,7 @@ def get_prefs_updates():
|
|
|
294
294
|
updates (dict): The dict of defined updates
|
|
295
295
|
"""
|
|
296
296
|
updates = {}
|
|
297
|
-
path = resourcePath(
|
|
297
|
+
path = resourcePath("pref_updates/pref_updates.json")
|
|
298
298
|
try:
|
|
299
299
|
updates = utils.Json(path).load()
|
|
300
300
|
except (FileNotFoundError, json.decoder.JSONDecodeError):
|
|
@@ -104,6 +104,10 @@ class Director(io.TextIOWrapper):
|
|
|
104
104
|
raw = _DirectorBuffer(manager, state, old_stream, name)
|
|
105
105
|
buffer = io.BufferedWriter(raw)
|
|
106
106
|
|
|
107
|
+
# Disable newline translation in this TextIOWrapper so that it doesn't
|
|
108
|
+
# double up on Windows (where the old_stream will likely also do translation)
|
|
109
|
+
kwargs.setdefault("newline", "")
|
|
110
|
+
|
|
107
111
|
super().__init__(buffer, encoding="utf-8", write_through=True, *args, **kwargs)
|
|
108
112
|
|
|
109
113
|
def __repr__(self):
|
|
@@ -28,7 +28,7 @@ version_tuple: VERSION_TUPLE
|
|
|
28
28
|
commit_id: COMMIT_ID
|
|
29
29
|
__commit_id__: COMMIT_ID
|
|
30
30
|
|
|
31
|
-
__version__ = version = '2.
|
|
32
|
-
__version_tuple__ = version_tuple = (2,
|
|
31
|
+
__version__ = version = '2.4.0'
|
|
32
|
+
__version_tuple__ = version_tuple = (2, 4, 0)
|
|
33
33
|
|
|
34
|
-
__commit_id__ = commit_id = '
|
|
34
|
+
__commit_id__ = commit_id = 'g42f5e5010'
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|