"""TODO: Add docstring.""" import argparse import ast import os import pyarrow as pa from dora import Node def main(): # Handle dynamic nodes, ask for the name of the node in the dataflow, and the same values as the ENV variables. """TODO: Add docstring.""" parser = argparse.ArgumentParser(description="Simple arrow sender") parser.add_argument( "--name", type=str, required=False, help="The name of the node in the dataflow.", default="arrow-assert", ) parser.add_argument( "--data", type=str, required=False, help="Arrow Data as string.", default="", ) args = parser.parse_args() data = os.getenv("DATA", args.data) node = Node( args.name, ) # provide the name to connect to the dataflow if dynamic node try: data = ast.literal_eval(data) except Exception: # noqa print("Passing input as string") if isinstance(data, (str, int, float)): data = pa.array([data]) else: data = pa.array(data) # initialize pyarrow array for event in node: if event["type"] == "INPUT": value = event["value"] assert value == data, f"Expected {data}, got {value}" if __name__ == "__main__": main()