PluginAiOllama.py

Sat, 03 Aug 2024 19:54:43 +0200

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Sat, 03 Aug 2024 19:54:43 +0200
changeset 2
fee250704d3d
parent 1
124e1b8f276b
child 3
ca28466a186d
permissions
-rw-r--r--

Filled in some of the skeleton methods.

1
124e1b8f276b Created the plug-in skeleton.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
1 # -*- coding: utf-8 -*-
124e1b8f276b Created the plug-in skeleton.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
2
124e1b8f276b Created the plug-in skeleton.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
3 # Copyright (c) 2024 Detlev Offenbach <detlev@die-offenbachs.de>
124e1b8f276b Created the plug-in skeleton.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
4 #
124e1b8f276b Created the plug-in skeleton.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
5
124e1b8f276b Created the plug-in skeleton.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
6 """
124e1b8f276b Created the plug-in skeleton.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
7 Module implementing the ollama Interface plug-in.
124e1b8f276b Created the plug-in skeleton.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
8 """
124e1b8f276b Created the plug-in skeleton.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
9
2
fee250704d3d Filled in some of the skeleton methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
10 import os
fee250704d3d Filled in some of the skeleton methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
11
fee250704d3d Filled in some of the skeleton methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
12 from PyQt6.QtCore import QObject, Qt, QTranslator
1
124e1b8f276b Created the plug-in skeleton.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
13
124e1b8f276b Created the plug-in skeleton.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
14 from eric7 import Preferences
2
fee250704d3d Filled in some of the skeleton methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
15 from eric7.EricWidgets.EricApplication import ericApp
1
124e1b8f276b Created the plug-in skeleton.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
16
124e1b8f276b Created the plug-in skeleton.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
17 # Start-Of-Header
124e1b8f276b Created the plug-in skeleton.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
18 __header__ = {
124e1b8f276b Created the plug-in skeleton.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
19 "name": "ollama Interface",
124e1b8f276b Created the plug-in skeleton.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
20 "author": "Detlev Offenbach <detlev@die-offenbachs.de>",
124e1b8f276b Created the plug-in skeleton.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
21 "autoactivate": True,
124e1b8f276b Created the plug-in skeleton.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
22 "deactivateable": True,
124e1b8f276b Created the plug-in skeleton.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
23 "version": "10.0.0",
124e1b8f276b Created the plug-in skeleton.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
24 "className": "PluginOllamaInterface",
124e1b8f276b Created the plug-in skeleton.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
25 "packageName": "OllamaInterface",
124e1b8f276b Created the plug-in skeleton.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
26 "shortDescription": "Grapgical 'ollama' client for eric-ide.",
124e1b8f276b Created the plug-in skeleton.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
27 "longDescription": (
124e1b8f276b Created the plug-in skeleton.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
28 "Plug-in implementing an 'ollama' client and interface widgets."
124e1b8f276b Created the plug-in skeleton.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
29 ),
124e1b8f276b Created the plug-in skeleton.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
30 "needsRestart": False,
124e1b8f276b Created the plug-in skeleton.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
31 "pyqtApi": 2,
124e1b8f276b Created the plug-in skeleton.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
32 }
124e1b8f276b Created the plug-in skeleton.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
33 # End-Of-Header
124e1b8f276b Created the plug-in skeleton.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
34
124e1b8f276b Created the plug-in skeleton.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
35 error = "" # noqa: U200
124e1b8f276b Created the plug-in skeleton.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
36
2
fee250704d3d Filled in some of the skeleton methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
37 ollamaInterfacePluginObject = None
fee250704d3d Filled in some of the skeleton methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
38
1
124e1b8f276b Created the plug-in skeleton.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
39
124e1b8f276b Created the plug-in skeleton.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
40 def pageCreationFunction(configDlg):
124e1b8f276b Created the plug-in skeleton.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
41 """
124e1b8f276b Created the plug-in skeleton.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
42 Function to create the Translator configuration page.
124e1b8f276b Created the plug-in skeleton.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
43
124e1b8f276b Created the plug-in skeleton.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
44 @param configDlg reference to the configuration dialog
124e1b8f276b Created the plug-in skeleton.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
45 @type ConfigurationWidget
124e1b8f276b Created the plug-in skeleton.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
46 @return reference to the configuration page
124e1b8f276b Created the plug-in skeleton.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
47 @rtype TranslatorPage
124e1b8f276b Created the plug-in skeleton.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
48 """
124e1b8f276b Created the plug-in skeleton.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
49 # TODO: not implemented yet
124e1b8f276b Created the plug-in skeleton.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
50 page = None # change this line to create the configuration page
124e1b8f276b Created the plug-in skeleton.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
51 return page
124e1b8f276b Created the plug-in skeleton.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
52
124e1b8f276b Created the plug-in skeleton.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
53
124e1b8f276b Created the plug-in skeleton.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
54 def getConfigData():
124e1b8f276b Created the plug-in skeleton.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
55 """
124e1b8f276b Created the plug-in skeleton.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
56 Function returning data as required by the configuration dialog.
124e1b8f276b Created the plug-in skeleton.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
57
124e1b8f276b Created the plug-in skeleton.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
58 @return dictionary containing the relevant data
124e1b8f276b Created the plug-in skeleton.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
59 @rtype dict
124e1b8f276b Created the plug-in skeleton.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
60 """
124e1b8f276b Created the plug-in skeleton.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
61 # TODO: not implemented yet
124e1b8f276b Created the plug-in skeleton.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
62 return {
124e1b8f276b Created the plug-in skeleton.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
63 "<unique key>": [
124e1b8f276b Created the plug-in skeleton.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
64 "<display string>",
124e1b8f276b Created the plug-in skeleton.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
65 "<pixmap filename>",
124e1b8f276b Created the plug-in skeleton.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
66 pageCreationFunction,
124e1b8f276b Created the plug-in skeleton.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
67 None,
124e1b8f276b Created the plug-in skeleton.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
68 None,
124e1b8f276b Created the plug-in skeleton.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
69 ],
124e1b8f276b Created the plug-in skeleton.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
70 }
124e1b8f276b Created the plug-in skeleton.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
71
124e1b8f276b Created the plug-in skeleton.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
72
124e1b8f276b Created the plug-in skeleton.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
73 def prepareUninstall():
124e1b8f276b Created the plug-in skeleton.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
74 """
124e1b8f276b Created the plug-in skeleton.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
75 Function to prepare for an un-installation.
124e1b8f276b Created the plug-in skeleton.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
76 """
124e1b8f276b Created the plug-in skeleton.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
77 Preferences.getSettings().remove(PluginOllamaInterface.PreferencesKey)
124e1b8f276b Created the plug-in skeleton.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
78
124e1b8f276b Created the plug-in skeleton.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
79
124e1b8f276b Created the plug-in skeleton.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
80 def clearPrivateData():
124e1b8f276b Created the plug-in skeleton.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
81 """
124e1b8f276b Created the plug-in skeleton.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
82 Function to clear the private data of the plug-in.
124e1b8f276b Created the plug-in skeleton.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
83 """
124e1b8f276b Created the plug-in skeleton.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
84 # TODO: not implemented yet
124e1b8f276b Created the plug-in skeleton.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
85 pass
124e1b8f276b Created the plug-in skeleton.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
86
124e1b8f276b Created the plug-in skeleton.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
87
124e1b8f276b Created the plug-in skeleton.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
88 class PluginOllamaInterface(QObject):
124e1b8f276b Created the plug-in skeleton.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
89 """
124e1b8f276b Created the plug-in skeleton.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
90 Class documentation goes here.
124e1b8f276b Created the plug-in skeleton.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
91 """
124e1b8f276b Created the plug-in skeleton.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
92
124e1b8f276b Created the plug-in skeleton.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
93 PreferencesKey = "Ollama"
124e1b8f276b Created the plug-in skeleton.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
94
124e1b8f276b Created the plug-in skeleton.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
95 def __init__(self, ui):
124e1b8f276b Created the plug-in skeleton.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
96 """
124e1b8f276b Created the plug-in skeleton.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
97 Constructor
124e1b8f276b Created the plug-in skeleton.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
98
124e1b8f276b Created the plug-in skeleton.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
99 @param ui reference to the user interface object
124e1b8f276b Created the plug-in skeleton.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
100 @type UI.UserInterface
124e1b8f276b Created the plug-in skeleton.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
101 """
124e1b8f276b Created the plug-in skeleton.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
102 super().__init__(ui)
124e1b8f276b Created the plug-in skeleton.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
103 self.__ui = ui
2
fee250704d3d Filled in some of the skeleton methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
104 self.__initialize()
fee250704d3d Filled in some of the skeleton methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
105
fee250704d3d Filled in some of the skeleton methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
106 self.__defaults = {
fee250704d3d Filled in some of the skeleton methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
107 "OllamaScheme": "http",
fee250704d3d Filled in some of the skeleton methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
108 "OllamaHost": "localhost",
fee250704d3d Filled in some of the skeleton methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
109 "OllamaPort": 11434,
fee250704d3d Filled in some of the skeleton methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
110 }
fee250704d3d Filled in some of the skeleton methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
111
fee250704d3d Filled in some of the skeleton methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
112 self.__translator = None
fee250704d3d Filled in some of the skeleton methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
113 self.__loadTranslator()
fee250704d3d Filled in some of the skeleton methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
114
fee250704d3d Filled in some of the skeleton methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
115 def __initialize(self):
fee250704d3d Filled in some of the skeleton methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
116 """
fee250704d3d Filled in some of the skeleton methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
117 Private slot to (re)initialize the plugin.
fee250704d3d Filled in some of the skeleton methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
118 """
fee250704d3d Filled in some of the skeleton methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
119 self.__widget = None
1
124e1b8f276b Created the plug-in skeleton.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
120
124e1b8f276b Created the plug-in skeleton.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
121 def activate(self):
124e1b8f276b Created the plug-in skeleton.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
122 """
124e1b8f276b Created the plug-in skeleton.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
123 Public method to activate this plug-in.
124e1b8f276b Created the plug-in skeleton.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
124
124e1b8f276b Created the plug-in skeleton.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
125 @return tuple of None and activation status
124e1b8f276b Created the plug-in skeleton.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
126 @rtype bool
124e1b8f276b Created the plug-in skeleton.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
127 """
124e1b8f276b Created the plug-in skeleton.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
128 global error
124e1b8f276b Created the plug-in skeleton.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
129 error = "" # clear previous error
124e1b8f276b Created the plug-in skeleton.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
130 # TODO: not implemented yet
124e1b8f276b Created the plug-in skeleton.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
131
124e1b8f276b Created the plug-in skeleton.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
132 return None, True
124e1b8f276b Created the plug-in skeleton.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
133
124e1b8f276b Created the plug-in skeleton.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
134 def deactivate(self):
124e1b8f276b Created the plug-in skeleton.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
135 """
124e1b8f276b Created the plug-in skeleton.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
136 Public method to deactivate this plug-in.
124e1b8f276b Created the plug-in skeleton.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
137 """
124e1b8f276b Created the plug-in skeleton.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
138 # TODO: not implemented yet
124e1b8f276b Created the plug-in skeleton.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
139 pass
124e1b8f276b Created the plug-in skeleton.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
140
2
fee250704d3d Filled in some of the skeleton methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
141 def __loadTranslator(self):
fee250704d3d Filled in some of the skeleton methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
142 """
fee250704d3d Filled in some of the skeleton methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
143 Private method to load the translation file.
fee250704d3d Filled in some of the skeleton methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
144 """
fee250704d3d Filled in some of the skeleton methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
145 if self.__ui is not None:
fee250704d3d Filled in some of the skeleton methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
146 loc = self.__ui.getLocale()
fee250704d3d Filled in some of the skeleton methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
147 if loc and loc != "C":
fee250704d3d Filled in some of the skeleton methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
148 locale_dir = os.path.join(
fee250704d3d Filled in some of the skeleton methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
149 os.path.dirname(__file__), "OllamaInterface", "i18n"
fee250704d3d Filled in some of the skeleton methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
150 )
fee250704d3d Filled in some of the skeleton methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
151 translation = "ollama_{0}".format(loc)
fee250704d3d Filled in some of the skeleton methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
152 translator = QTranslator(None)
fee250704d3d Filled in some of the skeleton methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
153 loaded = translator.load(translation, locale_dir)
fee250704d3d Filled in some of the skeleton methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
154 if loaded:
fee250704d3d Filled in some of the skeleton methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
155 self.__translator = translator
fee250704d3d Filled in some of the skeleton methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
156 ericApp().installTranslator(self.__translator)
fee250704d3d Filled in some of the skeleton methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
157 else:
fee250704d3d Filled in some of the skeleton methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
158 print(
fee250704d3d Filled in some of the skeleton methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
159 "Warning: translation file '{0}' could not be"
fee250704d3d Filled in some of the skeleton methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
160 " loaded.".format(translation)
fee250704d3d Filled in some of the skeleton methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
161 )
fee250704d3d Filled in some of the skeleton methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
162 print("Using default.")
fee250704d3d Filled in some of the skeleton methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
163
fee250704d3d Filled in some of the skeleton methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
164 def __activateWidget(self):
fee250704d3d Filled in some of the skeleton methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
165 """
fee250704d3d Filled in some of the skeleton methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
166 Private slot to handle the activation of the pipx interface.
fee250704d3d Filled in some of the skeleton methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
167 """
fee250704d3d Filled in some of the skeleton methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
168 uiLayoutType = self.__ui.getLayoutType()
fee250704d3d Filled in some of the skeleton methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
169
fee250704d3d Filled in some of the skeleton methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
170 if uiLayoutType == "Toolboxes":
fee250704d3d Filled in some of the skeleton methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
171 self.__ui.rToolboxDock.show()
fee250704d3d Filled in some of the skeleton methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
172 self.__ui.rToolbox.setCurrentWidget(self.__widget)
fee250704d3d Filled in some of the skeleton methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
173 elif uiLayoutType == "Sidebars":
fee250704d3d Filled in some of the skeleton methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
174 try:
fee250704d3d Filled in some of the skeleton methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
175 self.__ui.activateLeftRightSidebarWidget(self.__widget)
fee250704d3d Filled in some of the skeleton methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
176 except AttributeError:
fee250704d3d Filled in some of the skeleton methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
177 self.__activateLeftRightSidebarWidget(self.__widget)
fee250704d3d Filled in some of the skeleton methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
178 else:
fee250704d3d Filled in some of the skeleton methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
179 self.__widget.show()
fee250704d3d Filled in some of the skeleton methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
180 self.__widget.setFocus(Qt.FocusReason.ActiveWindowFocusReason)
fee250704d3d Filled in some of the skeleton methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
181
1
124e1b8f276b Created the plug-in skeleton.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
182 def getPreferences(self, key):
124e1b8f276b Created the plug-in skeleton.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
183 """
124e1b8f276b Created the plug-in skeleton.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
184 Public method to retrieve the various settings values.
124e1b8f276b Created the plug-in skeleton.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
185
124e1b8f276b Created the plug-in skeleton.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
186 @param key the key of the value to get
124e1b8f276b Created the plug-in skeleton.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
187 @type str
124e1b8f276b Created the plug-in skeleton.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
188 @return the requested setting value
124e1b8f276b Created the plug-in skeleton.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
189 @rtype Any
124e1b8f276b Created the plug-in skeleton.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
190 """
2
fee250704d3d Filled in some of the skeleton methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
191 if key in ("OllamaPort",):
fee250704d3d Filled in some of the skeleton methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
192 return int(
fee250704d3d Filled in some of the skeleton methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
193 Preferences.Prefs.settings.value(
fee250704d3d Filled in some of the skeleton methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
194 self.PreferencesKey + "/" + key, self.__defaults[key]
fee250704d3d Filled in some of the skeleton methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
195 )
fee250704d3d Filled in some of the skeleton methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
196 )
fee250704d3d Filled in some of the skeleton methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
197 else:
fee250704d3d Filled in some of the skeleton methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
198 return Preferences.Prefs.settings.value(
fee250704d3d Filled in some of the skeleton methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
199 self.PreferencesKey + "/" + key, self.__defaults[key]
fee250704d3d Filled in some of the skeleton methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
200 )
fee250704d3d Filled in some of the skeleton methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
201
1
124e1b8f276b Created the plug-in skeleton.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
202 return None
124e1b8f276b Created the plug-in skeleton.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
203
124e1b8f276b Created the plug-in skeleton.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
204 def setPreferences(self, key, value):
124e1b8f276b Created the plug-in skeleton.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
205 """
124e1b8f276b Created the plug-in skeleton.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
206 Public method to store the various settings values.
124e1b8f276b Created the plug-in skeleton.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
207
124e1b8f276b Created the plug-in skeleton.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
208 @param key the key of the setting to be set
124e1b8f276b Created the plug-in skeleton.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
209 @type str
124e1b8f276b Created the plug-in skeleton.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
210 @param value the value to be set
124e1b8f276b Created the plug-in skeleton.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
211 @type Any
124e1b8f276b Created the plug-in skeleton.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
212 """
2
fee250704d3d Filled in some of the skeleton methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
213 Preferences.Prefs.settings.setValue(self.PreferencesKey + "/" + key, value)
fee250704d3d Filled in some of the skeleton methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
214
fee250704d3d Filled in some of the skeleton methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
215 ############################################################################
fee250704d3d Filled in some of the skeleton methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
216 ## Methods for backward compatibility with eric-ide < 24.9
fee250704d3d Filled in some of the skeleton methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
217 ############################################################################
fee250704d3d Filled in some of the skeleton methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
218
fee250704d3d Filled in some of the skeleton methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
219 def __activateLeftRightSidebarWidget(self, widget):
fee250704d3d Filled in some of the skeleton methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
220 """
fee250704d3d Filled in some of the skeleton methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
221 Private method to activate the given widget in the left or right
fee250704d3d Filled in some of the skeleton methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
222 sidebar.
fee250704d3d Filled in some of the skeleton methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
223
fee250704d3d Filled in some of the skeleton methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
224 @param widget reference to the widget to be activated
fee250704d3d Filled in some of the skeleton methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
225 @type QWidget
fee250704d3d Filled in some of the skeleton methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
226 """
fee250704d3d Filled in some of the skeleton methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
227 # This is for backward compatibility with eric-ide < 24.9.
fee250704d3d Filled in some of the skeleton methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
228 sidebar = (
fee250704d3d Filled in some of the skeleton methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
229 self.__ui.leftSidebar
fee250704d3d Filled in some of the skeleton methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
230 if Preferences.getUI("CombinedLeftRightSidebar")
fee250704d3d Filled in some of the skeleton methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
231 else self.__ui.rightSidebar
fee250704d3d Filled in some of the skeleton methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
232 )
fee250704d3d Filled in some of the skeleton methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
233 sidebar.show()
fee250704d3d Filled in some of the skeleton methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
234 sidebar.setCurrentWidget(widget)
1
124e1b8f276b Created the plug-in skeleton.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
235
124e1b8f276b Created the plug-in skeleton.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
236
124e1b8f276b Created the plug-in skeleton.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
237 def installDependencies(pipInstall):
124e1b8f276b Created the plug-in skeleton.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
238 """
124e1b8f276b Created the plug-in skeleton.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
239 Function to install dependencies of this plug-in.
124e1b8f276b Created the plug-in skeleton.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
240
124e1b8f276b Created the plug-in skeleton.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
241 @param pipInstall function to be called with a list of package names.
124e1b8f276b Created the plug-in skeleton.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
242 @type function
124e1b8f276b Created the plug-in skeleton.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
243 """
124e1b8f276b Created the plug-in skeleton.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
244 # TODO: not implemented yet
124e1b8f276b Created the plug-in skeleton.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
245 pass
2
fee250704d3d Filled in some of the skeleton methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
246
fee250704d3d Filled in some of the skeleton methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
247
fee250704d3d Filled in some of the skeleton methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
248 #
fee250704d3d Filled in some of the skeleton methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1
diff changeset
249 # eflag: noqa = M801, U200

eric ide

mercurial