Document `OrderedSet.remove` has linear complexity
Document that OrderedSet.remove method has linear complexity, unlike set.remove which takes O(1) time. This can potentially cause quadratic blow up if called inside a loop.
To work around this, use OrderedSet.__isub__ to remove items in bulk.
Full Changes
- Document the fact
OrderedSet.removetakes linear time- Add test to check for this behavior (currently failing, since it takes linear instead of constant time)
- Explicitly implement in-place bulk methods
__ior__,__iand__to avoid quadratic blow up
- Explicitly implement
OrderedSet.remove(previously implemented by superclass) - Switch build from setuptools to hatchling