cognite-extractor-utils 7.8.0__tar.gz → 7.8.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.

Potentially problematic release.


This version of cognite-extractor-utils might be problematic. Click here for more details.

Files changed (55) hide show
  1. {cognite_extractor_utils-7.8.0 → cognite_extractor_utils-7.8.1}/PKG-INFO +2 -2
  2. {cognite_extractor_utils-7.8.0 → cognite_extractor_utils-7.8.1}/cognite/extractorutils/__init__.py +1 -1
  3. {cognite_extractor_utils-7.8.0 → cognite_extractor_utils-7.8.1}/cognite/extractorutils/configtools/loaders.py +16 -2
  4. {cognite_extractor_utils-7.8.0 → cognite_extractor_utils-7.8.1}/cognite/extractorutils/unstable/core/base.py +6 -10
  5. {cognite_extractor_utils-7.8.0 → cognite_extractor_utils-7.8.1}/cognite/extractorutils/unstable/core/runtime.py +2 -2
  6. {cognite_extractor_utils-7.8.0 → cognite_extractor_utils-7.8.1}/pyproject.toml +2 -2
  7. {cognite_extractor_utils-7.8.0 → cognite_extractor_utils-7.8.1}/.gitignore +0 -0
  8. {cognite_extractor_utils-7.8.0 → cognite_extractor_utils-7.8.1}/LICENSE +0 -0
  9. {cognite_extractor_utils-7.8.0 → cognite_extractor_utils-7.8.1}/README.md +0 -0
  10. {cognite_extractor_utils-7.8.0 → cognite_extractor_utils-7.8.1}/cognite/examples/unstable/extractors/simple_extractor/config/config.yaml +0 -0
  11. {cognite_extractor_utils-7.8.0 → cognite_extractor_utils-7.8.1}/cognite/examples/unstable/extractors/simple_extractor/config/connection_config.yaml +0 -0
  12. {cognite_extractor_utils-7.8.0 → cognite_extractor_utils-7.8.1}/cognite/examples/unstable/extractors/simple_extractor/main.py +0 -0
  13. {cognite_extractor_utils-7.8.0 → cognite_extractor_utils-7.8.1}/cognite/extractorutils/_inner_util.py +0 -0
  14. {cognite_extractor_utils-7.8.0 → cognite_extractor_utils-7.8.1}/cognite/extractorutils/base.py +0 -0
  15. {cognite_extractor_utils-7.8.0 → cognite_extractor_utils-7.8.1}/cognite/extractorutils/configtools/__init__.py +0 -0
  16. {cognite_extractor_utils-7.8.0 → cognite_extractor_utils-7.8.1}/cognite/extractorutils/configtools/_util.py +0 -0
  17. {cognite_extractor_utils-7.8.0 → cognite_extractor_utils-7.8.1}/cognite/extractorutils/configtools/elements.py +0 -0
  18. {cognite_extractor_utils-7.8.0 → cognite_extractor_utils-7.8.1}/cognite/extractorutils/configtools/validators.py +0 -0
  19. {cognite_extractor_utils-7.8.0 → cognite_extractor_utils-7.8.1}/cognite/extractorutils/exceptions.py +0 -0
  20. {cognite_extractor_utils-7.8.0 → cognite_extractor_utils-7.8.1}/cognite/extractorutils/metrics.py +0 -0
  21. {cognite_extractor_utils-7.8.0 → cognite_extractor_utils-7.8.1}/cognite/extractorutils/py.typed +0 -0
  22. {cognite_extractor_utils-7.8.0 → cognite_extractor_utils-7.8.1}/cognite/extractorutils/statestore/__init__.py +0 -0
  23. {cognite_extractor_utils-7.8.0 → cognite_extractor_utils-7.8.1}/cognite/extractorutils/statestore/_base.py +0 -0
  24. {cognite_extractor_utils-7.8.0 → cognite_extractor_utils-7.8.1}/cognite/extractorutils/statestore/hashing.py +0 -0
  25. {cognite_extractor_utils-7.8.0 → cognite_extractor_utils-7.8.1}/cognite/extractorutils/statestore/watermark.py +0 -0
  26. {cognite_extractor_utils-7.8.0 → cognite_extractor_utils-7.8.1}/cognite/extractorutils/threading.py +0 -0
  27. {cognite_extractor_utils-7.8.0 → cognite_extractor_utils-7.8.1}/cognite/extractorutils/unstable/__init__.py +0 -0
  28. {cognite_extractor_utils-7.8.0 → cognite_extractor_utils-7.8.1}/cognite/extractorutils/unstable/configuration/__init__.py +0 -0
  29. {cognite_extractor_utils-7.8.0 → cognite_extractor_utils-7.8.1}/cognite/extractorutils/unstable/configuration/exceptions.py +0 -0
  30. {cognite_extractor_utils-7.8.0 → cognite_extractor_utils-7.8.1}/cognite/extractorutils/unstable/configuration/loaders.py +0 -0
  31. {cognite_extractor_utils-7.8.0 → cognite_extractor_utils-7.8.1}/cognite/extractorutils/unstable/configuration/models.py +0 -0
  32. {cognite_extractor_utils-7.8.0 → cognite_extractor_utils-7.8.1}/cognite/extractorutils/unstable/core/__init__.py +0 -0
  33. {cognite_extractor_utils-7.8.0 → cognite_extractor_utils-7.8.1}/cognite/extractorutils/unstable/core/_dto.py +0 -0
  34. {cognite_extractor_utils-7.8.0 → cognite_extractor_utils-7.8.1}/cognite/extractorutils/unstable/core/_messaging.py +0 -0
  35. {cognite_extractor_utils-7.8.0 → cognite_extractor_utils-7.8.1}/cognite/extractorutils/unstable/core/checkin_worker.py +0 -0
  36. {cognite_extractor_utils-7.8.0 → cognite_extractor_utils-7.8.1}/cognite/extractorutils/unstable/core/errors.py +0 -0
  37. {cognite_extractor_utils-7.8.0 → cognite_extractor_utils-7.8.1}/cognite/extractorutils/unstable/core/logger.py +0 -0
  38. {cognite_extractor_utils-7.8.0 → cognite_extractor_utils-7.8.1}/cognite/extractorutils/unstable/core/restart_policy.py +0 -0
  39. {cognite_extractor_utils-7.8.0 → cognite_extractor_utils-7.8.1}/cognite/extractorutils/unstable/core/tasks.py +0 -0
  40. {cognite_extractor_utils-7.8.0 → cognite_extractor_utils-7.8.1}/cognite/extractorutils/unstable/scheduling/__init__.py +0 -0
  41. {cognite_extractor_utils-7.8.0 → cognite_extractor_utils-7.8.1}/cognite/extractorutils/unstable/scheduling/_scheduler.py +0 -0
  42. {cognite_extractor_utils-7.8.0 → cognite_extractor_utils-7.8.1}/cognite/extractorutils/unstable/scheduling/_schedules.py +0 -0
  43. {cognite_extractor_utils-7.8.0 → cognite_extractor_utils-7.8.1}/cognite/extractorutils/uploader/__init__.py +0 -0
  44. {cognite_extractor_utils-7.8.0 → cognite_extractor_utils-7.8.1}/cognite/extractorutils/uploader/_base.py +0 -0
  45. {cognite_extractor_utils-7.8.0 → cognite_extractor_utils-7.8.1}/cognite/extractorutils/uploader/_metrics.py +0 -0
  46. {cognite_extractor_utils-7.8.0 → cognite_extractor_utils-7.8.1}/cognite/extractorutils/uploader/assets.py +0 -0
  47. {cognite_extractor_utils-7.8.0 → cognite_extractor_utils-7.8.1}/cognite/extractorutils/uploader/data_modeling.py +0 -0
  48. {cognite_extractor_utils-7.8.0 → cognite_extractor_utils-7.8.1}/cognite/extractorutils/uploader/events.py +0 -0
  49. {cognite_extractor_utils-7.8.0 → cognite_extractor_utils-7.8.1}/cognite/extractorutils/uploader/files.py +0 -0
  50. {cognite_extractor_utils-7.8.0 → cognite_extractor_utils-7.8.1}/cognite/extractorutils/uploader/raw.py +0 -0
  51. {cognite_extractor_utils-7.8.0 → cognite_extractor_utils-7.8.1}/cognite/extractorutils/uploader/time_series.py +0 -0
  52. {cognite_extractor_utils-7.8.0 → cognite_extractor_utils-7.8.1}/cognite/extractorutils/uploader/upload_failure_handler.py +0 -0
  53. {cognite_extractor_utils-7.8.0 → cognite_extractor_utils-7.8.1}/cognite/extractorutils/uploader_extractor.py +0 -0
  54. {cognite_extractor_utils-7.8.0 → cognite_extractor_utils-7.8.1}/cognite/extractorutils/uploader_types.py +0 -0
  55. {cognite_extractor_utils-7.8.0 → cognite_extractor_utils-7.8.1}/cognite/extractorutils/util.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: cognite-extractor-utils
3
- Version: 7.8.0
3
+ Version: 7.8.1
4
4
  Summary: Utilities for easier development of extractors for CDF
5
5
  Project-URL: repository, https://github.com/cognitedata/python-extractor-utils
6
6
  Author-email: Mathias Lohne <mathias.lohne@cognite.com>
@@ -14,7 +14,7 @@ Requires-Dist: azure-identity>=1.14.0
14
14
  Requires-Dist: azure-keyvault-secrets>=4.7.0
15
15
  Requires-Dist: cognite-sdk>=7.75.2
16
16
  Requires-Dist: croniter>=6.0.0
17
- Requires-Dist: dacite<1.9.0,>=1.6.0
17
+ Requires-Dist: dacite<1.10.0,>=1.9.2
18
18
  Requires-Dist: decorator>=5.1.1
19
19
  Requires-Dist: httpx<1,>=0.27.0
20
20
  Requires-Dist: jsonlines>=4.0.0
@@ -16,7 +16,7 @@
16
16
  Cognite extractor utils is a Python package that simplifies the development of new extractors.
17
17
  """
18
18
 
19
- __version__ = "7.8.0"
19
+ __version__ = "7.8.1"
20
20
  from .base import Extractor
21
21
 
22
22
  __all__ = ["Extractor"]
@@ -384,8 +384,22 @@ class ConfigResolver(Generic[CustomConfigClass]):
384
384
  self._cognite_client: CogniteClient | None = None
385
385
 
386
386
  def _reload_file(self) -> None:
387
- with open(self.config_path, encoding="utf-8") as stream:
388
- self._config_text = stream.read()
387
+ try:
388
+ with open(self.config_path, encoding="utf-8") as stream:
389
+ self._config_text = stream.read()
390
+ except UnicodeDecodeError:
391
+ _logger.warning(
392
+ f"Config file '{self.config_path}' is not valid UTF-8. Falling back to system default encoding."
393
+ )
394
+ try:
395
+ with open(self.config_path) as stream:
396
+ self._config_text = stream.read()
397
+ except Exception as e:
398
+ _logger.error(
399
+ f"Failed to read '{self.config_path}' with both UTF-8 and system default encoding. "
400
+ f"The file may be corrupt or in an unsupported format. Final error: {e}"
401
+ )
402
+ raise RuntimeError("Unable to read configuration file.") from e
389
403
 
390
404
  @property
391
405
  def cognite_client(self) -> CogniteClient | None:
@@ -220,14 +220,13 @@ class Extractor(Generic[ConfigType], CogniteLogger):
220
220
  case LogConsoleHandlerConfig() as console_handler:
221
221
  sh = logging.StreamHandler()
222
222
  sh.setFormatter(fmt)
223
- level_for_handler = _resolve_log_level(
224
- self.log_level_override if self.log_level_override else console_handler.level.value
225
- )
223
+ level_for_handler = _resolve_log_level(self.log_level_override or console_handler.level.value)
226
224
  sh.setLevel(level_for_handler)
227
225
 
228
226
  root.addHandler(sh)
229
227
 
230
228
  case LogFileHandlerConfig() as file_handler:
229
+ level_for_handler = _resolve_log_level(self.log_level_override or file_handler.level.value)
231
230
  try:
232
231
  fh = RobustFileHandler(
233
232
  filename=file_handler.path,
@@ -236,23 +235,20 @@ class Extractor(Generic[ConfigType], CogniteLogger):
236
235
  backupCount=file_handler.retention,
237
236
  create_dirs=True,
238
237
  )
239
- level_for_handler = _resolve_log_level(
240
- self.log_level_override if self.log_level_override else file_handler.level.value
241
- )
242
238
  fh.setLevel(level_for_handler)
243
239
  fh.setFormatter(fmt)
244
240
 
245
241
  root.addHandler(fh)
246
242
  except (OSError, PermissionError) as e:
247
- self._logger.warning(
248
- f"Could not create or write to log file {file_handler.path}: {e}. "
249
- "Falling back to console logging."
250
- )
251
243
  if not any(isinstance(h, logging.StreamHandler) for h in root.handlers):
252
244
  sh = logging.StreamHandler()
253
245
  sh.setFormatter(fmt)
254
246
  sh.setLevel(level_for_handler)
255
247
  root.addHandler(sh)
248
+ self._logger.warning(
249
+ f"Could not create or write to log file {file_handler.path}: {e}. "
250
+ "Defaulted to console logging."
251
+ )
256
252
 
257
253
  def _load_state_store(self) -> None:
258
254
  """
@@ -180,8 +180,8 @@ class Runtime(Generic[ExtractorType]):
180
180
  choices=["debug", "info", "warning", "error", "critical"],
181
181
  type=str,
182
182
  required=False,
183
- default="info",
184
- help="Set the logging level for the runtime. Default is 'info'.",
183
+ default=None,
184
+ help="Set the logging level for the runtime.",
185
185
  )
186
186
  argparser.add_argument(
187
187
  "--skip-init-checks",
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "cognite-extractor-utils"
3
- version = "7.8.0"
3
+ version = "7.8.1"
4
4
  description = "Utilities for easier development of extractors for CDF"
5
5
  authors = [
6
6
  {name = "Mathias Lohne", email = "mathias.lohne@cognite.com"}
@@ -19,7 +19,7 @@ dependencies = [
19
19
  "prometheus-client>=0.7.0,<=1.0.0",
20
20
  "arrow>=1.0.0",
21
21
  "pyyaml>=5.3.0,<7",
22
- "dacite>=1.6.0,<1.9.0",
22
+ "dacite>=1.9.2,<1.10.0",
23
23
  "psutil>=6.0.0",
24
24
  "decorator>=5.1.1",
25
25
  "more-itertools>=10.0.0",