Hi Jason,

this looks like a bug in sqlalchemy. The __repr__ method of an object should
not fail.

I can add a try-except as a workaround, but you really should raise a ticket
with sqlalchemy to clarify why __repr__ fails for this object.

cheers,
Georg

Am 11.04.2013 21:47, schrieb Jason McKellar:
> Hello,
> 
> I've been using Sphinx 1.1.3 and autodoc to build documentation for a project
> that includes SQLAlchemy models. After upgrading to Sphinx 1.2b1 there is now 
> an
> exception raised once it hits a relationship attribute of a model. The 
> following
> exception is raised:
> 
>     Traceback (most recent call last):
>       File
>     
> "/home/ci/venv/ci/lib/python2.7/site-packages/Sphinx-1.2b1-py2.7.egg/sphinx/cmdline.py",
>     line 247, in main
>         app.build(force_all, filenames)
>       File
>     
> "/home/ci/venv/ci/lib/python2.7/site-packages/Sphinx-1.2b1-py2.7.egg/sphinx/application.py",
>     line 211, in build
>         self.builder.build_update()
>       File
>     
> "/home/ci/venv/ci/lib/python2.7/site-packages/Sphinx-1.2b1-py2.7.egg/sphinx/builders/__init__.py",
>     line 211, in build_update
>         'out of date' % len(to_build))
>       File
>     
> "/home/ci/venv/ci/lib/python2.7/site-packages/Sphinx-1.2b1-py2.7.egg/sphinx/builders/__init__.py",
>     line 231, in build
>         purple, length):
>       File
>     
> "/home/ci/venv/ci/lib/python2.7/site-packages/Sphinx-1.2b1-py2.7.egg/sphinx/builders/__init__.py",
>     line 131, in status_iterator
>         for item in iterable:
>       File
>     
> "/home/ci/venv/ci/lib/python2.7/site-packages/Sphinx-1.2b1-py2.7.egg/sphinx/environment.py",
>     line 458, in update_generator
>         self.read_doc(docname, app=app)
>       File
>     
> "/home/ci/venv/ci/lib/python2.7/site-packages/Sphinx-1.2b1-py2.7.egg/sphinx/environment.py",
>     line 606, in read_doc
>         pub.publish()
>       File
>     
> "/home/ci/venv/ci/lib/python2.7/site-packages/docutils-0.10-py2.7.egg/docutils/core.py",
>     line 217, in publish
>         self.settings)
>       File
>     
> "/home/ci/venv/ci/lib/python2.7/site-packages/docutils-0.10-py2.7.egg/docutils/readers/__init__.py",
>     line 72, in read
>         self.parse()
>       File
>     
> "/home/ci/venv/ci/lib/python2.7/site-packages/docutils-0.10-py2.7.egg/docutils/readers/__init__.py",
>     line 78, in parse
>         self.parser.parse(self.input, document)
>       File
>     
> "/home/ci/venv/ci/lib/python2.7/site-packages/docutils-0.10-py2.7.egg/docutils/parsers/rst/__init__.py",
>     line 172, in parse
>         self.statemachine.run(inputlines, document, inliner=self.inliner)
>       File
>     
> "/home/ci/venv/ci/lib/python2.7/site-packages/docutils-0.10-py2.7.egg/docutils/parsers/rst/states.py",
>     line 174, in run
>         input_source=document['source'])
>       File
>     
> "/home/ci/venv/ci/lib/python2.7/site-packages/docutils-0.10-py2.7.egg/docutils/statemachine.py",
>     line 239, in run
>         context, state, transitions)
>       File
>     
> "/home/ci/venv/ci/lib/python2.7/site-packages/docutils-0.10-py2.7.egg/docutils/statemachine.py",
>     line 460, in check_line
>         return method(match, context, next_state)
>       File
>     
> "/home/ci/venv/ci/lib/python2.7/site-packages/docutils-0.10-py2.7.egg/docutils/parsers/rst/states.py",
>     line 2706, in underline
>         self.section(title, source, style, lineno - 1, messages)
>       File
>     
> "/home/ci/venv/ci/lib/python2.7/site-packages/docutils-0.10-py2.7.egg/docutils/parsers/rst/states.py",
>     line 331, in section
>         self.new_subsection(title, lineno, messages)
>       File
>     
> "/home/ci/venv/ci/lib/python2.7/site-packages/docutils-0.10-py2.7.egg/docutils/parsers/rst/states.py",
>     line 399, in new_subsection
>         node=section_node, match_titles=True)
>       File
>     
> "/home/ci/venv/ci/lib/python2.7/site-packages/docutils-0.10-py2.7.egg/docutils/parsers/rst/states.py",
>     line 286, in nested_parse
>         node=node, match_titles=match_titles)
>       File
>     
> "/home/ci/venv/ci/lib/python2.7/site-packages/docutils-0.10-py2.7.egg/docutils/parsers/rst/states.py",
>     line 199, in run
>         results = StateMachineWS.run(self, input_lines, input_offset)
>       File
>     
> "/home/ci/venv/ci/lib/python2.7/site-packages/docutils-0.10-py2.7.egg/docutils/statemachine.py",
>     line 239, in run
>         context, state, transitions)
>       File
>     
> "/home/ci/venv/ci/lib/python2.7/site-packages/docutils-0.10-py2.7.egg/docutils/statemachine.py",
>     line 460, in check_line
>         return method(match, context, next_state)
>       File
>     
> "/home/ci/venv/ci/lib/python2.7/site-packages/docutils-0.10-py2.7.egg/docutils/parsers/rst/states.py",
>     line 2706, in underline
>         self.section(title, source, style, lineno - 1, messages)
>       File
>     
> "/home/ci/venv/ci/lib/python2.7/site-packages/docutils-0.10-py2.7.egg/docutils/parsers/rst/states.py",
>     line 331, in section
>         self.new_subsection(title, lineno, messages)
>       File
>     
> "/home/ci/venv/ci/lib/python2.7/site-packages/docutils-0.10-py2.7.egg/docutils/parsers/rst/states.py",
>     line 399, in new_subsection
>         node=section_node, match_titles=True)
>       File
>     
> "/home/ci/venv/ci/lib/python2.7/site-packages/docutils-0.10-py2.7.egg/docutils/parsers/rst/states.py",
>     line 286, in nested_parse
>         node=node, match_titles=match_titles)
>       File
>     
> "/home/ci/venv/ci/lib/python2.7/site-packages/docutils-0.10-py2.7.egg/docutils/parsers/rst/states.py",
>     line 199, in run
>         results = StateMachineWS.run(self, input_lines, input_offset)
>       File
>     
> "/home/ci/venv/ci/lib/python2.7/site-packages/docutils-0.10-py2.7.egg/docutils/statemachine.py",
>     line 239, in run
>         context, state, transitions)
>       File
>     
> "/home/ci/venv/ci/lib/python2.7/site-packages/docutils-0.10-py2.7.egg/docutils/statemachine.py",
>     line 460, in check_line
>         return method(match, context, next_state)
>       File
>     
> "/home/ci/venv/ci/lib/python2.7/site-packages/docutils-0.10-py2.7.egg/docutils/parsers/rst/states.py",
>     line 2279, in explicit_markup
>         nodelist, blank_finish = self.explicit_construct(match)
>       File
>     
> "/home/ci/venv/ci/lib/python2.7/site-packages/docutils-0.10-py2.7.egg/docutils/parsers/rst/states.py",
>     line 2291, in explicit_construct
>         return method(self, expmatch)
>       File
>     
> "/home/ci/venv/ci/lib/python2.7/site-packages/docutils-0.10-py2.7.egg/docutils/parsers/rst/states.py",
>     line 2034, in directive
>         directive_class, match, type_name, option_presets)
>       File
>     
> "/home/ci/venv/ci/lib/python2.7/site-packages/docutils-0.10-py2.7.egg/docutils/parsers/rst/states.py",
>     line 2083, in run_directive
>         result = directive_instance.run()
>       File
>     
> "/home/ci/venv/ci/lib/python2.7/site-packages/Sphinx-1.2b1-py2.7.egg/sphinx/ext/autodoc.py",
>     line 1346, in run
>         documenter.generate(more_content=self.content)
>       File
>     
> "/home/ci/venv/ci/lib/python2.7/site-packages/Sphinx-1.2b1-py2.7.egg/sphinx/ext/autodoc.py",
>     line 755, in generate
>         self.document_members(all_members)
>       File
>     
> "/home/ci/venv/ci/lib/python2.7/site-packages/Sphinx-1.2b1-py2.7.egg/sphinx/ext/autodoc.py",
>     line 679, in document_members
>         check_module=members_check_module and not isattr)
>       File
>     
> "/home/ci/venv/ci/lib/python2.7/site-packages/Sphinx-1.2b1-py2.7.egg/sphinx/ext/autodoc.py",
>     line 755, in generate
>         self.document_members(all_members)
>       File
>     
> "/home/ci/venv/ci/lib/python2.7/site-packages/Sphinx-1.2b1-py2.7.egg/sphinx/ext/autodoc.py",
>     line 1087, in document_members
>         ModuleLevelDocumenter.document_members(self, all_members)
>       File
>     
> "/home/ci/venv/ci/lib/python2.7/site-packages/Sphinx-1.2b1-py2.7.egg/sphinx/ext/autodoc.py",
>     line 648, in document_members
>         for (mname, member, isattr) in self.filter_members(members, want_all):
>       File
>     
> "/home/ci/venv/ci/lib/python2.7/site-packages/Sphinx-1.2b1-py2.7.egg/sphinx/ext/autodoc.py",
>     line 616, in filter_members
>         not keep, self.options)
>       File
>     
> "/home/ci/venv/ci/lib/python2.7/site-packages/Sphinx-1.2b1-py2.7.egg/sphinx/application.py",
>     line 357, in emit_firstresult
>         for result in self.emit(event, *args):
>       File
>     
> "/home/ci/venv/ci/lib/python2.7/site-packages/Sphinx-1.2b1-py2.7.egg/sphinx/application.py",
>     line 349, in emit
>         self.debug2('[app] emitting event: %r%s', event, repr(args)[:100])
>       File "build/bdist.linux-x86_64/egg/sqlalchemy/orm/interfaces.py", line
>     292, in __repr__
>         id(self), self.key)
>     AttributeError: 'RelationshipProperty' object has no attribute 'key'
> 
> 
> Looks like it could have been this commit that caused the regression:
> https://bitbucket.org/birkenfeld/sphinx/diff/sphinx/application.py?diff2=9dccaf2e1ca2&at=default
> 
> --
> Jason
> 
> -- 
> You received this message because you are subscribed to the Google Groups
> "sphinx-users" group.
> To unsubscribe from this group and stop receiving emails from it, send an 
> email
> to [email protected].
> To post to this group, send email to [email protected].
> Visit this group at http://groups.google.com/group/sphinx-users?hl=en.
> For more options, visit https://groups.google.com/groups/opt_out.
>  
>  

-- 
You received this message because you are subscribed to the Google Groups 
"sphinx-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/sphinx-users?hl=en.
For more options, visit https://groups.google.com/groups/opt_out.


Reply via email to