{"id":19168475,"url":"https://github.com/bloomberg/pytest-pystack","last_synced_at":"2025-08-28T04:49:43.868Z","repository":{"id":165095322,"uuid":"635325954","full_name":"bloomberg/pytest-pystack","owner":"bloomberg","description":"Pytest plugin that runs PyStack on slow or hanging tests.","archived":false,"fork":false,"pushed_at":"2024-11-16T22:17:37.000Z","size":15,"stargazers_count":17,"open_issues_count":6,"forks_count":3,"subscribers_count":9,"default_branch":"main","last_synced_at":"2025-08-15T21:54:07.124Z","etag":null,"topics":["coredump","hang","pytest","python","python3","slow","stacktrace","troubleshooting"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/bloomberg.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE.txt","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,"zenodo":null}},"created_at":"2023-05-02T13:05:17.000Z","updated_at":"2025-05-16T01:46:14.000Z","dependencies_parsed_at":"2024-11-09T09:43:00.282Z","dependency_job_id":"1a2d6891-6031-4d6c-af76-97740f3efa7b","html_url":"https://github.com/bloomberg/pytest-pystack","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/bloomberg/pytest-pystack","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bloomberg%2Fpytest-pystack","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bloomberg%2Fpytest-pystack/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bloomberg%2Fpytest-pystack/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bloomberg%2Fpytest-pystack/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/bloomberg","download_url":"https://codeload.github.com/bloomberg/pytest-pystack/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bloomberg%2Fpytest-pystack/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":272440452,"owners_count":24935426,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-08-28T02:00:10.768Z","response_time":74,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":["coredump","hang","pytest","python","python3","slow","stacktrace","troubleshooting"],"created_at":"2024-11-09T09:42:48.172Z","updated_at":"2025-08-28T04:49:43.831Z","avatar_url":"https://github.com/bloomberg.png","language":"Python","readme":"\u003cp align=\"center\"\u003e\n\u003cimg src=\"https://user-images.githubusercontent.com/11718525/226942590-de015c9a-4d5b-4960-9c42-8c1eac0845c1.png\" width=\"70%\"\u003e\n\u003c/p\u003e\n\n# pytest-pystack\n\n[![CI](https://github.com/bloomberg/pytest-pystack/actions/workflows/validate.yaml/badge.svg)](https://github.com/bloomberg/pytest-pystack/actions/workflows/validate.yaml)\n![PyPI - Python Version](https://img.shields.io/pypi/pyversions/pytest-pystack)\n![PyPI](https://img.shields.io/pypi/v/pytest-pystack)\n![PyPI - Downloads](https://img.shields.io/pypi/dm/pytest-pystack)\n![Code Style](https://img.shields.io/badge/code%20style-black,%20isort-000000.svg)\n\nA pytest plug-in for easy integration of PyStack in your test suite.\n\nIt can be used to automatically dump the stack trace of a hanging test in your suite (with exception to test using `pytester` fixture).\n\nSee [PyStack](https://github.com/bloomberg/pystack) for further information about the tool.\n\n## Installation\n\nTo install the PyStack pytest plug-in, just run the following command in your venv:\n\n`python -m pip install pytest-pystack`\n\n## Quick Start\n\nAfter you have installed the pytest plug-in, you can have PyStack monitor your test suite and output a stack trace if a test takes more than 5\nseconds, simply by running pytest with argument `--pystack-threshold=5`.\n\n## Configuration\n\nThe PyStack plug-in can be configured via the command line with the following options:\n\n-   `--pystack-threshold`: Enables the plug-in and monitors all tests,\n    generating a stack trace if they take longer than the specified\n    threshold. Note, this neither stops nor fails the test case after the specified threshold.\n-   `--pystack-output-file`: Appends PyStack output to a file.\n-   `--pystack-path`: Path to the `pystack` executable.\n-   `--pystack-args`: Additional args to pass to `pystack remote \u003cpid\u003e`,\n    like `--native` or `--native-all`.\n\nAnd through any pytest config file, see an example of `pyproject.toml`:\n\n```toml\n[tool.pytest.ini_options]\npystack_threshold=60\npystack_path=\"custom-version-of-pystack\"\npystack_output_file=\"./pystack.log\"\npystack_args=\"--native\"\n```\n\n# License\n\nThis project is Apache-2.0 licensed, as found in the [LICENSE](LICENSE.txt) file.\n\n# Code of Conduct\n\n- [Code of Conduct](https://github.com/bloomberg/.github/blob/main/CODE_OF_CONDUCT.md)\n\nThis project has adopted a Code of Conduct. If you have any concerns about the Code, or behavior\nthat you have experienced in the project, please contact us at opensource@bloomberg.net.\n\n# Contributing\n\nWe welcome your contributions to help us improve and extend this project!\n\nBelow you will find some basic steps required to be able to contribute to the project. If you have\nany questions about this process or any other aspect of contributing to a Bloomberg open source\nproject, feel free to send an email to opensource@bloomberg.net and we'll get your questions\nanswered as quickly as we can.\n\n## Contribution Licensing\n\nSince this project is distributed under the terms of an [open source license](LICENSE.txt),\ncontributions that you make are licensed under the same terms. For us to be able to accept your\ncontributions, we will need explicit confirmation from you that you are able and willing to provide\nthem under these terms, and the mechanism we use to do this is called a Developer's Certificate of\nOrigin [(DCO)](https://github.com/bloomberg/.github/blob/main/DCO.md). This is similar to the\nprocess used by the Linux kernel, Samba, and many other major open source projects.\n\nTo participate under these terms, all that you must do is include a line like the following as the\nlast line of the commit message for each commit in your contribution:\n\n```\nSigned-Off-By: Random J. Developer \u003crandom@developer.example.org\u003e\n```\n\nThe simplest way to accomplish this is to add `-s` or `--signoff` to your `git commit` command.\n\nYou must use your real name (sorry, no pseudonyms, and no anonymous contributions).\n\n## Steps\n\n- Create an Issue, select 'Feature Request', and explain the proposed change.\n- Follow the guidelines in the issue template presented to you.\n- Submit the Issue.\n- Submit a Pull Request and link it to the Issue by including \"#\u003cissue number\u003e\" in the Pull Request\n  summary.\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbloomberg%2Fpytest-pystack","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbloomberg%2Fpytest-pystack","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbloomberg%2Fpytest-pystack/lists"}