Skip to content

Commit 07114d8

Browse files
add save_table method
1 parent 3b31f8d commit 07114d8

File tree

1 file changed

+45
-0
lines changed

1 file changed

+45
-0
lines changed

src/sasctl/_services/cas_management.py

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -355,3 +355,48 @@ def promote_table(cls, name: str, sessId: str, caslib: str, server: str = None):
355355
)
356356

357357
return tbl
358+
359+
@classmethod
360+
def save_table(
361+
cls, name: str, caslib: str, properties: dict = None, sessId: str = None, server: str = None
362+
):
363+
"""Saves a CAS table to a source table
364+
365+
Parameters
366+
----------
367+
name : str
368+
Name of the table.
369+
sessId: str
370+
The session ID
371+
caslib : str
372+
Name of the caslib.
373+
propertes : dict, optional
374+
Properties of the table.
375+
Valid keys are `caslibName`, `format`, `replace`,
376+
`compress`, `tableName`, `sourceTableName`, `parameters`.
377+
server : str
378+
Server where the `caslib` is registered. Defaults to `cas-shared-default`.
379+
380+
Returns
381+
-------
382+
RestObj
383+
"""
384+
server = server or DEFAULT_SERVER
385+
386+
if properties:
387+
allowedBodyKeys = ["caslibName", "format", "replace",
388+
"compress", "tableName", "sourceTableName", "parameters"]
389+
390+
if not all(key in allowedBodyKeys for key in properties.keys()) :
391+
raise ValueError("The only acceptable properties are %s." % (allowedBodyKeys))
392+
else:
393+
properties = {}
394+
395+
query = {"sessionId": sessId} if sessId else {}
396+
397+
sess = cls.post(
398+
"/servers/%s/caslibs/%s/tables/%s" % (server,caslib,name),
399+
params = query
400+
json = properties
401+
)
402+
return sess

0 commit comments

Comments
 (0)