Skip to content

Commit 6abdf24

Browse files
authored
Update docs (#77)
Signed-off-by: Anatoly Myachev <[email protected]>
1 parent 3dc9b67 commit 6abdf24

17 files changed

+490
-128
lines changed

docs/basics/column.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -96,7 +96,7 @@ def my_func(df1, df2):
9696
df1_s = df1.__dataframe_consortium_standard__(api_version='2023.11-beta')
9797
df2_s = df2.__dataframe_consortium_standard__(api_version='2023.11-beta')
9898
df1_s.filter(df2_s.col('a') > 0)
99-
return df_s.dataframe
99+
return df1_s.dataframe
100100
```
101101

102102
However, if you tried passing two different dataframes to this function, you'd get

docs/generate_members.py

Lines changed: 79 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -1,42 +1,84 @@
11
# ruff: noqa
22
import sys
3+
import argparse
34

45
sys.path.append("..")
56

6-
import pandas as pd
7-
import polars as pl
8-
9-
pd_series = pd.Series([1], name="a").__column_consortium_standard__()
10-
pl_series = pl.Series("a", [1]).__column_consortium_standard__()
11-
pd_df = pd.DataFrame({"a": [1]}).__dataframe_consortium_standard__()
12-
pl_df = pl.DataFrame({"a": [1]}).__dataframe_consortium_standard__()
13-
pd_scalar = pd_df.col("a").mean()
14-
pl_scalar = pl_df.col("a").mean()
15-
pd_namespace = pd_df.__dataframe_namespace__()
16-
pl_namespace = pl_df.__dataframe_namespace__()
17-
18-
for name, object in [
19-
("pandas-column.md", pd_series),
20-
("polars-column.md", pl_series),
21-
("pandas-dataframe.md", pd_df),
22-
("polars-dataframe.md", pl_df),
23-
("pandas-scalar.md", pd_scalar),
24-
("polars-scalar.md", pl_scalar),
25-
("pandas-namespace.md", pd_scalar),
26-
("polars-namespace.md", pl_scalar),
27-
]:
28-
members = [
29-
i for i in object.__dir__() if not (i.startswith("_") and not i.startswith("__"))
30-
]
31-
32-
with open(name) as fd:
33-
content = fd.read()
34-
35-
members_txt = "\n - ".join(sorted(members)) + "\n "
36-
37-
start = content.index("members:")
38-
end = content.index("show_signature")
39-
content = content[:start] + f"members:\n - {members_txt}" + content[end:]
40-
41-
with open(name, "w") as fd:
42-
fd.write(content)
7+
8+
def get_polars_objects():
9+
import polars as pl
10+
11+
dataframe = pl.DataFrame({"a": [1]}).__dataframe_consortium_standard__()
12+
column = pl.Series("a", [1]).__column_consortium_standard__()
13+
scalar = dataframe.col("a").mean()
14+
namespace = dataframe.__dataframe_namespace__()
15+
return dataframe, column, scalar, namespace
16+
17+
18+
def get_pandas_objects():
19+
import pandas as pd
20+
21+
dataframe = pd.DataFrame({"a": [1]}).__dataframe_consortium_standard__()
22+
column = pd.Series([1], name="a").__column_consortium_standard__()
23+
scalar = dataframe.col("a").mean()
24+
namespace = dataframe.__dataframe_namespace__()
25+
return dataframe, column, scalar, namespace
26+
27+
28+
def get_modin_objects():
29+
import modin.pandas as pd
30+
31+
dataframe = pd.DataFrame({"a": [1]}).__dataframe_consortium_standard__()
32+
column = pd.Series([1], name="a").__column_consortium_standard__()
33+
scalar = dataframe.col("a").mean()
34+
namespace = dataframe.__dataframe_namespace__()
35+
return dataframe, column, scalar, namespace
36+
37+
38+
def generate_members(library: str):
39+
mapper = {
40+
"pandas": get_pandas_objects,
41+
"polars": get_polars_objects,
42+
"modin": get_modin_objects,
43+
}
44+
dataframe, column, scalar, namespace = mapper[library]()
45+
46+
for name, object in [
47+
(f"{library}-dataframe.md", dataframe),
48+
(f"{library}-column.md", column),
49+
(f"{library}-scalar.md", scalar),
50+
(f"{library}-namespace.md", namespace),
51+
]:
52+
members = [
53+
i
54+
for i in object.__dir__()
55+
if not (i.startswith("_") and not i.startswith("__"))
56+
]
57+
58+
with open(name) as fd:
59+
content = fd.read()
60+
61+
members_txt = "\n - ".join(sorted(members)) + "\n "
62+
63+
start = content.index("members:")
64+
end = content.index("show_signature")
65+
content = content[:start] + f"members:\n - {members_txt}" + content[end:]
66+
67+
with open(name, "w") as fd:
68+
fd.write(content)
69+
70+
71+
def main():
72+
parse = argparse.ArgumentParser()
73+
parse.add_argument(
74+
"--library",
75+
type=str,
76+
default="pandas",
77+
help="Library for which members will be generated.",
78+
)
79+
args = parse.parse_args()
80+
sys.exit(generate_members(args.library))
81+
82+
83+
if __name__ == "__main__":
84+
main()

docs/index.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
# Dataframe API Compat
22

3-
Extremely lightweight compatibility layer between pandas and Polars:
3+
Extremely lightweight compatibility layer between pandas, Polars and Modin:
44

55
- ✅ No dependencies.
6-
- ✅ Lightweight: wheel is smaller than 30 kB.
6+
- ✅ Lightweight: wheel is smaller than 50 kB.
77
- ✅ Simple, minimal, and predictable.
88

99
No need to choose - support both with ease!

docs/modin-column.md

Lines changed: 105 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,105 @@
1+
# Pandas Column
2+
::: dataframe_api_compat.modin_standard.Column
3+
handler: python
4+
paths: []
5+
options:
6+
members:
7+
- __add__
8+
- __and__
9+
- __class__
10+
- __column_namespace__
11+
- __delattr__
12+
- __dict__
13+
- __dir__
14+
- __divmod__
15+
- __doc__
16+
- __eq__
17+
- __floordiv__
18+
- __format__
19+
- __ge__
20+
- __getattribute__
21+
- __gt__
22+
- __hash__
23+
- __init__
24+
- __init_subclass__
25+
- __invert__
26+
- __iter__
27+
- __le__
28+
- __lt__
29+
- __mod__
30+
- __module__
31+
- __mul__
32+
- __ne__
33+
- __new__
34+
- __or__
35+
- __pow__
36+
- __radd__
37+
- __rand__
38+
- __reduce__
39+
- __reduce_ex__
40+
- __repr__
41+
- __rfloordiv__
42+
- __rmod__
43+
- __rmul__
44+
- __ror__
45+
- __rpow__
46+
- __rsub__
47+
- __rtruediv__
48+
- __setattr__
49+
- __sizeof__
50+
- __str__
51+
- __sub__
52+
- __subclasshook__
53+
- __truediv__
54+
- __weakref__
55+
- all
56+
- any
57+
- cast
58+
- column
59+
- cumulative_max
60+
- cumulative_min
61+
- cumulative_prod
62+
- cumulative_sum
63+
- day
64+
- dtype
65+
- fill_nan
66+
- fill_null
67+
- filter
68+
- floor
69+
- get_value
70+
- hour
71+
- is_in
72+
- is_nan
73+
- is_null
74+
- iso_weekday
75+
- len
76+
- max
77+
- mean
78+
- median
79+
- microsecond
80+
- min
81+
- minute
82+
- month
83+
- n_unique
84+
- name
85+
- nanosecond
86+
- parent_dataframe
87+
- persist
88+
- prod
89+
- rename
90+
- second
91+
- shift
92+
- slice_rows
93+
- sort
94+
- sorted_indices
95+
- std
96+
- sum
97+
- take
98+
- to_array
99+
- unique_indices
100+
- unix_timestamp
101+
- var
102+
- year
103+
show_signature_annotations: true
104+
show_bases: false
105+
show_source: false

docs/modin-dataframe.md

Lines changed: 90 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,90 @@
1+
# Pandas DataFrame
2+
::: dataframe_api_compat.modin_standard.DataFrame
3+
handler: python
4+
paths: []
5+
options:
6+
members:
7+
- __add__
8+
- __and__
9+
- __class__
10+
- __dataframe_namespace__
11+
- __delattr__
12+
- __dict__
13+
- __dir__
14+
- __divmod__
15+
- __doc__
16+
- __eq__
17+
- __floordiv__
18+
- __format__
19+
- __ge__
20+
- __getattribute__
21+
- __gt__
22+
- __hash__
23+
- __init__
24+
- __init_subclass__
25+
- __invert__
26+
- __iter__
27+
- __le__
28+
- __lt__
29+
- __mod__
30+
- __module__
31+
- __mul__
32+
- __ne__
33+
- __new__
34+
- __or__
35+
- __pow__
36+
- __radd__
37+
- __rand__
38+
- __reduce__
39+
- __reduce_ex__
40+
- __repr__
41+
- __rfloordiv__
42+
- __rmod__
43+
- __rmul__
44+
- __ror__
45+
- __rpow__
46+
- __rsub__
47+
- __rtruediv__
48+
- __setattr__
49+
- __sizeof__
50+
- __str__
51+
- __sub__
52+
- __subclasshook__
53+
- __truediv__
54+
- __weakref__
55+
- all
56+
- any
57+
- assign
58+
- cast
59+
- col
60+
- column_names
61+
- dataframe
62+
- drop
63+
- drop_nulls
64+
- fill_nan
65+
- fill_null
66+
- filter
67+
- get_column_names
68+
- group_by
69+
- is_nan
70+
- is_null
71+
- iter_columns
72+
- join
73+
- max
74+
- mean
75+
- median
76+
- min
77+
- persist
78+
- prod
79+
- rename
80+
- schema
81+
- select
82+
- shape
83+
- slice_rows
84+
- sort
85+
- std
86+
- sum
87+
- take
88+
- to_array
89+
- var
90+
show_signature_annotations: true

0 commit comments

Comments
 (0)