Utility framework for easier & more robust duck typing in Python
Project description
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)
Features
- interfaces which do not need to be explicitly declared (similar to Go language)
- automatic interface/type checking for function arguments
- function overloading based on interfaces/types of arguments
- automatic interface/type checking for function return values
For more info & the docs, see the project’s webpage.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Filename, size | File type | Python version | Upload date | Hashes |
---|---|---|---|---|
Filename, size pyduck-0.5.2.tar.gz (8.5 kB) | File type Source | Python version None | Upload date | Hashes View |