openlineage-python 1.10.2__tar.gz → 1.11.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 (43) hide show
  1. {openlineage_python-1.10.2 → openlineage_python-1.11.2}/PKG-INFO +2 -2
  2. {openlineage_python-1.10.2 → openlineage_python-1.11.2}/openlineage/client/client.py +8 -8
  3. {openlineage_python-1.10.2 → openlineage_python-1.11.2}/openlineage/client/constants.py +1 -1
  4. {openlineage_python-1.10.2 → openlineage_python-1.11.2}/openlineage/client/facet.py +4 -2
  5. {openlineage_python-1.10.2 → openlineage_python-1.11.2}/pyproject.toml +1 -1
  6. {openlineage_python-1.10.2 → openlineage_python-1.11.2}/.gitignore +0 -0
  7. {openlineage_python-1.10.2 → openlineage_python-1.11.2}/README.md +0 -0
  8. {openlineage_python-1.10.2 → openlineage_python-1.11.2}/openlineage/client/__init__.py +0 -0
  9. {openlineage_python-1.10.2 → openlineage_python-1.11.2}/openlineage/client/filter.py +0 -0
  10. {openlineage_python-1.10.2 → openlineage_python-1.11.2}/openlineage/client/py.typed +0 -0
  11. {openlineage_python-1.10.2 → openlineage_python-1.11.2}/openlineage/client/run.py +0 -0
  12. {openlineage_python-1.10.2 → openlineage_python-1.11.2}/openlineage/client/serde.py +0 -0
  13. {openlineage_python-1.10.2 → openlineage_python-1.11.2}/openlineage/client/transport/__init__.py +0 -0
  14. {openlineage_python-1.10.2 → openlineage_python-1.11.2}/openlineage/client/transport/console.py +0 -0
  15. {openlineage_python-1.10.2 → openlineage_python-1.11.2}/openlineage/client/transport/factory.py +0 -0
  16. {openlineage_python-1.10.2 → openlineage_python-1.11.2}/openlineage/client/transport/file.py +0 -0
  17. {openlineage_python-1.10.2 → openlineage_python-1.11.2}/openlineage/client/transport/http.py +0 -0
  18. {openlineage_python-1.10.2 → openlineage_python-1.11.2}/openlineage/client/transport/kafka.py +0 -0
  19. {openlineage_python-1.10.2 → openlineage_python-1.11.2}/openlineage/client/transport/msk_iam.py +0 -0
  20. {openlineage_python-1.10.2 → openlineage_python-1.11.2}/openlineage/client/transport/noop.py +0 -0
  21. {openlineage_python-1.10.2 → openlineage_python-1.11.2}/openlineage/client/transport/transport.py +0 -0
  22. {openlineage_python-1.10.2 → openlineage_python-1.11.2}/openlineage/client/utils.py +0 -0
  23. {openlineage_python-1.10.2 → openlineage_python-1.11.2}/tests/__init__.py +0 -0
  24. {openlineage_python-1.10.2 → openlineage_python-1.11.2}/tests/config/config.yml +0 -0
  25. {openlineage_python-1.10.2 → openlineage_python-1.11.2}/tests/config/exact_filter.yml +0 -0
  26. {openlineage_python-1.10.2 → openlineage_python-1.11.2}/tests/config/http.yml +0 -0
  27. {openlineage_python-1.10.2 → openlineage_python-1.11.2}/tests/config/openlineage.yml +0 -0
  28. {openlineage_python-1.10.2 → openlineage_python-1.11.2}/tests/config/regex_filter.yml +0 -0
  29. {openlineage_python-1.10.2 → openlineage_python-1.11.2}/tests/conftest.py +0 -0
  30. {openlineage_python-1.10.2 → openlineage_python-1.11.2}/tests/nominal_time_without_end.json +0 -0
  31. {openlineage_python-1.10.2 → openlineage_python-1.11.2}/tests/serde_example_dataset_event.json +0 -0
  32. {openlineage_python-1.10.2 → openlineage_python-1.11.2}/tests/serde_example_job_event.json +0 -0
  33. {openlineage_python-1.10.2 → openlineage_python-1.11.2}/tests/serde_example_run_event.json +0 -0
  34. {openlineage_python-1.10.2 → openlineage_python-1.11.2}/tests/test_client.py +0 -0
  35. {openlineage_python-1.10.2 → openlineage_python-1.11.2}/tests/test_events.py +0 -0
  36. {openlineage_python-1.10.2 → openlineage_python-1.11.2}/tests/test_facet.py +0 -0
  37. {openlineage_python-1.10.2 → openlineage_python-1.11.2}/tests/test_factory.py +0 -0
  38. {openlineage_python-1.10.2 → openlineage_python-1.11.2}/tests/test_file.py +0 -0
  39. {openlineage_python-1.10.2 → openlineage_python-1.11.2}/tests/test_http.py +0 -0
  40. {openlineage_python-1.10.2 → openlineage_python-1.11.2}/tests/test_kafka.py +0 -0
  41. {openlineage_python-1.10.2 → openlineage_python-1.11.2}/tests/test_msk_iam.py +0 -0
  42. {openlineage_python-1.10.2 → openlineage_python-1.11.2}/tests/transport.py +0 -0
  43. {openlineage_python-1.10.2 → openlineage_python-1.11.2}/tox.ini +0 -0
@@ -1,6 +1,6 @@
1
- Metadata-Version: 2.1
1
+ Metadata-Version: 2.3
2
2
  Name: openlineage-python
3
- Version: 1.10.2
3
+ Version: 1.11.2
4
4
  Summary: OpenLineage Python Client
5
5
  Author-email: OpenLineage <info@openlineage.io>
6
6
  Keywords: openlineage
@@ -4,7 +4,7 @@ from __future__ import annotations
4
4
 
5
5
  import logging
6
6
  import os
7
- from typing import TYPE_CHECKING, Any, TypeVar, Union
7
+ from typing import TYPE_CHECKING, Any, TypeVar
8
8
 
9
9
  import attr
10
10
  from openlineage.client.filter import Filter, create_filter
@@ -86,20 +86,20 @@ class OpenLineageClient:
86
86
  ),
87
87
  )
88
88
 
89
- def emit(self, event: Union[RunEvent, DatasetEvent | JobEvent]) -> None: # noqa: UP007
89
+ def emit(self, event: RunEvent | DatasetEvent | JobEvent) -> None:
90
90
  if not (isinstance(event, (RunEvent, DatasetEvent, JobEvent))):
91
91
  msg = "`emit` only accepts RunEvent, DatasetEvent, JobEvent classes"
92
92
  raise ValueError(msg) # noqa: TRY004
93
+ if self._filters and self.filter_event(event) is None:
94
+ return
93
95
  if not self.transport:
94
96
  log.error("Tried to emit OpenLineage event, but transport is not configured.")
95
97
  return
98
+
96
99
  if log.isEnabledFor(logging.DEBUG):
97
100
  val = Serde.to_json(event).encode("utf-8")
98
101
  log.debug("OpenLineageClient will emit event %s", val)
99
- if self._filters and self.filter_event(event) is None:
100
- return
101
- if event:
102
- self.transport.emit(event)
102
+ self.transport.emit(event)
103
103
 
104
104
  @classmethod
105
105
  def from_environment(cls: type[_T]) -> _T:
@@ -112,8 +112,8 @@ class OpenLineageClient:
112
112
 
113
113
  def filter_event(
114
114
  self,
115
- event: Union[RunEvent, DatasetEvent, JobEvent], # noqa: UP007
116
- ) -> Union[RunEvent, DatasetEvent, JobEvent] | None: # noqa: UP007
115
+ event: RunEvent | DatasetEvent | JobEvent,
116
+ ) -> RunEvent | DatasetEvent | JobEvent | None:
117
117
  """Filters jobs according to config-defined events"""
118
118
  for _filter in self._filters:
119
119
  if isinstance(event, RunEvent) and _filter.filter_event(event) is None:
@@ -2,7 +2,7 @@
2
2
  # SPDX-License-Identifier: Apache-2.0
3
3
  from __future__ import annotations
4
4
 
5
- __version__ = "1.10.2"
5
+ __version__ = "1.11.2"
6
6
 
7
7
  DEFAULT_TIMEOUT_MS = 5000
8
8
  DEFAULT_NAMESPACE_NAME = "default"
@@ -145,10 +145,11 @@ class DataSourceDatasetFacet(BaseFacet):
145
145
 
146
146
  @attr.s
147
147
  class OutputStatisticsOutputDatasetFacet(BaseFacet):
148
- rowCount: int = attr.ib() # noqa: N815
148
+ rowCount: Optional[int] = attr.ib(default=None) # noqa: N815
149
149
  size: Optional[int] = attr.ib(default=None)
150
+ fileCount: Optional[int] = attr.ib(default=None) # noqa: N815
150
151
 
151
- _additional_skip_redact: ClassVar[List[str]] = ["rowCount", "size"]
152
+ _additional_skip_redact: ClassVar[List[str]] = ["rowCount", "size", "fileCount"]
152
153
 
153
154
  @staticmethod
154
155
  def _get_schema() -> str:
@@ -170,6 +171,7 @@ class ColumnMetric:
170
171
  class DataQualityMetricsInputDatasetFacet(BaseFacet):
171
172
  rowCount: Optional[int] = attr.ib(default=None) # noqa: N815
172
173
  bytes: Optional[int] = attr.ib(default=None) # noqa: A003
174
+ fileCount: Optional[int] = attr.ib(default=None) # noqa: N815
173
175
  columnMetrics: Dict[str, ColumnMetric] = attr.ib(factory=dict) # noqa: N815
174
176
 
175
177
  @staticmethod
@@ -6,7 +6,7 @@ requires = [
6
6
 
7
7
  [project]
8
8
  name = "openlineage-python"
9
- version = "1.10.2"
9
+ version = "1.11.2"
10
10
  description = "OpenLineage Python Client"
11
11
  readme = "README.md"
12
12
  keywords = [