PrEditor 2.1.0__tar.gz → 2.2.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.
Files changed (203) hide show
  1. {preditor-2.1.0 → preditor-2.2.0}/.github/workflows/static-analysis-and-test.yml +3 -1
  2. {preditor-2.1.0 → preditor-2.2.0}/PKG-INFO +1 -3
  3. {preditor-2.1.0 → preditor-2.2.0}/PrEditor.egg-info/PKG-INFO +1 -3
  4. {preditor-2.1.0 → preditor-2.2.0}/PrEditor.egg-info/SOURCES.txt +0 -1
  5. {preditor-2.1.0 → preditor-2.2.0}/PrEditor.egg-info/requires.txt +0 -2
  6. {preditor-2.1.0 → preditor-2.2.0}/preditor/about_module.py +1 -3
  7. {preditor-2.1.0 → preditor-2.2.0}/preditor/cli.py +2 -2
  8. {preditor-2.1.0 → preditor-2.2.0}/preditor/enum.py +6 -10
  9. {preditor-2.1.0 → preditor-2.2.0}/preditor/gui/console.py +1 -2
  10. {preditor-2.1.0 → preditor-2.2.0}/preditor/gui/drag_tab_bar.py +1 -2
  11. {preditor-2.1.0 → preditor-2.2.0}/preditor/gui/loggerwindow.py +1 -16
  12. {preditor-2.1.0 → preditor-2.2.0}/preditor/gui/ui/loggerwindow.ui +0 -1
  13. {preditor-2.1.0 → preditor-2.2.0}/preditor/osystem.py +5 -4
  14. {preditor-2.1.0 → preditor-2.2.0}/preditor/prefs.py +5 -7
  15. {preditor-2.1.0 → preditor-2.2.0}/preditor/scintilla/lang/language.py +1 -5
  16. {preditor-2.1.0 → preditor-2.2.0}/preditor/scintilla/lexers/maxscriptlexer.py +2 -5
  17. {preditor-2.1.0 → preditor-2.2.0}/preditor/settings.py +1 -5
  18. {preditor-2.1.0 → preditor-2.2.0}/preditor/utils/text_search.py +1 -3
  19. {preditor-2.1.0 → preditor-2.2.0}/preditor/version.py +3 -3
  20. {preditor-2.1.0 → preditor-2.2.0}/pyproject.toml +33 -0
  21. {preditor-2.1.0 → preditor-2.2.0}/requirements.txt +0 -2
  22. {preditor-2.1.0 → preditor-2.2.0}/tox.ini +13 -3
  23. preditor-2.1.0/preditor/resource/environment_variables.html +0 -26
  24. {preditor-2.1.0 → preditor-2.2.0}/.coveragerc +0 -0
  25. {preditor-2.1.0 → preditor-2.2.0}/.github/ISSUE_TEMPLATE/BUG_REPORT.md +0 -0
  26. {preditor-2.1.0 → preditor-2.2.0}/.github/ISSUE_TEMPLATE/FEATURE_REQUEST.md +0 -0
  27. {preditor-2.1.0 → preditor-2.2.0}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
  28. {preditor-2.1.0 → preditor-2.2.0}/.github/workflows/release.yml +0 -0
  29. {preditor-2.1.0 → preditor-2.2.0}/.gitignore +0 -0
  30. {preditor-2.1.0 → preditor-2.2.0}/.pre-commit-config.yaml +0 -0
  31. {preditor-2.1.0 → preditor-2.2.0}/CODE_OF_CONDUCT.md +0 -0
  32. {preditor-2.1.0 → preditor-2.2.0}/CONTRIBUTING.md +0 -0
  33. {preditor-2.1.0 → preditor-2.2.0}/LICENSE +0 -0
  34. {preditor-2.1.0 → preditor-2.2.0}/MANIFEST.in +0 -0
  35. {preditor-2.1.0 → preditor-2.2.0}/PrEditor.egg-info/dependency_links.txt +0 -0
  36. {preditor-2.1.0 → preditor-2.2.0}/PrEditor.egg-info/entry_points.txt +0 -0
  37. {preditor-2.1.0 → preditor-2.2.0}/PrEditor.egg-info/top_level.txt +0 -0
  38. {preditor-2.1.0 → preditor-2.2.0}/README.md +0 -0
  39. {preditor-2.1.0 → preditor-2.2.0}/examples/add_to_app.py +0 -0
  40. {preditor-2.1.0 → preditor-2.2.0}/examples/output_capture_and_show.py +0 -0
  41. {preditor-2.1.0 → preditor-2.2.0}/examples/output_console.py +0 -0
  42. {preditor-2.1.0 → preditor-2.2.0}/examples/output_console.ui +0 -0
  43. {preditor-2.1.0 → preditor-2.2.0}/preditor/__init__.py +0 -0
  44. {preditor-2.1.0 → preditor-2.2.0}/preditor/__main__.py +0 -0
  45. {preditor-2.1.0 → preditor-2.2.0}/preditor/config.py +0 -0
  46. {preditor-2.1.0 → preditor-2.2.0}/preditor/constants.py +0 -0
  47. {preditor-2.1.0 → preditor-2.2.0}/preditor/contexts.py +0 -0
  48. {preditor-2.1.0 → preditor-2.2.0}/preditor/cores/__init__.py +0 -0
  49. {preditor-2.1.0 → preditor-2.2.0}/preditor/cores/core.py +0 -0
  50. {preditor-2.1.0 → preditor-2.2.0}/preditor/dccs/.hab.json +0 -0
  51. {preditor-2.1.0 → preditor-2.2.0}/preditor/dccs/maya/PrEditor_maya.mod +0 -0
  52. {preditor-2.1.0 → preditor-2.2.0}/preditor/dccs/maya/README.md +0 -0
  53. {preditor-2.1.0 → preditor-2.2.0}/preditor/dccs/maya/plug-ins/PrEditor_maya.py +0 -0
  54. {preditor-2.1.0 → preditor-2.2.0}/preditor/dccs/studiomax/PackageContents.xml +0 -0
  55. {preditor-2.1.0 → preditor-2.2.0}/preditor/dccs/studiomax/PrEditor-PrEditor_Show.mcr +0 -0
  56. {preditor-2.1.0 → preditor-2.2.0}/preditor/dccs/studiomax/README.md +0 -0
  57. {preditor-2.1.0 → preditor-2.2.0}/preditor/dccs/studiomax/preditor.ms +0 -0
  58. {preditor-2.1.0 → preditor-2.2.0}/preditor/dccs/studiomax/preditor_menu.mnx +0 -0
  59. {preditor-2.1.0 → preditor-2.2.0}/preditor/debug.py +0 -0
  60. {preditor-2.1.0 → preditor-2.2.0}/preditor/delayable_engine/__init__.py +0 -0
  61. {preditor-2.1.0 → preditor-2.2.0}/preditor/delayable_engine/delayables.py +0 -0
  62. {preditor-2.1.0 → preditor-2.2.0}/preditor/excepthooks.py +0 -0
  63. {preditor-2.1.0 → preditor-2.2.0}/preditor/gui/__init__.py +0 -0
  64. {preditor-2.1.0 → preditor-2.2.0}/preditor/gui/app.py +0 -0
  65. {preditor-2.1.0 → preditor-2.2.0}/preditor/gui/codehighlighter.py +0 -0
  66. {preditor-2.1.0 → preditor-2.2.0}/preditor/gui/completer.py +0 -0
  67. {preditor-2.1.0 → preditor-2.2.0}/preditor/gui/console_base.py +0 -0
  68. {preditor-2.1.0 → preditor-2.2.0}/preditor/gui/dialog.py +0 -0
  69. {preditor-2.1.0 → preditor-2.2.0}/preditor/gui/editor_chooser.py +0 -0
  70. {preditor-2.1.0 → preditor-2.2.0}/preditor/gui/errordialog.py +0 -0
  71. {preditor-2.1.0 → preditor-2.2.0}/preditor/gui/find_files.py +0 -0
  72. {preditor-2.1.0 → preditor-2.2.0}/preditor/gui/fuzzy_search/__init__.py +0 -0
  73. {preditor-2.1.0 → preditor-2.2.0}/preditor/gui/fuzzy_search/fuzzy_search.py +0 -0
  74. {preditor-2.1.0 → preditor-2.2.0}/preditor/gui/group_tab_widget/__init__.py +0 -0
  75. {preditor-2.1.0 → preditor-2.2.0}/preditor/gui/group_tab_widget/group_tab_widget.py +0 -0
  76. {preditor-2.1.0 → preditor-2.2.0}/preditor/gui/group_tab_widget/grouped_tab_menu.py +0 -0
  77. {preditor-2.1.0 → preditor-2.2.0}/preditor/gui/group_tab_widget/grouped_tab_models.py +0 -0
  78. {preditor-2.1.0 → preditor-2.2.0}/preditor/gui/group_tab_widget/grouped_tab_widget.py +0 -0
  79. {preditor-2.1.0 → preditor-2.2.0}/preditor/gui/group_tab_widget/one_tab_widget.py +0 -0
  80. {preditor-2.1.0 → preditor-2.2.0}/preditor/gui/level_buttons.py +0 -0
  81. {preditor-2.1.0 → preditor-2.2.0}/preditor/gui/logger_window_handler.py +0 -0
  82. {preditor-2.1.0 → preditor-2.2.0}/preditor/gui/logger_window_plugin.py +0 -0
  83. {preditor-2.1.0 → preditor-2.2.0}/preditor/gui/newtabwidget.py +0 -0
  84. {preditor-2.1.0 → preditor-2.2.0}/preditor/gui/output_console.py +0 -0
  85. {preditor-2.1.0 → preditor-2.2.0}/preditor/gui/qtdesigner/__init__.py +0 -0
  86. {preditor-2.1.0 → preditor-2.2.0}/preditor/gui/qtdesigner/_log_plugin.py +0 -0
  87. {preditor-2.1.0 → preditor-2.2.0}/preditor/gui/qtdesigner/console_base_plugin.py +0 -0
  88. {preditor-2.1.0 → preditor-2.2.0}/preditor/gui/qtdesigner/console_predit_plugin.py +0 -0
  89. {preditor-2.1.0 → preditor-2.2.0}/preditor/gui/set_text_editor_path_dialog.py +0 -0
  90. {preditor-2.1.0 → preditor-2.2.0}/preditor/gui/status_label.py +0 -0
  91. {preditor-2.1.0 → preditor-2.2.0}/preditor/gui/suggest_path_quotes_dialog.py +0 -0
  92. {preditor-2.1.0 → preditor-2.2.0}/preditor/gui/ui/editor_chooser.ui +0 -0
  93. {preditor-2.1.0 → preditor-2.2.0}/preditor/gui/ui/errordialog.ui +0 -0
  94. {preditor-2.1.0 → preditor-2.2.0}/preditor/gui/ui/find_files.ui +0 -0
  95. {preditor-2.1.0 → preditor-2.2.0}/preditor/gui/ui/set_text_editor_path_dialog.ui +0 -0
  96. {preditor-2.1.0 → preditor-2.2.0}/preditor/gui/ui/suggest_path_quotes_dialog.ui +0 -0
  97. {preditor-2.1.0 → preditor-2.2.0}/preditor/gui/window.py +0 -0
  98. {preditor-2.1.0 → preditor-2.2.0}/preditor/gui/workbox_mixin.py +0 -0
  99. {preditor-2.1.0 → preditor-2.2.0}/preditor/gui/workbox_text_edit.py +0 -0
  100. {preditor-2.1.0 → preditor-2.2.0}/preditor/gui/workboxwidget.py +0 -0
  101. {preditor-2.1.0 → preditor-2.2.0}/preditor/logging_config.py +0 -0
  102. {preditor-2.1.0 → preditor-2.2.0}/preditor/plugins.py +0 -0
  103. {preditor-2.1.0 → preditor-2.2.0}/preditor/resource/error_mail.html +0 -0
  104. {preditor-2.1.0 → preditor-2.2.0}/preditor/resource/error_mail_inline.html +0 -0
  105. {preditor-2.1.0 → preditor-2.2.0}/preditor/resource/img/README.md +0 -0
  106. {preditor-2.1.0 → preditor-2.2.0}/preditor/resource/img/arrow_forward.png +0 -0
  107. {preditor-2.1.0 → preditor-2.2.0}/preditor/resource/img/check-bold.png +0 -0
  108. {preditor-2.1.0 → preditor-2.2.0}/preditor/resource/img/chevron-down.png +0 -0
  109. {preditor-2.1.0 → preditor-2.2.0}/preditor/resource/img/chevron-up.png +0 -0
  110. {preditor-2.1.0 → preditor-2.2.0}/preditor/resource/img/close-thick.png +0 -0
  111. {preditor-2.1.0 → preditor-2.2.0}/preditor/resource/img/comment-edit.png +0 -0
  112. {preditor-2.1.0 → preditor-2.2.0}/preditor/resource/img/content-copy.png +0 -0
  113. {preditor-2.1.0 → preditor-2.2.0}/preditor/resource/img/content-cut.png +0 -0
  114. {preditor-2.1.0 → preditor-2.2.0}/preditor/resource/img/content-duplicate.png +0 -0
  115. {preditor-2.1.0 → preditor-2.2.0}/preditor/resource/img/content-paste.png +0 -0
  116. {preditor-2.1.0 → preditor-2.2.0}/preditor/resource/img/content-save.png +0 -0
  117. {preditor-2.1.0 → preditor-2.2.0}/preditor/resource/img/debug_disabled.png +0 -0
  118. {preditor-2.1.0 → preditor-2.2.0}/preditor/resource/img/eye-check.png +0 -0
  119. {preditor-2.1.0 → preditor-2.2.0}/preditor/resource/img/file-plus.png +0 -0
  120. {preditor-2.1.0 → preditor-2.2.0}/preditor/resource/img/file-remove.png +0 -0
  121. {preditor-2.1.0 → preditor-2.2.0}/preditor/resource/img/format-align-left.png +0 -0
  122. {preditor-2.1.0 → preditor-2.2.0}/preditor/resource/img/format-letter-case-lower.png +0 -0
  123. {preditor-2.1.0 → preditor-2.2.0}/preditor/resource/img/format-letter-case-upper.png +0 -0
  124. {preditor-2.1.0 → preditor-2.2.0}/preditor/resource/img/format-letter-case.svg +0 -0
  125. {preditor-2.1.0 → preditor-2.2.0}/preditor/resource/img/information.png +0 -0
  126. {preditor-2.1.0 → preditor-2.2.0}/preditor/resource/img/logging_critical.png +0 -0
  127. {preditor-2.1.0 → preditor-2.2.0}/preditor/resource/img/logging_custom.png +0 -0
  128. {preditor-2.1.0 → preditor-2.2.0}/preditor/resource/img/logging_debug.png +0 -0
  129. {preditor-2.1.0 → preditor-2.2.0}/preditor/resource/img/logging_error.png +0 -0
  130. {preditor-2.1.0 → preditor-2.2.0}/preditor/resource/img/logging_info.png +0 -0
  131. {preditor-2.1.0 → preditor-2.2.0}/preditor/resource/img/logging_not_set.png +0 -0
  132. {preditor-2.1.0 → preditor-2.2.0}/preditor/resource/img/logging_warning.png +0 -0
  133. {preditor-2.1.0 → preditor-2.2.0}/preditor/resource/img/marker.png +0 -0
  134. {preditor-2.1.0 → preditor-2.2.0}/preditor/resource/img/play.png +0 -0
  135. {preditor-2.1.0 → preditor-2.2.0}/preditor/resource/img/playlist-play.png +0 -0
  136. {preditor-2.1.0 → preditor-2.2.0}/preditor/resource/img/plus-minus-variant.png +0 -0
  137. {preditor-2.1.0 → preditor-2.2.0}/preditor/resource/img/preditor.ico +0 -0
  138. {preditor-2.1.0 → preditor-2.2.0}/preditor/resource/img/preditor.png +0 -0
  139. {preditor-2.1.0 → preditor-2.2.0}/preditor/resource/img/preditor.psd +0 -0
  140. {preditor-2.1.0 → preditor-2.2.0}/preditor/resource/img/preditor.svg +0 -0
  141. {preditor-2.1.0 → preditor-2.2.0}/preditor/resource/img/regex.svg +0 -0
  142. {preditor-2.1.0 → preditor-2.2.0}/preditor/resource/img/restart.svg +0 -0
  143. {preditor-2.1.0 → preditor-2.2.0}/preditor/resource/img/skip-forward-outline.png +0 -0
  144. {preditor-2.1.0 → preditor-2.2.0}/preditor/resource/img/skip-next-outline.png +0 -0
  145. {preditor-2.1.0 → preditor-2.2.0}/preditor/resource/img/skip-next.png +0 -0
  146. {preditor-2.1.0 → preditor-2.2.0}/preditor/resource/img/skip-previous.png +0 -0
  147. {preditor-2.1.0 → preditor-2.2.0}/preditor/resource/img/subdirectory-arrow-right.png +0 -0
  148. {preditor-2.1.0 → preditor-2.2.0}/preditor/resource/img/text-search-variant.png +0 -0
  149. {preditor-2.1.0 → preditor-2.2.0}/preditor/resource/img/warning-big.png +0 -0
  150. {preditor-2.1.0 → preditor-2.2.0}/preditor/resource/lang/python.json +0 -0
  151. {preditor-2.1.0 → preditor-2.2.0}/preditor/resource/pref_updates/pref_updates.json +0 -0
  152. {preditor-2.1.0 → preditor-2.2.0}/preditor/resource/settings.ini +0 -0
  153. {preditor-2.1.0 → preditor-2.2.0}/preditor/resource/stylesheet/Bright.css +0 -0
  154. {preditor-2.1.0 → preditor-2.2.0}/preditor/resource/stylesheet/Dark.css +0 -0
  155. {preditor-2.1.0 → preditor-2.2.0}/preditor/scintilla/__init__.py +0 -0
  156. {preditor-2.1.0 → preditor-2.2.0}/preditor/scintilla/delayables/__init__.py +0 -0
  157. {preditor-2.1.0 → preditor-2.2.0}/preditor/scintilla/delayables/smart_highlight.py +0 -0
  158. {preditor-2.1.0 → preditor-2.2.0}/preditor/scintilla/delayables/spell_check.py +0 -0
  159. {preditor-2.1.0 → preditor-2.2.0}/preditor/scintilla/documenteditor.py +0 -0
  160. {preditor-2.1.0 → preditor-2.2.0}/preditor/scintilla/finddialog.py +0 -0
  161. {preditor-2.1.0 → preditor-2.2.0}/preditor/scintilla/lang/__init__.py +0 -0
  162. {preditor-2.1.0 → preditor-2.2.0}/preditor/scintilla/lang/config/bash.ini +0 -0
  163. {preditor-2.1.0 → preditor-2.2.0}/preditor/scintilla/lang/config/batch.ini +0 -0
  164. {preditor-2.1.0 → preditor-2.2.0}/preditor/scintilla/lang/config/cpp.ini +0 -0
  165. {preditor-2.1.0 → preditor-2.2.0}/preditor/scintilla/lang/config/css.ini +0 -0
  166. {preditor-2.1.0 → preditor-2.2.0}/preditor/scintilla/lang/config/eyeonscript.ini +0 -0
  167. {preditor-2.1.0 → preditor-2.2.0}/preditor/scintilla/lang/config/html.ini +0 -0
  168. {preditor-2.1.0 → preditor-2.2.0}/preditor/scintilla/lang/config/javascript.ini +0 -0
  169. {preditor-2.1.0 → preditor-2.2.0}/preditor/scintilla/lang/config/lua.ini +0 -0
  170. {preditor-2.1.0 → preditor-2.2.0}/preditor/scintilla/lang/config/maxscript.ini +0 -0
  171. {preditor-2.1.0 → preditor-2.2.0}/preditor/scintilla/lang/config/mel.ini +0 -0
  172. {preditor-2.1.0 → preditor-2.2.0}/preditor/scintilla/lang/config/mu.ini +0 -0
  173. {preditor-2.1.0 → preditor-2.2.0}/preditor/scintilla/lang/config/nsi.ini +0 -0
  174. {preditor-2.1.0 → preditor-2.2.0}/preditor/scintilla/lang/config/perl.ini +0 -0
  175. {preditor-2.1.0 → preditor-2.2.0}/preditor/scintilla/lang/config/puppet.ini +0 -0
  176. {preditor-2.1.0 → preditor-2.2.0}/preditor/scintilla/lang/config/python.ini +0 -0
  177. {preditor-2.1.0 → preditor-2.2.0}/preditor/scintilla/lang/config/ruby.ini +0 -0
  178. {preditor-2.1.0 → preditor-2.2.0}/preditor/scintilla/lang/config/sql.ini +0 -0
  179. {preditor-2.1.0 → preditor-2.2.0}/preditor/scintilla/lang/config/xml.ini +0 -0
  180. {preditor-2.1.0 → preditor-2.2.0}/preditor/scintilla/lang/config/yaml.ini +0 -0
  181. {preditor-2.1.0 → preditor-2.2.0}/preditor/scintilla/lexers/__init__.py +0 -0
  182. {preditor-2.1.0 → preditor-2.2.0}/preditor/scintilla/lexers/cpplexer.py +0 -0
  183. {preditor-2.1.0 → preditor-2.2.0}/preditor/scintilla/lexers/javascriptlexer.py +0 -0
  184. {preditor-2.1.0 → preditor-2.2.0}/preditor/scintilla/lexers/mellexer.py +0 -0
  185. {preditor-2.1.0 → preditor-2.2.0}/preditor/scintilla/lexers/mulexer.py +0 -0
  186. {preditor-2.1.0 → preditor-2.2.0}/preditor/scintilla/lexers/pythonlexer.py +0 -0
  187. {preditor-2.1.0 → preditor-2.2.0}/preditor/scintilla/ui/finddialog.ui +0 -0
  188. {preditor-2.1.0 → preditor-2.2.0}/preditor/stream/__init__.py +0 -0
  189. {preditor-2.1.0 → preditor-2.2.0}/preditor/stream/console_handler.py +0 -0
  190. {preditor-2.1.0 → preditor-2.2.0}/preditor/stream/director.py +0 -0
  191. {preditor-2.1.0 → preditor-2.2.0}/preditor/stream/manager.py +0 -0
  192. {preditor-2.1.0 → preditor-2.2.0}/preditor/streamhandler_helper.py +0 -0
  193. {preditor-2.1.0 → preditor-2.2.0}/preditor/utils/__init__.py +0 -0
  194. {preditor-2.1.0 → preditor-2.2.0}/preditor/utils/call_stack.py +0 -0
  195. {preditor-2.1.0 → preditor-2.2.0}/preditor/utils/cute.py +0 -0
  196. {preditor-2.1.0 → preditor-2.2.0}/preditor/utils/stylesheets.py +0 -0
  197. {preditor-2.1.0 → preditor-2.2.0}/preditor/weakref.py +0 -0
  198. {preditor-2.1.0 → preditor-2.2.0}/requirements-cli.txt +0 -0
  199. {preditor-2.1.0 → preditor-2.2.0}/requirements-dev.txt +0 -0
  200. {preditor-2.1.0 → preditor-2.2.0}/requirements-qsci5.txt +0 -0
  201. {preditor-2.1.0 → preditor-2.2.0}/requirements-qsci6.txt +0 -0
  202. {preditor-2.1.0 → preditor-2.2.0}/requirements-shortcut.txt +0 -0
  203. {preditor-2.1.0 → preditor-2.2.0}/setup.cfg +0 -0
@@ -35,6 +35,8 @@ jobs:
35
35
  - name: Format with black
36
36
  run: tox -e black
37
37
 
38
+ - name: Check imports with deptry
39
+ run: tox -e deptry
38
40
 
39
41
  test:
40
42
  # We want to run on external PRs, but not on our own internal PRs as they'll
@@ -47,7 +49,7 @@ jobs:
47
49
  strategy:
48
50
  matrix:
49
51
  os: ['ubuntu-latest', 'windows-latest']
50
- python: ['3.8', '3.9', '3.10', '3.11']
52
+ python: ['3.8', '3.9', '3.10', '3.11', '3.12', '3.13']
51
53
  # Works around the depreciation of python 3.7 for ubuntu
52
54
  # https://github.com/actions/setup-python/issues/544
53
55
  include:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: PrEditor
3
- Version: 2.1.0
3
+ Version: 2.2.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
@@ -19,8 +19,6 @@ Requires-Python: >=3.7
19
19
  Description-Content-Type: text/markdown
20
20
  License-File: LICENSE
21
21
  Requires-Dist: charset-normalizer
22
- Requires-Dist: configparser>=4.0.2
23
- Requires-Dist: future>=0.18.2
24
22
  Requires-Dist: importlib-metadata>=4.8.3
25
23
  Requires-Dist: Qt.py>=1.4.4
26
24
  Requires-Dist: signalslot>=0.1.2
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: PrEditor
3
- Version: 2.1.0
3
+ Version: 2.2.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
@@ -19,8 +19,6 @@ Requires-Python: >=3.7
19
19
  Description-Content-Type: text/markdown
20
20
  License-File: LICENSE
21
21
  Requires-Dist: charset-normalizer
22
- Requires-Dist: configparser>=4.0.2
23
- Requires-Dist: future>=0.18.2
24
22
  Requires-Dist: importlib-metadata>=4.8.3
25
23
  Requires-Dist: Qt.py>=1.4.4
26
24
  Requires-Dist: signalslot>=0.1.2
@@ -102,7 +102,6 @@ preditor/gui/ui/find_files.ui
102
102
  preditor/gui/ui/loggerwindow.ui
103
103
  preditor/gui/ui/set_text_editor_path_dialog.ui
104
104
  preditor/gui/ui/suggest_path_quotes_dialog.ui
105
- preditor/resource/environment_variables.html
106
105
  preditor/resource/error_mail.html
107
106
  preditor/resource/error_mail_inline.html
108
107
  preditor/resource/settings.ini
@@ -1,6 +1,4 @@
1
1
  charset-normalizer
2
- configparser>=4.0.2
3
- future>=0.18.2
4
2
  importlib-metadata>=4.8.3
5
3
  Qt.py>=1.4.4
6
4
  signalslot>=0.1.2
@@ -5,12 +5,10 @@ import os
5
5
  import sys
6
6
  import textwrap
7
7
 
8
- from future.utils import with_metaclass
9
-
10
8
  import preditor
11
9
 
12
10
 
13
- class AboutModule(with_metaclass(abc.ABCMeta, object)):
11
+ class AboutModule(object, metaclass=abc.ABCMeta):
14
12
  """Base class for the `preditor.plug.about_module` entry point. Create a
15
13
  subclass of this method and expose the class object to the entry point.
16
14
 
@@ -1,8 +1,8 @@
1
1
  from __future__ import absolute_import
2
2
 
3
3
  import logging
4
+ import shutil
4
5
  import sys
5
- from distutils.spawn import find_executable
6
6
 
7
7
  import click
8
8
  from click.core import ParameterSource
@@ -129,7 +129,7 @@ def shortcut(path, public, name, target, args, description):
129
129
 
130
130
  # Resolve the full path to the preditor exe.
131
131
  if target in ("preditor", "preditorw"):
132
- target = find_executable(target)
132
+ target = shutil.which(target)
133
133
 
134
134
  parameter_source = click.get_current_context().get_parameter_source('name')
135
135
  if parameter_source == ParameterSource.DEFAULT:
@@ -2,12 +2,8 @@ from __future__ import absolute_import
2
2
 
3
3
  import abc
4
4
  import re
5
- from builtins import str as text
6
5
  from numbers import Number
7
6
 
8
- from future.utils import iteritems, with_metaclass
9
- from past.builtins import long
10
-
11
7
  # =============================================================================
12
8
  # CLASSES
13
9
  # =============================================================================
@@ -79,7 +75,7 @@ class _MetaEnumGroup(type):
79
75
  # =============================================================================
80
76
 
81
77
 
82
- class Enum(with_metaclass(abc.ABCMeta, object)):
78
+ class Enum(object, metaclass=abc.ABCMeta):
83
79
  """A basic enumerator class.
84
80
 
85
81
  Enumerators are named values that act as identifiers. Typically, a
@@ -204,9 +200,9 @@ class Enum(with_metaclass(abc.ABCMeta, object)):
204
200
  return False
205
201
  if isinstance(value, Enum):
206
202
  return self.number == value.number
207
- if isinstance(value, (int, long)):
203
+ if isinstance(value, int):
208
204
  return self.number == value
209
- if isinstance(value, str) or isinstance(value, text):
205
+ if isinstance(value, str):
210
206
  if self._compareStr(value):
211
207
  return True
212
208
  return False
@@ -296,7 +292,7 @@ class Enum(with_metaclass(abc.ABCMeta, object)):
296
292
  # =============================================================================
297
293
 
298
294
 
299
- class EnumGroup(with_metaclass(_MetaEnumGroup, object)):
295
+ class EnumGroup(object, metaclass=_MetaEnumGroup):
300
296
  """A container class for collecting, organizing, and accessing Enums.
301
297
 
302
298
  An EnumGroup class is a container for Enum objects. It provides
@@ -428,7 +424,7 @@ class EnumGroup(with_metaclass(_MetaEnumGroup, object)):
428
424
  raise ValueError('Enums given as ordered arguments must have a label.')
429
425
  for e in args:
430
426
  setattr(cls, cls._labelToVarName(e.label), e)
431
- for n, e in iteritems(kwargs):
427
+ for n, e in kwargs.items():
432
428
  setattr(cls, n, e)
433
429
  # reset All and Nothing -- this is necessary so that All is regenerated
434
430
  # and so that Nothing is not included when finding the member Enums.
@@ -585,7 +581,7 @@ class EnumGroup(with_metaclass(_MetaEnumGroup, object)):
585
581
  orderedEnums = sorted(
586
582
  [
587
583
  (k, v)
588
- for k, v in iteritems(cls.__dict__)
584
+ for k, v in cls.__dict__.items()
589
585
  if isinstance(v, Enum) and k not in ('All', 'Nothing')
590
586
  ],
591
587
  key=lambda i: i[1]._creationOrder,
@@ -5,7 +5,6 @@ import string
5
5
  import sys
6
6
  import time
7
7
  import traceback
8
- from builtins import str as text
9
8
  from functools import partial
10
9
  from typing import Optional
11
10
 
@@ -344,7 +343,7 @@ class ConsolePrEdit(ConsoleBase):
344
343
  r'\"\<\>\?\`\-\=\[\]\\\;\'\,\.\/ \t\n]'
345
344
  )
346
345
  )
347
- newText = text(txt)
346
+ newText = str(txt)
348
347
  for each in exp.findall(newText):
349
348
  newText = newText.replace(each, '?')
350
349
 
@@ -4,7 +4,6 @@ from enum import IntEnum
4
4
  from functools import partial
5
5
  from pathlib import Path
6
6
 
7
- import six
8
7
  from Qt.QtCore import QByteArray, QMimeData, QPoint, QRect, Qt
9
8
  from Qt.QtGui import QColor, QCursor, QDrag, QPixmap, QRegion
10
9
  from Qt.QtWidgets import (
@@ -513,7 +512,7 @@ class DragTabBar(QTabBar):
513
512
  filename = workbox.__filename__()
514
513
  if filename and Path(filename).is_file():
515
514
  workbox.__set_file_monitoring_enabled__(False)
516
- directory = six.text_type(Path(filename).parent) if filename else ""
515
+ directory = str(Path(filename).parent) if filename else ""
517
516
  success = workbox.__save_as__(directory=directory)
518
517
  if not success:
519
518
  return
@@ -9,7 +9,6 @@ import re
9
9
  import shutil
10
10
  import sys
11
11
  import warnings
12
- from builtins import bytes
13
12
  from datetime import datetime, timedelta
14
13
  from enum import IntEnum
15
14
  from functools import partial
@@ -25,11 +24,9 @@ from Qt.QtWidgets import (
25
24
  QInputDialog,
26
25
  QMenu,
27
26
  QMessageBox,
28
- QTextBrowser,
29
27
  QTextEdit,
30
28
  QToolButton,
31
29
  QToolTip,
32
- QVBoxLayout,
33
30
  )
34
31
 
35
32
  from .. import (
@@ -44,7 +41,7 @@ from .. import (
44
41
  resourcePath,
45
42
  )
46
43
  from ..delayable_engine import DelayableEngine
47
- from ..gui import Dialog, Window, handleMenuHovered, loadUi, tab_widget_for_tab
44
+ from ..gui import Window, handleMenuHovered, loadUi, tab_widget_for_tab
48
45
  from ..gui.fuzzy_search.fuzzy_search import FuzzySearch
49
46
  from ..gui.group_tab_widget.grouped_tab_models import GroupTabListItemModel
50
47
  from ..logging_config import LoggingConfig
@@ -302,7 +299,6 @@ class LoggerWindow(Window):
302
299
  )
303
300
  self.uiClearBeforeRunningCHK.toggled.connect(self.setClearBeforeRunning)
304
301
  self.uiEditorVerticalCHK.toggled.connect(self.adjustWorkboxOrientation)
305
- self.uiEnvironmentVarsACT.triggered.connect(self.showEnvironmentVars)
306
302
  self.uiAboutPreditorACT.triggered.connect(self.show_about)
307
303
 
308
304
  # Prefs on disk
@@ -2165,17 +2161,6 @@ class LoggerWindow(Window):
2165
2161
  msg = about_preditor(instance=self)
2166
2162
  QMessageBox.information(self, 'About PrEditor', '<pre>{}</pre>'.format(msg))
2167
2163
 
2168
- def showEnvironmentVars(self):
2169
- dlg = Dialog(self)
2170
- lyt = QVBoxLayout(dlg)
2171
- lbl = QTextBrowser(dlg)
2172
- lyt.addWidget(lbl)
2173
- dlg.setWindowTitle('Blurdev Environment Variable Help')
2174
- with open(resourcePath('environment_variables.html')) as f:
2175
- lbl.setText(f.read().replace('\n', ''))
2176
- dlg.setMinimumSize(600, 400)
2177
- dlg.show()
2178
-
2179
2164
  def showEvent(self, event):
2180
2165
  super(LoggerWindow, self).showEvent(event)
2181
2166
  self.updateIndentationsUseTabs()
@@ -955,7 +955,6 @@ Must be at least 1</string>
955
955
  </property>
956
956
  </widget>
957
957
  <addaction name="uiPreferencesMENU"/>
958
- <addaction name="uiEnvironmentVarsACT"/>
959
958
  <addaction name="separator"/>
960
959
  <addaction name="uiAboutPreditorACT"/>
961
960
  </widget>
@@ -11,7 +11,6 @@ from __future__ import absolute_import, print_function
11
11
  import os
12
12
  import subprocess
13
13
  import sys
14
- from builtins import str as text
15
14
 
16
15
  import preditor
17
16
 
@@ -39,10 +38,10 @@ def getPointerSize():
39
38
  def pythonPath(pyw=False, architecture=None):
40
39
  if settings.OS_TYPE != 'Windows':
41
40
  return 'python'
42
- from distutils.sysconfig import get_python_inc
41
+ import sysconfig
43
42
 
44
43
  # Unable to pull the path from the registry just use the current python path
45
- basepath = os.path.split(get_python_inc())[0]
44
+ basepath = os.path.split(sysconfig.get_path('include'))[0]
46
45
  # build the path to the python executable. If requested use pythonw instead of
47
46
  # python
48
47
  return os.path.join(basepath, 'python{w}.exe'.format(w=pyw and 'w' or ''))
@@ -215,6 +214,8 @@ def subprocessEnvironment(env=None):
215
214
 
216
215
  removePaths = set([normalize(x) for x in preditor.core._removeFromPATHEnv])
217
216
 
217
+ # TODO: Replace blurpath code with a plugin for reverting process specific
218
+ # env var changes when launching a subprocess.
218
219
  # blurpath records any paths it adds to the PATH variable and other env variable
219
220
  # modifications it makes, revert these changes.
220
221
  try:
@@ -239,7 +240,7 @@ def subprocessEnvironment(env=None):
239
240
  ]
240
241
  path = os.path.pathsep.join(paths)
241
242
  # subprocess does not accept unicode in python 2
242
- if sys.version_info[0] == 2 and isinstance(path, text):
243
+ if sys.version_info[0] == 2 and isinstance(path, str):
243
244
  path = path.encode('utf8')
244
245
  env['PATH'] = path
245
246
 
@@ -12,8 +12,6 @@ import shutil
12
12
  import sys
13
13
  from pathlib import Path
14
14
 
15
- import six
16
-
17
15
  from . import resourcePath, utils
18
16
 
19
17
  # cache of all the preferences
@@ -191,7 +189,7 @@ def create_stamped_path(core_name, filepath, sub_dir='workboxes', time_str=None)
191
189
 
192
190
  path.parent.mkdir(exist_ok=True)
193
191
 
194
- path = six.text_type(path)
192
+ path = str(path)
195
193
  return path
196
194
 
197
195
 
@@ -284,7 +282,7 @@ def get_backup_version_info(core_name, workbox_id, versionType, backup_file=None
284
282
  idx += 1
285
283
  idx = min(idx, count - 1)
286
284
 
287
- filepath = six.text_type(files[idx])
285
+ filepath = str(files[idx])
288
286
  display_idx = idx + 1
289
287
  return filepath, display_idx, count
290
288
 
@@ -322,7 +320,7 @@ def update_pref_args(core_name, pref_dict, old_name, update_data):
322
320
  orig_pref = pref_dict.pop(old_name)
323
321
  pref = orig_pref[:] if isinstance(orig_pref, list) else orig_pref
324
322
 
325
- if isinstance(pref, six.text_type):
323
+ if isinstance(pref, str):
326
324
  replacements = update_data.get("replace", [])
327
325
  for replacement in replacements:
328
326
  pref = pref.replace(*replacement)
@@ -332,11 +330,11 @@ def update_pref_args(core_name, pref_dict, old_name, update_data):
332
330
  newfilepath = create_stamped_path(core_name, pref)
333
331
  orig_filepath = workbox_dir / orig_pref
334
332
  if orig_filepath.is_file():
335
- orig_filepath = six.text_type(orig_filepath)
333
+ orig_filepath = str(orig_filepath)
336
334
 
337
335
  if not Path(newfilepath).is_file():
338
336
  shutil.copy(orig_filepath, newfilepath)
339
- newfilepath = six.text_type(Path(newfilepath).relative_to(workbox_dir))
337
+ newfilepath = str(Path(newfilepath).relative_to(workbox_dir))
340
338
 
341
339
  pref_dict.update({"backup_file": newfilepath})
342
340
 
@@ -2,11 +2,7 @@ from __future__ import absolute_import, print_function
2
2
 
3
3
  import re
4
4
  import sys
5
-
6
- try:
7
- from configparser import ConfigParser
8
- except ImportError:
9
- from ConfigParser import ConfigParser
5
+ from configparser import ConfigParser
10
6
 
11
7
  from .. import Qsci
12
8
 
@@ -1,9 +1,6 @@
1
1
  from __future__ import absolute_import
2
2
 
3
3
  import re
4
- from builtins import str as text
5
-
6
- from future.utils import iteritems
7
4
 
8
5
  from .. import Qsci, QsciScintilla
9
6
 
@@ -35,7 +32,7 @@ class MaxscriptLexer(Qsci.QsciLexerCustom):
35
32
  7: 'SmartHighlight',
36
33
  }
37
34
 
38
- for key, value in iteritems(self._styles):
35
+ for key, value in self._styles.items():
39
36
  setattr(self, value, key)
40
37
 
41
38
  def description(self, style):
@@ -214,7 +211,7 @@ class MaxscriptLexer(Qsci.QsciLexerCustom):
214
211
 
215
212
  # cache objects used by processChunk that do not need updated every time it is
216
213
  # called
217
- self.hlkwords = set(text(self.keywords(self.SmartHighlight)).lower().split())
214
+ self.hlkwords = set(str(self.keywords(self.SmartHighlight)).lower().split())
218
215
  self.chunkRegex = re.compile('([^A-Za-z0-9]*)([A-Za-z0-9]*)')
219
216
  kwrds = set(MS_KEYWORDS.split())
220
217
 
@@ -1,14 +1,10 @@
1
1
  #!/usr/bin/env python
2
2
  from __future__ import absolute_import, print_function
3
3
 
4
+ import configparser
4
5
  import os
5
6
  import sys
6
7
 
7
- try:
8
- import configparser
9
- except Exception:
10
- import ConfigParser as configparser # noqa: N813
11
-
12
8
  # define the default environment variables
13
9
  OS_TYPE = ''
14
10
  if os.name == 'posix':
@@ -4,10 +4,8 @@ import abc
4
4
  import re
5
5
  from collections import deque
6
6
 
7
- from future.utils import with_metaclass
8
7
 
9
-
10
- class TextSearch(with_metaclass(abc.ABCMeta, object)):
8
+ class TextSearch(object, metaclass=abc.ABCMeta):
11
9
  """Base class used to search and markup text for matches to a search term.
12
10
 
13
11
  Parameters:
@@ -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.1.0'
32
- __version_tuple__ = version_tuple = (2, 1, 0)
31
+ __version__ = version = '2.2.0'
32
+ __version_tuple__ = version_tuple = (2, 2, 0)
33
33
 
34
- __commit_id__ = commit_id = 'g5a664e468'
34
+ __commit_id__ = commit_id = 'g78a8e2938'
@@ -110,3 +110,36 @@ skip-string-normalization = true
110
110
 
111
111
  [tool.isort]
112
112
  profile = "black"
113
+
114
+ [tool.deptry]
115
+ # Don't analyze dev requirements used by tox
116
+ pep621_dev_dependency_groups = ["dev"]
117
+
118
+ [tool.deptry.package_module_name_map]
119
+ PyQt6-QScintilla = "pyqt6_qscintilla"
120
+ QScintilla = "qscintilla"
121
+
122
+ [tool.deptry.per_rule_ignores]
123
+ DEP001 = [
124
+ "aspell",
125
+ # Ignore the maya dcc example plugin import for this check
126
+ "maya",
127
+ # The user must choose from the various Qt bindings used by Qt.py
128
+ "PyQt4",
129
+ "PyQt5",
130
+ "PyQt6",
131
+ "PySide2",
132
+ "PySide6",
133
+ "QtSiteConfig",
134
+ # TODO: Replace blurpath code with a plugin for reverting process specific
135
+ # env var changes when launching a subprocess.
136
+ "blurpath",
137
+ ]
138
+ DEP003 = [
139
+ "__main__",
140
+ "QtSiteConfig",
141
+ ]
142
+ DEP002 = [
143
+ "PyQt6-QScintilla",
144
+ "QScintilla",
145
+ ]
@@ -1,6 +1,4 @@
1
1
  charset-normalizer
2
- configparser>=4.0.2
3
- future>=0.18.2
4
2
  importlib-metadata>=4.8.3
5
3
  Qt.py>=1.4.4
6
4
  signalslot>=0.1.2
@@ -1,5 +1,5 @@
1
1
  [tox]
2
- envlist = begin,py{37,38,39,310,311},end,black,flake8
2
+ envlist = begin,py{37,38,39,310,311,312,313},end,black,flake8,deptry
3
3
  skip_missing_interpreters = True
4
4
 
5
5
  [testenv]
@@ -24,14 +24,14 @@ deps =
24
24
  commands =
25
25
  coverage erase
26
26
 
27
- [testenv:py{37,38,39,310,311}]
27
+ [testenv:py{37,38,39,310,311,312,313}]
28
28
  depends = begin
29
29
 
30
30
  [testenv:end]
31
31
  basepython = python3
32
32
  depends =
33
33
  begin
34
- py{37,38,39,310,311}
34
+ py{37,38,39,310,311,312,313}
35
35
  parallel_show_output = True
36
36
  deps =
37
37
  coverage
@@ -55,3 +55,13 @@ deps =
55
55
  pep8-naming==0.13.3
56
56
  commands =
57
57
  python -m flake8 .
58
+
59
+ [testenv:deptry]
60
+ # Only the 0.24.0 version of deptry seems to work when running in tox so py3.11+
61
+ basepython = python3.11
62
+ deps =
63
+ deptry>=0.24.0
64
+ # Install the optional dependencies users may use (excluding qt plugin versions)
65
+ .[cli,dev,shortcut]
66
+ commands =
67
+ python -m deptry .
@@ -1,26 +0,0 @@
1
- <html>
2
- <head/>
3
- <body>
4
- <h1>blurdev</h1>
5
- <hr>
6
- <h2>blurdev Site variables:</h2>
7
- <p><span style=" font-style:italic;">These variables should be defined at a user or system level to configure blurdev.</span></p>
8
- <p><span style=" font-weight:bold;">BDEV_DESIGNERPLUG_*:</span> Used to add a collection of designer plugins to QDesigner. Should be set to "XMLPATH,MODULE_DIR". XMLPATH is the full path to a xml file listing plugins to load. MODULE_DIR is a path that needs added to sys.path so the modules in XMLPATH are importable. You can use environment variables in these strings, they will be expanded. This is used by QDesigner, nothing else.</p>
9
- <p><span style=" font-weight:bold;">BDEV_OFFLINE:</span> If set to 1, this indicates that blurdev is not running on the "Blur" network. This causes the [* Offline] section of blurdev/resource/settings.ini to override the [Default] and [*] sections. When blurdev is imported it adds all env vars defined in settings.ini for the current operating system and Default if they are not already defined in os.environ.</p>
10
- <p><span style=" font-weight:bold;">BDEV_PATH_PREFS:</span> This environment variable points to where per-computer user prefs are stored.</p>
11
- <p><span style=" font-weight:bold;">BDEV_PATH_PREFS_SHARED:</span> This environment variable points to where shared user prefs are stored. This is often on the network and includes the os's logged in username in the path. If BDEV_OFFLINE is set to 1 this may point to the BDEV_PATH_PREFS location.</p>
12
- <p></p>
13
- <h2>blurdev Temp variables:</h2>
14
- <p><span style=" font-style:italic;">These variables should not be defined all the time.</span></p>
15
- <p><span style=" font-weight:bold;">BDEV_DISABLE_AUTORUN:</span> Set to "true" to disable the autorun.bat script used at blur. If this is not set when Maya shuts down, maya takes minutes to close. Maya uses several subprocess calls when closing and for some reason the doskey calls in the script take much longer than normal.</p>
16
- <p><span style=" font-weight:bold;">BDEV_STYLESHEET:</span> Used to override the stylesheet when initalizing blurdev.</p>
17
- <p><span style=" font-weight:bold;">BDEV_TOOL_ENVIRONMENT:</span> Forces blurdev to initialize with this treegrunt environment name. When saving prefs, this environment name change will not be saved. This is mostly used to ensure that launching a subprocess or farm job happens on the same treegrunt environment.</p>
18
- <p></p>
19
- <h1>trax</h1>
20
- <hr>
21
- <p><span style=" font-weight:bold;">TRAX_SPOOL_DIRECTORY_OVERRIDE:</span> If defined, all messages will be stored the directory of this variable. Each message filename will have a "[mapping.mount()]_" prefix added giving you a hint to which server it would have ended up on. Defining this variable effectively disables all spool messages, and gives you a way to see what each spool message would look like. If your code depends on trax.api.spool.waitForCompletion, it will never complete.</p>
22
- <h1>Notes</h1>
23
- <hr>
24
- <p>Any variable names containing a * are wildcards. This allows you to add as many instances of that environment variable type as needed.</p>
25
- </body>
26
- </html>
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