Exemplo n.º 1
0
    def calc_percentile(self,member,outdict,inprop,outvalprop,outpercentileprop):
        # store in instance var if needed, no need to access cache for each
        # call.
        #
        # If not found in the instance, than try to get from cache (and set if
        # not found), plus setting it as an instance var. Also removes default
        # ordering by name (we don't need it)
        all_members = getattr(self, '_all_members', None)

        if not all_members:
            all_members = cache.get('all_members', None)
            if not all_members:
                self._all_members = all_members = list(
                    Member.objects.filter(is_current=True).order_by().values())
                cache.set('all_members', all_members, settings.LONG_CACHE_TIME)

        member_count = float(len(all_members))
        member_val = getattr(member,inprop) or 0

        avg = sum(x[inprop] or 0 for x in all_members) / member_count

        var = sum(((x[inprop] or 0) - avg) ** 2 for x in all_members) / member_count

        outdict[outvalprop] = member_val
        outdict[outpercentileprop] = percentile(avg,var,member_val) if var != 0 else 0
Exemplo n.º 2
0
    def calc_percentile(self,member,outdict,inprop,outvalprop,outpercentileprop):
        all_members = Member.objects.filter(is_current=True)
        member_count = float(all_members.count())

        member_val = getattr(member,inprop) or 0
               
        get_inprop = lambda x: getattr(x,inprop) or 0
        avg = sum(map(get_inprop, all_members))
        avg = avg / member_count
        var = sum(map(lambda x: (get_inprop(x)-avg)**2, all_members))
        var = var / member_count
        
        outdict[outvalprop] = member_val 
        outdict[outpercentileprop] = percentile(avg,var,member_val) if var != 0 else 0
Exemplo n.º 3
0
    def calc_percentile(self, member, outdict, inprop, outvalprop,
                        outpercentileprop):
        all_members = Member.objects.filter(is_current=True)
        member_count = float(all_members.count())

        member_val = getattr(member, inprop) or 0

        get_inprop = lambda x: getattr(x, inprop) or 0
        avg = sum(map(get_inprop, all_members))
        avg = avg / member_count
        var = sum(map(lambda x: (get_inprop(x) - avg)**2, all_members))
        var = var / member_count

        outdict[outvalprop] = member_val
        outdict[outpercentileprop] = percentile(avg, var,
                                                member_val) if var != 0 else 0
Exemplo n.º 4
0
    def calc_percentile(self,member,outdict,inprop,outvalprop,outpercentileprop):
        all_members = cache.get('all_members', None)
        if not all_members:
            all_members = list(Member.objects.filter(is_current=True))
            cache.set('all_members', all_members, settings.LONG_CACHE_TIME)
        member_count = float(len(all_members))

        member_val = getattr(member,inprop) or 0

        get_inprop = lambda x: getattr(x,inprop) or 0
        avg = sum(map(get_inprop, all_members))
        avg = avg / member_count
        var = sum(map(lambda x: (get_inprop(x)-avg)**2, all_members))
        var = var / member_count

        outdict[outvalprop] = member_val
        outdict[outpercentileprop] = percentile(avg,var,member_val) if var != 0 else 0
Exemplo n.º 5
0
    def calc_percentile(self, member, outdict, inprop, outvalprop,
                        outpercentileprop):
        all_members = cache.get('all_members', None)
        if not all_members:
            all_members = list(Member.objects.filter(is_current=True))
            cache.set('all_members', all_members, settings.LONG_CACHE_TIME)
        member_count = float(len(all_members))

        member_val = getattr(member, inprop) or 0

        get_inprop = lambda x: getattr(x, inprop) or 0
        avg = sum(map(get_inprop, all_members))
        avg = avg / member_count
        var = sum(map(lambda x: (get_inprop(x) - avg)**2, all_members))
        var = var / member_count

        outdict[outvalprop] = member_val
        outdict[outpercentileprop] = percentile(avg, var,
                                                member_val) if var != 0 else 0