(options)
| 308 | |
| 309 | |
| 310 | def _parse_select_options(options): |
| 311 | # Convert the `options` parameter in the `select`, `checkbox`, and `radio` functions to a unified format |
| 312 | # Available forms of option: |
| 313 | # {value:, label:, [selected:,] [disabled:]} |
| 314 | # (value, label, [selected,] [disabled]) |
| 315 | # value (label same as value) |
| 316 | opts_res = [] |
| 317 | for opt in options: |
| 318 | opt = copy.deepcopy(opt) |
| 319 | if isinstance(opt, Mapping): |
| 320 | assert 'value' in opt and 'label' in opt, 'options item must have value and label key' |
| 321 | elif isinstance(opt, (list, tuple)): |
| 322 | assert len(opt) > 1 and len(opt) <= 4, 'options item format error' |
| 323 | opt = dict(zip(('label', 'value', 'selected', 'disabled'), opt)) |
| 324 | else: |
| 325 | opt = dict(value=opt, label=opt) |
| 326 | opts_res.append(opt) |
| 327 | |
| 328 | return opts_res |
| 329 | |
| 330 | |
| 331 | def _set_options_selected(options, value): |
no test coverage detected
searching dependent graphs…