3781
Comment: webbrowser module
|
4727
fixed func_defaults
|
Deletions are marked like this. | Additions are marked like this. |
Line 9: | Line 9: |
* distutils and setuptools **(Mostly finished, See** `SetuptoolsOnJython`_ **)** | * distutils and setuptools **(distutils is now supported and setuptools-0.6c8 supports jython-trunk, See** `SetuptoolsOnJython`_ ** for more details)** |
Line 24: | Line 24: |
* compiler package (and compiler requires the parser module which Jython lacks). nose only needs the compiler module to use compiler.consts.CO_GENERATOR; until there's a parser, maybe jython could provide a broken compiler module that doesn't import parser | * fix for new.instancemethod not allowing a PyType as its class argument **(fixed in r4051)** * fix for inspect.argspec not working (also needed for Pylons, among other things) **(fixed in r4053)** * imp.find_module returned entries in regard to bytecode files instead of .py files when they were available **(fixed in r4080)** * fix type names and class __module__ in doctests **(fixed in r4107, 4111)** * methods weren't always inheriting their inner functions' __name__ and __doc__ **(fixed in r4109)** * compiler package (and compiler requires the parser module which Jython lacks). nose only needs the compiler module to use compiler.consts.CO_GENERATOR; until there's a parser jython will provide a broken compiler module that doesn't import parser **(added in r4114)** * Patches to nose for Jython compatibility: http://code.google.com/p/python-nose/issues/detail?id=160 |
Line 28: | Line 40: |
Pretty much all tests pass: though some tests require Paste's paste.fixture, which is troublesome to import | All tests, except some which require paste.fixture (Paste is troublesome to import at this point), pass |
Line 35: | Line 47: |
* subprocess module: if it doesn't exist (Python 2.3) it uses a version copied over from CPython 2.4 (paste.util.subprocess24) **(added in r4150)** * paste.script.util.uuid requires the Python 2.3 int/long unification (PEP 237) phase B **(added in r4175)** |
|
Line 36: | Line 52: |
* subprocess module: if it doesn't exist (Python 2.3) it uses a version copied over from CPython 2.4 (paste.util.subprocess24). paste.util.subprocess24 dies on attempting to import fcntl, so Jython needs to provide subprocess |
|
Line 51: | Line 65: |
* Paste (for paste.fixture) | * Paste (for paste.fixture) **can be installed/imported now** |
Line 58: | Line 72: |
* routes * simplejson |
* routes **(can be installed/imported now that Paste doesn't blow up)** * simplejson **(can be installed now)** * webhelpers.textile requires the unicodedata module |
Line 65: | Line 82: |
* gettext (which requires the locale module, which Jython lacks) | * gettext (which requires the locale module, which Jython lacks) **(both were added in r4077, 4084)** |
Line 70: | Line 87: |
* `SetuptoolsOnJython`_ currently has trouble installing simplejson, because it attempts to compile its optional C extensions (that help performance). It expects to catch a distutils.errors.CCompilerError if the compilation fails, but Jython dies much earlier: | * `SetuptoolsOnJython`_ (actually distutils) currently had trouble installing simplejson because it attempts to compile its optional C extensions (that help performance). It expected to catch a distutils.errors.CCompilerError **(fixed in r4157: A CCompilerError is now raised)** |
Line 72: | Line 89: |
File "/Users/pjenvey/src/java/jython-trunk/dist/Lib/distutils/command/build_ext.py", line 598, in get_ext_filename TypeError: cannot concatenate 'str' and 'NoneType' objects |
all simplejson tests pass! |
Line 79: | Line 94: |
* requires function.func_defaults to be writable and it currently isn't on Jython **(fixed in 4177)** |
Pylons (0.9.6.1) on Jython Requirements/TODO
Installing Pylons and its dependencies
- distutils and setuptools (distutils is now supported and setuptools-0.6c8 supports jython-trunk, See SetuptoolsOnJython ** for more details)**
- Ensure all dependencies' tests pass
nose
Pylons projects require nose, but most packages (including Pylons) use nose as their own test runners.
requires:
- optparse module (added in r4018)
- a fix for the cell variable (variables used in closures) bug here: http://pylonshq.com/pasties/667 (fixed in r4038)
- fix for new.instancemethod not allowing a PyType as its class argument (fixed in r4051)
- fix for inspect.argspec not working (also needed for Pylons, among other things) (fixed in r4053)
- imp.find_module returned entries in regard to bytecode files instead of .py files when they were available (fixed in r4080)
- fix type names and class __module__ in doctests (fixed in r4107, 4111)
- methods weren't always inheriting their inner functions' __name__ and __doc__ (fixed in r4109)
- compiler package (and compiler requires the parser module which Jython lacks). nose only needs the compiler module to use compiler.consts.CO_GENERATOR; until there's a parser jython will provide a broken compiler module that doesn't import parser (added in r4114)
- Patches to nose for Jython compatibility: http://code.google.com/p/python-nose/issues/detail?id=160
Routes
All tests, except some which require paste.fixture (Paste is troublesome to import at this point), pass
Paste, PasteDeploy and PasteScript
requires:
- subprocess module: if it doesn't exist (Python 2.3) it uses a version copied over from CPython 2.4 (paste.util.subprocess24) (added in r4150)
- paste.script.util.uuid requires the Python 2.3 int/long unification (PEP 237) phase B (added in r4175)
- modulefinder module (imported in paste/__init__.py). Jython currently lacks it, and modulefinder relies on reading code objects via marshal.load
- webbrowser module: paste.fixture imports it. Jython doesn't include it. It's a pretty simple module -- though it doesn't seem to work right on Jython when launching a console browser (like lynx or links). I think it's an os.system problem
Mako
requires:
- compiler module: to parse Python code into AST. The compiler module is mostly pure Python code, but its guts are really the native parser module (which Jython lacks)
Beaker
requires:
- Paste (for paste.fixture) can be installed/imported now
- base64.b64encode: might die on an attempting to import b64encode in beaker.crypto.PBKDF2 (at least it does when the tests are run)
WebHelpers
requires:
- routes (can be installed/imported now that Paste doesn't blow up)
- simplejson (can be installed now)
- webhelpers.textile requires the unicodedata module
FormEncode
requires:
- gettext (which requires the locale module, which Jython lacks) (both were added in r4077, 4084)
simplejson
- SetuptoolsOnJython (actually distutils) currently had trouble installing simplejson because it attempts to compile its optional C extensions (that help performance). It expected to catch a distutils.errors.CCompilerError (fixed in r4157: A CCompilerError is now raised)
all simplejson tests pass!
decorator
- requires function.func_defaults to be writable and it currently isn't on Jython (fixed in 4177)
- Note: decorators aren't currently supported in Jython, however the decorator module doesn't actually use decorators (works on CPython 2.3)
Later down the road
SQLAlchemy
- The Dialect Refactor II ticket will need to be implemented to properly support using SQLAlchemy via Jython's DBAPI jdbc driver, zxJDBC.
- Frank Wierzbicki has done some preliminary work on using SQLAlchemy with Jython, info here, and is scheduled to give a talk at PyCon 2008: "Database development with Jython, SQLAlchemy, and Hibernate"
Turbogears 2
- Jim Baker has already started playing with Genshi on the Jython modern branch