Skip to main content

function can be dispatched by its arguments

Project description

arg_dispatch

function can be dispatched by its arguments

Example

from arg_dispatch import dispatch


# Functions
@dispatch
def demo(a, b):
    return 'hello'
    
@dispatch
def demo(c):
    return 'world'
    

demo(a=1, b=2)  # return 'hello'
demo(c=3)       # return 'world'

# try to call a function which has not been registed
demo(d=4)       # raise `FunctionNotRegist`

# Methods
class Demo(object):
    @dispatch
    def demo(self, a, b):
        return 'hello'
        
    @dispatch
    def demo(self, c):
        return 'world'
        
instance = Demo()
instance.demo(a=1, b=2)  # return 'hello'
instance.demo(c=3)       # return 'world'

# try to call a method which has not been registed
instance.demo(d=4)       # raise `FunctionNotRegist`

Notice💣

positional arguments must be required

demo(1, 2)          # Boom!💣, raise `ArgumentError`
instance.demo(1, 2) # Boom!💣, raise `ArgumentError`

default value is also not supported

@dispatch
def demo(a, b=1):            # Boom!💣, raise `ExistDefaultValue`
    return 'hello'
    
class Demo(object):
    @dispatch
    def demo(self, a, b=1):  # Boom!💣, raise `ExistDefaultValue`
        return 'hello'

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

arg_dispatch-0.1.3.tar.gz (14.9 kB view details)

Uploaded Source

Built Distribution

arg_dispatch-0.1.3-py3-none-any.whl (15.4 kB view details)

Uploaded Python 3

File details

Details for the file arg_dispatch-0.1.3.tar.gz.

File metadata

  • Download URL: arg_dispatch-0.1.3.tar.gz
  • Upload date:
  • Size: 14.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/0.12.17 CPython/3.6.6 Darwin/18.6.0

File hashes

Hashes for arg_dispatch-0.1.3.tar.gz
Algorithm Hash digest
SHA256 af1450b39935788eb494fed963c05fd43b4fb8254feffd15c7b8af31fa8f5a01
MD5 ee9fb2b7c2c65bd07f6eb8bfdcda379a
BLAKE2b-256 c38e753b85f970403f650fab1f5046fbef92a6a0f7ed09edac9845a08ff24234

See more details on using hashes here.

File details

Details for the file arg_dispatch-0.1.3-py3-none-any.whl.

File metadata

  • Download URL: arg_dispatch-0.1.3-py3-none-any.whl
  • Upload date:
  • Size: 15.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/0.12.17 CPython/3.6.6 Darwin/18.6.0

File hashes

Hashes for arg_dispatch-0.1.3-py3-none-any.whl
Algorithm Hash digest
SHA256 ad8125affea7ac7a118913ede1fed11d6c596d3eac7b99051040d50e0ccab7c9
MD5 ffe1caf9c6c5103c0b099f623d29c62d
BLAKE2b-256 03cffd6a9adf5de3da5b579b582759adedf77574bc753eab3b58ef06aad81b87

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