pygpt-net 2.6.19.post1__py3-none-any.whl → 2.6.20__py3-none-any.whl

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.
@@ -6,7 +6,7 @@
6
6
  # GitHub: https://github.com/szczyglis-dev/py-gpt #
7
7
  # MIT License #
8
8
  # Created By : Marcin Szczygliński #
9
- # Updated Date: 2025.08.15 03:00:00 #
9
+ # Updated Date: 2025.08.22 10:00:00 #
10
10
  # ================================================== #
11
11
 
12
12
  from PySide6.QtCore import Qt
@@ -91,6 +91,20 @@ class BaseConfigDialog:
91
91
 
92
92
  return widgets
93
93
 
94
+ def trans_or_not(self, label: str):
95
+ """
96
+ Translate label or return it as is if translation is not available
97
+
98
+ :param label: Label to translate
99
+ :return: Translated label or original if not found
100
+ """
101
+ txt = trans(label)
102
+ if txt == label:
103
+ if txt.startswith("dictionary."):
104
+ # get only last part after the dot
105
+ txt = txt.split('.')[-1].capitalize()
106
+ return txt
107
+
94
108
  def add_option(self, widget: QWidget, option: dict) -> QHBoxLayout:
95
109
  """
96
110
  Add option
@@ -105,7 +119,7 @@ class BaseConfigDialog:
105
119
  label_key = f'{label}.label'
106
120
  nodes = self.window.ui.nodes
107
121
 
108
- txt = trans(label)
122
+ txt = self.trans_or_not(label)
109
123
  if extra.get('bold'):
110
124
  nodes[label_key] = TitleLabel(txt)
111
125
  else:
@@ -151,7 +165,7 @@ class BaseConfigDialog:
151
165
  extra = option.get('extra') or {}
152
166
  nodes = self.window.ui.nodes
153
167
 
154
- txt = trans(label)
168
+ txt = self.trans_or_not(label)
155
169
  if extra.get('bold'):
156
170
  nodes[label_key] = TitleLabel(txt)
157
171
  else:
@@ -6,7 +6,7 @@
6
6
  # GitHub: https://github.com/szczyglis-dev/py-gpt #
7
7
  # MIT License #
8
8
  # Created By : Marcin Szczygliński #
9
- # Updated Date: 2025.07.22 15:00:00 #
9
+ # Updated Date: 2025.08.22 10:00:00 #
10
10
  # ================================================== #
11
11
 
12
12
  from PySide6.QtGui import QIcon
@@ -50,7 +50,7 @@ class OptionCheckbox(QWidget):
50
50
  if self.option is not None:
51
51
  if "label" in self.option and self.option["label"] is not None \
52
52
  and self.option["label"] != "":
53
- self.title = trans(self.option["label"])
53
+ self.title = self.trans_or_not(self.option["label"])
54
54
  if "value" in self.option:
55
55
  self.value = self.option["value"]
56
56
  if "real_time" in self.option:
@@ -90,6 +90,20 @@ class OptionCheckbox(QWidget):
90
90
 
91
91
  #self.setLayout(self.layout)
92
92
 
93
+ def trans_or_not(self, label: str):
94
+ """
95
+ Translate label or return it as is if translation is not available
96
+
97
+ :param label: Label to translate
98
+ :return: Translated label or original if not found
99
+ """
100
+ txt = trans(label)
101
+ if txt == label:
102
+ if txt.startswith("dictionary."):
103
+ # get only last part after the dot
104
+ txt = txt.split('.')[-1].capitalize()
105
+ return txt
106
+
93
107
  def setIcon(self, icon: str):
94
108
  """
95
109
  Set icon
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: pygpt-net
3
- Version: 2.6.19.post1
3
+ Version: 2.6.20
4
4
  Summary: Desktop AI Assistant powered by: OpenAI GPT-5, o1, o3, GPT-4, Gemini, Claude, Grok, DeepSeek, and other models supported by Llama Index, and Ollama. Chatbot, agents, completion, image generation, vision analysis, speech-to-text, plugins, internet access, file handling, command execution and more.
5
5
  License: MIT
6
6
  Keywords: py_gpt,py-gpt,pygpt,desktop,app,o1,o3,gpt-5,gpt,gpt4,gpt-4o,gpt-4v,gpt3.5,gpt-4,gpt-4-vision,gpt-3.5,llama3,mistral,gemini,grok,deepseek,bielik,claude,tts,whisper,vision,chatgpt,dall-e,chat,chatbot,assistant,text completion,image generation,ai,api,openai,api key,langchain,llama-index,ollama,presets,ui,qt,pyside
@@ -23,6 +23,7 @@ Requires-Dist: PySide6 (==6.9.1)
23
23
  Requires-Dist: Pygments (>=2.19.2,<3.0.0)
24
24
  Requires-Dist: SQLAlchemy (>=2.0.41,<3.0.0)
25
25
  Requires-Dist: SpeechRecognition (>=3.14.3,<4.0.0)
26
+ Requires-Dist: Telethon (>=1.40.0,<2.0.0)
26
27
  Requires-Dist: anthropic (>=0.54.0,<0.55.0)
27
28
  Requires-Dist: azure-core (>=1.34.0,<2.0.0)
28
29
  Requires-Dist: beautifulsoup4 (>=4.13.4,<5.0.0)
@@ -80,6 +81,7 @@ Requires-Dist: openai-agents (>=0.2.3,<0.3.0)
80
81
  Requires-Dist: opencv-python (>=4.11.0.86,<5.0.0.0)
81
82
  Requires-Dist: packaging (>=24.2,<25.0)
82
83
  Requires-Dist: pandas (>=2.2.3,<3.0.0)
84
+ Requires-Dist: paramiko (>=4.0.0,<5.0.0)
83
85
  Requires-Dist: pillow (>=10.4.0,<11.0.0)
84
86
  Requires-Dist: pinecone-client (>=3.2.2,<4.0.0)
85
87
  Requires-Dist: psutil (>=7.0.0,<8.0.0)
@@ -109,7 +111,7 @@ Description-Content-Type: text/markdown
109
111
 
110
112
  [![pygpt](https://snapcraft.io/pygpt/badge.svg)](https://snapcraft.io/pygpt)
111
113
 
112
- Release: **2.6.19** | build: **2025-08-22** | Python: **>=3.10, <3.14**
114
+ Release: **2.6.20** | build: **2025-08-22** | Python: **>=3.10, <3.14**
113
115
 
114
116
  > Official website: https://pygpt.net | Documentation: https://pygpt.readthedocs.io
115
117
  >
@@ -1454,6 +1456,8 @@ The following plugins are currently available, and model can use them instantly:
1454
1456
 
1455
1457
  - `Serial port / USB` - plugin provides commands for reading and sending data to USB ports.
1456
1458
 
1459
+ - `Server (SSH/FTP)` - Connect to remote servers using FTP, SFTP, and SSH. Execute remote commands, upload, download, and more.
1460
+
1457
1461
  - `Slack` - Handle users, conversations, messages, and files on Slack.
1458
1462
 
1459
1463
  - `System Prompt Extra (append)` - appends additional system prompts (extra data) from a list to every current system prompt. You can enhance every system prompt with extra instructions that will be automatically appended to the system prompt.
@@ -1802,6 +1806,14 @@ You can send commands to, for example, an Arduino or any other controllers using
1802
1806
 
1803
1807
  Documentation: https://pygpt.readthedocs.io/en/latest/plugins.html#serial-port-usb
1804
1808
 
1809
+ ## Server (SSH/FTP)
1810
+
1811
+ The Server plugin provides integration for remote server management via SSH, SFTP, and FTP protocols. This plugin allows executing commands, transferring files, and managing directories on remote servers.
1812
+
1813
+ For security reasons, the model will not see any credentials, only the server name and port fields (see the docs)
1814
+
1815
+ Documentation: https://pygpt.readthedocs.io/en/latest/plugins.html#server-ssh-ftp
1816
+
1805
1817
  ## Slack
1806
1818
 
1807
1819
  The Slack plugin integrates with the Slack Web API, enabling interaction with Slack workspaces through the application. This plugin supports OAuth2 for authentication, which allows for seamless integration with Slack services, enabling actions such as posting messages, retrieving users, and managing conversations.
@@ -3526,6 +3538,11 @@ may consume additional tokens that are not displayed in the main window.
3526
3538
 
3527
3539
  ## Recent changes:
3528
3540
 
3541
+ **2.6.20 (2025-08-22)**
3542
+
3543
+ - Added a new plugin: Server (FTP/SSH) - connect to remote servers using FTP, SFTP, and SSH. Execute remote commands, upload, download, and more (beta).
3544
+ - Added support for Wayland in Snap/compiled versions.
3545
+
3529
3546
  **2.6.19 (2025-08-22)**
3530
3547
 
3531
3548
  - Fixed: added prevention for summarizing an empty context.
@@ -1,7 +1,7 @@
1
- pygpt_net/CHANGELOG.txt,sha256=pXUA8cJ0SH9plFL3gWKvSbZnyzd0o75KVsH_302jVC0,100677
1
+ pygpt_net/CHANGELOG.txt,sha256=BH7azoY3n3_-wGzntMHMYEe-aGuRBWTo7MOiIEYApvo,100907
2
2
  pygpt_net/LICENSE,sha256=dz9sfFgYahvu2NZbx4C1xCsVn9GVer2wXcMkFRBvqzY,1146
3
- pygpt_net/__init__.py,sha256=3qsXSKahk5822CHe-IOkYBE6ti5pr-IXDt4dqrPbAxc,1373
4
- pygpt_net/app.py,sha256=jBRU18JvJPWwzTTMwrRA986jBFYQSVvB6C_xcJDY7ZI,21007
3
+ pygpt_net/__init__.py,sha256=p67s29QpmIKCBG1A-IWqeqPeEFADmqpekr3TLVnjzaI,1373
4
+ pygpt_net/app.py,sha256=LEGL0ryTsLMZnP7rloMIRvTOr6BtpUT-sh9tzHVvqfM,21106
5
5
  pygpt_net/config.py,sha256=LCKrqQfePVNrAvH3EY_1oZx1Go754sDoyUneJ0iGWFI,16660
6
6
  pygpt_net/container.py,sha256=NsMSHURaEC_eW8vrCNdztwqkxB7jui3yVlzUOMYvCHg,4124
7
7
  pygpt_net/controller/__init__.py,sha256=UAYJmyXJG1_kawo23FRH0IjU8S8YBbIuJrPkrsOy9Eo,6199
@@ -345,8 +345,8 @@ pygpt_net/css_rc.py,sha256=i13kX7irhbYCWZ5yJbcMmnkFp_UfS4PYnvRFSPF7XXo,11349
345
345
  pygpt_net/data/audio/click_off.mp3,sha256=aNiRDP1pt-Jy7ija4YKCNFBwvGWbzU460F4pZWZDS90,65201
346
346
  pygpt_net/data/audio/click_on.mp3,sha256=qfdsSnthAEHVXzeyN4LlC0OvXuyW8p7stb7VXtlvZ1k,65201
347
347
  pygpt_net/data/audio/ok.mp3,sha256=LTiV32pEBkpUGBkKkcOdOFB7Eyt_QoP2Nv6c5AaXftk,32256
348
- pygpt_net/data/config/config.json,sha256=sFI99Xg2JwriJzFqKXPsqhDQ825ZwhyuuUdV3vO7wH4,24924
349
- pygpt_net/data/config/models.json,sha256=g5-Xu_mh8z-gG8tJRz98Q65WIDjO1ARnbJvMIMPnIKI,109650
348
+ pygpt_net/data/config/config.json,sha256=Sm0utuUMmq_Dt7bjtSWfGlSIwMYUaA8EaRp3CDDBI0c,24924
349
+ pygpt_net/data/config/models.json,sha256=r86GEcMHPDv1d4LAT2_81ArNT4BGSEs5uDGXQ-j4vPA,109650
350
350
  pygpt_net/data/config/modes.json,sha256=M882iiqX_R2sNQl9cqZ3k-uneEvO9wpARtHRMLx_LHw,2265
351
351
  pygpt_net/data/config/presets/agent_code_act.json,sha256=GYHqhxtKFLUCvRI3IJAJ7Qe1k8yD9wGGNwManldWzlI,754
352
352
  pygpt_net/data/config/presets/agent_openai.json,sha256=bpDJgLRey_effQkzFRoOEGd4aHUrmzeODSDdNzrf62I,730
@@ -1936,6 +1936,10 @@ pygpt_net/plugin/openai_vision/worker.py,sha256=KhpLurNfYg6eVjRlJ0ijEh6Z2ZZZyOKY
1936
1936
  pygpt_net/plugin/real_time/__init__.py,sha256=vBIhdxwwT5kc2yth5sjjbW2OjiBlMTqdCRrlh_mjNvM,510
1937
1937
  pygpt_net/plugin/real_time/config.py,sha256=vgP33hiz5-mLF9WvJDOtCZx_TZrqo-zlgtVINRtpuHM,2128
1938
1938
  pygpt_net/plugin/real_time/plugin.py,sha256=PTMe2KnYnFGW3Y2g_nEtHH6uT_4OpvYlvcM2r8xoucQ,5027
1939
+ pygpt_net/plugin/server/__init__.py,sha256=EnwWbtAF0hUV-Ck-Qm-DOt7jEkYDR0DN1F0PxTco7bo,510
1940
+ pygpt_net/plugin/server/config.py,sha256=rRSOrdN7ciuTlHeCSHtNgjn1lwmVAISeqrD5LYLLr5g,11959
1941
+ pygpt_net/plugin/server/plugin.py,sha256=kepeXQkZiz5GGDyKA1ebtMXs2Cvq0DnqQ34gFtH1mdI,3087
1942
+ pygpt_net/plugin/server/worker.py,sha256=fHPRlugy2HKrQeC-KsgGzaJ93SRYspVS-NdUoCdfoJY,43847
1939
1943
  pygpt_net/plugin/slack/__init__.py,sha256=tvF6upS93L61NRbkQmscSJXM7ZzPlmVj16mVHUM-NHU,510
1940
1944
  pygpt_net/plugin/slack/config.py,sha256=cA6VrABsGEITEHXse10qk7foLvPp3wiGC4yVRJuo794,14139
1941
1945
  pygpt_net/plugin/slack/plugin.py,sha256=lusdnwrSjh326Ll4Np1eLZP1gWV8HKQe13Ns2jTrJfk,3278
@@ -2250,7 +2254,7 @@ pygpt_net/tools/translator/ui/dialogs.py,sha256=qC-dCNtOLbOe-h586iBmsBTlv4KlUoxC
2250
2254
  pygpt_net/tools/translator/ui/widgets.py,sha256=2wQa1T0oWAkoQGTDntzFUE6r1slW-an5uretGxMAJeo,17540
2251
2255
  pygpt_net/ui/__init__.py,sha256=OoyVKGWLxPSlwTnEJ-fpwe5EH1GLdRGbTaNHwDoJ7PI,9313
2252
2256
  pygpt_net/ui/base/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
2253
- pygpt_net/ui/base/config_dialog.py,sha256=djIXuMBC6AJN1WrUx-z35jjtZJyQvpwc7pYwNHN6Oqs,8584
2257
+ pygpt_net/ui/base/config_dialog.py,sha256=uDD7YOf1vyP8YKyakE8SY6X7i12RFvNDdqyrAoG_BWs,9071
2254
2258
  pygpt_net/ui/base/context_menu.py,sha256=WqFYyAXJ0fguJ5LF5uOTSLyC38-DbewV2cDJVBYNWyk,4369
2255
2259
  pygpt_net/ui/base/flow_layout.py,sha256=t6TeNSdmScs0NQKlIdzbFmR6oLogekzJGKPOYJUvXls,2803
2256
2260
  pygpt_net/ui/dialog/__init__.py,sha256=1SGZ5i2G1UnKQpyj_HYkN0t-HLepD6jU_ICw1waaxlk,488
@@ -2405,7 +2409,7 @@ pygpt_net/ui/widget/lists/profile.py,sha256=DJXiD8mvyjM0Xon7d31heKppLPzR_lAg1NbH
2405
2409
  pygpt_net/ui/widget/lists/settings.py,sha256=ZMOPvpu_h3NMQ2WTb5SfoAmSmBTW_lbtm7M-oAp1zA8,1052
2406
2410
  pygpt_net/ui/widget/lists/uploaded.py,sha256=u7OJNW1R-7JBplQohKHA89P7BQ2CmLVnVTrlNNvuEZk,4382
2407
2411
  pygpt_net/ui/widget/option/__init__.py,sha256=8HT4tQFqQogEEpGYTv2RplKBthlsFKcl5egnv4lzzEw,488
2408
- pygpt_net/ui/widget/option/checkbox.py,sha256=-IlrRPzi0iD2Rp6yfKD5cVG6z_vcKeDsPx4CFMf1Nig,3517
2412
+ pygpt_net/ui/widget/option/checkbox.py,sha256=vt7rxy0jH-sCZzPXsWpY_AmGRNY6R8xxhrE-9YiQ1uc,3992
2409
2413
  pygpt_net/ui/widget/option/checkbox_list.py,sha256=mIF8IT8S3It_Ajfbq7iGSqn3he8JUqxGMQ9_HWF_xzs,5821
2410
2414
  pygpt_net/ui/widget/option/cmd.py,sha256=njMDaswRDHxJrkOMjPAYNOoVPhS_oCfShYDjNdxr0Ps,5828
2411
2415
  pygpt_net/ui/widget/option/combo.py,sha256=g1UAi8Y5-eF-Pi1xA0xoEDfEIfXjI-RRj9VP-FFqyFA,4891
@@ -2439,8 +2443,8 @@ pygpt_net/ui/widget/textarea/web.py,sha256=xGI-47bZ5M_vf_jMc2R9sB1-vuHJbgd5FxE5t
2439
2443
  pygpt_net/ui/widget/vision/__init__.py,sha256=8HT4tQFqQogEEpGYTv2RplKBthlsFKcl5egnv4lzzEw,488
2440
2444
  pygpt_net/ui/widget/vision/camera.py,sha256=T8b5cmK6uhf_WSSxzPt_Qod8JgMnst6q8sQqRvgQiSA,2584
2441
2445
  pygpt_net/utils.py,sha256=GBAXOpp_Wjfu7Al7TnTV62-R-JPMiP9GuPXLJ0HmeJU,8906
2442
- pygpt_net-2.6.19.post1.dist-info/LICENSE,sha256=rbPqNB_xxANH8hKayJyIcTwD4bj4Y2G-Mcm85r1OImM,1126
2443
- pygpt_net-2.6.19.post1.dist-info/METADATA,sha256=rPTOz0OG65CGAhMxK6WxQYb27vpc_TV1rVn7aTxsMLc,158996
2444
- pygpt_net-2.6.19.post1.dist-info/WHEEL,sha256=b4K_helf-jlQoXBBETfwnf4B04YC67LOev0jo4fX5m8,88
2445
- pygpt_net-2.6.19.post1.dist-info/entry_points.txt,sha256=qvpII6UHIt8XfokmQWnCYQrTgty8FeJ9hJvOuUFCN-8,43
2446
- pygpt_net-2.6.19.post1.dist-info/RECORD,,
2446
+ pygpt_net-2.6.20.dist-info/LICENSE,sha256=rbPqNB_xxANH8hKayJyIcTwD4bj4Y2G-Mcm85r1OImM,1126
2447
+ pygpt_net-2.6.20.dist-info/METADATA,sha256=04RWfR_eAo_7cTA2pOW6b6DgJYrMwmokVmUfqVcCjlU,159861
2448
+ pygpt_net-2.6.20.dist-info/WHEEL,sha256=b4K_helf-jlQoXBBETfwnf4B04YC67LOev0jo4fX5m8,88
2449
+ pygpt_net-2.6.20.dist-info/entry_points.txt,sha256=qvpII6UHIt8XfokmQWnCYQrTgty8FeJ9hJvOuUFCN-8,43
2450
+ pygpt_net-2.6.20.dist-info/RECORD,,