Registry / observability / scooby

scooby

JSON →
library0.11.2pypypi✓ verified 23d ago

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.

pip install scooby
INSTALL
IMPORT
SIG · SCOOBY
S
scooby
observabilitypythonv0.11.2
Install
1.5s avg
Import
96ms
Disk
16MB
Pass rate
10/ 10
Env Coverage10 / 10
glibc
3.93.13
musl
3.93.13
Install & Compatibility
Where this runs
tested against v0.11.2 · pip install
no network on importno background threads
Install × environment matrix
Each cell = how many times install + import succeeded across repeated harness runs. Partial = flaky.
glibc = Debian/Ubuntu slim · musl = Alpine Linux
musl
py 3.103.95 runs
installs and imports cleanly · install 0.0s · import 0.100s · 17.9MB
glibc
py 3.103.95 runs
installs and imports cleanly · install 1.5s · import 0.092s · 18MB
16MB installed
● package 16MB
Code
Verified usage

Verified import paths — ran on the pinned version, not inferred.

Report
from scooby import Report
doo
from scooby import doo
An alias for `Report()` for convenience.
AutoReport
from scooby import AutoReport
For generating reports based on a package's distribution dependencies.
track_imports
from scooby import track_imports
Enables tracking of imported modules during a Python session for reporting.
get_version
from scooby import get_version
Retrieves the version string for a single package.

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.

import scooby # Generate and print a basic environment report report = scooby.Report() print(report) # You can also use the 'doo' alias for fun # print(scooby.doo()) # To report on specific packages (e.g., numpy, matplotlib) and define core/optional # my_report = scooby.Report(additional=['numpy', 'matplotlib'], core=['my_package'], optional=['another_package']) # print(my_report)
scooby --version
Debug
Known issues
breakingAs 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.
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.
affects: >=0.8.0
gotchaWhen 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.
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.
affects: All
gotchaIn 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.
fix
Always use `print(scooby.Report())` in standard Python scripts to ensure the environment report is displayed.
affects: All
gotchaBy 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.
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.
affects: All
Errors
Common errors & fixes
ModuleNotFoundError: No module named 'scooby'
The 'scooby' library has not been installed in the current Python environment.
fix
pip install scooby
AttributeError: module 'scooby' has no attribute 'Report'
The main function name for generating a report is case-sensitive and must be 'report' (lowercase), not 'Report'.
fix
scooby.report()
AttributeError: module 'scooby' has no attribute 'version'
The version of the 'scooby' module is exposed through the special dunder attribute `__version__` or the `get_version()` function, not a direct `version` attribute.
fix
scooby.__version__
TypeError: 'int' object is not iterable
The 'core' or 'optional' arguments of `scooby.report()` expect a string (for a single package) or a list/tuple of strings (for multiple packages), but an uniterable type like an integer or boolean was provided.
fix
scooby.report(core=['numpy', 'scipy'])
Upgrade
Version history
0.11.2latest on PyPI · released Apr 22, 2026
Audit
Dependencies

No dependency data recorded yet.

Agent activity
20 hits · last 30 days
node
16
OpenAI (training)
2
Resources
scooby — pip install scooby · libregistry