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.
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
pyduck-0.5.2.tar.gz
(8.5 kB
view details)
File details
Details for the file pyduck-0.5.2.tar.gz.
File metadata
- Download URL: pyduck-0.5.2.tar.gz
- Upload date:
- Size: 8.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7eb691a64722fa1ecda11289c387ec1807ac1bd61a7411b11d3784d4e9883cea
|
|
| MD5 |
ade28ebf7b41d18707a6291fe74f0474
|
|
| BLAKE2b-256 |
662b10a33b8ab4611c349249946bd8b74b8aafb3f6889299b91f37ba4cf65a2a
|