#!/usr/bin/env python3
# -*- mode: python -*-
# =============================================================================
#
#  Copyright (c) 2015-2020 Qualcomm Technologies, Inc.
#  All Rights Reserved.
#  Confidential and Proprietary - Qualcomm Technologies, Inc.
#
# =============================================================================
from __future__ import print_function
import logging
import argparse
import os
import sys
import traceback

try:
    from qti.aisw.dlc_utils import snpe_dlc_utils
except ImportError as ie:
    print("Failed to find necessary package:")
    print(str(ie))
    print("Please ensure that $SNPE_ROOT/lib/python is in your PYTHONPATH")
    sys.exit(1)


def main():
    try:
        parser = argparse.ArgumentParser()
        parser._action_groups.pop()
        required = parser.add_argument_group('required arguments')
        required.add_argument('-i', '--input_dlc', required=True, type=str, help="path to a DLC file")

        optional = parser.add_argument_group('optional arguments')

        optional.add_argument('-s', '--save', type=str, help="Save the output to a csv file. Specify a target file path.", required=False)
        optional.add_argument('-m', '--memory', action="store_true", help="Show detailed information about memory usage.", required=False)

        args = parser.parse_args()

        output_file_name = args.save
        snpe_dlc_utils.setUpLogger(True)

        m = snpe_dlc_utils.ModelInfo()
        logger = logging.getLogger()
        if not os.path.exists(args.input_dlc):
            logger.debug("Cannot find archive DLC file " + args.input_dlc)
            sys.exit(-1)

        m.dump_info(args.memory, args.input_dlc, output_file_name)

    except Exception as e:
        traceback.print_exc()
        sys.exit(-2)

if __name__ == "__main__":
    main()
