(G, values, name=None)
| 190 | |
| 191 | @patch_docstring(func.set_edge_attributes) |
| 192 | def set_edge_attributes(G, values, name=None): # noqa: C901 |
| 193 | if G.is_multigraph(): |
| 194 | # multigraph forward NetworkX |
| 195 | func.set_edge_attributes(G, values, name) |
| 196 | return |
| 197 | |
| 198 | if name is not None: |
| 199 | # `values` does not contain attribute names |
| 200 | try: |
| 201 | # if `values` is a dict using `.items()` => {edge: value} |
| 202 | for (u, v), value in values.items(): |
| 203 | dd = G.get_edge_data(u, v) |
| 204 | if dd is not None: |
| 205 | dd[name] = value |
| 206 | G.set_edge_data(u, v, dd) |
| 207 | except AttributeError: |
| 208 | # treat `values` as a constant |
| 209 | for u, v, data in G.edges(data=True): |
| 210 | data[name] = values |
| 211 | else: |
| 212 | for (u, v), d in values.items(): |
| 213 | dd = G.get_edge_data(u, v) |
| 214 | if dd is not None: |
| 215 | dd.update(d) |
| 216 | G.set_edge_data(u, v, dd) |
nothing calls this directly
no test coverage detected