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.3 kB

10 months ago
10 months ago
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. """TODO: Add docstring."""
  2. import argparse
  3. import ast
  4. import os
  5. import pyarrow as pa
  6. from dora import Node
  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. """TODO: Add docstring."""
  10. parser = argparse.ArgumentParser(description="Simple arrow sender")
  11. parser.add_argument(
  12. "--name",
  13. type=str,
  14. required=False,
  15. help="The name of the node in the dataflow.",
  16. default="arrow-assert",
  17. )
  18. parser.add_argument(
  19. "--data",
  20. type=str,
  21. required=False,
  22. help="Arrow Data as string.",
  23. default="",
  24. )
  25. args = parser.parse_args()
  26. data = os.getenv("DATA", args.data)
  27. node = Node(
  28. args.name,
  29. ) # provide the name to connect to the dataflow if dynamic node
  30. try:
  31. data = ast.literal_eval(data)
  32. except Exception: # noqa
  33. print("Passing input as string")
  34. if isinstance(data, (str, int, float)):
  35. data = pa.array([data])
  36. else:
  37. data = pa.array(data) # initialize pyarrow array
  38. for event in node:
  39. if event["type"] == "INPUT":
  40. value = event["value"]
  41. assert value == data, f"Expected {data}, got {value}"
  42. if __name__ == "__main__":
  43. main()