Exemplo n.º 1
0
    def _freq_dist(self, corp: manatee.Corpus, conc: manatee.Concordance,
                   fcrit: str, user_id: int):
        args = freq_calc.FreqCalsArgs()
        args.corpname = corp.corpname
        args.subcname = getattr(corp, 'subcname', None)
        args.subcpath = ''  # TODO xx
        args.user_id = user_id
        args.fromp = 0
        args.pagesize = 100
        args.save = False
        args.samplesize = 0
        args.flimit = 1
        args.fcrit = [fcrit]
        args.ml = 2
        args.ftt_include_empty = 0
        args.rel_mode = 1
        args.collator_locale = 'en_US'  # TODO xx
        args.fmaxitems = 1
        args.fpage = 1
        args.line_offset = 0
        args.force_cache = False

        freqs = [
            conc.xfreq_dist(cr, args.flimit, args.freq_sort, args.ml,
                            args.ftt_include_empty, args.rel_mode,
                            args.collator_locale) for cr in args.fcrit
        ]
        return freqs[0].get('Items', [])
Exemplo n.º 2
0
def calculate_freqs(args):
    args = freq_calc.FreqCalsArgs(**args)
    calculate_freqs.cache_path = args.cache_path
    ans = freq_calc.calc_freqs_bg(args)
    trigger_cache_limit = settings.get_int('corpora', 'freqs_cache_min_lines', 10)
    if args.force_cache or max(len(d.get('Items', ())) for d in ans['freqs']) >= trigger_cache_limit:
        calculate_freqs.cache_data = ans
    else:
        calculate_freqs.cache_data = None
    return ans