4 HCE project, Python bindings, Distributed Tasks Manager application. 5 join.py - cli tool to join data files list delimited with space passed via stdin in 6 to one output serialized json stream to stdout. 10 @author Alexander Vybornyh <alexander.hce.cluster@gmail.com> 11 @link: http://hierarchical-cluster-engine.com/ 12 @copyright: Copyright © 2013-2016 IOIX Ukraine 13 @license: http://hierarchical-cluster-engine.com/license/ 27 from cement.core
import foundation
30 exitCode = APP_CONSTS.EXIT_SUCCESS
31 DEFAULT_DELIMITER_VALUE =
' ' 39 inputFiles = outputFile =
None 42 app = foundation.CementApp(
'join_tools')
47 app.args.add_argument(
'-f',
'--files', action=
'store', metavar=
'input_file_names', help=
'input file names',
49 app.args.add_argument(
'-d',
'--delimiter', action=
'store', metavar=
'delimiter', help=
'delimiter of input file names string',
51 app.args.add_argument(
'-o',
'--output_file', action=
'store', metavar=
'output_file', help=
'output file name',
57 delimiter = DEFAULT_DELIMITER_VALUE
58 if app.pargs.delimiter
is not None:
59 delimiter = app.pargs.delimiter
61 if app.pargs.files
is not None:
62 inputFiles = app.pargs.files.split(delimiter)
64 if app.pargs.output_file
is not None:
65 outputFile = app.pargs.output_file
67 except Exception, err:
68 sys.stderr.write(str(err) +
'\n' + Utils.getTracebackInfo() +
'\n')
72 return inputFiles, outputFile
83 f = open(fileName,
'r') 87 except Exception, err:
88 sys.stderr.write(str(err) +
'\n')
99 if result
is not None:
100 if outputFile
is None:
101 sys.stdout.write(json.dumps(result))
103 f = open(outputFile,
'w')
115 if isinstance(inputFiles, list):
117 for fileName
in inputFiles:
125 for index, obj
in enumerate(objs, 1):
126 ret[
'itemsList'][0][
'itemObject'].extend(obj[
'itemsList'][0][
'itemObject'])
131 if __name__ ==
"__main__":
136 except Exception
as err:
137 sys.stderr.write(str(err) +
'\n' + Utils.getTracebackInfo() +
'\n')
138 exitCode = APP_CONSTS.EXIT_FAILURE
140 exitCode = APP_CONSTS.EXIT_FAILURE
def outputResultData(outputFile, result)
def mergeData(inputFiles)