{"id":23290816,"url":"https://github.com/infinitode/funcprofiler","last_synced_at":"2026-02-20T23:39:04.136Z","repository":{"id":267589911,"uuid":"861385839","full_name":"Infinitode/FuncProfiler","owner":"Infinitode","description":"An open-source Python library for identifying bottlenecks in code. It includes function profiling, data exports, logging, and line-by-line profiling for more granular control.","archived":false,"fork":false,"pushed_at":"2025-11-16T12:38:51.000Z","size":23,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-02-16T07:46:38.084Z","etag":null,"topics":["csv","data-export","functions","html","json","logging","minimal","profiling","profiling-library","python"],"latest_commit_sha":null,"homepage":"https://infinitode.netlify.app","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Infinitode.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-09-22T18:48:11.000Z","updated_at":"2025-11-16T12:34:02.000Z","dependencies_parsed_at":"2025-04-06T17:43:48.604Z","dependency_job_id":"67197b5b-16fb-40b0-8fc0-fc21fdf35f30","html_url":"https://github.com/Infinitode/FuncProfiler","commit_stats":null,"previous_names":["infinitode/funcprofiler"],"tags_count":3,"template":false,"template_full_name":null,"purl":"pkg:github/Infinitode/FuncProfiler","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Infinitode%2FFuncProfiler","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Infinitode%2FFuncProfiler/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Infinitode%2FFuncProfiler/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Infinitode%2FFuncProfiler/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Infinitode","download_url":"https://codeload.github.com/Infinitode/FuncProfiler/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Infinitode%2FFuncProfiler/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29667857,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-20T23:24:07.480Z","status":"ssl_error","status_checked_at":"2026-02-20T23:24:06.202Z","response_time":59,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["csv","data-export","functions","html","json","logging","minimal","profiling","profiling-library","python"],"created_at":"2024-12-20T05:12:51.244Z","updated_at":"2026-02-20T23:39:04.128Z","avatar_url":"https://github.com/Infinitode.png","language":"Python","readme":"# FuncProfiler\n![Python Version](https://img.shields.io/badge/python-3.13-blue.svg)\n[![Code Size](https://img.shields.io/github/languages/code-size/infinitode/funcprofiler)](https://github.com/infinitode/funcprofiler)\n![Downloads](https://pepy.tech/badge/funcprofiler)\n![License Compliance](https://img.shields.io/badge/license-compliance-brightgreen.svg)\n![PyPI Version](https://img.shields.io/pypi/v/funcprofiler)\n\nAn open-source Python library for identifying bottlenecks in code. It includes function profiling, data exports, logging, and line-by-line profiling for more granular control.\n\n## Changelog (v.1.1.0):\n- Added support for 2 new export formats: `yaml` and `toml`.\n- Exports now include more information: peak memory usage, timestamp, arguments, return value, filepath, line number, and docstring.\n- Added `enabled` and `log_level` options to the decorators.\n- Improved export formats for better readability.\n\n## Installation\n\nYou can install FuncProfiler using pip:\n\n```bash\npip install funcprofiler\n```\n\n## Supported Python Versions\n\nFuncProfiler supports Python 3.6 and later.\n\n## Features\n\n- **Function Profiling**: Monitor a function's memory usage and execution time.\n- **Line-by-Line Profiling**: Get execution time and memory usage for each line of a function.\n- **Shared Logging**: Log profiler outputs to a `.txt` file.\n- **File Exports**: Export profiling data in various formats.\n- **New Options**:\n    - `enabled`: A boolean to enable or disable profiling.\n    - `log_level`: Set the logging level to \"info\" or \"debug\".\n\n## Export Formats\n\n| Format | `function_profile` | `line_by_line_profile` |\n|--------|--------------------|------------------------|\n| `txt`  |         ✅         |           ❌           |\n| `json` |         ✅         |           ✅           |\n| `csv`  |         ✅         |           ✅           |\n| `html` |         ✅         |           ✅           |\n| `xml`  |         ✅         |           ✅           |\n| `md`   |         ✅         |           ✅           |\n| `yaml` |         ✅         |           ✅           |\n| `toml` |         ✅         |           ✅           |\n\n## Usage\n\n### Function Profiling\n\n```python\nfrom funcprofiler import function_profile\n\n@function_profile(export_format=\"html\", shared_log=True, log_level=\"debug\")\ndef some_function():\n    return \"Hello World.\"\n\nmessage = some_function()\n```\n\n### Line-by-Line Profiling\n\n```python\nfrom funcprofiler import line_by_line_profile\n\n@line_by_line_profile(shared_log=True, enabled=True)\ndef some_complicated_function(n):\n    total = 0\n    for i in range(n):\n        for j in range(i):\n            total += (i * j) ** 0.5\n    return total\n\ntotal = some_complicated_function(1000)\n```\n\n## Contributing\n\nContributions are welcome! Please open an issue or submit a pull request on [GitHub](https://github.com/infinitode/funcprofiler).\n\n## License\n\nFuncProfiler is released under the **MIT License (Modified)**. See the [LICENSE](https://github.com/infinitode/funcprofiler/blob/main/LICENSE) file for details.","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Finfinitode%2Ffuncprofiler","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Finfinitode%2Ffuncprofiler","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Finfinitode%2Ffuncprofiler/lists"}