nv-ingest 2025.10.26.dev20251026__tar.gz → 2025.10.28.dev20251028__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.
Potentially problematic release.
This version of nv-ingest might be problematic. Click here for more details.
- {nv_ingest-2025.10.26.dev20251026 → nv_ingest-2025.10.28.dev20251028}/PKG-INFO +1 -1
- {nv_ingest-2025.10.26.dev20251026 → nv_ingest-2025.10.28.dev20251028}/nv_ingest/api/v2/README.md +44 -18
- {nv_ingest-2025.10.26.dev20251026 → nv_ingest-2025.10.28.dev20251028}/nv_ingest.egg-info/PKG-INFO +1 -1
- {nv_ingest-2025.10.26.dev20251026 → nv_ingest-2025.10.28.dev20251028}/LICENSE +0 -0
- {nv_ingest-2025.10.26.dev20251026 → nv_ingest-2025.10.28.dev20251028}/MANIFEST.in +0 -0
- {nv_ingest-2025.10.26.dev20251026 → nv_ingest-2025.10.28.dev20251028}/nv_ingest/__init__.py +0 -0
- {nv_ingest-2025.10.26.dev20251026 → nv_ingest-2025.10.28.dev20251028}/nv_ingest/api/__init__.py +0 -0
- {nv_ingest-2025.10.26.dev20251026 → nv_ingest-2025.10.28.dev20251028}/nv_ingest/api/main.py +0 -0
- {nv_ingest-2025.10.26.dev20251026 → nv_ingest-2025.10.28.dev20251028}/nv_ingest/api/tracing.py +0 -0
- {nv_ingest-2025.10.26.dev20251026 → nv_ingest-2025.10.28.dev20251028}/nv_ingest/api/v1/__init__.py +0 -0
- {nv_ingest-2025.10.26.dev20251026 → nv_ingest-2025.10.28.dev20251028}/nv_ingest/api/v1/health.py +0 -0
- {nv_ingest-2025.10.26.dev20251026 → nv_ingest-2025.10.28.dev20251028}/nv_ingest/api/v1/ingest.py +0 -0
- {nv_ingest-2025.10.26.dev20251026 → nv_ingest-2025.10.28.dev20251028}/nv_ingest/api/v1/metrics.py +0 -0
- {nv_ingest-2025.10.26.dev20251026 → nv_ingest-2025.10.28.dev20251028}/nv_ingest/api/v2/__init__.py +0 -0
- {nv_ingest-2025.10.26.dev20251026 → nv_ingest-2025.10.28.dev20251028}/nv_ingest/api/v2/ingest.py +0 -0
- {nv_ingest-2025.10.26.dev20251026 → nv_ingest-2025.10.28.dev20251028}/nv_ingest/framework/__init__.py +0 -0
- {nv_ingest-2025.10.26.dev20251026 → nv_ingest-2025.10.28.dev20251028}/nv_ingest/framework/orchestration/__init__.py +0 -0
- {nv_ingest-2025.10.26.dev20251026 → nv_ingest-2025.10.28.dev20251028}/nv_ingest/framework/orchestration/execution/__init__.py +0 -0
- {nv_ingest-2025.10.26.dev20251026 → nv_ingest-2025.10.28.dev20251028}/nv_ingest/framework/orchestration/execution/helpers.py +0 -0
- {nv_ingest-2025.10.26.dev20251026 → nv_ingest-2025.10.28.dev20251028}/nv_ingest/framework/orchestration/execution/options.py +0 -0
- {nv_ingest-2025.10.26.dev20251026 → nv_ingest-2025.10.28.dev20251028}/nv_ingest/framework/orchestration/process/__init__.py +0 -0
- {nv_ingest-2025.10.26.dev20251026 → nv_ingest-2025.10.28.dev20251028}/nv_ingest/framework/orchestration/process/dependent_services.py +0 -0
- {nv_ingest-2025.10.26.dev20251026 → nv_ingest-2025.10.28.dev20251028}/nv_ingest/framework/orchestration/process/execution.py +0 -0
- {nv_ingest-2025.10.26.dev20251026 → nv_ingest-2025.10.28.dev20251028}/nv_ingest/framework/orchestration/process/lifecycle.py +0 -0
- {nv_ingest-2025.10.26.dev20251026 → nv_ingest-2025.10.28.dev20251028}/nv_ingest/framework/orchestration/process/strategies.py +0 -0
- {nv_ingest-2025.10.26.dev20251026 → nv_ingest-2025.10.28.dev20251028}/nv_ingest/framework/orchestration/process/termination.py +0 -0
- {nv_ingest-2025.10.26.dev20251026 → nv_ingest-2025.10.28.dev20251028}/nv_ingest/framework/orchestration/ray/__init__.py +0 -0
- {nv_ingest-2025.10.26.dev20251026 → nv_ingest-2025.10.28.dev20251028}/nv_ingest/framework/orchestration/ray/edges/__init__.py +0 -0
- {nv_ingest-2025.10.26.dev20251026 → nv_ingest-2025.10.28.dev20251028}/nv_ingest/framework/orchestration/ray/edges/async_queue_edge.py +0 -0
- {nv_ingest-2025.10.26.dev20251026 → nv_ingest-2025.10.28.dev20251028}/nv_ingest/framework/orchestration/ray/edges/ray_queue_edge.py +0 -0
- {nv_ingest-2025.10.26.dev20251026 → nv_ingest-2025.10.28.dev20251028}/nv_ingest/framework/orchestration/ray/edges/threaded_queue_edge.py +0 -0
- {nv_ingest-2025.10.26.dev20251026 → nv_ingest-2025.10.28.dev20251028}/nv_ingest/framework/orchestration/ray/examples/__init__.py +0 -0
- {nv_ingest-2025.10.26.dev20251026 → nv_ingest-2025.10.28.dev20251028}/nv_ingest/framework/orchestration/ray/examples/pipeline_test_harness.py +0 -0
- {nv_ingest-2025.10.26.dev20251026 → nv_ingest-2025.10.28.dev20251028}/nv_ingest/framework/orchestration/ray/examples/task_source_harness.py +0 -0
- {nv_ingest-2025.10.26.dev20251026 → nv_ingest-2025.10.28.dev20251028}/nv_ingest/framework/orchestration/ray/examples/task_source_sink_harness.py +0 -0
- {nv_ingest-2025.10.26.dev20251026 → nv_ingest-2025.10.28.dev20251028}/nv_ingest/framework/orchestration/ray/primitives/__init__.py +0 -0
- {nv_ingest-2025.10.26.dev20251026 → nv_ingest-2025.10.28.dev20251028}/nv_ingest/framework/orchestration/ray/primitives/dataclasses.py +0 -0
- {nv_ingest-2025.10.26.dev20251026 → nv_ingest-2025.10.28.dev20251028}/nv_ingest/framework/orchestration/ray/primitives/pipeline_monitor.py +0 -0
- {nv_ingest-2025.10.26.dev20251026 → nv_ingest-2025.10.28.dev20251028}/nv_ingest/framework/orchestration/ray/primitives/pipeline_topology.py +0 -0
- {nv_ingest-2025.10.26.dev20251026 → nv_ingest-2025.10.28.dev20251028}/nv_ingest/framework/orchestration/ray/primitives/ray_pipeline.py +0 -0
- {nv_ingest-2025.10.26.dev20251026 → nv_ingest-2025.10.28.dev20251028}/nv_ingest/framework/orchestration/ray/primitives/ray_stat_collector.py +0 -0
- {nv_ingest-2025.10.26.dev20251026 → nv_ingest-2025.10.28.dev20251028}/nv_ingest/framework/orchestration/ray/stages/__init__.py +0 -0
- {nv_ingest-2025.10.26.dev20251026 → nv_ingest-2025.10.28.dev20251028}/nv_ingest/framework/orchestration/ray/stages/extractors/__init__.py +0 -0
- {nv_ingest-2025.10.26.dev20251026 → nv_ingest-2025.10.28.dev20251028}/nv_ingest/framework/orchestration/ray/stages/extractors/audio_extractor.py +0 -0
- {nv_ingest-2025.10.26.dev20251026 → nv_ingest-2025.10.28.dev20251028}/nv_ingest/framework/orchestration/ray/stages/extractors/chart_extractor.py +0 -0
- {nv_ingest-2025.10.26.dev20251026 → nv_ingest-2025.10.28.dev20251028}/nv_ingest/framework/orchestration/ray/stages/extractors/docx_extractor.py +0 -0
- {nv_ingest-2025.10.26.dev20251026 → nv_ingest-2025.10.28.dev20251028}/nv_ingest/framework/orchestration/ray/stages/extractors/html_extractor.py +0 -0
- {nv_ingest-2025.10.26.dev20251026 → nv_ingest-2025.10.28.dev20251028}/nv_ingest/framework/orchestration/ray/stages/extractors/image_extractor.py +0 -0
- {nv_ingest-2025.10.26.dev20251026 → nv_ingest-2025.10.28.dev20251028}/nv_ingest/framework/orchestration/ray/stages/extractors/infographic_extractor.py +0 -0
- {nv_ingest-2025.10.26.dev20251026 → nv_ingest-2025.10.28.dev20251028}/nv_ingest/framework/orchestration/ray/stages/extractors/pdf_extractor.py +0 -0
- {nv_ingest-2025.10.26.dev20251026 → nv_ingest-2025.10.28.dev20251028}/nv_ingest/framework/orchestration/ray/stages/extractors/pptx_extractor.py +0 -0
- {nv_ingest-2025.10.26.dev20251026 → nv_ingest-2025.10.28.dev20251028}/nv_ingest/framework/orchestration/ray/stages/extractors/table_extractor.py +0 -0
- {nv_ingest-2025.10.26.dev20251026 → nv_ingest-2025.10.28.dev20251028}/nv_ingest/framework/orchestration/ray/stages/injectors/__init__.py +0 -0
- {nv_ingest-2025.10.26.dev20251026 → nv_ingest-2025.10.28.dev20251028}/nv_ingest/framework/orchestration/ray/stages/injectors/metadata_injector.py +0 -0
- {nv_ingest-2025.10.26.dev20251026 → nv_ingest-2025.10.28.dev20251028}/nv_ingest/framework/orchestration/ray/stages/meta/__init__.py +0 -0
- {nv_ingest-2025.10.26.dev20251026 → nv_ingest-2025.10.28.dev20251028}/nv_ingest/framework/orchestration/ray/stages/meta/ray_actor_edge_base.py +0 -0
- {nv_ingest-2025.10.26.dev20251026 → nv_ingest-2025.10.28.dev20251028}/nv_ingest/framework/orchestration/ray/stages/meta/ray_actor_sink_stage_base.py +0 -0
- {nv_ingest-2025.10.26.dev20251026 → nv_ingest-2025.10.28.dev20251028}/nv_ingest/framework/orchestration/ray/stages/meta/ray_actor_source_stage_base.py +0 -0
- {nv_ingest-2025.10.26.dev20251026 → nv_ingest-2025.10.28.dev20251028}/nv_ingest/framework/orchestration/ray/stages/meta/ray_actor_stage_base.py +0 -0
- {nv_ingest-2025.10.26.dev20251026 → nv_ingest-2025.10.28.dev20251028}/nv_ingest/framework/orchestration/ray/stages/mutate/__init__.py +0 -0
- {nv_ingest-2025.10.26.dev20251026 → nv_ingest-2025.10.28.dev20251028}/nv_ingest/framework/orchestration/ray/stages/mutate/image_dedup.py +0 -0
- {nv_ingest-2025.10.26.dev20251026 → nv_ingest-2025.10.28.dev20251028}/nv_ingest/framework/orchestration/ray/stages/mutate/image_filter.py +0 -0
- {nv_ingest-2025.10.26.dev20251026 → nv_ingest-2025.10.28.dev20251028}/nv_ingest/framework/orchestration/ray/stages/sinks/__init__.py +0 -0
- {nv_ingest-2025.10.26.dev20251026 → nv_ingest-2025.10.28.dev20251028}/nv_ingest/framework/orchestration/ray/stages/sinks/default_drain.py +0 -0
- {nv_ingest-2025.10.26.dev20251026 → nv_ingest-2025.10.28.dev20251028}/nv_ingest/framework/orchestration/ray/stages/sinks/message_broker_task_sink.py +0 -0
- {nv_ingest-2025.10.26.dev20251026 → nv_ingest-2025.10.28.dev20251028}/nv_ingest/framework/orchestration/ray/stages/sources/__init__.py +0 -0
- {nv_ingest-2025.10.26.dev20251026 → nv_ingest-2025.10.28.dev20251028}/nv_ingest/framework/orchestration/ray/stages/sources/message_broker_task_source.py +0 -0
- {nv_ingest-2025.10.26.dev20251026 → nv_ingest-2025.10.28.dev20251028}/nv_ingest/framework/orchestration/ray/stages/storage/__init__.py +0 -0
- {nv_ingest-2025.10.26.dev20251026 → nv_ingest-2025.10.28.dev20251028}/nv_ingest/framework/orchestration/ray/stages/storage/image_storage.py +0 -0
- {nv_ingest-2025.10.26.dev20251026 → nv_ingest-2025.10.28.dev20251028}/nv_ingest/framework/orchestration/ray/stages/storage/store_embeddings.py +0 -0
- {nv_ingest-2025.10.26.dev20251026 → nv_ingest-2025.10.28.dev20251028}/nv_ingest/framework/orchestration/ray/stages/telemetry/__init__.py +0 -0
- {nv_ingest-2025.10.26.dev20251026 → nv_ingest-2025.10.28.dev20251028}/nv_ingest/framework/orchestration/ray/stages/telemetry/job_counter.py +0 -0
- {nv_ingest-2025.10.26.dev20251026 → nv_ingest-2025.10.28.dev20251028}/nv_ingest/framework/orchestration/ray/stages/telemetry/otel_meter.py +0 -0
- {nv_ingest-2025.10.26.dev20251026 → nv_ingest-2025.10.28.dev20251028}/nv_ingest/framework/orchestration/ray/stages/telemetry/otel_tracer.py +0 -0
- {nv_ingest-2025.10.26.dev20251026 → nv_ingest-2025.10.28.dev20251028}/nv_ingest/framework/orchestration/ray/stages/transforms/__init__.py +0 -0
- {nv_ingest-2025.10.26.dev20251026 → nv_ingest-2025.10.28.dev20251028}/nv_ingest/framework/orchestration/ray/stages/transforms/image_caption.py +0 -0
- {nv_ingest-2025.10.26.dev20251026 → nv_ingest-2025.10.28.dev20251028}/nv_ingest/framework/orchestration/ray/stages/transforms/text_embed.py +0 -0
- {nv_ingest-2025.10.26.dev20251026 → nv_ingest-2025.10.28.dev20251028}/nv_ingest/framework/orchestration/ray/stages/transforms/text_splitter.py +0 -0
- {nv_ingest-2025.10.26.dev20251026 → nv_ingest-2025.10.28.dev20251028}/nv_ingest/framework/orchestration/ray/stages/utility/__init__.py +0 -0
- {nv_ingest-2025.10.26.dev20251026 → nv_ingest-2025.10.28.dev20251028}/nv_ingest/framework/orchestration/ray/stages/utility/throughput_monitor.py +0 -0
- {nv_ingest-2025.10.26.dev20251026 → nv_ingest-2025.10.28.dev20251028}/nv_ingest/framework/orchestration/ray/util/__init__.py +0 -0
- {nv_ingest-2025.10.26.dev20251026 → nv_ingest-2025.10.28.dev20251028}/nv_ingest/framework/orchestration/ray/util/env_config.py +0 -0
- {nv_ingest-2025.10.26.dev20251026 → nv_ingest-2025.10.28.dev20251028}/nv_ingest/framework/orchestration/ray/util/pipeline/__init__.py +0 -0
- {nv_ingest-2025.10.26.dev20251026 → nv_ingest-2025.10.28.dev20251028}/nv_ingest/framework/orchestration/ray/util/pipeline/pid_controller.py +0 -0
- {nv_ingest-2025.10.26.dev20251026 → nv_ingest-2025.10.28.dev20251028}/nv_ingest/framework/orchestration/ray/util/pipeline/pipeline_runners.py +0 -0
- {nv_ingest-2025.10.26.dev20251026 → nv_ingest-2025.10.28.dev20251028}/nv_ingest/framework/orchestration/ray/util/pipeline/tools.py +0 -0
- {nv_ingest-2025.10.26.dev20251026 → nv_ingest-2025.10.28.dev20251028}/nv_ingest/framework/orchestration/ray/util/system_tools/__init__.py +0 -0
- {nv_ingest-2025.10.26.dev20251026 → nv_ingest-2025.10.28.dev20251028}/nv_ingest/framework/orchestration/ray/util/system_tools/memory.py +0 -0
- {nv_ingest-2025.10.26.dev20251026 → nv_ingest-2025.10.28.dev20251028}/nv_ingest/framework/orchestration/ray/util/system_tools/visualizers.py +0 -0
- {nv_ingest-2025.10.26.dev20251026 → nv_ingest-2025.10.28.dev20251028}/nv_ingest/framework/schemas/__init__.py +0 -0
- {nv_ingest-2025.10.26.dev20251026 → nv_ingest-2025.10.28.dev20251028}/nv_ingest/framework/schemas/framework_ingest_config_schema.py +0 -0
- {nv_ingest-2025.10.26.dev20251026 → nv_ingest-2025.10.28.dev20251028}/nv_ingest/framework/schemas/framework_job_counter_schema.py +0 -0
- {nv_ingest-2025.10.26.dev20251026 → nv_ingest-2025.10.28.dev20251028}/nv_ingest/framework/schemas/framework_message_broker_sink_schema.py +0 -0
- {nv_ingest-2025.10.26.dev20251026 → nv_ingest-2025.10.28.dev20251028}/nv_ingest/framework/schemas/framework_message_broker_source_schema.py +0 -0
- {nv_ingest-2025.10.26.dev20251026 → nv_ingest-2025.10.28.dev20251028}/nv_ingest/framework/schemas/framework_message_wrapper_schema.py +0 -0
- {nv_ingest-2025.10.26.dev20251026 → nv_ingest-2025.10.28.dev20251028}/nv_ingest/framework/schemas/framework_metadata_injector_schema.py +0 -0
- {nv_ingest-2025.10.26.dev20251026 → nv_ingest-2025.10.28.dev20251028}/nv_ingest/framework/schemas/framework_otel_meter_schema.py +0 -0
- {nv_ingest-2025.10.26.dev20251026 → nv_ingest-2025.10.28.dev20251028}/nv_ingest/framework/schemas/framework_otel_tracer_schema.py +0 -0
- {nv_ingest-2025.10.26.dev20251026 → nv_ingest-2025.10.28.dev20251028}/nv_ingest/framework/schemas/framework_processing_job_schema.py +0 -0
- {nv_ingest-2025.10.26.dev20251026 → nv_ingest-2025.10.28.dev20251028}/nv_ingest/framework/schemas/framework_task_injection_schema.py +0 -0
- {nv_ingest-2025.10.26.dev20251026 → nv_ingest-2025.10.28.dev20251028}/nv_ingest/framework/schemas/framework_vdb_task_sink_schema.py +0 -0
- {nv_ingest-2025.10.26.dev20251026 → nv_ingest-2025.10.28.dev20251028}/nv_ingest/framework/util/__init__.py +0 -0
- {nv_ingest-2025.10.26.dev20251026 → nv_ingest-2025.10.28.dev20251028}/nv_ingest/framework/util/flow_control/__init__.py +0 -0
- {nv_ingest-2025.10.26.dev20251026 → nv_ingest-2025.10.28.dev20251028}/nv_ingest/framework/util/flow_control/filter_by_task.py +0 -0
- {nv_ingest-2025.10.26.dev20251026 → nv_ingest-2025.10.28.dev20251028}/nv_ingest/framework/util/flow_control/udf_intercept.py +0 -0
- {nv_ingest-2025.10.26.dev20251026 → nv_ingest-2025.10.28.dev20251028}/nv_ingest/framework/util/service/__init__.py +0 -0
- {nv_ingest-2025.10.26.dev20251026 → nv_ingest-2025.10.28.dev20251028}/nv_ingest/framework/util/service/impl/__init__.py +0 -0
- {nv_ingest-2025.10.26.dev20251026 → nv_ingest-2025.10.28.dev20251028}/nv_ingest/framework/util/service/impl/ingest/__init__.py +0 -0
- {nv_ingest-2025.10.26.dev20251026 → nv_ingest-2025.10.28.dev20251028}/nv_ingest/framework/util/service/impl/ingest/redis_ingest_service.py +0 -0
- {nv_ingest-2025.10.26.dev20251026 → nv_ingest-2025.10.28.dev20251028}/nv_ingest/framework/util/service/meta/__init__.py +0 -0
- {nv_ingest-2025.10.26.dev20251026 → nv_ingest-2025.10.28.dev20251028}/nv_ingest/framework/util/service/meta/ingest/__init__.py +0 -0
- {nv_ingest-2025.10.26.dev20251026 → nv_ingest-2025.10.28.dev20251028}/nv_ingest/framework/util/service/meta/ingest/ingest_service_meta.py +0 -0
- {nv_ingest-2025.10.26.dev20251026 → nv_ingest-2025.10.28.dev20251028}/nv_ingest/framework/util/telemetry/__init__.py +0 -0
- {nv_ingest-2025.10.26.dev20251026 → nv_ingest-2025.10.28.dev20251028}/nv_ingest/framework/util/telemetry/global_stats.py +0 -0
- {nv_ingest-2025.10.26.dev20251026 → nv_ingest-2025.10.28.dev20251028}/nv_ingest/pipeline/__init__.py +0 -0
- {nv_ingest-2025.10.26.dev20251026 → nv_ingest-2025.10.28.dev20251028}/nv_ingest/pipeline/config/__init__.py +0 -0
- {nv_ingest-2025.10.26.dev20251026 → nv_ingest-2025.10.28.dev20251028}/nv_ingest/pipeline/config/loaders.py +0 -0
- {nv_ingest-2025.10.26.dev20251026 → nv_ingest-2025.10.28.dev20251028}/nv_ingest/pipeline/config/replica_resolver.py +0 -0
- {nv_ingest-2025.10.26.dev20251026 → nv_ingest-2025.10.28.dev20251028}/nv_ingest/pipeline/default_libmode_pipeline_impl.py +0 -0
- {nv_ingest-2025.10.26.dev20251026 → nv_ingest-2025.10.28.dev20251028}/nv_ingest/pipeline/default_pipeline_impl.py +0 -0
- {nv_ingest-2025.10.26.dev20251026 → nv_ingest-2025.10.28.dev20251028}/nv_ingest/pipeline/ingest_pipeline.py +0 -0
- {nv_ingest-2025.10.26.dev20251026 → nv_ingest-2025.10.28.dev20251028}/nv_ingest/pipeline/pipeline_schema.py +0 -0
- {nv_ingest-2025.10.26.dev20251026 → nv_ingest-2025.10.28.dev20251028}/nv_ingest/version.py +0 -0
- {nv_ingest-2025.10.26.dev20251026 → nv_ingest-2025.10.28.dev20251028}/nv_ingest.egg-info/SOURCES.txt +0 -0
- {nv_ingest-2025.10.26.dev20251026 → nv_ingest-2025.10.28.dev20251028}/nv_ingest.egg-info/dependency_links.txt +0 -0
- {nv_ingest-2025.10.26.dev20251026 → nv_ingest-2025.10.28.dev20251028}/nv_ingest.egg-info/requires.txt +0 -0
- {nv_ingest-2025.10.26.dev20251026 → nv_ingest-2025.10.28.dev20251028}/nv_ingest.egg-info/top_level.txt +0 -0
- {nv_ingest-2025.10.26.dev20251026 → nv_ingest-2025.10.28.dev20251028}/pyproject.toml +0 -0
- {nv_ingest-2025.10.26.dev20251026 → nv_ingest-2025.10.28.dev20251028}/setup.cfg +0 -0
{nv_ingest-2025.10.26.dev20251026 → nv_ingest-2025.10.28.dev20251028}/nv_ingest/api/v2/README.md
RENAMED
|
@@ -11,15 +11,6 @@ The V2 API introduces automatic PDF splitting at the REST layer to improve proce
|
|
|
11
11
|
3. **Transparent Aggregation**: Results are automatically aggregated when fetching parent jobs
|
|
12
12
|
4. **Backward Compatible**: PDFs with page counts ≤ `PDF_SPLIT_PAGE_COUNT` behave identical to V1
|
|
13
13
|
|
|
14
|
-
## Tracing & Aggregated Metadata
|
|
15
|
-
|
|
16
|
-
- V2 endpoints open an OpenTelemetry span using the shared `traced_endpoint` decorator. The span name defaults to the function name, or can be overridden when applying the decorator.
|
|
17
|
-
- `submit_job_v2` records the parent span's `trace_id` into each subjob's `tracing_options`, enabling downstream Ray stages (e.g., the message broker sink) to attach chunk-level telemetry consistently.
|
|
18
|
-
- Response headers still return `x-trace-id` derived from the active span context, allowing clients to correlate downstream work.
|
|
19
|
-
- When `/v2/fetch_job/{parent_id}` aggregates completed chunks, it captures any `trace` / `annotations` dictionaries emitted by the sink for each subjob and includes them in the response payload (see "Aggregated response" below).
|
|
20
|
-
|
|
21
|
-
This behaviour matches the V1 tracing model and sets the foundation for adding W3C `traceparent` propagation in future changes.
|
|
22
|
-
|
|
23
14
|
## How It Works
|
|
24
15
|
|
|
25
16
|
1. **Submit**: When a PDF with pages exceeding `PDF_SPLIT_PAGE_COUNT` is submitted to `/v2/submit_job`:
|
|
@@ -36,6 +27,33 @@ This behaviour matches the V1 tracing model and sets the foundation for adding W
|
|
|
36
27
|
- Pending work returns 202 (processing)
|
|
37
28
|
- Failed chunks are noted without failing the entire job; metadata records which chunks failed
|
|
38
29
|
|
|
30
|
+
|
|
31
|
+
## Client Library Features
|
|
32
|
+
|
|
33
|
+
### Accessing Trace Metrics
|
|
34
|
+
|
|
35
|
+
The Python client library provides convenient access to trace metrics via the `return_traces` parameter:
|
|
36
|
+
|
|
37
|
+
```python
|
|
38
|
+
from nv_ingest_client.client import Ingestor
|
|
39
|
+
|
|
40
|
+
ingestor = Ingestor(
|
|
41
|
+
message_client_hostname="localhost",
|
|
42
|
+
message_client_port=7670,
|
|
43
|
+
message_client_kwargs={"api_version": "v2"}
|
|
44
|
+
).files("/path/to/pdfs").extract().embed()
|
|
45
|
+
|
|
46
|
+
# Get results with trace metrics
|
|
47
|
+
results, traces = ingestor.ingest(return_traces=True)
|
|
48
|
+
|
|
49
|
+
# Access timing for first document
|
|
50
|
+
pdf_time = traces[0]["trace::resident_time::pdf_extractor"] / 1e9
|
|
51
|
+
table_time = traces[0]["trace::resident_time::table_extractor"] / 1e9
|
|
52
|
+
print(f"PDF: {pdf_time:.2f}s, Tables: {table_time:.2f}s")
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
**Note:** For split PDFs, `resident_time` represents aggregated compute time across all chunks. For non-split PDFs, it is computed client-side from entry/exit pairs.
|
|
56
|
+
|
|
39
57
|
### Aggregated response
|
|
40
58
|
|
|
41
59
|
The fetch endpoint returns a JSON body shaped like the following:
|
|
@@ -163,15 +181,23 @@ For split PDFs, parent-level metrics are automatically computed for each stage (
|
|
|
163
181
|
- Failed chunk entries remain in `failed_subjobs`; missing chunks indicate the sink did not emit telemetry
|
|
164
182
|
- **To access chunk traces:** Use `metadata.trace_segments[]` - each segment contains the full trace dict for that chunk
|
|
165
183
|
|
|
166
|
-
|
|
184
|
+
### Advanced: Accessing Full Metadata
|
|
167
185
|
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
186
|
+
For advanced use cases requiring per-chunk trace breakdown or full metadata, use `include_parent_trace_ids`:
|
|
187
|
+
|
|
188
|
+
```python
|
|
189
|
+
results, traces, parent_trace_ids = ingestor.ingest(
|
|
190
|
+
return_traces=True,
|
|
191
|
+
include_parent_trace_ids=True
|
|
192
|
+
)
|
|
193
|
+
|
|
194
|
+
# Fetch full parent job metadata (including trace_segments)
|
|
195
|
+
import requests
|
|
196
|
+
response = requests.get(f"http://localhost:7670/v2/fetch_job/{parent_trace_ids[0]}")
|
|
197
|
+
metadata = response.json()["metadata"]
|
|
173
198
|
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
199
|
+
# Access per-chunk traces
|
|
200
|
+
for segment in metadata["trace_segments"]:
|
|
201
|
+
print(f"Chunk {segment['chunk_index']}: pages {segment['start_page']}-{segment['end_page']}")
|
|
202
|
+
print(f" Traces: {len(segment['trace'])} entries")
|
|
177
203
|
```
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{nv_ingest-2025.10.26.dev20251026 → nv_ingest-2025.10.28.dev20251028}/nv_ingest/api/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{nv_ingest-2025.10.26.dev20251026 → nv_ingest-2025.10.28.dev20251028}/nv_ingest/api/tracing.py
RENAMED
|
File without changes
|
{nv_ingest-2025.10.26.dev20251026 → nv_ingest-2025.10.28.dev20251028}/nv_ingest/api/v1/__init__.py
RENAMED
|
File without changes
|
{nv_ingest-2025.10.26.dev20251026 → nv_ingest-2025.10.28.dev20251028}/nv_ingest/api/v1/health.py
RENAMED
|
File without changes
|
{nv_ingest-2025.10.26.dev20251026 → nv_ingest-2025.10.28.dev20251028}/nv_ingest/api/v1/ingest.py
RENAMED
|
File without changes
|
{nv_ingest-2025.10.26.dev20251026 → nv_ingest-2025.10.28.dev20251028}/nv_ingest/api/v1/metrics.py
RENAMED
|
File without changes
|
{nv_ingest-2025.10.26.dev20251026 → nv_ingest-2025.10.28.dev20251028}/nv_ingest/api/v2/__init__.py
RENAMED
|
File without changes
|
{nv_ingest-2025.10.26.dev20251026 → nv_ingest-2025.10.28.dev20251028}/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
|
{nv_ingest-2025.10.26.dev20251026 → nv_ingest-2025.10.28.dev20251028}/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
|
{nv_ingest-2025.10.26.dev20251026 → nv_ingest-2025.10.28.dev20251028}/nv_ingest.egg-info/SOURCES.txt
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|