Compare commits

..

2 Commits

Author SHA1 Message Date
07e511ae2c exported Maybe
All checks were successful
CI / build (push) Successful in 13s
2024-06-24 20:22:41 +08:00
8cf62ff3d2 added __or__ operator to pwo.maybe.Maybe 2024-06-24 20:21:48 +08:00
2 changed files with 5 additions and 1 deletions

View File

@@ -1,9 +1,11 @@
from .private import format_filesize, async_retry, retry, async_test, ExceptionHandlerOutcome from .private import format_filesize, async_retry, retry, async_test, ExceptionHandlerOutcome
from .maybe import Maybe
__all__ = [ __all__ = [
'format_filesize', 'format_filesize',
'async_retry', 'async_retry',
'retry', 'retry',
'async_test', 'async_test',
'ExceptionHandlerOutcome' 'ExceptionHandlerOutcome',
'Maybe'
] ]

View File

@@ -52,6 +52,8 @@ class Maybe(Generic[T]):
def flat_map(self, transformer: Callable[[T], Maybe[U]]) -> Maybe[U]: def flat_map(self, transformer: Callable[[T], Maybe[U]]) -> Maybe[U]:
return transformer(self.value) if self.is_present else Maybe.empty() return transformer(self.value) if self.is_present else Maybe.empty()
def __or__(self, alt: Maybe[T]) -> Maybe[T]:
return self if self.is_present else alt
def or_else(self, alt: T) -> T: def or_else(self, alt: T) -> T:
return self.value if self.is_present else alt return self.value if self.is_present else alt