コード例 #1
0
 def test_read_(self):
     actual = read_from_config_files(
         [scenario_path("config_files", "test_config_reader.cfg")]
     )
     with config(actual):
         assert (
             config.get("test_config_reader", "test_config_reader") == "test_value"
         )
コード例 #2
0
    def _on_enter(self):
        pm.hook.dbnd_on_pre_init_context(ctx=self)
        run_user_func(config.get("core", "user_pre_init"))
        # if we are deserialized - we don't need to run this code again.
        if not self.initialized_context:
            # noinspection PyTypeChecker
            if self._module:
                load_python_module(self._module, "--module")

            module_from_config = config.get("databand", "module")
            if self._autoload_modules and module_from_config:
                load_python_module(module_from_config,
                                   "config file (see [databand].module)")

            # will be called from singleton context manager
            # we want to be able to catch all "new" inline airflow operators
            self.system_settings = DatabandSystemConfig()
            if self.system_settings.conf:
                self.config.set_values(self.system_settings.conf,
                                       source="dbnd.conf")
            if self.system_settings.conf_file:
                conf_file = read_from_config_files(
                    self.system_settings.conf_file)
                self.config.set_values(conf_file,
                                       source="dbnd__databand__conf")

            from dbnd._core.settings import DatabandSettings

            self.settings = DatabandSettings(databand_context=self)
            self.env = self.settings.get_env_config(self.system_settings.env)
            self.config.set_values(
                config_values={"task": {
                    "task_env": self.system_settings.env
                }},
                source="context",
            )

            pm.hook.dbnd_on_new_context(ctx=self)

            # RUN USER SETUP FUNCTIONS
            _run_user_func(
                self.settings.core.__class__.user_driver_init,
                self.settings.core.user_driver_init,
            )

            self.task_run_env = RunInfoConfig().build_task_run_info()
            self.initialized_context = True
        else:
            # we get here if we are running at sub process that recreates the Context
            pm.hook.dbnd_on_existing_context(ctx=self)

        # we do it every time we go into databand_config
        self.configure_targets()
        self.settings.log.configure_dbnd_logging()

        _run_user_func(self.settings.core.__class__.user_init,
                       self.settings.core.user_init)
        pm.hook.dbnd_post_enter_context(ctx=self)
コード例 #3
0
ファイル: dbnd_config.py プロジェクト: databand-ai/dbnd
 def set_from_config_file(self, config_path):
     # type: (Union[Target,str]) -> None
     """
     Load Configuration from config file
     """
     config_path = target(config_path)
     config_values = read_from_config_files([config_path])
     self.set_values(config_values=config_values,
                     source=os.path.basename(str(config_path)))
コード例 #4
0
ファイル: dbnd_config.py プロジェクト: lbtanh/dbnd
    def load_system_configs(self, force=False):
        if self.initialized_with_env and not force:
            return

        # first, let read from files
        system_config_store = read_from_config_files(_default_configuration_paths())

        # now we can merge with environment values
        system_config_store.update(read_environ_config())

        # all configs will be added as one layer called 'system'
        self.set_values(system_config_store, source="system")
        self.initialized_with_env = True
コード例 #5
0
    def _on_enter(self):
        pm.hook.dbnd_on_pre_init_context(ctx=self)
        run_user_func(config.get("core", "user_pre_init"))
        # if we are deserialized - we don't need to run this code again.
        if not self._is_initialized:
            # will be called from singleton context manager
            self.system_settings = DatabandSystemConfig()
            if self.system_settings.conf:
                self.config.set_values(self.system_settings.conf,
                                       source="[databand]conf")
            if self.system_settings.conf_file:
                conf_file = read_from_config_files(
                    self.system_settings.conf_file)
                self.config.set_values(conf_file, source="[databand]conf")

            from dbnd._core.settings import DatabandSettings

            self.settings = DatabandSettings(databand_context=self)
            self.env = self.settings.get_env_config(self.system_settings.env)
            self.config.set_values(
                config_values={"task": {
                    "task_env": self.system_settings.env
                }},
                source="context",
            )

            pm.hook.dbnd_on_new_context(ctx=self)

            # RUN USER SETUP FUNCTIONS
            _run_user_func(
                self.settings.core.__class__.user_driver_init,
                self.settings.core.user_driver_init,
            )

            self.task_run_env = RunInfoConfig().build_task_run_info()
            self._is_initialized = True
        else:
            # we get here if we are running at sub process that recreates the Context
            pm.hook.dbnd_on_existing_context(ctx=self)

        # we do it every time we go into databand_config
        self.configure_targets()
        self.settings.log.configure_dbnd_logging()

        _run_user_func(self.settings.core.__class__.user_init,
                       self.settings.core.user_init)
        pm.hook.dbnd_post_enter_context(ctx=self)