Beispiel #1
0
 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", {})
Beispiel #2
0
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)
Beispiel #3
0
    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)
Beispiel #4
0
 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
Beispiel #5
0
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)
Beispiel #6
0
    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)