I am looking at using the InstrumentationManager to add
AttributeExtension's to my objects.
I am using Elixir 0.6, SQL Alchemy 0.5.3
From what I can gather, I need to add
'__sa_instrumentation_manager__' all my mapped classes.
Currently, with using the Elixir Metaclass, I have one class that is
the root of them all, but which is not mapped.
Something like the following:
class ElementInstrumentationManager(InstrumentationManager):
def __init__(self, class_):
self.class_ = class_
def post_configure_attribute(self, class_, key, instr_attr):
pass
class Element(object)
__metaclass__ = ElixirMeta
__sa_instrumentation_manager__ = ElementInstrumentationManager
It seems as soon as I add __sa_instrumentation_manager__ =
ElementInstrumentationManager
I begin to have problems with the session identity_map changing size.
Since this is single threaded, I can only assume that I am fighting
with the GC, and the WeakRef Map.
(I can turn off the weak_ref identity map, but that seems to have
other side-effects that I am not totally aware.
That is one solution, but I want to understand the current problem
before I go there, if possible)
I have been reading the code in session.py, identity.py, and
attribute.py. I am beginning to get the gist. Kinda.
Anyone seen this before and have an obvious answer.
It kinda seems that the default ClassMananger and the wrapped
InstrumentationManager aren't really interchangable.
--~--~---------~--~----~------------~-------~--~----~
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
-~----------~----~----~----~------~----~------~--~---