Skip to content

Commit 7c22797

Browse files
committed
fix several linting issues
1 parent 9f84200 commit 7c22797

File tree

9 files changed

+92
-92
lines changed

9 files changed

+92
-92
lines changed

eurybia/core/smartdrift.py

Lines changed: 43 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -532,7 +532,7 @@ def _predict(self, deployed_model: Any, encoding: Any = None) -> pd.DataFrame:
532532
- Error :
533533
"""
534534
+ str(error)
535-
)
535+
) from error
536536
if hasattr(deployed_model, "predict_proba"):
537537
try:
538538
df_baseline_pred = pd.DataFrame(deployed_model.predict_proba(df_baseline)[:, 1], columns=["Score"])
@@ -544,7 +544,7 @@ def _predict(self, deployed_model: Any, encoding: Any = None) -> pd.DataFrame:
544544
- Error :
545545
"""
546546
+ str(error)
547-
)
547+
) from error
548548
else:
549549
try:
550550
df_baseline_pred = pd.DataFrame(deployed_model.predict(df_baseline), columns=["Score"])
@@ -556,7 +556,7 @@ def _predict(self, deployed_model: Any, encoding: Any = None) -> pd.DataFrame:
556556
- Error :
557557
"""
558558
+ str(error)
559-
)
559+
) from error
560560
return pd.concat(
561561
[
562562
df_baseline_pred.assign(dataset=self.baseline_dataset_name),
@@ -592,7 +592,7 @@ def _compute_feature_importance(
592592
- Error :
593593
"""
594594
+ str(error)
595-
)
595+
) from error
596596

597597
feature_importance_drift = pd.DataFrame(
598598
self.xpl.features_imp[0].values, index=self.xpl.features_imp[0].index, columns=["datadrift_classifier"]
@@ -657,7 +657,6 @@ def _histo_datadrift_metric(self, datadrift_file: str, date_compile_auc: date |
657657
Dataframe with dates, AUC and Jensen Shannon prediction divergence computed at this date
658658
659659
"""
660-
661660
if date_compile_auc is None:
662661
date_compile_auc = date.today()
663662
s_date_compile_auc = date_compile_auc.strftime("%Y-%m-%d")
@@ -692,7 +691,7 @@ def _histo_datadrift_metric(self, datadrift_file: str, date_compile_auc: date |
692691
try:
693692
df_auc.to_csv(datadrift_file)
694693
except OSError as error:
695-
raise OSError("Can't save to csv the AUC metrics, error : " + str(error))
694+
raise OSError("Can't save to csv the AUC metrics, error : " + str(error)) from error
696695
return df_auc
697696

698697
def add_data_modeldrift(
@@ -744,7 +743,7 @@ def add_data_modeldrift(
744743
- Error -
745744
"""
746745
+ str(error)
747-
)
746+
) from error
748747

749748
def _compute_datadrift_stat_test(self, max_size: int = 50000, categ_max: int = 20):
750749
"""Calculates all statistical tests to analyze the drift of each feature
@@ -775,14 +774,14 @@ def _compute_datadrift_stat_test(self, max_size: int = 50000, categ_max: int = 2
775774
test = chisq_test(current[features].to_numpy(), baseline[features].to_numpy())
776775
else:
777776
test = ksmirnov_test(current[features].to_numpy(), baseline[features].to_numpy())
778-
except BaseException as e:
777+
except BaseException as error:
779778
raise Exception(
780779
f"""
781780
There is a problem with the format of {str(features)} column between the two datasets.
782781
Error:
783782
"""
784-
+ str(e)
785-
)
783+
+ str(error)
784+
) from error
786785
test_results[features] = test
787786

788787
return pd.DataFrame.from_dict(test_results, orient="index")
@@ -842,148 +841,148 @@ def save(self, path: str):
842841

843842
@property
844843
def df_current(self) -> pd.DataFrame:
845-
"""getter"""
844+
"""Getter"""
846845
return self._df_current
847846

848847
@df_current.setter
849848
def df_current(self, val: pd.DataFrame) -> None:
850-
"""setter"""
849+
"""Setter"""
851850
if not isinstance(val, pd.DataFrame):
852851
raise ValueError("df_current must be a pandas DataFrame")
853852
self._df_current = val
854853

855854
@property
856855
def df_baseline(self) -> pd.DataFrame:
857-
"""getter"""
856+
"""Getter"""
858857
return self._df_baseline
859858

860859
@df_baseline.setter
861860
def df_baseline(self, val: pd.DataFrame) -> None:
862-
"""setter"""
861+
"""Setter"""
863862
if not isinstance(val, pd.DataFrame):
864863
raise ValueError("df_baseline must be a pandas DataFrame")
865864
self._df_baseline = val
866865

867866
@property
868867
def xpl(self) -> SmartExplainer:
869-
"""getter"""
868+
"""Getter"""
870869
if not hasattr(self, "_xpl"):
871870
raise RuntimeError("SmartExplainer has not been initialized yet.")
872871
return self._xpl
873872

874873
@xpl.setter
875874
def xpl(self, val: SmartExplainer) -> None:
876-
"""setter"""
875+
"""Setter"""
877876
if not isinstance(val, SmartExplainer):
878877
raise ValueError("xpl must be a SmartExplainer instance.")
879878
self._xpl = val
880879

881880
@property
882881
def df_predict(self) -> pd.DataFrame:
883-
"""getter"""
882+
"""Getter"""
884883
if not hasattr(self, "_df_predict"):
885884
raise RuntimeError("df_predict has not been initialized yet.")
886885
return self._df_predict
887886

888887
@df_predict.setter
889888
def df_predict(self, val: pd.DataFrame) -> None:
890-
"""setter"""
889+
"""Setter"""
891890
if not isinstance(val, pd.DataFrame):
892891
raise ValueError("df_predict must be a pandas DataFrame.")
893892
self._df_predict = val
894893

895894
@property
896895
def feature_importance(self) -> pd.DataFrame:
897-
"""getter"""
896+
"""Getter"""
898897
if not hasattr(self, "_feature_importance"):
899898
raise RuntimeError("feature_importance has not been initialized yet.")
900899
return self._feature_importance
901900

902901
@feature_importance.setter
903902
def feature_importance(self, val: pd.DataFrame) -> None:
904-
"""setter"""
903+
"""Setter"""
905904
if not isinstance(val, pd.DataFrame):
906905
raise ValueError("feature_importance must be a pandas DataFrame.")
907906
self._feature_importance = val
908907

909908
@property
910909
def pb_cols(self) -> dict[str, list[str]]:
911-
"""getter"""
910+
"""Getter"""
912911
return self._pb_cols
913912

914913
@pb_cols.setter
915914
def pb_cols(self, val: dict[str, list[str]]) -> None:
916-
"""setter"""
915+
"""Setter"""
917916
if not isinstance(val, dict):
918917
raise ValueError("pb_cols must be a dictionary.")
919918
self._pb_cols = val
920919

921920
@property
922921
def err_mods(self) -> dict[str, dict]:
923-
"""getter"""
922+
"""Getter"""
924923
return self._err_mods
925924

926925
@err_mods.setter
927926
def err_mods(self, val: dict[str, dict]) -> None:
928-
"""setter"""
927+
"""Setter"""
929928
if not isinstance(val, dict):
930929
raise ValueError("err_mods must be a dictionary.")
931930
self._err_mods = val
932931

933932
@property
934933
def auc(self) -> float:
935-
"""getter"""
934+
"""Getter"""
936935
if not hasattr(self, "_auc"):
937936
raise RuntimeError("auc has not been initialized yet.")
938937
return self._auc
939938

940939
@auc.setter
941940
def auc(self, val: float) -> None:
942-
"""setter"""
941+
"""Setter"""
943942
if not isinstance(val, (float, int)):
944943
raise ValueError("auc must be of type float or int.")
945944
self._auc = float(val)
946945

947946
@property
948947
def js_divergence(self) -> float:
949-
"""getter"""
948+
"""Getter"""
950949
if not hasattr(self, "_js_divergence"):
951950
raise RuntimeError("js_divergence has not been initialized yet.")
952951
return self._js_divergence
953952

954953
@js_divergence.setter
955954
def js_divergence(self, val: float) -> None:
956-
"""setter"""
955+
"""Setter"""
957956
if not isinstance(val, (float, int)):
958957
raise ValueError("js_divergence must be of type float or int.")
959958
self._js_divergence = float(val)
960959

961960
@property
962961
def historical_auc(self) -> pd.DataFrame | None:
963-
"""getter"""
962+
"""Getter"""
964963
if not hasattr(self, "_historical_auc"):
965964
# raise RuntimeError("historical_auc has not been initialized yet.")
966965
return None
967966
return self._historical_auc
968967

969968
@historical_auc.setter
970969
def historical_auc(self, val: pd.DataFrame) -> None:
971-
"""setter"""
970+
"""Setter"""
972971
if not isinstance(val, pd.DataFrame):
973972
raise ValueError("historical_auc must be a pandas DataFrame.")
974973
self._historical_auc = val
975974

976975
@property
977976
def data_modeldrift(self) -> pd.DataFrame | None:
978-
"""getter"""
977+
"""Getter"""
979978
if not hasattr(self, "_data_modeldrift"):
980979
# raise RuntimeError("data_modeldrift has not been initialized yet.")
981980
return None
982981
return self._data_modeldrift
983982

984983
@data_modeldrift.setter
985984
def data_modeldrift(self, val: pd.DataFrame) -> None:
986-
"""setter"""
985+
"""Setter"""
987986
if not isinstance(val, pd.DataFrame):
988987
raise ValueError("data_modeldrift must be a pandas DataFrame.")
989988
self._data_modeldrift = val
@@ -1000,70 +999,70 @@ def baseline_dataset_name(self) -> str:
1000999

10011000
@property
10021001
def encoding(self) -> Any:
1003-
"""getter"""
1002+
"""Getter"""
10041003
return self._encoding
10051004

10061005
@encoding.setter
10071006
def encoding(self, val: Any) -> None:
1008-
"""setter"""
1007+
"""Setter"""
10091008
self._encoding = val
10101009

10111010
@property
10121011
def deployed_model(self) -> Any:
1013-
"""getter"""
1012+
"""Getter"""
10141013
return self._deployed_model
10151014

10161015
@deployed_model.setter
10171016
def deployed_model(self, val: Any) -> None:
1018-
"""setter"""
1017+
"""Setter"""
10191018
self._deployed_model = val
10201019

10211020
@property
10221021
def ignore_cols(self) -> list[str]:
1023-
"""getter"""
1022+
"""Getter"""
10241023
return self._ignore_cols
10251024

10261025
@ignore_cols.setter
10271026
def ignore_cols(self, val: list[str]) -> None:
1028-
"""setter"""
1027+
"""Setter"""
10291028
if not isinstance(val, list):
10301029
raise ValueError("ignore_cols must be a list.")
10311030
self._ignore_cols = val
10321031

10331032
@property
10341033
def datadrift_stat_test(self) -> pd.DataFrame:
1035-
"""getter"""
1034+
"""Getter"""
10361035
if not hasattr(self, "_datadrift_stat_test"):
10371036
raise RuntimeError("datadrift_stat_test has not been initialized yet.")
10381037
return self._datadrift_stat_test
10391038

10401039
@datadrift_stat_test.setter
10411040
def datadrift_stat_test(self, val: pd.DataFrame) -> None:
1042-
"""setter"""
1041+
"""Setter"""
10431042
if not isinstance(val, pd.DataFrame):
10441043
raise ValueError("datadrift_stat_test must be a pandas DataFrame.")
10451044
self._datadrift_stat_test = val
10461045

10471046
@property
10481047
def df_concat(self) -> pd.DataFrame:
1049-
"""getter"""
1048+
"""Getter"""
10501049
if not hasattr(self, "_df_concat"):
10511050
raise RuntimeError("df_concat has not been initialized yet.")
10521051
return self._df_concat
10531052

10541053
@df_concat.setter
10551054
def df_concat(self, val: pd.DataFrame | None) -> None:
1056-
"""setter"""
1055+
"""Setter"""
10571056
if val is not None and not isinstance(val, pd.DataFrame):
10581057
raise ValueError("df_concat must be a pandas DataFrame or None.")
10591058
self._df_concat = val
10601059

10611060
@property
10621061
def datadrift_target(self) -> str:
1063-
"""getter"""
1062+
"""Getter"""
10641063
return self._datadrift_target
10651064

10661065
@property
10671066
def plot(self) -> SmartPlotter:
1068-
"""getter"""
1067+
"""Getter"""
10691068
return self._plot

eurybia/core/smartplotter.py

Lines changed: 13 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -45,30 +45,36 @@ class SmartPlotter:
4545
"""
4646

4747
def __init__(self, smartdrift: SmartDrift):
48+
"""Initialize a SmartPlotter.
49+
50+
Args:
51+
smartdrift (SmartDrift): a SmartDrift instance
52+
53+
"""
4854
palette_name = list(colors_loading().keys())[0]
4955
self._style_dict = define_style(select_palette(colors_loading(), palette_name))
5056
self._smartdrift = smartdrift
5157

5258
@property
5359
def style_dict(self) -> dict:
54-
"""getter"""
60+
"""Getter"""
5561
return self._style_dict
5662

5763
@style_dict.setter
5864
def style_dict(self, val: dict) -> None:
59-
"""setter"""
65+
"""Setter"""
6066
if not isinstance(val, dict):
6167
raise ValueError("style_dict must be a dictionary.")
6268
self._style_dict = val
6369

6470
@property
6571
def smartdrift(self) -> SmartDrift:
66-
"""getter"""
72+
"""Getter"""
6773
return self._smartdrift
6874

6975
@smartdrift.setter
7076
def smartdrift(self, val: SmartDrift) -> None:
71-
"""setter"""
77+
"""Setter"""
7278
if not isinstance(val, SmartDrift):
7379
raise ValueError("style_dict must be of type SmartDrift.")
7480
self._smartdrift = val
@@ -589,7 +595,7 @@ def generate_modeldrift_data(
589595
self,
590596
data_modeldrift: pd.DataFrame = None,
591597
metric: str = "performance",
592-
reference_columns: list = list(),
598+
reference_columns: list | None = None,
593599
template: str | None = None,
594600
title: str | None = None,
595601
xaxis_title: str | None = None,
@@ -639,6 +645,8 @@ def generate_modeldrift_data(
639645
data_modeldrift[metric] = data_modeldrift[metric].apply(
640646
lambda row: round(row, len([char for char in str(row).split(".")[1] if char == "0"]) + 3)
641647
)
648+
if reference_columns is None:
649+
reference_columns = list()
642650

643651
fig = px.line(
644652
data_modeldrift,

0 commit comments

Comments
 (0)