From 550f01b438886e1e2dd97d23521f176d8d612ab3 Mon Sep 17 00:00:00 2001 From: Rahul R Date: Thu, 4 Sep 2025 23:21:42 +0530 Subject: [PATCH 01/10] Matching the Azdo generated metadata for nifake --- build/helper/codegen_helper.py | 6 +- build/helper/metadata_add_all.py | 20 +-- build/helper/metadata_filters.py | 44 +++--- build/templates/enums.py.mako | 4 +- .../session.py/numpy_write_method.py.mako | 4 +- build/unit_tests/test_codegen_helper.py | 36 ----- build/unit_tests/test_metadata_add_all.py | 56 +++---- .../nifake/nifake/_grpc_stub_interpreter.py | 5 +- generated/nifake/nifake/enums.py | 4 +- generated/nifake/nifake/session.py | 13 +- .../nifake/nifake/unit_tests/test_session.py | 4 +- src/nifake/metadata/attributes.py | 2 +- src/nifake/metadata/config.py | 4 +- src/nifake/metadata/enums.py | 22 ++- src/nifake/metadata/functions.py | 142 ++++++++---------- src/nifake/unit_tests/test_session.py | 4 +- src/nirfsg/metadata/enums.py | 4 +- src/nirfsg/metadata/functions.py | 24 +-- 18 files changed, 176 insertions(+), 222 deletions(-) diff --git a/build/helper/codegen_helper.py b/build/helper/codegen_helper.py index 86b83c476..1f1c01fd8 100644 --- a/build/helper/codegen_helper.py +++ b/build/helper/codegen_helper.py @@ -257,7 +257,7 @@ def get_ctype_variable_declaration_snippet(parameter, parameters, ivi_dance_step module_name = '_visatype' # Use _complextype.py file for complex parameter - if parameter['complex_type'] is not None: + if parameter.get('complex_array_representation') is not None: module_name = '_complextype' if parameter['is_string'] is True: @@ -368,7 +368,7 @@ def _get_ctype_variable_definition_snippet_for_scalar(parameter, parameters, ivi # Parameter denotes the size of another (the "corresponding") parameter. # Interleaved array length is going to be double the length of number of samples. # This is used for complex waveforms, where the real and imaginary parts are interleaved in the array. - if corresponding_buffer_parameters[0]['complex_type'] == 'interleaved': + if corresponding_buffer_parameters[0].get('complex_array_representation') == 'interleaved_real_number_array': definitions.append(parameter['ctypes_variable_name'] + ' = {0}.{1}(0 if {2} is None else len({2}) // 2) # case S160'.format(module_name, parameter['ctypes_type'], corresponding_buffer_parameters[0]['python_name'])) else: definitions.append(parameter['ctypes_variable_name'] + ' = {0}.{1}(0 if {2} is None else len({2})) # case S160'.format(module_name, parameter['ctypes_type'], corresponding_buffer_parameters[0]['python_name'])) @@ -435,7 +435,7 @@ def _get_ctype_variable_definition_snippet_for_buffers(parameter, parameters, iv definition = None if parameter['numpy'] is True and use_numpy_array is True: - if parameter['complex_type'] is None: + if parameter.get('complex_array_representation') is None: definition = '_get_ctypes_pointer_for_buffer(value={}) # case B510'.format(parameter['python_name']) else: definition = '_get_ctypes_pointer_for_buffer(value={}, library_type={}.{}) # case B510'.format(parameter['python_name'], module_name, parameter['ctypes_type']) diff --git a/build/helper/metadata_add_all.py b/build/helper/metadata_add_all.py index 0ff740cd3..69132a934 100644 --- a/build/helper/metadata_add_all.py +++ b/build/helper/metadata_add_all.py @@ -126,16 +126,16 @@ def _add_ctypes_type(parameter, config): parameter['ctypes_type_library_call'] = module_name + parameter['ctypes_type'] -def _add_complex_type(parameter): - '''Adds a complex_type parameter to the metadata for complex numbers''' - if 'complex_type' not in parameter: - parameter['complex_type'] = None +def _add_complex_array_representation(parameter): + '''Adds a complex_array_representation parameter to the metadata for complex numbers''' + if 'complex_array_representation' not in parameter: + parameter['complex_array_representation'] = None -def _add_array_dimension(parameter): - '''Adds a array_dimension parameter to the metadata for multi dimensional arrays''' - if 'array_dimension' not in parameter: - parameter['array_dimension'] = 1 +def _add_array_dimensions(parameter): + '''Adds a array_dimensions parameter to the metadata for multi dimensional arrays''' + if 'array_dimensions' not in parameter: + parameter['array_dimensions'] = 1 def _add_numpy_info(parameter, parameters, config): @@ -462,8 +462,8 @@ def add_all_function_metadata(functions, config): _add_python_type(p, config) _add_ctypes_variable_name(p) _add_ctypes_type(p, config) - _add_complex_type(p) - _add_array_dimension(p) + _add_complex_array_representation(p) + _add_array_dimensions(p) _add_numpy_info(p, functions[f]['parameters'], config) _add_default_value_name(p) _add_default_value_name_for_docs(p, config['module_name']) diff --git a/build/helper/metadata_filters.py b/build/helper/metadata_filters.py index cceec8ffe..745184b0b 100644 --- a/build/helper/metadata_filters.py +++ b/build/helper/metadata_filters.py @@ -19,7 +19,7 @@ 'skip_all_except_numpy_parameters': False, 'mechanism': 'fixed, passed-in, len', 'python_api_list': True, - 'skip_all_except_complex_type_parameters': False, + 'skip_all_except_complex_array_representation_parameters': False, }, ParameterUsageOptions.SESSION_METHOD_PASSTHROUGH_CALL: { 'skip_session_handle': True, @@ -34,7 +34,7 @@ 'skip_all_except_numpy_parameters': False, 'mechanism': 'fixed, passed-in, len', 'python_api_list': True, - 'skip_all_except_complex_type_parameters': False, + 'skip_all_except_complex_array_representation_parameters': False, }, ParameterUsageOptions.SESSION_NUMPY_INTO_METHOD_DECLARATION: { 'skip_session_handle': True, @@ -49,7 +49,7 @@ 'skip_all_except_numpy_parameters': False, 'mechanism': 'fixed, passed-in', 'python_api_list': False, - 'skip_all_except_complex_type_parameters': False, + 'skip_all_except_complex_array_representation_parameters': False, }, ParameterUsageOptions.INTERPRETER_NUMPY_INTO_METHOD_DECLARATION: { 'skip_session_handle': True, @@ -64,7 +64,7 @@ 'skip_all_except_numpy_parameters': False, 'mechanism': 'fixed, passed-in', 'python_api_list': False, - 'skip_all_except_complex_type_parameters': False, + 'skip_all_except_complex_array_representation_parameters': False, }, ParameterUsageOptions.SESSION_METHOD_CALL: { 'skip_session_handle': True, @@ -79,7 +79,7 @@ 'skip_all_except_numpy_parameters': False, 'mechanism': 'fixed, passed-in', 'python_api_list': True, - 'skip_all_except_complex_type_parameters': False, + 'skip_all_except_complex_array_representation_parameters': False, }, ParameterUsageOptions.DOCUMENTATION_SESSION_METHOD: { 'skip_session_handle': True, @@ -94,7 +94,7 @@ 'skip_all_except_numpy_parameters': False, 'mechanism': 'any', 'python_api_list': True, - 'skip_all_except_complex_type_parameters': False, + 'skip_all_except_complex_array_representation_parameters': False, }, ParameterUsageOptions.LIBRARY_METHOD_DECLARATION: { 'skip_session_handle': False, @@ -109,7 +109,7 @@ 'skip_all_except_numpy_parameters': False, 'mechanism': 'any', 'python_api_list': True, - 'skip_all_except_complex_type_parameters': False, + 'skip_all_except_complex_array_representation_parameters': False, }, ParameterUsageOptions.LIBRARY_METHOD_CALL: { 'skip_session_handle': False, @@ -124,7 +124,7 @@ 'skip_all_except_numpy_parameters': False, 'mechanism': 'any', 'python_api_list': True, - 'skip_all_except_complex_type_parameters': False, + 'skip_all_except_complex_array_representation_parameters': False, }, ParameterUsageOptions.GRPC_REQUEST_PARAMETERS: { 'skip_session_handle': False, @@ -139,7 +139,7 @@ 'skip_all_except_numpy_parameters': False, 'mechanism': 'any', 'python_api_list': True, - 'skip_all_except_complex_type_parameters': False, + 'skip_all_except_complex_array_representation_parameters': False, }, ParameterUsageOptions.CTYPES_ARGTYPES: { 'skip_session_handle': False, @@ -154,7 +154,7 @@ 'skip_all_except_numpy_parameters': False, 'mechanism': 'any', 'python_api_list': True, - 'skip_all_except_complex_type_parameters': False, + 'skip_all_except_complex_array_representation_parameters': False, }, ParameterUsageOptions.INTERPRETER_METHOD_DECLARATION: { 'skip_session_handle': True, @@ -169,7 +169,7 @@ 'skip_all_except_numpy_parameters': False, 'mechanism': 'fixed, passed-in, len', 'python_api_list': True, - 'skip_all_except_complex_type_parameters': False, + 'skip_all_except_complex_array_representation_parameters': False, }, ParameterUsageOptions.INPUT_PARAMETERS: { 'skip_session_handle': True, @@ -184,7 +184,7 @@ 'skip_all_except_numpy_parameters': False, 'mechanism': 'any', 'python_api_list': True, - 'skip_all_except_complex_type_parameters': False, + 'skip_all_except_complex_array_representation_parameters': False, }, ParameterUsageOptions.LIBRARY_OUTPUT_PARAMETERS: { 'skip_session_handle': True, @@ -199,7 +199,7 @@ 'skip_all_except_numpy_parameters': False, 'mechanism': 'any', 'python_api_list': True, - 'skip_all_except_complex_type_parameters': False, + 'skip_all_except_complex_array_representation_parameters': False, }, ParameterUsageOptions.API_OUTPUT_PARAMETERS: { 'skip_session_handle': True, @@ -214,7 +214,7 @@ 'skip_all_except_numpy_parameters': False, 'mechanism': 'any', 'python_api_list': False, - 'skip_all_except_complex_type_parameters': False, + 'skip_all_except_complex_array_representation_parameters': False, }, ParameterUsageOptions.API_NUMPY_OUTPUT_PARAMETERS: { 'skip_session_handle': True, @@ -229,7 +229,7 @@ 'skip_all_except_numpy_parameters': False, 'mechanism': 'any', 'python_api_list': False, - 'skip_all_except_complex_type_parameters': False, + 'skip_all_except_complex_array_representation_parameters': False, }, ParameterUsageOptions.GRPC_OUTPUT_PARAMETERS: { 'skip_session_handle': True, @@ -244,7 +244,7 @@ 'skip_all_except_numpy_parameters': False, 'mechanism': 'any', 'python_api_list': False, - 'skip_all_except_complex_type_parameters': False, + 'skip_all_except_complex_array_representation_parameters': False, }, ParameterUsageOptions.NUMPY_PARAMETERS: { 'skip_session_handle': True, @@ -259,7 +259,7 @@ 'skip_all_except_numpy_parameters': True, 'mechanism': 'any', 'python_api_list': True, - 'skip_all_except_complex_type_parameters': False, + 'skip_all_except_complex_array_representation_parameters': False, }, ParameterUsageOptions.IVI_DANCE_PARAMETER: { 'skip_session_handle': True, @@ -274,7 +274,7 @@ 'skip_all_except_numpy_parameters': False, 'mechanism': 'ivi-dance, ivi-dance-with-a-twist', 'python_api_list': True, - 'skip_all_except_complex_type_parameters': False, + 'skip_all_except_complex_array_representation_parameters': False, }, ParameterUsageOptions.LEN_PARAMETER: { 'skip_session_handle': True, @@ -289,7 +289,7 @@ 'skip_all_except_numpy_parameters': False, 'mechanism': 'len', 'python_api_list': True, - 'skip_all_except_complex_type_parameters': False, + 'skip_all_except_complex_array_representation_parameters': False, }, ParameterUsageOptions.INPUT_ENUM_PARAMETERS: { 'skip_session_handle': True, @@ -304,7 +304,7 @@ 'skip_all_except_numpy_parameters': False, 'mechanism': 'any', 'python_api_list': True, - 'skip_all_except_complex_type_parameters': False, + 'skip_all_except_complex_array_representation_parameters': False, }, ParameterUsageOptions.COMPLEX_NUMBER_PARAMETERS: { 'skip_session_handle': True, @@ -319,7 +319,7 @@ 'skip_all_except_numpy_parameters': False, 'mechanism': 'any', 'python_api_list': True, - 'skip_all_except_complex_type_parameters': True, + 'skip_all_except_complex_array_representation_parameters': True, }, } @@ -384,7 +384,7 @@ def filter_parameters(parameters, parameter_usage_options): skip = False if not options_to_use['python_api_list'] and not x['use_in_python_api']: skip = True - if options_to_use['skip_all_except_complex_type_parameters'] and x['complex_type'] is None: + if options_to_use['skip_all_except_complex_array_representation_parameters'] and x['complex_array_representation'] is None: skip = True if not skip: parameters_to_use.append(x) diff --git a/build/templates/enums.py.mako b/build/templates/enums.py.mako index ce6d0e535..c6451214a 100644 --- a/build/templates/enums.py.mako +++ b/build/templates/enums.py.mako @@ -6,13 +6,13 @@ config = template_parameters['metadata'].config enums = config['enums'] %> from enum import Enum -% if any(enums[e].get('enum_class', 'Enum') == 'IntFlag' for e in enums): +% if any(enums[e].get('class', 'Enum') == 'IntFlag' for e in enums): from enum import IntFlag % endif % for enum_name in sorted(helper.filter_codegen_enums(enums)): -class ${enums[enum_name]['python_name']}(${enums[enum_name].get('enum_class', 'Enum')}): +class ${enums[enum_name]['python_name']}(${enums[enum_name].get('class', 'Enum')}): <% print_list = [] %>\ diff --git a/build/templates/session.py/numpy_write_method.py.mako b/build/templates/session.py/numpy_write_method.py.mako index 36fa97aad..e545e6a5c 100644 --- a/build/templates/session.py/numpy_write_method.py.mako +++ b/build/templates/session.py/numpy_write_method.py.mako @@ -30,8 +30,8 @@ raise TypeError('${parameter['python_name']} must be in C-order') if ${parameter['python_name']}.dtype is not numpy.dtype('${parameter['numpy_type']}'): raise TypeError('${parameter['python_name']} must be numpy.ndarray of dtype=${parameter['numpy_type']}, is ' + str(${parameter['python_name']}.dtype)) - if ${parameter['python_name']}.ndim != ${parameter['array_dimension']}: - raise TypeError('${parameter['python_name']} must be numpy.ndarray of dimension=${parameter['array_dimension']}, is ' + str(${parameter['python_name']}.ndim)) + if ${parameter['python_name']}.ndim != ${parameter['array_dimensions']}: + raise TypeError('${parameter['python_name']} must be numpy.ndarray of dimension=${parameter['array_dimensions']}, is ' + str(${parameter['python_name']}.ndim)) % endfor % for p in helper.filter_parameters(parameters, helper.ParameterUsageOptions.INTERPRETER_METHOD_CALL): % if 'python_api_converter_name' in p: diff --git a/build/unit_tests/test_codegen_helper.py b/build/unit_tests/test_codegen_helper.py index 4b5f50466..e6b28ff27 100644 --- a/build/unit_tests/test_codegen_helper.py +++ b/build/unit_tests/test_codegen_helper.py @@ -41,7 +41,6 @@ 'size': {'mechanism': 'fixed', 'value': 1}, 'type': 'ViSession', 'numpy': False, - 'complex_type': None, 'use_in_python_api': True, }, { # 1 @@ -70,7 +69,6 @@ 'size': {'mechanism': 'fixed', 'value': 1}, 'type': 'ViInt64', 'numpy': False, - 'complex_type': None, 'use_in_python_api': True, }, { # 2 @@ -98,7 +96,6 @@ 'size': {'mechanism': 'fixed', 'value': 256}, 'type': 'ViString', 'numpy': False, - 'complex_type': None, 'use_in_python_api': True, }, { # 3 @@ -127,7 +124,6 @@ 'size': {'mechanism': 'python-code', 'value': 'self.get_array_size_for_python_code()'}, 'type': 'custom_struct', 'numpy': False, - 'complex_type': None, 'use_in_python_api': True, }, { # 4 @@ -153,7 +149,6 @@ 'size': {'mechanism': 'fixed', 'value': 1}, 'type': 'ViInt32', 'numpy': False, - 'complex_type': None, 'use_in_python_api': True, }, { # 5 @@ -181,7 +176,6 @@ 'size': {'mechanism': 'passed-in', 'value': 'numberOfElements'}, 'type': 'ViInt16', 'numpy': False, - 'complex_type': None, 'use_in_python_api': True, }, { # 6 @@ -210,7 +204,6 @@ 'size': {'mechanism': 'fixed', 'value': 1}, 'type': 'ViInt16', 'numpy': False, - 'complex_type': None, 'use_in_python_api': True, }, { # 7 @@ -238,7 +231,6 @@ 'size': {'mechanism': 'passed-in', 'value': 'numberOfElements'}, 'type': 'ViInt64', 'numpy': True, - 'complex_type': None, 'numpy_type': 'int64', 'numpy_type_library_call': 'numpy.int64', 'use_in_python_api': True, @@ -260,7 +252,6 @@ 'interpreter_method_call_snippet': 'number_of_elements_python_code', 'name': 'numberOfElementsPythonCode', 'numpy': False, - 'complex_type': None, 'python_name': 'number_of_elements_python_code', 'python_name_with_default': 'number_of_elements_python_code', 'python_name_with_doc_default': 'number_of_elements_python_code', @@ -286,7 +277,6 @@ 'interpreter_method_call_snippet': 'input', 'name': 'input', 'numpy': False, - 'complex_type': None, 'python_name': 'input', 'python_name_with_default': 'input', 'python_name_with_doc_default': 'input', @@ -315,7 +305,6 @@ 'interpreter_method_call_snippet': 'input_array', 'name': 'inputArray', 'numpy': False, - 'complex_type': None, 'python_name': 'input_array', 'python_name_with_default': 'input_array=None', 'python_name_with_doc_default': 'input_array=None', @@ -341,7 +330,6 @@ 'interpreter_method_call_snippet': 'input_array_size', 'name': 'inputArraySize', 'numpy': False, - 'complex_type': None, 'python_name': 'input_array_size', 'python_name_with_default': 'input_array_size', 'python_name_with_doc_default': 'input_array_size', @@ -367,7 +355,6 @@ 'interpreter_method_call_snippet': 'string_size', 'name': 'stringSize', 'numpy': False, - 'complex_type': None, 'python_name': 'string_size', 'python_name_with_default': 'string_size', 'python_name_with_doc_default': 'string_size', @@ -393,7 +380,6 @@ 'interpreter_method_call_snippet': 'a_string', 'name': 'aString', 'numpy': False, - 'complex_type': None, 'python_name': 'a_string', 'python_name_with_default': 'a_string', 'python_name_with_doc_default': 'a_string', @@ -420,7 +406,6 @@ 'interpreter_method_call_snippet': 'timeout', 'name': 'Timeout', 'numpy': False, - 'complex_type': None, 'python_name': 'timeout', 'python_name_with_default': 'timeout=1.0', 'python_name_with_doc_default': 'timeout=1.0', @@ -449,7 +434,6 @@ 'interpreter_method_call_snippet': 'self._repeated_capability', 'name': 'channelList', 'numpy': False, - 'complex_type': None, 'original_type': 'ViChar[]', 'python_name': 'channel_list', 'python_name_with_default': 'channel_list', @@ -476,7 +460,6 @@ 'interpreter_method_call_snippet': 'a_string', 'name': 'aString', 'numpy': False, - 'complex_type': None, 'python_name': 'a_string', 'python_name_with_default': 'a_string', 'python_name_with_doc_default': 'a_string', @@ -509,7 +492,6 @@ 'size': {'mechanism': 'len', 'value': 'array_in'}, 'type': 'custom_struct', 'numpy': False, - 'complex_type': None, 'use_in_python_api': True, }, { # 18 @@ -539,7 +521,6 @@ 'size': {'mechanism': 'fixed', 'value': 256}, 'type': 'ViInt16', 'numpy': False, - 'complex_type': None, 'use_in_python_api': True, }, { # 19 @@ -559,7 +540,6 @@ 'interpreter_method_call_snippet': 'a_string_2', 'name': 'aString2', 'numpy': False, - 'complex_type': None, 'python_name': 'a_string_2', 'python_name_with_default': 'a_string_2', 'python_name_with_doc_default': 'a_string_2', @@ -585,7 +565,6 @@ 'interpreter_method_call_snippet': 'a_string_3', 'name': 'aStrin3g', 'numpy': False, - 'complex_type': None, 'python_name': 'a_string_3', 'python_name_with_default': 'a_string_3', 'python_name_with_doc_default': 'a_string_3', @@ -611,7 +590,6 @@ 'interpreter_method_call_snippet': 'a_string_twist', 'name': 'aStringTwist', 'numpy': False, - 'complex_type': None, 'python_name': 'a_string_twist', 'python_name_with_default': 'a_string_twist', 'python_name_with_doc_default': 'a_string_twist', @@ -646,7 +624,6 @@ 'size': {'mechanism': 'fixed', 'value': 1}, 'type': 'ViInt64', 'numpy': False, - 'complex_type': None, 'use_in_python_api': True, }, { # 23 @@ -666,7 +643,6 @@ 'interpreter_method_call_snippet': 'string_size_twist', 'name': 'stringSizeTwist', 'numpy': False, - 'complex_type': None, 'python_name': 'string_size_twist', 'python_name_with_default': 'string_size_twist', 'python_name_with_doc_default': 'string_size_twist', @@ -692,7 +668,6 @@ 'interpreter_method_call_snippet': 'a_buffer', 'name': 'aBufferArray', 'numpy': False, - 'complex_type': None, 'python_name': 'a_buffer_array', 'python_name_with_default': 'a_buffer_array', 'python_name_with_doc_default': 'a_buffer_array', @@ -720,7 +695,6 @@ 'interpreter_method_call_snippet': 'a_buffer', 'name': 'aBufferList', 'numpy': False, - 'complex_type': None, 'python_name': 'a_buffer_list', 'python_name_with_default': 'a_buffer_list', 'python_name_with_doc_default': 'a_buffer_list', @@ -748,7 +722,6 @@ 'interpreter_method_call_snippet': 'a_buffer', 'name': 'aBufferTwistArray', 'numpy': False, - 'complex_type': None, 'python_name': 'a_buffer_twist_array', 'python_name_with_default': 'a_buffer_twist_array', 'python_name_with_doc_default': 'a_buffer_twist_array', @@ -776,7 +749,6 @@ 'interpreter_method_call_snippet': 'a_buffer', 'name': 'aBufferTwistList', 'numpy': False, - 'complex_type': None, 'python_name': 'a_buffer_twist_list', 'python_name_with_default': 'a_buffer_twist_list', 'python_name_with_doc_default': 'a_buffer_twist_list', @@ -807,7 +779,6 @@ 'interpreter_method_call_snippet': 'input_array_2', 'name': 'inputArray2', 'numpy': False, - 'complex_type': None, 'python_name': 'input_array_2', 'python_name_with_default': 'input_array_2=None', 'python_name_with_doc_default': 'input_array_2=None', @@ -836,7 +807,6 @@ 'interpreter_method_call_snippet': 'input_array_2', 'name': 'inputArray2', 'numpy': False, - 'complex_type': None, 'python_api_converter_name': 'convert_to_nitclk_session_num_list', 'python_name': 'input_array_2', 'python_name_with_default': 'input_array_2=None', @@ -866,7 +836,6 @@ 'interpreter_method_call_snippet': 'input_array_3', 'name': 'inputArray3', 'numpy': False, - 'complex_type': None, 'python_api_converter_name': 'convert_to_nitclk_session_num_list', 'python_name': 'input_array_3', 'python_name_with_default': 'input_array_3=None', @@ -896,7 +865,6 @@ 'interpreter_method_call_snippet': 'input_array_3', 'name': 'inputArray4', 'numpy': False, - 'complex_type': None, 'python_api_converter_name': 'convert_to_nitclk_session_num_list', 'python_name': 'input_array_4', 'python_name_with_default': 'input_array_4=None', @@ -926,7 +894,6 @@ 'interpreter_method_call_snippet': 'input_array_3', 'name': 'inputArray4', 'numpy': False, - 'complex_type': None, 'python_api_converter_name': 'convert_to_nitclk_session_num_list', 'python_name': 'input_array_4', 'python_name_with_default': 'input_array_4=None', @@ -953,7 +920,6 @@ 'interpreter_method_call_snippet': 'a_string_enum', 'name': 'aStringEnum', 'numpy': False, - 'complex_type': None, 'python_name': 'a_string_enum', 'python_name_with_default': 'a_string_enum', 'python_name_with_doc_default': 'a_string_enum', @@ -981,7 +947,6 @@ 'interpreter_method_call_snippet': 'indices', 'name': 'indices', 'numpy': False, - 'complex_type': None, 'original_type': 'ViChar[]', 'python_api_converter_name': 'convert_repeated_capabilities_without_prefix', 'python_name': 'indices', @@ -1018,7 +983,6 @@ 'size': {'mechanism': 'passed-in', 'value': 'numberOfElements'}, 'type': 'ViInt8', 'numpy': False, - 'complex_type': None, 'use_in_python_api': True, }, ] diff --git a/build/unit_tests/test_metadata_add_all.py b/build/unit_tests/test_metadata_add_all.py index b927cc226..fdbf8e128 100644 --- a/build/unit_tests/test_metadata_add_all.py +++ b/build/unit_tests/test_metadata_add_all.py @@ -259,8 +259,8 @@ def _compare_dicts(actual, expected): 'grpc_request_snippet': 'vi=self._vi', 'use_in_python_api': True, 'python_name_or_default_for_init': 'vi', - 'complex_type': None, - 'array_dimension': 1, + 'complex_array_representation': None, + 'array_dimensions': 1, }, { 'ctypes_method_call_snippet': 'name_ctype', @@ -294,8 +294,8 @@ def _compare_dicts(actual, expected): 'grpc_request_snippet': 'name=name', 'use_in_python_api': True, 'python_name_or_default_for_init': 'name', - 'complex_type': None, - 'array_dimension': 1, + 'complex_array_representation': None, + 'array_dimensions': 1, }, { 'ctypes_method_call_snippet': 'pin_data_buffer_size_ctype', @@ -332,8 +332,8 @@ def _compare_dicts(actual, expected): 'grpc_request_snippet': 'pin_data_buffer_size=pin_data_buffer_size', 'use_in_python_api': False, 'python_name_or_default_for_init': 'pin_data_buffer_size', - 'complex_type': None, - 'array_dimension': 1, + 'complex_array_representation': None, + 'array_dimensions': 1, }, { 'ctypes_method_call_snippet': 'python_code_input_ctype', @@ -370,8 +370,8 @@ def _compare_dicts(actual, expected): 'grpc_request_snippet': 'python_code_input=2 ** 14', 'use_in_python_api': True, 'python_name_or_default_for_init': 'python_code_input', - 'complex_type': None, - 'array_dimension': 1, + 'complex_array_representation': None, + 'array_dimensions': 1, }, { 'ctypes_method_call_snippet': 'None if actual_num_pin_data_ctype is None else (ctypes.pointer(actual_num_pin_data_ctype))', @@ -408,8 +408,8 @@ def _compare_dicts(actual, expected): 'grpc_request_snippet': 'actual_num_pin_data=actual_num_pin_data', 'use_in_python_api': False, 'python_name_or_default_for_init': 'actual_num_pin_data', - 'complex_type': None, - 'array_dimension': 1, + 'complex_array_representation': None, + 'array_dimensions': 1, }, { 'ctypes_method_call_snippet': 'expected_pin_states_ctype', @@ -448,8 +448,8 @@ def _compare_dicts(actual, expected): 'grpc_request_snippet': 'expected_pin_states=expected_pin_states', 'use_in_python_api': True, 'python_name_or_default_for_init': 'expected_pin_states', - 'complex_type': None, - 'array_dimension': 1, + 'complex_array_representation': None, + 'array_dimensions': 1, }, { 'ctypes_method_call_snippet': 'custom_type_input_ctype', @@ -486,8 +486,8 @@ def _compare_dicts(actual, expected): 'grpc_request_snippet': 'custom_type_input=custom_type_input._create_copy(grpc_types.CustomStruct)', 'use_in_python_api': True, 'python_name_or_default_for_init': 'custom_type_input', - 'complex_type': None, - 'array_dimension': 1, + 'complex_array_representation': None, + 'array_dimensions': 1, }, { 'ctypes_method_call_snippet': 'None if custom_type_output_ctype is None else (ctypes.pointer(custom_type_output_ctype))', @@ -524,8 +524,8 @@ def _compare_dicts(actual, expected): 'grpc_request_snippet': 'custom_type_output=custom_type_output._create_copy(grpc_types.CustomStruct)', 'use_in_python_api': True, 'python_name_or_default_for_init': 'custom_type_output', - 'complex_type': None, - 'array_dimension': 1, + 'complex_array_representation': None, + 'array_dimensions': 1, }, { 'ctypes_method_call_snippet': 'custom_type_without_struct_prefix_input_ctype', @@ -562,8 +562,8 @@ def _compare_dicts(actual, expected): 'grpc_request_snippet': 'custom_type_without_struct_prefix_input=custom_type_without_struct_prefix_input._create_copy(grpc_types.CustomStruct)', 'use_in_python_api': True, 'python_name_or_default_for_init': 'custom_type_without_struct_prefix_input', - 'complex_type': None, - 'array_dimension': 1, + 'complex_array_representation': None, + 'array_dimensions': 1, }, { 'ctypes_method_call_snippet': 'None if custom_type_without_struct_prefix_output_ctype is None else (ctypes.pointer(custom_type_without_struct_prefix_output_ctype))', @@ -600,8 +600,8 @@ def _compare_dicts(actual, expected): 'grpc_request_snippet': 'custom_type_without_struct_prefix_output=custom_type_without_struct_prefix_output._create_copy(grpc_types.CustomStruct)', 'use_in_python_api': True, 'python_name_or_default_for_init': 'custom_type_without_struct_prefix_output', - 'complex_type': None, - 'array_dimension': 1, + 'complex_array_representation': None, + 'array_dimensions': 1, }, ], 'python_name': 'make_a_foo', @@ -649,8 +649,8 @@ def _compare_dicts(actual, expected): 'grpc_request_snippet': 'vi=self._vi', 'use_in_python_api': True, 'python_name_or_default_for_init': 'vi', - 'complex_type': None, - 'array_dimension': 1, + 'complex_array_representation': None, + 'array_dimensions': 1, }, { 'ctypes_method_call_snippet': 'status_ctype', @@ -687,8 +687,8 @@ def _compare_dicts(actual, expected): 'grpc_request_snippet': 'status=status', 'use_in_python_api': True, 'python_name_or_default_for_init': 'status', - 'complex_type': None, - 'array_dimension': 1, + 'complex_array_representation': None, + 'array_dimensions': 1, }, { 'ctypes_method_call_snippet': 'data_buffer_size_ctype', @@ -725,8 +725,8 @@ def _compare_dicts(actual, expected): 'grpc_request_snippet': 'data_buffer_size=data_buffer_size', 'use_in_python_api': False, 'python_name_or_default_for_init': 'data_buffer_size', - 'complex_type': None, - 'array_dimension': 1, + 'complex_array_representation': None, + 'array_dimensions': 1, }, { 'ctypes_method_call_snippet': 'data_ctype', @@ -764,8 +764,8 @@ def _compare_dicts(actual, expected): 'grpc_request_snippet': 'data=data', 'use_in_python_api': True, 'python_name_or_default_for_init': 'data', - 'complex_type': None, - 'array_dimension': 1, + 'complex_array_representation': None, + 'array_dimensions': 1, }, ], 'documentation': { diff --git a/generated/nifake/nifake/_grpc_stub_interpreter.py b/generated/nifake/nifake/_grpc_stub_interpreter.py index b9e7617da..ec0a51cc6 100644 --- a/generated/nifake/nifake/_grpc_stub_interpreter.py +++ b/generated/nifake/nifake/_grpc_stub_interpreter.py @@ -148,10 +148,7 @@ def function_with_3d_numpy_array_of_numpy_complex128_input_parameter(self, multi raise NotImplementedError('numpy-specific methods are not supported over gRPC') def function_with_intflag_parameter(self, flag): # noqa: N802 - self._invoke( - self._client.FunctionWithIntflagParameter, - grpc_types.FunctionWithIntflagParameterRequest(vi=self._vi, flag=flag.value), - ) + raise NotImplementedError('function_with_intflag_parameter is not supported over gRPC') def function_with_repeated_capability_type(self, site_list): # noqa: N802 raise NotImplementedError('function_with_repeated_capability_type is not supported over gRPC') diff --git a/generated/nifake/nifake/enums.py b/generated/nifake/nifake/enums.py index 40ac0fe6b..cd042c61c 100644 --- a/generated/nifake/nifake/enums.py +++ b/generated/nifake/nifake/enums.py @@ -63,9 +63,9 @@ class IntFlagEnum(IntFlag): r''' Flag B option. ''' - C = 9223372036854775808 + E = 1073741824 r''' - Flag C option. + Flag E option. ''' diff --git a/generated/nifake/nifake/session.py b/generated/nifake/nifake/session.py index eb4627054..50ef8c809 100644 --- a/generated/nifake/nifake/session.py +++ b/generated/nifake/nifake/session.py @@ -945,6 +945,7 @@ def fetch_waveform_into(self, waveform_data): raise TypeError('waveform_data must be numpy.ndarray of dtype=float64, is ' + str(waveform_data.dtype)) self._interpreter.fetch_waveform_into(waveform_data) + @ivi_synchronized def function_with_3d_numpy_array_of_numpy_complex128_input_parameter(self, multidimensional_array): r'''function_with_3d_numpy_array_of_numpy_complex128_input_parameter @@ -1711,10 +1712,10 @@ def write_waveform_numpy(self, waveform): def write_waveform_numpy_complex128(self, waveform_data_array): r'''write_waveform_numpy_complex128 - A method that writes a waveform of numpy complex128 numbers. + A method that writes a waveform of numpy complex128 samples. Args: - waveform_data_array (numpy.array(dtype=numpy.complex128)): Specifies the array of data to load into the waveform. Array should be numberOfSamples big. + waveform_data_array (numpy.array(dtype=numpy.complex128)): Specifies the array of data to load into the waveform. ''' import numpy @@ -1733,10 +1734,10 @@ def write_waveform_numpy_complex128(self, waveform_data_array): def write_waveform_numpy_complex64(self, waveform_data_array): r'''write_waveform_numpy_complex64 - A method that writes a waveform of numpy complex64 numbers. + A method that writes a waveform of numpy complex64 samples. Args: - waveform_data_array (numpy.array(dtype=numpy.complex64)): Specifies the array of data to load into the waveform. Array should be numberOfSamples big. + waveform_data_array (numpy.array(dtype=numpy.complex64)): Specifies the array of data to load into the waveform. ''' import numpy @@ -1755,10 +1756,10 @@ def write_waveform_numpy_complex64(self, waveform_data_array): def write_waveform_numpy_complex_interleaved_i16(self, waveform_data_array): r'''write_waveform_numpy_complex_interleaved_i16 - A method that writes a waveform of numpy complex i16 numbers. + A method that writes a waveform of numpy complex i16 samples. Args: - waveform_data_array (numpy.array(dtype=numpy.int16)): Specifies the array of data to load into the waveform. Array should be numberOfSamples big. + waveform_data_array (numpy.array(dtype=numpy.int16)): Specifies the array of data to load into the waveform. ''' import numpy diff --git a/generated/nifake/nifake/unit_tests/test_session.py b/generated/nifake/nifake/unit_tests/test_session.py index 17b6fd542..9621e851b 100644 --- a/generated/nifake/nifake/unit_tests/test_session.py +++ b/generated/nifake/nifake/unit_tests/test_session.py @@ -839,12 +839,12 @@ def test_return_timedeltas(self): self.patched_library_interpreter.return_list_of_durations_in_seconds.assert_called_once_with(len(time_values)) def test_with_valid_intflag_parameter(self): - flags = nifake.IntFlagEnum.C | nifake.IntFlagEnum.A + flags = nifake.IntFlagEnum.E | nifake.IntFlagEnum.A self.patched_library_interpreter.function_with_intflag_parameter.side_effect = None self.patched_library_interpreter.function_with_intflag_parameter.return_value = None with nifake.Session('dev1') as session: session.function_with_intflag_parameter(flags) - self.patched_library_interpreter.function_with_intflag_parameter.assert_called_once_with(9223372036854775809) + self.patched_library_interpreter.function_with_intflag_parameter.assert_called_once_with(1073741825) def test_with_intflag_parameter_invalid(self): invalid_flag = 5 diff --git a/src/nifake/metadata/attributes.py b/src/nifake/metadata/attributes.py index 92c59e145..00aebfe5f 100644 --- a/src/nifake/metadata/attributes.py +++ b/src/nifake/metadata/attributes.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# This file is generated from NI-FAKE API metadata version 24.8.0f100 +# This file is generated from NI-FAKE API metadata version 25.8.0d9999 attributes = { 1000000: { 'access': 'read-write', diff --git a/src/nifake/metadata/config.py b/src/nifake/metadata/config.py index cad911ac9..ea0920715 100644 --- a/src/nifake/metadata/config.py +++ b/src/nifake/metadata/config.py @@ -1,7 +1,7 @@ # -*- coding: utf-8 -*- -# This file is generated from NI-FAKE API metadata version 24.8.0f100 +# This file is generated from NI-FAKE API metadata version 25.8.0d9999 config = { - 'api_version': '24.8.0f100', + 'api_version': '25.8.0d9999', 'c_function_prefix': 'niFake_', 'close_function': 'close', 'context_manager_name': { diff --git a/src/nifake/metadata/enums.py b/src/nifake/metadata/enums.py index 0463980b5..4f2302c29 100644 --- a/src/nifake/metadata/enums.py +++ b/src/nifake/metadata/enums.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# This file is generated from NI-FAKE API metadata version 24.8.0f100 +# This file is generated from NI-FAKE API metadata version 25.8.0d9999 enums = { 'AltColor': { 'values': [ @@ -200,6 +200,18 @@ } ] }, + 'ExtCalParts': { + 'values': [ + { + 'name': 'NIFAKE_EXTCAL_PART1', + 'value': 1 + }, + { + 'name': 'NIFAKE_EXTCAL_PART2', + 'value': 2 + } + ] + }, 'FloatEnum': { 'values': [ { @@ -240,8 +252,8 @@ ] }, 'IntFlagEnum': { + 'class': 'IntFlag', 'codegen_method': 'public', - 'enum_class': 'IntFlag', 'values': [ { 'documentation': { @@ -259,10 +271,10 @@ }, { 'documentation': { - 'description': 'Flag C option.' + 'description': 'Flag E option.' }, - 'name': 'NIFAKE_VAL_FLAG_C', - 'value': 9223372036854775808 + 'name': 'NIFAKE_VAL_FLAG_E', + 'value': 1073741824 } ] }, diff --git a/src/nifake/metadata/functions.py b/src/nifake/metadata/functions.py index 0b45a5fd6..ccc106a89 100644 --- a/src/nifake/metadata/functions.py +++ b/src/nifake/metadata/functions.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# This file is generated from NI-FAKE API metadata version 25.5.0d9999 +# This file is generated from NI-FAKE API metadata version 25.8.0d9999 functions = { 'Abort': { 'codegen_method': 'public', @@ -348,12 +348,52 @@ ], 'returns': 'ViStatus' }, + 'FunctionWith3dNumpyArrayOfNumpyComplex128InputParameter': { + 'codegen_method': 'public', + 'documentation': { + 'description': 'Function that takes a 3D numpy array of numpy complex128 as an input parameter.' + }, + 'grpc_name': 'FunctionWith3DNumpyArrayOfNumpyComplex128InputParameter', + 'included_in_proto': False, + 'method_templates': [ + { + 'documentation_filename': 'numpy_method', + 'library_interpreter_filename': 'numpy_write_method', + 'method_python_name_suffix': '', + 'session_filename': 'numpy_write_method' + } + ], + 'parameters': [ + { + 'direction': 'in', + 'documentation': { + 'description': 'Identifies a particular instrument session.' + }, + 'name': 'vi', + 'type': 'ViSession' + }, + { + 'array_dimensions': 3, + 'complex_array_representation': 'complex_number_array', + 'direction': 'in', + 'documentation': { + 'description': 'Specifies the 3D array of numpy complex numbers to write.' + }, + 'name': 'multidimensionalArray', + 'numpy': True, + 'type': 'NIComplexNumber[]', + 'use_in_python_api': True + } + ], + 'python_name': 'function_with_3d_numpy_array_of_numpy_complex128_input_parameter', + 'returns': 'ViStatus' + }, 'FunctionWithIntflagParameter': { 'codegen_method': 'public', 'documentation': { 'description': "Calls a function that takes a flag parameter which can be OR'd from multiple enum values." }, - 'included_in_proto': True, + 'included_in_proto': False, 'parameters': [ { 'direction': 'in', @@ -369,7 +409,6 @@ 'description': 'A flag parameter that can be a combination (bitwise OR) of IntFlagEnum values.' }, 'enum': 'IntFlagEnum', - 'grpc_enum': None, 'name': 'flag', 'type': 'ViUInt64' } @@ -2825,13 +2864,12 @@ ], 'returns': 'ViStatus' }, - 'WriteWaveformNumpyComplex64': { + 'WriteWaveformNumpyComplex128': { 'codegen_method': 'public', 'documentation': { - 'description': 'A function that writes a waveform of numpy complex64 numbers.' + 'description': 'A function that writes a waveform of numpy complex128 samples.' }, 'included_in_proto': False, - 'is_error_handling': False, 'method_templates': [ { 'documentation_filename': 'numpy_method', @@ -2847,9 +2885,7 @@ 'description': 'Identifies a particular instrument session.' }, 'name': 'vi', - 'type': 'ViSession', - 'use_array': False, - 'use_in_python_api': True + 'type': 'ViSession' }, { 'direction': 'in', @@ -2858,14 +2894,13 @@ }, 'name': 'numberOfSamples', 'type': 'ViInt32', - 'use_array': False, 'use_in_python_api': False }, { - 'complex_type': 'numpy', + 'complex_array_representation': 'complex_number_array', 'direction': 'in', 'documentation': { - 'description': 'Specifies the array of data to load into the waveform. Array should be numberOfSamples big.' + 'description': 'Specifies the array of data to load into the waveform.' }, 'name': 'waveformDataArray', 'numpy': True, @@ -2873,20 +2908,18 @@ 'mechanism': 'len', 'value': 'numberOfSamples' }, - 'type': 'NIComplexNumberF32[]', - 'use_in_python_api': True, - 'use_numpy_array': True + 'type': 'NIComplexNumber[]', + 'use_in_python_api': True } ], 'returns': 'ViStatus' }, - 'WriteWaveformNumpyComplex128': { + 'WriteWaveformNumpyComplex64': { 'codegen_method': 'public', 'documentation': { - 'description': 'A function that writes a waveform of numpy complex128 numbers.' + 'description': 'A function that writes a waveform of numpy complex64 samples.' }, 'included_in_proto': False, - 'is_error_handling': False, 'method_templates': [ { 'documentation_filename': 'numpy_method', @@ -2902,9 +2935,7 @@ 'description': 'Identifies a particular instrument session.' }, 'name': 'vi', - 'type': 'ViSession', - 'use_array': False, - 'use_in_python_api': True + 'type': 'ViSession' }, { 'direction': 'in', @@ -2913,14 +2944,13 @@ }, 'name': 'numberOfSamples', 'type': 'ViInt32', - 'use_array': False, 'use_in_python_api': False }, { - 'complex_type': 'numpy', + 'complex_array_representation': 'complex_number_array', 'direction': 'in', 'documentation': { - 'description': 'Specifies the array of data to load into the waveform. Array should be numberOfSamples big.' + 'description': 'Specifies the array of data to load into the waveform.' }, 'name': 'waveformDataArray', 'numpy': True, @@ -2928,9 +2958,8 @@ 'mechanism': 'len', 'value': 'numberOfSamples' }, - 'type': 'NIComplexNumber[]', - 'use_in_python_api': True, - 'use_numpy_array': True + 'type': 'NIComplexNumberF32[]', + 'use_in_python_api': True } ], 'returns': 'ViStatus' @@ -2938,10 +2967,9 @@ 'WriteWaveformNumpyComplexInterleavedI16': { 'codegen_method': 'public', 'documentation': { - 'description': 'A function that writes a waveform of numpy complex i16 numbers.' + 'description': 'A function that writes a waveform of numpy complex i16 samples.' }, 'included_in_proto': False, - 'is_error_handling': False, 'method_templates': [ { 'documentation_filename': 'numpy_method', @@ -2957,9 +2985,7 @@ 'description': 'Identifies a particular instrument session.' }, 'name': 'vi', - 'type': 'ViSession', - 'use_array': False, - 'use_in_python_api': True + 'type': 'ViSession' }, { 'direction': 'in', @@ -2968,14 +2994,13 @@ }, 'name': 'numberOfSamples', 'type': 'ViInt32', - 'use_array': False, 'use_in_python_api': False }, { - 'complex_type': 'interleaved', + 'complex_array_representation': 'interleaved_real_number_array', 'direction': 'in', 'documentation': { - 'description': 'Specifies the array of data to load into the waveform. Array should be numberOfSamples big.' + 'description': 'Specifies the array of data to load into the waveform.' }, 'name': 'waveformDataArray', 'numpy': True, @@ -2984,56 +3009,11 @@ 'value': 'numberOfSamples' }, 'type': 'NIComplexI16[]', - 'use_in_python_api': True, - 'use_numpy_array': True + 'use_in_python_api': True } ], 'returns': 'ViStatus' }, - 'FunctionWith3dNumpyArrayOfNumpyComplex128InputParameter': { - 'codegen_method': 'public', - 'documentation': { - 'description': 'Function that takes a 3D numpy array of numpy complex128 as an input parameter.' - }, - 'included_in_proto': False, - 'is_error_handling': False, - 'method_templates': [ - { - 'documentation_filename': 'numpy_method', - 'library_interpreter_filename': 'numpy_write_method', - 'method_python_name_suffix': '', - 'session_filename': 'numpy_write_method' - } - ], - 'parameters': [ - { - 'direction': 'in', - 'name': 'vi', - 'documentation': { - 'description': 'Identifies a particular instrument session.' - }, - 'type': 'ViSession', - 'use_array': False, - 'use_in_python_api': True - }, - { - 'complex_type': 'numpy', - 'direction': 'in', - 'documentation': { - 'description': 'Specifies the 3D array of numpy complex numbers to write. ' - }, - 'name': 'multidimensionalArray', - 'type': 'NIComplexNumber[]', - 'numpy': True, - 'use_numpy_array': True, - 'use_in_python_api': True, - 'array_dimension': 3 - }, - ], - 'python_name': 'function_with_3d_numpy_array_of_numpy_complex128_input_parameter', - 'returns': 'ViStatus', - 'use_session_lock': False - }, 'close': { 'codegen_method': 'private', 'documentation': { diff --git a/src/nifake/unit_tests/test_session.py b/src/nifake/unit_tests/test_session.py index 17b6fd542..9621e851b 100644 --- a/src/nifake/unit_tests/test_session.py +++ b/src/nifake/unit_tests/test_session.py @@ -839,12 +839,12 @@ def test_return_timedeltas(self): self.patched_library_interpreter.return_list_of_durations_in_seconds.assert_called_once_with(len(time_values)) def test_with_valid_intflag_parameter(self): - flags = nifake.IntFlagEnum.C | nifake.IntFlagEnum.A + flags = nifake.IntFlagEnum.E | nifake.IntFlagEnum.A self.patched_library_interpreter.function_with_intflag_parameter.side_effect = None self.patched_library_interpreter.function_with_intflag_parameter.return_value = None with nifake.Session('dev1') as session: session.function_with_intflag_parameter(flags) - self.patched_library_interpreter.function_with_intflag_parameter.assert_called_once_with(9223372036854775809) + self.patched_library_interpreter.function_with_intflag_parameter.assert_called_once_with(1073741825) def test_with_intflag_parameter_invalid(self): invalid_flag = 5 diff --git a/src/nirfsg/metadata/enums.py b/src/nirfsg/metadata/enums.py index 7425de90f..2e88e47c1 100644 --- a/src/nirfsg/metadata/enums.py +++ b/src/nirfsg/metadata/enums.py @@ -958,7 +958,7 @@ ] }, 'ResetWithOptionsStepsToOmit': { - 'enum_class': 'IntFlag', + 'class': 'IntFlag', 'values': [ { 'documentation': { @@ -1066,7 +1066,7 @@ ] }, 'SelfCalibrateRangeStepsToOmit': { - 'enum_class': 'IntFlag', + 'class': 'IntFlag', 'values': [ { 'documentation': { diff --git a/src/nirfsg/metadata/functions.py b/src/nirfsg/metadata/functions.py index 5b2edcbb0..71bc52190 100644 --- a/src/nirfsg/metadata/functions.py +++ b/src/nirfsg/metadata/functions.py @@ -1519,8 +1519,8 @@ 'use_array': False }, { - 'array_dimension': 3, - 'complex_type': 'numpy', + 'array_dimensions': 3, + 'complex_array_representation': 'complex_number_array', 'direction': 'in', 'documentation': { 'description': 'Specifies the S-parameters for each frequency. S-parameters for each frequency are placed in the array in the following order: s11, s12, s21, s22.' @@ -2005,8 +2005,8 @@ 'use_in_python_api': True }, { - 'array_dimension': 3, - 'complex_type': 'numpy', + 'array_dimensions': 3, + 'complex_array_representation': 'complex_number_array', 'direction': 'in', 'documentation': { 'description': 'Specifies the S-parameters for each frequency. S-parameters for each frequency are placed in the array in the following order: s11, s12, s21, s22.' @@ -2079,8 +2079,8 @@ 'use_in_python_api': True }, { - 'array_dimension': 2, - 'complex_type': 'numpy', + 'array_dimensions': 2, + 'complex_array_representation': 'complex_number_array', 'direction': 'out', 'documentation': { 'description': 'Returns an array of S-parameters. The S-parameters are returned in the following order: s11, s12, s21, s22.' @@ -2673,8 +2673,8 @@ 'use_in_python_api': True }, { - 'array_dimension': 2, - 'complex_type': 'numpy', + 'array_dimensions': 2, + 'complex_array_representation': 'complex_number_array', 'direction': 'out', 'documentation': { 'description': 'Returns an array of S-parameters. The S-parameters are returned in the following order: s11, s12, s21, s22.' @@ -5335,7 +5335,7 @@ 'use_array': False }, { - 'complex_type': 'numpy', + 'complex_array_representation': 'complex_number_array', 'direction': 'in', 'documentation': { 'description': 'Specifies the array of data to load into the waveform. The array must have at least as many elements as the value in the **size_in_samples** parameter in the nirfsg_AllocateArbWaveform function.' @@ -5410,7 +5410,7 @@ 'use_array': False }, { - 'complex_type': 'numpy', + 'complex_array_representation': 'complex_number_array', 'direction': 'in', 'documentation': { 'description': 'Specifies the array of data to load into the waveform. The array must have at least as many elements as the value in the **size_in_samples** parameter in the nirfsg_AllocateArbWaveform function.' @@ -5485,7 +5485,7 @@ 'use_array': False }, { - 'complex_type': 'interleaved', + 'complex_array_representation': 'interleaved_real_number_array', 'direction': 'in', 'documentation': { 'description': 'Specifies the array of data to load into the waveform. The array must have at least as many elements as the value in the **size_in_samples** parameter in the nirfsg_AllocateArbWaveform function.' @@ -5541,7 +5541,7 @@ 'use_in_python_api': True }, { - 'complex_type': 'numpy', + 'complex_array_representation': 'complex_number_array', 'direction': 'in', 'documentation': { 'description': 'Specifies the array of data to load into the waveform. The array must have at least as many elements as the value in the **size_in_samples** parameter in the nirfsg_AllocateArbWaveform function.' From 1af4ab663f18b0d41f7f18b0438af78af633fab8 Mon Sep 17 00:00:00 2001 From: Rahul R Date: Thu, 11 Sep 2025 08:31:58 +0530 Subject: [PATCH 02/10] Updated metadata from AzDo --- docs/nirfsg/class.rst | 38 ++ generated/nirfsg/nirfsg/_library.py | 9 + .../nirfsg/nirfsg/_library_interpreter.py | 14 + generated/nirfsg/nirfsg/session.py | 19 + .../nirfsg/nirfsg/unit_tests/_mock_helper.py | 22 ++ logReport.log | 328 ++++++++++++++++++ src/nirfsg/metadata/functions.py | 38 ++ 7 files changed, 468 insertions(+) create mode 100644 logReport.log diff --git a/docs/nirfsg/class.rst b/docs/nirfsg/class.rst index 2a8b77564..e8532abf1 100644 --- a/docs/nirfsg/class.rst +++ b/docs/nirfsg/class.rst @@ -1803,6 +1803,44 @@ get_max_settable_power +get_script +---------- + + .. py:currentmodule:: nirfsg.Session + + .. py:method:: get_script(script_name) + + TBD + + + + + + :param script_name: + + + + + + :type script_name: str + + :rtype: tuple (script, actual_buffer_size) + + WHERE + + script (str): + + + + + + actual_buffer_size (int): + + + + + + get_self_calibration_last_date_and_time --------------------------------------- diff --git a/generated/nirfsg/nirfsg/_library.py b/generated/nirfsg/nirfsg/_library.py index b6ffcca37..0a81cce0b 100644 --- a/generated/nirfsg/nirfsg/_library.py +++ b/generated/nirfsg/nirfsg/_library.py @@ -72,6 +72,7 @@ def __init__(self, ctypes_library): self.niRFSG_GetError_cfunc = None self.niRFSG_GetExternalCalibrationLastDateAndTime_cfunc = None self.niRFSG_GetMaxSettablePower_cfunc = None + self.niRFSG_GetScript_cfunc = None self.niRFSG_GetSelfCalibrationDateAndTime_cfunc = None self.niRFSG_GetSelfCalibrationTemperature_cfunc = None self.niRFSG_GetTerminalName_cfunc = None @@ -539,6 +540,14 @@ def niRFSG_GetMaxSettablePower(self, vi, value): # noqa: N802 self.niRFSG_GetMaxSettablePower_cfunc.restype = ViStatus # noqa: F405 return self.niRFSG_GetMaxSettablePower_cfunc(vi, value) + def niRFSG_GetScript(self, vi, script_name, script, buffer_size, actual_buffer_size): # noqa: N802 + with self._func_lock: + if self.niRFSG_GetScript_cfunc is None: + self.niRFSG_GetScript_cfunc = self._get_library_function('niRFSG_GetScript') + self.niRFSG_GetScript_cfunc.argtypes = [ViSession, ctypes.POINTER(ViChar), ctypes.POINTER(ViChar), ViInt32, ctypes.POINTER(ViInt32)] # noqa: F405 + self.niRFSG_GetScript_cfunc.restype = ViStatus # noqa: F405 + return self.niRFSG_GetScript_cfunc(vi, script_name, script, buffer_size, actual_buffer_size) + def niRFSG_GetSelfCalibrationDateAndTime(self, vi, module, year, month, day, hour, minute, second): # noqa: N802 with self._func_lock: if self.niRFSG_GetSelfCalibrationDateAndTime_cfunc is None: diff --git a/generated/nirfsg/nirfsg/_library_interpreter.py b/generated/nirfsg/nirfsg/_library_interpreter.py index 5ffb54000..402126648 100644 --- a/generated/nirfsg/nirfsg/_library_interpreter.py +++ b/generated/nirfsg/nirfsg/_library_interpreter.py @@ -535,6 +535,20 @@ def get_max_settable_power(self): # noqa: N802 errors.handle_error(self, error_code, ignore_warnings=False, is_error_handling=False) return float(value_ctype.value) + def get_script(self, script_name): # noqa: N802 + vi_ctype = _visatype.ViSession(self._vi) # case S110 + script_name_ctype = ctypes.create_string_buffer(script_name.encode(self._encoding)) # case C020 + script_ctype = None # case C050 + buffer_size_ctype = _visatype.ViInt32() # case S170 + actual_buffer_size_ctype = _visatype.ViInt32() # case S220 + error_code = self._library.niRFSG_GetScript(vi_ctype, script_name_ctype, script_ctype, buffer_size_ctype, None if actual_buffer_size_ctype is None else (ctypes.pointer(actual_buffer_size_ctype))) + errors.handle_error(self, error_code, ignore_warnings=True, is_error_handling=False) + buffer_size_ctype = _visatype.ViInt32(error_code) # case S180 + script_ctype = (_visatype.ViChar * buffer_size_ctype.value)() # case C060 + error_code = self._library.niRFSG_GetScript(vi_ctype, script_name_ctype, script_ctype, buffer_size_ctype, None if actual_buffer_size_ctype is None else (ctypes.pointer(actual_buffer_size_ctype))) + errors.handle_error(self, error_code, ignore_warnings=False, is_error_handling=False) + return script_ctype.value.decode(self._encoding), int(actual_buffer_size_ctype.value) + def get_self_calibration_date_and_time(self, module): # noqa: N802 vi_ctype = _visatype.ViSession(self._vi) # case S110 module_ctype = _visatype.ViInt32(module.value) # case S130 diff --git a/generated/nirfsg/nirfsg/session.py b/generated/nirfsg/nirfsg/session.py index d6da7438e..ccd876411 100644 --- a/generated/nirfsg/nirfsg/session.py +++ b/generated/nirfsg/nirfsg/session.py @@ -7477,6 +7477,25 @@ def get_max_settable_power(self): value = self._interpreter.get_max_settable_power() return value + @ivi_synchronized + def get_script(self, script_name): + r'''get_script + + TBD + + Args: + script_name (str): + + + Returns: + script (str): + + actual_buffer_size (int): + + ''' + script, actual_buffer_size = self._interpreter.get_script(script_name) + return script, actual_buffer_size + @ivi_synchronized def _get_self_calibration_date_and_time(self, module): r'''_get_self_calibration_date_and_time diff --git a/generated/nirfsg/nirfsg/unit_tests/_mock_helper.py b/generated/nirfsg/nirfsg/unit_tests/_mock_helper.py index 2b25158b2..53e19beeb 100644 --- a/generated/nirfsg/nirfsg/unit_tests/_mock_helper.py +++ b/generated/nirfsg/nirfsg/unit_tests/_mock_helper.py @@ -149,6 +149,10 @@ def __init__(self): self._defaults['GetMaxSettablePower'] = {} self._defaults['GetMaxSettablePower']['return'] = 0 self._defaults['GetMaxSettablePower']['value'] = None + self._defaults['GetScript'] = {} + self._defaults['GetScript']['return'] = 0 + self._defaults['GetScript']['actualBufferSize'] = None + self._defaults['GetScript']['script'] = None self._defaults['GetSelfCalibrationDateAndTime'] = {} self._defaults['GetSelfCalibrationDateAndTime']['return'] = 0 self._defaults['GetSelfCalibrationDateAndTime']['year'] = None @@ -686,6 +690,22 @@ def niRFSG_GetMaxSettablePower(self, vi, value): # noqa: N802 value.contents.value = self._defaults['GetMaxSettablePower']['value'] return self._defaults['GetMaxSettablePower']['return'] + def niRFSG_GetScript(self, vi, script_name, script, buffer_size, actual_buffer_size): # noqa: N802 + if self._defaults['GetScript']['return'] != 0: + return self._defaults['GetScript']['return'] + # actual_buffer_size + if self._defaults['GetScript']['actualBufferSize'] is None: + raise MockFunctionCallError("niRFSG_GetScript", param='actualBufferSize') + if actual_buffer_size is not None: + actual_buffer_size.contents.value = self._defaults['GetScript']['actualBufferSize'] + # script + if self._defaults['GetScript']['script'] is None: + raise MockFunctionCallError("niRFSG_GetScript", param='script') + if buffer_size.value == 0: + return len(self._defaults['GetScript']['script']) + script.value = self._defaults['GetScript']['script'].encode('ascii') + return self._defaults['GetScript']['return'] + def niRFSG_GetSelfCalibrationDateAndTime(self, vi, module, year, month, day, hour, minute, second): # noqa: N802 if self._defaults['GetSelfCalibrationDateAndTime']['return'] != 0: return self._defaults['GetSelfCalibrationDateAndTime']['return'] @@ -1154,6 +1174,8 @@ def set_side_effects_and_return_values(self, mock_library): mock_library.niRFSG_GetExternalCalibrationLastDateAndTime.return_value = 0 mock_library.niRFSG_GetMaxSettablePower.side_effect = MockFunctionCallError("niRFSG_GetMaxSettablePower") mock_library.niRFSG_GetMaxSettablePower.return_value = 0 + mock_library.niRFSG_GetScript.side_effect = MockFunctionCallError("niRFSG_GetScript") + mock_library.niRFSG_GetScript.return_value = 0 mock_library.niRFSG_GetSelfCalibrationDateAndTime.side_effect = MockFunctionCallError("niRFSG_GetSelfCalibrationDateAndTime") mock_library.niRFSG_GetSelfCalibrationDateAndTime.return_value = 0 mock_library.niRFSG_GetSelfCalibrationTemperature.side_effect = MockFunctionCallError("niRFSG_GetSelfCalibrationTemperature") diff --git a/logReport.log b/logReport.log new file mode 100644 index 000000000..7a8ed1c6a --- /dev/null +++ b/logReport.log @@ -0,0 +1,328 @@ +py312-build_test: commands[0]> python --version +Python 3.12.11 +py312-build_test: commands[1]> python -c 'import platform; print(platform.architecture())' +('64bit', 'ELF') +py312-build_test: commands[2]> python -m pip install --disable-pip-version-check --upgrade pip +Requirement already satisfied: pip in ./.tox/64/py312-build_test/lib/python3.12/site-packages (25.2) +py312-build_test: commands[3]> python -m pip list +Package Version +----------- ------- +coverage 7.9.2 +flake8 7.1.2 +hacking 7.0.0 +iniconfig 2.1.0 +Mako 1.3.10 +MarkupSafe 3.0.2 +mccabe 0.7.0 +packaging 25.0 +pep8-naming 0.15.1 +pip 25.2 +pluggy 1.6.0 +pycodestyle 2.12.1 +pyflakes 3.2.0 +Pygments 2.19.2 +pytest 8.4.1 +py312-build_test: commands[4]> coverage run --rcfile=tools/coverage_unit_tests.rc --source build.helper -m pytest --pyargs build.helper +============================= test session starts ============================== +platform linux -- Python 3.12.11, pytest-8.4.1, pluggy-1.6.0 -- /home/rahur/nimipythonmyfork/nimi-python/.tox/64/py312-build_test/bin/python +cachedir: .tox/64/py312-build_test/.pytest_cache +rootdir: /home/rahur/nimipythonmyfork/nimi-python +configfile: tox.ini +collecting ... collected 1 item + +build/helper/documentation_helper.py::build.helper.documentation_helper.as_rest_table PASSED [100%] + +============================== 1 passed in 0.46s =============================== +py312-build_test: commands[5]> coverage run --append --rcfile=tools/coverage_unit_tests.rc --source build.helper -m pytest build/unit_tests -s +============================= test session starts ============================== +platform linux -- Python 3.12.11, pytest-8.4.1, pluggy-1.6.0 -- /home/rahur/nimipythonmyfork/nimi-python/.tox/64/py312-build_test/bin/python +cachedir: .tox/64/py312-build_test/.pytest_cache +rootdir: /home/rahur/nimipythonmyfork/nimi-python +configfile: tox.ini +collecting ... collected 93 items + +build/unit_tests/test_codegen_helper.py::test_get_library_interpreter_method_return_snippet_vi PASSED +build/unit_tests/test_codegen_helper.py::test_get_library_interpreter_method_return_snippet_int PASSED +build/unit_tests/test_codegen_helper.py::test_get_library_interpreter_method_return_snippet_string PASSED +build/unit_tests/test_codegen_helper.py::test_get_library_interpreter_method_return_snippet_custom_type PASSED +build/unit_tests/test_codegen_helper.py::test_get_library_interpreter_method_return_snippet_enum PASSED +build/unit_tests/test_codegen_helper.py::test_get_library_interpreter_method_return_snippet_into PASSED +build/unit_tests/test_codegen_helper.py::test_get_grpc_interpreter_method_return_snippet_vi PASSED +build/unit_tests/test_codegen_helper.py::test_get_grpc_interpreter_method_return_snippet_int PASSED +build/unit_tests/test_codegen_helper.py::test_get_grpc_interpreter_method_return_snippet_string PASSED +build/unit_tests/test_codegen_helper.py::test_get_grpc_interpreter_method_return_snippet_custom_type PASSED +build/unit_tests/test_codegen_helper.py::test_get_grpc_interpreter_method_return_snippet_enum PASSED +build/unit_tests/test_codegen_helper.py::test_get_grpc_interpreter_method_return_snippet_bytes PASSED +build/unit_tests/test_codegen_helper.py::test_get_session_method_return_snippet PASSED +build/unit_tests/test_codegen_helper.py::test_get_session_method_return_snippet_non_numpy PASSED +build/unit_tests/test_codegen_helper.py::test_get_session_method_return_snippet_numpy PASSED +build/unit_tests/test_codegen_helper.py::test_get_enum_type_check_snippet PASSED +build/unit_tests/test_codegen_helper.py::test_get_buffer_parameters_for_size_parameter_none PASSED +build/unit_tests/test_codegen_helper.py::test_get_buffer_parameters_for_size_parameter PASSED +build/unit_tests/test_codegen_helper.py::test_get_ctype_variable_declaration_snippet_case_c010 PASSED +build/unit_tests/test_codegen_helper.py::test_get_ctype_variable_declaration_snippet_case_c020 PASSED +build/unit_tests/test_codegen_helper.py::test_get_ctype_variable_declaration_snippet_case_c030 PASSED +build/unit_tests/test_codegen_helper.py::test_get_ctype_variable_declaration_snippet_case_c050 PASSED +build/unit_tests/test_codegen_helper.py::test_get_ctype_variable_declaration_snippet_case_c060 PASSED +build/unit_tests/test_codegen_helper.py::test_get_ctype_variable_declaration_snippet_case_c070 PASSED +build/unit_tests/test_codegen_helper.py::test_get_ctype_variable_declaration_snippet_case_c080 PASSED +build/unit_tests/test_codegen_helper.py::test_get_ctype_variable_declaration_snippet_case_c090 PASSED +build/unit_tests/test_codegen_helper.py::test_get_ctype_variable_declaration_snippet_case_c100 PASSED +build/unit_tests/test_codegen_helper.py::test_get_ctype_variable_declaration_snippet_case_s110 PASSED +build/unit_tests/test_codegen_helper.py::test_get_ctype_variable_declaration_snippet_case_s120 PASSED +build/unit_tests/test_codegen_helper.py::test_get_ctype_variable_declaration_snippet_case_s130 PASSED +build/unit_tests/test_codegen_helper.py::test_get_ctype_variable_declaration_snippet_case_s150 PASSED +build/unit_tests/test_codegen_helper.py::test_get_ctype_variable_declaration_snippet_case_s160 PASSED +build/unit_tests/test_codegen_helper.py::test_get_ctype_variable_declaration_snippet_case_s170 PASSED +build/unit_tests/test_codegen_helper.py::test_get_ctype_variable_declaration_snippet_case_s180 PASSED +build/unit_tests/test_codegen_helper.py::test_get_ctype_variable_declaration_snippet_case_s2190 PASSED +build/unit_tests/test_codegen_helper.py::test_get_ctype_variable_declaration_snippet_case_s200 PASSED +build/unit_tests/test_codegen_helper.py::test_get_ctype_variable_declaration_snippet_case_s210 PASSED +build/unit_tests/test_codegen_helper.py::test_get_ctype_variable_declaration_snippet_case_s220 PASSED +build/unit_tests/test_codegen_helper.py::test_get_ctype_variable_declaration_snippet_case_b510 PASSED +build/unit_tests/test_codegen_helper.py::test_get_ctype_variable_declaration_snippet_case_b540 PASSED +build/unit_tests/test_codegen_helper.py::test_get_ctype_variable_declaration_snippet_case_b550_array PASSED +build/unit_tests/test_codegen_helper.py::test_get_ctype_variable_declaration_snippet_case_b550_list PASSED +build/unit_tests/test_codegen_helper.py::test_get_ctype_variable_declaration_snippet_case_b560 PASSED +build/unit_tests/test_codegen_helper.py::test_get_ctype_variable_declaration_snippet_case_b570 PASSED +build/unit_tests/test_codegen_helper.py::test_get_ctype_variable_declaration_snippet_case_b580_array PASSED +build/unit_tests/test_codegen_helper.py::test_get_ctype_variable_declaration_snippet_case_b590_array PASSED +build/unit_tests/test_codegen_helper.py::test_get_ctype_variable_declaration_snippet_case_b580_list PASSED +build/unit_tests/test_codegen_helper.py::test_get_ctype_variable_declaration_snippet_case_b590_list PASSED +build/unit_tests/test_codegen_helper.py::test_get_ctype_variable_declaration_snippet_case_b600 PASSED +build/unit_tests/test_codegen_helper.py::test_get_ctype_variable_declaration_snippet_case_b610_array PASSED +build/unit_tests/test_codegen_helper.py::test_get_ctype_variable_declaration_snippet_case_b620_array PASSED +build/unit_tests/test_codegen_helper.py::test_get_ctype_variable_declaration_snippet_case_b610_list PASSED +build/unit_tests/test_codegen_helper.py::test_get_ctype_variable_declaration_snippet_case_b620_list PASSED +build/unit_tests/test_codegen_helper.py::test_get_ctype_variable_declaration_snippet_bad_ivi_dance_step PASSED +build/unit_tests/test_codegen_helper.py::test_get_enum_value_snippet PASSED +build/unit_tests/test_documentation_helper.py::test_get_function_rst_default PASSED +build/unit_tests/test_documentation_helper.py::test_get_function_rst_numpy PASSED +build/unit_tests/test_documentation_helper.py::test_get_attribute_repeated_caps PASSED +build/unit_tests/test_documentation_helper.py::test_get_attribute_repeated_caps_with_conjunction PASSED +build/unit_tests/test_documentation_helper.py::test_module_supports_repeated_caps PASSED +build/unit_tests/test_documentation_helper.py::test_get_function_docstring_default PASSED +build/unit_tests/test_documentation_helper.py::test_get_function_docstring_numpy PASSED +build/unit_tests/test_documentation_helper.py::test_get_rst_header_snippet PASSED +build/unit_tests/test_documentation_helper.py::test_get_documentation_for_node_docstring PASSED +build/unit_tests/test_documentation_helper.py::test_get_rst_picture_reference PASSED +build/unit_tests/test_documentation_helper.py::test_square_up_tables PASSED +build/unit_tests/test_documentation_helper.py::test_add_notes_re_links PASSED +build/unit_tests/test_documentation_snippets.py::test_close_function_def_for_doc_note_not_list PASSED +build/unit_tests/test_documentation_snippets.py::test_close_function_def_for_doc_note_list PASSED +build/unit_tests/test_documentation_snippets.py::test_close_function_def_for_doc_no_note PASSED +build/unit_tests/test_documentation_snippets.py::test_initiate_function_def_for_doc_note_not_list PASSED +build/unit_tests/test_documentation_snippets.py::test_initiate_function_def_for_doc_note_list PASSED +build/unit_tests/test_documentation_snippets.py::test_initiate_function_def_for_doc_no_note PASSED +build/unit_tests/test_helper.py::test_get_development_status PASSED +build/unit_tests/test_helper.py::test_enum_uses_converter PASSED +build/unit_tests/test_metadata_add_all.py::test_add_functions_metadata_simple Couldn't find InitWithOptions init function +PASSED +build/unit_tests/test_metadata_add_all.py::test_add_attributes_metadata_simple PASSED +build/unit_tests/test_metadata_add_all.py::test_add_enums_metadata_simple PASSED +build/unit_tests/test_metadata_add_all.py::test_add_all_metadata_defaults Couldn't find InitWithOptions init function +PASSED +build/unit_tests/test_metadata_add_all.py::test_add_all_metadata Couldn't find InitWithOptions init function +PASSED +build/unit_tests/test_metadata_add_all.py::test_add_enum_codegen_method PASSED +build/unit_tests/test_metadata_add_all.py::test_add_enum_codegen_method_error PASSED +build/unit_tests/test_metadata_add_all.py::test_get_functions_that_use_enums PASSED +build/unit_tests/test_metadata_add_all.py::test_get_attributes_that_use_enums PASSED +build/unit_tests/test_metadata_add_all.py::test_get_least_restrictive_codegen_method PASSED +build/unit_tests/test_metadata_merge_dicts.py::test_merge_dict_second_is_empty PASSED +build/unit_tests/test_metadata_merge_dicts.py::test_merge_dict_key_exists PASSED +build/unit_tests/test_metadata_merge_dicts.py::test_merge_dict_recurse PASSED +build/unit_tests/test_metadata_merge_dicts.py::test_merge_dict_replace_in_list PASSED +build/unit_tests/test_metadata_merge_dicts.py::test_merge_dict_replace_in_dict_and_list PASSED +build/unit_tests/test_metadata_merge_dicts.py::test_merge_dict_with_regex PASSED +build/unit_tests/test_metadata_merge_dicts.py::test_merge_dict_with_regex_off PASSED +build/unit_tests/test_metadata_merge_dicts.py::test_merge_dict_top_level_key_missing PASSED + +============================== 93 passed in 0.60s ============================== +py312-build_test: commands[6]> coverage report +Name Stmts Miss Cover +------------------------------------------------------------- +build/helper/__init__.py 53 0 100% +build/helper/codegen_helper.py 307 50 84% +build/helper/documentation_helper.py 519 60 88% +build/helper/documentation_snippets.py 53 8 85% +build/helper/helper.py 52 11 79% +build/helper/metadata_add_all.py 434 82 81% +build/helper/metadata_filters.py 103 28 73% +build/helper/metadata_find.py 28 9 68% +build/helper/metadata_merge_dicts.py 43 9 79% +build/helper/parameter_usage_options.py 60 0 100% +------------------------------------------------------------- +TOTAL 1652 257 84% +py312-build_test: commands[7]> coverage xml -o codegen.xml +Wrote XML report to codegen.xml +py312-build_test: commands[8]> coverage html --directory=generated/htmlcov/unit_tests/codegen +Wrote HTML report to generated/htmlcov/unit_tests/codegen/index.html +py312-build_test: commands[9]> flake8 --config=./tox.ini '--per-file-ignores=build/unit_tests/*.py:F403,F405' build/ +py312-build_test: OK ✔ in 3.85 seconds +py312-codegen: commands[0]> python --version +Python 3.12.11 +py312-codegen: commands[1]> python -c 'import platform; print(platform.architecture())' +('64bit', 'ELF') +py312-codegen: commands[2]> python -m pip install --disable-pip-version-check --upgrade pip +Requirement already satisfied: pip in ./.tox/64/py312-codegen/lib/python3.12/site-packages (25.2) +py312-codegen: commands[3]> make + +Making nifake + Making dir: generated/nifake + Making dir: generated/nifake/nifake + Making dir: generated/nifake/nifake/unit_tests + Making dir: generated/nifake/log + Generating: generated/nifake/nifake/_attributes.py + Generating: generated/nifake/nifake/enums.py + Generating: generated/nifake/nifake/_library.py + Generating: generated/nifake/nifake/_library_interpreter.py + Generating: generated/nifake/nifake/_library_singleton.py + Generating: generated/nifake/nifake/session.py + Generating: generated/nifake/nifake/errors.py + Generating: generated/nifake/nifake/unit_tests/_mock_helper.py + Generating: generated/nifake/nifake/unit_tests/_matchers.py + Generating: generated/nifake/nifake/__init__.py + Generating: generated/nifake/nifake/_converters.py + Generating: generated/nifake/nifake/VERSION + Generating: generated/nifake/nifake/_grpc_stub_interpreter.py + Generating: generated/nifake/nifake/grpc_session_options.py + Generating: generated/nifake/nifake/nifake_pb2.py and nifake_pb2_grpc.py + Generating: generated/nifake/nifake/nidevice_pb2.py and nidevice_pb2_grpc.py + Generating: generated/nifake/nifake/session_pb2.py and session_pb2_grpc.py + Generating: generated/nifake/nifake/_complextype.py + Copying: generated/nifake/nifake/_visatype.py + Copying: generated/nifake/nifake/custom_struct.py + Copying: generated/nifake/nifake/custom_struct_typedef.py + Copying: generated/nifake/nifake/custom_struct_nested_typedef.py + Copying: generated/nifake/README.rst + Generating: generated/nifake/setup.py + Generating: generated/nifake/tox-system_tests.ini + Copying: generated/nifake/nifake/unit_tests/test_converters.py + Copying: generated/nifake/nifake/unit_tests/test_grpc.py + Copying: generated/nifake/nifake/unit_tests/test_library_interpreter.py + Copying: generated/nifake/nifake/unit_tests/test_library_singleton.py + Copying: generated/nifake/nifake/unit_tests/test_session.py + +Making nidcpower + Making dir: generated/nidcpower + Making dir: generated/nidcpower/nidcpower + Making dir: generated/nidcpower/nidcpower/unit_tests + Making dir: generated/nidcpower/log + Making dir: generated/examples + Generating: generated/nidcpower/nidcpower/_attributes.py + Generating: generated/nidcpower/nidcpower/enums.py + Generating: generated/nidcpower/nidcpower/_library.py + Generating: generated/nidcpower/nidcpower/_library_interpreter.py + Generating: generated/nidcpower/nidcpower/_library_singleton.py + Generating: generated/nidcpower/nidcpower/session.py +Warning: "ConfigureOutputEnabled" not found in function metadata. Typo? Generated code will be funky! +Warning: "reset" not found in function metadata. Typo? Generated code will be funky! +Warning: "ConfigureOutputEnabled" not found in function metadata. Typo? Generated code will be funky! +Warning: "ConfigureOutputEnabled" not found in function metadata. Typo? Generated code will be funky! + Generating: generated/nidcpower/nidcpower/errors.py + Generating: generated/nidcpower/nidcpower/unit_tests/_mock_helper.py + Generating: generated/nidcpower/nidcpower/unit_tests/_matchers.py + Generating: generated/nidcpower/nidcpower/__init__.py + Generating: generated/nidcpower/nidcpower/_converters.py + Generating: generated/nidcpower/nidcpower/VERSION + Generating: generated/nidcpower/nidcpower/_grpc_stub_interpreter.py + Generating: generated/nidcpower/nidcpower/grpc_session_options.py + Generating: generated/nidcpower/nidcpower/nidcpower_pb2.py and nidcpower_pb2_grpc.py + Generating: generated/nidcpower/nidcpower/nidevice_pb2.py and nidevice_pb2_grpc.py + Generating: generated/nidcpower/nidcpower/session_pb2.py and session_pb2_grpc.py + Copying: generated/nidcpower/nidcpower/_visatype.py + Copying: generated/nidcpower/nidcpower/lcr_load_compensation_spot.py + Copying: generated/nidcpower/nidcpower/lcr_measurement.py + Generating: docs/nidcpower/about_nidcpower.inc + Generating: docs/nidcpower/index.rst + Generating: docs/nidcpower/nidcpower.rst + Generating: docs/nidcpower/enums.rst + Generating: docs/nidcpower/examples.rst + Generating: docs/nidcpower/installation.inc + Generating: docs/nidcpower/status.inc + Generating: docs/nidcpower/class.rst +Warning: "ConfigureOutputEnabled" not found in function metadata. Typo? Generated code will be funky! +Warning: "reset" not found in function metadata. Typo? Generated code will be funky! +Warning: "ConfigureOutputEnabled" not found in function metadata. Typo? Generated code will be funky! + Generating: docs/nidcpower/toc.inc + Generating: docs/nidcpower/errors.rst + Generating: docs/nidcpower/rep_caps.rst + Generating: docs/nidcpower/grpc_session_options.rst + Creating: generated/nidcpower/README.rst + Generating: generated/nidcpower/setup.py + Generating: generated/nidcpower/tox-system_tests.ini + Zipping: generated/examples/nidcpower_examples.zip + zip warning: /home/rahur/nimipythonmyfork/nimi-python/generated/examples/nidcpower_examples.zip not found or empty + adding: nidcpower_advanced_sequence.py (deflated 66%) + adding: nidcpower_constant_resistance_and_constant_power.py (deflated 73%) + adding: nidcpower_lcr_source_ac_voltage.py (deflated 71%) + adding: nidcpower_measure_record.py (deflated 59%) + adding: nidcpower_sink_dc_current_into_electronic_load.py (deflated 74%) + adding: nidcpower_source_delay_measure.py (deflated 64%) + Copying: generated/nidcpower/nidcpower/unit_tests/test_nidcpower.py + Generating: docs/nidcpower/conf.py + Generating: docs/nidcpower/.readthedocs.yaml + +Making nidigital + Making dir: generated/nidigital + Making dir: generated/nidigital/nidigital + Making dir: generated/nidigital/nidigital/unit_tests + Making dir: generated/nidigital/log + Generating: generated/nidigital/nidigital/_attributes.py + Generating: generated/nidigital/nidigital/enums.py + Generating: generated/nidigital/nidigital/_library.py + Generating: generated/nidigital/nidigital/_library_interpreter.py + Generating: generated/nidigital/nidigital/_library_singleton.py + Generating: generated/nidigital/nidigital/session.py +Warning: "PPMU_ConfigureCurrentLevelRange" not found in function metadata. Typo? Generated code will be funky! +Warning: "PPMU_ConfigureCurrentLevelRange" not found in function metadata. Typo? Generated code will be funky! +Warning: "init" not found in function metadata. Typo? Generated code will be funky! +Warning: "init" not found in function metadata. Typo? Generated code will be funky! +Warning: "init" not found in function metadata. Typo? Generated code will be funky! +Warning: "init" not found in function metadata. Typo? Generated code will be funky! +Warning: "GetPatternPinIndexeswith" not found in function metadata. Typo? Generated code will be funky! +Warning: "GetChannelName" not found in function metadata. Typo? Generated code will be funky! +Warning: "SortSiteResultsViBoolean" not found in function metadata. Typo? Generated code will be funky! + Generating: generated/nidigital/nidigital/errors.py + Generating: generated/nidigital/nidigital/unit_tests/_mock_helper.py + Generating: generated/nidigital/nidigital/unit_tests/_matchers.py + Generating: generated/nidigital/nidigital/__init__.py + Generating: generated/nidigital/nidigital/_converters.py + Generating: generated/nidigital/nidigital/VERSION + Generating: generated/nidigital/nidigital/_grpc_stub_interpreter.py + Generating: generated/nidigital/nidigital/grpc_session_options.py + Generating: generated/nidigital/nidigital/nidigitalpattern_pb2.py and nidigitalpattern_pb2_grpc.py + Generating: generated/nidigital/nidigital/nidevice_pb2.py and nidevice_pb2_grpc.py + Generating: generated/nidigital/nidigital/session_pb2.py and session_pb2_grpc.py + Copying: generated/nidigital/nidigital/_visatype.py + Copying: generated/nidigital/nidigital/history_ram_cycle_information.py + Generating: docs/nidigital/about_nidigital.inc + Generating: docs/nidigital/index.rst + Generating: docs/nidigital/nidigital.rst + Generating: docs/nidigital/enums.rst + Generating: docs/nidigital/examples.rst + Generating: docs/nidigital/installation.inc + Generating: docs/nidigital/status.inc + Generating: docs/nidigital/class.rst +Warning: "PPMU_ConfigureCurrentLevelRange" not found in function metadata. Typo? Generated code will be funky! +Warning: "init" not found in function metadata. Typo? Generated code will be funky! +Warning: "init" not found in function metadata. Typo? Generated code will be funky! + Generating: docs/nidigital/toc.inc + Generating: docs/nidigital/errors.rst + Generating: docs/nidigital/rep_caps.rst +ROOT: [6190] KeyboardInterrupt - teardown started +ROOT: interrupt tox environment: py312-codegen +py312-codegen: exit -2 (16.73 seconds) /home/rahur/nimipythonmyfork/nimi-python> make pid=6521 + py312-build_test: OK (3.85=setup[0.04]+cmd[0.01,0.06,0.68,0.17,0.91,0.97,0.15,0.17,0.30,0.40] seconds) + py312-codegen: FAIL code -2 (17.53=setup[0.01]+cmd[0.00,0.04,0.75,16.73] seconds) + py312-installers: FAIL code -2 (0.01 seconds) + py39-test: FAIL code -2 (0.01 seconds) + py310-test: FAIL code -2 (0.01 seconds) + py311-test: FAIL code -2 (0.01 seconds) + py312-test: FAIL code -2 (0.01 seconds) + py313-test: FAIL code -2 (0.01 seconds) + py312-flake8: FAIL code -2 (0.01 seconds) + py312-docs: FAIL code -2 (0.01 seconds) + py312-pkg: FAIL code -2 (0.01 seconds) + evaluation failed :( (21.43 seconds) diff --git a/src/nirfsg/metadata/functions.py b/src/nirfsg/metadata/functions.py index 71bc52190..848d4a259 100644 --- a/src/nirfsg/metadata/functions.py +++ b/src/nirfsg/metadata/functions.py @@ -2998,6 +2998,44 @@ ], 'returns': 'ViStatus' }, + 'GetScript': { + 'documentation': { + 'description': 'TBD' + }, + 'included_in_proto': True, + 'parameters': [ + { + 'direction': 'in', + 'name': 'vi', + 'type': 'ViSession' + }, + { + 'direction': 'in', + 'name': 'scriptName', + 'type': 'ViConstString' + }, + { + 'direction': 'out', + 'name': 'script', + 'size': { + 'mechanism': 'ivi-dance', + 'value': 'bufferSize' + }, + 'type': 'ViChar[]' + }, + { + 'direction': 'in', + 'name': 'bufferSize', + 'type': 'ViInt32' + }, + { + 'direction': 'out', + 'name': 'actualBufferSize', + 'type': 'ViInt32' + } + ], + 'returns': 'ViStatus' + }, 'GetSelfCalibrationDateAndTime': { 'codegen_method': 'private', 'documentation': { From f1879fdfb2d7a6c6fdf043b5fc8a53aa033dd933 Mon Sep 17 00:00:00 2001 From: Rahul R Date: Thu, 11 Sep 2025 09:19:51 +0530 Subject: [PATCH 03/10] Revert "Updated metadata from AzDo" This reverts commit 1af4ab663f18b0d41f7f18b0438af78af633fab8. --- docs/nirfsg/class.rst | 38 -- generated/nirfsg/nirfsg/_library.py | 9 - .../nirfsg/nirfsg/_library_interpreter.py | 14 - generated/nirfsg/nirfsg/session.py | 19 - .../nirfsg/nirfsg/unit_tests/_mock_helper.py | 22 -- logReport.log | 328 ------------------ src/nirfsg/metadata/functions.py | 38 -- 7 files changed, 468 deletions(-) delete mode 100644 logReport.log diff --git a/docs/nirfsg/class.rst b/docs/nirfsg/class.rst index e8532abf1..2a8b77564 100644 --- a/docs/nirfsg/class.rst +++ b/docs/nirfsg/class.rst @@ -1803,44 +1803,6 @@ get_max_settable_power -get_script ----------- - - .. py:currentmodule:: nirfsg.Session - - .. py:method:: get_script(script_name) - - TBD - - - - - - :param script_name: - - - - - - :type script_name: str - - :rtype: tuple (script, actual_buffer_size) - - WHERE - - script (str): - - - - - - actual_buffer_size (int): - - - - - - get_self_calibration_last_date_and_time --------------------------------------- diff --git a/generated/nirfsg/nirfsg/_library.py b/generated/nirfsg/nirfsg/_library.py index 0a81cce0b..b6ffcca37 100644 --- a/generated/nirfsg/nirfsg/_library.py +++ b/generated/nirfsg/nirfsg/_library.py @@ -72,7 +72,6 @@ def __init__(self, ctypes_library): self.niRFSG_GetError_cfunc = None self.niRFSG_GetExternalCalibrationLastDateAndTime_cfunc = None self.niRFSG_GetMaxSettablePower_cfunc = None - self.niRFSG_GetScript_cfunc = None self.niRFSG_GetSelfCalibrationDateAndTime_cfunc = None self.niRFSG_GetSelfCalibrationTemperature_cfunc = None self.niRFSG_GetTerminalName_cfunc = None @@ -540,14 +539,6 @@ def niRFSG_GetMaxSettablePower(self, vi, value): # noqa: N802 self.niRFSG_GetMaxSettablePower_cfunc.restype = ViStatus # noqa: F405 return self.niRFSG_GetMaxSettablePower_cfunc(vi, value) - def niRFSG_GetScript(self, vi, script_name, script, buffer_size, actual_buffer_size): # noqa: N802 - with self._func_lock: - if self.niRFSG_GetScript_cfunc is None: - self.niRFSG_GetScript_cfunc = self._get_library_function('niRFSG_GetScript') - self.niRFSG_GetScript_cfunc.argtypes = [ViSession, ctypes.POINTER(ViChar), ctypes.POINTER(ViChar), ViInt32, ctypes.POINTER(ViInt32)] # noqa: F405 - self.niRFSG_GetScript_cfunc.restype = ViStatus # noqa: F405 - return self.niRFSG_GetScript_cfunc(vi, script_name, script, buffer_size, actual_buffer_size) - def niRFSG_GetSelfCalibrationDateAndTime(self, vi, module, year, month, day, hour, minute, second): # noqa: N802 with self._func_lock: if self.niRFSG_GetSelfCalibrationDateAndTime_cfunc is None: diff --git a/generated/nirfsg/nirfsg/_library_interpreter.py b/generated/nirfsg/nirfsg/_library_interpreter.py index 402126648..5ffb54000 100644 --- a/generated/nirfsg/nirfsg/_library_interpreter.py +++ b/generated/nirfsg/nirfsg/_library_interpreter.py @@ -535,20 +535,6 @@ def get_max_settable_power(self): # noqa: N802 errors.handle_error(self, error_code, ignore_warnings=False, is_error_handling=False) return float(value_ctype.value) - def get_script(self, script_name): # noqa: N802 - vi_ctype = _visatype.ViSession(self._vi) # case S110 - script_name_ctype = ctypes.create_string_buffer(script_name.encode(self._encoding)) # case C020 - script_ctype = None # case C050 - buffer_size_ctype = _visatype.ViInt32() # case S170 - actual_buffer_size_ctype = _visatype.ViInt32() # case S220 - error_code = self._library.niRFSG_GetScript(vi_ctype, script_name_ctype, script_ctype, buffer_size_ctype, None if actual_buffer_size_ctype is None else (ctypes.pointer(actual_buffer_size_ctype))) - errors.handle_error(self, error_code, ignore_warnings=True, is_error_handling=False) - buffer_size_ctype = _visatype.ViInt32(error_code) # case S180 - script_ctype = (_visatype.ViChar * buffer_size_ctype.value)() # case C060 - error_code = self._library.niRFSG_GetScript(vi_ctype, script_name_ctype, script_ctype, buffer_size_ctype, None if actual_buffer_size_ctype is None else (ctypes.pointer(actual_buffer_size_ctype))) - errors.handle_error(self, error_code, ignore_warnings=False, is_error_handling=False) - return script_ctype.value.decode(self._encoding), int(actual_buffer_size_ctype.value) - def get_self_calibration_date_and_time(self, module): # noqa: N802 vi_ctype = _visatype.ViSession(self._vi) # case S110 module_ctype = _visatype.ViInt32(module.value) # case S130 diff --git a/generated/nirfsg/nirfsg/session.py b/generated/nirfsg/nirfsg/session.py index ccd876411..d6da7438e 100644 --- a/generated/nirfsg/nirfsg/session.py +++ b/generated/nirfsg/nirfsg/session.py @@ -7477,25 +7477,6 @@ def get_max_settable_power(self): value = self._interpreter.get_max_settable_power() return value - @ivi_synchronized - def get_script(self, script_name): - r'''get_script - - TBD - - Args: - script_name (str): - - - Returns: - script (str): - - actual_buffer_size (int): - - ''' - script, actual_buffer_size = self._interpreter.get_script(script_name) - return script, actual_buffer_size - @ivi_synchronized def _get_self_calibration_date_and_time(self, module): r'''_get_self_calibration_date_and_time diff --git a/generated/nirfsg/nirfsg/unit_tests/_mock_helper.py b/generated/nirfsg/nirfsg/unit_tests/_mock_helper.py index 53e19beeb..2b25158b2 100644 --- a/generated/nirfsg/nirfsg/unit_tests/_mock_helper.py +++ b/generated/nirfsg/nirfsg/unit_tests/_mock_helper.py @@ -149,10 +149,6 @@ def __init__(self): self._defaults['GetMaxSettablePower'] = {} self._defaults['GetMaxSettablePower']['return'] = 0 self._defaults['GetMaxSettablePower']['value'] = None - self._defaults['GetScript'] = {} - self._defaults['GetScript']['return'] = 0 - self._defaults['GetScript']['actualBufferSize'] = None - self._defaults['GetScript']['script'] = None self._defaults['GetSelfCalibrationDateAndTime'] = {} self._defaults['GetSelfCalibrationDateAndTime']['return'] = 0 self._defaults['GetSelfCalibrationDateAndTime']['year'] = None @@ -690,22 +686,6 @@ def niRFSG_GetMaxSettablePower(self, vi, value): # noqa: N802 value.contents.value = self._defaults['GetMaxSettablePower']['value'] return self._defaults['GetMaxSettablePower']['return'] - def niRFSG_GetScript(self, vi, script_name, script, buffer_size, actual_buffer_size): # noqa: N802 - if self._defaults['GetScript']['return'] != 0: - return self._defaults['GetScript']['return'] - # actual_buffer_size - if self._defaults['GetScript']['actualBufferSize'] is None: - raise MockFunctionCallError("niRFSG_GetScript", param='actualBufferSize') - if actual_buffer_size is not None: - actual_buffer_size.contents.value = self._defaults['GetScript']['actualBufferSize'] - # script - if self._defaults['GetScript']['script'] is None: - raise MockFunctionCallError("niRFSG_GetScript", param='script') - if buffer_size.value == 0: - return len(self._defaults['GetScript']['script']) - script.value = self._defaults['GetScript']['script'].encode('ascii') - return self._defaults['GetScript']['return'] - def niRFSG_GetSelfCalibrationDateAndTime(self, vi, module, year, month, day, hour, minute, second): # noqa: N802 if self._defaults['GetSelfCalibrationDateAndTime']['return'] != 0: return self._defaults['GetSelfCalibrationDateAndTime']['return'] @@ -1174,8 +1154,6 @@ def set_side_effects_and_return_values(self, mock_library): mock_library.niRFSG_GetExternalCalibrationLastDateAndTime.return_value = 0 mock_library.niRFSG_GetMaxSettablePower.side_effect = MockFunctionCallError("niRFSG_GetMaxSettablePower") mock_library.niRFSG_GetMaxSettablePower.return_value = 0 - mock_library.niRFSG_GetScript.side_effect = MockFunctionCallError("niRFSG_GetScript") - mock_library.niRFSG_GetScript.return_value = 0 mock_library.niRFSG_GetSelfCalibrationDateAndTime.side_effect = MockFunctionCallError("niRFSG_GetSelfCalibrationDateAndTime") mock_library.niRFSG_GetSelfCalibrationDateAndTime.return_value = 0 mock_library.niRFSG_GetSelfCalibrationTemperature.side_effect = MockFunctionCallError("niRFSG_GetSelfCalibrationTemperature") diff --git a/logReport.log b/logReport.log deleted file mode 100644 index 7a8ed1c6a..000000000 --- a/logReport.log +++ /dev/null @@ -1,328 +0,0 @@ -py312-build_test: commands[0]> python --version -Python 3.12.11 -py312-build_test: commands[1]> python -c 'import platform; print(platform.architecture())' -('64bit', 'ELF') -py312-build_test: commands[2]> python -m pip install --disable-pip-version-check --upgrade pip -Requirement already satisfied: pip in ./.tox/64/py312-build_test/lib/python3.12/site-packages (25.2) -py312-build_test: commands[3]> python -m pip list -Package Version ------------ ------- -coverage 7.9.2 -flake8 7.1.2 -hacking 7.0.0 -iniconfig 2.1.0 -Mako 1.3.10 -MarkupSafe 3.0.2 -mccabe 0.7.0 -packaging 25.0 -pep8-naming 0.15.1 -pip 25.2 -pluggy 1.6.0 -pycodestyle 2.12.1 -pyflakes 3.2.0 -Pygments 2.19.2 -pytest 8.4.1 -py312-build_test: commands[4]> coverage run --rcfile=tools/coverage_unit_tests.rc --source build.helper -m pytest --pyargs build.helper -============================= test session starts ============================== -platform linux -- Python 3.12.11, pytest-8.4.1, pluggy-1.6.0 -- /home/rahur/nimipythonmyfork/nimi-python/.tox/64/py312-build_test/bin/python -cachedir: .tox/64/py312-build_test/.pytest_cache -rootdir: /home/rahur/nimipythonmyfork/nimi-python -configfile: tox.ini -collecting ... collected 1 item - -build/helper/documentation_helper.py::build.helper.documentation_helper.as_rest_table PASSED [100%] - -============================== 1 passed in 0.46s =============================== -py312-build_test: commands[5]> coverage run --append --rcfile=tools/coverage_unit_tests.rc --source build.helper -m pytest build/unit_tests -s -============================= test session starts ============================== -platform linux -- Python 3.12.11, pytest-8.4.1, pluggy-1.6.0 -- /home/rahur/nimipythonmyfork/nimi-python/.tox/64/py312-build_test/bin/python -cachedir: .tox/64/py312-build_test/.pytest_cache -rootdir: /home/rahur/nimipythonmyfork/nimi-python -configfile: tox.ini -collecting ... collected 93 items - -build/unit_tests/test_codegen_helper.py::test_get_library_interpreter_method_return_snippet_vi PASSED -build/unit_tests/test_codegen_helper.py::test_get_library_interpreter_method_return_snippet_int PASSED -build/unit_tests/test_codegen_helper.py::test_get_library_interpreter_method_return_snippet_string PASSED -build/unit_tests/test_codegen_helper.py::test_get_library_interpreter_method_return_snippet_custom_type PASSED -build/unit_tests/test_codegen_helper.py::test_get_library_interpreter_method_return_snippet_enum PASSED -build/unit_tests/test_codegen_helper.py::test_get_library_interpreter_method_return_snippet_into PASSED -build/unit_tests/test_codegen_helper.py::test_get_grpc_interpreter_method_return_snippet_vi PASSED -build/unit_tests/test_codegen_helper.py::test_get_grpc_interpreter_method_return_snippet_int PASSED -build/unit_tests/test_codegen_helper.py::test_get_grpc_interpreter_method_return_snippet_string PASSED -build/unit_tests/test_codegen_helper.py::test_get_grpc_interpreter_method_return_snippet_custom_type PASSED -build/unit_tests/test_codegen_helper.py::test_get_grpc_interpreter_method_return_snippet_enum PASSED -build/unit_tests/test_codegen_helper.py::test_get_grpc_interpreter_method_return_snippet_bytes PASSED -build/unit_tests/test_codegen_helper.py::test_get_session_method_return_snippet PASSED -build/unit_tests/test_codegen_helper.py::test_get_session_method_return_snippet_non_numpy PASSED -build/unit_tests/test_codegen_helper.py::test_get_session_method_return_snippet_numpy PASSED -build/unit_tests/test_codegen_helper.py::test_get_enum_type_check_snippet PASSED -build/unit_tests/test_codegen_helper.py::test_get_buffer_parameters_for_size_parameter_none PASSED -build/unit_tests/test_codegen_helper.py::test_get_buffer_parameters_for_size_parameter PASSED -build/unit_tests/test_codegen_helper.py::test_get_ctype_variable_declaration_snippet_case_c010 PASSED -build/unit_tests/test_codegen_helper.py::test_get_ctype_variable_declaration_snippet_case_c020 PASSED -build/unit_tests/test_codegen_helper.py::test_get_ctype_variable_declaration_snippet_case_c030 PASSED -build/unit_tests/test_codegen_helper.py::test_get_ctype_variable_declaration_snippet_case_c050 PASSED -build/unit_tests/test_codegen_helper.py::test_get_ctype_variable_declaration_snippet_case_c060 PASSED -build/unit_tests/test_codegen_helper.py::test_get_ctype_variable_declaration_snippet_case_c070 PASSED -build/unit_tests/test_codegen_helper.py::test_get_ctype_variable_declaration_snippet_case_c080 PASSED -build/unit_tests/test_codegen_helper.py::test_get_ctype_variable_declaration_snippet_case_c090 PASSED -build/unit_tests/test_codegen_helper.py::test_get_ctype_variable_declaration_snippet_case_c100 PASSED -build/unit_tests/test_codegen_helper.py::test_get_ctype_variable_declaration_snippet_case_s110 PASSED -build/unit_tests/test_codegen_helper.py::test_get_ctype_variable_declaration_snippet_case_s120 PASSED -build/unit_tests/test_codegen_helper.py::test_get_ctype_variable_declaration_snippet_case_s130 PASSED -build/unit_tests/test_codegen_helper.py::test_get_ctype_variable_declaration_snippet_case_s150 PASSED -build/unit_tests/test_codegen_helper.py::test_get_ctype_variable_declaration_snippet_case_s160 PASSED -build/unit_tests/test_codegen_helper.py::test_get_ctype_variable_declaration_snippet_case_s170 PASSED -build/unit_tests/test_codegen_helper.py::test_get_ctype_variable_declaration_snippet_case_s180 PASSED -build/unit_tests/test_codegen_helper.py::test_get_ctype_variable_declaration_snippet_case_s2190 PASSED -build/unit_tests/test_codegen_helper.py::test_get_ctype_variable_declaration_snippet_case_s200 PASSED -build/unit_tests/test_codegen_helper.py::test_get_ctype_variable_declaration_snippet_case_s210 PASSED -build/unit_tests/test_codegen_helper.py::test_get_ctype_variable_declaration_snippet_case_s220 PASSED -build/unit_tests/test_codegen_helper.py::test_get_ctype_variable_declaration_snippet_case_b510 PASSED -build/unit_tests/test_codegen_helper.py::test_get_ctype_variable_declaration_snippet_case_b540 PASSED -build/unit_tests/test_codegen_helper.py::test_get_ctype_variable_declaration_snippet_case_b550_array PASSED -build/unit_tests/test_codegen_helper.py::test_get_ctype_variable_declaration_snippet_case_b550_list PASSED -build/unit_tests/test_codegen_helper.py::test_get_ctype_variable_declaration_snippet_case_b560 PASSED -build/unit_tests/test_codegen_helper.py::test_get_ctype_variable_declaration_snippet_case_b570 PASSED -build/unit_tests/test_codegen_helper.py::test_get_ctype_variable_declaration_snippet_case_b580_array PASSED -build/unit_tests/test_codegen_helper.py::test_get_ctype_variable_declaration_snippet_case_b590_array PASSED -build/unit_tests/test_codegen_helper.py::test_get_ctype_variable_declaration_snippet_case_b580_list PASSED -build/unit_tests/test_codegen_helper.py::test_get_ctype_variable_declaration_snippet_case_b590_list PASSED -build/unit_tests/test_codegen_helper.py::test_get_ctype_variable_declaration_snippet_case_b600 PASSED -build/unit_tests/test_codegen_helper.py::test_get_ctype_variable_declaration_snippet_case_b610_array PASSED -build/unit_tests/test_codegen_helper.py::test_get_ctype_variable_declaration_snippet_case_b620_array PASSED -build/unit_tests/test_codegen_helper.py::test_get_ctype_variable_declaration_snippet_case_b610_list PASSED -build/unit_tests/test_codegen_helper.py::test_get_ctype_variable_declaration_snippet_case_b620_list PASSED -build/unit_tests/test_codegen_helper.py::test_get_ctype_variable_declaration_snippet_bad_ivi_dance_step PASSED -build/unit_tests/test_codegen_helper.py::test_get_enum_value_snippet PASSED -build/unit_tests/test_documentation_helper.py::test_get_function_rst_default PASSED -build/unit_tests/test_documentation_helper.py::test_get_function_rst_numpy PASSED -build/unit_tests/test_documentation_helper.py::test_get_attribute_repeated_caps PASSED -build/unit_tests/test_documentation_helper.py::test_get_attribute_repeated_caps_with_conjunction PASSED -build/unit_tests/test_documentation_helper.py::test_module_supports_repeated_caps PASSED -build/unit_tests/test_documentation_helper.py::test_get_function_docstring_default PASSED -build/unit_tests/test_documentation_helper.py::test_get_function_docstring_numpy PASSED -build/unit_tests/test_documentation_helper.py::test_get_rst_header_snippet PASSED -build/unit_tests/test_documentation_helper.py::test_get_documentation_for_node_docstring PASSED -build/unit_tests/test_documentation_helper.py::test_get_rst_picture_reference PASSED -build/unit_tests/test_documentation_helper.py::test_square_up_tables PASSED -build/unit_tests/test_documentation_helper.py::test_add_notes_re_links PASSED -build/unit_tests/test_documentation_snippets.py::test_close_function_def_for_doc_note_not_list PASSED -build/unit_tests/test_documentation_snippets.py::test_close_function_def_for_doc_note_list PASSED -build/unit_tests/test_documentation_snippets.py::test_close_function_def_for_doc_no_note PASSED -build/unit_tests/test_documentation_snippets.py::test_initiate_function_def_for_doc_note_not_list PASSED -build/unit_tests/test_documentation_snippets.py::test_initiate_function_def_for_doc_note_list PASSED -build/unit_tests/test_documentation_snippets.py::test_initiate_function_def_for_doc_no_note PASSED -build/unit_tests/test_helper.py::test_get_development_status PASSED -build/unit_tests/test_helper.py::test_enum_uses_converter PASSED -build/unit_tests/test_metadata_add_all.py::test_add_functions_metadata_simple Couldn't find InitWithOptions init function -PASSED -build/unit_tests/test_metadata_add_all.py::test_add_attributes_metadata_simple PASSED -build/unit_tests/test_metadata_add_all.py::test_add_enums_metadata_simple PASSED -build/unit_tests/test_metadata_add_all.py::test_add_all_metadata_defaults Couldn't find InitWithOptions init function -PASSED -build/unit_tests/test_metadata_add_all.py::test_add_all_metadata Couldn't find InitWithOptions init function -PASSED -build/unit_tests/test_metadata_add_all.py::test_add_enum_codegen_method PASSED -build/unit_tests/test_metadata_add_all.py::test_add_enum_codegen_method_error PASSED -build/unit_tests/test_metadata_add_all.py::test_get_functions_that_use_enums PASSED -build/unit_tests/test_metadata_add_all.py::test_get_attributes_that_use_enums PASSED -build/unit_tests/test_metadata_add_all.py::test_get_least_restrictive_codegen_method PASSED -build/unit_tests/test_metadata_merge_dicts.py::test_merge_dict_second_is_empty PASSED -build/unit_tests/test_metadata_merge_dicts.py::test_merge_dict_key_exists PASSED -build/unit_tests/test_metadata_merge_dicts.py::test_merge_dict_recurse PASSED -build/unit_tests/test_metadata_merge_dicts.py::test_merge_dict_replace_in_list PASSED -build/unit_tests/test_metadata_merge_dicts.py::test_merge_dict_replace_in_dict_and_list PASSED -build/unit_tests/test_metadata_merge_dicts.py::test_merge_dict_with_regex PASSED -build/unit_tests/test_metadata_merge_dicts.py::test_merge_dict_with_regex_off PASSED -build/unit_tests/test_metadata_merge_dicts.py::test_merge_dict_top_level_key_missing PASSED - -============================== 93 passed in 0.60s ============================== -py312-build_test: commands[6]> coverage report -Name Stmts Miss Cover -------------------------------------------------------------- -build/helper/__init__.py 53 0 100% -build/helper/codegen_helper.py 307 50 84% -build/helper/documentation_helper.py 519 60 88% -build/helper/documentation_snippets.py 53 8 85% -build/helper/helper.py 52 11 79% -build/helper/metadata_add_all.py 434 82 81% -build/helper/metadata_filters.py 103 28 73% -build/helper/metadata_find.py 28 9 68% -build/helper/metadata_merge_dicts.py 43 9 79% -build/helper/parameter_usage_options.py 60 0 100% -------------------------------------------------------------- -TOTAL 1652 257 84% -py312-build_test: commands[7]> coverage xml -o codegen.xml -Wrote XML report to codegen.xml -py312-build_test: commands[8]> coverage html --directory=generated/htmlcov/unit_tests/codegen -Wrote HTML report to generated/htmlcov/unit_tests/codegen/index.html -py312-build_test: commands[9]> flake8 --config=./tox.ini '--per-file-ignores=build/unit_tests/*.py:F403,F405' build/ -py312-build_test: OK ✔ in 3.85 seconds -py312-codegen: commands[0]> python --version -Python 3.12.11 -py312-codegen: commands[1]> python -c 'import platform; print(platform.architecture())' -('64bit', 'ELF') -py312-codegen: commands[2]> python -m pip install --disable-pip-version-check --upgrade pip -Requirement already satisfied: pip in ./.tox/64/py312-codegen/lib/python3.12/site-packages (25.2) -py312-codegen: commands[3]> make - -Making nifake - Making dir: generated/nifake - Making dir: generated/nifake/nifake - Making dir: generated/nifake/nifake/unit_tests - Making dir: generated/nifake/log - Generating: generated/nifake/nifake/_attributes.py - Generating: generated/nifake/nifake/enums.py - Generating: generated/nifake/nifake/_library.py - Generating: generated/nifake/nifake/_library_interpreter.py - Generating: generated/nifake/nifake/_library_singleton.py - Generating: generated/nifake/nifake/session.py - Generating: generated/nifake/nifake/errors.py - Generating: generated/nifake/nifake/unit_tests/_mock_helper.py - Generating: generated/nifake/nifake/unit_tests/_matchers.py - Generating: generated/nifake/nifake/__init__.py - Generating: generated/nifake/nifake/_converters.py - Generating: generated/nifake/nifake/VERSION - Generating: generated/nifake/nifake/_grpc_stub_interpreter.py - Generating: generated/nifake/nifake/grpc_session_options.py - Generating: generated/nifake/nifake/nifake_pb2.py and nifake_pb2_grpc.py - Generating: generated/nifake/nifake/nidevice_pb2.py and nidevice_pb2_grpc.py - Generating: generated/nifake/nifake/session_pb2.py and session_pb2_grpc.py - Generating: generated/nifake/nifake/_complextype.py - Copying: generated/nifake/nifake/_visatype.py - Copying: generated/nifake/nifake/custom_struct.py - Copying: generated/nifake/nifake/custom_struct_typedef.py - Copying: generated/nifake/nifake/custom_struct_nested_typedef.py - Copying: generated/nifake/README.rst - Generating: generated/nifake/setup.py - Generating: generated/nifake/tox-system_tests.ini - Copying: generated/nifake/nifake/unit_tests/test_converters.py - Copying: generated/nifake/nifake/unit_tests/test_grpc.py - Copying: generated/nifake/nifake/unit_tests/test_library_interpreter.py - Copying: generated/nifake/nifake/unit_tests/test_library_singleton.py - Copying: generated/nifake/nifake/unit_tests/test_session.py - -Making nidcpower - Making dir: generated/nidcpower - Making dir: generated/nidcpower/nidcpower - Making dir: generated/nidcpower/nidcpower/unit_tests - Making dir: generated/nidcpower/log - Making dir: generated/examples - Generating: generated/nidcpower/nidcpower/_attributes.py - Generating: generated/nidcpower/nidcpower/enums.py - Generating: generated/nidcpower/nidcpower/_library.py - Generating: generated/nidcpower/nidcpower/_library_interpreter.py - Generating: generated/nidcpower/nidcpower/_library_singleton.py - Generating: generated/nidcpower/nidcpower/session.py -Warning: "ConfigureOutputEnabled" not found in function metadata. Typo? Generated code will be funky! -Warning: "reset" not found in function metadata. Typo? Generated code will be funky! -Warning: "ConfigureOutputEnabled" not found in function metadata. Typo? Generated code will be funky! -Warning: "ConfigureOutputEnabled" not found in function metadata. Typo? Generated code will be funky! - Generating: generated/nidcpower/nidcpower/errors.py - Generating: generated/nidcpower/nidcpower/unit_tests/_mock_helper.py - Generating: generated/nidcpower/nidcpower/unit_tests/_matchers.py - Generating: generated/nidcpower/nidcpower/__init__.py - Generating: generated/nidcpower/nidcpower/_converters.py - Generating: generated/nidcpower/nidcpower/VERSION - Generating: generated/nidcpower/nidcpower/_grpc_stub_interpreter.py - Generating: generated/nidcpower/nidcpower/grpc_session_options.py - Generating: generated/nidcpower/nidcpower/nidcpower_pb2.py and nidcpower_pb2_grpc.py - Generating: generated/nidcpower/nidcpower/nidevice_pb2.py and nidevice_pb2_grpc.py - Generating: generated/nidcpower/nidcpower/session_pb2.py and session_pb2_grpc.py - Copying: generated/nidcpower/nidcpower/_visatype.py - Copying: generated/nidcpower/nidcpower/lcr_load_compensation_spot.py - Copying: generated/nidcpower/nidcpower/lcr_measurement.py - Generating: docs/nidcpower/about_nidcpower.inc - Generating: docs/nidcpower/index.rst - Generating: docs/nidcpower/nidcpower.rst - Generating: docs/nidcpower/enums.rst - Generating: docs/nidcpower/examples.rst - Generating: docs/nidcpower/installation.inc - Generating: docs/nidcpower/status.inc - Generating: docs/nidcpower/class.rst -Warning: "ConfigureOutputEnabled" not found in function metadata. Typo? Generated code will be funky! -Warning: "reset" not found in function metadata. Typo? Generated code will be funky! -Warning: "ConfigureOutputEnabled" not found in function metadata. Typo? Generated code will be funky! - Generating: docs/nidcpower/toc.inc - Generating: docs/nidcpower/errors.rst - Generating: docs/nidcpower/rep_caps.rst - Generating: docs/nidcpower/grpc_session_options.rst - Creating: generated/nidcpower/README.rst - Generating: generated/nidcpower/setup.py - Generating: generated/nidcpower/tox-system_tests.ini - Zipping: generated/examples/nidcpower_examples.zip - zip warning: /home/rahur/nimipythonmyfork/nimi-python/generated/examples/nidcpower_examples.zip not found or empty - adding: nidcpower_advanced_sequence.py (deflated 66%) - adding: nidcpower_constant_resistance_and_constant_power.py (deflated 73%) - adding: nidcpower_lcr_source_ac_voltage.py (deflated 71%) - adding: nidcpower_measure_record.py (deflated 59%) - adding: nidcpower_sink_dc_current_into_electronic_load.py (deflated 74%) - adding: nidcpower_source_delay_measure.py (deflated 64%) - Copying: generated/nidcpower/nidcpower/unit_tests/test_nidcpower.py - Generating: docs/nidcpower/conf.py - Generating: docs/nidcpower/.readthedocs.yaml - -Making nidigital - Making dir: generated/nidigital - Making dir: generated/nidigital/nidigital - Making dir: generated/nidigital/nidigital/unit_tests - Making dir: generated/nidigital/log - Generating: generated/nidigital/nidigital/_attributes.py - Generating: generated/nidigital/nidigital/enums.py - Generating: generated/nidigital/nidigital/_library.py - Generating: generated/nidigital/nidigital/_library_interpreter.py - Generating: generated/nidigital/nidigital/_library_singleton.py - Generating: generated/nidigital/nidigital/session.py -Warning: "PPMU_ConfigureCurrentLevelRange" not found in function metadata. Typo? Generated code will be funky! -Warning: "PPMU_ConfigureCurrentLevelRange" not found in function metadata. Typo? Generated code will be funky! -Warning: "init" not found in function metadata. Typo? Generated code will be funky! -Warning: "init" not found in function metadata. Typo? Generated code will be funky! -Warning: "init" not found in function metadata. Typo? Generated code will be funky! -Warning: "init" not found in function metadata. Typo? Generated code will be funky! -Warning: "GetPatternPinIndexeswith" not found in function metadata. Typo? Generated code will be funky! -Warning: "GetChannelName" not found in function metadata. Typo? Generated code will be funky! -Warning: "SortSiteResultsViBoolean" not found in function metadata. Typo? Generated code will be funky! - Generating: generated/nidigital/nidigital/errors.py - Generating: generated/nidigital/nidigital/unit_tests/_mock_helper.py - Generating: generated/nidigital/nidigital/unit_tests/_matchers.py - Generating: generated/nidigital/nidigital/__init__.py - Generating: generated/nidigital/nidigital/_converters.py - Generating: generated/nidigital/nidigital/VERSION - Generating: generated/nidigital/nidigital/_grpc_stub_interpreter.py - Generating: generated/nidigital/nidigital/grpc_session_options.py - Generating: generated/nidigital/nidigital/nidigitalpattern_pb2.py and nidigitalpattern_pb2_grpc.py - Generating: generated/nidigital/nidigital/nidevice_pb2.py and nidevice_pb2_grpc.py - Generating: generated/nidigital/nidigital/session_pb2.py and session_pb2_grpc.py - Copying: generated/nidigital/nidigital/_visatype.py - Copying: generated/nidigital/nidigital/history_ram_cycle_information.py - Generating: docs/nidigital/about_nidigital.inc - Generating: docs/nidigital/index.rst - Generating: docs/nidigital/nidigital.rst - Generating: docs/nidigital/enums.rst - Generating: docs/nidigital/examples.rst - Generating: docs/nidigital/installation.inc - Generating: docs/nidigital/status.inc - Generating: docs/nidigital/class.rst -Warning: "PPMU_ConfigureCurrentLevelRange" not found in function metadata. Typo? Generated code will be funky! -Warning: "init" not found in function metadata. Typo? Generated code will be funky! -Warning: "init" not found in function metadata. Typo? Generated code will be funky! - Generating: docs/nidigital/toc.inc - Generating: docs/nidigital/errors.rst - Generating: docs/nidigital/rep_caps.rst -ROOT: [6190] KeyboardInterrupt - teardown started -ROOT: interrupt tox environment: py312-codegen -py312-codegen: exit -2 (16.73 seconds) /home/rahur/nimipythonmyfork/nimi-python> make pid=6521 - py312-build_test: OK (3.85=setup[0.04]+cmd[0.01,0.06,0.68,0.17,0.91,0.97,0.15,0.17,0.30,0.40] seconds) - py312-codegen: FAIL code -2 (17.53=setup[0.01]+cmd[0.00,0.04,0.75,16.73] seconds) - py312-installers: FAIL code -2 (0.01 seconds) - py39-test: FAIL code -2 (0.01 seconds) - py310-test: FAIL code -2 (0.01 seconds) - py311-test: FAIL code -2 (0.01 seconds) - py312-test: FAIL code -2 (0.01 seconds) - py313-test: FAIL code -2 (0.01 seconds) - py312-flake8: FAIL code -2 (0.01 seconds) - py312-docs: FAIL code -2 (0.01 seconds) - py312-pkg: FAIL code -2 (0.01 seconds) - evaluation failed :( (21.43 seconds) diff --git a/src/nirfsg/metadata/functions.py b/src/nirfsg/metadata/functions.py index 848d4a259..71bc52190 100644 --- a/src/nirfsg/metadata/functions.py +++ b/src/nirfsg/metadata/functions.py @@ -2998,44 +2998,6 @@ ], 'returns': 'ViStatus' }, - 'GetScript': { - 'documentation': { - 'description': 'TBD' - }, - 'included_in_proto': True, - 'parameters': [ - { - 'direction': 'in', - 'name': 'vi', - 'type': 'ViSession' - }, - { - 'direction': 'in', - 'name': 'scriptName', - 'type': 'ViConstString' - }, - { - 'direction': 'out', - 'name': 'script', - 'size': { - 'mechanism': 'ivi-dance', - 'value': 'bufferSize' - }, - 'type': 'ViChar[]' - }, - { - 'direction': 'in', - 'name': 'bufferSize', - 'type': 'ViInt32' - }, - { - 'direction': 'out', - 'name': 'actualBufferSize', - 'type': 'ViInt32' - } - ], - 'returns': 'ViStatus' - }, 'GetSelfCalibrationDateAndTime': { 'codegen_method': 'private', 'documentation': { From 4d3bfe4f1ccdcb314a97a644cf1b18b4199c4254 Mon Sep 17 00:00:00 2001 From: Rahul R Date: Thu, 11 Sep 2025 09:34:10 +0530 Subject: [PATCH 04/10] Files generated from nirfsg AzDo exports --- docs/nirfsg/class.rst | 38 +++++++++++++++++++ generated/nirfsg/nirfsg/_library.py | 9 +++++ .../nirfsg/nirfsg/_library_interpreter.py | 14 +++++++ generated/nirfsg/nirfsg/session.py | 19 ++++++++++ .../nirfsg/nirfsg/unit_tests/_mock_helper.py | 22 +++++++++++ src/nirfsg/metadata/functions.py | 38 +++++++++++++++++++ 6 files changed, 140 insertions(+) diff --git a/docs/nirfsg/class.rst b/docs/nirfsg/class.rst index 2a8b77564..e8532abf1 100644 --- a/docs/nirfsg/class.rst +++ b/docs/nirfsg/class.rst @@ -1803,6 +1803,44 @@ get_max_settable_power +get_script +---------- + + .. py:currentmodule:: nirfsg.Session + + .. py:method:: get_script(script_name) + + TBD + + + + + + :param script_name: + + + + + + :type script_name: str + + :rtype: tuple (script, actual_buffer_size) + + WHERE + + script (str): + + + + + + actual_buffer_size (int): + + + + + + get_self_calibration_last_date_and_time --------------------------------------- diff --git a/generated/nirfsg/nirfsg/_library.py b/generated/nirfsg/nirfsg/_library.py index b6ffcca37..0a81cce0b 100644 --- a/generated/nirfsg/nirfsg/_library.py +++ b/generated/nirfsg/nirfsg/_library.py @@ -72,6 +72,7 @@ def __init__(self, ctypes_library): self.niRFSG_GetError_cfunc = None self.niRFSG_GetExternalCalibrationLastDateAndTime_cfunc = None self.niRFSG_GetMaxSettablePower_cfunc = None + self.niRFSG_GetScript_cfunc = None self.niRFSG_GetSelfCalibrationDateAndTime_cfunc = None self.niRFSG_GetSelfCalibrationTemperature_cfunc = None self.niRFSG_GetTerminalName_cfunc = None @@ -539,6 +540,14 @@ def niRFSG_GetMaxSettablePower(self, vi, value): # noqa: N802 self.niRFSG_GetMaxSettablePower_cfunc.restype = ViStatus # noqa: F405 return self.niRFSG_GetMaxSettablePower_cfunc(vi, value) + def niRFSG_GetScript(self, vi, script_name, script, buffer_size, actual_buffer_size): # noqa: N802 + with self._func_lock: + if self.niRFSG_GetScript_cfunc is None: + self.niRFSG_GetScript_cfunc = self._get_library_function('niRFSG_GetScript') + self.niRFSG_GetScript_cfunc.argtypes = [ViSession, ctypes.POINTER(ViChar), ctypes.POINTER(ViChar), ViInt32, ctypes.POINTER(ViInt32)] # noqa: F405 + self.niRFSG_GetScript_cfunc.restype = ViStatus # noqa: F405 + return self.niRFSG_GetScript_cfunc(vi, script_name, script, buffer_size, actual_buffer_size) + def niRFSG_GetSelfCalibrationDateAndTime(self, vi, module, year, month, day, hour, minute, second): # noqa: N802 with self._func_lock: if self.niRFSG_GetSelfCalibrationDateAndTime_cfunc is None: diff --git a/generated/nirfsg/nirfsg/_library_interpreter.py b/generated/nirfsg/nirfsg/_library_interpreter.py index 5ffb54000..402126648 100644 --- a/generated/nirfsg/nirfsg/_library_interpreter.py +++ b/generated/nirfsg/nirfsg/_library_interpreter.py @@ -535,6 +535,20 @@ def get_max_settable_power(self): # noqa: N802 errors.handle_error(self, error_code, ignore_warnings=False, is_error_handling=False) return float(value_ctype.value) + def get_script(self, script_name): # noqa: N802 + vi_ctype = _visatype.ViSession(self._vi) # case S110 + script_name_ctype = ctypes.create_string_buffer(script_name.encode(self._encoding)) # case C020 + script_ctype = None # case C050 + buffer_size_ctype = _visatype.ViInt32() # case S170 + actual_buffer_size_ctype = _visatype.ViInt32() # case S220 + error_code = self._library.niRFSG_GetScript(vi_ctype, script_name_ctype, script_ctype, buffer_size_ctype, None if actual_buffer_size_ctype is None else (ctypes.pointer(actual_buffer_size_ctype))) + errors.handle_error(self, error_code, ignore_warnings=True, is_error_handling=False) + buffer_size_ctype = _visatype.ViInt32(error_code) # case S180 + script_ctype = (_visatype.ViChar * buffer_size_ctype.value)() # case C060 + error_code = self._library.niRFSG_GetScript(vi_ctype, script_name_ctype, script_ctype, buffer_size_ctype, None if actual_buffer_size_ctype is None else (ctypes.pointer(actual_buffer_size_ctype))) + errors.handle_error(self, error_code, ignore_warnings=False, is_error_handling=False) + return script_ctype.value.decode(self._encoding), int(actual_buffer_size_ctype.value) + def get_self_calibration_date_and_time(self, module): # noqa: N802 vi_ctype = _visatype.ViSession(self._vi) # case S110 module_ctype = _visatype.ViInt32(module.value) # case S130 diff --git a/generated/nirfsg/nirfsg/session.py b/generated/nirfsg/nirfsg/session.py index d6da7438e..ccd876411 100644 --- a/generated/nirfsg/nirfsg/session.py +++ b/generated/nirfsg/nirfsg/session.py @@ -7477,6 +7477,25 @@ def get_max_settable_power(self): value = self._interpreter.get_max_settable_power() return value + @ivi_synchronized + def get_script(self, script_name): + r'''get_script + + TBD + + Args: + script_name (str): + + + Returns: + script (str): + + actual_buffer_size (int): + + ''' + script, actual_buffer_size = self._interpreter.get_script(script_name) + return script, actual_buffer_size + @ivi_synchronized def _get_self_calibration_date_and_time(self, module): r'''_get_self_calibration_date_and_time diff --git a/generated/nirfsg/nirfsg/unit_tests/_mock_helper.py b/generated/nirfsg/nirfsg/unit_tests/_mock_helper.py index 2b25158b2..53e19beeb 100644 --- a/generated/nirfsg/nirfsg/unit_tests/_mock_helper.py +++ b/generated/nirfsg/nirfsg/unit_tests/_mock_helper.py @@ -149,6 +149,10 @@ def __init__(self): self._defaults['GetMaxSettablePower'] = {} self._defaults['GetMaxSettablePower']['return'] = 0 self._defaults['GetMaxSettablePower']['value'] = None + self._defaults['GetScript'] = {} + self._defaults['GetScript']['return'] = 0 + self._defaults['GetScript']['actualBufferSize'] = None + self._defaults['GetScript']['script'] = None self._defaults['GetSelfCalibrationDateAndTime'] = {} self._defaults['GetSelfCalibrationDateAndTime']['return'] = 0 self._defaults['GetSelfCalibrationDateAndTime']['year'] = None @@ -686,6 +690,22 @@ def niRFSG_GetMaxSettablePower(self, vi, value): # noqa: N802 value.contents.value = self._defaults['GetMaxSettablePower']['value'] return self._defaults['GetMaxSettablePower']['return'] + def niRFSG_GetScript(self, vi, script_name, script, buffer_size, actual_buffer_size): # noqa: N802 + if self._defaults['GetScript']['return'] != 0: + return self._defaults['GetScript']['return'] + # actual_buffer_size + if self._defaults['GetScript']['actualBufferSize'] is None: + raise MockFunctionCallError("niRFSG_GetScript", param='actualBufferSize') + if actual_buffer_size is not None: + actual_buffer_size.contents.value = self._defaults['GetScript']['actualBufferSize'] + # script + if self._defaults['GetScript']['script'] is None: + raise MockFunctionCallError("niRFSG_GetScript", param='script') + if buffer_size.value == 0: + return len(self._defaults['GetScript']['script']) + script.value = self._defaults['GetScript']['script'].encode('ascii') + return self._defaults['GetScript']['return'] + def niRFSG_GetSelfCalibrationDateAndTime(self, vi, module, year, month, day, hour, minute, second): # noqa: N802 if self._defaults['GetSelfCalibrationDateAndTime']['return'] != 0: return self._defaults['GetSelfCalibrationDateAndTime']['return'] @@ -1154,6 +1174,8 @@ def set_side_effects_and_return_values(self, mock_library): mock_library.niRFSG_GetExternalCalibrationLastDateAndTime.return_value = 0 mock_library.niRFSG_GetMaxSettablePower.side_effect = MockFunctionCallError("niRFSG_GetMaxSettablePower") mock_library.niRFSG_GetMaxSettablePower.return_value = 0 + mock_library.niRFSG_GetScript.side_effect = MockFunctionCallError("niRFSG_GetScript") + mock_library.niRFSG_GetScript.return_value = 0 mock_library.niRFSG_GetSelfCalibrationDateAndTime.side_effect = MockFunctionCallError("niRFSG_GetSelfCalibrationDateAndTime") mock_library.niRFSG_GetSelfCalibrationDateAndTime.return_value = 0 mock_library.niRFSG_GetSelfCalibrationTemperature.side_effect = MockFunctionCallError("niRFSG_GetSelfCalibrationTemperature") diff --git a/src/nirfsg/metadata/functions.py b/src/nirfsg/metadata/functions.py index 71bc52190..848d4a259 100644 --- a/src/nirfsg/metadata/functions.py +++ b/src/nirfsg/metadata/functions.py @@ -2998,6 +2998,44 @@ ], 'returns': 'ViStatus' }, + 'GetScript': { + 'documentation': { + 'description': 'TBD' + }, + 'included_in_proto': True, + 'parameters': [ + { + 'direction': 'in', + 'name': 'vi', + 'type': 'ViSession' + }, + { + 'direction': 'in', + 'name': 'scriptName', + 'type': 'ViConstString' + }, + { + 'direction': 'out', + 'name': 'script', + 'size': { + 'mechanism': 'ivi-dance', + 'value': 'bufferSize' + }, + 'type': 'ViChar[]' + }, + { + 'direction': 'in', + 'name': 'bufferSize', + 'type': 'ViInt32' + }, + { + 'direction': 'out', + 'name': 'actualBufferSize', + 'type': 'ViInt32' + } + ], + 'returns': 'ViStatus' + }, 'GetSelfCalibrationDateAndTime': { 'codegen_method': 'private', 'documentation': { From 7c50184bd9d76a1f28f59ad3d2835796831efcc9 Mon Sep 17 00:00:00 2001 From: Rahul R Date: Thu, 11 Sep 2025 11:31:46 +0530 Subject: [PATCH 05/10] Matching the NiRFSG Metadata --- docs/nirfsg/class.rst | 38 ------------------- generated/nirfsg/nirfsg/_library.py | 9 ----- .../nirfsg/nirfsg/_library_interpreter.py | 14 ------- generated/nirfsg/nirfsg/session.py | 19 ---------- .../nirfsg/nirfsg/unit_tests/_mock_helper.py | 22 ----------- src/nirfsg/metadata/functions.py | 38 ------------------- 6 files changed, 140 deletions(-) diff --git a/docs/nirfsg/class.rst b/docs/nirfsg/class.rst index e8532abf1..2a8b77564 100644 --- a/docs/nirfsg/class.rst +++ b/docs/nirfsg/class.rst @@ -1803,44 +1803,6 @@ get_max_settable_power -get_script ----------- - - .. py:currentmodule:: nirfsg.Session - - .. py:method:: get_script(script_name) - - TBD - - - - - - :param script_name: - - - - - - :type script_name: str - - :rtype: tuple (script, actual_buffer_size) - - WHERE - - script (str): - - - - - - actual_buffer_size (int): - - - - - - get_self_calibration_last_date_and_time --------------------------------------- diff --git a/generated/nirfsg/nirfsg/_library.py b/generated/nirfsg/nirfsg/_library.py index 0a81cce0b..b6ffcca37 100644 --- a/generated/nirfsg/nirfsg/_library.py +++ b/generated/nirfsg/nirfsg/_library.py @@ -72,7 +72,6 @@ def __init__(self, ctypes_library): self.niRFSG_GetError_cfunc = None self.niRFSG_GetExternalCalibrationLastDateAndTime_cfunc = None self.niRFSG_GetMaxSettablePower_cfunc = None - self.niRFSG_GetScript_cfunc = None self.niRFSG_GetSelfCalibrationDateAndTime_cfunc = None self.niRFSG_GetSelfCalibrationTemperature_cfunc = None self.niRFSG_GetTerminalName_cfunc = None @@ -540,14 +539,6 @@ def niRFSG_GetMaxSettablePower(self, vi, value): # noqa: N802 self.niRFSG_GetMaxSettablePower_cfunc.restype = ViStatus # noqa: F405 return self.niRFSG_GetMaxSettablePower_cfunc(vi, value) - def niRFSG_GetScript(self, vi, script_name, script, buffer_size, actual_buffer_size): # noqa: N802 - with self._func_lock: - if self.niRFSG_GetScript_cfunc is None: - self.niRFSG_GetScript_cfunc = self._get_library_function('niRFSG_GetScript') - self.niRFSG_GetScript_cfunc.argtypes = [ViSession, ctypes.POINTER(ViChar), ctypes.POINTER(ViChar), ViInt32, ctypes.POINTER(ViInt32)] # noqa: F405 - self.niRFSG_GetScript_cfunc.restype = ViStatus # noqa: F405 - return self.niRFSG_GetScript_cfunc(vi, script_name, script, buffer_size, actual_buffer_size) - def niRFSG_GetSelfCalibrationDateAndTime(self, vi, module, year, month, day, hour, minute, second): # noqa: N802 with self._func_lock: if self.niRFSG_GetSelfCalibrationDateAndTime_cfunc is None: diff --git a/generated/nirfsg/nirfsg/_library_interpreter.py b/generated/nirfsg/nirfsg/_library_interpreter.py index 402126648..5ffb54000 100644 --- a/generated/nirfsg/nirfsg/_library_interpreter.py +++ b/generated/nirfsg/nirfsg/_library_interpreter.py @@ -535,20 +535,6 @@ def get_max_settable_power(self): # noqa: N802 errors.handle_error(self, error_code, ignore_warnings=False, is_error_handling=False) return float(value_ctype.value) - def get_script(self, script_name): # noqa: N802 - vi_ctype = _visatype.ViSession(self._vi) # case S110 - script_name_ctype = ctypes.create_string_buffer(script_name.encode(self._encoding)) # case C020 - script_ctype = None # case C050 - buffer_size_ctype = _visatype.ViInt32() # case S170 - actual_buffer_size_ctype = _visatype.ViInt32() # case S220 - error_code = self._library.niRFSG_GetScript(vi_ctype, script_name_ctype, script_ctype, buffer_size_ctype, None if actual_buffer_size_ctype is None else (ctypes.pointer(actual_buffer_size_ctype))) - errors.handle_error(self, error_code, ignore_warnings=True, is_error_handling=False) - buffer_size_ctype = _visatype.ViInt32(error_code) # case S180 - script_ctype = (_visatype.ViChar * buffer_size_ctype.value)() # case C060 - error_code = self._library.niRFSG_GetScript(vi_ctype, script_name_ctype, script_ctype, buffer_size_ctype, None if actual_buffer_size_ctype is None else (ctypes.pointer(actual_buffer_size_ctype))) - errors.handle_error(self, error_code, ignore_warnings=False, is_error_handling=False) - return script_ctype.value.decode(self._encoding), int(actual_buffer_size_ctype.value) - def get_self_calibration_date_and_time(self, module): # noqa: N802 vi_ctype = _visatype.ViSession(self._vi) # case S110 module_ctype = _visatype.ViInt32(module.value) # case S130 diff --git a/generated/nirfsg/nirfsg/session.py b/generated/nirfsg/nirfsg/session.py index ccd876411..d6da7438e 100644 --- a/generated/nirfsg/nirfsg/session.py +++ b/generated/nirfsg/nirfsg/session.py @@ -7477,25 +7477,6 @@ def get_max_settable_power(self): value = self._interpreter.get_max_settable_power() return value - @ivi_synchronized - def get_script(self, script_name): - r'''get_script - - TBD - - Args: - script_name (str): - - - Returns: - script (str): - - actual_buffer_size (int): - - ''' - script, actual_buffer_size = self._interpreter.get_script(script_name) - return script, actual_buffer_size - @ivi_synchronized def _get_self_calibration_date_and_time(self, module): r'''_get_self_calibration_date_and_time diff --git a/generated/nirfsg/nirfsg/unit_tests/_mock_helper.py b/generated/nirfsg/nirfsg/unit_tests/_mock_helper.py index 53e19beeb..2b25158b2 100644 --- a/generated/nirfsg/nirfsg/unit_tests/_mock_helper.py +++ b/generated/nirfsg/nirfsg/unit_tests/_mock_helper.py @@ -149,10 +149,6 @@ def __init__(self): self._defaults['GetMaxSettablePower'] = {} self._defaults['GetMaxSettablePower']['return'] = 0 self._defaults['GetMaxSettablePower']['value'] = None - self._defaults['GetScript'] = {} - self._defaults['GetScript']['return'] = 0 - self._defaults['GetScript']['actualBufferSize'] = None - self._defaults['GetScript']['script'] = None self._defaults['GetSelfCalibrationDateAndTime'] = {} self._defaults['GetSelfCalibrationDateAndTime']['return'] = 0 self._defaults['GetSelfCalibrationDateAndTime']['year'] = None @@ -690,22 +686,6 @@ def niRFSG_GetMaxSettablePower(self, vi, value): # noqa: N802 value.contents.value = self._defaults['GetMaxSettablePower']['value'] return self._defaults['GetMaxSettablePower']['return'] - def niRFSG_GetScript(self, vi, script_name, script, buffer_size, actual_buffer_size): # noqa: N802 - if self._defaults['GetScript']['return'] != 0: - return self._defaults['GetScript']['return'] - # actual_buffer_size - if self._defaults['GetScript']['actualBufferSize'] is None: - raise MockFunctionCallError("niRFSG_GetScript", param='actualBufferSize') - if actual_buffer_size is not None: - actual_buffer_size.contents.value = self._defaults['GetScript']['actualBufferSize'] - # script - if self._defaults['GetScript']['script'] is None: - raise MockFunctionCallError("niRFSG_GetScript", param='script') - if buffer_size.value == 0: - return len(self._defaults['GetScript']['script']) - script.value = self._defaults['GetScript']['script'].encode('ascii') - return self._defaults['GetScript']['return'] - def niRFSG_GetSelfCalibrationDateAndTime(self, vi, module, year, month, day, hour, minute, second): # noqa: N802 if self._defaults['GetSelfCalibrationDateAndTime']['return'] != 0: return self._defaults['GetSelfCalibrationDateAndTime']['return'] @@ -1174,8 +1154,6 @@ def set_side_effects_and_return_values(self, mock_library): mock_library.niRFSG_GetExternalCalibrationLastDateAndTime.return_value = 0 mock_library.niRFSG_GetMaxSettablePower.side_effect = MockFunctionCallError("niRFSG_GetMaxSettablePower") mock_library.niRFSG_GetMaxSettablePower.return_value = 0 - mock_library.niRFSG_GetScript.side_effect = MockFunctionCallError("niRFSG_GetScript") - mock_library.niRFSG_GetScript.return_value = 0 mock_library.niRFSG_GetSelfCalibrationDateAndTime.side_effect = MockFunctionCallError("niRFSG_GetSelfCalibrationDateAndTime") mock_library.niRFSG_GetSelfCalibrationDateAndTime.return_value = 0 mock_library.niRFSG_GetSelfCalibrationTemperature.side_effect = MockFunctionCallError("niRFSG_GetSelfCalibrationTemperature") diff --git a/src/nirfsg/metadata/functions.py b/src/nirfsg/metadata/functions.py index 848d4a259..71bc52190 100644 --- a/src/nirfsg/metadata/functions.py +++ b/src/nirfsg/metadata/functions.py @@ -2998,44 +2998,6 @@ ], 'returns': 'ViStatus' }, - 'GetScript': { - 'documentation': { - 'description': 'TBD' - }, - 'included_in_proto': True, - 'parameters': [ - { - 'direction': 'in', - 'name': 'vi', - 'type': 'ViSession' - }, - { - 'direction': 'in', - 'name': 'scriptName', - 'type': 'ViConstString' - }, - { - 'direction': 'out', - 'name': 'script', - 'size': { - 'mechanism': 'ivi-dance', - 'value': 'bufferSize' - }, - 'type': 'ViChar[]' - }, - { - 'direction': 'in', - 'name': 'bufferSize', - 'type': 'ViInt32' - }, - { - 'direction': 'out', - 'name': 'actualBufferSize', - 'type': 'ViInt32' - } - ], - 'returns': 'ViStatus' - }, 'GetSelfCalibrationDateAndTime': { 'codegen_method': 'private', 'documentation': { From 39f04a7c80ff9f47e2262cb6292677e0f374895b Mon Sep 17 00:00:00 2001 From: Rahul R Date: Thu, 11 Sep 2025 16:19:01 +0530 Subject: [PATCH 06/10] Making Changes Specific to Complex Changes --- build/helper/metadata_add_all.py | 10 +- build/templates/enums.py.mako | 4 +- .../session.py/numpy_write_method.py.mako | 4 +- build/unit_tests/test_metadata_add_all.py | 28 ++--- .../nifake/nifake/_grpc_stub_interpreter.py | 5 +- generated/nifake/nifake/enums.py | 4 +- generated/nifake/nifake/session.py | 1 - .../nifake/nifake/unit_tests/test_session.py | 4 +- generated/nirfsg/nirfsg/session.py | 4 +- src/nifake/metadata/enums.py | 20 +-- src/nifake/metadata/functions.py | 116 ++++++++++-------- src/nifake/unit_tests/test_session.py | 4 +- src/nirfsg/metadata/enums.py | 4 +- src/nirfsg/metadata/functions.py | 4 +- 14 files changed, 109 insertions(+), 103 deletions(-) diff --git a/build/helper/metadata_add_all.py b/build/helper/metadata_add_all.py index 69132a934..a46d69c39 100644 --- a/build/helper/metadata_add_all.py +++ b/build/helper/metadata_add_all.py @@ -132,10 +132,10 @@ def _add_complex_array_representation(parameter): parameter['complex_array_representation'] = None -def _add_array_dimensions(parameter): - '''Adds a array_dimensions parameter to the metadata for multi dimensional arrays''' - if 'array_dimensions' not in parameter: - parameter['array_dimensions'] = 1 +def _add_array_dimension(parameter): + '''Adds a array_dimension parameter to the metadata for multi dimensional arrays''' + if 'array_dimension' not in parameter: + parameter['array_dimension'] = 1 def _add_numpy_info(parameter, parameters, config): @@ -463,7 +463,7 @@ def add_all_function_metadata(functions, config): _add_ctypes_variable_name(p) _add_ctypes_type(p, config) _add_complex_array_representation(p) - _add_array_dimensions(p) + _add_array_dimension(p) _add_numpy_info(p, functions[f]['parameters'], config) _add_default_value_name(p) _add_default_value_name_for_docs(p, config['module_name']) diff --git a/build/templates/enums.py.mako b/build/templates/enums.py.mako index c6451214a..ce6d0e535 100644 --- a/build/templates/enums.py.mako +++ b/build/templates/enums.py.mako @@ -6,13 +6,13 @@ config = template_parameters['metadata'].config enums = config['enums'] %> from enum import Enum -% if any(enums[e].get('class', 'Enum') == 'IntFlag' for e in enums): +% if any(enums[e].get('enum_class', 'Enum') == 'IntFlag' for e in enums): from enum import IntFlag % endif % for enum_name in sorted(helper.filter_codegen_enums(enums)): -class ${enums[enum_name]['python_name']}(${enums[enum_name].get('class', 'Enum')}): +class ${enums[enum_name]['python_name']}(${enums[enum_name].get('enum_class', 'Enum')}): <% print_list = [] %>\ diff --git a/build/templates/session.py/numpy_write_method.py.mako b/build/templates/session.py/numpy_write_method.py.mako index e545e6a5c..36fa97aad 100644 --- a/build/templates/session.py/numpy_write_method.py.mako +++ b/build/templates/session.py/numpy_write_method.py.mako @@ -30,8 +30,8 @@ raise TypeError('${parameter['python_name']} must be in C-order') if ${parameter['python_name']}.dtype is not numpy.dtype('${parameter['numpy_type']}'): raise TypeError('${parameter['python_name']} must be numpy.ndarray of dtype=${parameter['numpy_type']}, is ' + str(${parameter['python_name']}.dtype)) - if ${parameter['python_name']}.ndim != ${parameter['array_dimensions']}: - raise TypeError('${parameter['python_name']} must be numpy.ndarray of dimension=${parameter['array_dimensions']}, is ' + str(${parameter['python_name']}.ndim)) + if ${parameter['python_name']}.ndim != ${parameter['array_dimension']}: + raise TypeError('${parameter['python_name']} must be numpy.ndarray of dimension=${parameter['array_dimension']}, is ' + str(${parameter['python_name']}.ndim)) % endfor % for p in helper.filter_parameters(parameters, helper.ParameterUsageOptions.INTERPRETER_METHOD_CALL): % if 'python_api_converter_name' in p: diff --git a/build/unit_tests/test_metadata_add_all.py b/build/unit_tests/test_metadata_add_all.py index fdbf8e128..83188140a 100644 --- a/build/unit_tests/test_metadata_add_all.py +++ b/build/unit_tests/test_metadata_add_all.py @@ -260,7 +260,7 @@ def _compare_dicts(actual, expected): 'use_in_python_api': True, 'python_name_or_default_for_init': 'vi', 'complex_array_representation': None, - 'array_dimensions': 1, + 'array_dimension': 1, }, { 'ctypes_method_call_snippet': 'name_ctype', @@ -295,7 +295,7 @@ def _compare_dicts(actual, expected): 'use_in_python_api': True, 'python_name_or_default_for_init': 'name', 'complex_array_representation': None, - 'array_dimensions': 1, + 'array_dimension': 1, }, { 'ctypes_method_call_snippet': 'pin_data_buffer_size_ctype', @@ -333,7 +333,7 @@ def _compare_dicts(actual, expected): 'use_in_python_api': False, 'python_name_or_default_for_init': 'pin_data_buffer_size', 'complex_array_representation': None, - 'array_dimensions': 1, + 'array_dimension': 1, }, { 'ctypes_method_call_snippet': 'python_code_input_ctype', @@ -371,7 +371,7 @@ def _compare_dicts(actual, expected): 'use_in_python_api': True, 'python_name_or_default_for_init': 'python_code_input', 'complex_array_representation': None, - 'array_dimensions': 1, + 'array_dimension': 1, }, { 'ctypes_method_call_snippet': 'None if actual_num_pin_data_ctype is None else (ctypes.pointer(actual_num_pin_data_ctype))', @@ -409,7 +409,7 @@ def _compare_dicts(actual, expected): 'use_in_python_api': False, 'python_name_or_default_for_init': 'actual_num_pin_data', 'complex_array_representation': None, - 'array_dimensions': 1, + 'array_dimension': 1, }, { 'ctypes_method_call_snippet': 'expected_pin_states_ctype', @@ -449,7 +449,7 @@ def _compare_dicts(actual, expected): 'use_in_python_api': True, 'python_name_or_default_for_init': 'expected_pin_states', 'complex_array_representation': None, - 'array_dimensions': 1, + 'array_dimension': 1, }, { 'ctypes_method_call_snippet': 'custom_type_input_ctype', @@ -487,7 +487,7 @@ def _compare_dicts(actual, expected): 'use_in_python_api': True, 'python_name_or_default_for_init': 'custom_type_input', 'complex_array_representation': None, - 'array_dimensions': 1, + 'array_dimension': 1, }, { 'ctypes_method_call_snippet': 'None if custom_type_output_ctype is None else (ctypes.pointer(custom_type_output_ctype))', @@ -525,7 +525,7 @@ def _compare_dicts(actual, expected): 'use_in_python_api': True, 'python_name_or_default_for_init': 'custom_type_output', 'complex_array_representation': None, - 'array_dimensions': 1, + 'array_dimension': 1, }, { 'ctypes_method_call_snippet': 'custom_type_without_struct_prefix_input_ctype', @@ -563,7 +563,7 @@ def _compare_dicts(actual, expected): 'use_in_python_api': True, 'python_name_or_default_for_init': 'custom_type_without_struct_prefix_input', 'complex_array_representation': None, - 'array_dimensions': 1, + 'array_dimension': 1, }, { 'ctypes_method_call_snippet': 'None if custom_type_without_struct_prefix_output_ctype is None else (ctypes.pointer(custom_type_without_struct_prefix_output_ctype))', @@ -601,7 +601,7 @@ def _compare_dicts(actual, expected): 'use_in_python_api': True, 'python_name_or_default_for_init': 'custom_type_without_struct_prefix_output', 'complex_array_representation': None, - 'array_dimensions': 1, + 'array_dimension': 1, }, ], 'python_name': 'make_a_foo', @@ -650,7 +650,7 @@ def _compare_dicts(actual, expected): 'use_in_python_api': True, 'python_name_or_default_for_init': 'vi', 'complex_array_representation': None, - 'array_dimensions': 1, + 'array_dimension': 1, }, { 'ctypes_method_call_snippet': 'status_ctype', @@ -688,7 +688,7 @@ def _compare_dicts(actual, expected): 'use_in_python_api': True, 'python_name_or_default_for_init': 'status', 'complex_array_representation': None, - 'array_dimensions': 1, + 'array_dimension': 1, }, { 'ctypes_method_call_snippet': 'data_buffer_size_ctype', @@ -726,7 +726,7 @@ def _compare_dicts(actual, expected): 'use_in_python_api': False, 'python_name_or_default_for_init': 'data_buffer_size', 'complex_array_representation': None, - 'array_dimensions': 1, + 'array_dimension': 1, }, { 'ctypes_method_call_snippet': 'data_ctype', @@ -765,7 +765,7 @@ def _compare_dicts(actual, expected): 'use_in_python_api': True, 'python_name_or_default_for_init': 'data', 'complex_array_representation': None, - 'array_dimensions': 1, + 'array_dimension': 1, }, ], 'documentation': { diff --git a/generated/nifake/nifake/_grpc_stub_interpreter.py b/generated/nifake/nifake/_grpc_stub_interpreter.py index ec0a51cc6..b9e7617da 100644 --- a/generated/nifake/nifake/_grpc_stub_interpreter.py +++ b/generated/nifake/nifake/_grpc_stub_interpreter.py @@ -148,7 +148,10 @@ def function_with_3d_numpy_array_of_numpy_complex128_input_parameter(self, multi raise NotImplementedError('numpy-specific methods are not supported over gRPC') def function_with_intflag_parameter(self, flag): # noqa: N802 - raise NotImplementedError('function_with_intflag_parameter is not supported over gRPC') + self._invoke( + self._client.FunctionWithIntflagParameter, + grpc_types.FunctionWithIntflagParameterRequest(vi=self._vi, flag=flag.value), + ) def function_with_repeated_capability_type(self, site_list): # noqa: N802 raise NotImplementedError('function_with_repeated_capability_type is not supported over gRPC') diff --git a/generated/nifake/nifake/enums.py b/generated/nifake/nifake/enums.py index cd042c61c..40ac0fe6b 100644 --- a/generated/nifake/nifake/enums.py +++ b/generated/nifake/nifake/enums.py @@ -63,9 +63,9 @@ class IntFlagEnum(IntFlag): r''' Flag B option. ''' - E = 1073741824 + C = 9223372036854775808 r''' - Flag E option. + Flag C option. ''' diff --git a/generated/nifake/nifake/session.py b/generated/nifake/nifake/session.py index 50ef8c809..d082ac3c9 100644 --- a/generated/nifake/nifake/session.py +++ b/generated/nifake/nifake/session.py @@ -945,7 +945,6 @@ def fetch_waveform_into(self, waveform_data): raise TypeError('waveform_data must be numpy.ndarray of dtype=float64, is ' + str(waveform_data.dtype)) self._interpreter.fetch_waveform_into(waveform_data) - @ivi_synchronized def function_with_3d_numpy_array_of_numpy_complex128_input_parameter(self, multidimensional_array): r'''function_with_3d_numpy_array_of_numpy_complex128_input_parameter diff --git a/generated/nifake/nifake/unit_tests/test_session.py b/generated/nifake/nifake/unit_tests/test_session.py index 9621e851b..17b6fd542 100644 --- a/generated/nifake/nifake/unit_tests/test_session.py +++ b/generated/nifake/nifake/unit_tests/test_session.py @@ -839,12 +839,12 @@ def test_return_timedeltas(self): self.patched_library_interpreter.return_list_of_durations_in_seconds.assert_called_once_with(len(time_values)) def test_with_valid_intflag_parameter(self): - flags = nifake.IntFlagEnum.E | nifake.IntFlagEnum.A + flags = nifake.IntFlagEnum.C | nifake.IntFlagEnum.A self.patched_library_interpreter.function_with_intflag_parameter.side_effect = None self.patched_library_interpreter.function_with_intflag_parameter.return_value = None with nifake.Session('dev1') as session: session.function_with_intflag_parameter(flags) - self.patched_library_interpreter.function_with_intflag_parameter.assert_called_once_with(1073741825) + self.patched_library_interpreter.function_with_intflag_parameter.assert_called_once_with(9223372036854775809) def test_with_intflag_parameter_invalid(self): invalid_flag = 5 diff --git a/generated/nirfsg/nirfsg/session.py b/generated/nirfsg/nirfsg/session.py index d6da7438e..e3e69586a 100644 --- a/generated/nirfsg/nirfsg/session.py +++ b/generated/nirfsg/nirfsg/session.py @@ -7077,8 +7077,8 @@ def _create_deembedding_sparameter_table_array(self, port, table_name, frequenci raise TypeError('sparameter_table must be in C-order') if sparameter_table.dtype is not numpy.dtype('complex128'): raise TypeError('sparameter_table must be numpy.ndarray of dtype=complex128, is ' + str(sparameter_table.dtype)) - if sparameter_table.ndim != 3: - raise TypeError('sparameter_table must be numpy.ndarray of dimension=3, is ' + str(sparameter_table.ndim)) + if sparameter_table.ndim != 1: + raise TypeError('sparameter_table must be numpy.ndarray of dimension=1, is ' + str(sparameter_table.ndim)) self._interpreter.create_deembedding_sparameter_table_array(port, table_name, frequencies, sparameter_table, sparameter_table_size, number_of_ports, sparameter_orientation) @ivi_synchronized diff --git a/src/nifake/metadata/enums.py b/src/nifake/metadata/enums.py index 4f2302c29..418878fc0 100644 --- a/src/nifake/metadata/enums.py +++ b/src/nifake/metadata/enums.py @@ -200,18 +200,6 @@ } ] }, - 'ExtCalParts': { - 'values': [ - { - 'name': 'NIFAKE_EXTCAL_PART1', - 'value': 1 - }, - { - 'name': 'NIFAKE_EXTCAL_PART2', - 'value': 2 - } - ] - }, 'FloatEnum': { 'values': [ { @@ -252,8 +240,8 @@ ] }, 'IntFlagEnum': { - 'class': 'IntFlag', 'codegen_method': 'public', + 'enum_class': 'IntFlag', 'values': [ { 'documentation': { @@ -271,10 +259,10 @@ }, { 'documentation': { - 'description': 'Flag E option.' + 'description': 'Flag C option.' }, - 'name': 'NIFAKE_VAL_FLAG_E', - 'value': 1073741824 + 'name': 'NIFAKE_VAL_FLAG_C', + 'value': 9223372036854775808 } ] }, diff --git a/src/nifake/metadata/functions.py b/src/nifake/metadata/functions.py index ccc106a89..1c932816b 100644 --- a/src/nifake/metadata/functions.py +++ b/src/nifake/metadata/functions.py @@ -348,52 +348,12 @@ ], 'returns': 'ViStatus' }, - 'FunctionWith3dNumpyArrayOfNumpyComplex128InputParameter': { - 'codegen_method': 'public', - 'documentation': { - 'description': 'Function that takes a 3D numpy array of numpy complex128 as an input parameter.' - }, - 'grpc_name': 'FunctionWith3DNumpyArrayOfNumpyComplex128InputParameter', - 'included_in_proto': False, - 'method_templates': [ - { - 'documentation_filename': 'numpy_method', - 'library_interpreter_filename': 'numpy_write_method', - 'method_python_name_suffix': '', - 'session_filename': 'numpy_write_method' - } - ], - 'parameters': [ - { - 'direction': 'in', - 'documentation': { - 'description': 'Identifies a particular instrument session.' - }, - 'name': 'vi', - 'type': 'ViSession' - }, - { - 'array_dimensions': 3, - 'complex_array_representation': 'complex_number_array', - 'direction': 'in', - 'documentation': { - 'description': 'Specifies the 3D array of numpy complex numbers to write.' - }, - 'name': 'multidimensionalArray', - 'numpy': True, - 'type': 'NIComplexNumber[]', - 'use_in_python_api': True - } - ], - 'python_name': 'function_with_3d_numpy_array_of_numpy_complex128_input_parameter', - 'returns': 'ViStatus' - }, 'FunctionWithIntflagParameter': { 'codegen_method': 'public', 'documentation': { 'description': "Calls a function that takes a flag parameter which can be OR'd from multiple enum values." }, - 'included_in_proto': False, + 'included_in_proto': True, 'parameters': [ { 'direction': 'in', @@ -409,6 +369,7 @@ 'description': 'A flag parameter that can be a combination (bitwise OR) of IntFlagEnum values.' }, 'enum': 'IntFlagEnum', + 'grpc_enum': None, 'name': 'flag', 'type': 'ViUInt64' } @@ -2864,10 +2825,10 @@ ], 'returns': 'ViStatus' }, - 'WriteWaveformNumpyComplex128': { + 'WriteWaveformNumpyComplex64': { 'codegen_method': 'public', 'documentation': { - 'description': 'A function that writes a waveform of numpy complex128 samples.' + 'description': 'A function that writes a waveform of numpy complex64 samples.' }, 'included_in_proto': False, 'method_templates': [ @@ -2885,7 +2846,9 @@ 'description': 'Identifies a particular instrument session.' }, 'name': 'vi', - 'type': 'ViSession' + 'type': 'ViSession', + 'use_array': False, + 'use_in_python_api': True }, { 'direction': 'in', @@ -2894,6 +2857,7 @@ }, 'name': 'numberOfSamples', 'type': 'ViInt32', + 'use_array': False, 'use_in_python_api': False }, { @@ -2908,18 +2872,19 @@ 'mechanism': 'len', 'value': 'numberOfSamples' }, - 'type': 'NIComplexNumber[]', + 'type': 'NIComplexNumberF32[]', 'use_in_python_api': True } ], 'returns': 'ViStatus' }, - 'WriteWaveformNumpyComplex64': { + 'WriteWaveformNumpyComplex128': { 'codegen_method': 'public', 'documentation': { - 'description': 'A function that writes a waveform of numpy complex64 samples.' + 'description': 'A function that writes a waveform of numpy complex128 samples.' }, 'included_in_proto': False, + 'is_error_handling': False, 'method_templates': [ { 'documentation_filename': 'numpy_method', @@ -2935,7 +2900,9 @@ 'description': 'Identifies a particular instrument session.' }, 'name': 'vi', - 'type': 'ViSession' + 'type': 'ViSession', + 'use_array': False, + 'use_in_python_api': True }, { 'direction': 'in', @@ -2944,6 +2911,7 @@ }, 'name': 'numberOfSamples', 'type': 'ViInt32', + 'use_array': False, 'use_in_python_api': False }, { @@ -2958,7 +2926,7 @@ 'mechanism': 'len', 'value': 'numberOfSamples' }, - 'type': 'NIComplexNumberF32[]', + 'type': 'NIComplexNumber[]', 'use_in_python_api': True } ], @@ -2970,6 +2938,7 @@ 'description': 'A function that writes a waveform of numpy complex i16 samples.' }, 'included_in_proto': False, + 'is_error_handling': False, 'method_templates': [ { 'documentation_filename': 'numpy_method', @@ -2985,7 +2954,9 @@ 'description': 'Identifies a particular instrument session.' }, 'name': 'vi', - 'type': 'ViSession' + 'type': 'ViSession', + 'use_array': False, + 'use_in_python_api': True }, { 'direction': 'in', @@ -2994,6 +2965,7 @@ }, 'name': 'numberOfSamples', 'type': 'ViInt32', + 'use_array': False, 'use_in_python_api': False }, { @@ -3014,6 +2986,50 @@ ], 'returns': 'ViStatus' }, + 'FunctionWith3dNumpyArrayOfNumpyComplex128InputParameter': { + 'codegen_method': 'public', + 'documentation': { + 'description': 'Function that takes a 3D numpy array of numpy complex128 as an input parameter.' + }, + 'included_in_proto': False, + 'is_error_handling': False, + 'method_templates': [ + { + 'documentation_filename': 'numpy_method', + 'library_interpreter_filename': 'numpy_write_method', + 'method_python_name_suffix': '', + 'session_filename': 'numpy_write_method' + } + ], + 'parameters': [ + { + 'direction': 'in', + 'name': 'vi', + 'documentation': { + 'description': 'Identifies a particular instrument session.' + }, + 'type': 'ViSession', + 'use_array': False, + 'use_in_python_api': True + }, + { + + 'complex_array_representation': 'complex_number_array', + 'direction': 'in', + 'documentation': { + 'description': 'Specifies the 3D array of numpy complex numbers to write.' + }, + 'name': 'multidimensionalArray', + 'type': 'NIComplexNumber[]', + 'numpy': True, + 'use_in_python_api': True, + 'array_dimension': 3 + }, + ], + 'python_name': 'function_with_3d_numpy_array_of_numpy_complex128_input_parameter', + 'returns': 'ViStatus', + 'use_session_lock': False + }, 'close': { 'codegen_method': 'private', 'documentation': { diff --git a/src/nifake/unit_tests/test_session.py b/src/nifake/unit_tests/test_session.py index 9621e851b..17b6fd542 100644 --- a/src/nifake/unit_tests/test_session.py +++ b/src/nifake/unit_tests/test_session.py @@ -839,12 +839,12 @@ def test_return_timedeltas(self): self.patched_library_interpreter.return_list_of_durations_in_seconds.assert_called_once_with(len(time_values)) def test_with_valid_intflag_parameter(self): - flags = nifake.IntFlagEnum.E | nifake.IntFlagEnum.A + flags = nifake.IntFlagEnum.C | nifake.IntFlagEnum.A self.patched_library_interpreter.function_with_intflag_parameter.side_effect = None self.patched_library_interpreter.function_with_intflag_parameter.return_value = None with nifake.Session('dev1') as session: session.function_with_intflag_parameter(flags) - self.patched_library_interpreter.function_with_intflag_parameter.assert_called_once_with(1073741825) + self.patched_library_interpreter.function_with_intflag_parameter.assert_called_once_with(9223372036854775809) def test_with_intflag_parameter_invalid(self): invalid_flag = 5 diff --git a/src/nirfsg/metadata/enums.py b/src/nirfsg/metadata/enums.py index 2e88e47c1..7425de90f 100644 --- a/src/nirfsg/metadata/enums.py +++ b/src/nirfsg/metadata/enums.py @@ -958,7 +958,7 @@ ] }, 'ResetWithOptionsStepsToOmit': { - 'class': 'IntFlag', + 'enum_class': 'IntFlag', 'values': [ { 'documentation': { @@ -1066,7 +1066,7 @@ ] }, 'SelfCalibrateRangeStepsToOmit': { - 'class': 'IntFlag', + 'enum_class': 'IntFlag', 'values': [ { 'documentation': { diff --git a/src/nirfsg/metadata/functions.py b/src/nirfsg/metadata/functions.py index 71bc52190..b098fc73b 100644 --- a/src/nirfsg/metadata/functions.py +++ b/src/nirfsg/metadata/functions.py @@ -2079,7 +2079,7 @@ 'use_in_python_api': True }, { - 'array_dimensions': 2, + 'array_dimension': 2, 'complex_array_representation': 'complex_number_array', 'direction': 'out', 'documentation': { @@ -2673,7 +2673,7 @@ 'use_in_python_api': True }, { - 'array_dimensions': 2, + 'array_dimension': 2, 'complex_array_representation': 'complex_number_array', 'direction': 'out', 'documentation': { From 02b200b2003d90b8e8e833339ab5dd732331bdc5 Mon Sep 17 00:00:00 2001 From: Rahul R Date: Thu, 11 Sep 2025 16:21:15 +0530 Subject: [PATCH 07/10] Revert "Making Changes Specific to Complex Changes" This reverts commit 39f04a7c80ff9f47e2262cb6292677e0f374895b. --- build/helper/metadata_add_all.py | 10 +- build/templates/enums.py.mako | 4 +- .../session.py/numpy_write_method.py.mako | 4 +- build/unit_tests/test_metadata_add_all.py | 28 ++--- .../nifake/nifake/_grpc_stub_interpreter.py | 5 +- generated/nifake/nifake/enums.py | 4 +- generated/nifake/nifake/session.py | 1 + .../nifake/nifake/unit_tests/test_session.py | 4 +- generated/nirfsg/nirfsg/session.py | 4 +- src/nifake/metadata/enums.py | 20 ++- src/nifake/metadata/functions.py | 116 ++++++++---------- src/nifake/unit_tests/test_session.py | 4 +- src/nirfsg/metadata/enums.py | 4 +- src/nirfsg/metadata/functions.py | 4 +- 14 files changed, 103 insertions(+), 109 deletions(-) diff --git a/build/helper/metadata_add_all.py b/build/helper/metadata_add_all.py index a46d69c39..69132a934 100644 --- a/build/helper/metadata_add_all.py +++ b/build/helper/metadata_add_all.py @@ -132,10 +132,10 @@ def _add_complex_array_representation(parameter): parameter['complex_array_representation'] = None -def _add_array_dimension(parameter): - '''Adds a array_dimension parameter to the metadata for multi dimensional arrays''' - if 'array_dimension' not in parameter: - parameter['array_dimension'] = 1 +def _add_array_dimensions(parameter): + '''Adds a array_dimensions parameter to the metadata for multi dimensional arrays''' + if 'array_dimensions' not in parameter: + parameter['array_dimensions'] = 1 def _add_numpy_info(parameter, parameters, config): @@ -463,7 +463,7 @@ def add_all_function_metadata(functions, config): _add_ctypes_variable_name(p) _add_ctypes_type(p, config) _add_complex_array_representation(p) - _add_array_dimension(p) + _add_array_dimensions(p) _add_numpy_info(p, functions[f]['parameters'], config) _add_default_value_name(p) _add_default_value_name_for_docs(p, config['module_name']) diff --git a/build/templates/enums.py.mako b/build/templates/enums.py.mako index ce6d0e535..c6451214a 100644 --- a/build/templates/enums.py.mako +++ b/build/templates/enums.py.mako @@ -6,13 +6,13 @@ config = template_parameters['metadata'].config enums = config['enums'] %> from enum import Enum -% if any(enums[e].get('enum_class', 'Enum') == 'IntFlag' for e in enums): +% if any(enums[e].get('class', 'Enum') == 'IntFlag' for e in enums): from enum import IntFlag % endif % for enum_name in sorted(helper.filter_codegen_enums(enums)): -class ${enums[enum_name]['python_name']}(${enums[enum_name].get('enum_class', 'Enum')}): +class ${enums[enum_name]['python_name']}(${enums[enum_name].get('class', 'Enum')}): <% print_list = [] %>\ diff --git a/build/templates/session.py/numpy_write_method.py.mako b/build/templates/session.py/numpy_write_method.py.mako index 36fa97aad..e545e6a5c 100644 --- a/build/templates/session.py/numpy_write_method.py.mako +++ b/build/templates/session.py/numpy_write_method.py.mako @@ -30,8 +30,8 @@ raise TypeError('${parameter['python_name']} must be in C-order') if ${parameter['python_name']}.dtype is not numpy.dtype('${parameter['numpy_type']}'): raise TypeError('${parameter['python_name']} must be numpy.ndarray of dtype=${parameter['numpy_type']}, is ' + str(${parameter['python_name']}.dtype)) - if ${parameter['python_name']}.ndim != ${parameter['array_dimension']}: - raise TypeError('${parameter['python_name']} must be numpy.ndarray of dimension=${parameter['array_dimension']}, is ' + str(${parameter['python_name']}.ndim)) + if ${parameter['python_name']}.ndim != ${parameter['array_dimensions']}: + raise TypeError('${parameter['python_name']} must be numpy.ndarray of dimension=${parameter['array_dimensions']}, is ' + str(${parameter['python_name']}.ndim)) % endfor % for p in helper.filter_parameters(parameters, helper.ParameterUsageOptions.INTERPRETER_METHOD_CALL): % if 'python_api_converter_name' in p: diff --git a/build/unit_tests/test_metadata_add_all.py b/build/unit_tests/test_metadata_add_all.py index 83188140a..fdbf8e128 100644 --- a/build/unit_tests/test_metadata_add_all.py +++ b/build/unit_tests/test_metadata_add_all.py @@ -260,7 +260,7 @@ def _compare_dicts(actual, expected): 'use_in_python_api': True, 'python_name_or_default_for_init': 'vi', 'complex_array_representation': None, - 'array_dimension': 1, + 'array_dimensions': 1, }, { 'ctypes_method_call_snippet': 'name_ctype', @@ -295,7 +295,7 @@ def _compare_dicts(actual, expected): 'use_in_python_api': True, 'python_name_or_default_for_init': 'name', 'complex_array_representation': None, - 'array_dimension': 1, + 'array_dimensions': 1, }, { 'ctypes_method_call_snippet': 'pin_data_buffer_size_ctype', @@ -333,7 +333,7 @@ def _compare_dicts(actual, expected): 'use_in_python_api': False, 'python_name_or_default_for_init': 'pin_data_buffer_size', 'complex_array_representation': None, - 'array_dimension': 1, + 'array_dimensions': 1, }, { 'ctypes_method_call_snippet': 'python_code_input_ctype', @@ -371,7 +371,7 @@ def _compare_dicts(actual, expected): 'use_in_python_api': True, 'python_name_or_default_for_init': 'python_code_input', 'complex_array_representation': None, - 'array_dimension': 1, + 'array_dimensions': 1, }, { 'ctypes_method_call_snippet': 'None if actual_num_pin_data_ctype is None else (ctypes.pointer(actual_num_pin_data_ctype))', @@ -409,7 +409,7 @@ def _compare_dicts(actual, expected): 'use_in_python_api': False, 'python_name_or_default_for_init': 'actual_num_pin_data', 'complex_array_representation': None, - 'array_dimension': 1, + 'array_dimensions': 1, }, { 'ctypes_method_call_snippet': 'expected_pin_states_ctype', @@ -449,7 +449,7 @@ def _compare_dicts(actual, expected): 'use_in_python_api': True, 'python_name_or_default_for_init': 'expected_pin_states', 'complex_array_representation': None, - 'array_dimension': 1, + 'array_dimensions': 1, }, { 'ctypes_method_call_snippet': 'custom_type_input_ctype', @@ -487,7 +487,7 @@ def _compare_dicts(actual, expected): 'use_in_python_api': True, 'python_name_or_default_for_init': 'custom_type_input', 'complex_array_representation': None, - 'array_dimension': 1, + 'array_dimensions': 1, }, { 'ctypes_method_call_snippet': 'None if custom_type_output_ctype is None else (ctypes.pointer(custom_type_output_ctype))', @@ -525,7 +525,7 @@ def _compare_dicts(actual, expected): 'use_in_python_api': True, 'python_name_or_default_for_init': 'custom_type_output', 'complex_array_representation': None, - 'array_dimension': 1, + 'array_dimensions': 1, }, { 'ctypes_method_call_snippet': 'custom_type_without_struct_prefix_input_ctype', @@ -563,7 +563,7 @@ def _compare_dicts(actual, expected): 'use_in_python_api': True, 'python_name_or_default_for_init': 'custom_type_without_struct_prefix_input', 'complex_array_representation': None, - 'array_dimension': 1, + 'array_dimensions': 1, }, { 'ctypes_method_call_snippet': 'None if custom_type_without_struct_prefix_output_ctype is None else (ctypes.pointer(custom_type_without_struct_prefix_output_ctype))', @@ -601,7 +601,7 @@ def _compare_dicts(actual, expected): 'use_in_python_api': True, 'python_name_or_default_for_init': 'custom_type_without_struct_prefix_output', 'complex_array_representation': None, - 'array_dimension': 1, + 'array_dimensions': 1, }, ], 'python_name': 'make_a_foo', @@ -650,7 +650,7 @@ def _compare_dicts(actual, expected): 'use_in_python_api': True, 'python_name_or_default_for_init': 'vi', 'complex_array_representation': None, - 'array_dimension': 1, + 'array_dimensions': 1, }, { 'ctypes_method_call_snippet': 'status_ctype', @@ -688,7 +688,7 @@ def _compare_dicts(actual, expected): 'use_in_python_api': True, 'python_name_or_default_for_init': 'status', 'complex_array_representation': None, - 'array_dimension': 1, + 'array_dimensions': 1, }, { 'ctypes_method_call_snippet': 'data_buffer_size_ctype', @@ -726,7 +726,7 @@ def _compare_dicts(actual, expected): 'use_in_python_api': False, 'python_name_or_default_for_init': 'data_buffer_size', 'complex_array_representation': None, - 'array_dimension': 1, + 'array_dimensions': 1, }, { 'ctypes_method_call_snippet': 'data_ctype', @@ -765,7 +765,7 @@ def _compare_dicts(actual, expected): 'use_in_python_api': True, 'python_name_or_default_for_init': 'data', 'complex_array_representation': None, - 'array_dimension': 1, + 'array_dimensions': 1, }, ], 'documentation': { diff --git a/generated/nifake/nifake/_grpc_stub_interpreter.py b/generated/nifake/nifake/_grpc_stub_interpreter.py index b9e7617da..ec0a51cc6 100644 --- a/generated/nifake/nifake/_grpc_stub_interpreter.py +++ b/generated/nifake/nifake/_grpc_stub_interpreter.py @@ -148,10 +148,7 @@ def function_with_3d_numpy_array_of_numpy_complex128_input_parameter(self, multi raise NotImplementedError('numpy-specific methods are not supported over gRPC') def function_with_intflag_parameter(self, flag): # noqa: N802 - self._invoke( - self._client.FunctionWithIntflagParameter, - grpc_types.FunctionWithIntflagParameterRequest(vi=self._vi, flag=flag.value), - ) + raise NotImplementedError('function_with_intflag_parameter is not supported over gRPC') def function_with_repeated_capability_type(self, site_list): # noqa: N802 raise NotImplementedError('function_with_repeated_capability_type is not supported over gRPC') diff --git a/generated/nifake/nifake/enums.py b/generated/nifake/nifake/enums.py index 40ac0fe6b..cd042c61c 100644 --- a/generated/nifake/nifake/enums.py +++ b/generated/nifake/nifake/enums.py @@ -63,9 +63,9 @@ class IntFlagEnum(IntFlag): r''' Flag B option. ''' - C = 9223372036854775808 + E = 1073741824 r''' - Flag C option. + Flag E option. ''' diff --git a/generated/nifake/nifake/session.py b/generated/nifake/nifake/session.py index d082ac3c9..50ef8c809 100644 --- a/generated/nifake/nifake/session.py +++ b/generated/nifake/nifake/session.py @@ -945,6 +945,7 @@ def fetch_waveform_into(self, waveform_data): raise TypeError('waveform_data must be numpy.ndarray of dtype=float64, is ' + str(waveform_data.dtype)) self._interpreter.fetch_waveform_into(waveform_data) + @ivi_synchronized def function_with_3d_numpy_array_of_numpy_complex128_input_parameter(self, multidimensional_array): r'''function_with_3d_numpy_array_of_numpy_complex128_input_parameter diff --git a/generated/nifake/nifake/unit_tests/test_session.py b/generated/nifake/nifake/unit_tests/test_session.py index 17b6fd542..9621e851b 100644 --- a/generated/nifake/nifake/unit_tests/test_session.py +++ b/generated/nifake/nifake/unit_tests/test_session.py @@ -839,12 +839,12 @@ def test_return_timedeltas(self): self.patched_library_interpreter.return_list_of_durations_in_seconds.assert_called_once_with(len(time_values)) def test_with_valid_intflag_parameter(self): - flags = nifake.IntFlagEnum.C | nifake.IntFlagEnum.A + flags = nifake.IntFlagEnum.E | nifake.IntFlagEnum.A self.patched_library_interpreter.function_with_intflag_parameter.side_effect = None self.patched_library_interpreter.function_with_intflag_parameter.return_value = None with nifake.Session('dev1') as session: session.function_with_intflag_parameter(flags) - self.patched_library_interpreter.function_with_intflag_parameter.assert_called_once_with(9223372036854775809) + self.patched_library_interpreter.function_with_intflag_parameter.assert_called_once_with(1073741825) def test_with_intflag_parameter_invalid(self): invalid_flag = 5 diff --git a/generated/nirfsg/nirfsg/session.py b/generated/nirfsg/nirfsg/session.py index e3e69586a..d6da7438e 100644 --- a/generated/nirfsg/nirfsg/session.py +++ b/generated/nirfsg/nirfsg/session.py @@ -7077,8 +7077,8 @@ def _create_deembedding_sparameter_table_array(self, port, table_name, frequenci raise TypeError('sparameter_table must be in C-order') if sparameter_table.dtype is not numpy.dtype('complex128'): raise TypeError('sparameter_table must be numpy.ndarray of dtype=complex128, is ' + str(sparameter_table.dtype)) - if sparameter_table.ndim != 1: - raise TypeError('sparameter_table must be numpy.ndarray of dimension=1, is ' + str(sparameter_table.ndim)) + if sparameter_table.ndim != 3: + raise TypeError('sparameter_table must be numpy.ndarray of dimension=3, is ' + str(sparameter_table.ndim)) self._interpreter.create_deembedding_sparameter_table_array(port, table_name, frequencies, sparameter_table, sparameter_table_size, number_of_ports, sparameter_orientation) @ivi_synchronized diff --git a/src/nifake/metadata/enums.py b/src/nifake/metadata/enums.py index 418878fc0..4f2302c29 100644 --- a/src/nifake/metadata/enums.py +++ b/src/nifake/metadata/enums.py @@ -200,6 +200,18 @@ } ] }, + 'ExtCalParts': { + 'values': [ + { + 'name': 'NIFAKE_EXTCAL_PART1', + 'value': 1 + }, + { + 'name': 'NIFAKE_EXTCAL_PART2', + 'value': 2 + } + ] + }, 'FloatEnum': { 'values': [ { @@ -240,8 +252,8 @@ ] }, 'IntFlagEnum': { + 'class': 'IntFlag', 'codegen_method': 'public', - 'enum_class': 'IntFlag', 'values': [ { 'documentation': { @@ -259,10 +271,10 @@ }, { 'documentation': { - 'description': 'Flag C option.' + 'description': 'Flag E option.' }, - 'name': 'NIFAKE_VAL_FLAG_C', - 'value': 9223372036854775808 + 'name': 'NIFAKE_VAL_FLAG_E', + 'value': 1073741824 } ] }, diff --git a/src/nifake/metadata/functions.py b/src/nifake/metadata/functions.py index 1c932816b..ccc106a89 100644 --- a/src/nifake/metadata/functions.py +++ b/src/nifake/metadata/functions.py @@ -348,12 +348,52 @@ ], 'returns': 'ViStatus' }, + 'FunctionWith3dNumpyArrayOfNumpyComplex128InputParameter': { + 'codegen_method': 'public', + 'documentation': { + 'description': 'Function that takes a 3D numpy array of numpy complex128 as an input parameter.' + }, + 'grpc_name': 'FunctionWith3DNumpyArrayOfNumpyComplex128InputParameter', + 'included_in_proto': False, + 'method_templates': [ + { + 'documentation_filename': 'numpy_method', + 'library_interpreter_filename': 'numpy_write_method', + 'method_python_name_suffix': '', + 'session_filename': 'numpy_write_method' + } + ], + 'parameters': [ + { + 'direction': 'in', + 'documentation': { + 'description': 'Identifies a particular instrument session.' + }, + 'name': 'vi', + 'type': 'ViSession' + }, + { + 'array_dimensions': 3, + 'complex_array_representation': 'complex_number_array', + 'direction': 'in', + 'documentation': { + 'description': 'Specifies the 3D array of numpy complex numbers to write.' + }, + 'name': 'multidimensionalArray', + 'numpy': True, + 'type': 'NIComplexNumber[]', + 'use_in_python_api': True + } + ], + 'python_name': 'function_with_3d_numpy_array_of_numpy_complex128_input_parameter', + 'returns': 'ViStatus' + }, 'FunctionWithIntflagParameter': { 'codegen_method': 'public', 'documentation': { 'description': "Calls a function that takes a flag parameter which can be OR'd from multiple enum values." }, - 'included_in_proto': True, + 'included_in_proto': False, 'parameters': [ { 'direction': 'in', @@ -369,7 +409,6 @@ 'description': 'A flag parameter that can be a combination (bitwise OR) of IntFlagEnum values.' }, 'enum': 'IntFlagEnum', - 'grpc_enum': None, 'name': 'flag', 'type': 'ViUInt64' } @@ -2825,10 +2864,10 @@ ], 'returns': 'ViStatus' }, - 'WriteWaveformNumpyComplex64': { + 'WriteWaveformNumpyComplex128': { 'codegen_method': 'public', 'documentation': { - 'description': 'A function that writes a waveform of numpy complex64 samples.' + 'description': 'A function that writes a waveform of numpy complex128 samples.' }, 'included_in_proto': False, 'method_templates': [ @@ -2846,9 +2885,7 @@ 'description': 'Identifies a particular instrument session.' }, 'name': 'vi', - 'type': 'ViSession', - 'use_array': False, - 'use_in_python_api': True + 'type': 'ViSession' }, { 'direction': 'in', @@ -2857,7 +2894,6 @@ }, 'name': 'numberOfSamples', 'type': 'ViInt32', - 'use_array': False, 'use_in_python_api': False }, { @@ -2872,19 +2908,18 @@ 'mechanism': 'len', 'value': 'numberOfSamples' }, - 'type': 'NIComplexNumberF32[]', + 'type': 'NIComplexNumber[]', 'use_in_python_api': True } ], 'returns': 'ViStatus' }, - 'WriteWaveformNumpyComplex128': { + 'WriteWaveformNumpyComplex64': { 'codegen_method': 'public', 'documentation': { - 'description': 'A function that writes a waveform of numpy complex128 samples.' + 'description': 'A function that writes a waveform of numpy complex64 samples.' }, 'included_in_proto': False, - 'is_error_handling': False, 'method_templates': [ { 'documentation_filename': 'numpy_method', @@ -2900,9 +2935,7 @@ 'description': 'Identifies a particular instrument session.' }, 'name': 'vi', - 'type': 'ViSession', - 'use_array': False, - 'use_in_python_api': True + 'type': 'ViSession' }, { 'direction': 'in', @@ -2911,7 +2944,6 @@ }, 'name': 'numberOfSamples', 'type': 'ViInt32', - 'use_array': False, 'use_in_python_api': False }, { @@ -2926,7 +2958,7 @@ 'mechanism': 'len', 'value': 'numberOfSamples' }, - 'type': 'NIComplexNumber[]', + 'type': 'NIComplexNumberF32[]', 'use_in_python_api': True } ], @@ -2938,7 +2970,6 @@ 'description': 'A function that writes a waveform of numpy complex i16 samples.' }, 'included_in_proto': False, - 'is_error_handling': False, 'method_templates': [ { 'documentation_filename': 'numpy_method', @@ -2954,9 +2985,7 @@ 'description': 'Identifies a particular instrument session.' }, 'name': 'vi', - 'type': 'ViSession', - 'use_array': False, - 'use_in_python_api': True + 'type': 'ViSession' }, { 'direction': 'in', @@ -2965,7 +2994,6 @@ }, 'name': 'numberOfSamples', 'type': 'ViInt32', - 'use_array': False, 'use_in_python_api': False }, { @@ -2986,50 +3014,6 @@ ], 'returns': 'ViStatus' }, - 'FunctionWith3dNumpyArrayOfNumpyComplex128InputParameter': { - 'codegen_method': 'public', - 'documentation': { - 'description': 'Function that takes a 3D numpy array of numpy complex128 as an input parameter.' - }, - 'included_in_proto': False, - 'is_error_handling': False, - 'method_templates': [ - { - 'documentation_filename': 'numpy_method', - 'library_interpreter_filename': 'numpy_write_method', - 'method_python_name_suffix': '', - 'session_filename': 'numpy_write_method' - } - ], - 'parameters': [ - { - 'direction': 'in', - 'name': 'vi', - 'documentation': { - 'description': 'Identifies a particular instrument session.' - }, - 'type': 'ViSession', - 'use_array': False, - 'use_in_python_api': True - }, - { - - 'complex_array_representation': 'complex_number_array', - 'direction': 'in', - 'documentation': { - 'description': 'Specifies the 3D array of numpy complex numbers to write.' - }, - 'name': 'multidimensionalArray', - 'type': 'NIComplexNumber[]', - 'numpy': True, - 'use_in_python_api': True, - 'array_dimension': 3 - }, - ], - 'python_name': 'function_with_3d_numpy_array_of_numpy_complex128_input_parameter', - 'returns': 'ViStatus', - 'use_session_lock': False - }, 'close': { 'codegen_method': 'private', 'documentation': { diff --git a/src/nifake/unit_tests/test_session.py b/src/nifake/unit_tests/test_session.py index 17b6fd542..9621e851b 100644 --- a/src/nifake/unit_tests/test_session.py +++ b/src/nifake/unit_tests/test_session.py @@ -839,12 +839,12 @@ def test_return_timedeltas(self): self.patched_library_interpreter.return_list_of_durations_in_seconds.assert_called_once_with(len(time_values)) def test_with_valid_intflag_parameter(self): - flags = nifake.IntFlagEnum.C | nifake.IntFlagEnum.A + flags = nifake.IntFlagEnum.E | nifake.IntFlagEnum.A self.patched_library_interpreter.function_with_intflag_parameter.side_effect = None self.patched_library_interpreter.function_with_intflag_parameter.return_value = None with nifake.Session('dev1') as session: session.function_with_intflag_parameter(flags) - self.patched_library_interpreter.function_with_intflag_parameter.assert_called_once_with(9223372036854775809) + self.patched_library_interpreter.function_with_intflag_parameter.assert_called_once_with(1073741825) def test_with_intflag_parameter_invalid(self): invalid_flag = 5 diff --git a/src/nirfsg/metadata/enums.py b/src/nirfsg/metadata/enums.py index 7425de90f..2e88e47c1 100644 --- a/src/nirfsg/metadata/enums.py +++ b/src/nirfsg/metadata/enums.py @@ -958,7 +958,7 @@ ] }, 'ResetWithOptionsStepsToOmit': { - 'enum_class': 'IntFlag', + 'class': 'IntFlag', 'values': [ { 'documentation': { @@ -1066,7 +1066,7 @@ ] }, 'SelfCalibrateRangeStepsToOmit': { - 'enum_class': 'IntFlag', + 'class': 'IntFlag', 'values': [ { 'documentation': { diff --git a/src/nirfsg/metadata/functions.py b/src/nirfsg/metadata/functions.py index b098fc73b..71bc52190 100644 --- a/src/nirfsg/metadata/functions.py +++ b/src/nirfsg/metadata/functions.py @@ -2079,7 +2079,7 @@ 'use_in_python_api': True }, { - 'array_dimension': 2, + 'array_dimensions': 2, 'complex_array_representation': 'complex_number_array', 'direction': 'out', 'documentation': { @@ -2673,7 +2673,7 @@ 'use_in_python_api': True }, { - 'array_dimension': 2, + 'array_dimensions': 2, 'complex_array_representation': 'complex_number_array', 'direction': 'out', 'documentation': { From 096e3b34f119311446142bbfd04e290efcff4c10 Mon Sep 17 00:00:00 2001 From: Rahul R Date: Thu, 11 Sep 2025 17:03:48 +0530 Subject: [PATCH 08/10] Revert "Revert "Making Changes Specific to Complex Changes"" This reverts commit 02b200b2003d90b8e8e833339ab5dd732331bdc5. --- build/helper/metadata_add_all.py | 10 +- build/templates/enums.py.mako | 4 +- .../session.py/numpy_write_method.py.mako | 4 +- build/unit_tests/test_metadata_add_all.py | 28 ++--- .../nifake/nifake/_grpc_stub_interpreter.py | 5 +- generated/nifake/nifake/enums.py | 4 +- generated/nifake/nifake/session.py | 1 - .../nifake/nifake/unit_tests/test_session.py | 4 +- generated/nirfsg/nirfsg/session.py | 4 +- src/nifake/metadata/enums.py | 20 +-- src/nifake/metadata/functions.py | 116 ++++++++++-------- src/nifake/unit_tests/test_session.py | 4 +- src/nirfsg/metadata/enums.py | 4 +- src/nirfsg/metadata/functions.py | 4 +- 14 files changed, 109 insertions(+), 103 deletions(-) diff --git a/build/helper/metadata_add_all.py b/build/helper/metadata_add_all.py index 69132a934..a46d69c39 100644 --- a/build/helper/metadata_add_all.py +++ b/build/helper/metadata_add_all.py @@ -132,10 +132,10 @@ def _add_complex_array_representation(parameter): parameter['complex_array_representation'] = None -def _add_array_dimensions(parameter): - '''Adds a array_dimensions parameter to the metadata for multi dimensional arrays''' - if 'array_dimensions' not in parameter: - parameter['array_dimensions'] = 1 +def _add_array_dimension(parameter): + '''Adds a array_dimension parameter to the metadata for multi dimensional arrays''' + if 'array_dimension' not in parameter: + parameter['array_dimension'] = 1 def _add_numpy_info(parameter, parameters, config): @@ -463,7 +463,7 @@ def add_all_function_metadata(functions, config): _add_ctypes_variable_name(p) _add_ctypes_type(p, config) _add_complex_array_representation(p) - _add_array_dimensions(p) + _add_array_dimension(p) _add_numpy_info(p, functions[f]['parameters'], config) _add_default_value_name(p) _add_default_value_name_for_docs(p, config['module_name']) diff --git a/build/templates/enums.py.mako b/build/templates/enums.py.mako index c6451214a..ce6d0e535 100644 --- a/build/templates/enums.py.mako +++ b/build/templates/enums.py.mako @@ -6,13 +6,13 @@ config = template_parameters['metadata'].config enums = config['enums'] %> from enum import Enum -% if any(enums[e].get('class', 'Enum') == 'IntFlag' for e in enums): +% if any(enums[e].get('enum_class', 'Enum') == 'IntFlag' for e in enums): from enum import IntFlag % endif % for enum_name in sorted(helper.filter_codegen_enums(enums)): -class ${enums[enum_name]['python_name']}(${enums[enum_name].get('class', 'Enum')}): +class ${enums[enum_name]['python_name']}(${enums[enum_name].get('enum_class', 'Enum')}): <% print_list = [] %>\ diff --git a/build/templates/session.py/numpy_write_method.py.mako b/build/templates/session.py/numpy_write_method.py.mako index e545e6a5c..36fa97aad 100644 --- a/build/templates/session.py/numpy_write_method.py.mako +++ b/build/templates/session.py/numpy_write_method.py.mako @@ -30,8 +30,8 @@ raise TypeError('${parameter['python_name']} must be in C-order') if ${parameter['python_name']}.dtype is not numpy.dtype('${parameter['numpy_type']}'): raise TypeError('${parameter['python_name']} must be numpy.ndarray of dtype=${parameter['numpy_type']}, is ' + str(${parameter['python_name']}.dtype)) - if ${parameter['python_name']}.ndim != ${parameter['array_dimensions']}: - raise TypeError('${parameter['python_name']} must be numpy.ndarray of dimension=${parameter['array_dimensions']}, is ' + str(${parameter['python_name']}.ndim)) + if ${parameter['python_name']}.ndim != ${parameter['array_dimension']}: + raise TypeError('${parameter['python_name']} must be numpy.ndarray of dimension=${parameter['array_dimension']}, is ' + str(${parameter['python_name']}.ndim)) % endfor % for p in helper.filter_parameters(parameters, helper.ParameterUsageOptions.INTERPRETER_METHOD_CALL): % if 'python_api_converter_name' in p: diff --git a/build/unit_tests/test_metadata_add_all.py b/build/unit_tests/test_metadata_add_all.py index fdbf8e128..83188140a 100644 --- a/build/unit_tests/test_metadata_add_all.py +++ b/build/unit_tests/test_metadata_add_all.py @@ -260,7 +260,7 @@ def _compare_dicts(actual, expected): 'use_in_python_api': True, 'python_name_or_default_for_init': 'vi', 'complex_array_representation': None, - 'array_dimensions': 1, + 'array_dimension': 1, }, { 'ctypes_method_call_snippet': 'name_ctype', @@ -295,7 +295,7 @@ def _compare_dicts(actual, expected): 'use_in_python_api': True, 'python_name_or_default_for_init': 'name', 'complex_array_representation': None, - 'array_dimensions': 1, + 'array_dimension': 1, }, { 'ctypes_method_call_snippet': 'pin_data_buffer_size_ctype', @@ -333,7 +333,7 @@ def _compare_dicts(actual, expected): 'use_in_python_api': False, 'python_name_or_default_for_init': 'pin_data_buffer_size', 'complex_array_representation': None, - 'array_dimensions': 1, + 'array_dimension': 1, }, { 'ctypes_method_call_snippet': 'python_code_input_ctype', @@ -371,7 +371,7 @@ def _compare_dicts(actual, expected): 'use_in_python_api': True, 'python_name_or_default_for_init': 'python_code_input', 'complex_array_representation': None, - 'array_dimensions': 1, + 'array_dimension': 1, }, { 'ctypes_method_call_snippet': 'None if actual_num_pin_data_ctype is None else (ctypes.pointer(actual_num_pin_data_ctype))', @@ -409,7 +409,7 @@ def _compare_dicts(actual, expected): 'use_in_python_api': False, 'python_name_or_default_for_init': 'actual_num_pin_data', 'complex_array_representation': None, - 'array_dimensions': 1, + 'array_dimension': 1, }, { 'ctypes_method_call_snippet': 'expected_pin_states_ctype', @@ -449,7 +449,7 @@ def _compare_dicts(actual, expected): 'use_in_python_api': True, 'python_name_or_default_for_init': 'expected_pin_states', 'complex_array_representation': None, - 'array_dimensions': 1, + 'array_dimension': 1, }, { 'ctypes_method_call_snippet': 'custom_type_input_ctype', @@ -487,7 +487,7 @@ def _compare_dicts(actual, expected): 'use_in_python_api': True, 'python_name_or_default_for_init': 'custom_type_input', 'complex_array_representation': None, - 'array_dimensions': 1, + 'array_dimension': 1, }, { 'ctypes_method_call_snippet': 'None if custom_type_output_ctype is None else (ctypes.pointer(custom_type_output_ctype))', @@ -525,7 +525,7 @@ def _compare_dicts(actual, expected): 'use_in_python_api': True, 'python_name_or_default_for_init': 'custom_type_output', 'complex_array_representation': None, - 'array_dimensions': 1, + 'array_dimension': 1, }, { 'ctypes_method_call_snippet': 'custom_type_without_struct_prefix_input_ctype', @@ -563,7 +563,7 @@ def _compare_dicts(actual, expected): 'use_in_python_api': True, 'python_name_or_default_for_init': 'custom_type_without_struct_prefix_input', 'complex_array_representation': None, - 'array_dimensions': 1, + 'array_dimension': 1, }, { 'ctypes_method_call_snippet': 'None if custom_type_without_struct_prefix_output_ctype is None else (ctypes.pointer(custom_type_without_struct_prefix_output_ctype))', @@ -601,7 +601,7 @@ def _compare_dicts(actual, expected): 'use_in_python_api': True, 'python_name_or_default_for_init': 'custom_type_without_struct_prefix_output', 'complex_array_representation': None, - 'array_dimensions': 1, + 'array_dimension': 1, }, ], 'python_name': 'make_a_foo', @@ -650,7 +650,7 @@ def _compare_dicts(actual, expected): 'use_in_python_api': True, 'python_name_or_default_for_init': 'vi', 'complex_array_representation': None, - 'array_dimensions': 1, + 'array_dimension': 1, }, { 'ctypes_method_call_snippet': 'status_ctype', @@ -688,7 +688,7 @@ def _compare_dicts(actual, expected): 'use_in_python_api': True, 'python_name_or_default_for_init': 'status', 'complex_array_representation': None, - 'array_dimensions': 1, + 'array_dimension': 1, }, { 'ctypes_method_call_snippet': 'data_buffer_size_ctype', @@ -726,7 +726,7 @@ def _compare_dicts(actual, expected): 'use_in_python_api': False, 'python_name_or_default_for_init': 'data_buffer_size', 'complex_array_representation': None, - 'array_dimensions': 1, + 'array_dimension': 1, }, { 'ctypes_method_call_snippet': 'data_ctype', @@ -765,7 +765,7 @@ def _compare_dicts(actual, expected): 'use_in_python_api': True, 'python_name_or_default_for_init': 'data', 'complex_array_representation': None, - 'array_dimensions': 1, + 'array_dimension': 1, }, ], 'documentation': { diff --git a/generated/nifake/nifake/_grpc_stub_interpreter.py b/generated/nifake/nifake/_grpc_stub_interpreter.py index ec0a51cc6..b9e7617da 100644 --- a/generated/nifake/nifake/_grpc_stub_interpreter.py +++ b/generated/nifake/nifake/_grpc_stub_interpreter.py @@ -148,7 +148,10 @@ def function_with_3d_numpy_array_of_numpy_complex128_input_parameter(self, multi raise NotImplementedError('numpy-specific methods are not supported over gRPC') def function_with_intflag_parameter(self, flag): # noqa: N802 - raise NotImplementedError('function_with_intflag_parameter is not supported over gRPC') + self._invoke( + self._client.FunctionWithIntflagParameter, + grpc_types.FunctionWithIntflagParameterRequest(vi=self._vi, flag=flag.value), + ) def function_with_repeated_capability_type(self, site_list): # noqa: N802 raise NotImplementedError('function_with_repeated_capability_type is not supported over gRPC') diff --git a/generated/nifake/nifake/enums.py b/generated/nifake/nifake/enums.py index cd042c61c..40ac0fe6b 100644 --- a/generated/nifake/nifake/enums.py +++ b/generated/nifake/nifake/enums.py @@ -63,9 +63,9 @@ class IntFlagEnum(IntFlag): r''' Flag B option. ''' - E = 1073741824 + C = 9223372036854775808 r''' - Flag E option. + Flag C option. ''' diff --git a/generated/nifake/nifake/session.py b/generated/nifake/nifake/session.py index 50ef8c809..d082ac3c9 100644 --- a/generated/nifake/nifake/session.py +++ b/generated/nifake/nifake/session.py @@ -945,7 +945,6 @@ def fetch_waveform_into(self, waveform_data): raise TypeError('waveform_data must be numpy.ndarray of dtype=float64, is ' + str(waveform_data.dtype)) self._interpreter.fetch_waveform_into(waveform_data) - @ivi_synchronized def function_with_3d_numpy_array_of_numpy_complex128_input_parameter(self, multidimensional_array): r'''function_with_3d_numpy_array_of_numpy_complex128_input_parameter diff --git a/generated/nifake/nifake/unit_tests/test_session.py b/generated/nifake/nifake/unit_tests/test_session.py index 9621e851b..17b6fd542 100644 --- a/generated/nifake/nifake/unit_tests/test_session.py +++ b/generated/nifake/nifake/unit_tests/test_session.py @@ -839,12 +839,12 @@ def test_return_timedeltas(self): self.patched_library_interpreter.return_list_of_durations_in_seconds.assert_called_once_with(len(time_values)) def test_with_valid_intflag_parameter(self): - flags = nifake.IntFlagEnum.E | nifake.IntFlagEnum.A + flags = nifake.IntFlagEnum.C | nifake.IntFlagEnum.A self.patched_library_interpreter.function_with_intflag_parameter.side_effect = None self.patched_library_interpreter.function_with_intflag_parameter.return_value = None with nifake.Session('dev1') as session: session.function_with_intflag_parameter(flags) - self.patched_library_interpreter.function_with_intflag_parameter.assert_called_once_with(1073741825) + self.patched_library_interpreter.function_with_intflag_parameter.assert_called_once_with(9223372036854775809) def test_with_intflag_parameter_invalid(self): invalid_flag = 5 diff --git a/generated/nirfsg/nirfsg/session.py b/generated/nirfsg/nirfsg/session.py index d6da7438e..e3e69586a 100644 --- a/generated/nirfsg/nirfsg/session.py +++ b/generated/nirfsg/nirfsg/session.py @@ -7077,8 +7077,8 @@ def _create_deembedding_sparameter_table_array(self, port, table_name, frequenci raise TypeError('sparameter_table must be in C-order') if sparameter_table.dtype is not numpy.dtype('complex128'): raise TypeError('sparameter_table must be numpy.ndarray of dtype=complex128, is ' + str(sparameter_table.dtype)) - if sparameter_table.ndim != 3: - raise TypeError('sparameter_table must be numpy.ndarray of dimension=3, is ' + str(sparameter_table.ndim)) + if sparameter_table.ndim != 1: + raise TypeError('sparameter_table must be numpy.ndarray of dimension=1, is ' + str(sparameter_table.ndim)) self._interpreter.create_deembedding_sparameter_table_array(port, table_name, frequencies, sparameter_table, sparameter_table_size, number_of_ports, sparameter_orientation) @ivi_synchronized diff --git a/src/nifake/metadata/enums.py b/src/nifake/metadata/enums.py index 4f2302c29..418878fc0 100644 --- a/src/nifake/metadata/enums.py +++ b/src/nifake/metadata/enums.py @@ -200,18 +200,6 @@ } ] }, - 'ExtCalParts': { - 'values': [ - { - 'name': 'NIFAKE_EXTCAL_PART1', - 'value': 1 - }, - { - 'name': 'NIFAKE_EXTCAL_PART2', - 'value': 2 - } - ] - }, 'FloatEnum': { 'values': [ { @@ -252,8 +240,8 @@ ] }, 'IntFlagEnum': { - 'class': 'IntFlag', 'codegen_method': 'public', + 'enum_class': 'IntFlag', 'values': [ { 'documentation': { @@ -271,10 +259,10 @@ }, { 'documentation': { - 'description': 'Flag E option.' + 'description': 'Flag C option.' }, - 'name': 'NIFAKE_VAL_FLAG_E', - 'value': 1073741824 + 'name': 'NIFAKE_VAL_FLAG_C', + 'value': 9223372036854775808 } ] }, diff --git a/src/nifake/metadata/functions.py b/src/nifake/metadata/functions.py index ccc106a89..1c932816b 100644 --- a/src/nifake/metadata/functions.py +++ b/src/nifake/metadata/functions.py @@ -348,52 +348,12 @@ ], 'returns': 'ViStatus' }, - 'FunctionWith3dNumpyArrayOfNumpyComplex128InputParameter': { - 'codegen_method': 'public', - 'documentation': { - 'description': 'Function that takes a 3D numpy array of numpy complex128 as an input parameter.' - }, - 'grpc_name': 'FunctionWith3DNumpyArrayOfNumpyComplex128InputParameter', - 'included_in_proto': False, - 'method_templates': [ - { - 'documentation_filename': 'numpy_method', - 'library_interpreter_filename': 'numpy_write_method', - 'method_python_name_suffix': '', - 'session_filename': 'numpy_write_method' - } - ], - 'parameters': [ - { - 'direction': 'in', - 'documentation': { - 'description': 'Identifies a particular instrument session.' - }, - 'name': 'vi', - 'type': 'ViSession' - }, - { - 'array_dimensions': 3, - 'complex_array_representation': 'complex_number_array', - 'direction': 'in', - 'documentation': { - 'description': 'Specifies the 3D array of numpy complex numbers to write.' - }, - 'name': 'multidimensionalArray', - 'numpy': True, - 'type': 'NIComplexNumber[]', - 'use_in_python_api': True - } - ], - 'python_name': 'function_with_3d_numpy_array_of_numpy_complex128_input_parameter', - 'returns': 'ViStatus' - }, 'FunctionWithIntflagParameter': { 'codegen_method': 'public', 'documentation': { 'description': "Calls a function that takes a flag parameter which can be OR'd from multiple enum values." }, - 'included_in_proto': False, + 'included_in_proto': True, 'parameters': [ { 'direction': 'in', @@ -409,6 +369,7 @@ 'description': 'A flag parameter that can be a combination (bitwise OR) of IntFlagEnum values.' }, 'enum': 'IntFlagEnum', + 'grpc_enum': None, 'name': 'flag', 'type': 'ViUInt64' } @@ -2864,10 +2825,10 @@ ], 'returns': 'ViStatus' }, - 'WriteWaveformNumpyComplex128': { + 'WriteWaveformNumpyComplex64': { 'codegen_method': 'public', 'documentation': { - 'description': 'A function that writes a waveform of numpy complex128 samples.' + 'description': 'A function that writes a waveform of numpy complex64 samples.' }, 'included_in_proto': False, 'method_templates': [ @@ -2885,7 +2846,9 @@ 'description': 'Identifies a particular instrument session.' }, 'name': 'vi', - 'type': 'ViSession' + 'type': 'ViSession', + 'use_array': False, + 'use_in_python_api': True }, { 'direction': 'in', @@ -2894,6 +2857,7 @@ }, 'name': 'numberOfSamples', 'type': 'ViInt32', + 'use_array': False, 'use_in_python_api': False }, { @@ -2908,18 +2872,19 @@ 'mechanism': 'len', 'value': 'numberOfSamples' }, - 'type': 'NIComplexNumber[]', + 'type': 'NIComplexNumberF32[]', 'use_in_python_api': True } ], 'returns': 'ViStatus' }, - 'WriteWaveformNumpyComplex64': { + 'WriteWaveformNumpyComplex128': { 'codegen_method': 'public', 'documentation': { - 'description': 'A function that writes a waveform of numpy complex64 samples.' + 'description': 'A function that writes a waveform of numpy complex128 samples.' }, 'included_in_proto': False, + 'is_error_handling': False, 'method_templates': [ { 'documentation_filename': 'numpy_method', @@ -2935,7 +2900,9 @@ 'description': 'Identifies a particular instrument session.' }, 'name': 'vi', - 'type': 'ViSession' + 'type': 'ViSession', + 'use_array': False, + 'use_in_python_api': True }, { 'direction': 'in', @@ -2944,6 +2911,7 @@ }, 'name': 'numberOfSamples', 'type': 'ViInt32', + 'use_array': False, 'use_in_python_api': False }, { @@ -2958,7 +2926,7 @@ 'mechanism': 'len', 'value': 'numberOfSamples' }, - 'type': 'NIComplexNumberF32[]', + 'type': 'NIComplexNumber[]', 'use_in_python_api': True } ], @@ -2970,6 +2938,7 @@ 'description': 'A function that writes a waveform of numpy complex i16 samples.' }, 'included_in_proto': False, + 'is_error_handling': False, 'method_templates': [ { 'documentation_filename': 'numpy_method', @@ -2985,7 +2954,9 @@ 'description': 'Identifies a particular instrument session.' }, 'name': 'vi', - 'type': 'ViSession' + 'type': 'ViSession', + 'use_array': False, + 'use_in_python_api': True }, { 'direction': 'in', @@ -2994,6 +2965,7 @@ }, 'name': 'numberOfSamples', 'type': 'ViInt32', + 'use_array': False, 'use_in_python_api': False }, { @@ -3014,6 +2986,50 @@ ], 'returns': 'ViStatus' }, + 'FunctionWith3dNumpyArrayOfNumpyComplex128InputParameter': { + 'codegen_method': 'public', + 'documentation': { + 'description': 'Function that takes a 3D numpy array of numpy complex128 as an input parameter.' + }, + 'included_in_proto': False, + 'is_error_handling': False, + 'method_templates': [ + { + 'documentation_filename': 'numpy_method', + 'library_interpreter_filename': 'numpy_write_method', + 'method_python_name_suffix': '', + 'session_filename': 'numpy_write_method' + } + ], + 'parameters': [ + { + 'direction': 'in', + 'name': 'vi', + 'documentation': { + 'description': 'Identifies a particular instrument session.' + }, + 'type': 'ViSession', + 'use_array': False, + 'use_in_python_api': True + }, + { + + 'complex_array_representation': 'complex_number_array', + 'direction': 'in', + 'documentation': { + 'description': 'Specifies the 3D array of numpy complex numbers to write.' + }, + 'name': 'multidimensionalArray', + 'type': 'NIComplexNumber[]', + 'numpy': True, + 'use_in_python_api': True, + 'array_dimension': 3 + }, + ], + 'python_name': 'function_with_3d_numpy_array_of_numpy_complex128_input_parameter', + 'returns': 'ViStatus', + 'use_session_lock': False + }, 'close': { 'codegen_method': 'private', 'documentation': { diff --git a/src/nifake/unit_tests/test_session.py b/src/nifake/unit_tests/test_session.py index 9621e851b..17b6fd542 100644 --- a/src/nifake/unit_tests/test_session.py +++ b/src/nifake/unit_tests/test_session.py @@ -839,12 +839,12 @@ def test_return_timedeltas(self): self.patched_library_interpreter.return_list_of_durations_in_seconds.assert_called_once_with(len(time_values)) def test_with_valid_intflag_parameter(self): - flags = nifake.IntFlagEnum.E | nifake.IntFlagEnum.A + flags = nifake.IntFlagEnum.C | nifake.IntFlagEnum.A self.patched_library_interpreter.function_with_intflag_parameter.side_effect = None self.patched_library_interpreter.function_with_intflag_parameter.return_value = None with nifake.Session('dev1') as session: session.function_with_intflag_parameter(flags) - self.patched_library_interpreter.function_with_intflag_parameter.assert_called_once_with(1073741825) + self.patched_library_interpreter.function_with_intflag_parameter.assert_called_once_with(9223372036854775809) def test_with_intflag_parameter_invalid(self): invalid_flag = 5 diff --git a/src/nirfsg/metadata/enums.py b/src/nirfsg/metadata/enums.py index 2e88e47c1..7425de90f 100644 --- a/src/nirfsg/metadata/enums.py +++ b/src/nirfsg/metadata/enums.py @@ -958,7 +958,7 @@ ] }, 'ResetWithOptionsStepsToOmit': { - 'class': 'IntFlag', + 'enum_class': 'IntFlag', 'values': [ { 'documentation': { @@ -1066,7 +1066,7 @@ ] }, 'SelfCalibrateRangeStepsToOmit': { - 'class': 'IntFlag', + 'enum_class': 'IntFlag', 'values': [ { 'documentation': { diff --git a/src/nirfsg/metadata/functions.py b/src/nirfsg/metadata/functions.py index 71bc52190..b098fc73b 100644 --- a/src/nirfsg/metadata/functions.py +++ b/src/nirfsg/metadata/functions.py @@ -2079,7 +2079,7 @@ 'use_in_python_api': True }, { - 'array_dimensions': 2, + 'array_dimension': 2, 'complex_array_representation': 'complex_number_array', 'direction': 'out', 'documentation': { @@ -2673,7 +2673,7 @@ 'use_in_python_api': True }, { - 'array_dimensions': 2, + 'array_dimension': 2, 'complex_array_representation': 'complex_number_array', 'direction': 'out', 'documentation': { From 2bddbb80f29fa81ce5399c2876aa637c4ad01c1c Mon Sep 17 00:00:00 2001 From: Rahul R Date: Thu, 11 Sep 2025 17:15:16 +0530 Subject: [PATCH 09/10] Updating the generated session file --- generated/nirfsg/nirfsg/session.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/generated/nirfsg/nirfsg/session.py b/generated/nirfsg/nirfsg/session.py index e3e69586a..d6da7438e 100644 --- a/generated/nirfsg/nirfsg/session.py +++ b/generated/nirfsg/nirfsg/session.py @@ -7077,8 +7077,8 @@ def _create_deembedding_sparameter_table_array(self, port, table_name, frequenci raise TypeError('sparameter_table must be in C-order') if sparameter_table.dtype is not numpy.dtype('complex128'): raise TypeError('sparameter_table must be numpy.ndarray of dtype=complex128, is ' + str(sparameter_table.dtype)) - if sparameter_table.ndim != 1: - raise TypeError('sparameter_table must be numpy.ndarray of dimension=1, is ' + str(sparameter_table.ndim)) + if sparameter_table.ndim != 3: + raise TypeError('sparameter_table must be numpy.ndarray of dimension=3, is ' + str(sparameter_table.ndim)) self._interpreter.create_deembedding_sparameter_table_array(port, table_name, frequencies, sparameter_table, sparameter_table_size, number_of_ports, sparameter_orientation) @ivi_synchronized From b978a13f08d9d36f70ea47d00009e32b29924329 Mon Sep 17 00:00:00 2001 From: Rahul R Date: Mon, 15 Sep 2025 09:50:40 +0530 Subject: [PATCH 10/10] Minor fix in sparameter table parameter in metadata --- src/nirfsg/metadata/functions.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/nirfsg/metadata/functions.py b/src/nirfsg/metadata/functions.py index b098fc73b..e7940f49d 100644 --- a/src/nirfsg/metadata/functions.py +++ b/src/nirfsg/metadata/functions.py @@ -1519,7 +1519,7 @@ 'use_array': False }, { - 'array_dimensions': 3, + 'array_dimension': 3, 'complex_array_representation': 'complex_number_array', 'direction': 'in', 'documentation': { @@ -2005,7 +2005,7 @@ 'use_in_python_api': True }, { - 'array_dimensions': 3, + 'array_dimension': 3, 'complex_array_representation': 'complex_number_array', 'direction': 'in', 'documentation': {