def topic_path( publisher_client: pubsub_v1.PublisherClient, ) -> Generator[str, None, None]: topic_path = publisher_client.topic_path(PROJECT_ID, TOPIC_ID) try: topic = publisher_client.get_topic(request={"topic": topic_path}) except NotFound: topic = publisher_client.create_topic(request={"name": topic_path}) yield topic.name try: publisher_client.delete_topic(request={"topic": topic.name}) except NotFound: pass
def proto_topic(publisher_client: pubsub_v1.PublisherClient, proto_schema: str) -> Generator[str, None, None]: proto_topic_path = publisher_client.topic_path(PROJECT_ID, PROTO_TOPIC_ID) try: proto_topic = publisher_client.get_topic( request={"topic": proto_topic_path}) except NotFound: proto_topic = publisher_client.create_topic( request={ "name": proto_topic_path, "schema_settings": { "schema": proto_schema, "encoding": Encoding.BINARY, }, }) yield proto_topic.name publisher_client.delete_topic(request={"topic": proto_topic.name})
def avro_topic(publisher_client: pubsub_v1.PublisherClient, avro_schema: str) -> Generator[str, None, None]: from google.pubsub_v1.types import Encoding avro_topic_path = publisher_client.topic_path(PROJECT_ID, AVRO_TOPIC_ID) try: avro_topic = publisher_client.get_topic( request={"topic": avro_topic_path}) except NotFound: avro_topic = publisher_client.create_topic( request={ "name": avro_topic_path, "schema_settings": { "schema": avro_schema, "encoding": Encoding.BINARY, }, }) yield avro_topic.name publisher_client.delete_topic(request={"topic": avro_topic.name})