>> >> By the way, are there plans for a 1.0 release? What are your >> >> requirements for this? >> > >> > There are many plans. I have a rather big TODO for 1.0, 1.1 and even >> > 1.2 > > That's it:
Thanks for this Oleg, it's good to know where sqlobject is heading. And it's even better to know that no major issues are there only minor things, at least nothing on your list stands out as extraordinary. This means that sqlobject is already a pretty mature project, even before 1.0. By the way, some weeks ago I decided to switch to sqlalchemy, but after looking at the documentation and some correspondence on the mailing list, I decided not to do it. Sqlobject for my purposes is really great, works perfectly and sqlalchemy seems so super complicated without any obvious gain for my (admittedly, mid-sized) projects. Long live sqlobject! Cheers, Daniel > In dbconnection.py in ConsoleWriter do not save self.logfile in __init__ in > case sys.stdout will be replaced later. > > > Choose SQLite driver: sqlite://...?backend=(sqlite|sqlite3|pysqlite2) > > > alternateMethodName for all unique fields, not only alternateID. > > > tableParamSQL: > > class MyTable(SQLObject): > class sqlmeta: > tableParamSQL = 'ENGINE InnoDB' > tableParamSQL = {'mysql': 'ENGINE InnoDB'} > > > delColumn('foreignKey'), delColumn('foreignKeyID') > > > TimestampCol() - make default=None. > > > Proper %-encoded URI. > > > SET client_encoding for PostgreSQL. > > > IntervalCol. > > > All signal handlers must receive 'self' as the first argument. > > > __version__.py > > > Always use .lazyIter(). > > > Test 'dirty' and other attributes for collisions. > > > Release 1.0. > > > Invert tests 'isinstance(obj, (tuple, list))' to 'not isinstance(obj, > basestr)' > to allow any iterable. > > > More decorators especially @classmethod. > > > Generators instead of loops (fetchall => fetchone). > > > List databases in the connection. > > > List tables in the DB. The query in MySQL is 'SHOW TABLES' > > in SQLite it is > "SELECT name FROM sqlite_master WHERE type='table' ORDER BY name" > > and in Postgres it is something like > "SELECT c.relname FROM pg_class c, pg_type t > WHERE c.reltype = t.oid AND t.typname = 'table'" > > > Release 1.1. > > > Stop supporting Python 2.4: use 'with lock'. > > > Release 1.2. > > > ---------- > > > RelatedJoin.hasOther(otherObject[.id]) > > > .select(), .selectBy() and .by*() must pass the value(s) through > .from_python(); then the hack with UnicodeCol could be removed. > > > Calculated columns - in SELECT but not in INSERT/UPDATE. > Something like this: > > class MyClass(SQLObject): > function1 = CalculatedCol(func.my_function(MyClass.q.col1)) > function2 = CalculatedCol('my_function') > > > All-unicode - one encoding per DB/connection. > > > Optimize Iteration.next() - use cursor.fetchmany(). > > > More documentation. Wiki. Trac. > > Oleg. > -- > Oleg Broytmann http://phd.pp.ru/ p...@phd.pp.ru > Programmers don't die, they just GOSUB without RETURN. > -- Psss, psss, put it down! - http://www.cafepress.com/putitdown ------------------------------------------------------------------------------ Create and Deploy Rich Internet Apps outside the browser with Adobe(R)AIR(TM) software. With Adobe AIR, Ajax developers can use existing skills and code to build responsive, highly engaging applications that combine the power of local resources and data with the reach of the web. Download the Adobe AIR SDK and Ajax docs to start building applications today-http://p.sf.net/sfu/adobe-com _______________________________________________ sqlobject-discuss mailing list sqlobject-discuss@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/sqlobject-discuss