Exemplo n.º 1
0
class FilterDefinition(PythonModel):

    # TODO(vedant) - In a future Dashboard Schema update, we will need to unify
    # these filters such that they are common with AQT and Druid filter
    # definitions.

    @classmethod
    def registry(cls):
        return FilterProperty

    @property
    @FilterProperty.getter(
        nullable=False,
        value_validate_function=lambda value: assert_string(value, 'id'))
    def id(self):
        return self.get('id')

    @id.setter
    @FilterProperty.setter()
    def id(self, value):
        self['id'] = value

    @property
    @FilterProperty.getter(
        value_validate_function=lambda value: assert_string(value, 'name'))
    def name(self):
        return self.get('name')

    @name.setter
    @FilterProperty.setter()
    def name(self, value):
        self['name'] = value

    @property
    @FilterProperty.getter(
        nullable=False,
        value_validate_function=lambda value: assert_string(
            value, 'filter_on'),
    )
    def filter_on(self):
        return self.get('filterOn')

    @filter_on.setter
    @FilterProperty.setter()
    def filter_on(self, value):
        self['filterOn'] = value

    @property
    @FilterProperty.getter(
        nullable=False,
        value_validate_function=lambda value: assert_non_string_iterable(
            value, 'filter_values', validate_filter_value),
    )
    def filter_values(self):
        return self.get('filterValues')

    @filter_values.setter
    @FilterProperty.setter()
    def filter_values(self, value):
        self['filterValues'] = value
Exemplo n.º 2
0
def validate_settings_item(key, value, argument_name):
    formatted_value_name = '{0}[{1}]'.format(argument_name, key)
    assert_string(key, 'Settings ID \'%s\'' % key)
    assert_type(value, VisualizationSettings, argument_name=formatted_value_name)
    key_argument_name = 'key %s' % key
    value_argument_name = 'id %s' % value.id
    assert_equals(key, value['id'], key_argument_name, value_argument_name)
Exemplo n.º 3
0
def validate_size_item(key, value, argument_name):
    formatted_value_name = '{0}[{1}]'.format(argument_name, key)
    assert_string(key, 'Size ID \'%s\'' % key)
    assert_type(value, LayoutSize, argument_name=formatted_value_name)
    key_argument_name = 'key %s' % key
    value_argument_name = 'id %s' % value.id
    assert_equals(key, value['id'], key_argument_name, value_argument_name)
Exemplo n.º 4
0
def validate_date_range_item(key, value, argument_name):
    formatted_value_name = '{0}[{1}]'.format(argument_name, key)
    assert_string(key, 'Date Range ID \'%s\'' % key)
    assert_type(value, DateRangeSpecification, argument_name=formatted_value_name)
    key_argument_name = 'key %s' % key
    value_argument_name = 'id %s' % value.id
    assert_equals(key, value['id'], key_argument_name, value_argument_name)
Exemplo n.º 5
0
def validate_filter_item(key, value, argument_name):
    formatted_value_name = '{0}[{1}]'.format(argument_name, key)
    assert_string(key, 'Filter ID \'%s\'' % key)
    assert_type(value, FilterDefinition, argument_name=formatted_value_name)
    key_argument_name = 'key %s' % key
    value_argument_name = 'id %s' % value.id
    assert_equals(key, value['id'], key_argument_name, value_argument_name)
Exemplo n.º 6
0
class CustomField(PythonModel):
    @classmethod
    def registry(cls):
        return CustomFieldProperty

    @property
    @CustomFieldProperty.getter(
        nullable=False,
        value_validate_function=lambda value: assert_non_string_iterable(
            value, 'field_ids', string_type_validator
        ),
    )
    def field_ids(self):
        return self.get('fieldIds')

    @field_ids.setter
    @CustomFieldProperty.setter()
    def field_ids(self, value):
        self['fieldIds'] = value

    @property
    @CustomFieldProperty.getter(
        nullable=False,
        value_validate_function=lambda value: assert_string(value, 'formula'),
    )
    def formula(self):
        return self.get('formula')

    @formula.setter
    @CustomFieldProperty.setter()
    def formula(self, value):
        self['formula'] = value

    @property
    @CustomFieldProperty.getter(
        nullable=False, value_validate_function=lambda value: assert_string(value, 'id')
    )
    def id(self):
        return self.get('id')

    @id.setter
    @CustomFieldProperty.setter()
    def id(self, value):
        self['id'] = value

    @property
    @CustomFieldProperty.getter(
        value_validate_function=lambda value: assert_string(value, 'name')
    )
    def name(self):
        return self.get('name')

    @name.setter
    @CustomFieldProperty.setter()
    def name(self, value):
        self['name'] = value
Exemplo n.º 7
0
def assert_font_size(value, argument_name=None):
    assert_string(value, argument_name)
    integer_substring = value[:-2]
    try:
        int(integer_substring)
    except ValueError:
        message = ('Font size value must convertible to an integer. '
                   'Could not convert \'{value}\' to an integer.').format(
                       value=integer_substring)
        raise ValueError(message)
Exemplo n.º 8
0
    def delete_series(self, series_id):
        assert_string(series_id)
        if series_id in self.series_order:
            updated_value = self.series_order
            updated_value.pop(series_id)
            self._series_order = updated_value

        if series_id in self.series_objects:
            updated_objects = self.series_objects
            updated_objects.pop(series_id)
            self._series_objects = updated_objects
def deserialize_sort_order(value):
    if isinstance(value, SortOrder):
        return value

    assert_string(value, 'sort_order')
    formatted_value = SORT_ORDER_MAP.get(value.upper())

    if not formatted_value:
        raise ValueError('Unexpected value for SortOrder: \'{0}\''.format(value.name))

    return formatted_value
Exemplo n.º 10
0
class HeatMapSettings(PythonModel):
    @classmethod
    def registry(cls):
        return HeatMapProperty

    @property
    @HeatMapProperty.getter(
        nullable=False,
        default_value=DEFAULT_SELECTED_FIELD,
        value_validate_function=lambda value: assert_string(
            value, 'selected_field'),
    )
    def selected_field(self):
        return self.get('selectedField')

    @selected_field.setter
    @HeatMapProperty.setter()
    def selected_field(self, value):
        self['selectedField'] = value

    @property
    @HeatMapProperty.getter(
        nullable=False,
        default_value=DEFAULT_MAP_BASE_LAYER,
        value_validate_function=lambda value: assert_in(
            value, BASE_LAYERS, 'base_layer'),
    )
    def base_layer(self):
        return self.get('baseLayer')

    @base_layer.setter
    @HeatMapProperty.setter()
    def base_layer(self, value):
        self['baseLayer'] = value
Exemplo n.º 11
0
class VisualizationSettings(PythonModel):
    @classmethod
    def registry(cls):
        return VisualizationSettingsProperty

    @property
    @VisualizationSettingsProperty.getter(
        nullable=False, value_validate_function=lambda value: assert_string(value, 'id')
    )
    def id(self):
        return self.get('id')

    @id.setter
    @VisualizationSettingsProperty.setter()
    def id(self, value):
        self['id'] = value

    @property
    @VisualizationSettingsProperty.getter(
        nullable=False,
        value_validate_function=lambda value: assert_type(
            value, TitleSettings, argument_name='title_settings'
        ),
    )
    def title_settings(self):
        return self.get('titleSettings')

    @title_settings.setter
    @VisualizationSettingsProperty.setter(
        value_parser_function=lambda values: TitleSettings(values)
    )
    def title_settings(self, value):
        self['titleSettings'] = value

    @property
    @VisualizationSettingsProperty.getter(
        nullable=False,
        default_value=lambda: {},
        value_validate_function=lambda value: assert_mapping(
            value, 'view_type_settings', view_type_settings_validator
        ),
    )
    def view_type_settings(self):
        return self.get('viewTypeSettings')

    @view_type_settings.setter
    @VisualizationSettingsProperty.setter(
        value_parser_function=parse_view_type_settings
    )
    def view_type_settings(self, value):
        self['viewTypeSettings'] = value
Exemplo n.º 12
0
class DashboardOptions(PythonModel):
    @classmethod
    def registry(cls):
        return OptionsProperty

    @property
    @OptionsProperty.getter(
        nullable=False,
        default_value=DEFAULT_TITLE,
        value_validate_function=lambda value: assert_string(value, 'title'),
    )
    def title(self):
        return self.get('title')

    @title.setter
    @OptionsProperty.setter()
    def title(self, value):
        self['title'] = value

    @property
    @OptionsProperty.getter(
        nullable=False,
        default_value=DEFAULT_COLUMN_COUNT,
        value_validate_function=lambda value: assert_integer(
            value, 'column_count', MINIMUM_COLUMN_COUNT
        ),
    )
    def column_count(self):
        return self.get('columnCount')

    @column_count.setter
    @OptionsProperty.setter()
    def column_count(self, value):
        self['columnCount'] = value

    @property
    @OptionsProperty.getter(
        serialized_property_name='showDashboardFilterButton',
        nullable=False,
        default_value=DEFAULT_SHOW_FILTER_BUTTON,
        value_validate_function=lambda value: assert_boolean(
            value, 'show_filter_button'
        ),
    )
    def show_filter_button(self):
        return self.get('showDashboardFilterButton')

    @show_filter_button.setter
    @OptionsProperty.setter()
    def show_filter_button(self, value):
        self['showDashboardFilterButton'] = value
Exemplo n.º 13
0
class BoxPlotSettings(PythonModel):
    @classmethod
    def registry(cls):
        return BoxPlotProperty

    @property
    @BoxPlotProperty.getter(
        nullable=False,
        value_validate_function=lambda value: assert_string(value, 'group_by'),
    )
    def group_by(self):
        return self.get('groupBy')

    @group_by.setter
    @BoxPlotProperty.setter()
    def group_by(self, value):
        self['groupBy'] = value
Exemplo n.º 14
0
class ExpandoTreeSettings(PythonModel):
    @classmethod
    def registry(cls):
        return ExpandoTreeProperty

    @property
    @ExpandoTreeProperty.getter(
        nullable=False,
        default_value=DEFAULT_SELECTED_FIELD,
        value_validate_function=lambda value: assert_string(value, 'selected_field'),
    )
    def selected_field(self):
        return self.get('selectedField')

    @selected_field.setter
    @ExpandoTreeProperty.setter()
    def selected_field(self, value):
        self['selectedField'] = value
Exemplo n.º 15
0
class LayoutSize(PythonModel):
    @classmethod
    def registry(cls):
        return LayoutSizeProperty

    @property
    @LayoutSizeProperty.getter(
        nullable=False,
        value_validate_function=lambda value: assert_string(value, 'id'))
    def id(self):
        return self.get('id')

    @id.setter
    @LayoutSizeProperty.setter()
    def id(self, value):
        self['id'] = value

    @property
    @LayoutSizeProperty.getter(
        nullable=False,
        value_validate_function=lambda value: assert_integer(value, 'rows'),
        default_value=DEFAULT_ROW_COUNT,
    )
    def rows(self):
        return self.get('rows')

    @rows.setter
    @LayoutSizeProperty.setter()
    def rows(self, value):
        self['rows'] = value

    @property
    @LayoutSizeProperty.getter(
        nullable=False,
        value_validate_function=lambda value: assert_integer(value, 'columns'),
        default_value=DEFAULT_COLUMN_COUNT,
    )
    def columns(self):
        return self.get('columns')

    @columns.setter
    @LayoutSizeProperty.setter()
    def columns(self, value):
        self['columns'] = value
Exemplo n.º 16
0
class LayoutItem(PythonModel):
    @classmethod
    def registry(cls):
        return LayoutItemProperty

    # TODO(vedant) - Come up with a proper structure for frontEndSelections
    # and/or filterModalSelections. Get rid of one of them since they have a
    # very similar structure.

    @property
    @LayoutItemProperty.getter(
        nullable=False,
        default_value=lambda: [],
        value_validate_function=lambda value: assert_non_string_iterable(
            value, 'custom_fields', validate_custom_field),
    )
    def custom_fields(self):
        return self.get('customFields')

    @custom_fields.setter
    @LayoutItemProperty.setter(
        value_parser_function=lambda custom_field_objects: [
            CustomField(custom_field_object)
            for custom_field_object in custom_field_objects
        ])
    def custom_fields(self, value):
        self['customFields'] = value

    @property
    @LayoutItemProperty.getter(
        nullable=False,
        default_value=lambda: {},
        value_validate_function=lambda value: assert_mapping(
            value, 'filter_modal_selections'),
    )
    def filter_modal_selections(self):
        return self.get('filterModalSelections')

    @filter_modal_selections.setter
    @LayoutItemProperty.setter()
    def filter_modal_selections(self, value):
        self['filterModalSelections'] = value

    @property
    @LayoutItemProperty.getter(
        serialized_property_name='frontendSelectionsFilter',
        nullable=False,
        default_value=lambda: {},
        value_validate_function=lambda value: assert_mapping(
            value, 'front_end_selections_filter'),
    )
    def front_end_selections_filter(self):
        return self.get('frontendSelectionsFilter')

    @front_end_selections_filter.setter
    @LayoutItemProperty.setter()
    def front_end_selections_filter(self, value):
        self['frontendSelectionsFilter'] = value

    @property
    @LayoutItemProperty.getter(
        nullable=False,
        value_validate_function=lambda value: assert_string(value, 'id'))
    def id(self):
        return self.get('id')

    @id.setter
    @LayoutItemProperty.setter()
    def id(self, value):
        self['id'] = value

    @property
    @LayoutItemProperty.getter(
        nullable=False,
        value_validate_function=lambda value: assert_string(value, 'query_id'),
    )
    def query_id(self):
        return self.get('queryId')

    @query_id.setter
    @LayoutItemProperty.setter()
    def query_id(self, value):
        self['queryId'] = value

    @property
    @LayoutItemProperty.getter(
        value_validate_function=lambda value: assert_string(value, 'name'))
    def name(self):
        return self.get('name')

    @name.setter
    @LayoutItemProperty.setter()
    def name(self, value):
        self['name'] = value

    @property
    @LayoutItemProperty.getter(
        nullable=False,
        default_value=DEFAULT_IS_ADVANCED_QUERY_ITEM,
        value_validate_function=lambda value: assert_boolean(
            value, 'is_advanced_query_item'),
    )
    def is_advanced_query_item(self):
        return self.get('isAdvancedQueryItem')

    @is_advanced_query_item.setter
    @LayoutItemProperty.setter()
    def is_advanced_query_item(self, value):
        self['isAdvancedQueryItem'] = value

    @property
    @LayoutItemProperty.getter(
        nullable=False,
        default_value=DEFAULT_IS_LOCKED,
        value_validate_function=lambda value: assert_boolean(
            value, 'is_locked'),
    )
    def is_locked(self):
        return self.get('isLocked')

    @is_locked.setter
    @LayoutItemProperty.setter()
    def is_locked(self, value):
        self['isLocked'] = value

    @property
    @LayoutItemProperty.getter(value_validate_function=lambda value:
                               assert_string(value, 'setting_id'))
    def setting_id(self):
        return self.get('settingId')

    @setting_id.setter
    @LayoutItemProperty.setter()
    def setting_id(self, value):
        self['settingId'] = value

    @property
    @LayoutItemProperty.getter(
        serialized_property_name='type',
        nullable=False,
        value_validate_function=lambda value: assert_type(
            value, VisualizationType, argument_name='item_type'),
        value_formatter_function=lambda value: value.name,
    )
    def item_type(self):
        return self.get('type')

    @item_type.setter
    @LayoutItemProperty.setter(
        value_parser_function=deserialize_visualization_type)
    def item_type(self, value):
        self['type'] = value

    @property
    @LayoutItemProperty.getter(
        nullable=False,
        value_validate_function=lambda value: assert_integer(
            value, 'upper_x', lower_bound=UPPER_X_LOWER_BOUND),
    )
    def upper_x(self):
        return self.get('upperX')

    @upper_x.setter
    @LayoutItemProperty.setter()
    def upper_x(self, value):
        self['upperX'] = value

    @property
    @LayoutItemProperty.getter(
        nullable=False,
        value_validate_function=lambda value: assert_integer(
            value, 'upper_x', lower_bound=UPPER_Y_LOWER_BOUND),
    )
    def upper_y(self):
        return self.get('upperY')

    @upper_y.setter
    @LayoutItemProperty.setter()
    def upper_y(self, value):
        self['upperY'] = value

    @property
    @LayoutItemProperty.getter(
        nullable=False,
        value_validate_function=lambda value: assert_string(value, 'size_id'),
    )
    def size_id(self):
        return self.get('sizeId')

    @size_id.setter
    @LayoutItemProperty.setter()
    def size_id(self, value):
        self['sizeId'] = value
Exemplo n.º 17
0
 def title_font_size(self, value):
     assert_string(value, 'title_font_size')
     self['titleFontSize'] = value
Exemplo n.º 18
0
class TitleSettings(PythonModel):
    @classmethod
    def registry(cls):
        return TitleProperty

    @property
    @TitleProperty.getter(
        nullable=False,
        default_value='',
        value_validate_function=lambda value: assert_string(value, 'subtitle'),
    )
    def subtitle(self):
        return self.get('subtitle')

    @subtitle.setter
    @TitleProperty.setter()
    def subtitle(self, value):
        self['subtitle'] = value

    @property
    @TitleProperty.getter(
        nullable=False,
        default_value=DEFAULT_SUBTITLE_FONT_SIZE,
        value_validate_function=lambda value: assert_font_size(
            value, 'subtitle_font_size'
        ),
    )
    def subtitle_font_size(self):
        return self.get('subtitleFontSize')

    @subtitle_font_size.setter
    @TitleProperty.setter()
    def subtitle_font_size(self, value):
        self['subtitleFontSize'] = value

    @property
    @TitleProperty.getter(
        nullable=False,
        default_value='',
        value_validate_function=lambda value: assert_string(value, 'title'),
    )
    def title(self):
        return self.get('title')

    @title.setter
    @TitleProperty.setter()
    def title(self, value):
        self['title'] = value

    @property
    @TitleProperty.getter(
        nullable=False,
        default_value=DEFAULT_SUBTITLE_FONT_SIZE,
        value_validate_function=lambda value: assert_font_size(
            value, 'title_font_size'
        ),
    )
    def title_font_size(self):
        return self.get('titleFontSize')

    @title_font_size.setter
    @TitleProperty.setter()
    def title_font_size(self, value):
        self['titleFontSize'] = value

    @property
    @TitleProperty.getter(nullable=False, default_value=DEFAULT_TITLE_FONT_COLOR)
    def title_font_color(self):
        return self.get('titleFontColor')

    @title_font_size.setter
    @TitleProperty.setter()
    def title_font_color(self, value):
        self['titleFontColor'] = value

    @property
    @TitleProperty.getter(nullable=False, default_value=DEFAULT_TITLE_FONT_FAMILY)
    def title_font_family(self):
        return self.get('titleFontFamily')

    @title_font_size.setter
    @TitleProperty.setter()
    def title_font_family(self, value):
        self['titleFontFamily'] = value
Exemplo n.º 19
0
def validate_filter_value(value, index, argument_name):
    formatted_argument_name = '{0}[{1}]'.format(argument_name, index)
    assert_string(value, formatted_argument_name)
Exemplo n.º 20
0
class LegendSettings(PythonModel):
    '''A model that represents settings for the legend of a visualization.
    '''

    @classmethod
    def registry(cls):
        return LegendProperty

    @property
    @LegendProperty.getter(
        nullable=False,
        default_value=DEFAULT_LEGEND_FONT_SIZE,
        value_validate_function=lambda value: assert_font_size(
            value, 'legend_font_size'
        ),
    )
    def legend_font_size(self):
        return self.get('legendFontSize')

    @legend_font_size.setter
    @LegendProperty.setter()
    def legend_font_size(self, value):
        self['legendFontSize'] = value

    @property
    @LegendProperty.getter(
        nullable=False,
        default_value=DEFAULT_LEGEND_FONT_COLOR,
        value_validate_function=lambda value: assert_string(value, 'legend_font_color'),
    )
    def legend_font_color(self):
        return self.get('legendFontColor')

    @legend_font_color.setter
    @LegendProperty.setter()
    def legend_font_color(self, value):
        self['legendFontColor'] = value

    @property
    @LegendProperty.getter(
        nullable=False,
        default_value=DEFAULT_LEGEND_FONT_FAMILY,
        value_validate_function=lambda value: assert_string(
            value, 'legend_font_family'
        ),
    )
    def legend_font_family(self):
        return self.get('legendFontFamily')

    @legend_font_family.setter
    @LegendProperty.setter()
    def legend_font_family(self, value):
        self['legendFontFamily'] = value

    @property
    @LegendProperty.getter(
        nullable=False,
        default_value=DEFAULT_LEGEND_PLACEMENT,
        value_validate_function=lambda value: assert_enum(
            value, LegendPlacement, 'LegendPlacement', 'legend_placement'
        ),
        value_formatter_function=lambda value: camelcase(value.name.lower()),
    )
    def legend_placement(self):
        return self.get('legendPlacement')

    @legend_placement.setter
    @LegendProperty.setter(value_parser_function=deserialize_legend_placement)
    def legend_placement(self, value):
        self['legendPlacement'] = value

    @property
    @LegendProperty.getter(
        nullable=False,
        default_value=DEFAULT_LEGEND_OVERLAP_WITH_CHART,
        value_validate_function=lambda value: assert_boolean(
            value, 'overlap_legend_with_chart'
        ),
    )
    def overlap_legend_with_chart(self):
        return self.get('overlapLegendWithChart')

    @overlap_legend_with_chart.setter
    @LegendProperty.setter()
    def overlap_legend_with_chart(self, value):
        self['overlapLegendWithChart'] = value

    @property
    @LegendProperty.getter(
        nullable=False,
        default_value=DEFAULT_SHOW_LEGEND,
        value_validate_function=lambda value: assert_boolean(value, 'show_legend'),
    )
    def show_legend(self):
        return self.get('showLegend')

    @show_legend.setter
    @LegendProperty.setter()
    def show_legend(self, value):
        self['showLegend'] = value
Exemplo n.º 21
0
class SeriesSettingsObject(PythonModel):
    def __init__(self, values=None):
        values = values or {}
        if not values.get('color'):
            # We want the generated colour to be stable as opposed to something
            # that changes for each property invocation
            values['color'] = generate_random_colour()
        super(SeriesSettingsObject, self).__init__(values)

    @classmethod
    def registry(cls):
        return SeriesObjectProperty

    @property
    @SeriesObjectProperty.getter(
        nullable=False,
        value_validate_function=lambda value: assert_string(
            value, 'color', COLOR_PATTERN
        ),
    )
    def color(self):
        # TODO(vedant) - Replace all the misspelled references to 'color' with
        # the proper spelling of 'colour'. (TONGUE IN CHEEK, DON'T TAKE
        # LITERALLY)
        return self.get('color')

    @color.setter
    @SeriesObjectProperty.setter()
    def color(self, value):
        self['color'] = value

    @property
    @SeriesObjectProperty.getter(
        nullable=False,
        default_value=DEFAULT_SERIES_DATA_LABEL_FONT_SIZE,
        value_validate_function=lambda value: assert_font_size(
            value, 'data_label_font_size'
        ),
    )
    def data_label_font_size(self):
        return self.get('dataLabelFontSize')

    @data_label_font_size.setter
    @SeriesObjectProperty.setter()
    def data_label_font_size(self, value):
        self['dataLabelFontSize'] = value

    @property
    @SeriesObjectProperty.getter(
        nullable=False,
        default_value=DEFAULT_SERIES_DATA_LABEL_FORMAT,
        value_validate_function=lambda value: assert_string(value, 'data_label_format'),
    )
    def data_label_format(self):
        return self.get('dataLabelFormat')

    @data_label_format.setter
    @SeriesObjectProperty.setter()
    def data_label_format(self, value):
        self['dataLabelFormat'] = value

    @property
    @SeriesObjectProperty.getter(
        nullable=False, value_validate_function=lambda value: assert_string(value, 'id')
    )
    def id(self):
        return self.get('id')

    @id.setter
    @SeriesObjectProperty.setter()
    def id(self, value):
        self['id'] = value

    @property
    @SeriesObjectProperty.getter(
        nullable=False,
        default_value=DEFAULT_SERIES_DATA_IS_VISIBLE,
        value_validate_function=lambda value: assert_boolean(value, 'is_visible'),
    )
    def is_visible(self):
        return self.get('isVisible')

    @is_visible.setter
    @SeriesObjectProperty.setter()
    def is_visible(self, value):
        self['isVisible'] = value

    @property
    @SeriesObjectProperty.getter(
        nullable=False,
        default_value=DEFAULT_SERIES_DATA_LABEL,
        value_validate_function=lambda value: assert_string(value, 'label'),
    )
    def label(self):
        return self.get('label')

    @label.setter
    @SeriesObjectProperty.setter()
    def label(self, value):
        self['label'] = value

    @property
    @SeriesObjectProperty.getter(
        nullable=False,
        default_value=DEFAULT_SERIES_SHOW_CONSTITUENTS,
        value_validate_function=lambda value: assert_boolean(
            value, 'show_constituents'
        ),
    )
    def show_constituents(self):
        return self.get('showConstituents')

    @show_constituents.setter
    @SeriesObjectProperty.setter()
    def show_constituents(self, value):
        self['showConstituents'] = value

    @property
    @SeriesObjectProperty.getter(
        nullable=False,
        default_value=DEFAULT_SERIES_SHOW_SERIES_VALUE,
        value_validate_function=lambda value: assert_boolean(
            value, 'show_series_value'
        ),
    )
    def show_series_value(self):
        return self.get('showSeriesValue')

    @show_series_value.setter
    @SeriesObjectProperty.setter()
    def show_series_value(self, value):
        self['showSeriesValue'] = value

    @property
    @SeriesObjectProperty.getter(
        nullable=False,
        default_value=SeriesObjectAxis.Y1_AXIS,
        value_validate_function=lambda value: assert_enum(
            value, SeriesObjectAxis, 'SeriesObjectAxis', 'y_axis'
        ),
        value_formatter_function=lambda value: camelcase(value.name.lower()),
    )
    def y_axis(self):
        return self.get('yAxis')

    @y_axis.setter
    @SeriesObjectProperty.setter(
        value_parser_function=lambda value: SeriesObjectAxis[snakecase(value).upper()]
    )
    def y_axis(self, value):
        self['yAxis'] = value
Exemplo n.º 22
0
 def additional_axis_title_distance(self, value):
     assert_string(value, 'additionalAxisTitleDistance')
     self['additionalAxisTitleDistance'] = value
Exemplo n.º 23
0
 def labels_font_family(self, value):
     assert_string(value, 'labels_font_family')
     self['labelsFontFamily'] = value
Exemplo n.º 24
0
class XAxisSettings(PythonModel):
    '''Settings for the X-Axis for a given visualization.
    '''

    @classmethod
    def registry(cls):
        return XAxisProperty

    @property
    @XAxisProperty.getter(
        nullable=False,
        default_value=DEFAULT_XAXIS_GOAL_LINE,
        value_validate_function=lambda value: assert_string(value, 'goal_line'),
    )
    def goal_line(self):
        return self.get('goalLine')

    @goal_line.setter
    @XAxisProperty.setter()
    def goal_line(self, value):
        self['goalLine'] = value

    @property
    @XAxisProperty.getter(
        nullable=False,
        default_value=DEFAULT_XAXIS_GOAL_LINE_FONT_SIZE,
        value_validate_function=lambda value: assert_string(
            value, 'goal_line_font_size'
        ),
    )
    def goal_line_font_size(self):
        return self.get('goalLineFontSize')

    @goal_line_font_size.setter
    @XAxisProperty.setter()
    def goal_line_font_size(self, value):
        self['goalLineFontSize'] = value

    @property
    @XAxisProperty.getter(
        nullable=False,
        default_value=DEFAULT_XAXIS_GOAL_LINE_LABEL,
        value_validate_function=lambda value: assert_string(value, 'goal_line_label'),
    )
    def goal_line_label(self):
        return self.get('goalLineLabel')

    @goal_line_label.setter
    @XAxisProperty.setter()
    def goal_line_label(self, value):
        self['goalLineLabel'] = value

    @property
    @XAxisProperty.getter(
        nullable=False,
        default_value=DEFAULT_XAXIS_LABEL_FONT_SIZE,
        value_validate_function=lambda value: assert_string(value, 'labels_font_size'),
    )
    def labels_font_size(self):
        return self.get('labelsFontSize')

    @labels_font_size.setter
    @XAxisProperty.setter()
    def labels_font_size(self, value):
        self['labelsFontSize'] = value

    @property
    @XAxisProperty.getter(
        nullable=False,
        default_value='',
        value_validate_function=lambda value: assert_string(value, 'title'),
    )
    def title(self):
        return self.get('title')

    @title.setter
    @XAxisProperty.setter()
    def title(self, value):
        self['title'] = value

    @property
    @XAxisProperty.getter(
        nullable=False,
        default_value=DEFAULT_XAXIS_TITLE_FONT_SIZE,
        value_validate_function=lambda value: assert_string(value, 'title_font_size'),
    )
    def title_font_size(self):
        return self.get('titleFontSize')

    @title_font_size.setter
    @XAxisProperty.setter()
    def title_font_size(self, value):
        assert_string(value, 'title_font_size')
        self['titleFontSize'] = value

    @property
    @XAxisProperty.getter(
        nullable=False,
        default_value=DEFAULT_XAXIS_TITLE_FONT_COLOR,
        value_validate_function=lambda value: assert_string(value, 'title_font_color'),
    )
    def title_font_color(self):
        return self.get('titleFontColor')

    @title_font_color.setter
    @XAxisProperty.setter()
    def title_font_color(self, value):
        assert_string(value, 'title_font_color')
        self['titleFontColor'] = value

    @property
    @XAxisProperty.getter(
        nullable=False,
        default_value=DEFAULT_XAXIS_TITLE_FONT_FAMILY,
        value_validate_function=lambda value: assert_string(value, 'title_font_family'),
    )
    def title_font_family(self):
        return self.get('titleFontFamily')

    @title_font_family.setter
    @XAxisProperty.setter()
    def title_font_family(self, value):
        assert_string(value, 'title_font_family')
        self['titleFontFamily'] = value

    @property
    @XAxisProperty.getter(
        nullable=False,
        default_value=DEFAULT_XAXIS_LABEL_FONT_COLOR,
        value_validate_function=lambda value: assert_string(value, 'labels_font_color'),
    )
    def labels_font_color(self):
        return self.get('labelsFontColor')

    @labels_font_color.setter
    @XAxisProperty.setter()
    def labels_font_color(self, value):
        assert_string(value, 'labels_font_color')
        self['labelsFontColor'] = value

    @property
    @XAxisProperty.getter(
        nullable=False,
        default_value=DEFAULT_XAXIS_LABEL_FONT_FAMILY,
        value_validate_function=lambda value: assert_string(
            value, 'labels_font_family'
        ),
    )
    def labels_font_family(self):
        return self.get('labelsFontFamily')

    @labels_font_family.setter
    @XAxisProperty.setter()
    def labels_font_family(self, value):
        assert_string(value, 'labels_font_family')
        self['labelsFontFamily'] = value

    @property
    @XAxisProperty.getter(
        nullable=False,
        default_value=DEFAULT_ADDITIONAL_TITLE_DISTANCE,
        value_validate_function=lambda value: assert_string(
            value, 'additional_axis_title_distance'
        ),
    )
    def additional_axis_title_distance(self):
        return self.get('additionalAxisTitleDistance')

    @additional_axis_title_distance.setter
    @XAxisProperty.setter()
    def additional_axis_title_distance(self, value):
        assert_string(value, 'additionalAxisTitleDistance')
        self['additionalAxisTitleDistance'] = value
Exemplo n.º 25
0
class QueryDefinition(PythonModel):
    @classmethod
    def registry(cls):
        return QueryProperty

    @property
    @QueryProperty.getter(
        nullable=False,
        default_value=lambda: [],
        value_validate_function=lambda value: assert_non_string_iterable(
            value, 'advancedFields', validate_advanced_field_item),
    )
    def advanced_fields(self):
        return self.get('advancedFields')

    @advanced_fields.setter
    @QueryProperty.setter(
        value_parser_function=lambda advanced_field_objects: [
            AdvancedFieldDefinition(advanced_field_object)
            for advanced_field_object in advanced_field_objects
        ])
    def advanced_fields(self, value):
        self['advancedFields'] = value

    # TODO(pablo): come up with a proper structure for advancedFilters that
    # mirrors the SerializedQueryFilter
    @property
    @QueryProperty.getter(
        nullable=False,
        default_value=lambda: [],
        value_validate_function=lambda value: assert_non_string_iterable(
            value, 'advancedFilters', validate_mapping),
    )
    def advanced_filters(self):
        return self.get('advancedFilters')

    @advanced_filters.setter
    @QueryProperty.setter()
    def advanced_filters(self, value):
        self['advancedFilters'] = value

    @property
    @QueryProperty.getter(
        nullable=False,
        default_value=lambda: [],
        value_validate_function=lambda value: assert_non_string_iterable(
            value, 'advancedGroups', validate_mapping),
    )
    def advanced_groups(self):
        return self.get('advancedGroups')

    @advanced_groups.setter
    @QueryProperty.setter()
    def advanced_groups(self, value):
        self['advancedGroups'] = value

    @property
    @QueryProperty.getter(
        nullable=False,
        value_validate_function=lambda value: assert_string(value, 'id'))
    def id(self):
        return self.get('id')

    @id.setter
    @QueryProperty.setter()
    def id(self, value):
        self['id'] = value

    @property
    @QueryProperty.getter(
        value_validate_function=lambda value: assert_string(value, 'name'))
    def name(self):
        return self.get('name')

    @name.setter
    @QueryProperty.setter()
    def name(self, value):
        self['name'] = value

    @property
    @QueryProperty.getter(
        nullable=False,
        serialized_property_name='magicFilters',
        default_value=lambda: [],
        value_validate_function=lambda value: assert_non_string_iterable(
            value, 'magic_filter_ids', string_type_validator),
    )
    def magic_filter_ids(self):
        return self.get('magicFilters')

    @magic_filter_ids.setter
    @QueryProperty.setter()
    def magic_filter_ids(self, value):
        self['magicFilters'] = value

    @property
    @QueryProperty.getter(
        nullable=False,
        default_value='',
        value_validate_function=lambda value: assert_string(
            value, 'date_range_id'),
    )
    def date_range_id(self):
        return self.get('dateRangeId')

    @date_range_id.setter
    @QueryProperty.setter()
    def date_range_id(self, value):
        self['dateRangeId'] = value

    @property
    @QueryProperty.getter(
        nullable=False,
        default_value='',
        value_validate_function=lambda value: assert_string(value, 'group_by'),
    )
    def group_by(self):
        return self.get('groupBy')

    @group_by.setter
    @QueryProperty.setter()
    def group_by(self, value):
        self['groupBy'] = value
Exemplo n.º 26
0
 def title_font_color(self, value):
     assert_string(value, 'title_font_color')
     self['titleFontColor'] = value
Exemplo n.º 27
0
class DateRangeSpecification(PythonModel):
    @classmethod
    def registry(cls):
        return DateRangeProperty

    @property
    @DateRangeProperty.getter(
        nullable=False,
        value_validate_function=lambda value: assert_string(value, 'id'))
    def id(self):
        return self.get('id')

    @id.setter
    @DateRangeProperty.setter()
    def id(self, value):
        self['id'] = value

    @property
    @DateRangeProperty.getter(
        nullable=False,
        value_validate_function=lambda value: assert_enum(
            value, DateRangeType, argument_name='date_type'),
        value_formatter_function=lambda value: value.name,
    )
    def date_type(self):
        return self.get('dateType')

    @date_type.setter
    @DateRangeProperty.setter(value_parser_function=deserialize_date_range)
    def date_type(self, value):
        self['dateType'] = value

    @property
    @DateRangeProperty.getter(
        nullable=False,
        value_validate_function=lambda value: assert_datetime(
            value, 'end_date'),
        value_formatter_function=stringify_datetime,
    )
    def end_date(self):
        return self.get('endDate')

    @end_date.setter
    @DateRangeProperty.setter(value_parser_function=convert_datetime)
    def end_date(self, value):
        start_date = self.get('startDate')
        assert_datetime(value, 'end_date', start_date)
        self['endDate'] = value

    @property
    @DateRangeProperty.getter(
        nullable=False,
        value_validate_function=lambda value: assert_datetime(
            value, 'start_date'),
        value_formatter_function=stringify_datetime,
    )
    def start_date(self):
        return self.get('startDate')

    @start_date.setter
    @DateRangeProperty.setter(value_parser_function=convert_datetime)
    def start_date(self, value):
        end_date = self.get('endDate')
        assert_datetime(value, 'start_date', upper_bound=end_date)
        self['startDate'] = value
Exemplo n.º 28
0
 def title_font_family(self, value):
     assert_string(value, 'title_font_family')
     self['titleFontFamily'] = value
Exemplo n.º 29
0
class AdvancedFieldDefinition(PythonModel):
    @classmethod
    def registry(cls):
        return AdvancedFieldProperty

    @property
    @AdvancedFieldProperty.getter(
        nullable=False,
        value_validate_function=lambda value: assert_mapping(
            value, 'calculation'),
    )
    def calculation(self):
        return self.get('calculation')

    @calculation.setter
    @AdvancedFieldProperty.setter()
    def calculation(self, value):
        self['calculation'] = value

    @property
    @AdvancedFieldProperty.getter(
        nullable=False,
        value_validate_function=lambda value: assert_mapping(
            value, 'category'),
    )
    def category(self):
        return self.get('category')

    @category.setter
    @AdvancedFieldProperty.setter()
    def category(self, value):
        self['category'] = value

    @property
    @AdvancedFieldProperty.getter(
        nullable=False,
        value_validate_function=lambda value: assert_string(
            value, 'canonicalName'),
    )
    def canonical_name(self):
        return self.get('canonicalName')

    @canonical_name.setter
    @AdvancedFieldProperty.setter()
    def canonical_name(self, value):
        self['canonicalName'] = value

    @property
    @AdvancedFieldProperty.getter(
        nullable=False,
        value_validate_function=lambda value: assert_string(value, 'id'))
    def id(self):
        return self.get('id')

    @id.setter
    @AdvancedFieldProperty.setter()
    def id(self, value):
        self['id'] = value

    @property
    @AdvancedFieldProperty.getter(
        nullable=False,
        value_validate_function=lambda value: assert_string(
            value, 'shortName'),
    )
    def short_name(self):
        return self.get('shortName')

    @short_name.setter
    @AdvancedFieldProperty.setter()
    def short_name(self, value):
        self['shortName'] = value

    @property
    @AdvancedFieldProperty.getter(
        nullable=False,
        value_validate_function=lambda value: assert_mapping(value, 'source'),
    )
    def source(self):
        return self.get('source')

    @source.setter
    @AdvancedFieldProperty.setter()
    def source(self, value):
        self['source'] = value

    @property
    @AdvancedFieldProperty.getter(
        nullable=False,
        default_value='',
        value_validate_function=lambda value: assert_string(
            value, 'description'),
    )
    def description(self):
        return self.get('description')

    @description.setter
    @AdvancedFieldProperty.setter()
    def description(self, value):
        self['description'] = value

    @property
    @AdvancedFieldProperty.getter(
        nullable=False,
        default_value='',
        value_validate_function=lambda value: assert_string(value, 'label'),
    )
    def label(self):
        return self.get('label')

    @label.setter
    @AdvancedFieldProperty.setter()
    def label(self, value):
        self['label'] = value
Exemplo n.º 30
0
 def labels_font_color(self, value):
     assert_string(value, 'labels_font_color')
     self['labelsFontColor'] = value