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

Function / Class Description
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.6.tar.gz (4.5 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.6.tar.gz.

File metadata

File hashes

Hashes for philiprehberger_import_profiler-0.1.6.tar.gz
Algorithm Hash digest
SHA256 1d2965e27b585742875ceffee56ac0b5c76ae5366799bc788014c02afee220e6
MD5 8a62e2319ec4a0a5bbb576b9738d20e2
BLAKE2b-256 30ee6e538c46de11334bcec3c5b8c5dbcfb48a7a98172d78410fda2999532a50

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for philiprehberger_import_profiler-0.1.6-py3-none-any.whl
Algorithm Hash digest
SHA256 2a1fc183977ba83dab0d657175e33c752b884dbd17cfce84e67ae74b2836ba1c
MD5 f1ee49329bf1f3ccce5787394af696d1
BLAKE2b-256 df3bcd19cc18864200e4d13c55c5d357520482c79146b839ffabfc8378e6a4c3

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