Skip to content
master
Go to file
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
 
 
 
 
 
 
 
 
 
 

README.rst

Overload

Overload python functions to behave diffrently depending on number and types of arguments.

Install

pip install p2-overload

Usage

from overload import *

# types and number or agrs:
@overload(int)
def quantify(n):
    return 'quantify' * n

@overload(str)
def quantify(s):
    return s * 2

@overload(str, int)
def quantify(s, n):
    return s * n

assert quantify(2) == 'quantifyquantify'
assert quantify('bye') == 'byebye'
assert quantify('xy', 3) == 'xyxyxy'

# predicates on args
@overload(int, int)
def step(start, step):
    return start + step

@overload(int, callable)
def step(start, succ):
    return succ(start)

# use tuple of types
@overload((list, tuple))
def twice(coll):
    return coll + coll

# use custom predicates
from whatever import _

@overload(_ < 2) # same as lambda x: x < 2
def fib(n):
    return n

@overload(int)
def fib(n):
    return fib(n-1) + fib(n-2)

TODO

  • support named and optional arguments
  • ellipsis

About

Overload python 2 functions

Resources

License

Releases

No releases published

Packages

No packages published

Languages

You can’t perform that action at this time.