Skip to content

Instantly share code, notes, and snippets.

@billydh
billydh / parse_command_line_args.py
Created April 29, 2020 07:59
Modified parse_command_line_args to adjust for Avro Consumer code.
from argparse import ArgumentParser
def parse_command_line_args():
arg_parser = ArgumentParser()
arg_parser.add_argument("--topic", required=True, help="Topic name")
arg_parser.add_argument("--bootstrap-servers", required=False, default="localhost:9092", help="Bootstrap server address")
arg_parser.add_argument("--schema-registry", required=False, default="http://localhost:8081", help="Schema Registry url")
arg_parser.add_argument("--schema-file", required=False, help="File name of Avro schema to use")
@billydh
billydh / consumer_record.py
Last active April 29, 2020 07:42
A Python Avro Consumer
from confluent_kafka.avro import AvroConsumer
from utils.parse_command_line_args import parse_command_line_args
def consume_record(args):
default_group_name = "default-consumer-group"
consumer_config = {"bootstrap.servers": args.bootstrap_servers,
"schema.registry.url": args.schema_registry,
@billydh
billydh / send_record.py
Last active April 28, 2020 04:13
A command line executable Python script to produce an Avro record to Kafka topic
#!/usr/bin/env python
import json
import uuid
from confluent_kafka.avro import AvroProducer
from utils.load_avro_schema_from_file import load_avro_schema_from_file
from utils.parse_command_line_args import parse_command_line_args
@billydh
billydh / load_avro_schema_from_file.py
Last active April 28, 2020 04:13
A util function to load Avro schema from file
from confluent_kafka import avro
def load_avro_schema_from_file(schema_file):
key_schema_string = """
{"type": "string"}
"""
key_schema = avro.loads(key_schema_string)
value_schema = avro.load("./avro/" + schema_file)
@billydh
billydh / parse_command_line_args.py
Last active April 28, 2020 04:15
A util function to parse command line arguments for AvroProducer
from argparse import ArgumentParser
def parse_command_line_args():
arg_parser = ArgumentParser()
arg_parser.add_argument("--topic", required=True, help="Topic name")
arg_parser.add_argument("--bootstrap-servers", required=False, default="localhost:9092", help="Bootstrap server address")
arg_parser.add_argument("--schema-registry", required=False, default="http://localhost:8081", help="Schema Registry url")
arg_parser.add_argument("--schema-file", required=True, help="File name of Avro schema to use")
@billydh
billydh / requirements.txt
Last active April 28, 2020 04:12
Dependencies for Python AvroProducer
confluent-kafka[avro]==1.4.0
@billydh
billydh / send_email_verification_link.py
Created March 13, 2020 23:12
A Python script to send an email verification link to user using Firebase Auth REST API
@billydh
billydh / set_password.py
Created March 10, 2020 07:32
A Python script to set user password using Firebase Admin SDK
import argparse
from firebase_admin import auth
from firebase_admin.auth import UserRecord
from initialise_firebase_admin import app
def get_args():
parser = argparse.ArgumentParser(description="Set user password in Firebase")
@billydh
billydh / delete_user.py
Created March 10, 2020 07:23
A Python script to delete a user by user id using Firebase Admin SDK
import argparse
from firebase_admin import auth
from initialise_firebase_admin import app
def get_user_id_arg():
parser = argparse.ArgumentParser(description="Delete user in Firebase")
parser.add_argument("--user-id", required=True, help="The user id of the user to be deleted.")
@billydh
billydh / sign_in_with_email_and_password.py
Last active October 22, 2024 09:58
A Python script to sign user in with email and password via Firebase Auth REST API
import argparse
import json
import os
import requests
import pprint
FIREBASE_WEB_API_KEY = os.environ.get("FIREBASE_WEB_API_KEY")
rest_api_url = f"https://identitytoolkit.googleapis.com/v1/accounts:signInWithPassword"