$64 GRAYBYTE WORDPRESS FILE MANAGER $92

SERVER : in-mum-web1330.main-hosting.eu #1 SMP Mon Feb 10 22:45:17 UTC 2025
SERVER IP : 2.57.91.78 | ADMIN IP 216.73.216.215
OPTIONS : CRL = ON | WGT = ON | SDO = OFF | PKEX = OFF
DEACTIVATED : NONE

/lib/python2.7/site-packages/google/protobuf/

HOME
Current File : /lib/python2.7/site-packages/google/protobuf//service_reflection.py
# Protocol Buffers - Google's data interchange format
# Copyright 2008 Google Inc.  All rights reserved.
# https://developers.google.com/protocol-buffers/
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions are
# met:
#
#     * Redistributions of source code must retain the above copyright
# notice, this list of conditions and the following disclaimer.
#     * Redistributions in binary form must reproduce the above
# copyright notice, this list of conditions and the following disclaimer
# in the documentation and/or other materials provided with the
# distribution.
#     * Neither the name of Google Inc. nor the names of its
# contributors may be used to endorse or promote products derived from
# this software without specific prior written permission.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

"""Contains metaclasses used to create protocol service and service stub
classes from ServiceDescriptor objects at runtime.

The GeneratedServiceType and GeneratedServiceStubType metaclasses are used to
inject all useful functionality into the classes output by the protocol
compiler at compile-time.
"""

__author__ = 'petar@google.com (Petar Petrov)'


class GeneratedServiceType(type):

  """Metaclass for service classes created at runtime from ServiceDescriptors.

  Implementations for all methods described in the Service class are added here
  by this class. We also create properties to allow getting/setting all fields
  in the protocol message.

  The protocol compiler currently uses this metaclass to create protocol service
  classes at runtime. Clients can also manually create their own classes at
  runtime, as in this example:

  mydescriptor = ServiceDescriptor(.....)
  class MyProtoService(service.Service):
    __metaclass__ = GeneratedServiceType
    DESCRIPTOR = mydescriptor
  myservice_instance = MyProtoService()
  ...
  """

  _DESCRIPTOR_KEY = 'DESCRIPTOR'

  def __init__(cls, name, bases, dictionary):
    """Creates a message service class.

    Args:
      name: Name of the class (ignored, but required by the metaclass
        protocol).
      bases: Base classes of the class being constructed.
      dictionary: The class dictionary of the class being constructed.
        dictionary[_DESCRIPTOR_KEY] must contain a ServiceDescriptor object
        describing this protocol service type.
    """
    # Don't do anything if this class doesn't have a descriptor. This happens
    # when a service class is subclassed.
    if GeneratedServiceType._DESCRIPTOR_KEY not in dictionary:
      return
    descriptor = dictionary[GeneratedServiceType._DESCRIPTOR_KEY]
    service_builder = _ServiceBuilder(descriptor)
    service_builder.BuildService(cls)


class GeneratedServiceStubType(GeneratedServiceType):

  """Metaclass for service stubs created at runtime from ServiceDescriptors.

  This class has similar responsibilities as GeneratedServiceType, except that
  it creates the service stub classes.
  """

  _DESCRIPTOR_KEY = 'DESCRIPTOR'

  def __init__(cls, name, bases, dictionary):
    """Creates a message service stub class.

    Args:
      name: Name of the class (ignored, here).
      bases: Base classes of the class being constructed.
      dictionary: The class dictionary of the class being constructed.
        dictionary[_DESCRIPTOR_KEY] must contain a ServiceDescriptor object
        describing this protocol service type.
    """
    super(GeneratedServiceStubType, cls).__init__(name, bases, dictionary)
    # Don't do anything if this class doesn't have a descriptor. This happens
    # when a service stub is subclassed.
    if GeneratedServiceStubType._DESCRIPTOR_KEY not in dictionary:
      return
    descriptor = dictionary[GeneratedServiceStubType._DESCRIPTOR_KEY]
    service_stub_builder = _ServiceStubBuilder(descriptor)
    service_stub_builder.BuildServiceStub(cls)


class _ServiceBuilder(object):

  """This class constructs a protocol service class using a service descriptor.

  Given a service descriptor, this class constructs a class that represents
  the specified service descriptor. One service builder instance constructs
  exactly one service class. That means all instances of that class share the
  same builder.
  """

  def __init__(self, service_descriptor):
    """Initializes an instance of the service class builder.

    Args:
      service_descriptor: ServiceDescriptor to use when constructing the
        service class.
    """
    self.descriptor = service_descriptor

  def BuildService(self, cls):
    """Constructs the service class.

    Args:
      cls: The class that will be constructed.
    """

    # CallMethod needs to operate with an instance of the Service class. This
    # internal wrapper function exists only to be able to pass the service
    # instance to the method that does the real CallMethod work.
    def _WrapCallMethod(srvc, method_descriptor,
                        rpc_controller, request, callback):
      return self._CallMethod(srvc, method_descriptor,
                       rpc_controller, request, callback)
    self.cls = cls
    cls.CallMethod = _WrapCallMethod
    cls.GetDescriptor = staticmethod(lambda: self.descriptor)
    cls.GetDescriptor.__doc__ = "Returns the service descriptor."
    cls.GetRequestClass = self._GetRequestClass
    cls.GetResponseClass = self._GetResponseClass
    for method in self.descriptor.methods:
      setattr(cls, method.name, self._GenerateNonImplementedMethod(method))

  def _CallMethod(self, srvc, method_descriptor,
                  rpc_controller, request, callback):
    """Calls the method described by a given method descriptor.

    Args:
      srvc: Instance of the service for which this method is called.
      method_descriptor: Descriptor that represent the method to call.
      rpc_controller: RPC controller to use for this method's execution.
      request: Request protocol message.
      callback: A callback to invoke after the method has completed.
    """
    if method_descriptor.containing_service != self.descriptor:
      raise RuntimeError(
          'CallMethod() given method descriptor for wrong service type.')
    method = getattr(srvc, method_descriptor.name)
    return method(rpc_controller, request, callback)

  def _GetRequestClass(self, method_descriptor):
    """Returns the class of the request protocol message.

    Args:
      method_descriptor: Descriptor of the method for which to return the
        request protocol message class.

    Returns:
      A class that represents the input protocol message of the specified
      method.
    """
    if method_descriptor.containing_service != self.descriptor:
      raise RuntimeError(
          'GetRequestClass() given method descriptor for wrong service type.')
    return method_descriptor.input_type._concrete_class

  def _GetResponseClass(self, method_descriptor):
    """Returns the class of the response protocol message.

    Args:
      method_descriptor: Descriptor of the method for which to return the
        response protocol message class.

    Returns:
      A class that represents the output protocol message of the specified
      method.
    """
    if method_descriptor.containing_service != self.descriptor:
      raise RuntimeError(
          'GetResponseClass() given method descriptor for wrong service type.')
    return method_descriptor.output_type._concrete_class

  def _GenerateNonImplementedMethod(self, method):
    """Generates and returns a method that can be set for a service methods.

    Args:
      method: Descriptor of the service method for which a method is to be
        generated.

    Returns:
      A method that can be added to the service class.
    """
    return lambda inst, rpc_controller, request, callback: (
        self._NonImplementedMethod(method.name, rpc_controller, callback))

  def _NonImplementedMethod(self, method_name, rpc_controller, callback):
    """The body of all methods in the generated service class.

    Args:
      method_name: Name of the method being executed.
      rpc_controller: RPC controller used to execute this method.
      callback: A callback which will be invoked when the method finishes.
    """
    rpc_controller.SetFailed('Method %s not implemented.' % method_name)
    callback(None)


class _ServiceStubBuilder(object):

  """Constructs a protocol service stub class using a service descriptor.

  Given a service descriptor, this class constructs a suitable stub class.
  A stub is just a type-safe wrapper around an RpcChannel which emulates a
  local implementation of the service.

  One service stub builder instance constructs exactly one class. It means all
  instances of that class share the same service stub builder.
  """

  def __init__(self, service_descriptor):
    """Initializes an instance of the service stub class builder.

    Args:
      service_descriptor: ServiceDescriptor to use when constructing the
        stub class.
    """
    self.descriptor = service_descriptor

  def BuildServiceStub(self, cls):
    """Constructs the stub class.

    Args:
      cls: The class that will be constructed.
    """

    def _ServiceStubInit(stub, rpc_channel):
      stub.rpc_channel = rpc_channel
    self.cls = cls
    cls.__init__ = _ServiceStubInit
    for method in self.descriptor.methods:
      setattr(cls, method.name, self._GenerateStubMethod(method))

  def _GenerateStubMethod(self, method):
    return (lambda inst, rpc_controller, request, callback=None:
        self._StubMethod(inst, method, rpc_controller, request, callback))

  def _StubMethod(self, stub, method_descriptor,
                  rpc_controller, request, callback):
    """The body of all service methods in the generated stub class.

    Args:
      stub: Stub instance.
      method_descriptor: Descriptor of the invoked method.
      rpc_controller: Rpc controller to execute the method.
      request: Request protocol message.
      callback: A callback to execute when the method finishes.
    Returns:
      Response message (in case of blocking call).
    """
    return stub.rpc_channel.CallMethod(
        method_descriptor, rpc_controller, request,
        method_descriptor.output_type._concrete_class, callback)

Current_dir [ NOT WRITEABLE ] Document_root [ WRITEABLE ]


[ Back ]
NAME
SIZE
LAST TOUCH
USER
CAN-I?
FUNCTIONS
..
--
20 Feb 2024 12.46 PM
root / root
0755
compiler
--
28 Feb 2025 12.49 AM
root / root
0755
internal
--
28 Feb 2025 12.49 AM
root / root
0755
pyext
--
28 Feb 2025 12.49 AM
root / root
0755
util
--
28 Feb 2025 12.49 AM
root / root
0755
__init__.py
1.846 KB
20 Feb 2024 12.46 PM
root / root
0644
__init__.pyc
0.399 KB
20 Feb 2024 12.46 PM
root / root
0644
__init__.pyo
0.399 KB
20 Feb 2024 12.46 PM
root / root
0644
any_pb2.py
2.555 KB
20 Feb 2024 12.46 PM
root / root
0644
any_pb2.pyc
2.646 KB
20 Feb 2024 12.46 PM
root / root
0644
any_pb2.pyo
2.646 KB
20 Feb 2024 12.46 PM
root / root
0644
any_test_pb2.py
3.157 KB
20 Feb 2024 12.46 PM
root / root
0644
any_test_pb2.pyc
2.897 KB
20 Feb 2024 12.46 PM
root / root
0644
any_test_pb2.pyo
2.897 KB
20 Feb 2024 12.46 PM
root / root
0644
api_pb2.py
10.743 KB
20 Feb 2024 12.46 PM
root / root
0644
api_pb2.pyc
6.527 KB
20 Feb 2024 12.46 PM
root / root
0644
api_pb2.pyo
6.527 KB
20 Feb 2024 12.46 PM
root / root
0644
descriptor.py
40.67 KB
20 Feb 2024 12.46 PM
root / root
0644
descriptor.pyc
37.622 KB
20 Feb 2024 12.46 PM
root / root
0644
descriptor.pyo
37.622 KB
20 Feb 2024 12.46 PM
root / root
0644
descriptor_database.py
6.147 KB
20 Feb 2024 12.46 PM
root / root
0644
descriptor_database.pyc
5.124 KB
20 Feb 2024 12.46 PM
root / root
0644
descriptor_database.pyo
5.124 KB
20 Feb 2024 12.46 PM
root / root
0644
descriptor_pb2.py
90.057 KB
20 Feb 2024 12.46 PM
root / root
0644
descriptor_pb2.pyc
42.818 KB
20 Feb 2024 12.46 PM
root / root
0644
descriptor_pb2.pyo
42.818 KB
20 Feb 2024 12.46 PM
root / root
0644
descriptor_pool.py
37.003 KB
20 Feb 2024 12.46 PM
root / root
0644
descriptor_pool.pyc
30.666 KB
20 Feb 2024 12.46 PM
root / root
0644
descriptor_pool.pyo
30.636 KB
20 Feb 2024 12.46 PM
root / root
0644
duration_pb2.py
2.646 KB
20 Feb 2024 12.46 PM
root / root
0644
duration_pb2.pyc
2.677 KB
20 Feb 2024 12.46 PM
root / root
0644
duration_pb2.pyo
2.677 KB
20 Feb 2024 12.46 PM
root / root
0644
empty_pb2.py
1.815 KB
20 Feb 2024 12.46 PM
root / root
0644
empty_pb2.pyc
2.091 KB
20 Feb 2024 12.46 PM
root / root
0644
empty_pb2.pyo
2.091 KB
20 Feb 2024 12.46 PM
root / root
0644
field_mask_pb2.py
2.286 KB
20 Feb 2024 12.46 PM
root / root
0644
field_mask_pb2.pyc
2.534 KB
20 Feb 2024 12.46 PM
root / root
0644
field_mask_pb2.pyo
2.534 KB
20 Feb 2024 12.46 PM
root / root
0644
json_format.py
29.136 KB
20 Feb 2024 12.46 PM
root / root
0644
json_format.pyc
24.451 KB
20 Feb 2024 12.46 PM
root / root
0644
json_format.pyo
24.451 KB
20 Feb 2024 12.46 PM
root / root
0644
map_proto2_unittest_pb2.py
52.389 KB
20 Feb 2024 12.46 PM
root / root
0644
map_proto2_unittest_pb2.pyc
24.462 KB
20 Feb 2024 12.46 PM
root / root
0644
map_proto2_unittest_pb2.pyo
24.462 KB
20 Feb 2024 12.46 PM
root / root
0644
map_unittest_pb2.py
118.683 KB
20 Feb 2024 12.46 PM
root / root
0644
map_unittest_pb2.pyc
52.218 KB
20 Feb 2024 12.46 PM
root / root
0644
map_unittest_pb2.pyo
52.218 KB
20 Feb 2024 12.46 PM
root / root
0644
message.py
11.186 KB
20 Feb 2024 12.46 PM
root / root
0644
message.pyc
12.106 KB
20 Feb 2024 12.46 PM
root / root
0644
message.pyo
12.106 KB
20 Feb 2024 12.46 PM
root / root
0644
message_factory.py
6.132 KB
20 Feb 2024 12.46 PM
root / root
0644
message_factory.pyc
4.575 KB
20 Feb 2024 12.46 PM
root / root
0644
message_factory.pyo
4.575 KB
20 Feb 2024 12.46 PM
root / root
0644
proto_builder.py
5.08 KB
20 Feb 2024 12.46 PM
root / root
0644
proto_builder.pyc
3.293 KB
20 Feb 2024 12.46 PM
root / root
0644
proto_builder.pyo
3.293 KB
20 Feb 2024 12.46 PM
root / root
0644
reflection.py
4.455 KB
20 Feb 2024 12.46 PM
root / root
0644
reflection.pyc
2.982 KB
20 Feb 2024 12.46 PM
root / root
0644
reflection.pyo
2.982 KB
20 Feb 2024 12.46 PM
root / root
0644
service.py
8.93 KB
20 Feb 2024 12.46 PM
root / root
0644
service.pyc
9.399 KB
20 Feb 2024 12.46 PM
root / root
0644
service.pyo
9.399 KB
20 Feb 2024 12.46 PM
root / root
0644
service_reflection.py
10.765 KB
20 Feb 2024 12.46 PM
root / root
0644
service_reflection.pyc
11.05 KB
20 Feb 2024 12.46 PM
root / root
0644
service_reflection.pyo
11.05 KB
20 Feb 2024 12.46 PM
root / root
0644
source_context_pb2.py
2.398 KB
20 Feb 2024 12.46 PM
root / root
0644
source_context_pb2.pyc
2.652 KB
20 Feb 2024 12.46 PM
root / root
0644
source_context_pb2.pyo
2.652 KB
20 Feb 2024 12.46 PM
root / root
0644
struct_pb2.py
10.554 KB
20 Feb 2024 12.46 PM
root / root
0644
struct_pb2.pyc
6.502 KB
20 Feb 2024 12.46 PM
root / root
0644
struct_pb2.pyo
6.502 KB
20 Feb 2024 12.46 PM
root / root
0644
symbol_database.py
6.272 KB
20 Feb 2024 12.46 PM
root / root
0644
symbol_database.pyc
5.981 KB
20 Feb 2024 12.46 PM
root / root
0644
symbol_database.pyo
5.981 KB
20 Feb 2024 12.46 PM
root / root
0644
test_messages_proto2_pb2.py
102.496 KB
20 Feb 2024 12.46 PM
root / root
0644
test_messages_proto2_pb2.pyc
49.896 KB
20 Feb 2024 12.46 PM
root / root
0644
test_messages_proto2_pb2.pyo
49.896 KB
20 Feb 2024 12.46 PM
root / root
0644
test_messages_proto3_pb2.py
112.719 KB
20 Feb 2024 12.46 PM
root / root
0644
test_messages_proto3_pb2.pyc
55.646 KB
20 Feb 2024 12.46 PM
root / root
0644
test_messages_proto3_pb2.pyo
55.646 KB
20 Feb 2024 12.46 PM
root / root
0644
text_encoding.py
4.509 KB
20 Feb 2024 12.46 PM
root / root
0644
text_encoding.pyc
3.258 KB
20 Feb 2024 12.46 PM
root / root
0644
text_encoding.pyo
3.258 KB
20 Feb 2024 12.46 PM
root / root
0644
text_format.py
50.425 KB
20 Feb 2024 12.46 PM
root / root
0644
text_format.pyc
47.021 KB
20 Feb 2024 12.46 PM
root / root
0644
text_format.pyo
46.986 KB
20 Feb 2024 12.46 PM
root / root
0644
timestamp_pb2.py
2.666 KB
20 Feb 2024 12.46 PM
root / root
0644
timestamp_pb2.pyc
2.692 KB
20 Feb 2024 12.46 PM
root / root
0644
timestamp_pb2.pyo
2.692 KB
20 Feb 2024 12.46 PM
root / root
0644
type_pb2.py
21.88 KB
20 Feb 2024 12.46 PM
root / root
0644
type_pb2.pyc
11.862 KB
20 Feb 2024 12.46 PM
root / root
0644
type_pb2.pyo
11.862 KB
20 Feb 2024 12.46 PM
root / root
0644
unittest_arena_pb2.py
4.354 KB
20 Feb 2024 12.46 PM
root / root
0644
unittest_arena_pb2.pyc
3.526 KB
20 Feb 2024 12.46 PM
root / root
0644
unittest_arena_pb2.pyo
3.526 KB
20 Feb 2024 12.46 PM
root / root
0644
unittest_custom_options_pb2.py
82.74 KB
20 Feb 2024 12.46 PM
root / root
0644
unittest_custom_options_pb2.pyc
39.314 KB
20 Feb 2024 12.46 PM
root / root
0644
unittest_custom_options_pb2.pyo
39.314 KB
20 Feb 2024 12.46 PM
root / root
0644
unittest_import_pb2.py
4.5 KB
20 Feb 2024 12.46 PM
root / root
0644
unittest_import_pb2.pyc
3.88 KB
20 Feb 2024 12.46 PM
root / root
0644
unittest_import_pb2.pyo
3.88 KB
20 Feb 2024 12.46 PM
root / root
0644
unittest_import_public_pb2.py
2.208 KB
20 Feb 2024 12.46 PM
root / root
0644
unittest_import_public_pb2.pyc
2.451 KB
20 Feb 2024 12.46 PM
root / root
0644
unittest_import_public_pb2.pyo
2.451 KB
20 Feb 2024 12.46 PM
root / root
0644
unittest_mset_pb2.py
9.765 KB
20 Feb 2024 12.46 PM
root / root
0644
unittest_mset_pb2.pyc
5.88 KB
20 Feb 2024 12.46 PM
root / root
0644
unittest_mset_pb2.pyo
5.88 KB
20 Feb 2024 12.46 PM
root / root
0644
unittest_mset_wire_format_pb2.py
3.534 KB
20 Feb 2024 12.46 PM
root / root
0644
unittest_mset_wire_format_pb2.pyc
3.096 KB
20 Feb 2024 12.46 PM
root / root
0644
unittest_mset_wire_format_pb2.pyo
3.096 KB
20 Feb 2024 12.46 PM
root / root
0644
unittest_no_arena_import_pb2.py
2.187 KB
20 Feb 2024 12.46 PM
root / root
0644
unittest_no_arena_import_pb2.pyc
2.398 KB
20 Feb 2024 12.46 PM
root / root
0644
unittest_no_arena_import_pb2.pyo
2.398 KB
20 Feb 2024 12.46 PM
root / root
0644
unittest_no_arena_pb2.py
50.384 KB
20 Feb 2024 12.46 PM
root / root
0644
unittest_no_arena_pb2.pyc
26.707 KB
20 Feb 2024 12.46 PM
root / root
0644
unittest_no_arena_pb2.pyo
26.707 KB
20 Feb 2024 12.46 PM
root / root
0644
unittest_no_generic_services_pb2.py
4.205 KB
20 Feb 2024 12.46 PM
root / root
0644
unittest_no_generic_services_pb2.pyc
3.988 KB
20 Feb 2024 12.46 PM
root / root
0644
unittest_no_generic_services_pb2.pyo
3.988 KB
20 Feb 2024 12.46 PM
root / root
0644
unittest_pb2.py
344.276 KB
20 Feb 2024 12.46 PM
root / root
0644
unittest_pb2.pyc
162.427 KB
20 Feb 2024 12.46 PM
root / root
0644
unittest_pb2.pyo
162.427 KB
20 Feb 2024 12.46 PM
root / root
0644
unittest_proto3_arena_pb2.py
53.456 KB
20 Feb 2024 12.46 PM
root / root
0644
unittest_proto3_arena_pb2.pyc
27.251 KB
20 Feb 2024 12.46 PM
root / root
0644
unittest_proto3_arena_pb2.pyo
27.251 KB
20 Feb 2024 12.46 PM
root / root
0644
wrappers_pb2.py
11.354 KB
20 Feb 2024 12.46 PM
root / root
0644
wrappers_pb2.pyc
6.372 KB
20 Feb 2024 12.46 PM
root / root
0644
wrappers_pb2.pyo
6.372 KB
20 Feb 2024 12.46 PM
root / root
0644

GRAYBYTE WORDPRESS FILE MANAGER @ 2026 CONTACT ME
Static GIF