Skip to content

Commit b04e174

Browse files
refactor: Clean up DpathExtractor extract_records logic
Apply cleaner logic using 'yield from' consistently: - When extracted is a list without record_expander, use 'yield from extracted' - Check 'if not self.record_expander' instead of nested if/else - Remove unnecessary 'yield from []' for empty case All 24 tests passing. Suggested by @DanyloGL. Co-Authored-By: unknown <>
1 parent c035138 commit b04e174

File tree

1 file changed

+4
-6
lines changed

1 file changed

+4
-6
lines changed

airbyte_cdk/sources/declarative/extractors/dpath_extractor.py

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -101,15 +101,13 @@ def extract_records(self, response: requests.Response) -> Iterable[MutableMappin
101101
else:
102102
extracted = dpath.get(body, path, default=[]) # type: ignore # extracted will be a MutableMapping, given input data structure
103103
if isinstance(extracted, list):
104-
for record in extracted:
105-
if self.record_expander:
104+
if not self.record_expander:
105+
yield from extracted
106+
else:
107+
for record in extracted:
106108
yield from self.record_expander.expand_record(record)
107-
else:
108-
yield record
109109
elif extracted:
110110
if self.record_expander:
111111
yield from self.record_expander.expand_record(extracted)
112112
else:
113113
yield extracted
114-
else:
115-
yield from []

0 commit comments

Comments
 (0)