admin-api-lib 3.3.0__tar.gz → 3.4.0__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.
Files changed (106) hide show
  1. {admin_api_lib-3.3.0 → admin_api_lib-3.4.0}/PKG-INFO +4 -3
  2. {admin_api_lib-3.3.0 → admin_api_lib-3.4.0}/pyproject.toml +4 -5
  3. {admin_api_lib-3.3.0 → admin_api_lib-3.4.0}/src/admin_api_lib/api_endpoints/file_uploader.py +2 -1
  4. {admin_api_lib-3.3.0 → admin_api_lib-3.4.0}/src/admin_api_lib/api_endpoints/source_uploader.py +1 -1
  5. {admin_api_lib-3.3.0 → admin_api_lib-3.4.0}/src/admin_api_lib/api_endpoints/uploader_base.py +1 -3
  6. {admin_api_lib-3.3.0 → admin_api_lib-3.4.0}/src/admin_api_lib/apis/admin_api.py +2 -2
  7. {admin_api_lib-3.3.0 → admin_api_lib-3.4.0}/src/admin_api_lib/impl/api_endpoints/default_document_reference_retriever.py +3 -5
  8. {admin_api_lib-3.3.0 → admin_api_lib-3.4.0}/src/admin_api_lib/impl/api_endpoints/default_file_uploader.py +12 -14
  9. {admin_api_lib-3.3.0 → admin_api_lib-3.4.0}/src/admin_api_lib/impl/api_endpoints/default_source_uploader.py +9 -7
  10. {admin_api_lib-3.3.0 → admin_api_lib-3.4.0}/README.md +0 -0
  11. {admin_api_lib-3.3.0 → admin_api_lib-3.4.0}/src/admin_api_lib/__init__.py +0 -0
  12. {admin_api_lib-3.3.0 → admin_api_lib-3.4.0}/src/admin_api_lib/api_endpoints/document_deleter.py +0 -0
  13. {admin_api_lib-3.3.0 → admin_api_lib-3.4.0}/src/admin_api_lib/api_endpoints/document_reference_retriever.py +0 -0
  14. {admin_api_lib-3.3.0 → admin_api_lib-3.4.0}/src/admin_api_lib/api_endpoints/documents_status_retriever.py +0 -0
  15. {admin_api_lib-3.3.0 → admin_api_lib-3.4.0}/src/admin_api_lib/apis/__init__.py +0 -0
  16. {admin_api_lib-3.3.0 → admin_api_lib-3.4.0}/src/admin_api_lib/apis/admin_api_base.py +0 -0
  17. {admin_api_lib-3.3.0 → admin_api_lib-3.4.0}/src/admin_api_lib/chunker/__init__.py +0 -0
  18. {admin_api_lib-3.3.0 → admin_api_lib-3.4.0}/src/admin_api_lib/chunker/chunker.py +0 -0
  19. {admin_api_lib-3.3.0 → admin_api_lib-3.4.0}/src/admin_api_lib/dependency_container.py +0 -0
  20. {admin_api_lib-3.3.0 → admin_api_lib-3.4.0}/src/admin_api_lib/extractor_api_client/__init__.py +0 -0
  21. {admin_api_lib-3.3.0 → admin_api_lib-3.4.0}/src/admin_api_lib/extractor_api_client/openapi_client/__init__.py +0 -0
  22. {admin_api_lib-3.3.0 → admin_api_lib-3.4.0}/src/admin_api_lib/extractor_api_client/openapi_client/api/__init__.py +0 -0
  23. {admin_api_lib-3.3.0 → admin_api_lib-3.4.0}/src/admin_api_lib/extractor_api_client/openapi_client/api/extractor_api.py +0 -0
  24. {admin_api_lib-3.3.0 → admin_api_lib-3.4.0}/src/admin_api_lib/extractor_api_client/openapi_client/api_client.py +0 -0
  25. {admin_api_lib-3.3.0 → admin_api_lib-3.4.0}/src/admin_api_lib/extractor_api_client/openapi_client/api_response.py +0 -0
  26. {admin_api_lib-3.3.0 → admin_api_lib-3.4.0}/src/admin_api_lib/extractor_api_client/openapi_client/configuration.py +0 -0
  27. {admin_api_lib-3.3.0 → admin_api_lib-3.4.0}/src/admin_api_lib/extractor_api_client/openapi_client/exceptions.py +0 -0
  28. {admin_api_lib-3.3.0 → admin_api_lib-3.4.0}/src/admin_api_lib/extractor_api_client/openapi_client/models/__init__.py +0 -0
  29. {admin_api_lib-3.3.0 → admin_api_lib-3.4.0}/src/admin_api_lib/extractor_api_client/openapi_client/models/content_type.py +0 -0
  30. {admin_api_lib-3.3.0 → admin_api_lib-3.4.0}/src/admin_api_lib/extractor_api_client/openapi_client/models/extraction_parameters.py +0 -0
  31. {admin_api_lib-3.3.0 → admin_api_lib-3.4.0}/src/admin_api_lib/extractor_api_client/openapi_client/models/extraction_request.py +0 -0
  32. {admin_api_lib-3.3.0 → admin_api_lib-3.4.0}/src/admin_api_lib/extractor_api_client/openapi_client/models/information_piece.py +0 -0
  33. {admin_api_lib-3.3.0 → admin_api_lib-3.4.0}/src/admin_api_lib/extractor_api_client/openapi_client/models/key_value_pair.py +0 -0
  34. {admin_api_lib-3.3.0 → admin_api_lib-3.4.0}/src/admin_api_lib/extractor_api_client/openapi_client/rest.py +0 -0
  35. {admin_api_lib-3.3.0 → admin_api_lib-3.4.0}/src/admin_api_lib/extractor_api_client/openapi_client/test/__init__.py +0 -0
  36. {admin_api_lib-3.3.0 → admin_api_lib-3.4.0}/src/admin_api_lib/extractor_api_client/openapi_client/test/test_content_type.py +0 -0
  37. {admin_api_lib-3.3.0 → admin_api_lib-3.4.0}/src/admin_api_lib/extractor_api_client/openapi_client/test/test_extraction_parameters.py +0 -0
  38. {admin_api_lib-3.3.0 → admin_api_lib-3.4.0}/src/admin_api_lib/extractor_api_client/openapi_client/test/test_extraction_request.py +0 -0
  39. {admin_api_lib-3.3.0 → admin_api_lib-3.4.0}/src/admin_api_lib/extractor_api_client/openapi_client/test/test_extractor_api.py +0 -0
  40. {admin_api_lib-3.3.0 → admin_api_lib-3.4.0}/src/admin_api_lib/extractor_api_client/openapi_client/test/test_information_piece.py +0 -0
  41. {admin_api_lib-3.3.0 → admin_api_lib-3.4.0}/src/admin_api_lib/extractor_api_client/openapi_client/test/test_key_value_pair.py +0 -0
  42. {admin_api_lib-3.3.0 → admin_api_lib-3.4.0}/src/admin_api_lib/file_services/file_service.py +0 -0
  43. {admin_api_lib-3.3.0 → admin_api_lib-3.4.0}/src/admin_api_lib/impl/__init__.py +0 -0
  44. {admin_api_lib-3.3.0 → admin_api_lib-3.4.0}/src/admin_api_lib/impl/admin_api.py +0 -0
  45. {admin_api_lib-3.3.0 → admin_api_lib-3.4.0}/src/admin_api_lib/impl/api_endpoints/default_document_deleter.py +0 -0
  46. {admin_api_lib-3.3.0 → admin_api_lib-3.4.0}/src/admin_api_lib/impl/api_endpoints/default_documents_status_retriever.py +0 -0
  47. {admin_api_lib-3.3.0 → admin_api_lib-3.4.0}/src/admin_api_lib/impl/chunker/__init__.py +0 -0
  48. {admin_api_lib-3.3.0 → admin_api_lib-3.4.0}/src/admin_api_lib/impl/chunker/chunker_type.py +0 -0
  49. {admin_api_lib-3.3.0 → admin_api_lib-3.4.0}/src/admin_api_lib/impl/chunker/semantic_text_chunker.py +0 -0
  50. {admin_api_lib-3.3.0 → admin_api_lib-3.4.0}/src/admin_api_lib/impl/chunker/text_chunker.py +0 -0
  51. {admin_api_lib-3.3.0 → admin_api_lib-3.4.0}/src/admin_api_lib/impl/file_services/__init__.py +0 -0
  52. {admin_api_lib-3.3.0 → admin_api_lib-3.4.0}/src/admin_api_lib/impl/file_services/s3_service.py +0 -0
  53. {admin_api_lib-3.3.0 → admin_api_lib-3.4.0}/src/admin_api_lib/impl/information_enhancer/__init__.py +0 -0
  54. {admin_api_lib-3.3.0 → admin_api_lib-3.4.0}/src/admin_api_lib/impl/information_enhancer/general_enhancer.py +0 -0
  55. {admin_api_lib-3.3.0 → admin_api_lib-3.4.0}/src/admin_api_lib/impl/information_enhancer/page_summary_enhancer.py +0 -0
  56. {admin_api_lib-3.3.0 → admin_api_lib-3.4.0}/src/admin_api_lib/impl/information_enhancer/summary_enhancer.py +0 -0
  57. {admin_api_lib-3.3.0 → admin_api_lib-3.4.0}/src/admin_api_lib/impl/key_db/__init__.py +0 -0
  58. {admin_api_lib-3.3.0 → admin_api_lib-3.4.0}/src/admin_api_lib/impl/key_db/file_status_key_value_store.py +0 -0
  59. {admin_api_lib-3.3.0 → admin_api_lib-3.4.0}/src/admin_api_lib/impl/mapper/informationpiece2document.py +0 -0
  60. {admin_api_lib-3.3.0 → admin_api_lib-3.4.0}/src/admin_api_lib/impl/settings/__init__.py +0 -0
  61. {admin_api_lib-3.3.0 → admin_api_lib-3.4.0}/src/admin_api_lib/impl/settings/chunker_class_type_settings.py +0 -0
  62. {admin_api_lib-3.3.0 → admin_api_lib-3.4.0}/src/admin_api_lib/impl/settings/chunker_settings.py +0 -0
  63. {admin_api_lib-3.3.0 → admin_api_lib-3.4.0}/src/admin_api_lib/impl/settings/document_extractor_settings.py +0 -0
  64. {admin_api_lib-3.3.0 → admin_api_lib-3.4.0}/src/admin_api_lib/impl/settings/key_value_settings.py +0 -0
  65. {admin_api_lib-3.3.0 → admin_api_lib-3.4.0}/src/admin_api_lib/impl/settings/rag_api_settings.py +0 -0
  66. {admin_api_lib-3.3.0 → admin_api_lib-3.4.0}/src/admin_api_lib/impl/settings/s3_settings.py +0 -0
  67. {admin_api_lib-3.3.0 → admin_api_lib-3.4.0}/src/admin_api_lib/impl/settings/source_uploader_settings.py +0 -0
  68. {admin_api_lib-3.3.0 → admin_api_lib-3.4.0}/src/admin_api_lib/impl/settings/summarizer_settings.py +0 -0
  69. {admin_api_lib-3.3.0 → admin_api_lib-3.4.0}/src/admin_api_lib/impl/summarizer/__init__.py +0 -0
  70. {admin_api_lib-3.3.0 → admin_api_lib-3.4.0}/src/admin_api_lib/impl/summarizer/langchain_summarizer.py +0 -0
  71. {admin_api_lib-3.3.0 → admin_api_lib-3.4.0}/src/admin_api_lib/information_enhancer/__init__.py +0 -0
  72. {admin_api_lib-3.3.0 → admin_api_lib-3.4.0}/src/admin_api_lib/information_enhancer/information_enhancer.py +0 -0
  73. {admin_api_lib-3.3.0 → admin_api_lib-3.4.0}/src/admin_api_lib/main.py +0 -0
  74. {admin_api_lib-3.3.0 → admin_api_lib-3.4.0}/src/admin_api_lib/models/__init__.py +0 -0
  75. {admin_api_lib-3.3.0 → admin_api_lib-3.4.0}/src/admin_api_lib/models/document_status.py +0 -0
  76. {admin_api_lib-3.3.0 → admin_api_lib-3.4.0}/src/admin_api_lib/models/extra_models.py +0 -0
  77. {admin_api_lib-3.3.0 → admin_api_lib-3.4.0}/src/admin_api_lib/models/http_validation_error.py +0 -0
  78. {admin_api_lib-3.3.0 → admin_api_lib-3.4.0}/src/admin_api_lib/models/key_value_pair.py +0 -0
  79. {admin_api_lib-3.3.0 → admin_api_lib-3.4.0}/src/admin_api_lib/models/status.py +0 -0
  80. {admin_api_lib-3.3.0 → admin_api_lib-3.4.0}/src/admin_api_lib/models/validation_error.py +0 -0
  81. {admin_api_lib-3.3.0 → admin_api_lib-3.4.0}/src/admin_api_lib/models/validation_error_loc_inner.py +0 -0
  82. {admin_api_lib-3.3.0 → admin_api_lib-3.4.0}/src/admin_api_lib/prompt_templates/__init__.py +0 -0
  83. {admin_api_lib-3.3.0 → admin_api_lib-3.4.0}/src/admin_api_lib/prompt_templates/summarize_prompt.py +0 -0
  84. {admin_api_lib-3.3.0 → admin_api_lib-3.4.0}/src/admin_api_lib/rag_backend_client/__init__.py +0 -0
  85. {admin_api_lib-3.3.0 → admin_api_lib-3.4.0}/src/admin_api_lib/rag_backend_client/openapi_client/__init__.py +0 -0
  86. {admin_api_lib-3.3.0 → admin_api_lib-3.4.0}/src/admin_api_lib/rag_backend_client/openapi_client/api/__init__.py +0 -0
  87. {admin_api_lib-3.3.0 → admin_api_lib-3.4.0}/src/admin_api_lib/rag_backend_client/openapi_client/api/rag_api.py +0 -0
  88. {admin_api_lib-3.3.0 → admin_api_lib-3.4.0}/src/admin_api_lib/rag_backend_client/openapi_client/api_client.py +0 -0
  89. {admin_api_lib-3.3.0 → admin_api_lib-3.4.0}/src/admin_api_lib/rag_backend_client/openapi_client/api_response.py +0 -0
  90. {admin_api_lib-3.3.0 → admin_api_lib-3.4.0}/src/admin_api_lib/rag_backend_client/openapi_client/configuration.py +0 -0
  91. {admin_api_lib-3.3.0 → admin_api_lib-3.4.0}/src/admin_api_lib/rag_backend_client/openapi_client/exceptions.py +0 -0
  92. {admin_api_lib-3.3.0 → admin_api_lib-3.4.0}/src/admin_api_lib/rag_backend_client/openapi_client/models/__init__.py +0 -0
  93. {admin_api_lib-3.3.0 → admin_api_lib-3.4.0}/src/admin_api_lib/rag_backend_client/openapi_client/models/chat_history.py +0 -0
  94. {admin_api_lib-3.3.0 → admin_api_lib-3.4.0}/src/admin_api_lib/rag_backend_client/openapi_client/models/chat_history_message.py +0 -0
  95. {admin_api_lib-3.3.0 → admin_api_lib-3.4.0}/src/admin_api_lib/rag_backend_client/openapi_client/models/chat_request.py +0 -0
  96. {admin_api_lib-3.3.0 → admin_api_lib-3.4.0}/src/admin_api_lib/rag_backend_client/openapi_client/models/chat_response.py +0 -0
  97. {admin_api_lib-3.3.0 → admin_api_lib-3.4.0}/src/admin_api_lib/rag_backend_client/openapi_client/models/chat_role.py +0 -0
  98. {admin_api_lib-3.3.0 → admin_api_lib-3.4.0}/src/admin_api_lib/rag_backend_client/openapi_client/models/content_type.py +0 -0
  99. {admin_api_lib-3.3.0 → admin_api_lib-3.4.0}/src/admin_api_lib/rag_backend_client/openapi_client/models/delete_request.py +0 -0
  100. {admin_api_lib-3.3.0 → admin_api_lib-3.4.0}/src/admin_api_lib/rag_backend_client/openapi_client/models/information_piece.py +0 -0
  101. {admin_api_lib-3.3.0 → admin_api_lib-3.4.0}/src/admin_api_lib/rag_backend_client/openapi_client/models/key_value_pair.py +0 -0
  102. {admin_api_lib-3.3.0 → admin_api_lib-3.4.0}/src/admin_api_lib/rag_backend_client/openapi_client/rest.py +0 -0
  103. {admin_api_lib-3.3.0 → admin_api_lib-3.4.0}/src/admin_api_lib/summarizer/__init__.py +0 -0
  104. {admin_api_lib-3.3.0 → admin_api_lib-3.4.0}/src/admin_api_lib/summarizer/summarizer.py +0 -0
  105. {admin_api_lib-3.3.0 → admin_api_lib-3.4.0}/src/admin_api_lib/utils/__init__.py +0 -0
  106. {admin_api_lib-3.3.0 → admin_api_lib-3.4.0}/src/admin_api_lib/utils/utils.py +0 -0
@@ -1,6 +1,6 @@
1
- Metadata-Version: 2.3
1
+ Metadata-Version: 2.4
2
2
  Name: admin-api-lib
3
- Version: 3.3.0
3
+ Version: 3.4.0
4
4
  Summary: The admin backend is responsible for the document management. This includes deletion, upload and returning the source document.
5
5
  License: Apache-2.0
6
6
  Author: STACKIT GmbH & Co. KG
@@ -11,6 +11,7 @@ Requires-Python: >=3.13,<4.0
11
11
  Classifier: License :: OSI Approved :: Apache Software License
12
12
  Classifier: Programming Language :: Python :: 3
13
13
  Classifier: Programming Language :: Python :: 3.13
14
+ Classifier: Programming Language :: Python :: 3.14
14
15
  Requires-Dist: boto3 (>=1.38.10,<2.0.0)
15
16
  Requires-Dist: dependency-injector (>=4.46.0,<5.0.0)
16
17
  Requires-Dist: fastapi (>=0.118.0,<0.119.0)
@@ -20,7 +21,7 @@ Requires-Dist: nltk (>=3.9.2,<4.0.0)
20
21
  Requires-Dist: python-dateutil (>=2.9.0.post0,<3.0.0)
21
22
  Requires-Dist: python-multipart (>=0.0.20,<0.0.21)
22
23
  Requires-Dist: pyyaml (>=6.0.2,<7.0.0)
23
- Requires-Dist: rag-core-lib (>=3.3.0,<4.0.0)
24
+ Requires-Dist: rag-core-lib (==3.4.0)
24
25
  Requires-Dist: redis (>=6.0.0,<7.0.0)
25
26
  Requires-Dist: starlette (>=0.47.2,<0.49.0)
26
27
  Requires-Dist: tenacity (==9.1.2)
@@ -4,7 +4,7 @@ build-backend = "poetry.core.masonry.api"
4
4
 
5
5
  [tool.poetry]
6
6
  name = "admin-api-lib"
7
- version = "v3.3.0"
7
+ version = "v3.4.0"
8
8
  description = "The admin backend is responsible for the document management. This includes deletion, upload and returning the source document."
9
9
  authors = [
10
10
  "STACKIT GmbH & Co. KG <data-ai@stackit.cloud>",
@@ -99,12 +99,12 @@ flake8-wot = "^0.2.0"
99
99
  flake8-function-order = "^0.0.5"
100
100
  flake8-tidy-imports = "^4.10.0"
101
101
  black = "^25.1.0"
102
- # flake8-logging-format = "^2024.24.12"
103
- # flake8-docstrings = "^1.7.0"
102
+ flake8-logging-format = "^2024.24.12"
103
+ flake8-docstrings = "^1.7.0"
104
104
  pytest-asyncio = "^1.0.0"
105
105
 
106
106
  [tool.poetry.dependencies]
107
- rag-core-lib = "^3.3.0"
107
+ rag-core-lib = "3.4.0"
108
108
  python = "^3.13"
109
109
  uvicorn = "^0.37.0"
110
110
  fastapi = "^0.118.0"
@@ -127,7 +127,6 @@ log_cli_level = "DEBUG"
127
127
  pythonpath = "src"
128
128
  testpaths = "src/tests"
129
129
 
130
-
131
130
  [[tool.poetry.source]]
132
131
  name = "testpypi"
133
132
  url = "https://test.pypi.org/simple/"
@@ -8,6 +8,7 @@ from admin_api_lib.api_endpoints.uploader_base import UploaderBase
8
8
 
9
9
 
10
10
  class FileUploader(UploaderBase):
11
+ """File uploader endpoint of the admin API."""
11
12
 
12
13
  @abstractmethod
13
14
  async def upload_file(
@@ -16,7 +17,7 @@ class FileUploader(UploaderBase):
16
17
  file: UploadFile,
17
18
  ) -> None:
18
19
  """
19
- Uploads a source file for content extraction.
20
+ Upload a source file for content extraction.
20
21
 
21
22
  Parameters
22
23
  ----------
@@ -21,7 +21,7 @@ class SourceUploader(UploaderBase):
21
21
  timeout: Optional[float],
22
22
  ) -> None:
23
23
  """
24
- Uploads the parameters for source content extraction.
24
+ Upload the parameters for source content extraction.
25
25
 
26
26
  Parameters
27
27
  ----------
@@ -7,9 +7,7 @@ class UploaderBase:
7
7
  """Base class for uploader API endpoints."""
8
8
 
9
9
  def __init__(self):
10
- """
11
- Initialize the UploaderBase.
12
- """
10
+ """Initialize the UploaderBase."""
13
11
  self._background_threads = []
14
12
 
15
13
  def _prune_background_threads(self) -> list[Thread]:
@@ -149,7 +149,7 @@ async def upload_file(
149
149
  request: Request,
150
150
  ) -> None:
151
151
  """
152
- Uploads user selected sources.
152
+ Upload user selected sources.
153
153
 
154
154
  Parameters
155
155
  ----------
@@ -181,7 +181,7 @@ async def upload_source(
181
181
  key_value_pair: List[KeyValuePair] = Body(None, description="The key-value pairs for the source"),
182
182
  ) -> None:
183
183
  """
184
- Uploads user selected sources.
184
+ Upload user selected sources.
185
185
 
186
186
  Parameters
187
187
  ----------
@@ -2,7 +2,6 @@
2
2
 
3
3
  import io
4
4
  import logging
5
- import traceback
6
5
 
7
6
  from fastapi import HTTPException, Response, status
8
7
 
@@ -54,10 +53,9 @@ class DefaultDocumentReferenceRetriever(DocumentReferenceRetriever):
54
53
  self._file_service.download_file(identification, document_buffer)
55
54
  logger.debug("DONE retrieving document with id: %s", identification)
56
55
  document_data = document_buffer.getvalue()
57
- except Exception as e:
58
- logger.error(
59
- "Error retrieving document with id: %s. Error: %s %s", identification, e, traceback.format_exc()
60
- )
56
+ except Exception:
57
+ # Log full stack trace without embedding the exception object in the message (G200)
58
+ logger.exception("Error retrieving document with id: %s.", identification)
61
59
  raise ValueError(f"Document with id '{identification}' not found.")
62
60
  finally:
63
61
  document_buffer.close()
@@ -1,6 +1,7 @@
1
+ """Module for the default file uploader implementation."""
2
+
1
3
  import logging
2
4
  from pathlib import Path
3
- import traceback
4
5
  import urllib
5
6
  import tempfile
6
7
  import asyncio
@@ -78,7 +79,7 @@ class DefaultFileUploader(FileUploader):
78
79
  file: UploadFile,
79
80
  ) -> None:
80
81
  """
81
- Uploads a source file for content extraction.
82
+ Upload a source file for content extraction.
82
83
 
83
84
  Parameters
84
85
  ----------
@@ -109,7 +110,7 @@ class DefaultFileUploader(FileUploader):
109
110
  raise HTTPException(status_code=status.HTTP_400_BAD_REQUEST, detail=str(e))
110
111
  except Exception as e:
111
112
  self._key_value_store.upsert(source_name, Status.ERROR)
112
- logger.error("Error while uploading %s = %s", source_name, str(e))
113
+ logger.exception("Error while uploading %s", source_name)
113
114
  raise HTTPException(status_code=status.HTTP_500_INTERNAL_SERVER_ERROR, detail=str(e))
114
115
 
115
116
  def _log_task_exception(self, task: asyncio.Task) -> None:
@@ -124,19 +125,16 @@ class DefaultFileUploader(FileUploader):
124
125
  if task.done() and not task.cancelled():
125
126
  try:
126
127
  task.result() # This will raise the exception if one occurred
127
- except Exception as e:
128
- logger.error("Background task failed with exception: %s", str(e))
129
- logger.debug("Background task exception traceback: %s", traceback.format_exc())
128
+ except Exception:
129
+ logger.exception("Background task failed with exception.")
130
130
 
131
131
  def _prune_background_tasks(self) -> None:
132
- """
133
- Remove completed background tasks from the list.
134
- """
132
+ """Remove completed background tasks from the list."""
135
133
  self._background_tasks = [task for task in self._background_tasks if not task.done()]
136
134
 
137
135
  def _check_if_already_in_processing(self, source_name: str) -> None:
138
136
  """
139
- Checks if the source is already in processing state.
137
+ Check if the source is already in processing state.
140
138
 
141
139
  Parameters
142
140
  ----------
@@ -196,9 +194,9 @@ class DefaultFileUploader(FileUploader):
196
194
  await asyncio.to_thread(self._rag_api.upload_information_piece, rag_information_pieces)
197
195
  self._key_value_store.upsert(source_name, Status.READY)
198
196
  logger.info("Source uploaded successfully: %s", source_name)
199
- except Exception as e:
197
+ except Exception:
200
198
  self._key_value_store.upsert(source_name, Status.ERROR)
201
- logger.error("Error while uploading %s = %s", source_name, str(e))
199
+ logger.exception("Error while uploading %s", source_name)
202
200
 
203
201
  def _add_file_url(self, file_name: str, base_url: str, chunked_documents: list[Document]):
204
202
  document_url = f"{base_url.rstrip('/')}/document_reference/{urllib.parse.quote_plus(file_name)}"
@@ -229,6 +227,6 @@ class DefaultFileUploader(FileUploader):
229
227
 
230
228
  self._file_service.upload_file(Path(temp_file_path), filename)
231
229
  return filename
232
- except Exception as e:
233
- logger.error("Error during document saving: %s %s", e, traceback.format_exc())
230
+ except Exception:
231
+ logger.exception("Error during document saving")
234
232
  self._key_value_store.upsert(source_name, Status.ERROR)
@@ -1,3 +1,5 @@
1
+ """Module for the default source uploader implementation."""
2
+
1
3
  import logging
2
4
  import asyncio
3
5
  from threading import Thread
@@ -28,6 +30,7 @@ logger = logging.getLogger(__name__)
28
30
 
29
31
 
30
32
  class DefaultSourceUploader(SourceUploader):
33
+ """The DefaultSourceUploader is responsible for uploading source files for content extraction."""
31
34
 
32
35
  def __init__(
33
36
  self,
@@ -78,7 +81,7 @@ class DefaultSourceUploader(SourceUploader):
78
81
  kwargs: list[KeyValuePair],
79
82
  ) -> None:
80
83
  """
81
- Uploads the parameters for source content extraction.
84
+ Upload the parameters for source content extraction.
82
85
 
83
86
  Parameters
84
87
  ----------
@@ -95,7 +98,6 @@ class DefaultSourceUploader(SourceUploader):
95
98
  -------
96
99
  None
97
100
  """
98
-
99
101
  self._prune_background_threads()
100
102
 
101
103
  source_name = f"{source_type}:{sanitize_document_name(name)}"
@@ -111,12 +113,12 @@ class DefaultSourceUploader(SourceUploader):
111
113
  raise HTTPException(status_code=status.HTTP_400_BAD_REQUEST, detail=str(e))
112
114
  except Exception as e:
113
115
  self._key_value_store.upsert(source_name, Status.ERROR)
114
- logger.error("Error while uploading %s = %s", source_name, str(e))
116
+ logger.exception("Error while uploading %s", source_name)
115
117
  raise HTTPException(status_code=status.HTTP_500_INTERNAL_SERVER_ERROR, detail=str(e))
116
118
 
117
119
  def _check_if_already_in_processing(self, source_name: str) -> None:
118
120
  """
119
- Checks if the source is already in processing state.
121
+ Check if the source is already in processing state.
120
122
 
121
123
  Parameters
122
124
  ----------
@@ -150,7 +152,7 @@ class DefaultSourceUploader(SourceUploader):
150
152
  logger.error("Upload of %s timed out after %s seconds", source_name, timeout)
151
153
  self._key_value_store.upsert(source_name, Status.ERROR)
152
154
  except Exception:
153
- logger.error("Error while uploading %s", source_name)
155
+ logger.exception("Error while uploading %s", source_name)
154
156
  self._key_value_store.upsert(source_name, Status.ERROR)
155
157
  finally:
156
158
  loop.close()
@@ -197,6 +199,6 @@ class DefaultSourceUploader(SourceUploader):
197
199
  await asyncio.to_thread(self._rag_api.upload_information_piece, rag_information_pieces)
198
200
  self._key_value_store.upsert(source_name, Status.READY)
199
201
  logger.info("Source uploaded successfully: %s", source_name)
200
- except Exception as e:
202
+ except Exception:
201
203
  self._key_value_store.upsert(source_name, Status.ERROR)
202
- logger.error("Error while uploading %s = %s", source_name, str(e))
204
+ logger.exception("Error while uploading %s", source_name)
File without changes