pyduck is a Python utility framework for more effective usage of language's defining traits: duck typing. It enhances the language with several useful features that increase the readability and reliability of Python code.
from pyduck import Interface, expects, Any, overload
class Iterable(Interface):
def __iter__(self): pass
@expects(Iterable)
def __iterable_as_json(value):
json_list = map(as_json, value)
return "[%s]" % str.join(",", json_list)
@expects(basestring)
def __string_as_json(value):
return '"%s"' % str(value)
@expects(Any)
def __other_as_json(value):
return str(value)
as_json = overload(__iterable_as_json, __string_as_json, __other_as_json)
For more info & the docs, see the project's webpage.