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

Uploaded Source

File details

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

File metadata

  • Download URL: procwire-5.2.7.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.7.tar.gz
Algorithm Hash digest
SHA256 17e886f0d108c12a8c5c6e8ede31814b1d0967df8143605b9cb55bf6cc3194fb
MD5 b67637388da3e1901af922317f51bd7c
BLAKE2b-256 3454bb97e352be1d66ea6d0c6b846bc48da78fd8f770e6c08d0b16ab3979f5b7

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