Show More
@@ -2638,17 +2638,35 b' class _addset(_orderedsetmixin):' | |||
|
2638 | 2638 | same time, yielding only one value at a time in the given order. |
|
2639 | 2639 | """ |
|
2640 | 2640 | if not self._iter: |
|
2641 | if self._ascending is None: | |
|
2641 | 2642 | def gen(): |
|
2642 | if self._ascending is None: | |
|
2643 | 2643 | for r in self._r1: |
|
2644 | 2644 | yield r |
|
2645 | 2645 | s = self._r1.set() |
|
2646 | 2646 | for r in self._r2: |
|
2647 | 2647 | if r not in s: |
|
2648 | 2648 | yield r |
|
2649 | gen = gen() | |
|
2649 | 2650 |
|
|
2650 | 2651 |
|
|
2651 | 2652 |
|
|
2653 | gen = self._iterordered(self._ascending, iter1, iter2) | |
|
2654 | self._iter = _generatorset(gen) | |
|
2655 | return self._iter | |
|
2656 | ||
|
2657 | def __iter__(self): | |
|
2658 | if self._genlist: | |
|
2659 | return iter(self._genlist) | |
|
2660 | return iter(self._iterator()) | |
|
2661 | ||
|
2662 | def _iterordered(self, ascending, iter1, iter2): | |
|
2663 | """produce an ordered iteration from two iterators with the same order | |
|
2664 | ||
|
2665 | The ascending is used to indicated the iteration direction. | |
|
2666 | """ | |
|
2667 | choice = max | |
|
2668 | if ascending: | |
|
2669 | choice = min | |
|
2652 | 2670 | |
|
2653 | 2671 |
|
|
2654 | 2672 |
|
@@ -2682,15 +2700,6 b' class _addset(_orderedsetmixin):' | |||
|
2682 | 2700 |
|
|
2683 | 2701 |
|
|
2684 | 2702 | |
|
2685 | self._iter = _generatorset(gen()) | |
|
2686 | ||
|
2687 | return self._iter | |
|
2688 | ||
|
2689 | def __iter__(self): | |
|
2690 | if self._genlist: | |
|
2691 | return iter(self._genlist) | |
|
2692 | return iter(self._iterator()) | |
|
2693 | ||
|
2694 | 2703 | def __contains__(self, x): |
|
2695 | 2704 | return x in self._r1 or x in self._r2 |
|
2696 | 2705 |
General Comments 0
You need to be logged in to leave comments.
Login now