cavis/docs/python_doc.py

75 lines
2.3 KiB
Python
Raw Normal View History

2019-06-06 14:21:15 +02:00
# -*- coding: utf-8 -*-
################################################################################
# Copyright (c) 2015-2018 Skymind, Inc.
#
# This program and the accompanying materials are made available under the
# terms of the Apache License, Version 2.0 which is available at
# https://www.apache.org/licenses/LICENSE-2.0.
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
#
# SPDX-License-Identifier: Apache-2.0
################################################################################
import abc
import sys
from doc_generator import BaseDocumentationGenerator
class PythonDocumentationGenerator(BaseDocumentationGenerator):
def __init__(self, args):
reload(sys)
sys.setdefaultencoding('utf8')
super(PythonDocumentationGenerator, self).__init__(args)
raise NotImplementedError
"""Process top class docstring
"""
@abc.abstractmethod
def process_main_docstring(self, doc_string):
raise NotImplementedError
"""Process method and other docstrings
"""
@abc.abstractmethod
def process_docstring(self, doc_string):
raise NotImplementedError
"""Takes unformatted signatures and doc strings and returns a properly
rendered piece that fits into our markdown layout.
"""
@abc.abstractmethod
def render(self, signature, doc_string, class_name, is_method):
raise NotImplementedError
"""Returns main doc string of class/object in question.
"""
@abc.abstractmethod
def get_main_doc_string(self, class_string, class_name):
raise NotImplementedError
"""Returns doc string and signature data for constructors.
"""
@abc.abstractmethod
def get_constructor_data(self, class_string, class_name, use_contructor):
raise NotImplementedError
"""Returns doc string and signature data for methods
in the public API of an object
"""
@abc.abstractmethod
def get_public_method_data(self, class_string, includes, excludes):
raise NotImplementedError