(defaults: ConfigDefaultDict,
config: Optional[ConfigDict]=None,
out_dir: Optional[str]=None,
env_vars: Optional[os._Environ]=None,
config_file_vars: Optional[Dict[str, str]]=None)
| 746 | |
| 747 | |
| 748 | def load_config(defaults: ConfigDefaultDict, |
| 749 | config: Optional[ConfigDict]=None, |
| 750 | out_dir: Optional[str]=None, |
| 751 | env_vars: Optional[os._Environ]=None, |
| 752 | config_file_vars: Optional[Dict[str, str]]=None) -> ConfigDict: |
| 753 | |
| 754 | env_vars = env_vars or os.environ |
| 755 | config_file_vars = config_file_vars or load_config_file(out_dir=out_dir) |
| 756 | |
| 757 | extended_config: ConfigDict = config.copy() if config else {} |
| 758 | for key, default in defaults.items(): |
| 759 | try: |
| 760 | extended_config[key] = load_config_val( |
| 761 | key, |
| 762 | default=default['default'], |
| 763 | type=default.get('type'), |
| 764 | aliases=default.get('aliases'), |
| 765 | config=extended_config, |
| 766 | env_vars=env_vars, |
| 767 | config_file_vars=config_file_vars, |
| 768 | ) |
| 769 | except KeyboardInterrupt: |
| 770 | raise SystemExit(0) |
| 771 | except Exception as e: |
| 772 | stderr() |
| 773 | stderr(f'[X] Error while loading configuration value: {key}', color='red', config=extended_config) |
| 774 | stderr(' {}: {}'.format(e.__class__.__name__, e)) |
| 775 | stderr() |
| 776 | stderr(' Check your config for mistakes and try again (your archive data is unaffected).') |
| 777 | stderr() |
| 778 | stderr(' For config documentation and examples see:') |
| 779 | stderr(' https://github.com/ArchiveBox/ArchiveBox/wiki/Configuration') |
| 780 | stderr() |
| 781 | # raise |
| 782 | raise SystemExit(2) |
| 783 | |
| 784 | return extended_config |
| 785 | |
| 786 | |
| 787 | def parse_version_string(version: str) -> Tuple[int, int, int]: |
no test coverage detected