etlantic-datafusion 0.20.0__py3-none-any.whl

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.
@@ -0,0 +1,29 @@
1
+ """Experimental DataFusion plugin package (stub; not production-ready in 0.20.0)."""
2
+
3
+ from __future__ import annotations
4
+
5
+ __version__ = "0.20.0"
6
+
7
+ STREAMING_STABILITY = "experimental"
8
+
9
+
10
+ def create_plugin():
11
+ """Entry-point factory for ``etlantic.dataframe_plugins`` (experimental stub)."""
12
+ from etlantic_datafusion.plugin import DataFusionPlugin
13
+
14
+ return DataFusionPlugin()
15
+
16
+
17
+ def create_transform_compiler():
18
+ """Entry-point factory for ``etlantic.transform_compilers`` (experimental stub)."""
19
+ from etlantic_datafusion.compiler import DataFusionTransformCompiler
20
+
21
+ return DataFusionTransformCompiler()
22
+
23
+
24
+ __all__ = [
25
+ "STREAMING_STABILITY",
26
+ "__version__",
27
+ "create_plugin",
28
+ "create_transform_compiler",
29
+ ]
@@ -0,0 +1,71 @@
1
+ """Experimental DataFusion portable transform compiler (kernel claim set later)."""
2
+
3
+ from __future__ import annotations
4
+
5
+ from collections.abc import Mapping, Sequence
6
+ from typing import Any
7
+
8
+ from etlantic.transform.compiler import (
9
+ CompiledTransform,
10
+ TransformCapabilities,
11
+ TransformCompileContext,
12
+ TransformCompilerInfo,
13
+ TransformExecutionContext,
14
+ TransformOutputBundle,
15
+ TransformPlanningContext,
16
+ TransformSupportReport,
17
+ )
18
+
19
+ __version__ = "0.20.0"
20
+
21
+
22
+ class DataFusionTransformCompiler:
23
+ """Experimental compiler — advertise no graduated claims until conformance."""
24
+
25
+ info = TransformCompilerInfo(
26
+ name="etlantic-datafusion",
27
+ version=__version__,
28
+ engine="datafusion",
29
+ capabilities=TransformCapabilities(
30
+ profiles=frozenset(),
31
+ actions=frozenset(),
32
+ functions=frozenset(),
33
+ lazy=True,
34
+ eager=False,
35
+ ),
36
+ )
37
+
38
+ def analyze(
39
+ self,
40
+ definition: Mapping[str, Any],
41
+ *,
42
+ context: TransformPlanningContext,
43
+ requirements: Mapping[str, Sequence[str]] | None = None,
44
+ ) -> TransformSupportReport:
45
+ raise NotImplementedError(
46
+ "etlantic-datafusion portable compiler is experimental; no claims "
47
+ "experimental as of 0.20.0"
48
+ )
49
+
50
+ def compile(
51
+ self,
52
+ definition: Mapping[str, Any],
53
+ *,
54
+ context: TransformCompileContext,
55
+ requirements: Mapping[str, Sequence[str]] | None = None,
56
+ ) -> CompiledTransform:
57
+ raise NotImplementedError(
58
+ "etlantic-datafusion portable compile is experimental/ungraduated"
59
+ )
60
+
61
+ async def execute(
62
+ self,
63
+ compiled: CompiledTransform,
64
+ *,
65
+ inputs: Mapping[str, Any],
66
+ parameters: Mapping[str, Any],
67
+ context: TransformExecutionContext,
68
+ ) -> TransformOutputBundle:
69
+ raise NotImplementedError(
70
+ "etlantic-datafusion portable execute is experimental/ungraduated"
71
+ )
@@ -0,0 +1,41 @@
1
+ {
2
+ "capabilities": [
3
+ "dataframe",
4
+ "portable",
5
+ "experimental"
6
+ ],
7
+ "digest": "sha256:74b48e6234f9b3994e153ebd79367170fbe25b77aabb4c45fe6fa83101ba5588",
8
+ "entries": [
9
+ {
10
+ "capabilities": [
11
+ "dataframe",
12
+ "lazy",
13
+ "experimental"
14
+ ],
15
+ "engine": "datafusion",
16
+ "group": "etlantic.dataframe_plugins",
17
+ "name": "datafusion",
18
+ "protocol": "etlantic.dataframe/1",
19
+ "target": "etlantic_datafusion:create_plugin"
20
+ },
21
+ {
22
+ "capabilities": [
23
+ "portable",
24
+ "experimental"
25
+ ],
26
+ "engine": "datafusion",
27
+ "group": "etlantic.transform_compilers",
28
+ "name": "datafusion",
29
+ "protocol": "etlantic.transform-compiler/1",
30
+ "target": "etlantic_datafusion:create_transform_compiler"
31
+ }
32
+ ],
33
+ "package": "etlantic-datafusion",
34
+ "privileges": [],
35
+ "protocol_range": "etlantic.dataframe/1,etlantic.transform-compiler/1",
36
+ "provenance": {
37
+ "publisher": "etlantic"
38
+ },
39
+ "schema": "etlantic.plugin_manifest/1",
40
+ "version": "0.20.0"
41
+ }
@@ -0,0 +1,57 @@
1
+ """Experimental DataFusion dataframe plugin stub."""
2
+
3
+ from __future__ import annotations
4
+
5
+ from typing import Any
6
+
7
+ from etlantic.capabilities import PluginCapabilities
8
+ from etlantic.dataframe.protocol import DataframePluginInfo
9
+ from etlantic.interchange.tabular import InterchangeMechanism
10
+
11
+ __version__ = "0.20.0"
12
+
13
+
14
+ class DataFusionPlugin:
15
+ """Experimental dataframe plugin — kernel claims expand after conformance."""
16
+
17
+ info = DataframePluginInfo(
18
+ name="etlantic-datafusion",
19
+ version=__version__,
20
+ engine="datafusion",
21
+ capabilities=PluginCapabilities(
22
+ engine="datafusion",
23
+ dataframe=True,
24
+ eager=False,
25
+ lazy=True,
26
+ arrow_import=True,
27
+ arrow_export=True,
28
+ interchange_mechanisms=frozenset(
29
+ {
30
+ InterchangeMechanism.ARROW_C_DATA.value,
31
+ InterchangeMechanism.RECORDS_FALLBACK.value,
32
+ }
33
+ ),
34
+ extras=frozenset({"experimental"}),
35
+ ),
36
+ )
37
+
38
+ def materialize(self, *args: Any, **kwargs: Any) -> Any:
39
+ raise NotImplementedError(
40
+ "etlantic-datafusion is experimental; kernel materialize is not "
41
+ "experimental as of 0.20.0. See CAPABILITIES and INTEROPERABILITY plan."
42
+ )
43
+
44
+ def execute_transformation(self, *args: Any, **kwargs: Any) -> Any:
45
+ raise NotImplementedError(
46
+ "etlantic-datafusion execute_transformation is experimental/ungraduated"
47
+ )
48
+
49
+ def to_records(
50
+ self, value: Any, *, contract_type: type[Any] | None = None
51
+ ) -> list[Any]:
52
+ raise NotImplementedError("etlantic-datafusion to_records is ungraduated")
53
+
54
+ def from_records(
55
+ self, rows: list[Any], *, contract_type: type[Any] | None = None
56
+ ) -> Any:
57
+ raise NotImplementedError("etlantic-datafusion from_records is ungraduated")
@@ -0,0 +1,34 @@
1
+ Metadata-Version: 2.4
2
+ Name: etlantic-datafusion
3
+ Version: 0.20.0
4
+ Summary: Experimental DataFusion dataframe + portable transform plugin for ETLantic.
5
+ Project-URL: Homepage, https://github.com/eddiethedean/etlantic
6
+ Project-URL: Documentation, https://github.com/eddiethedean/etlantic/tree/main/docs
7
+ Project-URL: Repository, https://github.com/eddiethedean/etlantic
8
+ Project-URL: Issues, https://github.com/eddiethedean/etlantic/issues
9
+ Project-URL: Changelog, https://github.com/eddiethedean/etlantic/blob/main/CHANGELOG.md
10
+ Author-email: Odo Matthews <odosmatthews@gmail.com>
11
+ License-Expression: MIT
12
+ Classifier: Development Status :: 3 - Alpha
13
+ Classifier: Intended Audience :: Developers
14
+ Classifier: License :: OSI Approved :: MIT License
15
+ Classifier: Programming Language :: Python :: 3
16
+ Classifier: Programming Language :: Python :: 3.11
17
+ Classifier: Programming Language :: Python :: 3.12
18
+ Classifier: Programming Language :: Python :: 3.13
19
+ Classifier: Typing :: Typed
20
+ Requires-Python: >=3.11
21
+ Requires-Dist: etlantic<0.21,>=0.20.0
22
+ Description-Content-Type: text/markdown
23
+
24
+ # etlantic-datafusion (Experimental)
25
+
26
+ Gate B experimental DataFusion plugin for ETLantic 0.20+.
27
+
28
+ **Not recommended for production.** Does not replace Polars as the reference
29
+ dataframe engine. Graduates only after conformance, differentials, Gate A
30
+ Arrow boundaries, and a measured advantage.
31
+
32
+ ```bash
33
+ pip install 'etlantic[datafusion]==0.20.0'
34
+ ```
@@ -0,0 +1,8 @@
1
+ etlantic_datafusion/__init__.py,sha256=JjlyfQbPBOuhiA_YxdaFXHZr-8luxNa958dmZoJUQFo,737
2
+ etlantic_datafusion/compiler.py,sha256=9eSdqMnhjN-ZIbHWUqXB8ZkxX7iCGFB6xPSteljTWPk,2032
3
+ etlantic_datafusion/plugin.py,sha256=S5Un0kcgNJwGrOM-tsNZTjL-Vl12g4QRk2RpVcPojEM,1910
4
+ etlantic_datafusion/etlantic-plugin-manifest.json,sha256=miwwmiOqzdRDIKTL4UTOQTd09xdvbHXYvb5yTvCFb7A,1044
5
+ etlantic_datafusion-0.20.0.dist-info/METADATA,sha256=MiC852nvlaL3WEN-dxd528hITgrREcRZllVdMSbO9H0,1415
6
+ etlantic_datafusion-0.20.0.dist-info/WHEEL,sha256=lCkmxWfQsSc9CfIClYeavTdQeEX2toPqufh9gI35EQA,87
7
+ etlantic_datafusion-0.20.0.dist-info/entry_points.txt,sha256=3jFV13zNKBkMY0FWmS7Tur360mXka0xhm2S-hGLkxGQ,167
8
+ etlantic_datafusion-0.20.0.dist-info/RECORD,,
@@ -0,0 +1,4 @@
1
+ Wheel-Version: 1.0
2
+ Generator: hatchling 1.31.0
3
+ Root-Is-Purelib: true
4
+ Tag: py3-none-any
@@ -0,0 +1,5 @@
1
+ [etlantic.dataframe_plugins]
2
+ datafusion = etlantic_datafusion:create_plugin
3
+
4
+ [etlantic.transform_compilers]
5
+ datafusion = etlantic_datafusion:create_transform_compiler