splight-lib 2.3.23__tar.gz → 2.3.25__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 (104) hide show
  1. {splight-lib-2.3.23/splight_lib.egg-info → splight-lib-2.3.25}/PKG-INFO +1 -1
  2. {splight-lib-2.3.23 → splight-lib-2.3.25}/setup.py +1 -1
  3. {splight-lib-2.3.23 → splight-lib-2.3.25}/splight_lib/client/database/remote_client.py +2 -0
  4. {splight-lib-2.3.23 → splight-lib-2.3.25}/splight_lib/logging/_internal.py +10 -4
  5. {splight-lib-2.3.23 → splight-lib-2.3.25}/splight_lib/logging/component.py +8 -0
  6. splight-lib-2.3.25/splight_lib/logging/constants.py +5 -0
  7. {splight-lib-2.3.23 → splight-lib-2.3.25}/splight_lib/logging/logging.py +48 -1
  8. {splight-lib-2.3.23 → splight-lib-2.3.25/splight_lib.egg-info}/PKG-INFO +1 -1
  9. {splight-lib-2.3.23 → splight-lib-2.3.25}/splight_lib.egg-info/SOURCES.txt +1 -0
  10. {splight-lib-2.3.23 → splight-lib-2.3.25}/splight_models/base.py +2 -2
  11. {splight-lib-2.3.23 → splight-lib-2.3.25}/LICENSE.txt +0 -0
  12. {splight-lib-2.3.23 → splight-lib-2.3.25}/README.md +0 -0
  13. {splight-lib-2.3.23 → splight-lib-2.3.25}/setup.cfg +0 -0
  14. {splight-lib-2.3.23 → splight-lib-2.3.25}/splight_abstract/__init__.py +0 -0
  15. {splight-lib-2.3.23 → splight-lib-2.3.25}/splight_abstract/auth/__init__.py +0 -0
  16. {splight-lib-2.3.23 → splight-lib-2.3.25}/splight_abstract/auth/abstract.py +0 -0
  17. {splight-lib-2.3.23 → splight-lib-2.3.25}/splight_abstract/auth/exceptions.py +0 -0
  18. {splight-lib-2.3.23 → splight-lib-2.3.25}/splight_abstract/cache/__init__.py +0 -0
  19. {splight-lib-2.3.23 → splight-lib-2.3.25}/splight_abstract/cache/abstract.py +0 -0
  20. {splight-lib-2.3.23 → splight-lib-2.3.25}/splight_abstract/client/__init__.py +0 -0
  21. {splight-lib-2.3.23 → splight-lib-2.3.25}/splight_abstract/client/abstract.py +0 -0
  22. {splight-lib-2.3.23 → splight-lib-2.3.25}/splight_abstract/client/filter.py +0 -0
  23. {splight-lib-2.3.23 → splight-lib-2.3.25}/splight_abstract/client/hooks.py +0 -0
  24. {splight-lib-2.3.23 → splight-lib-2.3.25}/splight_abstract/communication/__init__.py +0 -0
  25. {splight-lib-2.3.23 → splight-lib-2.3.25}/splight_abstract/communication/abstract.py +0 -0
  26. {splight-lib-2.3.23 → splight-lib-2.3.25}/splight_abstract/communication/exceptions.py +0 -0
  27. {splight-lib-2.3.23 → splight-lib-2.3.25}/splight_abstract/database/__init__.py +0 -0
  28. {splight-lib-2.3.23 → splight-lib-2.3.25}/splight_abstract/database/abstract.py +0 -0
  29. {splight-lib-2.3.23 → splight-lib-2.3.25}/splight_abstract/datalake/__init__.py +0 -0
  30. {splight-lib-2.3.23 → splight-lib-2.3.25}/splight_abstract/datalake/abstract.py +0 -0
  31. {splight-lib-2.3.23 → splight-lib-2.3.25}/splight_abstract/deployment/__init__.py +0 -0
  32. {splight-lib-2.3.23 → splight-lib-2.3.25}/splight_abstract/deployment/abstract.py +0 -0
  33. {splight-lib-2.3.23 → splight-lib-2.3.25}/splight_abstract/endpoints/__init__.py +0 -0
  34. {splight-lib-2.3.23 → splight-lib-2.3.25}/splight_abstract/hub/__init__.py +0 -0
  35. {splight-lib-2.3.23 → splight-lib-2.3.25}/splight_abstract/hub/abstract.py +0 -0
  36. {splight-lib-2.3.23 → splight-lib-2.3.25}/splight_abstract/notification/__init__.py +0 -0
  37. {splight-lib-2.3.23 → splight-lib-2.3.25}/splight_abstract/notification/abstract.py +0 -0
  38. {splight-lib-2.3.23 → splight-lib-2.3.25}/splight_abstract/remote/__init__.py +0 -0
  39. {splight-lib-2.3.23 → splight-lib-2.3.25}/splight_abstract/remote/abstract.py +0 -0
  40. {splight-lib-2.3.23 → splight-lib-2.3.25}/splight_abstract/storage/__init__.py +0 -0
  41. {splight-lib-2.3.23 → splight-lib-2.3.25}/splight_abstract/storage/abstract.py +0 -0
  42. {splight-lib-2.3.23 → splight-lib-2.3.25}/splight_lib/__init__.py +0 -0
  43. {splight-lib-2.3.23 → splight-lib-2.3.25}/splight_lib/auth/__init__.py +0 -0
  44. {splight-lib-2.3.23 → splight-lib-2.3.25}/splight_lib/auth/exceptions.py +0 -0
  45. {splight-lib-2.3.23 → splight-lib-2.3.25}/splight_lib/auth/mac_auth.py +0 -0
  46. {splight-lib-2.3.23 → splight-lib-2.3.25}/splight_lib/auth/token.py +0 -0
  47. {splight-lib-2.3.23 → splight-lib-2.3.25}/splight_lib/client/__init__.py +0 -0
  48. {splight-lib-2.3.23 → splight-lib-2.3.25}/splight_lib/client/communication/__init__.py +0 -0
  49. {splight-lib-2.3.23 → splight-lib-2.3.25}/splight_lib/client/communication/classmap.py +0 -0
  50. {splight-lib-2.3.23 → splight-lib-2.3.25}/splight_lib/client/communication/local_client.py +0 -0
  51. {splight-lib-2.3.23 → splight-lib-2.3.25}/splight_lib/client/communication/remote_client.py +0 -0
  52. {splight-lib-2.3.23 → splight-lib-2.3.25}/splight_lib/client/database/__init__.py +0 -0
  53. {splight-lib-2.3.23 → splight-lib-2.3.25}/splight_lib/client/database/classmap.py +0 -0
  54. {splight-lib-2.3.23 → splight-lib-2.3.25}/splight_lib/client/database/local_client.py +0 -0
  55. {splight-lib-2.3.23 → splight-lib-2.3.25}/splight_lib/client/datalake/__init__.py +0 -0
  56. {splight-lib-2.3.23 → splight-lib-2.3.25}/splight_lib/client/datalake/local_client.py +0 -0
  57. {splight-lib-2.3.23 → splight-lib-2.3.25}/splight_lib/client/datalake/remote_client.py +0 -0
  58. {splight-lib-2.3.23 → splight-lib-2.3.25}/splight_lib/client/exceptions.py +0 -0
  59. {splight-lib-2.3.23 → splight-lib-2.3.25}/splight_lib/client/file_handler.py +0 -0
  60. {splight-lib-2.3.23 → splight-lib-2.3.25}/splight_lib/client/filter.py +0 -0
  61. {splight-lib-2.3.23 → splight-lib-2.3.25}/splight_lib/client/hub/__init__.py +0 -0
  62. {splight-lib-2.3.23 → splight-lib-2.3.25}/splight_lib/client/hub/client.py +0 -0
  63. {splight-lib-2.3.23 → splight-lib-2.3.25}/splight_lib/client/settings.py +0 -0
  64. {splight-lib-2.3.23 → splight-lib-2.3.25}/splight_lib/component/__init__.py +0 -0
  65. {splight-lib-2.3.23 → splight-lib-2.3.25}/splight_lib/component/abstract.py +0 -0
  66. {splight-lib-2.3.23 → splight-lib-2.3.25}/splight_lib/encryption.py +0 -0
  67. {splight-lib-2.3.23 → splight-lib-2.3.25}/splight_lib/execution.py +0 -0
  68. {splight-lib-2.3.23 → splight-lib-2.3.25}/splight_lib/logging/__init__.py +0 -0
  69. {splight-lib-2.3.23 → splight-lib-2.3.25}/splight_lib/restclient/__init__.py +0 -0
  70. {splight-lib-2.3.23 → splight-lib-2.3.25}/splight_lib/restclient/client.py +0 -0
  71. {splight-lib-2.3.23 → splight-lib-2.3.25}/splight_lib/restclient/exceptions.py +0 -0
  72. {splight-lib-2.3.23 → splight-lib-2.3.25}/splight_lib/restclient/types.py +0 -0
  73. {splight-lib-2.3.23 → splight-lib-2.3.25}/splight_lib/settings.py +0 -0
  74. {splight-lib-2.3.23 → splight-lib-2.3.25}/splight_lib/webhook.py +0 -0
  75. {splight-lib-2.3.23 → splight-lib-2.3.25}/splight_lib.egg-info/dependency_links.txt +0 -0
  76. {splight-lib-2.3.23 → splight-lib-2.3.25}/splight_lib.egg-info/not-zip-safe +0 -0
  77. {splight-lib-2.3.23 → splight-lib-2.3.25}/splight_lib.egg-info/requires.txt +0 -0
  78. {splight-lib-2.3.23 → splight-lib-2.3.25}/splight_lib.egg-info/top_level.txt +0 -0
  79. {splight-lib-2.3.23 → splight-lib-2.3.25}/splight_models/__init__.py +0 -0
  80. {splight-lib-2.3.23 → splight-lib-2.3.25}/splight_models/alert.py +0 -0
  81. {splight-lib-2.3.23 → splight-lib-2.3.25}/splight_models/asset.py +0 -0
  82. {splight-lib-2.3.23 → splight-lib-2.3.25}/splight_models/attribute.py +0 -0
  83. {splight-lib-2.3.23 → splight-lib-2.3.25}/splight_models/blockchain.py +0 -0
  84. {splight-lib-2.3.23 → splight-lib-2.3.25}/splight_models/channel.py +0 -0
  85. {splight-lib-2.3.23 → splight-lib-2.3.25}/splight_models/communication/__init__.py +0 -0
  86. {splight-lib-2.3.23 → splight-lib-2.3.25}/splight_models/communication/context.py +0 -0
  87. {splight-lib-2.3.23 → splight-lib-2.3.25}/splight_models/communication/events.py +0 -0
  88. {splight-lib-2.3.23 → splight-lib-2.3.25}/splight_models/component.py +0 -0
  89. {splight-lib-2.3.23 → splight-lib-2.3.25}/splight_models/constants.py +0 -0
  90. {splight-lib-2.3.23 → splight-lib-2.3.25}/splight_models/credential.py +0 -0
  91. {splight-lib-2.3.23 → splight-lib-2.3.25}/splight_models/datalake.py +0 -0
  92. {splight-lib-2.3.23 → splight-lib-2.3.25}/splight_models/deployment.py +0 -0
  93. {splight-lib-2.3.23 → splight-lib-2.3.25}/splight_models/exception.py +0 -0
  94. {splight-lib-2.3.23 → splight-lib-2.3.25}/splight_models/file.py +0 -0
  95. {splight-lib-2.3.23 → splight-lib-2.3.25}/splight_models/hub.py +0 -0
  96. {splight-lib-2.3.23 → splight-lib-2.3.25}/splight_models/namespace.py +0 -0
  97. {splight-lib-2.3.23 → splight-lib-2.3.25}/splight_models/notification.py +0 -0
  98. {splight-lib-2.3.23 → splight-lib-2.3.25}/splight_models/query.py +0 -0
  99. {splight-lib-2.3.23 → splight-lib-2.3.25}/splight_models/secret.py +0 -0
  100. {splight-lib-2.3.23 → splight-lib-2.3.25}/splight_models/setpoint.py +0 -0
  101. {splight-lib-2.3.23 → splight-lib-2.3.25}/splight_models/severity.py +0 -0
  102. {splight-lib-2.3.23 → splight-lib-2.3.25}/splight_models/user.py +0 -0
  103. {splight-lib-2.3.23 → splight-lib-2.3.25}/splight_models/variable.py +0 -0
  104. {splight-lib-2.3.23 → splight-lib-2.3.25}/splight_models/webhook.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: splight-lib
3
- Version: 2.3.23
3
+ Version: 2.3.25
4
4
  Summary: Library for public use. Splight
5
5
  Home-page: UNKNOWN
6
6
  Author: Splight
@@ -14,7 +14,7 @@ test_requires = [
14
14
 
15
15
  setup(
16
16
  name="splight-lib",
17
- version="2.3.23",
17
+ version="2.3.25",
18
18
  author="Splight",
19
19
  author_email="factory@splight-ae.com",
20
20
  packages=find_packages(),
@@ -56,6 +56,7 @@ class RemoteDatabaseClient(AbstractDatabaseClient, AbstractRemoteClient):
56
56
  ------
57
57
  InvalidModel thrown when the model name is not correct.
58
58
  """
59
+
59
60
  logger.debug("Saving instance %s.", instance.id, tags=LogTags.DATABASE)
60
61
 
61
62
  constructor = type(instance)
@@ -205,6 +206,7 @@ class RemoteDatabaseClient(AbstractDatabaseClient, AbstractRemoteClient):
205
206
  def _create(self, path: str, instance: BaseModel) -> Dict:
206
207
  url = self._base_url / f"{path}/"
207
208
  data = json.loads(instance.json(exclude_none=True))
209
+
208
210
  if isinstance(instance, File):
209
211
  with open(instance.file, "rb") as f:
210
212
  file = {"file": f}
@@ -4,15 +4,17 @@ from logging import INFO, Formatter, Handler
4
4
  from typing import Optional
5
5
 
6
6
  from concurrent_log_handler import ConcurrentRotatingFileHandler
7
+ from splight_lib.logging.constants import LOGGING_DEV
7
8
  from splight_lib.logging.logging import (
9
+ ElasticDocumentFormatter,
8
10
  SplightFormatter,
9
11
  SplightLogger,
12
+ elastic_document_handler,
10
13
  standard_output_handler,
11
14
  )
12
15
  from strenum import UppercaseStrEnum
13
16
 
14
17
 
15
-
16
18
  # TODO: add more tags
17
19
  class LogTags(UppercaseStrEnum):
18
20
  RUNTIME = auto()
@@ -53,9 +55,13 @@ def get_splight_logger(name: Optional[str] = None):
53
55
  name = "splight-dev"
54
56
  logger = SplightLogger(name=name)
55
57
  logger.propagate = False
56
- handler = standard_output_handler(log_level=logger.level)
57
- logger.addHandler(handler)
58
-
58
+ stdout_handler = standard_output_handler(log_level=logger.level)
59
+ logger.addHandler(stdout_handler)
60
+ es_handler = elastic_document_handler(
61
+ formatter=ElasticDocumentFormatter(type=LOGGING_DEV),
62
+ log_level=logger.level,
63
+ )
64
+ logger.addHandler(es_handler)
59
65
  # Add logger.level to root logger
60
66
  logger.setLevel(logger.level)
61
67
  return logger
@@ -3,9 +3,12 @@ from logging import INFO, Formatter, Handler, basicConfig
3
3
  from typing import Optional
4
4
 
5
5
  from concurrent_log_handler import ConcurrentRotatingFileHandler
6
+ from splight_lib.logging.constants import LOGGING_COMPONENTS
6
7
  from splight_lib.logging.logging import (
8
+ ElasticDocumentFormatter,
7
9
  SplightFormatter,
8
10
  SplightLogger,
11
+ elastic_document_handler,
9
12
  standard_output_handler,
10
13
  )
11
14
 
@@ -36,6 +39,11 @@ def get_component_logger(name: Optional[str] = None):
36
39
  logger.addHandler(stdout_handler)
37
40
  file_handler = component_file_handler(log_level=logger.level)
38
41
  logger.addHandler(file_handler)
42
+ es_handler = elastic_document_handler(
43
+ formatter=ElasticDocumentFormatter(type=LOGGING_COMPONENTS),
44
+ log_level=logger.level,
45
+ )
46
+ logger.addHandler(es_handler)
39
47
 
40
48
  # Add logger.level to root logger
41
49
  logger.setLevel(logger.level)
@@ -0,0 +1,5 @@
1
+ from typing import Literal, get_args
2
+
3
+ LogType = Literal["dev", "components"]
4
+
5
+ LOGGING_DEV, LOGGING_COMPONENTS = get_args(LogType)
@@ -1,3 +1,4 @@
1
+ import json
1
2
  import os
2
3
  import sys
3
4
  import time
@@ -14,7 +15,11 @@ from logging import (
14
15
  StreamHandler,
15
16
  )
16
17
  from logging import root as rootLogger
17
- from typing import Dict, Optional
18
+ from typing import Dict, Literal, Optional
19
+
20
+ from concurrent_log_handler import ConcurrentRotatingFileHandler
21
+ from pydantic import BaseSettings
22
+ from splight_lib.logging.constants import LOGGING_DEV, LogType
18
23
 
19
24
  TAGS_KEY = "tags"
20
25
 
@@ -36,6 +41,21 @@ class SplightFormatter(Formatter):
36
41
  return formatter.format(record)
37
42
 
38
43
 
44
+ class ElasticDocumentFormatter(Formatter):
45
+ def __init__(self, fmt: str = None, type: LogType = LOGGING_DEV) -> None:
46
+ super().__init__(fmt=fmt)
47
+ self.type = type
48
+
49
+ @property
50
+ def _extra_fields(self) -> Dict:
51
+ return {
52
+ "type": self.type,
53
+ }
54
+
55
+ def format(self, record):
56
+ return json.dumps({**record.__dict__, **self._extra_fields})
57
+
58
+
39
59
  class SplightLogger(Logger):
40
60
  def __init__(self, name: str = None) -> None:
41
61
  # this is to avoid adding handlers to root logger
@@ -145,3 +165,30 @@ def standard_output_handler(
145
165
  handler.setFormatter(formatter)
146
166
  handler.setLevel(log_level)
147
167
  return handler
168
+
169
+
170
+ class ElasticDocumentHandlerSettings(BaseSettings):
171
+ splight_elastic_logs_filename: str = "/tmp/splight_elastic_logs.log"
172
+ splight_elastic_logs_max_bytes: int = 5e6
173
+ splight_elastic_logs_backup_count: int = 5
174
+
175
+ @property
176
+ def file_handler_settings(self) -> Dict:
177
+ return {
178
+ "filename": self.splight_elastic_logs_filename,
179
+ "maxBytes": self.splight_elastic_logs_max_bytes,
180
+ "backupCount": self.splight_elastic_logs_backup_count,
181
+ "encoding": "utf-8",
182
+ }
183
+
184
+
185
+ def elastic_document_handler(
186
+ formatter: Optional[Formatter] = SplightFormatter(),
187
+ log_level: Optional[str] = INFO,
188
+ ) -> Handler:
189
+ settings = ElasticDocumentHandlerSettings()
190
+ handler = ConcurrentRotatingFileHandler(**settings.file_handler_settings)
191
+
192
+ handler.setFormatter(formatter)
193
+ handler.setLevel(log_level)
194
+ return handler
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: splight-lib
3
- Version: 2.3.23
3
+ Version: 2.3.25
4
4
  Summary: Library for public use. Splight
5
5
  Home-page: UNKNOWN
6
6
  Author: Splight
@@ -67,6 +67,7 @@ splight_lib/component/abstract.py
67
67
  splight_lib/logging/__init__.py
68
68
  splight_lib/logging/_internal.py
69
69
  splight_lib/logging/component.py
70
+ splight_lib/logging/constants.py
70
71
  splight_lib/logging/logging.py
71
72
  splight_lib/restclient/__init__.py
72
73
  splight_lib/restclient/client.py
@@ -14,6 +14,6 @@ class SplightBaseModel(BaseModel):
14
14
  """Get class name of the model from the repr string
15
15
  Class attribute is mapped to the metaclass.
16
16
  """
17
- clean_path = "".join([c for c in str(cls) if c.isalpha() or c =="."])
17
+ clean_path = "".join([c for c in str(cls) if c.isalpha() or c == "."])
18
18
  class_name = clean_path.split(".")[-1]
19
- return class_name
19
+ return class_name
File without changes
File without changes
File without changes