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.6.tar.gz (7.1 kB view details)

Uploaded Source

File details

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

File metadata

  • Download URL: procwire-5.2.6.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.6.tar.gz
Algorithm Hash digest
SHA256 1e0ab3967217c7ca77654cc9d9fc1639fde490c28204a6051795529ea00a52c7
MD5 3a3901ce82ffcc117e639b8f5233824a
BLAKE2b-256 75d4111302d2560844f99fb8e8115fc4fc4ffa2031294295186fd9a6963d39c5

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