trustgraph-base 2.8.2__tar.gz → 2.8.3__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 (186) hide show
  1. {trustgraph_base-2.8.2 → trustgraph_base-2.8.3}/PKG-INFO +1 -1
  2. {trustgraph_base-2.8.2 → trustgraph_base-2.8.3}/trustgraph/base/async_processor.py +2 -0
  3. {trustgraph_base-2.8.2 → trustgraph_base-2.8.3}/trustgraph/base/metrics.py +40 -27
  4. {trustgraph_base-2.8.2 → trustgraph_base-2.8.3}/trustgraph/base/receiver_pool.py +45 -2
  5. {trustgraph_base-2.8.2 → trustgraph_base-2.8.3}/trustgraph/base/sender_pool.py +15 -0
  6. {trustgraph_base-2.8.2 → trustgraph_base-2.8.3}/trustgraph/base/tool_service.py +2 -3
  7. trustgraph_base-2.8.3/trustgraph/base_version.py +1 -0
  8. {trustgraph_base-2.8.2 → trustgraph_base-2.8.3}/trustgraph_base.egg-info/PKG-INFO +1 -1
  9. trustgraph_base-2.8.2/trustgraph/base_version.py +0 -1
  10. {trustgraph_base-2.8.2 → trustgraph_base-2.8.3}/README.md +0 -0
  11. {trustgraph_base-2.8.2 → trustgraph_base-2.8.3}/pyproject.toml +0 -0
  12. {trustgraph_base-2.8.2 → trustgraph_base-2.8.3}/setup.cfg +0 -0
  13. {trustgraph_base-2.8.2 → trustgraph_base-2.8.3}/trustgraph/api/__init__.py +0 -0
  14. {trustgraph_base-2.8.2 → trustgraph_base-2.8.3}/trustgraph/api/api.py +0 -0
  15. {trustgraph_base-2.8.2 → trustgraph_base-2.8.3}/trustgraph/api/async_bulk_client.py +0 -0
  16. {trustgraph_base-2.8.2 → trustgraph_base-2.8.3}/trustgraph/api/async_flow.py +0 -0
  17. {trustgraph_base-2.8.2 → trustgraph_base-2.8.3}/trustgraph/api/async_metrics.py +0 -0
  18. {trustgraph_base-2.8.2 → trustgraph_base-2.8.3}/trustgraph/api/async_socket_client.py +0 -0
  19. {trustgraph_base-2.8.2 → trustgraph_base-2.8.3}/trustgraph/api/bulk_client.py +0 -0
  20. {trustgraph_base-2.8.2 → trustgraph_base-2.8.3}/trustgraph/api/collection.py +0 -0
  21. {trustgraph_base-2.8.2 → trustgraph_base-2.8.3}/trustgraph/api/config.py +0 -0
  22. {trustgraph_base-2.8.2 → trustgraph_base-2.8.3}/trustgraph/api/exceptions.py +0 -0
  23. {trustgraph_base-2.8.2 → trustgraph_base-2.8.3}/trustgraph/api/explainability.py +0 -0
  24. {trustgraph_base-2.8.2 → trustgraph_base-2.8.3}/trustgraph/api/flow.py +0 -0
  25. {trustgraph_base-2.8.2 → trustgraph_base-2.8.3}/trustgraph/api/knowledge.py +0 -0
  26. {trustgraph_base-2.8.2 → trustgraph_base-2.8.3}/trustgraph/api/library.py +0 -0
  27. {trustgraph_base-2.8.2 → trustgraph_base-2.8.3}/trustgraph/api/metrics.py +0 -0
  28. {trustgraph_base-2.8.2 → trustgraph_base-2.8.3}/trustgraph/api/socket_client.py +0 -0
  29. {trustgraph_base-2.8.2 → trustgraph_base-2.8.3}/trustgraph/api/types.py +0 -0
  30. {trustgraph_base-2.8.2 → trustgraph_base-2.8.3}/trustgraph/base/__init__.py +0 -0
  31. {trustgraph_base-2.8.2 → trustgraph_base-2.8.3}/trustgraph/base/agent_client.py +0 -0
  32. {trustgraph_base-2.8.2 → trustgraph_base-2.8.3}/trustgraph/base/agent_service.py +0 -0
  33. {trustgraph_base-2.8.2 → trustgraph_base-2.8.3}/trustgraph/base/async_backend.py +0 -0
  34. {trustgraph_base-2.8.2 → trustgraph_base-2.8.3}/trustgraph/base/async_config_client.py +0 -0
  35. {trustgraph_base-2.8.2 → trustgraph_base-2.8.3}/trustgraph/base/async_kafka_backend.py +0 -0
  36. {trustgraph_base-2.8.2 → trustgraph_base-2.8.3}/trustgraph/base/async_librarian_client.py +0 -0
  37. {trustgraph_base-2.8.2 → trustgraph_base-2.8.3}/trustgraph/base/async_pulsar_backend.py +0 -0
  38. {trustgraph_base-2.8.2 → trustgraph_base-2.8.3}/trustgraph/base/async_rabbitmq_backend.py +0 -0
  39. {trustgraph_base-2.8.2 → trustgraph_base-2.8.3}/trustgraph/base/async_rr_wrapper.py +0 -0
  40. {trustgraph_base-2.8.2 → trustgraph_base-2.8.3}/trustgraph/base/audit_publisher.py +0 -0
  41. {trustgraph_base-2.8.2 → trustgraph_base-2.8.3}/trustgraph/base/backend.py +0 -0
  42. {trustgraph_base-2.8.2 → trustgraph_base-2.8.3}/trustgraph/base/cassandra_config.py +0 -0
  43. {trustgraph_base-2.8.2 → trustgraph_base-2.8.3}/trustgraph/base/chunking_service.py +0 -0
  44. {trustgraph_base-2.8.2 → trustgraph_base-2.8.3}/trustgraph/base/collection_config_handler.py +0 -0
  45. {trustgraph_base-2.8.2 → trustgraph_base-2.8.3}/trustgraph/base/config_client.py +0 -0
  46. {trustgraph_base-2.8.2 → trustgraph_base-2.8.3}/trustgraph/base/consumer_spec.py +0 -0
  47. {trustgraph_base-2.8.2 → trustgraph_base-2.8.3}/trustgraph/base/document_embeddings_client.py +0 -0
  48. {trustgraph_base-2.8.2 → trustgraph_base-2.8.3}/trustgraph/base/document_embeddings_query_service.py +0 -0
  49. {trustgraph_base-2.8.2 → trustgraph_base-2.8.3}/trustgraph/base/document_embeddings_store_service.py +0 -0
  50. {trustgraph_base-2.8.2 → trustgraph_base-2.8.3}/trustgraph/base/dynamic_tool_service.py +0 -0
  51. {trustgraph_base-2.8.2 → trustgraph_base-2.8.3}/trustgraph/base/embeddings_client.py +0 -0
  52. {trustgraph_base-2.8.2 → trustgraph_base-2.8.3}/trustgraph/base/embeddings_service.py +0 -0
  53. {trustgraph_base-2.8.2 → trustgraph_base-2.8.3}/trustgraph/base/flow.py +0 -0
  54. {trustgraph_base-2.8.2 → trustgraph_base-2.8.3}/trustgraph/base/flow_processor.py +0 -0
  55. {trustgraph_base-2.8.2 → trustgraph_base-2.8.3}/trustgraph/base/graph_embeddings_client.py +0 -0
  56. {trustgraph_base-2.8.2 → trustgraph_base-2.8.3}/trustgraph/base/graph_embeddings_query_service.py +0 -0
  57. {trustgraph_base-2.8.2 → trustgraph_base-2.8.3}/trustgraph/base/graph_embeddings_store_service.py +0 -0
  58. {trustgraph_base-2.8.2 → trustgraph_base-2.8.3}/trustgraph/base/graph_rag_client.py +0 -0
  59. {trustgraph_base-2.8.2 → trustgraph_base-2.8.3}/trustgraph/base/iam_client.py +0 -0
  60. {trustgraph_base-2.8.2 → trustgraph_base-2.8.3}/trustgraph/base/image_to_text_service.py +0 -0
  61. {trustgraph_base-2.8.2 → trustgraph_base-2.8.3}/trustgraph/base/keyword_index_client.py +0 -0
  62. {trustgraph_base-2.8.2 → trustgraph_base-2.8.3}/trustgraph/base/keyword_index_service.py +0 -0
  63. {trustgraph_base-2.8.2 → trustgraph_base-2.8.3}/trustgraph/base/librarian_spec.py +0 -0
  64. {trustgraph_base-2.8.2 → trustgraph_base-2.8.3}/trustgraph/base/llm_service.py +0 -0
  65. {trustgraph_base-2.8.2 → trustgraph_base-2.8.3}/trustgraph/base/logging.py +0 -0
  66. {trustgraph_base-2.8.2 → trustgraph_base-2.8.3}/trustgraph/base/parameter_spec.py +0 -0
  67. {trustgraph_base-2.8.2 → trustgraph_base-2.8.3}/trustgraph/base/processor_group.py +0 -0
  68. {trustgraph_base-2.8.2 → trustgraph_base-2.8.3}/trustgraph/base/producer_spec.py +0 -0
  69. {trustgraph_base-2.8.2 → trustgraph_base-2.8.3}/trustgraph/base/prompt_client.py +0 -0
  70. {trustgraph_base-2.8.2 → trustgraph_base-2.8.3}/trustgraph/base/pubsub.py +0 -0
  71. {trustgraph_base-2.8.2 → trustgraph_base-2.8.3}/trustgraph/base/qdrant_config.py +0 -0
  72. {trustgraph_base-2.8.2 → trustgraph_base-2.8.3}/trustgraph/base/request_response_client.py +0 -0
  73. {trustgraph_base-2.8.2 → trustgraph_base-2.8.3}/trustgraph/base/request_response_spec.py +0 -0
  74. {trustgraph_base-2.8.2 → trustgraph_base-2.8.3}/trustgraph/base/reranker_client.py +0 -0
  75. {trustgraph_base-2.8.2 → trustgraph_base-2.8.3}/trustgraph/base/reranker_service.py +0 -0
  76. {trustgraph_base-2.8.2 → trustgraph_base-2.8.3}/trustgraph/base/row_embeddings_query_client.py +0 -0
  77. {trustgraph_base-2.8.2 → trustgraph_base-2.8.3}/trustgraph/base/schema_compatibility.py +0 -0
  78. {trustgraph_base-2.8.2 → trustgraph_base-2.8.3}/trustgraph/base/serialization.py +0 -0
  79. {trustgraph_base-2.8.2 → trustgraph_base-2.8.3}/trustgraph/base/spec.py +0 -0
  80. {trustgraph_base-2.8.2 → trustgraph_base-2.8.3}/trustgraph/base/structured_query_client.py +0 -0
  81. {trustgraph_base-2.8.2 → trustgraph_base-2.8.3}/trustgraph/base/text_completion_client.py +0 -0
  82. {trustgraph_base-2.8.2 → trustgraph_base-2.8.3}/trustgraph/base/tool_client.py +0 -0
  83. {trustgraph_base-2.8.2 → trustgraph_base-2.8.3}/trustgraph/base/tool_service_client.py +0 -0
  84. {trustgraph_base-2.8.2 → trustgraph_base-2.8.3}/trustgraph/base/triples_client.py +0 -0
  85. {trustgraph_base-2.8.2 → trustgraph_base-2.8.3}/trustgraph/base/triples_query_service.py +0 -0
  86. {trustgraph_base-2.8.2 → trustgraph_base-2.8.3}/trustgraph/base/triples_store_service.py +0 -0
  87. {trustgraph_base-2.8.2 → trustgraph_base-2.8.3}/trustgraph/base/workspace_processor.py +0 -0
  88. {trustgraph_base-2.8.2 → trustgraph_base-2.8.3}/trustgraph/exceptions.py +0 -0
  89. {trustgraph_base-2.8.2 → trustgraph_base-2.8.3}/trustgraph/i18n/__init__.py +0 -0
  90. {trustgraph_base-2.8.2 → trustgraph_base-2.8.3}/trustgraph/i18n/packs/__init__.py +0 -0
  91. {trustgraph_base-2.8.2 → trustgraph_base-2.8.3}/trustgraph/i18n/packs/ar.json +0 -0
  92. {trustgraph_base-2.8.2 → trustgraph_base-2.8.3}/trustgraph/i18n/packs/en.json +0 -0
  93. {trustgraph_base-2.8.2 → trustgraph_base-2.8.3}/trustgraph/i18n/packs/es.json +0 -0
  94. {trustgraph_base-2.8.2 → trustgraph_base-2.8.3}/trustgraph/i18n/packs/he.json +0 -0
  95. {trustgraph_base-2.8.2 → trustgraph_base-2.8.3}/trustgraph/i18n/packs/hi.json +0 -0
  96. {trustgraph_base-2.8.2 → trustgraph_base-2.8.3}/trustgraph/i18n/packs/pt.json +0 -0
  97. {trustgraph_base-2.8.2 → trustgraph_base-2.8.3}/trustgraph/i18n/packs/ru.json +0 -0
  98. {trustgraph_base-2.8.2 → trustgraph_base-2.8.3}/trustgraph/i18n/packs/sw.json +0 -0
  99. {trustgraph_base-2.8.2 → trustgraph_base-2.8.3}/trustgraph/i18n/packs/tr.json +0 -0
  100. {trustgraph_base-2.8.2 → trustgraph_base-2.8.3}/trustgraph/i18n/packs/zh-cn.json +0 -0
  101. {trustgraph_base-2.8.2 → trustgraph_base-2.8.3}/trustgraph/knowledge/__init__.py +0 -0
  102. {trustgraph_base-2.8.2 → trustgraph_base-2.8.3}/trustgraph/knowledge/defs.py +0 -0
  103. {trustgraph_base-2.8.2 → trustgraph_base-2.8.3}/trustgraph/knowledge/document.py +0 -0
  104. {trustgraph_base-2.8.2 → trustgraph_base-2.8.3}/trustgraph/knowledge/identifier.py +0 -0
  105. {trustgraph_base-2.8.2 → trustgraph_base-2.8.3}/trustgraph/knowledge/organization.py +0 -0
  106. {trustgraph_base-2.8.2 → trustgraph_base-2.8.3}/trustgraph/knowledge/publication.py +0 -0
  107. {trustgraph_base-2.8.2 → trustgraph_base-2.8.3}/trustgraph/log_level.py +0 -0
  108. {trustgraph_base-2.8.2 → trustgraph_base-2.8.3}/trustgraph/messaging/__init__.py +0 -0
  109. {trustgraph_base-2.8.2 → trustgraph_base-2.8.3}/trustgraph/messaging/registry.py +0 -0
  110. {trustgraph_base-2.8.2 → trustgraph_base-2.8.3}/trustgraph/messaging/translators/__init__.py +0 -0
  111. {trustgraph_base-2.8.2 → trustgraph_base-2.8.3}/trustgraph/messaging/translators/agent.py +0 -0
  112. {trustgraph_base-2.8.2 → trustgraph_base-2.8.3}/trustgraph/messaging/translators/base.py +0 -0
  113. {trustgraph_base-2.8.2 → trustgraph_base-2.8.3}/trustgraph/messaging/translators/collection.py +0 -0
  114. {trustgraph_base-2.8.2 → trustgraph_base-2.8.3}/trustgraph/messaging/translators/config.py +0 -0
  115. {trustgraph_base-2.8.2 → trustgraph_base-2.8.3}/trustgraph/messaging/translators/diagnosis.py +0 -0
  116. {trustgraph_base-2.8.2 → trustgraph_base-2.8.3}/trustgraph/messaging/translators/document_loading.py +0 -0
  117. {trustgraph_base-2.8.2 → trustgraph_base-2.8.3}/trustgraph/messaging/translators/embeddings.py +0 -0
  118. {trustgraph_base-2.8.2 → trustgraph_base-2.8.3}/trustgraph/messaging/translators/embeddings_query.py +0 -0
  119. {trustgraph_base-2.8.2 → trustgraph_base-2.8.3}/trustgraph/messaging/translators/flow.py +0 -0
  120. {trustgraph_base-2.8.2 → trustgraph_base-2.8.3}/trustgraph/messaging/translators/iam.py +0 -0
  121. {trustgraph_base-2.8.2 → trustgraph_base-2.8.3}/trustgraph/messaging/translators/image_to_text.py +0 -0
  122. {trustgraph_base-2.8.2 → trustgraph_base-2.8.3}/trustgraph/messaging/translators/knowledge.py +0 -0
  123. {trustgraph_base-2.8.2 → trustgraph_base-2.8.3}/trustgraph/messaging/translators/library.py +0 -0
  124. {trustgraph_base-2.8.2 → trustgraph_base-2.8.3}/trustgraph/messaging/translators/metadata.py +0 -0
  125. {trustgraph_base-2.8.2 → trustgraph_base-2.8.3}/trustgraph/messaging/translators/nlp_query.py +0 -0
  126. {trustgraph_base-2.8.2 → trustgraph_base-2.8.3}/trustgraph/messaging/translators/primitives.py +0 -0
  127. {trustgraph_base-2.8.2 → trustgraph_base-2.8.3}/trustgraph/messaging/translators/prompt.py +0 -0
  128. {trustgraph_base-2.8.2 → trustgraph_base-2.8.3}/trustgraph/messaging/translators/reranker.py +0 -0
  129. {trustgraph_base-2.8.2 → trustgraph_base-2.8.3}/trustgraph/messaging/translators/retrieval.py +0 -0
  130. {trustgraph_base-2.8.2 → trustgraph_base-2.8.3}/trustgraph/messaging/translators/rows_query.py +0 -0
  131. {trustgraph_base-2.8.2 → trustgraph_base-2.8.3}/trustgraph/messaging/translators/sparql_query.py +0 -0
  132. {trustgraph_base-2.8.2 → trustgraph_base-2.8.3}/trustgraph/messaging/translators/structured_query.py +0 -0
  133. {trustgraph_base-2.8.2 → trustgraph_base-2.8.3}/trustgraph/messaging/translators/text_completion.py +0 -0
  134. {trustgraph_base-2.8.2 → trustgraph_base-2.8.3}/trustgraph/messaging/translators/tool.py +0 -0
  135. {trustgraph_base-2.8.2 → trustgraph_base-2.8.3}/trustgraph/messaging/translators/triples.py +0 -0
  136. {trustgraph_base-2.8.2 → trustgraph_base-2.8.3}/trustgraph/objects/__init__.py +0 -0
  137. {trustgraph_base-2.8.2 → trustgraph_base-2.8.3}/trustgraph/objects/field.py +0 -0
  138. {trustgraph_base-2.8.2 → trustgraph_base-2.8.3}/trustgraph/objects/object.py +0 -0
  139. {trustgraph_base-2.8.2 → trustgraph_base-2.8.3}/trustgraph/provenance/__init__.py +0 -0
  140. {trustgraph_base-2.8.2 → trustgraph_base-2.8.3}/trustgraph/provenance/agent.py +0 -0
  141. {trustgraph_base-2.8.2 → trustgraph_base-2.8.3}/trustgraph/provenance/namespaces.py +0 -0
  142. {trustgraph_base-2.8.2 → trustgraph_base-2.8.3}/trustgraph/provenance/triples.py +0 -0
  143. {trustgraph_base-2.8.2 → trustgraph_base-2.8.3}/trustgraph/provenance/uris.py +0 -0
  144. {trustgraph_base-2.8.2 → trustgraph_base-2.8.3}/trustgraph/provenance/vocabulary.py +0 -0
  145. {trustgraph_base-2.8.2 → trustgraph_base-2.8.3}/trustgraph/rdf.py +0 -0
  146. {trustgraph_base-2.8.2 → trustgraph_base-2.8.3}/trustgraph/schema/__init__.py +0 -0
  147. {trustgraph_base-2.8.2 → trustgraph_base-2.8.3}/trustgraph/schema/core/__init__.py +0 -0
  148. {trustgraph_base-2.8.2 → trustgraph_base-2.8.3}/trustgraph/schema/core/metadata.py +0 -0
  149. {trustgraph_base-2.8.2 → trustgraph_base-2.8.3}/trustgraph/schema/core/primitives.py +0 -0
  150. {trustgraph_base-2.8.2 → trustgraph_base-2.8.3}/trustgraph/schema/core/topic.py +0 -0
  151. {trustgraph_base-2.8.2 → trustgraph_base-2.8.3}/trustgraph/schema/knowledge/__init__.py +0 -0
  152. {trustgraph_base-2.8.2 → trustgraph_base-2.8.3}/trustgraph/schema/knowledge/document.py +0 -0
  153. {trustgraph_base-2.8.2 → trustgraph_base-2.8.3}/trustgraph/schema/knowledge/embeddings.py +0 -0
  154. {trustgraph_base-2.8.2 → trustgraph_base-2.8.3}/trustgraph/schema/knowledge/graph.py +0 -0
  155. {trustgraph_base-2.8.2 → trustgraph_base-2.8.3}/trustgraph/schema/knowledge/knowledge.py +0 -0
  156. {trustgraph_base-2.8.2 → trustgraph_base-2.8.3}/trustgraph/schema/knowledge/nlp.py +0 -0
  157. {trustgraph_base-2.8.2 → trustgraph_base-2.8.3}/trustgraph/schema/knowledge/object.py +0 -0
  158. {trustgraph_base-2.8.2 → trustgraph_base-2.8.3}/trustgraph/schema/knowledge/rows.py +0 -0
  159. {trustgraph_base-2.8.2 → trustgraph_base-2.8.3}/trustgraph/schema/knowledge/structured.py +0 -0
  160. {trustgraph_base-2.8.2 → trustgraph_base-2.8.3}/trustgraph/schema/services/__init__.py +0 -0
  161. {trustgraph_base-2.8.2 → trustgraph_base-2.8.3}/trustgraph/schema/services/agent.py +0 -0
  162. {trustgraph_base-2.8.2 → trustgraph_base-2.8.3}/trustgraph/schema/services/audit.py +0 -0
  163. {trustgraph_base-2.8.2 → trustgraph_base-2.8.3}/trustgraph/schema/services/collection.py +0 -0
  164. {trustgraph_base-2.8.2 → trustgraph_base-2.8.3}/trustgraph/schema/services/config.py +0 -0
  165. {trustgraph_base-2.8.2 → trustgraph_base-2.8.3}/trustgraph/schema/services/diagnosis.py +0 -0
  166. {trustgraph_base-2.8.2 → trustgraph_base-2.8.3}/trustgraph/schema/services/flow.py +0 -0
  167. {trustgraph_base-2.8.2 → trustgraph_base-2.8.3}/trustgraph/schema/services/iam.py +0 -0
  168. {trustgraph_base-2.8.2 → trustgraph_base-2.8.3}/trustgraph/schema/services/image_to_text.py +0 -0
  169. {trustgraph_base-2.8.2 → trustgraph_base-2.8.3}/trustgraph/schema/services/library.py +0 -0
  170. {trustgraph_base-2.8.2 → trustgraph_base-2.8.3}/trustgraph/schema/services/llm.py +0 -0
  171. {trustgraph_base-2.8.2 → trustgraph_base-2.8.3}/trustgraph/schema/services/lookup.py +0 -0
  172. {trustgraph_base-2.8.2 → trustgraph_base-2.8.3}/trustgraph/schema/services/nlp_query.py +0 -0
  173. {trustgraph_base-2.8.2 → trustgraph_base-2.8.3}/trustgraph/schema/services/prompt.py +0 -0
  174. {trustgraph_base-2.8.2 → trustgraph_base-2.8.3}/trustgraph/schema/services/query.py +0 -0
  175. {trustgraph_base-2.8.2 → trustgraph_base-2.8.3}/trustgraph/schema/services/reranker.py +0 -0
  176. {trustgraph_base-2.8.2 → trustgraph_base-2.8.3}/trustgraph/schema/services/retrieval.py +0 -0
  177. {trustgraph_base-2.8.2 → trustgraph_base-2.8.3}/trustgraph/schema/services/rows_query.py +0 -0
  178. {trustgraph_base-2.8.2 → trustgraph_base-2.8.3}/trustgraph/schema/services/sparql_query.py +0 -0
  179. {trustgraph_base-2.8.2 → trustgraph_base-2.8.3}/trustgraph/schema/services/storage.py +0 -0
  180. {trustgraph_base-2.8.2 → trustgraph_base-2.8.3}/trustgraph/schema/services/structured_query.py +0 -0
  181. {trustgraph_base-2.8.2 → trustgraph_base-2.8.3}/trustgraph/schema/services/tool_service.py +0 -0
  182. {trustgraph_base-2.8.2 → trustgraph_base-2.8.3}/trustgraph_base.egg-info/SOURCES.txt +0 -0
  183. {trustgraph_base-2.8.2 → trustgraph_base-2.8.3}/trustgraph_base.egg-info/dependency_links.txt +0 -0
  184. {trustgraph_base-2.8.2 → trustgraph_base-2.8.3}/trustgraph_base.egg-info/entry_points.txt +0 -0
  185. {trustgraph_base-2.8.2 → trustgraph_base-2.8.3}/trustgraph_base.egg-info/requires.txt +0 -0
  186. {trustgraph_base-2.8.2 → trustgraph_base-2.8.3}/trustgraph_base.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: trustgraph-base
3
- Version: 2.8.2
3
+ Version: 2.8.3
4
4
  Summary: TrustGraph provides a means to run a pipeline of flexible AI processing components in a flexible means to achieve a processing pipeline.
5
5
  Author-email: "trustgraph.ai" <security@trustgraph.ai>
6
6
  Project-URL: Homepage, https://github.com/trustgraph-ai/trustgraph
@@ -51,10 +51,12 @@ class AsyncProcessor:
51
51
  self.receiver_pool = ReceiverPool(
52
52
  backend=self.async_backend,
53
53
  concurrency=self.concurrency,
54
+ processor_id=self.id,
54
55
  )
55
56
 
56
57
  self.sender_pool = SenderPool(
57
58
  backend=self.async_backend,
59
+ processor_id=self.id,
58
60
  )
59
61
 
60
62
  self.config_push_queue = params.get(
@@ -13,13 +13,11 @@ class ConsumerMetrics:
13
13
 
14
14
  self.processor = processor
15
15
  self.consumer = consumer
16
- self.workspace = workspace
17
- self.flow = flow
18
16
 
19
17
  if not hasattr(__class__, "state_metric"):
20
18
  __class__.state_metric = Enum(
21
19
  'consumer_state', 'Consumer state',
22
- ["processor", "workspace", "flow", "consumer"],
20
+ ["processor", "consumer"],
23
21
  states=['stopped', 'running']
24
22
  )
25
23
 
@@ -32,31 +30,46 @@ class ConsumerMetrics:
32
30
  if not hasattr(__class__, "processing_metric"):
33
31
  __class__.processing_metric = Counter(
34
32
  'processing_count', 'Processing count',
35
- ["processor", "workspace", "flow", "consumer", "status"],
33
+ ["processor", "consumer", "status"],
36
34
  )
37
35
 
38
36
  if not hasattr(__class__, "rate_limit_metric"):
39
37
  __class__.rate_limit_metric = Counter(
40
38
  'rate_limit_count', 'Rate limit event count',
41
- ["processor", "workspace", "flow", "consumer"],
39
+ ["processor", "consumer"],
42
40
  )
43
41
 
42
+ __class__.request_metric.labels(
43
+ processor=self.processor, consumer=self.consumer,
44
+ )
45
+ __class__.processing_metric.labels(
46
+ processor=self.processor, consumer=self.consumer,
47
+ status="ok",
48
+ )
49
+ __class__.processing_metric.labels(
50
+ processor=self.processor, consumer=self.consumer,
51
+ status="error",
52
+ )
53
+ __class__.rate_limit_metric.labels(
54
+ processor=self.processor, consumer=self.consumer,
55
+ )
56
+
44
57
  def process(self, status: str) -> None:
45
58
  __class__.processing_metric.labels(
46
- processor=self.processor, workspace=self.workspace,
47
- flow=self.flow, consumer=self.consumer, status=status,
59
+ processor=self.processor,
60
+ consumer=self.consumer, status=status,
48
61
  ).inc()
49
62
 
50
63
  def rate_limit(self) -> None:
51
64
  __class__.rate_limit_metric.labels(
52
- processor=self.processor, workspace=self.workspace,
53
- flow=self.flow, consumer=self.consumer,
65
+ processor=self.processor,
66
+ consumer=self.consumer,
54
67
  ).inc()
55
68
 
56
69
  def state(self, state: str) -> None:
57
70
  __class__.state_metric.labels(
58
- processor=self.processor, workspace=self.workspace,
59
- flow=self.flow, consumer=self.consumer,
71
+ processor=self.processor,
72
+ consumer=self.consumer,
60
73
  ).state(state)
61
74
 
62
75
  def record_time(self) -> Any:
@@ -72,19 +85,21 @@ class ProducerMetrics:
72
85
 
73
86
  self.processor = processor
74
87
  self.producer = producer
75
- self.workspace = workspace
76
- self.flow = flow
77
88
 
78
89
  if not hasattr(__class__, "producer_metric"):
79
90
  __class__.producer_metric = Counter(
80
91
  'producer_count', 'Output items produced',
81
- ["processor", "workspace", "flow", "producer"],
92
+ ["processor", "producer"],
82
93
  )
83
94
 
95
+ __class__.producer_metric.labels(
96
+ processor=self.processor, producer=self.producer,
97
+ )
98
+
84
99
  def inc(self) -> None:
85
100
  __class__.producer_metric.labels(
86
- processor=self.processor, workspace=self.workspace,
87
- flow=self.flow, producer=self.producer,
101
+ processor=self.processor,
102
+ producer=self.producer,
88
103
  ).inc()
89
104
 
90
105
  class ProcessorMetrics:
@@ -111,42 +126,40 @@ class SubscriberMetrics:
111
126
 
112
127
  self.processor = processor
113
128
  self.subscriber = subscriber
114
- self.workspace = workspace
115
- self.flow = flow
116
129
 
117
130
  if not hasattr(__class__, "state_metric"):
118
131
  __class__.state_metric = Enum(
119
132
  'subscriber_state', 'Subscriber state',
120
- ["processor", "workspace", "flow", "subscriber"],
133
+ ["processor", "subscriber"],
121
134
  states=['stopped', 'running']
122
135
  )
123
136
 
124
137
  if not hasattr(__class__, "received_metric"):
125
138
  __class__.received_metric = Counter(
126
139
  'received_count', 'Received count',
127
- ["processor", "workspace", "flow", "subscriber"],
140
+ ["processor", "subscriber"],
128
141
  )
129
142
 
130
143
  if not hasattr(__class__, "dropped_metric"):
131
144
  __class__.dropped_metric = Counter(
132
145
  'dropped_count', 'Dropped messages count',
133
- ["processor", "workspace", "flow", "subscriber"],
146
+ ["processor", "subscriber"],
134
147
  )
135
148
 
136
149
  def received(self) -> None:
137
150
  __class__.received_metric.labels(
138
- processor=self.processor, workspace=self.workspace,
139
- flow=self.flow, subscriber=self.subscriber,
151
+ processor=self.processor,
152
+ subscriber=self.subscriber,
140
153
  ).inc()
141
154
 
142
155
  def state(self, state: str) -> None:
143
156
  __class__.state_metric.labels(
144
- processor=self.processor, workspace=self.workspace,
145
- flow=self.flow, subscriber=self.subscriber,
157
+ processor=self.processor,
158
+ subscriber=self.subscriber,
146
159
  ).state(state)
147
160
 
148
161
  def dropped(self, state: str) -> None:
149
162
  __class__.dropped_metric.labels(
150
- processor=self.processor, workspace=self.workspace,
151
- flow=self.flow, subscriber=self.subscriber,
163
+ processor=self.processor,
164
+ subscriber=self.subscriber,
152
165
  ).inc()
@@ -26,6 +26,7 @@ class ConsumerRegistration:
26
26
  backend_consumer: AsyncBackendConsumer
27
27
  receiver_task: asyncio.Task
28
28
  pool: 'ReceiverPool'
29
+ metrics: Any = None
29
30
 
30
31
  async def unregister(self):
31
32
  await self.pool.remove_consumer(self)
@@ -58,9 +59,13 @@ class ReceiverPool:
58
59
  await pool.stop()
59
60
  """
60
61
 
61
- def __init__(self, backend: AsyncPubSubBackend, concurrency: int = 1):
62
+ def __init__(
63
+ self, backend: AsyncPubSubBackend, concurrency: int = 1,
64
+ processor_id: str | None = None,
65
+ ):
62
66
  self.backend = backend
63
67
  self.concurrency = concurrency
68
+ self.processor_id = processor_id
64
69
  self.work_queue = asyncio.Queue(maxsize=concurrency)
65
70
  self.registrations: list[ConsumerRegistration] = []
66
71
  self.worker_tasks: list[asyncio.Task] = []
@@ -93,6 +98,11 @@ class ReceiverPool:
93
98
  await reg.receiver_task
94
99
  except BaseException:
95
100
  pass
101
+
102
+ for reg in self.registrations:
103
+ if reg.metrics:
104
+ reg.metrics.state("stopped")
105
+
96
106
  self.registrations.clear()
97
107
 
98
108
  if not self.work_queue.empty():
@@ -136,8 +146,18 @@ class ReceiverPool:
136
146
  initial_position=initial_position,
137
147
  )
138
148
 
149
+ metrics = None
150
+ if self.processor_id:
151
+ from .metrics import ConsumerMetrics
152
+ metrics = ConsumerMetrics(
153
+ processor=self.processor_id, consumer=topic,
154
+ )
155
+ metrics.state("running")
156
+
157
+ instrumented = self._instrumented_handler(handler, metrics)
158
+
139
159
  receiver_task = asyncio.create_task(
140
- self._receiver_loop(backend_consumer, handler),
160
+ self._receiver_loop(backend_consumer, instrumented),
141
161
  name=f"receiver-{topic}",
142
162
  )
143
163
 
@@ -147,12 +167,32 @@ class ReceiverPool:
147
167
  backend_consumer=backend_consumer,
148
168
  receiver_task=receiver_task,
149
169
  pool=self,
170
+ metrics=metrics,
150
171
  )
151
172
  self.registrations.append(reg)
152
173
 
153
174
  logger.info(f"Added consumer: {topic}")
154
175
  return reg
155
176
 
177
+ def _instrumented_handler(
178
+ self,
179
+ handler: Callable[..., Awaitable[None]],
180
+ metrics,
181
+ ) -> Callable[..., Awaitable[None]]:
182
+ if metrics is None:
183
+ return handler
184
+
185
+ async def wrapper(message):
186
+ with metrics.record_time():
187
+ try:
188
+ await handler(message)
189
+ metrics.process("ok")
190
+ except Exception:
191
+ metrics.process("error")
192
+ raise
193
+
194
+ return wrapper
195
+
156
196
  async def remove_consumer(self, reg: ConsumerRegistration):
157
197
  try:
158
198
  await reg.backend_consumer.close()
@@ -168,6 +208,9 @@ class ReceiverPool:
168
208
  if reg in self.registrations:
169
209
  self.registrations.remove(reg)
170
210
 
211
+ if reg.metrics:
212
+ reg.metrics.state("stopped")
213
+
171
214
  logger.info(f"Removed consumer: {reg.topic}")
172
215
 
173
216
  async def _receiver_loop(
@@ -31,11 +31,13 @@ class ProducerHandle:
31
31
  def __init__(
32
32
  self, topic: str, backend_producer: AsyncBackendProducer,
33
33
  send_queue: asyncio.Queue, pool: 'SenderPool',
34
+ metrics=None,
34
35
  ):
35
36
  self.topic = topic
36
37
  self.backend_producer = backend_producer
37
38
  self.send_queue = send_queue
38
39
  self.pool = pool
40
+ self.metrics = metrics
39
41
 
40
42
  async def send(
41
43
  self, message: Any, properties: dict = {}, wait: bool = False,
@@ -49,6 +51,9 @@ class ProducerHandle:
49
51
  SendItem(message=message, properties=properties, future=future)
50
52
  )
51
53
 
54
+ if self.metrics:
55
+ self.metrics.inc()
56
+
52
57
  if future is not None:
53
58
  await future
54
59
 
@@ -75,9 +80,11 @@ class SenderPool:
75
80
 
76
81
  def __init__(
77
82
  self, backend: AsyncPubSubBackend, send_queue_size: int = 64,
83
+ processor_id: str | None = None,
78
84
  ):
79
85
  self.backend = backend
80
86
  self.send_queue_size = send_queue_size
87
+ self.processor_id = processor_id
81
88
  self.handles: list[ProducerHandle] = []
82
89
  self.sender_task: asyncio.Task | None = None
83
90
  self.running = False
@@ -130,11 +137,19 @@ class SenderPool:
130
137
 
131
138
  send_queue = asyncio.Queue(maxsize=self.send_queue_size)
132
139
 
140
+ metrics = None
141
+ if self.processor_id:
142
+ from .metrics import ProducerMetrics
143
+ metrics = ProducerMetrics(
144
+ processor=self.processor_id, producer=topic,
145
+ )
146
+
133
147
  handle = ProducerHandle(
134
148
  topic=topic,
135
149
  backend_producer=backend_producer,
136
150
  send_queue=send_queue,
137
151
  pool=self,
152
+ metrics=metrics,
138
153
  )
139
154
  self.handles.append(handle)
140
155
 
@@ -50,7 +50,7 @@ class ToolService(FlowProcessor):
50
50
  if not hasattr(__class__, "tool_invocation_metric"):
51
51
  __class__.tool_invocation_metric = Counter(
52
52
  'tool_invocation_count', 'Tool invocation count',
53
- ["processor", "workspace", "flow", "tool"],
53
+ ["processor", "tool"],
54
54
  )
55
55
 
56
56
  async def on_request(self, msg, consumer, flow):
@@ -89,8 +89,7 @@ class ToolService(FlowProcessor):
89
89
  )
90
90
 
91
91
  __class__.tool_invocation_metric.labels(
92
- processor=self.id, workspace=flow.workspace,
93
- flow=flow.name, tool=request.name,
92
+ processor=self.id, tool=request.name,
94
93
  ).inc()
95
94
 
96
95
  except TooManyRequests as e:
@@ -0,0 +1 @@
1
+ __version__ = "2.8.3"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: trustgraph-base
3
- Version: 2.8.2
3
+ Version: 2.8.3
4
4
  Summary: TrustGraph provides a means to run a pipeline of flexible AI processing components in a flexible means to achieve a processing pipeline.
5
5
  Author-email: "trustgraph.ai" <security@trustgraph.ai>
6
6
  Project-URL: Homepage, https://github.com/trustgraph-ai/trustgraph
@@ -1 +0,0 @@
1
- __version__ = "2.8.2"