Several simple extensions that add some nifty features to Python.
GitHub | https://github.com/kirbyfan64/PyExt |
PyPI | https://pypi.python.org/pypi/pyext |
Newsgroup | https://groups.google.com/forum/#!forum/pyext |
- Function overloading
- Switch statement
- Runtime module creation
- Tail recursion removal
- Python 2 function annotations
- Python 2 safe tuple unpacking
- Assignment if condition is true
Function overloading:
@overload.argc(1) def f(a): print 'Function 1 called' @overload.argc(2) def f(a, b): print 'Function 2 called' f(1) f(1, 2)
Switch statement:
with switch(1): if case(0): print 'Awkward...' if case(2): print '???' if case(1): print 'Phew! It works!' if case.default(): print 'Ummmm...'
Function annotations:
@fannotate('Return annotation', a=1, b=2) def x(a, b): return 0
Assign if condition is true:
compare_and_swap('my_var', None, 2) # set my_var to 2 if it equals None
Note
Please ignore this project's messy commit history(several commits under invalid_email_address, about 20 commits labeled Initial). I was trying to use hg-git and kept goofing stuff up.