I am looking for an API (preferably in python) that could be used to analyze complex networks. Basically I want to find things like:

Average [shortest path](http://en.wikipedia.org/wiki/Shortest_path_problem),

[Degree distribution](http://en.wikipedia.org/wiki/Degree_distribution)

[Giant Component](http://en.wikipedia.org/wiki/Giant_component)

local clustering coefficient, global clustering coefficient etc..

Thanks