Skip to main content

Process lifecycle orchestration and task piping for Python services

This project has been quarantined.

PyPI Admins need to review this project before it can be restored. While in quarantine, the project is not installable by clients, and cannot be being modified by its maintainers.

Read more in the project in quarantine help article.

Project description

procwire

Process lifecycle orchestration and task piping for Python services. Manage spawned processes with tracking, timeout control, and event-driven lifecycle hooks.

Installation

pip install procwire

Usage

import procwire

# Spawn a tracked background process
worker = procwire.spawn('my-worker', 'python', ['-m', 'myapp.worker'], timeout=30000)
print(f"Worker PID: {worker['pid']}")

# Check process status
info = procwire.status('my-worker')
print(f"Running: {info['running']}, Uptime: {info['uptime']:.1f}s")

# Run synchronous command with captured output
result = procwire.run_sync('git', ['status', '--short'], timeout=10)
print(result['stdout'])

# Lifecycle events
procwire.on('exit', lambda name, code: print(f'{name} exited: {code}'))
procwire.on('timeout', lambda name, ms: print(f'{name} timed out after {ms}ms'))

# Restart crashed workers
procwire.restart('my-worker', 'python', ['-m', 'myapp.worker'])

# Graceful shutdown
procwire.cleanup()

API

Process Management

  • spawn(name, cmd, args=None, timeout=None, detached=True, hide=True) — spawn tracked process
  • spawn_shell(name, command, timeout=None) — spawn via shell
  • run_sync(cmd, args=None, timeout=30, capture=True) — run and wait
  • kill(name, sig=None) — terminate tracked process
  • restart(name, cmd=None, args=None, **kwargs) — kill and respawn

Status

  • list_processes() — list tracked names
  • has(name) — check if tracked
  • status(name) — get status dict
  • status_all() — all statuses
  • is_running(name) / pid_of(name) / uptime(name)

Lifecycle

  • cleanup() — kill all tracked processes
  • wait_all(timeout=None) — wait for all to exit
  • on(event, fn) / once(event, fn) / off(event, fn)

Events

  • spawn — process started
  • exit — process exited
  • timeout — process timed out
  • kill — process killed

License

MIT

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

procwire-5.2.5.tar.gz (7.1 kB view details)

Uploaded Source

File details

Details for the file procwire-5.2.5.tar.gz.

File metadata

  • Download URL: procwire-5.2.5.tar.gz
  • Upload date:
  • Size: 7.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.0

File hashes

Hashes for procwire-5.2.5.tar.gz
Algorithm Hash digest
SHA256 7dabd903890e70c841d454a358d853d56767e5420c270259aa5260991155502b
MD5 a9d9f7582d61c2b0936eacdb83f4da02
BLAKE2b-256 6d67d3dcd1015536bffc1a82dad0e510401f7f2dad2957bce39433470d53593c

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