PyEventEngine 0.1.4__tar.gz → 0.3.0__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.
- {PyEventEngine-0.1.4 → pyeventengine-0.3.0}/EventEngine/Core/__init__.py +99 -90
- PyEventEngine-0.1.4/EventEngine/Core/_Event.py → pyeventengine-0.3.0/EventEngine/Core/_event.py +382 -339
- PyEventEngine-0.1.4/EventEngine/Core/_Topic.py → pyeventengine-0.3.0/EventEngine/Core/_topic.py +153 -127
- pyeventengine-0.3.0/EventEngine/Core/_topic_c.py +94 -0
- pyeventengine-0.3.0/EventEngine/__init__.py +3 -0
- pyeventengine-0.3.0/EventEngine/cpp/topic_api.cpp +288 -0
- {PyEventEngine-0.1.4/PyEventEngine.egg-info → pyeventengine-0.3.0}/PKG-INFO +3 -1
- {PyEventEngine-0.1.4 → pyeventengine-0.3.0/PyEventEngine.egg-info}/PKG-INFO +3 -1
- {PyEventEngine-0.1.4 → pyeventengine-0.3.0}/PyEventEngine.egg-info/SOURCES.txt +4 -2
- {PyEventEngine-0.1.4 → pyeventengine-0.3.0}/setup.py +9 -4
- PyEventEngine-0.1.4/EventEngine/__init__.py +0 -3
- {PyEventEngine-0.1.4 → pyeventengine-0.3.0}/LICENSE +0 -0
- {PyEventEngine-0.1.4 → pyeventengine-0.3.0}/PyEventEngine.egg-info/dependency_links.txt +0 -0
- {PyEventEngine-0.1.4 → pyeventengine-0.3.0}/PyEventEngine.egg-info/top_level.txt +0 -0
- {PyEventEngine-0.1.4 → pyeventengine-0.3.0}/README.md +0 -0
- {PyEventEngine-0.1.4 → pyeventengine-0.3.0}/setup.cfg +0 -0
|
@@ -1,90 +1,99 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
import
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
self.
|
|
18
|
-
self.
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
formatter
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
LOGGER
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
logger_ch
|
|
75
|
-
logger_ch.
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
from .
|
|
1
|
+
import logging
|
|
2
|
+
import sys
|
|
3
|
+
import time
|
|
4
|
+
|
|
5
|
+
__all__ = ['set_logger', 'LOG_LEVEL_EVENT', 'Topic', 'RegularTopic', 'PatternTopic', 'EventHook', 'EventEngine', 'LOGGER', 'use_cpp_override']
|
|
6
|
+
LOGGER: logging.Logger | None = None
|
|
7
|
+
DEBUG = False
|
|
8
|
+
LOG_LEVEL = logging.INFO
|
|
9
|
+
LOG_LEVEL_EVENT = LOG_LEVEL - 5
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
class ColoredFormatter(logging.Formatter):
|
|
13
|
+
"""Logging Formatter to add colors and count warning / errors"""
|
|
14
|
+
|
|
15
|
+
def __init__(self, fmt=None, datefmt=None, style='{', validate=True):
|
|
16
|
+
self.format_str = '[{asctime} {name} - {threadName} - {module}:{lineno} - {levelname}] {message}' if fmt is None else fmt
|
|
17
|
+
self.date_fmt = '%Y-%m-%d %H:%M:%S' if datefmt is None else datefmt
|
|
18
|
+
self.style = style
|
|
19
|
+
|
|
20
|
+
super().__init__(fmt=fmt, datefmt=datefmt, style=style, validate=validate)
|
|
21
|
+
|
|
22
|
+
def _get_format(self, level: int, select=False):
|
|
23
|
+
bold_red = f"\33[31;1;3;4{';7' if select else ''}m"
|
|
24
|
+
red = f"\33[31;1{';7' if select else ''}m"
|
|
25
|
+
green = f"\33[32;1{';7' if select else ''}m"
|
|
26
|
+
yellow = f"\33[33;1{';7' if select else ''}m"
|
|
27
|
+
blue = f"\33[34;1{';7' if select else ''}m"
|
|
28
|
+
reset = "\33[0m"
|
|
29
|
+
|
|
30
|
+
if level <= logging.NOTSET:
|
|
31
|
+
fmt = self.format_str
|
|
32
|
+
elif level <= logging.DEBUG:
|
|
33
|
+
fmt = blue + self.format_str + reset
|
|
34
|
+
elif level <= logging.INFO:
|
|
35
|
+
fmt = green + self.format_str + reset
|
|
36
|
+
elif level <= logging.WARNING:
|
|
37
|
+
fmt = yellow + self.format_str + reset
|
|
38
|
+
elif level <= logging.ERROR:
|
|
39
|
+
fmt = red + self.format_str + reset
|
|
40
|
+
else:
|
|
41
|
+
fmt = bold_red + self.format_str + reset
|
|
42
|
+
|
|
43
|
+
return fmt
|
|
44
|
+
|
|
45
|
+
def format(self, record):
|
|
46
|
+
log_fmt = self._get_format(level=record.levelno)
|
|
47
|
+
formatter = logging.Formatter(log_fmt, datefmt=self.date_fmt, style=self.style)
|
|
48
|
+
return formatter.format(record)
|
|
49
|
+
|
|
50
|
+
|
|
51
|
+
def get_logger(**kwargs) -> logging.Logger:
|
|
52
|
+
level = kwargs.get('level', LOG_LEVEL)
|
|
53
|
+
stream_io = kwargs.get('stream_io', sys.stdout)
|
|
54
|
+
formatter = kwargs.get('formatter', ColoredFormatter())
|
|
55
|
+
global LOGGER
|
|
56
|
+
|
|
57
|
+
if LOGGER is not None:
|
|
58
|
+
return LOGGER
|
|
59
|
+
|
|
60
|
+
LOGGER = logging.getLogger('EventEngine')
|
|
61
|
+
LOGGER.setLevel(level)
|
|
62
|
+
logging.Formatter.converter = time.gmtime
|
|
63
|
+
|
|
64
|
+
if stream_io:
|
|
65
|
+
have_handler = False
|
|
66
|
+
for handler in LOGGER.handlers:
|
|
67
|
+
# noinspection PyUnresolvedReferences
|
|
68
|
+
if type(handler) == logging.StreamHandler and handler.stream == stream_io:
|
|
69
|
+
have_handler = True
|
|
70
|
+
break
|
|
71
|
+
|
|
72
|
+
if not have_handler:
|
|
73
|
+
logger_ch = logging.StreamHandler(stream=stream_io)
|
|
74
|
+
logger_ch.setLevel(level=level)
|
|
75
|
+
logger_ch.setFormatter(fmt=formatter)
|
|
76
|
+
LOGGER.addHandler(logger_ch)
|
|
77
|
+
|
|
78
|
+
return LOGGER
|
|
79
|
+
|
|
80
|
+
|
|
81
|
+
def set_logger(logger: logging.Logger):
|
|
82
|
+
global LOGGER
|
|
83
|
+
LOGGER = logger
|
|
84
|
+
|
|
85
|
+
_event.LOGGER = LOGGER.getChild('Event')
|
|
86
|
+
|
|
87
|
+
|
|
88
|
+
def use_cpp_override():
|
|
89
|
+
try:
|
|
90
|
+
from ._topic_c import Topic, RegularTopic, PatternTopic
|
|
91
|
+
from . import _topic as _Topic_native
|
|
92
|
+
except Exception as _:
|
|
93
|
+
LOGGER.warning(_)
|
|
94
|
+
|
|
95
|
+
|
|
96
|
+
_ = get_logger()
|
|
97
|
+
|
|
98
|
+
from ._topic import Topic, RegularTopic, PatternTopic
|
|
99
|
+
from ._event import EventHook, EventEngine
|