Skip to content

Commit d91400f

Browse files
committed
feat: add summary algs support for VariableDescription
1 parent b0dc709 commit d91400f

1 file changed

Lines changed: 41 additions & 44 deletions

File tree

src/ydata_profiling/model/summary_algorithms.py

Lines changed: 41 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
from scipy.stats import chisquare
88

99
from ydata_profiling.config import Settings
10+
from ydata_profiling.model.var_description.default import VarDescription
1011

1112
T = TypeVar("T")
1213

@@ -62,28 +63,38 @@ def chi_square(
6263

6364

6465
def series_hashable(
65-
fn: Callable[[Settings, pd.Series, dict], Tuple[Settings, pd.Series, dict]]
66-
) -> Callable[[Settings, pd.Series, dict], Tuple[Settings, pd.Series, dict]]:
66+
fn: Callable[
67+
[Settings, pd.Series, VarDescription],
68+
Tuple[Settings, pd.Series, VarDescription],
69+
]
70+
) -> Callable[
71+
[Settings, pd.Series, VarDescription], Tuple[Settings, pd.Series, VarDescription]
72+
]:
6773
@functools.wraps(fn)
6874
def inner(
69-
config: Settings, series: pd.Series, summary: dict
70-
) -> Tuple[Settings, pd.Series, dict]:
71-
if not summary["hashable"]:
75+
config: Settings, series: pd.Series, summary: VarDescription
76+
) -> Tuple[Settings, pd.Series, VarDescription]:
77+
if not summary.hashable:
7278
return config, series, summary
7379
return fn(config, series, summary)
7480

7581
return inner
7682

7783

7884
def series_handle_nulls(
79-
fn: Callable[[Settings, pd.Series, dict], Tuple[Settings, pd.Series, dict]]
80-
) -> Callable[[Settings, pd.Series, dict], Tuple[Settings, pd.Series, dict]]:
85+
fn: Callable[
86+
[Settings, pd.Series, VarDescription],
87+
Tuple[Settings, pd.Series, VarDescription],
88+
]
89+
) -> Callable[
90+
[Settings, pd.Series, VarDescription], Tuple[Settings, pd.Series, VarDescription]
91+
]:
8192
"""Decorator for nullable series"""
8293

8394
@functools.wraps(fn)
8495
def inner(
85-
config: Settings, series: pd.Series, summary: dict
86-
) -> Tuple[Settings, pd.Series, dict]:
96+
config: Settings, series: pd.Series, summary: VarDescription
97+
) -> Tuple[Settings, pd.Series, VarDescription]:
8798
if series.hasnans:
8899
series = series.dropna()
89100

@@ -103,92 +114,78 @@ def named_aggregate_summary(series: pd.Series, key: str) -> dict:
103114
return summary
104115

105116

106-
@multimethod
107-
def describe_counts(
108-
config: Settings, series: Any, summary: dict
109-
) -> Tuple[Settings, Any, dict]:
110-
raise NotImplementedError()
111-
112-
113117
@multimethod
114118
def describe_supported(
115119
config: Settings, series: Any, series_description: dict
116-
) -> Tuple[Settings, Any, dict]:
117-
raise NotImplementedError()
118-
119-
120-
@multimethod
121-
def describe_generic(
122-
config: Settings, series: Any, summary: dict
123-
) -> Tuple[Settings, Any, dict]:
120+
) -> Tuple[Settings, Any, VarDescription]:
124121
raise NotImplementedError()
125122

126123

127124
@multimethod
128125
def describe_numeric_1d(
129-
config: Settings, series: Any, summary: dict
130-
) -> Tuple[Settings, Any, dict]:
126+
config: Settings, series: Any, summary: VarDescription
127+
) -> Tuple[Settings, Any, VarDescription]:
131128
raise NotImplementedError()
132129

133130

134131
@multimethod
135132
def describe_text_1d(
136-
config: Settings, series: Any, summary: dict
137-
) -> Tuple[Settings, Any, dict, Any]:
133+
config: Settings, series: Any, summary: VarDescription
134+
) -> Tuple[Settings, Any, VarDescription]:
138135
raise NotImplementedError()
139136

140137

141138
@multimethod
142139
def describe_date_1d(
143-
config: Settings, series: Any, summary: dict
144-
) -> Tuple[Settings, Any, dict]:
140+
config: Settings, series: Any, summary: VarDescription
141+
) -> Tuple[Settings, Any, VarDescription]:
145142
raise NotImplementedError()
146143

147144

148145
@multimethod
149146
def describe_categorical_1d(
150-
config: Settings, series: pd.Series, summary: dict
151-
) -> Tuple[Settings, pd.Series, dict]:
147+
config: Settings, series: pd.Series, summary: VarDescription
148+
) -> Tuple[Settings, Any, VarDescription]:
152149
raise NotImplementedError()
153150

154151

155152
@multimethod
156153
def describe_url_1d(
157-
config: Settings, series: Any, summary: dict
158-
) -> Tuple[Settings, Any, dict]:
154+
config: Settings, series: Any, summary: VarDescription
155+
) -> Tuple[Settings, Any, VarDescription]:
159156
raise NotImplementedError()
160157

161158

162159
@multimethod
163160
def describe_file_1d(
164-
config: Settings, series: Any, summary: dict
165-
) -> Tuple[Settings, Any, dict]:
161+
config: Settings, series: Any, summary: VarDescription
162+
) -> Tuple[Settings, Any, VarDescription]:
166163
raise NotImplementedError()
167164

168165

169166
@multimethod
170167
def describe_path_1d(
171-
config: Settings, series: Any, summary: dict
172-
) -> Tuple[Settings, Any, dict]:
168+
config: Settings, series: Any, summary: VarDescription
169+
) -> Tuple[Settings, Any, VarDescription]:
173170
raise NotImplementedError()
174171

175172

176173
@multimethod
177174
def describe_image_1d(
178-
config: Settings, series: Any, summary: dict
179-
) -> Tuple[Settings, Any, dict]:
175+
config: Settings, series: Any, summary: VarDescription
176+
) -> Tuple[Settings, Any, VarDescription]:
180177
raise NotImplementedError()
181178

182179

183180
@multimethod
184181
def describe_boolean_1d(
185-
config: Settings, series: Any, summary: dict
186-
) -> Tuple[Settings, Any, dict]:
182+
config: Settings, series: Any, summary: VarDescription
183+
) -> Tuple[Settings, Any, VarDescription]:
187184
raise NotImplementedError()
188185

189186

190187
@multimethod
191188
def describe_timeseries_1d(
192-
config: Settings, series: Any, summary: dict
193-
) -> Tuple[Settings, Any, dict]:
189+
config: Settings, series: Any, summary: VarDescription
190+
) -> Tuple[Settings, Any, VarDescription]:
194191
raise NotImplementedError()

0 commit comments

Comments
 (0)