#!/usr/bin/env python3

import xml.etree.ElementTree as ET

# From stack overflow
#     https://stackoverflow.com/questions/28813876/how-do-i-get-pythons-elementtree-to-pretty-print-to-an-xml-file

def _pretty_print(current, parent=None, index=-1, depth=0):
    for i, node in enumerate(current):
        _pretty_print(node, current, i, depth + 1)
    if parent is not None:
        if index == 0:
            parent.text = '\n' + ('  ' * depth)
        else:
            parent[index - 1].tail = '\n' + ('  ' * depth)
        if index == len(parent) - 1:
            current.tail = '\n' + ('  ' * (depth - 1))


root = ET.Element("obs_cmd")

command = ET.SubElement(root, "command")
command.text = "start"

beam_config = ET.SubElement(root, "beam_configuration")
ET.SubElement(beam_config, "nbeam", key="NBEAM").text = "1"
ET.SubElement(beam_config, "beam_state_0", key="BEAM_STATE_0", name="1").text = "1"

stream_config = ET.SubElement(root, "stream_configuration")
ET.SubElement(stream_config, "nstream", key="NSTREAM").text = "26"
for i in range(26):
    ET.SubElement(stream_config, "active", key="STREAM_ACTIVE").text = "1"

obs_parm = ET.SubElement(root, "observation_parameters")
ET.SubElement(obs_parm, "utc_start", key="UTC_START").text = "None"

_pretty_print(root)
tree = ET.ElementTree(root)
tree.write("start-test.xml", encoding="ISO-8859-1", xml_declaration = True)

