airflow.providers.fab.www.utils

Classes

UtcAwareFilterMixin

Mixin for filter for UTC time.

FilterIsNull

Is null filter.

FilterIsNotNull

Is not null filter.

FilterGreaterOrEqual

Greater than or Equal filter.

FilterSmallerOrEqual

Smaller than or Equal filter.

UtcAwareFilterSmallerOrEqual

Smaller than or Equal filter for UTC time.

UtcAwareFilterGreaterOrEqual

Greater than or Equal filter for UTC time.

UtcAwareFilterEqual

Equality filter for UTC time.

UtcAwareFilterGreater

Greater Than filter for UTC time.

UtcAwareFilterSmaller

Smaller Than filter for UTC time.

UtcAwareFilterNotEqual

Not Equal To filter for UTC time.

AirflowFilterConverter

Retrieve conversion tables for Airflow-specific filters.

CustomSQLAInterface

FAB does not know how to handle columns with leading underscores because they are not supported by WTForm.

Module Contents

class airflow.providers.fab.www.utils.UtcAwareFilterMixin[source]

Mixin for filter for UTC time.

apply(query, value)[source]

Apply the filter.

class airflow.providers.fab.www.utils.FilterIsNull(column_name, datamodel, is_related_view=False)[source]

Bases: flask_appbuilder.models.filters.BaseFilter

Is null filter.

name[source]
arg_name = 'emp'[source]

the request argument that represent the filter child Filter classes should set it to enable REST API use

apply(query, value)[source]

Override this to implement your own new filters

class airflow.providers.fab.www.utils.FilterIsNotNull(column_name, datamodel, is_related_view=False)[source]

Bases: flask_appbuilder.models.filters.BaseFilter

Is not null filter.

name[source]
arg_name = 'nemp'[source]

the request argument that represent the filter child Filter classes should set it to enable REST API use

apply(query, value)[source]

Override this to implement your own new filters

class airflow.providers.fab.www.utils.FilterGreaterOrEqual(column_name, datamodel, is_related_view=False)[source]

Bases: flask_appbuilder.models.filters.BaseFilter

Greater than or Equal filter.

name[source]
arg_name = 'gte'[source]

the request argument that represent the filter child Filter classes should set it to enable REST API use

apply(query, value)[source]

Override this to implement your own new filters

class airflow.providers.fab.www.utils.FilterSmallerOrEqual(column_name, datamodel, is_related_view=False)[source]

Bases: flask_appbuilder.models.filters.BaseFilter

Smaller than or Equal filter.

name[source]
arg_name = 'lte'[source]

the request argument that represent the filter child Filter classes should set it to enable REST API use

apply(query, value)[source]

Override this to implement your own new filters

class airflow.providers.fab.www.utils.UtcAwareFilterSmallerOrEqual(column_name, datamodel, is_related_view=False)[source]

Bases: UtcAwareFilterMixin, FilterSmallerOrEqual

Smaller than or Equal filter for UTC time.

class airflow.providers.fab.www.utils.UtcAwareFilterGreaterOrEqual(column_name, datamodel, is_related_view=False)[source]

Bases: UtcAwareFilterMixin, FilterGreaterOrEqual

Greater than or Equal filter for UTC time.

class airflow.providers.fab.www.utils.UtcAwareFilterEqual(column_name, datamodel, is_related_view=False)[source]

Bases: UtcAwareFilterMixin, flask_appbuilder.models.sqla.filters.FilterEqual

Equality filter for UTC time.

class airflow.providers.fab.www.utils.UtcAwareFilterGreater(column_name, datamodel, is_related_view=False)[source]

Bases: UtcAwareFilterMixin, flask_appbuilder.models.sqla.filters.FilterGreater

Greater Than filter for UTC time.

class airflow.providers.fab.www.utils.UtcAwareFilterSmaller(column_name, datamodel, is_related_view=False)[source]

Bases: UtcAwareFilterMixin, flask_appbuilder.models.sqla.filters.FilterSmaller

Smaller Than filter for UTC time.

class airflow.providers.fab.www.utils.UtcAwareFilterNotEqual(column_name, datamodel, is_related_view=False)[source]

Bases: UtcAwareFilterMixin, flask_appbuilder.models.sqla.filters.FilterNotEqual

Not Equal To filter for UTC time.

class airflow.providers.fab.www.utils.AirflowFilterConverter(datamodel)[source]

Bases: flask_appbuilder.models.sqla.filters.SQLAFilterConverter

Retrieve conversion tables for Airflow-specific filters.

conversion_table[source]

When implementing your own filters you just need to define the new filters, and register them overriding this property. This will map a column type to all possible filters. use something like this:

(
    ('is_text', [FilterCustomForText,
             FilterNotContains,
             FilterEqual,
             FilterNotEqual]),
    ('is_string', [FilterContains,
               FilterNotContains,
               FilterEqual,
               FilterNotEqual]),
    ('is_integer', [FilterEqual,
                FilterNotEqual]),
)
class airflow.providers.fab.www.utils.CustomSQLAInterface(obj, session=None)[source]

Bases: flask_appbuilder.models.sqla.interface.SQLAInterface

FAB does not know how to handle columns with leading underscores because they are not supported by WTForm.

This hack will remove the leading ‘_’ from the key to lookup the column names.

is_utcdatetime(col_name)[source]

Check if the datetime is a UTC one.

is_extendedjson(col_name)[source]

Check if it is a special extended JSON type.

is_json(col_name)[source]

Check if it is a JSON type.

get_col_default(col_name)[source]
filter_converter_class[source]

when sub classing override with your own custom filter converter

Was this entry helpful?