We have a mostly working py3 of SQLAlchemy which is targeted towards 0.6.
It includes a wrapper around 2to3 which allows us to manually control
sections of code for which 2to3 can't guess what we'd like to do. The
0.6 branch is available for review at
http://svn.sqlalchemy.org/sqlalchemy/branches/rel_0_6 , and we'll be
sprinting on it further at pycon. The sa2to3.py script detects blocks of
code marked as PY3K or PY2K and adjusts before sending off to 2to3.
The 0.6 series of SQLA is focused around a refactor of database dialects
and is appropriate for py3k since it decouples database compilers from
DBAPIs - the release can run MySQL against both MySQLdb as well as pyodbc,
and can run Postgres against either psycopg2 or pg8000 (the latter which
runs on py3k). Support for jython, ironpython, others is much more of a
drop-in as existing SQL compilation code can be reused.
It seems like most of the changes implemented in your branch of 0.5 are
already present in 0.6. If you'd like to work on 0.6 getting all tests to
pass, let me know. 0.6 is intended to be almost totally backwards compat
with 0.5, no huge ORM changes or anything like that, so the average
application should be able to switch to it without any significant
migration of their code. There might be some changes needed to external
packages that build upon schema compilation like Migrate.
trunk is the head dev tree in SVN, but we like to have trunk always
passing all tests. 0.6 is very recent and isn't quite passing everything
completely so has not been ready for the merge to trunk, but will be soon.
the site is in need of updating regarding 0.6's existence but usually
people come in and chat on the list or IRC before starting major
development initiatives, but sorry, we'll add it.
> Yes - we're looking to use sqlalchemy in a Py3-only package set for first
> release sometime this week (we can depend on a svn tree for now). Is
> basic
> ORM, mapping, etc ready in svn rel_0_6? Backwards compatibility isn't
> needed since we're implementing new code.
ORM and mapping code is the same code as in 0.5. We might remove the
ability to say session.flush([list of objects]) but I don't think too much
else is planned ORM-wise.
>
> Yes - we'd be happy to contribute towards getting most/all the tests to
> pass
> on Py3, especially as needed for our purposes but more generally toward
> helping with community migration.
>
> So 0.6 is planned to have a tarball release specific for Py3, or otherwise
> installable for Py3 using setup.py?
The 2to3 process is slow and finicky so when 0.6 is fully released, we'll
be releasing py2k and py3k tarballs separately.
the site is in need of updating regarding 0.6's existence but usually
people come in and chat on the list or IRC before starting major
development initiatives, but sorry, we'll add it.
The 2to3 process is slow and finicky so when 0.6 is fully released, we'll
be releasing py2k and py3k tarballs separately.
ive been under crushing deadlines at work and haven't had any resources to
work on 0.6 lately, though Randall has been. feel free to check it out
from SVN and start running it.