namedthreads
This is a hack to propagate thread names set in Python to the system.
WARNING: This is only meant for testing/debugging purposes. Do NOT run in production.
The problem
You can name threads in Python like so:
import threading
my_thread = threading.Thread(target=my_func, name="my-thread")
But when running ps, top and similar, you'll notice that the thread name isn't visible in these tools,
making threading bugs somewhat harder to debug.
The solution
A comment in bpo-15500 lines out a monkeypatch that uses ctypes to set the name using libpthread.pthread_setname_np.
While this works beautifully, it hasn't been included in core python due to compatibility reasons. This module packages the monkeypatch in an easy to install package.
| Before | After |
|---|---|
Usage
Install
pip install namedthreads
Manual patching
Run this as early as possible in your code:
import namedthreads
namedthreads.patch()
Automatic patching
Inspired by Graham Dumpleton's autowrapt, this module can
be activated automatically. Due to the hacky nature
of this approach, it is guarded by checking the presence of an environment variable, NAMEDTHREADS.
Automatic patching is only activated if this environment variable is set
NAMEDTHREADS=1 python myscript.py
Metadata
Release files for namedthreads 1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| namedthreads-1.0.tar.gz | 3.7 kB | Without provenance | Details |
Release files / namedthreads-1.0.tar.gz
| Download URL | namedthreads-1.0.tar.gz |
|---|---|
| Size | 3.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
f8dea2d2a9b31b2d558634eef2a1f3f09726897bfdb03bcc56439885271f01c8
|
|
BLAKE2b-256 checksum How to use checksums |
8bad52189fe39e5fa67c737832e1bd9320822b6e7e71adaeb8c4a2fcd5a6135b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/1.13.0 pkginfo/1.5.0.1 requests/2.21.0 setuptools/40.6.3 requests-toolbelt/0.9.1 tqdm/4.31.1 CPython/3.7.1
|
Security for namedthreads 1.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.