Skip to content

Commit d2fb207

Browse files
committed
Change behaviour of no_save flag
1 parent c676743 commit d2fb207

File tree

3 files changed

+39
-16
lines changed

3 files changed

+39
-16
lines changed

pretty_verbose/__init__.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,12 @@
33
from pretty_verbose.messages_classes import VerboseMessages
44
from pretty_verbose.processes_classes import Process, Task
55
from pretty_verbose.error_classes import (
6-
RunningError, LoggerError, LoggerErrorBase
6+
RunningError, LoggerErrorBase, LoggerError, MissingLogFolderError
77
)
88

99
__all__ = [
1010
"VerboseMessages",
1111
"Task", "Process",
1212
"Logger",
13-
"RunningError", "LoggerError", "LoggerErrorBase"
13+
"RunningError", "LoggerError", "LoggerErrorBase", "MissingLogFolderError"
1414
]

pretty_verbose/logger_classes.py

+5-3
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
"""Classes of the logger."""
22
from pathlib import Path
33

4+
from pretty_verbose.error_classes import MissingLogFolderError
45
from pretty_verbose.processes_classes import Process
56

67

@@ -52,15 +53,16 @@ def __init__(
5253
)
5354

5455
# Check if the directory exists.
55-
if not self.log_dir.exists():
56+
if not self.log_dir.exists() and not no_save:
5657
self.warning(f"The log dir '{self.log_dir}' does not exist!")
5758

5859
if self.confirm("Do you want to create it?"):
5960
self.log_dir.mkdir()
6061
else:
6162
self.error(
62-
"Logger folder does not exist, exiting...",
63-
err_id=101, err_str="MISSING FOLDER"
63+
f"Logger folder '{self.log_dir}' does not exist",
64+
"exiting program...",
65+
err_class=MissingLogFolderError
6466
)
6567

6668
# Update no save.

pretty_verbose/messages_classes.py

+32-11
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
from pathlib import Path
77

88
from pretty_verbose.constants import colors
9-
from pretty_verbose import RunningError, LoggerErrorBase
9+
from pretty_verbose import RunningError, LoggerErrorBase, MissingLogFolderError
1010

1111

1212
class VerboseMessages:
@@ -66,11 +66,9 @@ def __init__(
6666

6767
# No save flag.
6868
self.no_save = no_save
69-
if self.no_save:
70-
return
71-
72-
# Init the log DataFrame.
73-
self.start_log(overwrite)
69+
if not self.no_save:
70+
# Init the log DataFrame.
71+
self.start_log(overwrite)
7472

7573
def start_log(self, overwrite):
7674
"""
@@ -85,6 +83,24 @@ def start_log(self, overwrite):
8583
Flag indicating whether overwrite or not the log file.
8684
8785
"""
86+
# Check if the directory exists.
87+
if not self.filename.parent.exists():
88+
no_save, self.no_save = self.no_save, True
89+
p_folder = self.filename.parent
90+
self.warning(
91+
f"The log dir '{p_folder}' does not exist!"
92+
)
93+
94+
if self.confirm("Do you want to create it?"):
95+
self.filename.parent.mkdir(parents=True)
96+
self.no_save = no_save
97+
else:
98+
self.error(
99+
f"Logger folder '{p_folder}' does not exist",
100+
"exiting program...",
101+
err_class=MissingLogFolderError
102+
)
103+
88104
if not self.filename.exists() or overwrite:
89105
with open(
90106
self.filename, "w", newline="", encoding="utf-8"
@@ -94,7 +110,7 @@ def start_log(self, overwrite):
94110
["message_type", "n_datetime", "message"]
95111
)
96112

97-
def add_message(self, message_type, right_now, message):
113+
def __add_message(self, message_type, right_now, message):
98114
"""
99115
Add a new row to the log.
100116
@@ -110,8 +126,6 @@ def add_message(self, message_type, right_now, message):
110126
Message text.
111127
112128
"""
113-
if self.no_save:
114-
return
115129
with open(self.filename, "a", newline="", encoding="utf-8") as file:
116130
log_messages = csv.writer(file, delimiter=self.sep)
117131
log_messages.writerow([message_type, right_now, message])
@@ -177,7 +191,8 @@ def get_terminal_columns(self):
177191
return 80
178192

179193
def log(
180-
self, min_level, name, color, *message, decorator=" ", end="\n"
194+
self, min_level, name, color, *message, decorator=" ", end="\n",
195+
skip_save=False
181196
):
182197
"""
183198
Print a log message with name, color and decorator.
@@ -202,6 +217,9 @@ def log(
202217
end: Str. Default: "\n".
203218
End of the line for the printing.
204219
220+
skip_save: Bool. Default: False.
221+
Skip saving the log to a file.
222+
205223
"""
206224
if self.level >= min_level:
207225
# Get time in the given color.
@@ -218,8 +236,11 @@ def log(
218236
end=end
219237
)
220238

239+
if self.no_save or skip_save:
240+
return
241+
221242
# Add message to log file.
222-
self.add_message(name, now, f"{message}")
243+
self.__add_message(name, now, f"{message}")
223244

224245
def error(self, *message, err_id=0, err_str="", err_class=None):
225246
"""

0 commit comments

Comments
 (0)