#!/usr/bin/env python3
# SPDX-FileCopyrightText: 2023 Volker Krause <vkrause@kde.org>
# SPDX-License-Identifier: MIT

# "Pretty" JSON formatting for the long coordinate arrays

import argparse
import json
import re

parser = argparse.ArgumentParser(description='Pretty JSON formatting for the Transport API data files.')
parser.add_argument('filename')
arguments = parser.parse_args()

# read as JSON and normalize to standard formatting
with open(arguments.filename, 'r') as f:
    j = json.loads(f.read())
s = json.dumps(j, indent=2)

# fold arrays of scalar values into one line
s = re.sub(r'\[\n +(\"[A-Za-z-]+\"|[\d.-]+)', r'[\1', s)
s = re.sub(r',\n +(\"[A-Za-z-]+\"|[\d.-]+)(?=[,\n])', r', \1', s)
s = re.sub(r'(?<![,\]}])\n +](\n|,\n)', r']\1', s)

# output
with open(arguments.filename, 'w') as f:
    f.write(s)
    f.write('\n')