chart_me.chart_configs

Defines default Chart Config

Classes

AssembleChartsStrategy

Defines the protocol type for AssembleChartsStrategy

AssembleChartsStrategyDefault

Default implementation of AssembleChartsStrategy

ValidateColumnStrategy

Protocol Definition for ValidateColumnStrategy

ValidateColumnStrategyDefault

Default implentation of ValidateColumnStrategy

InferDataTypeStrategy

Defines protocol for InferDataTypeStrategy - requires infer_datatypes

InferDataTypeStrategyDefault

Default logic to specificy metadata to drive chart assembly logic

ChartConfig

Default Instance of Chart Config

Module Contents

class chart_me.chart_configs.AssembleChartsStrategy[source]

Bases: Protocol

Defines the protocol type for AssembleChartsStrategy

Protocal requires 1 method — assemble_charts

assemble_charts() List[altair.Chart | altair.HConcatChart][source]

Defines Protocal Type for AssembleChartsStrategy

Parameters:
  • df (pd.DataFrame)

  • cols (List[str]) – at least 1 and no more then 2 at this time

  • infered_data_types (InferedDataTypes) – metadata required to guide viz logic

Returns:

return a list of Altair visuals

Return type:

List[Union[alt.Chart, alt.HConcatChart]]

class chart_me.chart_configs.AssembleChartsStrategyDefault(df: pandas.DataFrame, cols: List[str], infered_data_types: chart_me.datatype_infer_strategy.InferedDataTypes, **kwargs)[source]

Default implementation of AssembleChartsStrategy

Default implementation strategy provided by chart_me. The core logic is provided by seperate modules depending on number of columns provided - so far 2 are build univariate & bivariate. More then 2 columns will throw an error

assemble_charts() List[altair.Chart | altair.HConcatChart][source]

assembles charts based on columns count

Returns:

A list of Altair Chart/Compound charts to display

Raises:
  • InsufficientValidColumnsError – Will occur if no columns available after removing unsupported types.

  • NotImplementedError – Only support 1 or 2 columns at this time

class chart_me.chart_configs.ValidateColumnStrategy[source]

Bases: Protocol

Protocol Definition for ValidateColumnStrategy

validate_column() bool[source]

Only required method

class chart_me.chart_configs.ValidateColumnStrategyDefault(df: pandas.DataFrame, col: str, *, override_null_rate: float = 0.95)[source]

Default implentation of ValidateColumnStrategy

Class is leverage to evaluate whether column selected is viable for charting

null_rate

A decimal indicating what percent of null entries in column is ok

null_rate: float = 0.95
validate_column() bool[source]

Logic the evaluate column

Returns:

True or Raises an Error #TODO think of better strategy

Raises:
class chart_me.chart_configs.InferDataTypeStrategy[source]

Bases: Protocol

Defines protocol for InferDataTypeStrategy - requires infer_datatypes

abstract infer_datatypes() InferedDataTypes[source]

Only Method Required

class chart_me.chart_configs.InferDataTypeStrategyDefault(df: pandas.DataFrame, cols: List[str], **kwargs)[source]

Default logic to specificy metadata to drive chart assembly logic

_check_if_preaggregated_data(threshold: int = 100)[source]

First check determines aggregation - influences data type

_get_raw_data_infer_type()[source]

Apply some burden on user to setup DF accordingly

_calculate_override_data_infer_type()[source]

Part to is evaluate

_get_data_infer_meta_type_col(col: str)[source]

series of evaluations

_calculate_data_type_meta()[source]

wrapper to iterate over all columns

infer_datatypes() InferedDataTypes[source]

Core function of stategy is returning metadata to rendering engine

Parameters:
  • df (pd.DataFrame) – pandas dataframe

  • cols (List[str]) – list of columns passed in from user

Returns:

describes MetaData to engine

Return type:

InferedDataTypes

class chart_me.chart_configs.ChartConfig[source]

Default Instance of Chart Config

validate_column_strategy: Type[chart_me.data_validation_strategy.ValidateColumnStrategy]
datatype_infer_strategy: Type[chart_me.datatype_infer_strategy.InferDataTypeStrategy]
assemble_charts_strategy: Type[chart_me.charting_assembly_strategy.AssembleChartsStrategy]