PyEmailerAJM 1.9.2__tar.gz → 1.9.2.1__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {pyemailerajm-1.9.2 → pyemailerajm-1.9.2.1}/PKG-INFO +2 -2
- pyemailerajm-1.9.2.1/PyEmailerAJM/_version.py +1 -0
- {pyemailerajm-1.9.2 → pyemailerajm-1.9.2.1}/PyEmailerAJM/backend/logger.py +2 -1
- {pyemailerajm-1.9.2 → pyemailerajm-1.9.2.1}/PyEmailerAJM/continuous_monitor/backend/continuous_monitor_base.py +19 -5
- {pyemailerajm-1.9.2 → pyemailerajm-1.9.2.1}/PyEmailerAJM/continuous_monitor/continuous_monitor.py +20 -14
- {pyemailerajm-1.9.2 → pyemailerajm-1.9.2.1}/PyEmailerAJM.egg-info/PKG-INFO +2 -2
- pyemailerajm-1.9.2/PyEmailerAJM/_version.py +0 -1
- {pyemailerajm-1.9.2 → pyemailerajm-1.9.2.1}/LICENSE.txt +0 -0
- {pyemailerajm-1.9.2 → pyemailerajm-1.9.2.1}/PyEmailerAJM/__init__.py +0 -0
- {pyemailerajm-1.9.2 → pyemailerajm-1.9.2.1}/PyEmailerAJM/backend/__init__.py +0 -0
- {pyemailerajm-1.9.2 → pyemailerajm-1.9.2.1}/PyEmailerAJM/backend/enums.py +0 -0
- {pyemailerajm-1.9.2 → pyemailerajm-1.9.2.1}/PyEmailerAJM/backend/errs.py +0 -0
- {pyemailerajm-1.9.2 → pyemailerajm-1.9.2.1}/PyEmailerAJM/backend/the_sandman.py +0 -0
- {pyemailerajm-1.9.2 → pyemailerajm-1.9.2.1}/PyEmailerAJM/continuous_monitor/__init__.py +0 -0
- {pyemailerajm-1.9.2 → pyemailerajm-1.9.2.1}/PyEmailerAJM/continuous_monitor/backend/__init__.py +0 -0
- {pyemailerajm-1.9.2 → pyemailerajm-1.9.2.1}/PyEmailerAJM/continuous_monitor/backend/continuous_colorizer.py +0 -0
- {pyemailerajm-1.9.2 → pyemailerajm-1.9.2.1}/PyEmailerAJM/continuous_monitor/backend/email_state.py +0 -0
- {pyemailerajm-1.9.2 → pyemailerajm-1.9.2.1}/PyEmailerAJM/continuous_monitor/backend/snooze_tracking.py +0 -0
- {pyemailerajm-1.9.2 → pyemailerajm-1.9.2.1}/PyEmailerAJM/continuous_monitor/continuous_monitor_alert_send.py +0 -0
- {pyemailerajm-1.9.2 → pyemailerajm-1.9.2.1}/PyEmailerAJM/msg/__init__.py +0 -0
- {pyemailerajm-1.9.2 → pyemailerajm-1.9.2.1}/PyEmailerAJM/msg/alert_messages.py +0 -0
- {pyemailerajm-1.9.2 → pyemailerajm-1.9.2.1}/PyEmailerAJM/msg/factory.py +0 -0
- {pyemailerajm-1.9.2 → pyemailerajm-1.9.2.1}/PyEmailerAJM/msg/msg.py +0 -0
- {pyemailerajm-1.9.2 → pyemailerajm-1.9.2.1}/PyEmailerAJM/py_emailer_ajm.py +0 -0
- {pyemailerajm-1.9.2 → pyemailerajm-1.9.2.1}/PyEmailerAJM/searchers/__init__.py +0 -0
- {pyemailerajm-1.9.2 → pyemailerajm-1.9.2.1}/PyEmailerAJM/searchers/factory.py +0 -0
- {pyemailerajm-1.9.2 → pyemailerajm-1.9.2.1}/PyEmailerAJM/searchers/searchers.py +0 -0
- {pyemailerajm-1.9.2 → pyemailerajm-1.9.2.1}/PyEmailerAJM.egg-info/SOURCES.txt +0 -0
- {pyemailerajm-1.9.2 → pyemailerajm-1.9.2.1}/PyEmailerAJM.egg-info/dependency_links.txt +0 -0
- {pyemailerajm-1.9.2 → pyemailerajm-1.9.2.1}/PyEmailerAJM.egg-info/requires.txt +0 -0
- {pyemailerajm-1.9.2 → pyemailerajm-1.9.2.1}/PyEmailerAJM.egg-info/top_level.txt +0 -0
- {pyemailerajm-1.9.2 → pyemailerajm-1.9.2.1}/README.md +0 -0
- {pyemailerajm-1.9.2 → pyemailerajm-1.9.2.1}/setup.cfg +0 -0
- {pyemailerajm-1.9.2 → pyemailerajm-1.9.2.1}/setup.py +0 -0
- {pyemailerajm-1.9.2 → pyemailerajm-1.9.2.1}/tests/test_PyEmailerAJM.py +0 -0
- {pyemailerajm-1.9.2 → pyemailerajm-1.9.2.1}/tests/test_continuous_monitor_base.py +0 -0
- {pyemailerajm-1.9.2 → pyemailerajm-1.9.2.1}/tests/test_email_signature.py +0 -0
- {pyemailerajm-1.9.2 → pyemailerajm-1.9.2.1}/tests/test_logger.py +0 -0
- {pyemailerajm-1.9.2 → pyemailerajm-1.9.2.1}/tests/test_msg_properties.py +0 -0
- {pyemailerajm-1.9.2 → pyemailerajm-1.9.2.1}/tests/test_searcher_factory.py +0 -0
- {pyemailerajm-1.9.2 → pyemailerajm-1.9.2.1}/tests/test_snooze_tracking.py +0 -0
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: PyEmailerAJM
|
|
3
|
-
Version: 1.9.2
|
|
3
|
+
Version: 1.9.2.1
|
|
4
4
|
Summary: Allows for automating sending Email with the Outlook Desktop client. Future releases will add more client support
|
|
5
5
|
Home-page: https://github.com/amcsparron2793-Water/PyEmailer
|
|
6
|
-
Download-URL: https://github.com/amcsparron2793-Water/PyEmailer/archive/refs/tags/1.9.2.tar.gz
|
|
6
|
+
Download-URL: https://github.com/amcsparron2793-Water/PyEmailer/archive/refs/tags/1.9.2.1.tar.gz
|
|
7
7
|
Author: Amcsparron
|
|
8
8
|
Author-email: amcsparron@albanyny.gov
|
|
9
9
|
License: MIT License
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
__version__ = '1.9.2.1'
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
from logging import Filter, DEBUG, ERROR, Handler, FileHandler, StreamHandler, Logger, WARNING
|
|
2
2
|
from typing import Union
|
|
3
3
|
|
|
4
|
-
from EasyLoggerAJM import EasyLogger
|
|
4
|
+
from EasyLoggerAJM import EasyLogger
|
|
5
|
+
from EasyLoggerAJM.logger_parts import OutlookEmailHandler, StreamHandlerIgnoreExecInfo
|
|
5
6
|
from PyEmailerAJM.msg import Msg
|
|
6
7
|
|
|
7
8
|
|
|
@@ -75,13 +75,28 @@ class ContinuousMonitorBase(PyEmailer, EmailState):
|
|
|
75
75
|
continue
|
|
76
76
|
raise ValueError(f"{c} must be a list of email addresses")
|
|
77
77
|
|
|
78
|
+
def _normalize_logger(self, **kwargs):
|
|
79
|
+
# Normalize logger: if it's a factory, call it to get the instance
|
|
80
|
+
logger_arg = kwargs.pop('logger', self.logger)
|
|
81
|
+
if callable(logger_arg) and not hasattr(logger_arg, 'info'):
|
|
82
|
+
# It's a factory, not a logger instance
|
|
83
|
+
logger = logger_arg()
|
|
84
|
+
else:
|
|
85
|
+
logger = logger_arg
|
|
86
|
+
return logger
|
|
87
|
+
|
|
78
88
|
def initialize_helper_classes(self, **kwargs):
|
|
79
|
-
|
|
89
|
+
|
|
90
|
+
logger = self._normalize_logger(**kwargs)
|
|
91
|
+
# remove old logger if any from kwargs after normalization
|
|
92
|
+
kwargs.pop('logger', None)
|
|
93
|
+
colorizer = ContinuousColorizer(logger=logger, **kwargs)
|
|
80
94
|
snooze_tracker = SnoozeTracking(
|
|
81
|
-
Path(kwargs.
|
|
82
|
-
logger=
|
|
95
|
+
Path(kwargs.pop('file_name', './snooze_tracker.json')),
|
|
96
|
+
logger=logger, **kwargs
|
|
83
97
|
)
|
|
84
|
-
sleep_timer = TheSandman(sleep_time_seconds=kwargs.
|
|
98
|
+
sleep_timer = TheSandman(sleep_time_seconds=kwargs.pop('sleep_time_seconds', None),
|
|
99
|
+
logger=logger, **kwargs)
|
|
85
100
|
return colorizer, snooze_tracker, sleep_timer
|
|
86
101
|
|
|
87
102
|
def log_dev_mode_warnings(self):
|
|
@@ -94,7 +109,6 @@ class ContinuousMonitorBase(PyEmailer, EmailState):
|
|
|
94
109
|
|
|
95
110
|
# Issue with PyEmailer 1.8.5 causes the base version to disable email handler
|
|
96
111
|
# (issue with check for setup_email_handler attr) - below is a functional work around
|
|
97
|
-
# TODO: allow the logger_class to be passed in as an arg
|
|
98
112
|
def email_handler_init(self, **kwargs):
|
|
99
113
|
logger_class = kwargs.get('logger_class', self.logger_class)
|
|
100
114
|
try:
|
{pyemailerajm-1.9.2 → pyemailerajm-1.9.2.1}/PyEmailerAJM/continuous_monitor/continuous_monitor.py
RENAMED
|
@@ -41,6 +41,25 @@ class ContinuousMonitor(ContinuousMonitorBase):
|
|
|
41
41
|
def _postprocess_alert(self, alert_level=None, **kwargs):
|
|
42
42
|
...
|
|
43
43
|
|
|
44
|
+
def _process_no_alert(self, **kwargs):
|
|
45
|
+
no_alert_str = kwargs.get('no_alert_string',
|
|
46
|
+
self.__class__.NO_ALERTS_STR.format(read_folder=self.read_folder,
|
|
47
|
+
num_snoozed=self.num_snoozed_msgs))
|
|
48
|
+
self.logger.info(no_alert_str, print_msg=True)
|
|
49
|
+
|
|
50
|
+
def _classify_and_process(self, **kwargs):
|
|
51
|
+
if self.has_overdue:
|
|
52
|
+
self._print_and_postprocess(AlertTypes.OVERDUE)
|
|
53
|
+
|
|
54
|
+
elif self.has_warning:
|
|
55
|
+
self._print_and_postprocess(AlertTypes.WARNING)
|
|
56
|
+
|
|
57
|
+
elif self.has_critical_warning:
|
|
58
|
+
self._print_and_postprocess(AlertTypes.CRITICAL_WARNING)
|
|
59
|
+
|
|
60
|
+
else:
|
|
61
|
+
self._process_no_alert(**kwargs)
|
|
62
|
+
|
|
44
63
|
# TODO: make no_alerts_string property so there is more flexibility with format
|
|
45
64
|
def check_for_alerts(self, **kwargs):
|
|
46
65
|
"""
|
|
@@ -56,20 +75,7 @@ class ContinuousMonitor(ContinuousMonitorBase):
|
|
|
56
75
|
self.logger.info(alert_check_string, print_msg=True)
|
|
57
76
|
self.refresh_messages()
|
|
58
77
|
|
|
59
|
-
|
|
60
|
-
self._print_and_postprocess(AlertTypes.OVERDUE)
|
|
61
|
-
|
|
62
|
-
elif self.has_warning:
|
|
63
|
-
self._print_and_postprocess(AlertTypes.WARNING)
|
|
64
|
-
|
|
65
|
-
elif self.has_critical_warning:
|
|
66
|
-
self._print_and_postprocess(AlertTypes.CRITICAL_WARNING)
|
|
67
|
-
|
|
68
|
-
else:
|
|
69
|
-
no_alert_str = kwargs.get('no_alert_string',
|
|
70
|
-
self.__class__.NO_ALERTS_STR.format(read_folder=self.read_folder,
|
|
71
|
-
num_snoozed=self.num_snoozed_msgs))
|
|
72
|
-
self.logger.info(no_alert_str, print_msg=True)
|
|
78
|
+
self._classify_and_process(**kwargs)
|
|
73
79
|
|
|
74
80
|
self.snooze_tracker.snooze_msgs(self.all_messages)
|
|
75
81
|
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: PyEmailerAJM
|
|
3
|
-
Version: 1.9.2
|
|
3
|
+
Version: 1.9.2.1
|
|
4
4
|
Summary: Allows for automating sending Email with the Outlook Desktop client. Future releases will add more client support
|
|
5
5
|
Home-page: https://github.com/amcsparron2793-Water/PyEmailer
|
|
6
|
-
Download-URL: https://github.com/amcsparron2793-Water/PyEmailer/archive/refs/tags/1.9.2.tar.gz
|
|
6
|
+
Download-URL: https://github.com/amcsparron2793-Water/PyEmailer/archive/refs/tags/1.9.2.1.tar.gz
|
|
7
7
|
Author: Amcsparron
|
|
8
8
|
Author-email: amcsparron@albanyny.gov
|
|
9
9
|
License: MIT License
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
__version__ = '1.9.2'
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{pyemailerajm-1.9.2 → pyemailerajm-1.9.2.1}/PyEmailerAJM/continuous_monitor/backend/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{pyemailerajm-1.9.2 → pyemailerajm-1.9.2.1}/PyEmailerAJM/continuous_monitor/backend/email_state.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|