Can you please send me all the changes as a patch file to the latest dal.py? I am lost because of google groups breaks indentation.
On Feb 5, 9:40 pm, dlypka <[email protected]> wrote: > 6. in dal.py class Table around line 5900: > > def _drop(self, mode = ''): > return self._db._adapter._drop(self, mode) > > def drop(self, mode = ''): > return self._db._adapter._drop(self, mode) # dlypka patch. > was: self._db._adapter.drop(self,mode) > > On Feb 5, 10:36 pm, dlypka <[email protected]> wrote: > > > > > > > > > 5. In dal.py: > > > class NoSQLAdapter(BaseAdapter): > > > def represent(self, obj, fieldtype): > > if type(obj) in (types.LambdaType, types.FunctionType): > > obj = obj() > > if isinstance(fieldtype, SQLCustomType): > > return fieldtype.encoder(obj) > > if isinstance(obj, (Expression, Field)): > > raise SyntaxError, "non supported on GAE" > > > if 'gae' in globals(): > > if isinstance(fieldtype, gae.Property): > > return obj > > > if fieldtype.startswith('list:'): # dlypka patch to move this > > to be AFTER the if 'gae' clause because fieldtype may not necessarily > > be a string > > if not obj: > > obj = [] > > if not isinstance(obj, (list, tuple)): > > obj = [obj] > > > On Feb 5, 11:21 am, dlypka <[email protected]> wrote: > > > > More issues > > > 1. # dlypka Mod in dal.py: had to move this try .. except up here in > > > front of class NoSQLAdapter because gae is needed in class > > > NoSQLAdapter > > > try: > > > from new import classobj > > > from google.appengine.ext import db as gae > > > from google.appengine.api import namespace_manager > > > # from google.appengine.api.datastore_types import Key ### why > > > was this needed???? > > > from google.appengine.ext.db.polymodel import PolyModel > > > drivers.append('gae') > > > except ImportError: > > > pass > > > > class NoSQLAdapter(BaseAdapter): > > > > 2. html.py line 265 > > > return rewrite.filter_out(url, env) # dlypka patch. Was > > > XML(rewrite.filter_out(url, env)) > > > # XML() causes Exception: > > > # File "C:\Program Files (x86)\Google\google_appengine\google > > > \appengine\api\datastore_types.py", line 1323, in ValidateProperty > > > # 'Unsupported type for property %s: %s' % (name, v.__class__)) > > > # BadValueError: Unsupported type for property success_path: > > > <class 'gluon.html.XML'> > > > > 3. class GAENoSQLAdapter(NoSQLAdapter): > > > uploads_in_blob = True > > > types = {} > > > > def file_exists(self, filename): pass > > > def file_open(self, filename, mode='rb', lock=True): pass > > > def file_close(self, fileobj, unlock=True): pass > > > > def __init__(self,db,uri,pool_size=0,folder=None,db_codec > > > ='UTF-8', > > > credential_decoder=(lambda x:x)): # dlypka patch: > > > added brackets around lambda - syntax error > > > self.types.update({ > > > > 4. def insert(self,table,fields): > > > dfields=dict((f.name,self.represent(v,f.type)) for f,v in > > > fields) > > > # table._db['_lastsql'] = self._insert(table,fields) > > > tmp = table._tableobj(**dfields) > > > tmp.put() > > > table._db['_last_reference'] = tmp # dlypka patched based on > > > June 27/2010 mod in the trunk > > > rid = Reference(tmp.key().id()) > > > (rid._table, rid._record) = (table, None) > > > return rid

