# get-profile
A simple library to inject the most profiling bang-for-buck into a single line of code (decorator).
I.E.
```python
import time
from get_profile import get_profile
def your_function_a():
time.sleep(1)
def your_function_b():
time.sleep(2)
@get_profile
def your_program():
your_function_a()
your_function_b()
if __name__ == '__main__':
your_program()
```
Would print something like this after your program has run:
```
Profiling results for "your_program":
===============================================================================================================================
| func | ncalls | tottime -r | percall -r | tottime | percall | callees |
===============================================================================================================================
| CALLABLE: your_program | 1 | 3.0073 | 3.0073 | 0.0003 | 0.0 | CALLABLE: your_function_a |
| LINENO: 13 | | | | | | LINENO: 6 |
| FILE: /Users/sonnygeorge/ | | | | | | FILE: /Users/sonnygeorge/get-profile/exa |
| get-profile/example.py | | | | | | mple.py |
| | | | | | | |
| | | | | | | CALLABLE: your_function_b |
| | | | | | | LINENO: 9 |
| | | | | | | FILE: /Users/sonnygeorge/get-profile/exa |
| | | | | | | mple.py |
-------------------------------------------------------------------------------------------------------------------------------
| <built-in method time.sle | 2 | 3.007 | 1.5035 | 3.007 | 2.0 | |
| ep> | | | | | | |
-------------------------------------------------------------------------------------------------------------------------------
| CALLABLE: your_function_b | 1 | 2.002 | 2.002 | 0.0 | 0.0 | <built-in method time.sleep> |
| LINENO: 9 | | | | | | |
| FILE: /Users/sonnygeorge/ | | | | | | |
| get-profile/example.py | | | | | | |
-------------------------------------------------------------------------------------------------------------------------------
| CALLABLE: your_function_a | 1 | 1.005 | 1.005 | 0.0 | 0.0 | <built-in method time.sleep> |
| LINENO: 6 | | | | | | |
| FILE: /Users/sonnygeorge/ | | | | | | |
| get-profile/example.py | | | | | | |
-------------------------------------------------------------------------------------------------------------------------------
```
Installation
------------
``get-profile`` can be installed with ``pip``:
$ pip install get-profile
Decorator Parameters
--------------------
Release 0.0.2 supports the following parameters for the get_profile decorator:
```python
get_profile(
# topn limits the table to only the top n rows
top_n: int = 10,
# only_my_functions = True will filter out functions whose
# "func" field contains the regex pattern:
# r"/python[0-9]+\.[0-9]+/|<.*>",
# (a hacky way to limit the output to just your own functions)
only_my_functions: bool = False,
# sort_by is the column you would like to sort by (descending)
sort_by: str = "tottime -r",
# min_col is the column you would like to filter by (min_val)
min_col: str = "tottime -r",
# min_val is the minimum value for the min_col
min_val: float = 0.005,
# output_width is the width in chars of the output table
output_width: int = 150,
# toggles whether or not the "calees" column is printed
callees: bool = True,
)
```
Raw data
{
"_id": null,
"home_page": "",
"name": "get-profile",
"maintainer": "",
"docs_url": null,
"requires_python": "",
"maintainer_email": "",
"keywords": "python,profiling,profile,runtime,decorator,cprofile",
"author": "Sonny George",
"author_email": "<sonnygeorge5@gmail.com>",
"download_url": "https://files.pythonhosted.org/packages/0c/8b/e931e6f4e367731f818ef155055f0ba5a4d46d25c42fd5e390dbc000ec77/get-profile-0.0.2.tar.gz",
"platform": null,
"description": "\n# get-profile\n\nA simple library to inject the most profiling bang-for-buck into a single line of code (decorator).\n\nI.E.\n\n```python\nimport time\n\nfrom get_profile import get_profile\n\n\ndef your_function_a():\n time.sleep(1)\n\ndef your_function_b():\n time.sleep(2)\n\n\n@get_profile\ndef your_program():\n your_function_a()\n your_function_b()\n\n\nif __name__ == '__main__':\n your_program()\n```\nWould print something like this after your program has run:\n\n```\nProfiling results for \"your_program\":\n\n===============================================================================================================================\n| func | ncalls | tottime -r | percall -r | tottime | percall | callees |\n===============================================================================================================================\n| CALLABLE: your_program | 1 | 3.0073 | 3.0073 | 0.0003 | 0.0 | CALLABLE: your_function_a |\n| LINENO: 13 | | | | | | LINENO: 6 |\n| FILE: /Users/sonnygeorge/ | | | | | | FILE: /Users/sonnygeorge/get-profile/exa |\n| get-profile/example.py | | | | | | mple.py |\n| | | | | | | |\n| | | | | | | CALLABLE: your_function_b |\n| | | | | | | LINENO: 9 |\n| | | | | | | FILE: /Users/sonnygeorge/get-profile/exa |\n| | | | | | | mple.py |\n-------------------------------------------------------------------------------------------------------------------------------\n| <built-in method time.sle | 2 | 3.007 | 1.5035 | 3.007 | 2.0 | |\n| ep> | | | | | | |\n-------------------------------------------------------------------------------------------------------------------------------\n| CALLABLE: your_function_b | 1 | 2.002 | 2.002 | 0.0 | 0.0 | <built-in method time.sleep> |\n| LINENO: 9 | | | | | | |\n| FILE: /Users/sonnygeorge/ | | | | | | |\n| get-profile/example.py | | | | | | |\n-------------------------------------------------------------------------------------------------------------------------------\n| CALLABLE: your_function_a | 1 | 1.005 | 1.005 | 0.0 | 0.0 | <built-in method time.sleep> |\n| LINENO: 6 | | | | | | |\n| FILE: /Users/sonnygeorge/ | | | | | | |\n| get-profile/example.py | | | | | | |\n-------------------------------------------------------------------------------------------------------------------------------\n```\n\n\nInstallation\n------------\n``get-profile`` can be installed with ``pip``:\n\n $ pip install get-profile\n\n\nDecorator Parameters\n--------------------\n\nRelease 0.0.2 supports the following parameters for the get_profile decorator:\n\n```python\nget_profile(\n\n# topn limits the table to only the top n rows\ntop_n: int = 10,\n\n# only_my_functions = True will filter out functions whose \n# \"func\" field contains the regex pattern: \n# r\"/python[0-9]+\\.[0-9]+/|<.*>\",\n# (a hacky way to limit the output to just your own functions)\nonly_my_functions: bool = False, \n\n# sort_by is the column you would like to sort by (descending)\nsort_by: str = \"tottime -r\",\n\n# min_col is the column you would like to filter by (min_val)\nmin_col: str = \"tottime -r\",\n\n# min_val is the minimum value for the min_col\nmin_val: float = 0.005,\n\n# output_width is the width in chars of the output table\noutput_width: int = 150,\n\n# toggles whether or not the \"calees\" column is printed\ncallees: bool = True,\n\n)\n```\n\n\n",
"bugtrack_url": null,
"license": "",
"summary": "Quickly profile your code with a single line of code.",
"version": "0.0.2",
"split_keywords": [
"python",
"profiling",
"profile",
"runtime",
"decorator",
"cprofile"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "126936525bc922abc0514b699a2f5154ee7fc198c9f5ac35a473bad19eee7d79",
"md5": "42b7b66f2b18c2a08bde26d7732dfff3",
"sha256": "2f45e1871ef92e60d02672b6143053e70654d04e67b733adb9b5e580f41711f9"
},
"downloads": -1,
"filename": "get_profile-0.0.2-py3-none-any.whl",
"has_sig": false,
"md5_digest": "42b7b66f2b18c2a08bde26d7732dfff3",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": null,
"size": 6065,
"upload_time": "2023-01-17T23:58:13",
"upload_time_iso_8601": "2023-01-17T23:58:13.206293Z",
"url": "https://files.pythonhosted.org/packages/12/69/36525bc922abc0514b699a2f5154ee7fc198c9f5ac35a473bad19eee7d79/get_profile-0.0.2-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "0c8be931e6f4e367731f818ef155055f0ba5a4d46d25c42fd5e390dbc000ec77",
"md5": "610c5aa9f0d307e4c9efdf3d1ead8f2b",
"sha256": "0c0eb7d88cca359d97c269d4e4249efb48d64621af81064f6bef3d832da18b6a"
},
"downloads": -1,
"filename": "get-profile-0.0.2.tar.gz",
"has_sig": false,
"md5_digest": "610c5aa9f0d307e4c9efdf3d1ead8f2b",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 5519,
"upload_time": "2023-01-17T23:58:15",
"upload_time_iso_8601": "2023-01-17T23:58:15.338152Z",
"url": "https://files.pythonhosted.org/packages/0c/8b/e931e6f4e367731f818ef155055f0ba5a4d46d25c42fd5e390dbc000ec77/get-profile-0.0.2.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2023-01-17 23:58:15",
"github": false,
"gitlab": false,
"bitbucket": false,
"lcname": "get-profile"
}