splight-lib 5.4.4__tar.gz → 5.5.0.dev1__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 (95) hide show
  1. {splight_lib-5.4.4 → splight_lib-5.5.0.dev1}/PKG-INFO +1 -1
  2. {splight_lib-5.4.4 → splight_lib-5.5.0.dev1}/pyproject.toml +1 -1
  3. {splight_lib-5.4.4 → splight_lib-5.5.0.dev1}/splight_lib/client/datalake/__init__.py +2 -2
  4. splight_lib-5.5.0.dev1/splight_lib/client/datalake/builder.py +26 -0
  5. {splight_lib-5.4.4 → splight_lib-5.5.0.dev1}/splight_lib/client/datalake/remote_client.py +97 -8
  6. {splight_lib-5.4.4 → splight_lib-5.5.0.dev1}/splight_lib/client/tests/test_datalake.py +3 -3
  7. {splight_lib-5.4.4 → splight_lib-5.5.0.dev1}/splight_lib/models/base.py +1 -2
  8. {splight_lib-5.4.4 → splight_lib-5.5.0.dev1}/splight_lib/models/pipeline.py +1 -1
  9. {splight_lib-5.4.4 → splight_lib-5.5.0.dev1}/splight_lib/settings.py +11 -2
  10. splight_lib-5.4.4/splight_lib/client/datalake/builder.py +0 -24
  11. {splight_lib-5.4.4 → splight_lib-5.5.0.dev1}/LICENSE.txt +0 -0
  12. {splight_lib-5.4.4 → splight_lib-5.5.0.dev1}/README.md +0 -0
  13. {splight_lib-5.4.4 → splight_lib-5.5.0.dev1}/splight_lib/__init__.py +0 -0
  14. {splight_lib-5.4.4 → splight_lib-5.5.0.dev1}/splight_lib/abstract/__init__.py +0 -0
  15. {splight_lib-5.4.4 → splight_lib-5.5.0.dev1}/splight_lib/abstract/client.py +0 -0
  16. {splight_lib-5.4.4 → splight_lib-5.5.0.dev1}/splight_lib/auth/__init__.py +0 -0
  17. {splight_lib-5.4.4 → splight_lib-5.5.0.dev1}/splight_lib/auth/exceptions.py +0 -0
  18. {splight_lib-5.4.4 → splight_lib-5.5.0.dev1}/splight_lib/auth/mac_auth.py +0 -0
  19. {splight_lib-5.4.4 → splight_lib-5.5.0.dev1}/splight_lib/auth/token.py +0 -0
  20. {splight_lib-5.4.4 → splight_lib-5.5.0.dev1}/splight_lib/client/__init__.py +0 -0
  21. {splight_lib-5.4.4 → splight_lib-5.5.0.dev1}/splight_lib/client/database/__init__.py +0 -0
  22. {splight_lib-5.4.4 → splight_lib-5.5.0.dev1}/splight_lib/client/database/abstract.py +0 -0
  23. {splight_lib-5.4.4 → splight_lib-5.5.0.dev1}/splight_lib/client/database/builder.py +0 -0
  24. {splight_lib-5.4.4 → splight_lib-5.5.0.dev1}/splight_lib/client/database/classmap.py +0 -0
  25. {splight_lib-5.4.4 → splight_lib-5.5.0.dev1}/splight_lib/client/database/local_client.py +0 -0
  26. {splight_lib-5.4.4 → splight_lib-5.5.0.dev1}/splight_lib/client/database/remote_client.py +0 -0
  27. {splight_lib-5.4.4 → splight_lib-5.5.0.dev1}/splight_lib/client/datalake/abstract.py +0 -0
  28. {splight_lib-5.4.4 → splight_lib-5.5.0.dev1}/splight_lib/client/datalake/buffer.py +0 -0
  29. {splight_lib-5.4.4 → splight_lib-5.5.0.dev1}/splight_lib/client/datalake/exceptions.py +0 -0
  30. {splight_lib-5.4.4 → splight_lib-5.5.0.dev1}/splight_lib/client/datalake/local_client.py +0 -0
  31. {splight_lib-5.4.4 → splight_lib-5.5.0.dev1}/splight_lib/client/datalake/schemas.py +0 -0
  32. {splight_lib-5.4.4 → splight_lib-5.5.0.dev1}/splight_lib/client/exceptions.py +0 -0
  33. {splight_lib-5.4.4 → splight_lib-5.5.0.dev1}/splight_lib/client/file_handler.py +0 -0
  34. {splight_lib-5.4.4 → splight_lib-5.5.0.dev1}/splight_lib/client/filter.py +0 -0
  35. {splight_lib-5.4.4 → splight_lib-5.5.0.dev1}/splight_lib/client/hub/__init__.py +0 -0
  36. {splight_lib-5.4.4 → splight_lib-5.5.0.dev1}/splight_lib/client/hub/abstract.py +0 -0
  37. {splight_lib-5.4.4 → splight_lib-5.5.0.dev1}/splight_lib/client/hub/client.py +0 -0
  38. {splight_lib-5.4.4 → splight_lib-5.5.0.dev1}/splight_lib/client/tests/test_database.py +0 -0
  39. {splight_lib-5.4.4 → splight_lib-5.5.0.dev1}/splight_lib/component/__init__.py +0 -0
  40. {splight_lib-5.4.4 → splight_lib-5.5.0.dev1}/splight_lib/component/abstract.py +0 -0
  41. {splight_lib-5.4.4 → splight_lib-5.5.0.dev1}/splight_lib/component/exceptions.py +0 -0
  42. {splight_lib-5.4.4 → splight_lib-5.5.0.dev1}/splight_lib/component/spec.py +0 -0
  43. {splight_lib-5.4.4 → splight_lib-5.5.0.dev1}/splight_lib/component/tests/test_abstract.py +0 -0
  44. {splight_lib-5.4.4 → splight_lib-5.5.0.dev1}/splight_lib/component/tests/test_spec.py +0 -0
  45. {splight_lib-5.4.4 → splight_lib-5.5.0.dev1}/splight_lib/constants.py +0 -0
  46. {splight_lib-5.4.4 → splight_lib-5.5.0.dev1}/splight_lib/encryption.py +0 -0
  47. {splight_lib-5.4.4 → splight_lib-5.5.0.dev1}/splight_lib/execution/__init__.py +0 -0
  48. {splight_lib-5.4.4 → splight_lib-5.5.0.dev1}/splight_lib/execution/engine.py +0 -0
  49. {splight_lib-5.4.4 → splight_lib-5.5.0.dev1}/splight_lib/execution/exceptions.py +0 -0
  50. {splight_lib-5.4.4 → splight_lib-5.5.0.dev1}/splight_lib/execution/scheduling.py +0 -0
  51. {splight_lib-5.4.4 → splight_lib-5.5.0.dev1}/splight_lib/execution/task.py +0 -0
  52. {splight_lib-5.4.4 → splight_lib-5.5.0.dev1}/splight_lib/execution/tests/test_execution.py +0 -0
  53. {splight_lib-5.4.4 → splight_lib-5.5.0.dev1}/splight_lib/execution/tests/test_scheduling.py +0 -0
  54. {splight_lib-5.4.4 → splight_lib-5.5.0.dev1}/splight_lib/execution/trigger.py +0 -0
  55. {splight_lib-5.4.4 → splight_lib-5.5.0.dev1}/splight_lib/logging/__init__.py +0 -0
  56. {splight_lib-5.4.4 → splight_lib-5.5.0.dev1}/splight_lib/logging/_internal.py +0 -0
  57. {splight_lib-5.4.4 → splight_lib-5.5.0.dev1}/splight_lib/logging/component.py +0 -0
  58. {splight_lib-5.4.4 → splight_lib-5.5.0.dev1}/splight_lib/logging/constants.py +0 -0
  59. {splight_lib-5.4.4 → splight_lib-5.5.0.dev1}/splight_lib/logging/logging.py +0 -0
  60. {splight_lib-5.4.4 → splight_lib-5.5.0.dev1}/splight_lib/logging/tests/test_logging.py +0 -0
  61. {splight_lib-5.4.4 → splight_lib-5.5.0.dev1}/splight_lib/models/__init__.py +0 -0
  62. {splight_lib-5.4.4 → splight_lib-5.5.0.dev1}/splight_lib/models/alert.py +0 -0
  63. {splight_lib-5.4.4 → splight_lib-5.5.0.dev1}/splight_lib/models/asset.py +0 -0
  64. {splight_lib-5.4.4 → splight_lib-5.5.0.dev1}/splight_lib/models/attribute.py +0 -0
  65. {splight_lib-5.4.4 → splight_lib-5.5.0.dev1}/splight_lib/models/component.py +0 -0
  66. {splight_lib-5.4.4 → splight_lib-5.5.0.dev1}/splight_lib/models/dashboard.py +0 -0
  67. {splight_lib-5.4.4 → splight_lib-5.5.0.dev1}/splight_lib/models/data_address.py +0 -0
  68. {splight_lib-5.4.4 → splight_lib-5.5.0.dev1}/splight_lib/models/exceptions.py +0 -0
  69. {splight_lib-5.4.4 → splight_lib-5.5.0.dev1}/splight_lib/models/file.py +0 -0
  70. {splight_lib-5.4.4 → splight_lib-5.5.0.dev1}/splight_lib/models/function.py +0 -0
  71. {splight_lib-5.4.4 → splight_lib-5.5.0.dev1}/splight_lib/models/generic.py +0 -0
  72. {splight_lib-5.4.4 → splight_lib-5.5.0.dev1}/splight_lib/models/hub.py +0 -0
  73. {splight_lib-5.4.4 → splight_lib-5.5.0.dev1}/splight_lib/models/metadata.py +0 -0
  74. {splight_lib-5.4.4 → splight_lib-5.5.0.dev1}/splight_lib/models/native.py +0 -0
  75. {splight_lib-5.4.4 → splight_lib-5.5.0.dev1}/splight_lib/models/secret.py +0 -0
  76. {splight_lib-5.4.4 → splight_lib-5.5.0.dev1}/splight_lib/models/tests/models.json +0 -0
  77. {splight_lib-5.4.4 → splight_lib-5.5.0.dev1}/splight_lib/models/tests/test_component_object_instance.py +0 -0
  78. {splight_lib-5.4.4 → splight_lib-5.5.0.dev1}/splight_lib/models/tests/test_database_model.py +0 -0
  79. {splight_lib-5.4.4 → splight_lib-5.5.0.dev1}/splight_lib/models/tests/test_metadata.py +0 -0
  80. {splight_lib-5.4.4 → splight_lib-5.5.0.dev1}/splight_lib/models/tests/test_models.py +0 -0
  81. {splight_lib-5.4.4 → splight_lib-5.5.0.dev1}/splight_lib/restclient/__init__.py +0 -0
  82. {splight_lib-5.4.4 → splight_lib-5.5.0.dev1}/splight_lib/restclient/client.py +0 -0
  83. {splight_lib-5.4.4 → splight_lib-5.5.0.dev1}/splight_lib/restclient/exceptions.py +0 -0
  84. {splight_lib-5.4.4 → splight_lib-5.5.0.dev1}/splight_lib/restclient/tests/test_restclient.py +0 -0
  85. {splight_lib-5.4.4 → splight_lib-5.5.0.dev1}/splight_lib/restclient/types.py +0 -0
  86. {splight_lib-5.4.4 → splight_lib-5.5.0.dev1}/splight_lib/stringcase.py +0 -0
  87. {splight_lib-5.4.4 → splight_lib-5.5.0.dev1}/splight_lib/testing/__init__.py +0 -0
  88. {splight_lib-5.4.4 → splight_lib-5.5.0.dev1}/splight_lib/tests/FakeProc.py +0 -0
  89. {splight_lib-5.4.4 → splight_lib-5.5.0.dev1}/splight_lib/tests/asset_geometries.json +0 -0
  90. {splight_lib-5.4.4 → splight_lib-5.5.0.dev1}/splight_lib/tests/test_api_contracts.py +0 -0
  91. {splight_lib-5.4.4 → splight_lib-5.5.0.dev1}/splight_lib/tests/test_encryption.py +0 -0
  92. {splight_lib-5.4.4 → splight_lib-5.5.0.dev1}/splight_lib/utils/__init__.py +0 -0
  93. {splight_lib-5.4.4 → splight_lib-5.5.0.dev1}/splight_lib/utils/custom_model.py +0 -0
  94. {splight_lib-5.4.4 → splight_lib-5.5.0.dev1}/splight_lib/utils/hub.py +0 -0
  95. {splight_lib-5.4.4 → splight_lib-5.5.0.dev1}/splight_lib/version.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: splight-lib
3
- Version: 5.4.4
3
+ Version: 5.5.0.dev1
4
4
  Summary: Splight Library
5
5
  Author: Splight Dev
6
6
  Author-email: dev@splight-ae.com
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "splight-lib"
3
- version = "5.4.4"
3
+ version = "5.5.0.dev1"
4
4
  description = "Splight Library"
5
5
  authors = ["Splight Dev <dev@splight-ae.com>"]
6
6
  readme = "README.md"
@@ -1,9 +1,9 @@
1
1
  from splight_lib.client.datalake.builder import DatalakeClientBuilder
2
2
  from splight_lib.client.datalake.local_client import LocalDatalakeClient
3
- from splight_lib.client.datalake.remote_client import RemoteDatalakeClient
3
+ from splight_lib.client.datalake.remote_client import SyncRemoteDatalakeClient
4
4
 
5
5
  __all__ = [
6
6
  DatalakeClientBuilder,
7
- RemoteDatalakeClient,
7
+ SyncRemoteDatalakeClient,
8
8
  LocalDatalakeClient,
9
9
  ]
@@ -0,0 +1,26 @@
1
+ from typing import Any, Dict
2
+
3
+ from splight_lib.client.datalake.abstract import AbstractDatalakeClient
4
+ from splight_lib.client.datalake.local_client import LocalDatalakeClient
5
+ from splight_lib.client.datalake.remote_client import (
6
+ BufferedAsyncRemoteDatalakeClient,
7
+ BufferedSyncRemoteDataClient,
8
+ SyncRemoteDatalakeClient,
9
+ )
10
+ from splight_lib.settings import DatalakeClientType
11
+
12
+ DL_CLIENT_TYPE_MAP = {
13
+ DatalakeClientType.BUFFERED_ASYNC: BufferedAsyncRemoteDatalakeClient,
14
+ DatalakeClientType.BUFFERED_SYNC: BufferedSyncRemoteDataClient,
15
+ DatalakeClientType.SYNC: SyncRemoteDatalakeClient,
16
+ DatalakeClientType.LOCAL: LocalDatalakeClient,
17
+ }
18
+
19
+
20
+ class DatalakeClientBuilder:
21
+ @staticmethod
22
+ def build(
23
+ dl_client_type: DatalakeClientType = DatalakeClientType.BUFFERED_ASYNC,
24
+ parameters: Dict[str, Any] = {},
25
+ ) -> AbstractDatalakeClient:
26
+ return DL_CLIENT_TYPE_MAP[dl_client_type](**parameters)
@@ -26,7 +26,7 @@ from splight_lib.stringcase import camelcase
26
26
  logger = get_splight_logger()
27
27
 
28
28
 
29
- class RemoteDatalakeClient(AbstractDatalakeClient):
29
+ class SyncRemoteDatalakeClient(AbstractDatalakeClient):
30
30
  _PREFIX = "/data"
31
31
 
32
32
  def __init__(
@@ -198,7 +198,7 @@ class RemoteDatalakeClient(AbstractDatalakeClient):
198
198
  return df
199
199
 
200
200
 
201
- class BufferedRemoteDatalakeClient(RemoteDatalakeClient):
201
+ class BufferedAsyncRemoteDatalakeClient(SyncRemoteDatalakeClient):
202
202
  _PREFIX = "data"
203
203
 
204
204
  def __init__(
@@ -239,9 +239,9 @@ class BufferedRemoteDatalakeClient(RemoteDatalakeClient):
239
239
  buffer_size, buffer_timeout
240
240
  ),
241
241
  }
242
+ self._lock = Lock()
242
243
  self._flush_thread = Thread(target=self._flusher, daemon=True)
243
244
  self._flush_thread.start()
244
- self._lock = Lock()
245
245
  logger.debug(
246
246
  "Buffered Remote datalake client initialized.",
247
247
  tags=LogTags.DATALAKE,
@@ -277,22 +277,111 @@ class BufferedRemoteDatalakeClient(RemoteDatalakeClient):
277
277
  def _flush_buffer(
278
278
  self, collection: str, buffer: DatalakeDocumentBuffer
279
279
  ) -> None:
280
- if buffer.should_flush():
281
- try:
280
+ with self._lock:
281
+ if buffer.should_flush():
282
+ try:
283
+ logger.debug(
284
+ "Flushing datalake buffer with %s elements",
285
+ len(buffer.data),
286
+ )
287
+ self._send_documents(collection, buffer.data)
288
+ buffer.reset()
289
+ except Exception:
290
+ logger.error("Unable to save documents", exc_info=True)
291
+
292
+ @retry(SPLIGHT_REQUEST_EXCEPTIONS, tries=3, delay=2, jitter=1)
293
+ def _send_documents(self, collection: str, docs: List[Dict]) -> List[Dict]:
294
+ url = self._base_url / f"{self._PREFIX}/write"
295
+ collection = camelcase(collection)
296
+ data = {
297
+ "collection": collection,
298
+ "records": docs,
299
+ }
300
+ response = self._restclient.post(url, json=data)
301
+ response.raise_for_status()
302
+ return docs
303
+
304
+
305
+ class BufferedSyncRemoteDataClient(SyncRemoteDatalakeClient):
306
+ _PREFIX = "data"
307
+
308
+ def __init__(
309
+ self,
310
+ base_url: str,
311
+ access_id: str,
312
+ secret_key: str,
313
+ buffer_size: int = DL_BUFFER_SIZE,
314
+ buffer_timeout: float = DL_BUFFER_TIMEOUT,
315
+ *args,
316
+ **kwargs,
317
+ ):
318
+ super().__init__(
319
+ base_url,
320
+ access_id,
321
+ secret_key,
322
+ buffer_size,
323
+ buffer_timeout,
324
+ *args,
325
+ **kwargs,
326
+ )
327
+ self._base_url = furl(base_url)
328
+ token = SplightAuthToken(
329
+ access_key=access_id,
330
+ secret_key=secret_key,
331
+ )
332
+ self._restclient = SplightRestClient()
333
+ self._restclient.update_headers(token.header)
334
+
335
+ logger.debug(
336
+ "Initializing buffer with size %s and timeout %s",
337
+ buffer_size,
338
+ buffer_timeout,
339
+ )
340
+ self._data_buffers = {
341
+ "default": DatalakeDocumentBuffer(buffer_size, buffer_timeout),
342
+ "routine_evaluations": DatalakeDocumentBuffer(
343
+ buffer_size, buffer_timeout
344
+ ),
345
+ }
346
+ self._lock = Lock()
347
+ logger.debug(
348
+ "Synchronous Buffered Remote datalake client initialized.",
349
+ tags=LogTags.DATALAKE,
350
+ )
351
+
352
+ def save(
353
+ self, collection: str, instances: Union[List[Dict], Dict]
354
+ ) -> List[Dict]:
355
+ logger.debug("Saving documents in datalake")
356
+ instances = instances if isinstance(instances, List) else [instances]
357
+ if collection not in self._data_buffers:
358
+ raise InvalidCollectionName(collection)
359
+ buffer = self._data_buffers[collection]
360
+ with self._lock:
361
+ if buffer.should_flush():
282
362
  logger.debug(
283
363
  "Flushing datalake buffer with %s elements",
284
364
  len(buffer.data),
285
365
  )
286
366
  self._send_documents(collection, buffer.data)
287
367
  buffer.reset()
288
- except Exception:
289
- logger.error("Unable to save documents", exc_info=True)
368
+ buffer.add_documents(instances)
369
+ return instances
370
+
371
+ def save_dataframe(
372
+ self, dataframe: pd.DataFrame, collection: str = DEFAULT_COLLECTION
373
+ ) -> None:
374
+ logger.debug("Saving dataframe in datalake")
375
+ dataframe["timestamp"] = dataframe["timestamp"].apply(
376
+ lambda x: x.tz_localize(tz="UTC").isoformat()
377
+ )
378
+ instances = dataframe.to_dict("records")
379
+ self.save(collection, instances)
290
380
 
291
381
  @retry(SPLIGHT_REQUEST_EXCEPTIONS, tries=3, delay=2, jitter=1)
292
382
  def _send_documents(self, collection: str, docs: List[Dict]) -> List[Dict]:
293
383
  url = self._base_url / f"{self._PREFIX}/write"
294
384
  collection = camelcase(collection)
295
- collection = camelcase(collection)
296
385
  data = {
297
386
  "collection": collection,
298
387
  "records": docs,
@@ -2,7 +2,7 @@ import os
2
2
 
3
3
  from pytest_mock import MockerFixture
4
4
 
5
- from splight_lib.client.datalake import RemoteDatalakeClient # noqa E402
5
+ from splight_lib.client.datalake import SyncRemoteDatalakeClient # noqa E402
6
6
  from splight_lib.client.datalake.remote_client import ( # noqa E402
7
7
  SplightRestClient,
8
8
  )
@@ -34,7 +34,7 @@ def test_initialization(mocker: MockerFixture):
34
34
  "update_headers",
35
35
  return_value=None,
36
36
  )
37
- _ = RemoteDatalakeClient(
37
+ _ = SyncRemoteDatalakeClient(
38
38
  base_url=base_url,
39
39
  access_id=access_id,
40
40
  secret_key=secret_key,
@@ -49,7 +49,7 @@ def test_save(mocker: MockerFixture):
49
49
  secret_key = os.getenv("SECRET_KEY")
50
50
  access_id = os.getenv("ACCESS_ID")
51
51
 
52
- client = RemoteDatalakeClient(
52
+ client = SyncRemoteDatalakeClient(
53
53
  base_url=base_url,
54
54
  access_id=access_id,
55
55
  secret_key=secret_key,
@@ -170,8 +170,7 @@ class SplightDatalakeBaseModel(BaseModel):
170
170
  @staticmethod
171
171
  def __get_datalake_client() -> AbstractDatalakeClient:
172
172
  db_client = DatalakeClientBuilder.build(
173
- local=settings.LOCAL_ENVIRONMENT,
174
- use_buffer=settings.USE_BUFFER,
173
+ dl_client_type=settings.DL_CLIENT_TYPE,
175
174
  parameters={
176
175
  "path": settings.CURRENT_DIR,
177
176
  "base_url": settings.SPLIGHT_PLATFORM_API_HOST,
@@ -12,7 +12,7 @@ from splight_lib.stringcase import camelcase
12
12
 
13
13
  def get_datalake_client() -> AbstractDatalakeClient:
14
14
  client = DatalakeClientBuilder.build(
15
- local=settings.LOCAL_ENVIRONMENT,
15
+ dl_client_type=settings.DL_CLIENT_TYPE,
16
16
  parameters={
17
17
  "path": settings.CURRENT_DIR,
18
18
  "base_url": settings.SPLIGHT_PLATFORM_API_HOST,
@@ -1,4 +1,5 @@
1
1
  import os
2
+ from enum import Enum
2
3
  from typing import Any, Dict, Optional, Tuple, Type
3
4
 
4
5
  import yaml
@@ -11,6 +12,13 @@ from splight_lib.constants import DL_BUFFER_SIZE, DL_BUFFER_TIMEOUT
11
12
  SPLIGHT_HOME = os.path.join(os.path.expanduser("~"), ".splight")
12
13
 
13
14
 
15
+ class DatalakeClientType(str, Enum):
16
+ LOCAL = "local"
17
+ SYNC = "sync"
18
+ BUFFERED_SYNC = "buffered_sync"
19
+ BUFFERED_ASYNC = "buffered_async"
20
+
21
+
14
22
  class Singleton:
15
23
  def __new__(cls, *args, **kw):
16
24
  if not hasattr(cls, "_instance"):
@@ -58,12 +66,13 @@ class SplightSettings(BaseSettings, Singleton):
58
66
  SPLIGHT_PLATFORM_API_HOST: str = "https://api.splight-ai.com"
59
67
 
60
68
  # Parameters for local environment
69
+ # TODO: to deprecate this and its effects
61
70
  LOCAL_ENVIRONMENT: bool = False
62
71
  CURRENT_DIR: Optional[str] = None
63
72
 
64
- # Parameters for Buffered Datalake Client
73
+ # Parameters for the datalake client
65
74
  # Review if is better to use another class for only the DL Client settings
66
- USE_BUFFER: bool = True
75
+ DL_CLIENT_TYPE: DatalakeClientType = DatalakeClientType.BUFFERED_ASYNC
67
76
  DL_BUFFER_SIZE: int = DL_BUFFER_SIZE
68
77
  DL_BUFFER_TIMEOUT: float = DL_BUFFER_TIMEOUT # seconds
69
78
 
@@ -1,24 +0,0 @@
1
- from typing import Any, Dict
2
-
3
- from splight_lib.client.datalake.abstract import AbstractDatalakeClient
4
- from splight_lib.client.datalake.local_client import LocalDatalakeClient
5
- from splight_lib.client.datalake.remote_client import (
6
- BufferedRemoteDatalakeClient,
7
- RemoteDatalakeClient,
8
- )
9
-
10
-
11
- class DatalakeClientBuilder:
12
- @staticmethod
13
- def build(
14
- local: bool = False,
15
- use_buffer: bool = True,
16
- parameters: Dict[str, Any] = {},
17
- ) -> AbstractDatalakeClient:
18
- if local:
19
- dl_client = LocalDatalakeClient(**parameters)
20
- elif use_buffer:
21
- dl_client = BufferedRemoteDatalakeClient(**parameters)
22
- else:
23
- dl_client = RemoteDatalakeClient(**parameters)
24
- return dl_client
File without changes