pygpt-net 2.6.18__py3-none-any.whl → 2.6.19__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.
pygpt_net/CHANGELOG.txt CHANGED
@@ -1,3 +1,8 @@
1
+ 2.6.19 (2025-08-22)
2
+
3
+ - Fixed: added prevention for summarizing an empty context.
4
+ - Improved the speed of context item refreshing.
5
+
1
6
  2.6.18 (2025-08-21)
2
7
 
3
8
  - Refactor and optimizations.
pygpt_net/__init__.py CHANGED
@@ -6,15 +6,15 @@
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.21 00:00:00 #
9
+ # Updated Date: 2025.08.22 00:00:00 #
10
10
  # ================================================== #
11
11
 
12
12
  __author__ = "Marcin Szczygliński"
13
13
  __copyright__ = "Copyright 2025, Marcin Szczygliński"
14
14
  __credits__ = ["Marcin Szczygliński"]
15
15
  __license__ = "MIT"
16
- __version__ = "2.6.18"
17
- __build__ = "2025-08-21"
16
+ __version__ = "2.6.19"
17
+ __build__ = "2025-08-22"
18
18
  __maintainer__ = "Marcin Szczygliński"
19
19
  __github__ = "https://github.com/szczyglis-dev/py-gpt"
20
20
  __report__ = "https://github.com/szczyglis-dev/py-gpt/issues"
@@ -226,14 +226,17 @@ class Response:
226
226
  })
227
227
  self.window.dispatch(event)
228
228
 
229
+ # CTX OUTPUT INFO:
230
+ # - ctx.output may be empty here if stream in OpenAI agents
231
+ # - ctx.live_output may be used against output in LlamaIndex agents
229
232
  if ctx.id is None:
230
233
  self.window.core.ctx.add(ctx)
231
-
232
- self.window.core.ctx.update_item(ctx)
234
+ else:
235
+ self.window.core.ctx.update_item(ctx)
233
236
 
234
237
  # update ctx meta
235
238
  if mode in (MODE_AGENT_LLAMA, MODE_AGENT_OPENAI) and ctx.meta is not None:
236
- self.window.core.ctx.replace(ctx.meta)
239
+ self.window.core.ctx.replace(ctx.meta) # update meta in items
237
240
  self.window.core.ctx.save(ctx.meta.id)
238
241
 
239
242
  # update preset if exists
@@ -185,14 +185,16 @@ class Evaluation:
185
185
  :return: final response from agent
186
186
  """
187
187
  outputs = []
188
+ i = 0
188
189
  for ctx in history:
189
- # if next input then clear outputs - use only output after last user input
190
- if self.is_input(ctx):
190
+ # if next input (but not last) then clear outputs - use only output after last user input
191
+ if self.is_input(ctx) and i < len(history) - 1:
191
192
  outputs.clear()
192
193
 
193
194
  if self.is_output(ctx):
194
195
  if ctx.output:
195
196
  outputs.append(ctx.output)
197
+ i += 1
196
198
 
197
199
  return "\n\n".join(outputs) if outputs else ""
198
200
 
@@ -262,7 +262,22 @@ class Body:
262
262
  element.classList.remove('empty_list');
263
263
  element.insertAdjacentHTML('beforeend', content);
264
264
  highlightCode(true, element);
265
- scheduleScroll();
265
+ scrollToBottom(false); // without schedule
266
+ }
267
+ }
268
+ function replaceNodes(content) {
269
+ if (DEBUG_MODE) {
270
+ log("REPLACE NODES: {" + content + "}");
271
+ }
272
+ clearStreamBefore();
273
+ prevScroll = 0;
274
+ const element = els.nodes || document.getElementById('_nodes_');
275
+ if (element) {
276
+ element.classList.remove('empty_list');
277
+ element.replaceChildren();
278
+ element.insertAdjacentHTML('beforeend', content);
279
+ highlightCode(true, element);
280
+ scrollToBottom(false); // without schedule
266
281
  }
267
282
  }
268
283
  function clean() {
@@ -422,7 +422,7 @@ class Renderer(BaseRenderer):
422
422
  self.init(pid)
423
423
 
424
424
  if clear:
425
- self.reset(meta)
425
+ self.reset(meta, clear_nodes=False) # nodes will be cleared later, in flush_output()
426
426
 
427
427
  self.pids[pid].use_buffer = True
428
428
  self.pids[pid].html = ""
@@ -482,7 +482,8 @@ class Renderer(BaseRenderer):
482
482
  if html_parts:
483
483
  self.append(
484
484
  pid,
485
- "".join(html_parts)
485
+ "".join(html_parts),
486
+ replace=True,
486
487
  )
487
488
 
488
489
  html_parts.clear()
@@ -495,6 +496,7 @@ class Renderer(BaseRenderer):
495
496
  pid,
496
497
  self.pids[pid].html,
497
498
  flush=True,
499
+ replace=True,
498
500
  )
499
501
  self.parser.reset()
500
502
 
@@ -894,7 +896,8 @@ class Renderer(BaseRenderer):
894
896
  self,
895
897
  pid,
896
898
  html: str,
897
- flush: bool = False
899
+ flush: bool = False,
900
+ replace: bool = False,
898
901
  ):
899
902
  """
900
903
  Append text to output
@@ -902,11 +905,12 @@ class Renderer(BaseRenderer):
902
905
  :param pid: ctx pid
903
906
  :param html: HTML code
904
907
  :param flush: True if flush only
908
+ :param replace: True if replace current content
905
909
  """
906
910
  if self.pids[pid].loaded and not self.pids[pid].use_buffer:
907
911
  self.clear_chunks(pid)
908
912
  if html:
909
- self.flush_output(pid, html)
913
+ self.flush_output(pid, html, replace)
910
914
  self.pids[pid].clear()
911
915
  else:
912
916
  if not flush:
@@ -1064,33 +1068,37 @@ class Renderer(BaseRenderer):
1064
1068
 
1065
1069
  def reset(
1066
1070
  self,
1067
- meta: Optional[CtxMeta] = None
1071
+ meta: Optional[CtxMeta] = None,
1072
+ clear_nodes: bool = True
1068
1073
  ):
1069
1074
  """
1070
1075
  Reset
1071
1076
 
1072
1077
  :param meta: Context meta
1078
+ :param clear_nodes: True if clear nodes
1073
1079
  """
1074
1080
  pid = self.get_pid(meta)
1075
1081
  if pid is not None and pid in self.pids:
1076
- self.reset_by_pid(pid)
1082
+ self.reset_by_pid(pid, clear_nodes=clear_nodes)
1077
1083
  else:
1078
1084
  if meta is not None:
1079
1085
  pid = self.get_or_create_pid(meta)
1080
- self.reset_by_pid(pid)
1086
+ self.reset_by_pid(pid, clear_nodes=clear_nodes)
1081
1087
 
1082
1088
  self.clear_live(meta, CtxItem())
1083
1089
 
1084
- def reset_by_pid(self, pid: Optional[int]):
1090
+ def reset_by_pid(self, pid: Optional[int], clear_nodes: bool = True):
1085
1091
  """
1086
1092
  Reset by PID
1087
1093
 
1088
1094
  :param pid: context PID
1095
+ :param clear_nodes: True if clear nodes
1089
1096
  """
1090
1097
  self.parser.reset()
1091
1098
  self.pids[pid].item = None
1092
1099
  self.pids[pid].html = ""
1093
- self.clear_nodes(pid)
1100
+ if clear_nodes:
1101
+ self.clear_nodes(pid)
1094
1102
  self.clear_chunks(pid)
1095
1103
  self.pids[pid].images_appended = []
1096
1104
  self.pids[pid].urls_appended = []
@@ -1379,18 +1387,25 @@ class Renderer(BaseRenderer):
1379
1387
  def flush_output(
1380
1388
  self,
1381
1389
  pid: Optional[int],
1382
- html: str
1390
+ html: str,
1391
+ replace: bool = False
1383
1392
  ):
1384
1393
  """
1385
1394
  Flush output
1386
1395
 
1387
1396
  :param pid: context PID
1388
1397
  :param html: HTML code
1398
+ :param replace: True if replace current content
1389
1399
  """
1390
1400
  try:
1391
- self.get_output_node_by_pid(pid).page().runJavaScript(
1392
- f"""if (typeof window.appendNode !== 'undefined') appendNode({self.to_json(self.sanitize_html(html))});"""
1393
- )
1401
+ if replace:
1402
+ self.get_output_node_by_pid(pid).page().runJavaScript(
1403
+ f"if (typeof window.replaceNodes !== 'undefined') replaceNodes({self.to_json(self.sanitize_html(html))});"
1404
+ )
1405
+ else:
1406
+ self.get_output_node_by_pid(pid).page().runJavaScript(
1407
+ f"if (typeof window.appendNode !== 'undefined') appendNode({self.to_json(self.sanitize_html(html))});"
1408
+ )
1394
1409
  except Exception:
1395
1410
  pass
1396
1411
  html = None
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "__meta__": {
3
- "version": "2.6.18",
4
- "app.version": "2.6.18",
5
- "updated_at": "2025-08-21T00:00:00"
3
+ "version": "2.6.19",
4
+ "app.version": "2.6.19",
5
+ "updated_at": "2025-08-22T00:00:00"
6
6
  },
7
7
  "access.audio.event.speech": false,
8
8
  "access.audio.event.speech.disabled": [],
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "__meta__": {
3
- "version": "2.6.18",
4
- "app.version": "2.6.18",
5
- "updated_at": "2025-08-21T23:07:35"
3
+ "version": "2.6.19",
4
+ "app.version": "2.6.19",
5
+ "updated_at": "2025-08-22T23:07:35"
6
6
  },
7
7
  "items": {
8
8
  "SpeakLeash/bielik-11b-v2.3-instruct:Q4_K_M": {
@@ -35,6 +35,10 @@ class Summarizer:
35
35
  system_prompt = self.window.core.prompt.get('ctx.auto_summary.system')
36
36
  truncated_input = str(ctx.input)[:max_chars] + '...' if len(str(ctx.input)) > max_chars else str(ctx.input)
37
37
  truncated_output = str(ctx.output)[:max_chars] + '...' if len(str(ctx.output)) > max_chars else str(ctx.output)
38
+
39
+ if not truncated_input and (not truncated_output or truncated_output == "None"):
40
+ return ""
41
+
38
42
  if truncated_output and truncated_output != "None":
39
43
  text = (self.window.core.prompt.get('ctx.auto_summary.user').
40
44
  replace("{input}", truncated_input).
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: pygpt-net
3
- Version: 2.6.18
3
+ Version: 2.6.19
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
@@ -109,7 +109,7 @@ Description-Content-Type: text/markdown
109
109
 
110
110
  [![pygpt](https://snapcraft.io/pygpt/badge.svg)](https://snapcraft.io/pygpt)
111
111
 
112
- Release: **2.6.18** | build: **2025-08-21** | Python: **>=3.10, <3.14**
112
+ Release: **2.6.19** | build: **2025-08-22** | Python: **>=3.10, <3.14**
113
113
 
114
114
  > Official website: https://pygpt.net | Documentation: https://pygpt.readthedocs.io
115
115
  >
@@ -4567,6 +4567,11 @@ may consume additional tokens that are not displayed in the main window.
4567
4567
 
4568
4568
  ## Recent changes:
4569
4569
 
4570
+ **2.6.19 (2025-08-22)**
4571
+
4572
+ - Fixed: added prevention for summarizing an empty context.
4573
+ - Improved the speed of context item refreshing.
4574
+
4570
4575
  **2.6.18 (2025-08-21)**
4571
4576
 
4572
4577
  - Refactor and optimizations.
@@ -1,6 +1,6 @@
1
- pygpt_net/CHANGELOG.txt,sha256=xEkIwFvB-oa4CSJHZdrbXoaZi5qhFleWeqycGqmC9Vo,100546
1
+ pygpt_net/CHANGELOG.txt,sha256=pXUA8cJ0SH9plFL3gWKvSbZnyzd0o75KVsH_302jVC0,100677
2
2
  pygpt_net/LICENSE,sha256=dz9sfFgYahvu2NZbx4C1xCsVn9GVer2wXcMkFRBvqzY,1146
3
- pygpt_net/__init__.py,sha256=PYx40H8zQx-HKR_qbGPVUh4GzW0UBijQI8tgjPQAdSU,1373
3
+ pygpt_net/__init__.py,sha256=3qsXSKahk5822CHe-IOkYBE6ti5pr-IXDt4dqrPbAxc,1373
4
4
  pygpt_net/app.py,sha256=jBRU18JvJPWwzTTMwrRA986jBFYQSVvB6C_xcJDY7ZI,21007
5
5
  pygpt_net/config.py,sha256=LCKrqQfePVNrAvH3EY_1oZx1Go754sDoyUneJ0iGWFI,16660
6
6
  pygpt_net/container.py,sha256=NsMSHURaEC_eW8vrCNdztwqkxB7jui3yVlzUOMYvCHg,4124
@@ -42,7 +42,7 @@ pygpt_net/controller/chat/image.py,sha256=yPX26gsz0fLnyXR88lpVyvvHnKA-yZwfXJ4paU
42
42
  pygpt_net/controller/chat/input.py,sha256=EPA90r6GqHIlu4JJbr0cuvKIEYSs6LVkimxrWHAyyX0,12390
43
43
  pygpt_net/controller/chat/output.py,sha256=VL4OmC6MMy2KvJlMo6ipFqvd0oVNUK9F14BzUHWFfno,10860
44
44
  pygpt_net/controller/chat/render.py,sha256=-Z-beOsEvw_tS4I8kBT5Z0n9KhDlgrEQH4x1PLDvxhE,20613
45
- pygpt_net/controller/chat/response.py,sha256=RUrqj9xl76lZeGLgyei-CeL1rNogEVD5U-jTUltfxgw,12066
45
+ pygpt_net/controller/chat/response.py,sha256=AydIFs507x3K3nd1HG-nsBBgLCoxM9IHXdcUMT8kQiw,12278
46
46
  pygpt_net/controller/chat/stream.py,sha256=zmDGI_Z9Rn8IYv6vEIVBMTOGjjY0zlfmM3qJMddRGRI,21994
47
47
  pygpt_net/controller/chat/text.py,sha256=ktluNw9ItG4g9p3OpOSmgALhFf1Gnonhl3J9kLzdTqU,10743
48
48
  pygpt_net/controller/chat/vision.py,sha256=LsFc0TZZwY8dVtJH6Q5iha8rUQCf5HhOMuRXMtnLzZU,3578
@@ -146,7 +146,7 @@ pygpt_net/core/agents/bridge.py,sha256=KhCbMTZNigNlgOhXEMN1kqWGNUhkEdjFdiHBBVTAr
146
146
  pygpt_net/core/agents/legacy.py,sha256=DdlyIpFjmeAC4XUGtq3F5_1BLGZLPOej0RZ6x9ycFjM,1731
147
147
  pygpt_net/core/agents/memory.py,sha256=9Jz9kT-xT8QPpGeXEpWopJUGBLLHu6Ys_-fRrg6BWDg,5210
148
148
  pygpt_net/core/agents/observer/__init__.py,sha256=qVIBJKpGbc0k7PTESAwAR7SbN-pbkBMJUTzeliCAaJU,651
149
- pygpt_net/core/agents/observer/evaluation.py,sha256=rDaGxe-HnFyOB01rZdJVtyi5U-ahkqz5HWhhz-IwsFg,8036
149
+ pygpt_net/core/agents/observer/evaluation.py,sha256=xA1TDHA6g0N1KXnZr92Xvi7pKYhiWHTTaM5G3L1oxlA,8109
150
150
  pygpt_net/core/agents/provider.py,sha256=rjxnuqzRxv2Z1d9i_wKpREwJBTeTgtyBDYtyHuwcSPA,2440
151
151
  pygpt_net/core/agents/runner.py,sha256=_R6bG1AD7uaHr158Az0DLQduy96dkr6UPyCWumSwFXE,12248
152
152
  pygpt_net/core/agents/runners/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -304,11 +304,11 @@ pygpt_net/core/render/plain/helpers.py,sha256=CMF84kSeuQnkgZVHmN_9YWaL5BC958tDE9
304
304
  pygpt_net/core/render/plain/pid.py,sha256=Pz3v1tnLj-XI_9vcaVkCf9SZ2EgVs4LYV4qzelBMoOg,1119
305
305
  pygpt_net/core/render/plain/renderer.py,sha256=CVCdwuDUZEpYna3tkwDlZLN7bwRMu-fBX636k5blqxM,15637
306
306
  pygpt_net/core/render/web/__init__.py,sha256=istp5dsn6EkLEP7lOBeDb8RjodUcWZqjcEvTroaTT-w,489
307
- pygpt_net/core/render/web/body.py,sha256=Ikkq2MH_uWz7YdQvT8llJpvdfHhRYnh1FXoXHjsu_F4,54918
307
+ pygpt_net/core/render/web/body.py,sha256=ZmVK7mf74ebbctpVsqRsUfM4fJDpxQC-rirvYPecBw0,55666
308
308
  pygpt_net/core/render/web/helpers.py,sha256=ivrXrCqRIUWHDmu3INu-i6XUlB2W9IOO8iYyqpbnSRU,5438
309
309
  pygpt_net/core/render/web/parser.py,sha256=pDFc9Tf8P-jvrDilXyT1fukcQHbixHRJ9Dn9hF10Gko,12892
310
310
  pygpt_net/core/render/web/pid.py,sha256=pXBdPb8hw_aZS2Rtz3pLBpuybpXrzoqwYAFWBal9bLE,3685
311
- pygpt_net/core/render/web/renderer.py,sha256=slIQ4J-XcLoeCSd_EYBbXgxhzERHgwnH0U37SKpQZes,56482
311
+ pygpt_net/core/render/web/renderer.py,sha256=Toc8DXNsKO-V5wEd9fCZ-4WPv1xgQLRcD4ozlJ_yUGs,57308
312
312
  pygpt_net/core/render/web/syntax_highlight.py,sha256=QSLGF5cJL_Xeqej7_TYwY_5C2w9enXV_cMEuaJ3C43U,2005
313
313
  pygpt_net/core/settings/__init__.py,sha256=GQ6_gJ2jf_Chm7ZuZLvkcvEh_sfMDVMBieeoJi2iPI4,512
314
314
  pygpt_net/core/settings/settings.py,sha256=onqwNiICm2VhHfmXLvp1MiEJ14m2jzeeI2pjUiaUwtY,7787
@@ -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=VLU9seArr1Ln6dwy0-FY4zYH1x6BEBfD3Z0qxyRY6yQ,24924
349
- pygpt_net/data/config/models.json,sha256=xYdn33RlgARYnLEAuCKaJVQpY_l0_qba65dPKZT-rrM,109650
348
+ pygpt_net/data/config/config.json,sha256=sFI99Xg2JwriJzFqKXPsqhDQ825ZwhyuuUdV3vO7wH4,24924
349
+ pygpt_net/data/config/models.json,sha256=g5-Xu_mh8z-gG8tJRz98Q65WIDjO1ARnbJvMIMPnIKI,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
@@ -2098,7 +2098,7 @@ pygpt_net/provider/gpt/image.py,sha256=p1p8zXuhHPUey8B_ruGAW8eQXuvXxOFGlQITtazM7
2098
2098
  pygpt_net/provider/gpt/remote_tools.py,sha256=eppSMpcr-5HD6vX2FZQJyr2UTKtunLxdl2nefndDh0M,5670
2099
2099
  pygpt_net/provider/gpt/responses.py,sha256=GN3QdPBlXQn0MDeJOY-yzKhWgm1iqptu-hnHAbYbRpE,29137
2100
2100
  pygpt_net/provider/gpt/store.py,sha256=4Mf3yv8x-ab2xBfIxtzQyJvzBnOLFddGQ83Prvcqkvk,17265
2101
- pygpt_net/provider/gpt/summarizer.py,sha256=cfyonTImOxMTQ49ASWsTxl8ipVIl3ssHpOW7zK2pAno,2865
2101
+ pygpt_net/provider/gpt/summarizer.py,sha256=vuJz6mj9F9Psiat0d-fn1zNGgXc-WkXJyi0jrvijO6E,2978
2102
2102
  pygpt_net/provider/gpt/tools.py,sha256=Oh9mnGIXfnwoRTx6f-9ZItD-v3loyr4OtcvhmgroyrY,3146
2103
2103
  pygpt_net/provider/gpt/utils.py,sha256=O0H0EPb4lXUMfE1bFdWB56yuWLv7M5owVIGWRyDDv-E,855
2104
2104
  pygpt_net/provider/gpt/vision.py,sha256=bdo5hQRDSVSvWMQT29RCxAYrwSqIfYfpJnyKyVL1CZQ,12716
@@ -2439,8 +2439,8 @@ pygpt_net/ui/widget/textarea/web.py,sha256=xGI-47bZ5M_vf_jMc2R9sB1-vuHJbgd5FxE5t
2439
2439
  pygpt_net/ui/widget/vision/__init__.py,sha256=8HT4tQFqQogEEpGYTv2RplKBthlsFKcl5egnv4lzzEw,488
2440
2440
  pygpt_net/ui/widget/vision/camera.py,sha256=T8b5cmK6uhf_WSSxzPt_Qod8JgMnst6q8sQqRvgQiSA,2584
2441
2441
  pygpt_net/utils.py,sha256=GBAXOpp_Wjfu7Al7TnTV62-R-JPMiP9GuPXLJ0HmeJU,8906
2442
- pygpt_net-2.6.18.dist-info/LICENSE,sha256=rbPqNB_xxANH8hKayJyIcTwD4bj4Y2G-Mcm85r1OImM,1126
2443
- pygpt_net-2.6.18.dist-info/METADATA,sha256=G57y1yECeajOqDhPP3iN9N_XUzDiRmP6qxArbvepMIE,190264
2444
- pygpt_net-2.6.18.dist-info/WHEEL,sha256=b4K_helf-jlQoXBBETfwnf4B04YC67LOev0jo4fX5m8,88
2445
- pygpt_net-2.6.18.dist-info/entry_points.txt,sha256=qvpII6UHIt8XfokmQWnCYQrTgty8FeJ9hJvOuUFCN-8,43
2446
- pygpt_net-2.6.18.dist-info/RECORD,,
2442
+ pygpt_net-2.6.19.dist-info/LICENSE,sha256=rbPqNB_xxANH8hKayJyIcTwD4bj4Y2G-Mcm85r1OImM,1126
2443
+ pygpt_net-2.6.19.dist-info/METADATA,sha256=ZQG0mftnPm3VOC9m38G0n7AcPiZp9_ZhKdFE3qydZrA,190399
2444
+ pygpt_net-2.6.19.dist-info/WHEEL,sha256=b4K_helf-jlQoXBBETfwnf4B04YC67LOev0jo4fX5m8,88
2445
+ pygpt_net-2.6.19.dist-info/entry_points.txt,sha256=qvpII6UHIt8XfokmQWnCYQrTgty8FeJ9hJvOuUFCN-8,43
2446
+ pygpt_net-2.6.19.dist-info/RECORD,,