#!/usr/bin/env python

from spyt.dependency_utils import require_yt_client
require_yt_client()

from yt.wrapper import YtClient  # noqa: E402
from spyt.standalone import raw_submit  # noqa: E402
from spyt import utils as spark_utils  # noqa: E402


def main(raw_args=None):
    parser = spark_utils.get_default_arg_parser(description="Spark Submit")
    parser.add_argument("--python-version", required=False)

    parser.add_argument('--no-local-files',
                        dest='local_files', action='store_false')
    parser.set_defaults(local_source=True)

    args, unknown_args = spark_utils.parse_args(parser, raw_args=raw_args)

    yt_client = YtClient(proxy=args.proxy, token=spark_utils.default_token(),
                         config={"remote_temp_files_directory": "//tmp/spyt"})

    return_code = raw_submit(discovery_path=args.discovery_path,
                             spark_home=spark_utils.get_spark_home(),
                             spark_args=unknown_args,
                             python_version=args.python_version,
                             local_files=args.local_files,
                             client=yt_client)
    exit(return_code)


if __name__ == '__main__':
    main()
