def __init__( self,comparison_attr = "size" , acceptable_deviation = .6, *args,**kwargs):
        #Truth related stuff
        self.cases = {}

        self.comparison_attr = comparison_attr
        self.acceptable_deviation = acceptable_deviation

        # make sure the hooks are lists, not just methods
        kwargs.setdefault('hooks',{})

        for key in ['pre_request','response']:
            kwargs['hooks'].setdefault(key,[])

            if hasattr(kwargs['hooks'][key],'__call__'):
                kwargs['hooks'][key] = [kwargs['hooks'][key]]

        kwargs['hooks']['pre_request'].append(requests_pre_hook)

        kwargs['hooks']['response'].append(requests_response_hook)

        #
        # moving things to a session for performance (reduce dns lookups)
        #

        self.request_kwargs = {}

        #pull out any other Query objects
        self.query_objects = {}
        for elt in [q for q in kwargs if isinstance(kwargs[q],Query)]:
            self.request_kwargs[elt] = kwargs[elt]
            del(kwargs[elt])

        # pull out the url, method and data
        if 'method' in kwargs:
            self.request_kwargs['method'] = kwargs['method']
            del(kwargs['method'])
        if 'url' in kwargs:
            self.request_kwargs['url'] = kwargs['url']
            del(kwargs['url'])
        if 'data' in kwargs:
            self.request_kwargs['data'] = kwargs['data']
            del(kwargs['data'])

        # all the same prep stuff that grequests.patched does
        # self.request_kwargs['return_response'] = False
        self.request_kwargs['prefetch'] = True

        config = kwargs.get('config', {})
        config.update(safe_mode=True)

        kwargs['config'] = config

        self.session = requests.session(*args,**kwargs)
:comparison_attr        - the attribute of the objects we are lookig at that will be used for determiniing truth
dataset/ETHPy150Open Neohapsis/bbqsql/bbqsql/lib/requester.py/Requester.__init__