Simple Python extensions.
Project description
PyExt
=====
.. image:: https://travis-ci.org/kirbyfan64/PyExt.png
:target: https://travis-ci.org/kirbyfan64/PyExt
Several simple extensions that add some nifty features to Python.
NEWS: There is now a PyExt newsgroup on Google Groups. See https://groups.google.com/forum/#!forum/pyext.
Some features:
- Function overloading
- Switch statement
- Runtime module creation
- Tail recursion removal
- Python 2 function annotations
- Python 2 safe tuple unpacking
Examples:
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...'; case.quit() # case.quit() is the same as break
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
TODO:
- Add some more tests
.. 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.
=====
.. image:: https://travis-ci.org/kirbyfan64/PyExt.png
:target: https://travis-ci.org/kirbyfan64/PyExt
Several simple extensions that add some nifty features to Python.
NEWS: There is now a PyExt newsgroup on Google Groups. See https://groups.google.com/forum/#!forum/pyext.
Some features:
- Function overloading
- Switch statement
- Runtime module creation
- Tail recursion removal
- Python 2 function annotations
- Python 2 safe tuple unpacking
Examples:
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...'; case.quit() # case.quit() is the same as break
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
TODO:
- Add some more tests
.. 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.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
pyext-0.7.tar.gz
(7.8 kB
view details)
pyext-0.6.tar.gz
(7.3 kB
view details)
File details
Details for the file pyext-0.7.tar.gz
.
File metadata
- Download URL: pyext-0.7.tar.gz
- Upload date:
- Size: 7.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | e618a635be4e8c4a84b443cc27186601ad052efe35f01839815f2a2cf3947cdf |
|
MD5 | 838762233b1b20d24b5b4214ebab0ec2 |
|
BLAKE2b-256 | b0be9b6005ac644aaef022527ce49617263379e49dbdbd433d1d3dd66d71f570 |
File details
Details for the file pyext-0.6.tar.gz
.
File metadata
- Download URL: pyext-0.6.tar.gz
- Upload date:
- Size: 7.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6c406cf71b991e1fc5a7f963d3a289525bce5e7ad1c43b697d9f5223185fcaef |
|
MD5 | b20a76282f2746d343a2ea49af68a09a |
|
BLAKE2b-256 | 9c8e75e816409b51bce77ec0b99073b462f028509c65a26bfdc87ed88f712dc9 |