Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
41 changes: 13 additions & 28 deletions src/saluki/main.py
Original file line number Diff line number Diff line change
@@ -1,9 +1,6 @@
import argparse
import sys


import logging
from logging import FileHandler
import sys
from typing import Tuple

from saluki.consume import consume
Expand All @@ -30,25 +27,25 @@ def parse_kafka_uri(uri: str) -> Tuple[str, str]:
broker, topic = tail.split("/") if "/" in tail else (tail, "")
if not broker:
raise RuntimeError(
f"Unable to parse URI {uri}, broker not defined. URI should be of form [PROTOCOL+SASL_MECHANISM\\username@]broker:9092"
f"Unable to parse URI {uri}, broker not defined. URI should be of form"
f" [PROTOCOL+SASL_MECHANISM\\username@]broker:9092"
)
if username and not (security_protocol and sasl_mechanism):
raise RuntimeError(
f"Unable to parse URI {uri}, PROTOCOL or SASL_MECHANISM not defined. URI should be of form [PROTOCOL+SASL_MECHANISM\\username@]broker:9092"
f"Unable to parse URI {uri}, PROTOCOL or SASL_MECHANISM not defined."
f" URI should be of form [PROTOCOL+SASL_MECHANISM\\username@]broker:9092"
)
return broker, topic


def main():
def main() -> None:
parser = argparse.ArgumentParser(
prog="saluki",
description="serialise/de-serialise flatbuffers and consume/produce from/to kafka",
)

parent_parser = argparse.ArgumentParser(add_help=False)
parent_parser.add_argument(
"topic", type=str, help="Kafka topic. format is broker<:port>/topic"
)
parent_parser.add_argument("topic", type=str, help="Kafka topic. format is broker<:port>/topic")

parent_parser.add_argument(
"-X",
Expand All @@ -66,9 +63,7 @@ def main():
type=argparse.FileType("a"),
)

sub_parsers = parser.add_subparsers(
help="sub-command help", required=True, dest="command"
)
sub_parsers = parser.add_subparsers(help="sub-command help", required=True, dest="command")

consumer_parser = argparse.ArgumentParser(add_help=False)
consumer_parser.add_argument(
Expand All @@ -93,24 +88,16 @@ def main():
consumer_mode_parser.add_argument(
"-o", "--offset", help="offset to consume from", type=int, required=False
)
consumer_mode_parser.add_argument(
"-s", "--schema", required=False, default="auto", type=str
)
consumer_mode_parser.add_argument(
"-g", "--go-forwards", required=False, action="store_true"
)
consumer_mode_parser.add_argument(
"-p", "--partition", required=False, type=int, default=0
)
consumer_mode_parser.add_argument("-s", "--schema", required=False, default="auto", type=str)
consumer_mode_parser.add_argument("-g", "--go-forwards", required=False, action="store_true")
consumer_mode_parser.add_argument("-p", "--partition", required=False, type=int, default=0)

listen_parser = sub_parsers.add_parser(
_LISTEN,
help="listen mode - listen until KeyboardInterrupt",
parents=[parent_parser, consumer_parser],
)
listen_parser.add_argument(
"-p", "--partition", required=False, type=int, default=None
)
listen_parser.add_argument("-p", "--partition", required=False, type=int, default=None)

if len(sys.argv) == 1:
parser.print_help()
Expand All @@ -123,7 +110,7 @@ def main():
broker, topic = parse_kafka_uri(args.topic)

if args.log_file:
logger.addHandler(FileHandler(args.log_file.name))
logger.addHandler(logging.FileHandler(args.log_file.name))

if args.command == _LISTEN:
listen(broker, topic, args.partition)
Expand All @@ -136,8 +123,6 @@ def main():
args.offset,
args.go_forwards,
)
elif args.command == _PRODUCE:
raise NotImplementedError


if __name__ == "__main__":
Expand Down
Loading