nv-ingest-api 2025.5.12.dev20250512__py3-none-any.whl → 2025.5.14.dev20250514__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 nv-ingest-api might be problematic. Click here for more details.

Files changed (34) hide show
  1. nv_ingest_api/interface/transform.py +1 -1
  2. nv_ingest_api/internal/extract/docx/docx_extractor.py +3 -3
  3. nv_ingest_api/internal/extract/image/chart_extractor.py +3 -3
  4. nv_ingest_api/internal/extract/image/image_extractor.py +5 -5
  5. nv_ingest_api/internal/extract/image/image_helpers/common.py +1 -1
  6. nv_ingest_api/internal/extract/image/infographic_extractor.py +1 -1
  7. nv_ingest_api/internal/extract/image/table_extractor.py +2 -2
  8. nv_ingest_api/internal/extract/pdf/engines/nemoretriever.py +2 -2
  9. nv_ingest_api/internal/extract/pdf/engines/pdfium.py +1 -1
  10. nv_ingest_api/internal/extract/pptx/engines/pptx_helper.py +44 -17
  11. nv_ingest_api/internal/extract/pptx/pptx_extractor.py +1 -1
  12. nv_ingest_api/internal/primitives/nim/model_interface/text_embedding.py +0 -1
  13. nv_ingest_api/internal/primitives/nim/model_interface/yolox.py +7 -1
  14. nv_ingest_api/internal/primitives/nim/nim_client.py +1 -1
  15. nv_ingest_api/internal/primitives/tracing/tagging.py +20 -16
  16. nv_ingest_api/internal/schemas/extract/extract_pdf_schema.py +1 -1
  17. nv_ingest_api/internal/schemas/meta/ingest_job_schema.py +2 -2
  18. nv_ingest_api/internal/schemas/transform/transform_image_caption_schema.py +1 -1
  19. nv_ingest_api/internal/transform/caption_image.py +1 -1
  20. nv_ingest_api/internal/transform/embed_text.py +75 -56
  21. nv_ingest_api/util/exception_handlers/converters.py +1 -1
  22. nv_ingest_api/util/exception_handlers/decorators.py +309 -51
  23. nv_ingest_api/util/image_processing/processing.py +1 -1
  24. nv_ingest_api/util/logging/configuration.py +15 -8
  25. nv_ingest_api/util/pdf/pdfium.py +2 -2
  26. nv_ingest_api/util/service_clients/redis/redis_client.py +1 -1
  27. nv_ingest_api/util/service_clients/rest/rest_client.py +1 -1
  28. nv_ingest_api/util/system/__init__.py +0 -0
  29. nv_ingest_api/util/system/hardware_info.py +426 -0
  30. {nv_ingest_api-2025.5.12.dev20250512.dist-info → nv_ingest_api-2025.5.14.dev20250514.dist-info}/METADATA +1 -1
  31. {nv_ingest_api-2025.5.12.dev20250512.dist-info → nv_ingest_api-2025.5.14.dev20250514.dist-info}/RECORD +34 -32
  32. {nv_ingest_api-2025.5.12.dev20250512.dist-info → nv_ingest_api-2025.5.14.dev20250514.dist-info}/WHEEL +1 -1
  33. {nv_ingest_api-2025.5.12.dev20250512.dist-info → nv_ingest_api-2025.5.14.dev20250514.dist-info}/licenses/LICENSE +0 -0
  34. {nv_ingest_api-2025.5.12.dev20250512.dist-info → nv_ingest_api-2025.5.14.dev20250514.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,426 @@
1
+ import logging
2
+ import os
3
+ import platform
4
+ from typing import Optional, Dict, Any, Tuple
5
+
6
+ # Try importing psutil, but don't make it a hard requirement if only cgroups are needed
7
+ try:
8
+ import psutil
9
+ except ImportError:
10
+ psutil = None
11
+
12
+ logger = logging.getLogger(__name__)
13
+
14
+ # --- Cgroup Constants ---
15
+ CGROUP_V1_CPU_DIR = "/sys/fs/cgroup/cpu"
16
+ CGROUP_V1_CPUACCT_DIR = "/sys/fs/cgroup/cpuacct" # Sometimes usage is here
17
+ CGROUP_V2_CPU_FILE = "/sys/fs/cgroup/cpu.max" # Standard path in v2 unified hierarchy
18
+
19
+
20
+ class SystemResourceProbe:
21
+ """
22
+ Detects the effective CPU core count available to the current process,
23
+ optionally applying a weighting factor for hyperthreads (SMT).
24
+
25
+ It attempts to reconcile information from:
26
+ 1. Linux Cgroup v2 CPU limits (cpu.max)
27
+ 2. Linux Cgroup v1 CPU limits (cpu.cfs_quota_us, cpu.cfs_period_us)
28
+ 3. OS scheduler affinity (os.sched_getaffinity)
29
+ 4. OS reported CPU counts (psutil.cpu_count for logical/physical)
30
+
31
+ Prioritizes Cgroup quota limits. If the limit is based on core count
32
+ (affinity/OS), it applies hyperthreading weight if psutil provides
33
+ physical/logical counts.
34
+ """
35
+
36
+ def __init__(self, hyperthread_weight: float = 0.75):
37
+ """
38
+ Initializes the detector and performs the detection.
39
+
40
+ Parameters
41
+ ----------
42
+ hyperthread_weight : float, optional
43
+ The performance weighting factor for hyperthreads (0.0 to 1.0).
44
+ A value of 1.0 treats hyperthreads the same as physical cores.
45
+ A value of 0.5 suggests a hyperthread adds 50% extra performance.
46
+ Requires psutil to be installed and report physical cores.
47
+ Defaults to 0.75.
48
+ """
49
+ if not (0.0 <= hyperthread_weight <= 1.0):
50
+ raise ValueError("hyperthread_weight must be between 0.0 and 1.0")
51
+
52
+ self.hyperthread_weight: float = hyperthread_weight if psutil else 1.0 # Force 1.0 if psutil missing
53
+ if not psutil and hyperthread_weight != 1.0:
54
+ logger.warning("psutil not found. Hyperthreading weight ignored (effectively 1.0).")
55
+
56
+ # OS Info
57
+ self.os_logical_cores: Optional[int] = None
58
+ self.os_physical_cores: Optional[int] = None
59
+ self.os_sched_affinity_cores: Optional[int] = None
60
+
61
+ # Cgroup Info
62
+ self.cgroup_type: Optional[str] = None
63
+ self.cgroup_quota_cores: Optional[float] = None
64
+ self.cgroup_period_us: Optional[int] = None
65
+ self.cgroup_shares: Optional[int] = None
66
+ self.cgroup_usage_percpu_us: Optional[list[int]] = None
67
+ self.cgroup_usage_total_us: Optional[int] = None
68
+
69
+ # --- Result ---
70
+ # Raw limit before potential weighting
71
+ self.raw_limit_value: Optional[float] = None
72
+ self.raw_limit_method: str = "unknown"
73
+ # Final potentially weighted result
74
+ self.effective_cores: Optional[float] = None
75
+ self.detection_method: str = "unknown" # Method for the final effective_cores
76
+
77
+ self._detect()
78
+
79
+ @staticmethod
80
+ def _read_file_int(path: str) -> Optional[int]:
81
+ """Safely reads an integer from a file."""
82
+ try:
83
+ if os.path.exists(path):
84
+ with open(path, "r") as f:
85
+ content = f.read().strip()
86
+ if content:
87
+ return int(content)
88
+ except (IOError, ValueError, PermissionError) as e:
89
+ logger.debug(f"Failed to read or parse int from {path}: {e}")
90
+ return None
91
+
92
+ @staticmethod
93
+ def _read_file_str(path: str) -> Optional[str]:
94
+ """Safely reads a string from a file."""
95
+ try:
96
+ if os.path.exists(path):
97
+ with open(path, "r") as f:
98
+ return f.read().strip()
99
+ except (IOError, PermissionError) as e:
100
+ logger.debug(f"Failed to read string from {path}: {e}")
101
+ return None
102
+
103
+ def _read_cgroup_v1(self) -> bool:
104
+ """Attempts to read Cgroup v1 CPU limits."""
105
+ if not os.path.exists(CGROUP_V1_CPU_DIR):
106
+ logger.debug(f"Cgroup v1 CPU dir not found: {CGROUP_V1_CPU_DIR}")
107
+ return False
108
+
109
+ logger.debug(f"Checking Cgroup v1 limits in {CGROUP_V1_CPU_DIR}")
110
+ quota_us = self._read_file_int(os.path.join(CGROUP_V1_CPU_DIR, "cpu.cfs_quota_us"))
111
+ period_us = self._read_file_int(os.path.join(CGROUP_V1_CPU_DIR, "cpu.cfs_period_us"))
112
+ shares = self._read_file_int(os.path.join(CGROUP_V1_CPU_DIR, "cpu.shares"))
113
+
114
+ # Check cpuacct for usage stats if dir exists
115
+ if os.path.exists(CGROUP_V1_CPUACCT_DIR):
116
+ usage_total = self._read_file_int(os.path.join(CGROUP_V1_CPUACCT_DIR, "cpuacct.usage"))
117
+ usage_percpu_str = self._read_file_str(os.path.join(CGROUP_V1_CPUACCT_DIR, "cpuacct.usage_percpu"))
118
+ if usage_percpu_str:
119
+ try:
120
+ self.cgroup_usage_percpu_us = [int(x) for x in usage_percpu_str.split()]
121
+ except ValueError:
122
+ logger.warning("Could not parse cpuacct.usage_percpu")
123
+ if usage_total is not None:
124
+ self.cgroup_usage_total_us = usage_total
125
+
126
+ if quota_us is not None and period_us is not None:
127
+ self.cgroup_type = "v1"
128
+ self.cgroup_period_us = period_us
129
+ self.cgroup_shares = shares # May be None if file doesn't exist/readable
130
+
131
+ if quota_us > 0 and period_us > 0:
132
+ self.cgroup_quota_cores = quota_us / period_us
133
+ logger.info(
134
+ f"Cgroup v1 quota detected: {quota_us} us / {period_us} us = {self.cgroup_quota_cores:.2f}"
135
+ f" effective cores"
136
+ )
137
+ return True
138
+ elif quota_us == -1:
139
+ logger.info("Cgroup v1 quota detected: Unlimited (-1)")
140
+ # No quota limit, but we know it's cgroup v1
141
+ return True # Return true because we identified the type
142
+ else:
143
+ logger.warning(f"Cgroup v1 quota/period values invalid? Quota: {quota_us}, Period: {period_us}")
144
+
145
+ elif shares is not None: # If only shares are readable, still note it's v1
146
+ self.cgroup_type = "v1"
147
+ self.cgroup_shares = shares
148
+ logger.info(f"Cgroup v1 shares detected: {shares} (no quota found)")
149
+ return True
150
+
151
+ return False
152
+
153
+ def _read_cgroup_v2(self) -> bool:
154
+ """Attempts to read Cgroup v2 CPU limits."""
155
+ if not os.path.exists(CGROUP_V2_CPU_FILE):
156
+ logger.debug(f"Cgroup v2 cpu.max file not found: {CGROUP_V2_CPU_FILE}")
157
+ return False
158
+
159
+ logger.debug(f"Checking Cgroup v2 limits in {CGROUP_V2_CPU_FILE}")
160
+ content = self._read_file_str(CGROUP_V2_CPU_FILE)
161
+ if content:
162
+ self.cgroup_type = "v2"
163
+ parts = content.split()
164
+ if len(parts) == 2:
165
+ quota_str, period_str = parts
166
+ try:
167
+ period_us = int(period_str)
168
+ self.cgroup_period_us = period_us
169
+ if quota_str == "max":
170
+ logger.info("Cgroup v2 quota detected: Unlimited ('max')")
171
+ return True # Identified type, no quota limit
172
+ else:
173
+ quota_us = int(quota_str)
174
+ if quota_us > 0 and period_us > 0:
175
+ self.cgroup_quota_cores = quota_us / period_us
176
+ logger.info(
177
+ f"Cgroup v2 quota detected: {quota_us} us / {period_us}"
178
+ f" us = {self.cgroup_quota_cores:.2f} effective cores"
179
+ )
180
+ return True
181
+ else:
182
+ logger.warning(
183
+ f"Cgroup v2 quota/period values invalid? Quota: {quota_us}, Period: {period_us}"
184
+ )
185
+
186
+ except ValueError:
187
+ logger.warning(f"Could not parse Cgroup v2 cpu.max content: '{content}'")
188
+ else:
189
+ logger.warning(f"Unexpected format in Cgroup v2 cpu.max: '{content}'")
190
+ return False
191
+
192
+ @staticmethod
193
+ def _get_os_affinity() -> Optional[int]:
194
+ """Gets CPU count via os.sched_getaffinity."""
195
+ if platform.system() != "Linux":
196
+ logger.debug("os.sched_getaffinity is Linux-specific.")
197
+ return None
198
+ try:
199
+ # sched_getaffinity exists on Linux
200
+ affinity = os.sched_getaffinity(0) # 0 for current process
201
+ count = len(affinity)
202
+ if count > 0:
203
+ logger.info(f"Detected {count} cores via os.sched_getaffinity.")
204
+ return count
205
+ else:
206
+ logger.warning("os.sched_getaffinity(0) returned 0 or empty set.")
207
+ return None
208
+ except AttributeError:
209
+ logger.debug("os.sched_getaffinity not available on this platform/Python version.")
210
+ return None
211
+ except OSError as e:
212
+ logger.warning(f"Could not get affinity: {e}")
213
+ return None
214
+
215
+ @staticmethod
216
+ def _get_os_cpu_counts() -> Tuple[Optional[int], Optional[int]]:
217
+ """Gets logical and physical CPU counts using psutil or os.cpu_count."""
218
+ logical = None
219
+ physical = None
220
+ source = "unknown"
221
+
222
+ if psutil:
223
+ try:
224
+ logical = psutil.cpu_count(logical=True)
225
+ physical = psutil.cpu_count(logical=False)
226
+ source = "psutil"
227
+ if not logical:
228
+ logical = None # Ensure None if psutil returns 0/None
229
+ if not physical:
230
+ physical = None
231
+ except Exception as e:
232
+ logger.warning(f"psutil.cpu_count failed: {e}. Falling back to os.cpu_count.")
233
+ logical, physical = None, None # Reset before fallback
234
+
235
+ if logical is None: # Fallback if psutil failed or not installed
236
+ try:
237
+ logical = os.cpu_count()
238
+ source = "os.cpu_count"
239
+ # os.cpu_count doesn't usually provide physical count, leave as None
240
+ except NotImplementedError:
241
+ logger.error("os.cpu_count() is not implemented on this system.")
242
+ except Exception as e:
243
+ logger.error(f"os.cpu_count() failed: {e}")
244
+
245
+ if logical:
246
+ logger.info(f"Detected {logical} logical cores via {source}.")
247
+ if physical:
248
+ logger.info(f"Detected {physical} physical cores via {source}.")
249
+
250
+ return logical, physical
251
+
252
+ # --- Weighting Function ---
253
+ def _apply_hyperthread_weight(self, logical_limit: int) -> float:
254
+ """
255
+ Applies hyperthreading weight to an integer logical core limit.
256
+
257
+ Parameters
258
+ ----------
259
+ logical_limit : int
260
+ The maximum number of logical cores allowed (e.g., from affinity or OS count).
261
+
262
+ Returns
263
+ -------
264
+ float
265
+ The estimated effective core performance based on weighting.
266
+ Returns logical_limit if weighting cannot be applied.
267
+ """
268
+ P = self.os_physical_cores
269
+ # Weighting requires knowing both physical and logical counts
270
+ if P is not None and P > 0 and self.os_logical_cores is not None:
271
+ # Apply the heuristic: P physical cores + (N-P) hyperthreads * weight
272
+ # Ensure N is capped by the actual number of logical cores available
273
+ N = min(logical_limit, self.os_logical_cores)
274
+
275
+ physical_part = min(N, P)
276
+ hyperthread_part = max(0, N - P)
277
+
278
+ weighted_cores = (physical_part * 1.0) + (hyperthread_part * self.hyperthread_weight)
279
+
280
+ if weighted_cores != N: # Log only if weighting changes the value
281
+ logger.info(
282
+ f"Applying hyperthread weight ({self.hyperthread_weight:.2f}) to "
283
+ f"logical limit {logical_limit} (System: {P}P/{self.os_logical_cores}L): "
284
+ f"Effective weighted cores = {weighted_cores:.2f}"
285
+ )
286
+ else:
287
+ logger.debug(
288
+ f"Hyperthread weighting ({self.hyperthread_weight:.2f}) applied to "
289
+ f"logical limit {logical_limit} (System: {P}P/{self.os_logical_cores}L), "
290
+ f"but result is still {weighted_cores:.2f} (e.g., limit <= physical or weight=1.0)"
291
+ )
292
+ return weighted_cores
293
+ else:
294
+ # Cannot apply weighting
295
+ if self.hyperthread_weight != 1.0: # Only warn if weighting was requested
296
+ if not psutil:
297
+ # Already warned about missing psutil during init
298
+ pass
299
+ elif P is None:
300
+ logger.warning("Cannot apply hyperthread weight: Physical core count not available.")
301
+ else: # L must be missing
302
+ logger.warning("Cannot apply hyperthread weight: Logical core count not available.")
303
+
304
+ logger.debug(f"Skipping hyperthread weight calculation for logical limit {logical_limit}.")
305
+ return float(logical_limit) # Return the original limit as float
306
+
307
+ def _detect(self):
308
+ """Performs the detection sequence and applies weighting."""
309
+ logger.debug("Starting effective core count detection...")
310
+
311
+ # 1. Get OS level counts first
312
+ self.os_logical_cores, self.os_physical_cores = self._get_os_cpu_counts()
313
+
314
+ # 2. Try Cgroup v2
315
+ cgroup_detected = self._read_cgroup_v2()
316
+
317
+ # 3. Try Cgroup v1 if v2 not found or didn't yield quota
318
+ if not cgroup_detected or (self.cgroup_type == "v2" and self.cgroup_quota_cores is None):
319
+ cgroup_detected = self._read_cgroup_v1()
320
+
321
+ # 4. Get OS Affinity
322
+ self.os_sched_affinity_cores = self._get_os_affinity()
323
+
324
+ # --- 5. Determine the RAW Limit (before weighting) ---
325
+ raw_limit = float("inf")
326
+ raw_method = "unknown"
327
+
328
+ # Priority 1: Cgroup Quota
329
+ if self.cgroup_quota_cores is not None and self.cgroup_quota_cores > 0:
330
+ raw_limit = min(raw_limit, self.cgroup_quota_cores)
331
+ raw_method = f"cgroup_{self.cgroup_type}_quota"
332
+ logger.debug(f"Raw limit set by Cgroup Quota: {self.cgroup_quota_cores:.2f}")
333
+
334
+ # Priority 2: Scheduler Affinity
335
+ if self.os_sched_affinity_cores is not None and self.os_sched_affinity_cores > 0:
336
+ affinity_limit = float(self.os_sched_affinity_cores)
337
+ if affinity_limit < raw_limit:
338
+ raw_limit = affinity_limit
339
+ raw_method = "sched_affinity"
340
+ logger.debug(f"Raw limit updated by Sched Affinity: {affinity_limit}")
341
+ elif raw_method.startswith("cgroup"):
342
+ logger.debug(
343
+ f"Sched Affinity limit ({affinity_limit}) not stricter than Cgroup Quota ({raw_limit:.2f})."
344
+ )
345
+
346
+ # Priority 3: OS Logical Cores
347
+ if raw_limit == float("inf"): # If no cgroup quota or affinity was found/applied
348
+ if self.os_logical_cores is not None and self.os_logical_cores > 0:
349
+ raw_limit = float(self.os_logical_cores)
350
+ raw_method = "os_logical_count"
351
+ logger.debug(f"Raw limit set by OS Logical Core count: {self.os_logical_cores}")
352
+ else:
353
+ # Absolute fallback
354
+ logger.warning("Could not determine any CPU core limit. Defaulting raw limit to 1.0.")
355
+ raw_limit = 1.0
356
+ raw_method = "fallback_default"
357
+
358
+ self.raw_limit_value = raw_limit
359
+ self.raw_limit_method = raw_method
360
+ logger.info(f"Raw CPU limit determined: {self.raw_limit_value:.2f} (Method: {self.raw_limit_method})")
361
+
362
+ # --- 6. Apply Weighting (if applicable) ---
363
+ final_effective_cores = raw_limit
364
+ final_method = raw_method
365
+
366
+ # Apply weighting ONLY if the raw limit is NOT from a cgroup quota
367
+ # AND the limit is an integer (or effectively integer) core count
368
+ if not raw_method.startswith("cgroup_"):
369
+ # Check if raw_limit is effectively an integer
370
+ if abs(raw_limit - round(raw_limit)) < 1e-9 and raw_limit > 0:
371
+ logical_limit_int = int(round(raw_limit))
372
+ weighted_value = self._apply_hyperthread_weight(logical_limit_int)
373
+ final_effective_cores = weighted_value
374
+ # Update method if weighting was actually applied and changed the value
375
+ if abs(weighted_value - raw_limit) > 1e-9:
376
+ final_method = f"{raw_method}_weighted"
377
+ else:
378
+ # Keep original method name if weighting didn't change result
379
+ final_method = raw_method
380
+
381
+ else: # Raw limit was affinity/os count but not an integer? Should be rare.
382
+ logger.debug(
383
+ f"Raw limit method '{raw_method}' is not cgroup quota, "
384
+ f"but value {raw_limit:.2f} is not integer. Skipping weighting."
385
+ )
386
+
387
+ elif raw_method.startswith("cgroup_"):
388
+ logger.debug("Raw limit is from Cgroup quota. Using quota value directly (skipping SMT weighting).")
389
+
390
+ self.effective_cores = final_effective_cores
391
+ self.detection_method = final_method # The method for the final value
392
+
393
+ logger.info(
394
+ f"Effective CPU core limit determined: {self.effective_cores:.2f} " f"(Method: {self.detection_method})"
395
+ )
396
+
397
+ def get_effective_cores(self) -> Optional[float]:
398
+ """Returns the primary result: the effective core limit, potentially weighted."""
399
+ return self.effective_cores
400
+
401
+ def get_details(self) -> Dict[str, Any]:
402
+ """Returns a dictionary with all detected information."""
403
+ # Calculate full system weighted potential for info
404
+ os_weighted_cores = None
405
+ if self.os_physical_cores and self.os_logical_cores:
406
+ # Use weighting func with the total logical cores as the limit
407
+ os_weighted_cores = self._apply_hyperthread_weight(self.os_logical_cores)
408
+
409
+ return {
410
+ "effective_cores": self.effective_cores,
411
+ "detection_method": self.detection_method,
412
+ "raw_limit_value": self.raw_limit_value,
413
+ "raw_limit_method": self.raw_limit_method,
414
+ "hyperthread_weight_applied": self.hyperthread_weight,
415
+ "os_logical_cores": self.os_logical_cores,
416
+ "os_physical_cores": self.os_physical_cores,
417
+ "os_weighted_potential": os_weighted_cores, # Full system potential weighted
418
+ "os_sched_affinity_cores": self.os_sched_affinity_cores,
419
+ "cgroup_type": self.cgroup_type,
420
+ "cgroup_quota_cores": self.cgroup_quota_cores,
421
+ "cgroup_period_us": self.cgroup_period_us,
422
+ "cgroup_shares": self.cgroup_shares,
423
+ "cgroup_usage_total_us": self.cgroup_usage_total_us,
424
+ "cgroup_usage_percpu_us": self.cgroup_usage_percpu_us,
425
+ "platform": platform.system(),
426
+ }
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: nv-ingest-api
3
- Version: 2025.5.12.dev20250512
3
+ Version: 2025.5.14.dev20250514
4
4
  Summary: Python module with core document ingestion functions.
5
5
  Author-email: Jeremy Dyer <jdyer@nvidia.com>
6
6
  License: Apache License
@@ -3,7 +3,7 @@ nv_ingest_api/interface/__init__.py,sha256=ltWlfmtCewHSRK4B7DF__QvlSUPuliz58JEcE
3
3
  nv_ingest_api/interface/extract.py,sha256=GyBfXKKTGwSb-y0k0nMiTf4HcCT2E-lxLY4aMYAPeOI,38815
4
4
  nv_ingest_api/interface/mutate.py,sha256=eZkd3sbHEJQiEPJyMbhewlPxQNMnL_Xur15icclnb-U,5934
5
5
  nv_ingest_api/interface/store.py,sha256=aR3Cf19lq9Yo9AHlAy1VVcrOP2dgyN01yYhwxyTprkQ,8207
6
- nv_ingest_api/interface/transform.py,sha256=g6YnFR7TpEU0xNtzCvv6kqnFbuCwQ6vRMjjBxz3G4n4,15815
6
+ nv_ingest_api/interface/transform.py,sha256=NtRmS36LqL4P4vivuiDe1MqKaELeuh-rlO-9kb6skAE,15829
7
7
  nv_ingest_api/interface/utility.py,sha256=oXHV2Miz2BKviQg5vOVfiGSvPs2fKJsPDmnxe3fJL9c,7857
8
8
  nv_ingest_api/internal/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
9
9
  nv_ingest_api/internal/enums/__init__.py,sha256=wQSlVx3T14ZgQAt-EPzEczQusXVW0W8yynnUaFFGE3s,143
@@ -12,32 +12,32 @@ nv_ingest_api/internal/extract/__init__.py,sha256=uLsBITo_XfgbwpzqXUm1IYX6XlZrTf
12
12
  nv_ingest_api/internal/extract/audio/__init__.py,sha256=wQSlVx3T14ZgQAt-EPzEczQusXVW0W8yynnUaFFGE3s,143
13
13
  nv_ingest_api/internal/extract/audio/audio_extraction.py,sha256=L8cK7xB6QTaSx8gsrdyaYHYh0HpW6lycGfduCk7XSMg,5364
14
14
  nv_ingest_api/internal/extract/docx/__init__.py,sha256=HIHfzSig66GT0Uk8qsGBm_f13fKYcPtItBicRUWOOVA,183
15
- nv_ingest_api/internal/extract/docx/docx_extractor.py,sha256=lzZPSa-oHBmLk7ynop5aOLM2rVbYAbzSkPqVlAuT8RE,8319
15
+ nv_ingest_api/internal/extract/docx/docx_extractor.py,sha256=jjbL12F5dtpbqHRbhL0uomSiQ90bcQq3N7M43XYsq34,8356
16
16
  nv_ingest_api/internal/extract/docx/engines/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
17
17
  nv_ingest_api/internal/extract/docx/engines/docxreader_helpers/__init__.py,sha256=uLsBITo_XfgbwpzqXUm1IYX6XlZrTfx6T1cIhdILwG8,140
18
18
  nv_ingest_api/internal/extract/docx/engines/docxreader_helpers/docx_helper.py,sha256=1wkciAxu8lz9WuPuoleJFy2s09ieSzXl1S71F9r0BWA,4385
19
19
  nv_ingest_api/internal/extract/docx/engines/docxreader_helpers/docxreader.py,sha256=CM2yV8lfEw1F1ORAjupD4gyIKX0PDDJrL3nsZ5Mnrgg,31539
20
20
  nv_ingest_api/internal/extract/image/__init__.py,sha256=wQSlVx3T14ZgQAt-EPzEczQusXVW0W8yynnUaFFGE3s,143
21
- nv_ingest_api/internal/extract/image/chart_extractor.py,sha256=Jy_fNmDbZcdni55Fq7vT6NdbYnCyGoyw0J7QjpK-KPc,13315
22
- nv_ingest_api/internal/extract/image/image_extractor.py,sha256=ocLvlVMzO9CQvduxbjupOeKxnt2aq1_CzJCqcdD-loo,8783
23
- nv_ingest_api/internal/extract/image/infographic_extractor.py,sha256=k4Z6JwsoNKsyfmpaQkN_dxJpAv9-RVsRL1BfSWUtXTM,8908
24
- nv_ingest_api/internal/extract/image/table_extractor.py,sha256=80FQef4Dsn6__MNIRCQzFf32s4wUyTOzBFgmA84JZJk,13133
21
+ nv_ingest_api/internal/extract/image/chart_extractor.py,sha256=CkaW8ihPmGMQGrZh0ih14gtEpWuGOJ8InPQfZwpsP2g,13300
22
+ nv_ingest_api/internal/extract/image/image_extractor.py,sha256=4tUWinuFMN3ukWa2tZa2_LtzRiTyUAUCBF6BDkUEvm0,8705
23
+ nv_ingest_api/internal/extract/image/infographic_extractor.py,sha256=yc9b2q_Ea08CEVclZ47UkpU4F7qlakPuU3UV9P013W0,8903
24
+ nv_ingest_api/internal/extract/image/table_extractor.py,sha256=ivHaJxYjeHvFM1PZIpxVabPadxtcTsu51j398ZjMhD4,13123
25
25
  nv_ingest_api/internal/extract/image/image_helpers/__init__.py,sha256=wQSlVx3T14ZgQAt-EPzEczQusXVW0W8yynnUaFFGE3s,143
26
- nv_ingest_api/internal/extract/image/image_helpers/common.py,sha256=NU8TEU9p2aIL_KppyhtTgRUPqD4MsanxATG19rKhGjw,15032
26
+ nv_ingest_api/internal/extract/image/image_helpers/common.py,sha256=P8rcl4YPyeWeMJg7u1yejD3k9EnDVEbJgfYEnJ4WO5c,15025
27
27
  nv_ingest_api/internal/extract/pdf/__init__.py,sha256=wQSlVx3T14ZgQAt-EPzEczQusXVW0W8yynnUaFFGE3s,143
28
28
  nv_ingest_api/internal/extract/pdf/pdf_extractor.py,sha256=CxtWaD6mql9MEqSdk2CfSQ9T-Bn87beBkCOuGGjxGt8,2934
29
29
  nv_ingest_api/internal/extract/pdf/engines/__init__.py,sha256=u4GnAZmDKRl0RwYGIRiozIRw70Kybw3A72-lcKFeoTI,582
30
30
  nv_ingest_api/internal/extract/pdf/engines/adobe.py,sha256=VT0dEqkU-y2uGkaCqxtKYov_Q8R1028UQVBchgMLca4,17466
31
31
  nv_ingest_api/internal/extract/pdf/engines/llama.py,sha256=PpKTqS8jGHBV6mKLGZWwjpfT8ga6Fy8ffrvL-gPAf2c,8182
32
- nv_ingest_api/internal/extract/pdf/engines/nemoretriever.py,sha256=F8hZdqYRr0CTNeIRJIG6H__CCh_3GWQ4_ySCM0WPLPU,22913
33
- nv_ingest_api/internal/extract/pdf/engines/pdfium.py,sha256=jUcquCWbyQPNCHZLaV-XnVqUFsajX4YxVFCiWWwD4QQ,22367
32
+ nv_ingest_api/internal/extract/pdf/engines/nemoretriever.py,sha256=Uqj1NH7yWga9P6_vCzgny1WKALfF--UdAaGHUF8K_aQ,22926
33
+ nv_ingest_api/internal/extract/pdf/engines/pdfium.py,sha256=fDbrZwJ-lgeHYOq107WXehzdSvyF8zEDza_9UkDm5aE,22360
34
34
  nv_ingest_api/internal/extract/pdf/engines/tika.py,sha256=6GyR2l6EsgNZl9jnYDXLeKNK9Fj2Mw9y2UWDq-eSkOc,3169
35
35
  nv_ingest_api/internal/extract/pdf/engines/unstructured_io.py,sha256=jrv2B4VZAH4PevAQrFz965qz8UyXq3rViiOTbGLejec,14908
36
36
  nv_ingest_api/internal/extract/pdf/engines/pdf_helpers/__init__.py,sha256=Jk3wrQ2CZs167juvEZ-uV6qXWQjR08hhIu8otk2MWj4,4931
37
37
  nv_ingest_api/internal/extract/pptx/__init__.py,sha256=HIHfzSig66GT0Uk8qsGBm_f13fKYcPtItBicRUWOOVA,183
38
- nv_ingest_api/internal/extract/pptx/pptx_extractor.py,sha256=15gU7NtTmTwr1ml679gABQABXI463ZKoqPOh31EK98s,7867
38
+ nv_ingest_api/internal/extract/pptx/pptx_extractor.py,sha256=vTGWaR0YXG4gLM0lYXFQ83F2nlU__mmOmXsA0jYlZ70,7871
39
39
  nv_ingest_api/internal/extract/pptx/engines/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
40
- nv_ingest_api/internal/extract/pptx/engines/pptx_helper.py,sha256=tmUXw4H35o6dMcsS73Q6L_zd-qDqwCshTGfCv_V610c,28435
40
+ nv_ingest_api/internal/extract/pptx/engines/pptx_helper.py,sha256=Lg2I1Zq-WJagsZibgyn__8T-M86BjkqAiXWNta9X_EU,29430
41
41
  nv_ingest_api/internal/mutate/__init__.py,sha256=wQSlVx3T14ZgQAt-EPzEczQusXVW0W8yynnUaFFGE3s,143
42
42
  nv_ingest_api/internal/mutate/deduplicate.py,sha256=hmvTTGevpCtlkM_wVZSoc8-Exr6rUJwqLjoEnbPcPzY,3849
43
43
  nv_ingest_api/internal/mutate/filter.py,sha256=H-hOTBVP-zLpvQr-FoGIJKxkhtj4l_sZ9V2Fgu3rTEM,5183
@@ -46,7 +46,7 @@ nv_ingest_api/internal/primitives/control_message_task.py,sha256=nWVB3QsP6p8BKwH
46
46
  nv_ingest_api/internal/primitives/ingest_control_message.py,sha256=rvipBiiUaHuRhupFCFDCG8rv0PylSJibCiJ7rDeb98A,8514
47
47
  nv_ingest_api/internal/primitives/nim/__init__.py,sha256=i_i_fBR2EcRCh2Y19DF6GM3s_Q0VPgo_thPnhEIJUyg,266
48
48
  nv_ingest_api/internal/primitives/nim/default_values.py,sha256=W92XjfyeC6uuVxut6J7p00x1kpNsnXIDb97gSVytZJk,380
49
- nv_ingest_api/internal/primitives/nim/nim_client.py,sha256=lEP-PBp921--pxQzeVxxafR2BhONpli2Ad8oa0XLR4Y,14920
49
+ nv_ingest_api/internal/primitives/nim/nim_client.py,sha256=pvNxwMgNS7lFjXvLgRVUrL6FdXDGkfGnOGQh9WrpYzs,14858
50
50
  nv_ingest_api/internal/primitives/nim/nim_model_interface.py,sha256=wMEgoi79YQn_4338MVemkeZgM1J-vnz0aZWpvqDhib4,2392
51
51
  nv_ingest_api/internal/primitives/nim/model_interface/__init__.py,sha256=wQSlVx3T14ZgQAt-EPzEczQusXVW0W8yynnUaFFGE3s,143
52
52
  nv_ingest_api/internal/primitives/nim/model_interface/cached.py,sha256=b1HX-PY1ExW5V6pXC1ZiHdobeG_BmbPr3rBbVJef13s,11003
@@ -56,13 +56,13 @@ nv_ingest_api/internal/primitives/nim/model_interface/helpers.py,sha256=x35a9AyT
56
56
  nv_ingest_api/internal/primitives/nim/model_interface/nemoretriever_parse.py,sha256=MFWPqMTXs_MZG3ripRR21o7f_mVeoE46Q10yvJ8KNr0,7023
57
57
  nv_ingest_api/internal/primitives/nim/model_interface/paddle.py,sha256=rSUPwl5XOrqneoS6aKhatVjrNBg_LhP3nwUWS_aTwz0,17950
58
58
  nv_ingest_api/internal/primitives/nim/model_interface/parakeet.py,sha256=OYg4AGki_wm--Np9VlSm0eZC-r54GbDOISbe9v0B9fw,12967
59
- nv_ingest_api/internal/primitives/nim/model_interface/text_embedding.py,sha256=8ld_if6N3pe3W7NA8Xwm-ndCq53s_v3LmmoyQHnxxEo,5071
59
+ nv_ingest_api/internal/primitives/nim/model_interface/text_embedding.py,sha256=lFhppNqrq5X_fzbCWKphvZQMzaJd3gHrkWsyJORzFrU,5010
60
60
  nv_ingest_api/internal/primitives/nim/model_interface/vlm.py,sha256=qJ382PU1ZrIM-SR3cqIhtY_W2rmHec2HIa2aUB2SvaU,6031
61
- nv_ingest_api/internal/primitives/nim/model_interface/yolox.py,sha256=exN0pKTBXd3pb5kKP96jinTYisgz1Y7EyWmWUuDNnCY,49312
61
+ nv_ingest_api/internal/primitives/nim/model_interface/yolox.py,sha256=uYXqdvqgkyS4Yfr9ZoikRDX4e94OV3ch3Xhv3JVg-3s,49581
62
62
  nv_ingest_api/internal/primitives/tracing/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
63
63
  nv_ingest_api/internal/primitives/tracing/latency.py,sha256=5kVTeYRbRdTlT_aI4MeS20N_S7mqCcLqZR6YHtxhXkY,2215
64
64
  nv_ingest_api/internal/primitives/tracing/logging.py,sha256=SSzIgS7afLH-e1C7VagYDmkkA6rTXmQ-bmtLjoEguhg,3851
65
- nv_ingest_api/internal/primitives/tracing/tagging.py,sha256=RC-sF6-w8YBb74nZ2JjEnkCBAxBIamhIHdn1ksxDtRI,7577
65
+ nv_ingest_api/internal/primitives/tracing/tagging.py,sha256=O5dD7Z7j43nrjqn0AxhxOPm5zIyMFo0akxaWU_FguAM,7866
66
66
  nv_ingest_api/internal/schemas/__init__.py,sha256=wQSlVx3T14ZgQAt-EPzEczQusXVW0W8yynnUaFFGE3s,143
67
67
  nv_ingest_api/internal/schemas/extract/__init__.py,sha256=wQSlVx3T14ZgQAt-EPzEczQusXVW0W8yynnUaFFGE3s,143
68
68
  nv_ingest_api/internal/schemas/extract/extract_audio_schema.py,sha256=VVppZgV1lnyJCTfADexzoj3V0lOSq3t6Dw_6VhIxZ7k,3771
@@ -70,7 +70,7 @@ nv_ingest_api/internal/schemas/extract/extract_chart_schema.py,sha256=mNsv628osl
70
70
  nv_ingest_api/internal/schemas/extract/extract_docx_schema.py,sha256=M2N7WjMNvSemHcJHWeNUD_kFG0wC5VE2W3K6SVrJqvA,3761
71
71
  nv_ingest_api/internal/schemas/extract/extract_image_schema.py,sha256=GC4xV8Z9TPLOuxlEtf2fbklSSp8ETGMrDpZgMQ02UwA,3766
72
72
  nv_ingest_api/internal/schemas/extract/extract_infographic_schema.py,sha256=_ptTrxN74tpasJ0aQZgaXEUYFe298PJGbGNk6gyeM94,3992
73
- nv_ingest_api/internal/schemas/extract/extract_pdf_schema.py,sha256=ZBCppSNmnr4jrPl2-R_j0RBw2L4ej_r0hVdFn02AG18,6569
73
+ nv_ingest_api/internal/schemas/extract/extract_pdf_schema.py,sha256=G9g1lEORmryUWTzDyZ0vHAuPnVMK7VaRx0E4xzmAw3Q,6589
74
74
  nv_ingest_api/internal/schemas/extract/extract_pptx_schema.py,sha256=5dT0kv-Mmpe5KW-BZc1JOW3rUlgzVZI0rpB79NWytmw,3761
75
75
  nv_ingest_api/internal/schemas/extract/extract_table_schema.py,sha256=SXBYDU3V97-pPOLfhFmXQveP_awARXP7k1aGcMMEJtU,3951
76
76
  nv_ingest_api/internal/schemas/message_brokers/__init__.py,sha256=uLsBITo_XfgbwpzqXUm1IYX6XlZrTfx6T1cIhdILwG8,140
@@ -79,7 +79,7 @@ nv_ingest_api/internal/schemas/message_brokers/request_schema.py,sha256=LZX_wXDx
79
79
  nv_ingest_api/internal/schemas/message_brokers/response_schema.py,sha256=4b275HlzBSzpmuE2wdoeaGKPCdKki3wuWldtRIfrj8w,727
80
80
  nv_ingest_api/internal/schemas/meta/__init__.py,sha256=wQSlVx3T14ZgQAt-EPzEczQusXVW0W8yynnUaFFGE3s,143
81
81
  nv_ingest_api/internal/schemas/meta/base_model_noext.py,sha256=8hXU1uuiqZ6t8EsoZ8vlC5EFf2zSZrKEX133FcfZMwI,316
82
- nv_ingest_api/internal/schemas/meta/ingest_job_schema.py,sha256=4Ylcz5CDJXYUKd79-CnyrG7mI463jLd4Uachy7uTRVE,7735
82
+ nv_ingest_api/internal/schemas/meta/ingest_job_schema.py,sha256=nn2cExuU9AmrOMGFMN1RmBzzLaPtLMxs0cJai-cu9w8,7753
83
83
  nv_ingest_api/internal/schemas/meta/metadata_schema.py,sha256=_FAE-yeb01hxq05SXrV3NLM4DPUPSfnIbH6ZMliWsEg,6625
84
84
  nv_ingest_api/internal/schemas/mutate/__init__.py,sha256=wQSlVx3T14ZgQAt-EPzEczQusXVW0W8yynnUaFFGE3s,143
85
85
  nv_ingest_api/internal/schemas/mutate/mutate_image_dedup_schema.py,sha256=k1JOdlPPpsipc0XhHf-9YxJ_-W0HvpVE1ZhYmr7fzj0,395
@@ -87,7 +87,7 @@ nv_ingest_api/internal/schemas/store/__init__.py,sha256=wQSlVx3T14ZgQAt-EPzEczQu
87
87
  nv_ingest_api/internal/schemas/store/store_embedding_schema.py,sha256=tdKeiraim9CDL9htgp4oUSCoPMoO5PrHBnlXqDyCpMw,956
88
88
  nv_ingest_api/internal/schemas/store/store_image_schema.py,sha256=p2LGij9i6sG6RYmsfdiQOiWIc2j-POjxYrNuMrp3ELU,1010
89
89
  nv_ingest_api/internal/schemas/transform/__init__.py,sha256=wQSlVx3T14ZgQAt-EPzEczQusXVW0W8yynnUaFFGE3s,143
90
- nv_ingest_api/internal/schemas/transform/transform_image_caption_schema.py,sha256=ORXAowdjxBUyfkw95eg2F82DRFqEsuV9PwNKVBulcmY,568
90
+ nv_ingest_api/internal/schemas/transform/transform_image_caption_schema.py,sha256=xLxXJsm8QeaL7KPe7m5sP2rd_AuNRMX29rdeVdoei3Y,582
91
91
  nv_ingest_api/internal/schemas/transform/transform_image_filter_schema.py,sha256=31ThI5fr0yyENeJeE1xMAA-pxk1QVJLwM842zMate_k,429
92
92
  nv_ingest_api/internal/schemas/transform/transform_text_embedding_schema.py,sha256=vlTjAj1T78QkQXYkC83vZQKTW04x7PeoukEzmkam7sY,732
93
93
  nv_ingest_api/internal/schemas/transform/transform_text_splitter_schema.py,sha256=iM1sUklcZVA6fdeEWRsMqV_ls-E4UcUsGwewv0JJRi4,759
@@ -95,8 +95,8 @@ nv_ingest_api/internal/store/__init__.py,sha256=wQSlVx3T14ZgQAt-EPzEczQusXVW0W8y
95
95
  nv_ingest_api/internal/store/embed_text_upload.py,sha256=maxb4FPsBvWgvlrjAPEBlRZEFdJX5NxPG-p8kUbzV7I,9898
96
96
  nv_ingest_api/internal/store/image_upload.py,sha256=J5EHNng7Z5I6M4f3UcbniKQB29Scr3Qe05wsBpaVXds,9653
97
97
  nv_ingest_api/internal/transform/__init__.py,sha256=wQSlVx3T14ZgQAt-EPzEczQusXVW0W8yynnUaFFGE3s,143
98
- nv_ingest_api/internal/transform/caption_image.py,sha256=0ILCG2F8ESqKtZiPUM-6F1BHUflFZ76Dzi2GNzkE-lU,8517
99
- nv_ingest_api/internal/transform/embed_text.py,sha256=AvcEfqTjd0OOtQ2VuycoPlv7qGbyvSTbXxfJ8dkFGr0,15963
98
+ nv_ingest_api/internal/transform/caption_image.py,sha256=RYL_b26zfaRlbHz0XvLw9HwaMlXpNhr7gayjxGzdALQ,8545
99
+ nv_ingest_api/internal/transform/embed_text.py,sha256=F8kg-WXihtuUMwDQUUYjnfGDCdQp1Mkd-jeThOiJT0s,16507
100
100
  nv_ingest_api/internal/transform/split_text.py,sha256=y6NYRkCEVpVsDu-AqrKx2D6JPp1vwxclw9obNZNJIIs,6561
101
101
  nv_ingest_api/util/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
102
102
  nv_ingest_api/util/control_message/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -111,18 +111,18 @@ nv_ingest_api/util/converters/type_mappings.py,sha256=5TVXRyU6BlQvFOdqknEuQw3ss4
111
111
  nv_ingest_api/util/detectors/__init__.py,sha256=HIHfzSig66GT0Uk8qsGBm_f13fKYcPtItBicRUWOOVA,183
112
112
  nv_ingest_api/util/detectors/language.py,sha256=TvzcESYY0bn0U4aLY6GjB4VaCWA6XrXxAGZbVzHTMuE,965
113
113
  nv_ingest_api/util/exception_handlers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
114
- nv_ingest_api/util/exception_handlers/converters.py,sha256=MYl7b-_V1g661EVDgaep9-nO3A6ka9uyV6pKoN0pEDA,2223
115
- nv_ingest_api/util/exception_handlers/decorators.py,sha256=F1E_xIpNY5S9TvBEZcsbli88iI5vHrcT1PGmPu5KwcE,8865
114
+ nv_ingest_api/util/exception_handlers/converters.py,sha256=fX64p5GeoHOPbGccR2JrsKQLa0Ge9Mmi2W-9mLnVVl8,2221
115
+ nv_ingest_api/util/exception_handlers/decorators.py,sha256=ywaqekT9g2gfDH8my7JTJdcnDYbguSzWfAQ6TVxqQvE,21459
116
116
  nv_ingest_api/util/exception_handlers/detectors.py,sha256=Q1O-QOzsShPpNian2lawXVAOCstIE7nSytNw516hTg8,2288
117
117
  nv_ingest_api/util/exception_handlers/pdf.py,sha256=FUC41QJKDCfiTv-1c1_8Isxwt1xMxDZw9BN8JLEJKBw,3654
118
118
  nv_ingest_api/util/exception_handlers/schemas.py,sha256=NJngVNf9sk5Uz6CFFfkNO_LBAMt2QZUcMYGxX64oYRk,2179
119
119
  nv_ingest_api/util/image_processing/__init__.py,sha256=Jiy8C1ZuSrNb_eBM1ZTV9IKFIsnjhZi6Ku3JJhVLimA,104
120
120
  nv_ingest_api/util/image_processing/clustering.py,sha256=sUGlZI4cx1q8h4Pns1N9JVpdfSM2BOH8zRmn9QFCtzI,9236
121
- nv_ingest_api/util/image_processing/processing.py,sha256=dHyoxoI2btKT04ODJK0ChB8MR6eCnZ0ZLpbEQowCb5A,6561
121
+ nv_ingest_api/util/image_processing/processing.py,sha256=LSoDDEmahr7a-qSS12McVcowRe3dOrAZwa1h-PD_JPQ,6554
122
122
  nv_ingest_api/util/image_processing/table_and_chart.py,sha256=bxOu9PZYkG_WFCDGw_JLaO60S2pDSN8EOWK3xkIwr2A,14376
123
123
  nv_ingest_api/util/image_processing/transforms.py,sha256=Kz9hrizV314Hy7cRCYK9ZmhmBbVUOZ_z0HEpzZYcslQ,14081
124
124
  nv_ingest_api/util/logging/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
125
- nv_ingest_api/util/logging/configuration.py,sha256=GFO7Fofco00O3DbovXDNqInVKpFuvS0i_-WT-GvxKlE,814
125
+ nv_ingest_api/util/logging/configuration.py,sha256=XUo7yON9V8IDPfN3x8RBwpZ3Gv4zrRq8QwsByf4dGNE,981
126
126
  nv_ingest_api/util/message_brokers/__init__.py,sha256=wQSlVx3T14ZgQAt-EPzEczQusXVW0W8yynnUaFFGE3s,143
127
127
  nv_ingest_api/util/message_brokers/simple_message_broker/__init__.py,sha256=WaQ3CWIpIKWEivT5kL-bkmzcSQKLGFNFHdXHUJjqZFs,325
128
128
  nv_ingest_api/util/message_brokers/simple_message_broker/broker.py,sha256=h9Q4q_alXGxCLNlJUZPan46q8fJ7B72sQy2eBfHdk6I,17265
@@ -134,19 +134,21 @@ nv_ingest_api/util/multi_processing/__init__.py,sha256=4fojP8Rp_5Hu1YAkqGylqTyEZ
134
134
  nv_ingest_api/util/multi_processing/mp_pool_singleton.py,sha256=dTfP82DgGPaXEJH3jywTO8rNlLZUniD4FFzwv84_giE,7372
135
135
  nv_ingest_api/util/nim/__init__.py,sha256=UqbiXFCqjWcjNvoduXd_0gOUOGBT8JvppiYHOmMyneA,1775
136
136
  nv_ingest_api/util/pdf/__init__.py,sha256=uLsBITo_XfgbwpzqXUm1IYX6XlZrTfx6T1cIhdILwG8,140
137
- nv_ingest_api/util/pdf/pdfium.py,sha256=puqw9lYloNJwjdx9X63TQ9u6vA6FRJqmmPiaquUm3HM,15767
137
+ nv_ingest_api/util/pdf/pdfium.py,sha256=Ch9Gh5jRLcBr3stjCckqWwTUL-T0sI50PlQnZHo_9NA,15761
138
138
  nv_ingest_api/util/schema/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
139
139
  nv_ingest_api/util/schema/schema_validator.py,sha256=H0yZ_i_HZaiBRUCGmTBfRB9-hURhVqyd10aS_ynM1_0,321
140
140
  nv_ingest_api/util/service_clients/__init__.py,sha256=wQSlVx3T14ZgQAt-EPzEczQusXVW0W8yynnUaFFGE3s,143
141
141
  nv_ingest_api/util/service_clients/client_base.py,sha256=eCOeq3Rr6Xnnsh-oHszYlQTOffQyzsT8s43V4V8H_h8,2716
142
142
  nv_ingest_api/util/service_clients/kafka/__init__.py,sha256=uLsBITo_XfgbwpzqXUm1IYX6XlZrTfx6T1cIhdILwG8,140
143
143
  nv_ingest_api/util/service_clients/redis/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
144
- nv_ingest_api/util/service_clients/redis/redis_client.py,sha256=Xa9eeI3kfDBDlLsG5AX-MqbJsI8Pt0geNpuIwmzoEZQ,37419
144
+ nv_ingest_api/util/service_clients/redis/redis_client.py,sha256=3NLecvIvVN1v-sA7d7G-_f6qJVZyfJE2H8Iu5KG3Aew,37417
145
145
  nv_ingest_api/util/service_clients/rest/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
146
- nv_ingest_api/util/service_clients/rest/rest_client.py,sha256=K8hzIV4EcV-97G0SboY6LHMhWLx87l9wCI2CdWw9W_E,21734
146
+ nv_ingest_api/util/service_clients/rest/rest_client.py,sha256=dZ-jrk7IK7oNtHoXFSNTf7psoOpLREiLN5ezpHFW0HI,21732
147
147
  nv_ingest_api/util/string_processing/__init__.py,sha256=mkwHthyS-IILcLcL1tJYeF6mpqX3pxEw5aUzDGjTSeU,1411
148
- nv_ingest_api-2025.5.12.dev20250512.dist-info/licenses/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
149
- nv_ingest_api-2025.5.12.dev20250512.dist-info/METADATA,sha256=rdw7szDF5gzTKuYwhI7F3ZdLRpw8RBXo7WuE7p1j6rc,13889
150
- nv_ingest_api-2025.5.12.dev20250512.dist-info/WHEEL,sha256=DnLRTWE75wApRYVsjgc6wsVswC54sMSJhAEd4xhDpBk,91
151
- nv_ingest_api-2025.5.12.dev20250512.dist-info/top_level.txt,sha256=abjYMlTJGoG5tOdfIB-IWvLyKclw6HLaRSc8MxX4X6I,14
152
- nv_ingest_api-2025.5.12.dev20250512.dist-info/RECORD,,
148
+ nv_ingest_api/util/system/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
149
+ nv_ingest_api/util/system/hardware_info.py,sha256=JGxBbF3kvgYbwhhWvtjNzPxVZQV_npmsordAioBrglo,19252
150
+ nv_ingest_api-2025.5.14.dev20250514.dist-info/licenses/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
151
+ nv_ingest_api-2025.5.14.dev20250514.dist-info/METADATA,sha256=ovvmVcwxqjyt5DQyPur4gOwFTmMRNiB-0S0lVN9v9OU,13889
152
+ nv_ingest_api-2025.5.14.dev20250514.dist-info/WHEEL,sha256=QZxptf4Y1BKFRCEDxD4h2V0mBFQOVFLFEpvxHmIs52A,91
153
+ nv_ingest_api-2025.5.14.dev20250514.dist-info/top_level.txt,sha256=abjYMlTJGoG5tOdfIB-IWvLyKclw6HLaRSc8MxX4X6I,14
154
+ nv_ingest_api-2025.5.14.dev20250514.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (80.4.0)
2
+ Generator: setuptools (80.6.0)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5