Example #1
0
    def __init__(self, *args, **kwargs):
        super(StatikConfig, self).__init__(*args, **kwargs)
        self.project_name = self.vars.get('project-name', 'Untitled project')
        self.base_path = self.vars.get('base-path', '/')
        self.encoding = self.vars.get('encoding', 'utf-8')
        self.theme = self.vars.get('theme', None)
        self.markdown_config = MarkdownConfig(self.vars.get(
            'markdown', dict()))

        self.external_database = None
        if 'external-database' in self.vars:
            self.external_database = ExternalDatabase(
                self.vars.get('external-database')).factory()
        # relative to the output folder
        self.assets_src_path = self.assets_dest_path = 'assets'
        if 'assets' in self.vars and isinstance(self.vars['assets'], dict):
            if 'source' in self.vars['assets'] and isinstance(
                    self.vars['assets']['source'], str):
                self.assets_src_path = self.vars['assets']['source']

            if 'dest' in self.vars['assets'] and isinstance(
                    self.vars['assets']['dest'], str):
                self.assets_dest_path = self.vars['assets']['dest']

        self.context_static = {}
        self.context_dynamic = {}

        if 'context' in self.vars and isinstance(self.vars['context'], dict):
            if 'static' in self.vars['context'] and isinstance(
                    self.vars['context']['static'], dict):
                self.context_static = underscore_var_names(
                    self.vars['context']['static'])

            if 'dynamic' in self.vars['context'] and isinstance(
                    self.vars['context']['dynamic'], dict):
                self.context_dynamic = underscore_var_names(
                    self.vars['context']['dynamic'])

        # work out our template engine precedence
        if 'templates' in self.vars and 'providers' in self.vars:
            if not isinstance(self.vars['templates']['providers'], list):
                raise ProjectConfigurationError(
                    message=
                    "Template providers in project configuration must be a list.",
                    context=self.error_context)
            # validate our template providers
            self.template_providers = [
                provider for provider in self.vars['templates']['providers'] \
                if provider in DEFAULT_TEMPLATE_PROVIDERS
            ]
        else:
            self.template_providers = copy(DEFAULT_TEMPLATE_PROVIDERS)

        if not self.template_providers:
            raise NoSupportedTemplateProvidersError(DEFAULT_TEMPLATE_PROVIDERS,
                                                    context=self.error_context)

        logging.debug("%s", self)
Example #2
0
    def __init__(self, *args, **kwargs):
        super(StatikConfig, self).__init__(*args, **kwargs)
        self.project_name = self.vars.get('project-name', 'Untitled project')
        self.base_path = self.vars.get('base-path', '/')
        self.encoding = self.vars.get('encoding', 'utf-8')
        self.theme = self.vars.get('theme', None)
        self.markdown_config = MarkdownConfig(self.vars.get('markdown', dict()))

        self.external_database = None
        if 'external-database' in self.vars:
            self.external_database = ExternalDatabase(self.vars.get('external-database')).factory()
        # relative to the output folder
        self.assets_src_path = self.assets_dest_path = 'assets'
        if 'assets' in self.vars and isinstance(self.vars['assets'], dict):
            if 'source' in self.vars['assets'] and isinstance(self.vars['assets']['source'], str):
                self.assets_src_path = self.vars['assets']['source']

            if 'dest' in self.vars['assets'] and isinstance(self.vars['assets']['dest'], str):
                self.assets_dest_path = self.vars['assets']['dest']

        self.context_static = {}
        self.context_dynamic = {}

        if 'context' in self.vars and isinstance(self.vars['context'], dict):
            if 'static' in self.vars['context'] and isinstance(self.vars['context']['static'], dict):
                self.context_static = underscore_var_names(self.vars['context']['static'])

            if 'dynamic' in self.vars['context'] and isinstance(self.vars['context']['dynamic'], dict):
                self.context_dynamic = underscore_var_names(self.vars['context']['dynamic'])

        # work out our template engine precedence
        if 'templates' in self.vars and 'providers' in self.vars:
            if not isinstance(self.vars['templates']['providers'], list):
                raise ProjectConfigurationError(
                    message="Template providers in project configuration must be a list.",
                    context=self.error_context
                )
            # validate our template providers
            self.template_providers = [
                provider for provider in self.vars['templates']['providers'] \
                if provider in DEFAULT_TEMPLATE_PROVIDERS
            ]
        else:
            self.template_providers = copy(DEFAULT_TEMPLATE_PROVIDERS)

        if not self.template_providers:
            raise NoSupportedTemplateProvidersError(
                DEFAULT_TEMPLATE_PROVIDERS,
                context=self.error_context
            )

        logging.debug("%s", self)
Example #3
0
 def __init__(
         self,
         initial=None,
         static=None,
         dynamic=None,
         for_each=None
     ):
     self.initial = initial or dict()
     self.static = underscore_var_names(
         deepcopy(static or dict())
     )
     self.dynamic = underscore_var_names(
         deepcopy(dynamic or dict())
     )
     self.for_each = underscore_var_names(
         deepcopy(for_each or dict())
     )
     logger.debug("Created Statik context instance: %s", self)
Example #4
0
    def __init__(self, *args, **kwargs):
        super(StatikConfig, self).__init__(*args, **kwargs)
        self.project_name = self.vars.get('project-name', 'Untitled project')
        self.base_path = self.vars.get('base-path', '/')
        self.encoding = self.vars.get('encoding', 'utf-8')
        self.theme = self.vars.get('theme', None)
        self.markdown_config = MarkdownConfig(self.vars.get('markdown', dict()))
        # relative to the output folder
        self.assets_src_path = self.assets_dest_path = 'assets'
        if 'assets' in self.vars and isinstance(self.vars['assets'], dict):
            if 'source' in self.vars['assets'] and isinstance(self.vars['assets']['source'], str):
                self.assets_src_path = self.vars['assets']['source']

            if 'dest' in self.vars['assets'] and isinstance(self.vars['assets']['dest'], str):
                self.assets_dest_path = self.vars['assets']['dest']

        self.context_static = {}
        self.context_dynamic = {}

        if 'context' in self.vars and isinstance(self.vars['context'], dict):
            if 'static' in self.vars['context'] and isinstance(self.vars['context']['static'], dict):
                self.context_static = underscore_var_names(self.vars['context']['static'])

            if 'dynamic' in self.vars['context'] and isinstance(self.vars['context']['dynamic'], dict):
                self.context_dynamic = underscore_var_names(self.vars['context']['dynamic'])

        # work out our template engine precedence
        if 'templates' in self.vars and 'providers' in self.vars:
            if not isinstance(self.vars['templates']['providers'], list):
                raise TypeError("Template providers in project configuration must be a list")
            # validate our template providers
            self.template_providers = [provider for provider in self.vars['templates']['providers'] \
                                       if provider in DEFAULT_TEMPLATE_PROVIDERS]
        else:
            self.template_providers = copy(DEFAULT_TEMPLATE_PROVIDERS)

        if len(self.template_providers) == 0:
            raise NoSupportedTemplateProvidersError(
                "No supported template providers in project configuration. "
                "Available template providers: %s" % ", ".join(DEFAULT_TEMPLATE_PROVIDERS)
            )

        logging.debug("%s" % self)
Example #5
0
    def __init__(self, *args, **kwargs):
        super().__init__(*args, **kwargs)
        self.project_name = self.vars.get('project-name', 'Untitled project')
        self.base_path = self.vars.get('base-path', '/')
        # relative to the output folder
        self.assets_src_path = self.assets_dest_path = 'assets'
        if 'assets' in self.vars and isinstance(self.vars['assets'], dict):
            if 'source' in self.vars['assets'] and isinstance(self.vars['assets']['source'], str):
                self.assets_src_path = self.vars['assets']['source']

            if 'dest' in self.vars['assets'] and isinstance(self.vars['assets']['dest'], str):
                self.assets_dest_path = self.vars['assets']['dest']

        self.context_static = {}
        self.context_dynamic = {}

        if 'context' in self.vars and isinstance(self.vars['context'], dict):
            if 'static' in self.vars['context'] and isinstance(self.vars['context']['static'], dict):
                self.context_static = underscore_var_names(self.vars['context']['static'])

            if 'dynamic' in self.vars['context'] and isinstance(self.vars['context']['dynamic'], dict):
                self.context_dynamic = underscore_var_names(self.vars['context']['dynamic'])

        logging.debug("%s" % self)
Example #6
0
 def __init__(self, initial=None, static=None, dynamic=None, for_each=None):
     self.initial = initial or dict()
     self.static = underscore_var_names(deepcopy(static or dict()))
     self.dynamic = underscore_var_names(deepcopy(dynamic or dict()))
     self.for_each = underscore_var_names(deepcopy(for_each or dict()))
     logger.debug("Created Statik context instance: %s", self)