def get_children_variables(self, fmt=None): _type, _type_name, resolver = get_type(self.value) children_variables = [] if resolver is not None: # i.e.: it's a container. if hasattr(resolver, 'get_contents_debug_adapter_protocol'): # The get_contents_debug_adapter_protocol needs to return sorted. lst = resolver.get_contents_debug_adapter_protocol(self.value, fmt=fmt) else: # If there's no special implementation, the default is sorting the keys. dct = resolver.get_dictionary(self.value) lst = dict_items(dct) lst.sort(key=lambda tup: sorted_attributes_key(tup[0])) # No evaluate name in this case. lst = [(key, value, None) for (key, value) in lst] parent_evaluate_name = self.evaluate_name if parent_evaluate_name: for key, val, evaluate_name in lst: if evaluate_name is not None: if callable(evaluate_name): evaluate_name = evaluate_name(parent_evaluate_name) else: evaluate_name = parent_evaluate_name + evaluate_name variable = _ObjectVariable( key, val, self._register_variable, evaluate_name=evaluate_name) children_variables.append(variable) else: for key, val, evaluate_name in lst: # No evaluate name variable = _ObjectVariable(key, val, self._register_variable) children_variables.append(variable) return children_variables
def get_children_variables(self, fmt=None): _type, _type_name, resolver = get_type(self.value) children_variables = [] if resolver is not None: # i.e.: it's a container. if hasattr(resolver, 'get_contents_debug_adapter_protocol'): # The get_contents_debug_adapter_protocol needs to return sorted. lst = resolver.get_contents_debug_adapter_protocol(self.value, fmt=fmt) else: # If there's no special implementation, the default is sorting the keys. dct = resolver.get_dictionary(self.value) lst = dict_items(dct) lst.sort(key=lambda tup: sorted_attributes_key(tup[0])) # No evaluate name in this case. lst = [(key, value, None) for (key, value) in lst] parent_evaluate_name = self.evaluate_name if parent_evaluate_name: for key, val, evaluate_name in lst: if evaluate_name is not None: if callable(evaluate_name): evaluate_name = evaluate_name(parent_evaluate_name) else: evaluate_name = parent_evaluate_name + evaluate_name variable = _ObjectVariable( key, val, self._register_variable, evaluate_name=evaluate_name, frame=self.frame) children_variables.append(variable) else: for key, val, evaluate_name in lst: # No evaluate name variable = _ObjectVariable(key, val, self._register_variable, frame=self.frame) children_variables.append(variable) return children_variables
def get_children_variables(self, fmt=None, scope=None): children_variables = [] if scope is not None: assert isinstance(scope, ScopeRequest) scope = scope.scope if scope in ('locals', None): dct = self.frame.f_locals elif scope == 'globals': dct = self.frame.f_globals else: raise AssertionError('Unexpected scope: %s' % (scope,)) lst, group_entries = self._group_entries([(x[0], x[1], None) for x in dict_items(dct) if x[0] != '_pydev_stop_at_break'], handle_return_values=True) group_variables = [] for key, val, _ in group_entries: # Make sure that the contents in the group are also sorted. val.contents_debug_adapter_protocol.sort(key=lambda v:sorted_attributes_key(v[0])) variable = _ObjectVariable(self.py_db, key, val, self._register_variable, False, key, frame=self.frame) group_variables.append(variable) for key, val, _ in lst: is_return_value = key == RETURN_VALUES_DICT if is_return_value: for return_key, return_value in dict_iter_items(val): variable = _ObjectVariable( self.py_db, return_key, return_value, self._register_variable, is_return_value, '%s[%r]' % (key, return_key), frame=self.frame) children_variables.append(variable) else: variable = _ObjectVariable(self.py_db, key, val, self._register_variable, is_return_value, key, frame=self.frame) children_variables.append(variable) # Frame variables always sorted. children_variables.sort(key=sorted_variables_key) if group_variables: # Groups have priority over other variables. children_variables = group_variables + children_variables return children_variables
def sorted_variables_key(obj): return sorted_attributes_key(obj.name)
def sorted_variables_key(obj): return sorted_attributes_key(obj.name)