in pygenie/jobs/pig.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 = PigJob.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})
param_files_str = ' '.join([
'-param_file {}'.format(os.path.basename(p)) \
for p in self._parameter_files
])
# 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': '_pig_parameters.txt',
'data': param_str
})
props_str = ' '.join([
'-D{name}={value}'.format(name=k, value=v) \
for k, v in self._command_options.get('-D', {}).items()
])
prop_file_str = ' '.join(['-P {}'.format(os.path.basename(f)) for f in self._property_files]) \
if self._property_files \
else ''
return '{props} {prop_file} {param_files} {params} -f {filename} {post_cmd_args}' \
.format(prop_file=prop_file_str,
props=props_str,
filename=filename,
param_files=param_files_str,
params='-param_file _pig_parameters.txt' if param_str else '',
post_cmd_args=' '.join(self._post_cmd_args)) \
.strip()