hacksrc( func, 1 * [ ( "):\n", """): tabbing = len(self.stack)*4*" " """, 1, ) ] + 0 * [ ( "self.stack.append(stack_entry)", """self.stack.append(stack_entry) tabbing = len(self.stack)*4*" " """, 1, ) ] + [("\\n" + word, word) for word in "SELECT FROM WHERE ORDER GROUP HAVING".split()] # kill pre-newlines + [(" " + word, word) for word in "SELECT FROM WHERE ORDER GROUP HAVING".split()] # kill pre-spaces + [('"' + word, '"\\n"+tabbing+"' + word) for word in "FROM WHERE ORDER GROUP HAVING".split()] + [('"' + word, 'tabbing+"' + word) for word in "SELECT".split()] + [ ('"("', '"(\\n"', 5), # w/o it nested select appears on the same row ('")"', '"\\n"+tabbing[:-4]+")"', 5), ('cs.keyword + " "', '"\\n"+tabbing + cs.keyword + "\\n"'), # visit_compound_select ] + 0 * [ # newline at end ? ("self.for_update_clause(select)", 'self.for_update_clause(select) +"\\n"'), # visit_select ("self.visit_select_postclauses(cs)", 'self.visit_select_postclauses(cs) +"\\n"'), # visit_compound_select ], None, allow_not_found=1, # debug=1, )
hacksrc( func, 1 * [('):\n', '''): tabbing = len(self.stack)*4*" " ''', 1)] + 0 * [('self.stack.append(stack_entry)', '''self.stack.append(stack_entry) tabbing = len(self.stack)*4*" " ''', 1)] + [ ('\\n' + word, word) for word in 'SELECT FROM WHERE ORDER GROUP HAVING'.split() #kill pre-newlines ] + [ (' ' + word, word) for word in 'SELECT FROM WHERE ORDER GROUP HAVING'.split() #kill pre-spaces ] + [('"' + word, '"\\n"+tabbing+"' + word) for word in 'FROM WHERE ORDER GROUP HAVING'.split()] + [('"' + word, 'tabbing+"' + word) for word in 'SELECT'.split()] + [ ('"("', '"(\\n"', 5), # w/o it nested select appears on the same row ('")"', '"\\n"+tabbing[:-4]+")"', 5), ('cs.keyword + " "', '"\\n"+tabbing + cs.keyword + "\\n"'), #visit_compound_select ] + 0 * [ #newline at end ? ('self.for_update_clause(select)', 'self.for_update_clause(select) +"\\n"'), #visit_select ('self.visit_select_postclauses(cs)', 'self.visit_select_postclauses(cs) +"\\n"' ), #visit_compound_select ], None, allow_not_found=1, #debug=1, )
def hack4repeat(): import sqlalchemy _v03 = hasattr(sqlalchemy, 'mapper') if not _v03: print 'v04 - cant hack4repeat' return # HACKALL import sqlalchemy.util sqlalchemy.util.Set = sqlalchemy.util.OrderedSet DICT = sqlalchemy.util.OrderedDict SET = sqlalchemy.util.OrderedSet import sqlalchemy.topological def init2old(x, newfunc): #, name ='__init__', oldname = 'oldinit'): x.oldinit = x.__init__ x.__init__ = newfunc if 0: class SortedList(list): def __iter__(me): try: sorted = me._sorted except AttributeError: sorted = me._sorted = me._do_sort() assert len(me) == len(sorted) return iter(sorted) def _do_sort(me): #if not me: me = r r = me[:] #copy r.sort(key=lambda t: t.item.name) # print 'sorted-', ','.join( t.item.name for t in r) return r def init(me, *a, **k): me.oldinit(*a, **k) me.children = SortedList() #print 'hacked', type(me) init2old(sqlalchemy.topological._Node, init) #see also: # unitofwork.UnitOfWork.identity_map ?? # unitofwork.UOWTask.objects # sql_util.Aliasizer.tables if 1: def init(me, *a, **k): me.oldinit(*a, **k) me.tables = DICT() #print 'hacked', type(me) init2old(sqlalchemy.schema.MetaData, init) if 10: def init(me, *a, **k): me.oldinit(*a, **k) if isinstance(me.dependencies, sqlalchemy.util.Set): me.dependencies = SET() else: me.dependencies = DICT() #me.tasks = DICT() #print 'hacked', type(me) init2old(sqlalchemy.orm.unitofwork.UOWTransaction, init) if 10: def init(me, *a, **k): me.oldinit(*a, **k) me.objects = DICT() #print 'hacked', type(me) init2old(sqlalchemy.orm.unitofwork.UOWTask, init) if 0: import weakref def init(me, dict=None): me.oldinit(None) me.data = DICT(dict) print 'hacked', type(me) init2old(weakref.WeakKeyDictionary, init) from sqlalchemy.orm import mapperlib _mapper_registry = find_valid_fullname_import( ''' sqlalchemy.orm.mapperlib._mapper_registry ''', 2) assert not _mapper_registry.data _mapper_registry.data = DICT() if 10: #these must be done via source: #orm/mapper.py: Mapper.save_obj(): line 848 # table_to_mapper = util.OrderedDict() #{} #topological.py: QueueDependencySorter.sort(): line 138 # nodes = util.OrderedDict() #{} #ver 0.3.3 hacksrc(mapperlib.Mapper.save_obj, 'table_to_mapper = {}', 'table_to_mapper = util.OrderedDict()') hacksrc(mapperlib.Mapper._compile_properties, 'self.__props = {}', 'self.__props = util.OrderedDict()') hacksrc(sqlalchemy.topological.QueueDependencySorter.sort, 'nodes = {}', 'nodes = util.OrderedDict()') if 0: #partial def _set_constraints(me, v): from sqlalchemy.util import OrderedSet, Set assert not v assert isinstance(v, Set) me._constraints = OrderedSet() sqlalchemy.Table.constraints = property(lambda me: me._constraints, _set_constraints) sqlalchemy.Column.constraints = property(lambda me: me._constraints, _set_constraints)
def hack4repeat(): import sqlalchemy _v03 = hasattr(sqlalchemy, "mapper") if not _v03: print "v04 - cant hack4repeat" return # HACKALL import sqlalchemy.util sqlalchemy.util.Set = sqlalchemy.util.OrderedSet DICT = sqlalchemy.util.OrderedDict SET = sqlalchemy.util.OrderedSet import sqlalchemy.topological def init2old(x, newfunc): # , name ='__init__', oldname = 'oldinit'): x.oldinit = x.__init__ x.__init__ = newfunc if 0: class SortedList(list): def __iter__(me): try: sorted = me._sorted except AttributeError: sorted = me._sorted = me._do_sort() assert len(me) == len(sorted) return iter(sorted) def _do_sort(me): # if not me: me = r r = me[:] # copy r.sort(key=lambda t: t.item.name) # print 'sorted-', ','.join( t.item.name for t in r) return r def init(me, *a, **k): me.oldinit(*a, **k) me.children = SortedList() # print 'hacked', type(me) init2old(sqlalchemy.topological._Node, init) # see also: # unitofwork.UnitOfWork.identity_map ?? # unitofwork.UOWTask.objects # sql_util.Aliasizer.tables if 1: def init(me, *a, **k): me.oldinit(*a, **k) me.tables = DICT() # print 'hacked', type(me) init2old(sqlalchemy.schema.MetaData, init) if 10: def init(me, *a, **k): me.oldinit(*a, **k) if isinstance(me.dependencies, sqlalchemy.util.Set): me.dependencies = SET() else: me.dependencies = DICT() # me.tasks = DICT() # print 'hacked', type(me) init2old(sqlalchemy.orm.unitofwork.UOWTransaction, init) if 10: def init(me, *a, **k): me.oldinit(*a, **k) me.objects = DICT() # print 'hacked', type(me) init2old(sqlalchemy.orm.unitofwork.UOWTask, init) if 0: import weakref def init(me, dict=None): me.oldinit(None) me.data = DICT(dict) print "hacked", type(me) init2old(weakref.WeakKeyDictionary, init) from sqlalchemy.orm import mapperlib _mapper_registry = find_valid_fullname_import( """ sqlalchemy.orm.mapperlib._mapper_registry """, 2, ) assert not _mapper_registry.data _mapper_registry.data = DICT() if 10: # these must be done via source: # orm/mapper.py: Mapper.save_obj(): line 848 # table_to_mapper = util.OrderedDict() #{} # topological.py: QueueDependencySorter.sort(): line 138 # nodes = util.OrderedDict() #{} # ver 0.3.3 hacksrc(mapperlib.Mapper.save_obj, "table_to_mapper = {}", "table_to_mapper = util.OrderedDict()") hacksrc(mapperlib.Mapper._compile_properties, "self.__props = {}", "self.__props = util.OrderedDict()") hacksrc(sqlalchemy.topological.QueueDependencySorter.sort, "nodes = {}", "nodes = util.OrderedDict()") if 0: # partial def _set_constraints(me, v): from sqlalchemy.util import OrderedSet, Set assert not v assert isinstance(v, Set) me._constraints = OrderedSet() sqlalchemy.Table.constraints = property(lambda me: me._constraints, _set_constraints) sqlalchemy.Column.constraints = property(lambda me: me._constraints, _set_constraints)