DebugClients/Python/coverage/pickle2json.py

branch
debugger speed
changeset 5178
878ce843ca9f
parent 4489
d0d6e4ad31bd
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/DebugClients/Python/coverage/pickle2json.py	Mon Sep 19 22:47:52 2016 +0200
@@ -0,0 +1,47 @@
+# 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)

eric ide

mercurial