pyqt-code-editor 0.0.7__tar.gz → 0.0.9__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 (75) hide show
  1. pyqt_code_editor-0.0.9/PKG-INFO +90 -0
  2. {pyqt_code_editor-0.0.7 → pyqt_code_editor-0.0.9}/pyqt_code_editor/__init__.py +1 -1
  3. {pyqt_code_editor-0.0.7 → pyqt_code_editor-0.0.9}/pyqt_code_editor/_settings.py +1 -0
  4. {pyqt_code_editor-0.0.7 → pyqt_code_editor-0.0.9}/pyqt_code_editor/code_editors/code_editors.py +8 -2
  5. {pyqt_code_editor-0.0.7 → pyqt_code_editor-0.0.9}/pyqt_code_editor/widgets/completion_popup.py +3 -1
  6. pyqt_code_editor-0.0.9/readme.md +66 -0
  7. pyqt_code_editor-0.0.7/PKG-INFO +0 -70
  8. pyqt_code_editor-0.0.7/readme.md +0 -46
  9. {pyqt_code_editor-0.0.7 → pyqt_code_editor-0.0.9}/COPYING +0 -0
  10. {pyqt_code_editor-0.0.7 → pyqt_code_editor-0.0.9}/pyproject.toml +0 -0
  11. {pyqt_code_editor-0.0.7 → pyqt_code_editor-0.0.9}/pyqt_code_editor/app.py +0 -0
  12. {pyqt_code_editor-0.0.7 → pyqt_code_editor-0.0.9}/pyqt_code_editor/code_editors/__init__.py +0 -0
  13. {pyqt_code_editor-0.0.7 → pyqt_code_editor-0.0.9}/pyqt_code_editor/code_editors/languages/__init__.py +0 -0
  14. {pyqt_code_editor-0.0.7 → pyqt_code_editor-0.0.9}/pyqt_code_editor/code_editors/languages/generic.py +0 -0
  15. {pyqt_code_editor-0.0.7 → pyqt_code_editor-0.0.9}/pyqt_code_editor/code_editors/languages/markdown.py +0 -0
  16. {pyqt_code_editor-0.0.7 → pyqt_code_editor-0.0.9}/pyqt_code_editor/code_editors/languages/python.py +0 -0
  17. {pyqt_code_editor-0.0.7 → pyqt_code_editor-0.0.9}/pyqt_code_editor/code_editors/languages/text.py +0 -0
  18. {pyqt_code_editor-0.0.7 → pyqt_code_editor-0.0.9}/pyqt_code_editor/components/__init__.py +0 -0
  19. {pyqt_code_editor-0.0.7 → pyqt_code_editor-0.0.9}/pyqt_code_editor/components/editor_panel.py +0 -0
  20. {pyqt_code_editor-0.0.7 → pyqt_code_editor-0.0.9}/pyqt_code_editor/components/find_in_files.py +0 -0
  21. {pyqt_code_editor-0.0.7 → pyqt_code_editor-0.0.9}/pyqt_code_editor/components/jupyter_console.py +0 -0
  22. {pyqt_code_editor-0.0.7 → pyqt_code_editor-0.0.9}/pyqt_code_editor/components/project_explorer.py +0 -0
  23. {pyqt_code_editor-0.0.7 → pyqt_code_editor-0.0.9}/pyqt_code_editor/components/settings_panel.py +0 -0
  24. {pyqt_code_editor-0.0.7 → pyqt_code_editor-0.0.9}/pyqt_code_editor/components/sigmund.py +0 -0
  25. {pyqt_code_editor-0.0.7 → pyqt_code_editor-0.0.9}/pyqt_code_editor/components/workspace_explorer.py +0 -0
  26. {pyqt_code_editor-0.0.7 → pyqt_code_editor-0.0.9}/pyqt_code_editor/mixins/__init__.py +0 -0
  27. {pyqt_code_editor-0.0.7 → pyqt_code_editor-0.0.9}/pyqt_code_editor/mixins/auto_indent.py +0 -0
  28. {pyqt_code_editor-0.0.7 → pyqt_code_editor-0.0.9}/pyqt_code_editor/mixins/auto_pair.py +0 -0
  29. {pyqt_code_editor-0.0.7 → pyqt_code_editor-0.0.9}/pyqt_code_editor/mixins/base.py +0 -0
  30. {pyqt_code_editor-0.0.7 → pyqt_code_editor-0.0.9}/pyqt_code_editor/mixins/check.py +0 -0
  31. {pyqt_code_editor-0.0.7 → pyqt_code_editor-0.0.9}/pyqt_code_editor/mixins/comment.py +0 -0
  32. {pyqt_code_editor-0.0.7 → pyqt_code_editor-0.0.9}/pyqt_code_editor/mixins/complete.py +0 -0
  33. {pyqt_code_editor-0.0.7 → pyqt_code_editor-0.0.9}/pyqt_code_editor/mixins/execute.py +0 -0
  34. {pyqt_code_editor-0.0.7 → pyqt_code_editor-0.0.9}/pyqt_code_editor/mixins/file_link.py +0 -0
  35. {pyqt_code_editor-0.0.7 → pyqt_code_editor-0.0.9}/pyqt_code_editor/mixins/line_number.py +0 -0
  36. {pyqt_code_editor-0.0.7 → pyqt_code_editor-0.0.9}/pyqt_code_editor/mixins/python_auto_indent.py +0 -0
  37. {pyqt_code_editor-0.0.7 → pyqt_code_editor-0.0.9}/pyqt_code_editor/mixins/search_replace.py +0 -0
  38. {pyqt_code_editor-0.0.7 → pyqt_code_editor-0.0.9}/pyqt_code_editor/mixins/shortcuts.py +0 -0
  39. {pyqt_code_editor-0.0.7 → pyqt_code_editor-0.0.9}/pyqt_code_editor/mixins/smart_backspace_delete.py +0 -0
  40. {pyqt_code_editor-0.0.7 → pyqt_code_editor-0.0.9}/pyqt_code_editor/mixins/symbols.py +0 -0
  41. {pyqt_code_editor-0.0.7 → pyqt_code_editor-0.0.9}/pyqt_code_editor/mixins/theme.py +0 -0
  42. {pyqt_code_editor-0.0.7 → pyqt_code_editor-0.0.9}/pyqt_code_editor/mixins/widgets/__init__.py +0 -0
  43. {pyqt_code_editor-0.0.7 → pyqt_code_editor-0.0.9}/pyqt_code_editor/mixins/zoom.py +0 -0
  44. {pyqt_code_editor-0.0.7 → pyqt_code_editor-0.0.9}/pyqt_code_editor/python_utils.py +0 -0
  45. {pyqt_code_editor-0.0.7 → pyqt_code_editor-0.0.9}/pyqt_code_editor/signal_router.py +0 -0
  46. {pyqt_code_editor-0.0.7 → pyqt_code_editor-0.0.9}/pyqt_code_editor/syntax_highlighters/__init__.py +0 -0
  47. {pyqt_code_editor-0.0.7 → pyqt_code_editor-0.0.9}/pyqt_code_editor/syntax_highlighters/languages/__init__.py +0 -0
  48. {pyqt_code_editor-0.0.7 → pyqt_code_editor-0.0.9}/pyqt_code_editor/syntax_highlighters/languages/generic.py +0 -0
  49. {pyqt_code_editor-0.0.7 → pyqt_code_editor-0.0.9}/pyqt_code_editor/syntax_highlighters/languages/python.py +0 -0
  50. {pyqt_code_editor-0.0.7 → pyqt_code_editor-0.0.9}/pyqt_code_editor/syntax_highlighters/syntax_highlighter.py +0 -0
  51. {pyqt_code_editor-0.0.7 → pyqt_code_editor-0.0.9}/pyqt_code_editor/themes.py +0 -0
  52. {pyqt_code_editor-0.0.7 → pyqt_code_editor-0.0.9}/pyqt_code_editor/utils.py +0 -0
  53. {pyqt_code_editor-0.0.7 → pyqt_code_editor-0.0.9}/pyqt_code_editor/watchdog.py +0 -0
  54. {pyqt_code_editor-0.0.7 → pyqt_code_editor-0.0.9}/pyqt_code_editor/widgets/__init__.py +0 -0
  55. {pyqt_code_editor-0.0.7 → pyqt_code_editor-0.0.9}/pyqt_code_editor/widgets/calltip_widget.py +0 -0
  56. {pyqt_code_editor-0.0.7 → pyqt_code_editor-0.0.9}/pyqt_code_editor/widgets/dock.py +0 -0
  57. {pyqt_code_editor-0.0.7 → pyqt_code_editor-0.0.9}/pyqt_code_editor/widgets/quick_open_dialog.py +0 -0
  58. {pyqt_code_editor-0.0.7 → pyqt_code_editor-0.0.9}/pyqt_code_editor/widgets/quick_open_file_dialog.py +0 -0
  59. {pyqt_code_editor-0.0.7 → pyqt_code_editor-0.0.9}/pyqt_code_editor/widgets/quick_symbol_dialog.py +0 -0
  60. {pyqt_code_editor-0.0.7 → pyqt_code_editor-0.0.9}/pyqt_code_editor/widgets/search_replace_frame.py +0 -0
  61. {pyqt_code_editor-0.0.7 → pyqt_code_editor-0.0.9}/pyqt_code_editor/widgets/tab_splitter.py +0 -0
  62. {pyqt_code_editor-0.0.7 → pyqt_code_editor-0.0.9}/pyqt_code_editor/widgets/tabbed_editor.py +0 -0
  63. {pyqt_code_editor-0.0.7 → pyqt_code_editor-0.0.9}/pyqt_code_editor/worker/__init__.py +0 -0
  64. {pyqt_code_editor-0.0.7 → pyqt_code_editor-0.0.9}/pyqt_code_editor/worker/languages/__init__.py +0 -0
  65. {pyqt_code_editor-0.0.7 → pyqt_code_editor-0.0.9}/pyqt_code_editor/worker/languages/generic.py +0 -0
  66. {pyqt_code_editor-0.0.7 → pyqt_code_editor-0.0.9}/pyqt_code_editor/worker/languages/python.py +0 -0
  67. {pyqt_code_editor-0.0.7 → pyqt_code_editor-0.0.9}/pyqt_code_editor/worker/manager.py +0 -0
  68. {pyqt_code_editor-0.0.7 → pyqt_code_editor-0.0.9}/pyqt_code_editor/worker/process.py +0 -0
  69. {pyqt_code_editor-0.0.7 → pyqt_code_editor-0.0.9}/pyqt_code_editor/worker/providers/__init__.py +0 -0
  70. {pyqt_code_editor-0.0.7 → pyqt_code_editor-0.0.9}/pyqt_code_editor/worker/providers/codestral.py +0 -0
  71. {pyqt_code_editor-0.0.7 → pyqt_code_editor-0.0.9}/pyqt_code_editor/worker/providers/jedi.py +0 -0
  72. {pyqt_code_editor-0.0.7 → pyqt_code_editor-0.0.9}/pyqt_code_editor/worker/providers/ruff.py +0 -0
  73. {pyqt_code_editor-0.0.7 → pyqt_code_editor-0.0.9}/pyqt_code_editor/worker/providers/sigmund.py +0 -0
  74. {pyqt_code_editor-0.0.7 → pyqt_code_editor-0.0.9}/pyqt_code_editor/worker/providers/symbol.py +0 -0
  75. {pyqt_code_editor-0.0.7 → pyqt_code_editor-0.0.9}/pyqt_code_editor/worker/settings.py +0 -0
@@ -0,0 +1,90 @@
1
+ Metadata-Version: 2.4
2
+ Name: pyqt_code_editor
3
+ Version: 0.0.9
4
+ Summary: Fully featured code-editor widgets for PyQt
5
+ Keywords: code editor,pyqt,ide
6
+ Author-email: Sebastiaan Mathôt <s.mathot@cogsci.nl>
7
+ Requires-Python: >=3.10
8
+ Description-Content-Type: text/markdown
9
+ License-File: COPYING
10
+ Requires-Dist: chardet
11
+ Requires-Dist: detect-indent
12
+ Requires-Dist: jedi
13
+ Requires-Dist: mistralai
14
+ Requires-Dist: pathspec
15
+ Requires-Dist: pygments
16
+ Requires-Dist: qtawesome
17
+ Requires-Dist: qtpy
18
+ Requires-Dist: ruff
19
+ Requires-Dist: opensesame-extension-sigmund
20
+ Requires-Dist: pyqt6
21
+ Requires-Dist: qtconsole
22
+ Project-URL: Source, https://github.com/open-cogsci/pyqt_code_editor
23
+
24
+ # PyQt Code Editor / Sigmund Analyst
25
+
26
+ Copyright 2025 Sebastiaan Mathôt
27
+
28
+
29
+ ## About
30
+
31
+ Sigmund Analyst is a powerful code editor (also: Integrated Development Environment or IDE) focused on AI-assisted data analysis with Python
32
+
33
+ Features:
34
+
35
+ - AI integration [SigmundAI](https://sigmundai.eu) and [Mistral Codestral](https://docs.mistral.ai/capabilities/code_generation/)
36
+ - Syntax highlighting
37
+ - Code completion
38
+ - Code checking
39
+ - Project explorer
40
+ - Jupyter (IPython) console
41
+ - Workspace explorer
42
+ - Editor panel with splittable tabs
43
+ - Settings panel
44
+
45
+ ![](screenshot.png)
46
+
47
+
48
+ ## AI integration
49
+
50
+ ### SigmundAI for collaborative code editing
51
+
52
+ You can work together with SigmundAI on the currently active document or selected text. To activate SigmundAI integration, simply log into <https://sigmundai.eu> (subscription required). Sigmund Analyst will then automatically connect to SigmundAI when you enable the Sigmund panel in the toolbar.
53
+
54
+
55
+ ### Mistral Codestral for as-you-type suggestions
56
+
57
+ As-you-type code suggestions are provided by Mistral Codestral. To activate Mistral integration, you need to create an account with Mistral AI. Currently, a free Codestral API key is then provided through the Mistral console. Copy-paste this API key to Codestral API Key field in the settings panel of Sigmund Analyst.
58
+
59
+
60
+ ## Installation
61
+
62
+ ### Linux installer
63
+
64
+ The easiest way to install Sigmund Analyst on Linux is to download and run the installer script. This will create a Virtual Environment, pip install Sigmund Analyst and all dependencies into this environment, and add a Desktop file to your system to easily start Sigmund Analyst. To upgrade, simply run the script again.
65
+
66
+ ```
67
+ bash <(curl -L https://raw.githubusercontent.com/open-cogsci/pyqt_code_editor/refs/heads/master/install_sigmund_analyst.sh)
68
+ ```
69
+
70
+
71
+ ### Other systems
72
+
73
+ Install with:
74
+
75
+ ```
76
+ pip install pyqt_code_editor
77
+ ```
78
+
79
+ Start Sigmund Analyst with:
80
+
81
+ ```
82
+ sigmund-analyst
83
+ ```
84
+
85
+
86
+ ## License
87
+
88
+ `PyQt Code Editor` is licensed under the [GNU General Public License
89
+ v3](http://www.gnu.org/licenses/gpl-3.0.en.html).
90
+
@@ -2,4 +2,4 @@
2
2
 
3
3
  from ._settings import settings
4
4
 
5
- __version__ = '0.0.7'
5
+ __version__ = '0.0.9'
@@ -78,6 +78,7 @@ class Settings(QObject):
78
78
  # Files and Folders
79
79
  current_folder = SettingProperty(os.path.expanduser('~'), "Files")
80
80
  default_filename = SettingProperty('untitled.txt', "Files")
81
+ default_language = SettingProperty('python', "Files")
81
82
  default_encoding = SettingProperty('utf-8', "Files")
82
83
 
83
84
  # Keyboard shortcuts
@@ -1,18 +1,24 @@
1
1
  import importlib
2
- from .. import utils
2
+ from .. import utils, settings
3
3
  import logging
4
4
  logging.basicConfig(level=logging.INFO, force=True)
5
5
  logger = logging.getLogger(__name__)
6
6
 
7
7
  editor_module_cache = {}
8
8
 
9
+ # Some languages should be treated as synonyms
10
+ LANGUAGE_MAP = {
11
+ 'ipython': 'python'
12
+ }
13
+
9
14
 
10
15
  def create_editor(path=None, language=None, *args, **kwargs):
11
16
  if language is None:
12
17
  if path is None:
13
- language = 'text'
18
+ language = settings.default_language
14
19
  else:
15
20
  language = utils.guess_language_from_path(path)
21
+ language = LANGUAGE_MAP.get(language, language)
16
22
  # Load the editor module depending on the language. We store the
17
23
  # imported module in a cache for efficiency
18
24
  if language not in editor_module_cache:
@@ -25,7 +25,9 @@ class CompletionPopup(QListWidget):
25
25
  }}''')
26
26
  # Use a frameless tool window so it can float above the editor
27
27
  # without stealing focus. Note we do NOT use Qt.Popup here.
28
- self.setWindowFlags(Qt.FramelessWindowHint | Qt.Tool)
28
+ self.setWindowFlags(Qt.Tool | Qt.FramelessWindowHint |
29
+ Qt.NoDropShadowWindowHint |
30
+ Qt.WindowDoesNotAcceptFocus)
29
31
 
30
32
  # Let the editor keep focus
31
33
  self.setFocusPolicy(Qt.NoFocus)
@@ -0,0 +1,66 @@
1
+ # PyQt Code Editor / Sigmund Analyst
2
+
3
+ Copyright 2025 Sebastiaan Mathôt
4
+
5
+
6
+ ## About
7
+
8
+ Sigmund Analyst is a powerful code editor (also: Integrated Development Environment or IDE) focused on AI-assisted data analysis with Python
9
+
10
+ Features:
11
+
12
+ - AI integration [SigmundAI](https://sigmundai.eu) and [Mistral Codestral](https://docs.mistral.ai/capabilities/code_generation/)
13
+ - Syntax highlighting
14
+ - Code completion
15
+ - Code checking
16
+ - Project explorer
17
+ - Jupyter (IPython) console
18
+ - Workspace explorer
19
+ - Editor panel with splittable tabs
20
+ - Settings panel
21
+
22
+ ![](screenshot.png)
23
+
24
+
25
+ ## AI integration
26
+
27
+ ### SigmundAI for collaborative code editing
28
+
29
+ You can work together with SigmundAI on the currently active document or selected text. To activate SigmundAI integration, simply log into <https://sigmundai.eu> (subscription required). Sigmund Analyst will then automatically connect to SigmundAI when you enable the Sigmund panel in the toolbar.
30
+
31
+
32
+ ### Mistral Codestral for as-you-type suggestions
33
+
34
+ As-you-type code suggestions are provided by Mistral Codestral. To activate Mistral integration, you need to create an account with Mistral AI. Currently, a free Codestral API key is then provided through the Mistral console. Copy-paste this API key to Codestral API Key field in the settings panel of Sigmund Analyst.
35
+
36
+
37
+ ## Installation
38
+
39
+ ### Linux installer
40
+
41
+ The easiest way to install Sigmund Analyst on Linux is to download and run the installer script. This will create a Virtual Environment, pip install Sigmund Analyst and all dependencies into this environment, and add a Desktop file to your system to easily start Sigmund Analyst. To upgrade, simply run the script again.
42
+
43
+ ```
44
+ bash <(curl -L https://raw.githubusercontent.com/open-cogsci/pyqt_code_editor/refs/heads/master/install_sigmund_analyst.sh)
45
+ ```
46
+
47
+
48
+ ### Other systems
49
+
50
+ Install with:
51
+
52
+ ```
53
+ pip install pyqt_code_editor
54
+ ```
55
+
56
+ Start Sigmund Analyst with:
57
+
58
+ ```
59
+ sigmund-analyst
60
+ ```
61
+
62
+
63
+ ## License
64
+
65
+ `PyQt Code Editor` is licensed under the [GNU General Public License
66
+ v3](http://www.gnu.org/licenses/gpl-3.0.en.html).
@@ -1,70 +0,0 @@
1
- Metadata-Version: 2.4
2
- Name: pyqt_code_editor
3
- Version: 0.0.7
4
- Summary: Fully featured code-editor widgets for PyQt
5
- Keywords: code editor,pyqt,ide
6
- Author-email: Sebastiaan Mathôt <s.mathot@cogsci.nl>
7
- Requires-Python: >=3.10
8
- Description-Content-Type: text/markdown
9
- License-File: COPYING
10
- Requires-Dist: chardet
11
- Requires-Dist: detect-indent
12
- Requires-Dist: jedi
13
- Requires-Dist: mistralai
14
- Requires-Dist: pathspec
15
- Requires-Dist: pygments
16
- Requires-Dist: qtawesome
17
- Requires-Dist: qtpy
18
- Requires-Dist: ruff
19
- Requires-Dist: opensesame-extension-sigmund
20
- Requires-Dist: pyqt6
21
- Requires-Dist: qtconsole
22
- Project-URL: Source, https://github.com/open-cogsci/pyqt_code_editor
23
-
24
- # PyQt Code Editor
25
-
26
- __This code is under development and not ready for general use__
27
-
28
- Fully featured code-editor widgets for PyQt
29
-
30
- Copyright 2025 Sebastiaan Mathôt
31
-
32
-
33
- ## About
34
-
35
- This is a set of code-editor widgets for PyQt. They are inspired by PyQode, and contain much of the same functionality, but in a cleaner and more modern codebase. All functionality can be used as standalone PyQt widgets. A full Python IDE is also available. This IDE is called Sigmund Analyst, and is primarily intended for data analysis in combination with [SigmundAI](https://sigmundai.eu).
36
-
37
- Features:
38
-
39
- - Code-editor widgets with syntax highlighting, code completion, AI integration, and more
40
- - Project explorer (folder view)
41
- - Editor panel with splittable tabs
42
- - Jupyter console
43
- - Workspace explorer (linked to Jupyter console)
44
- - Settings panel
45
-
46
- ![](screenshot.png)
47
-
48
-
49
- ## Usage
50
-
51
- First, install all dependencies using:
52
-
53
- ```
54
- pip install .
55
- ```
56
-
57
- Next, start one of the example scripts:
58
-
59
- ```
60
- python examples/example_ide.py
61
- ```
62
-
63
- On some systems, a segmentation fault occurs with the version of PyQt from PyPi. In that case, install PyQt from some other source, such as Anaconda.
64
-
65
-
66
- ## License
67
-
68
- `PyQt Code Editor` is licensed under the [GNU General Public License
69
- v3](http://www.gnu.org/licenses/gpl-3.0.en.html).
70
-
@@ -1,46 +0,0 @@
1
- # PyQt Code Editor
2
-
3
- __This code is under development and not ready for general use__
4
-
5
- Fully featured code-editor widgets for PyQt
6
-
7
- Copyright 2025 Sebastiaan Mathôt
8
-
9
-
10
- ## About
11
-
12
- This is a set of code-editor widgets for PyQt. They are inspired by PyQode, and contain much of the same functionality, but in a cleaner and more modern codebase. All functionality can be used as standalone PyQt widgets. A full Python IDE is also available. This IDE is called Sigmund Analyst, and is primarily intended for data analysis in combination with [SigmundAI](https://sigmundai.eu).
13
-
14
- Features:
15
-
16
- - Code-editor widgets with syntax highlighting, code completion, AI integration, and more
17
- - Project explorer (folder view)
18
- - Editor panel with splittable tabs
19
- - Jupyter console
20
- - Workspace explorer (linked to Jupyter console)
21
- - Settings panel
22
-
23
- ![](screenshot.png)
24
-
25
-
26
- ## Usage
27
-
28
- First, install all dependencies using:
29
-
30
- ```
31
- pip install .
32
- ```
33
-
34
- Next, start one of the example scripts:
35
-
36
- ```
37
- python examples/example_ide.py
38
- ```
39
-
40
- On some systems, a segmentation fault occurs with the version of PyQt from PyPi. In that case, install PyQt from some other source, such as Anaconda.
41
-
42
-
43
- ## License
44
-
45
- `PyQt Code Editor` is licensed under the [GNU General Public License
46
- v3](http://www.gnu.org/licenses/gpl-3.0.en.html).