Skip to content

Commit 4db6129

Browse files
Add daily warning message about ArviZ's refactoring (#2485)
* add daily warning message refactor * refine message * Update arviz/__init__.py Co-authored-by: Oriol Abril-Pla <oriol.abril.pla@gmail.com> * make import warn function private --------- Co-authored-by: Oriol Abril-Pla <oriol.abril.pla@gmail.com>
1 parent b165a20 commit 4db6129

File tree

1 file changed

+31
-0
lines changed

1 file changed

+31
-0
lines changed

arviz/__init__.py

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,13 +4,44 @@
44

55
import logging
66
import os
7+
import warnings
8+
import datetime
9+
from pathlib import Path
710

811
from matplotlib.colors import LinearSegmentedColormap
912
from matplotlib.pyplot import style
1013
import matplotlib as mpl
1114
from packaging import version
1215

1316

17+
def _warn_once_per_day():
18+
warning_dir = Path.home() / "arviz_data"
19+
warning_dir.mkdir(exist_ok=True)
20+
21+
stamp_file = warning_dir / "daily_warning"
22+
today = datetime.date.today()
23+
24+
if stamp_file.exists():
25+
last_date = datetime.date.fromisoformat(stamp_file.read_text().strip())
26+
else:
27+
last_date = None
28+
29+
if last_date != today:
30+
warnings.warn(
31+
"\nArviZ is undergoing a major refactor to improve flexibility and extensibility "
32+
"while maintaining a user-friendly interface."
33+
"\nSome upcoming changes may be backward incompatible."
34+
"\nFor details and migration guidance, visit: "
35+
"https://python.arviz.org/en/latest/user_guide/migration_guide.html",
36+
FutureWarning,
37+
)
38+
39+
stamp_file.write_text(today.isoformat())
40+
41+
42+
_warn_once_per_day()
43+
44+
1445
class Logger(logging.Logger):
1546
"""Override Logger to avoid repeated messages."""
1647

0 commit comments

Comments
 (0)