Hello,
Sorry for the change in behaviour, perhaps I should write somewhere that 'f' must be symmetric. I could do so in #19390, for it actually cleans the constructor code and their documentation.
I will add a "symmetric" somewhere in the doc. The amount of of guessing that the graph constructor does is already beyond sanity. Just a funny example I showed to a colleague yesterday:
{1 : [2,3], 2: [3, 4]} # we all think of the same graph, even if 2 does not name 1 as its neighbors
{1 : [2,3], 2: [3, 4]} # with multiedges=True. Same result ? What do you expect now ?
{1 : [2,3], 2: [3, 4], 3: [1]} # with multiedges=True. And now ?
{1 : [2,2], 2: [1]} # with multiedges=True. And now ? How many edges between 1 and 2 ?
Have fuuuuuuuuuuun,
Nathann