Skip to content

Module zillion.field

AdHocDimension

Bases: zillion.field.AdHocField

class zillion.field.AdHocDimension(name, formula, **kwargs)

An AdHoc representation of a Dimension

copy(self)

Copy this field

create(obj)

Copy this AdHocField

from_config(config)

Create a the object from a config

get_all_raw_fields(self, warehouse, adhoc_fms=None)

Get all raw fields involved in calculating this field.

Parameters:

  • warehouse - (Warehouse) A zillion warehouse that will contain all relevant fields
  • adhoc_fms - (list, optional) A list of FieldManagers

Returns:

(set) - The set of all raw fields that make up this field.

get_ds_expression(self, *args, **kwargs)

Raise an error if called on FormulaFields

get_final_select_clause(self, warehouse, adhoc_fms=None)

Get a SQL select clause for this formula

Parameters:

  • warehouse - (Warehouse) A zillion warehouse that will contain all relevant fields
  • adhoc_fms - (list, optional) A list of FieldManagers

Returns:

(SQLAlchemy clause) - A compiled sqlalchemy clause for the formula

get_formula_fields(self, warehouse, depth=0, adhoc_fms=None)

Get the fields that are part of this field's formula

Parameters:

  • warehouse - (Warehouse) A zillion warehouse that will contain all relevant fields
  • depth - (int, optional) Track the depth of recursion into the formula
  • adhoc_fms - (list, optional) A list of FieldManagers

Returns:

(set, str) - The set of all base fields involved in the formula calculation, as well as an expanded version of the formula. All fields in the expanded formula should be raw fields (i.e. not formula fields).

to_config(self)

Get the config for this object

AdHocField

Bases: zillion.field.FormulaField

class zillion.field.AdHocField(name, formula, **kwargs)

An AdHoc representation of a field

copy(self)

Copy this field

create(obj)

Copy this AdHocField

from_config(config)

Create a the object from a config

get_all_raw_fields(self, warehouse, adhoc_fms=None)

Get all raw fields involved in calculating this field.

Parameters:

  • warehouse - (Warehouse) A zillion warehouse that will contain all relevant fields
  • adhoc_fms - (list, optional) A list of FieldManagers

Returns:

(set) - The set of all raw fields that make up this field.

get_ds_expression(self, *args, **kwargs)

Raise an error if called on FormulaFields

get_final_select_clause(self, warehouse, adhoc_fms=None)

Get a SQL select clause for this formula

Parameters:

  • warehouse - (Warehouse) A zillion warehouse that will contain all relevant fields
  • adhoc_fms - (list, optional) A list of FieldManagers

Returns:

(SQLAlchemy clause) - A compiled sqlalchemy clause for the formula

get_formula_fields(self, warehouse, depth=0, adhoc_fms=None)

Get the fields that are part of this field's formula

Parameters:

  • warehouse - (Warehouse) A zillion warehouse that will contain all relevant fields
  • depth - (int, optional) Track the depth of recursion into the formula
  • adhoc_fms - (list, optional) A list of FieldManagers

Returns:

(set, str) - The set of all base fields involved in the formula calculation, as well as an expanded version of the formula. All fields in the expanded formula should be raw fields (i.e. not formula fields).

to_config(self)

Get the config for this object

AdHocMetric

Bases: zillion.field.FormulaMetric

class zillion.field.AdHocMetric(name, formula, display_name=None, description=None, meta=None, aggregation='sum', technical=None, rounding=None, weighting_metric=None, required_grain=None)

An AdHoc representation of a Metric

Parameters:

  • name - (str) The name of the metric
  • formula - (str) The formula used to calculate the metric
  • display_name - (str, optional) The display name of the field
  • description - (str, optional) The description of the field
  • meta - (dict, optional) A dict of additional custom attributes
  • aggregation - (str, optional) The AggregationType to apply to the metric
  • technical - (object, optional) A Technical object or definition used to defined a technical computation to be applied to the metric
  • rounding - (int, optional) If specified, the number of decimal places to round to
  • weighting_metric - (str, optional) A reference to a metric to use for weighting when aggregating averages
  • required_grain - (list of str, optional) If specified, a list of dimensions that must be present in the dimension grain of any report that aims to include this metric.
copy(self)

Copy this field

create(obj)

Create an AdHocMetric from an AdHocMetricSchema dict

from_config(config)

Create a the object from a config

get_all_raw_fields(self, warehouse, adhoc_fms=None)

Get all raw fields involved in calculating this field.

Parameters:

  • warehouse - (Warehouse) A zillion warehouse that will contain all relevant fields
  • adhoc_fms - (list, optional) A list of FieldManagers

Returns:

(set) - The set of all raw fields that make up this field.

get_ds_expression(self, *args, **kwargs)

Raise an error if called on FormulaFields

get_final_select_clause(self, warehouse, adhoc_fms=None)

Get a SQL select clause for this formula

Parameters:

  • warehouse - (Warehouse) A zillion warehouse that will contain all relevant fields
  • adhoc_fms - (list, optional) A list of FieldManagers

Returns:

(SQLAlchemy clause) - A compiled sqlalchemy clause for the formula

get_formula_fields(self, warehouse, depth=0, adhoc_fms=None)

Get the fields that are part of this field's formula

Parameters:

  • warehouse - (Warehouse) A zillion warehouse that will contain all relevant fields
  • depth - (int, optional) Track the depth of recursion into the formula
  • adhoc_fms - (list, optional) A list of FieldManagers

Returns:

(set, str) - The set of all base fields involved in the formula calculation, as well as an expanded version of the formula. All fields in the expanded formula should be raw fields (i.e. not formula fields).

to_config(self)

Get the config for this object

Dimension

Bases: zillion.field.Field

class zillion.field.Dimension(name, type, display_name=None, description=None, values=None, sorter=None, meta=None, **kwargs)

Fields that represent attributes of data that are used for grouping or filtering

Parameters:

  • name - (str) The name of the field
  • type - (str or SQLAlchemy type) The column type for the field.
  • display_name - (str, optional) The display name of the field
  • description - (str, optional) The description of the field
  • values - (str or list, optional) A list of allowed dimension values or a name of a callable to provide a list of values
  • sorter - (str, optional) A reference to an importable callable that accepts three arguments: (warehouse ID, dimension object, values). Currently values is a pandas Series and the callable is expected to return a Series. See zillion.field.sort_by_value_order for an example.
  • meta - (dict, optional) A dict of additional custom attributes
  • kwargs - Additional attributes stored on the field object
copy(self)

Copy this field

from_config(config)

Create a the object from a config

get_all_raw_fields(self, warehouse, adhoc_fms=None)

Get all raw fields involved in calculating this field.

Parameters:

  • warehouse - (Warehouse) A zillion warehouse that will contain all relevant fields
  • adhoc_fms - (list, optional) A list of FieldManagers

Returns:

(set) - The set of all raw fields that make up this field.

get_ds_expression(self, column, label=True, ignore_formula=False)

Get the datasource-level sql expression for this field

Parameters:

  • column - (Column) A SQLAlchemy column that supports this field
  • label - (bool, optional) If true, label the expression with the field name
  • ignore_formula - (bool, optional) If true, don't apply any available datasource formulas
get_final_select_clause(self, *args, **kwargs)

The sql clause used when selecting at the combined query layer

get_formula_fields(self, warehouse, depth=0, adhoc_fms=None)

Get the fields that are part of this field's formula

Parameters:

  • warehouse - (Warehouse) A zillion warehouse that will contain all relevant fields
  • depth - (int, optional) Track the depth of recursion into the formula
  • adhoc_fms - (list, optional) A list of FieldManagers

Returns:

(set, str) - The set of all base fields involved in the formula calculation, as well as an expanded version of the formula. All fields in the expanded formula should be raw fields (i.e. not formula fields).

get_values(self, warehouse_id, refresh=False)

Get allowed values for this Dimension

Parameters:

  • warehouse_id - (int) A zillion warehouse ID
  • refresh - (bool, optional) Refresh the values if applicable

Returns:

(list or None) - A list of valid values or None if no value restrictions have been set.

is_valid_value(self, warehouse_id, value, ignore_none=True)

Check if a value is allowed for this Dimension

Parameters:

  • warehouse_id - (int) A zillion warehouse ID
  • value - (any) Check if this value is valid
  • ignore_none - (bool) If True, consider value=None to always be valid.

Returns:

(bool) - True if the dimension value is valid

sort(self, warehouse_id, values)

Sort the given dimension values according to the sorter

Parameters:

  • warehouse_id - (int) A zillion warehouse ID
  • values - (Series) A pandas Series of values to sort

Returns:

(Series) - A pandas Series representing the sort order

to_config(self)

Get the config for this object

Field

Bases: zillion.configs.ConfigMixin, tlbx.logging_utils.PrintMixin

class zillion.field.Field(name, type, display_name=None, description=None, meta=None, **kwargs)

Represents the concept a column is capturing, which may be shared by columns in other tables or datasources. For example, you may have a several columns in your databases/tables that represent the concept of "revenue". In other words, a column is like an instance of a Field.

Parameters:

  • name - (str) The name of the field
  • type - (str or SQLAlchemy type) The column type for the field.
  • display_name - (str, optional) The display name of the field
  • description - (str, optional) The description of the field
  • meta - (dict, optional) A dict of additional custom attributes
  • kwargs - Additional attributes stored on the field object

Attributes:

  • name - (str) The name of the field
  • type - (str) A string representing the generic SQLAlchemy type
  • display_name - (str, optional) The display name of the field
  • description - (str, optional) The description of the field
  • meta - (dict, optional) A dict of additional custom attributes
  • sa_type - (SQLAlchemy type) If a dialect-specific type object is passed in on init it will be coerced to a generic type.
  • field_type - (str) A valid FieldType string
  • schema - (Marshmallow schema) A FieldConfigSchema class
copy(self)

Copy this field

from_config(config)

Create a the object from a config

get_all_raw_fields(self, warehouse, adhoc_fms=None)

Get all raw fields involved in calculating this field.

Parameters:

  • warehouse - (Warehouse) A zillion warehouse that will contain all relevant fields
  • adhoc_fms - (list, optional) A list of FieldManagers

Returns:

(set) - The set of all raw fields that make up this field.

get_ds_expression(self, column, label=True, ignore_formula=False)

Get the datasource-level sql expression for this field

Parameters:

  • column - (Column) A SQLAlchemy column that supports this field
  • label - (bool, optional) If true, label the expression with the field name
  • ignore_formula - (bool, optional) If true, don't apply any available datasource formulas
get_final_select_clause(self, *args, **kwargs)

The sql clause used when selecting at the combined query layer

get_formula_fields(self, warehouse, depth=0, adhoc_fms=None)

Get the fields that are part of this field's formula

Parameters:

  • warehouse - (Warehouse) A zillion warehouse that will contain all relevant fields
  • depth - (int, optional) Track the depth of recursion into the formula
  • adhoc_fms - (list, optional) A list of FieldManagers

Returns:

(set, str) - The set of all base fields involved in the formula calculation, as well as an expanded version of the formula. All fields in the expanded formula should be raw fields (i.e. not formula fields).

to_config(self)

Get the config for this object

FieldManagerMixin

class zillion.field.FieldManagerMixin()

An interface for managing fields (metrics and dimensions) stored on an object.

Attributes:

  • metrics_attr - (str) The name of the attribute where metrics are stored
  • dimensions_attr - (str) The name of the attribute where dimensions are stored
add_dimension(self, dimension, force=False)

Add a reference to a dimension to this FieldManager

add_metric(self, metric, force=False)

Add a reference to a metric to this FieldManager

directly_has_dimension(self, name)

Check if this FieldManager directly stores this dimension

directly_has_field(self, name)

Check if this FieldManager directly stores this field

directly_has_metric(self, name)

Check if this FieldManager directly stores this metric

get_child_field_managers(self)

Get a list of child FieldManagers

get_dimension(self, obj, adhoc_fms=None)

Get a reference to a dimension on this FieldManager

get_dimension_configs(self, adhoc_fms=None)

Get a dict of all dimension configs supported by this FieldManager

get_dimension_names(self, adhoc_fms=None)

Get a set of dimension names supported by this FieldManager

get_dimensions(self, adhoc_fms=None)

Get a dict of all dimensions supported by this FieldManager

get_direct_dimension_configs(self)

Get a dict of dimension configs directly supported by this FieldManager

get_direct_dimensions(self)

Get dimensions directly stored on this FieldManager

get_direct_fields(self)

Get a dict of all fields directly supported by this FieldManager

get_direct_metric_configs(self)

Get a dict of metric configs directly supported by this FieldManager

get_direct_metrics(self)

Get metrics directly stored on this FieldManager

get_field(self, obj, adhoc_fms=None)

Get a refence to a field on this FieldManager

get_field_instances(self, field, adhoc_fms=None)

Get a dict of FieldManagers (including child and adhoc FMs) that support a field

get_field_managers(self, adhoc_fms=None)

Get a list of all child FieldManagers including adhoc

get_field_names(self, adhoc_fms=None)

Get a set of field names supported by this FieldManager

get_fields(self, adhoc_fms=None)

Get a dict of all fields supported by this FieldManager

get_metric(self, obj, adhoc_fms=None)

Get a reference to a metric on this FieldManager. If the object passed is a dict it is expected to define an AdHocMetric.

get_metric_configs(self, adhoc_fms=None)

Get a dict of all metric configs supported by this FieldManager

get_metric_names(self, adhoc_fms=None)

Get a set of metric names supported by this FieldManager

get_metrics(self, adhoc_fms=None)

Get a dict of all metrics supported by this FieldManager

has_dimension(self, name, adhoc_fms=None)

Check whether a dimension is contained in this FieldManager

has_field(self, name, adhoc_fms=None)

Check whether a field is contained in this FieldManager

has_metric(self, name, adhoc_fms=None)

Check whether a metric is contained in this FieldManager

print_dimensions(self, indent=None)

Print all dimensions in this FieldManager

print_metrics(self, indent=None)

Print all metrics in this FieldManager

FormulaDimension

Bases: zillion.field.FormulaField

class zillion.field.FormulaDimension(name, formula, **kwargs)

A dimension defined by a formula

Parameters:

  • name - (str) The name of the dimension
  • formula - (str) The formula used to calculate the dimension
  • kwargs - kwargs passed to super class
copy(self)

Copy this field

from_config(config)

Create a the object from a config

get_all_raw_fields(self, warehouse, adhoc_fms=None)

Get all raw fields involved in calculating this field.

Parameters:

  • warehouse - (Warehouse) A zillion warehouse that will contain all relevant fields
  • adhoc_fms - (list, optional) A list of FieldManagers

Returns:

(set) - The set of all raw fields that make up this field.

get_ds_expression(self, *args, **kwargs)

Raise an error if called on FormulaFields

get_final_select_clause(self, warehouse, adhoc_fms=None)

Get a SQL select clause for this formula

Parameters:

  • warehouse - (Warehouse) A zillion warehouse that will contain all relevant fields
  • adhoc_fms - (list, optional) A list of FieldManagers

Returns:

(SQLAlchemy clause) - A compiled sqlalchemy clause for the formula

get_formula_fields(self, warehouse, depth=0, adhoc_fms=None)

Get the fields that are part of this field's formula

Parameters:

  • warehouse - (Warehouse) A zillion warehouse that will contain all relevant fields
  • depth - (int, optional) Track the depth of recursion into the formula
  • adhoc_fms - (list, optional) A list of FieldManagers

Returns:

(set, str) - The set of all base fields involved in the formula calculation, as well as an expanded version of the formula. All fields in the expanded formula should be raw fields (i.e. not formula fields).

to_config(self)

Get the config for this object

FormulaField

Bases: zillion.field.Field

class zillion.field.FormulaField(name, formula, **kwargs)

A field defined by a formula

Parameters:

  • name - (str) The name of the field
  • formula - (str) The formula used to calculate the field
  • kwargs - kwargs passed to the super class
copy(self)

Copy this field

from_config(config)

Create a the object from a config

get_all_raw_fields(self, warehouse, adhoc_fms=None)

Get all raw fields involved in calculating this field.

Parameters:

  • warehouse - (Warehouse) A zillion warehouse that will contain all relevant fields
  • adhoc_fms - (list, optional) A list of FieldManagers

Returns:

(set) - The set of all raw fields that make up this field.

get_ds_expression(self, *args, **kwargs)

Raise an error if called on FormulaFields

get_final_select_clause(self, warehouse, adhoc_fms=None)

Get a SQL select clause for this formula

Parameters:

  • warehouse - (Warehouse) A zillion warehouse that will contain all relevant fields
  • adhoc_fms - (list, optional) A list of FieldManagers

Returns:

(SQLAlchemy clause) - A compiled sqlalchemy clause for the formula

get_formula_fields(self, warehouse, depth=0, adhoc_fms=None)

Get the fields that are part of this field's formula

Parameters:

  • warehouse - (Warehouse) A zillion warehouse that will contain all relevant fields
  • depth - (int, optional) Track the depth of recursion into the formula
  • adhoc_fms - (list, optional) A list of FieldManagers

Returns:

(set, str) - The set of all base fields involved in the formula calculation, as well as an expanded version of the formula. All fields in the expanded formula should be raw fields (i.e. not formula fields).

to_config(self)

Get the config for this object

FormulaMetric

Bases: zillion.field.FormulaField

class zillion.field.FormulaMetric(name, formula, display_name=None, description=None, meta=None, aggregation='sum', rounding=None, weighting_metric=None, technical=None, required_grain=None, **kwargs)

A metric defined by a formula

Parameters:

  • name - (str) The name of the metric
  • formula - (str) The formula used to calculate the metric
  • display_name - (str, optional) The display name of the field
  • description - (str, optional) The description of the field
  • meta - (dict, optional) A dict of additional custom attributes
  • aggregation - (str, optional) The AggregationType to apply to the metric
  • rounding - (int, optional) If specified, the number of decimal places to round to
  • weighting_metric - (str, optional) A reference to a metric to use for weighting when aggregating averages
  • technical - (object, optional) A Technical object or definition used to defined a technical computation to be applied to the metric
  • required_grain - (list of str, optional) If specified, a list of dimensions that must be present in the dimension grain of any report that aims to include this metric.
  • kwargs - kwargs passed to super class
copy(self)

Copy this field

from_config(config)

Create a the object from a config

get_all_raw_fields(self, warehouse, adhoc_fms=None)

Get all raw fields involved in calculating this field.

Parameters:

  • warehouse - (Warehouse) A zillion warehouse that will contain all relevant fields
  • adhoc_fms - (list, optional) A list of FieldManagers

Returns:

(set) - The set of all raw fields that make up this field.

get_ds_expression(self, *args, **kwargs)

Raise an error if called on FormulaFields

get_final_select_clause(self, warehouse, adhoc_fms=None)

Get a SQL select clause for this formula

Parameters:

  • warehouse - (Warehouse) A zillion warehouse that will contain all relevant fields
  • adhoc_fms - (list, optional) A list of FieldManagers

Returns:

(SQLAlchemy clause) - A compiled sqlalchemy clause for the formula

get_formula_fields(self, warehouse, depth=0, adhoc_fms=None)

Get the fields that are part of this field's formula

Parameters:

  • warehouse - (Warehouse) A zillion warehouse that will contain all relevant fields
  • depth - (int, optional) Track the depth of recursion into the formula
  • adhoc_fms - (list, optional) A list of FieldManagers

Returns:

(set, str) - The set of all base fields involved in the formula calculation, as well as an expanded version of the formula. All fields in the expanded formula should be raw fields (i.e. not formula fields).

to_config(self)

Get the config for this object

Metric

Bases: zillion.field.Field

class zillion.field.Metric(name, type, display_name=None, description=None, meta=None, aggregation='sum', rounding=None, weighting_metric=None, technical=None, required_grain=None, **kwargs)

Fields that represent values to be measured and possibly broken down along Dimensions

Parameters:

  • name - (str) The name of the field
  • type - (str or SQLAlchemy type) The column type for the field
  • display_name - (str, optional) The display name of the field
  • description - (str, optional) The description of the field
  • meta - (dict, optional) A dict of additional custom attributes
  • aggregation - (str, optional) The AggregationType to apply to the metric
  • rounding - (int, optional) If specified, the number of decimal places to round to
  • weighting_metric - (str, optional) A reference to a metric to use for weighting when aggregating averages
  • technical - (object, optional) A Technical object or definition used to defined a technical computation to be applied to the metric
  • required_grain - (list of str, optional) If specified, a list of dimensions that must be present in the dimension grain of any report that aims to include this metric.
  • kwargs - kwargs passed to super class
copy(self)

Copy this field

from_config(config)

Create a the object from a config

get_all_raw_fields(self, warehouse, adhoc_fms=None)

Get all raw fields involved in calculating this field.

Parameters:

  • warehouse - (Warehouse) A zillion warehouse that will contain all relevant fields
  • adhoc_fms - (list, optional) A list of FieldManagers

Returns:

(set) - The set of all raw fields that make up this field.

get_ds_expression(self, column, label=True)

Get the datasource-level sql expression for this metric

Parameters:

  • column - (Column) A SQLAlchemy column that supports this metric
  • label - (bool, optional) If true, label the expression with the field name
get_final_select_clause(self, *args, **kwargs)

The sql clause used when selecting at the combined query layer

get_formula_fields(self, warehouse, depth=0, adhoc_fms=None)

Get the fields that are part of this field's formula

Parameters:

  • warehouse - (Warehouse) A zillion warehouse that will contain all relevant fields
  • depth - (int, optional) Track the depth of recursion into the formula
  • adhoc_fms - (list, optional) A list of FieldManagers

Returns:

(set, str) - The set of all base fields involved in the formula calculation, as well as an expanded version of the formula. All fields in the expanded formula should be raw fields (i.e. not formula fields).

to_config(self)

Get the config for this object

create_dimension

zillion.field.create_dimension(dim_def)

Create a Dimension object from a dict of params

Parameters:

  • dim_def - (dict) A dict of params to init a Dimension

create_metric

zillion.field.create_metric(metric_def)

Create a Metric object from a dict of params

Parameters:

  • metric_def - (dict) A dict of params to init a metric. If a formula param is present a FormulaMetric will be created.

get_conversions_for_type

zillion.field.get_conversions_for_type(coltype)

Get all conversions for a particular column type

Parameters:

  • coltype - A SQLAlchemy column type class

Returns:

(dict) - The conversion map for the given column type. Returns None if no conversions are found.

get_dialect_type_conversions

zillion.field.get_dialect_type_conversions(dialect, column)

Get all conversions supported by this column type for this dialect

Parameters:

  • dialect - (str) SQLAlchemy dialect name
  • column - (Column) SQLAlchemy column object

Returns:

(list) - A list of dicts containing datasource formulas and criteria conversions for each field this column can be converted to

get_table_dimensions

zillion.field.get_table_dimensions(fm, table, adhoc_fms=None)

Get a list of dimensions supported by a table

Parameters:

  • fm - (FieldManager) An object supporting the FieldManager interface
  • table - (SQLAlchemy Table) The table to get a list of supported dimensions for
  • adhoc_fms - (list, optional) AdHoc FieldManagers relevant to this request

Returns:

(set) - A set of dimension names

get_table_field_column

zillion.field.get_table_field_column(table, field_name)

Return the column within a table that supports a given field

Parameters:

  • table - (Table) SQLAlchemy table onject
  • field_name - (str) The name of a field supported by the table

Returns:

(Column) - A SQLAlchemy column object

get_table_fields

zillion.field.get_table_fields(table)

Get a list of field names supported by a table

Parameters:

  • table - (SQLAlchemy Table) The table to get a list of supported fields for

Returns:

(set) - A set of field names

get_table_metrics

zillion.field.get_table_metrics(fm, table, adhoc_fms=None)

Get a list of metrics supported by a table

Parameters:

  • fm - (FieldManager) An object supporting the FieldManager interface
  • table - (SQLAlchemy Table) The table to get a list of supported dimensions for
  • adhoc_fms - (list, optional) AdHoc FieldManagers relevant to this request

Returns:

(set) - A set of metric names

replace_non_named_formula_args

zillion.field.replace_non_named_formula_args(formula, column)

Do formula arg replacement but raise an error if any named args are present

sort_by_value_order

zillion.field.sort_by_value_order(warehouse_id, field, values)

Sort values by the order of the value list defined on the field

Parameters:

  • warehouse_id - (int) A zillion warehouse ID
  • field - (Field) A zillion Field object
  • values - (Series) A pandas Series to sort

Returns:

(Series) - A pandas Series representing the sort order. If no value list is found for the field, the input values are returned as is.

table_field_allows_grain

zillion.field.table_field_allows_grain(table, field, grain)

Check whether a field in a table is restricted by required_grain

Parameters:

  • table - (Table) SQLAlchemy table object
  • field - (str) The name of a field in the table
  • grain - (list of str) A list of dimenssions that form the target grain

values_from_db

zillion.field.values_from_db(warehouse_id, field)

Get allowed field values from the dimension_values table. If warehouse_id is None the warehouse_id is defaulted to the value of zillion.field.FIELD_VALUE_DEFAULT_WAREHOUSE_ID. This allows pulling dimension values even when a Warehouse has not been saved.

Parameters:

  • warehouse_id - (int) A zillion warehouse ID
  • field - (Field) A zillion Dimension object

Returns:

(list or None) - A list of valid values or None if no row is found for this dimension.