diff --git a/.coverage b/.coverage index 08a5539e..43833e63 100644 Binary files a/.coverage and b/.coverage differ diff --git a/check_completeness.py b/check_completeness.py index c7feaf3e..d1aa3a5f 100644 --- a/check_completeness.py +++ b/check_completeness.py @@ -47,9 +47,6 @@ # namespace exclude = { "Mapping", - "Column", - "DataFrame", - "GroupBy", "column_object", "dataframe_object", "groupby_object", diff --git a/dataframe_api_compat/pandas_standard/__init__.py b/dataframe_api_compat/pandas_standard/__init__.py index a298e529..d8519486 100644 --- a/dataframe_api_compat/pandas_standard/__init__.py +++ b/dataframe_api_compat/pandas_standard/__init__.py @@ -2,6 +2,7 @@ from dataframe_api_compat.pandas_standard.pandas_standard import ( PandasDataFrame, PandasColumn, + PandasGroupBy, ) import pandas as pd @@ -10,6 +11,10 @@ Sequence, ) +Column = PandasColumn +DataFrame = PandasDataFrame +GroupBy = PandasGroupBy + class Int64: ... diff --git a/dataframe_api_compat/polars_standard/__init__.py b/dataframe_api_compat/polars_standard/__init__.py index 62252977..cddd7640 100644 --- a/dataframe_api_compat/polars_standard/__init__.py +++ b/dataframe_api_compat/polars_standard/__init__.py @@ -2,11 +2,16 @@ from dataframe_api_compat.polars_standard.polars_standard import ( PolarsDataFrame, PolarsColumn, + PolarsGroupBy, ) import polars as pl from typing import Any, Sequence +Column = PolarsColumn +DataFrame = PolarsDataFrame +GroupBy = PolarsGroupBy + class Int64: ... diff --git a/t.py b/t.py index 2c59fe3e..c57bb49f 100644 --- a/t.py +++ b/t.py @@ -1,11 +1,29 @@ +import pandas as pd import polars as pl -from datetime import date +from typing import Any +import dataframe_api_compat -df = pl.DataFrame( - { - "date": pl.date_range(date(2020, 10, 30), date(2021, 6, 1), eager=True), - } -) -df = df.with_columns(values=pl.arange(0, len(df))) -print(df.groupby_dynamic("date", every="3mo").agg(pl.col("values").sum())) +def convert_to_standard_compliant_dataframe(df: pd.DataFrame | pl.DataFrame) -> Any: + # todo: type return + if isinstance(df, pd.DataFrame): + return ( + dataframe_api_compat.pandas_standard.convert_to_standard_compliant_dataframe( + df + ) + ) + elif isinstance(df, pl.DataFrame): + return ( + dataframe_api_compat.polars_standard.convert_to_standard_compliant_dataframe( + df + ) + ) + else: + raise AssertionError(f"Got unexpected type: {type(df)}") + + +dfpd = pd.DataFrame({"a": [1, 2, 3]}) +dfpl = pl.DataFrame({"a": [1, 2, 3]}) + +dfpd = convert_to_standard_compliant_dataframe(dfpd) +dfpl = convert_to_standard_compliant_dataframe(dfpl)