Netflix Genie Python Client
raw JSON → 3.6.19 verified Fri May 01 auth: no python
Official Python client for Netflix Genie, a federated job orchestration engine. Version 3.6.19 provides async and sync interfaces to submit jobs, query status, and manage executions. Low release cadence; minor patches. Supports Python 3.8+.
pip install nflx-genie-client Common errors
error ModuleNotFoundError: No module named 'genie_client' ↓
cause Package not installed or wrong import path.
fix
Run
pip install nflx-genie-client and import as from genie_client import GenieClient. error UnboundLocalError: local variable 'response' referenced before assignment ↓
cause Bug in genie_client when using 'raw' response with certain error codes (fixed in 3.6.17+).
fix
Upgrade to nflx-genie-client>=3.6.17 or catch the exception differently.
Warnings
breaking In v3, the import path changed from 'genie2.client' to 'genie_client'. Old imports will raise ModuleNotFoundError. ↓
fix Use 'from genie_client import GenieClient'
gotcha Passing unsupported parameters to submit_job (e.g., 'tags' instead of 'command_tag') fails silently or drops options. Always check the API signature. ↓
fix Use keyword arguments exactly as documented: command, cluster, command_tag, etc.
deprecated The sync client's 'run_job' method is deprecated in v3.6. Use 'submit_job' and poll manually. ↓
fix Replace client.run_job(...) with client.submit_job(...) and then client.get_job(job_id) to check status.
Imports
- GenieClient wrong
from nflx_genie_client import GenieClientcorrectfrom genie_client import GenieClient - AsyncGenieClient wrong
from genie_client.sync import AsyncGenieClientcorrectfrom genie_client import AsyncGenieClient
Quickstart
import os
from genie_client import GenieClient
client = GenieClient(url=os.environ.get('GENIE_URL', 'http://localhost:8080'))
job = client.submit_job(
command='echo hello',
cluster='myCluster',
command_tag='myCommand:1.0'
)
print(job.id)