If you have roads (or parcels) you’ll need stuff the likes of Straight Skeleton for creating a center/road axis line graph. If the city is big maybe you’ll need an approach for limiting the search into some boundary with regard a focus graph node.
Then you’ll need Dijkstra’s node to every other routing calculation (not node to node shortest path).
It’s most unlikely that you could do anything of these without code.
Since the Dijkstra routing is done (my stuff) with C# ( but using // for big graphs the likes of Steiner etc etc) then I assume that is also doable with P.
I’ve implemented networkx in GHPython quite extensively for solving such graph problems. There’s a couple of threads on how to implement the module both here and on the old Grasshopper forum. Try giving it a search.
Edit: this thread might be a good start, though I seem to recall someone here getting a newer version running in Rhino 6 (which uses a newer version of IronPython that might have resolved some of the incompatibility issues I mentioned in that old post).