Procházet zdrojové kódy

add checkbox,radio

wangweimin před 5 roky
rodič
revize
01242ecaab
1 změnil soubory, kde provedl 22 přidání a 10 odebrání
  1. 22 10
      pywebio/interact.py

+ 22 - 10
pywebio/interact.py

@@ -73,8 +73,8 @@ def _parse_select_options(options):
     return opts_res
 
 
-def select(label, options, type=SELECT, *, multiple=None, valid_func=None, name='data', value=None,
-           placeholder=None, required=None, readonly=None, disabled=None, inline=None, help_text=None,
+def select(label, options, *, multiple=None, valid_func=None, name='data', value=None,
+           placeholder=None, required=None, readonly=None, disabled=None, help_text=None,
            **other_html_attrs):
     """
     参数值为None表示不指定,使用默认值
@@ -100,17 +100,29 @@ def select(label, options, type=SELECT, *, multiple=None, valid_func=None, name=
     """
     item_spec, valid_func = _parse_args(locals())
     item_spec['options'] = _parse_select_options(options)
+    item_spec['type'] = SELECT
 
-    allowed_type = {CHECKBOX, RADIO, SELECT}
-    assert type in allowed_type, 'Input type not allowed.'
+    return single_input(item_spec, valid_func, lambda d: d)
+
+
+def checkbox(label, options, *, inline=None, valid_func=None, name='data', value=None,
+             placeholder=None, required=None, readonly=None, disabled=None, help_text=None,
+             **other_html_attrs):
+    """"""
+    item_spec, valid_func = _parse_args(locals())
+    item_spec['options'] = _parse_select_options(options)
+    item_spec['type'] = CHECKBOX
+
+    return single_input(item_spec, valid_func, lambda d: d)
 
-    if inline is not None and type not in {CHECKBOX, RADIO}:
-        del item_spec['inline']
-        logger.warning('inline 只能用于 CHECKBOX, RADIO type, now type:%s', type)
 
-    if multiple is not None and type != SELECT:
-        del item_spec['multiple']
-        logger.warning('multiple 参数只能用于SELECT type, now type:%s', type)
+def radio(label, options, *, inline=None, valid_func=None, name='data', value=None,
+          placeholder=None, required=None, readonly=None, disabled=None, help_text=None,
+          **other_html_attrs):
+    """"""
+    item_spec, valid_func = _parse_args(locals())
+    item_spec['options'] = _parse_select_options(options)
+    item_spec['type'] = RADIO
 
     return single_input(item_spec, valid_func, lambda d: d)