-
-
Notifications
You must be signed in to change notification settings - Fork 37
/
Copy pathshared.py
48 lines (40 loc) · 1.38 KB
/
shared.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
# Standard library
import logging
import os
from datetime import datetime, timezone
# Third-party
from pandas import PeriodIndex
def setup(current_file):
# Set up logging
logging.basicConfig(
level=logging.INFO,
format="%(asctime)s - %(levelname)s - %(module)s - %(message)s",
)
logger = logging.getLogger(__name__)
# Datetime
datetime_today = datetime.now(timezone.utc)
quarter = PeriodIndex([datetime_today.date()], freq="Q")[0]
# Paths
paths = {}
paths["repo"] = os.path.dirname(
os.path.abspath(os.path.realpath(os.path.join(__file__, "..", "..")))
)
paths["dotenv"] = os.path.join(paths["repo"], ".env")
paths["data"] = os.path.dirname(
os.path.abspath(os.path.realpath(current_file))
)
phase = os.path.basename(
os.path.dirname(os.path.abspath(os.path.realpath(current_file)))
)
paths["data"] = os.path.join(paths["repo"], "data")
data_quarter = os.path.join(paths["data"], f"{quarter}")
paths["state"] = os.path.join(data_quarter, "state.json")
paths["data_phase"] = os.path.join(data_quarter, phase)
return logger, paths
def log_paths(logger, paths):
paths_list = []
for label, path in paths.items():
label = f"{label}:"
paths_list.append(f"\n{' ' * 12}{label:<11} {path}")
paths_list = "".join(paths_list)
logger.info(f"PATHS:{paths_list}")