Skip to main content

profimp - generates tree of imports profiles

Project description

https://img.shields.io/coveralls/boris-42/profimp.svg https://api.travis-ci.org/boris-42/profimp.svg?branch=master https://pypip.in/version/profimp/badge.svg https://pypip.in/py_versions/profimp/badge.svg https://pypip.in/download/profimp/badge.svg

Profimp allows you to trace imports of your code.

This lib should be used to simplify optimization of imports in your code. At least you will find what consumes the most part of time and do the right decisions.

Installation

Installation of profimp is super easy:

sudo pip install profimp

or

git clone https://github.com/boris-42/profimp && cd profimp
sudo python setup.py install

Usage

Syntax:

profimp [import_module_line] [--html]

Samples:

profimp "import collections"

profimp "from somemoudle import something"

prpfimp --html "import multiprocessing"

Pretty HTML reports

if you run prpfimp with –html key you will get pretty html output

profimp "import collections"
American Gothic

Raw JSON Results

In output you will see something like:

profimp "import collections"

{
  "level": 0,
  "finished_at": 1427986324.921502,
  "import_line": "root",
  "duration": 1.0581016540527344,
  "started_at": 1427986324.920444,
  "children": [
    {
      "level": 1,
      "finished_at": 1427986324.9215,
      "import_line": "import collections",
      "duration": 1.0390281677246094,
      "started_at": 1427986324.920461,
      "children": [
        {
          "level": 2,
          "finished_at": 1427986324.920694,
          "import_line": "from _abcoll import *",
          "duration": 0.006198883056640625,
          "started_at": 1427986324.920688,
          "children": []
        },
        {
          "level": 2,
          "finished_at": 1427986324.920702,
          "import_line": "import _abcoll",
          "duration": 0.0019073486328125,
          "started_at": 1427986324.9207,
          "children": []
        },
        {
          "level": 2,
          "finished_at": 1427986324.920891,
          "import_line": "from _collections import deque, defaultdict",
          "duration": 0.1850128173828125,
          "started_at": 1427986324.920706,
          "children": []
        },
        {
          "level": 2,
          "finished_at": 1427986324.920899,
          "import_line": "from operator import itemgetter, eq",
          "duration": 0.00286102294921875,
          "started_at": 1427986324.920896,
          "children": []
        },
        {
          "level": 2,
          "finished_at": 1427986324.921064,
          "import_line": "from keyword import iskeyword",
          "duration": 0.16188621520996094,
          "started_at": 1427986324.920902,
          "children": []
        },
        {
          "level": 2,
          "finished_at": 1427986324.92107,
          "import_line": "import sys",
          "duration": 0.0021457672119140625,
          "started_at": 1427986324.921068,
          "children": []
        },
        {
          "level": 2,
          "finished_at": 1427986324.921402,
          "import_line": "import heapq",
          "duration": 0.3299713134765625,
          "started_at": 1427986324.921072,
          "children": [
            {
              "level": 3,
              "finished_at": 1427986324.921241,
              "import_line": "from itertools import islice, count, imap, izip, tee, chain",
              "duration": 0.0040531158447265625,
              "started_at": 1427986324.921237,
              "children": []
            },
            {
              "level": 3,
              "finished_at": 1427986324.921246,
              "import_line": "from operator import itemgetter",
              "duration": 0.0021457672119140625,
              "started_at": 1427986324.921244,
              "children": []
            },
            {
              "level": 3,
              "finished_at": 1427986324.921391,
              "import_line": "from _heapq import *",
              "duration": 0.13899803161621094,
              "started_at": 1427986324.921252,
              "children": []
            }
          ]
        },
        {
          "level": 2,
          "finished_at": 1427986324.921409,
          "import_line": "from itertools import repeat, chain, starmap",
          "duration": 0.00286102294921875,
          "started_at": 1427986324.921406,
          "children": []
        },
        {
          "level": 2,
          "finished_at": 1427986324.921413,
          "import_line": "from itertools import imap",
          "duration": 0.0019073486328125,
          "started_at": 1427986324.921411,
          "children": []
        },
        {
          "level": 2,
          "finished_at": 1427986324.921455,
          "import_line": "from thread import get_ident",
          "duration": 0.03981590270996094,
          "started_at": 1427986324.921415,
          "children": []
        }
      ]
    }
  ]

Project details


Download files

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

Files for profimp, version 0.1.0
Filename, size File type Python version Upload date Hashes
Filename, size profimp-0.1.0.tar.gz (193.4 kB) File type Source Python version None Upload date Hashes View

Supported by

Pingdom Pingdom Monitoring Google Google Object Storage and Download Analytics Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page