nv-ingest 2025.7.8.dev20250708__py3-none-any.whl → 2025.7.10.dev20250710__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 might be problematic. Click here for more details.
- nv_ingest/framework/orchestration/ray/primitives/pipeline_topology.py +65 -303
- nv_ingest/framework/orchestration/ray/primitives/ray_pipeline.py +438 -163
- nv_ingest/framework/orchestration/ray/primitives/ray_stat_collector.py +30 -3
- nv_ingest/framework/orchestration/ray/stages/meta/ray_actor_stage_base.py +159 -230
- nv_ingest/framework/orchestration/ray/stages/sources/message_broker_task_source.py +27 -9
- nv_ingest/framework/orchestration/ray/util/pipeline/pid_controller.py +7 -72
- nv_ingest/framework/orchestration/ray/util/pipeline/pipeline_runners.py +2 -1
- nv_ingest/framework/orchestration/ray/util/pipeline/stage_builders.py +22 -12
- {nv_ingest-2025.7.8.dev20250708.dist-info → nv_ingest-2025.7.10.dev20250710.dist-info}/METADATA +1 -1
- {nv_ingest-2025.7.8.dev20250708.dist-info → nv_ingest-2025.7.10.dev20250710.dist-info}/RECORD +13 -13
- {nv_ingest-2025.7.8.dev20250708.dist-info → nv_ingest-2025.7.10.dev20250710.dist-info}/WHEEL +0 -0
- {nv_ingest-2025.7.8.dev20250708.dist-info → nv_ingest-2025.7.10.dev20250710.dist-info}/licenses/LICENSE +0 -0
- {nv_ingest-2025.7.8.dev20250708.dist-info → nv_ingest-2025.7.10.dev20250710.dist-info}/top_level.txt +0 -0
|
@@ -6,9 +6,7 @@ import logging
|
|
|
6
6
|
import math
|
|
7
7
|
from dataclasses import dataclass
|
|
8
8
|
|
|
9
|
-
import
|
|
10
|
-
from collections import deque
|
|
11
|
-
from typing import Dict, Any, Deque, List, Tuple, Optional
|
|
9
|
+
from typing import Dict, Any, List, Tuple, Optional
|
|
12
10
|
|
|
13
11
|
from nv_ingest_api.util.system.hardware_info import SystemResourceProbe
|
|
14
12
|
|
|
@@ -16,7 +14,7 @@ logging.basicConfig(level=logging.INFO)
|
|
|
16
14
|
logger = logging.getLogger(__name__)
|
|
17
15
|
|
|
18
16
|
# --- Constants ---
|
|
19
|
-
DEFAULT_STAGE_COST_MB =
|
|
17
|
+
DEFAULT_STAGE_COST_MB = 5_000.0 # Fallback memory cost
|
|
20
18
|
|
|
21
19
|
|
|
22
20
|
@dataclass
|
|
@@ -46,9 +44,7 @@ class PIDController:
|
|
|
46
44
|
kp: float,
|
|
47
45
|
ki: float,
|
|
48
46
|
kd: float, # Currently unused in delta calculation
|
|
49
|
-
stage_cost_estimates: Dict[str, int], # Static estimates (MB)
|
|
50
47
|
target_queue_depth: int = 0,
|
|
51
|
-
window_size: int = 10,
|
|
52
48
|
penalty_factor: float = 0.0005,
|
|
53
49
|
error_boost_factor: float = 1.5,
|
|
54
50
|
):
|
|
@@ -64,16 +60,10 @@ class PIDController:
|
|
|
64
60
|
kd : float
|
|
65
61
|
Derivative gain. Reacts to the rate of change of the error.
|
|
66
62
|
(Currently set to 0 in internal calculations).
|
|
67
|
-
stage_cost_estimates : Dict[str, int]
|
|
68
|
-
Static estimated memory cost (in MB) per replica for each stage.
|
|
69
|
-
Used as a fallback and minimum for dynamic estimates.
|
|
70
63
|
target_queue_depth : int, optional
|
|
71
64
|
Default target queue depth for stages if not specified in metrics,
|
|
72
65
|
by default 0. The PID loop tries to drive the queue depth towards
|
|
73
66
|
this value.
|
|
74
|
-
window_size : int, optional
|
|
75
|
-
Number of recent samples used for dynamic memory cost estimation
|
|
76
|
-
per replica, by default 10.
|
|
77
67
|
penalty_factor : float, optional
|
|
78
68
|
Multiplier applied to the number of consecutive idle cycles for a
|
|
79
69
|
stage. The resulting penalty effectively lowers the target queue
|
|
@@ -90,16 +80,11 @@ class PIDController:
|
|
|
90
80
|
self.error_boost_factor = error_boost_factor
|
|
91
81
|
|
|
92
82
|
# Per-Stage State
|
|
93
|
-
self.stage_cost_estimates = {
|
|
94
|
-
name: float(max(cost, 1.0)) for name, cost in stage_cost_estimates.items() # Ensure float and min 1MB
|
|
95
|
-
}
|
|
96
83
|
self.integral_error: Dict[str, float] = {}
|
|
97
84
|
self.prev_error: Dict[str, float] = {}
|
|
98
|
-
self.memory_history: Dict[str, Deque[float]] = {} # Per-replica memory history (MB)
|
|
99
85
|
self.idle_cycles: Dict[str, int] = {}
|
|
100
86
|
|
|
101
87
|
# Per-Stage Config
|
|
102
|
-
self.window_size = window_size
|
|
103
88
|
self.penalty_factor = penalty_factor
|
|
104
89
|
|
|
105
90
|
# --- Private Methods ---
|
|
@@ -110,48 +95,7 @@ class PIDController:
|
|
|
110
95
|
logger.debug(f"[PID-{stage}] Initializing state.")
|
|
111
96
|
self.integral_error[stage] = 0.0
|
|
112
97
|
self.prev_error[stage] = 0.0
|
|
113
|
-
self.memory_history[stage] = deque(maxlen=self.window_size)
|
|
114
98
|
self.idle_cycles[stage] = 0
|
|
115
|
-
# Ensure static cost estimate exists, provide default if missing
|
|
116
|
-
if stage not in self.stage_cost_estimates:
|
|
117
|
-
logger.warning(f"[PID-{stage}] Missing static cost estimate. Using default {DEFAULT_STAGE_COST_MB}MB.")
|
|
118
|
-
self.stage_cost_estimates[stage] = DEFAULT_STAGE_COST_MB
|
|
119
|
-
|
|
120
|
-
def _get_conservative_cost_estimate(self, stage: str) -> float:
|
|
121
|
-
"""
|
|
122
|
-
Estimates dynamic memory cost, using static estimate as a floor/max.
|
|
123
|
-
|
|
124
|
-
Returns the maximum of the recent average dynamic cost per replica
|
|
125
|
-
and the static estimate provided during initialization. This provides
|
|
126
|
-
a conservative value for resource projection.
|
|
127
|
-
|
|
128
|
-
Parameters
|
|
129
|
-
----------
|
|
130
|
-
stage : str
|
|
131
|
-
The name of the stage.
|
|
132
|
-
|
|
133
|
-
Returns
|
|
134
|
-
-------
|
|
135
|
-
float
|
|
136
|
-
The conservative memory cost estimate in MB per replica.
|
|
137
|
-
"""
|
|
138
|
-
static_cost = self.stage_cost_estimates.get(stage, DEFAULT_STAGE_COST_MB)
|
|
139
|
-
memory_samples = self.memory_history.get(stage)
|
|
140
|
-
|
|
141
|
-
# Use numpy.mean if samples exist, otherwise fallback to static
|
|
142
|
-
if memory_samples and len(memory_samples) > 0:
|
|
143
|
-
try:
|
|
144
|
-
dynamic_avg = float(np.mean(memory_samples))
|
|
145
|
-
# Use max(dynamic, static) for projection, enforce min 1MB
|
|
146
|
-
cost = max(dynamic_avg, static_cost, 1.0)
|
|
147
|
-
return cost
|
|
148
|
-
except Exception as e:
|
|
149
|
-
logger.error(
|
|
150
|
-
f"[PID-{stage}] Error calculating mean of memory samples: {e}. Falling back to static cost.",
|
|
151
|
-
exc_info=False,
|
|
152
|
-
)
|
|
153
|
-
return max(static_cost, 1.0) # Fallback safely
|
|
154
|
-
return max(static_cost, 1.0) # Fallback to static estimate if no history
|
|
155
99
|
|
|
156
100
|
# --- Public Method ---
|
|
157
101
|
|
|
@@ -167,8 +111,8 @@ class PIDController:
|
|
|
167
111
|
----------
|
|
168
112
|
stage_metrics : Dict[str, Dict[str, Any]]
|
|
169
113
|
Dictionary mapping stage names to their current metrics. Expected keys
|
|
170
|
-
per stage: 'replicas', 'queue_depth'
|
|
171
|
-
'target_queue_depth', 'processing', 'min_replicas', 'max_replicas'.
|
|
114
|
+
per stage: 'replicas', 'queue_depth', 'ema_memory_per_replica'.
|
|
115
|
+
Optional: 'target_queue_depth', 'processing', 'min_replicas', 'max_replicas'.
|
|
172
116
|
|
|
173
117
|
Returns
|
|
174
118
|
-------
|
|
@@ -185,16 +129,9 @@ class PIDController:
|
|
|
185
129
|
|
|
186
130
|
# --- Extract data and calculate current memory state ---
|
|
187
131
|
replicas = metrics.get("replicas", 0)
|
|
188
|
-
#
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
# Calculate memory per replica safely (avoid division by zero)
|
|
192
|
-
current_memory_per_replica = memory_usage / max(replicas, 1.0)
|
|
193
|
-
|
|
194
|
-
# Update memory history *before* calculating the conservative cost for *this* cycle's proposal
|
|
195
|
-
self.memory_history[stage].append(current_memory_per_replica)
|
|
196
|
-
# Recalculate conservative cost *after* updating history for the proposal
|
|
197
|
-
conservative_cost = self._get_conservative_cost_estimate(stage)
|
|
132
|
+
# The conservative cost is now the EMA memory passed in from the stats collector.
|
|
133
|
+
# Fallback to a default if not present.
|
|
134
|
+
conservative_cost = metrics.get("ema_memory_per_replica", DEFAULT_STAGE_COST_MB)
|
|
198
135
|
|
|
199
136
|
# --- PID Calculation ---
|
|
200
137
|
queue_depth = metrics.get("queue_depth", 0)
|
|
@@ -296,7 +233,6 @@ class ResourceConstraintManager:
|
|
|
296
233
|
self,
|
|
297
234
|
max_replicas: int,
|
|
298
235
|
memory_threshold: int,
|
|
299
|
-
estimated_edge_cost_mb: int,
|
|
300
236
|
memory_safety_buffer_fraction: float,
|
|
301
237
|
):
|
|
302
238
|
"""
|
|
@@ -309,7 +245,6 @@ class ResourceConstraintManager:
|
|
|
309
245
|
|
|
310
246
|
self.max_replicas = max_replicas
|
|
311
247
|
self.memory_threshold_mb = memory_threshold
|
|
312
|
-
self.estimated_edge_cost_mb = estimated_edge_cost_mb # Keep track, though unused
|
|
313
248
|
self.memory_safety_buffer_fraction = memory_safety_buffer_fraction # Unused
|
|
314
249
|
self.effective_memory_limit_mb = self.memory_threshold_mb
|
|
315
250
|
|
|
@@ -86,7 +86,8 @@ class PipelineCreationSchema(BaseModel):
|
|
|
86
86
|
|
|
87
87
|
# Vision language model settings
|
|
88
88
|
vlm_caption_endpoint: str = os.getenv(
|
|
89
|
-
"VLM_CAPTION_ENDPOINT",
|
|
89
|
+
"VLM_CAPTION_ENDPOINT",
|
|
90
|
+
"https://ai.api.nvidia.com/v1/gr/nvidia/llama-3.1-nemotron-nano-vl-8b-v1/chat/completions",
|
|
90
91
|
)
|
|
91
92
|
vlm_caption_model_name: str = os.getenv("VLM_CAPTION_MODEL_NAME", "nvidia/llama-3.1-nemotron-nano-vl-8b-v1")
|
|
92
93
|
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
# SPDX-License-Identifier: Apache-2.0
|
|
4
4
|
|
|
5
5
|
import os
|
|
6
|
-
|
|
6
|
+
import psutil
|
|
7
7
|
import click
|
|
8
8
|
import logging
|
|
9
9
|
|
|
@@ -174,6 +174,16 @@ def add_metadata_injector_stage(pipeline, default_cpu_count, stage_name="metadat
|
|
|
174
174
|
|
|
175
175
|
|
|
176
176
|
def add_pdf_extractor_stage(pipeline, default_cpu_count, stage_name="pdf_extractor"):
|
|
177
|
+
# Heuristic: Determine max_replicas based on system memory, capped by CPU cores.
|
|
178
|
+
total_memory_mb = psutil.virtual_memory().total / (1024**2)
|
|
179
|
+
|
|
180
|
+
# Allocate up to 75% of memory to this stage, using a 10GB high watermark per worker.
|
|
181
|
+
allocatable_memory_for_stage_mb = total_memory_mb * 0.75
|
|
182
|
+
memory_based_replicas = int(allocatable_memory_for_stage_mb / 10_000.0)
|
|
183
|
+
|
|
184
|
+
# Cap the number of replicas by the number of available CPU cores.
|
|
185
|
+
max_replicas = max(1, min(memory_based_replicas, default_cpu_count))
|
|
186
|
+
|
|
177
187
|
yolox_grpc, yolox_http, yolox_auth, yolox_protocol = get_nim_service("yolox")
|
|
178
188
|
nemoretriever_parse_grpc, nemoretriever_parse_http, nemoretriever_parse_auth, nemoretriever_parse_protocol = (
|
|
179
189
|
get_nim_service("nemoretriever_parse")
|
|
@@ -203,7 +213,7 @@ def add_pdf_extractor_stage(pipeline, default_cpu_count, stage_name="pdf_extract
|
|
|
203
213
|
stage_actor=PDFExtractorStage,
|
|
204
214
|
config=extractor_config,
|
|
205
215
|
min_replicas=0,
|
|
206
|
-
max_replicas=
|
|
216
|
+
max_replicas=max_replicas,
|
|
207
217
|
)
|
|
208
218
|
|
|
209
219
|
return stage_name
|
|
@@ -232,7 +242,7 @@ def add_table_extractor_stage(pipeline, default_cpu_count, stage_name="table_ext
|
|
|
232
242
|
stage_actor=TableExtractorStage,
|
|
233
243
|
config=table_extractor_config,
|
|
234
244
|
min_replicas=0,
|
|
235
|
-
max_replicas=
|
|
245
|
+
max_replicas=2,
|
|
236
246
|
)
|
|
237
247
|
|
|
238
248
|
return stage_name
|
|
@@ -261,7 +271,7 @@ def add_chart_extractor_stage(pipeline, default_cpu_count, stage_name="chart_ext
|
|
|
261
271
|
stage_actor=ChartExtractorStage,
|
|
262
272
|
config=chart_extractor_config,
|
|
263
273
|
min_replicas=0,
|
|
264
|
-
max_replicas=
|
|
274
|
+
max_replicas=2,
|
|
265
275
|
)
|
|
266
276
|
|
|
267
277
|
return stage_name
|
|
@@ -285,7 +295,7 @@ def add_infographic_extractor_stage(pipeline, default_cpu_count, stage_name="inf
|
|
|
285
295
|
stage_actor=InfographicExtractorStage,
|
|
286
296
|
config=infographic_content_extractor_config,
|
|
287
297
|
min_replicas=0,
|
|
288
|
-
max_replicas=
|
|
298
|
+
max_replicas=1,
|
|
289
299
|
)
|
|
290
300
|
|
|
291
301
|
return stage_name
|
|
@@ -307,7 +317,7 @@ def add_image_extractor_stage(pipeline, default_cpu_count, stage_name="image_ext
|
|
|
307
317
|
stage_actor=ImageExtractorStage,
|
|
308
318
|
config=image_extractor_config,
|
|
309
319
|
min_replicas=0,
|
|
310
|
-
max_replicas=
|
|
320
|
+
max_replicas=1,
|
|
311
321
|
)
|
|
312
322
|
|
|
313
323
|
return stage_name
|
|
@@ -329,7 +339,7 @@ def add_docx_extractor_stage(pipeline, default_cpu_count, stage_name="docx_extra
|
|
|
329
339
|
stage_actor=DocxExtractorStage,
|
|
330
340
|
config=DocxExtractorSchema(**docx_extractor_config),
|
|
331
341
|
min_replicas=0,
|
|
332
|
-
max_replicas=
|
|
342
|
+
max_replicas=2,
|
|
333
343
|
)
|
|
334
344
|
|
|
335
345
|
return stage_name
|
|
@@ -351,7 +361,7 @@ def add_pptx_extractor_stage(pipeline, default_cpu_count, stage_name="pptx_extra
|
|
|
351
361
|
stage_actor=PPTXExtractorStage,
|
|
352
362
|
config=PPTXExtractorSchema(**pptx_extractor_config),
|
|
353
363
|
min_replicas=0,
|
|
354
|
-
max_replicas=
|
|
364
|
+
max_replicas=2,
|
|
355
365
|
)
|
|
356
366
|
|
|
357
367
|
return stage_name
|
|
@@ -377,7 +387,7 @@ def add_audio_extractor_stage(pipeline, default_cpu_count, stage_name="audio_ext
|
|
|
377
387
|
stage_actor=AudioExtractorStage,
|
|
378
388
|
config=audio_extractor_config,
|
|
379
389
|
min_replicas=0,
|
|
380
|
-
max_replicas=1,
|
|
390
|
+
max_replicas=1,
|
|
381
391
|
)
|
|
382
392
|
|
|
383
393
|
return stage_name
|
|
@@ -390,7 +400,7 @@ def add_html_extractor_stage(pipeline, default_cpu_count, stage_name="html_extra
|
|
|
390
400
|
stage_actor=HtmlExtractorStage,
|
|
391
401
|
config=HtmlExtractorSchema(),
|
|
392
402
|
min_replicas=0,
|
|
393
|
-
max_replicas=
|
|
403
|
+
max_replicas=1,
|
|
394
404
|
)
|
|
395
405
|
|
|
396
406
|
return stage_name
|
|
@@ -455,7 +465,7 @@ def add_text_splitter_stage(pipeline, default_cpu_count, stage_name="text_splitt
|
|
|
455
465
|
stage_actor=TextSplitterStage,
|
|
456
466
|
config=config,
|
|
457
467
|
min_replicas=0,
|
|
458
|
-
max_replicas=
|
|
468
|
+
max_replicas=2,
|
|
459
469
|
)
|
|
460
470
|
|
|
461
471
|
return stage_name
|
|
@@ -517,7 +527,7 @@ def add_text_embedding_stage(pipeline, default_cpu_count, stage_name="text_embed
|
|
|
517
527
|
stage_actor=TextEmbeddingTransformStage,
|
|
518
528
|
config=config,
|
|
519
529
|
min_replicas=0,
|
|
520
|
-
max_replicas=
|
|
530
|
+
max_replicas=2,
|
|
521
531
|
)
|
|
522
532
|
|
|
523
533
|
return stage_name
|
{nv_ingest-2025.7.8.dev20250708.dist-info → nv_ingest-2025.7.10.dev20250710.dist-info}/RECORD
RENAMED
|
@@ -20,9 +20,9 @@ nv_ingest/framework/orchestration/ray/examples/task_source_sink_harness.py,sha25
|
|
|
20
20
|
nv_ingest/framework/orchestration/ray/primitives/__init__.py,sha256=wQSlVx3T14ZgQAt-EPzEczQusXVW0W8yynnUaFFGE3s,143
|
|
21
21
|
nv_ingest/framework/orchestration/ray/primitives/dataclasses.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
22
22
|
nv_ingest/framework/orchestration/ray/primitives/pipeline_monitor.py,sha256=L8ENPiF-lxqhIXVEQwQD5CCqQMb710ynj5D_Y4ixGhs,11077
|
|
23
|
-
nv_ingest/framework/orchestration/ray/primitives/pipeline_topology.py,sha256=
|
|
24
|
-
nv_ingest/framework/orchestration/ray/primitives/ray_pipeline.py,sha256=
|
|
25
|
-
nv_ingest/framework/orchestration/ray/primitives/ray_stat_collector.py,sha256=
|
|
23
|
+
nv_ingest/framework/orchestration/ray/primitives/pipeline_topology.py,sha256=IxLQYHYc9BnMOi73TSJzuhl8KOJAwlwwp8SPdUkV3nE,15737
|
|
24
|
+
nv_ingest/framework/orchestration/ray/primitives/ray_pipeline.py,sha256=HGJ_TyLTKKRl10HWfyx3D-n-zrFY0Fg9TN74UbOeCm8,66584
|
|
25
|
+
nv_ingest/framework/orchestration/ray/primitives/ray_stat_collector.py,sha256=8SpZzulHatqah7U3YHJMTLaYyPlWdCoaer_oNjhmHZo,17221
|
|
26
26
|
nv_ingest/framework/orchestration/ray/stages/__init__.py,sha256=wQSlVx3T14ZgQAt-EPzEczQusXVW0W8yynnUaFFGE3s,143
|
|
27
27
|
nv_ingest/framework/orchestration/ray/stages/extractors/__init__.py,sha256=wQSlVx3T14ZgQAt-EPzEczQusXVW0W8yynnUaFFGE3s,143
|
|
28
28
|
nv_ingest/framework/orchestration/ray/stages/extractors/audio_extractor.py,sha256=KV4hvY0NTGG8CjZviTgcFLQzaH8WJJGkkb9PFYbROww,3417
|
|
@@ -40,7 +40,7 @@ nv_ingest/framework/orchestration/ray/stages/meta/__init__.py,sha256=wQSlVx3T14Z
|
|
|
40
40
|
nv_ingest/framework/orchestration/ray/stages/meta/ray_actor_edge_base.py,sha256=LnVqBJmpfCmcI-eJLbkwK-7SS-hpEp98P4iCRv_Zhb0,1726
|
|
41
41
|
nv_ingest/framework/orchestration/ray/stages/meta/ray_actor_sink_stage_base.py,sha256=AhlZUbDK2Jckqnu8hVbJrckW8MsSixfmWc1bst9gRYk,3447
|
|
42
42
|
nv_ingest/framework/orchestration/ray/stages/meta/ray_actor_source_stage_base.py,sha256=1Pae2xRPK0_QLh53yHECVFm2guwgvZaiRRr3tp4OpYI,1744
|
|
43
|
-
nv_ingest/framework/orchestration/ray/stages/meta/ray_actor_stage_base.py,sha256=
|
|
43
|
+
nv_ingest/framework/orchestration/ray/stages/meta/ray_actor_stage_base.py,sha256=pvBFsURWoDiAmDWNTLv2pdm5slv-1OnuXxwYvgaKumU,25703
|
|
44
44
|
nv_ingest/framework/orchestration/ray/stages/mutate/__init__.py,sha256=wQSlVx3T14ZgQAt-EPzEczQusXVW0W8yynnUaFFGE3s,143
|
|
45
45
|
nv_ingest/framework/orchestration/ray/stages/mutate/image_dedup.py,sha256=UepeDvH6Cfgm5rIylRx6uOxihS0OZ4Q1DGUrjUybNaY,3493
|
|
46
46
|
nv_ingest/framework/orchestration/ray/stages/mutate/image_filter.py,sha256=9ek5rVa4_GVdmVHGMJvbxacRSpIqVoUxgv28lzJwrTQ,3319
|
|
@@ -48,7 +48,7 @@ nv_ingest/framework/orchestration/ray/stages/sinks/__init__.py,sha256=wQSlVx3T14
|
|
|
48
48
|
nv_ingest/framework/orchestration/ray/stages/sinks/default_drain.py,sha256=0SQHJlFuXlP16YRWduX1fMKgjhUd7UhDAWQ8XZh4_0I,1471
|
|
49
49
|
nv_ingest/framework/orchestration/ray/stages/sinks/message_broker_task_sink.py,sha256=enylryvcPmzirpOjCahqYJbNSLsNvv1KpMnOzGqNZQQ,11509
|
|
50
50
|
nv_ingest/framework/orchestration/ray/stages/sources/__init__.py,sha256=wQSlVx3T14ZgQAt-EPzEczQusXVW0W8yynnUaFFGE3s,143
|
|
51
|
-
nv_ingest/framework/orchestration/ray/stages/sources/message_broker_task_source.py,sha256=
|
|
51
|
+
nv_ingest/framework/orchestration/ray/stages/sources/message_broker_task_source.py,sha256=KzRil999sHGK4jV-EBU8LUuPp_e3W-Vc_feFEAvG2-E,20995
|
|
52
52
|
nv_ingest/framework/orchestration/ray/stages/storage/__init__.py,sha256=wQSlVx3T14ZgQAt-EPzEczQusXVW0W8yynnUaFFGE3s,143
|
|
53
53
|
nv_ingest/framework/orchestration/ray/stages/storage/image_storage.py,sha256=6NkwQzseAnaj0Ptpr3oKvab2EnJdMwTjI2p4dS_HzsI,3901
|
|
54
54
|
nv_ingest/framework/orchestration/ray/stages/storage/store_embeddings.py,sha256=SMLHQElZkKldnjy0_VHIKS65DBAAtOhwhdoaFe1yb9I,3337
|
|
@@ -64,10 +64,10 @@ nv_ingest/framework/orchestration/ray/stages/utility/__init__.py,sha256=wQSlVx3T
|
|
|
64
64
|
nv_ingest/framework/orchestration/ray/stages/utility/throughput_monitor.py,sha256=MB27CkoNeuirN6CUHgjsC5Wh958NF7m_N7HE4VKfx3k,2264
|
|
65
65
|
nv_ingest/framework/orchestration/ray/util/__init__.py,sha256=wQSlVx3T14ZgQAt-EPzEczQusXVW0W8yynnUaFFGE3s,143
|
|
66
66
|
nv_ingest/framework/orchestration/ray/util/pipeline/__init__.py,sha256=wQSlVx3T14ZgQAt-EPzEczQusXVW0W8yynnUaFFGE3s,143
|
|
67
|
-
nv_ingest/framework/orchestration/ray/util/pipeline/pid_controller.py,sha256=
|
|
67
|
+
nv_ingest/framework/orchestration/ray/util/pipeline/pid_controller.py,sha256=flRLS7yc5n6gheykayuL3prC7O-ZhcVY2s9Wc14SGWE,47377
|
|
68
68
|
nv_ingest/framework/orchestration/ray/util/pipeline/pipeline_builders.py,sha256=d2-GS2tqk6JOFdw65CL1AwfjdUbkC_XxUuJH8Dy-aQ0,10456
|
|
69
|
-
nv_ingest/framework/orchestration/ray/util/pipeline/pipeline_runners.py,sha256=
|
|
70
|
-
nv_ingest/framework/orchestration/ray/util/pipeline/stage_builders.py,sha256
|
|
69
|
+
nv_ingest/framework/orchestration/ray/util/pipeline/pipeline_runners.py,sha256=5I7N-nmGXaYqyPEtPZbFhgvog2b2c3eagWc69naMc9s,14340
|
|
70
|
+
nv_ingest/framework/orchestration/ray/util/pipeline/stage_builders.py,sha256=-IoaRYO7tDA9JXJ7J_j-8pVcU4dYWXrKDM3vo392XZA,21229
|
|
71
71
|
nv_ingest/framework/orchestration/ray/util/pipeline/tools.py,sha256=LQVb8k9jURaxh2Ga44Js_XuYFCbeN4_nLgDmtExovQg,8026
|
|
72
72
|
nv_ingest/framework/orchestration/ray/util/system_tools/__init__.py,sha256=wQSlVx3T14ZgQAt-EPzEczQusXVW0W8yynnUaFFGE3s,143
|
|
73
73
|
nv_ingest/framework/orchestration/ray/util/system_tools/memory.py,sha256=ICqY0LLB3hFTZk03iX5yffMSKFH2q_aQomtDVzS_mKw,2228
|
|
@@ -96,8 +96,8 @@ nv_ingest/framework/util/service/meta/ingest/__init__.py,sha256=wQSlVx3T14ZgQAt-
|
|
|
96
96
|
nv_ingest/framework/util/service/meta/ingest/ingest_service_meta.py,sha256=QS3uNxWBl5dIcmIpJKNe8_TLcTUuN2vcKyHeAwa-eSo,1589
|
|
97
97
|
nv_ingest/framework/util/telemetry/__init__.py,sha256=wQSlVx3T14ZgQAt-EPzEczQusXVW0W8yynnUaFFGE3s,143
|
|
98
98
|
nv_ingest/framework/util/telemetry/global_stats.py,sha256=nq65pEEdiwjAfGiqsxG1CeQMC96O3CfQxsZuGFCY-ds,4554
|
|
99
|
-
nv_ingest-2025.7.
|
|
100
|
-
nv_ingest-2025.7.
|
|
101
|
-
nv_ingest-2025.7.
|
|
102
|
-
nv_ingest-2025.7.
|
|
103
|
-
nv_ingest-2025.7.
|
|
99
|
+
nv_ingest-2025.7.10.dev20250710.dist-info/licenses/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
|
|
100
|
+
nv_ingest-2025.7.10.dev20250710.dist-info/METADATA,sha256=8PbHZxwRhte7as7gL-U5y3sbviPepCUTwfaZxaIUeyk,15142
|
|
101
|
+
nv_ingest-2025.7.10.dev20250710.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
102
|
+
nv_ingest-2025.7.10.dev20250710.dist-info/top_level.txt,sha256=sjb0ajIsgn3YgftSjZHlYO0HjYAIIhNuXG_AmywCvaU,10
|
|
103
|
+
nv_ingest-2025.7.10.dev20250710.dist-info/RECORD,,
|
{nv_ingest-2025.7.8.dev20250708.dist-info → nv_ingest-2025.7.10.dev20250710.dist-info}/WHEEL
RENAMED
|
File without changes
|
|
File without changes
|
{nv_ingest-2025.7.8.dev20250708.dist-info → nv_ingest-2025.7.10.dev20250710.dist-info}/top_level.txt
RENAMED
|
File without changes
|