123456789101112131415161718192021222324252627282930313233343536373839404142434445464748 |
- # 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_unused, file_obj):
- """Replacement for CoverageData._read_raw_data."""
- return pickle.load(file_obj)
- def pickle2json(infile, outfile):
- """Convert a coverage.py 3.x pickle data file to a 4.x JSON data file."""
- try:
- old_read_raw_data = CoverageData._read_raw_data
- CoverageData._read_raw_data = pickle_read_raw_data
- covdata = CoverageData()
- with open(infile, 'rb') as inf:
- covdata.read_fileobj(inf)
- 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)
|