You can not select more than 25 topics Topics must start with a chinese character,a letter or number, can include dashes ('-') and can be up to 35 characters long.

main.py 1.4 kB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. import argparse
  2. import ast
  3. import os
  4. import pyarrow as pa
  5. from dora import Node
  6. RUNNER_CI = True if os.getenv("CI") == "true" else False
  7. def main():
  8. # Handle dynamic nodes, ask for the name of the node in the dataflow, and the same values as the ENV variables.
  9. parser = argparse.ArgumentParser(description="Simple arrow sender")
  10. parser.add_argument(
  11. "--name",
  12. type=str,
  13. required=False,
  14. help="The name of the node in the dataflow.",
  15. default="arrow-assert",
  16. )
  17. parser.add_argument(
  18. "--data",
  19. type=str,
  20. required=False,
  21. help="Arrow Data as string.",
  22. default="",
  23. )
  24. args = parser.parse_args()
  25. data = os.getenv("DATA", args.data)
  26. node = Node(
  27. args.name,
  28. ) # provide the name to connect to the dataflow if dynamic node
  29. data = ast.literal_eval(data)
  30. if isinstance(data, list):
  31. data = pa.array(data) # initialize pyarrow array
  32. elif isinstance(data, str) or isinstance(data, int) or isinstance(data, float):
  33. data = pa.array([data])
  34. else:
  35. data = pa.array(data) # initialize pyarrow array
  36. for event in node:
  37. if event["type"] == "INPUT":
  38. value = event["value"]
  39. assert value == data, f"Expected {data}, got {value}"
  40. if __name__ == "__main__":
  41. main()