{"library":"pybind11-stubgen","title":"Pybind11 Type Stub Generator","description":"pybind11-stubgen is a PEP 561 type stubs generator for pybind11 modules. It creates `.pyi` files, making C++ extensions more understandable to static analysis tools and IDEs for improved type checking. The project is actively maintained, with regular releases (currently at version 2.5.5) providing bug fixes and new features.","language":"python","status":"active","last_verified":"Fri May 15","install":{"commands":["pip install pybind11-stubgen"],"cli":{"name":"pybind11-stubgen","version":"usage: pybind11-stubgen [-h] [-o OUTPUT_DIR] [--root-suffix ROOT_SUFFIX]"}},"imports":["from pybind11_stubgen import main"],"auth":{"required":false,"env_vars":[]},"quickstart":{"code":"import os\nimport subprocess\nimport shutil\n\n# To generate stubs for a pybind11 module named 'my_module':\n# 1. Ensure 'my_module' is installed and importable in your Python environment.\n# 2. This example demonstrates generating stubs for the 'numpy' module.\n#    (Requires numpy to be installed: `pip install numpy`)\n\n# Create a temporary directory for output\noutput_dir = \"temp_stubs\"\nos.makedirs(output_dir, exist_ok=True)\n\ntry:\n    print(f\"Generating stubs for 'numpy' into '{output_dir}'...\")\n    # Execute the command-line tool\n    result = subprocess.run(\n        [\"pybind11-stubgen\", \"numpy\", \"-o\", output_dir],\n        capture_output=True,\n        text=True,\n        check=True\n    )\n    print(\"STDOUT:\", result.stdout)\n    print(\"STDERR:\", result.stderr)\n    print(f\"\\nStubs generated in '{output_dir}'. Contents:\")\n    for root, _, files in os.walk(output_dir):\n        for f in files:\n            print(os.path.join(root, f))\nexcept subprocess.CalledProcessError as e:\n    print(f\"Error generating stubs: {e}\")\n    print(\"STDOUT:\", e.stdout)\n    print(\"STDERR:\", e.stderr)\nexcept FileNotFoundError:\n    print(\"Error: 'pybind11-stubgen' command not found. Is it installed and in your PATH?\")\nexcept Exception as e:\n    print(f\"An unexpected error occurred: {e}\")\nfinally:\n    # Clean up the temporary directory\n    if os.path.exists(output_dir):\n        print(f\"\\nCleaning up '{output_dir}'...\")\n        shutil.rmtree(output_dir)","lang":"python","description":"This quickstart demonstrates how to use `pybind11-stubgen` via its command-line interface to generate type stubs for an existing module (e.g., `numpy`). Ensure the target module is importable in your environment before running the stub generator.","tag":null,"tag_description":null,"last_tested":null,"results":[]},"compatibility":{"tag":null,"tag_description":null,"last_tested":"2026-05-15","installed_version":"2.5.5","pypi_latest":"2.5.5","is_stale":false,"summary":{"python_range":"3.10–3.9","success_rate":100,"avg_install_s":1.6,"avg_import_s":0.1,"wheel_type":"wheel"},"results":[{"runtime":"python:3.10-alpine","python_version":"3.10","os_libc":"alpine (musl)","variant":"pybind11-stubgen","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":0.08,"mem_mb":3.3,"disk_size":"18.1M"},{"runtime":"python:3.10-slim","python_version":"3.10","os_libc":"slim (glibc)","variant":"pybind11-stubgen","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":1.5,"import_time_s":0.05,"mem_mb":3.3,"disk_size":"19M"},{"runtime":"python:3.11-alpine","python_version":"3.11","os_libc":"alpine (musl)","variant":"pybind11-stubgen","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":0.14,"mem_mb":3.9,"disk_size":"20.0M"},{"runtime":"python:3.11-slim","python_version":"3.11","os_libc":"slim (glibc)","variant":"pybind11-stubgen","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":1.6,"import_time_s":0.13,"mem_mb":3.9,"disk_size":"20M"},{"runtime":"python:3.12-alpine","python_version":"3.12","os_libc":"alpine (musl)","variant":"pybind11-stubgen","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":0.12,"mem_mb":3.8,"disk_size":"11.8M"},{"runtime":"python:3.12-slim","python_version":"3.12","os_libc":"slim (glibc)","variant":"pybind11-stubgen","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":1.5,"import_time_s":0.14,"mem_mb":3.8,"disk_size":"12M"},{"runtime":"python:3.13-alpine","python_version":"3.13","os_libc":"alpine (musl)","variant":"pybind11-stubgen","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":0.11,"mem_mb":3.8,"disk_size":"11.6M"},{"runtime":"python:3.13-slim","python_version":"3.13","os_libc":"slim (glibc)","variant":"pybind11-stubgen","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":1.5,"import_time_s":0.11,"mem_mb":3.6,"disk_size":"12M"},{"runtime":"python:3.9-alpine","python_version":"3.9","os_libc":"alpine (musl)","variant":"pybind11-stubgen","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":0.07,"mem_mb":3.2,"disk_size":"17.6M"},{"runtime":"python:3.9-slim","python_version":"3.9","os_libc":"slim (glibc)","variant":"pybind11-stubgen","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":1.8,"import_time_s":0.06,"mem_mb":3.2,"disk_size":"18M"}]}}