75 lines
2.3 KiB
Python
75 lines
2.3 KiB
Python
# -*- 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
|
|
|