Archived
This project has been archived by its maintainers, and is no longer receiving any updates.
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.
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
|