in utils/check_task_parameters.py [0:0]
def _parse_docstring_params(self, docstring: str) -> Dict[str, str]:
"""Parse parameter descriptions from docstring."""
param_docs = {}
lines = docstring.split("\n")
# Find Args section
args_idx = next((i for i, line in enumerate(lines) if line.strip().lower() == "args:"), None)
if args_idx is None:
return param_docs
# Parse parameter descriptions
current_param = None
current_desc = []
for line in lines[args_idx + 1 :]:
stripped_line = line.strip()
if not stripped_line or stripped_line.lower() in ("returns:", "raises:", "example:", "examples:"):
break
if stripped_line.endswith(":"): # Parameter line
if current_param:
param_docs[current_param] = " ".join(current_desc)
current_desc = []
# Extract only the parameter name before the first space or parenthesis
current_param = re.split(r"\s|\(", stripped_line[:-1], 1)[0].strip()
else: # Description line
current_desc.append(stripped_line)
if current_param: # Save last parameter
param_docs[current_param] = " ".join(current_desc)
return param_docs