python – Longest overall path in a DAG

I am trying to find the longest overall path in the graph that exists between any two pairs of vertices. I wrote this code to return the longest path from a source vertex. But I can’t figure out how I can change it so that it gives me the longest overall path between any pair of vertices? If it helps, my graph will have unit weights so I am not concerned about negative weights.

def topologicalSortUtil(v):
    global Stack, visited, adj
    visited(v) = True
    # Recur for all the vertices adjacent to this vertex
    # list<AdjListNode>::iterator i
    for i in adj(v):
        if (not visited(i(0))):
    # Push current vertex to stack which stores topological
    # sort
# The function to find longest distances from a given vertex.
# It uses recursive topologicalSortUtil() to get topological
# sorting.
def longestPath(s):
    global Stack, visited, adj, V
    dist = (-10**9 for i in range(V))
    # Call the recursive helper function to store Topological
    # Sort starting from all vertices one by one
    for i in range(V):
        if (visited(i) == False):
    # print(Stack)
    # Initialize distances to all vertices as infinite and
    # distance to source as 0
    dist(s) = 0
    # Stack.append(1)
    # Process vertices in topological order
    while (len(Stack) > 0):
        # Get the next vertex from topological order
        u = Stack(-1)
        del Stack(-1)
        # Update distances of all adjacent vertices
        # list<AdjListNode>::iterator i
        if (dist(u) != 10**9):
            for i in adj(u):
                # print(u, i)
                if (dist(i(0)) < dist(u) + i(1)):
                    dist(i(0)) = dist(u) + i(1)
    # Prthe calculated longest distances
    # print(dist)
    for i in range(V):
        print("INF ",end="") if (dist(i) == -10**9) else print(dist(i),end=" ")
# Driver code
if __name__ == '__main__':
    V, Stack, visited = 6, (), (False for i in range(7))
    adj = (() for i in range(7))
    # Create a graph given in the above diagram.
    # Here vertex numbers are 0, 1, 2, 3, 4, 5 with
    # following mappings:
    # 0=r, 1=s, 2=t, 3=x, 4=y, 5=z
    adj(0).append((1, 5))
    adj(0).append((2, 3))
    adj(1).append((3, 6))
    adj(1).append((2, 2))
    adj(2).append((4, 4))
    adj(2).append((5, 2))
    adj(2).append((3, 7))
    adj(3).append((5, 1))
    adj(3).append((4, -1))
    adj(4).append((5, -2))
    s = 1
    print("Following are longest distances from source vertex ",s)