nv-ingest 2025.12.12.dev20251212__tar.gz → 2025.12.20.dev20251220__tar.gz
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.
- {nv_ingest-2025.12.12.dev20251212 → nv_ingest-2025.12.20.dev20251220}/PKG-INFO +1 -1
- {nv_ingest-2025.12.12.dev20251212 → nv_ingest-2025.12.20.dev20251220}/nv_ingest/api/main.py +1 -1
- nv_ingest-2025.12.20.dev20251220/nv_ingest/framework/orchestration/ray/stages/meta/udf_parallel_helper.py +64 -0
- {nv_ingest-2025.12.12.dev20251212 → nv_ingest-2025.12.20.dev20251220}/nv_ingest.egg-info/PKG-INFO +1 -1
- {nv_ingest-2025.12.12.dev20251212 → nv_ingest-2025.12.20.dev20251220}/nv_ingest.egg-info/SOURCES.txt +1 -0
- {nv_ingest-2025.12.12.dev20251212 → nv_ingest-2025.12.20.dev20251220}/LICENSE +0 -0
- {nv_ingest-2025.12.12.dev20251212 → nv_ingest-2025.12.20.dev20251220}/MANIFEST.in +0 -0
- {nv_ingest-2025.12.12.dev20251212 → nv_ingest-2025.12.20.dev20251220}/nv_ingest/__init__.py +0 -0
- {nv_ingest-2025.12.12.dev20251212 → nv_ingest-2025.12.20.dev20251220}/nv_ingest/api/__init__.py +0 -0
- {nv_ingest-2025.12.12.dev20251212 → nv_ingest-2025.12.20.dev20251220}/nv_ingest/api/tracing.py +0 -0
- {nv_ingest-2025.12.12.dev20251212 → nv_ingest-2025.12.20.dev20251220}/nv_ingest/api/v1/__init__.py +0 -0
- {nv_ingest-2025.12.12.dev20251212 → nv_ingest-2025.12.20.dev20251220}/nv_ingest/api/v1/health.py +0 -0
- {nv_ingest-2025.12.12.dev20251212 → nv_ingest-2025.12.20.dev20251220}/nv_ingest/api/v1/ingest.py +0 -0
- {nv_ingest-2025.12.12.dev20251212 → nv_ingest-2025.12.20.dev20251220}/nv_ingest/api/v1/metrics.py +0 -0
- {nv_ingest-2025.12.12.dev20251212 → nv_ingest-2025.12.20.dev20251220}/nv_ingest/api/v2/README.md +0 -0
- {nv_ingest-2025.12.12.dev20251212 → nv_ingest-2025.12.20.dev20251220}/nv_ingest/api/v2/__init__.py +0 -0
- {nv_ingest-2025.12.12.dev20251212 → nv_ingest-2025.12.20.dev20251220}/nv_ingest/api/v2/ingest.py +0 -0
- {nv_ingest-2025.12.12.dev20251212 → nv_ingest-2025.12.20.dev20251220}/nv_ingest/framework/__init__.py +0 -0
- {nv_ingest-2025.12.12.dev20251212 → nv_ingest-2025.12.20.dev20251220}/nv_ingest/framework/orchestration/__init__.py +0 -0
- {nv_ingest-2025.12.12.dev20251212 → nv_ingest-2025.12.20.dev20251220}/nv_ingest/framework/orchestration/execution/__init__.py +0 -0
- {nv_ingest-2025.12.12.dev20251212 → nv_ingest-2025.12.20.dev20251220}/nv_ingest/framework/orchestration/execution/helpers.py +0 -0
- {nv_ingest-2025.12.12.dev20251212 → nv_ingest-2025.12.20.dev20251220}/nv_ingest/framework/orchestration/execution/options.py +0 -0
- {nv_ingest-2025.12.12.dev20251212 → nv_ingest-2025.12.20.dev20251220}/nv_ingest/framework/orchestration/process/__init__.py +0 -0
- {nv_ingest-2025.12.12.dev20251212 → nv_ingest-2025.12.20.dev20251220}/nv_ingest/framework/orchestration/process/dependent_services.py +0 -0
- {nv_ingest-2025.12.12.dev20251212 → nv_ingest-2025.12.20.dev20251220}/nv_ingest/framework/orchestration/process/execution.py +0 -0
- {nv_ingest-2025.12.12.dev20251212 → nv_ingest-2025.12.20.dev20251220}/nv_ingest/framework/orchestration/process/lifecycle.py +0 -0
- {nv_ingest-2025.12.12.dev20251212 → nv_ingest-2025.12.20.dev20251220}/nv_ingest/framework/orchestration/process/strategies.py +0 -0
- {nv_ingest-2025.12.12.dev20251212 → nv_ingest-2025.12.20.dev20251220}/nv_ingest/framework/orchestration/process/termination.py +0 -0
- {nv_ingest-2025.12.12.dev20251212 → nv_ingest-2025.12.20.dev20251220}/nv_ingest/framework/orchestration/ray/__init__.py +0 -0
- {nv_ingest-2025.12.12.dev20251212 → nv_ingest-2025.12.20.dev20251220}/nv_ingest/framework/orchestration/ray/edges/__init__.py +0 -0
- {nv_ingest-2025.12.12.dev20251212 → nv_ingest-2025.12.20.dev20251220}/nv_ingest/framework/orchestration/ray/edges/async_queue_edge.py +0 -0
- {nv_ingest-2025.12.12.dev20251212 → nv_ingest-2025.12.20.dev20251220}/nv_ingest/framework/orchestration/ray/edges/ray_queue_edge.py +0 -0
- {nv_ingest-2025.12.12.dev20251212 → nv_ingest-2025.12.20.dev20251220}/nv_ingest/framework/orchestration/ray/edges/threaded_queue_edge.py +0 -0
- {nv_ingest-2025.12.12.dev20251212 → nv_ingest-2025.12.20.dev20251220}/nv_ingest/framework/orchestration/ray/examples/__init__.py +0 -0
- {nv_ingest-2025.12.12.dev20251212 → nv_ingest-2025.12.20.dev20251220}/nv_ingest/framework/orchestration/ray/examples/pipeline_test_harness.py +0 -0
- {nv_ingest-2025.12.12.dev20251212 → nv_ingest-2025.12.20.dev20251220}/nv_ingest/framework/orchestration/ray/examples/task_source_harness.py +0 -0
- {nv_ingest-2025.12.12.dev20251212 → nv_ingest-2025.12.20.dev20251220}/nv_ingest/framework/orchestration/ray/examples/task_source_sink_harness.py +0 -0
- {nv_ingest-2025.12.12.dev20251212 → nv_ingest-2025.12.20.dev20251220}/nv_ingest/framework/orchestration/ray/primitives/__init__.py +0 -0
- {nv_ingest-2025.12.12.dev20251212 → nv_ingest-2025.12.20.dev20251220}/nv_ingest/framework/orchestration/ray/primitives/dataclasses.py +0 -0
- {nv_ingest-2025.12.12.dev20251212 → nv_ingest-2025.12.20.dev20251220}/nv_ingest/framework/orchestration/ray/primitives/pipeline_monitor.py +0 -0
- {nv_ingest-2025.12.12.dev20251212 → nv_ingest-2025.12.20.dev20251220}/nv_ingest/framework/orchestration/ray/primitives/pipeline_topology.py +0 -0
- {nv_ingest-2025.12.12.dev20251212 → nv_ingest-2025.12.20.dev20251220}/nv_ingest/framework/orchestration/ray/primitives/ray_pipeline.py +0 -0
- {nv_ingest-2025.12.12.dev20251212 → nv_ingest-2025.12.20.dev20251220}/nv_ingest/framework/orchestration/ray/primitives/ray_stat_collector.py +0 -0
- {nv_ingest-2025.12.12.dev20251212 → nv_ingest-2025.12.20.dev20251220}/nv_ingest/framework/orchestration/ray/stages/__init__.py +0 -0
- {nv_ingest-2025.12.12.dev20251212 → nv_ingest-2025.12.20.dev20251220}/nv_ingest/framework/orchestration/ray/stages/extractors/__init__.py +0 -0
- {nv_ingest-2025.12.12.dev20251212 → nv_ingest-2025.12.20.dev20251220}/nv_ingest/framework/orchestration/ray/stages/extractors/audio_extractor.py +0 -0
- {nv_ingest-2025.12.12.dev20251212 → nv_ingest-2025.12.20.dev20251220}/nv_ingest/framework/orchestration/ray/stages/extractors/chart_extractor.py +0 -0
- {nv_ingest-2025.12.12.dev20251212 → nv_ingest-2025.12.20.dev20251220}/nv_ingest/framework/orchestration/ray/stages/extractors/docx_extractor.py +0 -0
- {nv_ingest-2025.12.12.dev20251212 → nv_ingest-2025.12.20.dev20251220}/nv_ingest/framework/orchestration/ray/stages/extractors/html_extractor.py +0 -0
- {nv_ingest-2025.12.12.dev20251212 → nv_ingest-2025.12.20.dev20251220}/nv_ingest/framework/orchestration/ray/stages/extractors/image_extractor.py +0 -0
- {nv_ingest-2025.12.12.dev20251212 → nv_ingest-2025.12.20.dev20251220}/nv_ingest/framework/orchestration/ray/stages/extractors/infographic_extractor.py +0 -0
- {nv_ingest-2025.12.12.dev20251212 → nv_ingest-2025.12.20.dev20251220}/nv_ingest/framework/orchestration/ray/stages/extractors/ocr_extractor.py +0 -0
- {nv_ingest-2025.12.12.dev20251212 → nv_ingest-2025.12.20.dev20251220}/nv_ingest/framework/orchestration/ray/stages/extractors/pdf_extractor.py +0 -0
- {nv_ingest-2025.12.12.dev20251212 → nv_ingest-2025.12.20.dev20251220}/nv_ingest/framework/orchestration/ray/stages/extractors/pptx_extractor.py +0 -0
- {nv_ingest-2025.12.12.dev20251212 → nv_ingest-2025.12.20.dev20251220}/nv_ingest/framework/orchestration/ray/stages/extractors/table_extractor.py +0 -0
- {nv_ingest-2025.12.12.dev20251212 → nv_ingest-2025.12.20.dev20251220}/nv_ingest/framework/orchestration/ray/stages/injectors/__init__.py +0 -0
- {nv_ingest-2025.12.12.dev20251212 → nv_ingest-2025.12.20.dev20251220}/nv_ingest/framework/orchestration/ray/stages/injectors/metadata_injector.py +0 -0
- {nv_ingest-2025.12.12.dev20251212 → nv_ingest-2025.12.20.dev20251220}/nv_ingest/framework/orchestration/ray/stages/meta/__init__.py +0 -0
- {nv_ingest-2025.12.12.dev20251212 → nv_ingest-2025.12.20.dev20251220}/nv_ingest/framework/orchestration/ray/stages/meta/ray_actor_edge_base.py +0 -0
- {nv_ingest-2025.12.12.dev20251212 → nv_ingest-2025.12.20.dev20251220}/nv_ingest/framework/orchestration/ray/stages/meta/ray_actor_sink_stage_base.py +0 -0
- {nv_ingest-2025.12.12.dev20251212 → nv_ingest-2025.12.20.dev20251220}/nv_ingest/framework/orchestration/ray/stages/meta/ray_actor_source_stage_base.py +0 -0
- {nv_ingest-2025.12.12.dev20251212 → nv_ingest-2025.12.20.dev20251220}/nv_ingest/framework/orchestration/ray/stages/meta/ray_actor_stage_base.py +0 -0
- {nv_ingest-2025.12.12.dev20251212 → nv_ingest-2025.12.20.dev20251220}/nv_ingest/framework/orchestration/ray/stages/mutate/__init__.py +0 -0
- {nv_ingest-2025.12.12.dev20251212 → nv_ingest-2025.12.20.dev20251220}/nv_ingest/framework/orchestration/ray/stages/mutate/image_dedup.py +0 -0
- {nv_ingest-2025.12.12.dev20251212 → nv_ingest-2025.12.20.dev20251220}/nv_ingest/framework/orchestration/ray/stages/mutate/image_filter.py +0 -0
- {nv_ingest-2025.12.12.dev20251212 → nv_ingest-2025.12.20.dev20251220}/nv_ingest/framework/orchestration/ray/stages/sinks/__init__.py +0 -0
- {nv_ingest-2025.12.12.dev20251212 → nv_ingest-2025.12.20.dev20251220}/nv_ingest/framework/orchestration/ray/stages/sinks/default_drain.py +0 -0
- {nv_ingest-2025.12.12.dev20251212 → nv_ingest-2025.12.20.dev20251220}/nv_ingest/framework/orchestration/ray/stages/sinks/message_broker_task_sink.py +0 -0
- {nv_ingest-2025.12.12.dev20251212 → nv_ingest-2025.12.20.dev20251220}/nv_ingest/framework/orchestration/ray/stages/sources/__init__.py +0 -0
- {nv_ingest-2025.12.12.dev20251212 → nv_ingest-2025.12.20.dev20251220}/nv_ingest/framework/orchestration/ray/stages/sources/message_broker_task_source.py +0 -0
- {nv_ingest-2025.12.12.dev20251212 → nv_ingest-2025.12.20.dev20251220}/nv_ingest/framework/orchestration/ray/stages/storage/__init__.py +0 -0
- {nv_ingest-2025.12.12.dev20251212 → nv_ingest-2025.12.20.dev20251220}/nv_ingest/framework/orchestration/ray/stages/storage/image_storage.py +0 -0
- {nv_ingest-2025.12.12.dev20251212 → nv_ingest-2025.12.20.dev20251220}/nv_ingest/framework/orchestration/ray/stages/storage/store_embeddings.py +0 -0
- {nv_ingest-2025.12.12.dev20251212 → nv_ingest-2025.12.20.dev20251220}/nv_ingest/framework/orchestration/ray/stages/telemetry/__init__.py +0 -0
- {nv_ingest-2025.12.12.dev20251212 → nv_ingest-2025.12.20.dev20251220}/nv_ingest/framework/orchestration/ray/stages/telemetry/job_counter.py +0 -0
- {nv_ingest-2025.12.12.dev20251212 → nv_ingest-2025.12.20.dev20251220}/nv_ingest/framework/orchestration/ray/stages/telemetry/otel_meter.py +0 -0
- {nv_ingest-2025.12.12.dev20251212 → nv_ingest-2025.12.20.dev20251220}/nv_ingest/framework/orchestration/ray/stages/telemetry/otel_tracer.py +0 -0
- {nv_ingest-2025.12.12.dev20251212 → nv_ingest-2025.12.20.dev20251220}/nv_ingest/framework/orchestration/ray/stages/transforms/__init__.py +0 -0
- {nv_ingest-2025.12.12.dev20251212 → nv_ingest-2025.12.20.dev20251220}/nv_ingest/framework/orchestration/ray/stages/transforms/image_caption.py +0 -0
- {nv_ingest-2025.12.12.dev20251212 → nv_ingest-2025.12.20.dev20251220}/nv_ingest/framework/orchestration/ray/stages/transforms/text_embed.py +0 -0
- {nv_ingest-2025.12.12.dev20251212 → nv_ingest-2025.12.20.dev20251220}/nv_ingest/framework/orchestration/ray/stages/transforms/text_splitter.py +0 -0
- {nv_ingest-2025.12.12.dev20251212 → nv_ingest-2025.12.20.dev20251220}/nv_ingest/framework/orchestration/ray/stages/utility/__init__.py +0 -0
- {nv_ingest-2025.12.12.dev20251212 → nv_ingest-2025.12.20.dev20251220}/nv_ingest/framework/orchestration/ray/stages/utility/throughput_monitor.py +0 -0
- {nv_ingest-2025.12.12.dev20251212 → nv_ingest-2025.12.20.dev20251220}/nv_ingest/framework/orchestration/ray/util/__init__.py +0 -0
- {nv_ingest-2025.12.12.dev20251212 → nv_ingest-2025.12.20.dev20251220}/nv_ingest/framework/orchestration/ray/util/env_config.py +0 -0
- {nv_ingest-2025.12.12.dev20251212 → nv_ingest-2025.12.20.dev20251220}/nv_ingest/framework/orchestration/ray/util/pipeline/__init__.py +0 -0
- {nv_ingest-2025.12.12.dev20251212 → nv_ingest-2025.12.20.dev20251220}/nv_ingest/framework/orchestration/ray/util/pipeline/pid_controller.py +0 -0
- {nv_ingest-2025.12.12.dev20251212 → nv_ingest-2025.12.20.dev20251220}/nv_ingest/framework/orchestration/ray/util/pipeline/pipeline_runners.py +0 -0
- {nv_ingest-2025.12.12.dev20251212 → nv_ingest-2025.12.20.dev20251220}/nv_ingest/framework/orchestration/ray/util/pipeline/tools.py +0 -0
- {nv_ingest-2025.12.12.dev20251212 → nv_ingest-2025.12.20.dev20251220}/nv_ingest/framework/orchestration/ray/util/system_tools/__init__.py +0 -0
- {nv_ingest-2025.12.12.dev20251212 → nv_ingest-2025.12.20.dev20251220}/nv_ingest/framework/orchestration/ray/util/system_tools/memory.py +0 -0
- {nv_ingest-2025.12.12.dev20251212 → nv_ingest-2025.12.20.dev20251220}/nv_ingest/framework/orchestration/ray/util/system_tools/visualizers.py +0 -0
- {nv_ingest-2025.12.12.dev20251212 → nv_ingest-2025.12.20.dev20251220}/nv_ingest/framework/schemas/__init__.py +0 -0
- {nv_ingest-2025.12.12.dev20251212 → nv_ingest-2025.12.20.dev20251220}/nv_ingest/framework/schemas/framework_ingest_config_schema.py +0 -0
- {nv_ingest-2025.12.12.dev20251212 → nv_ingest-2025.12.20.dev20251220}/nv_ingest/framework/schemas/framework_job_counter_schema.py +0 -0
- {nv_ingest-2025.12.12.dev20251212 → nv_ingest-2025.12.20.dev20251220}/nv_ingest/framework/schemas/framework_message_broker_sink_schema.py +0 -0
- {nv_ingest-2025.12.12.dev20251212 → nv_ingest-2025.12.20.dev20251220}/nv_ingest/framework/schemas/framework_message_broker_source_schema.py +0 -0
- {nv_ingest-2025.12.12.dev20251212 → nv_ingest-2025.12.20.dev20251220}/nv_ingest/framework/schemas/framework_message_wrapper_schema.py +0 -0
- {nv_ingest-2025.12.12.dev20251212 → nv_ingest-2025.12.20.dev20251220}/nv_ingest/framework/schemas/framework_metadata_injector_schema.py +0 -0
- {nv_ingest-2025.12.12.dev20251212 → nv_ingest-2025.12.20.dev20251220}/nv_ingest/framework/schemas/framework_otel_meter_schema.py +0 -0
- {nv_ingest-2025.12.12.dev20251212 → nv_ingest-2025.12.20.dev20251220}/nv_ingest/framework/schemas/framework_otel_tracer_schema.py +0 -0
- {nv_ingest-2025.12.12.dev20251212 → nv_ingest-2025.12.20.dev20251220}/nv_ingest/framework/schemas/framework_processing_job_schema.py +0 -0
- {nv_ingest-2025.12.12.dev20251212 → nv_ingest-2025.12.20.dev20251220}/nv_ingest/framework/schemas/framework_task_injection_schema.py +0 -0
- {nv_ingest-2025.12.12.dev20251212 → nv_ingest-2025.12.20.dev20251220}/nv_ingest/framework/schemas/framework_vdb_task_sink_schema.py +0 -0
- {nv_ingest-2025.12.12.dev20251212 → nv_ingest-2025.12.20.dev20251220}/nv_ingest/framework/util/__init__.py +0 -0
- {nv_ingest-2025.12.12.dev20251212 → nv_ingest-2025.12.20.dev20251220}/nv_ingest/framework/util/flow_control/__init__.py +0 -0
- {nv_ingest-2025.12.12.dev20251212 → nv_ingest-2025.12.20.dev20251220}/nv_ingest/framework/util/flow_control/filter_by_task.py +0 -0
- {nv_ingest-2025.12.12.dev20251212 → nv_ingest-2025.12.20.dev20251220}/nv_ingest/framework/util/flow_control/udf_intercept.py +0 -0
- {nv_ingest-2025.12.12.dev20251212 → nv_ingest-2025.12.20.dev20251220}/nv_ingest/framework/util/service/__init__.py +0 -0
- {nv_ingest-2025.12.12.dev20251212 → nv_ingest-2025.12.20.dev20251220}/nv_ingest/framework/util/service/impl/__init__.py +0 -0
- {nv_ingest-2025.12.12.dev20251212 → nv_ingest-2025.12.20.dev20251220}/nv_ingest/framework/util/service/impl/ingest/__init__.py +0 -0
- {nv_ingest-2025.12.12.dev20251212 → nv_ingest-2025.12.20.dev20251220}/nv_ingest/framework/util/service/impl/ingest/redis_ingest_service.py +0 -0
- {nv_ingest-2025.12.12.dev20251212 → nv_ingest-2025.12.20.dev20251220}/nv_ingest/framework/util/service/meta/__init__.py +0 -0
- {nv_ingest-2025.12.12.dev20251212 → nv_ingest-2025.12.20.dev20251220}/nv_ingest/framework/util/service/meta/ingest/__init__.py +0 -0
- {nv_ingest-2025.12.12.dev20251212 → nv_ingest-2025.12.20.dev20251220}/nv_ingest/framework/util/service/meta/ingest/ingest_service_meta.py +0 -0
- {nv_ingest-2025.12.12.dev20251212 → nv_ingest-2025.12.20.dev20251220}/nv_ingest/framework/util/telemetry/__init__.py +0 -0
- {nv_ingest-2025.12.12.dev20251212 → nv_ingest-2025.12.20.dev20251220}/nv_ingest/framework/util/telemetry/global_stats.py +0 -0
- {nv_ingest-2025.12.12.dev20251212 → nv_ingest-2025.12.20.dev20251220}/nv_ingest/pipeline/__init__.py +0 -0
- {nv_ingest-2025.12.12.dev20251212 → nv_ingest-2025.12.20.dev20251220}/nv_ingest/pipeline/config/__init__.py +0 -0
- {nv_ingest-2025.12.12.dev20251212 → nv_ingest-2025.12.20.dev20251220}/nv_ingest/pipeline/config/loaders.py +0 -0
- {nv_ingest-2025.12.12.dev20251212 → nv_ingest-2025.12.20.dev20251220}/nv_ingest/pipeline/config/replica_resolver.py +0 -0
- {nv_ingest-2025.12.12.dev20251212 → nv_ingest-2025.12.20.dev20251220}/nv_ingest/pipeline/default_libmode_pipeline_impl.py +0 -0
- {nv_ingest-2025.12.12.dev20251212 → nv_ingest-2025.12.20.dev20251220}/nv_ingest/pipeline/default_pipeline_impl.py +0 -0
- {nv_ingest-2025.12.12.dev20251212 → nv_ingest-2025.12.20.dev20251220}/nv_ingest/pipeline/ingest_pipeline.py +0 -0
- {nv_ingest-2025.12.12.dev20251212 → nv_ingest-2025.12.20.dev20251220}/nv_ingest/pipeline/pipeline_schema.py +0 -0
- {nv_ingest-2025.12.12.dev20251212 → nv_ingest-2025.12.20.dev20251220}/nv_ingest/version.py +0 -0
- {nv_ingest-2025.12.12.dev20251212 → nv_ingest-2025.12.20.dev20251220}/nv_ingest.egg-info/dependency_links.txt +0 -0
- {nv_ingest-2025.12.12.dev20251212 → nv_ingest-2025.12.20.dev20251220}/nv_ingest.egg-info/requires.txt +0 -0
- {nv_ingest-2025.12.12.dev20251212 → nv_ingest-2025.12.20.dev20251220}/nv_ingest.egg-info/top_level.txt +0 -0
- {nv_ingest-2025.12.12.dev20251212 → nv_ingest-2025.12.20.dev20251220}/pyproject.toml +0 -0
- {nv_ingest-2025.12.12.dev20251212 → nv_ingest-2025.12.20.dev20251220}/setup.cfg +0 -0
|
@@ -23,7 +23,7 @@ logger = logging.getLogger(__name__)
|
|
|
23
23
|
app = FastAPI(
|
|
24
24
|
title="NV-Ingest Microservice",
|
|
25
25
|
description="Service for ingesting heterogenous datatypes",
|
|
26
|
-
version="
|
|
26
|
+
version="26.1.0",
|
|
27
27
|
contact={
|
|
28
28
|
"name": "NVIDIA Corporation",
|
|
29
29
|
"url": "https://nvidia.com",
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
# SPDX-FileCopyrightText: Copyright (c) 2024-25, NVIDIA CORPORATION & AFFILIATES.
|
|
2
|
+
# All rights reserved.
|
|
3
|
+
# SPDX-License-Identifier: Apache-2.0
|
|
4
|
+
|
|
5
|
+
# Added this no-op UDF ray stage to the pipeline to help speed up the LLM api calls
|
|
6
|
+
|
|
7
|
+
"""
|
|
8
|
+
UDF Parallel Stage - A high-concurrency no-op stage for parallel UDF execution.
|
|
9
|
+
|
|
10
|
+
This stage does nothing except pass messages through, but with high replica count
|
|
11
|
+
it provides a parallel execution pool for UDFs to achieve N-way concurrency.
|
|
12
|
+
"""
|
|
13
|
+
|
|
14
|
+
import logging
|
|
15
|
+
from typing import Any, Optional
|
|
16
|
+
from pydantic import BaseModel
|
|
17
|
+
import ray
|
|
18
|
+
|
|
19
|
+
from nv_ingest.framework.orchestration.ray.stages.meta.ray_actor_stage_base import RayActorStage
|
|
20
|
+
from nv_ingest.framework.util.flow_control.udf_intercept import udf_intercept_hook
|
|
21
|
+
from nv_ingest_api.internal.primitives.tracing.tagging import traceable
|
|
22
|
+
from nv_ingest_api.util.exception_handlers.decorators import (
|
|
23
|
+
nv_ingest_node_failure_try_except,
|
|
24
|
+
)
|
|
25
|
+
|
|
26
|
+
logger = logging.getLogger(__name__)
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
@ray.remote
|
|
30
|
+
class UDFParallelStage(RayActorStage):
|
|
31
|
+
"""
|
|
32
|
+
A no-op pass-through stage designed for parallel UDF execution.
|
|
33
|
+
|
|
34
|
+
This stage simply returns the input message unchanged, but when configured
|
|
35
|
+
with multiple replicas, it provides a high-concurrency pool for UDFs to
|
|
36
|
+
achieve parallel execution without blocking.
|
|
37
|
+
"""
|
|
38
|
+
|
|
39
|
+
def __init__(self, config: BaseModel, stage_name: Optional[str] = None) -> None:
|
|
40
|
+
super().__init__(config, stage_name=stage_name)
|
|
41
|
+
logger.info(f"UDFParallelStage initialized: {stage_name}")
|
|
42
|
+
|
|
43
|
+
@nv_ingest_node_failure_try_except()
|
|
44
|
+
@traceable()
|
|
45
|
+
@udf_intercept_hook()
|
|
46
|
+
def on_data(self, message: Any) -> Any:
|
|
47
|
+
"""
|
|
48
|
+
Pass-through processing that simply returns the message unchanged.
|
|
49
|
+
|
|
50
|
+
The @udf_intercept_hook decorator allows UDFs to target this stage,
|
|
51
|
+
and multiple replicas provide parallel execution capacity.
|
|
52
|
+
|
|
53
|
+
Parameters
|
|
54
|
+
----------
|
|
55
|
+
message : Any
|
|
56
|
+
The incoming control message.
|
|
57
|
+
|
|
58
|
+
Returns
|
|
59
|
+
-------
|
|
60
|
+
Any
|
|
61
|
+
The unmodified control message.
|
|
62
|
+
"""
|
|
63
|
+
# No-op: just return the message
|
|
64
|
+
return message
|
{nv_ingest-2025.12.12.dev20251212 → nv_ingest-2025.12.20.dev20251220}/nv_ingest.egg-info/SOURCES.txt
RENAMED
|
@@ -63,6 +63,7 @@ nv_ingest/framework/orchestration/ray/stages/meta/ray_actor_edge_base.py
|
|
|
63
63
|
nv_ingest/framework/orchestration/ray/stages/meta/ray_actor_sink_stage_base.py
|
|
64
64
|
nv_ingest/framework/orchestration/ray/stages/meta/ray_actor_source_stage_base.py
|
|
65
65
|
nv_ingest/framework/orchestration/ray/stages/meta/ray_actor_stage_base.py
|
|
66
|
+
nv_ingest/framework/orchestration/ray/stages/meta/udf_parallel_helper.py
|
|
66
67
|
nv_ingest/framework/orchestration/ray/stages/mutate/__init__.py
|
|
67
68
|
nv_ingest/framework/orchestration/ray/stages/mutate/image_dedup.py
|
|
68
69
|
nv_ingest/framework/orchestration/ray/stages/mutate/image_filter.py
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{nv_ingest-2025.12.12.dev20251212 → nv_ingest-2025.12.20.dev20251220}/nv_ingest/api/__init__.py
RENAMED
|
File without changes
|
{nv_ingest-2025.12.12.dev20251212 → nv_ingest-2025.12.20.dev20251220}/nv_ingest/api/tracing.py
RENAMED
|
File without changes
|
{nv_ingest-2025.12.12.dev20251212 → nv_ingest-2025.12.20.dev20251220}/nv_ingest/api/v1/__init__.py
RENAMED
|
File without changes
|
{nv_ingest-2025.12.12.dev20251212 → nv_ingest-2025.12.20.dev20251220}/nv_ingest/api/v1/health.py
RENAMED
|
File without changes
|
{nv_ingest-2025.12.12.dev20251212 → nv_ingest-2025.12.20.dev20251220}/nv_ingest/api/v1/ingest.py
RENAMED
|
File without changes
|
{nv_ingest-2025.12.12.dev20251212 → nv_ingest-2025.12.20.dev20251220}/nv_ingest/api/v1/metrics.py
RENAMED
|
File without changes
|
{nv_ingest-2025.12.12.dev20251212 → nv_ingest-2025.12.20.dev20251220}/nv_ingest/api/v2/README.md
RENAMED
|
File without changes
|
{nv_ingest-2025.12.12.dev20251212 → nv_ingest-2025.12.20.dev20251220}/nv_ingest/api/v2/__init__.py
RENAMED
|
File without changes
|
{nv_ingest-2025.12.12.dev20251212 → nv_ingest-2025.12.20.dev20251220}/nv_ingest/api/v2/ingest.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{nv_ingest-2025.12.12.dev20251212 → nv_ingest-2025.12.20.dev20251220}/nv_ingest/pipeline/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|