pycoze 0.1.319__tar.gz → 0.1.320__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 (44) hide show
  1. {pycoze-0.1.319 → pycoze-0.1.320}/PKG-INFO +1 -1
  2. {pycoze-0.1.319 → pycoze-0.1.320}/pycoze/bot/tools.py +3 -21
  3. {pycoze-0.1.319 → pycoze-0.1.320}/pycoze/reference/lib.py +33 -9
  4. {pycoze-0.1.319 → pycoze-0.1.320}/pycoze.egg-info/PKG-INFO +1 -1
  5. {pycoze-0.1.319 → pycoze-0.1.320}/setup.py +1 -1
  6. {pycoze-0.1.319 → pycoze-0.1.320}/LICENSE +0 -0
  7. {pycoze-0.1.319 → pycoze-0.1.320}/README.md +0 -0
  8. {pycoze-0.1.319 → pycoze-0.1.320}/pycoze/__init__.py +0 -0
  9. {pycoze-0.1.319 → pycoze-0.1.320}/pycoze/ai/__init__.py +0 -0
  10. {pycoze-0.1.319 → pycoze-0.1.320}/pycoze/ai/llm/__init__.py +0 -0
  11. {pycoze-0.1.319 → pycoze-0.1.320}/pycoze/ai/llm/chat.py +0 -0
  12. {pycoze-0.1.319 → pycoze-0.1.320}/pycoze/ai/llm/text_to_image_prompt.py +0 -0
  13. {pycoze-0.1.319 → pycoze-0.1.320}/pycoze/ai/llm/think.py +0 -0
  14. {pycoze-0.1.319 → pycoze-0.1.320}/pycoze/ai/vram_reserve.py +0 -0
  15. {pycoze-0.1.319 → pycoze-0.1.320}/pycoze/api/__init__.py +0 -0
  16. {pycoze-0.1.319 → pycoze-0.1.320}/pycoze/api/lib/__init__.py +0 -0
  17. {pycoze-0.1.319 → pycoze-0.1.320}/pycoze/api/lib/tab.py +0 -0
  18. {pycoze-0.1.319 → pycoze-0.1.320}/pycoze/api/lib/view.py +0 -0
  19. {pycoze-0.1.319 → pycoze-0.1.320}/pycoze/api/lib/web.py +0 -0
  20. {pycoze-0.1.319 → pycoze-0.1.320}/pycoze/api/lib/window.py +0 -0
  21. {pycoze-0.1.319 → pycoze-0.1.320}/pycoze/bot/__init__.py +0 -0
  22. {pycoze-0.1.319 → pycoze-0.1.320}/pycoze/bot/chat.py +0 -0
  23. {pycoze-0.1.319 → pycoze-0.1.320}/pycoze/bot/chat_base.py +0 -0
  24. {pycoze-0.1.319 → pycoze-0.1.320}/pycoze/bot/lib.py +0 -0
  25. {pycoze-0.1.319 → pycoze-0.1.320}/pycoze/bot/message.py +0 -0
  26. {pycoze-0.1.319 → pycoze-0.1.320}/pycoze/bot/prompt.md +0 -0
  27. {pycoze-0.1.319 → pycoze-0.1.320}/pycoze/reference/__init__.py +0 -0
  28. {pycoze-0.1.319 → pycoze-0.1.320}/pycoze/reference/bot.py +0 -0
  29. {pycoze-0.1.319 → pycoze-0.1.320}/pycoze/reference/tool.py +0 -0
  30. {pycoze-0.1.319 → pycoze-0.1.320}/pycoze/reference/workflow.py +0 -0
  31. {pycoze-0.1.319 → pycoze-0.1.320}/pycoze/ui/__init__.py +0 -0
  32. {pycoze-0.1.319 → pycoze-0.1.320}/pycoze/ui/base.py +0 -0
  33. {pycoze-0.1.319 → pycoze-0.1.320}/pycoze/ui/color.py +0 -0
  34. {pycoze-0.1.319 → pycoze-0.1.320}/pycoze/ui/typ.py +0 -0
  35. {pycoze-0.1.319 → pycoze-0.1.320}/pycoze/ui/ui_def.py +0 -0
  36. {pycoze-0.1.319 → pycoze-0.1.320}/pycoze/utils/__init__.py +0 -0
  37. {pycoze-0.1.319 → pycoze-0.1.320}/pycoze/utils/arg.py +0 -0
  38. {pycoze-0.1.319 → pycoze-0.1.320}/pycoze/utils/env.py +0 -0
  39. {pycoze-0.1.319 → pycoze-0.1.320}/pycoze/utils/socket.py +0 -0
  40. {pycoze-0.1.319 → pycoze-0.1.320}/pycoze/utils/text_or_file.py +0 -0
  41. {pycoze-0.1.319 → pycoze-0.1.320}/pycoze.egg-info/SOURCES.txt +0 -0
  42. {pycoze-0.1.319 → pycoze-0.1.320}/pycoze.egg-info/dependency_links.txt +0 -0
  43. {pycoze-0.1.319 → pycoze-0.1.320}/pycoze.egg-info/top_level.txt +0 -0
  44. {pycoze-0.1.319 → pycoze-0.1.320}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: pycoze
3
- Version: 0.1.319
3
+ Version: 0.1.320
4
4
  Summary: Package for pycoze only!
5
5
  Author: Yuan Jie Xiong
6
6
  Author-email: aiqqqqqqq@qq.com
@@ -4,29 +4,11 @@ import subprocess
4
4
  import fnmatch
5
5
  from typing import Dict
6
6
  from .message import info
7
- from .lib import get_formatted_filelist_str, read_local_file, resolve_relative_path
7
+ from .lib import get_formatted_filelist_str, read_local_file, resolve_relative_path, call_func
8
8
  from pycoze import ai
9
9
  from pycoze.api import window, web
10
10
  import traceback
11
- import inspect
12
- import asyncio
13
11
 
14
- async def handle_async_func(func, params):
15
- return await func(**params)
16
-
17
- def handle_generator_func(func, params):
18
- return list(func(**params))
19
-
20
- def handle_normal_func(func, params):
21
- return func(**params)
22
-
23
- def call_func(func, params):
24
- if inspect.isgeneratorfunction(func):
25
- return list(func(**params))
26
- elif inspect.iscoroutinefunction(func):
27
- return asyncio.run(func(**params))
28
- else:
29
- return func(**params)
30
12
 
31
13
 
32
14
  class InvalidToolError(Exception):
@@ -64,7 +46,7 @@ class ExecuteCommandTool(Tool):
64
46
  "confirm",
65
47
  f"Do you want to execute the command{self.params['command']}? ",
66
48
  )
67
- if approve.strip().lower().startswith("n"):
49
+ if not approve:
68
50
  return "User does not wish to run the command."
69
51
  result = subprocess.run(
70
52
  self.params["command"],
@@ -284,7 +266,7 @@ class ToolExecutor:
284
266
  elif tool_name in [a.__name__ for a in abilities]:
285
267
  func = [a for a in abilities if a.__name__ == tool_name][0]
286
268
  try:
287
- result = call_func(func, params)
269
+ result = call_func(func, args=(), kwargs=params)
288
270
  except Exception as e:
289
271
  print("Execute tool error:", traceback.format_exc())
290
272
  return False, traceback.format_exc()
@@ -3,8 +3,31 @@ import sys
3
3
  import importlib
4
4
  import types
5
5
  import functools
6
+ import inspect
7
+ import asyncio
6
8
 
9
+ def call_func(func, args=None, kwargs=None):
10
+ """
11
+ 调用函数并处理普通函数、生成器函数和协程函数。
7
12
 
13
+ :param func: 要调用的函数
14
+ :param args: 位置参数(可选)
15
+ :param kwargs: 关键字参数(可选)
16
+ :return: 函数调用的结果
17
+ """
18
+ if args is None:
19
+ args = ()
20
+ if kwargs is None:
21
+ kwargs = {}
22
+
23
+ if inspect.isgeneratorfunction(func):
24
+ return list(func(*args, **kwargs))
25
+ elif inspect.iscoroutinefunction(func):
26
+ loop = asyncio.get_event_loop()
27
+ return loop.run_until_complete(func(*args, **kwargs))
28
+ else:
29
+ return func(*args, **kwargs)
30
+
8
31
  class ChangeDirectoryAndPath:
9
32
  """Context manager to change the current working directory and sys.path."""
10
33
 
@@ -19,7 +42,8 @@ class ChangeDirectoryAndPath:
19
42
  return self
20
43
 
21
44
  def __exit__(self, exc_type, exc_value, traceback):
22
- sys.path.remove(self.module_path)
45
+ if self.module_path in sys.path:
46
+ sys.path.remove(self.module_path)
23
47
  os.chdir(self.old_path)
24
48
 
25
49
 
@@ -57,16 +81,16 @@ def wrapped_func(func, module_path):
57
81
  except:
58
82
  print(f"called unknown")
59
83
  with ChangeDirectoryAndPath(module_path):
60
- result = func(*args, **kwargs)
61
- try:
62
- if isinstance(result, types.GeneratorType):
63
- result = list(result)
64
- print(f"{func.__name__} 调用完毕,结果为:", result)
65
- except:
66
- pass
84
+ try:
85
+ result = func(*args, **kwargs)
86
+ except Exception as e:
87
+ print(f"调用 {func.__name__} 时发生错误: {str(e)}")
88
+ raise
89
+
90
+ print(f"{func.__name__} 调用完毕,结果为:", result)
91
+
67
92
  return result
68
93
 
69
94
  wrapped_function = functools.wraps(func)(_wrapped)
70
95
  return wrapped_function
71
96
 
72
-
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: pycoze
3
- Version: 0.1.319
3
+ Version: 0.1.320
4
4
  Summary: Package for pycoze only!
5
5
  Author: Yuan Jie Xiong
6
6
  Author-email: aiqqqqqqq@qq.com
@@ -2,7 +2,7 @@ from setuptools import setup, find_packages
2
2
 
3
3
  setup(
4
4
  name="pycoze",
5
- version="0.1.319",
5
+ version="0.1.320",
6
6
  packages=find_packages(),
7
7
  install_requires=[],
8
8
  author="Yuan Jie Xiong",
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
File without changes
File without changes
File without changes
File without changes
File without changes