-
Notifications
You must be signed in to change notification settings - Fork 1
/
doc_using_tab_doc_api.py
71 lines (59 loc) · 2.69 KB
/
doc_using_tab_doc_api.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
import tableaudocumentapi
from tableaudocumentapi import Datasource, xfile, Workbook, Field
from tableaudocumentapi.xfile import xml_open
# class myField (Field):
# _ATTRIBUTES = Field._ATTRIBUTES.append('HIDDEN')
def process_datasources(datasource):
print('data source:\t{}'.format(datasource.caption or datasource.name))
print('version:\t{}'.format(datasource.version))
print()
for connection in datasource.connections:
print('server:\t{}'.format(connection.server))
print('dbname:\t{}'.format(connection.dbname))
print('username:\t{}'.format(connection.username))
print('dbclass:\t{}'.format(connection.dbclass))
print('port:\t{}'.format(connection.port))
print('query_band:\t{}'.format(connection.query_band))
print('initial_sql:\t{}'.format(connection.initial_sql))
print()
# for field in datasource.fields.value():
# print(field.name)
print('{} total fields in your data source'.format(len(datasource.fields)))
# for count, field in enumerate(datasource.fields.values()):
# print ('{} {} {}'.format((count + 1), field.name, field.datatype))
# if field.calculation:
# print(' the formula is {}'.format(field.calculation))
# if field.default_aggregation:
# print(' the default aggregation is {}'.format(field.default_aggregation))
# if field.description:
# print(' the description is {}'.format(field.description))
for field in datasource.fields.values():
field_attributes = [field.id,
field.caption,
field.alias,
field.datatype,
field.role,
field.is_quantitative,
field.is_ordinal,
field.is_nominal,
field.calculation,
field.default_aggregation,
field.description]
print(field_attributes)
# file_name = "C:\\Users\\jj2362\\Desktop\\docs in\\standard frequent flyer.tds"
file_name = "C:\\Users\\jj2362\\Desktop\\Sheet1 (Visual_Analytics_TOC_DataSimulated).tds"
# file_name = "C:\\Users\\jj2362\\Desktop\\docs in\\Master.twb"
file_type = xml_open(file_name)
base = file_type.getroot()
print(base.tag)
if base.tag == 'datasource':
document = tableaudocumentapi.Datasource.from_file(file_name)
process_datasources(document)
else:
document = Workbook(file_name)
for datasource in document.datasources:
process_datasources(datasource)
print("")
# for datasource in workbook.datasources:
test = Field()
print(test._attributes)