qe-api-client 2.9.0__tar.gz → 3.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.
- {qe_api_client-2.9.0 → qe_api_client-3.0.0}/PKG-INFO +1 -1
- {qe_api_client-2.9.0 → qe_api_client-3.0.0}/qe_api_client/api_classes/engine_app_api.py +29 -8
- {qe_api_client-2.9.0 → qe_api_client-3.0.0}/qe_api_client/engine.py +1009 -2
- {qe_api_client-2.9.0 → qe_api_client-3.0.0}/qe_api_client/structs.py +10 -0
- {qe_api_client-2.9.0 → qe_api_client-3.0.0}/qe_api_client.egg-info/PKG-INFO +1 -1
- {qe_api_client-2.9.0 → qe_api_client-3.0.0}/setup.py +1 -1
- {qe_api_client-2.9.0 → qe_api_client-3.0.0}/LICENSE +0 -0
- {qe_api_client-2.9.0 → qe_api_client-3.0.0}/README.md +0 -0
- {qe_api_client-2.9.0 → qe_api_client-3.0.0}/qe_api_client/__init__.py +0 -0
- {qe_api_client-2.9.0 → qe_api_client-3.0.0}/qe_api_client/api_classes/__init__.py +0 -0
- {qe_api_client-2.9.0 → qe_api_client-3.0.0}/qe_api_client/api_classes/engine_field_api.py +0 -0
- {qe_api_client-2.9.0 → qe_api_client-3.0.0}/qe_api_client/api_classes/engine_generic_dimension_api.py +0 -0
- {qe_api_client-2.9.0 → qe_api_client-3.0.0}/qe_api_client/api_classes/engine_generic_measure_api.py +0 -0
- {qe_api_client-2.9.0 → qe_api_client-3.0.0}/qe_api_client/api_classes/engine_generic_object_api.py +0 -0
- {qe_api_client-2.9.0 → qe_api_client-3.0.0}/qe_api_client/api_classes/engine_generic_variable_api.py +0 -0
- {qe_api_client-2.9.0 → qe_api_client-3.0.0}/qe_api_client/api_classes/engine_global_api.py +0 -0
- {qe_api_client-2.9.0 → qe_api_client-3.0.0}/qe_api_client/engine_communicator.py +0 -0
- {qe_api_client-2.9.0 → qe_api_client-3.0.0}/qe_api_client.egg-info/SOURCES.txt +0 -0
- {qe_api_client-2.9.0 → qe_api_client-3.0.0}/qe_api_client.egg-info/dependency_links.txt +0 -0
- {qe_api_client-2.9.0 → qe_api_client-3.0.0}/qe_api_client.egg-info/requires.txt +0 -0
- {qe_api_client-2.9.0 → qe_api_client-3.0.0}/qe_api_client.egg-info/top_level.txt +0 -0
- {qe_api_client-2.9.0 → qe_api_client-3.0.0}/setup.cfg +0 -0
- {qe_api_client-2.9.0 → qe_api_client-3.0.0}/test/test.py +0 -0
- {qe_api_client-2.9.0 → qe_api_client-3.0.0}/test/test_api.py +0 -0
- {qe_api_client-2.9.0 → qe_api_client-3.0.0}/test/test_app_api.py +0 -0
- {qe_api_client-2.9.0 → qe_api_client-3.0.0}/test/test_chart_content.py +0 -0
- {qe_api_client-2.9.0 → qe_api_client-3.0.0}/test/test_field_api.py +0 -0
- {qe_api_client-2.9.0 → qe_api_client-3.0.0}/test/test_global_api.py +0 -0
- {qe_api_client-2.9.0 → qe_api_client-3.0.0}/test/test_labs.py +0 -0
- {qe_api_client-2.9.0 → qe_api_client-3.0.0}/test/test_pyqlikengine.py +0 -0
@@ -134,6 +134,27 @@ class EngineAppApi:
|
|
134
134
|
except KeyError:
|
135
135
|
return response['error']
|
136
136
|
|
137
|
+
|
138
|
+
def get_objects(self, app_handle: int, options: dict):
|
139
|
+
"""
|
140
|
+
Retrieves a specific object from the app identified by the document handle.
|
141
|
+
|
142
|
+
Parameters:
|
143
|
+
app_handle (int): The handle identifying the app document.
|
144
|
+
object_id (str): The ID of the object to retrieve.
|
145
|
+
|
146
|
+
Returns:
|
147
|
+
dict: The retrieved object (qReturn). In case of an error, returns the error information.
|
148
|
+
"""
|
149
|
+
msg = json.dumps({"jsonrpc": "2.0", "id": 0, "handle": app_handle, "method": "GetObjects",
|
150
|
+
"params": {"qOptions": options}})
|
151
|
+
response = json.loads(self.engine_socket.send_call(self.engine_socket, msg))
|
152
|
+
try:
|
153
|
+
return response["result"]["qList"]
|
154
|
+
except KeyError:
|
155
|
+
return response["error"]
|
156
|
+
|
157
|
+
|
137
158
|
def get_field(self, doc_handle: int, field_name, state_name=""):
|
138
159
|
"""
|
139
160
|
Retrieves a specific field from the app identified by the document handle.
|
@@ -364,9 +385,9 @@ class EngineAppApi:
|
|
364
385
|
# ### Example: The variable x contains the text string Sum(Sales). In a chart, you define the expression $(x)/12. # NOQA
|
365
386
|
# The effect is exactly the same as having the chart expression Sum(Sales)/12. However, if you change the value of the variable x to Sum(Budget), # NOQA
|
366
387
|
# the data in the chart are immediately recalculated with the expression interpreted as Sum(Budget)/12. # NOQA
|
367
|
-
def create_session_variable(self,
|
388
|
+
def create_session_variable(self, app_handle: int, var_id="", var_name="", var_comment="", var_def=""):
|
368
389
|
msg = json.dumps(
|
369
|
-
{"jsonrpc": "2.0", "id": 0, "handle":
|
390
|
+
{"jsonrpc": "2.0", "id": 0, "handle": app_handle,
|
370
391
|
"method": "CreateSessionVariable", "params": [{
|
371
392
|
"qInfo": {
|
372
393
|
"qId": var_id,
|
@@ -393,8 +414,8 @@ class EngineAppApi:
|
|
393
414
|
# The effect is exactly the same as having the chart expression Sum(Sales)/12. # NOQA
|
394
415
|
# However, if you change the value of the variable x to Sum(Budget),
|
395
416
|
# the data in the chart are immediately recalculated with the expression interpreted as Sum(Budget)/12. # NOQA
|
396
|
-
def create_variable(self,
|
397
|
-
msg = json.dumps({"jsonrpc": "2.0", "id": 0, "handle":
|
417
|
+
def create_variable(self, app_handle: int, var_id="", var_name="", var_comment="", var_def=""):
|
418
|
+
msg = json.dumps({"jsonrpc": "2.0", "id": 0, "handle": app_handle,
|
398
419
|
"method": "CreateVariable", "params": [{
|
399
420
|
"qInfo": {
|
400
421
|
"qId": var_id,
|
@@ -446,8 +467,8 @@ class EngineAppApi:
|
|
446
467
|
|
447
468
|
# Evaluate method: Evaluates an expression as a string. (Actually uses EvaluateEx, which is better for giving the data type back to python) # NOQA
|
448
469
|
# Parameters: qExpression
|
449
|
-
def expr_eval(self,
|
450
|
-
msg = json.dumps({"jsonrpc": "2.0", "id": 0, "handle":
|
470
|
+
def expr_eval(self, app_handle: int, expr):
|
471
|
+
msg = json.dumps({"jsonrpc": "2.0", "id": 0, "handle": app_handle, "method": "EvaluateEx",
|
451
472
|
"params": {"qExpression": expr}})
|
452
473
|
response = json.loads(self.engine_socket.send_call(self.engine_socket, msg))
|
453
474
|
try:
|
@@ -456,8 +477,8 @@ class EngineAppApi:
|
|
456
477
|
return response['error']
|
457
478
|
|
458
479
|
# GetAllInfos method: Get the identifier and the type of any generic object in an app by using the GetAllInfos method. # NOQA
|
459
|
-
def get_all_infos(self,
|
460
|
-
msg = json.dumps({"jsonrpc": "2.0", "id": 0, "handle":
|
480
|
+
def get_all_infos(self, app_handle: int):
|
481
|
+
msg = json.dumps({"jsonrpc": "2.0", "id": 0, "handle": app_handle, "method": "GetAllInfos", "params": []})
|
461
482
|
response = json.loads(self.engine_socket.send_call(self.engine_socket, msg))
|
462
483
|
try:
|
463
484
|
return response['result']['qInfos']
|
@@ -454,7 +454,7 @@ class QixEngine:
|
|
454
454
|
|
455
455
|
|
456
456
|
def create_snapshot(self, app_handle: int, object_id: str, snapshot_title: str = "", snapshot_description: str = "",
|
457
|
-
object_width: float = 1280, object_height: float = 720, bounding_client_width: float = 1280,
|
457
|
+
show_titles: bool = True, object_width: float = 1280, object_height: float = 720, bounding_client_width: float = 1280,
|
458
458
|
bounding_client_height: float = 720, rtl: bool = False, parent_width: float = 1280, parent_height: float = 720,
|
459
459
|
content_width: float = 1280, content_height: float = 720, chart_data_scroll_offset_start: int = 0,
|
460
460
|
chart_data_scroll_offset_end: int = 53, chart_data_legend_scroll_offset: int = 0, chart_data_zoom_min = 0,
|
@@ -467,6 +467,7 @@ class QixEngine:
|
|
467
467
|
object_id (str): The id of the object.
|
468
468
|
snapshot_title (str): The title of the snapshot.
|
469
469
|
snapshot_description (str): The description of the snapshot.
|
470
|
+
show_titles (bool): Enables / disables chart title.
|
470
471
|
object_width (float): The width of the snapshot object.
|
471
472
|
object_height (float): The height of the snapshot object.
|
472
473
|
bounding_client_width (float): The width of the bounding client.
|
@@ -500,6 +501,9 @@ class QixEngine:
|
|
500
501
|
# Attribut "qInfo" changed
|
501
502
|
chart_obj_layout["qInfo"] = {"qType": "snapshot"}
|
502
503
|
|
504
|
+
# Attribut "showTitles" changed
|
505
|
+
chart_obj_layout["showTitles"] = show_titles
|
506
|
+
|
503
507
|
# Attribut "qMetaDef" added
|
504
508
|
chart_obj_layout["qMetaDef"] = {"title": snapshot_title, "description": snapshot_description}
|
505
509
|
|
@@ -532,7 +536,57 @@ class QixEngine:
|
|
532
536
|
chart_obj_layout["qIncludeVariables"] = True
|
533
537
|
|
534
538
|
# Build the special snapshot parameters for the different chart types.
|
535
|
-
if visualization in ["
|
539
|
+
if visualization in ["pivot-table"]:
|
540
|
+
# Attribut "snapshotData" added
|
541
|
+
chart_obj_layout["snapshotData"] = {
|
542
|
+
"object": {
|
543
|
+
"size": {
|
544
|
+
"w": object_width,
|
545
|
+
"h": object_height,
|
546
|
+
"boundingClientWidth": bounding_client_width,
|
547
|
+
"boundingClientHeight": bounding_client_height
|
548
|
+
}
|
549
|
+
},
|
550
|
+
"rtl": rtl,
|
551
|
+
"parent": {
|
552
|
+
"h": parent_height,
|
553
|
+
"w": parent_width
|
554
|
+
}
|
555
|
+
}
|
556
|
+
|
557
|
+
elif visualization in ["sn-table"]:
|
558
|
+
# Attribut "snapshotData" added
|
559
|
+
chart_obj_layout["snapshotData"] = {
|
560
|
+
"object": {
|
561
|
+
"size": {
|
562
|
+
"w": object_width,
|
563
|
+
"h": object_height,
|
564
|
+
"boundingClientWidth": bounding_client_width,
|
565
|
+
"boundingClientHeight": bounding_client_height
|
566
|
+
}
|
567
|
+
},
|
568
|
+
"rtl": rtl,
|
569
|
+
"content": {
|
570
|
+
"scrollLeft": 0,
|
571
|
+
"visibleLeft": 0,
|
572
|
+
"visibleWidth": 6,
|
573
|
+
"visibleTop": 0,
|
574
|
+
"visibleHeight": 18,
|
575
|
+
"rowsPerPage": 18,
|
576
|
+
"page": 0,
|
577
|
+
"size": {
|
578
|
+
"width": object_width,
|
579
|
+
"height": object_height
|
580
|
+
},
|
581
|
+
"estimatedRowHeight": 25
|
582
|
+
},
|
583
|
+
"parent": {
|
584
|
+
"h": parent_height,
|
585
|
+
"w": parent_width
|
586
|
+
}
|
587
|
+
}
|
588
|
+
|
589
|
+
elif visualization in ["sn-pivot-table"]:
|
536
590
|
# Attribut "snapshotData" added
|
537
591
|
chart_obj_layout["snapshotData"] = {
|
538
592
|
"object": {
|
@@ -544,6 +598,15 @@ class QixEngine:
|
|
544
598
|
}
|
545
599
|
},
|
546
600
|
"rtl": rtl,
|
601
|
+
"content": {
|
602
|
+
"qPivotDataPages": chart_obj_layout["qHyperCube"]["qPivotDataPages"],
|
603
|
+
"scrollTop": 0,
|
604
|
+
"scrollLeft": 0,
|
605
|
+
"leftGridScrollLeft": 0,
|
606
|
+
"topGridScrollTop": 0,
|
607
|
+
"page": 0,
|
608
|
+
"rowsPerPage": 15000
|
609
|
+
},
|
547
610
|
"parent": {
|
548
611
|
"h": parent_height,
|
549
612
|
"w": parent_width
|
@@ -1378,6 +1441,950 @@ class QixEngine:
|
|
1378
1441
|
return df_sheet_list
|
1379
1442
|
|
1380
1443
|
|
1444
|
+
# def get_object_properties(self, app_handle: int, obj_type: str):
|
1445
|
+
# """
|
1446
|
+
# Retrieves a list with all metadata of given object.
|
1447
|
+
#
|
1448
|
+
# Parameters:
|
1449
|
+
# app_handle (int): The handle of the app.
|
1450
|
+
# obj_type (str): The type of the given object.
|
1451
|
+
#
|
1452
|
+
# Returns:
|
1453
|
+
# DataFrame: A table with all metadata of given object.
|
1454
|
+
# """
|
1455
|
+
#
|
1456
|
+
# # Define the DataFrame structure of filterpane
|
1457
|
+
# if obj_type in ["filterpane"]:
|
1458
|
+
# df_obj_list = pd.DataFrame(
|
1459
|
+
# columns=["qInfo", "qExtendsId", "qMetaDef", "qStateName", "showTitles", "title", "subtitle", "footnote",
|
1460
|
+
# "disableNavMenu", "showDetails", "showDetailsExpression", "visualization", "version",
|
1461
|
+
# "qChildren"])
|
1462
|
+
# # Define the DataFrame structure of listbox
|
1463
|
+
# elif obj_type in ["listbox"]:
|
1464
|
+
# df_obj_list = pd.DataFrame(
|
1465
|
+
# columns=["qInfo", "qExtendsId", "qMetaDef", "qStateName", "qListObjectDef", "showTitles", "title",
|
1466
|
+
# "subtitle", "footnote", "disableNavMenu", "showDetails", "showDetailsExpression",
|
1467
|
+
# "visualization", "qChildren"])
|
1468
|
+
# # Define the DataFrame structure of table
|
1469
|
+
# elif obj_type in ["table"]:
|
1470
|
+
# df_obj_list = pd.DataFrame(
|
1471
|
+
# columns=["qInfo", "qExtendsId", "qMetaDef", "qStateName", "qHyperCubeDef", "script", "search", "showTitles", "title",
|
1472
|
+
# "subtitle", "footnote", "disableNavMenu", "showDetails", "showDetailsExpression", "totals",
|
1473
|
+
# "scrolling", "multiline", "visualization", "qChildren"])
|
1474
|
+
# else:
|
1475
|
+
# return "Chart type not supported."
|
1476
|
+
#
|
1477
|
+
# # Get object data
|
1478
|
+
# options = self.structs.options(types=[obj_type])
|
1479
|
+
# obj_list = self.eaa.get_objects(app_handle=app_handle, options=options)
|
1480
|
+
#
|
1481
|
+
# for obj in obj_list:
|
1482
|
+
# # Get filterpane ID
|
1483
|
+
# obj_id = obj["qInfo"]["qId"]
|
1484
|
+
# # Get filterpane object
|
1485
|
+
# obj = self.eaa.get_object(app_handle=app_handle, object_id=obj_id)
|
1486
|
+
# # Get filterpane handle
|
1487
|
+
# obj_handle = self.get_handle(obj)
|
1488
|
+
# # Get filterpane full property tree
|
1489
|
+
# obj_full_property_tree = self.egoa.get_full_property_tree(handle=obj_handle)
|
1490
|
+
#
|
1491
|
+
# # Get filterpane properties
|
1492
|
+
# obj_props = obj_full_property_tree["qProperty"]
|
1493
|
+
# obj_children = obj_full_property_tree["qChildren"]
|
1494
|
+
# obj_children_ids = [child["qProperty"]["qInfo"]["qId"] for child in obj_children]
|
1495
|
+
# obj_props["qChildren"] = obj_children_ids
|
1496
|
+
#
|
1497
|
+
# # Concatenate the filterpane metadata to the DataFrame structure
|
1498
|
+
# df_obj_list.loc[len(df_obj_list)] = obj_props
|
1499
|
+
#
|
1500
|
+
#
|
1501
|
+
# # Resolve the dictionary structure of attribute "qInfo"
|
1502
|
+
# df_obj_list_expanded = (df_obj_list["qInfo"].dropna().apply(pd.Series).add_prefix("qInfo_"))
|
1503
|
+
# df_obj_list = df_obj_list.drop(columns=["qInfo"]).join(df_obj_list_expanded)
|
1504
|
+
#
|
1505
|
+
# if obj_type in ["listbox"]:
|
1506
|
+
# # Resolve the dictionary structure of attribute "title"
|
1507
|
+
# df_obj_list_expanded = (
|
1508
|
+
# df_obj_list["title"].dropna()
|
1509
|
+
# # .apply(lambda x: x if isinstance(x, dict) else {})
|
1510
|
+
# .apply(pd.Series).add_prefix("title_"))
|
1511
|
+
# # df_obj_list_expanded = (
|
1512
|
+
# # df_obj_list["title"].dropna()
|
1513
|
+
# # .apply(lambda x: x.get("qStringExpression", {}).get("qExpr") if isinstance(x, dict) else x)
|
1514
|
+
# # .to_frame("title_qStringExpression")
|
1515
|
+
# # )
|
1516
|
+
# df_obj_list = df_obj_list.drop(columns=["title"]).join(df_obj_list_expanded)
|
1517
|
+
#
|
1518
|
+
# # Resolve the dictionary structure of attribute "title_qStringExpression"
|
1519
|
+
# df_obj_list_expanded = (
|
1520
|
+
# df_obj_list["title_qStringExpression"].dropna()
|
1521
|
+
# .apply(pd.Series).add_prefix("title_qStringExpression_"))
|
1522
|
+
# df_obj_list = df_obj_list.drop(columns=["title_qStringExpression"]).join(df_obj_list_expanded)
|
1523
|
+
#
|
1524
|
+
# # Resolve the dictionary structure of attribute "qListObjectDef"
|
1525
|
+
# df_obj_list_expanded = (
|
1526
|
+
# df_obj_list["qListObjectDef"].dropna().apply(pd.Series).add_prefix("qListObjectDef_"))
|
1527
|
+
# df_obj_list = df_obj_list.drop(columns=["qListObjectDef"]).join(df_obj_list_expanded)
|
1528
|
+
#
|
1529
|
+
# # Resolve the dictionary structure of attribute "qListObjectDef_qDef"
|
1530
|
+
# df_obj_list_expanded = (
|
1531
|
+
# df_obj_list["qListObjectDef_qDef"].dropna().apply(pd.Series).add_prefix("qListObjectDef_qDef_"))
|
1532
|
+
# df_obj_list = df_obj_list.drop(columns=["qListObjectDef_qDef"]).join(df_obj_list_expanded)
|
1533
|
+
#
|
1534
|
+
# if obj_type in ["table"]:
|
1535
|
+
# # Resolve the dictionary structure of attribute "qHyperCubeDef"
|
1536
|
+
# df_obj_list_expanded = (
|
1537
|
+
# df_obj_list["qHyperCubeDef"].dropna().apply(pd.Series).add_prefix("qHyperCubeDef_"))
|
1538
|
+
# df_obj_list = df_obj_list.drop(columns=["qHyperCubeDef"]).join(df_obj_list_expanded)
|
1539
|
+
#
|
1540
|
+
# # Resolve the dictionary structure of attribute "search"
|
1541
|
+
# df_obj_list_expanded = (
|
1542
|
+
# df_obj_list["search"].dropna().apply(pd.Series).add_prefix("search_"))
|
1543
|
+
# df_obj_list = df_obj_list.drop(columns=["search"]).join(df_obj_list_expanded)
|
1544
|
+
#
|
1545
|
+
# return df_obj_list
|
1546
|
+
|
1547
|
+
|
1548
|
+
def get_object_type_properties(self, app_obj: dict, obj_type: str):
|
1549
|
+
"""
|
1550
|
+
Retrieves a list with all metadata of given type of objects.
|
1551
|
+
|
1552
|
+
Parameters:
|
1553
|
+
app_obj (dict): The response od the opened app.
|
1554
|
+
obj_type (str): The type of the given object.
|
1555
|
+
|
1556
|
+
Returns:
|
1557
|
+
List: A list with all metadata of given type of objects.
|
1558
|
+
"""
|
1559
|
+
|
1560
|
+
# Get app handle
|
1561
|
+
app_handle = self.get_handle(app_obj)
|
1562
|
+
# Get app ID
|
1563
|
+
app_id = self.get_id(app_obj)
|
1564
|
+
# Get objects structure
|
1565
|
+
options = self.structs.options(types=[obj_type])
|
1566
|
+
# Get objects per type
|
1567
|
+
obj_list = self.eaa.get_objects(app_handle=app_handle, options=options)
|
1568
|
+
# Define list variable
|
1569
|
+
obj_props_list = []
|
1570
|
+
|
1571
|
+
# Loop objects from the list
|
1572
|
+
for obj in obj_list:
|
1573
|
+
# Get object ID
|
1574
|
+
obj_id = obj["qInfo"]["qId"]
|
1575
|
+
# Get object
|
1576
|
+
obj = self.eaa.get_object(app_handle=app_handle, object_id=obj_id)
|
1577
|
+
# Get object handle
|
1578
|
+
obj_handle = self.get_handle(obj)
|
1579
|
+
# Get object full property tree
|
1580
|
+
obj_props = self.egoa.get_full_property_tree(handle=obj_handle)
|
1581
|
+
# Insert app id
|
1582
|
+
obj_props["qDocId"] = app_id
|
1583
|
+
# Concatenate object properties to the list
|
1584
|
+
obj_props_list.append(obj_props)
|
1585
|
+
|
1586
|
+
return obj_props_list
|
1587
|
+
|
1588
|
+
|
1589
|
+
# def get_objects_properties(self, app_obj: dict):
|
1590
|
+
# """
|
1591
|
+
# Retrieves a list with all metadata of all app objects.
|
1592
|
+
#
|
1593
|
+
# Parameters:
|
1594
|
+
# app_obj (dict): The response od the opened app.
|
1595
|
+
#
|
1596
|
+
# Returns:
|
1597
|
+
# List: A list with all metadata of all app objects.
|
1598
|
+
# """
|
1599
|
+
# app_handle = self.get_handle(app_obj)
|
1600
|
+
# app_id = self.get_id(app_obj)
|
1601
|
+
#
|
1602
|
+
# app_infos = self.eaa.get_all_infos(app_handle=app_handle)
|
1603
|
+
#
|
1604
|
+
# # Extrahiere alle qId-Werte in eine Liste
|
1605
|
+
# obj_id_list = [item["qId"] for item in app_infos]
|
1606
|
+
#
|
1607
|
+
# obj_props_list = []
|
1608
|
+
#
|
1609
|
+
# for obj_id in obj_id_list:
|
1610
|
+
# obj = self.eaa.get_object(app_handle=app_handle, object_id=obj_id)
|
1611
|
+
# obj_handle = self.get_handle(obj)
|
1612
|
+
# obj_props = self.egoa.get_full_property_tree(handle=obj_handle)
|
1613
|
+
# obj_props["appId"] = app_id
|
1614
|
+
# obj_props_list.append(obj_props)
|
1615
|
+
#
|
1616
|
+
# return obj_props_list
|
1617
|
+
|
1618
|
+
|
1619
|
+
# def get_app_properties(self, app_handle):
|
1620
|
+
# """
|
1621
|
+
# Retrieves a list with all app property metadata.
|
1622
|
+
#
|
1623
|
+
# Parameters:
|
1624
|
+
# app_handle (int): The handle of the app.
|
1625
|
+
#
|
1626
|
+
# Returns:
|
1627
|
+
# DataFrame: A table with all app property metadata.
|
1628
|
+
# """
|
1629
|
+
#
|
1630
|
+
# # Define the DataFrame structure
|
1631
|
+
# df_app_property_list = pd.DataFrame(
|
1632
|
+
# columns=["qInfo", "qExtendsId", "qMetaDef", "qStateName", "sheetTitleBgColor", "sheetTitleGradientColor",
|
1633
|
+
# "sheetTitleColor", "sheetLogoThumbnail", "sheetLogoPosition", "rtl", "theme", "disableCellNavMenu",
|
1634
|
+
# "defaultBookmarkId", "qChildren"])
|
1635
|
+
#
|
1636
|
+
# # Get app property object data
|
1637
|
+
# options = self.structs.options(types=["appprops"])
|
1638
|
+
# app_property_list = self.eaa.get_objects(app_handle=app_handle, options=options)
|
1639
|
+
#
|
1640
|
+
# for app_property in app_property_list:
|
1641
|
+
# # Get app property ID
|
1642
|
+
# app_property_id = app_property["qInfo"]["qId"]
|
1643
|
+
# # Get app property object
|
1644
|
+
# app_property_obj = self.eaa.get_object(app_handle=app_handle, object_id=app_property_id)
|
1645
|
+
# # Get app property handle
|
1646
|
+
# app_property_handle = self.get_handle(app_property_obj)
|
1647
|
+
# # Get app property full property tree
|
1648
|
+
# app_property_full_property_tree = self.egoa.get_full_property_tree(handle=app_property_handle)
|
1649
|
+
#
|
1650
|
+
# # Get app property properties
|
1651
|
+
# app_property_props = app_property_full_property_tree["qProperty"]
|
1652
|
+
# app_property_children = app_property_full_property_tree["qChildren"]
|
1653
|
+
# app_property_children_ids = [child["qProperty"]["qInfo"]["qId"] for child in app_property_children]
|
1654
|
+
# app_property_props["qChildren"] = app_property_children_ids
|
1655
|
+
#
|
1656
|
+
# # Concatenate the app property metadata to the DataFrame structure
|
1657
|
+
# df_app_property_list.loc[len(df_app_property_list)] = app_property_props
|
1658
|
+
#
|
1659
|
+
#
|
1660
|
+
# # Resolve the dictionary structure of attribute "qInfo"
|
1661
|
+
# df_app_property_list_expanded = (df_app_property_list["qInfo"].dropna().apply(pd.Series).add_prefix("qInfo_"))
|
1662
|
+
# df_app_property_list = df_app_property_list.drop(columns=["qInfo"]).join(df_app_property_list_expanded)
|
1663
|
+
#
|
1664
|
+
# # Resolve the dictionary structure of attribute "sheetTitleBgColor"
|
1665
|
+
# df_app_property_list_expanded = (df_app_property_list["sheetTitleBgColor"].dropna().apply(pd.Series).add_prefix("sheetTitleBgColor_"))
|
1666
|
+
# df_app_property_list = df_app_property_list.drop(columns=["sheetTitleBgColor"]).join(df_app_property_list_expanded)
|
1667
|
+
#
|
1668
|
+
# # Resolve the dictionary structure of attribute "sheetTitleGradientColor"
|
1669
|
+
# df_app_property_list_expanded = (
|
1670
|
+
# df_app_property_list["sheetTitleGradientColor"].dropna().apply(pd.Series).add_prefix("sheetTitleGradientColor_"))
|
1671
|
+
# df_app_property_list = df_app_property_list.drop(columns=["sheetTitleGradientColor"]).join(
|
1672
|
+
# df_app_property_list_expanded)
|
1673
|
+
#
|
1674
|
+
# # Resolve the dictionary structure of attribute "sheetLogoThumbnail"
|
1675
|
+
# df_app_property_list_expanded = (
|
1676
|
+
# df_app_property_list["sheetLogoThumbnail"].dropna().apply(pd.Series).add_prefix("sheetLogoThumbnail_"))
|
1677
|
+
# df_app_property_list = df_app_property_list.drop(columns=["sheetLogoThumbnail"]).join(
|
1678
|
+
# df_app_property_list_expanded)
|
1679
|
+
#
|
1680
|
+
# return df_app_property_list
|
1681
|
+
#
|
1682
|
+
#
|
1683
|
+
# def get_app_sheet_groups(self, app_handle):
|
1684
|
+
# """
|
1685
|
+
# Retrieves a list with all app sheet group metadata.
|
1686
|
+
#
|
1687
|
+
# Parameters:
|
1688
|
+
# app_handle (int): The 0handle of the app.
|
1689
|
+
#
|
1690
|
+
# Returns:
|
1691
|
+
# DataFrame: A table with all sheet group metadata from an app.
|
1692
|
+
# """
|
1693
|
+
#
|
1694
|
+
# # Define the DataFrame structure
|
1695
|
+
# df_sheet_group_list = pd.DataFrame(
|
1696
|
+
# columns=["qInfo", "qExtendsId", "qMetaDef", "qStateName", "rank", "qChildren", "qEmbeddedSnapshotRef"])
|
1697
|
+
#
|
1698
|
+
# # Get sheet group object data
|
1699
|
+
# options = self.structs.options(types=["sheetgroup"])
|
1700
|
+
# sheet_group_list = self.eaa.get_objects(app_handle=app_handle, options=options)
|
1701
|
+
#
|
1702
|
+
# for sheet_group in sheet_group_list:
|
1703
|
+
# # Get sheet group ID
|
1704
|
+
# sheet_group_id = sheet_group["qInfo"]["qId"]
|
1705
|
+
# # Get sheet group object
|
1706
|
+
# sheet_group_obj = self.eaa.get_object(app_handle=app_handle, object_id=sheet_group_id)
|
1707
|
+
# # Get sheet group handle
|
1708
|
+
# sheet_group_handle = self.get_handle(sheet_group_obj)
|
1709
|
+
# # Get sheet group full property tree
|
1710
|
+
# sheet_group_full_property_tree = self.egoa.get_full_property_tree(handle=sheet_group_handle)
|
1711
|
+
#
|
1712
|
+
# # Get sheet group properties
|
1713
|
+
# sheet_group_props = sheet_group_full_property_tree["qProperty"]
|
1714
|
+
# sheet_group_children = sheet_group_full_property_tree["qChildren"]
|
1715
|
+
# sheet_group_children_ids = [child["qProperty"]["qInfo"]["qId"] for child in sheet_group_children]
|
1716
|
+
# sheet_group_props["qChildren"] = sheet_group_children_ids
|
1717
|
+
#
|
1718
|
+
# # Concatenate the sheet group metadata to the DataFrame structure
|
1719
|
+
# df_sheet_group_list.loc[len(df_sheet_group_list)] = sheet_group_props
|
1720
|
+
#
|
1721
|
+
#
|
1722
|
+
# # Resolve the dictionary structure of attribute "qInfo"
|
1723
|
+
# df_sheet_group_list_expanded = (df_sheet_group_list["qInfo"].dropna().apply(pd.Series).add_prefix("qInfo_"))
|
1724
|
+
# df_sheet_group_list = df_sheet_group_list.drop(columns=["qInfo"]).join(df_sheet_group_list_expanded)
|
1725
|
+
#
|
1726
|
+
# # Resolve the dictionary structure of attribute "qMetaDef"
|
1727
|
+
# df_sheet_group_list_expanded = (df_sheet_group_list["qMetaDef"].dropna().apply(pd.Series).add_prefix("qMetaDef_"))
|
1728
|
+
# df_sheet_group_list = df_sheet_group_list.drop(columns=["qMetaDef"]).join(df_sheet_group_list_expanded)
|
1729
|
+
#
|
1730
|
+
# return df_sheet_group_list
|
1731
|
+
#
|
1732
|
+
#
|
1733
|
+
# def get_app_sheets(self, app_handle):
|
1734
|
+
# """
|
1735
|
+
# Retrieves a list with all app sheet metadata.
|
1736
|
+
#
|
1737
|
+
# Parameters:
|
1738
|
+
# app_handle (int): The 0handle of the app.
|
1739
|
+
#
|
1740
|
+
# Returns:
|
1741
|
+
# DataFrame: A table with all sheet metadata from an app.
|
1742
|
+
# """
|
1743
|
+
#
|
1744
|
+
# # Define the DataFrame structure
|
1745
|
+
# df_sheet_list = pd.DataFrame(
|
1746
|
+
# columns=["qInfo", "qExtendsId", "qMetaDef", "qStateName", "creationDate", "rank", "thumbnail", "columns",
|
1747
|
+
# "rows", "cells", "qChildListDef", "customRowBase", "gridResolution", "layoutOptions", "gridMode",
|
1748
|
+
# "groupId", "labelExpression", "qChildren"])
|
1749
|
+
#
|
1750
|
+
# # Get sheet object data
|
1751
|
+
# options = self.structs.options(types=["sheet"])
|
1752
|
+
# sheet_list = self.eaa.get_objects(app_handle=app_handle, options=options)
|
1753
|
+
#
|
1754
|
+
# for sheet in sheet_list:
|
1755
|
+
# # Get sheet ID
|
1756
|
+
# sheet_id = sheet["qInfo"]["qId"]
|
1757
|
+
# # Get sheet object
|
1758
|
+
# sheet_obj = self.eaa.get_object(app_handle=app_handle, object_id=sheet_id)
|
1759
|
+
# # Get sheet handle
|
1760
|
+
# sheet_handle = self.get_handle(sheet_obj)
|
1761
|
+
# # Get sheet full property tree
|
1762
|
+
# sheet_full_property_tree = self.egoa.get_full_property_tree(handle=sheet_handle)
|
1763
|
+
#
|
1764
|
+
# # Get sheet properties
|
1765
|
+
# sheet_props = sheet_full_property_tree["qProperty"]
|
1766
|
+
# sheet_children = sheet_full_property_tree["qChildren"]
|
1767
|
+
# sheet_children_ids = [child["qProperty"]["qInfo"]["qId"] for child in sheet_children]
|
1768
|
+
# sheet_props["qChildren"] = sheet_children_ids
|
1769
|
+
#
|
1770
|
+
# # Concatenate the sheet metadata to the DataFrame structure
|
1771
|
+
# df_sheet_list.loc[len(df_sheet_list)] = sheet_props
|
1772
|
+
#
|
1773
|
+
#
|
1774
|
+
# # Resolve the dictionary structure of attribute "qInfo"
|
1775
|
+
# df_sheet_list_expanded = (df_sheet_list["qInfo"].dropna().apply(pd.Series).add_prefix("qInfo_"))
|
1776
|
+
# df_sheet_list = df_sheet_list.drop(columns=["qInfo"]).join(df_sheet_list_expanded)
|
1777
|
+
#
|
1778
|
+
# # Resolve the dictionary structure of attribute "qMetaDef"
|
1779
|
+
# df_sheet_list_expanded = (df_sheet_list["qMetaDef"].dropna().apply(pd.Series).add_prefix("qMetaDef_"))
|
1780
|
+
# df_sheet_list = df_sheet_list.drop(columns=["qMetaDef"]).join(df_sheet_list_expanded)
|
1781
|
+
#
|
1782
|
+
# # Resolve the dictionary structure of attribute "thumbnail"
|
1783
|
+
# df_sheet_list_expanded = (df_sheet_list["thumbnail"].dropna().apply(pd.Series).add_prefix("thumbnail_"))
|
1784
|
+
# df_sheet_list = df_sheet_list.drop(columns=["thumbnail"]).join(df_sheet_list_expanded)
|
1785
|
+
#
|
1786
|
+
# # Resolve the dictionary structure of attribute "thumbnail_qStaticContentUrlDef"
|
1787
|
+
# df_sheet_list_expanded = (df_sheet_list["thumbnail_qStaticContentUrlDef"].dropna().apply(pd.Series).add_prefix("thumbnail_qStaticContentUrlDef_"))
|
1788
|
+
# df_sheet_list = df_sheet_list.drop(columns=["thumbnail_qStaticContentUrlDef"]).join(df_sheet_list_expanded)
|
1789
|
+
#
|
1790
|
+
# # Resolve the dictionary structure of attribute "qChildListDef"
|
1791
|
+
# df_sheet_list_expanded = (df_sheet_list["qChildListDef"].dropna().apply(pd.Series).add_prefix("qChildListDef_"))
|
1792
|
+
# df_sheet_list = df_sheet_list.drop(columns=["qChildListDef"]).join(df_sheet_list_expanded)
|
1793
|
+
#
|
1794
|
+
# # Resolve the dictionary structure of attribute "qChildListDef_qData"
|
1795
|
+
# df_sheet_list_expanded = (df_sheet_list["qChildListDef_qData"].dropna().apply(pd.Series).add_prefix("qChildListDef_qData_"))
|
1796
|
+
# df_sheet_list = df_sheet_list.drop(columns=["qChildListDef_qData"]).join(df_sheet_list_expanded)
|
1797
|
+
#
|
1798
|
+
# # Resolve the dictionary structure of attribute "layoutOptions"
|
1799
|
+
# df_sheet_list_expanded = (df_sheet_list["layoutOptions"].dropna().apply(pd.Series).add_prefix("layoutOptions_"))
|
1800
|
+
# df_sheet_list = df_sheet_list.drop(columns=["layoutOptions"]).join(df_sheet_list_expanded)
|
1801
|
+
#
|
1802
|
+
# return df_sheet_list
|
1803
|
+
#
|
1804
|
+
#
|
1805
|
+
# def get_app_layout_containers(self, app_handle):
|
1806
|
+
# """
|
1807
|
+
# Retrieves a list with all app layout container metadata.
|
1808
|
+
#
|
1809
|
+
# Parameters:
|
1810
|
+
# app_handle (int): The handle of the app.
|
1811
|
+
#
|
1812
|
+
# Returns:
|
1813
|
+
# DataFrame: A table with all layout container metadata from an app.
|
1814
|
+
# """
|
1815
|
+
#
|
1816
|
+
# # Define the DataFrame structure
|
1817
|
+
# df_layout_container_list = pd.DataFrame(
|
1818
|
+
# columns=["qInfo", "qExtendsId", "qMetaDef", "qStateName", "objects", "showTitles", "title", "subtitle",
|
1819
|
+
# "footnote", "disableNavMenu", "showDetails", "showDetailsExpression", "components",
|
1820
|
+
# "constrainToContainer", "showGridLines", "gridRowCount", "gridColumnCount", "snapToGrid",
|
1821
|
+
# "visualization", "qChildListDef", "version", "extensionMeta"
|
1822
|
+
# "qChildren", "qEmbeddedSnapshotRef"])
|
1823
|
+
#
|
1824
|
+
# # Get layout container object data
|
1825
|
+
# options = self.structs.options(types=["sn-layout-container"])
|
1826
|
+
# layout_container_list = self.eaa.get_objects(app_handle=app_handle, options=options)
|
1827
|
+
#
|
1828
|
+
# for layout_container in layout_container_list:
|
1829
|
+
# # Get layout container ID
|
1830
|
+
# layout_container_id = layout_container["qInfo"]["qId"]
|
1831
|
+
# # Get layout container object
|
1832
|
+
# layout_container_obj = self.eaa.get_object(app_handle=app_handle, object_id=layout_container_id)
|
1833
|
+
# # Get layout container handle
|
1834
|
+
# layout_container_handle = self.get_handle(layout_container_obj)
|
1835
|
+
# # Get layout container full property tree
|
1836
|
+
# layout_container_full_property_tree = self.egoa.get_full_property_tree(handle=layout_container_handle)
|
1837
|
+
#
|
1838
|
+
# # Get layout container properties
|
1839
|
+
# layout_container_props = layout_container_full_property_tree["qProperty"]
|
1840
|
+
# layout_container_children = layout_container_full_property_tree["qChildren"]
|
1841
|
+
# layout_container_children_ids = [child["qProperty"]["qInfo"]["qId"] for child in layout_container_children]
|
1842
|
+
# layout_container_props["qChildren"] = layout_container_children_ids
|
1843
|
+
#
|
1844
|
+
# # Concatenate the layout container metadata to the DataFrame structure
|
1845
|
+
# df_layout_container_list.loc[len(df_layout_container_list)] = layout_container_props
|
1846
|
+
#
|
1847
|
+
#
|
1848
|
+
# # Resolve the dictionary structure of attribute "qInfo"
|
1849
|
+
# df_layout_container_list_expanded = (df_layout_container_list["qInfo"].dropna().apply(pd.Series).add_prefix("qInfo_"))
|
1850
|
+
# df_layout_container_list = df_layout_container_list.drop(columns=["qInfo"]).join(df_layout_container_list_expanded)
|
1851
|
+
#
|
1852
|
+
# # Resolve the dictionary structure of attribute "qChildListDef"
|
1853
|
+
# df_layout_container_list_expanded = (
|
1854
|
+
# df_layout_container_list["qChildListDef"].dropna().apply(pd.Series).add_prefix("qChildListDef_"))
|
1855
|
+
# df_layout_container_list = df_layout_container_list.drop(columns=["qChildListDef"]).join(
|
1856
|
+
# df_layout_container_list_expanded)
|
1857
|
+
#
|
1858
|
+
# # Resolve the dictionary structure of attribute "qChildListDef_qData"
|
1859
|
+
# df_layout_container_list_expanded = (
|
1860
|
+
# df_layout_container_list["qChildListDef_qData"].dropna().apply(pd.Series).add_prefix("qChildListDef_qData_"))
|
1861
|
+
# df_layout_container_list = df_layout_container_list.drop(columns=["qChildListDef_qData"]).join(
|
1862
|
+
# df_layout_container_list_expanded)
|
1863
|
+
#
|
1864
|
+
# return df_layout_container_list
|
1865
|
+
#
|
1866
|
+
#
|
1867
|
+
# def get_app_tabbed_containers(self, app_handle):
|
1868
|
+
# """
|
1869
|
+
# Retrieves a list with all app tabbed container metadata.
|
1870
|
+
#
|
1871
|
+
# Parameters:
|
1872
|
+
# app_handle (int): The handle of the app.
|
1873
|
+
#
|
1874
|
+
# Returns:
|
1875
|
+
# DataFrame: A table with all tabbed container metadata from an app.
|
1876
|
+
# """
|
1877
|
+
#
|
1878
|
+
# # Define the DataFrame structure
|
1879
|
+
# df_tabbed_container_list = pd.DataFrame(
|
1880
|
+
# columns=["qInfo", "qExtendsId", "qMetaDef", "qStateName", "objects", "showTitles", "title", "subtitle",
|
1881
|
+
# "footnote", "disableNavMenu", "showDetails", "showDetailsExpression", "showTabs", "useDropdown",
|
1882
|
+
# "useScrollButton", "showIcons", "orientation", "defaultTabId", "visualization", "qChildListDef",
|
1883
|
+
# "components", "fontsUsed", "qChildren", "qEmbeddedSnapshotRef"])
|
1884
|
+
#
|
1885
|
+
# # Get tabbed container object data
|
1886
|
+
# options = self.structs.options(types=["sn-tabbed-container"])
|
1887
|
+
# tabbed_container_list = self.eaa.get_objects(app_handle=app_handle, options=options)
|
1888
|
+
#
|
1889
|
+
# for tabbed_container in tabbed_container_list:
|
1890
|
+
# # Get tabbed container ID
|
1891
|
+
# tabbed_container_id = tabbed_container["qInfo"]["qId"]
|
1892
|
+
# # Get tabbed container object
|
1893
|
+
# tabbed_container_obj = self.eaa.get_object(app_handle=app_handle, object_id=tabbed_container_id)
|
1894
|
+
# # Get tabbed container handle
|
1895
|
+
# tabbed_container_handle = self.get_handle(tabbed_container_obj)
|
1896
|
+
# # Get tabbed container full property tree
|
1897
|
+
# tabbed_container_full_property_tree = self.egoa.get_full_property_tree(handle=tabbed_container_handle)
|
1898
|
+
#
|
1899
|
+
# # Get tabbed container properties
|
1900
|
+
# tabbed_container_props = tabbed_container_full_property_tree["qProperty"]
|
1901
|
+
# tabbed_container_children = tabbed_container_full_property_tree["qChildren"]
|
1902
|
+
# tabbed_container_children_ids = [child["qProperty"]["qInfo"]["qId"] for child in tabbed_container_children]
|
1903
|
+
# tabbed_container_props["qChildren"] = tabbed_container_children_ids
|
1904
|
+
#
|
1905
|
+
# # Concatenate the tabbed container metadata to the DataFrame structure
|
1906
|
+
# df_tabbed_container_list.loc[len(df_tabbed_container_list)] = tabbed_container_props
|
1907
|
+
#
|
1908
|
+
#
|
1909
|
+
# # Resolve the dictionary structure of attribute "qInfo"
|
1910
|
+
# df_tabbed_container_list_expanded = (df_tabbed_container_list["qInfo"].dropna().apply(pd.Series).add_prefix("qInfo_"))
|
1911
|
+
# df_tabbed_container_list = df_tabbed_container_list.drop(columns=["qInfo"]).join(df_tabbed_container_list_expanded)
|
1912
|
+
#
|
1913
|
+
# # Resolve the dictionary structure of attribute "qChildListDef"
|
1914
|
+
# df_tabbed_container_list_expanded = (
|
1915
|
+
# df_tabbed_container_list["qChildListDef"].dropna().apply(pd.Series).add_prefix("qChildListDef_"))
|
1916
|
+
# df_tabbed_container_list = df_tabbed_container_list.drop(columns=["qChildListDef"]).join(
|
1917
|
+
# df_tabbed_container_list_expanded)
|
1918
|
+
#
|
1919
|
+
# # Resolve the dictionary structure of attribute "qChildListDef"
|
1920
|
+
# df_tabbed_container_list_expanded = (
|
1921
|
+
# df_tabbed_container_list["qChildListDef_qData"].dropna().apply(pd.Series).add_prefix("qChildListDef_qData_"))
|
1922
|
+
# df_tabbed_container_list = df_tabbed_container_list.drop(columns=["qChildListDef_qData"]).join(
|
1923
|
+
# df_tabbed_container_list_expanded)
|
1924
|
+
#
|
1925
|
+
# return df_tabbed_container_list
|
1926
|
+
#
|
1927
|
+
#
|
1928
|
+
# def get_app_containers(self, app_handle):
|
1929
|
+
# """
|
1930
|
+
# Retrieves a list with all app container metadata.
|
1931
|
+
#
|
1932
|
+
# Parameters:
|
1933
|
+
# app_handle (int): The handle of the app.
|
1934
|
+
#
|
1935
|
+
# Returns:
|
1936
|
+
# DataFrame: A table with all container metadata from an app.
|
1937
|
+
# """
|
1938
|
+
#
|
1939
|
+
# # Define the DataFrame structure
|
1940
|
+
# df_container_list = pd.DataFrame(
|
1941
|
+
# columns=["qInfo", "qExtendsId", "qMetaDef", "qStateName", "children", "showTitles", "title", "subtitle",
|
1942
|
+
# "footnote", "disableNavMenu", "showDetails", "showDetailsExpression", "borders", "showTabs", "useDropdown",
|
1943
|
+
# "useScrollButton", "showIcons", "activeTab", "defaultTab", "visualization", "qChildListDef",
|
1944
|
+
# "supportRefresh", "hasExternalChildren", "qChildren", "qEmbeddedSnapshotRef"])
|
1945
|
+
#
|
1946
|
+
# # Get container object data
|
1947
|
+
# options = self.structs.options(types=["container"])
|
1948
|
+
# container_list = self.eaa.get_objects(app_handle=app_handle, options=options)
|
1949
|
+
#
|
1950
|
+
# for container in container_list:
|
1951
|
+
# # Get container ID
|
1952
|
+
# container_id = container["qInfo"]["qId"]
|
1953
|
+
# # Get container object
|
1954
|
+
# container_obj = self.eaa.get_object(app_handle=app_handle, object_id=container_id)
|
1955
|
+
# # Get container handle
|
1956
|
+
# container_handle = self.get_handle(container_obj)
|
1957
|
+
# # Get container full property tree
|
1958
|
+
# container_full_property_tree = self.egoa.get_full_property_tree(handle=container_handle)
|
1959
|
+
#
|
1960
|
+
# # Get container properties
|
1961
|
+
# container_props = container_full_property_tree["qProperty"]
|
1962
|
+
# container_children = container_full_property_tree["qChildren"]
|
1963
|
+
# container_children_ids = [child["qProperty"]["qInfo"]["qId"] for child in container_children]
|
1964
|
+
# container_props["qChildren"] = container_children_ids
|
1965
|
+
#
|
1966
|
+
# # Concatenate the container metadata to the DataFrame structure
|
1967
|
+
# df_container_list.loc[len(df_container_list)] = container_props
|
1968
|
+
#
|
1969
|
+
#
|
1970
|
+
# # Resolve the dictionary structure of attribute "qInfo"
|
1971
|
+
# df_container_list_expanded = (df_container_list["qInfo"].dropna().apply(pd.Series).add_prefix("qInfo_"))
|
1972
|
+
# df_container_list = df_container_list.drop(columns=["qInfo"]).join(df_container_list_expanded)
|
1973
|
+
#
|
1974
|
+
# # Resolve the dictionary structure of attribute "qChildListDef"
|
1975
|
+
# df_container_list_expanded = (
|
1976
|
+
# df_container_list["qChildListDef"].dropna().apply(pd.Series).add_prefix("qChildListDef_"))
|
1977
|
+
# df_container_list = df_container_list.drop(columns=["qChildListDef"]).join(
|
1978
|
+
# df_container_list_expanded)
|
1979
|
+
#
|
1980
|
+
# # Resolve the dictionary structure of attribute "qChildListDef"
|
1981
|
+
# df_container_list_expanded = (
|
1982
|
+
# df_container_list["qChildListDef_qData"].dropna().apply(pd.Series).add_prefix("qChildListDef_qData_"))
|
1983
|
+
# df_container_list = df_container_list.drop(columns=["qChildListDef_qData"]).join(
|
1984
|
+
# df_container_list_expanded)
|
1985
|
+
#
|
1986
|
+
# return df_container_list
|
1987
|
+
#
|
1988
|
+
#
|
1989
|
+
# def get_app_filterpanes(self, app_handle):
|
1990
|
+
# """
|
1991
|
+
# Retrieves a list with all app filterpane metadata.
|
1992
|
+
#
|
1993
|
+
# Parameters:
|
1994
|
+
# app_handle (int): The handle of the app.
|
1995
|
+
#
|
1996
|
+
# Returns:
|
1997
|
+
# DataFrame: A table with all filterpane metadata from an app.
|
1998
|
+
# """
|
1999
|
+
#
|
2000
|
+
# # Define the DataFrame structure
|
2001
|
+
# df_filterpane_list = pd.DataFrame(
|
2002
|
+
# columns=["qInfo", "qExtendsId", "qMetaDef", "qStateName", "showTitles", "title", "subtitle", "footnote",
|
2003
|
+
# "disableNavMenu", "showDetails", "showDetailsExpression", "visualization", "version", "qChildren"])
|
2004
|
+
#
|
2005
|
+
# # Get filterpane object data
|
2006
|
+
# options = self.structs.options(types=["filterpane"])
|
2007
|
+
# filterpane_list = self.eaa.get_objects(app_handle=app_handle, options=options)
|
2008
|
+
#
|
2009
|
+
# for filterpane in filterpane_list:
|
2010
|
+
# # Get filterpane ID
|
2011
|
+
# filterpane_id = filterpane["qInfo"]["qId"]
|
2012
|
+
# # Get filterpane object
|
2013
|
+
# filterpane_obj = self.eaa.get_object(app_handle=app_handle, object_id=filterpane_id)
|
2014
|
+
# # Get filterpane handle
|
2015
|
+
# filterpane_handle = self.get_handle(filterpane_obj)
|
2016
|
+
# # Get filterpane full property tree
|
2017
|
+
# filterpane_full_property_tree = self.egoa.get_full_property_tree(handle=filterpane_handle)
|
2018
|
+
#
|
2019
|
+
# # Get filterpane properties
|
2020
|
+
# filterpane_props = filterpane_full_property_tree["qProperty"]
|
2021
|
+
# filterpane_children = filterpane_full_property_tree["qChildren"]
|
2022
|
+
# filterpane_children_ids = [child["qProperty"]["qInfo"]["qId"] for child in filterpane_children]
|
2023
|
+
# filterpane_props["qChildren"] = filterpane_children_ids
|
2024
|
+
#
|
2025
|
+
# # Concatenate the filterpane metadata to the DataFrame structure
|
2026
|
+
# df_filterpane_list.loc[len(df_filterpane_list)] = filterpane_props
|
2027
|
+
#
|
2028
|
+
#
|
2029
|
+
# # Resolve the dictionary structure of attribute "qInfo"
|
2030
|
+
# df_filterpane_list_expanded = (df_filterpane_list["qInfo"].dropna().apply(pd.Series).add_prefix("qInfo_"))
|
2031
|
+
# df_filterpane_list = df_filterpane_list.drop(columns=["qInfo"]).join(df_filterpane_list_expanded)
|
2032
|
+
#
|
2033
|
+
# return df_filterpane_list
|
2034
|
+
#
|
2035
|
+
#
|
2036
|
+
# def get_app_listboxes(self, app_handle):
|
2037
|
+
# """
|
2038
|
+
# Retrieves a list with all app listbox metadata.
|
2039
|
+
#
|
2040
|
+
# Parameters:
|
2041
|
+
# app_handle (int): The handle of the app.
|
2042
|
+
#
|
2043
|
+
# Returns:
|
2044
|
+
# DataFrame: A table with all listbox metadata from an app.
|
2045
|
+
# """
|
2046
|
+
#
|
2047
|
+
# # Define the DataFrame structure
|
2048
|
+
# df_listbox_list = pd.DataFrame(
|
2049
|
+
# columns=["qInfo", "qExtendsId", "qMetaDef", "qStateName", "qListObjectDef", "showTitles", "title", "subtitle", "footnote",
|
2050
|
+
# "disableNavMenu", "showDetails", "showDetailsExpression", "visualization", "qChildren"])
|
2051
|
+
#
|
2052
|
+
# # Get listbox object data
|
2053
|
+
# options = self.structs.options(types=["listbox"])
|
2054
|
+
# listbox_list = self.eaa.get_objects(app_handle=app_handle, options=options)
|
2055
|
+
#
|
2056
|
+
# for listbox in listbox_list:
|
2057
|
+
# # Get listbox ID
|
2058
|
+
# listbox_id = listbox["qInfo"]["qId"]
|
2059
|
+
# # Get listbox object
|
2060
|
+
# listbox_obj = self.eaa.get_object(app_handle=app_handle, object_id=listbox_id)
|
2061
|
+
# # Get listbox handle
|
2062
|
+
# listbox_handle = self.get_handle(listbox_obj)
|
2063
|
+
# # Get listbox full property tree
|
2064
|
+
# listbox_full_property_tree = self.egoa.get_full_property_tree(handle=listbox_handle)
|
2065
|
+
#
|
2066
|
+
# # Get listbox properties
|
2067
|
+
# listbox_props = listbox_full_property_tree["qProperty"]
|
2068
|
+
# listbox_children = listbox_full_property_tree["qChildren"]
|
2069
|
+
# listbox_children_ids = [child["qProperty"]["qInfo"]["qId"] for child in listbox_children]
|
2070
|
+
# listbox_props["qChildren"] = listbox_children_ids
|
2071
|
+
#
|
2072
|
+
# # Concatenate the listbox metadata to the DataFrame structure
|
2073
|
+
# df_listbox_list.loc[len(df_listbox_list)] = listbox_props
|
2074
|
+
#
|
2075
|
+
#
|
2076
|
+
# # Resolve the dictionary structure of attribute "qInfo"
|
2077
|
+
# df_listbox_list_expanded = (df_listbox_list["qInfo"].dropna().apply(pd.Series).add_prefix("qInfo_"))
|
2078
|
+
# df_listbox_list = df_listbox_list.drop(columns=["qInfo"]).join(df_listbox_list_expanded)
|
2079
|
+
#
|
2080
|
+
# # Resolve the dictionary structure of attribute "qListObjectDef"
|
2081
|
+
# df_listbox_list_expanded = (df_listbox_list["qListObjectDef"].dropna().apply(pd.Series).add_prefix("qListObjectDef_"))
|
2082
|
+
# df_listbox_list = df_listbox_list.drop(columns=["qListObjectDef"]).join(df_listbox_list_expanded)
|
2083
|
+
#
|
2084
|
+
# # Resolve the dictionary structure of attribute "qListObjectDef_qDef"
|
2085
|
+
# df_listbox_list_expanded = (
|
2086
|
+
# df_listbox_list["qListObjectDef_qDef"].dropna().apply(pd.Series).add_prefix("qListObjectDef_qDef_"))
|
2087
|
+
# df_listbox_list = df_listbox_list.drop(columns=["qListObjectDef_qDef"]).join(df_listbox_list_expanded)
|
2088
|
+
#
|
2089
|
+
# return df_listbox_list
|
2090
|
+
#
|
2091
|
+
#
|
2092
|
+
# def get_app_tables(self, app_handle):
|
2093
|
+
# """
|
2094
|
+
# Retrieves a list with all app table metadata.
|
2095
|
+
#
|
2096
|
+
# Parameters:
|
2097
|
+
# app_handle (int): The handle of the app.
|
2098
|
+
#
|
2099
|
+
# Returns:
|
2100
|
+
# DataFrame: A table with all table metadata from an app.
|
2101
|
+
# """
|
2102
|
+
#
|
2103
|
+
# # Define the DataFrame structure
|
2104
|
+
# df_table_list = pd.DataFrame(
|
2105
|
+
# columns=["qInfo", "qExtendsId", "qMetaDef", "qStateName", "qHyperCubeDef", "script", "filter", "search",
|
2106
|
+
# "showTitles", "title", "subtitle", "footnote", "disableNavMenu", "showDetails",
|
2107
|
+
# "showDetailsExpression", "totals", "scrolling", "multiline", "visualization", "qChildren",
|
2108
|
+
# "qEmbeddedSnapshotRef"])
|
2109
|
+
#
|
2110
|
+
# # Get table object data
|
2111
|
+
# options = self.structs.options(types=["table"])
|
2112
|
+
# table_list = self.eaa.get_objects(app_handle=app_handle, options=options)
|
2113
|
+
#
|
2114
|
+
# for table in table_list:
|
2115
|
+
# # Get table ID
|
2116
|
+
# table_id = table["qInfo"]["qId"]
|
2117
|
+
# # Get table object
|
2118
|
+
# table_obj = self.eaa.get_object(app_handle=app_handle, object_id=table_id)
|
2119
|
+
# # Get table handle
|
2120
|
+
# table_handle = self.get_handle(table_obj)
|
2121
|
+
# # Get table full property tree
|
2122
|
+
# table_full_property_tree = self.egoa.get_full_property_tree(handle=table_handle)
|
2123
|
+
#
|
2124
|
+
# # Get table properties
|
2125
|
+
# table_props = table_full_property_tree["qProperty"]
|
2126
|
+
# table_children = table_full_property_tree["qChildren"]
|
2127
|
+
# table_children_ids = [child["qProperty"]["qInfo"]["qId"] for child in table_children]
|
2128
|
+
# table_props["qChildren"] = table_children_ids
|
2129
|
+
#
|
2130
|
+
# # Concatenate the table metadata to the DataFrame structure
|
2131
|
+
# df_table_list.loc[len(df_table_list)] = table_props
|
2132
|
+
#
|
2133
|
+
#
|
2134
|
+
# # Resolve the dictionary structure of attribute "qInfo"
|
2135
|
+
# df_table_list_expanded = (df_table_list["qInfo"].dropna().apply(pd.Series).add_prefix("qInfo_"))
|
2136
|
+
# df_table_list = df_table_list.drop(columns=["qInfo"]).join(df_table_list_expanded)
|
2137
|
+
#
|
2138
|
+
# # Resolve the dictionary structure of attribute "qHyperCubeDef"
|
2139
|
+
# df_table_list_expanded = (df_table_list["qHyperCubeDef"].dropna().apply(pd.Series).add_prefix("qHyperCubeDef_"))
|
2140
|
+
# df_table_list = df_table_list.drop(columns=["qHyperCubeDef"]).join(df_table_list_expanded)
|
2141
|
+
#
|
2142
|
+
# # Resolve the dictionary structure of attribute "search"
|
2143
|
+
# df_table_list_expanded = (df_table_list["search"].dropna().apply(pd.Series).add_prefix("search_"))
|
2144
|
+
# df_table_list = df_table_list.drop(columns=["search"]).join(df_table_list_expanded)
|
2145
|
+
#
|
2146
|
+
# # Resolve the dictionary structure of attribute "totals"
|
2147
|
+
# df_table_list_expanded = (df_table_list["totals"].dropna().apply(pd.Series).add_prefix("totals_"))
|
2148
|
+
# df_table_list = df_table_list.drop(columns=["totals"]).join(df_table_list_expanded)
|
2149
|
+
#
|
2150
|
+
# # Resolve the dictionary structure of attribute "scrolling"
|
2151
|
+
# df_table_list_expanded = (df_table_list["scrolling"].dropna().apply(pd.Series).add_prefix("scrolling_"))
|
2152
|
+
# df_table_list = df_table_list.drop(columns=["scrolling"]).join(df_table_list_expanded)
|
2153
|
+
#
|
2154
|
+
# # Resolve the dictionary structure of attribute "multiline"
|
2155
|
+
# df_table_list_expanded = (df_table_list["multiline"].dropna().apply(pd.Series).add_prefix("multiline_"))
|
2156
|
+
# df_table_list = df_table_list.drop(columns=["multiline"]).join(df_table_list_expanded)
|
2157
|
+
#
|
2158
|
+
# return df_table_list
|
2159
|
+
#
|
2160
|
+
#
|
2161
|
+
# def get_app_pivot_tables(self, app_handle):
|
2162
|
+
# """
|
2163
|
+
# Retrieves a list with all app pivot table metadata.
|
2164
|
+
#
|
2165
|
+
# Parameters:
|
2166
|
+
# app_handle (int): The handle of the app.
|
2167
|
+
#
|
2168
|
+
# Returns:
|
2169
|
+
# DataFrame: A table with all pivot table metadata from an app.
|
2170
|
+
# """
|
2171
|
+
#
|
2172
|
+
# # Define the DataFrame structure
|
2173
|
+
# df_pivot_table_list = pd.DataFrame(
|
2174
|
+
# columns=["qInfo", "qExtendsId", "qMetaDef", "qStateName", "qHyperCubeDef", "search", "showTitles", "title",
|
2175
|
+
# "subtitle", "footnote", "disableNavMenu", "showDetails", "showDetailsExpression", "visualization",
|
2176
|
+
# "qLayoutExclude", "components", "containerChildId", "qChildren", "qEmbeddedSnapshotRef"])
|
2177
|
+
#
|
2178
|
+
# # Get table object data
|
2179
|
+
# options = self.structs.options(types=["pivot-table"])
|
2180
|
+
# pivot_table_list = self.eaa.get_objects(app_handle=app_handle, options=options)
|
2181
|
+
#
|
2182
|
+
# for pivot_table in pivot_table_list:
|
2183
|
+
# # Get table ID
|
2184
|
+
# pivot_table_id = pivot_table["qInfo"]["qId"]
|
2185
|
+
# # Get table object
|
2186
|
+
# pivot_table_obj = self.eaa.get_object(app_handle=app_handle, object_id=pivot_table_id)
|
2187
|
+
# # Get table handle
|
2188
|
+
# pivot_table_handle = self.get_handle(pivot_table_obj)
|
2189
|
+
# # Get table full property tree
|
2190
|
+
# pivot_table_full_property_tree = self.egoa.get_full_property_tree(handle=pivot_table_handle)
|
2191
|
+
#
|
2192
|
+
# # Get table properties
|
2193
|
+
# pivot_table_props = pivot_table_full_property_tree["qProperty"]
|
2194
|
+
# pivot_table_children = pivot_table_full_property_tree["qChildren"]
|
2195
|
+
# pivot_table_children_ids = [child["qProperty"]["qInfo"]["qId"] for child in pivot_table_children]
|
2196
|
+
# pivot_table_props["qChildren"] = pivot_table_children_ids
|
2197
|
+
#
|
2198
|
+
# # Concatenate the table metadata to the DataFrame structure
|
2199
|
+
# df_pivot_table_list.loc[len(df_pivot_table_list)] = pivot_table_props
|
2200
|
+
#
|
2201
|
+
#
|
2202
|
+
# # Resolve the dictionary structure of attribute "qInfo"
|
2203
|
+
# df_pivot_table_list_expanded = (df_pivot_table_list["qInfo"].dropna().apply(pd.Series).add_prefix("qInfo_"))
|
2204
|
+
# df_pivot_table_list = df_pivot_table_list.drop(columns=["qInfo"]).join(df_pivot_table_list_expanded)
|
2205
|
+
#
|
2206
|
+
# # Resolve the dictionary structure of attribute "qHyperCubeDef"
|
2207
|
+
# df_pivot_table_list_expanded = (df_pivot_table_list["qHyperCubeDef"].dropna().apply(pd.Series).add_prefix("qHyperCubeDef_"))
|
2208
|
+
# df_pivot_table_list = df_pivot_table_list.drop(columns=["qHyperCubeDef"]).join(df_pivot_table_list_expanded)
|
2209
|
+
#
|
2210
|
+
# # Resolve the dictionary structure of attribute "search"
|
2211
|
+
# df_pivot_table_list_expanded = (
|
2212
|
+
# df_pivot_table_list["search"].dropna().apply(pd.Series).add_prefix("search_"))
|
2213
|
+
# df_pivot_table_list = df_pivot_table_list.drop(columns=["search"]).join(df_pivot_table_list_expanded)
|
2214
|
+
#
|
2215
|
+
# # Resolve the dictionary structure of attribute "qLayoutExclude"
|
2216
|
+
# df_pivot_table_list_expanded = (
|
2217
|
+
# df_pivot_table_list["qLayoutExclude"].dropna().apply(pd.Series).add_prefix("qLayoutExclude_"))
|
2218
|
+
# df_pivot_table_list = df_pivot_table_list.drop(columns=["qLayoutExclude"]).join(df_pivot_table_list_expanded)
|
2219
|
+
#
|
2220
|
+
# return df_pivot_table_list
|
2221
|
+
#
|
2222
|
+
#
|
2223
|
+
# def get_app_straight_tables(self, app_handle):
|
2224
|
+
# """
|
2225
|
+
# Retrieves a list with all app straight table metadata.
|
2226
|
+
#
|
2227
|
+
# Parameters:
|
2228
|
+
# app_handle (int): The handle of the app.
|
2229
|
+
#
|
2230
|
+
# Returns:
|
2231
|
+
# DataFrame: A table with all straight table metadata from an app.
|
2232
|
+
# """
|
2233
|
+
#
|
2234
|
+
# # Define the DataFrame structure
|
2235
|
+
# df_straight_table_list = pd.DataFrame(
|
2236
|
+
# columns=["qInfo", "qExtendsId", "qMetaDef", "qStateName", "qHyperCubeDef", "showTitles", "title",
|
2237
|
+
# "subtitle", "footnote", "disableNavMenu", "showDetails", "showDetailsExpression", "components",
|
2238
|
+
# "totals", "usePagination", "enableChartExploration", "chartExploration", "visualization",
|
2239
|
+
# "version", "qLayoutExclude", "extensionMeta", "containerChildId", "insideContainer", "childRefId",
|
2240
|
+
# "nullValueRepresentation", "qChildren", "qEmbeddedSnapshotRef"])
|
2241
|
+
#
|
2242
|
+
# # Get table object data
|
2243
|
+
# options = self.structs.options(types=["sn-table"])
|
2244
|
+
# straight_table_list = self.eaa.get_objects(app_handle=app_handle, options=options)
|
2245
|
+
#
|
2246
|
+
# for straight_table in straight_table_list:
|
2247
|
+
# # Get table ID
|
2248
|
+
# straight_table_id = straight_table["qInfo"]["qId"]
|
2249
|
+
# # Get table object
|
2250
|
+
# straight_table_obj = self.eaa.get_object(app_handle=app_handle, object_id=straight_table_id)
|
2251
|
+
# # Get table handle
|
2252
|
+
# straight_table_handle = self.get_handle(straight_table_obj)
|
2253
|
+
# # Get table full property tree
|
2254
|
+
# straight_table_full_property_tree = self.egoa.get_full_property_tree(handle=straight_table_handle)
|
2255
|
+
#
|
2256
|
+
# # Get table properties
|
2257
|
+
# straight_table_props = straight_table_full_property_tree["qProperty"]
|
2258
|
+
# straight_table_children = straight_table_full_property_tree["qChildren"]
|
2259
|
+
# straight_table_children_ids = [child["qProperty"]["qInfo"]["qId"] for child in straight_table_children]
|
2260
|
+
# straight_table_props["qChildren"] = straight_table_children_ids
|
2261
|
+
#
|
2262
|
+
# # Concatenate the table metadata to the DataFrame structure
|
2263
|
+
# df_straight_table_list.loc[len(df_straight_table_list)] = straight_table_props
|
2264
|
+
#
|
2265
|
+
#
|
2266
|
+
# # Resolve the dictionary structure of attribute "qInfo"
|
2267
|
+
# df_straight_table_list_expanded = (df_straight_table_list["qInfo"].dropna().apply(pd.Series).add_prefix("qInfo_"))
|
2268
|
+
# df_straight_table_list = df_straight_table_list.drop(columns=["qInfo"]).join(df_straight_table_list_expanded)
|
2269
|
+
#
|
2270
|
+
# # Resolve the dictionary structure of attribute "qHyperCubeDef"
|
2271
|
+
# df_straight_table_list_expanded = (df_straight_table_list["qHyperCubeDef"].dropna().apply(pd.Series).add_prefix("qHyperCubeDef_"))
|
2272
|
+
# df_straight_table_list = df_straight_table_list.drop(columns=["qHyperCubeDef"]).join(df_straight_table_list_expanded)
|
2273
|
+
#
|
2274
|
+
# # Resolve the dictionary structure of attribute "footnote"
|
2275
|
+
# df_straight_table_list_expanded = (df_straight_table_list["footnote"].dropna().apply(pd.Series).add_prefix("footnote_"))
|
2276
|
+
# df_straight_table_list = df_straight_table_list.drop(columns=["footnote"]).join(df_straight_table_list_expanded)
|
2277
|
+
#
|
2278
|
+
# # Resolve the dictionary structure of attribute "totals"
|
2279
|
+
# df_straight_table_list_expanded = (
|
2280
|
+
# df_straight_table_list["totals"].dropna().apply(pd.Series).add_prefix("totals_"))
|
2281
|
+
# df_straight_table_list = df_straight_table_list.drop(columns=["totals"]).join(df_straight_table_list_expanded)
|
2282
|
+
#
|
2283
|
+
# # Resolve the dictionary structure of attribute "chartExploration"
|
2284
|
+
# df_straight_table_list_expanded = (
|
2285
|
+
# df_straight_table_list["chartExploration"].dropna().apply(pd.Series).add_prefix("chartExploration_"))
|
2286
|
+
# df_straight_table_list = df_straight_table_list.drop(columns=["chartExploration"]).join(df_straight_table_list_expanded)
|
2287
|
+
#
|
2288
|
+
# # Resolve the dictionary structure of attribute "qLayoutExclude"
|
2289
|
+
# df_straight_table_list_expanded = (df_straight_table_list["qLayoutExclude"].dropna().apply(pd.Series).add_prefix("qLayoutExclude_"))
|
2290
|
+
# df_straight_table_list = df_straight_table_list.drop(columns=["qLayoutExclude"]).join(df_straight_table_list_expanded)
|
2291
|
+
#
|
2292
|
+
# # Resolve the dictionary structure of attribute "extensionMeta"
|
2293
|
+
# df_straight_table_list_expanded = (
|
2294
|
+
# df_straight_table_list["extensionMeta"].dropna().apply(pd.Series).add_prefix("extensionMeta_"))
|
2295
|
+
# df_straight_table_list = df_straight_table_list.drop(columns=["extensionMeta"]).join(
|
2296
|
+
# df_straight_table_list_expanded)
|
2297
|
+
#
|
2298
|
+
# return df_straight_table_list
|
2299
|
+
#
|
2300
|
+
#
|
2301
|
+
# def get_app_new_pivot_tables(self, app_handle):
|
2302
|
+
# """
|
2303
|
+
# Retrieves a list with all app new pivot table metadata.
|
2304
|
+
#
|
2305
|
+
# Parameters:
|
2306
|
+
# app_handle (int): The handle of the app.
|
2307
|
+
#
|
2308
|
+
# Returns:
|
2309
|
+
# DataFrame: A table with all new pivot table metadata from an app.
|
2310
|
+
# """
|
2311
|
+
#
|
2312
|
+
# # Define the DataFrame structure
|
2313
|
+
# df_new_pivot_table_list = pd.DataFrame(
|
2314
|
+
# columns=["qInfo", "qExtendsId", "qMetaDef", "qStateName", "qHyperCubeDef", "search", "showTitles", "title",
|
2315
|
+
# "subtitle", "footnote", "disableNavMenu", "showDetails", "showDetailsExpression", "visualization",
|
2316
|
+
# "qLayoutExclude", "components", "nullValueRepresentation", "version", "extensionMeta",
|
2317
|
+
# "containerChildId", "qChildren", "qEmbeddedSnapshotRef"])
|
2318
|
+
#
|
2319
|
+
# # Get table object data
|
2320
|
+
# options = self.structs.options(types=["sn-pivot-table"])
|
2321
|
+
# new_pivot_table_list = self.eaa.get_objects(app_handle=app_handle, options=options)
|
2322
|
+
#
|
2323
|
+
# for new_pivot_table in new_pivot_table_list:
|
2324
|
+
# # Get table ID
|
2325
|
+
# new_pivot_table_id = new_pivot_table["qInfo"]["qId"]
|
2326
|
+
# # Get table object
|
2327
|
+
# new_pivot_table_obj = self.eaa.get_object(app_handle=app_handle, object_id=new_pivot_table_id)
|
2328
|
+
# # Get table handle
|
2329
|
+
# new_pivot_table_handle = self.get_handle(new_pivot_table_obj)
|
2330
|
+
# # Get table full property tree
|
2331
|
+
# new_pivot_table_full_property_tree = self.egoa.get_full_property_tree(handle=new_pivot_table_handle)
|
2332
|
+
#
|
2333
|
+
# # Get table properties
|
2334
|
+
# new_pivot_table_props = new_pivot_table_full_property_tree["qProperty"]
|
2335
|
+
# new_pivot_table_children = new_pivot_table_full_property_tree["qChildren"]
|
2336
|
+
# new_pivot_table_children_ids = [child["qProperty"]["qInfo"]["qId"] for child in new_pivot_table_children]
|
2337
|
+
# new_pivot_table_props["qChildren"] = new_pivot_table_children_ids
|
2338
|
+
#
|
2339
|
+
# # Concatenate the table metadata to the DataFrame structure
|
2340
|
+
# df_new_pivot_table_list.loc[len(df_new_pivot_table_list)] = new_pivot_table_props
|
2341
|
+
#
|
2342
|
+
#
|
2343
|
+
# # Resolve the dictionary structure of attribute "qInfo"
|
2344
|
+
# df_new_pivot_table_list_expanded = (df_new_pivot_table_list["qInfo"].dropna().apply(pd.Series).add_prefix("qInfo_"))
|
2345
|
+
# df_new_pivot_table_list = df_new_pivot_table_list.drop(columns=["qInfo"]).join(df_new_pivot_table_list_expanded)
|
2346
|
+
#
|
2347
|
+
# # Resolve the dictionary structure of attribute "qHyperCubeDef"
|
2348
|
+
# df_new_pivot_table_list_expanded = (
|
2349
|
+
# df_new_pivot_table_list["qHyperCubeDef"].dropna().apply(pd.Series).add_prefix("qHyperCubeDef_"))
|
2350
|
+
# df_new_pivot_table_list = df_new_pivot_table_list.drop(columns=["qHyperCubeDef"]).join(df_new_pivot_table_list_expanded)
|
2351
|
+
#
|
2352
|
+
# # Resolve the dictionary structure of attribute "footnote"
|
2353
|
+
# df_new_pivot_table_list_expanded = (
|
2354
|
+
# df_new_pivot_table_list["footnote"].dropna().apply(pd.Series).add_prefix("footnote_"))
|
2355
|
+
# df_new_pivot_table_list = df_new_pivot_table_list.drop(columns=["footnote"]).join(
|
2356
|
+
# df_new_pivot_table_list_expanded)
|
2357
|
+
#
|
2358
|
+
# # Resolve the dictionary structure of attribute "footnote_qStringExpression"
|
2359
|
+
# df_new_pivot_table_list_expanded = (
|
2360
|
+
# df_new_pivot_table_list["footnote_qStringExpression"].dropna().apply(pd.Series).add_prefix("footnote_qStringExpression_"))
|
2361
|
+
# df_new_pivot_table_list = df_new_pivot_table_list.drop(columns=["footnote_qStringExpression"]).join(
|
2362
|
+
# df_new_pivot_table_list_expanded)
|
2363
|
+
#
|
2364
|
+
# # Resolve the dictionary structure of attribute "qLayoutExclude"
|
2365
|
+
# df_new_pivot_table_list_expanded = (
|
2366
|
+
# df_new_pivot_table_list["qLayoutExclude"].dropna().apply(pd.Series).add_prefix(
|
2367
|
+
# "qLayoutExclude_"))
|
2368
|
+
# df_new_pivot_table_list = df_new_pivot_table_list.drop(columns=["qLayoutExclude"]).join(
|
2369
|
+
# df_new_pivot_table_list_expanded)
|
2370
|
+
#
|
2371
|
+
# # Resolve the dictionary structure of attribute "nullValueRepresentation"
|
2372
|
+
# df_new_pivot_table_list_expanded = (
|
2373
|
+
# df_new_pivot_table_list["nullValueRepresentation"].dropna().apply(pd.Series).add_prefix(
|
2374
|
+
# "nullValueRepresentation_"))
|
2375
|
+
# df_new_pivot_table_list = df_new_pivot_table_list.drop(columns=["nullValueRepresentation"]).join(
|
2376
|
+
# df_new_pivot_table_list_expanded)
|
2377
|
+
#
|
2378
|
+
# # Resolve the dictionary structure of attribute "extensionMeta"
|
2379
|
+
# df_new_pivot_table_list_expanded = (
|
2380
|
+
# df_new_pivot_table_list["extensionMeta"].dropna().apply(pd.Series).add_prefix(
|
2381
|
+
# "extensionMeta_"))
|
2382
|
+
# df_new_pivot_table_list = df_new_pivot_table_list.drop(columns=["extensionMeta"]).join(
|
2383
|
+
# df_new_pivot_table_list_expanded)
|
2384
|
+
#
|
2385
|
+
# return df_new_pivot_table_list
|
2386
|
+
|
2387
|
+
|
1381
2388
|
def get_app_variables(self, app_handle):
|
1382
2389
|
"""
|
1383
2390
|
Retrieves a list with all app variables containing metadata.
|
@@ -664,3 +664,13 @@ def nx_get_bookmark_options(types: list, data: dict = None):
|
|
664
664
|
return {
|
665
665
|
"qTypes": types, "qData": data
|
666
666
|
}
|
667
|
+
|
668
|
+
|
669
|
+
def options(types: list, include_session_objects: bool = False, data: dict = None):
|
670
|
+
if data is None:
|
671
|
+
data = {}
|
672
|
+
return {
|
673
|
+
"qTypes": types,
|
674
|
+
"qIncludeSessionObjects": include_session_objects,
|
675
|
+
"qData": data
|
676
|
+
}
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{qe_api_client-2.9.0 → qe_api_client-3.0.0}/qe_api_client/api_classes/engine_generic_measure_api.py
RENAMED
File without changes
|
{qe_api_client-2.9.0 → qe_api_client-3.0.0}/qe_api_client/api_classes/engine_generic_object_api.py
RENAMED
File without changes
|
{qe_api_client-2.9.0 → qe_api_client-3.0.0}/qe_api_client/api_classes/engine_generic_variable_api.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
|