diff --git a/python/helpers/run_coverage.py b/python/helpers/run_coverage.py
new file mode 100644
index 0000000..5785945
--- /dev/null
+++ b/python/helpers/run_coverage.py
@@ -0,0 +1,36 @@
+"""Coverage.py's main entrypoint."""
+
+import os
+import sys
+import imp
+
+helpers_root = os.getenv('PYCHARM_HELPERS_ROOT')
+if helpers_root:
+    sys_path_backup = sys.path
+    sys.path = [p for p in sys.path if p!=helpers_root]
+    from coverage.cmdline import main
+    sys.path = sys_path_backup
+else:
+    from coverage.cmdline import main
+
+coverage_file = os.getenv('PYCHARM_COVERAGE_FILE')
+run_cov = os.getenv('PYCHARM_RUN_COVERAGE')
+if os.getenv('JETBRAINS_REMOTE_RUN'):
+    line = 'LOG: PyCharm: File mapping:%s\t%s\n'
+    import tempfile
+    (h, new_cov_file) = tempfile.mkstemp(prefix='pycharm-coverage')
+    print(line%(coverage_file, new_cov_file))
+    print(line%(coverage_file + '.syspath.txt', new_cov_file + '.syspath.txt'))
+    print(line%(coverage_file + '.xml', new_cov_file + '.xml'))
+    coverage_file = new_cov_file
+
+if coverage_file:
+    os.environ['COVERAGE_FILE'] = coverage_file
+if run_cov:
+    a_file = open(coverage_file + '.syspath.txt', mode='w')
+    a_file.write(os.getcwd()+"\n")
+    for path in sys.path: a_file.write(path + "\n")
+    a_file.close()
+main()
+if run_cov:
+    main(["xml", "-o", coverage_file + ".xml", "--ignore-errors"])
\ No newline at end of file
