我们从Python开源项目中,提取了以下50个代码示例,用于说明如何使用collections.MutableSet()。
def remove_values(value, no_log_strings): """ Remove strings in no_log_strings from value. If value is a container type, then remove a lot more""" deferred_removals = deque() no_log_strings = [to_native(s, errors='surrogate_or_strict') for s in no_log_strings] new_value = _remove_values_conditions(value, no_log_strings, deferred_removals) while deferred_removals: old_data, new_data = deferred_removals.popleft() if isinstance(new_data, Mapping): for old_key, old_elem in old_data.items(): new_elem = _remove_values_conditions(old_elem, no_log_strings, deferred_removals) new_data[old_key] = new_elem else: for elem in old_data: new_elem = _remove_values_conditions(elem, no_log_strings, deferred_removals) if isinstance(new_data, MutableSequence): new_data.append(new_elem) elif isinstance(new_data, MutableSet): new_data.add(new_elem) else: raise TypeError('Unknown container type encountered when removing private values from output') return new_value
def modifies_known_mutable(obj, attr): """This function checks if an attribute on a builtin mutable object (list, dict, set or deque) would modify it if called. It also supports the "user"-versions of the objects (`sets.Set`, `UserDict.*` etc.) and with Python 2.6 onwards the abstract base classes `MutableSet`, `MutableMapping`, and `MutableSequence`. >>> modifies_known_mutable({}, "clear") True >>> modifies_known_mutable({}, "keys") False >>> modifies_known_mutable([], "append") True >>> modifies_known_mutable([], "index") False If called with an unsupported object (such as unicode) `False` is returned. >>> modifies_known_mutable("foo", "upper") False """ for typespec, unsafe in _mutable_spec: if isinstance(obj, typespec): return attr in unsafe return False
def __init__(self, iterable=None, owner=None, instance=None): try: self._set = set(iterable) except TypeError: self._set = set() self.owner = owner self.instance = instance # Container -> Set -> MutableSet (Abstract Method)
def __contains__(self, elem): return elem in self._set # Iterable -> Set -> MutableSet (Abstract Method)
def __iter__(self): return iter(self._set) # Sized -> Set -> MutableSet (Abstract Method)
def notify(self): if self.owner: self.owner.__set__(self.instance, self._set) # MutableSet (Abstract Method)
def add(self, elem): self._set.add(elem) self.notify() # MutableSet (Abstract Method)
def clear(self): self._items.clear() # From this point on, only tests. # Perhaps there are more test cases than really required, # but the MutableSet ABC isn't tested very much in the # standard regression tests.