nv-ingest-api 2025.10.29.dev20251029__tar.gz → 2025.10.30.dev20251030__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-api might be problematic. Click here for more details.

Files changed (181) hide show
  1. {nv_ingest_api-2025.10.29.dev20251029/src/nv_ingest_api.egg-info → nv_ingest_api-2025.10.30.dev20251030}/PKG-INFO +1 -1
  2. {nv_ingest_api-2025.10.29.dev20251029 → nv_ingest_api-2025.10.30.dev20251030}/src/nv_ingest_api/internal/primitives/nim/nim_client.py +124 -14
  3. {nv_ingest_api-2025.10.29.dev20251029 → nv_ingest_api-2025.10.30.dev20251030/src/nv_ingest_api.egg-info}/PKG-INFO +1 -1
  4. {nv_ingest_api-2025.10.29.dev20251029 → nv_ingest_api-2025.10.30.dev20251030}/LICENSE +0 -0
  5. {nv_ingest_api-2025.10.29.dev20251029 → nv_ingest_api-2025.10.30.dev20251030}/MANIFEST.in +0 -0
  6. {nv_ingest_api-2025.10.29.dev20251029 → nv_ingest_api-2025.10.30.dev20251030}/README.md +0 -0
  7. {nv_ingest_api-2025.10.29.dev20251029 → nv_ingest_api-2025.10.30.dev20251030}/pyproject.toml +0 -0
  8. {nv_ingest_api-2025.10.29.dev20251029 → nv_ingest_api-2025.10.30.dev20251030}/setup.cfg +0 -0
  9. {nv_ingest_api-2025.10.29.dev20251029 → nv_ingest_api-2025.10.30.dev20251030}/src/nv_ingest_api/__init__.py +0 -0
  10. {nv_ingest_api-2025.10.29.dev20251029 → nv_ingest_api-2025.10.30.dev20251030}/src/nv_ingest_api/interface/__init__.py +0 -0
  11. {nv_ingest_api-2025.10.29.dev20251029 → nv_ingest_api-2025.10.30.dev20251030}/src/nv_ingest_api/interface/extract.py +0 -0
  12. {nv_ingest_api-2025.10.29.dev20251029 → nv_ingest_api-2025.10.30.dev20251030}/src/nv_ingest_api/interface/mutate.py +0 -0
  13. {nv_ingest_api-2025.10.29.dev20251029 → nv_ingest_api-2025.10.30.dev20251030}/src/nv_ingest_api/interface/store.py +0 -0
  14. {nv_ingest_api-2025.10.29.dev20251029 → nv_ingest_api-2025.10.30.dev20251030}/src/nv_ingest_api/interface/transform.py +0 -0
  15. {nv_ingest_api-2025.10.29.dev20251029 → nv_ingest_api-2025.10.30.dev20251030}/src/nv_ingest_api/interface/utility.py +0 -0
  16. {nv_ingest_api-2025.10.29.dev20251029 → nv_ingest_api-2025.10.30.dev20251030}/src/nv_ingest_api/internal/__init__.py +0 -0
  17. {nv_ingest_api-2025.10.29.dev20251029 → nv_ingest_api-2025.10.30.dev20251030}/src/nv_ingest_api/internal/enums/__init__.py +0 -0
  18. {nv_ingest_api-2025.10.29.dev20251029 → nv_ingest_api-2025.10.30.dev20251030}/src/nv_ingest_api/internal/enums/common.py +0 -0
  19. {nv_ingest_api-2025.10.29.dev20251029 → nv_ingest_api-2025.10.30.dev20251030}/src/nv_ingest_api/internal/extract/__init__.py +0 -0
  20. {nv_ingest_api-2025.10.29.dev20251029 → nv_ingest_api-2025.10.30.dev20251030}/src/nv_ingest_api/internal/extract/audio/__init__.py +0 -0
  21. {nv_ingest_api-2025.10.29.dev20251029 → nv_ingest_api-2025.10.30.dev20251030}/src/nv_ingest_api/internal/extract/audio/audio_extraction.py +0 -0
  22. {nv_ingest_api-2025.10.29.dev20251029 → nv_ingest_api-2025.10.30.dev20251030}/src/nv_ingest_api/internal/extract/docx/__init__.py +0 -0
  23. {nv_ingest_api-2025.10.29.dev20251029 → nv_ingest_api-2025.10.30.dev20251030}/src/nv_ingest_api/internal/extract/docx/docx_extractor.py +0 -0
  24. {nv_ingest_api-2025.10.29.dev20251029 → nv_ingest_api-2025.10.30.dev20251030}/src/nv_ingest_api/internal/extract/docx/engines/__init__.py +0 -0
  25. {nv_ingest_api-2025.10.29.dev20251029 → nv_ingest_api-2025.10.30.dev20251030}/src/nv_ingest_api/internal/extract/docx/engines/docxreader_helpers/__init__.py +0 -0
  26. {nv_ingest_api-2025.10.29.dev20251029 → nv_ingest_api-2025.10.30.dev20251030}/src/nv_ingest_api/internal/extract/docx/engines/docxreader_helpers/docx_helper.py +0 -0
  27. {nv_ingest_api-2025.10.29.dev20251029 → nv_ingest_api-2025.10.30.dev20251030}/src/nv_ingest_api/internal/extract/docx/engines/docxreader_helpers/docxreader.py +0 -0
  28. {nv_ingest_api-2025.10.29.dev20251029 → nv_ingest_api-2025.10.30.dev20251030}/src/nv_ingest_api/internal/extract/html/__init__.py +0 -0
  29. {nv_ingest_api-2025.10.29.dev20251029 → nv_ingest_api-2025.10.30.dev20251030}/src/nv_ingest_api/internal/extract/html/html_extractor.py +0 -0
  30. {nv_ingest_api-2025.10.29.dev20251029 → nv_ingest_api-2025.10.30.dev20251030}/src/nv_ingest_api/internal/extract/image/__init__.py +0 -0
  31. {nv_ingest_api-2025.10.29.dev20251029 → nv_ingest_api-2025.10.30.dev20251030}/src/nv_ingest_api/internal/extract/image/chart_extractor.py +0 -0
  32. {nv_ingest_api-2025.10.29.dev20251029 → nv_ingest_api-2025.10.30.dev20251030}/src/nv_ingest_api/internal/extract/image/image_extractor.py +0 -0
  33. {nv_ingest_api-2025.10.29.dev20251029 → nv_ingest_api-2025.10.30.dev20251030}/src/nv_ingest_api/internal/extract/image/image_helpers/__init__.py +0 -0
  34. {nv_ingest_api-2025.10.29.dev20251029 → nv_ingest_api-2025.10.30.dev20251030}/src/nv_ingest_api/internal/extract/image/image_helpers/common.py +0 -0
  35. {nv_ingest_api-2025.10.29.dev20251029 → nv_ingest_api-2025.10.30.dev20251030}/src/nv_ingest_api/internal/extract/image/infographic_extractor.py +0 -0
  36. {nv_ingest_api-2025.10.29.dev20251029 → nv_ingest_api-2025.10.30.dev20251030}/src/nv_ingest_api/internal/extract/image/table_extractor.py +0 -0
  37. {nv_ingest_api-2025.10.29.dev20251029 → nv_ingest_api-2025.10.30.dev20251030}/src/nv_ingest_api/internal/extract/pdf/__init__.py +0 -0
  38. {nv_ingest_api-2025.10.29.dev20251029 → nv_ingest_api-2025.10.30.dev20251030}/src/nv_ingest_api/internal/extract/pdf/engines/__init__.py +0 -0
  39. {nv_ingest_api-2025.10.29.dev20251029 → nv_ingest_api-2025.10.30.dev20251030}/src/nv_ingest_api/internal/extract/pdf/engines/adobe.py +0 -0
  40. {nv_ingest_api-2025.10.29.dev20251029 → nv_ingest_api-2025.10.30.dev20251030}/src/nv_ingest_api/internal/extract/pdf/engines/llama.py +0 -0
  41. {nv_ingest_api-2025.10.29.dev20251029 → nv_ingest_api-2025.10.30.dev20251030}/src/nv_ingest_api/internal/extract/pdf/engines/nemoretriever.py +0 -0
  42. {nv_ingest_api-2025.10.29.dev20251029 → nv_ingest_api-2025.10.30.dev20251030}/src/nv_ingest_api/internal/extract/pdf/engines/pdf_helpers/__init__.py +0 -0
  43. {nv_ingest_api-2025.10.29.dev20251029 → nv_ingest_api-2025.10.30.dev20251030}/src/nv_ingest_api/internal/extract/pdf/engines/pdfium.py +0 -0
  44. {nv_ingest_api-2025.10.29.dev20251029 → nv_ingest_api-2025.10.30.dev20251030}/src/nv_ingest_api/internal/extract/pdf/engines/tika.py +0 -0
  45. {nv_ingest_api-2025.10.29.dev20251029 → nv_ingest_api-2025.10.30.dev20251030}/src/nv_ingest_api/internal/extract/pdf/engines/unstructured_io.py +0 -0
  46. {nv_ingest_api-2025.10.29.dev20251029 → nv_ingest_api-2025.10.30.dev20251030}/src/nv_ingest_api/internal/extract/pdf/pdf_extractor.py +0 -0
  47. {nv_ingest_api-2025.10.29.dev20251029 → nv_ingest_api-2025.10.30.dev20251030}/src/nv_ingest_api/internal/extract/pptx/__init__.py +0 -0
  48. {nv_ingest_api-2025.10.29.dev20251029 → nv_ingest_api-2025.10.30.dev20251030}/src/nv_ingest_api/internal/extract/pptx/engines/__init__.py +0 -0
  49. {nv_ingest_api-2025.10.29.dev20251029 → nv_ingest_api-2025.10.30.dev20251030}/src/nv_ingest_api/internal/extract/pptx/engines/pptx_helper.py +0 -0
  50. {nv_ingest_api-2025.10.29.dev20251029 → nv_ingest_api-2025.10.30.dev20251030}/src/nv_ingest_api/internal/extract/pptx/pptx_extractor.py +0 -0
  51. {nv_ingest_api-2025.10.29.dev20251029 → nv_ingest_api-2025.10.30.dev20251030}/src/nv_ingest_api/internal/meta/__init__.py +0 -0
  52. {nv_ingest_api-2025.10.29.dev20251029 → nv_ingest_api-2025.10.30.dev20251030}/src/nv_ingest_api/internal/meta/udf.py +0 -0
  53. {nv_ingest_api-2025.10.29.dev20251029 → nv_ingest_api-2025.10.30.dev20251030}/src/nv_ingest_api/internal/mutate/__init__.py +0 -0
  54. {nv_ingest_api-2025.10.29.dev20251029 → nv_ingest_api-2025.10.30.dev20251030}/src/nv_ingest_api/internal/mutate/deduplicate.py +0 -0
  55. {nv_ingest_api-2025.10.29.dev20251029 → nv_ingest_api-2025.10.30.dev20251030}/src/nv_ingest_api/internal/mutate/filter.py +0 -0
  56. {nv_ingest_api-2025.10.29.dev20251029 → nv_ingest_api-2025.10.30.dev20251030}/src/nv_ingest_api/internal/primitives/__init__.py +0 -0
  57. {nv_ingest_api-2025.10.29.dev20251029 → nv_ingest_api-2025.10.30.dev20251030}/src/nv_ingest_api/internal/primitives/control_message_task.py +0 -0
  58. {nv_ingest_api-2025.10.29.dev20251029 → nv_ingest_api-2025.10.30.dev20251030}/src/nv_ingest_api/internal/primitives/ingest_control_message.py +0 -0
  59. {nv_ingest_api-2025.10.29.dev20251029 → nv_ingest_api-2025.10.30.dev20251030}/src/nv_ingest_api/internal/primitives/nim/__init__.py +0 -0
  60. {nv_ingest_api-2025.10.29.dev20251029 → nv_ingest_api-2025.10.30.dev20251030}/src/nv_ingest_api/internal/primitives/nim/default_values.py +0 -0
  61. {nv_ingest_api-2025.10.29.dev20251029 → nv_ingest_api-2025.10.30.dev20251030}/src/nv_ingest_api/internal/primitives/nim/model_interface/__init__.py +0 -0
  62. {nv_ingest_api-2025.10.29.dev20251029 → nv_ingest_api-2025.10.30.dev20251030}/src/nv_ingest_api/internal/primitives/nim/model_interface/cached.py +0 -0
  63. {nv_ingest_api-2025.10.29.dev20251029 → nv_ingest_api-2025.10.30.dev20251030}/src/nv_ingest_api/internal/primitives/nim/model_interface/decorators.py +0 -0
  64. {nv_ingest_api-2025.10.29.dev20251029 → nv_ingest_api-2025.10.30.dev20251030}/src/nv_ingest_api/internal/primitives/nim/model_interface/deplot.py +0 -0
  65. {nv_ingest_api-2025.10.29.dev20251029 → nv_ingest_api-2025.10.30.dev20251030}/src/nv_ingest_api/internal/primitives/nim/model_interface/helpers.py +0 -0
  66. {nv_ingest_api-2025.10.29.dev20251029 → nv_ingest_api-2025.10.30.dev20251030}/src/nv_ingest_api/internal/primitives/nim/model_interface/nemoretriever_parse.py +0 -0
  67. {nv_ingest_api-2025.10.29.dev20251029 → nv_ingest_api-2025.10.30.dev20251030}/src/nv_ingest_api/internal/primitives/nim/model_interface/ocr.py +0 -0
  68. {nv_ingest_api-2025.10.29.dev20251029 → nv_ingest_api-2025.10.30.dev20251030}/src/nv_ingest_api/internal/primitives/nim/model_interface/parakeet.py +0 -0
  69. {nv_ingest_api-2025.10.29.dev20251029 → nv_ingest_api-2025.10.30.dev20251030}/src/nv_ingest_api/internal/primitives/nim/model_interface/text_embedding.py +0 -0
  70. {nv_ingest_api-2025.10.29.dev20251029 → nv_ingest_api-2025.10.30.dev20251030}/src/nv_ingest_api/internal/primitives/nim/model_interface/vlm.py +0 -0
  71. {nv_ingest_api-2025.10.29.dev20251029 → nv_ingest_api-2025.10.30.dev20251030}/src/nv_ingest_api/internal/primitives/nim/model_interface/yolox.py +0 -0
  72. {nv_ingest_api-2025.10.29.dev20251029 → nv_ingest_api-2025.10.30.dev20251030}/src/nv_ingest_api/internal/primitives/nim/nim_model_interface.py +0 -0
  73. {nv_ingest_api-2025.10.29.dev20251029 → nv_ingest_api-2025.10.30.dev20251030}/src/nv_ingest_api/internal/primitives/tracing/__init__.py +0 -0
  74. {nv_ingest_api-2025.10.29.dev20251029 → nv_ingest_api-2025.10.30.dev20251030}/src/nv_ingest_api/internal/primitives/tracing/latency.py +0 -0
  75. {nv_ingest_api-2025.10.29.dev20251029 → nv_ingest_api-2025.10.30.dev20251030}/src/nv_ingest_api/internal/primitives/tracing/logging.py +0 -0
  76. {nv_ingest_api-2025.10.29.dev20251029 → nv_ingest_api-2025.10.30.dev20251030}/src/nv_ingest_api/internal/primitives/tracing/tagging.py +0 -0
  77. {nv_ingest_api-2025.10.29.dev20251029 → nv_ingest_api-2025.10.30.dev20251030}/src/nv_ingest_api/internal/schemas/__init__.py +0 -0
  78. {nv_ingest_api-2025.10.29.dev20251029 → nv_ingest_api-2025.10.30.dev20251030}/src/nv_ingest_api/internal/schemas/extract/__init__.py +0 -0
  79. {nv_ingest_api-2025.10.29.dev20251029 → nv_ingest_api-2025.10.30.dev20251030}/src/nv_ingest_api/internal/schemas/extract/extract_audio_schema.py +0 -0
  80. {nv_ingest_api-2025.10.29.dev20251029 → nv_ingest_api-2025.10.30.dev20251030}/src/nv_ingest_api/internal/schemas/extract/extract_chart_schema.py +0 -0
  81. {nv_ingest_api-2025.10.29.dev20251029 → nv_ingest_api-2025.10.30.dev20251030}/src/nv_ingest_api/internal/schemas/extract/extract_docx_schema.py +0 -0
  82. {nv_ingest_api-2025.10.29.dev20251029 → nv_ingest_api-2025.10.30.dev20251030}/src/nv_ingest_api/internal/schemas/extract/extract_html_schema.py +0 -0
  83. {nv_ingest_api-2025.10.29.dev20251029 → nv_ingest_api-2025.10.30.dev20251030}/src/nv_ingest_api/internal/schemas/extract/extract_image_schema.py +0 -0
  84. {nv_ingest_api-2025.10.29.dev20251029 → nv_ingest_api-2025.10.30.dev20251030}/src/nv_ingest_api/internal/schemas/extract/extract_infographic_schema.py +0 -0
  85. {nv_ingest_api-2025.10.29.dev20251029 → nv_ingest_api-2025.10.30.dev20251030}/src/nv_ingest_api/internal/schemas/extract/extract_pdf_schema.py +0 -0
  86. {nv_ingest_api-2025.10.29.dev20251029 → nv_ingest_api-2025.10.30.dev20251030}/src/nv_ingest_api/internal/schemas/extract/extract_pptx_schema.py +0 -0
  87. {nv_ingest_api-2025.10.29.dev20251029 → nv_ingest_api-2025.10.30.dev20251030}/src/nv_ingest_api/internal/schemas/extract/extract_table_schema.py +0 -0
  88. {nv_ingest_api-2025.10.29.dev20251029 → nv_ingest_api-2025.10.30.dev20251030}/src/nv_ingest_api/internal/schemas/message_brokers/__init__.py +0 -0
  89. {nv_ingest_api-2025.10.29.dev20251029 → nv_ingest_api-2025.10.30.dev20251030}/src/nv_ingest_api/internal/schemas/message_brokers/message_broker_client_schema.py +0 -0
  90. {nv_ingest_api-2025.10.29.dev20251029 → nv_ingest_api-2025.10.30.dev20251030}/src/nv_ingest_api/internal/schemas/message_brokers/request_schema.py +0 -0
  91. {nv_ingest_api-2025.10.29.dev20251029 → nv_ingest_api-2025.10.30.dev20251030}/src/nv_ingest_api/internal/schemas/message_brokers/response_schema.py +0 -0
  92. {nv_ingest_api-2025.10.29.dev20251029 → nv_ingest_api-2025.10.30.dev20251030}/src/nv_ingest_api/internal/schemas/meta/__init__.py +0 -0
  93. {nv_ingest_api-2025.10.29.dev20251029 → nv_ingest_api-2025.10.30.dev20251030}/src/nv_ingest_api/internal/schemas/meta/base_model_noext.py +0 -0
  94. {nv_ingest_api-2025.10.29.dev20251029 → nv_ingest_api-2025.10.30.dev20251030}/src/nv_ingest_api/internal/schemas/meta/ingest_job_schema.py +0 -0
  95. {nv_ingest_api-2025.10.29.dev20251029 → nv_ingest_api-2025.10.30.dev20251030}/src/nv_ingest_api/internal/schemas/meta/metadata_schema.py +0 -0
  96. {nv_ingest_api-2025.10.29.dev20251029 → nv_ingest_api-2025.10.30.dev20251030}/src/nv_ingest_api/internal/schemas/meta/udf.py +0 -0
  97. {nv_ingest_api-2025.10.29.dev20251029 → nv_ingest_api-2025.10.30.dev20251030}/src/nv_ingest_api/internal/schemas/mixins.py +0 -0
  98. {nv_ingest_api-2025.10.29.dev20251029 → nv_ingest_api-2025.10.30.dev20251030}/src/nv_ingest_api/internal/schemas/mutate/__init__.py +0 -0
  99. {nv_ingest_api-2025.10.29.dev20251029 → nv_ingest_api-2025.10.30.dev20251030}/src/nv_ingest_api/internal/schemas/mutate/mutate_image_dedup_schema.py +0 -0
  100. {nv_ingest_api-2025.10.29.dev20251029 → nv_ingest_api-2025.10.30.dev20251030}/src/nv_ingest_api/internal/schemas/store/__init__.py +0 -0
  101. {nv_ingest_api-2025.10.29.dev20251029 → nv_ingest_api-2025.10.30.dev20251030}/src/nv_ingest_api/internal/schemas/store/store_embedding_schema.py +0 -0
  102. {nv_ingest_api-2025.10.29.dev20251029 → nv_ingest_api-2025.10.30.dev20251030}/src/nv_ingest_api/internal/schemas/store/store_image_schema.py +0 -0
  103. {nv_ingest_api-2025.10.29.dev20251029 → nv_ingest_api-2025.10.30.dev20251030}/src/nv_ingest_api/internal/schemas/transform/__init__.py +0 -0
  104. {nv_ingest_api-2025.10.29.dev20251029 → nv_ingest_api-2025.10.30.dev20251030}/src/nv_ingest_api/internal/schemas/transform/transform_image_caption_schema.py +0 -0
  105. {nv_ingest_api-2025.10.29.dev20251029 → nv_ingest_api-2025.10.30.dev20251030}/src/nv_ingest_api/internal/schemas/transform/transform_image_filter_schema.py +0 -0
  106. {nv_ingest_api-2025.10.29.dev20251029 → nv_ingest_api-2025.10.30.dev20251030}/src/nv_ingest_api/internal/schemas/transform/transform_text_embedding_schema.py +0 -0
  107. {nv_ingest_api-2025.10.29.dev20251029 → nv_ingest_api-2025.10.30.dev20251030}/src/nv_ingest_api/internal/schemas/transform/transform_text_splitter_schema.py +0 -0
  108. {nv_ingest_api-2025.10.29.dev20251029 → nv_ingest_api-2025.10.30.dev20251030}/src/nv_ingest_api/internal/store/__init__.py +0 -0
  109. {nv_ingest_api-2025.10.29.dev20251029 → nv_ingest_api-2025.10.30.dev20251030}/src/nv_ingest_api/internal/store/embed_text_upload.py +0 -0
  110. {nv_ingest_api-2025.10.29.dev20251029 → nv_ingest_api-2025.10.30.dev20251030}/src/nv_ingest_api/internal/store/image_upload.py +0 -0
  111. {nv_ingest_api-2025.10.29.dev20251029 → nv_ingest_api-2025.10.30.dev20251030}/src/nv_ingest_api/internal/transform/__init__.py +0 -0
  112. {nv_ingest_api-2025.10.29.dev20251029 → nv_ingest_api-2025.10.30.dev20251030}/src/nv_ingest_api/internal/transform/caption_image.py +0 -0
  113. {nv_ingest_api-2025.10.29.dev20251029 → nv_ingest_api-2025.10.30.dev20251030}/src/nv_ingest_api/internal/transform/embed_text.py +0 -0
  114. {nv_ingest_api-2025.10.29.dev20251029 → nv_ingest_api-2025.10.30.dev20251030}/src/nv_ingest_api/internal/transform/split_text.py +0 -0
  115. {nv_ingest_api-2025.10.29.dev20251029 → nv_ingest_api-2025.10.30.dev20251030}/src/nv_ingest_api/util/__init__.py +0 -0
  116. {nv_ingest_api-2025.10.29.dev20251029 → nv_ingest_api-2025.10.30.dev20251030}/src/nv_ingest_api/util/control_message/__init__.py +0 -0
  117. {nv_ingest_api-2025.10.29.dev20251029 → nv_ingest_api-2025.10.30.dev20251030}/src/nv_ingest_api/util/control_message/validators.py +0 -0
  118. {nv_ingest_api-2025.10.29.dev20251029 → nv_ingest_api-2025.10.30.dev20251030}/src/nv_ingest_api/util/converters/__init__.py +0 -0
  119. {nv_ingest_api-2025.10.29.dev20251029 → nv_ingest_api-2025.10.30.dev20251030}/src/nv_ingest_api/util/converters/bytetools.py +0 -0
  120. {nv_ingest_api-2025.10.29.dev20251029 → nv_ingest_api-2025.10.30.dev20251030}/src/nv_ingest_api/util/converters/containers.py +0 -0
  121. {nv_ingest_api-2025.10.29.dev20251029 → nv_ingest_api-2025.10.30.dev20251030}/src/nv_ingest_api/util/converters/datetools.py +0 -0
  122. {nv_ingest_api-2025.10.29.dev20251029 → nv_ingest_api-2025.10.30.dev20251030}/src/nv_ingest_api/util/converters/dftools.py +0 -0
  123. {nv_ingest_api-2025.10.29.dev20251029 → nv_ingest_api-2025.10.30.dev20251030}/src/nv_ingest_api/util/converters/formats.py +0 -0
  124. {nv_ingest_api-2025.10.29.dev20251029 → nv_ingest_api-2025.10.30.dev20251030}/src/nv_ingest_api/util/converters/type_mappings.py +0 -0
  125. {nv_ingest_api-2025.10.29.dev20251029 → nv_ingest_api-2025.10.30.dev20251030}/src/nv_ingest_api/util/dataloader/__init__.py +0 -0
  126. {nv_ingest_api-2025.10.29.dev20251029 → nv_ingest_api-2025.10.30.dev20251030}/src/nv_ingest_api/util/dataloader/dataloader.py +0 -0
  127. {nv_ingest_api-2025.10.29.dev20251029 → nv_ingest_api-2025.10.30.dev20251030}/src/nv_ingest_api/util/detectors/__init__.py +0 -0
  128. {nv_ingest_api-2025.10.29.dev20251029 → nv_ingest_api-2025.10.30.dev20251030}/src/nv_ingest_api/util/detectors/language.py +0 -0
  129. {nv_ingest_api-2025.10.29.dev20251029 → nv_ingest_api-2025.10.30.dev20251030}/src/nv_ingest_api/util/exception_handlers/__init__.py +0 -0
  130. {nv_ingest_api-2025.10.29.dev20251029 → nv_ingest_api-2025.10.30.dev20251030}/src/nv_ingest_api/util/exception_handlers/converters.py +0 -0
  131. {nv_ingest_api-2025.10.29.dev20251029 → nv_ingest_api-2025.10.30.dev20251030}/src/nv_ingest_api/util/exception_handlers/decorators.py +0 -0
  132. {nv_ingest_api-2025.10.29.dev20251029 → nv_ingest_api-2025.10.30.dev20251030}/src/nv_ingest_api/util/exception_handlers/detectors.py +0 -0
  133. {nv_ingest_api-2025.10.29.dev20251029 → nv_ingest_api-2025.10.30.dev20251030}/src/nv_ingest_api/util/exception_handlers/pdf.py +0 -0
  134. {nv_ingest_api-2025.10.29.dev20251029 → nv_ingest_api-2025.10.30.dev20251030}/src/nv_ingest_api/util/exception_handlers/schemas.py +0 -0
  135. {nv_ingest_api-2025.10.29.dev20251029 → nv_ingest_api-2025.10.30.dev20251030}/src/nv_ingest_api/util/image_processing/__init__.py +0 -0
  136. {nv_ingest_api-2025.10.29.dev20251029 → nv_ingest_api-2025.10.30.dev20251030}/src/nv_ingest_api/util/image_processing/clustering.py +0 -0
  137. {nv_ingest_api-2025.10.29.dev20251029 → nv_ingest_api-2025.10.30.dev20251030}/src/nv_ingest_api/util/image_processing/processing.py +0 -0
  138. {nv_ingest_api-2025.10.29.dev20251029 → nv_ingest_api-2025.10.30.dev20251030}/src/nv_ingest_api/util/image_processing/table_and_chart.py +0 -0
  139. {nv_ingest_api-2025.10.29.dev20251029 → nv_ingest_api-2025.10.30.dev20251030}/src/nv_ingest_api/util/image_processing/transforms.py +0 -0
  140. {nv_ingest_api-2025.10.29.dev20251029 → nv_ingest_api-2025.10.30.dev20251030}/src/nv_ingest_api/util/imports/__init__.py +0 -0
  141. {nv_ingest_api-2025.10.29.dev20251029 → nv_ingest_api-2025.10.30.dev20251030}/src/nv_ingest_api/util/imports/callable_signatures.py +0 -0
  142. {nv_ingest_api-2025.10.29.dev20251029 → nv_ingest_api-2025.10.30.dev20251030}/src/nv_ingest_api/util/imports/dynamic_resolvers.py +0 -0
  143. {nv_ingest_api-2025.10.29.dev20251029 → nv_ingest_api-2025.10.30.dev20251030}/src/nv_ingest_api/util/introspection/__init__.py +0 -0
  144. {nv_ingest_api-2025.10.29.dev20251029 → nv_ingest_api-2025.10.30.dev20251030}/src/nv_ingest_api/util/introspection/class_inspect.py +0 -0
  145. {nv_ingest_api-2025.10.29.dev20251029 → nv_ingest_api-2025.10.30.dev20251030}/src/nv_ingest_api/util/introspection/function_inspect.py +0 -0
  146. {nv_ingest_api-2025.10.29.dev20251029 → nv_ingest_api-2025.10.30.dev20251030}/src/nv_ingest_api/util/logging/__init__.py +0 -0
  147. {nv_ingest_api-2025.10.29.dev20251029 → nv_ingest_api-2025.10.30.dev20251030}/src/nv_ingest_api/util/logging/configuration.py +0 -0
  148. {nv_ingest_api-2025.10.29.dev20251029 → nv_ingest_api-2025.10.30.dev20251030}/src/nv_ingest_api/util/logging/sanitize.py +0 -0
  149. {nv_ingest_api-2025.10.29.dev20251029 → nv_ingest_api-2025.10.30.dev20251030}/src/nv_ingest_api/util/message_brokers/__init__.py +0 -0
  150. {nv_ingest_api-2025.10.29.dev20251029 → nv_ingest_api-2025.10.30.dev20251030}/src/nv_ingest_api/util/message_brokers/simple_message_broker/__init__.py +0 -0
  151. {nv_ingest_api-2025.10.29.dev20251029 → nv_ingest_api-2025.10.30.dev20251030}/src/nv_ingest_api/util/message_brokers/simple_message_broker/broker.py +0 -0
  152. {nv_ingest_api-2025.10.29.dev20251029 → nv_ingest_api-2025.10.30.dev20251030}/src/nv_ingest_api/util/message_brokers/simple_message_broker/ordered_message_queue.py +0 -0
  153. {nv_ingest_api-2025.10.29.dev20251029 → nv_ingest_api-2025.10.30.dev20251030}/src/nv_ingest_api/util/message_brokers/simple_message_broker/simple_client.py +0 -0
  154. {nv_ingest_api-2025.10.29.dev20251029 → nv_ingest_api-2025.10.30.dev20251030}/src/nv_ingest_api/util/metadata/__init__.py +0 -0
  155. {nv_ingest_api-2025.10.29.dev20251029 → nv_ingest_api-2025.10.30.dev20251030}/src/nv_ingest_api/util/metadata/aggregators.py +0 -0
  156. {nv_ingest_api-2025.10.29.dev20251029 → nv_ingest_api-2025.10.30.dev20251030}/src/nv_ingest_api/util/multi_processing/__init__.py +0 -0
  157. {nv_ingest_api-2025.10.29.dev20251029 → nv_ingest_api-2025.10.30.dev20251030}/src/nv_ingest_api/util/multi_processing/mp_pool_singleton.py +0 -0
  158. {nv_ingest_api-2025.10.29.dev20251029 → nv_ingest_api-2025.10.30.dev20251030}/src/nv_ingest_api/util/nim/__init__.py +0 -0
  159. {nv_ingest_api-2025.10.29.dev20251029 → nv_ingest_api-2025.10.30.dev20251030}/src/nv_ingest_api/util/pdf/__init__.py +0 -0
  160. {nv_ingest_api-2025.10.29.dev20251029 → nv_ingest_api-2025.10.30.dev20251030}/src/nv_ingest_api/util/pdf/pdfium.py +0 -0
  161. {nv_ingest_api-2025.10.29.dev20251029 → nv_ingest_api-2025.10.30.dev20251030}/src/nv_ingest_api/util/schema/__init__.py +0 -0
  162. {nv_ingest_api-2025.10.29.dev20251029 → nv_ingest_api-2025.10.30.dev20251030}/src/nv_ingest_api/util/schema/schema_validator.py +0 -0
  163. {nv_ingest_api-2025.10.29.dev20251029 → nv_ingest_api-2025.10.30.dev20251030}/src/nv_ingest_api/util/service_clients/__init__.py +0 -0
  164. {nv_ingest_api-2025.10.29.dev20251029 → nv_ingest_api-2025.10.30.dev20251030}/src/nv_ingest_api/util/service_clients/client_base.py +0 -0
  165. {nv_ingest_api-2025.10.29.dev20251029 → nv_ingest_api-2025.10.30.dev20251030}/src/nv_ingest_api/util/service_clients/kafka/__init__.py +0 -0
  166. {nv_ingest_api-2025.10.29.dev20251029 → nv_ingest_api-2025.10.30.dev20251030}/src/nv_ingest_api/util/service_clients/redis/__init__.py +0 -0
  167. {nv_ingest_api-2025.10.29.dev20251029 → nv_ingest_api-2025.10.30.dev20251030}/src/nv_ingest_api/util/service_clients/redis/redis_client.py +0 -0
  168. {nv_ingest_api-2025.10.29.dev20251029 → nv_ingest_api-2025.10.30.dev20251030}/src/nv_ingest_api/util/service_clients/rest/__init__.py +0 -0
  169. {nv_ingest_api-2025.10.29.dev20251029 → nv_ingest_api-2025.10.30.dev20251030}/src/nv_ingest_api/util/service_clients/rest/rest_client.py +0 -0
  170. {nv_ingest_api-2025.10.29.dev20251029 → nv_ingest_api-2025.10.30.dev20251030}/src/nv_ingest_api/util/string_processing/__init__.py +0 -0
  171. {nv_ingest_api-2025.10.29.dev20251029 → nv_ingest_api-2025.10.30.dev20251030}/src/nv_ingest_api/util/string_processing/configuration.py +0 -0
  172. {nv_ingest_api-2025.10.29.dev20251029 → nv_ingest_api-2025.10.30.dev20251030}/src/nv_ingest_api/util/string_processing/yaml.py +0 -0
  173. {nv_ingest_api-2025.10.29.dev20251029 → nv_ingest_api-2025.10.30.dev20251030}/src/nv_ingest_api/util/system/__init__.py +0 -0
  174. {nv_ingest_api-2025.10.29.dev20251029 → nv_ingest_api-2025.10.30.dev20251030}/src/nv_ingest_api/util/system/hardware_info.py +0 -0
  175. {nv_ingest_api-2025.10.29.dev20251029 → nv_ingest_api-2025.10.30.dev20251030}/src/nv_ingest_api.egg-info/SOURCES.txt +0 -0
  176. {nv_ingest_api-2025.10.29.dev20251029 → nv_ingest_api-2025.10.30.dev20251030}/src/nv_ingest_api.egg-info/dependency_links.txt +0 -0
  177. {nv_ingest_api-2025.10.29.dev20251029 → nv_ingest_api-2025.10.30.dev20251030}/src/nv_ingest_api.egg-info/requires.txt +0 -0
  178. {nv_ingest_api-2025.10.29.dev20251029 → nv_ingest_api-2025.10.30.dev20251030}/src/nv_ingest_api.egg-info/top_level.txt +0 -0
  179. {nv_ingest_api-2025.10.29.dev20251029 → nv_ingest_api-2025.10.30.dev20251030}/src/udfs/__init__.py +0 -0
  180. {nv_ingest_api-2025.10.29.dev20251029 → nv_ingest_api-2025.10.30.dev20251030}/src/udfs/llm_summarizer_udf.py +0 -0
  181. {nv_ingest_api-2025.10.29.dev20251029 → nv_ingest_api-2025.10.30.dev20251030}/src/version.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: nv-ingest-api
3
- Version: 2025.10.29.dev20251029
3
+ Version: 2025.10.30.dev20251030
4
4
  Summary: Python module with core document ingestion functions.
5
5
  Author-email: Jeremy Dyer <jdyer@nvidia.com>
6
6
  License: Apache License
@@ -5,6 +5,7 @@
5
5
  import hashlib
6
6
  import json
7
7
  import logging
8
+ import re
8
9
  import threading
9
10
  import time
10
11
  import queue
@@ -24,6 +25,12 @@ from nv_ingest_api.util.string_processing import generate_url
24
25
 
25
26
  logger = logging.getLogger(__name__)
26
27
 
28
+ # Regex pattern to detect CUDA-related errors in Triton gRPC responses
29
+ CUDA_ERROR_REGEX = re.compile(
30
+ r"(illegal memory access|invalid argument|failed to (copy|load|perform) .*: .*|TritonModelException: failed to copy data: .*)", # noqa: E501
31
+ re.IGNORECASE,
32
+ )
33
+
27
34
  # A simple structure to hold a request's data and its Future for the result
28
35
  InferenceRequest = namedtuple("InferenceRequest", ["data", "future", "model_name", "dims", "kwargs"])
29
36
 
@@ -40,7 +47,7 @@ class NimClient:
40
47
  endpoints: Tuple[str, str],
41
48
  auth_token: Optional[str] = None,
42
49
  timeout: float = 120.0,
43
- max_retries: int = 5,
50
+ max_retries: int = 10,
44
51
  max_429_retries: int = 5,
45
52
  enable_dynamic_batching: bool = False,
46
53
  dynamic_batch_timeout: float = 0.1, # 100 milliseconds
@@ -60,11 +67,11 @@ class NimClient:
60
67
  auth_token : str, optional
61
68
  Authorization token for HTTP requests (default: None).
62
69
  timeout : float, optional
63
- Timeout for HTTP requests in seconds (default: 30.0).
70
+ Timeout for HTTP requests in seconds (default: 120.0).
64
71
  max_retries : int, optional
65
- The maximum number of retries for non-429 server-side errors (default: 5).
72
+ The maximum number of retries for non-429 server-side errors (default: 10).
66
73
  max_429_retries : int, optional
67
- The maximum number of retries specifically for 429 errors (default: 10).
74
+ The maximum number of retries specifically for 429 errors (default: 5).
68
75
 
69
76
  Raises
70
77
  ------
@@ -323,7 +330,7 @@ class NimClient:
323
330
 
324
331
  outputs = [grpcclient.InferRequestedOutput(output_name) for output_name in output_names]
325
332
 
326
- base_delay = 0.5
333
+ base_delay = 2.0
327
334
  attempt = 0
328
335
  retries_429 = 0
329
336
  max_grpc_retries = self.max_429_retries
@@ -342,8 +349,58 @@ class NimClient:
342
349
  return [response.as_numpy(output.name()) for output in outputs]
343
350
 
344
351
  except grpcclient.InferenceServerException as e:
345
- status = e.status()
346
- if status == "StatusCode.UNAVAILABLE" and "Exceeds maximum queue size".lower() in e.message().lower():
352
+ status = str(e.status())
353
+ message = e.message()
354
+
355
+ # Handle CUDA memory errors
356
+ if status == "StatusCode.INTERNAL":
357
+ if CUDA_ERROR_REGEX.search(message):
358
+ logger.warning(
359
+ f"Received gRPC INTERNAL error with CUDA-related message for model '{model_name}'. "
360
+ f"Attempt {attempt + 1} of {self.max_retries}. Message (truncated): {message[:500]}"
361
+ )
362
+ if attempt >= self.max_retries - 1:
363
+ logger.error(f"Max retries exceeded for CUDA errors on model '{model_name}'.")
364
+ raise e
365
+ # Try to reload models before retrying
366
+ model_reload_succeeded = reload_models(client=self.client, client_timeout=self.timeout)
367
+ if not model_reload_succeeded:
368
+ logger.error(f"Failed to reload models for model '{model_name}'.")
369
+ else:
370
+ logger.warning(
371
+ f"Received gRPC INTERNAL error for model '{model_name}'. "
372
+ f"Attempt {attempt + 1} of {self.max_retries}. Message (truncated): {message[:500]}"
373
+ )
374
+ if attempt >= self.max_retries - 1:
375
+ logger.error(f"Max retries exceeded for INTERNAL error on model '{model_name}'.")
376
+ raise e
377
+
378
+ # Common retry logic for both CUDA and non-CUDA INTERNAL errors
379
+ backoff_time = base_delay * (2**attempt)
380
+ time.sleep(backoff_time)
381
+ attempt += 1
382
+ continue
383
+
384
+ # Handle errors that can occur after model reload (NOT_FOUND, model not loaded)
385
+ if status == "StatusCode.NOT_FOUND":
386
+ logger.warning(
387
+ f"Received gRPC {status} error for model '{model_name}'. "
388
+ f"Attempt {attempt + 1} of {self.max_retries}. Message: {message[:500]}"
389
+ )
390
+ if attempt >= self.max_retries - 1:
391
+ logger.error(f"Max retries exceeded for model not found errors on model '{model_name}'.")
392
+ raise e
393
+
394
+ # Retry with exponential backoff WITHOUT reloading
395
+ backoff_time = base_delay * (2**attempt)
396
+ logger.info(
397
+ f"Retrying after {backoff_time}s backoff for model not found error on model '{model_name}'."
398
+ )
399
+ time.sleep(backoff_time)
400
+ attempt += 1
401
+ continue
402
+
403
+ if status == "StatusCode.UNAVAILABLE" and "Exceeds maximum queue size".lower() in message.lower():
347
404
  retries_429 += 1
348
405
  logger.warning(
349
406
  f"Received gRPC {status} for model '{model_name}'. "
@@ -357,13 +414,12 @@ class NimClient:
357
414
  time.sleep(backoff_time)
358
415
  continue
359
416
 
360
- else:
361
- # For other server-side errors (e.g., INVALID_ARGUMENT, NOT_FOUND),
362
- # retrying will not help. We should fail fast.
363
- logger.error(
364
- f"Received non-retryable gRPC error from Triton for model '{model_name}': {e.message()}"
365
- )
366
- raise
417
+ # For other server-side errors (e.g., INVALID_ARGUMENT, etc.),
418
+ # fail fast as retrying will not help
419
+ logger.error(
420
+ f"Received non-retryable gRPC error {status} from Triton for model '{model_name}': {message}"
421
+ )
422
+ raise
367
423
 
368
424
  except Exception as e:
369
425
  # Catch any other unexpected exceptions (e.g., network issues not caught by Triton client)
@@ -681,3 +737,57 @@ class NimClientManager:
681
737
  def get_nim_client_manager(*args, **kwargs) -> NimClientManager:
682
738
  """Returns the singleton instance of the NimClientManager."""
683
739
  return NimClientManager(*args, **kwargs)
740
+
741
+
742
+ def reload_models(client: grpcclient.InferenceServerClient, exclude: list[str] = [], client_timeout: int = 120) -> bool:
743
+ """
744
+ Reloads all models in the Triton server except for the models in the exclude list.
745
+
746
+ Parameters
747
+ ----------
748
+ client : grpcclient.InferenceServerClient
749
+ The gRPC client connected to the Triton server.
750
+ exclude : list[str], optional
751
+ A list of model names to exclude from reloading.
752
+ client_timeout : int, optional
753
+ Timeout for client operations in seconds (default: 120).
754
+
755
+ Returns
756
+ -------
757
+ bool
758
+ True if all models were successfully reloaded, False otherwise.
759
+ """
760
+ model_index = client.get_model_repository_index()
761
+ exclude = set(exclude)
762
+ names = [m.name for m in model_index.models if m.name not in exclude]
763
+
764
+ logger.info(f"Reloading {len(names)} model(s): {', '.join(names) if names else '(none)'}")
765
+
766
+ # 1) Unload
767
+ for name in names:
768
+ try:
769
+ client.unload_model(name)
770
+ except grpcclient.InferenceServerException as e:
771
+ msg = e.message()
772
+ if "explicit model load / unload" in msg.lower():
773
+ status = e.status()
774
+ logger.warning(
775
+ f"[SKIP Model Reload] Explicit model control disabled; cannot unload '{name}'. Status: {status}."
776
+ )
777
+ return False
778
+ logger.error(f"[ERROR] Failed to unload '{name}': {msg}")
779
+ return False
780
+
781
+ # 2) Load
782
+ for name in names:
783
+ client.load_model(name)
784
+
785
+ # 3) Readiness check
786
+ for name in names:
787
+ ready = client.is_model_ready(model_name=name, client_timeout=client_timeout)
788
+ if not ready:
789
+ logger.warning(f"[Warning] Triton Not ready: {name}")
790
+ return False
791
+
792
+ logger.info("✅ Reload of models complete.")
793
+ return True
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: nv-ingest-api
3
- Version: 2025.10.29.dev20251029
3
+ Version: 2025.10.30.dev20251030
4
4
  Summary: Python module with core document ingestion functions.
5
5
  Author-email: Jeremy Dyer <jdyer@nvidia.com>
6
6
  License: Apache License