Skip to content

Commit b6af850

Browse files
feat(SDK): Fixed Python Stach Metadata (#112)
* feat(SDK): Fixed Python Stach Metadata Fixed the code snippets to generate metadata in the response similar to other SDK's. Also added a change to disable warnings in the examples. * feat(sdk): Addressed review comments Made changes to the variable name for metadata as per @vamshimupparaju suggestion.
1 parent d0d43d2 commit b6af850

29 files changed

+245
-27
lines changed

auto-generated-sdk/setup.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
from setuptools import setup, find_packages # noqa: H301
1515

1616
NAME = "fds.analyticsapi.engines"
17-
VERSION = "5.6.0"
17+
VERSION = "5.7.0"
1818
# To install the library, run the following
1919
#
2020
# python setup.py install

examples/afi_optimizer_example.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
import os
33
import uuid
44
import pandas as pd
5+
import urllib3
56

67
from fds.analyticsapi.engines import ApiException
78
from fds.analyticsapi.engines.api.afi_optimizer_api import AFIOptimizerApi
@@ -16,6 +17,7 @@
1617
from fds.protobuf.stach.extensions.StachVersion import StachVersion
1718

1819
from urllib3 import Retry
20+
urllib3.disable_warnings()
1921

2022
host = os.environ['FACTSET_HOST']
2123
fds_username = os.environ['FACTSET_USERNAME']

examples/axp_optimizer_example.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
import os
33
import uuid
44
import pandas as pd
5+
import urllib3
56

67
from fds.analyticsapi.engines import ApiException
78
from fds.analyticsapi.engines.api.axp_optimizer_api import AXPOptimizerApi
@@ -18,6 +19,7 @@
1819
from fds.protobuf.stach.extensions.StachVersion import StachVersion
1920

2021
from urllib3 import Retry
22+
urllib3.disable_warnings()
2123

2224
host = os.environ['FACTSET_HOST']
2325
fds_username = os.environ['FACTSET_USERNAME']

examples/bpm_optimizer_example.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
import os
33
import uuid
44
import pandas as pd
5+
import urllib3
56

67
from fds.analyticsapi.engines import ApiException
78
from fds.analyticsapi.engines.api.bpm_optimizer_api import BPMOptimizerApi
@@ -16,6 +17,7 @@
1617
from fds.protobuf.stach.extensions.StachVersion import StachVersion
1718

1819
from urllib3 import Retry
20+
urllib3.disable_warnings()
1921

2022
host = os.environ['FACTSET_HOST']
2123
fds_username = os.environ['FACTSET_USERNAME']

examples/fi_example.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
import uuid
44
import os
55
import pandas as pd
6+
import urllib3
67

78
from fds.analyticsapi.engines.api.fi_calculations_api import FICalculationsApi
89
from fds.analyticsapi.engines.api_client import ApiClient
@@ -19,6 +20,7 @@
1920
from fds.analyticsapi.engines.model.fi_municipal_bonds_for_job_settings import FIMunicipalBondsForJobSettings
2021

2122
from urllib3 import Retry
23+
urllib3.disable_warnings()
2224

2325
host = os.environ['FACTSET_HOST']
2426
fds_username = os.environ['FACTSET_USERNAME']

examples/fiab_example.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
from fds.analyticsapi.engines.model.fiab_identifier import FIABIdentifier
1616
from urllib3 import Retry
1717

18-
urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning)
18+
urllib3.disable_warnings()
1919

2020
fds_username = os.environ['FACTSET_USERNAME']
2121
fds_api_key = os.environ['FACTSET_API_KEY']

examples/fpo_optimizer_example.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
import os
33
import uuid
44
import pandas as pd
5+
import urllib3
56

67
from fds.analyticsapi.engines import ApiException
78
from fds.analyticsapi.engines.api.fpo_optimizer_api import FPOOptimizerApi
@@ -19,6 +20,7 @@
1920
from fds.protobuf.stach.extensions.StachVersion import StachVersion
2021

2122
from urllib3 import Retry
23+
urllib3.disable_warnings()
2224

2325
host = os.environ['FACTSET_HOST']
2426
fds_username = os.environ['FACTSET_USERNAME']

examples/pa_engine_multiple_unit_example.py

Lines changed: 20 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
import os
33
import uuid
44
import pandas as pd
5+
import urllib3
56

67
from fds.analyticsapi.engines import ApiException
78
from fds.analyticsapi.engines.api.pa_calculations_api import PACalculationsApi
@@ -18,8 +19,10 @@
1819
from fds.analyticsapi.engines.model.pa_calculation_pricing_source import PACalculationPricingSource
1920
from fds.protobuf.stach.extensions.StachVersion import StachVersion
2021
from fds.protobuf.stach.extensions.StachExtensionFactory import StachExtensionFactory
22+
from fds.protobuf.stach.extensions.v2.StachUtilities import StachUtilities
2123

2224
from urllib3 import Retry
25+
urllib3.disable_warnings()
2326

2427
host = os.environ['FACTSET_HOST']
2528
fds_username = os.environ['FACTSET_USERNAME']
@@ -143,11 +146,26 @@ def main():
143146

144147
def output_calculation_result(result):
145148
print("Calculation Result")
146-
stachBuilder = StachExtensionFactory.get_row_organized_builder(
147-
StachVersion.V2)
149+
metadata_list = []
150+
stachBuilder = StachExtensionFactory.get_row_organized_builder(StachVersion.V2)
148151
stachExtension = stachBuilder.set_package(result).build()
149152
dataFramesList = stachExtension.convert_to_dataframe()
153+
MetaData = stachExtension.get_metadata()
150154
print(dataFramesList)
155+
print('\n MetaData:')
156+
for metadataItem in MetaData:
157+
metadata_dict = {}
158+
for keyName in metadataItem:
159+
appendedMetadata = ','.join(str(StachUtilities.get_value(x)) for x in metadataItem[keyName])
160+
metadata_dict[keyName] = appendedMetadata
161+
metadata_list.append(metadata_dict)
162+
163+
metadata_df = pd.DataFrame(metadata_list)
164+
# Set display options for better readability
165+
pd.set_option('display.max_rows', None)
166+
pd.set_option('display.max_columns', None)
167+
pd.set_option('display.width', None)
168+
print(metadata_df.to_string(index=False, header=True, justify='left', col_space=20))
151169
# generate_excel(dataFramesList) # Uncomment this line to get the result in table format exported to excel file.
152170

153171

examples/pa_engine_multiple_unit_linked_templated_component_example.py

Lines changed: 21 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
import os
33
import uuid
44
import pandas as pd
5+
import urllib3
56

67
from fds.analyticsapi.engines import ApiException
78
from fds.analyticsapi.engines.api.pa_calculations_api import PACalculationsApi
@@ -32,8 +33,10 @@
3233
from fds.analyticsapi.engines.model.column_statistic import ColumnStatistic
3334
from fds.analyticsapi.engines.api.groups_api import GroupsApi
3435
from fds.analyticsapi.engines.model.group import Group
36+
from fds.protobuf.stach.extensions.v2.StachUtilities import StachUtilities
3537

3638
from urllib3 import Retry
39+
urllib3.disable_warnings()
3740

3841
host = os.environ['FACTSET_HOST']
3942
fds_username = os.environ['FACTSET_USERNAME']
@@ -229,11 +232,26 @@ def main():
229232

230233
def output_calculation_result(result):
231234
print("Calculation Result")
232-
stachBuilder = StachExtensionFactory.get_row_organized_builder(
233-
StachVersion.V2)
234-
stachExtension = stachBuilder.set_package(pkg=result).build()
235+
metadata_list = []
236+
stachBuilder = StachExtensionFactory.get_row_organized_builder(StachVersion.V2)
237+
stachExtension = stachBuilder.set_package(result).build()
235238
dataFramesList = stachExtension.convert_to_dataframe()
239+
MetaData = stachExtension.get_metadata()
236240
print(dataFramesList)
241+
print('\n MetaData:')
242+
for metadataItem in MetaData:
243+
metadata_dict = {}
244+
for keyName in metadataItem:
245+
appendedMetadata = ','.join(str(StachUtilities.get_value(x)) for x in metadataItem[keyName])
246+
metadata_dict[keyName] = appendedMetadata
247+
metadata_list.append(metadata_dict)
248+
249+
metadata_df = pd.DataFrame(metadata_list)
250+
# Set display options for better readability
251+
pd.set_option('display.max_rows', None)
252+
pd.set_option('display.max_columns', None)
253+
pd.set_option('display.width', None)
254+
print(metadata_df.to_string(index=False, header=True, justify='left', col_space=20))
237255
# generate_excel(dataFramesList) # Uncomment this line to get the result in table format exported to excel file.
238256

239257

examples/pa_engine_multiple_unit_unlinked_templated_component_example.py

Lines changed: 21 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
import os
33
import uuid
44
import pandas as pd
5+
import urllib3
56

67
from fds.analyticsapi.engines import ApiException
78
from fds.analyticsapi.engines.api.pa_calculations_api import PACalculationsApi
@@ -30,8 +31,10 @@
3031
from fds.analyticsapi.engines.model.column_statistic import ColumnStatistic
3132
from fds.analyticsapi.engines.api.groups_api import GroupsApi
3233
from fds.analyticsapi.engines.model.group import Group
34+
from fds.protobuf.stach.extensions.v2.StachUtilities import StachUtilities
3335

3436
from urllib3 import Retry
37+
urllib3.disable_warnings()
3538

3639
host = os.environ['FACTSET_HOST']
3740
fds_username = os.environ['FACTSET_USERNAME']
@@ -229,11 +232,26 @@ def main():
229232

230233
def output_calculation_result(result):
231234
print("Calculation Result")
232-
stachBuilder = StachExtensionFactory.get_row_organized_builder(
233-
StachVersion.V2)
234-
stachExtension = stachBuilder.set_package(pkg=result).build()
235+
metadata_list = []
236+
stachBuilder = StachExtensionFactory.get_row_organized_builder(StachVersion.V2)
237+
stachExtension = stachBuilder.set_package(result).build()
235238
dataFramesList = stachExtension.convert_to_dataframe()
239+
MetaData = stachExtension.get_metadata()
236240
print(dataFramesList)
241+
print('\n MetaData:')
242+
for metadataItem in MetaData:
243+
metadata_dict = {}
244+
for keyName in metadataItem:
245+
appendedMetadata = ','.join(str(StachUtilities.get_value(x)) for x in metadataItem[keyName])
246+
metadata_dict[keyName] = appendedMetadata
247+
metadata_list.append(metadata_dict)
248+
249+
metadata_df = pd.DataFrame(metadata_list)
250+
# Set display options for better readability
251+
pd.set_option('display.max_rows', None)
252+
pd.set_option('display.max_columns', None)
253+
pd.set_option('display.width', None)
254+
print(metadata_df.to_string(index=False, header=True, justify='left', col_space=20))
237255
# generate_excel(dataFramesList) # Uncomment this line to get the result in table format exported to excel file.
238256

239257

0 commit comments

Comments
 (0)