fireant.dataset package

Submodules

fireant.dataset.fields module

exception fireant.dataset.fields.DataSetFilterException(msg, allowed)[source]

Bases: Exception

class fireant.dataset.fields.DataType[source]

Bases: enum.Enum

An enumeration.

boolean = 4
date = 1
number = 3
text = 2
class fireant.dataset.fields.Field(alias, definition, data_type: fireant.dataset.fields.DataType = number, label=None, hint_table=None, prefix: str = None, suffix: str = None, thousands: str = None, precision: int = None, hyperlink_template: str = None)[source]

Bases: object

The Field class represents a field in the DataSet object. A field is a mapping to a column in a database query.

Parameters:
  • alias – A unique identifier used to identify the metric when writing slicer queries. This value must be unique over the metrics in the slicer.
  • definition – A pypika expression which is used to select the value when building SQL queries. For metrics, this query must be aggregated, since queries always use a GROUP BY clause an metrics are not used as a group.
  • data_type – {Number, Text, Boolean, Date} When True, the field’s definition should be treated as an aggregate expression.
  • label – (optional) A display value used for the metric. This is used for rendering the labels within the visualizations. If not set, the alias will be used as the default.
  • hint_table – (optional) An optional table for fetching field choices. If this table is not set, the base table from the field definition will be used.
  • is_aggregate – (default: False) When True, the field’s definition should be treated as an aggregate expression.
  • precision – (optional) A precision value for rounding decimals. By default, no rounding will be applied.
  • prefix – (optional) A prefix for rendering labels in visualizations such as ‘$’
  • suffix – A suffix for rendering labels in visualizations such as ‘€’
between(lower, upper)[source]

Creates a filter to filter a slicer query.

Parameters:
  • lower – The start time of the filter. This is the beginning of the window for which results should be included.
  • upper – The stop time of the filter. This is the end of the window for which results should be included.
Returns:

A slicer query filter used to filter a slicer query to results where this dimension is between the values start and stop.

eq(other)[source]
ge(other)[source]
gt(other)[source]
is_(value: bool)[source]

Creates a filter to filter a slicer query.

Parameters:value – True or False
Returns:A slicer query filter used to filter a slicer query to results where this dimension is True or False.
isin(values: collections.abc.Iterable)[source]

Creates a filter that filters to rows where

Parameters:values – An iterable of value to constrain the slicer query results by.
Returns:A slicer query filter used to filter a slicer query to results where this dimension is one of a set of values. Opposite of #notin.
le(other)[source]
like(pattern, *patterns)[source]
lt(other)[source]
ne(other)[source]
not_like(pattern, *patterns)[source]
notin(values)[source]

Creates a filter to filter a slicer query.

Parameters:values – An iterable of value to constrain the slicer query results by.
Returns:A slicer query filter used to filter a slicer query to results where this dimension is not one of a set of values. Opposite of #isin.
share
Parameters:mutate – When True, overrides the immutable behavior of this decorator.
void()[source]
fireant.dataset.fields.restrict_types(allowed)[source]

fireant.dataset.filters module

class fireant.dataset.filters.AntiPatternFilter(field_alias, dimension_definition, pattern, *patterns)[source]

Bases: fireant.dataset.filters.PatternFilter

class fireant.dataset.filters.BooleanFilter(field_alias, dimension_definition, value)[source]

Bases: fireant.dataset.filters.Filter

class fireant.dataset.filters.ComparatorFilter(field_alias, metric_definition, operator, value)[source]

Bases: fireant.dataset.filters.Filter

class Operator[source]

Bases: object

eq = 'eq'
gt = 'gt'
gte = 'gte'
lt = 'lt'
lte = 'lte'
ne = 'ne'
class fireant.dataset.filters.ContainsFilter(field_alias, dimension_definition, values)[source]

Bases: fireant.dataset.filters.Filter

class fireant.dataset.filters.ExcludesFilter(field_alias, dimension_definition, values)[source]

Bases: fireant.dataset.filters.Filter

class fireant.dataset.filters.Filter(field_alias, definition)[source]

Bases: object

is_aggregate
class fireant.dataset.filters.PatternFilter(field_alias, dimension_definition, pattern, *patterns)[source]

Bases: fireant.dataset.filters.Filter

class fireant.dataset.filters.RangeFilter(field_alias, dimension_definition, start, stop)[source]

Bases: fireant.dataset.filters.Filter

class fireant.dataset.filters.VoidFilter(field_alias)[source]

Bases: fireant.dataset.filters.Filter

fireant.dataset.intervals module

class fireant.dataset.intervals.DatetimeInterval(dimension, interval_key)[source]

Bases: fireant.dataset.modifiers.DimensionModifier

class fireant.dataset.intervals.NumericInterval(dimension, size=1, offset=0)[source]

Bases: fireant.dataset.modifiers.DimensionModifier

fireant.dataset.joins module

class fireant.dataset.joins.Join(table, criterion, join_type=<JoinType.inner: ''>)[source]

Bases: object

WRITEME

fireant.dataset.klass module

class fireant.dataset.klass.DataSet(table, database, joins=(), fields=(), always_query_all_metrics=False)[source]

Bases: object

WRITEME

class Fields(items)[source]

Bases: fireant.dataset.klass._Container

fireant.dataset.modifiers module

class fireant.dataset.modifiers.DimensionModifier(wrapped)[source]

Bases: fireant.dataset.modifiers.Modifier

wrapped_key = 'dimension'
class fireant.dataset.modifiers.FilterModifier(wrapped)[source]

Bases: fireant.dataset.modifiers.Modifier

wrapped_key = 'filter'
class fireant.dataset.modifiers.Modifier(wrapped)[source]

Bases: object

wrapped_key = 'wrapped'
class fireant.dataset.modifiers.OmitFromRollup(wrapped)[source]

Bases: fireant.dataset.modifiers.FilterModifier

class fireant.dataset.modifiers.Rollup(wrapped)[source]

Bases: fireant.dataset.modifiers.DimensionModifier

definition

fireant.dataset.operations module

class fireant.dataset.operations.CumMean(arg)[source]

Bases: fireant.dataset.operations._Cumulative

apply(data_frame, reference)[source]
static cummean(x)[source]
class fireant.dataset.operations.CumProd(arg)[source]

Bases: fireant.dataset.operations._Cumulative

apply(data_frame, reference)[source]
class fireant.dataset.operations.CumSum(arg)[source]

Bases: fireant.dataset.operations._Cumulative

apply(data_frame, reference)[source]
class fireant.dataset.operations.Operation[source]

Bases: object

The Operation class represents an operation in the Slicer API.

apply(data_frame, reference)[source]
metrics
operations
class fireant.dataset.operations.RollingMean(arg, window, min_periods=None)[source]

Bases: fireant.dataset.operations.RollingOperation

apply(data_frame, reference)[source]
rolling_mean(x)[source]
class fireant.dataset.operations.RollingOperation(arg, window, min_periods=None)[source]

Bases: fireant.dataset.operations._BaseOperation

apply(data_frame, reference)[source]
class fireant.dataset.operations.Share(metric: fireant.dataset.fields.Field, over: fireant.dataset.fields.Field = None, precision=2)[source]

Bases: fireant.dataset.operations._BaseOperation

apply(data_frame, reference)[source]
metric
metrics
over

fireant.dataset.references module

class fireant.dataset.references.Reference(field, reference_type, delta=False, delta_percent=False)[source]

Bases: object

class fireant.dataset.references.ReferenceType(alias, label, time_unit: str, interval: int)[source]

Bases: object

fireant.dataset.references.reference_term(reference: fireant.dataset.references.Reference, original_query: pypika.queries.QueryBuilder, ref_query: pypika.queries.QueryBuilder)[source]

Part of query building. Given a reference, the original slicer query, and the ref query, creates the pypika for the reference that should be selected in the reference container query.

Parameters:
  • reference
  • original_query
  • ref_query
Returns:

fireant.dataset.totals module

fireant.dataset.totals.get_totals_marker_for_dtype(dtype)[source]

For a given dtype, return the index value to use to indicate that the data frame row contains totals.

Parameters:dtype
Returns:
fireant.dataset.totals.scrub_totals_from_share_results(data_frame, dimensions)[source]

This function returns a data frame with the values for dimension totals filtered out if the corresponding dimension was not queried with rollup. This comes into play when the share operation is used on metrics which requires the totals across the values.

There are two different logical branches for this function that perform the same work, one on a single-level index data frame and another for a multi-level index.

Parameters:
  • data_frame – The result data set.
  • dimensions – A list of dimensions that were queried for to produce the result data set.
Returns:

The data frame with totals rows removed for dimensions that were not queried with rollup.