# Path: mdweb/Exceptions.py
# class PageMetaInfFieldException(Exception):
#     """Invalid field in page metadata."""
# 
#     pass
# 
# Path: mdweb/metafields.py
# META_FIELDS = {
#     'title': ('unicode', None),
#     'nav_name': ('unicode', None),
#     'description': ('unicode', None),
#     'author': ('unicode', None),
#     'date': ('date', None),
#     'order': ('int', 0),
#     'template': ('unicode', None),
#     'teaser': ('unicode', None),
#     'teaser_image': ('unicode', None),
#     'sitemap_priority': ('unicode', None),
#     'sitemap_changefreq': ('unicode', None),
#     'published': ('bool', True),
# }


import re
import dateparser
from six import string_types
from mdweb.Exceptions import PageMetaInfFieldException
from mdweb.metafields import META_FIELDS as MDW_META_FIELDS
"""MDWeb Base Navigation Item.

This is broken out into a separate file to avoid circular imports.
"""



class NavigationBaseItem(object):  # pylint: disable=R0903
    """Base object for navigation items such as nav-levels or pages."""

    #: Type of navigation item
    @property
    def nav_type(self):
        """Return the type of this nav item (the class name)."""
        return self.__class__.__name__


class MetaInfParser(object):  # pylint: disable=R0903
    """Base Meta Inf Parser."""

    #: Registered meta fields, can be overridden by inheriting class.

# Path: mdweb/Exceptions.py
# class PageMetaInfFieldException(Exception):
#     """Invalid field in page metadata."""
# 
#     pass
# 
# Path: mdweb/metafields.py
# META_FIELDS = {
#     'title': ('unicode', None),
#     'nav_name': ('unicode', None),
#     'description': ('unicode', None),
#     'author': ('unicode', None),
#     'date': ('date', None),
#     'order': ('int', 0),
#     'template': ('unicode', None),
#     'teaser': ('unicode', None),
#     'teaser_image': ('unicode', None),
#     'sitemap_priority': ('unicode', None),
#     'sitemap_changefreq': ('unicode', None),
#     'published': ('bool', True),
# }


# Path: mdweb/BaseObjects.py
import re
import dateparser
from six import string_types
from mdweb.Exceptions import PageMetaInfFieldException
from mdweb.metafields import META_FIELDS as MDW_META_FIELDS

"""MDWeb Base Navigation Item.

This is broken out into a separate file to avoid circular imports.
"""



class NavigationBaseItem(object):  # pylint: disable=R0903
    """Base object for navigation items such as nav-levels or pages."""

    #: Type of navigation item
    @property
    def nav_type(self):
        """Return the type of this nav item (the class name)."""
        return self.__class__.__name__


class MetaInfParser(object):  # pylint: disable=R0903
    """Base Meta Inf Parser."""

    #: Registered meta fields, can be overridden by inheriting class.

    META_FIELDS = MDW_META_FIELDS