Skip to main content

Show how long each Python import takes during startup

Project description

philiprehberger-import-profiler

Tests PyPI version License

Show how long each Python import takes during startup.

Installation

pip install philiprehberger-import-profiler

Usage

from philiprehberger_import_profiler import profile_imports

report = profile_imports("my_package")

# Slowest imports
for entry in report.slowest(10):
    print(f"{entry.name}: {entry.duration_ms:.1f}ms")

# Tree view
report.print_tree(threshold_ms=5.0)
# └── my_package (124.5ms)
#     ├── requests (45.2ms)
#     │   └── urllib3 (22.1ms)
#     └── numpy (62.0ms)

# Summary
print(f"Total: {report.total_ms:.1f}ms, Modules: {report.module_count}")

# Export
data = report.to_dict()

API

  • profile_imports(module_name) — Profile all imports, returns ImportReport
  • report.slowest(n) — Top N slowest imports
  • report.print_tree(threshold_ms=0) — Print indented tree
  • report.total_ms — Total import time
  • report.to_dict() — Export as list of dicts

Development

pip install -e .
python -m pytest tests/ -v

License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

philiprehberger_import_profiler-0.1.4.tar.gz (4.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

File details

Details for the file philiprehberger_import_profiler-0.1.4.tar.gz.

File metadata

File hashes

Hashes for philiprehberger_import_profiler-0.1.4.tar.gz
Algorithm Hash digest
SHA256 9b0bbfed062a2ba273f6679c07d7d8ee0a72488ac3a862e56431caeaf2e495cf
MD5 11aa198c01d02e9b296be1560528815a
BLAKE2b-256 8e34971d243ff06da0e91d0e64ab163dc5c45060628de6d8c489ee6875c474ad

See more details on using hashes here.

File details

Details for the file philiprehberger_import_profiler-0.1.4-py3-none-any.whl.

File metadata

File hashes

Hashes for philiprehberger_import_profiler-0.1.4-py3-none-any.whl
Algorithm Hash digest
SHA256 841f8fce715214e3e5b4a70f9b55fd485a510029125975baa250b28e3f36f02d
MD5 2a872bc2143d64e89f4fe938fd3d8592
BLAKE2b-256 fcb934585522ec74f4d2104cb46ae278f4e8068d63dcfd321a2ab6a58ecccc4f

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page