Name | gousset JSON |
Version |
0.1.0
JSON |
| download |
home_page | None |
Summary | Your pocket profiler - elegant, friendly timing for Python functions |
upload_time | 2025-08-27 10:12:02 |
maintainer | None |
docs_url | None |
author | None |
requires_python | >=3.11 |
license | MIT |
keywords |
profiling
timing
performance
monitoring
friendly
|
VCS |
 |
bugtrack_url |
|
requirements |
No requirements were recorded.
|
Travis-CI |
No Travis.
|
coveralls test coverage |
No coveralls.
|
# ๐ฐ๏ธ Gousset
> *Your pocket profiler* - Elegant, friendly timing for Python functions
[](https://github.com/etienne87/gousset/actions)
**Gousset** (pronounced "goo-SAY") is a simple, unobtrusive timing profiler for Python. Like a elegant pocket watch, it sits quietly and tells you exactly what you need to know about your function performance.
## โจ Features
- **๐ฏ One-line setup** - Just `gousset.instrument(my_module)`
- **๐ Automatic nested call detection** - Captures internal function calls
- **๐ Rich statistics** - Mean, std dev, min, max, call counts
- **๐ซ Zero code changes** - Your modules stay clean
- **๐ Production ready** - Minimal overhead, comprehensive insights
## ๐ Quick Start
```python
import gousset
import my_module
# Instrument your module - that's it!
gousset.instrument(my_module)
# Use your functions normally
result = my_module.some_function()
# Statistics automatically print at program exit
```
## ๐ฆ Installation
```bash
pip install gousset
```
## ๐ญ Why Gousset?
**Other tools are intimidating:**
```python
# cProfile - overwhelming output
python -m cProfile my_script.py # ๐ตโ๐ซ Wall of text
# line_profiler - pollutes your code
@profile # ๐ค Decorators everywhere!
def my_function():
pass
```
**Gousset is friendly:**
```python
import gousset
gousset.instrument(my_module) # ๐ One line, done!
```
## ๐ Sample Output
```
=== Gousset Timing Statistics for Module: my_module ===
----------------------------------------------------------------------
Function: slow_function
Calls: 5
Sum: 0.025123s
Average: 0.005025s
Std Dev: 0.000012s
Min: 0.005008s
Max: 0.005045s
Function: fast_function
Calls: 8
Sum: 0.008034s
Average: 0.001004s
Std Dev: 0.000003s
Min: 0.001001s
Max: 0.001009s
```
## ๐ Advanced Example
```python
import gousset
import requests_module
import database_module
import utils
# Instrument multiple modules
gousset.instrument(requests_module)
gousset.instrument(database_module)
gousset.instrument(utils)
# Your application runs normally
app.run()
# Exit statistics show timing for ALL instrumented modules:
# - Which functions are bottlenecks?
# - How many times is each function called?
# - What's the performance distribution?
```
## ๐งช Development
```bash
# Clone repository
git clone https://github.com/yourusername/gousset.git
cd gousset
# Install in development mode
pip install -e ".[dev]"
# Run tests
pytest tests/
# Run example
python examples/basic_usage.py
```
## ๐ค Contributing
Contributions welcome! Please read our [Contributing Guidelines](CONTRIBUTING.md).
## ๐ License
MIT License - see [LICENSE](LICENSE) file.
## ๐ฏ Philosophy
> *"The best profiler is the one you actually use."*
Gousset follows the principle of **friendly tooling** - powerful capabilities with zero friction. Like a trusted pocket watch, it should be:
- **Elegant** - Beautiful, clean output
- **Reliable** - Always works, minimal overhead
- **Unobtrusive** - Doesn't interfere with your work
- **Insightful** - Shows you exactly what you need to know
---
**Gousset** - *Timing, reimagined* โก
Raw data
{
"_id": null,
"home_page": null,
"name": "gousset",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.11",
"maintainer_email": null,
"keywords": "profiling, timing, performance, monitoring, friendly",
"author": null,
"author_email": "Your Name <your.email@example.com>",
"download_url": "https://files.pythonhosted.org/packages/34/32/4c0e70dc1fa3dc236ff1890592849095a95f5bde273cbaf99ba6118c4af7/gousset-0.1.0.tar.gz",
"platform": null,
"description": "# \ud83d\udd70\ufe0f Gousset\n\n> *Your pocket profiler* - Elegant, friendly timing for Python functions\n\n\n[](https://github.com/etienne87/gousset/actions)\n\n**Gousset** (pronounced \"goo-SAY\") is a simple, unobtrusive timing profiler for Python. Like a elegant pocket watch, it sits quietly and tells you exactly what you need to know about your function performance.\n\n## \u2728 Features\n\n- **\ud83c\udfaf One-line setup** - Just `gousset.instrument(my_module)`\n- **\ud83d\udd0d Automatic nested call detection** - Captures internal function calls\n- **\ud83d\udcca Rich statistics** - Mean, std dev, min, max, call counts\n- **\ud83d\udeab Zero code changes** - Your modules stay clean\n- **\ud83d\udcc8 Production ready** - Minimal overhead, comprehensive insights\n\n## \ud83d\ude80 Quick Start\n\n```python\nimport gousset\nimport my_module\n\n# Instrument your module - that's it!\ngousset.instrument(my_module)\n\n# Use your functions normally\nresult = my_module.some_function()\n\n# Statistics automatically print at program exit\n```\n\n## \ud83d\udce6 Installation\n\n```bash\npip install gousset\n```\n\n## \ud83c\udfad Why Gousset?\n\n**Other tools are intimidating:**\n```python\n# cProfile - overwhelming output\npython -m cProfile my_script.py # \ud83d\ude35\u200d\ud83d\udcab Wall of text\n\n# line_profiler - pollutes your code\n@profile # \ud83d\ude24 Decorators everywhere!\ndef my_function():\n pass\n```\n\n**Gousset is friendly:**\n```python\nimport gousset\ngousset.instrument(my_module) # \ud83d\ude0c One line, done!\n```\n\n## \ud83d\udcca Sample Output\n\n```\n=== Gousset Timing Statistics for Module: my_module ===\n----------------------------------------------------------------------\nFunction: slow_function\n Calls: 5\n Sum: 0.025123s\n Average: 0.005025s\n Std Dev: 0.000012s\n Min: 0.005008s\n Max: 0.005045s\n\nFunction: fast_function\n Calls: 8\n Sum: 0.008034s\n Average: 0.001004s\n Std Dev: 0.000003s\n Min: 0.001001s\n Max: 0.001009s\n```\n\n## \ud83d\udd0d Advanced Example\n\n```python\nimport gousset\nimport requests_module\nimport database_module\nimport utils\n\n# Instrument multiple modules\ngousset.instrument(requests_module)\ngousset.instrument(database_module)\ngousset.instrument(utils)\n\n# Your application runs normally\napp.run()\n\n# Exit statistics show timing for ALL instrumented modules:\n# - Which functions are bottlenecks?\n# - How many times is each function called?\n# - What's the performance distribution?\n```\n\n## \ud83e\uddea Development\n\n```bash\n# Clone repository\ngit clone https://github.com/yourusername/gousset.git\ncd gousset\n\n# Install in development mode\npip install -e \".[dev]\"\n\n# Run tests\npytest tests/\n\n# Run example\npython examples/basic_usage.py\n```\n\n## \ud83e\udd1d Contributing\n\nContributions welcome! Please read our [Contributing Guidelines](CONTRIBUTING.md).\n\n## \ud83d\udcdd License\n\nMIT License - see [LICENSE](LICENSE) file.\n\n## \ud83c\udfaf Philosophy\n\n> *\"The best profiler is the one you actually use.\"*\n\nGousset follows the principle of **friendly tooling** - powerful capabilities with zero friction. Like a trusted pocket watch, it should be:\n\n- **Elegant** - Beautiful, clean output\n- **Reliable** - Always works, minimal overhead\n- **Unobtrusive** - Doesn't interfere with your work\n- **Insightful** - Shows you exactly what you need to know\n\n---\n\n**Gousset** - *Timing, reimagined* \u26a1\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "Your pocket profiler - elegant, friendly timing for Python functions",
"version": "0.1.0",
"project_urls": {
"Homepage": "https://github.com/yourusername/gousset",
"Issues": "https://github.com/yourusername/gousset/issues",
"Repository": "https://github.com/yourusername/gousset"
},
"split_keywords": [
"profiling",
" timing",
" performance",
" monitoring",
" friendly"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "ae1344902d7066205165b1de195a47158a4f7d82fa9fee59fa08eed3feb63df2",
"md5": "3e21be8055082af80755dc245ae427a8",
"sha256": "9be8d7451b5e870a8a83727d36fd7d69307775a53a4994ab1d49bba6ee82b02e"
},
"downloads": -1,
"filename": "gousset-0.1.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "3e21be8055082af80755dc245ae427a8",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.11",
"size": 4614,
"upload_time": "2025-08-27T10:12:01",
"upload_time_iso_8601": "2025-08-27T10:12:01.569967Z",
"url": "https://files.pythonhosted.org/packages/ae/13/44902d7066205165b1de195a47158a4f7d82fa9fee59fa08eed3feb63df2/gousset-0.1.0-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "34324c0e70dc1fa3dc236ff1890592849095a95f5bde273cbaf99ba6118c4af7",
"md5": "cd7fc8c35cd31a60b63cf8a2b6bf1816",
"sha256": "e4c0c0e794105dc73495faf25dac679d34ca7a7c5084d3038ffee67ea34df292"
},
"downloads": -1,
"filename": "gousset-0.1.0.tar.gz",
"has_sig": false,
"md5_digest": "cd7fc8c35cd31a60b63cf8a2b6bf1816",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.11",
"size": 5777,
"upload_time": "2025-08-27T10:12:02",
"upload_time_iso_8601": "2025-08-27T10:12:02.846256Z",
"url": "https://files.pythonhosted.org/packages/34/32/4c0e70dc1fa3dc236ff1890592849095a95f5bde273cbaf99ba6118c4af7/gousset-0.1.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-08-27 10:12:02",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "yourusername",
"github_project": "gousset",
"github_not_found": true,
"lcname": "gousset"
}