1313import tableauserverclient as TSC
1414
1515
16- def main ():
16+ def create_example_group (group_name = 'Example Group' , server = None ):
17+ new_group = TSC .GroupItem (group_name )
18+ try :
19+ new_group = server .groups .create (new_group )
20+ print ('Created a new project called: \' %s\' ' % group_name )
21+ print (new_group )
22+ except TSC .ServerResponseError :
23+ print ('Group \' %s\' already existed' % group_name )
24+
1725
26+ def main ():
1827 parser = argparse .ArgumentParser (description = 'Filter on groups' )
1928 parser .add_argument ('--server' , '-s' , required = True , help = 'server address' )
2029 parser .add_argument ('--username' , '-u' , required = True , help = 'username to sign into server' )
@@ -23,7 +32,6 @@ def main():
2332 parser .add_argument ('-p' , default = None )
2433 args = parser .parse_args ()
2534
26- password = ''
2735 if args .p is None :
2836 password = getpass .getpass ("Password: " )
2937 else :
@@ -37,36 +45,30 @@ def main():
3745 server = TSC .Server (args .server )
3846
3947 with server .auth .sign_in (tableau_auth ):
40- server .version = '2.7'
48+
49+ # Determine and use the highest api version for the server
50+ server .use_server_version ()
51+
4152 group_name = 'SALES NORTHWEST'
4253 # Try to create a group named "SALES NORTHWEST"
43- try :
44- group1 = TSC .GroupItem (group_name )
45- group1 = server .groups .create (group1 )
46- print (group1 )
47- except TSC .ServerResponseError :
48- print ('Group \' %s\' already existed' % group_name )
54+ create_example_group (group_name , server )
4955
5056 group_name = 'SALES ROMANIA'
5157 # Try to create a group named "SALES ROMANIA"
52- try :
53- group2 = TSC .GroupItem (group_name )
54- group2 = server .groups .create (group2 )
55- print (group2 )
56- except TSC .ServerResponseError :
57- print ('Group \' %s\' already existed' % group_name )
58+ create_example_group (group_name , server )
5859
5960 # URL Encode the name of the group that we want to filter on
6061 # i.e. turn spaces into plus signs
6162 filter_group_name = 'SALES+ROMANIA'
6263 options = TSC .RequestOptions ()
6364 options .filter .add (TSC .Filter (TSC .RequestOptions .Field .Name ,
64- TSC .RequestOptions .Operator .Equals ,
65- filter_group_name ))
65+ TSC .RequestOptions .Operator .Equals ,
66+ filter_group_name ))
6667
68+ # Return type is a tuple with the first entry as a list of matching groups
6769 filtered_group_paged = server .groups .get (req_options = options )
6870
69- # Return type is a tuple with the first entry as a list of matching groups
71+ # Access the first list object of the first tuple return type
7072 print (filtered_group_paged [0 ][0 ].name )
7173
7274 options = TSC .RequestOptions ()
0 commit comments