2012-07-10 13 views
9

मुझे कुछ कोड मिला है जो पायथन में मेटाक्लास का उपयोग करता है। लेकिन यह त्रुटि दे रहा है जब स्फिंक्स autodoc चलाया जाता है:स्फिंक्स ऑटोोडोक चेतावनी देता है: पीई: कक्षा संदर्भ लक्ष्य नहीं मिला: प्रकार चेतावनी

.. automodule:: API.list.blockList 
    :members: # this is the line in error 
    :show-inheritance: 

और Blocklist API.list लागू होता है:

WARNING: py:class reference target not found: type

त्रुटि एक ऑटो की एक पंक्ति में उत्पन्न है .rst फ़ाइल उत्पन्न। सूची जिसमें \__metaclass__ मेरे मेटाक्लास पर सेट है।

जो मैं स्पिनक्स को बता सकता हूं उससे यह नहीं लगता कि बिल्टिन प्रकार वर्ग मौजूद है। मैंने स्फिंक्स को यह महसूस करने के लिए बिल्टिन प्रकार आयात करने का प्रयास किया है कि यह वहां है लेकिन यह काम नहीं किया है।

यदि मैं API.list.list से मेटाक्लास असाइनमेंट को हटाता हूं, और कोड से मेटाक्लास को हटा देता हूं तो स्फिंक्स बस ठीक काम करता है।

+1

क्या आप एक न्यूनतम उदाहरण प्रदान कर सकते हैं जो इसे ट्रिगर करता है? – Nikratio

उत्तर

6

यह केवल पाइथन डॉक्स में एक बग है - कुछ पायथन अंतर्निर्मित (type सहित) के संदर्भ में कोई समाधान सही नहीं है (उदाहरण के लिए, उदाहरण के लिए https://bugs.python.org/issue11975)।

चेतावनी को दूर करने के लिए आप अपने स्फिंक्स कॉन्फ़िगरेशन में nitpick_ignore विकल्प जोड़ सकते हैं। Astropy परियोजना पर उदाहरण के लिए हमने:

nitpick_ignore = [('py:class', 'type')] 

वास्तव में, पर्याप्त अपवाद कि हम सिर्फ उन सब को एक अलग फाइल है कि हम उनमें से पढ़ा में डाल रहे हैं। देखें:

https://github.com/astropy/astropy/blob/35501fcba6811705fcd53669742db8346727672d/docs/nitpick-exceptions

ऊपर फ़ाइल में अपवाद से कई Astropy के लिए विशिष्ट हैं, लेकिन दूसरों अजगर में और कुछ टूटी हुई संदर्भ का पता:

https://github.com/astropy/astropy/blob/35501fcba6811705fcd53669742db8346727672d/docs/conf.py#L195

और अपवाद फ़ाइल के लिए ही बेवकूफ, और सामान्य रूप से उपयोगी हो सकता है।

संबंधित मुद्दे