|
8 | 8 | class logger: |
9 | 9 | @staticmethod |
10 | 10 | def log_title(title: str, title_len: int = TITLE_LEN): |
11 | | - if len(title) + MIN_SIDE_PADDING * 2 + SIDE_WHITE_SPACES * 2 > title_len: |
12 | | - need_sz = title_len - MIN_SIDE_PADDING * 2 - SIDE_WHITE_SPACES * 2 |
13 | | - |
14 | | - title = title[:need_sz] |
15 | | - |
16 | | - padding = title_len - (len(title) + SIDE_WHITE_SPACES * 2) |
17 | | - |
18 | | - right_padding = (padding + 1) // 2 |
19 | | - left_padding = padding // 2 |
20 | | - |
21 | | - print( |
22 | | - f"{left_padding * '='}{SIDE_WHITE_SPACES * ' '}{title}{SIDE_WHITE_SPACES * ' '}{right_padding * '='}" |
| 11 | + final_len = max( |
| 12 | + title_len, len(title) + MIN_SIDE_PADDING * 2 + SIDE_WHITE_SPACES * 2 |
23 | 13 | ) |
24 | 14 |
|
| 15 | + print(f"{f" {title} ":=^{final_len}}") |
| 16 | + |
25 | 17 | @staticmethod |
26 | 18 | def log_to_csv(csv_name: str, field_names: tuple[str], row: dict | None = None): |
27 | 19 | if isinstance(row, dict): |
28 | | - file = open(csv_name, 'a', newline='') |
29 | | - writer = csv.DictWriter(file, fieldnames=field_names) |
30 | | - elif row == None: |
31 | | - file = open(csv_name, 'w', newline='') |
32 | | - writer = csv.writer(file) |
33 | | - row = field_names |
| 20 | + with open(csv_name, 'a', newline='') as file: |
| 21 | + writer = csv.DictWriter(file, fieldnames=field_names) |
| 22 | + writer.writerow(row) |
| 23 | + elif row is None: |
| 24 | + with open(csv_name, 'w', newline='') as file: |
| 25 | + writer = csv.writer(file) |
| 26 | + writer.writerow(field_names) |
34 | 27 | else: |
35 | 28 | raise TypeError(f"row has type {type(row)} but must be [ dict | None ]") |
36 | 29 |
|
37 | | - writer.writerow(row) |
38 | | - |
39 | | - file.close() |
40 | | - |
41 | 30 | @staticmethod |
42 | 31 | def log_to_stdout(info: dict): |
43 | 32 | print(info) |
|
0 commit comments