9
9
10
10
from .service import Service
11
11
12
+ QUERY_PARAMETERS = "query parameters"
12
13
DEFAULT_SERVER = "cas-shared-default"
13
14
DEFAULT_CASLIB = "Public"
14
15
15
- def check_keys (
16
- valid_keys :list ,
17
- input_keys :list ,
18
- parameters :str
19
- ):
16
+
17
+ def check_keys (valid_keys : list , input_keys : list , parameters : str ):
20
18
"""Compares the input_keys against the valid_keys
21
19
to see if they are allowed to be passed
22
20
as parameters in the request.
@@ -38,12 +36,11 @@ def check_keys(
38
36
if not all (key in valid_keys for key in input_keys ):
39
37
raise ValueError (
40
38
"The only acceptable values for %s are %s" % (parameters , valid_keys )
41
- )
39
+ )
40
+
42
41
43
42
def check_required_key (
44
- required_key :Union [str ,list ],
45
- input_keys :list ,
46
- parameters :str
43
+ required_key : Union [str , list ], input_keys : list , parameters : str
47
44
):
48
45
"""Check whether the required parameters
49
46
are in the list of input_key.
@@ -63,22 +60,23 @@ def check_required_key(
63
60
raises ValueError if required_key is not present.
64
61
raises TypeError if required_key is neither a list or a string.
65
62
"""
66
- if isinstance (required_key ,str ):
63
+ if isinstance (required_key , str ):
67
64
if required_key not in input_keys :
68
65
raise ValueError (
69
- "The %s is a required %s parameter." % (required_key ,parameters )
70
- )
71
- elif isinstance (required_key ,list ):
66
+ "The %s is a required %s parameter." % (required_key , parameters )
67
+ )
68
+ elif isinstance (required_key , list ):
72
69
required_set = set (required_key )
73
70
input_set = set (input_keys )
74
71
if not required_set .issubset (input_set ):
75
72
raise ValueError (
76
- "The %s are required %s parameters." % (required_key ,parameters )
77
- )
73
+ "The %s are required %s parameters." % (required_key , parameters )
74
+ )
78
75
else :
79
76
raise TypeError (
80
77
"Please enter either a list or a string of required parameters."
81
- )
78
+ )
79
+
82
80
83
81
class CASManagement (Service ):
84
82
"""The CAS Management service provides the ability to manage and perform
@@ -119,14 +117,11 @@ def list_sessions(cls, query_params: dict = None, server: str = None):
119
117
"excludeItemLink" ,
120
118
"sessionId" ,
121
119
]
122
- check_keys (allowed_query ,query_params ,'query parameters' )
120
+ check_keys (allowed_query , query_params , QUERY_PARAMETERS )
123
121
else :
124
- query_params = {}
125
-
126
- sess_list = cls .get (
127
- "/servers/%s/sessions" % server ,
128
- params = query_params
129
- )
122
+ query_params = {}
123
+
124
+ sess_list = cls .get ("/servers/%s/sessions" % server , params = query_params )
130
125
return sess_list
131
126
132
127
@classmethod
@@ -156,14 +151,16 @@ def create_session(cls, properties: dict, server: str = None):
156
151
"replace" ,
157
152
"timeOut" ,
158
153
]
159
- check_keys (allowed_body ,properties .keys (),' body' )
160
- check_required_key ("authenticationType" ,properties .keys (),' body' )
154
+ check_keys (allowed_body , properties .keys (), " body" )
155
+ check_required_key ("authenticationType" , properties .keys (), " body" )
161
156
162
157
sess = cls .post ("/servers/%s/sessions" % (server ), json = properties )
163
158
return sess
164
159
165
160
@classmethod
166
- def delete_session (cls , sess_id : str , server : str = None , query_params : dict = None ):
161
+ def delete_session (
162
+ cls , sess_id : str , server : str = None , query_params : dict = None
163
+ ):
167
164
"""Terminates a session on the CAS server.
168
165
169
166
Parameters
@@ -184,14 +181,13 @@ def delete_session(cls, sess_id: str, server: str = None, query_params: dict = N
184
181
185
182
if query_params is not None :
186
183
allowed_query = ["force" , "superUserSessionId" ]
187
- check_keys (allowed_query ,query_params ,'query parameters' )
184
+ check_keys (allowed_query , query_params , QUERY_PARAMETERS )
188
185
else :
189
186
query_params = {}
190
187
191
188
sess = cls .delete (
192
- "/servers/%s/sessions/%s" % (server , sess_id ),
193
- params = query_params
194
- )
189
+ "/servers/%s/sessions/%s" % (server , sess_id ), params = query_params
190
+ )
195
191
return sess
196
192
197
193
@classmethod
@@ -369,75 +365,75 @@ def upload_file(
369
365
data ["format" ] = format_
370
366
371
367
allowed_body = [
372
- ' sessionId' ,
373
- ' variables' ,
374
- ' label' ,
375
- ' scope' ,
376
- ' replace' ,
377
- ' encoding' ,
378
- ' allowTruncation' ,
379
- ' allowEmbeddedNewLines' ,
380
- ' delimiter' ,
381
- ' varchars' ,
382
- ' scanRows' ,
383
- ' threadCount' ,
384
- ' stripBlanks' ,
385
- ' sheetName' ,
386
- ' password' ,
387
- ' decryptionKey' ,
388
- ' stringLengthMultiplier' ,
389
- ' varcharConversionThreshold'
368
+ " sessionId" ,
369
+ " variables" ,
370
+ " label" ,
371
+ " scope" ,
372
+ " replace" ,
373
+ " encoding" ,
374
+ " allowTruncation" ,
375
+ " allowEmbeddedNewLines" ,
376
+ " delimiter" ,
377
+ " varchars" ,
378
+ " scanRows" ,
379
+ " threadCount" ,
380
+ " stripBlanks" ,
381
+ " sheetName" ,
382
+ " password" ,
383
+ " decryptionKey" ,
384
+ " stringLengthMultiplier" ,
385
+ " varcharConversionThreshold" ,
390
386
]
391
387
allowed_csv = [
392
- ' sessionId' ,
393
- ' variables' ,
394
- ' label' ,
395
- ' scope' ,
396
- ' replace' ,
397
- ' encoding' ,
398
- ' allowTruncation' ,
399
- ' allowEmbeddedNewLines' ,
400
- ' delimiter' ,
401
- ' varchars' ,
402
- ' scanRows' ,
403
- ' threadCount' ,
404
- ' stripBlanks'
388
+ " sessionId" ,
389
+ " variables" ,
390
+ " label" ,
391
+ " scope" ,
392
+ " replace" ,
393
+ " encoding" ,
394
+ " allowTruncation" ,
395
+ " allowEmbeddedNewLines" ,
396
+ " delimiter" ,
397
+ " varchars" ,
398
+ " scanRows" ,
399
+ " threadCount" ,
400
+ " stripBlanks" ,
405
401
]
406
402
allowed_xls = [
407
- ' sessionId' ,
408
- ' variables' ,
409
- ' label' ,
410
- ' scope' ,
411
- ' replace' ,
412
- ' sheetName'
403
+ " sessionId" ,
404
+ " variables" ,
405
+ " label" ,
406
+ " scope" ,
407
+ " replace" ,
408
+ " sheetName" ,
413
409
]
414
410
allowed_sas = [
415
- ' sessionId' ,
416
- ' variables' ,
417
- ' label' ,
418
- ' scope' ,
419
- ' replace' ,
420
- ' password' ,
421
- ' decryptionKey' ,
422
- ' stringLengthMultiplier' ,
423
- ' varcharConversionThreshold'
411
+ " sessionId" ,
412
+ " variables" ,
413
+ " label" ,
414
+ " scope" ,
415
+ " replace" ,
416
+ " password" ,
417
+ " decryptionKey" ,
418
+ " stringLengthMultiplier" ,
419
+ " varcharConversionThreshold" ,
424
420
]
425
421
426
422
if detail is not None :
427
- check_keys (allowed_body ,detail .keys (),' body' )
428
- if format_ == ' csv' :
429
- check_keys (allowed_csv ,detail .keys (),' csv files' )
430
- elif format_ in [' xls' , ' xlsx' ]:
431
- check_keys (allowed_xls ,detail .keys (),' excel files' )
432
- elif format_ in [' sashdat' , ' sas7bdat' ]:
433
- check_keys (allowed_sas ,detail .keys (),' sas files' )
434
-
423
+ check_keys (allowed_body , detail .keys (), " body" )
424
+ if format_ == " csv" :
425
+ check_keys (allowed_csv , detail .keys (), " csv files" )
426
+ elif format_ in [" xls" , " xlsx" ]:
427
+ check_keys (allowed_xls , detail .keys (), " excel files" )
428
+ elif format_ in [" sashdat" , " sas7bdat" ]:
429
+ check_keys (allowed_sas , detail .keys (), " sas files" )
430
+
435
431
data .update (detail )
436
432
437
433
tbl = cls .post (
438
434
"/servers/%s/caslibs/%s/tables" % (server , caslib ),
439
435
data = data ,
440
- files = {' file' : (name ,file )},
436
+ files = {" file" : (name , file )},
441
437
)
442
438
return tbl
443
439
@@ -496,9 +492,9 @@ def update_state_table(
496
492
"sourceTableName" ,
497
493
"createRelationships" ,
498
494
]
499
- check_keys (allowed_query ,query_params .keys (),'query parameters' )
495
+ check_keys (allowed_query , query_params .keys (), QUERY_PARAMETERS )
500
496
query .update (query_params )
501
-
497
+
502
498
if body is not None :
503
499
allowed_body = [
504
500
"copies" ,
@@ -510,7 +506,7 @@ def update_state_table(
510
506
"replaceMode" ,
511
507
"scope" ,
512
508
]
513
- check_keys (allowed_body ,body .keys (),' body parameters' )
509
+ check_keys (allowed_body , body .keys (), " body parameters" )
514
510
else :
515
511
body = {}
516
512
@@ -598,7 +594,7 @@ def save_table(
598
594
"sourceTableName" ,
599
595
"parameters" ,
600
596
]
601
- check_keys (allowed_body ,properties .keys (),' body' )
597
+ check_keys (allowed_body , properties .keys (), " body" )
602
598
else :
603
599
properties = {}
604
600
@@ -610,14 +606,14 @@ def save_table(
610
606
json = properties ,
611
607
)
612
608
return sess
613
-
609
+
614
610
@classmethod
615
611
def del_table (
616
- cls ,
617
- name : str ,
618
- query_params : dict = None ,
612
+ cls ,
613
+ name : str ,
614
+ query_params : dict = None ,
619
615
caslib : str = None ,
620
- server : str = None
616
+ server : str = None ,
621
617
):
622
618
"""Deletes a table from Caslib source. Note that is not an unload.
623
619
This operation physically removes the source table (if the source is writable).
@@ -642,28 +638,23 @@ def del_table(
642
638
-------
643
639
RestObj
644
640
"""
645
-
641
+
646
642
server = server or DEFAULT_SERVER
647
643
caslib = caslib or DEFAULT_CASLIB
648
-
649
- required_queries = ["sourceTableName" ,"quiet" ,"removeAcs" ]
644
+
645
+ required_queries = ["sourceTableName" , "quiet" , "removeAcs" ]
650
646
651
647
if query_params is not None :
652
- allowed_query = [
653
- "sessionId" ,
654
- "sourceTableName" ,
655
- "quiet" ,
656
- "removeAcs"
657
- ]
658
- check_keys (allowed_query ,query_params .keys (),'query parameters' )
659
- check_required_key (required_queries ,query_params .keys (),'query' )
648
+ allowed_query = ["sessionId" , "sourceTableName" , "quiet" , "removeAcs" ]
649
+ check_keys (allowed_query , query_params .keys (), QUERY_PARAMETERS )
650
+ check_required_key (required_queries , query_params .keys (), "query" )
660
651
else :
661
652
raise ValueError (
662
- "You must provide these query parameters: %s" % required_queries
653
+ "You must provide these query parameters: %s" % required_queries
663
654
)
664
655
665
- tbl = cls .delete (
666
- "servers/%s/caslibs/%s/tables/%s" % (server ,caslib ,name ),
667
- params = query_params
668
- )
656
+ tbl = cls .delete (
657
+ "servers/%s/caslibs/%s/tables/%s" % (server , caslib , name ),
658
+ params = query_params ,
659
+ )
669
660
return tbl
0 commit comments