gousset


Namegousset JSON
Version 0.1.0 PyPI version JSON
download
home_pageNone
SummaryYour pocket profiler - elegant, friendly timing for Python functions
upload_time2025-08-27 10:12:02
maintainerNone
docs_urlNone
authorNone
requires_python>=3.11
licenseMIT
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


[![CI](https://github.com/etienne87/gousset/workflows/CI/badge.svg)](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[![CI](https://github.com/etienne87/gousset/workflows/CI/badge.svg)](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"
}
        
Elapsed time: 1.73966s