'Provides the server descriptors with the given fingerprints. If no
fingerprints are provided then this returns all descriptors in the present
consensus.
:param str,list fingerprints: fingerprint or list of fingerprints to be
retrieved, gets all descriptors if **None**
:param query_args: additional arguments for the
:class:`~stem.descriptor.remote.Query` constructor
:returns: :class:`~stem.descriptor.remote.Query` for the server descriptors
:raises: **ValueError** if we request more than 96 descriptors by their
fingerprints (this is due to a limit on the url length by squid proxies).'

def get_server_descriptors(self, fingerprints=None, **query_args):

    resource = '/tor/server/all.z'
    if isinstance(fingerprints, str):
        fingerprints = [fingerprints]
    if fingerprints:
        if (len(fingerprints) > MAX_FINGERPRINTS):
            raise ValueError(('Unable    to    request    more    than    %i    descriptors    at    a    time    by    their    fingerprints' % MAX_FINGERPRINTS))
        resource = ('/tor/server/fp/%s.z' % '+'.join(fingerprints))
    return self.query(resource, **query_args)
