@classmethod
  def GetAnnotatedMethods(cls):

    result = {}

    for i_cls in inspect.getmro(cls):
      for name in dir(i_cls):
        cls_method = getattr(i_cls, name)

        if not callable(cls_method):
          continue

        if not hasattr(cls_method, "__http_methods__"):
          continue

        result[name] = RouterMethodMetadata(
            name=name,
            args_type=getattr(cls_method, "__args_type__", None),
            additional_args_types=getattr(
                cls_method, "__additional_args_types__", None),
            result_type=getattr(cls_method, "__result_type__", None),
            category=getattr(cls_method, "__category__", None),
            http_methods=getattr(cls_method, "__http_methods__", set()))

    return result

  # AFF4 access methods.
  # ===================
  #
  # NOTE: These are likely to be deprecated soon in favor
  # of more narrow-scoped VFS access methods.
Install Linux bottles for brew packages that can be tricky to build.
dataset/ETHPy150Open google/grr/grr/gui/api_call_router.py/ApiCallRouter.GetAnnotatedMethods--crossover with--dataset/ETHPy150Open chapmanb/cloudbiolinux/cloudbio/package/brew.py/_install_bottle