Yes, the erroneous behavior goes away when this code is commented out.
No, an empty instrumentation manager *does not cause* the error. Note
that I had a sqlalchemy Table object called 'attributes' in my model.
I have changed the code so that I do not import 'attributes' from
sqlalchemy.orm but instead fully-qualify it. Similarly, I have changed
the model code to refer to 'chimera_columns' rather than 'attributes'.
I have also renamed the mapped property 'attributes' as 'columns' as
at my workplace, nobody other than myself refers to database columns
as 'attributes'!

class AttachNotesAsDocstring(interfaces.InstrumentationManager):
    pass

sqlalchemy.orm.attributes.instrumentation_finders.insert(0, lambda
cls: AttachNotesAsDocstring)


However, despite all these changes, if I provide an implementation of
instrument_attribute as follows then I get the dreaded
'ColumnProperty' object has no attribute 'strategy' error.

    def instrument_attribute(self, class_, key, attr):
        if isinstance(attr.property, properties.ColumnProperty):
            if hasattr(attr.property.columns[0], 'info'):
                attr.__doc__ = attr.property.columns[0].info.get
('notes')


I can live without the docstring fanciness for now but it has been
educational tracking down the various problems.

pjjH





On Apr 3, 3:04 pm, "Michael Bayer" <mike...@zzzcomputing.com> wrote:
> phrrn...@googlemail.com wrote:
>
> > # class AttachNotesAsDocstring(interfaces.InstrumentationManager):
> > #      def instrument_attribute(self, class_, key, attr):
> > #          if isinstance(attr.property, properties.ColumnProperty):
> > #              if hasattr(attr.property.columns[0], 'info'):
> > #                  attr.__doc__ = attr.property.columns[0].info.get
> > ('notes')
>
> > # attributes.instrumentation_finders.insert(0, lambda cls:
> > AttachNotesAsDocstring)
>
> the erroneous behavior is narrowed down to this, correct ?   is anything
> within the method raising an error (try putting pdbs or print statements
> in it)?  does having just an empty do-nothing instrumentationmanager cause
> the error ?
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"sqlalchemy" group.
To post to this group, send email to sqlalchemy@googlegroups.com
To unsubscribe from this group, send email to 
sqlalchemy+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/sqlalchemy?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to