data_juicer.config#

data_juicer.config.init_configs(args: List[str] | None = None, which_entry: object = None, load_configs_only=False)[source]#
initialize the jsonargparse parser and parse configs from one of:
  1. POSIX-style commands line args;

  2. config files in yaml (json and jsonnet supersets);

  3. environment variables

  4. hard-coded defaults

Parameters:
  • args – list of params, e.g., [’–config’, ‘cfg.yaml’], default None.

  • which_entry – which entry to init configs (executor/analyzer)

  • load_configs_only – whether to load the configs only, not including backing up config files, display them, and setting up logger.

Returns:

a global cfg object used by the DefaultExecutor or Analyzer

data_juicer.config.get_init_configs(cfg: Namespace | Dict, load_configs_only: bool = True)[source]#

set init configs of data-juicer for cfg

data_juicer.config.export_config(cfg: Namespace, path: str, format: str = 'yaml', skip_none: bool = True, skip_check: bool = True, overwrite: bool = False, multifile: bool = True)[source]#

Save the config object, some params are from jsonargparse

Parameters:
  • cfg – cfg object to save (Namespace type)

  • path – the save path

  • format – ‘yaml’, ‘json’, ‘json_indented’, ‘parser_mode’

  • skip_none – Whether to exclude entries whose value is None.

  • skip_check – Whether to skip parser checking.

  • overwrite – Whether to overwrite existing files.

  • multifile – Whether to save multiple config files by using the __path__ metas.

Returns:

data_juicer.config.merge_config(ori_cfg: Namespace, new_cfg: Namespace)[source]#

Merge configuration from new_cfg into ori_cfg

Parameters:
  • ori_cfg – the original configuration object, whose type is expected as namespace from jsonargparse

  • new_cfg – the configuration object to be merged, whose type is expected as dict or namespace from jsonargparse

Returns:

cfg_after_merge

data_juicer.config.prepare_side_configs(ori_config: str | Namespace | Dict)[source]#
parse the config if ori_config is a string of a config file path with

yaml, yml or json format

Parameters:

ori_config – a config dict or a string of a config file path with yaml, yml or json format

Returns:

a config dict

data_juicer.config.get_default_cfg()[source]#

Get default config values from config_min.yaml

data_juicer.config.prepare_cfgs_for_export(cfg)[source]#
data_juicer.config.update_op_attr(op_list: list, attr_dict: dict = None)[source]#
data_juicer.config.validate_work_dir_config(work_dir: str) None[source]#

Validate work_dir configuration to ensure {job_id} placement rules are followed.

Parameters:

work_dir – The work_dir string to validate

Raises:

ValueError – If {job_id} is not at the end of the path

data_juicer.config.resolve_job_id(cfg)[source]#

Resolve or auto-generate job_id and set it on cfg.

data_juicer.config.resolve_job_directories(cfg)[source]#

Centralize directory resolution and placeholder substitution. Assumes job_id is already set.

Job Directory Rules: - If work_dir contains ‘{job_id}’ placeholder, it MUST be the last part of the path - Examples:

✅ work_dir: “./outputs/my_project/{job_id}” # Valid ✅ work_dir: “/data/experiments/{job_id}” # Valid ❌ work_dir: “./outputs/{job_id}/results” # Invalid - {job_id} not at end ❌ work_dir: “./{job_id}/outputs/data” # Invalid - {job_id} not at end

  • If work_dir does NOT contain ‘{job_id}’, job_id will be appended automatically

  • Examples: work_dir: “./outputs/my_project” → work_dir: “./outputs/my_project/20250804_143022_abc123”

After resolution, work_dir will always include job_id at the end.