protobuf/python/google/protobuf/internal/containers.py
Go to the documentation of this file.
1 # Protocol Buffers - Google's data interchange format
2 # Copyright 2008 Google Inc. All rights reserved.
3 # https://developers.google.com/protocol-buffers/
4 #
5 # Redistribution and use in source and binary forms, with or without
6 # modification, are permitted provided that the following conditions are
7 # met:
8 #
9 # * Redistributions of source code must retain the above copyright
10 # notice, this list of conditions and the following disclaimer.
11 # * Redistributions in binary form must reproduce the above
12 # copyright notice, this list of conditions and the following disclaimer
13 # in the documentation and/or other materials provided with the
14 # distribution.
15 # * Neither the name of Google Inc. nor the names of its
16 # contributors may be used to endorse or promote products derived from
17 # this software without specific prior written permission.
18 #
19 # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
20 # "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
21 # LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
22 # A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
23 # OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
24 # SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
25 # LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
26 # DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
27 # THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
28 # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
29 # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
30 
31 """Contains container classes to represent different protocol buffer types.
32 
33 This file defines container classes which represent categories of protocol
34 buffer field types which need extra maintenance. Currently these categories
35 are:
36 
37 - Repeated scalar fields - These are all repeated fields which aren't
38  composite (e.g. they are of simple types like int32, string, etc).
39 - Repeated composite fields - Repeated fields which are composite. This
40  includes groups and nested messages.
41 """
42 
43 __author__ = 'petar@google.com (Petar Petrov)'
44 
45 import collections.abc
46 
47 
48 class BaseContainer(object):
49 
50  """Base container class."""
51 
52  # Minimizes memory usage and disallows assignment to other attributes.
53  __slots__ = ['_message_listener', '_values']
54 
55  def __init__(self, message_listener):
56  """
57  Args:
58  message_listener: A MessageListener implementation.
59  The RepeatedScalarFieldContainer will call this object's
60  Modified() method when it is modified.
61  """
62  self._message_listener = message_listener
63  self._values = []
64 
65  def __getitem__(self, key):
66  """Retrieves item by the specified key."""
67  return self._values[key]
68 
69  def __len__(self):
70  """Returns the number of elements in the container."""
71  return len(self._values)
72 
73  def __ne__(self, other):
74  """Checks if another instance isn't equal to this one."""
75  # The concrete classes should define __eq__.
76  return not self == other
77 
78  def __hash__(self):
79  raise TypeError('unhashable object')
80 
81  def __repr__(self):
82  return repr(self._values)
83 
84  def sort(self, *args, **kwargs):
85  # Continue to support the old sort_function keyword argument.
86  # This is expected to be a rare occurrence, so use LBYL to avoid
87  # the overhead of actually catching KeyError.
88  if 'sort_function' in kwargs:
89  kwargs['cmp'] = kwargs.pop('sort_function')
90  self._values.sort(*args, **kwargs)
91 
92  def reverse(self):
93  self._values.reverse()
94 
95 
96 collections.abc.MutableSequence.register(BaseContainer)
97 
98 
100  """Simple, type-checked, list-like container for holding repeated scalars."""
101 
102  # Disallows assignment to other attributes.
103  __slots__ = ['_type_checker']
104 
105  def __init__(self, message_listener, type_checker):
106  """Args:
107 
108  message_listener: A MessageListener implementation. The
109  RepeatedScalarFieldContainer will call this object's Modified() method
110  when it is modified.
111  type_checker: A type_checkers.ValueChecker instance to run on elements
112  inserted into this container.
113  """
114  super(RepeatedScalarFieldContainer, self).__init__(message_listener)
115  self._type_checker = type_checker
116 
117  def append(self, value):
118  """Appends an item to the list. Similar to list.append()."""
119  self._values.append(self._type_checker.CheckValue(value))
120  if not self._message_listener.dirty:
121  self._message_listener.Modified()
122 
123  def insert(self, key, value):
124  """Inserts the item at the specified position. Similar to list.insert()."""
125  self._values.insert(key, self._type_checker.CheckValue(value))
126  if not self._message_listener.dirty:
127  self._message_listener.Modified()
128 
129  def extend(self, elem_seq):
130  """Extends by appending the given iterable. Similar to list.extend()."""
131 
132  if elem_seq is None:
133  return
134  try:
135  elem_seq_iter = iter(elem_seq)
136  except TypeError:
137  if not elem_seq:
138  # silently ignore falsy inputs :-/.
139  # TODO(ptucker): Deprecate this behavior. b/18413862
140  return
141  raise
142 
143  new_values = [self._type_checker.CheckValue(elem) for elem in elem_seq_iter]
144  if new_values:
145  self._values.extend(new_values)
146  self._message_listener.Modified()
147 
148  def MergeFrom(self, other):
149  """Appends the contents of another repeated field of the same type to this
150  one. We do not check the types of the individual fields.
151  """
152  self._values.extend(other._values)
153  self._message_listener.Modified()
154 
155  def remove(self, elem):
156  """Removes an item from the list. Similar to list.remove()."""
157  self._values.remove(elem)
158  self._message_listener.Modified()
159 
160  def pop(self, key=-1):
161  """Removes and returns an item at a given index. Similar to list.pop()."""
162  value = self._values[key]
163  self.__delitem__(key)
164  return value
165 
166  def __setitem__(self, key, value):
167  """Sets the item on the specified position."""
168  if isinstance(key, slice): # PY3
169  if key.step is not None:
170  raise ValueError('Extended slices not supported')
171  self.__setslice__(key.start, key.stop, value)
172  else:
173  self._values[key] = self._type_checker.CheckValue(value)
174  self._message_listener.Modified()
175 
176  def __getslice__(self, start, stop):
177  """Retrieves the subset of items from between the specified indices."""
178  return self._values[start:stop]
179 
180  def __setslice__(self, start, stop, values):
181  """Sets the subset of items from between the specified indices."""
182  new_values = []
183  for value in values:
184  new_values.append(self._type_checker.CheckValue(value))
185  self._values[start:stop] = new_values
186  self._message_listener.Modified()
187 
188  def __delitem__(self, key):
189  """Deletes the item at the specified position."""
190  del self._values[key]
191  self._message_listener.Modified()
192 
193  def __delslice__(self, start, stop):
194  """Deletes the subset of items from between the specified indices."""
195  del self._values[start:stop]
196  self._message_listener.Modified()
197 
198  def __eq__(self, other):
199  """Compares the current instance with another one."""
200  if self is other:
201  return True
202  # Special case for the same type which should be common and fast.
203  if isinstance(other, self.__class__):
204  return other._values == self._values
205  # We are presumably comparing against some other sequence type.
206  return other == self._values
207 
208 
210 
211  """Simple, list-like container for holding repeated composite fields."""
212 
213  # Disallows assignment to other attributes.
214  __slots__ = ['_message_descriptor']
215 
216  def __init__(self, message_listener, message_descriptor):
217  """
218  Note that we pass in a descriptor instead of the generated directly,
219  since at the time we construct a _RepeatedCompositeFieldContainer we
220  haven't yet necessarily initialized the type that will be contained in the
221  container.
222 
223  Args:
224  message_listener: A MessageListener implementation.
225  The RepeatedCompositeFieldContainer will call this object's
226  Modified() method when it is modified.
227  message_descriptor: A Descriptor instance describing the protocol type
228  that should be present in this container. We'll use the
229  _concrete_class field of this descriptor when the client calls add().
230  """
231  super(RepeatedCompositeFieldContainer, self).__init__(message_listener)
232  self._message_descriptor = message_descriptor
233 
234  def add(self, **kwargs):
235  """Adds a new element at the end of the list and returns it. Keyword
236  arguments may be used to initialize the element.
237  """
238  new_element = self._message_descriptor._concrete_class(**kwargs)
239  new_element._SetListener(self._message_listener)
240  self._values.append(new_element)
241  if not self._message_listener.dirty:
242  self._message_listener.Modified()
243  return new_element
244 
245  def append(self, value):
246  """Appends one element by copying the message."""
247  new_element = self._message_descriptor._concrete_class()
248  new_element._SetListener(self._message_listener)
249  new_element.CopyFrom(value)
250  self._values.append(new_element)
251  if not self._message_listener.dirty:
252  self._message_listener.Modified()
253 
254  def insert(self, key, value):
255  """Inserts the item at the specified position by copying."""
256  new_element = self._message_descriptor._concrete_class()
257  new_element._SetListener(self._message_listener)
258  new_element.CopyFrom(value)
259  self._values.insert(key, new_element)
260  if not self._message_listener.dirty:
261  self._message_listener.Modified()
262 
263  def extend(self, elem_seq):
264  """Extends by appending the given sequence of elements of the same type
265 
266  as this one, copying each individual message.
267  """
268  message_class = self._message_descriptor._concrete_class
269  listener = self._message_listener
270  values = self._values
271  for message in elem_seq:
272  new_element = message_class()
273  new_element._SetListener(listener)
274  new_element.MergeFrom(message)
275  values.append(new_element)
276  listener.Modified()
277 
278  def MergeFrom(self, other):
279  """Appends the contents of another repeated field of the same type to this
280  one, copying each individual message.
281  """
282  self.extend(other._values)
283 
284  def remove(self, elem):
285  """Removes an item from the list. Similar to list.remove()."""
286  self._values.remove(elem)
287  self._message_listener.Modified()
288 
289  def pop(self, key=-1):
290  """Removes and returns an item at a given index. Similar to list.pop()."""
291  value = self._values[key]
292  self.__delitem__(key)
293  return value
294 
295  def __getslice__(self, start, stop):
296  """Retrieves the subset of items from between the specified indices."""
297  return self._values[start:stop]
298 
299  def __delitem__(self, key):
300  """Deletes the item at the specified position."""
301  del self._values[key]
302  self._message_listener.Modified()
303 
304  def __delslice__(self, start, stop):
305  """Deletes the subset of items from between the specified indices."""
306  del self._values[start:stop]
307  self._message_listener.Modified()
308 
309  def __eq__(self, other):
310  """Compares the current instance with another one."""
311  if self is other:
312  return True
313  if not isinstance(other, self.__class__):
314  raise TypeError('Can only compare repeated composite fields against '
315  'other repeated composite fields.')
316  return self._values == other._values
317 
318 
319 class ScalarMap(collections.abc.MutableMapping):
320 
321  """Simple, type-checked, dict-like container for holding repeated scalars."""
322 
323  # Disallows assignment to other attributes.
324  __slots__ = ['_key_checker', '_value_checker', '_values', '_message_listener',
325  '_entry_descriptor']
326 
327  def __init__(self, message_listener, key_checker, value_checker,
328  entry_descriptor):
329  """
330  Args:
331  message_listener: A MessageListener implementation.
332  The ScalarMap will call this object's Modified() method when it
333  is modified.
334  key_checker: A type_checkers.ValueChecker instance to run on keys
335  inserted into this container.
336  value_checker: A type_checkers.ValueChecker instance to run on values
337  inserted into this container.
338  entry_descriptor: The MessageDescriptor of a map entry: key and value.
339  """
340  self._message_listener = message_listener
341  self._key_checker = key_checker
342  self._value_checker = value_checker
343  self._entry_descriptor = entry_descriptor
344  self._values = {}
345 
346  def __getitem__(self, key):
347  try:
348  return self._values[key]
349  except KeyError:
350  key = self._key_checker.CheckValue(key)
351  val = self._value_checker.DefaultValue()
352  self._values[key] = val
353  return val
354 
355  def __contains__(self, item):
356  # We check the key's type to match the strong-typing flavor of the API.
357  # Also this makes it easier to match the behavior of the C++ implementation.
358  self._key_checker.CheckValue(item)
359  return item in self._values
360 
361  # We need to override this explicitly, because our defaultdict-like behavior
362  # will make the default implementation (from our base class) always insert
363  # the key.
364  def get(self, key, default=None):
365  if key in self:
366  return self[key]
367  else:
368  return default
369 
370  def __setitem__(self, key, value):
371  checked_key = self._key_checker.CheckValue(key)
372  checked_value = self._value_checker.CheckValue(value)
373  self._values[checked_key] = checked_value
374  self._message_listener.Modified()
375 
376  def __delitem__(self, key):
377  del self._values[key]
378  self._message_listener.Modified()
379 
380  def __len__(self):
381  return len(self._values)
382 
383  def __iter__(self):
384  return iter(self._values)
385 
386  def __repr__(self):
387  return repr(self._values)
388 
389  def MergeFrom(self, other):
390  self._values.update(other._values)
391  self._message_listener.Modified()
392 
394  # It appears that the only way to reliably invalidate iterators to
395  # self._values is to ensure that its size changes.
396  original = self._values
397  self._values = original.copy()
398  original[None] = None
399 
400  # This is defined in the abstract base, but we can do it much more cheaply.
401  def clear(self):
402  self._values.clear()
403  self._message_listener.Modified()
404 
405  def GetEntryClass(self):
406  return self._entry_descriptor._concrete_class
407 
408 
409 class MessageMap(collections.abc.MutableMapping):
410 
411  """Simple, type-checked, dict-like container for with submessage values."""
412 
413  # Disallows assignment to other attributes.
414  __slots__ = ['_key_checker', '_values', '_message_listener',
415  '_message_descriptor', '_entry_descriptor']
416 
417  def __init__(self, message_listener, message_descriptor, key_checker,
418  entry_descriptor):
419  """
420  Args:
421  message_listener: A MessageListener implementation.
422  The ScalarMap will call this object's Modified() method when it
423  is modified.
424  key_checker: A type_checkers.ValueChecker instance to run on keys
425  inserted into this container.
426  value_checker: A type_checkers.ValueChecker instance to run on values
427  inserted into this container.
428  entry_descriptor: The MessageDescriptor of a map entry: key and value.
429  """
430  self._message_listener = message_listener
431  self._message_descriptor = message_descriptor
432  self._key_checker = key_checker
433  self._entry_descriptor = entry_descriptor
434  self._values = {}
435 
436  def __getitem__(self, key):
437  key = self._key_checker.CheckValue(key)
438  try:
439  return self._values[key]
440  except KeyError:
441  new_element = self._message_descriptor._concrete_class()
442  new_element._SetListener(self._message_listener)
443  self._values[key] = new_element
444  self._message_listener.Modified()
445 
446  return new_element
447 
448  def get_or_create(self, key):
449  """get_or_create() is an alias for getitem (ie. map[key]).
450 
451  Args:
452  key: The key to get or create in the map.
453 
454  This is useful in cases where you want to be explicit that the call is
455  mutating the map. This can avoid lint errors for statements like this
456  that otherwise would appear to be pointless statements:
457 
458  msg.my_map[key]
459  """
460  return self[key]
461 
462  # We need to override this explicitly, because our defaultdict-like behavior
463  # will make the default implementation (from our base class) always insert
464  # the key.
465  def get(self, key, default=None):
466  if key in self:
467  return self[key]
468  else:
469  return default
470 
471  def __contains__(self, item):
472  item = self._key_checker.CheckValue(item)
473  return item in self._values
474 
475  def __setitem__(self, key, value):
476  raise ValueError('May not set values directly, call my_map[key].foo = 5')
477 
478  def __delitem__(self, key):
479  key = self._key_checker.CheckValue(key)
480  del self._values[key]
481  self._message_listener.Modified()
482 
483  def __len__(self):
484  return len(self._values)
485 
486  def __iter__(self):
487  return iter(self._values)
488 
489  def __repr__(self):
490  return repr(self._values)
491 
492  def MergeFrom(self, other):
493  # pylint: disable=protected-access
494  for key in other._values:
495  # According to documentation: "When parsing from the wire or when merging,
496  # if there are duplicate map keys the last key seen is used".
497  if key in self:
498  del self[key]
499  self[key].CopyFrom(other[key])
500  # self._message_listener.Modified() not required here, because
501  # mutations to submessages already propagate.
502 
504  # It appears that the only way to reliably invalidate iterators to
505  # self._values is to ensure that its size changes.
506  original = self._values
507  self._values = original.copy()
508  original[None] = None
509 
510  # This is defined in the abstract base, but we can do it much more cheaply.
511  def clear(self):
512  self._values.clear()
513  self._message_listener.Modified()
514 
515  def GetEntryClass(self):
516  return self._entry_descriptor._concrete_class
517 
518 
519 class _UnknownField(object):
520 
521  """A parsed unknown field."""
522 
523  # Disallows assignment to other attributes.
524  __slots__ = ['_field_number', '_wire_type', '_data']
525 
526  def __init__(self, field_number, wire_type, data):
527  self._field_number = field_number
528  self._wire_type = wire_type
529  self._data = data
530  return
531 
532  def __lt__(self, other):
533  # pylint: disable=protected-access
534  return self._field_number < other._field_number
535 
536  def __eq__(self, other):
537  if self is other:
538  return True
539  # pylint: disable=protected-access
540  return (self._field_number == other._field_number and
541  self._wire_type == other._wire_type and
542  self._data == other._data)
543 
544 
545 class UnknownFieldRef(object):
546 
547  def __init__(self, parent, index):
548  self._parent = parent
549  self._index = index
550  return
551 
552  def _check_valid(self):
553  if not self._parent:
554  raise ValueError('UnknownField does not exist. '
555  'The parent message might be cleared.')
556  if self._index >= len(self._parent):
557  raise ValueError('UnknownField does not exist. '
558  'The parent message might be cleared.')
559 
560  @property
561  def field_number(self):
562  self._check_valid()
563  # pylint: disable=protected-access
564  return self._parent._internal_get(self._index)._field_number
565 
566  @property
567  def wire_type(self):
568  self._check_valid()
569  # pylint: disable=protected-access
570  return self._parent._internal_get(self._index)._wire_type
571 
572  @property
573  def data(self):
574  self._check_valid()
575  # pylint: disable=protected-access
576  return self._parent._internal_get(self._index)._data
577 
578 
579 class UnknownFieldSet(object):
580 
581  """UnknownField container"""
582 
583  # Disallows assignment to other attributes.
584  __slots__ = ['_values']
585 
586  def __init__(self):
587  self._values = []
588 
589  def __getitem__(self, index):
590  if self._values is None:
591  raise ValueError('UnknownFields does not exist. '
592  'The parent message might be cleared.')
593  size = len(self._values)
594  if index < 0:
595  index += size
596  if index < 0 or index >= size:
597  raise IndexError('index %d out of range'.index)
598 
599  return UnknownFieldRef(self, index)
600 
601  def _internal_get(self, index):
602  return self._values[index]
603 
604  def __len__(self):
605  if self._values is None:
606  raise ValueError('UnknownFields does not exist. '
607  'The parent message might be cleared.')
608  return len(self._values)
609 
610  def _add(self, field_number, wire_type, data):
611  unknown_field = _UnknownField(field_number, wire_type, data)
612  self._values.append(unknown_field)
613  return unknown_field
614 
615  def __iter__(self):
616  for i in range(len(self)):
617  yield UnknownFieldRef(self, i)
618 
619  def _extend(self, other):
620  if other is None:
621  return
622  # pylint: disable=protected-access
623  self._values.extend(other._values)
624 
625  def __eq__(self, other):
626  if self is other:
627  return True
628  # Sort unknown fields because their order shouldn't
629  # affect equality test.
630  values = list(self._values)
631  if other is None:
632  return not values
633  values.sort()
634  # pylint: disable=protected-access
635  other_values = sorted(other._values)
636  return values == other_values
637 
638  def _clear(self):
639  for value in self._values:
640  # pylint: disable=protected-access
641  if isinstance(value._data, UnknownFieldSet):
642  value._data._clear() # pylint: disable=protected-access
643  self._values = None
google::protobuf.internal.containers.RepeatedScalarFieldContainer.pop
def pop(self, key=-1)
Definition: bloaty/third_party/protobuf/python/google/protobuf/internal/containers.py:298
google::protobuf.internal.containers.BaseContainer.sort
def sort(self, *args, **kwargs)
Definition: bloaty/third_party/protobuf/python/google/protobuf/internal/containers.py:225
google::protobuf.internal.containers.RepeatedCompositeFieldContainer._message_descriptor
_message_descriptor
Definition: bloaty/third_party/protobuf/python/google/protobuf/internal/containers.py:370
google::protobuf.internal.containers.UnknownFieldSet.__iter__
def __iter__(self)
Definition: bloaty/third_party/protobuf/python/google/protobuf/internal/containers.py:751
google::protobuf.internal.containers.RepeatedCompositeFieldContainer.insert
def insert(self, key, value)
Definition: bloaty/third_party/protobuf/python/google/protobuf/internal/containers.py:392
google::protobuf.internal.containers.UnknownFieldRef.field_number
def field_number(self)
Definition: bloaty/third_party/protobuf/python/google/protobuf/internal/containers.py:697
google::protobuf.internal.containers._UnknownField.__lt__
def __lt__(self, other)
Definition: bloaty/third_party/protobuf/python/google/protobuf/internal/containers.py:668
google::protobuf.internal.containers.UnknownFieldSet._clear
def _clear(self)
Definition: bloaty/third_party/protobuf/python/google/protobuf/internal/containers.py:774
google::protobuf.internal.containers.MessageMap.get
def get(self, key, default=None)
Definition: bloaty/third_party/protobuf/python/google/protobuf/internal/containers.py:602
google::protobuf.internal.containers.RepeatedCompositeFieldContainer
Definition: bloaty/third_party/protobuf/python/google/protobuf/internal/containers.py:347
google::protobuf.internal.containers.RepeatedCompositeFieldContainer.add
def add(self, **kwargs)
Definition: bloaty/third_party/protobuf/python/google/protobuf/internal/containers.py:372
google::protobuf.internal.containers.RepeatedScalarFieldContainer
Definition: bloaty/third_party/protobuf/python/google/protobuf/internal/containers.py:236
google::protobuf.internal.containers.RepeatedScalarFieldContainer.remove
def remove(self, elem)
Definition: bloaty/third_party/protobuf/python/google/protobuf/internal/containers.py:293
capstone.range
range
Definition: third_party/bloaty/third_party/capstone/bindings/python/capstone/__init__.py:6
google::protobuf.internal.containers.RepeatedScalarFieldContainer.__setitem__
def __setitem__(self, key, value)
Definition: bloaty/third_party/protobuf/python/google/protobuf/internal/containers.py:304
google::protobuf.internal.containers.ScalarMap.__len__
def __len__(self)
Definition: bloaty/third_party/protobuf/python/google/protobuf/internal/containers.py:517
google::protobuf.internal.containers.ScalarMap._values
_values
Definition: bloaty/third_party/protobuf/python/google/protobuf/internal/containers.py:480
google::protobuf.internal.containers.BaseContainer._values
_values
Definition: bloaty/third_party/protobuf/python/google/protobuf/internal/containers.py:204
google::protobuf.internal.containers.MutableMapping.update
def update(*args, **kwds)
Definition: bloaty/third_party/protobuf/python/google/protobuf/internal/containers.py:152
google::protobuf.internal.containers.UnknownFieldSet._values
_values
Definition: bloaty/third_party/protobuf/python/google/protobuf/internal/containers.py:723
google::protobuf.internal.containers.UnknownFieldSet._extend
def _extend(self, other)
Definition: bloaty/third_party/protobuf/python/google/protobuf/internal/containers.py:755
google::protobuf.internal.containers.UnknownFieldRef.__init__
def __init__(self, parent, index)
Definition: bloaty/third_party/protobuf/python/google/protobuf/internal/containers.py:683
google::protobuf::python::cmessage::CopyFrom
static PyObject * CopyFrom(CMessage *self, PyObject *arg)
Definition: bloaty/third_party/protobuf/python/google/protobuf/pyext/message.cc:1862
google::protobuf.internal.containers.ScalarMap.__repr__
def __repr__(self)
Definition: bloaty/third_party/protobuf/python/google/protobuf/internal/containers.py:523
google::protobuf.internal.containers.ScalarMap.GetEntryClass
def GetEntryClass(self)
Definition: bloaty/third_party/protobuf/python/google/protobuf/internal/containers.py:542
google::protobuf.internal.containers.UnknownFieldSet.__getitem__
def __getitem__(self, index)
Definition: bloaty/third_party/protobuf/python/google/protobuf/internal/containers.py:725
google::protobuf.internal.containers.MessageMap.__getitem__
def __getitem__(self, key)
Definition: bloaty/third_party/protobuf/python/google/protobuf/internal/containers.py:573
google::protobuf.internal.containers.RepeatedCompositeFieldContainer.__delitem__
def __delitem__(self, key)
Definition: bloaty/third_party/protobuf/python/google/protobuf/internal/containers.py:436
google::protobuf.internal.containers.RepeatedCompositeFieldContainer.pop
def pop(self, key=-1)
Definition: bloaty/third_party/protobuf/python/google/protobuf/internal/containers.py:426
google::protobuf.internal.containers.BaseContainer.__getitem__
def __getitem__(self, key)
Definition: bloaty/third_party/protobuf/python/google/protobuf/internal/containers.py:206
google::protobuf.internal.containers.BaseContainer
Definition: bloaty/third_party/protobuf/python/google/protobuf/internal/containers.py:189
google::protobuf.internal.containers._UnknownField
Definition: bloaty/third_party/protobuf/python/google/protobuf/internal/containers.py:655
google::protobuf.internal.containers.BaseContainer.__ne__
def __ne__(self, other)
Definition: bloaty/third_party/protobuf/python/google/protobuf/internal/containers.py:214
google::protobuf.internal.containers.RepeatedScalarFieldContainer.MergeFrom
def MergeFrom(self, other)
Definition: bloaty/third_party/protobuf/python/google/protobuf/internal/containers.py:286
google::protobuf.internal.containers._UnknownField._wire_type
_wire_type
Definition: bloaty/third_party/protobuf/python/google/protobuf/internal/containers.py:664
google::protobuf.internal.containers.ScalarMap.__iter__
def __iter__(self)
Definition: bloaty/third_party/protobuf/python/google/protobuf/internal/containers.py:520
google::protobuf.internal.containers.RepeatedCompositeFieldContainer.append
def append(self, value)
Definition: bloaty/third_party/protobuf/python/google/protobuf/internal/containers.py:383
google::protobuf.internal.containers.UnknownFieldSet.__eq__
def __eq__(self, other)
Definition: bloaty/third_party/protobuf/python/google/protobuf/internal/containers.py:761
google::protobuf.internal.containers.UnknownFieldSet.__len__
def __len__(self)
Definition: bloaty/third_party/protobuf/python/google/protobuf/internal/containers.py:740
google::protobuf.internal.containers.RepeatedScalarFieldContainer.extend
def extend(self, elem_seq)
Definition: bloaty/third_party/protobuf/python/google/protobuf/internal/containers.py:267
google::protobuf.internal.containers.RepeatedScalarFieldContainer.__setslice__
def __setslice__(self, start, stop, values)
Definition: bloaty/third_party/protobuf/python/google/protobuf/internal/containers.py:318
google::protobuf.internal.containers.MessageMap.__init__
def __init__(self, message_listener, message_descriptor, key_checker, entry_descriptor)
Definition: bloaty/third_party/protobuf/python/google/protobuf/internal/containers.py:554
google::protobuf.internal.containers.MessageMap.__contains__
def __contains__(self, item)
Definition: bloaty/third_party/protobuf/python/google/protobuf/internal/containers.py:608
google::protobuf.internal.containers.MessageMap._message_descriptor
_message_descriptor
Definition: bloaty/third_party/protobuf/python/google/protobuf/internal/containers.py:567
google::protobuf.internal.containers.UnknownFieldSet.__init__
def __init__(self)
Definition: bloaty/third_party/protobuf/python/google/protobuf/internal/containers.py:722
google::protobuf.internal.containers.MessageMap._message_listener
_message_listener
Definition: bloaty/third_party/protobuf/python/google/protobuf/internal/containers.py:566
google::protobuf.internal.containers.ScalarMap.__contains__
def __contains__(self, item)
Definition: bloaty/third_party/protobuf/python/google/protobuf/internal/containers.py:492
google::protobuf.internal.containers.ScalarMap._message_listener
_message_listener
Definition: bloaty/third_party/protobuf/python/google/protobuf/internal/containers.py:476
google::protobuf.internal.containers.ScalarMap._value_checker
_value_checker
Definition: bloaty/third_party/protobuf/python/google/protobuf/internal/containers.py:478
google::protobuf.internal.containers.ScalarMap
Definition: bloaty/third_party/protobuf/python/google/protobuf/internal/containers.py:456
google::protobuf.internal.containers.RepeatedCompositeFieldContainer.__init__
def __init__(self, message_listener, message_descriptor)
Definition: bloaty/third_party/protobuf/python/google/protobuf/internal/containers.py:354
google::protobuf.internal.containers.ScalarMap._entry_descriptor
_entry_descriptor
Definition: bloaty/third_party/protobuf/python/google/protobuf/internal/containers.py:479
google::protobuf.internal.containers.UnknownFieldRef.data
def data(self)
Definition: bloaty/third_party/protobuf/python/google/protobuf/internal/containers.py:709
google::protobuf.internal.containers.BaseContainer.__hash__
def __hash__(self)
Definition: bloaty/third_party/protobuf/python/google/protobuf/internal/containers.py:219
google::protobuf.internal.containers.RepeatedScalarFieldContainer.__init__
def __init__(self, message_listener, type_checker)
Definition: bloaty/third_party/protobuf/python/google/protobuf/internal/containers.py:243
google::protobuf.internal.containers.ScalarMap._key_checker
_key_checker
Definition: bloaty/third_party/protobuf/python/google/protobuf/internal/containers.py:477
google::protobuf.internal.containers.ScalarMap.clear
def clear(self)
Definition: bloaty/third_party/protobuf/python/google/protobuf/internal/containers.py:538
google::protobuf.internal.containers._UnknownField.__init__
def __init__(self, field_number, wire_type, data)
Definition: bloaty/third_party/protobuf/python/google/protobuf/internal/containers.py:662
google::protobuf.internal.containers.ScalarMap.__init__
def __init__(self, message_listener, key_checker, value_checker, entry_descriptor)
Definition: bloaty/third_party/protobuf/python/google/protobuf/internal/containers.py:464
google::protobuf.internal.containers.MessageMap.MergeFrom
def MergeFrom(self, other)
Definition: bloaty/third_party/protobuf/python/google/protobuf/internal/containers.py:629
google::protobuf.internal.containers.UnknownFieldRef._check_valid
def _check_valid(self)
Definition: bloaty/third_party/protobuf/python/google/protobuf/internal/containers.py:688
google::protobuf::compiler::cpp::DefaultValue
std::string DefaultValue(const FieldDescriptor *field)
Definition: bloaty/third_party/protobuf/src/google/protobuf/compiler/cpp/cpp_helpers.cc:622
google::protobuf.internal.containers.RepeatedCompositeFieldContainer.MergeFrom
def MergeFrom(self, other)
Definition: bloaty/third_party/protobuf/python/google/protobuf/internal/containers.py:415
google::protobuf.internal.containers._UnknownField._field_number
_field_number
Definition: bloaty/third_party/protobuf/python/google/protobuf/internal/containers.py:663
google::protobuf.internal.containers.RepeatedCompositeFieldContainer.extend
def extend(self, elem_seq)
Definition: bloaty/third_party/protobuf/python/google/protobuf/internal/containers.py:401
google::protobuf.internal.containers.ScalarMap.__setitem__
def __setitem__(self, key, value)
Definition: bloaty/third_party/protobuf/python/google/protobuf/internal/containers.py:507
google::protobuf.internal.containers.MessageMap.__repr__
def __repr__(self)
Definition: bloaty/third_party/protobuf/python/google/protobuf/internal/containers.py:626
google::protobuf.internal.containers.MessageMap._values
_values
Definition: bloaty/third_party/protobuf/python/google/protobuf/internal/containers.py:570
google::protobuf.internal.containers.RepeatedScalarFieldContainer.insert
def insert(self, key, value)
Definition: bloaty/third_party/protobuf/python/google/protobuf/internal/containers.py:261
google::protobuf.internal.containers.UnknownFieldSet._internal_get
def _internal_get(self, index)
Definition: bloaty/third_party/protobuf/python/google/protobuf/internal/containers.py:737
google::protobuf.internal.containers.UnknownFieldRef._index
_index
Definition: bloaty/third_party/protobuf/python/google/protobuf/internal/containers.py:685
google::protobuf.internal.containers.MessageMap.get_or_create
def get_or_create(self, key)
Definition: bloaty/third_party/protobuf/python/google/protobuf/internal/containers.py:585
google::protobuf.internal.containers.ScalarMap.__delitem__
def __delitem__(self, key)
Definition: bloaty/third_party/protobuf/python/google/protobuf/internal/containers.py:513
google::protobuf.internal.containers.RepeatedScalarFieldContainer.__eq__
def __eq__(self, other)
Definition: bloaty/third_party/protobuf/python/google/protobuf/internal/containers.py:336
google::protobuf.internal.containers.ScalarMap.InvalidateIterators
def InvalidateIterators(self)
Definition: bloaty/third_party/protobuf/python/google/protobuf/internal/containers.py:530
google::protobuf.internal.containers._UnknownField._data
_data
Definition: bloaty/third_party/protobuf/python/google/protobuf/internal/containers.py:665
google::protobuf.internal.containers.RepeatedScalarFieldContainer.append
def append(self, value)
Definition: bloaty/third_party/protobuf/python/google/protobuf/internal/containers.py:255
google::protobuf.internal.containers.MessageMap.__len__
def __len__(self)
Definition: bloaty/third_party/protobuf/python/google/protobuf/internal/containers.py:620
google::protobuf.internal.containers.BaseContainer.reverse
def reverse(self)
Definition: protobuf/python/google/protobuf/internal/containers.py:92
google::protobuf.internal.containers.RepeatedCompositeFieldContainer.__getslice__
def __getslice__(self, start, stop)
Definition: bloaty/third_party/protobuf/python/google/protobuf/internal/containers.py:432
google::protobuf.internal.containers.MessageMap.clear
def clear(self)
Definition: bloaty/third_party/protobuf/python/google/protobuf/internal/containers.py:647
google::protobuf.internal.containers.ScalarMap.__getitem__
def __getitem__(self, key)
Definition: bloaty/third_party/protobuf/python/google/protobuf/internal/containers.py:483
google::protobuf.internal.containers.UnknownFieldSet
Definition: bloaty/third_party/protobuf/python/google/protobuf/internal/containers.py:715
google::protobuf.internal.containers.RepeatedCompositeFieldContainer.__delslice__
def __delslice__(self, start, stop)
Definition: bloaty/third_party/protobuf/python/google/protobuf/internal/containers.py:441
google::protobuf.internal.containers.MessageMap.GetEntryClass
def GetEntryClass(self)
Definition: bloaty/third_party/protobuf/python/google/protobuf/internal/containers.py:651
google::protobuf.internal.containers.UnknownFieldRef.wire_type
def wire_type(self)
Definition: bloaty/third_party/protobuf/python/google/protobuf/internal/containers.py:703
google::protobuf.internal.containers.RepeatedScalarFieldContainer.__delslice__
def __delslice__(self, start, stop)
Definition: bloaty/third_party/protobuf/python/google/protobuf/internal/containers.py:331
google::protobuf.internal.containers.ScalarMap.get
def get(self, key, default=None)
Definition: bloaty/third_party/protobuf/python/google/protobuf/internal/containers.py:501
google::protobuf.internal.containers.BaseContainer.__repr__
def __repr__(self)
Definition: bloaty/third_party/protobuf/python/google/protobuf/internal/containers.py:222
google::protobuf.internal.containers.UnknownFieldRef
Definition: bloaty/third_party/protobuf/python/google/protobuf/internal/containers.py:681
google::protobuf.internal.containers.RepeatedCompositeFieldContainer.remove
def remove(self, elem)
Definition: bloaty/third_party/protobuf/python/google/protobuf/internal/containers.py:421
google::protobuf.internal.containers.ScalarMap.MergeFrom
def MergeFrom(self, other)
Definition: bloaty/third_party/protobuf/python/google/protobuf/internal/containers.py:526
google::protobuf.internal.containers.RepeatedCompositeFieldContainer.__eq__
def __eq__(self, other)
Definition: bloaty/third_party/protobuf/python/google/protobuf/internal/containers.py:446
google::protobuf.internal.containers._UnknownField.__eq__
def __eq__(self, other)
Definition: bloaty/third_party/protobuf/python/google/protobuf/internal/containers.py:672
google::protobuf.internal.containers.MessageMap.__delitem__
def __delitem__(self, key)
Definition: bloaty/third_party/protobuf/python/google/protobuf/internal/containers.py:615
google::protobuf.internal.containers.UnknownFieldRef._parent
_parent
Definition: bloaty/third_party/protobuf/python/google/protobuf/internal/containers.py:684
google::protobuf.internal.containers.UnknownFieldSet._add
def _add(self, field_number, wire_type, data)
Definition: bloaty/third_party/protobuf/python/google/protobuf/internal/containers.py:746
iter
Definition: test_winkernel.cpp:47
google::protobuf.internal.containers.MessageMap.__iter__
def __iter__(self)
Definition: bloaty/third_party/protobuf/python/google/protobuf/internal/containers.py:623
google::protobuf.internal.containers.BaseContainer.__init__
def __init__(self, message_listener)
Definition: bloaty/third_party/protobuf/python/google/protobuf/internal/containers.py:196
len
int len
Definition: abseil-cpp/absl/base/internal/low_level_alloc_test.cc:46
google::protobuf.internal.containers.MessageMap._entry_descriptor
_entry_descriptor
Definition: bloaty/third_party/protobuf/python/google/protobuf/internal/containers.py:569
google::protobuf.internal.containers.BaseContainer.__len__
def __len__(self)
Definition: bloaty/third_party/protobuf/python/google/protobuf/internal/containers.py:210
google::protobuf.internal.containers.BaseContainer._message_listener
_message_listener
Definition: bloaty/third_party/protobuf/python/google/protobuf/internal/containers.py:203
google::protobuf.internal.containers.MessageMap.InvalidateIterators
def InvalidateIterators(self)
Definition: bloaty/third_party/protobuf/python/google/protobuf/internal/containers.py:639
google::protobuf.internal.containers.RepeatedScalarFieldContainer._type_checker
_type_checker
Definition: bloaty/third_party/protobuf/python/google/protobuf/internal/containers.py:253
google::protobuf.internal.containers.MessageMap._key_checker
_key_checker
Definition: bloaty/third_party/protobuf/python/google/protobuf/internal/containers.py:568
google::protobuf.internal.containers.RepeatedScalarFieldContainer.__getslice__
def __getslice__(self, start, stop)
Definition: bloaty/third_party/protobuf/python/google/protobuf/internal/containers.py:314
google::protobuf.internal.containers.MessageMap
Definition: bloaty/third_party/protobuf/python/google/protobuf/internal/containers.py:546
google::protobuf.internal.containers.RepeatedScalarFieldContainer.__delitem__
def __delitem__(self, key)
Definition: bloaty/third_party/protobuf/python/google/protobuf/internal/containers.py:326
google::protobuf.internal.containers.MessageMap.__setitem__
def __setitem__(self, key, value)
Definition: bloaty/third_party/protobuf/python/google/protobuf/internal/containers.py:612


grpc
Author(s):
autogenerated on Fri May 16 2025 02:58:02