36 def from_toml_file(cls, cfg_file: pathlib.Path, use_cache: bool) -> "FaviconConfig":
37 """Create a config object from a TOML file, the ``use_cache`` argument
38 specifies whether a cache should be used.
39 """
40
41 cached = TOML_CACHE_CFG.get(str(cfg_file))
42 if use_cache and cached:
43 return cached
44
45 with cfg_file.open("rb") as f:
46 data = f.read()
47
48 cfg = msgspec.toml.decode(data, type=_FaviconConfig)
49 schema = cfg.favicons.cfg_schema
50 if schema != CONFIG_SCHEMA:
51 raise ValueError(
52 f"config schema version {CONFIG_SCHEMA} is needed, version {schema} is given in {cfg_file}"
53 )
54
55 cfg = cfg.favicons
56 if use_cache and cached:
57 TOML_CACHE_CFG[str(cfg_file.resolve())] = cfg
58
59 return cfg
60
61