diff options
author | Ned Batchelder <nedbat@gmail.com> | 2015-08-14 19:24:22 -0400 |
---|---|---|
committer | Ned Batchelder <nedbat@gmail.com> | 2015-08-14 19:24:22 -0400 |
commit | d16990fc2700aa2d4d4ca01559880eb56bf60e50 (patch) | |
tree | 5256cb1f8be05e947ce98f1f795ae3f4232b685d /coverage/pickle2json.py | |
parent | 0931c66d04ce1ca74a8f0b89428c9ae45fe5bd0e (diff) | |
parent | 037cccd82749ba41f524ff472cec34bc2cf9fd08 (diff) | |
download | python-coveragepy-d16990fc2700aa2d4d4ca01559880eb56bf60e50.tar.gz |
Merged in atodorov/coverage.py/read_pickle (pull request #67)
Add pickle2json converter.
Diffstat (limited to 'coverage/pickle2json.py')
-rw-r--r-- | coverage/pickle2json.py | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/coverage/pickle2json.py b/coverage/pickle2json.py new file mode 100644 index 0000000..4a2e941 --- /dev/null +++ b/coverage/pickle2json.py @@ -0,0 +1,40 @@ +# Licensed under the Apache License: http://www.apache.org/licenses/LICENSE-2.0 +# For details: https://bitbucket.org/ned/coveragepy/src/default/NOTICE.txt + +"""Convert pickle to JSON for coverage.py.""" + +from coverage.backward import pickle +from coverage.data import CoverageData + +def pickle_read_raw_data(cls, file_obj): + return pickle.load(file_obj) + +def pickle2json(infile, outfile): + try: + old_read_raw_data = CoverageData._read_raw_data + CoverageData._read_raw_data = pickle_read_raw_data + + covdata = CoverageData() + + inf = open(infile, 'rb') + covdata.read(inf) + inf.close() + + covdata.write_file(outfile) + finally: + CoverageData._read_raw_data = old_read_raw_data + + +if __name__ == "__main__": + from optparse import OptionParser + + parser = OptionParser(usage="usage: %s [options]" % __file__) + parser.description = "Convert .coverage files from pickle to JSON format" + parser.add_option("-i", "--input-file", action="store", default=".coverage", + help="Name of input file. Default .coverage") + parser.add_option("-o", "--output-file", action="store", default=".coverage", + help="Name of output file. Default .coverage") + + (options, args) = parser.parse_args() + + pickle2json(options.input_file, options.output_file) |