(self,
orig, # type: pycbc_result
return_exceptions, # type: bool
obs_handler=None # type: Optional[ObservableRequestHandler]
)
| 619 | |
| 620 | class MultiMutationResult: |
| 621 | def __init__(self, |
| 622 | orig, # type: pycbc_result |
| 623 | return_exceptions, # type: bool |
| 624 | obs_handler=None # type: Optional[ObservableRequestHandler] |
| 625 | ) -> None: |
| 626 | |
| 627 | self._orig = orig |
| 628 | self._all_ok = self._orig.raw_result.pop('all_okay', False) |
| 629 | self._results = {} |
| 630 | for k, v in self._orig.raw_result.items(): |
| 631 | # pycbc_result and pycbc_exception have a core_span member |
| 632 | if obs_handler and hasattr(v, 'core_span'): |
| 633 | obs_handler.process_core_span(v.core_span) |
| 634 | if isinstance(v, (CouchbaseException, PycbcCoreException)): |
| 635 | if isinstance(v, PycbcCoreException): |
| 636 | exc = ErrorMapper.build_exception(v) |
| 637 | else: |
| 638 | exc = v |
| 639 | if obs_handler: |
| 640 | obs_handler.process_multi_sub_op(v, exc_val=exc) |
| 641 | if not return_exceptions: |
| 642 | raise exc |
| 643 | else: |
| 644 | self._results[k] = exc |
| 645 | else: |
| 646 | if obs_handler: |
| 647 | obs_handler.process_multi_sub_op(v) |
| 648 | self._results[k] = MutationResult(v, key=k) |
| 649 | |
| 650 | @property |
| 651 | def all_ok(self) -> bool: |
nothing calls this directly
no test coverage detected