Compare commits
1 Commits
main
...
symcache_n
| Author | SHA1 | Date |
|---|---|---|
|
|
a3ed73a40d |
|
|
@ -105,6 +105,15 @@ class SymbologyCache(Struct):
|
||||||
|
|
||||||
def write_config(self) -> None:
|
def write_config(self) -> None:
|
||||||
|
|
||||||
|
def clean_dict_for_toml(d):
|
||||||
|
'''Remove None values from dict recursively for TOML serialization'''
|
||||||
|
if isinstance(d, dict):
|
||||||
|
return {k: clean_dict_for_toml(v) for k, v in d.items() if v is not None}
|
||||||
|
elif isinstance(d, list):
|
||||||
|
return [clean_dict_for_toml(item) for item in d if item is not None]
|
||||||
|
else:
|
||||||
|
return d
|
||||||
|
|
||||||
# put the backend's pair-struct type ref at the top
|
# put the backend's pair-struct type ref at the top
|
||||||
# of file if possible.
|
# of file if possible.
|
||||||
cachedict: dict[str, Any] = {
|
cachedict: dict[str, Any] = {
|
||||||
|
|
@ -125,7 +134,9 @@ class SymbologyCache(Struct):
|
||||||
|
|
||||||
dct = cachedict[key] = {}
|
dct = cachedict[key] = {}
|
||||||
for key, struct in table.items():
|
for key, struct in table.items():
|
||||||
dct[key] = struct.to_dict(include_non_members=False)
|
raw_dict = struct.to_dict(include_non_members=False)
|
||||||
|
# Clean None values for TOML compatibility
|
||||||
|
dct[key] = clean_dict_for_toml(raw_dict)
|
||||||
|
|
||||||
try:
|
try:
|
||||||
with self.fp.open(mode='wb') as fp:
|
with self.fp.open(mode='wb') as fp:
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue