{"library":"pytrec-eval-terrier","title":"pytrec-eval-terrier","description":"pytrec-eval-terrier provides Python bindings for common Information Retrieval evaluation measures, leveraging the highly optimized `trec_eval` C library. It simplifies the process of evaluating ranking performance for search systems. The current version is 0.5.10, and releases occur periodically, often tied to Python version support or minor bug fixes.","language":"python","status":"active","last_verified":"Sat May 16","install":{"commands":["pip install pytrec-eval-terrier"],"cli":null},"imports":["import pytrec_eval","from pytrec_eval import RelevanceEvaluator"],"auth":{"required":false,"env_vars":[]},"quickstart":{"code":"import pytrec_eval\n\n# Example QRELS (Query Relevance Judgments)\n# Format: {query_id: {doc_id: relevance_score}}\nqrels = {\n    'q1': {'d1': 1, 'd2': 0, 'd3': 1},\n    'q2': {'d4': 1, 'd5': 0}\n}\n\n# Example RUNS (System Rankings)\n# Format: {query_id: {doc_id: score}}\nruns = {\n    'q1': {'d1': 0.9, 'd2': 0.8, 'd4': 0.7},\n    'q2': {'d4': 0.95, 'd6': 0.85}\n}\n\n# Define measures to evaluate\nmeasures = pytrec_eval.supported_measures\n# Or a specific set: measures = {'map', 'ndcg_cut.10', 'recip_rank'}\n\n# Instantiate the evaluator\nevaluator = pytrec_eval.RelevanceEvaluator(qrels, measures)\n\n# Evaluate the runs\nresults = evaluator.evaluate(runs)\n\n# Print results for a specific query and measure\nprint(f\"MAP for q1: {results['q1']['map']:.4f}\")\nprint(f\"NDCG@10 for q2: {results['q2']['ndcg_cut_10']:.4f}\")\n\n# Print average results across all queries\nagg_results = pytrec_eval.compute_aggregated_results(evaluator, results, measures)\nprint(f\"Average MAP: {agg_results['map']:.4f}\")\n","lang":"python","description":"This quickstart demonstrates how to use `pytrec_eval` to evaluate a set of runs against relevance judgments. It shows how to prepare QRELs and runs as dictionaries, select evaluation measures, instantiate the `RelevanceEvaluator`, and compute both per-query and aggregated results.","tag":null,"tag_description":null,"last_tested":null,"results":[]},"compatibility":{"tag":null,"tag_description":null,"last_tested":"2026-05-16","installed_version":"0.5.10","pypi_latest":"0.5.10","is_stale":false,"summary":{"python_range":"3.10–3.9","success_rate":100,"avg_install_s":7.2,"avg_import_s":0.25,"wheel_type":"wheel"},"results":[{"runtime":"python:3.10-alpine","python_version":"3.10","os_libc":"alpine (musl)","variant":"pytrec-eval-terrier","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":0.22,"mem_mb":6.7,"disk_size":"235.1M"},{"runtime":"python:3.10-slim","python_version":"3.10","os_libc":"slim (glibc)","variant":"pytrec-eval-terrier","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":6.8,"import_time_s":0.18,"mem_mb":6.7,"disk_size":"223M"},{"runtime":"python:3.11-alpine","python_version":"3.11","os_libc":"alpine (musl)","variant":"pytrec-eval-terrier","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":0.33,"mem_mb":7.1,"disk_size":"250.3M"},{"runtime":"python:3.11-slim","python_version":"3.11","os_libc":"slim (glibc)","variant":"pytrec-eval-terrier","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":6.6,"import_time_s":0.3,"mem_mb":7.1,"disk_size":"236M"},{"runtime":"python:3.12-alpine","python_version":"3.12","os_libc":"alpine (musl)","variant":"pytrec-eval-terrier","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":0.27,"mem_mb":7,"disk_size":"236.3M"},{"runtime":"python:3.12-slim","python_version":"3.12","os_libc":"slim (glibc)","variant":"pytrec-eval-terrier","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":7.4,"import_time_s":0.25,"mem_mb":7,"disk_size":"222M"},{"runtime":"python:3.13-alpine","python_version":"3.13","os_libc":"alpine (musl)","variant":"pytrec-eval-terrier","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":0.21,"mem_mb":7.5,"disk_size":"235.1M"},{"runtime":"python:3.13-slim","python_version":"3.13","os_libc":"slim (glibc)","variant":"pytrec-eval-terrier","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":7.4,"import_time_s":0.3,"mem_mb":7.5,"disk_size":"221M"},{"runtime":"python:3.9-alpine","python_version":"3.9","os_libc":"alpine (musl)","variant":"pytrec-eval-terrier","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":0.2,"mem_mb":6.4,"disk_size":"237.3M"},{"runtime":"python:3.9-slim","python_version":"3.9","os_libc":"slim (glibc)","variant":"pytrec-eval-terrier","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":7.8,"import_time_s":0.2,"mem_mb":6.4,"disk_size":"230M"}]}}