import json def deep_equal(a, b): """ Compare two data structures for deep equality by converting them to JSON strings. Parameters: a (any): First data structure to compare. b (any): Second data structure to compare. Returns: bool: True if the two data structures are equal, False otherwise. """ return json.dumps(a, sort_keys=True) == json.dumps(b, sort_keys=True) def get_changes(module_params, module_args_keys_list, current_config): """ Function to get changes by comparing module parameters with current configuration. Args: module_params (dict): The parameters of the module. module_args_keys_list (list): List of keys to check in module parameters. current_config (dict): The current configuration to compare against. Returns: dict: A dictionary containing the changes. """ changes = {} for key, value in module_params.items(): if key in module_args_keys_list: if value is not None: if not deep_equal(value, current_config.get(key)): changes[key] = value return changes