Pulsar Galaxy Lib
raw JSON → 0.15.14 verified Mon Apr 27 auth: no python
Distributed job execution application built for Galaxy (http://galaxyproject.org/). Current version 0.15.14. Release cadence irregular; minor versions every few months.
pip install pulsar-galaxy-lib Common errors
error ImportError: No module named 'pulsar' ↓
cause Installed wrong package (e.g., 'pulsar' not 'pulsar-galaxy-lib').
fix
pip uninstall pulsar && pip install pulsar-galaxy-lib
error pulsar.client.PulsarClientError: 403 Forbidden ↓
cause private_token mismatch between client and server.
fix
Verify the server's 'private_token' in config and pass the same token to PulsarClient.
error pulsar.app.ManagerApp requires a valid persistence backend ↓
cause No Redis or database URL configured in app object.
fix
Set app['redis_url'] = 'redis://localhost:6379/0' or app['database_url'] = 'sqlite:///pulsar.db'.
Warnings
gotcha Pulsar requires a Redis or database backend for job management. Without it, jobs may not persist or recover. ↓
fix Configure app['redis_url'] or app['database_url'] in the app config.
gotcha The 'private_token' must match the server's 'private_token' config. Mismatch leads to 403 errors. ↓
fix Ensure tokens are identical on client and server side.
gotcha When using DRMAA or Condor, job cleanup may leave orphaned processes if not configured properly (see 0.15.13 changelog). ↓
fix Update to latest version and set 'cleanup_jobs = always' in the manager config.
gotcha The library 'pulsar-galaxy-lib' on PyPI is separate from the 'pulsar' package. Install the correct one. ↓
fix pip install pulsar-galaxy-lib (not 'pulsar')
Imports
- ManagerApp wrong
from pulsar import ManagerAppcorrectfrom pulsar.app import ManagerApp - PulsarClient wrong
from pulsar import PulsarClientcorrectfrom pulsar.client import PulsarClient - PulsarServer wrong
pulsar.PulsarServercorrectfrom pulsar.server import PulsarServer
Quickstart
from pulsar.client import PulsarClient
client = PulsarClient('http://localhost:8913', private_token='secret')
# Submit a simple job
client.submit_job({
'command_line': 'echo hello',
'tool_id': 'echo_tool',
'inputs': {},
'outputs': {},
'output_collections': []
})