from hotdoc.core.base_extension import BaseExtension from hotdoc.core.base_formatter import Formatter from hotdoc.core.doc_tree import Page from hotdoc.core.exceptions import HotdocException from hotdoc.utils.loggable import error, warn, Logger class NoSuchLicenseException(HotdocException): """ Raised when an unknown license is used """ pass Logger.register_error_code('no-such-license', NoSuchLicenseException, domain='license-extension') DESCRIPTION=\ """ This extension helps licensing your hotdoc project """ HERE = os.path.abspath(os.path.dirname(__file__)) DATA_DIR = os.path.join(HERE, 'data') base_copyright_schema = {'name': And(unicode, len), Optional('email'): And(unicode, len), Optional('years'): Schema([Use(int)])}
class PageNotFoundException(HotdocSourceException): """ Raised when a subpage listed in the sitemap file could not be found in any of the include paths. """ pass class IndexExtensionNotFoundException(HotdocSourceException): """ Raised when the extension was not found for an index placeholder """ pass Logger.register_error_code('index-extension-not-found', IndexExtensionNotFoundException, domain='doc-tree') Logger.register_error_code('page-not-found', PageNotFoundException, domain='doc-tree') Logger.register_warning_code('invalid-page-metadata', InvalidPageMetadata, domain='doc-tree') Logger.register_warning_code('markdown-bad-link', HotdocSourceException) # pylint: disable=too-many-instance-attributes class Page: "Banana banana" meta_schema = {Optional('title'): And(str, len), Optional('short-description'): And(str), Optional('description'): And(str), Optional('render-subpages'): bool, Optional('auto-sort'): bool,
from hotdoc.core.extension import Extension from hotdoc.core.formatter import Formatter from hotdoc.core.tree import Page from hotdoc.core.exceptions import HotdocException from hotdoc.utils.loggable import error, Logger class NoSuchLicenseException(HotdocException): """ Raised when an unknown license is used """ pass Logger.register_error_code('no-such-license', NoSuchLicenseException, domain='license-extension') DESCRIPTION =\ """ This extension helps licensing your hotdoc project """ HERE = os.path.abspath(os.path.dirname(__file__)) DATA_DIR = os.path.join(HERE, 'data') BASE_COPYRIGHT_SCHEMA = {'name': And(str, len), Optional('email'): And(str, len), Optional('years', default=[]): Schema([Use(int)])}
class SitemapDuplicateError(HotdocSourceException): """ Raised when the same file was listed multiple times in a sitemap file. """ pass class SitemapError(HotdocSourceException): """ Generic sitemap error. """ pass Logger.register_error_code('bad-indent', IndentError, domain='sitemap') Logger.register_error_code('sitemap-duplicate', SitemapDuplicateError, domain='sitemap') Logger.register_error_code('sitemap-error', SitemapError, domain='sitemap') # pylint: disable=too-few-public-methods class StandaloneParser(object): """ Banana banana """ pass class Sitemap(object):
def setUp(self): Logger.reset() Logger.silent = True Logger.register_error_code('foo', FooError, 'bar') Logger.register_warning_code('baz', BazError, 'bar')
yaml.add_constructor(yaml.resolver.BaseResolver.DEFAULT_MAPPING_TAG, _no_duplicates_constructor) yaml.add_constructor(u'tag:yaml.org,2002:str', _custom_str_constructor) class DocTreeNoSuchPageException(HotdocSourceException): """ Raised when a subpage listed in the sitemap file could not be found in any of the include paths. """ pass Logger.register_error_code('no-such-subpage', DocTreeNoSuchPageException, domain='doc-tree') Logger.register_warning_code('invalid-page-metadata', InvalidPageMetadata, domain='doc-tree') Logger.register_warning_code('markdown-bad-link', HotdocSourceException) # pylint: disable=too-many-instance-attributes class Page(object): "Banana banana" meta_schema = {Optional('title'): And(unicode, len), Optional('symbols'): Schema([And(unicode, len)]), Optional('short-description'): And(unicode, len)} resolving_symbol_signal = Signal() formatting_signal = Signal()
yaml.add_constructor(yaml.resolver.BaseResolver.DEFAULT_MAPPING_TAG, _no_duplicates_constructor) OverridePage = namedtuple('OverridePage', ['source_file', 'file']) class TreeNoSuchPageException(HotdocSourceException): """ Raised when a subpage listed in the sitemap file could not be found in any of the include paths. """ pass Logger.register_error_code('no-such-subpage', TreeNoSuchPageException, domain='doc-tree') Logger.register_warning_code('invalid-page-metadata', InvalidPageMetadata, domain='doc-tree') Logger.register_warning_code('markdown-bad-link', HotdocSourceException) # pylint: disable=too-many-instance-attributes class Page(object): "Banana banana" meta_schema = { Optional('title'): And(str, len), Optional('symbols'): Schema([And(str, len)]), Optional('short-description'): And(str, len), Optional('render-subpages'): bool,
yaml.add_constructor(yaml.resolver.BaseResolver.DEFAULT_MAPPING_TAG, _no_duplicates_constructor) yaml.add_constructor(u'tag:yaml.org,2002:str', _custom_str_constructor) class DocTreeNoSuchPageException(HotdocSourceException): """ Raised when a subpage listed in the sitemap file could not be found in any of the include paths. """ pass Logger.register_error_code('no-such-subpage', DocTreeNoSuchPageException, domain='doc-tree') Logger.register_error_code('invalid-page-metadata', InvalidPageMetadata, domain='doc-tree') # pylint: disable=too-many-instance-attributes class Page(object): "Banana banana" meta_schema = {Optional('title'): And(unicode, len), Optional('symbols'): Schema([And(unicode, len)]), Optional('short-description'): And(unicode, len)} resolving_symbol_signal = Signal() formatting_signal = Signal() def __init__(self, source_file, ast, meta=None, raw_contents=None):