Jython: Python for the Java Platform

Jython 2.5.1 Release Notes

The following features have been added and bugs have been repaired for 2.5.1. For a look at the complete roadmap for Jython along iwth links for the PEPs and other information, please look at the roadmap:

New Features

  • zxJDBC supports the with-statement: connections are committed or rollbacked; cursors are closed
  • Upgraded to ANTLR 3.1.3
  • [ 1859477 ] Dynamically loaded ServletFilters like PyServlet
  • Built in JSR 223 scripting engine, with LiveTribe JSR 223 implementation for JDK 5
  • Jython "-J-classpath cp_args_here" now works as expected for unix shell.

Bugs Fixed

  • [ 1466 ] wrong handling of append only files
  • [ 1079 ] fixed regression on issue: twisted.python.threadable module: missing attribute '_RLock'
  • [ 1461 ] assert statement should lookup AssertionError using getglobal
  • [ 1425 ] distutils/util.py assumes too much posix
  • [ 1457 ] Cannot write an array in a file opened in r+b mode.
  • [ 1382 ] __cmp__ on certain types raises ArrayStoreException
  • [ 1443 ] Can't update() hashlib.sha1() with array.array('c')
  • [ 1444 ] Can't zlib.compress() with array.array('c')
  • [ 1458 ] Builtin codecs aren't available without standard lib
  • [ 645615 ] cannot import through symbolic links
  • [ 1366 ] parsing of lamda expression fails
  • [ 1365 ] continuation lines fail in interactive interpreter
  • [ 1377 ] Event names shadowed by a field name on Java types leads to a NPE
  • [ 1381 ] Redundant declarations of interface implementation hides overriden methods
  • [ 1189 ] MD5 hash is incorrectly calculated when string contains non-latin chars and using python md5 lib
  • [ 1802339 ] Problem printing unicode when stdout intercepted
  • [ 1145 ] Jython 2.5 compatibility problem with JSR 223
  • [ 1400 ] Evaluating expression via JSR 223 ScriptEngine returns null instead of True/False
  • [ 1413 ] Array data type (PostgreSQL) is not supported (NPE)
  • [ 1434 ] Cannot get return code from a process started with os.popen with Jython 2.5 (worked in 2.2)
  • [ 1391 ] socket.getaddrinfo() breaks ftplib FTP client
  • [ 1409 ] JSR-233 engine version numbers backwards
  • [ 1408 ] JSR-223 engine doesn't implement I/O redirection
  • [ 1393 ] TypeError: _new_impl(): expected 1 args; got 0
  • [ 1415 ] ast Node creation fails with no arg constructors
  • [ 1405 ] Executing __run__.py from .jar throws exception(SystemExit: 0) in main when sys.exit(0) is called
  • [ 1439 ] Can't write() array.array
  • [ 1139 ] crashes on isinstance
  • [ 1430 ] Oracle JDBC Connection close
  • [ 1406 ] Parsing a simple PEP 342 coroutine crashes Jython 2.5
  • [ 1407 ] ClassCastException in plain Python coroutine
  • [ 1424 ] Relative imports do not work in some cases

Jython 2.5.0 Release Notes

The following features have been added for 2.5.0. For a look at the complete roadmap for 2.5 along with links for the PEPs and other information, please look at the roadmap:

  • yield is always a keyword
  • int() will now return a long instead of raising OverflowError if a number is too large
  • list.insert() changed to be consistent with negative slice indexing
  • list.index() takes optional start, stop arguments.
  • Dictionaries gained a pop() method and .fromkeys() class method.
  • dict() constructor takes keyword arguments.
  • Many type objects are now callable.
  • PEP 279: enumerate() built-in added.
  • PEP 218: A Standard Set Datatype
  • PEP 273: Importing Modules from Zip Archives
  • PEP 278: Universal Newline Support
  • PEP 282: logging package
  • PEP 285: A Boolean Type
  • PEP 293: Codec Error Handling Callbacks
  • PEP 302: New Import Hooks
  • PEP 307: Pickle Enhancements
  • PEP 324: subprocess module
  • optparse module
  • ExposeAnnotations
  • Move antlr parser in /trunk/sandbox/ast to trunk
  • Hookup asm compiler to antlr, solidify and add 2.5 features
  • PEP 289: Generator expressions
  • PEP 263: Defining Python Source Code Encodings
  • PEP 318: Function/method decorators
  • PEP 308: Conditional expressions
  • PEP 343: 'with' statement
  • PEP 342: Coroutines via generators
  • PEP 341: Unified try/except/finally
  • PEP 352: Exceptions as new-style classes
  • UpgradeTo25CPythonLib
  • PEP 292: Simpler String Substitutions
  • PEP 327: decimal type
  • UpgradeTo25CPythonLib
  • Ongoing parser fixes (universal newlines, line numbering, newline handling, interactive interpreter bugs)
  • PEP 237: Unifying int/long
  • PEP 357: Allowing Any Object to be Used for Slicing
  • PEP 309: Partial Function Application
  • PEP 305: csv module
  • PEP 338: Executing modules as scripts
  • unicodedata module
  • PEP 328: Multi-line and absolute/relative imports
  • elementtree module -> jython-elementtree
  • New Java integration (based on new style classes)
  • cjkcodecs
  • bz2 module
  • ReplaceJythonc
PyCon 2010: Atlanta