Yes. And although I’m not sure right now what the official rule would be, my rule of thumb will be that if you support indexing then it has an interface that looks like an array that you can have size. If you don’t then don’t bother.
Put it another way, follow Set or Dict.
In that case I’d say if the iteration returns nodes that doesn’t support arithmetic then you probably should still not special case sum even though it does’t really conflict with anything. (But sincne there’s no conflict you can also do what you feel convinient without causing much trouble). sth like sum(node_weight, iter) shouldn’t be too hard to write either though…