salesforce-data-customcode 1.1.0__tar.gz → 2.0.0__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.
- {salesforce_data_customcode-1.1.0 → salesforce_data_customcode-2.0.0}/PKG-INFO +1 -1
- {salesforce_data_customcode-1.1.0 → salesforce_data_customcode-2.0.0}/pyproject.toml +1 -1
- {salesforce_data_customcode-1.1.0 → salesforce_data_customcode-2.0.0}/src/datacustomcode/client.py +4 -6
- {salesforce_data_customcode-1.1.0 → salesforce_data_customcode-2.0.0}/src/datacustomcode/config.yaml +1 -0
- {salesforce_data_customcode-1.1.0 → salesforce_data_customcode-2.0.0}/src/datacustomcode/io/reader/base.py +0 -2
- {salesforce_data_customcode-1.1.0 → salesforce_data_customcode-2.0.0}/src/datacustomcode/io/reader/query_api.py +26 -10
- {salesforce_data_customcode-1.1.0 → salesforce_data_customcode-2.0.0}/src/datacustomcode/io/reader/sf_cli.py +15 -9
- {salesforce_data_customcode-1.1.0 → salesforce_data_customcode-2.0.0}/src/datacustomcode/io/writer/print.py +1 -1
- {salesforce_data_customcode-1.1.0 → salesforce_data_customcode-2.0.0}/LICENSE.txt +0 -0
- {salesforce_data_customcode-1.1.0 → salesforce_data_customcode-2.0.0}/README.md +0 -0
- {salesforce_data_customcode-1.1.0 → salesforce_data_customcode-2.0.0}/src/datacustomcode/__init__.py +0 -0
- {salesforce_data_customcode-1.1.0 → salesforce_data_customcode-2.0.0}/src/datacustomcode/auth.py +0 -0
- {salesforce_data_customcode-1.1.0 → salesforce_data_customcode-2.0.0}/src/datacustomcode/cli.py +0 -0
- {salesforce_data_customcode-1.1.0 → salesforce_data_customcode-2.0.0}/src/datacustomcode/cmd.py +0 -0
- {salesforce_data_customcode-1.1.0 → salesforce_data_customcode-2.0.0}/src/datacustomcode/config.py +0 -0
- {salesforce_data_customcode-1.1.0 → salesforce_data_customcode-2.0.0}/src/datacustomcode/credentials.py +0 -0
- {salesforce_data_customcode-1.1.0 → salesforce_data_customcode-2.0.0}/src/datacustomcode/deploy.py +0 -0
- {salesforce_data_customcode-1.1.0 → salesforce_data_customcode-2.0.0}/src/datacustomcode/file/__init__.py +0 -0
- {salesforce_data_customcode-1.1.0 → salesforce_data_customcode-2.0.0}/src/datacustomcode/file/base.py +0 -0
- {salesforce_data_customcode-1.1.0 → salesforce_data_customcode-2.0.0}/src/datacustomcode/file/path/__init__.py +0 -0
- {salesforce_data_customcode-1.1.0 → salesforce_data_customcode-2.0.0}/src/datacustomcode/file/path/default.py +0 -0
- {salesforce_data_customcode-1.1.0 → salesforce_data_customcode-2.0.0}/src/datacustomcode/io/__init__.py +0 -0
- {salesforce_data_customcode-1.1.0 → salesforce_data_customcode-2.0.0}/src/datacustomcode/io/base.py +0 -0
- {salesforce_data_customcode-1.1.0 → salesforce_data_customcode-2.0.0}/src/datacustomcode/io/reader/__init__.py +0 -0
- {salesforce_data_customcode-1.1.0 → salesforce_data_customcode-2.0.0}/src/datacustomcode/io/reader/utils.py +0 -0
- {salesforce_data_customcode-1.1.0 → salesforce_data_customcode-2.0.0}/src/datacustomcode/io/writer/__init__.py +0 -0
- {salesforce_data_customcode-1.1.0 → salesforce_data_customcode-2.0.0}/src/datacustomcode/io/writer/base.py +0 -0
- {salesforce_data_customcode-1.1.0 → salesforce_data_customcode-2.0.0}/src/datacustomcode/io/writer/csv.py +0 -0
- {salesforce_data_customcode-1.1.0 → salesforce_data_customcode-2.0.0}/src/datacustomcode/mixin.py +0 -0
- {salesforce_data_customcode-1.1.0 → salesforce_data_customcode-2.0.0}/src/datacustomcode/proxy/__init__.py +0 -0
- {salesforce_data_customcode-1.1.0 → salesforce_data_customcode-2.0.0}/src/datacustomcode/proxy/base.py +0 -0
- {salesforce_data_customcode-1.1.0 → salesforce_data_customcode-2.0.0}/src/datacustomcode/proxy/client/LocalProxyClientProvider.py +0 -0
- {salesforce_data_customcode-1.1.0 → salesforce_data_customcode-2.0.0}/src/datacustomcode/proxy/client/__init__.py +0 -0
- {salesforce_data_customcode-1.1.0 → salesforce_data_customcode-2.0.0}/src/datacustomcode/proxy/client/base.py +0 -0
- {salesforce_data_customcode-1.1.0 → salesforce_data_customcode-2.0.0}/src/datacustomcode/py.typed +0 -0
- {salesforce_data_customcode-1.1.0 → salesforce_data_customcode-2.0.0}/src/datacustomcode/run.py +0 -0
- {salesforce_data_customcode-1.1.0 → salesforce_data_customcode-2.0.0}/src/datacustomcode/scan.py +0 -0
- {salesforce_data_customcode-1.1.0 → salesforce_data_customcode-2.0.0}/src/datacustomcode/spark/__init__.py +0 -0
- {salesforce_data_customcode-1.1.0 → salesforce_data_customcode-2.0.0}/src/datacustomcode/spark/base.py +0 -0
- {salesforce_data_customcode-1.1.0 → salesforce_data_customcode-2.0.0}/src/datacustomcode/spark/default.py +0 -0
- {salesforce_data_customcode-1.1.0 → salesforce_data_customcode-2.0.0}/src/datacustomcode/template.py +0 -0
- {salesforce_data_customcode-1.1.0 → salesforce_data_customcode-2.0.0}/src/datacustomcode/templates/function/.devcontainer/devcontainer.json +0 -0
- {salesforce_data_customcode-1.1.0 → salesforce_data_customcode-2.0.0}/src/datacustomcode/templates/function/Dockerfile.dependencies +0 -0
- {salesforce_data_customcode-1.1.0 → salesforce_data_customcode-2.0.0}/src/datacustomcode/templates/function/README.md +0 -0
- {salesforce_data_customcode-1.1.0 → salesforce_data_customcode-2.0.0}/src/datacustomcode/templates/function/build_native_dependencies.sh +0 -0
- {salesforce_data_customcode-1.1.0 → salesforce_data_customcode-2.0.0}/src/datacustomcode/templates/function/payload/config.json +0 -0
- {salesforce_data_customcode-1.1.0 → salesforce_data_customcode-2.0.0}/src/datacustomcode/templates/function/payload/entrypoint.py +0 -0
- {salesforce_data_customcode-1.1.0 → salesforce_data_customcode-2.0.0}/src/datacustomcode/templates/function/requirements-dev.txt +0 -0
- {salesforce_data_customcode-1.1.0 → salesforce_data_customcode-2.0.0}/src/datacustomcode/templates/function/requirements.txt +0 -0
- {salesforce_data_customcode-1.1.0 → salesforce_data_customcode-2.0.0}/src/datacustomcode/templates/script/.devcontainer/devcontainer.json +0 -0
- {salesforce_data_customcode-1.1.0 → salesforce_data_customcode-2.0.0}/src/datacustomcode/templates/script/Dockerfile +0 -0
- {salesforce_data_customcode-1.1.0 → salesforce_data_customcode-2.0.0}/src/datacustomcode/templates/script/Dockerfile.dependencies +0 -0
- {salesforce_data_customcode-1.1.0 → salesforce_data_customcode-2.0.0}/src/datacustomcode/templates/script/README.md +0 -0
- {salesforce_data_customcode-1.1.0 → salesforce_data_customcode-2.0.0}/src/datacustomcode/templates/script/account.ipynb +0 -0
- {salesforce_data_customcode-1.1.0 → salesforce_data_customcode-2.0.0}/src/datacustomcode/templates/script/build_native_dependencies.sh +0 -0
- {salesforce_data_customcode-1.1.0 → salesforce_data_customcode-2.0.0}/src/datacustomcode/templates/script/examples/employee_hierarchy/employee_data.csv +0 -0
- {salesforce_data_customcode-1.1.0 → salesforce_data_customcode-2.0.0}/src/datacustomcode/templates/script/examples/employee_hierarchy/entrypoint.py +0 -0
- {salesforce_data_customcode-1.1.0 → salesforce_data_customcode-2.0.0}/src/datacustomcode/templates/script/jupyterlab.sh +0 -0
- {salesforce_data_customcode-1.1.0 → salesforce_data_customcode-2.0.0}/src/datacustomcode/templates/script/payload/config.json +0 -0
- {salesforce_data_customcode-1.1.0 → salesforce_data_customcode-2.0.0}/src/datacustomcode/templates/script/payload/entrypoint.py +0 -0
- {salesforce_data_customcode-1.1.0 → salesforce_data_customcode-2.0.0}/src/datacustomcode/templates/script/requirements-dev.txt +0 -0
- {salesforce_data_customcode-1.1.0 → salesforce_data_customcode-2.0.0}/src/datacustomcode/templates/script/requirements.txt +0 -0
- {salesforce_data_customcode-1.1.0 → salesforce_data_customcode-2.0.0}/src/datacustomcode/version.py +0 -0
{salesforce_data_customcode-1.1.0 → salesforce_data_customcode-2.0.0}/src/datacustomcode/client.py
RENAMED
|
@@ -185,31 +185,29 @@ class Client:
|
|
|
185
185
|
)
|
|
186
186
|
return cls._instance
|
|
187
187
|
|
|
188
|
-
def read_dlo(self, name: str
|
|
188
|
+
def read_dlo(self, name: str) -> PySparkDataFrame:
|
|
189
189
|
"""Read a DLO from Data Cloud.
|
|
190
190
|
|
|
191
191
|
Args:
|
|
192
192
|
name: The name of the DLO to read.
|
|
193
|
-
row_limit: Maximum number of rows to fetch (default: 1000).
|
|
194
193
|
|
|
195
194
|
Returns:
|
|
196
195
|
A PySpark DataFrame containing the DLO data.
|
|
197
196
|
"""
|
|
198
197
|
self._record_dlo_access(name)
|
|
199
|
-
return self._reader.read_dlo(name
|
|
198
|
+
return self._reader.read_dlo(name)
|
|
200
199
|
|
|
201
|
-
def read_dmo(self, name: str
|
|
200
|
+
def read_dmo(self, name: str) -> PySparkDataFrame:
|
|
202
201
|
"""Read a DMO from Data Cloud.
|
|
203
202
|
|
|
204
203
|
Args:
|
|
205
204
|
name: The name of the DMO to read.
|
|
206
|
-
row_limit: Maximum number of rows to fetch (default: 1000).
|
|
207
205
|
|
|
208
206
|
Returns:
|
|
209
207
|
A PySpark DataFrame containing the DMO data.
|
|
210
208
|
"""
|
|
211
209
|
self._record_dmo_access(name)
|
|
212
|
-
return self._reader.read_dmo(name
|
|
210
|
+
return self._reader.read_dmo(name)
|
|
213
211
|
|
|
214
212
|
def write_to_dlo(
|
|
215
213
|
self, name: str, dataframe: PySparkDataFrame, write_mode: WriteMode, **kwargs
|
|
@@ -33,7 +33,6 @@ class BaseDataCloudReader(BaseDataAccessLayer):
|
|
|
33
33
|
self,
|
|
34
34
|
name: str,
|
|
35
35
|
schema: Union[AtomicType, StructType, str, None] = None,
|
|
36
|
-
row_limit: int = 1000,
|
|
37
36
|
) -> PySparkDataFrame: ...
|
|
38
37
|
|
|
39
38
|
@abstractmethod
|
|
@@ -41,5 +40,4 @@ class BaseDataCloudReader(BaseDataAccessLayer):
|
|
|
41
40
|
self,
|
|
42
41
|
name: str,
|
|
43
42
|
schema: Union[AtomicType, StructType, str, None] = None,
|
|
44
|
-
row_limit: int = 1000,
|
|
45
43
|
) -> PySparkDataFrame: ...
|
|
@@ -37,6 +37,7 @@ logger = logging.getLogger(__name__)
|
|
|
37
37
|
|
|
38
38
|
|
|
39
39
|
SQL_QUERY_TEMPLATE: Final = "SELECT * FROM {} LIMIT {}"
|
|
40
|
+
SQL_QUERY_TEMPLATE_NO_LIMIT: Final = "SELECT * FROM {}"
|
|
40
41
|
|
|
41
42
|
|
|
42
43
|
def create_cdp_connection(
|
|
@@ -122,6 +123,7 @@ class QueryAPIDataCloudReader(BaseDataCloudReader):
|
|
|
122
123
|
credentials_profile: str = "default",
|
|
123
124
|
dataspace: Optional[str] = None,
|
|
124
125
|
sf_cli_org: Optional[str] = None,
|
|
126
|
+
default_row_limit: Optional[int] = None,
|
|
125
127
|
) -> None:
|
|
126
128
|
"""Initialize QueryAPIDataCloudReader.
|
|
127
129
|
|
|
@@ -137,8 +139,12 @@ class QueryAPIDataCloudReader(BaseDataCloudReader):
|
|
|
137
139
|
reader delegates to :class:`SFCLIDataCloudReader` which calls
|
|
138
140
|
the Data Cloud REST API directly using the token obtained from
|
|
139
141
|
``sf org display``, bypassing the CDP token-exchange flow.
|
|
142
|
+
default_row_limit: Maximum number of rows to fetch automatically.
|
|
143
|
+
When ``None``, no limit is applied (all rows are returned).
|
|
144
|
+
Set via ``default_row_limit`` in ``config.yaml`` reader options.
|
|
140
145
|
"""
|
|
141
146
|
self.spark = spark
|
|
147
|
+
self._default_row_limit = default_row_limit
|
|
142
148
|
if sf_cli_org:
|
|
143
149
|
logger.debug(
|
|
144
150
|
f"Initializing QueryAPIDataCloudReader with SF CLI org '{sf_cli_org}'"
|
|
@@ -147,6 +153,7 @@ class QueryAPIDataCloudReader(BaseDataCloudReader):
|
|
|
147
153
|
spark=spark,
|
|
148
154
|
sf_cli_org=sf_cli_org,
|
|
149
155
|
dataspace=dataspace,
|
|
156
|
+
default_row_limit=default_row_limit,
|
|
150
157
|
)
|
|
151
158
|
self._conn = None
|
|
152
159
|
else:
|
|
@@ -158,19 +165,30 @@ class QueryAPIDataCloudReader(BaseDataCloudReader):
|
|
|
158
165
|
)
|
|
159
166
|
self._conn = create_cdp_connection(credentials, dataspace)
|
|
160
167
|
|
|
168
|
+
def _build_query(self, name: str) -> str:
|
|
169
|
+
"""Build a SQL query, applying the configured default row limit.
|
|
170
|
+
|
|
171
|
+
Args:
|
|
172
|
+
name: Object name to query.
|
|
173
|
+
|
|
174
|
+
Returns:
|
|
175
|
+
SQL query string.
|
|
176
|
+
"""
|
|
177
|
+
if self._default_row_limit is not None:
|
|
178
|
+
return SQL_QUERY_TEMPLATE.format(name, self._default_row_limit)
|
|
179
|
+
return SQL_QUERY_TEMPLATE_NO_LIMIT.format(name)
|
|
180
|
+
|
|
161
181
|
def read_dlo(
|
|
162
182
|
self,
|
|
163
183
|
name: str,
|
|
164
184
|
schema: Union[AtomicType, StructType, str, None] = None,
|
|
165
|
-
row_limit: int = 1000,
|
|
166
185
|
) -> PySparkDataFrame:
|
|
167
186
|
"""
|
|
168
|
-
Read a Data Lake Object (DLO) from the Data Cloud
|
|
187
|
+
Read a Data Lake Object (DLO) from the Data Cloud.
|
|
169
188
|
|
|
170
189
|
Args:
|
|
171
190
|
name (str): The name of the DLO.
|
|
172
191
|
schema (Optional[Union[AtomicType, StructType, str]]): Schema of the DLO.
|
|
173
|
-
row_limit (int): Maximum number of rows to fetch.
|
|
174
192
|
|
|
175
193
|
Returns:
|
|
176
194
|
PySparkDataFrame: The PySpark DataFrame.
|
|
@@ -179,9 +197,9 @@ class QueryAPIDataCloudReader(BaseDataCloudReader):
|
|
|
179
197
|
self, "_sf_cli_reader", None
|
|
180
198
|
)
|
|
181
199
|
if sf_cli_reader is not None:
|
|
182
|
-
return sf_cli_reader.read_dlo(name, schema
|
|
200
|
+
return sf_cli_reader.read_dlo(name, schema)
|
|
183
201
|
|
|
184
|
-
query =
|
|
202
|
+
query = self._build_query(name)
|
|
185
203
|
|
|
186
204
|
assert self._conn is not None
|
|
187
205
|
pandas_df = self._conn.get_pandas_dataframe(query)
|
|
@@ -197,15 +215,13 @@ class QueryAPIDataCloudReader(BaseDataCloudReader):
|
|
|
197
215
|
self,
|
|
198
216
|
name: str,
|
|
199
217
|
schema: Union[AtomicType, StructType, str, None] = None,
|
|
200
|
-
row_limit: int = 1000,
|
|
201
218
|
) -> PySparkDataFrame:
|
|
202
219
|
"""
|
|
203
|
-
Read a Data Model Object (DMO) from the Data Cloud
|
|
220
|
+
Read a Data Model Object (DMO) from the Data Cloud.
|
|
204
221
|
|
|
205
222
|
Args:
|
|
206
223
|
name (str): The name of the DMO.
|
|
207
224
|
schema (Optional[Union[AtomicType, StructType, str]]): Schema of the DMO.
|
|
208
|
-
row_limit (int): Maximum number of rows to fetch.
|
|
209
225
|
|
|
210
226
|
Returns:
|
|
211
227
|
PySparkDataFrame: The PySpark DataFrame.
|
|
@@ -214,9 +230,9 @@ class QueryAPIDataCloudReader(BaseDataCloudReader):
|
|
|
214
230
|
self, "_sf_cli_reader", None
|
|
215
231
|
)
|
|
216
232
|
if sf_cli_reader is not None:
|
|
217
|
-
return sf_cli_reader.read_dmo(name, schema
|
|
233
|
+
return sf_cli_reader.read_dmo(name, schema)
|
|
218
234
|
|
|
219
|
-
query =
|
|
235
|
+
query = self._build_query(name)
|
|
220
236
|
|
|
221
237
|
assert self._conn is not None
|
|
222
238
|
pandas_df = self._conn.get_pandas_dataframe(query)
|
|
@@ -55,6 +55,7 @@ class SFCLIDataCloudReader(BaseDataCloudReader):
|
|
|
55
55
|
spark: SparkSession,
|
|
56
56
|
sf_cli_org: str,
|
|
57
57
|
dataspace: Optional[str] = None,
|
|
58
|
+
default_row_limit: Optional[int] = None,
|
|
58
59
|
) -> None:
|
|
59
60
|
"""Initialize SFCLIDataCloudReader.
|
|
60
61
|
|
|
@@ -64,9 +65,13 @@ class SFCLIDataCloudReader(BaseDataCloudReader):
|
|
|
64
65
|
(e.g. the alias given to ``sf org login web --alias dev1``).
|
|
65
66
|
dataspace: Optional dataspace identifier. If ``None`` or
|
|
66
67
|
``"default"`` the query runs against the default dataspace.
|
|
68
|
+
default_row_limit: Maximum number of rows to fetch automatically.
|
|
69
|
+
When ``None``, no limit is applied (all rows are returned).
|
|
70
|
+
Set via ``default_row_limit`` in ``config.yaml`` reader options.
|
|
67
71
|
"""
|
|
68
72
|
self.spark = spark
|
|
69
73
|
self.sf_cli_org = sf_cli_org
|
|
74
|
+
self._default_row_limit = default_row_limit
|
|
70
75
|
self.dataspace = (
|
|
71
76
|
dataspace if dataspace and dataspace != "default" else "default"
|
|
72
77
|
)
|
|
@@ -132,12 +137,14 @@ class SFCLIDataCloudReader(BaseDataCloudReader):
|
|
|
132
137
|
logger.debug(f"Fetched token from SF CLI for org '{self.sf_cli_org}'")
|
|
133
138
|
return access_token, instance_url
|
|
134
139
|
|
|
135
|
-
def _execute_query(self, sql: str
|
|
140
|
+
def _execute_query(self, sql: str) -> pd.DataFrame:
|
|
136
141
|
"""Execute *sql* against the Data Cloud REST endpoint.
|
|
137
142
|
|
|
143
|
+
The configured ``default_row_limit`` is automatically appended as a
|
|
144
|
+
``LIMIT`` clause when set (typically for local development).
|
|
145
|
+
|
|
138
146
|
Args:
|
|
139
147
|
sql: Base SQL query (no ``LIMIT`` clause).
|
|
140
|
-
row_limit: Maximum rows to return.
|
|
141
148
|
|
|
142
149
|
Returns:
|
|
143
150
|
Pandas DataFrame with query results.
|
|
@@ -150,7 +157,10 @@ class SFCLIDataCloudReader(BaseDataCloudReader):
|
|
|
150
157
|
url = f"{instance_url}/services/data/{API_VERSION}/ssot/query-sql"
|
|
151
158
|
headers = {"Authorization": f"Bearer {access_token}"}
|
|
152
159
|
params = {"dataspace": self.dataspace}
|
|
153
|
-
|
|
160
|
+
if self._default_row_limit is not None:
|
|
161
|
+
body = {"sql": f"{sql} LIMIT {self._default_row_limit}"}
|
|
162
|
+
else:
|
|
163
|
+
body = {"sql": sql}
|
|
154
164
|
|
|
155
165
|
logger.debug(f"Executing Data Cloud query: {body['sql']}")
|
|
156
166
|
|
|
@@ -190,19 +200,17 @@ class SFCLIDataCloudReader(BaseDataCloudReader):
|
|
|
190
200
|
self,
|
|
191
201
|
name: str,
|
|
192
202
|
schema: Union[AtomicType, StructType, str, None] = None,
|
|
193
|
-
row_limit: int = 1000,
|
|
194
203
|
) -> PySparkDataFrame:
|
|
195
204
|
"""Read a Data Lake Object (DLO) from Data Cloud.
|
|
196
205
|
|
|
197
206
|
Args:
|
|
198
207
|
name: DLO name.
|
|
199
208
|
schema: Optional explicit schema.
|
|
200
|
-
row_limit: Maximum rows to fetch.
|
|
201
209
|
|
|
202
210
|
Returns:
|
|
203
211
|
PySpark DataFrame.
|
|
204
212
|
"""
|
|
205
|
-
pandas_df = self._execute_query(f"SELECT * FROM {name}"
|
|
213
|
+
pandas_df = self._execute_query(f"SELECT * FROM {name}")
|
|
206
214
|
if not schema:
|
|
207
215
|
schema = _pandas_to_spark_schema(pandas_df)
|
|
208
216
|
return self.spark.createDataFrame(pandas_df, schema)
|
|
@@ -211,19 +219,17 @@ class SFCLIDataCloudReader(BaseDataCloudReader):
|
|
|
211
219
|
self,
|
|
212
220
|
name: str,
|
|
213
221
|
schema: Union[AtomicType, StructType, str, None] = None,
|
|
214
|
-
row_limit: int = 1000,
|
|
215
222
|
) -> PySparkDataFrame:
|
|
216
223
|
"""Read a Data Model Object (DMO) from Data Cloud.
|
|
217
224
|
|
|
218
225
|
Args:
|
|
219
226
|
name: DMO name.
|
|
220
227
|
schema: Optional explicit schema.
|
|
221
|
-
row_limit: Maximum rows to fetch.
|
|
222
228
|
|
|
223
229
|
Returns:
|
|
224
230
|
PySpark DataFrame.
|
|
225
231
|
"""
|
|
226
|
-
pandas_df = self._execute_query(f"SELECT * FROM {name}"
|
|
232
|
+
pandas_df = self._execute_query(f"SELECT * FROM {name}")
|
|
227
233
|
if not schema:
|
|
228
234
|
schema = _pandas_to_spark_schema(pandas_df)
|
|
229
235
|
return self.spark.createDataFrame(pandas_df, schema)
|
|
@@ -90,7 +90,7 @@ class PrintDataCloudWriter(BaseDataCloudWriter):
|
|
|
90
90
|
schema.
|
|
91
91
|
"""
|
|
92
92
|
# Get DLO schema (no data, just schema)
|
|
93
|
-
dlo_df = self.reader.read_dlo(dlo_name
|
|
93
|
+
dlo_df = self.reader.read_dlo(dlo_name).limit(0)
|
|
94
94
|
dlo_columns = set(dlo_df.columns)
|
|
95
95
|
df_columns = set(dataframe.columns)
|
|
96
96
|
|
|
File without changes
|
|
File without changes
|
{salesforce_data_customcode-1.1.0 → salesforce_data_customcode-2.0.0}/src/datacustomcode/__init__.py
RENAMED
|
File without changes
|
{salesforce_data_customcode-1.1.0 → salesforce_data_customcode-2.0.0}/src/datacustomcode/auth.py
RENAMED
|
File without changes
|
{salesforce_data_customcode-1.1.0 → salesforce_data_customcode-2.0.0}/src/datacustomcode/cli.py
RENAMED
|
File without changes
|
{salesforce_data_customcode-1.1.0 → salesforce_data_customcode-2.0.0}/src/datacustomcode/cmd.py
RENAMED
|
File without changes
|
{salesforce_data_customcode-1.1.0 → salesforce_data_customcode-2.0.0}/src/datacustomcode/config.py
RENAMED
|
File without changes
|
|
File without changes
|
{salesforce_data_customcode-1.1.0 → salesforce_data_customcode-2.0.0}/src/datacustomcode/deploy.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{salesforce_data_customcode-1.1.0 → salesforce_data_customcode-2.0.0}/src/datacustomcode/io/base.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{salesforce_data_customcode-1.1.0 → salesforce_data_customcode-2.0.0}/src/datacustomcode/mixin.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{salesforce_data_customcode-1.1.0 → salesforce_data_customcode-2.0.0}/src/datacustomcode/py.typed
RENAMED
|
File without changes
|
{salesforce_data_customcode-1.1.0 → salesforce_data_customcode-2.0.0}/src/datacustomcode/run.py
RENAMED
|
File without changes
|
{salesforce_data_customcode-1.1.0 → salesforce_data_customcode-2.0.0}/src/datacustomcode/scan.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{salesforce_data_customcode-1.1.0 → salesforce_data_customcode-2.0.0}/src/datacustomcode/template.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{salesforce_data_customcode-1.1.0 → salesforce_data_customcode-2.0.0}/src/datacustomcode/version.py
RENAMED
|
File without changes
|