Skip to content

Commit 7820aa8

Browse files
committed
use defaultdict for extracting metadata from all files
1 parent 75f5cd6 commit 7820aa8

File tree

1 file changed

+10
-14
lines changed

1 file changed

+10
-14
lines changed

sarxarray/_io.py

Lines changed: 10 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import logging
22
import math
33
import re
4+
from collections import defaultdict
45
from datetime import datetime
56
from pathlib import Path
67
from typing import Literal
@@ -355,20 +356,15 @@ def read_metadata(
355356
# Force all files to be Path objects in case files is a list of strings
356357
files = [Path(file) for file in files]
357358

358-
# Parse the first file
359-
metadata = _parse_metadata(files[0], driver)
360-
361-
# If there are multiple files, read the metadata from each file, then combine
362-
# Otherwise, just return the metadata from the first file
363-
if len(files) > 1:
364-
for file in files[1:]:
365-
res = _parse_metadata(file, driver)
366-
for key, value in res.items():
367-
# If the key already exists, append the new value to the list
368-
if isinstance(metadata[key], list):
369-
metadata[key].append(value)
370-
else:
371-
metadata[key] = [metadata[key], value]
359+
# Parse metadata from each file
360+
# if a key does not exists, a list will be created
361+
metadata = defaultdict(list)
362+
for file in files:
363+
res = _parse_metadata(file, driver)
364+
for key, value in res.items():
365+
metadata[key].append(value)
366+
367+
# Regulate metadata for all files
372368
metadata = _regulate_metadata(metadata, driver)
373369

374370
return metadata

0 commit comments

Comments
 (0)