def process_one_item(table): monitor.incr("process."+table) # grab the most recent issue to process [issue_id, d, t1] = claim_next(table) print(table, issue_id, d) # get the text [text, t2] = get_text(table, issue_id) # score the text [score_report, t3] = toxicity_report.compute_prediction_report(text) result = {"toxicity."+VERSION: score_report} # write results to db t4=update_db(table,issue_id,result) monitor.timing("db.next."+table,int(t1*1000)) monitor.timing("db.gettext."+table,int(t2*1000)) monitor.timing("db.writeresult."+table,int(t4*1000)) monitor.timing("scoring."+table,int(t3*1000)) monitor.gauge("lastprocessed."+table,parse(d).timestamp()) if score_report["score"]==1: monitor.incr("foundtoxic."+table)
def test_toxic(): [report, time] = toxicity_report.compute_prediction_report("Kill this process!") assert report["score"] == 1 assert report["alt_tried"] == 2
def test_code(): # should behave like empty [report, time] = toxicity_report.compute_prediction_report("`hate`") assert report["score"] == 0 assert report["reason"] == "empty"
def test_nontoxic(): [report, time] = toxicity_report.compute_prediction_report("test") assert report["score"] == 0 assert report["en"] == 1 assert report["orig"]["persp_raw"]["detectedLanguages"] == ["en"]
def test_empty(): [report, time] = toxicity_report.compute_prediction_report("") assert report["score"] == 0 assert report["reason"] == "empty"