{"id":27172,"library":"nflx-genie-client","title":"Netflix Genie Python Client","description":"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+.","status":"active","version":"3.6.19","language":"python","source_language":"en","source_url":"https://github.com/Netflix/genie","tags":["genie","job orchestration","netflix","async","sync"],"install":[{"cmd":"pip install nflx-genie-client","lang":"bash","label":"Install from PyPI"}],"dependencies":[{"reason":"HTTP client for API calls","package":"httpx","optional":false},{"reason":"Data validation and settings","package":"pydantic","optional":false}],"imports":[{"note":"Package name on PyPI is nflx-genie-client, but import uses genie_client","wrong":"from nflx_genie_client import GenieClient","symbol":"GenieClient","correct":"from genie_client import GenieClient"},{"note":"AsyncGenieClient is at top-level, not in a submodule","wrong":"from genie_client.sync import AsyncGenieClient","symbol":"AsyncGenieClient","correct":"from genie_client import AsyncGenieClient"}],"quickstart":{"code":"import os\nfrom genie_client import GenieClient\n\nclient = GenieClient(url=os.environ.get('GENIE_URL', 'http://localhost:8080'))\njob = client.submit_job(\n    command='echo hello',\n    cluster='myCluster',\n    command_tag='myCommand:1.0'\n)\nprint(job.id)","lang":"python","description":"Create a GenieClient, submit a simple job, and print its ID."},"warnings":[{"fix":"Use 'from genie_client import GenieClient'","message":"In v3, the import path changed from 'genie2.client' to 'genie_client'. Old imports will raise ModuleNotFoundError.","severity":"breaking","affected_versions":">=3.0.0"},{"fix":"Use keyword arguments exactly as documented: command, cluster, command_tag, etc.","message":"Passing unsupported parameters to submit_job (e.g., 'tags' instead of 'command_tag') fails silently or drops options. Always check the API signature.","severity":"gotcha","affected_versions":"all"},{"fix":"Replace client.run_job(...) with client.submit_job(...) and then client.get_job(job_id) to check status.","message":"The sync client's 'run_job' method is deprecated in v3.6. Use 'submit_job' and poll manually.","severity":"deprecated","affected_versions":">=3.6.0"}],"env_vars":null,"last_verified":"2026-05-01T00:00:00.000Z","next_check":"2026-07-30T00:00:00.000Z","problems":[{"fix":"Run `pip install nflx-genie-client` and import as `from genie_client import GenieClient`.","cause":"Package not installed or wrong import path.","error":"ModuleNotFoundError: No module named 'genie_client'"},{"fix":"Upgrade to nflx-genie-client>=3.6.17 or catch the exception differently.","cause":"Bug in genie_client when using 'raw' response with certain error codes (fixed in 3.6.17+).","error":"UnboundLocalError: local variable 'response' referenced before assignment"}],"ecosystem":"pypi","meta_description":null,"install_score":null,"install_tag":null,"quickstart_score":null,"quickstart_tag":null}