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.
- {pyqt_code_editor-0.0.30 → pyqt_code_editor-0.0.32}/PKG-INFO +1 -1
- {pyqt_code_editor-0.0.30 → pyqt_code_editor-0.0.32}/pyqt_code_editor/__init__.py +1 -1
- {pyqt_code_editor-0.0.30 → pyqt_code_editor-0.0.32}/pyqt_code_editor/app.py +1 -1
- {pyqt_code_editor-0.0.30 → pyqt_code_editor-0.0.32}/pyqt_code_editor/components/editor_panel.py +1 -0
- {pyqt_code_editor-0.0.30 → pyqt_code_editor-0.0.32}/pyqt_code_editor/components/project_explorer.py +5 -5
- {pyqt_code_editor-0.0.30 → pyqt_code_editor-0.0.32}/pyqt_code_editor/worker/providers/jedi.py +6 -1
- {pyqt_code_editor-0.0.30 → pyqt_code_editor-0.0.32}/COPYING +0 -0
- {pyqt_code_editor-0.0.30 → pyqt_code_editor-0.0.32}/pyproject.toml +0 -0
- {pyqt_code_editor-0.0.30 → pyqt_code_editor-0.0.32}/pyqt_code_editor/_settings.py +0 -0
- {pyqt_code_editor-0.0.30 → pyqt_code_editor-0.0.32}/pyqt_code_editor/code_editors/__init__.py +0 -0
- {pyqt_code_editor-0.0.30 → pyqt_code_editor-0.0.32}/pyqt_code_editor/code_editors/code_editors.py +0 -0
- {pyqt_code_editor-0.0.30 → pyqt_code_editor-0.0.32}/pyqt_code_editor/code_editors/languages/__init__.py +0 -0
- {pyqt_code_editor-0.0.30 → pyqt_code_editor-0.0.32}/pyqt_code_editor/code_editors/languages/generic.py +0 -0
- {pyqt_code_editor-0.0.30 → pyqt_code_editor-0.0.32}/pyqt_code_editor/code_editors/languages/markdown.py +0 -0
- {pyqt_code_editor-0.0.30 → pyqt_code_editor-0.0.32}/pyqt_code_editor/code_editors/languages/python.py +0 -0
- {pyqt_code_editor-0.0.30 → pyqt_code_editor-0.0.32}/pyqt_code_editor/code_editors/languages/text.py +0 -0
- {pyqt_code_editor-0.0.30 → pyqt_code_editor-0.0.32}/pyqt_code_editor/components/__init__.py +0 -0
- {pyqt_code_editor-0.0.30 → pyqt_code_editor-0.0.32}/pyqt_code_editor/components/find_in_files.py +0 -0
- {pyqt_code_editor-0.0.30 → pyqt_code_editor-0.0.32}/pyqt_code_editor/components/jupyter_console.py +0 -0
- {pyqt_code_editor-0.0.30 → pyqt_code_editor-0.0.32}/pyqt_code_editor/components/settings_panel.py +0 -0
- {pyqt_code_editor-0.0.30 → pyqt_code_editor-0.0.32}/pyqt_code_editor/components/sigmund.py +0 -0
- {pyqt_code_editor-0.0.30 → pyqt_code_editor-0.0.32}/pyqt_code_editor/components/workspace_explorer.py +0 -0
- {pyqt_code_editor-0.0.30 → pyqt_code_editor-0.0.32}/pyqt_code_editor/environment_manager.py +0 -0
- {pyqt_code_editor-0.0.30 → pyqt_code_editor-0.0.32}/pyqt_code_editor/mixins/__init__.py +0 -0
- {pyqt_code_editor-0.0.30 → pyqt_code_editor-0.0.32}/pyqt_code_editor/mixins/auto_indent.py +0 -0
- {pyqt_code_editor-0.0.30 → pyqt_code_editor-0.0.32}/pyqt_code_editor/mixins/auto_pair.py +0 -0
- {pyqt_code_editor-0.0.30 → pyqt_code_editor-0.0.32}/pyqt_code_editor/mixins/base.py +0 -0
- {pyqt_code_editor-0.0.30 → pyqt_code_editor-0.0.32}/pyqt_code_editor/mixins/check.py +0 -0
- {pyqt_code_editor-0.0.30 → pyqt_code_editor-0.0.32}/pyqt_code_editor/mixins/comment.py +0 -0
- {pyqt_code_editor-0.0.30 → pyqt_code_editor-0.0.32}/pyqt_code_editor/mixins/complete.py +0 -0
- {pyqt_code_editor-0.0.30 → pyqt_code_editor-0.0.32}/pyqt_code_editor/mixins/execute.py +0 -0
- {pyqt_code_editor-0.0.30 → pyqt_code_editor-0.0.32}/pyqt_code_editor/mixins/file_link.py +0 -0
- {pyqt_code_editor-0.0.30 → pyqt_code_editor-0.0.32}/pyqt_code_editor/mixins/line_number.py +0 -0
- {pyqt_code_editor-0.0.30 → pyqt_code_editor-0.0.32}/pyqt_code_editor/mixins/python_auto_indent.py +0 -0
- {pyqt_code_editor-0.0.30 → pyqt_code_editor-0.0.32}/pyqt_code_editor/mixins/search_replace.py +0 -0
- {pyqt_code_editor-0.0.30 → pyqt_code_editor-0.0.32}/pyqt_code_editor/mixins/shortcuts.py +0 -0
- {pyqt_code_editor-0.0.30 → pyqt_code_editor-0.0.32}/pyqt_code_editor/mixins/smart_backspace_delete.py +0 -0
- {pyqt_code_editor-0.0.30 → pyqt_code_editor-0.0.32}/pyqt_code_editor/mixins/symbols.py +0 -0
- {pyqt_code_editor-0.0.30 → pyqt_code_editor-0.0.32}/pyqt_code_editor/mixins/theme.py +0 -0
- {pyqt_code_editor-0.0.30 → pyqt_code_editor-0.0.32}/pyqt_code_editor/mixins/widgets/__init__.py +0 -0
- {pyqt_code_editor-0.0.30 → pyqt_code_editor-0.0.32}/pyqt_code_editor/mixins/zoom.py +0 -0
- {pyqt_code_editor-0.0.30 → pyqt_code_editor-0.0.32}/pyqt_code_editor/sigmund-analyst.png +0 -0
- {pyqt_code_editor-0.0.30 → pyqt_code_editor-0.0.32}/pyqt_code_editor/signal_router.py +0 -0
- {pyqt_code_editor-0.0.30 → pyqt_code_editor-0.0.32}/pyqt_code_editor/syntax_highlighters/__init__.py +0 -0
- {pyqt_code_editor-0.0.30 → pyqt_code_editor-0.0.32}/pyqt_code_editor/syntax_highlighters/languages/__init__.py +0 -0
- {pyqt_code_editor-0.0.30 → pyqt_code_editor-0.0.32}/pyqt_code_editor/syntax_highlighters/languages/generic.py +0 -0
- {pyqt_code_editor-0.0.30 → pyqt_code_editor-0.0.32}/pyqt_code_editor/syntax_highlighters/languages/python.py +0 -0
- {pyqt_code_editor-0.0.30 → pyqt_code_editor-0.0.32}/pyqt_code_editor/syntax_highlighters/syntax_highlighter.py +0 -0
- {pyqt_code_editor-0.0.30 → pyqt_code_editor-0.0.32}/pyqt_code_editor/themes.py +0 -0
- {pyqt_code_editor-0.0.30 → pyqt_code_editor-0.0.32}/pyqt_code_editor/utils/__init__.py +0 -0
- {pyqt_code_editor-0.0.30 → pyqt_code_editor-0.0.32}/pyqt_code_editor/utils/languages/__init__.py +0 -0
- {pyqt_code_editor-0.0.30 → pyqt_code_editor-0.0.32}/pyqt_code_editor/utils/languages/python/__init__.py +0 -0
- {pyqt_code_editor-0.0.30 → pyqt_code_editor-0.0.32}/pyqt_code_editor/utils/languages/python/_auto_indent.py +0 -0
- {pyqt_code_editor-0.0.30 → pyqt_code_editor-0.0.32}/pyqt_code_editor/utils/languages/python/_extract_cells.py +0 -0
- {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
- {pyqt_code_editor-0.0.30 → pyqt_code_editor-0.0.32}/pyqt_code_editor/watchdog.py +0 -0
- {pyqt_code_editor-0.0.30 → pyqt_code_editor-0.0.32}/pyqt_code_editor/widgets/__init__.py +0 -0
- {pyqt_code_editor-0.0.30 → pyqt_code_editor-0.0.32}/pyqt_code_editor/widgets/calltip_widget.py +0 -0
- {pyqt_code_editor-0.0.30 → pyqt_code_editor-0.0.32}/pyqt_code_editor/widgets/completion_popup.py +0 -0
- {pyqt_code_editor-0.0.30 → pyqt_code_editor-0.0.32}/pyqt_code_editor/widgets/dock.py +0 -0
- {pyqt_code_editor-0.0.30 → pyqt_code_editor-0.0.32}/pyqt_code_editor/widgets/quick_open_dialog.py +0 -0
- {pyqt_code_editor-0.0.30 → pyqt_code_editor-0.0.32}/pyqt_code_editor/widgets/quick_open_file_dialog.py +0 -0
- {pyqt_code_editor-0.0.30 → pyqt_code_editor-0.0.32}/pyqt_code_editor/widgets/quick_symbol_dialog.py +0 -0
- {pyqt_code_editor-0.0.30 → pyqt_code_editor-0.0.32}/pyqt_code_editor/widgets/search_replace_frame.py +0 -0
- {pyqt_code_editor-0.0.30 → pyqt_code_editor-0.0.32}/pyqt_code_editor/widgets/tab_splitter.py +0 -0
- {pyqt_code_editor-0.0.30 → pyqt_code_editor-0.0.32}/pyqt_code_editor/widgets/tabbed_editor.py +0 -0
- {pyqt_code_editor-0.0.30 → pyqt_code_editor-0.0.32}/pyqt_code_editor/worker/__init__.py +0 -0
- {pyqt_code_editor-0.0.30 → pyqt_code_editor-0.0.32}/pyqt_code_editor/worker/languages/__init__.py +0 -0
- {pyqt_code_editor-0.0.30 → pyqt_code_editor-0.0.32}/pyqt_code_editor/worker/languages/generic.py +0 -0
- {pyqt_code_editor-0.0.30 → pyqt_code_editor-0.0.32}/pyqt_code_editor/worker/languages/python.py +0 -0
- {pyqt_code_editor-0.0.30 → pyqt_code_editor-0.0.32}/pyqt_code_editor/worker/manager.py +0 -0
- {pyqt_code_editor-0.0.30 → pyqt_code_editor-0.0.32}/pyqt_code_editor/worker/process.py +0 -0
- {pyqt_code_editor-0.0.30 → pyqt_code_editor-0.0.32}/pyqt_code_editor/worker/providers/__init__.py +0 -0
- {pyqt_code_editor-0.0.30 → pyqt_code_editor-0.0.32}/pyqt_code_editor/worker/providers/codestral.py +0 -0
- {pyqt_code_editor-0.0.30 → pyqt_code_editor-0.0.32}/pyqt_code_editor/worker/providers/ruff.py +0 -0
- {pyqt_code_editor-0.0.30 → pyqt_code_editor-0.0.32}/pyqt_code_editor/worker/providers/sigmund.py +0 -0
- {pyqt_code_editor-0.0.30 → pyqt_code_editor-0.0.32}/pyqt_code_editor/worker/providers/symbol.py +0 -0
- {pyqt_code_editor-0.0.30 → pyqt_code_editor-0.0.32}/pyqt_code_editor/worker/settings.py +0 -0
- {pyqt_code_editor-0.0.30 → pyqt_code_editor-0.0.32}/readme.md +0 -0
|
@@ -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
|
{pyqt_code_editor-0.0.30 → pyqt_code_editor-0.0.32}/pyqt_code_editor/components/editor_panel.py
RENAMED
|
@@ -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():
|
{pyqt_code_editor-0.0.30 → pyqt_code_editor-0.0.32}/pyqt_code_editor/components/project_explorer.py
RENAMED
|
@@ -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 = '
|
|
268
|
-
set(str(settings.project_folders).split('
|
|
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 = '
|
|
525
|
-
set(str(settings.project_folders).split('
|
|
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)
|
{pyqt_code_editor-0.0.30 → pyqt_code_editor-0.0.32}/pyqt_code_editor/worker/providers/jedi.py
RENAMED
|
@@ -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
|
-
|
|
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
|
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{pyqt_code_editor-0.0.30 → pyqt_code_editor-0.0.32}/pyqt_code_editor/code_editors/__init__.py
RENAMED
|
File without changes
|
{pyqt_code_editor-0.0.30 → pyqt_code_editor-0.0.32}/pyqt_code_editor/code_editors/code_editors.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{pyqt_code_editor-0.0.30 → pyqt_code_editor-0.0.32}/pyqt_code_editor/code_editors/languages/text.py
RENAMED
|
File without changes
|
|
File without changes
|
{pyqt_code_editor-0.0.30 → pyqt_code_editor-0.0.32}/pyqt_code_editor/components/find_in_files.py
RENAMED
|
File without changes
|
{pyqt_code_editor-0.0.30 → pyqt_code_editor-0.0.32}/pyqt_code_editor/components/jupyter_console.py
RENAMED
|
File without changes
|
{pyqt_code_editor-0.0.30 → pyqt_code_editor-0.0.32}/pyqt_code_editor/components/settings_panel.py
RENAMED
|
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
|
{pyqt_code_editor-0.0.30 → pyqt_code_editor-0.0.32}/pyqt_code_editor/mixins/python_auto_indent.py
RENAMED
|
File without changes
|
{pyqt_code_editor-0.0.30 → pyqt_code_editor-0.0.32}/pyqt_code_editor/mixins/search_replace.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{pyqt_code_editor-0.0.30 → pyqt_code_editor-0.0.32}/pyqt_code_editor/mixins/widgets/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{pyqt_code_editor-0.0.30 → pyqt_code_editor-0.0.32}/pyqt_code_editor/syntax_highlighters/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{pyqt_code_editor-0.0.30 → pyqt_code_editor-0.0.32}/pyqt_code_editor/utils/languages/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{pyqt_code_editor-0.0.30 → pyqt_code_editor-0.0.32}/pyqt_code_editor/widgets/calltip_widget.py
RENAMED
|
File without changes
|
{pyqt_code_editor-0.0.30 → pyqt_code_editor-0.0.32}/pyqt_code_editor/widgets/completion_popup.py
RENAMED
|
File without changes
|
|
File without changes
|
{pyqt_code_editor-0.0.30 → pyqt_code_editor-0.0.32}/pyqt_code_editor/widgets/quick_open_dialog.py
RENAMED
|
File without changes
|
|
File without changes
|
{pyqt_code_editor-0.0.30 → pyqt_code_editor-0.0.32}/pyqt_code_editor/widgets/quick_symbol_dialog.py
RENAMED
|
File without changes
|
{pyqt_code_editor-0.0.30 → pyqt_code_editor-0.0.32}/pyqt_code_editor/widgets/search_replace_frame.py
RENAMED
|
File without changes
|
{pyqt_code_editor-0.0.30 → pyqt_code_editor-0.0.32}/pyqt_code_editor/widgets/tab_splitter.py
RENAMED
|
File without changes
|
{pyqt_code_editor-0.0.30 → pyqt_code_editor-0.0.32}/pyqt_code_editor/widgets/tabbed_editor.py
RENAMED
|
File without changes
|
|
File without changes
|
{pyqt_code_editor-0.0.30 → pyqt_code_editor-0.0.32}/pyqt_code_editor/worker/languages/__init__.py
RENAMED
|
File without changes
|
{pyqt_code_editor-0.0.30 → pyqt_code_editor-0.0.32}/pyqt_code_editor/worker/languages/generic.py
RENAMED
|
File without changes
|
{pyqt_code_editor-0.0.30 → pyqt_code_editor-0.0.32}/pyqt_code_editor/worker/languages/python.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{pyqt_code_editor-0.0.30 → pyqt_code_editor-0.0.32}/pyqt_code_editor/worker/providers/__init__.py
RENAMED
|
File without changes
|
{pyqt_code_editor-0.0.30 → pyqt_code_editor-0.0.32}/pyqt_code_editor/worker/providers/codestral.py
RENAMED
|
File without changes
|
{pyqt_code_editor-0.0.30 → pyqt_code_editor-0.0.32}/pyqt_code_editor/worker/providers/ruff.py
RENAMED
|
File without changes
|
{pyqt_code_editor-0.0.30 → pyqt_code_editor-0.0.32}/pyqt_code_editor/worker/providers/sigmund.py
RENAMED
|
File without changes
|
{pyqt_code_editor-0.0.30 → pyqt_code_editor-0.0.32}/pyqt_code_editor/worker/providers/symbol.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|