Sure. I am going to leave it until Monday or Tuesday as I hope by that
time to return to my work on getting the Sybase driver to pass the
test cases. I was away on vacation until last Monday and found it
difficult to get back into coding until of course I was confronted by
this issue!

Thanks again for the debugging help.

pjjH


On Apr 3, 3:53 pm, "Michael Bayer" <mike...@zzzcomputing.com> wrote:
> any chance of producing a *small* test case for this
>
> phrrn...@googlemail.com wrote:
>
> > 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