diff --git a/bluesky_queueserver/manager/start_manager.py b/bluesky_queueserver/manager/start_manager.py index 7517faa4..a78d21fe 100644 --- a/bluesky_queueserver/manager/start_manager.py +++ b/bluesky_queueserver/manager/start_manager.py @@ -1,5 +1,6 @@ import argparse import atexit +import importlib import logging import os import re @@ -627,6 +628,13 @@ def formatter(prog): "Use --zmq-info-addr instead." ) + if settings.kafka_topic is not None or settings.kafka_server is not None: + if importlib.util.find_spec("bluesky-kafka") is None: + logger.error( + "Must have bluesky-kafka installed to publish documents to kafka", + ) + sys.exit(1) + msg_queue = Queue() setup_console_output_redirection(msg_queue) diff --git a/docs/source/installation.rst b/docs/source/installation.rst index b00a8c14..19270dba 100644 --- a/docs/source/installation.rst +++ b/docs/source/installation.rst @@ -42,6 +42,10 @@ Installation Steps $ pip install bluesky-queueserver + Install from PyPI with kafka dependencies:: + + $ pip install bluesky-queueserver[kafka] + Install from conda-forge:: $ conda install bluesky-queueserver -c conda-forge diff --git a/setup.py b/setup.py index 61c8a17d..06f66396 100644 --- a/setup.py +++ b/setup.py @@ -20,7 +20,9 @@ Upgrade pip like so: pip install --upgrade pip -""".format(*(sys.version_info[:2] + min_version)) +""".format( + *(sys.version_info[:2] + min_version) + ) sys.exit(error) here = path.abspath(path.dirname(__file__)) @@ -30,24 +32,16 @@ with open(path.join(here, "requirements.txt")) as requirements_file: # Parse requirements.txt, ignoring any commented-out lines. - requirements = [ - line - for line in requirements_file.read().splitlines() - if not line.startswith("#") - ] + requirements = [line for line in requirements_file.read().splitlines() if not line.startswith("#")] with open(path.join(here, "requirements-dev.txt")) as requirements_file: # Parse requirements.txt, ignoring any commented-out lines. - requirements_dev = [ - line - for line in requirements_file.read().splitlines() - if not line.startswith("#") - ] + requirements_dev = [line for line in requirements_file.read().splitlines() if not line.startswith("#")] requirements_kafka = ["bluesky-kafka"] extras_require = {"dev": sorted(set(requirements_dev)), "kafka": requirements_kafka} -extras_require["all"] = sort(set(sum(extras_require.values()))) +extras_require["all"] = sorted(set(sum(extras_require.values(), []))) setup(