The base class for non-mutable abstract sets, collections.abc.Set (and a few others in Lib/_collections_abc.py) provide a classmethod(_from_iterable(Iterable[...]) -> Set[...]) (or similar) class method, which serves as a single place to override how the results of set-wise operations are constructed.
C.f.: https://docs.python.org/3/library/collections.abc.html#examples-and-recipes
The class method in question, _from_iterable(), doesn't appear anywhere in typeshed (GitHub search of this repo, 2026-01-17).
Motivating example: I have a set-like class Region which acts as a set of all co-ordinates in a 2D area bounded min/max x and y co-ordinates. The results of set-wise operations involving a Region often aren't rectangular, and so can't be represented by a Region. Without _from_iterable(), collections.abc.Set tries to construct the result as Region(<Iterable[Coord]>), which won't (and can't) work. By overriding Set._from_iterable() in Region, I can construct results as set or frozenset instances, which can represent the results in all cases.
The base class for non-mutable abstract sets,
collections.abc.Set(and a few others inLib/_collections_abc.py) provide aclassmethod(_from_iterable(Iterable[...]) -> Set[...])(or similar) class method, which serves as a single place to override how the results of set-wise operations are constructed.C.f.: https://docs.python.org/3/library/collections.abc.html#examples-and-recipes
The class method in question,
_from_iterable(), doesn't appear anywhere in typeshed (GitHub search of this repo, 2026-01-17).Motivating example: I have a set-like class
Regionwhich acts as a set of all co-ordinates in a 2D area bounded min/max x and y co-ordinates. The results of set-wise operations involving aRegionoften aren't rectangular, and so can't be represented by aRegion. Without_from_iterable(),collections.abc.Settries to construct the result asRegion(<Iterable[Coord]>), which won't (and can't) work. By overridingSet._from_iterable()inRegion, I can construct results assetorfrozensetinstances, which can represent the results in all cases.