def cmd_args()

in pygenie/jobs/hive.py [0:0]


    def cmd_args(self):
        """
        The constructed command line arguments using the job's definition. If the
        command line arguments are set explicitly (by calling
        :py:meth:`command_arguments`) this will be the same.
        """

        if self._command_arguments is not None:
            return self._command_arguments

        filename = HiveJob.DEFAULT_SCRIPT_NAME
        if is_file(self._script):
            filename = os.path.basename(self._script)
            self._add_dependency(self._script)
        elif self._script is not None:
            self._add_dependency({'name': filename, 'data': self._script})

        # put parameters into a parameter file and specify parameter file on command line
        # this is to get around weird quoting issues in parameter values, etc
        param_str = self._parameter_file
        if param_str:
            self._add_dependency({
                'name': '_hive_parameters.txt',
                'data': param_str
            })

        props_str = ' '.join([
            '--hiveconf {name}={value}'.format(name=k, value=v) \
            for k, v in self._command_options.get('--hiveconf', {}).items()
        ])

        prop_file_str = ' '.join(['-i {}'.format(os.path.basename(f)) for f in self._property_files]) \
            if self._property_files \
            else ''

        return '{prop_file} {props} {params} -f {filename} {post_cmd_args}' \
            .format(prop_file=prop_file_str,
                    props=props_str,
                    filename=filename,
                    params='-i _hive_parameters.txt' if param_str else '',
                    post_cmd_args=' '.join(self._post_cmd_args)) \
            .strip()