fireant.slicer package

Submodules

fireant.slicer.base module

class fireant.slicer.base.SlicerElement(key, label=None, definition=None, display_definition=None)[source]

Bases: object

The SlicerElement class represents an element of the slicer, either a metric or dimension, which contains information about such as how to query it from the database.

has_display_field

fireant.slicer.dimensions module

class fireant.slicer.dimensions.BooleanDimension(key, label=None, definition=None, hyperlink_template=None)[source]

Bases: fireant.slicer.dimensions.Dimension

This is a dimension that represents a boolean true/false value. The expression should always result in a boolean value.

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.
class fireant.slicer.dimensions.CategoricalDimension(key, label=None, definition=None, hyperlink_template=None, display_values=())[source]

Bases: fireant.slicer.dimensions.PatternFilterableMixin, fireant.slicer.dimensions.Dimension

This is a dimension that represents an enum-like database field, with a finite list of options to chose from. It provides support for configuring a display value for each of the possible values.

isin(values: Iterable)[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 one of a set of values. Opposite of #notin.
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.
class fireant.slicer.dimensions.ContinuousDimension(key, label=None, definition=None, hyperlink_template=None, default_interval=NumericInterval(size=1, offset=0))[source]

Bases: fireant.slicer.dimensions.Dimension

This is a dimension that represents a field in the database which is a continuous value, such as a decimal, integer, or date/time. It requires the use of an interval which is the window over the values.

class fireant.slicer.dimensions.DatetimeDimension(key, label=None, definition=None, hyperlink_template=None, default_interval=DatetimeInterval('day'))[source]

Bases: fireant.slicer.dimensions.ContinuousDimension

A subclass of ContinuousDimension which reflects a date/time data type. Intervals are replaced with time intervals such as daily, weekly, annually, etc. A reference can be used to show a comparison over time such as week-over-week or month-over-month.

between(start, stop)[source]

Creates a filter to filter a slicer query.

Parameters:
  • start – The start time of the filter. This is the beginning of the window for which results should be included.
  • stop – 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.

class fireant.slicer.dimensions.Dimension(key, label=None, definition=None, display_definition=None, hyperlink_template=None)[source]

Bases: fireant.slicer.base.SlicerElement

The Dimension class represents a dimension in the Slicer object.

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.
  • display_definition – A pypika expression which is used to select the display value for this dimension.
  • hyperlink_template – A hyperlink template for constructing a URL that can link a value for a dimension to a web page. This is used by some transformers such as the ReactTable transformer for displaying hyperlinks.
rollup(*args, mutate=False, **kwargs)
Parameters:mutate – When True, overrides the immutable behavior of this decorator.
class fireant.slicer.dimensions.DisplayDimension(dimension)[source]

Bases: fireant.slicer.dimensions._UniqueDimensionBase

WRITEME

class fireant.slicer.dimensions.PatternFilterableMixin[source]

Bases: object

definition = None
key = None
like(pattern, *patterns)[source]

Creates a filter to filter a slicer query.

Parameters:
  • pattern – A pattern to match against the dimension’s display definition. This pattern is used in the SQL query as the LIKE expression.
  • patterns – Additional patterns. This is the same as the pattern argument. The function signature is intended to syntactically require at least one pattern.
Returns:

A slicer query filter used to filter a slicer query to results where this dimension’s display definition matches the pattern.

not_like(pattern, *patterns)[source]

Creates a filter to filter a slicer query.

Parameters:
  • pattern – A pattern to match against the dimension’s display definition. This pattern is used in the SQL query as the NOT LIKE expression.
  • patterns – Additional patterns. This is the same as the pattern argument. The function signature is intended to syntactically require at least one pattern.
Returns:

A slicer query filter used to filter a slicer query to results where this dimension’s display definition matches the pattern.

pattern_definition_attribute = 'definition'
class fireant.slicer.dimensions.TotalsDimension(dimension)[source]

Bases: fireant.slicer.dimensions.Dimension

class fireant.slicer.dimensions.UniqueDimension(key, label=None, definition=None, display_definition=None, hyperlink_template=None)[source]

Bases: fireant.slicer.dimensions._UniqueDimensionBase

This is a dimension that represents a field in a database which is a unique identifier, such as a primary/foreign key. It provides support for a display value field which is selected and used in the results.

has_display_field
like(pattern, *patterns)[source]

Creates a filter to filter a slicer query.

Parameters:
  • pattern – A pattern to match against the dimension’s display definition. This pattern is used in the SQL query as the LIKE expression.
  • patterns – Additional patterns. This is the same as the pattern argument. The function signature is intended to syntactically require at least one pattern.
Returns:

A slicer query filter used to filter a slicer query to results where this dimension’s display definition matches the pattern.

not_like(pattern, *patterns)[source]

Creates a filter to filter a slicer query.

Parameters:
  • pattern – A pattern to match against the dimension’s display definition. This pattern is used in the SQL query as the NOT LIKE expression.
  • patterns – Additional patterns. This is the same as the pattern argument. The function signature is intended to syntactically require at least one pattern.
Returns:

A slicer query filter used to filter a slicer query to results where this dimension’s display definition matches the pattern.

fireant.slicer.exceptions module

exception fireant.slicer.exceptions.CircularJoinsException[source]

Bases: fireant.slicer.exceptions.SlicerException

exception fireant.slicer.exceptions.ContinuousDimensionRequiredException[source]

Bases: fireant.slicer.exceptions.SlicerException

exception fireant.slicer.exceptions.MetricRequiredException[source]

Bases: fireant.slicer.exceptions.SlicerException

exception fireant.slicer.exceptions.MissingTableJoinException[source]

Bases: fireant.slicer.exceptions.SlicerException

exception fireant.slicer.exceptions.MissingTotalsForShareException[source]

Bases: Exception

exception fireant.slicer.exceptions.QueryException[source]

Bases: fireant.slicer.exceptions.SlicerException

exception fireant.slicer.exceptions.RollupException[source]

Bases: fireant.slicer.exceptions.SlicerException

exception fireant.slicer.exceptions.SlicerException[source]

Bases: Exception

fireant.slicer.filters module

class fireant.slicer.filters.AntiPatternFilter(dimension_key, dimension_definition, pattern, *patterns)[source]

Bases: fireant.slicer.filters.PatternFilter

class fireant.slicer.filters.BooleanFilter(dimension_key, dimension_definition, value)[source]

Bases: fireant.slicer.filters.DimensionFilter

class fireant.slicer.filters.ComparatorFilter(metric_key, metric_definition, operator, value)[source]

Bases: fireant.slicer.filters.MetricFilter

class Operator[source]

Bases: object

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

Bases: fireant.slicer.filters.DimensionFilter

class fireant.slicer.filters.DimensionFilter(dimension_key, definition)[source]

Bases: fireant.slicer.filters.Filter

class fireant.slicer.filters.ExcludesFilter(dimension_key, dimension_definition, values)[source]

Bases: fireant.slicer.filters.DimensionFilter

class fireant.slicer.filters.Filter(definition)[source]

Bases: object

class fireant.slicer.filters.MetricFilter(metric_key, definition)[source]

Bases: fireant.slicer.filters.Filter

class fireant.slicer.filters.PatternFilter(dimension_key, dimension_definition, pattern, *patterns)[source]

Bases: fireant.slicer.filters.DimensionFilter

class fireant.slicer.filters.RangeFilter(dimension_key, dimension_definition, start, stop)[source]

Bases: fireant.slicer.filters.DimensionFilter

fireant.slicer.intervals module

class fireant.slicer.intervals.DatetimeInterval(key)[source]

Bases: object

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

Bases: object

fireant.slicer.joins module

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

Bases: object

WRITEME

fireant.slicer.metrics module

class fireant.slicer.metrics.Metric(key, definition, label=None, precision=None, prefix=None, suffix=None)[source]

Bases: fireant.slicer.base.SlicerElement

The Metric class represents a metric in the Slicer object.

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.
  • 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.
  • 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 ‘€’
share
Parameters:mutate – When True, overrides the immutable behavior of this decorator.

fireant.slicer.operations module

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

Bases: fireant.slicer.operations._Cumulative

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

Bases: fireant.slicer.operations._Cumulative

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

Bases: fireant.slicer.operations._Cumulative

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

Bases: object

The Operation class represents an operation in the Slicer API.

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

Bases: fireant.slicer.operations.RollingOperation

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

Bases: fireant.slicer.operations._BaseOperation

apply(data_frame, reference)[source]
metrics
operations
class fireant.slicer.operations.Share(metric: fireant.slicer.metrics.Metric, over: fireant.slicer.dimensions.Dimension = None, precision=2)[source]

Bases: fireant.slicer.operations._BaseOperation

apply(data_frame, reference)[source]
metrics
operations

fireant.slicer.references module

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

Bases: object

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

Bases: object

fireant.slicer.references.reference_key(metric, reference)[source]

Format a metric key for a reference.

Returns:A string that is used as the key for a reference metric.
fireant.slicer.references.reference_label(metric, reference)[source]

Format a metric label for a reference.

Returns:A string that is used as the display value for a reference metric.
fireant.slicer.references.reference_prefix(metric, reference)[source]

Return the prefix for a metric displayed for a reference (or no Reference)

Returns:A string that is used as the prefix for a reference metric.
fireant.slicer.references.reference_suffix(metric, reference)[source]

Return the suffix for a metric displayed for a reference (or no Reference)

Returns:A string that is used as the suffix for a reference metric.
fireant.slicer.references.reference_term(reference: fireant.slicer.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.slicer.slicers module

class fireant.slicer.slicers.Slicer(table, database, joins=(), dimensions=(), metrics=(), hint_table=None, always_query_all_metrics=False)[source]

Bases: object

WRITEME

class Dimensions(items)[source]

Bases: fireant.slicer.slicers._Container

class Fields(items)[source]

Bases: fireant.slicer.slicers._Container

class Metrics(items)[source]

Bases: fireant.slicer.slicers._Container

Module contents