%PDF-1.5 %���� ºaâÚÎΞ-ÌE1ÍØÄ÷{òò2ÿ ÛÖ^ÔÀá TÎ{¦?§®¥kuµùÕ5sLOšuY
Server IP : 188.40.95.74 / Your IP : 216.73.216.10 Web Server : Apache System : Linux cp01.striminghost.net 3.10.0-1160.119.1.el7.tuxcare.els13.x86_64 #1 SMP Fri Nov 22 06:29:45 UTC 2024 x86_64 User : vlasotin ( 1054) PHP Version : 5.6.40 Disable Function : NONE MySQL : ON | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : ON Directory : /lib/python2.7/site-packages/leapp/dialogs/ |
Upload File : |
from leapp.compat import unicode_type class Component(object): """ Base class for all components """ key = None label = None description = None default = None value = None reason = None value_type = None def __init__(self, key=None, label=None, description=None, default=None, reason=None): """ :param key: Unique key within a dialog scope. Needs to be in the format: `[a-zA-Z_][a-zA-Z0-9_]*` :param label: Label for the input to print :param description: Description what this value is used for. :param default: Default value to :param reason: The reason why we need this value. """ self.key = key or type(self).key self.label = label.replace('\n', ' ').strip() if label else type(self).label self.description = description or type(self).description self.default = default if default is not None else type(self).default self.value = type(self).value self.reason = reason or type(self).reason def dispatch(self, renderer, dialog): raise NotImplementedError() def serialize(self): """ :return: Serialized component information """ return { 'key': self.key, 'label': self.label, 'description': self.description, 'default': self.default, 'value': self.value, 'reason': self.reason, 'value_type': str(self.value_type) if self.value_type else None } class TextComponent(Component): """ TextComponent is a text input component. """ value_type = str def dispatch(self, renderer, dialog): renderer.render_text_component(self, dialog=dialog) class PasswordComponent(TextComponent): """ PasswordComponent is a text input component which will use non echoing input when possible (see getpass). """ label = 'Password' value_type = str def dispatch(self, renderer, dialog): renderer.render_password_component(self, dialog=dialog) class NumberComponent(Component): """ NumberComponent is used for integer inputs. """ value_type = int default = -1 def dispatch(self, renderer, dialog): renderer.render_number_component(self, dialog=dialog) class BooleanComponent(Component): """ BooleanComponent is used for boolean inputs such as Yes/No questions. """ choices = ('True', 'False') values = ('Yes', 'No') value_type = bool def __init__(self, key=None, label=None, description=None, default=None, reason=None, values=None): """ :param key: Unique key within a dialog scope. Needs to be in the format: `[a-zA-Z_][a-zA-Z0-9_]*` :param label: Label for the input to print :param description: Description what this value is used for. :param default: Default value to :param reason: The reason why we need this value. :param values: Values to use as True and False, first is always True and the second is always False (e.g. Yes/No) """ super(BooleanComponent, self).__init__(key=key, label=label, description=description, default=default, reason=reason) self.values = values or type(self).values def dispatch(self, renderer, dialog): renderer.render_bool_component(self, dialog=dialog) class ChoiceComponent(Component): """ ChoiceComponent is used to give a list of options and allows to select one (like a radio button) """ choices = () multi = False value_type = unicode_type def __init__(self, choices=None, key=None, label=None, description=None, default=None, reason=None): """ :param key: Unique key within a dialog scope. Needs to be in the format: `[a-zA-Z_][a-zA-Z0-9_]*` :param label: Label for the input to print :param description: Description what this value is used for. :param default: Default value to :param reason: The reason why we need this value. :param choices: Choices that are available to the user """ super(ChoiceComponent, self).__init__(key=key, label=label, description=description, default=default, reason=reason) self.choices = choices or type(self).choices def dispatch(self, renderer, dialog): renderer.render_choice_component(self, dialog=dialog) class MultipleChoiceComponent(ChoiceComponent): """ MultipleChoiceComponent is used to give a list of options and allows to select more than one (like checkboxes) """ choices = () multi = True value_type = tuple # indices def dispatch(self, renderer, dialog): """ Calls the appropriate rendering implementation on the renderer and passes itself and the dialog instance to it. :param renderer: Renderer instance :type renderer: :py:class:`leapp.dialogs.renderer.DialogRendererBase` :param dialog: :return: """ renderer.render_multiple_choice_component(self, dialog=dialog)