diff options
author | Anish Athalye <me@anishathalye.com> | 2015-01-26 10:36:36 -0500 |
---|---|---|
committer | Anish Athalye <me@anishathalye.com> | 2015-01-26 10:36:36 -0500 |
commit | 69502854aaa7597bca9b341b3ce05efa10b4b9d1 (patch) | |
tree | f814ae3393c26201ba82e9eb8b48e371e6cba0e1 /dotbot | |
parent | c638e25941d3ce927efa6672f474f3e0c6bf03a7 (diff) |
Fix compatibility
This commit fixes usage of the Singleton metaclass so that it is
compatible with both Python 2 and Python 3.
Diffstat (limited to 'dotbot')
-rw-r--r-- | dotbot/messenger/messenger.py | 5 | ||||
-rw-r--r-- | dotbot/util/compat.py | 5 |
2 files changed, 7 insertions, 3 deletions
diff --git a/dotbot/messenger/messenger.py b/dotbot/messenger/messenger.py index 9a85a48..f87a367 100644 --- a/dotbot/messenger/messenger.py +++ b/dotbot/messenger/messenger.py @@ -1,11 +1,10 @@ import sys from ..util.singleton import Singleton +from ..util.compat import with_metaclass from .color import Color from .level import Level -class Messenger(object): - __metaclass__ = Singleton - +class Messenger(with_metaclass(Singleton, object)): def __init__(self, level = Level.LOWINFO): self.set_level(level) diff --git a/dotbot/util/compat.py b/dotbot/util/compat.py new file mode 100644 index 0000000..b0f8f05 --- /dev/null +++ b/dotbot/util/compat.py @@ -0,0 +1,5 @@ +def with_metaclass(meta, *bases): + class metaclass(meta): + def __new__(cls, name, this_bases, d): + return meta(name, bases, d) + return type.__new__(metaclass, 'temporary_class', (), {}) |