You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
27 lines
773 B
27 lines
773 B
import inspect
|
|
|
|
|
|
def process_tool_docs(item):
|
|
"""
|
|
Process the documentation for a given item.
|
|
|
|
Args:
|
|
item: The item to process the documentation for.
|
|
|
|
Returns:
|
|
metadata: The processed metadata containing the item's name, documentation, and source code.
|
|
"""
|
|
# If item is an instance of a class, get its class
|
|
if not inspect.isclass(item) and hasattr(item, "__class__"):
|
|
item = item.__class__
|
|
|
|
doc = inspect.getdoc(item)
|
|
source = inspect.getsource(item)
|
|
is_class = inspect.isclass(item)
|
|
item_type = "Class Name" if is_class else "Function Name"
|
|
metadata = f"{item_type}: {item.__name__}\n\n"
|
|
if doc:
|
|
metadata += f"Documentation:\n{doc}\n\n"
|
|
metadata += f"\n{source}"
|
|
return metadata
|