{"id":4249,"library":"scooby","title":"Scooby","description":"Scooby is a lightweight Python library designed to report on your Python environment's package versions and hardware resources. It generates nicely formatted reports (HTML for Jupyter notebooks, plain text otherwise) to aid in debugging and reproducibility. Currently at version 0.11.0, it is actively maintained with a consistent release cadence.","status":"active","version":"0.11.0","language":"en","source_language":"en","source_url":"https://github.com/banesullivan/scooby","tags":["environment","diagnostics","reporting","system info","debugging","reproducibility"],"install":[{"cmd":"pip install scooby","lang":"bash","label":"PyPI"},{"cmd":"conda install -c conda-forge scooby","lang":"bash","label":"Conda"}],"dependencies":[],"imports":[{"symbol":"Report","correct":"from scooby import Report"},{"note":"An alias for `Report()` for convenience.","symbol":"doo","correct":"from scooby import doo"},{"note":"For generating reports based on a package's distribution dependencies.","symbol":"AutoReport","correct":"from scooby import AutoReport"},{"note":"Enables tracking of imported modules during a Python session for reporting.","symbol":"track_imports","correct":"from scooby import track_imports"},{"note":"Retrieves the version string for a single package.","symbol":"get_version","correct":"from scooby import get_version"}],"quickstart":{"code":"import scooby\n\n# Generate and print a basic environment report\nreport = scooby.Report()\nprint(report)\n\n# You can also use the 'doo' alias for fun\n# print(scooby.doo())\n\n# To report on specific packages (e.g., numpy, matplotlib) and define core/optional\n# my_report = scooby.Report(additional=['numpy', 'matplotlib'], core=['my_package'], optional=['another_package'])\n# print(my_report)","lang":"python","description":"Instantiate `scooby.Report()` to generate a comprehensive report of your Python environment, including system information, Python version, and versions of specified (or default) packages. The report is automatically formatted for Jupyter notebooks or as plain text when printed."},"warnings":[{"fix":"Ensure your Python environment is 3.8+ for full `importlib.metadata` compatibility. If integrating `scooby` into your own package, test its version reporting across target Python versions.","message":"As of v0.8.0, Scooby primarily uses `importlib.metadata` (standard in Python 3.8+) for retrieving package versions, replacing `pkg_resources`. While fallbacks may exist, applications relying on `scooby` for versioning, especially in older Python environments or with unusual package distributions, should verify compatibility.","severity":"breaking","affected_versions":">=0.8.0"},{"fix":"Use a `try-except ImportError` block when importing `scooby` if it's an optional dependency for your project, providing a graceful fallback or error message.","message":"When integrating Scooby as a 'soft dependency' within another package, directly importing `scooby` might raise an `ImportError` if it's not installed. It's recommended to wrap the import in a `try-except ImportError` block.","severity":"gotcha","affected_versions":"All"},{"fix":"Always use `print(scooby.Report())` in standard Python scripts to ensure the environment report is displayed.","message":"In vanilla Python scripts (outside of Jupyter/IPython environments), simply calling `scooby.Report()` will not display the report. The `Report` object must be explicitly printed to show its plain-text representation.","severity":"gotcha","affected_versions":"All"},{"fix":"When creating a `Report` for your own package, use `scooby.Report(core=['your_package', 'numpy'])` to explicitly define core dependencies, allowing users to differentiate essential vs. optional components.","message":"By default, `scooby.Report()` includes `numpy`, `scipy`, `IPython`, and `matplotlib` (and `scooby` itself) in its 'optional' package list if found. If these packages are crucial 'core' dependencies for the project being reported, they should be explicitly passed to the `core` argument of `scooby.Report()` for clear distinction.","severity":"gotcha","affected_versions":"All"}],"env_vars":null,"last_verified":"2026-04-11T00:00:00.000Z","next_check":"2026-07-10T00:00:00.000Z"}