Skip to content

Commit d7f50b7

Browse files
authored
Merge pull request #1489 from Martozar/c.mze-cq-105
Arrow IPC binary fetch path for DataFrame execution
2 parents 1649b1f + 6828bad commit d7f50b7

129 files changed

Lines changed: 8691 additions & 703 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

packages/gooddata-fdw/src/gooddata_fdw/executor.py

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
from __future__ import annotations
33

44
from collections.abc import Generator
5-
from typing import Any, NamedTuple
5+
from typing import Any, ClassVar, NamedTuple
66

77
from gooddata_sdk import GoodDataSdk
88

@@ -43,7 +43,10 @@ def execute(
4343

4444

4545
class InsightExecutor(Executor):
46-
_COLUMN_VALIDATORS = [col_val.LocalIdOptionValidator(), col_val.IdOptionValidator(mandatory=False)]
46+
_COLUMN_VALIDATORS: ClassVar[list[col_val.ColumnValidator]] = [
47+
col_val.LocalIdOptionValidator(),
48+
col_val.IdOptionValidator(mandatory=False),
49+
]
4750

4851
def __init__(self, inputs: InitData) -> None:
4952
super().__init__(inputs, self._COLUMN_VALIDATORS)

packages/gooddata-pandas/pyproject.toml

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,6 @@ dependencies = [
3232
"gooddata-sdk~=1.63.0",
3333
"pandas>=2.0.0,<3.0.0",
3434
]
35-
3635
classifiers = [
3736
"Development Status :: 5 - Production/Stable",
3837
"Environment :: Console",
@@ -47,6 +46,9 @@ classifiers = [
4746
"Typing :: Typed",
4847
]
4948

49+
[project.optional-dependencies]
50+
arrow = ["pyarrow>=23.0.1", "orjson>=3.11.0"]
51+
5052
[project.urls]
5153
Documentation = "https://gooddata-pandas.readthedocs.io/en/v1.63.0"
5254
Source = "https://github.com/gooddata/gooddata-python-sdk"
@@ -63,6 +65,7 @@ test = [
6365
"python-dotenv~=1.0.0",
6466
"pyyaml",
6567
"tests_support",
68+
"pyarrow>=23.0.1",
6669
]
6770

6871
[tool.ty.analysis]

packages/gooddata-pandas/src/gooddata_pandas/__init__.py

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,16 @@
11
# (C) 2021 GoodData Corporation
22

33
from gooddata_pandas._version import __version__
4+
from gooddata_pandas.arrow_types import ArrowConfig, TypesMapper
5+
6+
try:
7+
from gooddata_pandas.arrow_convertor import convert_arrow_table_to_dataframe
8+
except ImportError:
9+
10+
def convert_arrow_table_to_dataframe(*args, **kwargs):
11+
raise ImportError("pyarrow is required for Arrow support. Install it with: pip install gooddata-pandas[arrow]")
12+
13+
414
from gooddata_pandas.dataframe import DataFrameFactory
515
from gooddata_pandas.good_pandas import GoodPandas
616
from gooddata_pandas.result_convertor import LabelOverrides

0 commit comments

Comments
 (0)