Skip to content

Commit c0d29b4

Browse files
committed
feat: add summary algs support for VariableDescription
1 parent c8d253a commit c0d29b4

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

@@ -58,28 +59,38 @@ def chi_square(
5859

5960

6061
def series_hashable(
61-
fn: Callable[[Settings, pd.Series, dict], Tuple[Settings, pd.Series, dict]]
62-
) -> Callable[[Settings, pd.Series, dict], Tuple[Settings, pd.Series, dict]]:
62+
fn: Callable[
63+
[Settings, pd.Series, VarDescription],
64+
Tuple[Settings, pd.Series, VarDescription],
65+
]
66+
) -> Callable[
67+
[Settings, pd.Series, VarDescription], Tuple[Settings, pd.Series, VarDescription]
68+
]:
6369
@functools.wraps(fn)
6470
def inner(
65-
config: Settings, series: pd.Series, summary: dict
66-
) -> Tuple[Settings, pd.Series, dict]:
67-
if not summary["hashable"]:
71+
config: Settings, series: pd.Series, summary: VarDescription
72+
) -> Tuple[Settings, pd.Series, VarDescription]:
73+
if not summary.hashable:
6874
return config, series, summary
6975
return fn(config, series, summary)
7076

7177
return inner
7278

7379

7480
def series_handle_nulls(
75-
fn: Callable[[Settings, pd.Series, dict], Tuple[Settings, pd.Series, dict]]
76-
) -> Callable[[Settings, pd.Series, dict], Tuple[Settings, pd.Series, dict]]:
81+
fn: Callable[
82+
[Settings, pd.Series, VarDescription],
83+
Tuple[Settings, pd.Series, VarDescription],
84+
]
85+
) -> Callable[
86+
[Settings, pd.Series, VarDescription], Tuple[Settings, pd.Series, VarDescription]
87+
]:
7788
"""Decorator for nullable series"""
7889

7990
@functools.wraps(fn)
8091
def inner(
81-
config: Settings, series: pd.Series, summary: dict
82-
) -> Tuple[Settings, pd.Series, dict]:
92+
config: Settings, series: pd.Series, summary: VarDescription
93+
) -> Tuple[Settings, pd.Series, VarDescription]:
8394
if series.hasnans:
8495
series = series.dropna()
8596

@@ -99,92 +110,78 @@ def named_aggregate_summary(series: pd.Series, key: str) -> dict:
99110
return summary
100111

101112

102-
@multimethod
103-
def describe_counts(
104-
config: Settings, series: Any, summary: dict
105-
) -> Tuple[Settings, Any, dict]:
106-
raise NotImplementedError()
107-
108-
109113
@multimethod
110114
def describe_supported(
111115
config: Settings, series: Any, series_description: dict
112-
) -> Tuple[Settings, Any, dict]:
113-
raise NotImplementedError()
114-
115-
116-
@multimethod
117-
def describe_generic(
118-
config: Settings, series: Any, summary: dict
119-
) -> Tuple[Settings, Any, dict]:
116+
) -> Tuple[Settings, Any, VarDescription]:
120117
raise NotImplementedError()
121118

122119

123120
@multimethod
124121
def describe_numeric_1d(
125-
config: Settings, series: Any, summary: dict
126-
) -> Tuple[Settings, Any, dict]:
122+
config: Settings, series: Any, summary: VarDescription
123+
) -> Tuple[Settings, Any, VarDescription]:
127124
raise NotImplementedError()
128125

129126

130127
@multimethod
131128
def describe_text_1d(
132-
config: Settings, series: Any, summary: dict
133-
) -> Tuple[Settings, Any, dict, Any]:
129+
config: Settings, series: Any, summary: VarDescription
130+
) -> Tuple[Settings, Any, VarDescription]:
134131
raise NotImplementedError()
135132

136133

137134
@multimethod
138135
def describe_date_1d(
139-
config: Settings, series: Any, summary: dict
140-
) -> Tuple[Settings, Any, dict]:
136+
config: Settings, series: Any, summary: VarDescription
137+
) -> Tuple[Settings, Any, VarDescription]:
141138
raise NotImplementedError()
142139

143140

144141
@multimethod
145142
def describe_categorical_1d(
146-
config: Settings, series: pd.Series, summary: dict
147-
) -> Tuple[Settings, pd.Series, dict]:
143+
config: Settings, series: pd.Series, summary: VarDescription
144+
) -> Tuple[Settings, Any, VarDescription]:
148145
raise NotImplementedError()
149146

150147

151148
@multimethod
152149
def describe_url_1d(
153-
config: Settings, series: Any, summary: dict
154-
) -> Tuple[Settings, Any, dict]:
150+
config: Settings, series: Any, summary: VarDescription
151+
) -> Tuple[Settings, Any, VarDescription]:
155152
raise NotImplementedError()
156153

157154

158155
@multimethod
159156
def describe_file_1d(
160-
config: Settings, series: Any, summary: dict
161-
) -> Tuple[Settings, Any, dict]:
157+
config: Settings, series: Any, summary: VarDescription
158+
) -> Tuple[Settings, Any, VarDescription]:
162159
raise NotImplementedError()
163160

164161

165162
@multimethod
166163
def describe_path_1d(
167-
config: Settings, series: Any, summary: dict
168-
) -> Tuple[Settings, Any, dict]:
164+
config: Settings, series: Any, summary: VarDescription
165+
) -> Tuple[Settings, Any, VarDescription]:
169166
raise NotImplementedError()
170167

171168

172169
@multimethod
173170
def describe_image_1d(
174-
config: Settings, series: Any, summary: dict
175-
) -> Tuple[Settings, Any, dict]:
171+
config: Settings, series: Any, summary: VarDescription
172+
) -> Tuple[Settings, Any, VarDescription]:
176173
raise NotImplementedError()
177174

178175

179176
@multimethod
180177
def describe_boolean_1d(
181-
config: Settings, series: Any, summary: dict
182-
) -> Tuple[Settings, Any, dict]:
178+
config: Settings, series: Any, summary: VarDescription
179+
) -> Tuple[Settings, Any, VarDescription]:
183180
raise NotImplementedError()
184181

185182

186183
@multimethod
187184
def describe_timeseries_1d(
188-
config: Settings, series: Any, summary: dict
189-
) -> Tuple[Settings, Any, dict]:
185+
config: Settings, series: Any, summary: VarDescription
186+
) -> Tuple[Settings, Any, VarDescription]:
190187
raise NotImplementedError()

0 commit comments

Comments
 (0)