code: def open_remote(url, entry, container, user_parameters, description, http_args,
                  page_size=None, auth=None, getenv=None, getshell=None):
      
      from intake.container import container_map
      if url.startswith('intake://'):
          url = url[len('intake://'):]
      payload = dict(action='open',
                     name=entry,
                     parameters=user_parameters,
                     available_plugins=list(plugin_registry.keys()))
      req = requests.post(urljoin(url, '/v1/source'),
                          data=msgpack.packb(payload, use_bin_type=True),
                          **http_args)
      if req.ok:
          response = msgpack.unpackb(req.content, **unpack_kwargs)
  
          if 'plugin' in response:
              pl = response['plugin']
              pl = [pl] if isinstance(pl, str) else pl
              # Direct access
              for p in pl:
                  if p in plugin_registry:
                      source = plugin_registry[p](**response['args'])
                      proxy = False
                      break
              else:
                  proxy = True
          else:
              proxy = True
          if proxy:
              response.pop('container')
              response.update({'name': entry, 'parameters': user_parameters})
              if container == 'catalog':
                  response.update({'auth': auth,
                                   'getenv': getenv,
                                   'getshell': getshell,
                                   'page_size': page_size
                                   # TODO ttl?
                                   # TODO storage_options?
                                   })
              source = container_map[container](url, http_args, **response)
          source.description = description
          return source
  
      else:
          raise Exception('Server error: %d, %s' % (req.status_code, req.reason))
docs: Create either local direct data source or remote streamed source