summaryrefslogtreecommitdiff
path: root/coverage/backward.py
diff options
context:
space:
mode:
authorNed Batchelder <ned@nedbatchelder.com>2019-06-17 17:57:26 -0400
committerNed Batchelder <ned@nedbatchelder.com>2019-06-17 18:33:58 -0400
commitbd76d83ad30c2f3e2ecc596bc4df44de2e681b6c (patch)
treea688fa0cf0d62bef8d8c761fd7d705dcb4403b64 /coverage/backward.py
parent014786bd145127765397f752dab0ff2307b9c147 (diff)
downloadpython-coveragepy-git-bd76d83ad30c2f3e2ecc596bc4df44de2e681b6c.tar.gz
Use an object instead of a dict for the report data
Diffstat (limited to 'coverage/backward.py')
-rw-r--r--coverage/backward.py18
1 files changed, 18 insertions, 0 deletions
diff --git a/coverage/backward.py b/coverage/backward.py
index 1d92469d..05fa261e 100644
--- a/coverage/backward.py
+++ b/coverage/backward.py
@@ -155,6 +155,24 @@ except AttributeError:
PYC_MAGIC_NUMBER = imp.get_magic()
+try:
+ from types import SimpleNamespace
+except ImportError:
+ # The code from https://docs.python.org/3/library/types.html#types.SimpleNamespace
+ class SimpleNamespace:
+ """Python implementation of SimpleNamespace, for Python 2."""
+ def __init__(self, **kwargs):
+ self.__dict__.update(kwargs)
+
+ def __repr__(self):
+ keys = sorted(self.__dict__)
+ items = ("{}={!r}".format(k, self.__dict__[k]) for k in keys)
+ return "{}({})".format(type(self).__name__, ", ".join(items))
+
+ def __eq__(self, other):
+ return self.__dict__ == other.__dict__
+
+
def invalidate_import_caches():
"""Invalidate any import caches that may or may not exist."""
if importlib and hasattr(importlib, "invalidate_caches"):