Pydoc игнорирует функцию opencv, просто рассматривает функции python, определенные с помощью ключевого слова def

#python #opencv-contour #pydoc

Вопрос:

Я хочу разработать документацию по API для своего проекта OpenCV.

Но когда я запустил pydoc - w команду в своем модуле, она создала документацию только для тех функций, которые объявлены с ключевым словом def.

Pydoc игнорирует такие функции OpenCV, как cv2.videocaputure() . Они не включены в документацию.

 def initState(A, B, C, D, E, P1, P2, P3, P4, P5):
    """if all blocks are there and good recognized, if not shows message.
        :param: The number of objects
        :type: int
         :putText()
         :return: intial state top or initial state reconized with all objects,
                  show text on window Sorry , objects not recognized(Text)
     """
    if (A == 1 and B == 1 and C == 1 and D == 1 and E == 1 and P1 == 1 and P2 == 1 and P3 == 1 and P4 == 1 and P5 == 1):

        cv2.putText(frame, "initial state top",
                    (100, 100), font, 1, (0, 0, 255))
    else:
        cv2.putText(frame, "Sorry, not recognized",
                    (100, 100), font, 1, (0, 0, 255))
# knowing if final state is completed, must be recognized in the moment, if not recognized nothing will be shown


def finalState(A, B, C, D, E, P1, P2, P3, P4, P5):
    """knowing if final state is completed, must be recognized in the moment, if not recognized nothing will be shown.
    :param: The number of objects
    :type: int
    :putText()
    :return: Final state reconized with all objects(Text),
    """
    if (A == 1 and B == 1 and C == 1 and D == 1 and E == 1 and P1 == 1 and P2 == 1 and P3 == 1 and P4 == 1 and P5 == 1):

        cv2.putText(frame, "final state top", (100, 100), font, 1, (0, 0, 255))
        return 1


# capturing video, if want to change file or do it with a web cam just change the value
cap = cv2.VideoCapture('exp11111.mp4')
"""
    This will simply create the object
    for the camera and using this object we can control the
    video capturing and other functions related to the web cam.
    :param: can be either the device index or the name of a video file
"""

# starting while loop to recognize every frame.
while True:
    ret, frame = cap.read()
    if(
            ret == False):
        break

    """
     Capture frame-by-frame
    :return: bool (True,False)
    
    
    """
 

введите описание изображения здесь

Ответ №1:

Я не могу размножаться.

Я взял твой код и подделал cv.py

 class VideoCapture:
    def __init__(self, *args, **kwargs):
        pass

    def read(self):
        pass

def putText(*args, **kwargs):
    pass
 

А потом побежал:

 python -m pydoc -w your_code
 

И я попал cap = <cv2.VideoCapture object> в выходной.

Если вы хотите также создать документы для cv2, вам понадобится:

 python -m pydoc -w cv2
 

Трудно заставить pydoc делать то, что вы хотите, не разветвляя его или не переключаясь на одну из многих лучших альтернатив, например pdoc3, pydoctor или pycco.