PyEmailerAJM 1.9.3__tar.gz → 1.9.3.2__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.3 → pyemailerajm-1.9.3.2}/PKG-INFO +2 -2
  2. pyemailerajm-1.9.3.2/PyEmailerAJM/_version.py +1 -0
  3. {pyemailerajm-1.9.3 → pyemailerajm-1.9.3.2}/PyEmailerAJM/msg/msg.py +3 -2
  4. {pyemailerajm-1.9.3 → pyemailerajm-1.9.3.2}/PyEmailerAJM/py_emailer_ajm.py +2 -1
  5. {pyemailerajm-1.9.3 → pyemailerajm-1.9.3.2}/PyEmailerAJM/searchers/__init__.py +3 -1
  6. {pyemailerajm-1.9.3 → pyemailerajm-1.9.3.2}/PyEmailerAJM/searchers/factory.py +3 -3
  7. {pyemailerajm-1.9.3 → pyemailerajm-1.9.3.2}/PyEmailerAJM/searchers/searchers.py +7 -7
  8. {pyemailerajm-1.9.3 → pyemailerajm-1.9.3.2}/PyEmailerAJM.egg-info/PKG-INFO +2 -2
  9. pyemailerajm-1.9.3/PyEmailerAJM/_version.py +0 -1
  10. {pyemailerajm-1.9.3 → pyemailerajm-1.9.3.2}/LICENSE.txt +0 -0
  11. {pyemailerajm-1.9.3 → pyemailerajm-1.9.3.2}/PyEmailerAJM/__init__.py +0 -0
  12. {pyemailerajm-1.9.3 → pyemailerajm-1.9.3.2}/PyEmailerAJM/backend/__init__.py +0 -0
  13. {pyemailerajm-1.9.3 → pyemailerajm-1.9.3.2}/PyEmailerAJM/backend/enums.py +0 -0
  14. {pyemailerajm-1.9.3 → pyemailerajm-1.9.3.2}/PyEmailerAJM/backend/errs.py +0 -0
  15. {pyemailerajm-1.9.3 → pyemailerajm-1.9.3.2}/PyEmailerAJM/backend/logger.py +0 -0
  16. {pyemailerajm-1.9.3 → pyemailerajm-1.9.3.2}/PyEmailerAJM/backend/the_sandman.py +0 -0
  17. {pyemailerajm-1.9.3 → pyemailerajm-1.9.3.2}/PyEmailerAJM/continuous_monitor/__init__.py +0 -0
  18. {pyemailerajm-1.9.3 → pyemailerajm-1.9.3.2}/PyEmailerAJM/continuous_monitor/backend/__init__.py +0 -0
  19. {pyemailerajm-1.9.3 → pyemailerajm-1.9.3.2}/PyEmailerAJM/continuous_monitor/backend/continuous_colorizer.py +0 -0
  20. {pyemailerajm-1.9.3 → pyemailerajm-1.9.3.2}/PyEmailerAJM/continuous_monitor/backend/continuous_monitor_base.py +0 -0
  21. {pyemailerajm-1.9.3 → pyemailerajm-1.9.3.2}/PyEmailerAJM/continuous_monitor/backend/email_state.py +0 -0
  22. {pyemailerajm-1.9.3 → pyemailerajm-1.9.3.2}/PyEmailerAJM/continuous_monitor/backend/snooze_tracking.py +0 -0
  23. {pyemailerajm-1.9.3 → pyemailerajm-1.9.3.2}/PyEmailerAJM/continuous_monitor/continuous_monitor.py +0 -0
  24. {pyemailerajm-1.9.3 → pyemailerajm-1.9.3.2}/PyEmailerAJM/continuous_monitor/continuous_monitor_alert_send.py +0 -0
  25. {pyemailerajm-1.9.3 → pyemailerajm-1.9.3.2}/PyEmailerAJM/msg/__init__.py +0 -0
  26. {pyemailerajm-1.9.3 → pyemailerajm-1.9.3.2}/PyEmailerAJM/msg/alert_messages.py +0 -0
  27. {pyemailerajm-1.9.3 → pyemailerajm-1.9.3.2}/PyEmailerAJM/msg/factory.py +0 -0
  28. {pyemailerajm-1.9.3 → pyemailerajm-1.9.3.2}/PyEmailerAJM.egg-info/SOURCES.txt +0 -0
  29. {pyemailerajm-1.9.3 → pyemailerajm-1.9.3.2}/PyEmailerAJM.egg-info/dependency_links.txt +0 -0
  30. {pyemailerajm-1.9.3 → pyemailerajm-1.9.3.2}/PyEmailerAJM.egg-info/requires.txt +0 -0
  31. {pyemailerajm-1.9.3 → pyemailerajm-1.9.3.2}/PyEmailerAJM.egg-info/top_level.txt +0 -0
  32. {pyemailerajm-1.9.3 → pyemailerajm-1.9.3.2}/README.md +0 -0
  33. {pyemailerajm-1.9.3 → pyemailerajm-1.9.3.2}/setup.cfg +0 -0
  34. {pyemailerajm-1.9.3 → pyemailerajm-1.9.3.2}/setup.py +0 -0
  35. {pyemailerajm-1.9.3 → pyemailerajm-1.9.3.2}/tests/test_PyEmailerAJM.py +0 -0
  36. {pyemailerajm-1.9.3 → pyemailerajm-1.9.3.2}/tests/test_continuous_monitor_base.py +0 -0
  37. {pyemailerajm-1.9.3 → pyemailerajm-1.9.3.2}/tests/test_email_signature.py +0 -0
  38. {pyemailerajm-1.9.3 → pyemailerajm-1.9.3.2}/tests/test_logger.py +0 -0
  39. {pyemailerajm-1.9.3 → pyemailerajm-1.9.3.2}/tests/test_msg_properties.py +0 -0
  40. {pyemailerajm-1.9.3 → pyemailerajm-1.9.3.2}/tests/test_searcher_factory.py +0 -0
  41. {pyemailerajm-1.9.3 → pyemailerajm-1.9.3.2}/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.3
3
+ Version: 1.9.3.2
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.3.tar.gz
6
+ Download-URL: https://github.com/amcsparron2793-Water/PyEmailer/archive/refs/tags/1.9.3.2.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.3.2'
@@ -80,7 +80,8 @@ class _BasicMsgProperties:
80
80
 
81
81
  @importance.setter
82
82
  def importance(self, value: Union[EmailMsgImportanceLevel, str, int]):
83
- if value in EmailMsgImportanceLevel or value in [x.name for x in EmailMsgImportanceLevel]:
83
+ # the previous comparison caused an issue with 3.8 compatability
84
+ if value in [x for x in EmailMsgImportanceLevel] or value in [x.name for x in EmailMsgImportanceLevel]:
84
85
  if isinstance(value, str):
85
86
  value = EmailMsgImportanceLevel[value].value
86
87
  elif isinstance(value, EmailMsgImportanceLevel):
@@ -93,7 +94,7 @@ class _BasicMsgProperties:
93
94
 
94
95
 
95
96
  class Msg(_BasicMsgProperties):
96
- def __init__(self, email_item: win32.CDispatch or extract_msg.Message, **kwargs):
97
+ def __init__(self, email_item: Union[win32.CDispatch,extract_msg.Message], **kwargs):
97
98
  super().__init__(email_item)
98
99
  self._logger: Logger = kwargs.get('logger', getLogger(__name__))
99
100
  self.send_success = False
@@ -8,6 +8,7 @@ install win32 with pip install pywin32
8
8
  from os import environ
9
9
  from os.path import isfile, join, isdir
10
10
  from tempfile import gettempdir
11
+ from typing import Optional
11
12
 
12
13
  # install win32 with pip install pywin32
13
14
  import win32com.client as win32
@@ -272,7 +273,7 @@ class PyEmailer(EmailerInitializer):
272
273
  else:
273
274
  print("Please respond with 'y' or 'n'.")
274
275
 
275
- def display_tracker_check(self) -> bool | None:
276
+ def display_tracker_check(self) -> Optional[bool]:
276
277
  if self.display_window:
277
278
  c = self._display_tracking_warning_confirm()
278
279
  if c:
@@ -7,7 +7,9 @@
7
7
  # "urn:schemas:httpmail:subject".
8
8
  # - Wrap aliases in [brackets] when calling Items.Restrict.
9
9
  # - For dates, use ISO-like strings or properly constructed COM dates.
10
- OUTLOOK_ATSQL_ALIASES: tuple[str, ...] = (
10
+ from typing import Tuple
11
+
12
+ OUTLOOK_ATSQL_ALIASES: Tuple[str, ...] = (
11
13
  # Mail/general
12
14
  'Subject', 'Body', 'Categories', 'MessageClass', 'Size', 'Importance', 'Sensitivity', 'UnRead', 'HasAttachment',
13
15
  'EntryID', 'ConversationTopic',
@@ -1,5 +1,5 @@
1
1
  from collections.abc import Callable
2
- from typing import Type
2
+ from typing import Type, Tuple, Optional
3
3
 
4
4
  from . import BaseSearcher, AttributeSearcher, OUTLOOK_ATSQL_ALIASES
5
5
 
@@ -9,12 +9,12 @@ class SearcherFactory:
9
9
  """Dynamic factory returning a searcher class or instance for a given search option."""
10
10
 
11
11
  @staticmethod
12
- def available_types() -> tuple[str, ...]:
12
+ def available_types() -> Tuple[str, ...]:
13
13
  """All registered specialized search types (from subclasses that set SEARCH_TYPE)."""
14
14
  return tuple(sorted(BaseSearcher._REGISTRY.keys()))
15
15
 
16
16
  @staticmethod
17
- def get_searcher(search_type: str, *, attribute: str | None = None, **kwargs) -> BaseSearcher:
17
+ def get_searcher(search_type: str, *, attribute: Optional[str] = None, **kwargs) -> BaseSearcher:
18
18
  """
19
19
  Return an instance of a searcher matching `search_type`.
20
20
 
@@ -1,6 +1,6 @@
1
1
  from abc import abstractmethod
2
2
  from collections.abc import Callable, Iterable
3
- from typing import List, Dict, Type, Optional
3
+ from typing import List, Dict, Type, Optional, Tuple
4
4
 
5
5
  # Provide a safe fallback for CDispatch when pywin32 is unavailable (e.g., in test environments)
6
6
  try: # pragma: no cover - trivial import guard
@@ -17,11 +17,11 @@ class BaseSearcher:
17
17
  # Global registry of searchers keyed by SEARCH_TYPE
18
18
  _REGISTRY: Dict[str, Type['BaseSearcher']] = {}
19
19
 
20
- SEARCH_TYPE: str | None = None # subclasses set this to a unique key (e.g. 'subject')
20
+ SEARCH_TYPE: Optional[str] = None # subclasses set this to a unique key (e.g. 'subject')
21
21
  SEARCHING_STRING = "Searching for Messages..." # partial match ok: {partial_match_ok}"
22
22
 
23
23
  # NEW: class-level default that can be set once for all instances
24
- _DEFAULT_GET_MESSAGES: Optional[Callable[..., Iterable]] = None
24
+ _DEFAULT_GET_MESSAGES: Optional[Callable] = None#[..., Iterable]] = None
25
25
 
26
26
  def __init_subclass__(cls, **kwargs):
27
27
  super().__init_subclass__(**kwargs)
@@ -30,7 +30,7 @@ class BaseSearcher:
30
30
  key = cls.SEARCH_TYPE.lower()
31
31
  BaseSearcher._REGISTRY[key] = cls
32
32
 
33
- def __init__(self, logger=None, *, get_messages: Callable[..., Iterable] | None = None, **kwargs):
33
+ def __init__(self, logger=None, *, get_messages: Optional[Callable] = None, **kwargs):
34
34
  self._searching_string = None
35
35
  if logger:
36
36
  self.logger = logger
@@ -49,7 +49,7 @@ class BaseSearcher:
49
49
  ...
50
50
 
51
51
  @classmethod
52
- def set_default_get_messages(cls, provider: Callable[..., Iterable]) -> None:
52
+ def set_default_get_messages(cls, provider: Callable) -> None:
53
53
  """Set a global default provider for all searchers (current and future instances).
54
54
  Typically provider = py_emailer.GetMessages.
55
55
  """
@@ -362,7 +362,7 @@ class SubjectSearcher(BaseSearcher):
362
362
  # "urn:schemas:httpmail:subject".
363
363
  # - Wrap aliases in [brackets] when calling Items.Restrict.
364
364
  # - For dates, use ISO-like strings or properly constructed COM dates.
365
- OUTLOOK_ATSQL_ALIASES: tuple[str, ...] = (
365
+ OUTLOOK_ATSQL_ALIASES: Tuple[str, ...] = (
366
366
  # Mail/general
367
367
  'Subject', 'Body', 'Categories', 'MessageClass', 'Size', 'Importance', 'Sensitivity', 'UnRead', 'HasAttachment',
368
368
  'EntryID', 'ConversationTopic',
@@ -375,7 +375,7 @@ OUTLOOK_ATSQL_ALIASES: tuple[str, ...] = (
375
375
  )
376
376
 
377
377
 
378
- def get_outlook_sql_aliases() -> Iterable[str]:
378
+ def get_outlook_sql_aliases() -> Iterable:#[str]:
379
379
  """Return a tuple of commonly recognized Outlook @SQL field aliases.
380
380
 
381
381
  Outlook's @SQL provider recognizes a set of field aliases that can be referenced with [Alias]
@@ -1,9 +1,9 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: PyEmailerAJM
3
- Version: 1.9.3
3
+ Version: 1.9.3.2
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.3.tar.gz
6
+ Download-URL: https://github.com/amcsparron2793-Water/PyEmailer/archive/refs/tags/1.9.3.2.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.3'
File without changes
File without changes
File without changes
File without changes