Skip to content

arkas.output

arkas.output

Contain data outputs.

arkas.output.AccuracyOutput

Bases: BaseStateOutput[AccuracyState]

Implement the accuracy output.

Parameters:

Name Type Description Default
state AccuracyState

The state containing the ground truth and predicted labels.

required

Example usage:

>>> import numpy as np
>>> from arkas.output import AccuracyOutput
>>> from arkas.state import AccuracyState
>>> output = AccuracyOutput(
...     AccuracyState(
...         y_true=np.array([1, 0, 0, 1, 1]),
...         y_pred=np.array([1, 0, 0, 1, 1]),
...         y_true_name="target",
...         y_pred_name="pred",
...     )
... )
>>> output
AccuracyOutput(
  (state): AccuracyState(y_true=(5,), y_pred=(5,), y_true_name='target', y_pred_name='pred', nan_policy='propagate')
)
>>> output.get_content_generator()
AccuracyContentGenerator(
  (evaluator): AccuracyEvaluator(
      (state): AccuracyState(y_true=(5,), y_pred=(5,), y_true_name='target', y_pred_name='pred', nan_policy='propagate')
    )
)
>>> output.get_evaluator()
AccuracyEvaluator(
  (state): AccuracyState(y_true=(5,), y_pred=(5,), y_true_name='target', y_pred_name='pred', nan_policy='propagate')
)

arkas.output.BalancedAccuracyOutput

Bases: BaseStateOutput[AccuracyState]

Implement the balanced accuracy output.

Parameters:

Name Type Description Default
state AccuracyState

The state containing the ground truth and predicted labels.

required

Example usage:

>>> import numpy as np
>>> from arkas.output import BalancedAccuracyOutput
>>> from arkas.state import AccuracyState
>>> output = BalancedAccuracyOutput(
...     AccuracyState(
...         y_true=np.array([1, 0, 0, 1, 1]),
...         y_pred=np.array([1, 0, 0, 1, 1]),
...         y_true_name="target",
...         y_pred_name="pred",
...     )
... )
>>> output
BalancedAccuracyOutput(
  (state): AccuracyState(y_true=(5,), y_pred=(5,), y_true_name='target', y_pred_name='pred', nan_policy='propagate')
)
>>> output.get_content_generator()
BalancedAccuracyContentGenerator(
  (evaluator): BalancedAccuracyEvaluator(
      (state): AccuracyState(y_true=(5,), y_pred=(5,), y_true_name='target', y_pred_name='pred', nan_policy='propagate')
    )
)
>>> output.get_evaluator()
BalancedAccuracyEvaluator(
  (state): AccuracyState(y_true=(5,), y_pred=(5,), y_true_name='target', y_pred_name='pred', nan_policy='propagate')
)

arkas.output.BaseLazyOutput

Bases: BaseOutput

Define a base class that partially implements the lazy computation logic.

arkas.output.BaseOutput

Bases: ABC

Define the base class to implement an output.

Example usage:

>>> import numpy as np
>>> from arkas.output import AccuracyOutput
>>> from arkas.state import AccuracyState
>>> output = AccuracyOutput(
...     AccuracyState(
...         y_true=np.array([1, 0, 0, 1, 1]),
...         y_pred=np.array([1, 0, 0, 1, 1]),
...         y_true_name="target",
...         y_pred_name="pred",
...     )
... )
>>> output
AccuracyOutput(
  (state): AccuracyState(y_true=(5,), y_pred=(5,), y_true_name='target', y_pred_name='pred', nan_policy='propagate')
)
arkas.output.BaseOutput.compute abstractmethod
compute() -> BaseOutput

Compute the results and return a new ouptut.

Returns:

Type Description
BaseOutput

A new ouptut with the computed results.

Example usage:

>>> import numpy as np
>>> from arkas.output import AccuracyOutput
>>> from arkas.state import AccuracyState
>>> output = AccuracyOutput(
...     AccuracyState(
...         y_true=np.array([1, 0, 0, 1, 1]),
...         y_pred=np.array([1, 0, 0, 1, 1]),
...         y_true_name="target",
...         y_pred_name="pred",
...     )
... )
>>> output
AccuracyOutput(
  (state): AccuracyState(y_true=(5,), y_pred=(5,), y_true_name='target', y_pred_name='pred', nan_policy='propagate')
)
>>> out = output.compute()
>>> out
Output(
  (content): ContentGenerator()
  (evaluator): Evaluator(count=5)
)
arkas.output.BaseOutput.equal abstractmethod
equal(other: Any, equal_nan: bool = False) -> bool

Indicate if two outputs are equal or not.

Parameters:

Name Type Description Default
other Any

The other output to compare.

required
equal_nan bool

Whether to compare NaN's as equal. If True, NaN's in both objects will be considered equal.

False

Returns:

Type Description
bool

True if the two outputs are equal, otherwise False.

Example usage:

>>> import numpy as np
>>> from arkas.output import AccuracyOutput
>>> from arkas.state import AccuracyState
>>> output1 = AccuracyOutput(
...     AccuracyState(
...         y_true=np.array([1, 0, 0, 1, 1]),
...         y_pred=np.array([1, 0, 0, 1, 1]),
...         y_true_name="target",
...         y_pred_name="pred",
...     )
... )
>>> output2 = AccuracyOutput(
...     AccuracyState(
...         y_true=np.array([1, 0, 0, 1, 1]),
...         y_pred=np.array([1, 0, 0, 1, 1]),
...         y_true_name="target",
...         y_pred_name="pred",
...     )
... )
>>> output3 = AccuracyOutput(
...     AccuracyState(
...         y_true=np.array([1, 0, 0, 0, 0]),
...         y_pred=np.array([1, 0, 0, 1, 1]),
...         y_true_name="target",
...         y_pred_name="pred",
...     )
... )
>>> output1.equal(output2)
True
>>> output1.equal(output3)
False
arkas.output.BaseOutput.get_content_generator abstractmethod
get_content_generator(
    lazy: bool = True,
) -> BaseContentGenerator

Get the HTML content generator associated to the output.

Parameters:

Name Type Description Default
lazy bool

If True, it forces the computation of the content, otherwise it returns a content generator object that contains the logic to generate the content.

True

Returns:

Type Description
BaseContentGenerator

The HTML content generator.

Example usage:

>>> import numpy as np
>>> from arkas.output import AccuracyOutput
>>> from arkas.state import AccuracyState
>>> output = AccuracyOutput(
...     AccuracyState(
...         y_true=np.array([1, 0, 0, 1, 1]),
...         y_pred=np.array([1, 0, 0, 1, 1]),
...         y_true_name="target",
...         y_pred_name="pred",
...     )
... )
>>> output.get_content_generator()
AccuracyContentGenerator(
  (evaluator): AccuracyEvaluator(
      (state): AccuracyState(y_true=(5,), y_pred=(5,), y_true_name='target', y_pred_name='pred', nan_policy='propagate')
    )
)
arkas.output.BaseOutput.get_evaluator abstractmethod
get_evaluator(lazy: bool = True) -> BaseEvaluator

Get the evaluator associated to the output.

Parameters:

Name Type Description Default
lazy bool

If True, it forces the computation of the metrics, otherwise it returns an evaluator object that contains the logic to evaluate the metrics.

True

Returns:

Type Description
BaseEvaluator

The evaluator.

Example usage:

>>> import numpy as np
>>> from arkas.output import AccuracyOutput
>>> from arkas.state import AccuracyState
>>> output = AccuracyOutput(
...     AccuracyState(
...         y_true=np.array([1, 0, 0, 1, 1]),
...         y_pred=np.array([1, 0, 0, 1, 1]),
...         y_true_name="target",
...         y_pred_name="pred",
...     )
... )
>>> output.get_evaluator()
AccuracyEvaluator(
  (state): AccuracyState(y_true=(5,), y_pred=(5,), y_true_name='target', y_pred_name='pred', nan_policy='propagate')
)

arkas.output.ColumnCooccurrenceOutput

Bases: BaseStateOutput[ColumnCooccurrenceState]

Implement the pairwise column co-occurrence output.

Parameters:

Name Type Description Default
state ColumnCooccurrenceState

The state with the co-occurrence matrix.

required

Example usage:

>>> import numpy as np
>>> from arkas.output import ColumnCooccurrenceOutput
>>> from arkas.state import ColumnCooccurrenceState
>>> output = ColumnCooccurrenceOutput(
...     ColumnCooccurrenceState(matrix=np.ones((3, 3)), columns=["a", "b", "c"])
... )
>>> output
ColumnCooccurrenceOutput(
  (state): ColumnCooccurrenceState(matrix=(3, 3), figure_config=MatplotlibFigureConfig())
)
>>> output.get_content_generator()
ColumnCooccurrenceContentGenerator(
  (state): ColumnCooccurrenceState(matrix=(3, 3), figure_config=MatplotlibFigureConfig())
)
>>> output.get_evaluator()
ColumnCooccurrenceEvaluator(
  (state): ColumnCooccurrenceState(matrix=(3, 3), figure_config=MatplotlibFigureConfig())
)

arkas.output.ColumnCorrelationOutput

Bases: BaseStateOutput[TargetDataFrameState]

Implement an output to summarize the numeric columns of a DataFrame.

Parameters:

Name Type Description Default
state TargetDataFrameState

The state containing the DataFrame to analyze.

required

Example usage:

>>> import polars as pl
>>> from arkas.output import ColumnCorrelationOutput
>>> from arkas.state import TargetDataFrameState
>>> frame = pl.DataFrame(
...     {
...         "col1": [1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0],
...         "col2": [7.0, 6.0, 5.0, 4.0, 3.0, 2.0, 1.0],
...         "col3": [1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0],
...     },
... )
>>> output = ColumnCorrelationOutput(TargetDataFrameState(frame, target_column="col3"))
>>> output
ColumnCorrelationOutput(
  (state): TargetDataFrameState(dataframe=(7, 3), target_column='col3', nan_policy='propagate', figure_config=MatplotlibFigureConfig())
)
>>> output.get_content_generator()
ColumnCorrelationContentGenerator(
  (evaluator): ColumnCorrelationEvaluator(
      (state): TargetDataFrameState(dataframe=(7, 3), target_column='col3', nan_policy='propagate', figure_config=MatplotlibFigureConfig())
    )
)
>>> output.get_evaluator()
ColumnCorrelationEvaluator(
  (state): TargetDataFrameState(dataframe=(7, 3), target_column='col3', nan_policy='propagate', figure_config=MatplotlibFigureConfig())
)

arkas.output.ContentOutput

Bases: Output

Implement a simple content output.

Parameters:

Name Type Description Default
content str

The HTML content.

required

Example usage:

>>> from arkas.output import ContentOutput
>>> output = ContentOutput("meow")
>>> output
ContentOutput(
  (content): ContentGenerator()
  (evaluator): Evaluator(count=0)
)
>>> output.get_content_generator()
ContentGenerator()
>>> output.get_evaluator()
Evaluator(count=0)

arkas.output.ContinuousSeriesOutput

Bases: BaseStateOutput[SeriesState]

Implement an output to analyze a series with continuous values.

Parameters:

Name Type Description Default
state SeriesState

The state containing the Series to analyze.

required

Example usage:

>>> import polars as pl
>>> from arkas.output import ContinuousSeriesOutput
>>> from arkas.state import SeriesState
>>> output = ContinuousSeriesOutput(SeriesState(pl.Series("col1", [1, 2, 3, 4, 5, 6, 7])))
>>> output
ContinuousSeriesOutput(
  (state): SeriesState(name='col1', values=(7,), figure_config=MatplotlibFigureConfig())
)
>>> output.get_content_generator()
ContinuousSeriesContentGenerator(
  (state): SeriesState(name='col1', values=(7,), figure_config=MatplotlibFigureConfig())
)
>>> output.get_evaluator()
Evaluator(count=0)

arkas.output.CorrelationOutput

Bases: BaseStateOutput[TwoColumnDataFrameState]

Implement an output to summarize the numeric columns of a DataFrame.

Parameters:

Name Type Description Default
state TwoColumnDataFrameState

The state containing the DataFrame to analyze.

required

Example usage:

>>> import polars as pl
>>> from arkas.output import CorrelationOutput
>>> from arkas.state import TwoColumnDataFrameState
>>> frame = pl.DataFrame(
...     {
...         "col1": [1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0],
...         "col2": [7.0, 6.0, 5.0, 4.0, 3.0, 2.0, 1.0],
...     },
... )
>>> output = CorrelationOutput(
...     TwoColumnDataFrameState(frame, column1="col1", column2="col2")
... )
>>> output
CorrelationOutput(
  (state): TwoColumnDataFrameState(dataframe=(7, 2), column1='col1', column2='col2', nan_policy='propagate', figure_config=MatplotlibFigureConfig())
)
>>> output.get_content_generator()
CorrelationContentGenerator(
  (evaluator): CorrelationEvaluator(
      (state): TwoColumnDataFrameState(dataframe=(7, 2), column1='col1', column2='col2', nan_policy='propagate', figure_config=MatplotlibFigureConfig())
    )
  (plotter): CorrelationPlotter(
      (state): TwoColumnDataFrameState(dataframe=(7, 2), column1='col1', column2='col2', nan_policy='propagate', figure_config=MatplotlibFigureConfig())
    )
)
>>> output.get_evaluator()
CorrelationEvaluator(
  (state): TwoColumnDataFrameState(dataframe=(7, 2), column1='col1', column2='col2', nan_policy='propagate', figure_config=MatplotlibFigureConfig())
)

arkas.output.EmptyOutput

Bases: Output

Implement the accuracy output.

Example usage:

>>> from arkas.output import EmptyOutput
>>> output = EmptyOutput()
>>> output
EmptyOutput()
>>> output.get_content_generator()
ContentGenerator()
>>> output.get_evaluator()
Evaluator(count=0)

arkas.output.HexbinColumnOutput

Bases: BaseStateOutput[ScatterDataFrameState]

Implement an output to make a 2D hexagonal binning plot of some columns.

Parameters:

Name Type Description Default
state ScatterDataFrameState

The state containing the DataFrame to analyze.

required

Example usage:

>>> import polars as pl
>>> from arkas.output import HexbinColumnOutput
>>> from arkas.state import ScatterDataFrameState
>>> frame = pl.DataFrame(
...     {
...         "col1": [0, 1, 1, 0],
...         "col2": [0, 1, 0, 1],
...         "col3": [1, 0, 0, 0],
...     },
...     schema={"col1": pl.Int64, "col2": pl.Int64, "col3": pl.Int64},
... )
>>> output = HexbinColumnOutput(ScatterDataFrameState(frame, x="col1", y="col2"))
>>> output
HexbinColumnOutput(
  (state): ScatterDataFrameState(dataframe=(4, 3), x='col1', y='col2', color=None, nan_policy='propagate', figure_config=MatplotlibFigureConfig())
)
>>> output.get_content_generator()
HexbinColumnContentGenerator(
  (state): ScatterDataFrameState(dataframe=(4, 3), x='col1', y='col2', color=None, nan_policy='propagate', figure_config=MatplotlibFigureConfig())
)
>>> output.get_evaluator()
Evaluator(count=0)

arkas.output.NullValueOutput

Bases: BaseStateOutput[NullValueState]

Implement an output to analyze the number of null values per column.

Parameters:

Name Type Description Default
state NullValueState

The state containing the number of null values per column.

required

Example usage:

>>> import numpy as np
>>> from arkas.output import NullValueOutput
>>> from arkas.state import NullValueState
>>> output = NullValueOutput(
...     NullValueState(
...         null_count=np.array([0, 1, 2]),
...         total_count=np.array([5, 5, 5]),
...         columns=["col1", "col2", "col3"],
...     )
... )
>>> output
NullValueOutput(
  (state): NullValueState(num_columns=3, figure_config=MatplotlibFigureConfig())
)
>>> output.get_content_generator()
NullValueContentGenerator(
  (state): NullValueState(num_columns=3, figure_config=MatplotlibFigureConfig())
)
>>> output.get_evaluator()
Evaluator(count=0)

arkas.output.NumericSummaryOutput

Bases: BaseStateOutput[DataFrameState]

Implement an output to summarize the numeric columns of a DataFrame.

Parameters:

Name Type Description Default
state DataFrameState

The state containing the DataFrame to analyze.

required

Example usage:

>>> import polars as pl
>>> from arkas.output import NumericSummaryOutput
>>> from arkas.state import DataFrameState
>>> frame = pl.DataFrame(
...     {
...         "col1": [0, 1, 1, 0, 0, 1, 0],
...         "col2": [0, 1, 0, 1, 0, 1, 0],
...         "col3": [1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0],
...     },
...     schema={"col1": pl.Int64, "col2": pl.Int32, "col3": pl.Float64},
... )
>>> output = NumericSummaryOutput(DataFrameState(frame))
>>> output
NumericSummaryOutput(
  (state): DataFrameState(dataframe=(7, 3), nan_policy='propagate', figure_config=MatplotlibFigureConfig())
)
>>> output.get_content_generator()
NumericSummaryContentGenerator(
  (state): DataFrameState(dataframe=(7, 3), nan_policy='propagate', figure_config=MatplotlibFigureConfig())
)
>>> output.get_evaluator()
NumericStatisticsEvaluator(
  (state): DataFrameState(dataframe=(7, 3), nan_policy='propagate', figure_config=MatplotlibFigureConfig())
)

arkas.output.Output

Bases: BaseLazyOutput

Implement a simple output.

Parameters:

Name Type Description Default
content BaseContentGenerator

The HTML content generator.

required
evaluator BaseEvaluator

The evaluator.

required

Example usage:

>>> from arkas.output import Output
>>> from arkas.content import ContentGenerator
>>> from arkas.evaluator2 import Evaluator
>>> output = Output(content=ContentGenerator("meow"), evaluator=Evaluator())
>>> output
Output(
  (content): ContentGenerator()
  (evaluator): Evaluator(count=0)
)
>>> output.get_content_generator()
ContentGenerator()
>>> output.get_evaluator()
Evaluator(count=0)

arkas.output.OutputDict

Bases: BaseLazyOutput

Implement an output that combines a mapping of output objects into a single output object.

Parameters:

Name Type Description Default
outputs Mapping[str, BaseOutput]

The mapping of output objects to combine.

required

Example usage:

>>> import numpy as np
>>> from arkas.output import OutputDict, Output, AccuracyOutput
>>> from arkas.content import ContentGenerator
>>> from arkas.evaluator2 import Evaluator
>>> from arkas.evaluator2 import AccuracyEvaluator
>>> from arkas.state import AccuracyState
>>> output = OutputDict(
...     {
...         "one": Output(content=ContentGenerator("meow"), evaluator=Evaluator()),
...         "two": AccuracyOutput(
...             AccuracyState(
...                 y_true=np.array([1, 0, 0, 1, 1]),
...                 y_pred=np.array([1, 0, 0, 1, 1]),
...                 y_true_name="target",
...                 y_pred_name="pred",
...             )
...         ),
...     }
... )
>>> output
OutputDict(count=2)
>>> output.get_content_generator()
ContentGeneratorDict(
  (one): ContentGenerator()
  (two): AccuracyContentGenerator(
      (evaluator): AccuracyEvaluator(
          (state): AccuracyState(y_true=(5,), y_pred=(5,), y_true_name='target', y_pred_name='pred', nan_policy='propagate')
        )
    )
)
>>> output.get_evaluator()
EvaluatorDict(
  (one): Evaluator(count=0)
  (two): AccuracyEvaluator(
      (state): AccuracyState(y_true=(5,), y_pred=(5,), y_true_name='target', y_pred_name='pred', nan_policy='propagate')
    )
)

arkas.output.PlotColumnOutput

Bases: BaseStateOutput[DataFrameState]

Implement an output to plot each column of a DataFrame.

Parameters:

Name Type Description Default
state DataFrameState

The state containing the DataFrame to analyze.

required

Example usage:

>>> import polars as pl
>>> from arkas.output import PlotColumnOutput
>>> from arkas.state import DataFrameState
>>> frame = pl.DataFrame(
...     {
...         "col1": [1.2, 4.2, 4.2, 2.2],
...         "col2": [1, 1, 1, 1],
...         "col3": [1, 2, 2, 2],
...     },
...     schema={"col1": pl.Float64, "col2": pl.Int64, "col3": pl.Int64},
... )
>>> output = PlotColumnOutput(DataFrameState(frame))
>>> output
PlotColumnOutput(
  (state): DataFrameState(dataframe=(4, 3), nan_policy='propagate', figure_config=MatplotlibFigureConfig())
)
>>> output.get_content_generator()
PlotColumnContentGenerator(
  (state): DataFrameState(dataframe=(4, 3), nan_policy='propagate', figure_config=MatplotlibFigureConfig())
)
>>> output.get_evaluator()
Evaluator(count=0)

arkas.output.ScatterColumnOutput

Bases: BaseStateOutput[ScatterDataFrameState]

Implement an output to scatter plot some columns.

Parameters:

Name Type Description Default
state ScatterDataFrameState

The state containing the DataFrame to analyze.

required

Example usage:

>>> import polars as pl
>>> from arkas.output import ScatterColumnOutput
>>> from arkas.state import ScatterDataFrameState
>>> frame = pl.DataFrame(
...     {
...         "col1": [0, 1, 1, 0],
...         "col2": [0, 1, 0, 1],
...         "col3": [1, 0, 0, 0],
...     },
...     schema={"col1": pl.Int64, "col2": pl.Int64, "col3": pl.Int64},
... )
>>> output = ScatterColumnOutput(ScatterDataFrameState(frame, x="col1", y="col2"))
>>> output
ScatterColumnOutput(
  (state): ScatterDataFrameState(dataframe=(4, 3), x='col1', y='col2', color=None, nan_policy='propagate', figure_config=MatplotlibFigureConfig())
)
>>> output.get_content_generator()
ScatterColumnContentGenerator(
  (state): ScatterDataFrameState(dataframe=(4, 3), x='col1', y='col2', color=None, nan_policy='propagate', figure_config=MatplotlibFigureConfig())
)
>>> output.get_evaluator()
Evaluator(count=0)

arkas.output.SummaryOutput

Bases: BaseStateOutput[DataFrameState]

Implement the DataFrame summary output.

Parameters:

Name Type Description Default
frame

The DataFrame to analyze.

required
top

The number of most frequent values to show.

required

Example usage:

>>> import polars as pl
>>> from arkas.output import SummaryOutput
>>> from arkas.state import DataFrameState
>>> frame = pl.DataFrame(
...     {
...         "col1": [0, 1, 1, 0, 0, 1, 0],
...         "col2": [0, 1, 0, 1, 0, 1, 0],
...         "col3": [1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0],
...     }
... )
>>> output = SummaryOutput(DataFrameState(frame))
>>> output
SummaryOutput(
  (state): DataFrameState(dataframe=(7, 3), nan_policy='propagate', figure_config=MatplotlibFigureConfig())
)
>>> output.get_content_generator()
SummaryContentGenerator(
  (state): DataFrameState(dataframe=(7, 3), nan_policy='propagate', figure_config=MatplotlibFigureConfig())
)
>>> output.get_evaluator()
Evaluator(count=0)

arkas.output.TemporalContinuousColumnOutput

Bases: BaseStateOutput[TemporalColumnState]

Implement an output to analyze a column with continuous values.

Parameters:

Name Type Description Default
state TemporalColumnState

The state containing the column to analyze.

required

Example usage:

>>> from datetime import datetime, timezone
>>> import polars as pl
>>> from arkas.output import TemporalContinuousColumnOutput
>>> from arkas.state import TemporalColumnState
>>> frame = pl.DataFrame(
...     {
...         "col1": [0, 1, 0, 1],
...         "col2": [0, 1, 2, 3],
...         "datetime": [
...             datetime(year=2020, month=1, day=3, tzinfo=timezone.utc),
...             datetime(year=2020, month=2, day=3, tzinfo=timezone.utc),
...             datetime(year=2020, month=3, day=3, tzinfo=timezone.utc),
...             datetime(year=2020, month=4, day=3, tzinfo=timezone.utc),
...         ],
...     },
...     schema={
...         "col1": pl.Int64,
...         "col2": pl.Int64,
...         "datetime": pl.Datetime(time_unit="us", time_zone="UTC"),
...     },
... )
>>> output = TemporalContinuousColumnOutput(
...     TemporalColumnState(frame, target_column="col2", temporal_column="datetime")
... )
>>> output
TemporalContinuousColumnOutput(
  (state): TemporalColumnState(dataframe=(4, 3), target_column='col2', temporal_column='datetime', period=None, nan_policy='propagate', figure_config=MatplotlibFigureConfig())
)
>>> output.get_content_generator()
TemporalContinuousColumnContentGenerator(
  (state): TemporalColumnState(dataframe=(4, 3), target_column='col2', temporal_column='datetime', period=None, nan_policy='propagate', figure_config=MatplotlibFigureConfig())
)
>>> output.get_evaluator()
Evaluator(count=0)

arkas.output.TemporalNullValueOutput

Bases: BaseStateOutput[TemporalDataFrameState]

Implement an output to analyze the number of null values in a DataFrame.

Parameters:

Name Type Description Default
state TemporalDataFrameState

The state containing the DataFrame to analyze.

required

Example usage:

>>> from datetime import datetime, timezone
>>> import polars as pl
>>> from arkas.output import TemporalNullValueOutput
>>> from arkas.state import TemporalDataFrameState
>>> frame = pl.DataFrame(
...     {
...         "col1": [0, 1, 1, 0],
...         "col2": [0, 1, 0, 1],
...         "col3": [1, 0, 0, 0],
...         "datetime": [
...             datetime(year=2020, month=1, day=3, tzinfo=timezone.utc),
...             datetime(year=2020, month=2, day=3, tzinfo=timezone.utc),
...             datetime(year=2020, month=3, day=3, tzinfo=timezone.utc),
...             datetime(year=2020, month=4, day=3, tzinfo=timezone.utc),
...         ],
...     },
...     schema={
...         "col1": pl.Int64,
...         "col2": pl.Int64,
...         "col3": pl.Int64,
...         "datetime": pl.Datetime(time_unit="us", time_zone="UTC"),
...     },
... )
>>> output = TemporalNullValueOutput(
...     TemporalDataFrameState(frame, temporal_column="datetime")
... )
>>> output
TemporalNullValueOutput(
  (state): TemporalDataFrameState(dataframe=(4, 4), temporal_column='datetime', period=None, nan_policy='propagate', figure_config=MatplotlibFigureConfig())
)
>>> output.get_content_generator()
TemporalNullValueContentGenerator(
  (state): TemporalDataFrameState(dataframe=(4, 4), temporal_column='datetime', period=None, nan_policy='propagate', figure_config=MatplotlibFigureConfig())
)
>>> output.get_evaluator()
Evaluator(count=0)

arkas.output.TemporalPlotColumnOutput

Bases: BaseStateOutput[TemporalDataFrameState]

Implement an output to plot each column of a DataFrame along a temporal dimension.

Parameters:

Name Type Description Default
state TemporalDataFrameState

The state containing the DataFrame to analyze.

required

Example usage:

>>> from datetime import datetime, timezone
>>> import polars as pl
>>> from arkas.output import TemporalPlotColumnOutput
>>> from arkas.state import TemporalDataFrameState
>>> frame = pl.DataFrame(
...     {
...         "col1": [0, 1, 1, 0],
...         "col2": [0, 1, 0, 1],
...         "col3": [1, 0, 0, 0],
...         "datetime": [
...             datetime(year=2020, month=1, day=3, tzinfo=timezone.utc),
...             datetime(year=2020, month=2, day=3, tzinfo=timezone.utc),
...             datetime(year=2020, month=3, day=3, tzinfo=timezone.utc),
...             datetime(year=2020, month=4, day=3, tzinfo=timezone.utc),
...         ],
...     },
...     schema={
...         "col1": pl.Int64,
...         "col2": pl.Int64,
...         "col3": pl.Int64,
...         "datetime": pl.Datetime(time_unit="us", time_zone="UTC"),
...     },
... )
>>> output = TemporalPlotColumnOutput(
...     TemporalDataFrameState(frame, temporal_column="datetime")
... )
>>> output
TemporalPlotColumnOutput(
  (state): TemporalDataFrameState(dataframe=(4, 4), temporal_column='datetime', period=None, nan_policy='propagate', figure_config=MatplotlibFigureConfig())
)
>>> output.get_content_generator()
TemporalPlotColumnContentGenerator(
  (state): TemporalDataFrameState(dataframe=(4, 4), temporal_column='datetime', period=None, nan_policy='propagate', figure_config=MatplotlibFigureConfig())
)
>>> output.get_evaluator()
Evaluator(count=0)