'py:class' is not assigned when :noindex: is set
In directives/init.py, ObjectDescription.run(), after the signature is processed, it is added to the self.names list only if :noindex: is not set. But in domains/python.py, PyClassLike.before_content(), self.env.temp_data['py:class'] is set using self.names. The result is that if one uses :noindex:, the class name is not stored anywhere, and is therefor missing from the signature of class members.
E.g., if we have the RST code:
.. module:: SimpleODEs .. class:: SimpleHarmonicOscillator :noindex:
.. method:: compute()
blah blah blah
The method signature prints as SimpleODEs.compute(), which is not only not the same as without :noindex: (in which case it just prints compute()), it is not even the signature of a real object.
I think this can be fixed by simply setting self.names even for :noindex:, but I don't know if that would cause any other problems.