{"library":"sarif-tools","title":"SARIF Tools","description":"sarif-tools is a Python library and command-line interface for working with Static Analysis Results Interchange Format (SARIF) files. It provides utilities for summarizing, comparing, transforming, and extracting information from SARIF reports. The current version is 3.0.5, with an active development cadence focusing on bug fixes and occasional breaking changes in major versions.","language":"python","status":"active","last_verified":"Sat May 16","install":{"commands":["pip install sarif-tools"],"cli":{"name":"sarif","version":"SARIF tools v3.0.5"}},"imports":["from sarif_tools.sarif_file_set import SarifFileSet","from sarif_tools.issue_report import IssueReport"],"auth":{"required":false,"env_vars":[]},"quickstart":{"code":"import os\nimport json\nfrom sarif_tools.sarif_file_set import SarifFileSet\n\n# Create a dummy SARIF file for demonstration\ndummy_sarif_content = {\n    \"$schema\": \"https://schemastore.azurewebsites.net/schemas/json/sarif-2.1.0-rtm.5.json\",\n    \"version\": \"2.1.0\",\n    \"runs\": [\n        {\n            \"tool\": {\n                \"driver\": {\n                    \"name\": \"Dummy Tool\"\n                }\n            },\n            \"results\": [\n                {\n                    \"message\": {\"text\": \"A dummy error was found.\"},\n                    \"locations\": [\n                        {\n                            \"physicalLocation\": {\n                                \"artifactLocation\": {\"uri\": \"dummy_code.py\"},\n                                \"region\": {\"startLine\": 1, \"startColumn\": 1}\n                            }\n                        }\n                    ],\n                    \"level\": \"error\",\n                    \"ruleId\": \"DUMMY001\"\n                },\n                {\n                    \"message\": {\"text\": \"A dummy warning was found.\"},\n                    \"locations\": [\n                        {\n                            \"physicalLocation\": {\n                                \"artifactLocation\": {\"uri\": \"dummy_code.py\"},\n                                \"region\": {\"startLine\": 5, \"startColumn\": 10}\n                            }\n                        }\n                    ],\n                    \"level\": \"warning\",\n                    \"ruleId\": \"DUMMY002\"\n                }\n            ]\n        }\n    ]\n}\n\ndummy_sarif_path = \"dummy_report.sarif\"\nwith open(dummy_sarif_path, \"w\", encoding=\"utf-8\") as f:\n    json.dump(dummy_sarif_content, f, indent=2)\n\ntry:\n    # Load a SARIF file set\n    sarif_set = SarifFileSet(dummy_sarif_path)\n\n    # Get the issue report (introduced in v3.0.0)\n    report = sarif_set.get_report()\n\n    # Get issues for a specific severity\n    error_issues = report.get_issues_for_severity('error')\n    print(f\"Found {len(error_issues)} error(s):\")\n    for issue in error_issues:\n        print(f\"  - {issue.message} at {issue.location_string}\")\n\n    warning_issues = report.get_issues_for_severity('warning')\n    print(f\"\\nFound {len(warning_issues)} warning(s):\")\n    for issue in warning_issues:\n        print(f\"  - {issue.message} at {issue.location_string}\")\n\nfinally:\n    # Clean up the dummy file\n    if os.path.exists(dummy_sarif_path):\n        os.remove(dummy_sarif_path)\n","lang":"python","description":"This quickstart demonstrates how to load a SARIF file using `SarifFileSet`, access its issue report via `get_report()`, and then retrieve issues filtered by severity using the v3.0.0+ API. It creates a temporary dummy SARIF file for the example.","tag":null,"tag_description":null,"last_tested":null,"results":[]},"compatibility":{"tag":null,"tag_description":null,"last_tested":"2026-05-16","installed_version":"3.0.5","pypi_latest":"3.0.5","is_stale":false,"summary":{"python_range":"3.10–3.9","success_rate":100,"avg_install_s":8.4,"avg_import_s":null,"wheel_type":"wheel"},"results":[{"runtime":"python:3.10-alpine","python_version":"3.10","os_libc":"alpine (musl)","variant":"sarif-tools","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"broken","install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":"196.7M"},{"runtime":"python:3.10-slim","python_version":"3.10","os_libc":"slim (glibc)","variant":"sarif-tools","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"broken","install_time_s":8.5,"import_time_s":null,"mem_mb":null,"disk_size":"190M"},{"runtime":"python:3.11-alpine","python_version":"3.11","os_libc":"alpine (musl)","variant":"sarif-tools","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"broken","install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":"213.2M"},{"runtime":"python:3.11-slim","python_version":"3.11","os_libc":"slim (glibc)","variant":"sarif-tools","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"broken","install_time_s":7.8,"import_time_s":null,"mem_mb":null,"disk_size":"205M"},{"runtime":"python:3.12-alpine","python_version":"3.12","os_libc":"alpine (musl)","variant":"sarif-tools","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"broken","install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":"200.0M"},{"runtime":"python:3.12-slim","python_version":"3.12","os_libc":"slim (glibc)","variant":"sarif-tools","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"broken","install_time_s":7.5,"import_time_s":null,"mem_mb":null,"disk_size":"191M"},{"runtime":"python:3.13-alpine","python_version":"3.13","os_libc":"alpine (musl)","variant":"sarif-tools","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"broken","install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":"199.3M"},{"runtime":"python:3.13-slim","python_version":"3.13","os_libc":"slim (glibc)","variant":"sarif-tools","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"broken","install_time_s":8,"import_time_s":null,"mem_mb":null,"disk_size":"191M"},{"runtime":"python:3.9-alpine","python_version":"3.9","os_libc":"alpine (musl)","variant":"sarif-tools","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"broken","install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":"200.5M"},{"runtime":"python:3.9-slim","python_version":"3.9","os_libc":"slim (glibc)","variant":"sarif-tools","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"broken","install_time_s":10.2,"import_time_s":null,"mem_mb":null,"disk_size":"196M"}]}}