castor-extractor 0.24.35__py3-none-any.whl → 0.24.36__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of castor-extractor might be problematic. Click here for more details.

CHANGELOG.md CHANGED
@@ -1,5 +1,11 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.24.36 - 2025-08-04
4
+
5
+ * Sigma:
6
+ * Refresh token before lineage extraction
7
+ * Disregard 403 errors during lineage extraction
8
+
3
9
  ## 0.24.35 - 2025-07-29
4
10
 
5
11
  * Coalesce - Fix pagination issue
@@ -54,6 +54,13 @@ SIGMA_SAFE_MODE = RequestSafeMode(
54
54
  max_errors=_VOLUME_IGNORED,
55
55
  status_codes=_IGNORED_ERROR_CODES,
56
56
  )
57
+ SIGMA_SAFE_MODE_LINEAGE = RequestSafeMode(
58
+ max_errors=_VOLUME_IGNORED,
59
+ status_codes=(
60
+ *_IGNORED_ERROR_CODES,
61
+ HTTPStatus.FORBIDDEN,
62
+ ),
63
+ )
57
64
  _THREADS_LINEAGE = 10 # empirically found; hit the rate limit with 20 workers
58
65
  _RETRY_NUMBER = 1
59
66
  _RETRY_BASE_MS = 60_000
@@ -210,18 +217,35 @@ class SigmaClient(APIClient):
210
217
  return contexts
211
218
 
212
219
  def _get_all_lineages(self, elements: list[dict]) -> Iterator[dict]:
220
+ """
221
+ The safe mode is temporarily modified to include 403 errors.
222
+
223
+ Due to concurrency issues, we force a refresh of the token in hopes that
224
+ the lineage extraction takes less than the token expiration time of
225
+ 1 hour.
226
+ """
227
+ safe_mode = self._safe_mode
228
+ self._safe_mode = SIGMA_SAFE_MODE_LINEAGE
229
+
213
230
  lineage_context = self._lineage_context(elements)
214
231
 
232
+ self._auth.refresh_token()
233
+
215
234
  with ThreadPoolExecutor(max_workers=_THREADS_LINEAGE) as executor:
216
235
  results = executor.map(self._get_lineage, lineage_context)
217
236
 
218
237
  for lineage in results:
238
+ if not lineage.lineage:
239
+ continue
240
+
219
241
  yield {
220
242
  **lineage.lineage,
221
243
  "workbook_id": lineage.context.workbook_id,
222
244
  "element_id": lineage.context.element_id,
223
245
  }
224
246
 
247
+ self._safe_mode = safe_mode
248
+
225
249
  @staticmethod
226
250
  def _yield_deduplicated_queries(
227
251
  queries: Iterable[dict], workbook_id: str
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: castor-extractor
3
- Version: 0.24.35
3
+ Version: 0.24.36
4
4
  Summary: Extract your metadata assets.
5
5
  Home-page: https://www.castordoc.com/
6
6
  License: EULA
@@ -215,6 +215,12 @@ For any questions or bug report, contact us at [support@coalesce.io](mailto:supp
215
215
 
216
216
  # Changelog
217
217
 
218
+ ## 0.24.36 - 2025-08-04
219
+
220
+ * Sigma:
221
+ * Refresh token before lineage extraction
222
+ * Disregard 403 errors during lineage extraction
223
+
218
224
  ## 0.24.35 - 2025-07-29
219
225
 
220
226
  * Coalesce - Fix pagination issue
@@ -1,4 +1,4 @@
1
- CHANGELOG.md,sha256=1S9O_c1LH8T4P78akRxlFS8Tv0i9Jgswy7V9zvd_UQw,18900
1
+ CHANGELOG.md,sha256=HAHFgRYnv-pbsKwbHrRCrWoLpsqr8mg7Fp7tDsBsN9E,19030
2
2
  Dockerfile,sha256=xQ05-CFfGShT3oUqaiumaldwA288dj9Yb_pxofQpufg,301
3
3
  DockerfileUsage.md,sha256=2hkJQF-5JuuzfPZ7IOxgM6QgIQW7l-9oRMFVwyXC4gE,998
4
4
  LICENCE,sha256=sL-IGa4hweyya1HgzMskrRdybbIa2cktzxb5qmUgDg8,8254
@@ -271,7 +271,7 @@ castor_extractor/visualization/salesforce_reporting/extract.py,sha256=ScStilebLG
271
271
  castor_extractor/visualization/sigma/__init__.py,sha256=GINql4yJLtjfOJgjHaWNpE13cMtnKNytiFRomwav27Q,114
272
272
  castor_extractor/visualization/sigma/assets.py,sha256=JZ1Cpxnml8P3mIJoTUM57hvylB18ErECQXaP5FF63O4,268
273
273
  castor_extractor/visualization/sigma/client/__init__.py,sha256=YQv06FBBQHvBMFg_tN0nUcmUp2NCL2s-eFTXG8rXaBg,74
274
- castor_extractor/visualization/sigma/client/client.py,sha256=ZE44k5klBVnc5lld3tpjuKGeSdFmlJ0wr5DOB4pEfco,9446
274
+ castor_extractor/visualization/sigma/client/client.py,sha256=ifCxhZ8-p9u7MnJRE8EYF_YP_G3REr_PELTSrtHiZwk,10099
275
275
  castor_extractor/visualization/sigma/client/client_test.py,sha256=ae0ZOvKutCm44jnrJ-0_A5Y6ZGyDkMf9Ml3eEP8dNkY,581
276
276
  castor_extractor/visualization/sigma/client/credentials.py,sha256=XddAuQSmCKpxJ70TQgRnOj0vMPYVtiStk_lMMQ1AiNM,693
277
277
  castor_extractor/visualization/sigma/client/endpoints.py,sha256=DBFphbgoH78_MZUGM_bKBAq28Nl7LWSZ6VRsbxrxtDg,1162
@@ -428,8 +428,8 @@ castor_extractor/warehouse/sqlserver/queries/table.sql,sha256=4RgeSkHDWTWRyU2iLx
428
428
  castor_extractor/warehouse/sqlserver/queries/user.sql,sha256=gOrZsMVypusR2dc4vwVs4E1a-CliRsr_UjnD2EbXs-A,94
429
429
  castor_extractor/warehouse/sqlserver/query.py,sha256=7sW8cK3JzxPt6faTJ7e4lk9tE4fo_AeCymI-LqsSols,1276
430
430
  castor_extractor/warehouse/synapse/queries/column.sql,sha256=lNcFoIW3Y0PFOqoOzJEXmPvZvfAsY0AP63Mu2LuPzPo,1351
431
- castor_extractor-0.24.35.dist-info/LICENCE,sha256=sL-IGa4hweyya1HgzMskrRdybbIa2cktzxb5qmUgDg8,8254
432
- castor_extractor-0.24.35.dist-info/METADATA,sha256=-vrfKzS5B3r2qL7tjFjFBR-AizzuVIexEVJHCci7Z5s,26353
433
- castor_extractor-0.24.35.dist-info/WHEEL,sha256=Nq82e9rUAnEjt98J6MlVmMCZb-t9cYE2Ir1kpBmnWfs,88
434
- castor_extractor-0.24.35.dist-info/entry_points.txt,sha256=_F-qeZCybjoMkNb9ErEhnyqXuG6afHIFQhakdBHZsr4,1803
435
- castor_extractor-0.24.35.dist-info/RECORD,,
431
+ castor_extractor-0.24.36.dist-info/LICENCE,sha256=sL-IGa4hweyya1HgzMskrRdybbIa2cktzxb5qmUgDg8,8254
432
+ castor_extractor-0.24.36.dist-info/METADATA,sha256=m14Hk_AYJo9_bZE7IOb6U_LdhG8JfXnVqisiJHjgMS4,26483
433
+ castor_extractor-0.24.36.dist-info/WHEEL,sha256=Nq82e9rUAnEjt98J6MlVmMCZb-t9cYE2Ir1kpBmnWfs,88
434
+ castor_extractor-0.24.36.dist-info/entry_points.txt,sha256=_F-qeZCybjoMkNb9ErEhnyqXuG6afHIFQhakdBHZsr4,1803
435
+ castor_extractor-0.24.36.dist-info/RECORD,,