renamed package.
This commit is contained in:
@@ -0,0 +1,32 @@
|
||||
class Adapter(object):
|
||||
"""
|
||||
Adapter class as part of the Adapter design pattern.
|
||||
|
||||
External Adapter Pattern Documentation: U{https://en.wikipedia.org/wiki/Adapter_pattern}
|
||||
"""
|
||||
def __init__(self, adaptee, **adapted_methods):
|
||||
"""
|
||||
Initialize a new adapter instance.
|
||||
|
||||
@param adaptee: The object to adapt to a new interface.
|
||||
@type adaptee: Object
|
||||
@param adapted_methods: A dictionary of methods to adapt.
|
||||
@type adapted_methods: dict
|
||||
"""
|
||||
self.__adaptee = adaptee
|
||||
self.__dict__.update({k: v for k, v in adapted_methods.items() if callable(v) and
|
||||
getattr(self.__adaptee, v.__name__, None)})
|
||||
|
||||
def __getattr__(self, attr):
|
||||
"""
|
||||
All non-adapted calls are passed to the adaptee.
|
||||
|
||||
@param attr: The attribute to get from the adaptee.
|
||||
"""
|
||||
return getattr(self.__adaptee, attr)
|
||||
|
||||
def original_dict(self):
|
||||
"""
|
||||
Get the adaptee's __dict__
|
||||
"""
|
||||
return self.__adaptee.__dict__
|
||||
Reference in New Issue
Block a user