Skip to main content

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.

Metadata

Release files for pyduck 0.5.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for pyduck 0.5.2
File Size Uploaded
pyduck-0.5.2.tar.gz 8.5 kB Details

Release files / pyduck-0.5.2.tar.gz

Download URL pyduck-0.5.2.tar.gz
Size 8.5 kB
Tags Source
SHA-256 checksum
How to use checksums
7eb691a64722fa1ecda11289c387ec1807ac1bd61a7411b11d3784d4e9883cea
BLAKE2b-256 checksum
How to use checksums
662b10a33b8ab4611c349249946bd8b74b8aafb3f6889299b91f37ba4cf65a2a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Release history Release notifications | RSS feed

This release

0.5.2 This release

1 release file

0.5.1

1 release file

0.5

1 release file

0.4

1 release file

0.3.1

1 release file

0.3

1 release file

0.2

1 release file

0.1

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page