Differences between revisions 34 and 36 (spanning 2 versions)
Revision 34 as of 2007-09-23 06:51:47
Size: 5329
Editor: quiver
Comment:
Revision 36 as of 2007-09-23 20:35:49
Size: 5272
Editor: 96
Comment:
Deletions are marked like this. Additions are marked like this.
Line 5: Line 5:
 * Jython does not support non-str keys in {{{__dict__}}} right now. If Groves' {{{HashMap}}} replacement works out maybe this issue will disappear. Problem encountered in {{{django/utils/_threading_local.py}}}.
 * Unicode string interpolation doesn't work in the general case. [http://sourceforge.net/tracker/index.php?func=detail&aid=1799328&group_id=12867&atid=112867 bug] [http://sourceforge.net/tracker/index.php?func=detail&aid=1799330&group_id=12867&atid=312867 patch]
   *
There is also a problem with the algorithm deciding whether to call {{{__str__}}} or {{{__unicode__}}}. More research is needed, but it affects the lazy string evaluation on which the Django i18n system relies ({{{django/utils/functional.py}}}).
   * I found that {{{object.__unicode__}}} doesn't exist in CPython, and if it's removed from jython this works as expected. [https://sourceforge.net/tracker/?func=detail&atid=112867&aid=1800378&group_id=12867 bug] [https://sourceforge.net/tracker/?func=detail&atid=312867&aid=1800381&group_id=12867 patch] -- TristanKing
 * Jython does not support non-str keys in {{{__dict__}}} right now. Jim Baker replaced the custom dictionary in {{{PyStringMap}}} with a {{{HashMap}}} (along Groves' earlier work). This change should resolve this problem. Try the [https://jython.svn.sourceforge.net/svnroot/jython/branches/modern/ modern] branch. Problem encountered in {{{django/utils/_threading_local.py}}}. 
 * There is a problem with the algorithm deciding whether to call {{{__str__}}} or {{{__unicode__}}}. More research is needed, but it affects the lazy string evaluation on which the Django i18n system relies ({{{django/utils/functional.py}}}), among other things.
   * I found that {{{object.__unicode__}}} doesn't exist in CPython, and if it's removed from jython this works as expected. [https://sourceforge.net/tracker/?func=detail&atid=112867&aid=1800378&group_id=12867 bug] [https://sourceforge.net/tracker/?func=detail&atid=312867&aid=1800381&group_id=12867 patch] -- TristanKing
Line 19: Line 18:
 * The {{{U}}} (Universal newlines) flag for {{{open()}}} isn't recognized on Jython
Line 28: Line 26:
   *
Line 45: Line 42:
   * Django don't tries to check or change file permissions when running on Jython now    * Django don't check or change file permissions when running on Jython now
 * The {{{U}}} (Universal newlines) flag for {{{open()}}} isn't recognized on Jython
 * Unicode string interpolation doesn't work

Gaps between Jython and Django

Major problems

Minor annoyances

Already Fixed

  • Jython does not have sys.stdout.isatty. Jython should get added to the exclusions around that call in django/core/management.py (win32 and 'Pocket PC' are already excluded).

  • stringmap (or the __dict__ implementation) needs a pop(o) method.

  • Jython lists and tuples don't have __iter__ .

  • Jython does not have os.getpid().

    • Django workarounds it now.
  • Jython does not have os.W_OK needed in django/core/management.py. This probably will not be hard to add this since java.io.File has a canWrite().

    • os.chmod should be implemented too (After checking for write permissions, Django will try to change them if necessary).

      • That's hard. Maybe Django shouldn't check for permissions if running on Jython.
    • Django don't check or change file permissions when running on Jython now
  • The U (Universal newlines) flag for open() isn't recognized on Jython

  • Unicode string interpolation doesn't work

DjangoOnJython (last edited 2014-05-22 23:24:19 by AdamBurke)