You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Describe the bug
The Process class has 'ui_data' and 'variables_ui_data' as expected fields when retrieving a Process from TM1. In V12 they are no longer present. I stump across when attempting to run RushTI on a V12 instance as it gets the files firsts to validate them:
Traceback (most recent call last):
File "/Users/nicolasbisurgi/Work/Projects/cwna_showdown/rushti/rushti.py", line 827, in
if not validate_tasks(tasks, tm1_service_by_instance):
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/nicolasbisurgi/Work/Projects/cwna_showdown/rushti/rushti.py", line 619, in validate_tasks
process_params = [param['Name'] for param in tm1.processes.get(task.process_name).parameters]
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/nicolasbisurgi/.local/share/virtualenvs/cwna_showdown-qBdDkZdg/lib/python3.12/site-packages/TM1py/Services/ProcessService.py", line 51, in get
return Process.from_dict(response.json())
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/nicolasbisurgi/.local/share/virtualenvs/cwna_showdown-qBdDkZdg/lib/python3.12/site-packages/TM1py/Objects/Process.py", line 141, in from_dict
ui_data=process_as_dict['UIData'],
~~~~~~~~~~~~~~~^^^^^^^^^^
KeyError: 'UIData'
To Reproduce
Get a v12 process as a dictionary through Tm1Py
Expected behavior
Not to error
Version
TM1py 2.0.2
TM1 Server Version: 12.X
Additional context
The below changes in the class method should solve it: @classmethod
def from_dict(cls, process_as_dict: Dict) -> 'Process':
"""
:param process_as_dict: Dictionary, process as dictionary
:return: an instance of this class
"""
return cls(name=process_as_dict['Name'],
has_security_access=process_as_dict['HasSecurityAccess'], ui_data=process_as_dict.get('UIData', ''),
parameters=process_as_dict['Parameters'],
variables=process_as_dict['Variables'], variables_ui_data=process_as_dict.get('VariablesUIData', ''),
prolog_procedure=process_as_dict['PrologProcedure'],
metadata_procedure=process_as_dict['MetadataProcedure'],
data_procedure=process_as_dict['DataProcedure'],
epilog_procedure=process_as_dict['EpilogProcedure'],
datasource_type=process_as_dict['DataSource'].get('Type', ''),
datasource_ascii_decimal_separator=process_as_dict['DataSource'].get('asciiDecimalSeparator', ''),
datasource_ascii_delimiter_char=process_as_dict['DataSource'].get('asciiDelimiterChar', ''),
datasource_ascii_delimiter_type=process_as_dict['DataSource'].get('asciiDelimiterType', ''),
datasource_ascii_header_records=process_as_dict['DataSource'].get('asciiHeaderRecords', ''),
datasource_ascii_quote_character=process_as_dict['DataSource'].get('asciiQuoteCharacter', ''),
datasource_ascii_thousand_separator=process_as_dict['DataSource'].get('asciiThousandSeparator', ''),
datasource_data_source_name_for_client=process_as_dict['DataSource'].get('dataSourceNameForClient',
''),
datasource_data_source_name_for_server=process_as_dict['DataSource'].get('dataSourceNameForServer',
''),
datasource_password=process_as_dict['DataSource'].get('password', ''),
datasource_user_name=process_as_dict['DataSource'].get('userName', ''),
datasource_query=process_as_dict['DataSource'].get('query', ''),
datasource_uses_unicode=process_as_dict['DataSource'].get('usesUnicode', ''),
datasource_view=process_as_dict['DataSource'].get('view', ''),
datasource_subset=process_as_dict['DataSource'].get('subset', ''))
The text was updated successfully, but these errors were encountered:
Describe the bug
The Process class has 'ui_data' and 'variables_ui_data' as expected fields when retrieving a Process from TM1. In V12 they are no longer present. I stump across when attempting to run RushTI on a V12 instance as it gets the files firsts to validate them:
Traceback (most recent call last):
File "/Users/nicolasbisurgi/Work/Projects/cwna_showdown/rushti/rushti.py", line 827, in
if not validate_tasks(tasks, tm1_service_by_instance):
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/nicolasbisurgi/Work/Projects/cwna_showdown/rushti/rushti.py", line 619, in validate_tasks
process_params = [param['Name'] for param in tm1.processes.get(task.process_name).parameters]
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/nicolasbisurgi/.local/share/virtualenvs/cwna_showdown-qBdDkZdg/lib/python3.12/site-packages/TM1py/Services/ProcessService.py", line 51, in get
return Process.from_dict(response.json())
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/nicolasbisurgi/.local/share/virtualenvs/cwna_showdown-qBdDkZdg/lib/python3.12/site-packages/TM1py/Objects/Process.py", line 141, in from_dict
ui_data=process_as_dict['UIData'],
~~~~~~~~~~~~~~~^^^^^^^^^^
KeyError: 'UIData'
To Reproduce
Get a v12 process as a dictionary through Tm1Py
Expected behavior
Not to error
Version
TM1py 2.0.2
TM1 Server Version: 12.X
Additional context
The below changes in the class method should solve it:
@classmethod
def from_dict(cls, process_as_dict: Dict) -> 'Process':
"""
:param process_as_dict: Dictionary, process as dictionary
:return: an instance of this class
"""
return cls(name=process_as_dict['Name'],
has_security_access=process_as_dict['HasSecurityAccess'],
ui_data=process_as_dict.get('UIData', ''),
parameters=process_as_dict['Parameters'],
variables=process_as_dict['Variables'],
variables_ui_data=process_as_dict.get('VariablesUIData', ''),
prolog_procedure=process_as_dict['PrologProcedure'],
metadata_procedure=process_as_dict['MetadataProcedure'],
data_procedure=process_as_dict['DataProcedure'],
epilog_procedure=process_as_dict['EpilogProcedure'],
datasource_type=process_as_dict['DataSource'].get('Type', ''),
datasource_ascii_decimal_separator=process_as_dict['DataSource'].get('asciiDecimalSeparator', ''),
datasource_ascii_delimiter_char=process_as_dict['DataSource'].get('asciiDelimiterChar', ''),
datasource_ascii_delimiter_type=process_as_dict['DataSource'].get('asciiDelimiterType', ''),
datasource_ascii_header_records=process_as_dict['DataSource'].get('asciiHeaderRecords', ''),
datasource_ascii_quote_character=process_as_dict['DataSource'].get('asciiQuoteCharacter', ''),
datasource_ascii_thousand_separator=process_as_dict['DataSource'].get('asciiThousandSeparator', ''),
datasource_data_source_name_for_client=process_as_dict['DataSource'].get('dataSourceNameForClient',
''),
datasource_data_source_name_for_server=process_as_dict['DataSource'].get('dataSourceNameForServer',
''),
datasource_password=process_as_dict['DataSource'].get('password', ''),
datasource_user_name=process_as_dict['DataSource'].get('userName', ''),
datasource_query=process_as_dict['DataSource'].get('query', ''),
datasource_uses_unicode=process_as_dict['DataSource'].get('usesUnicode', ''),
datasource_view=process_as_dict['DataSource'].get('view', ''),
datasource_subset=process_as_dict['DataSource'].get('subset', ''))
The text was updated successfully, but these errors were encountered: