Team Ai
Datasetpublic

codekingpro/portable-devtools

sourceHugging Faceupdated 5mo agoView on Hugging Face
1likes15kdownloads
simple.py174 linesDownload Raw Back to fields
1from .. import widgets2from .core import Field3 4__all__ = (5    "BooleanField",6    "TextAreaField",7    "PasswordField",8    "FileField",9    "MultipleFileField",10    "HiddenField",11    "SearchField",12    "SubmitField",13    "StringField",14    "TelField",15    "URLField",16    "EmailField",17    "ColorField",18)19 20 21class BooleanField(Field):22    """23    Represents an ``<input type="checkbox">``. Set the ``checked``-status by using the24    ``default``-option. Any value for ``default``, e.g. ``default="checked"`` puts25    ``checked`` into the html-element and sets the ``data`` to ``True``26 27    :param false_values:28        If provided, a sequence of strings each of which is an exact match29        string of what is considered a "false" value. Defaults to the tuple30        ``(False, "false", "")``31    """32 33    widget = widgets.CheckboxInput()34    false_values = (False, "false", "")35 36    def __init__(self, label=None, validators=None, false_values=None, **kwargs):37        super().__init__(label, validators, **kwargs)38        if false_values is not None:39            self.false_values = false_values40 41    def process_data(self, value):42        self.data = bool(value)43 44    def process_formdata(self, valuelist):45        if not valuelist or valuelist[0] in self.false_values:46            self.data = False47        else:48            self.data = True49 50    def _value(self):51        if self.raw_data:52            return str(self.raw_data[0])53        return "y"54 55 56class StringField(Field):57    """58    This field is the base for most of the more complicated fields, and59    represents an ``<input type="text">``.60    """61 62    widget = widgets.TextInput()63 64    def process_formdata(self, valuelist):65        if valuelist:66            self.data = valuelist[0]67 68    def _value(self):69        return str(self.data) if self.data is not None else ""70 71 72class TextAreaField(StringField):73    """74    This field represents an HTML ``<textarea>`` and can be used to take75    multi-line input.76    """77 78    widget = widgets.TextArea()79 80 81class PasswordField(StringField):82    """83    A StringField, except renders an ``<input type="password">``.84 85    Also, whatever value is accepted by this field is not rendered back86    to the browser like normal fields.87    """88 89    widget = widgets.PasswordInput()90 91 92class FileField(Field):93    """Renders a file upload field.94 95    By default, the value will be the filename sent in the form data.96    WTForms **does not** deal with frameworks' file handling capabilities.97    A WTForms extension for a framework may replace the filename value98    with an object representing the uploaded data.99    """100 101    widget = widgets.FileInput()102 103    def _value(self):104        # browser ignores value of file input for security105        return False106 107 108class MultipleFileField(FileField):109    """A :class:`FileField` that allows choosing multiple files."""110 111    widget = widgets.FileInput(multiple=True)112 113    def process_formdata(self, valuelist):114        self.data = valuelist115 116 117class HiddenField(StringField):118    """119    HiddenField is a convenience for a StringField with a HiddenInput widget.120 121    It will render as an ``<input type="hidden">`` but otherwise coerce to a string.122    """123 124    widget = widgets.HiddenInput()125 126 127class SubmitField(BooleanField):128    """129    Represents an ``<input type="submit">``.  This allows checking if a given130    submit button has been pressed.131    """132 133    widget = widgets.SubmitInput()134 135 136class SearchField(StringField):137    """138    Represents an ``<input type="search">``.139    """140 141    widget = widgets.SearchInput()142 143 144class TelField(StringField):145    """146    Represents an ``<input type="tel">``.147    """148 149    widget = widgets.TelInput()150 151 152class URLField(StringField):153    """154    Represents an ``<input type="url">``.155    """156 157    widget = widgets.URLInput()158 159 160class EmailField(StringField):161    """162    Represents an ``<input type="email">``.163    """164 165    widget = widgets.EmailInput()166 167 168class ColorField(StringField):169    """170    Represents an ``<input type="color">``.171    """172 173    widget = widgets.ColorInput()174 
codekingpro/portable-devtools · Team Ai