docs: def fake_KATCP_client_resource_container_factory(
          KATCPClientResourceContainerClass, fake_options, resources_spec,
          *args, **kwargs):
      """Create a fake KATCPClientResourceContainer-like class and a fake-manager
  
      Parameters
      ----------
      KATCPClientResourceContainerClass : class
          Subclass of :class:`katcp.resource_client.KATCPClientResourceContainer`
      fake_options : dict
          Options for the faking process. Keys:
              allow_any_request : bool, default False
              (TODO not implemented behaves as if it were True)
      resources_spec, *args, **kwargs : passed to KATCPClientResourceContainerClass
  
      A subclass of the passed-in KATCPClientResourceClassContainer is created that replaces the
      KATCPClientResource child instances with fakes using fake_KATCP_client_resource_factory()
      based on the KATCPClientResource class used by `KATCPClientResourceContainerClass`.
  
      Returns
      -------
      (fake_katcp_client_resource_container, fake_katcp_client_resource_container_manager):
  
      fake_katcp_client_resource_container : instance of faked subclass of
                                             KATCPClientResourceContainerClass
      fake_katcp_client_resource_manager : :class:`FakeKATCPClientResourceContainerManager`
                                           instance
          Bound to the `fake_katcp_client_resource_container` instance.
  
      """
      # TODO allow_any_request see comment in fake_KATCP_client_resource_factory()
      allow_any_request = fake_options.get('allow_any_request', False)
  
      class FakeKATCPClientResourceContainer(KATCPClientResourceContainerClass):
          def __init__(self, *args, **kwargs):
              self.fake_client_resource_managers = {}
              super(FakeKATCPClientResourceContainer, self).__init__(*args, **kwargs)
  
          def client_resource_factory(self, res_spec, parent, logger):
              real_instance = (super(FakeKATCPClientResourceContainer, self)
                               .client_resource_factory(res_spec, parent, logger) )
              fkcr, fkcr_manager = fake_KATCP_client_resource_factory(
                  real_instance.__class__, fake_options,
                  res_spec, parent=self, logger=logger)
              self.fake_client_resource_managers[
                  resource.escape_name(fkcr.name)] = fkcr_manager
              return fkcr
  
      fkcrc = FakeKATCPClientResourceContainer(resources_spec, *args, **kwargs)
      fkcrc_manager = FakeKATCPClientResourceContainerManager(fkcrc)
      return (fkcrc, fkcrc_manager)