def resolved_data(self): data = self.data log = (log_durations(logger.debug, "resolving values") if self._enable_parametrization else nullcontext()) with log: data = self.resolver.resolve() return data.get("stages", {})
def plain_table( ui: "Console", data: TableData, headers: Headers = None, markdown: bool = False, pager: bool = False, force: bool = True, ) -> None: from funcy import nullcontext from tabulate import tabulate text: str = tabulate( data, headers if headers is not None else (), tablefmt="github" if markdown else "plain", disable_numparse=True, # None will be shown as "" by default, overriding missingval="-", ) if markdown: # NOTE: md table is incomplete without the trailing newline text += "\n" cm = ui.pager() if pager else nullcontext() with cm: ui.write(text, force=force)
def _upload( self, from_file, to_info, name=None, no_progress_bar=False, **_kwargs, ): # First try to create parent directories self.makedirs(to_info.parent) file_size = os.path.getsize(from_file) with open(from_file, "rb") as fd: progress_context = ( nullcontext(fd) if file_size == 0 else Tqdm.wrapattr( fd, "read", total=None if no_progress_bar else file_size, leave=False, desc=to_info.url if name is None else name, disable=no_progress_bar, )) with progress_context as fd_wrapped: self._client.upload_to(buff=fd_wrapped, remote_path=to_info.path)
def _discard_stage( self, stage: "Stage", ignore_not_existing: bool = False ) -> List["Stage"]: stages = self.stages[:] ctx = suppress(ValueError) if ignore_not_existing else nullcontext() with ctx: stages.remove(stage) return stages
def tdqm_or_callback_wrapped( fobj, method, total, callback=None, **pbar_kwargs ): if callback: from funcy import nullcontext from tqdm.utils import CallbackIOWrapper callback.set_size(total) wrapper = CallbackIOWrapper(callback.relative_update, fobj, method) return nullcontext(wrapper) return Tqdm.wrapattr(fobj, method, total=total, bytes=True, **pbar_kwargs)
def set_temporarily(self, to_set: DictStr, reserve: bool = False): cm = self.reserved(*to_set) if reserve else nullcontext() non_existing = frozenset(to_set.keys() - self.keys()) prev = {key: self[key] for key in to_set if key not in non_existing} temp = CtxDict(to_set) self.update(temp) try: with cm: yield finally: self.update(prev) for key in non_existing: self.data.pop(key, None)