Skip to main content

A utility to manage and kill threads in Python applications

Project description

PyThreadKiller

A utility to manage and kill threads in Python applications.


GitHub Repo GitHub License GitHub Forks GitHub Stars GitHub Contributors

Build Status codecov PyPI Version Test PyPI Version

GitHub Image


Overview

PyThreadKiller is a utility designed to manage and kill threads in Python applications. This package provides a simple and effective way to terminate threads safely and retrieve return values from target functions.

Directory Structure

PyThreadKiller/
    ├── PyThreadKiller/
    │   ├── __init__.py
    │   ├── main.py
    ├── tests/
    │   ├── TestPyThreadKiller.py
    │   ├── UnittestPyThreadKiller.py
    ├── CHANGELOG.md
    ├── README.md
    ├── .github/
    │   └── workflows/
    │       └── python-app.yml
    └── setup.py

Installation

You can install the package using pip:

pip install PyThreadKiller

Usage

  • Here is an example of how to use PyThreadKiller:
import time
from PyThreadKiller import PyThreadKiller

def example_target():
    for i in range(5):
        print(f"Thread is running... {i}")
        time.sleep(1)
    return True

# Create an instance of PyThreadKiller
thread = PyThreadKiller(target=example_target)
thread.start()

# Allow the thread to run for 3 seconds
time.sleep(3)

# Kill the thread
result = thread.kill()
print(f"Return value after killing the thread: {result}")

# Output:
# Thread is running... 0
# Thread is running... 1
# Thread is running... 2
# Thread killed successfully
# Return value after killing the thread: None

This file: tests/UnittestPyThreadKiller.py is integral to our CI/CD pipeline for automated testing.

License:

  • This project is licensed under the MIT License - see the LICENSE file for details.

  • This updated README.md includes the new project name, badges, a brief overview, the directory structure, installation instructions, usage example, changelog, and the main code for the PyThreadKiller class. Make sure to adjust any URLs and links to point to the correct resources for your project.

Changelog

[0.1] - 2024-05-19

Added

  • Initial draft of PyThreadKiller with basic thread management and killing functionality.

[3.0.4] - 2024-07-20

Fix

  • Test file for PyThreadKiller to test the package itself.

[3.0.6] - 2024-08-04

Documentation and CI/CD

  • Documentation update and CI/CD pipeline for automated testing

[3.0.7] - 2025-12-21

Maintenance

  • Removed unused requests dependency from the project.
  • Cleaned up packaging metadata to reflect zero runtime dependencies.
  • Ensured setup.py and CI configuration install the package directly.
  • Minor project hygiene improvements (no functional code changes).

[3.0.8] - 2025-12-21

Added / Fixed

  • Prepare package for next release.
  • Ensure MANIFEST.in includes correct files.
  • Update version to 3.0.8 for publishing.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pythreadkiller-3.0.8.tar.gz (4.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pythreadkiller-3.0.8-py3-none-any.whl (5.0 kB view details)

Uploaded Python 3

File details

Details for the file pythreadkiller-3.0.8.tar.gz.

File metadata

  • Download URL: pythreadkiller-3.0.8.tar.gz
  • Upload date:
  • Size: 4.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for pythreadkiller-3.0.8.tar.gz
Algorithm Hash digest
SHA256 cfb20aa841f18a9a83bbc34ec7894c2c84226e69ba04eed31068813f6a01fdd2
MD5 ea1d7a90b9d6db359fc7d5ffec603e5b
BLAKE2b-256 e3de65a619970cff1e2dca2b13eaa9b674a420e997e2441a6e26faf4ed5938eb

See more details on using hashes here.

File details

Details for the file pythreadkiller-3.0.8-py3-none-any.whl.

File metadata

  • Download URL: pythreadkiller-3.0.8-py3-none-any.whl
  • Upload date:
  • Size: 5.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for pythreadkiller-3.0.8-py3-none-any.whl
Algorithm Hash digest
SHA256 47c7d621ff21bde83527cc79466ba24026cd8dba3fc2e9405483589c1416e938
MD5 0c7e3858770a68d96579c03f5df02e30
BLAKE2b-256 20d298f6229787b7a30271a3b961b61ac5fa65e49d5a8f23ca2bb78d35df0199

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page