{"library":"reuse","title":"REUSE Compliance Tool","description":"reuse is a Python command-line tool designed to help projects achieve and verify compliance with the REUSE recommendations (https://reuse.software). It facilitates adding copyright and licensing information to files, checking existing compliance, and downloading SPDX license texts. The current version is 6.2.0, with releases occurring regularly, typically every few months for minor versions.","language":"python","status":"active","last_verified":"Sun May 17","install":{"commands":["pip install reuse"],"cli":{"name":"reuse","version":"reuse, version 6.2.0"}},"imports":["from reuse.main import main"],"auth":{"required":false,"env_vars":[]},"quickstart":{"code":"import sys\nfrom pathlib import Path\nfrom reuse.main import main\n\n# Create a dummy project for demonstration\nproject_path = Path(\"my_reuse_project\")\nproject_path.mkdir(exist_ok=True)\n\n# Create a Python file with an SPDX license identifier\n(project_path / \"main.py\").write_text(\"# SPDX-License-Identifier: MIT\")\n\n# Create a dummy LICENSE file\n(project_path / \"LICENSE\").write_text(\"MIT License\\nCopyright (c) 2024 User\")\n\n# Simulate running 'reuse lint my_reuse_project'\nprint(\"\\n--- Running 'reuse lint my_reuse_project' ---\")\noriginal_argv = sys.argv\nsys.argv = ['reuse', 'lint', str(project_path)]\ntry:\n    main()\nexcept SystemExit as e:\n    # main() calls sys.exit() with 0 for success, non-zero for failure\n    if e.code != 0:\n        print(f\"Command 'lint' failed with exit code {e.code}\")\nfinally:\n    sys.argv = original_argv # Restore original argv\n\n# Simulate running 'reuse spdx --json my_reuse_project'\nprint(\"\\n--- Running 'reuse spdx --json my_reuse_project' ---\")\nsys.argv = ['reuse', 'spdx', '--json', str(project_path)]\ntry:\n    main()\nexcept SystemExit as e:\n    if e.code != 0:\n        print(f\"Command 'spdx' failed with exit code {e.code}\")\nfinally:\n    sys.argv = original_argv\n\n# Clean up dummy files and directory\n(project_path / \"main.py\").unlink()\n(project_path / \"LICENSE\").unlink()\nproject_path.rmdir()","lang":"python","description":"This quickstart demonstrates how to use the `reuse` tool programmatically by directly calling its `main` function. It simulates command-line execution by manipulating `sys.argv` and creating a temporary project structure to run `lint` and `spdx` commands.","tag":null,"tag_description":null,"last_tested":null,"results":[]},"compatibility":{"tag":null,"tag_description":null,"last_tested":"2026-05-17","installed_version":"5.1.1","pypi_latest":"6.2.0","is_stale":true,"summary":{"python_range":"3.10–3.9","success_rate":100,"avg_install_s":3.8,"avg_import_s":null,"wheel_type":"sdist"},"results":[{"runtime":"python:3.10-alpine","python_version":"3.10","os_libc":"alpine (musl)","variant":"reuse","exit_code":0,"wheel_type":"sdist","failure_reason":null,"import_side_effects":"broken","install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":"25.1M"},{"runtime":"python:3.10-slim","python_version":"3.10","os_libc":"slim (glibc)","variant":"reuse","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"broken","install_time_s":2.7,"import_time_s":null,"mem_mb":null,"disk_size":"26M"},{"runtime":"python:3.11-alpine","python_version":"3.11","os_libc":"alpine (musl)","variant":"reuse","exit_code":0,"wheel_type":"sdist","failure_reason":null,"import_side_effects":"broken","install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":"28.1M"},{"runtime":"python:3.11-slim","python_version":"3.11","os_libc":"slim (glibc)","variant":"reuse","exit_code":0,"wheel_type":"sdist","failure_reason":null,"import_side_effects":"broken","install_time_s":3.9,"import_time_s":null,"mem_mb":null,"disk_size":"29M"},{"runtime":"python:3.12-alpine","python_version":"3.12","os_libc":"alpine (musl)","variant":"reuse","exit_code":0,"wheel_type":"sdist","failure_reason":null,"import_side_effects":"broken","install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":"19.7M"},{"runtime":"python:3.12-slim","python_version":"3.12","os_libc":"slim (glibc)","variant":"reuse","exit_code":0,"wheel_type":"sdist","failure_reason":null,"import_side_effects":"broken","install_time_s":3.8,"import_time_s":null,"mem_mb":null,"disk_size":"20M"},{"runtime":"python:3.13-alpine","python_version":"3.13","os_libc":"alpine (musl)","variant":"reuse","exit_code":0,"wheel_type":"sdist","failure_reason":null,"import_side_effects":"broken","install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":"19.5M"},{"runtime":"python:3.13-slim","python_version":"3.13","os_libc":"slim (glibc)","variant":"reuse","exit_code":0,"wheel_type":"sdist","failure_reason":null,"import_side_effects":"broken","install_time_s":3.8,"import_time_s":null,"mem_mb":null,"disk_size":"20M"},{"runtime":"python:3.9-alpine","python_version":"3.9","os_libc":"alpine (musl)","variant":"reuse","exit_code":0,"wheel_type":"sdist","failure_reason":null,"import_side_effects":"broken","install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":"26.2M"},{"runtime":"python:3.9-slim","python_version":"3.9","os_libc":"slim (glibc)","variant":"reuse","exit_code":0,"wheel_type":"sdist","failure_reason":null,"import_side_effects":"broken","install_time_s":4.7,"import_time_s":null,"mem_mb":null,"disk_size":"27M"}]}}