On Thursday 04 September 2008 17:51:56 Michael Bayer wrote:
> On Sep 4, 2008, at 9:03 AM, [EMAIL PROTECTED] wrote:
> > i used to set sqlalchemy.util.Set to be
> > sqlalchemy.util.OrderedSet and that worked well...
> > if all those basic things (dict, set, odict, oset, etc) are
> > always routed via sqlachemy.util, then one can replace them with
> > whatever fancy. One main usage is that testing cases would be
> > more repeatable, because flush plans and other hash-relating
> > things will be same, if all sets are ordered and all dicts are
> > ordered.
> > this is not going to impact anything speedwise, it only means
> > changing several hundred places where {} or set() is used, and
> > keeping some discipline of not introducing those in future code.
> >
> > someone may tell me about a way to directly hack pythons notion
> > of {} with something mine... would be good but is going to impact
> > speed of *any* code, not just SA.
> >
> > mike, sorry for repeating myself again on the theme :-)
> > i can prepare The patch as long as u decide to keep such
> > "protocol"...
>
> i believe we already have a layer in the test/ suite which can
> globally replace imports with something specific, and it is being
> used. It's Jason's thing but you can dig into the source to see
> how it works.
nooo, u got me wrong. i'd like all the {} dict() set() usage
all-over-sa to be routed via util.dict and util.set (which default to
the builtins), so then one could easily replace them with whatever
s/he wants. i guess one could hack the python builtins/module or
globals() to replace the dict() and set() globally, but i dont think
{} is affected; still, such hack will affect any other code, and not
only SA.
Python 2.5.2 (r252:60911, Jul 31 2008, 17:28:52)
>>> dict
<type 'dict'>
>>> globals()
{'__builtins__': <module '__builtin__'
(built-in)>, '__name__': '__main__', '__doc__': None}
>>> locals()
{'__builtins__': <module '__builtin__'
(built-in)>, '__name__': '__main__', '__doc__': None}
>>> __builtins__
<module '__builtin__' (built-in)>
>>> __builtins__.dict
<type 'dict'>
>>> class mydict( dict): pass
...
>>> __builtins__.dict = mydict
>>> dict
<class '__main__.mydict'>
>>> type({})
<type 'dict'>
>>>
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"sqlalchemy" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at
http://groups.google.com/group/sqlalchemy?hl=en
-~----------~----~----~----~------~----~------~--~---