pyqt-code-editor 0.0.30__tar.gz → 0.0.32__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 (79) hide show
  1. {pyqt_code_editor-0.0.30 → pyqt_code_editor-0.0.32}/PKG-INFO +1 -1
  2. {pyqt_code_editor-0.0.30 → pyqt_code_editor-0.0.32}/pyqt_code_editor/__init__.py +1 -1
  3. {pyqt_code_editor-0.0.30 → pyqt_code_editor-0.0.32}/pyqt_code_editor/app.py +1 -1
  4. {pyqt_code_editor-0.0.30 → pyqt_code_editor-0.0.32}/pyqt_code_editor/components/editor_panel.py +1 -0
  5. {pyqt_code_editor-0.0.30 → pyqt_code_editor-0.0.32}/pyqt_code_editor/components/project_explorer.py +5 -5
  6. {pyqt_code_editor-0.0.30 → pyqt_code_editor-0.0.32}/pyqt_code_editor/worker/providers/jedi.py +6 -1
  7. {pyqt_code_editor-0.0.30 → pyqt_code_editor-0.0.32}/COPYING +0 -0
  8. {pyqt_code_editor-0.0.30 → pyqt_code_editor-0.0.32}/pyproject.toml +0 -0
  9. {pyqt_code_editor-0.0.30 → pyqt_code_editor-0.0.32}/pyqt_code_editor/_settings.py +0 -0
  10. {pyqt_code_editor-0.0.30 → pyqt_code_editor-0.0.32}/pyqt_code_editor/code_editors/__init__.py +0 -0
  11. {pyqt_code_editor-0.0.30 → pyqt_code_editor-0.0.32}/pyqt_code_editor/code_editors/code_editors.py +0 -0
  12. {pyqt_code_editor-0.0.30 → pyqt_code_editor-0.0.32}/pyqt_code_editor/code_editors/languages/__init__.py +0 -0
  13. {pyqt_code_editor-0.0.30 → pyqt_code_editor-0.0.32}/pyqt_code_editor/code_editors/languages/generic.py +0 -0
  14. {pyqt_code_editor-0.0.30 → pyqt_code_editor-0.0.32}/pyqt_code_editor/code_editors/languages/markdown.py +0 -0
  15. {pyqt_code_editor-0.0.30 → pyqt_code_editor-0.0.32}/pyqt_code_editor/code_editors/languages/python.py +0 -0
  16. {pyqt_code_editor-0.0.30 → pyqt_code_editor-0.0.32}/pyqt_code_editor/code_editors/languages/text.py +0 -0
  17. {pyqt_code_editor-0.0.30 → pyqt_code_editor-0.0.32}/pyqt_code_editor/components/__init__.py +0 -0
  18. {pyqt_code_editor-0.0.30 → pyqt_code_editor-0.0.32}/pyqt_code_editor/components/find_in_files.py +0 -0
  19. {pyqt_code_editor-0.0.30 → pyqt_code_editor-0.0.32}/pyqt_code_editor/components/jupyter_console.py +0 -0
  20. {pyqt_code_editor-0.0.30 → pyqt_code_editor-0.0.32}/pyqt_code_editor/components/settings_panel.py +0 -0
  21. {pyqt_code_editor-0.0.30 → pyqt_code_editor-0.0.32}/pyqt_code_editor/components/sigmund.py +0 -0
  22. {pyqt_code_editor-0.0.30 → pyqt_code_editor-0.0.32}/pyqt_code_editor/components/workspace_explorer.py +0 -0
  23. {pyqt_code_editor-0.0.30 → pyqt_code_editor-0.0.32}/pyqt_code_editor/environment_manager.py +0 -0
  24. {pyqt_code_editor-0.0.30 → pyqt_code_editor-0.0.32}/pyqt_code_editor/mixins/__init__.py +0 -0
  25. {pyqt_code_editor-0.0.30 → pyqt_code_editor-0.0.32}/pyqt_code_editor/mixins/auto_indent.py +0 -0
  26. {pyqt_code_editor-0.0.30 → pyqt_code_editor-0.0.32}/pyqt_code_editor/mixins/auto_pair.py +0 -0
  27. {pyqt_code_editor-0.0.30 → pyqt_code_editor-0.0.32}/pyqt_code_editor/mixins/base.py +0 -0
  28. {pyqt_code_editor-0.0.30 → pyqt_code_editor-0.0.32}/pyqt_code_editor/mixins/check.py +0 -0
  29. {pyqt_code_editor-0.0.30 → pyqt_code_editor-0.0.32}/pyqt_code_editor/mixins/comment.py +0 -0
  30. {pyqt_code_editor-0.0.30 → pyqt_code_editor-0.0.32}/pyqt_code_editor/mixins/complete.py +0 -0
  31. {pyqt_code_editor-0.0.30 → pyqt_code_editor-0.0.32}/pyqt_code_editor/mixins/execute.py +0 -0
  32. {pyqt_code_editor-0.0.30 → pyqt_code_editor-0.0.32}/pyqt_code_editor/mixins/file_link.py +0 -0
  33. {pyqt_code_editor-0.0.30 → pyqt_code_editor-0.0.32}/pyqt_code_editor/mixins/line_number.py +0 -0
  34. {pyqt_code_editor-0.0.30 → pyqt_code_editor-0.0.32}/pyqt_code_editor/mixins/python_auto_indent.py +0 -0
  35. {pyqt_code_editor-0.0.30 → pyqt_code_editor-0.0.32}/pyqt_code_editor/mixins/search_replace.py +0 -0
  36. {pyqt_code_editor-0.0.30 → pyqt_code_editor-0.0.32}/pyqt_code_editor/mixins/shortcuts.py +0 -0
  37. {pyqt_code_editor-0.0.30 → pyqt_code_editor-0.0.32}/pyqt_code_editor/mixins/smart_backspace_delete.py +0 -0
  38. {pyqt_code_editor-0.0.30 → pyqt_code_editor-0.0.32}/pyqt_code_editor/mixins/symbols.py +0 -0
  39. {pyqt_code_editor-0.0.30 → pyqt_code_editor-0.0.32}/pyqt_code_editor/mixins/theme.py +0 -0
  40. {pyqt_code_editor-0.0.30 → pyqt_code_editor-0.0.32}/pyqt_code_editor/mixins/widgets/__init__.py +0 -0
  41. {pyqt_code_editor-0.0.30 → pyqt_code_editor-0.0.32}/pyqt_code_editor/mixins/zoom.py +0 -0
  42. {pyqt_code_editor-0.0.30 → pyqt_code_editor-0.0.32}/pyqt_code_editor/sigmund-analyst.png +0 -0
  43. {pyqt_code_editor-0.0.30 → pyqt_code_editor-0.0.32}/pyqt_code_editor/signal_router.py +0 -0
  44. {pyqt_code_editor-0.0.30 → pyqt_code_editor-0.0.32}/pyqt_code_editor/syntax_highlighters/__init__.py +0 -0
  45. {pyqt_code_editor-0.0.30 → pyqt_code_editor-0.0.32}/pyqt_code_editor/syntax_highlighters/languages/__init__.py +0 -0
  46. {pyqt_code_editor-0.0.30 → pyqt_code_editor-0.0.32}/pyqt_code_editor/syntax_highlighters/languages/generic.py +0 -0
  47. {pyqt_code_editor-0.0.30 → pyqt_code_editor-0.0.32}/pyqt_code_editor/syntax_highlighters/languages/python.py +0 -0
  48. {pyqt_code_editor-0.0.30 → pyqt_code_editor-0.0.32}/pyqt_code_editor/syntax_highlighters/syntax_highlighter.py +0 -0
  49. {pyqt_code_editor-0.0.30 → pyqt_code_editor-0.0.32}/pyqt_code_editor/themes.py +0 -0
  50. {pyqt_code_editor-0.0.30 → pyqt_code_editor-0.0.32}/pyqt_code_editor/utils/__init__.py +0 -0
  51. {pyqt_code_editor-0.0.30 → pyqt_code_editor-0.0.32}/pyqt_code_editor/utils/languages/__init__.py +0 -0
  52. {pyqt_code_editor-0.0.30 → pyqt_code_editor-0.0.32}/pyqt_code_editor/utils/languages/python/__init__.py +0 -0
  53. {pyqt_code_editor-0.0.30 → pyqt_code_editor-0.0.32}/pyqt_code_editor/utils/languages/python/_auto_indent.py +0 -0
  54. {pyqt_code_editor-0.0.30 → pyqt_code_editor-0.0.32}/pyqt_code_editor/utils/languages/python/_extract_cells.py +0 -0
  55. {pyqt_code_editor-0.0.30 → pyqt_code_editor-0.0.32}/pyqt_code_editor/utils/languages/python/_mask_str_in_code.py +0 -0
  56. {pyqt_code_editor-0.0.30 → pyqt_code_editor-0.0.32}/pyqt_code_editor/watchdog.py +0 -0
  57. {pyqt_code_editor-0.0.30 → pyqt_code_editor-0.0.32}/pyqt_code_editor/widgets/__init__.py +0 -0
  58. {pyqt_code_editor-0.0.30 → pyqt_code_editor-0.0.32}/pyqt_code_editor/widgets/calltip_widget.py +0 -0
  59. {pyqt_code_editor-0.0.30 → pyqt_code_editor-0.0.32}/pyqt_code_editor/widgets/completion_popup.py +0 -0
  60. {pyqt_code_editor-0.0.30 → pyqt_code_editor-0.0.32}/pyqt_code_editor/widgets/dock.py +0 -0
  61. {pyqt_code_editor-0.0.30 → pyqt_code_editor-0.0.32}/pyqt_code_editor/widgets/quick_open_dialog.py +0 -0
  62. {pyqt_code_editor-0.0.30 → pyqt_code_editor-0.0.32}/pyqt_code_editor/widgets/quick_open_file_dialog.py +0 -0
  63. {pyqt_code_editor-0.0.30 → pyqt_code_editor-0.0.32}/pyqt_code_editor/widgets/quick_symbol_dialog.py +0 -0
  64. {pyqt_code_editor-0.0.30 → pyqt_code_editor-0.0.32}/pyqt_code_editor/widgets/search_replace_frame.py +0 -0
  65. {pyqt_code_editor-0.0.30 → pyqt_code_editor-0.0.32}/pyqt_code_editor/widgets/tab_splitter.py +0 -0
  66. {pyqt_code_editor-0.0.30 → pyqt_code_editor-0.0.32}/pyqt_code_editor/widgets/tabbed_editor.py +0 -0
  67. {pyqt_code_editor-0.0.30 → pyqt_code_editor-0.0.32}/pyqt_code_editor/worker/__init__.py +0 -0
  68. {pyqt_code_editor-0.0.30 → pyqt_code_editor-0.0.32}/pyqt_code_editor/worker/languages/__init__.py +0 -0
  69. {pyqt_code_editor-0.0.30 → pyqt_code_editor-0.0.32}/pyqt_code_editor/worker/languages/generic.py +0 -0
  70. {pyqt_code_editor-0.0.30 → pyqt_code_editor-0.0.32}/pyqt_code_editor/worker/languages/python.py +0 -0
  71. {pyqt_code_editor-0.0.30 → pyqt_code_editor-0.0.32}/pyqt_code_editor/worker/manager.py +0 -0
  72. {pyqt_code_editor-0.0.30 → pyqt_code_editor-0.0.32}/pyqt_code_editor/worker/process.py +0 -0
  73. {pyqt_code_editor-0.0.30 → pyqt_code_editor-0.0.32}/pyqt_code_editor/worker/providers/__init__.py +0 -0
  74. {pyqt_code_editor-0.0.30 → pyqt_code_editor-0.0.32}/pyqt_code_editor/worker/providers/codestral.py +0 -0
  75. {pyqt_code_editor-0.0.30 → pyqt_code_editor-0.0.32}/pyqt_code_editor/worker/providers/ruff.py +0 -0
  76. {pyqt_code_editor-0.0.30 → pyqt_code_editor-0.0.32}/pyqt_code_editor/worker/providers/sigmund.py +0 -0
  77. {pyqt_code_editor-0.0.30 → pyqt_code_editor-0.0.32}/pyqt_code_editor/worker/providers/symbol.py +0 -0
  78. {pyqt_code_editor-0.0.30 → pyqt_code_editor-0.0.32}/pyqt_code_editor/worker/settings.py +0 -0
  79. {pyqt_code_editor-0.0.30 → pyqt_code_editor-0.0.32}/readme.md +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: pyqt_code_editor
3
- Version: 0.0.30
3
+ Version: 0.0.32
4
4
  Summary: Fully featured code-editor widgets for PyQt
5
5
  Keywords: code editor,pyqt,ide
6
6
  Author-email: Sebastiaan Mathôt <s.mathot@cogsci.nl>
@@ -2,4 +2,4 @@
2
2
 
3
3
  from ._settings import settings
4
4
 
5
- __version__ = '0.0.30'
5
+ __version__ = '0.0.32'
@@ -42,7 +42,7 @@ class SigmundAnalyst(QMainWindow):
42
42
  # Track if project explorers are hidden as a group
43
43
  self._project_explorers_hidden = False
44
44
  # Open initial project explorer
45
- for project_folder in str(settings.project_folders).split(':'):
45
+ for project_folder in str(settings.project_folders).split('::'):
46
46
  if project_folder:
47
47
  self._open_project_explorer(project_folder)
48
48
  # Set up the workspace explorer
@@ -98,6 +98,7 @@ class EditorPanel(QWidget):
98
98
  self._active_tab_widget = self._active_editor.parent().parent()
99
99
 
100
100
  def open_file(self, path=None, line_number=None):
101
+ path = os.path.normpath(path)
101
102
  if path is not None:
102
103
  # Don't allow the same file to be opened multiple times
103
104
  for editor in self.central_splitter.editors():
@@ -229,7 +229,7 @@ class ProjectExplorer(QDockWidget):
229
229
  continue
230
230
  # Now gather files that are not ignored
231
231
  for f in filenames:
232
- abs_file = os.path.join(dirpath, f)
232
+ abs_file = os.path.normpath(os.path.join(dirpath, f))
233
233
  # Avoid filtering _display_root, though it shouldn't typically be a file
234
234
  if abs_file == self._display_root:
235
235
  continue
@@ -264,8 +264,8 @@ class ProjectExplorer(QDockWidget):
264
264
  settings.current_folder = selected_dir
265
265
  # Add selected folder to project folders but make sure we don't
266
266
  # duplicate
267
- settings.project_folders = ':'.join(
268
- set(str(settings.project_folders).split(':')) | {selected_dir})
267
+ settings.project_folders = '::'.join(
268
+ set(str(settings.project_folders).split('::')) | {selected_dir})
269
269
  explorer = cls(editor_panel, root_path=selected_dir, parent=parent)
270
270
  return explorer
271
271
 
@@ -521,7 +521,7 @@ class ProjectExplorer(QDockWidget):
521
521
  def closeEvent(self, event):
522
522
  # Add selected folder to project folders but make sure we don't
523
523
  # duplicate
524
- settings.project_folders = ':'.join(
525
- set(str(settings.project_folders).split(':')) - {self._display_root})
524
+ settings.project_folders = '::'.join(
525
+ set(str(settings.project_folders).split('::')) - {self._display_root})
526
526
  super().closeEvent(event)
527
527
  self.closed.emit(self)
@@ -4,6 +4,7 @@ import jedi
4
4
  from .. import settings
5
5
 
6
6
  logger = logging.getLogger(__name__)
7
+ env_cache = {}
7
8
 
8
9
 
9
10
  def _signature_to_html(signature) -> str:
@@ -42,7 +43,11 @@ def _prepare_jedi_script(code: str, cursor_position: int, path: str | None,
42
43
  path, line_no, column_no)
43
44
  # We explicitly indicate that the environment is safe, because we know that
44
45
  # they come from the app itself
45
- env = jedi.create_environment(env_path, safe=False) if env_path else None
46
+ if env_path not in env_cache:
47
+ env = jedi.create_environment(env_path, safe=False) if env_path else None
48
+ env_cache[env_path] = env
49
+ else:
50
+ env = env_cache[env_path]
46
51
  script = jedi.Script(code, path=path, environment=env)
47
52
  return script, line_no, column_no
48
53