Generate Python Docstrings & Comments

Generate docstrings and comments for Python functions.

You can query a model directly and test the results returned when using different parameter values with the Cloud console, or by calling the Vertex AI API directly.

Prompt Freeform

Here is Python code. Insert a document comment (docstring) for all functions, including the nested functions.
def is_dag_dfs(graph):
    visited = set()
    on_stack = set()  # Track nodes on recursion stack

def dfs(node):
    if node in on_stack:
        return False  # Back-edge found (cycle)
    if node in visited:
        return True

    on_stack.add(node)
    visited.add(node)

    for neighbor in graph.get(node, []):
        if not dfs(neighbor):
            return False

    on_stack.remove(node)
    return True

return all(dfs(node) for node in graph)

Response

    def is_dag_dfs(graph):
    """
    Determines if a directed graph is a Directed Acyclic Graph (DAG) using Depth-First Search (DFS).

Args:
    graph (dict): A dictionary representing the graph. Keys are nodes, and values are lists of their neighbors.

Returns:
    bool: True if the graph is a DAG, False otherwise.
"""
visited = set()
on_stack = set()  # Track nodes on recursion stack

def dfs(node):
    """
    Performs Depth-First Search starting from a given node.

    Args:
        node (object): The node to start the DFS from.

    Returns:
        bool: True if no cycle is detected, False otherwise.
    """
    if node in on_stack:
        return False  # Back-edge found (cycle)
    if node in visited:
        return True

    on_stack.add(node)
    visited.add(node)

    for neighbor in graph.get(node, []):
        if not dfs(neighbor):
            return False

    on_stack.remove(node)
    return True

return all(dfs(node) for node in graph)

Model: gemini-1.5-flash-001
Temperature: 1
Max output tokens: 8192
TopK: 40
TopP: 0.95