Пример #1
0
    def execute_loaders(self, env=None, silent=None, key=None, filename=None):
        """Execute all internal and registered loaders

        :param env: The environment to load
        :param silent: If loading erros is silenced
        :param key: if provided load a single key
        :param filename: optional custom filename to load
        """
        if key is None:
            default_loader(self, self._defaults)
        env = (env or self.current_env).upper()
        silent = silent or self.SILENT_ERRORS_FOR_DYNACONF
        self.pre_load(env, silent=silent, key=key)
        settings_loader(self,
                        env=env,
                        silent=silent,
                        key=key,
                        filename=filename)
        self.load_extra_yaml(env, silent, key)  # DEPRECATED
        enable_external_loaders(self)
        for loader in self.loaders:
            self.logger.debug("Dynaconf executing: %s", loader.__name__)
            loader.load(self, env, silent=silent, key=key)
        self.load_includes(env, silent=silent, key=key)
        self.logger.debug("Loaded Files: %s", deduplicate(self._loaded_files))
Пример #2
0
    def execute_loaders(
        self, env=None, silent=None, key=None, filename=None, loaders=None
    ):
        """Execute all internal and registered loaders

        :param env: The environment to load
        :param silent: If loading erros is silenced
        :param key: if provided load a single key
        :param filename: optional custom filename to load
        :param loaders: optional list of loader modules
        """
        if key is None:
            default_loader(self, self._defaults)

        env = (env or self.current_env).upper()
        silent = silent or self.SILENT_ERRORS_FOR_DYNACONF

        if loaders is None:
            self.pre_load(env, silent=silent, key=key)
            settings_loader(
                self, env=env, silent=silent, key=key, filename=filename
            )
            self.load_extra_yaml(env, silent, key)  # DEPRECATED
            enable_external_loaders(self)

            loaders = self.loaders

        for loader in loaders:
            loader.load(self, env, silent=silent, key=key)

        self.load_includes(env, silent=silent, key=key)
Пример #3
0
 def execute_loaders(self, namespace=None, silent=None, key=None):
     """Execute all internal and registered loaders"""
     silent = silent or self.SILENT_ERRORS_FOR_DYNACONF
     if key is None:
         default_loader(self, self._defaults)
     settings_loader(self, namespace=namespace, silent=silent, key=key)
     self.load_extra_yaml(namespace, silent, key)  # DEPRECATED
     enable_external_loaders(self)
     for loader in self.loaders:
         self.logger.debug('Loading %s', loader.__name__)
         loader.load(self, namespace, silent=silent, key=key)
Пример #4
0
    def execute_loaders(self, env=None, silent=None, key=None, filename=None):
        """Execute all internal and registered loaders

        :param env: The environment to load
        :param silent: If loading erros is silenced
        :param key: if provided load a single key
        :param filename: optinal custom filename to load
        """
        if key is None:
            default_loader(self, self._defaults)
        silent = silent or self.SILENT_ERRORS_FOR_DYNACONF
        settings_loader(self, env=env, silent=silent, key=key,
                        filename=filename)
        self.load_extra_yaml(env, silent, key)  # DEPRECATED
        enable_external_loaders(self)
        for loader in self.loaders:
            self.logger.debug('Dynaconf executing: %s', loader.__name__)
            loader.load(self, env, silent=silent, key=key)

        # Do we have any nested includes we need to process? If so,
        # Remove any duplicate paths (while preserving definition order)
        # by converting to an ordered dict, and then converting back
        # to a list.
        includes = list(OrderedDict.fromkeys(self.get('DYNACONF_INCLUDE', [])))
        if includes:
            already_loaded = set()
            basepath = os.path.split(self.settings_module)[0]

            for include in includes:
                # Handle absolute and relative paths in the configuration.
                if os.path.isabs(include):  # pragma: no cover
                    included_filename = include
                else:
                    included_filename = os.path.join(basepath, include)

                # Handle possible globs
                for path in glob.glob(included_filename):
                    if path in already_loaded:  # pragma: no cover
                        continue

                    settings_loader(obj=self,
                                    env=env,
                                    silent=silent,
                                    key=key,
                                    filename=path)

                    already_loaded.add(path)