code: def get(self, name, request=None):
          
          singlepv = isinstance(name, (bytes, str))
          if singlepv:
              return (yield from self._get_one(name, request=request))
  
          elif request is None:
              request = [None] * len(name)
  
          assert len(name) == len(request), (name, request)
  
          futs = [self._get_one(N, request=R) for N, R in zip(name, request)]
  
          ret = yield from asyncio.gather(*futs, loop=self.loop)
  
          return ret
docs: Fetch current value of some number of PVs.
  
          :param name: A single name string or list of name strings
          :param request: A :py:class:`p4p.Value` or string to qualify this request, or None to use a default.
  
          :returns: A p4p.Value, or list of same.  Subject to :py:ref:`unwrap`.
  
          When invoked with a single name then returns is a single value.
          When invoked with a list of name, then returns a list of values. ::
  
              with Context('pva') as ctxt:
                  V    = yield from ctxt.get('pv:name')
                  A, B = yield from ctxt.get(['pv:1', 'pv:2'])