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.
Files changed (41) hide show
  1. {pyemailerajm-1.9.2 → pyemailerajm-1.9.2.1}/PKG-INFO +2 -2
  2. pyemailerajm-1.9.2.1/PyEmailerAJM/_version.py +1 -0
  3. {pyemailerajm-1.9.2 → pyemailerajm-1.9.2.1}/PyEmailerAJM/backend/logger.py +2 -1
  4. {pyemailerajm-1.9.2 → pyemailerajm-1.9.2.1}/PyEmailerAJM/continuous_monitor/backend/continuous_monitor_base.py +19 -5
  5. {pyemailerajm-1.9.2 → pyemailerajm-1.9.2.1}/PyEmailerAJM/continuous_monitor/continuous_monitor.py +20 -14
  6. {pyemailerajm-1.9.2 → pyemailerajm-1.9.2.1}/PyEmailerAJM.egg-info/PKG-INFO +2 -2
  7. pyemailerajm-1.9.2/PyEmailerAJM/_version.py +0 -1
  8. {pyemailerajm-1.9.2 → pyemailerajm-1.9.2.1}/LICENSE.txt +0 -0
  9. {pyemailerajm-1.9.2 → pyemailerajm-1.9.2.1}/PyEmailerAJM/__init__.py +0 -0
  10. {pyemailerajm-1.9.2 → pyemailerajm-1.9.2.1}/PyEmailerAJM/backend/__init__.py +0 -0
  11. {pyemailerajm-1.9.2 → pyemailerajm-1.9.2.1}/PyEmailerAJM/backend/enums.py +0 -0
  12. {pyemailerajm-1.9.2 → pyemailerajm-1.9.2.1}/PyEmailerAJM/backend/errs.py +0 -0
  13. {pyemailerajm-1.9.2 → pyemailerajm-1.9.2.1}/PyEmailerAJM/backend/the_sandman.py +0 -0
  14. {pyemailerajm-1.9.2 → pyemailerajm-1.9.2.1}/PyEmailerAJM/continuous_monitor/__init__.py +0 -0
  15. {pyemailerajm-1.9.2 → pyemailerajm-1.9.2.1}/PyEmailerAJM/continuous_monitor/backend/__init__.py +0 -0
  16. {pyemailerajm-1.9.2 → pyemailerajm-1.9.2.1}/PyEmailerAJM/continuous_monitor/backend/continuous_colorizer.py +0 -0
  17. {pyemailerajm-1.9.2 → pyemailerajm-1.9.2.1}/PyEmailerAJM/continuous_monitor/backend/email_state.py +0 -0
  18. {pyemailerajm-1.9.2 → pyemailerajm-1.9.2.1}/PyEmailerAJM/continuous_monitor/backend/snooze_tracking.py +0 -0
  19. {pyemailerajm-1.9.2 → pyemailerajm-1.9.2.1}/PyEmailerAJM/continuous_monitor/continuous_monitor_alert_send.py +0 -0
  20. {pyemailerajm-1.9.2 → pyemailerajm-1.9.2.1}/PyEmailerAJM/msg/__init__.py +0 -0
  21. {pyemailerajm-1.9.2 → pyemailerajm-1.9.2.1}/PyEmailerAJM/msg/alert_messages.py +0 -0
  22. {pyemailerajm-1.9.2 → pyemailerajm-1.9.2.1}/PyEmailerAJM/msg/factory.py +0 -0
  23. {pyemailerajm-1.9.2 → pyemailerajm-1.9.2.1}/PyEmailerAJM/msg/msg.py +0 -0
  24. {pyemailerajm-1.9.2 → pyemailerajm-1.9.2.1}/PyEmailerAJM/py_emailer_ajm.py +0 -0
  25. {pyemailerajm-1.9.2 → pyemailerajm-1.9.2.1}/PyEmailerAJM/searchers/__init__.py +0 -0
  26. {pyemailerajm-1.9.2 → pyemailerajm-1.9.2.1}/PyEmailerAJM/searchers/factory.py +0 -0
  27. {pyemailerajm-1.9.2 → pyemailerajm-1.9.2.1}/PyEmailerAJM/searchers/searchers.py +0 -0
  28. {pyemailerajm-1.9.2 → pyemailerajm-1.9.2.1}/PyEmailerAJM.egg-info/SOURCES.txt +0 -0
  29. {pyemailerajm-1.9.2 → pyemailerajm-1.9.2.1}/PyEmailerAJM.egg-info/dependency_links.txt +0 -0
  30. {pyemailerajm-1.9.2 → pyemailerajm-1.9.2.1}/PyEmailerAJM.egg-info/requires.txt +0 -0
  31. {pyemailerajm-1.9.2 → pyemailerajm-1.9.2.1}/PyEmailerAJM.egg-info/top_level.txt +0 -0
  32. {pyemailerajm-1.9.2 → pyemailerajm-1.9.2.1}/README.md +0 -0
  33. {pyemailerajm-1.9.2 → pyemailerajm-1.9.2.1}/setup.cfg +0 -0
  34. {pyemailerajm-1.9.2 → pyemailerajm-1.9.2.1}/setup.py +0 -0
  35. {pyemailerajm-1.9.2 → pyemailerajm-1.9.2.1}/tests/test_PyEmailerAJM.py +0 -0
  36. {pyemailerajm-1.9.2 → pyemailerajm-1.9.2.1}/tests/test_continuous_monitor_base.py +0 -0
  37. {pyemailerajm-1.9.2 → pyemailerajm-1.9.2.1}/tests/test_email_signature.py +0 -0
  38. {pyemailerajm-1.9.2 → pyemailerajm-1.9.2.1}/tests/test_logger.py +0 -0
  39. {pyemailerajm-1.9.2 → pyemailerajm-1.9.2.1}/tests/test_msg_properties.py +0 -0
  40. {pyemailerajm-1.9.2 → pyemailerajm-1.9.2.1}/tests/test_searcher_factory.py +0 -0
  41. {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, OutlookEmailHandler, StreamHandlerIgnoreExecInfo
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
- colorizer = ContinuousColorizer(logger=self.logger)
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.get('file_name', './snooze_tracker.json')),
82
- logger=self.logger,
95
+ Path(kwargs.pop('file_name', './snooze_tracker.json')),
96
+ logger=logger, **kwargs
83
97
  )
84
- sleep_timer = TheSandman(sleep_time_seconds=kwargs.get('sleep_time_seconds', None), logger=self.logger)
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:
@@ -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
- if self.has_overdue:
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