Beispiel #1
0
 def map(self, func):
     func = to_unary(func)
     if self:
         res = func(self._value)
         ensure(not isinstance(res, Opt),
                lambda: 'map: result Opt not expected',
                stack_level=2)
         return Opt(res)
     else:
         return Opt.none()
Beispiel #2
0
 def sort_desc(self, key=identity):
     key = to_unary(key)
     return sorted(self._iterable, key=key, reverse=True)
Beispiel #3
0
def _adjust_selectors(key_selector, value_selector):
    if key_selector is None and value_selector is None:
        return operator.itemgetter(0), operator.itemgetter(1)
    else:
        return to_unary(key_selector) or identity, to_unary(
            value_selector) or identity
Beispiel #4
0
 def sort(self, key=identity):
     key = to_unary(key)
     return sorted(self._iterable, key=key)
Beispiel #5
0
 def replace_if(self, pred, new_value):
     pred = to_unary(pred)
     return self.map(lambda item: new_value if pred(item) else item)
Beispiel #6
0
 def drop_until(self, pred):
     pred = to_unary(pred)
     return self.drop_while(negate(pred))
Beispiel #7
0
 def take_until(self, pred):
     pred = to_unary(pred)
     return self.take_while(negate(pred))
Beispiel #8
0
 def drop_while(self, pred):
     pred = to_unary(pred)
     return itertools.dropwhile(pred, self._iterable)
Beispiel #9
0
 def take_while(self, pred):
     pred = to_unary(pred)
     return itertools.takewhile(pred, self._iterable)
Beispiel #10
0
 def drop_if(self, pred):
     pred = to_unary(pred)
     return self.filter(negate(pred))
Beispiel #11
0
 def filter(self, pred):
     pred = to_unary(pred)
     return filter(pred, self._iterable)
Beispiel #12
0
 def map(self, func):
     func = to_unary(func)
     return map(func, self._iterable)
Beispiel #13
0
 def flat_map(self, func):
     func = to_unary(func)
     if self:
         return Opt(func(self._value))
     else:
         return Opt.none()
Beispiel #14
0
 def filter(self, pred):
     pred = to_unary(pred)
     if self.matches(pred):
         return self
     else:
         return Opt.none()
Beispiel #15
0
 def matches(self, pred):
     pred = to_unary(pred)
     return self and pred(self._value)