Skip to main content

No project description provided

Project description

A small library to provide multi-methods. All functions are in the dialogue.multi_method package.

To create a multi-method, create a dispatch function, that takes the arguments and returns a hashable value, that is used to dispatch on. Use the @multi function annotation to annotate the function.

For each value of the dispatch function that you want to be handled differently, create a method with that dispatch value.

You can define a method with no dispatch value, that becomes the default method if no other method is defined for a dispatch value.

An example:

@multi
def number(x):
  return x


@method(number, 1)
def number_one(x):
  return 'one'


@method(number)
def number_other(x):
  return "not one, but "+ str(c)


assert number(1) == 'one'
assert number(0) == 'not one, but 0'

The dispatch function is available, e.g. for testing:

assert dispatch_fn(number)('x') == 'x'

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

dialogue.multi-method-0.0.5.tar.gz (2.5 kB view details)

Uploaded Source

File details

Details for the file dialogue.multi-method-0.0.5.tar.gz.

File metadata

  • Download URL: dialogue.multi-method-0.0.5.tar.gz
  • Upload date:
  • Size: 2.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.9.1 pkginfo/1.4.1 requests/2.18.3 setuptools/28.8.0 requests-toolbelt/0.8.0 tqdm/4.15.0 CPython/3.6.1

File hashes

Hashes for dialogue.multi-method-0.0.5.tar.gz
Algorithm Hash digest
SHA256 6f83adb2802c327514d1ad3fdb32cfefcc0818ba1e6281a35b595254caa21473
MD5 c8b9d3b0022f990b8778776d7dc86112
BLAKE2b-256 8d591dc742320c5dc21abac38553deb11b34482e2c7779dbb30ab05dc5de8167

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page