Commit 5be5bee
committed
feat(file-based): Add Calamine-first with Openpyxl fallback for Excel parser
Implements a fallback mechanism for Excel file parsing to handle edge cases
where Calamine fails (e.g., invalid date values like year 20225). The parser
now tries Calamine first for performance, then falls back to Openpyxl if
Calamine encounters an error.
Changes:
- Modified open_and_parse_file() to implement try-catch with fallback logic
- Added logger parameter to log when fallback is triggered
- Added openpyxl as optional dependency in pyproject.toml
- Added openpyxl to file-based extras list
This resolves crashes in Google Drive source when processing large numbers
of Excel files with malformed data, allowing syncs to complete successfully
instead of failing entirely.
Fixes: airbytehq/oncall#10097
Co-Authored-By: unknown <>1 parent 5d9125f commit 5be5bee
File tree
2 files changed
+27
-10
lines changed- airbyte_cdk/sources/file_based/file_types
2 files changed
+27
-10
lines changedLines changed: 25 additions & 9 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
64 | 64 | | |
65 | 65 | | |
66 | 66 | | |
67 | | - | |
| 67 | + | |
68 | 68 | | |
69 | 69 | | |
70 | 70 | | |
| |||
92 | 92 | | |
93 | 93 | | |
94 | 94 | | |
95 | | - | |
| 95 | + | |
96 | 96 | | |
97 | 97 | | |
98 | 98 | | |
| |||
111 | 111 | | |
112 | 112 | | |
113 | 113 | | |
114 | | - | |
| 114 | + | |
115 | 115 | | |
116 | 116 | | |
117 | 117 | | |
| |||
181 | 181 | | |
182 | 182 | | |
183 | 183 | | |
184 | | - | |
| 184 | + | |
| 185 | + | |
| 186 | + | |
| 187 | + | |
| 188 | + | |
185 | 189 | | |
186 | | - | |
187 | | - | |
188 | | - | |
189 | | - | |
| 190 | + | |
190 | 191 | | |
191 | 192 | | |
192 | 193 | | |
193 | 194 | | |
194 | | - | |
| 195 | + | |
| 196 | + | |
| 197 | + | |
| 198 | + | |
| 199 | + | |
| 200 | + | |
| 201 | + | |
| 202 | + | |
| 203 | + | |
| 204 | + | |
| 205 | + | |
| 206 | + | |
| 207 | + | |
| 208 | + | |
| 209 | + | |
| 210 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
73 | 73 | | |
74 | 74 | | |
75 | 75 | | |
| 76 | + | |
76 | 77 | | |
77 | 78 | | |
78 | 79 | | |
| |||
120 | 121 | | |
121 | 122 | | |
122 | 123 | | |
123 | | - | |
| 124 | + | |
124 | 125 | | |
125 | 126 | | |
126 | 127 | | |
| |||
0 commit comments