questions.questions module

class questions.questions.BarRatingQuestion(**data)[source]

Bases: DropdownQuestion

A question that uses the JQuery bar rating widget.

choices: List[Union[str, Dict[str, Union[str, HttpUrl, Dict[str, str]]]]]
choices_by_url: Dict[Literal['path', 'titleName', 'url', 'valueName'], str]
choices_enable_if: str
choices_max: int
choices_min: int
choices_order: Literal['none', 'asc', 'desc', 'random']
choices_step: int
choices_visible_if: str
col_count: int
correct_answer: str
default_value: str
description: Union[str, Dict[str, str]]
description_location: Literal['default', 'underInput', 'underTitle']
enable_if: str
extra_css: List[HttpUrl]
extra_js: List[HttpUrl]
has_other: bool
hide_if_choices_empty: bool
hide_number: bool
indent: int
kind: str
max_width: str
min_width: str
name: str
options_caption: str
other_error_text: Union[str, Dict[str, str]]
other_place_holder: Union[str, Dict[str, str]]
other_text: Union[str, Dict[str, str]]
rating_theme: Literal['fontawesome-stars', 'css-stars', 'bars-pill', 'bars-1to10', 'bars-movie', 'bars-reversed', 'bars-horizontal', 'fontawesome-stars-o']
required: bool
required_error_text: str
required_if: str
show_options_caption: bool
show_values: bool
start_with_new_line: bool
title: Union[str, Dict[str, str]]
title_location: Literal['default', 'top', 'bottom', 'left', 'hidden']
use_display_values_in_title: bool
validators: List[Validator]
value_name: str
visible: bool
visible_if: str
width: str
class questions.questions.BooleanQuestion(**data)[source]

Bases: Question

Get the answer for any two-possibility question. Usually true/false, yes/ no questions.

correct_answer: str
default_value: str
description: Union[str, Dict[str, str]]
description_location: Literal['default', 'underInput', 'underTitle']
enable_if: str
extra_css: List[HttpUrl]
extra_js: List[HttpUrl]
hide_number: bool
indent: int
kind: str
label_false: Union[str, Dict[str, str]]
label_true: Union[str, Dict[str, str]]
max_width: str
min_width: str
name: str
required: bool
required_error_text: str
required_if: str
show_title: bool
start_with_new_line: bool
title: Union[str, Dict[str, str]]
title_location: Literal['default', 'top', 'bottom', 'left', 'hidden']
use_display_values_in_title: bool
validators: List[Validator]
value_false: Union[str, Dict[str, str]]
value_name: str
value_true: Union[str, Dict[str, str]]
visible: bool
visible_if: str
width: str
class questions.questions.BootstrapDatePickerQuestion(**data)[source]

Bases: TextQuestion

A question that uses the bootstrap date picker.

auto_close: bool
auto_unmask: bool
clear_button: bool
correct_answer: str
date_format: str
days_of_week_highlighted: str
default_value: str
description: Union[str, Dict[str, str]]
description_location: Literal['default', 'underInput', 'underTitle']
disable_touch_keyboard: bool
enable_if: str
end_date: str
extra_css: List[HttpUrl]
extra_js: List[HttpUrl]
hide_number: bool
indent: int
input_format: str
input_mask: str
input_type: Literal['color', 'date', 'datetime', 'datetime-local', 'email', 'month', 'number', 'password', 'range', 'tel', 'text', 'time', 'url', 'week']
kind: str
max_length: int
max_value: str
max_width: str
min_value: str
min_width: str
name: str
place_holder: Union[str, Dict[str, str]]
prefix: str
required: bool
required_error_text: str
required_if: str
size: int
start_date: str
start_with_new_line: bool
step: str
text_update_mode: Literal['default', 'onBlur', 'onTyping']
title: Union[str, Dict[str, str]]
title_location: Literal['default', 'top', 'bottom', 'left', 'hidden']
today_highlight: bool
use_display_values_in_title: bool
validators: List[Validator]
value_name: str
visible: bool
visible_if: str
week_start: int
width: str
class questions.questions.BootstrapSliderQuestion(**data)[source]

Bases: Question

A question that uses the bootstrap slider widget.

correct_answer: str
default_value: str
description: Union[str, Dict[str, str]]
description_location: Literal['default', 'underInput', 'underTitle']
enable_if: str
extra_css: List[HttpUrl]
extra_js: List[HttpUrl]
hide_number: bool
indent: int
kind: str
max_width: str
min_width: str
name: str
range_max: int
range_min: int
required: bool
required_error_text: str
required_if: str
start_with_new_line: bool
step: int
title: Union[str, Dict[str, str]]
title_location: Literal['default', 'top', 'bottom', 'left', 'hidden']
use_display_values_in_title: bool
validators: List[Validator]
value_name: str
visible: bool
visible_if: str
width: str
class questions.questions.CKEditorQuestion(**data)[source]

Bases: Question

A question that uses the CKEditor JQuery widget.

correct_answer: str
default_value: str
description: Union[str, Dict[str, str]]
description_location: Literal['default', 'underInput', 'underTitle']
enable_if: str
extra_css: List[HttpUrl]
extra_js: List[HttpUrl]
height: str
hide_number: bool
indent: int
kind: str
max_width: str
min_width: str
name: str
required: bool
required_error_text: str
required_if: str
start_with_new_line: bool
title: Union[str, Dict[str, str]]
title_location: Literal['default', 'top', 'bottom', 'left', 'hidden']
use_display_values_in_title: bool
validators: List[Validator]
value_name: str
visible: bool
visible_if: str
width: str
class questions.questions.CheckboxQuestion(**data)[source]

Bases: ChoicesQuestion

Select one or more options from a group of check boxes.

choices: List[Union[str, Dict[str, Union[str, HttpUrl, Dict[str, str]]]]]
choices_by_url: Dict[Literal['path', 'titleName', 'url', 'valueName'], str]
choices_enable_if: str
choices_order: Literal['none', 'asc', 'desc', 'random']
choices_visible_if: str
col_count: int
correct_answer: str
default_value: str
description: Union[str, Dict[str, str]]
description_location: Literal['default', 'underInput', 'underTitle']
enable_if: str
extra_css: List[HttpUrl]
extra_js: List[HttpUrl]
has_none: bool
has_other: bool
has_select_all: bool
hide_if_choices_empty: bool
hide_number: bool
indent: int
kind: str
max_width: str
min_width: str
name: str
none_text: Union[str, Dict[str, str]]
other_error_text: Union[str, Dict[str, str]]
other_place_holder: Union[str, Dict[str, str]]
other_text: Union[str, Dict[str, str]]
required: bool
required_error_text: str
required_if: str
select_all_text: Union[str, Dict[str, str]]
start_with_new_line: bool
title: Union[str, Dict[str, str]]
title_location: Literal['default', 'top', 'bottom', 'left', 'hidden']
use_display_values_in_title: bool
validators: List[Validator]
value_name: str
visible: bool
visible_if: str
width: str
class questions.questions.ChoicesQuestion(**data)[source]

Bases: Question

Base class for questions that let the user select one or more options from a list of choices. The choices can either be set at question instantiation time, or come from a JSON web service at run time.

choices: List[Union[str, Dict[str, Union[str, HttpUrl, Dict[str, str]]]]]
choices_by_url: Dict[Literal['path', 'titleName', 'url', 'valueName'], str]
choices_enable_if: str
choices_order: Literal['none', 'asc', 'desc', 'random']
choices_visible_if: str
col_count: int
has_other: bool
hide_if_choices_empty: bool
kind: str
other_error_text: Union[str, Dict[str, str]]
other_place_holder: Union[str, Dict[str, str]]
other_text: Union[str, Dict[str, str]]
class questions.questions.CommentQuestion(**data)[source]

Bases: Question

A question that uses a text area to get a multi-line text answer.

cols: int
correct_answer: str
default_value: str
description: Union[str, Dict[str, str]]
description_location: Literal['default', 'underInput', 'underTitle']
enable_if: str
extra_css: List[HttpUrl]
extra_js: List[HttpUrl]
hide_number: bool
indent: int
kind: str
max_length: int
max_width: str
min_width: str
name: str
place_holder: Union[str, Dict[str, str]]
required: bool
required_error_text: str
required_if: str
rows: int
start_with_new_line: bool
text_update_mode: Literal['default', 'onBlur', 'onTyping']
title: Union[str, Dict[str, str]]
title_location: Literal['default', 'top', 'bottom', 'left', 'hidden']
use_display_values_in_title: bool
validators: List[Validator]
value_name: str
visible: bool
visible_if: str
width: str
class questions.questions.DropdownQuestion(**data)[source]

Bases: ChoicesQuestion

Select one option from a dropdown menu.

choices: List[Union[str, Dict[str, Union[str, HttpUrl, Dict[str, str]]]]]
choices_by_url: Dict[Literal['path', 'titleName', 'url', 'valueName'], str]
choices_enable_if: str
choices_max: int
choices_min: int
choices_order: Literal['none', 'asc', 'desc', 'random']
choices_step: int
choices_visible_if: str
col_count: int
correct_answer: str
default_value: str
description: Union[str, Dict[str, str]]
description_location: Literal['default', 'underInput', 'underTitle']
enable_if: str
extra_css: List[HttpUrl]
extra_js: List[HttpUrl]
has_other: bool
hide_if_choices_empty: bool
hide_number: bool
indent: int
kind: str
max_width: str
min_width: str
name: str
options_caption: str
other_error_text: Union[str, Dict[str, str]]
other_place_holder: Union[str, Dict[str, str]]
other_text: Union[str, Dict[str, str]]
required: bool
required_error_text: str
required_if: str
show_options_caption: bool
start_with_new_line: bool
title: Union[str, Dict[str, str]]
title_location: Literal['default', 'top', 'bottom', 'left', 'hidden']
use_display_values_in_title: bool
validators: List[Validator]
value_name: str
visible: bool
visible_if: str
width: str
class questions.questions.EmailValidator(**data)[source]

Bases: Validator

Checks if a value is a valid email address.

kind: str
message: str
class questions.questions.EmotionsRatingQuestion(**data)[source]

Bases: DropdownQuestion

A question that uses the emotion ratings JQuery widget.

bg_emotion: str
choices: List[Union[str, Dict[str, Union[str, HttpUrl, Dict[str, str]]]]]
choices_by_url: Dict[Literal['path', 'titleName', 'url', 'valueName'], str]
choices_enable_if: str
choices_max: int
choices_min: int
choices_order: Literal['none', 'asc', 'desc', 'random']
choices_step: int
choices_visible_if: str
col_count: int
correct_answer: str
default_value: str
description: Union[str, Dict[str, str]]
description_location: Literal['default', 'underInput', 'underTitle']
emotion_color: str
emotion_size: int
emotions: List[str]
emotions_count: int
enable_if: str
extra_css: List[HttpUrl]
extra_js: List[HttpUrl]
has_other: bool
hide_if_choices_empty: bool
hide_number: bool
indent: int
kind: str
max_width: str
min_width: str
name: str
options_caption: str
other_error_text: Union[str, Dict[str, str]]
other_place_holder: Union[str, Dict[str, str]]
other_text: Union[str, Dict[str, str]]
required: bool
required_error_text: str
required_if: str
show_options_caption: bool
start_with_new_line: bool
title: Union[str, Dict[str, str]]
title_location: Literal['default', 'top', 'bottom', 'left', 'hidden']
use_display_values_in_title: bool
validators: List[Validator]
value_name: str
visible: bool
visible_if: str
width: str
class questions.questions.ExpressionBlock(**data)[source]

Bases: Question

A block that inserts the result of an expression in a form.

correct_answer: str
currency: str
default_value: str
description: Union[str, Dict[str, str]]
description_location: Literal['default', 'underInput', 'underTitle']
display_style: Literal['none', 'decimal', 'currency', 'percent', 'date']
enable_if: str
expression: str
expression_format: str
extra_css: List[HttpUrl]
extra_js: List[HttpUrl]
hide_number: bool
indent: int
kind: str
max_width: str
maximum_fraction_digits: int
min_width: str
minimum_fraction_digits: int
name: str
required: bool
required_error_text: str
required_if: str
start_with_new_line: bool
title: Union[str, Dict[str, str]]
title_location: Literal['default', 'top', 'bottom', 'left', 'hidden']
use_display_values_in_title: bool
use_grouping: bool
validators: List[Validator]
value_name: str
visible: bool
visible_if: str
width: str
class questions.questions.ExpressionValidator(**data)[source]

Bases: Validator

Checks if a question’s answer matches a set of conditions.

expression: str
kind: str
message: str
class questions.questions.FileQuestion(**data)[source]

Bases: Question

A question for uploading one or more files.

accepted_types: str
allow_images_preview: bool
allow_multiple: bool
correct_answer: str
default_value: str
description: Union[str, Dict[str, str]]
description_location: Literal['default', 'underInput', 'underTitle']
enable_if: str
extra_css: List[HttpUrl]
extra_js: List[HttpUrl]
hide_number: bool
image_height: int
image_width: int
indent: int
kind: str
max_size: int
max_width: str
min_width: str
name: str
need_confirm_remove_file: bool
required: bool
required_error_text: str
required_if: str
show_preview: bool
start_with_new_line: bool
store_data_as_text: bool
title: Union[str, Dict[str, str]]
title_location: Literal['default', 'top', 'bottom', 'left', 'hidden']
use_display_values_in_title: bool
validators: List[Validator]
value_name: str
visible: bool
visible_if: str
wait_for_upload: bool
width: str
class questions.questions.HtmlBlock(**data)[source]

Bases: Question

An HTML block that can be embedded in a form.

correct_answer: str
default_value: str
description: Union[str, Dict[str, str]]
description_location: Literal['default', 'underInput', 'underTitle']
enable_if: str
extra_css: List[HttpUrl]
extra_js: List[HttpUrl]
hide_number: bool
html: Union[str, Dict[str, str]]
indent: int
kind: str
max_width: str
min_width: str
name: str
required: bool
required_error_text: str
required_if: str
start_with_new_line: bool
title: Union[str, Dict[str, str]]
title_location: Literal['default', 'top', 'bottom', 'left', 'hidden']
use_display_values_in_title: bool
validators: List[Validator]
value_name: str
visible: bool
visible_if: str
width: str
class questions.questions.ImageBlock(**data)[source]

Bases: Question

An block for inserting an image in a form.

content_mode: Literal['image', 'video']
correct_answer: str
default_value: str
description: Union[str, Dict[str, str]]
description_location: Literal['default', 'underInput', 'underTitle']
enable_if: str
extra_css: List[HttpUrl]
extra_js: List[HttpUrl]
hide_number: bool
image_fit: Literal['contain', 'none', 'cover', 'fill']
image_height: int
image_width: int
indent: int
kind: str
max_width: str
min_width: str
name: str
required: bool
required_error_text: str
required_if: str
start_with_new_line: bool
title: Union[str, Dict[str, str]]
title_location: Literal['default', 'top', 'bottom', 'left', 'hidden']
use_display_values_in_title: bool
validators: List[Validator]
value_name: str
visible: bool
visible_if: str
width: str
class questions.questions.ImagePickerQuestion(**data)[source]

Bases: ChoicesQuestion

Display a group of images and let the user pick one or more.

choices: List[Union[str, Dict[str, Union[str, HttpUrl, Dict[str, str]]]]]
choices_by_url: Dict[Literal['path', 'titleName', 'url', 'valueName'], str]
choices_enable_if: str
choices_order: Literal['none', 'asc', 'desc', 'random']
choices_visible_if: str
col_count: int
content_mode: Literal['image', 'video']
correct_answer: str
default_value: str
description: Union[str, Dict[str, str]]
description_location: Literal['default', 'underInput', 'underTitle']
enable_if: str
extra_css: List[HttpUrl]
extra_js: List[HttpUrl]
has_other: bool
hide_if_choices_empty: bool
hide_number: bool
image_fit: Literal['contain', 'none', 'cover', 'fill']
image_height: int
image_width: int
indent: int
kind: str
max_width: str
min_width: str
multi_select: bool
name: str
other_error_text: Union[str, Dict[str, str]]
other_place_holder: Union[str, Dict[str, str]]
other_text: Union[str, Dict[str, str]]
required: bool
required_error_text: str
required_if: str
show_label: bool
start_with_new_line: bool
title: Union[str, Dict[str, str]]
title_location: Literal['default', 'top', 'bottom', 'left', 'hidden']
use_display_values_in_title: bool
validators: List[Validator]
value_name: str
visible: bool
visible_if: str
width: str
class questions.questions.JQueryUIDatePickerQuestion(**data)[source]

Bases: TextQuestion

A question that uses the JQueryUI date picker.

auto_unmask: bool
config: str
correct_answer: str
date_format: str
default_value: str
description: Union[str, Dict[str, str]]
description_location: Literal['default', 'underInput', 'underTitle']
enable_if: str
extra_css: List[HttpUrl]
extra_js: List[HttpUrl]
hide_number: bool
indent: int
input_format: str
input_mask: str
input_type: Literal['color', 'date', 'datetime', 'datetime-local', 'email', 'month', 'number', 'password', 'range', 'tel', 'text', 'time', 'url', 'week']
kind: str
max_date: str
max_length: int
max_value: str
max_width: str
min_date: str
min_value: str
min_width: str
name: str
place_holder: Union[str, Dict[str, str]]
prefix: str
required: bool
required_error_text: str
required_if: str
size: int
start_with_new_line: bool
step: str
text_update_mode: Literal['default', 'onBlur', 'onTyping']
title: Union[str, Dict[str, str]]
title_location: Literal['default', 'top', 'bottom', 'left', 'hidden']
use_display_values_in_title: bool
validators: List[Validator]
value_name: str
visible: bool
visible_if: str
width: str
class questions.questions.MatrixDropdownQuestion(**data)[source]

Bases: Question

A matrix question that can include other types of input controls, like dropdowns and text boxes.

all_rows_required: bool
cell_type: Literal['dropdown', 'checkbox', 'radiogroup', 'text', 'comment', 'boolean', 'expression', 'rating']
cells: Dict[str, Dict[str, Any]]
choices: List[Any]
column_col_count: int
column_layout: Literal['horizontal', 'vertical']
column_min_width: str
columns: List[Any]
columns_visible_if: str
correct_answer: str
default_value: str
description: Union[str, Dict[str, str]]
description_location: Literal['default', 'underInput', 'underTitle']
enable_if: str
extra_css: List[HttpUrl]
extra_js: List[HttpUrl]
hide_number: bool
horizontal_scroll: bool
indent: int
kind: str
max_width: str
min_width: str
name: str
options_caption: str
required: bool
required_error_text: str
required_if: str
row_title_width: str
rows: List[Any]
rows_order: Literal['initial', 'random']
rows_visible_if: str
show_header: bool
start_with_new_line: bool
title: Union[str, Dict[str, str]]
title_location: Literal['default', 'top', 'bottom', 'left', 'hidden']
total_text: str
use_display_values_in_title: bool
validators: List[Validator]
value_name: str
visible: bool
visible_if: str
width: str
class questions.questions.MatrixDynamicQuestion(**data)[source]

Bases: Question

A matrix dropdown question that allows the user to add or remove new rows from their answer.

add_row_location: Literal['default', 'top', 'bottom', 'topBottom']
add_row_text: str
all_rows_required: bool
allow_add_rows: bool
allow_remove_rows: bool
cell_type: Literal['dropdown', 'checkbox', 'radiogroup', 'text', 'comment', 'boolean', 'expression', 'rating']
cells: Dict[str, Dict[str, Any]]
choices: List[Any]
column_col_count: int
column_layout: Literal['horizontal', 'vertical']
column_min_width: str
columns: List[Any]
columns_visible_if: str
confirm_delete: bool
confirm_delete_text: str
correct_answer: str
default_row_value: Any
default_value: str
default_value_from_last_row: bool
description: Union[str, Dict[str, str]]
description_location: Literal['default', 'underInput', 'underTitle']
enable_if: str
extra_css: List[HttpUrl]
extra_js: List[HttpUrl]
hide_number: bool
horizontal_scroll: bool
indent: int
key_duplication_error: str
key_name: str
kind: str
max_row_count: int
max_width: str
min_row_count: int
min_width: str
name: str
options_caption: str
remove_row_text: str
required: bool
required_error_text: str
required_if: str
row_count: int
rows: List[Any]
rows_order: Literal['initial', 'random']
rows_visible_if: str
show_header: bool
start_with_new_line: bool
title: Union[str, Dict[str, str]]
title_location: Literal['default', 'top', 'bottom', 'left', 'hidden']
use_display_values_in_title: bool
validators: List[Validator]
value_name: str
visible: bool
visible_if: str
width: str
class questions.questions.MatrixQuestion(**data)[source]

Bases: Question

A question that displays rows of radio buttons and allows the user to select a value from one of several columns for each row.

all_rows_required: bool
cells: Dict[str, Dict[str, str]]
columns: List[Any]
columns_visible_if: str
correct_answer: str
default_value: str
description: Union[str, Dict[str, str]]
description_location: Literal['default', 'underInput', 'underTitle']
enable_if: str
extra_css: List[HttpUrl]
extra_js: List[HttpUrl]
hide_number: bool
indent: int
kind: str
max_width: str
min_width: str
name: str
required: bool
required_error_text: str
required_if: str
rows: List[Any]
rows_order: Literal['initial', 'random']
rows_visible_if: str
show_header: bool
start_with_new_line: bool
title: Union[str, Dict[str, str]]
title_location: Literal['default', 'top', 'bottom', 'left', 'hidden']
use_display_values_in_title: bool
validators: List[Validator]
value_name: str
visible: bool
visible_if: str
width: str
class questions.questions.MicrophoneQuestion(**data)[source]

Bases: Question

A question that uses the RecordRTC sound recording widgets.

correct_answer: str
default_value: str
description: Union[str, Dict[str, str]]
description_location: Literal['default', 'underInput', 'underTitle']
enable_if: str
extra_css: List[HttpUrl]
extra_js: List[HttpUrl]
hide_number: bool
indent: int
kind: str
max_width: str
min_width: str
name: str
required: bool
required_error_text: str
required_if: str
start_with_new_line: bool
title: Union[str, Dict[str, str]]
title_location: Literal['default', 'top', 'bottom', 'left', 'hidden']
use_display_values_in_title: bool
validators: List[Validator]
value_name: str
visible: bool
visible_if: str
width: str
class questions.questions.MultipleTextQuestion(**data)[source]

Bases: Question

A text question with multiple related parts. Displays a text box for each part.

col_count: int
correct_answer: str
default_value: str
description: Union[str, Dict[str, str]]
description_location: Literal['default', 'underInput', 'underTitle']
enable_if: str
extra_css: List[HttpUrl]
extra_js: List[HttpUrl]
hide_number: bool
indent: int
item_size: int
items: List[Dict[str, str]]
kind: str
max_width: str
min_width: str
name: str
required: bool
required_error_text: str
required_if: str
start_with_new_line: bool
title: Union[str, Dict[str, str]]
title_location: Literal['default', 'top', 'bottom', 'left', 'hidden']
use_display_values_in_title: bool
validators: List[Validator]
value_name: str
visible: bool
visible_if: str
width: str
class questions.questions.NoUISliderQuestion(**data)[source]

Bases: Question

A question that uses the NoUISlider JQuery widget.

correct_answer: str
default_value: str
description: Union[str, Dict[str, str]]
description_location: Literal['default', 'underInput', 'underTitle']
direction: str
enable_if: str
extra_css: List[HttpUrl]
extra_js: List[HttpUrl]
hide_number: bool
indent: int
kind: str
max_width: str
min_width: str
name: str
orientation: str
pips_density: int
pips_mode: str
pips_text: List[Union[int, str]]
pips_values: List[int]
range_max: int
range_min: int
required: bool
required_error_text: str
required_if: str
start_with_new_line: bool
step: int
title: Union[str, Dict[str, str]]
title_location: Literal['default', 'top', 'bottom', 'left', 'hidden']
tooltips: bool
use_display_values_in_title: bool
validators: List[Validator]
value_name: str
visible: bool
visible_if: str
width: str
class questions.questions.NumericValidator(**data)[source]

Bases: Validator

Validator for numeric input.

kind: str
max_value: int
message: str
min_value: int
class questions.questions.Page(**data)[source]

Bases: _Base

A group of questions presented as an individual form page. A form can contain any number of pages.

description: Union[str, Dict[str, str]]
max_time_to_finish: int
name: str
navigation_buttons_visibility: Literal['inherit', 'show', 'hide']
question_title_location: Literal['default', 'top', 'bottom', 'left', 'hidden']
questions: List[Question]
questions_order: Literal['default', 'initial', 'random']
title: Union[str, Dict[str, str]]
class questions.questions.PanelBlock(**data)[source]

Bases: Question

A form panel is a group of questions that go together. A form can contain any number of panels, even nested.

elements: List[Question]
inner_indent: int
kind: str
question_start_index: str
question_title_location: Literal['default', 'top', 'bottom', 'left', 'hidden']
show_number: bool
show_question_numbers: Literal['default', 'onpanel', 'off']
state: Literal['default', 'collapsed', 'expanded', 'firstExpanded']
class questions.questions.PanelDynamicBlock(**data)[source]

Bases: Question

Dynamic blocks allow users to manually add or remove panels. A form can contain any number of dynamic panels, even nested.

allow_add_panel: bool
allow_remove_panel: bool
confirm_delete: bool
confirm_delete_text: Union[str, Dict[str, str]]
default_value_from_last_panel: bool
inner_indent: int
key_duplication_error: Union[str, Dict[str, str]]
key_name: str
kind: str
max_panel_count: int
min_panel_count: int
panel_add_text: Union[str, Dict[str, str]]
panel_count: int
panel_next_text: Union[str, Dict[str, str]]
panel_prev_text: Union[str, Dict[str, str]]
panel_remove_text: Union[str, Dict[str, str]]
panels_state: Literal['default', 'collapsed', 'expanded', 'firstExpanded']
render_mode: Literal['progressTop', 'progressBottom']
show_question_numbers: Literal['default', 'onpanel', 'off']
show_range_in_progress: bool
template_description: Union[str, Dict[str, str]]
template_elements: List[Question]
template_title: Union[str, Dict[str, str]]
template_title_location: Literal['default', 'top', 'bottom', 'left', 'hidden']
class questions.questions.Question(**data)[source]

Bases: _Base

Base question class. All questions share these properties, and all can be set by passing them as parameters when instantiating the question.

correct_answer: str
default_value: str
description: Union[str, Dict[str, str]]
description_location: Literal['default', 'underInput', 'underTitle']
enable_if: str
extra_css: List[HttpUrl]
extra_js: List[HttpUrl]
hide_number: bool
indent: int
kind: str
max_width: str
min_width: str
name: str
required: bool
required_error_text: str
required_if: str
start_with_new_line: bool
title: Union[str, Dict[str, str]]
title_location: Literal['default', 'top', 'bottom', 'left', 'hidden']
use_display_values_in_title: bool
validators: List[Validator]
value_name: str
visible: bool
visible_if: str
width: str
class questions.questions.RadioGroupQuestion(**data)[source]

Bases: ChoicesQuestion

Select one option from a group of radio buttons.

choices: List[Union[str, Dict[str, Union[str, HttpUrl, Dict[str, str]]]]]
choices_by_url: Dict[Literal['path', 'titleName', 'url', 'valueName'], str]
choices_enable_if: str
choices_order: Literal['none', 'asc', 'desc', 'random']
choices_visible_if: str
col_count: int
correct_answer: str
default_value: str
description: Union[str, Dict[str, str]]
description_location: Literal['default', 'underInput', 'underTitle']
enable_if: str
extra_css: List[HttpUrl]
extra_js: List[HttpUrl]
has_other: bool
hide_if_choices_empty: bool
hide_number: bool
indent: int
kind: str
max_width: str
min_width: str
name: str
other_error_text: Union[str, Dict[str, str]]
other_place_holder: Union[str, Dict[str, str]]
other_text: Union[str, Dict[str, str]]
required: bool
required_error_text: str
required_if: str
show_clear_button: bool
start_with_new_line: bool
title: Union[str, Dict[str, str]]
title_location: Literal['default', 'top', 'bottom', 'left', 'hidden']
use_display_values_in_title: bool
validators: List[Validator]
value_name: str
visible: bool
visible_if: str
width: str
class questions.questions.RatingQuestion(**data)[source]

Bases: Question

A question that lets the user select a number on a fixed scale.

correct_answer: str
default_value: str
description: Union[str, Dict[str, str]]
description_location: Literal['default', 'underInput', 'underTitle']
enable_if: str
extra_css: List[HttpUrl]
extra_js: List[HttpUrl]
hide_number: bool
indent: int
kind: str
max_rate_description: Union[str, Dict[str, str]]
max_width: str
min_rate_description: Union[str, Dict[str, str]]
min_width: str
name: str
rate_max: int
rate_min: int
rate_step: int
rate_values: List[Union[int, Dict[str, Union[int, str]]]]
required: bool
required_error_text: str
required_if: str
start_with_new_line: bool
title: Union[str, Dict[str, str]]
title_location: Literal['default', 'top', 'bottom', 'left', 'hidden']
use_display_values_in_title: bool
validators: List[Validator]
value_name: str
visible: bool
visible_if: str
width: str
class questions.questions.RegexValidator(**data)[source]

Bases: Validator

Checks if a value matches a regular expression.

kind: str
message: str
regex: str
class questions.questions.Select2Question(**data)[source]

Bases: DropdownQuestion

A question that uses the Select2 dropdown widget.

choices: List[Union[str, Dict[str, Union[str, HttpUrl, Dict[str, str]]]]]
choices_by_url: Dict[Literal['path', 'titleName', 'url', 'valueName'], str]
choices_enable_if: str
choices_max: int
choices_min: int
choices_order: Literal['none', 'asc', 'desc', 'random']
choices_step: int
choices_visible_if: str
col_count: int
correct_answer: str
default_value: str
description: Union[str, Dict[str, str]]
description_location: Literal['default', 'underInput', 'underTitle']
enable_if: str
extra_css: List[HttpUrl]
extra_js: List[HttpUrl]
has_other: bool
hide_if_choices_empty: bool
hide_number: bool
indent: int
kind: str
max_width: str
min_width: str
name: str
options_caption: str
other_error_text: Union[str, Dict[str, str]]
other_place_holder: Union[str, Dict[str, str]]
other_text: Union[str, Dict[str, str]]
render_as: str
required: bool
required_error_text: str
required_if: str
select2_config: str
show_options_caption: bool
start_with_new_line: bool
title: Union[str, Dict[str, str]]
title_location: Literal['default', 'top', 'bottom', 'left', 'hidden']
use_display_values_in_title: bool
validators: List[Validator]
value_name: str
visible: bool
visible_if: str
width: str
class questions.questions.SignaturePadQuestion(**data)[source]

Bases: Question

Allow the user to “sign” something by drawing their signature. Can be used to capture user drawings for other types of questions.

allow_clear: bool
correct_answer: str
default_value: str
description: Union[str, Dict[str, str]]
description_location: Literal['default', 'underInput', 'underTitle']
enable_if: str
extra_css: List[HttpUrl]
extra_js: List[HttpUrl]
height: int
hide_number: bool
indent: int
kind: str
max_width: str
min_width: str
name: str
required: bool
required_error_text: str
required_if: str
start_with_new_line: bool
title: Union[str, Dict[str, str]]
title_location: Literal['default', 'top', 'bottom', 'left', 'hidden']
use_display_values_in_title: bool
validators: List[Validator]
value_name: str
visible: bool
visible_if: str
width: int
class questions.questions.SortableJSQuestion(**data)[source]

Bases: CheckboxQuestion

A question that uses the JQuery sortable widget.

choices: List[Union[str, Dict[str, Union[str, HttpUrl, Dict[str, str]]]]]
choices_by_url: Dict[Literal['path', 'titleName', 'url', 'valueName'], str]
choices_enable_if: str
choices_order: Literal['none', 'asc', 'desc', 'random']
choices_visible_if: str
col_count: int
correct_answer: str
default_value: str
description: Union[str, Dict[str, str]]
description_location: Literal['default', 'underInput', 'underTitle']
empty_text: str
enable_if: str
extra_css: List[HttpUrl]
extra_js: List[HttpUrl]
has_none: bool
has_other: bool
has_select_all: bool
hide_if_choices_empty: bool
hide_number: bool
indent: int
kind: str
max_answers_count: int
max_width: str
min_width: str
name: str
none_text: Union[str, Dict[str, str]]
other_error_text: Union[str, Dict[str, str]]
other_place_holder: Union[str, Dict[str, str]]
other_text: Union[str, Dict[str, str]]
required: bool
required_error_text: str
required_if: str
select_all_text: Union[str, Dict[str, str]]
start_with_new_line: bool
title: Union[str, Dict[str, str]]
title_location: Literal['default', 'top', 'bottom', 'left', 'hidden']
use_display_values_in_title: bool
validators: List[Validator]
value_name: str
visible: bool
visible_if: str
width: str
class questions.questions.Survey(**data)[source]

Bases: _Base

The main SurveyJS form container. Questions forms generate a survey rendering the questions contained in a form.

calculated_values: List[Any]
check_errors_mode: Literal['onNextPage', 'onValueCHanged', 'onComplete']
clear_invisible_values: Literal['none', 'onHidden', 'onComplete']
complete_text: Union[str, Dict[str, str]]
completed_before_html: Union[str, Dict[str, str]]
completed_html: Union[str, Dict[str, str]]
completed_html_on_condition: List[Dict[str, str]]
cookie_name: str
description: Union[str, Dict[str, str]]
edit_text: Union[str, Dict[str, str]]
first_page_is_started: bool
focus_first_question_automatic: bool
focus_on_first_error: bool
go_next_page_automatic: bool
loading_html: Union[str, Dict[str, str]]
locale: Literal['ar', 'bg', 'ca', 'cs', 'da', 'de', 'en', 'es', 'et', 'fa', 'fi', 'fr', 'gr', 'he', 'hu', 'id', 'is', 'it', 'ja', 'ka', 'ko', 'lt', 'lv', 'nl', 'no', 'pl', 'pt', 'ro', 'ru', 'sv', 'sw', 'tg', 'th', 'tr', 'ua', 'zh-cn', 'zh-tw']
logo_fit: Literal['contain', 'none', 'cover', 'fill']
logo_height: int
logo_position: Literal['none', 'left', 'right', 'top', 'bottom']
logo_width: int
max_others_length: int
max_text_length: int
max_time_to_finish: int
mode: Literal['edit', 'display']
navigate_to_url: HttpUrl
navigate_to_url_on_condition: List[Dict[str, HttpUrl]]
page_next_text: Union[str, Dict[str, str]]
page_prev_text: Union[str, Dict[str, str]]
pages: List[Page]
preview_text: Union[str, Dict[str, str]]
progress_bar_type: Literal['pages', 'questions', 'correctQuestions']
question_description_location: Literal['underTitle', 'underInput']
question_error_location: Literal['top', 'bottom']
question_start_index: str
question_title_location: Literal['default', 'top', 'bottom', 'left', 'hidden']
question_title_pattern: str
question_title_template: str
questions_on_page_mode: Literal['standard', 'singlePage', 'questionPerPage']
questions_order: Literal['default', 'initial', 'random']
required_text: Union[str, Dict[str, str]]
send_result_on_page_next: bool
show_completed_page: bool
show_navigation_buttons: Literal['none', 'top', 'bottom', 'both']
show_page_numbers: bool
show_page_titles: bool
show_prev_button: bool
show_preview_before_complete: Literal['noPreview', 'showAllQuestions', 'showAnsweredQuestions']
show_progress_bar: Literal['off', 'top', 'bottom', 'both']
show_question_numbers: Literal['on', 'onpage', 'off']
show_timer_panel: Literal['none', 'top', 'bottom']
show_timer_panel_mode: Literal['page', 'survey', 'all']
show_title: bool
start_survey_text: Union[str, Dict[str, str]]
store_others_as_comment: bool
survey_id: str
survey_post_id: str
survey_show_data_saving: bool
text_update_mode: Literal['default', 'onBlur', 'onTyping']
title: Union[str, Dict[str, str]]
triggers: List[Any]
class questions.questions.TagBoxQuestion(**data)[source]

Bases: DropdownQuestion

A question that uses the Select2 tag box widget.

choices: List[Union[str, Dict[str, Union[str, HttpUrl, Dict[str, str]]]]]
choices_by_url: Dict[Literal['path', 'titleName', 'url', 'valueName'], str]
choices_enable_if: str
choices_max: int
choices_min: int
choices_order: Literal['none', 'asc', 'desc', 'random']
choices_step: int
choices_visible_if: str
col_count: int
correct_answer: str
default_value: str
description: Union[str, Dict[str, str]]
description_location: Literal['default', 'underInput', 'underTitle']
enable_if: str
extra_css: List[HttpUrl]
extra_js: List[HttpUrl]
has_other: bool
hide_if_choices_empty: bool
hide_number: bool
indent: int
kind: str
max_width: str
min_width: str
name: str
options_caption: str
other_error_text: Union[str, Dict[str, str]]
other_place_holder: Union[str, Dict[str, str]]
other_text: Union[str, Dict[str, str]]
required: bool
required_error_text: str
required_if: str
select2_config: str
show_options_caption: bool
start_with_new_line: bool
title: Union[str, Dict[str, str]]
title_location: Literal['default', 'top', 'bottom', 'left', 'hidden']
use_display_values_in_title: bool
validators: List[Validator]
value_name: str
visible: bool
visible_if: str
width: str
class questions.questions.TextQuestion(**data)[source]

Bases: Question

A question that uses a text input box. It can handle all HTML5 text input types.

auto_unmask: bool
correct_answer: str
default_value: str
description: Union[str, Dict[str, str]]
description_location: Literal['default', 'underInput', 'underTitle']
enable_if: str
extra_css: List[HttpUrl]
extra_js: List[HttpUrl]
hide_number: bool
indent: int
input_format: str
input_mask: str
input_type: Literal['color', 'date', 'datetime', 'datetime-local', 'email', 'month', 'number', 'password', 'range', 'tel', 'text', 'time', 'url', 'week']
kind: str
max_length: int
max_value: str
max_width: str
min_value: str
min_width: str
name: str
place_holder: Union[str, Dict[str, str]]
prefix: str
required: bool
required_error_text: str
required_if: str
size: int
start_with_new_line: bool
step: str
text_update_mode: Literal['default', 'onBlur', 'onTyping']
title: Union[str, Dict[str, str]]
title_location: Literal['default', 'top', 'bottom', 'left', 'hidden']
use_display_values_in_title: bool
validators: List[Validator]
value_name: str
visible: bool
visible_if: str
width: str
class questions.questions.TextValidator(**data)[source]

Bases: Validator

Validator for text input.

allow_digits: bool
kind: str
max_length: int
message: str
min_length: int
class questions.questions.Validator(**data)[source]

Bases: _Base

Base class for all validators.

kind: str
message: str