trustgraph-base 2.3.9__tar.gz → 2.3.11__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.
- {trustgraph_base-2.3.9 → trustgraph_base-2.3.11}/PKG-INFO +1 -1
- {trustgraph_base-2.3.9 → trustgraph_base-2.3.11}/pyproject.toml +3 -0
- {trustgraph_base-2.3.9 → trustgraph_base-2.3.11}/trustgraph/base/logging.py +76 -17
- trustgraph_base-2.3.11/trustgraph/base/processor_group.py +204 -0
- {trustgraph_base-2.3.9 → trustgraph_base-2.3.11}/trustgraph/base/rabbitmq_backend.py +27 -10
- trustgraph_base-2.3.11/trustgraph/base_version.py +1 -0
- {trustgraph_base-2.3.9 → trustgraph_base-2.3.11}/trustgraph_base.egg-info/PKG-INFO +1 -1
- {trustgraph_base-2.3.9 → trustgraph_base-2.3.11}/trustgraph_base.egg-info/SOURCES.txt +2 -0
- trustgraph_base-2.3.11/trustgraph_base.egg-info/entry_points.txt +2 -0
- trustgraph_base-2.3.9/trustgraph/base_version.py +0 -1
- {trustgraph_base-2.3.9 → trustgraph_base-2.3.11}/README.md +0 -0
- {trustgraph_base-2.3.9 → trustgraph_base-2.3.11}/setup.cfg +0 -0
- {trustgraph_base-2.3.9 → trustgraph_base-2.3.11}/trustgraph/api/__init__.py +0 -0
- {trustgraph_base-2.3.9 → trustgraph_base-2.3.11}/trustgraph/api/api.py +0 -0
- {trustgraph_base-2.3.9 → trustgraph_base-2.3.11}/trustgraph/api/async_bulk_client.py +0 -0
- {trustgraph_base-2.3.9 → trustgraph_base-2.3.11}/trustgraph/api/async_flow.py +0 -0
- {trustgraph_base-2.3.9 → trustgraph_base-2.3.11}/trustgraph/api/async_metrics.py +0 -0
- {trustgraph_base-2.3.9 → trustgraph_base-2.3.11}/trustgraph/api/async_socket_client.py +0 -0
- {trustgraph_base-2.3.9 → trustgraph_base-2.3.11}/trustgraph/api/bulk_client.py +0 -0
- {trustgraph_base-2.3.9 → trustgraph_base-2.3.11}/trustgraph/api/collection.py +0 -0
- {trustgraph_base-2.3.9 → trustgraph_base-2.3.11}/trustgraph/api/config.py +0 -0
- {trustgraph_base-2.3.9 → trustgraph_base-2.3.11}/trustgraph/api/exceptions.py +0 -0
- {trustgraph_base-2.3.9 → trustgraph_base-2.3.11}/trustgraph/api/explainability.py +0 -0
- {trustgraph_base-2.3.9 → trustgraph_base-2.3.11}/trustgraph/api/flow.py +0 -0
- {trustgraph_base-2.3.9 → trustgraph_base-2.3.11}/trustgraph/api/knowledge.py +0 -0
- {trustgraph_base-2.3.9 → trustgraph_base-2.3.11}/trustgraph/api/library.py +0 -0
- {trustgraph_base-2.3.9 → trustgraph_base-2.3.11}/trustgraph/api/metrics.py +0 -0
- {trustgraph_base-2.3.9 → trustgraph_base-2.3.11}/trustgraph/api/socket_client.py +0 -0
- {trustgraph_base-2.3.9 → trustgraph_base-2.3.11}/trustgraph/api/types.py +0 -0
- {trustgraph_base-2.3.9 → trustgraph_base-2.3.11}/trustgraph/base/__init__.py +0 -0
- {trustgraph_base-2.3.9 → trustgraph_base-2.3.11}/trustgraph/base/agent_client.py +0 -0
- {trustgraph_base-2.3.9 → trustgraph_base-2.3.11}/trustgraph/base/agent_service.py +0 -0
- {trustgraph_base-2.3.9 → trustgraph_base-2.3.11}/trustgraph/base/async_processor.py +0 -0
- {trustgraph_base-2.3.9 → trustgraph_base-2.3.11}/trustgraph/base/backend.py +0 -0
- {trustgraph_base-2.3.9 → trustgraph_base-2.3.11}/trustgraph/base/cassandra_config.py +0 -0
- {trustgraph_base-2.3.9 → trustgraph_base-2.3.11}/trustgraph/base/chunking_service.py +0 -0
- {trustgraph_base-2.3.9 → trustgraph_base-2.3.11}/trustgraph/base/collection_config_handler.py +0 -0
- {trustgraph_base-2.3.9 → trustgraph_base-2.3.11}/trustgraph/base/consumer.py +0 -0
- {trustgraph_base-2.3.9 → trustgraph_base-2.3.11}/trustgraph/base/consumer_spec.py +0 -0
- {trustgraph_base-2.3.9 → trustgraph_base-2.3.11}/trustgraph/base/document_embeddings_client.py +0 -0
- {trustgraph_base-2.3.9 → trustgraph_base-2.3.11}/trustgraph/base/document_embeddings_query_service.py +0 -0
- {trustgraph_base-2.3.9 → trustgraph_base-2.3.11}/trustgraph/base/document_embeddings_store_service.py +0 -0
- {trustgraph_base-2.3.9 → trustgraph_base-2.3.11}/trustgraph/base/dynamic_tool_service.py +0 -0
- {trustgraph_base-2.3.9 → trustgraph_base-2.3.11}/trustgraph/base/embeddings_client.py +0 -0
- {trustgraph_base-2.3.9 → trustgraph_base-2.3.11}/trustgraph/base/embeddings_service.py +0 -0
- {trustgraph_base-2.3.9 → trustgraph_base-2.3.11}/trustgraph/base/flow.py +0 -0
- {trustgraph_base-2.3.9 → trustgraph_base-2.3.11}/trustgraph/base/flow_processor.py +0 -0
- {trustgraph_base-2.3.9 → trustgraph_base-2.3.11}/trustgraph/base/graph_embeddings_client.py +0 -0
- {trustgraph_base-2.3.9 → trustgraph_base-2.3.11}/trustgraph/base/graph_embeddings_query_service.py +0 -0
- {trustgraph_base-2.3.9 → trustgraph_base-2.3.11}/trustgraph/base/graph_embeddings_store_service.py +0 -0
- {trustgraph_base-2.3.9 → trustgraph_base-2.3.11}/trustgraph/base/graph_rag_client.py +0 -0
- {trustgraph_base-2.3.9 → trustgraph_base-2.3.11}/trustgraph/base/librarian_client.py +0 -0
- {trustgraph_base-2.3.9 → trustgraph_base-2.3.11}/trustgraph/base/llm_service.py +0 -0
- {trustgraph_base-2.3.9 → trustgraph_base-2.3.11}/trustgraph/base/metrics.py +0 -0
- {trustgraph_base-2.3.9 → trustgraph_base-2.3.11}/trustgraph/base/parameter_spec.py +0 -0
- {trustgraph_base-2.3.9 → trustgraph_base-2.3.11}/trustgraph/base/producer.py +0 -0
- {trustgraph_base-2.3.9 → trustgraph_base-2.3.11}/trustgraph/base/producer_spec.py +0 -0
- {trustgraph_base-2.3.9 → trustgraph_base-2.3.11}/trustgraph/base/prompt_client.py +0 -0
- {trustgraph_base-2.3.9 → trustgraph_base-2.3.11}/trustgraph/base/publisher.py +0 -0
- {trustgraph_base-2.3.9 → trustgraph_base-2.3.11}/trustgraph/base/pubsub.py +0 -0
- {trustgraph_base-2.3.9 → trustgraph_base-2.3.11}/trustgraph/base/pulsar_backend.py +0 -0
- {trustgraph_base-2.3.9 → trustgraph_base-2.3.11}/trustgraph/base/request_response_spec.py +0 -0
- {trustgraph_base-2.3.9 → trustgraph_base-2.3.11}/trustgraph/base/row_embeddings_query_client.py +0 -0
- {trustgraph_base-2.3.9 → trustgraph_base-2.3.11}/trustgraph/base/serialization.py +0 -0
- {trustgraph_base-2.3.9 → trustgraph_base-2.3.11}/trustgraph/base/spec.py +0 -0
- {trustgraph_base-2.3.9 → trustgraph_base-2.3.11}/trustgraph/base/structured_query_client.py +0 -0
- {trustgraph_base-2.3.9 → trustgraph_base-2.3.11}/trustgraph/base/subscriber.py +0 -0
- {trustgraph_base-2.3.9 → trustgraph_base-2.3.11}/trustgraph/base/subscriber_spec.py +0 -0
- {trustgraph_base-2.3.9 → trustgraph_base-2.3.11}/trustgraph/base/text_completion_client.py +0 -0
- {trustgraph_base-2.3.9 → trustgraph_base-2.3.11}/trustgraph/base/tool_client.py +0 -0
- {trustgraph_base-2.3.9 → trustgraph_base-2.3.11}/trustgraph/base/tool_service.py +0 -0
- {trustgraph_base-2.3.9 → trustgraph_base-2.3.11}/trustgraph/base/tool_service_client.py +0 -0
- {trustgraph_base-2.3.9 → trustgraph_base-2.3.11}/trustgraph/base/triples_client.py +0 -0
- {trustgraph_base-2.3.9 → trustgraph_base-2.3.11}/trustgraph/base/triples_query_service.py +0 -0
- {trustgraph_base-2.3.9 → trustgraph_base-2.3.11}/trustgraph/base/triples_store_service.py +0 -0
- {trustgraph_base-2.3.9 → trustgraph_base-2.3.11}/trustgraph/clients/__init__.py +0 -0
- {trustgraph_base-2.3.9 → trustgraph_base-2.3.11}/trustgraph/clients/agent_client.py +0 -0
- {trustgraph_base-2.3.9 → trustgraph_base-2.3.11}/trustgraph/clients/base.py +0 -0
- {trustgraph_base-2.3.9 → trustgraph_base-2.3.11}/trustgraph/clients/config_client.py +0 -0
- {trustgraph_base-2.3.9 → trustgraph_base-2.3.11}/trustgraph/clients/document_embeddings_client.py +0 -0
- {trustgraph_base-2.3.9 → trustgraph_base-2.3.11}/trustgraph/clients/document_rag_client.py +0 -0
- {trustgraph_base-2.3.9 → trustgraph_base-2.3.11}/trustgraph/clients/embeddings_client.py +0 -0
- {trustgraph_base-2.3.9 → trustgraph_base-2.3.11}/trustgraph/clients/graph_embeddings_client.py +0 -0
- {trustgraph_base-2.3.9 → trustgraph_base-2.3.11}/trustgraph/clients/graph_rag_client.py +0 -0
- {trustgraph_base-2.3.9 → trustgraph_base-2.3.11}/trustgraph/clients/llm_client.py +0 -0
- {trustgraph_base-2.3.9 → trustgraph_base-2.3.11}/trustgraph/clients/prompt_client.py +0 -0
- {trustgraph_base-2.3.9 → trustgraph_base-2.3.11}/trustgraph/clients/row_embeddings_client.py +0 -0
- {trustgraph_base-2.3.9 → trustgraph_base-2.3.11}/trustgraph/clients/triples_query_client.py +0 -0
- {trustgraph_base-2.3.9 → trustgraph_base-2.3.11}/trustgraph/exceptions.py +0 -0
- {trustgraph_base-2.3.9 → trustgraph_base-2.3.11}/trustgraph/i18n/__init__.py +0 -0
- {trustgraph_base-2.3.9 → trustgraph_base-2.3.11}/trustgraph/i18n/packs/__init__.py +0 -0
- {trustgraph_base-2.3.9 → trustgraph_base-2.3.11}/trustgraph/i18n/packs/ar.json +0 -0
- {trustgraph_base-2.3.9 → trustgraph_base-2.3.11}/trustgraph/i18n/packs/en.json +0 -0
- {trustgraph_base-2.3.9 → trustgraph_base-2.3.11}/trustgraph/i18n/packs/es.json +0 -0
- {trustgraph_base-2.3.9 → trustgraph_base-2.3.11}/trustgraph/i18n/packs/he.json +0 -0
- {trustgraph_base-2.3.9 → trustgraph_base-2.3.11}/trustgraph/i18n/packs/hi.json +0 -0
- {trustgraph_base-2.3.9 → trustgraph_base-2.3.11}/trustgraph/i18n/packs/pt.json +0 -0
- {trustgraph_base-2.3.9 → trustgraph_base-2.3.11}/trustgraph/i18n/packs/ru.json +0 -0
- {trustgraph_base-2.3.9 → trustgraph_base-2.3.11}/trustgraph/i18n/packs/sw.json +0 -0
- {trustgraph_base-2.3.9 → trustgraph_base-2.3.11}/trustgraph/i18n/packs/tr.json +0 -0
- {trustgraph_base-2.3.9 → trustgraph_base-2.3.11}/trustgraph/i18n/packs/zh-cn.json +0 -0
- {trustgraph_base-2.3.9 → trustgraph_base-2.3.11}/trustgraph/knowledge/__init__.py +0 -0
- {trustgraph_base-2.3.9 → trustgraph_base-2.3.11}/trustgraph/knowledge/defs.py +0 -0
- {trustgraph_base-2.3.9 → trustgraph_base-2.3.11}/trustgraph/knowledge/document.py +0 -0
- {trustgraph_base-2.3.9 → trustgraph_base-2.3.11}/trustgraph/knowledge/identifier.py +0 -0
- {trustgraph_base-2.3.9 → trustgraph_base-2.3.11}/trustgraph/knowledge/organization.py +0 -0
- {trustgraph_base-2.3.9 → trustgraph_base-2.3.11}/trustgraph/knowledge/publication.py +0 -0
- {trustgraph_base-2.3.9 → trustgraph_base-2.3.11}/trustgraph/log_level.py +0 -0
- {trustgraph_base-2.3.9 → trustgraph_base-2.3.11}/trustgraph/messaging/__init__.py +0 -0
- {trustgraph_base-2.3.9 → trustgraph_base-2.3.11}/trustgraph/messaging/registry.py +0 -0
- {trustgraph_base-2.3.9 → trustgraph_base-2.3.11}/trustgraph/messaging/translators/__init__.py +0 -0
- {trustgraph_base-2.3.9 → trustgraph_base-2.3.11}/trustgraph/messaging/translators/agent.py +0 -0
- {trustgraph_base-2.3.9 → trustgraph_base-2.3.11}/trustgraph/messaging/translators/base.py +0 -0
- {trustgraph_base-2.3.9 → trustgraph_base-2.3.11}/trustgraph/messaging/translators/collection.py +0 -0
- {trustgraph_base-2.3.9 → trustgraph_base-2.3.11}/trustgraph/messaging/translators/config.py +0 -0
- {trustgraph_base-2.3.9 → trustgraph_base-2.3.11}/trustgraph/messaging/translators/diagnosis.py +0 -0
- {trustgraph_base-2.3.9 → trustgraph_base-2.3.11}/trustgraph/messaging/translators/document_loading.py +0 -0
- {trustgraph_base-2.3.9 → trustgraph_base-2.3.11}/trustgraph/messaging/translators/embeddings.py +0 -0
- {trustgraph_base-2.3.9 → trustgraph_base-2.3.11}/trustgraph/messaging/translators/embeddings_query.py +0 -0
- {trustgraph_base-2.3.9 → trustgraph_base-2.3.11}/trustgraph/messaging/translators/flow.py +0 -0
- {trustgraph_base-2.3.9 → trustgraph_base-2.3.11}/trustgraph/messaging/translators/knowledge.py +0 -0
- {trustgraph_base-2.3.9 → trustgraph_base-2.3.11}/trustgraph/messaging/translators/library.py +0 -0
- {trustgraph_base-2.3.9 → trustgraph_base-2.3.11}/trustgraph/messaging/translators/metadata.py +0 -0
- {trustgraph_base-2.3.9 → trustgraph_base-2.3.11}/trustgraph/messaging/translators/nlp_query.py +0 -0
- {trustgraph_base-2.3.9 → trustgraph_base-2.3.11}/trustgraph/messaging/translators/primitives.py +0 -0
- {trustgraph_base-2.3.9 → trustgraph_base-2.3.11}/trustgraph/messaging/translators/prompt.py +0 -0
- {trustgraph_base-2.3.9 → trustgraph_base-2.3.11}/trustgraph/messaging/translators/retrieval.py +0 -0
- {trustgraph_base-2.3.9 → trustgraph_base-2.3.11}/trustgraph/messaging/translators/rows_query.py +0 -0
- {trustgraph_base-2.3.9 → trustgraph_base-2.3.11}/trustgraph/messaging/translators/sparql_query.py +0 -0
- {trustgraph_base-2.3.9 → trustgraph_base-2.3.11}/trustgraph/messaging/translators/structured_query.py +0 -0
- {trustgraph_base-2.3.9 → trustgraph_base-2.3.11}/trustgraph/messaging/translators/text_completion.py +0 -0
- {trustgraph_base-2.3.9 → trustgraph_base-2.3.11}/trustgraph/messaging/translators/tool.py +0 -0
- {trustgraph_base-2.3.9 → trustgraph_base-2.3.11}/trustgraph/messaging/translators/triples.py +0 -0
- {trustgraph_base-2.3.9 → trustgraph_base-2.3.11}/trustgraph/objects/__init__.py +0 -0
- {trustgraph_base-2.3.9 → trustgraph_base-2.3.11}/trustgraph/objects/field.py +0 -0
- {trustgraph_base-2.3.9 → trustgraph_base-2.3.11}/trustgraph/objects/object.py +0 -0
- {trustgraph_base-2.3.9 → trustgraph_base-2.3.11}/trustgraph/provenance/__init__.py +0 -0
- {trustgraph_base-2.3.9 → trustgraph_base-2.3.11}/trustgraph/provenance/agent.py +0 -0
- {trustgraph_base-2.3.9 → trustgraph_base-2.3.11}/trustgraph/provenance/namespaces.py +0 -0
- {trustgraph_base-2.3.9 → trustgraph_base-2.3.11}/trustgraph/provenance/triples.py +0 -0
- {trustgraph_base-2.3.9 → trustgraph_base-2.3.11}/trustgraph/provenance/uris.py +0 -0
- {trustgraph_base-2.3.9 → trustgraph_base-2.3.11}/trustgraph/provenance/vocabulary.py +0 -0
- {trustgraph_base-2.3.9 → trustgraph_base-2.3.11}/trustgraph/rdf.py +0 -0
- {trustgraph_base-2.3.9 → trustgraph_base-2.3.11}/trustgraph/schema/__init__.py +0 -0
- {trustgraph_base-2.3.9 → trustgraph_base-2.3.11}/trustgraph/schema/core/__init__.py +0 -0
- {trustgraph_base-2.3.9 → trustgraph_base-2.3.11}/trustgraph/schema/core/metadata.py +0 -0
- {trustgraph_base-2.3.9 → trustgraph_base-2.3.11}/trustgraph/schema/core/primitives.py +0 -0
- {trustgraph_base-2.3.9 → trustgraph_base-2.3.11}/trustgraph/schema/core/topic.py +0 -0
- {trustgraph_base-2.3.9 → trustgraph_base-2.3.11}/trustgraph/schema/knowledge/__init__.py +0 -0
- {trustgraph_base-2.3.9 → trustgraph_base-2.3.11}/trustgraph/schema/knowledge/document.py +0 -0
- {trustgraph_base-2.3.9 → trustgraph_base-2.3.11}/trustgraph/schema/knowledge/embeddings.py +0 -0
- {trustgraph_base-2.3.9 → trustgraph_base-2.3.11}/trustgraph/schema/knowledge/graph.py +0 -0
- {trustgraph_base-2.3.9 → trustgraph_base-2.3.11}/trustgraph/schema/knowledge/knowledge.py +0 -0
- {trustgraph_base-2.3.9 → trustgraph_base-2.3.11}/trustgraph/schema/knowledge/nlp.py +0 -0
- {trustgraph_base-2.3.9 → trustgraph_base-2.3.11}/trustgraph/schema/knowledge/object.py +0 -0
- {trustgraph_base-2.3.9 → trustgraph_base-2.3.11}/trustgraph/schema/knowledge/rows.py +0 -0
- {trustgraph_base-2.3.9 → trustgraph_base-2.3.11}/trustgraph/schema/knowledge/structured.py +0 -0
- {trustgraph_base-2.3.9 → trustgraph_base-2.3.11}/trustgraph/schema/services/__init__.py +0 -0
- {trustgraph_base-2.3.9 → trustgraph_base-2.3.11}/trustgraph/schema/services/agent.py +0 -0
- {trustgraph_base-2.3.9 → trustgraph_base-2.3.11}/trustgraph/schema/services/collection.py +0 -0
- {trustgraph_base-2.3.9 → trustgraph_base-2.3.11}/trustgraph/schema/services/config.py +0 -0
- {trustgraph_base-2.3.9 → trustgraph_base-2.3.11}/trustgraph/schema/services/diagnosis.py +0 -0
- {trustgraph_base-2.3.9 → trustgraph_base-2.3.11}/trustgraph/schema/services/flow.py +0 -0
- {trustgraph_base-2.3.9 → trustgraph_base-2.3.11}/trustgraph/schema/services/library.py +0 -0
- {trustgraph_base-2.3.9 → trustgraph_base-2.3.11}/trustgraph/schema/services/llm.py +0 -0
- {trustgraph_base-2.3.9 → trustgraph_base-2.3.11}/trustgraph/schema/services/lookup.py +0 -0
- {trustgraph_base-2.3.9 → trustgraph_base-2.3.11}/trustgraph/schema/services/nlp_query.py +0 -0
- {trustgraph_base-2.3.9 → trustgraph_base-2.3.11}/trustgraph/schema/services/prompt.py +0 -0
- {trustgraph_base-2.3.9 → trustgraph_base-2.3.11}/trustgraph/schema/services/query.py +0 -0
- {trustgraph_base-2.3.9 → trustgraph_base-2.3.11}/trustgraph/schema/services/retrieval.py +0 -0
- {trustgraph_base-2.3.9 → trustgraph_base-2.3.11}/trustgraph/schema/services/rows_query.py +0 -0
- {trustgraph_base-2.3.9 → trustgraph_base-2.3.11}/trustgraph/schema/services/sparql_query.py +0 -0
- {trustgraph_base-2.3.9 → trustgraph_base-2.3.11}/trustgraph/schema/services/storage.py +0 -0
- {trustgraph_base-2.3.9 → trustgraph_base-2.3.11}/trustgraph/schema/services/structured_query.py +0 -0
- {trustgraph_base-2.3.9 → trustgraph_base-2.3.11}/trustgraph/schema/services/tool_service.py +0 -0
- {trustgraph_base-2.3.9 → trustgraph_base-2.3.11}/trustgraph_base.egg-info/dependency_links.txt +0 -0
- {trustgraph_base-2.3.9 → trustgraph_base-2.3.11}/trustgraph_base.egg-info/requires.txt +0 -0
- {trustgraph_base-2.3.9 → trustgraph_base-2.3.11}/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.3.
|
|
3
|
+
Version: 2.3.11
|
|
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
|
|
@@ -8,12 +8,51 @@ ensuring consistent log formats, levels, and command-line arguments.
|
|
|
8
8
|
Supports dual output to console and Loki for centralized log aggregation.
|
|
9
9
|
"""
|
|
10
10
|
|
|
11
|
+
import contextvars
|
|
11
12
|
import logging
|
|
12
13
|
import logging.handlers
|
|
13
14
|
from queue import Queue
|
|
14
15
|
import os
|
|
15
16
|
|
|
16
17
|
|
|
18
|
+
# The current processor id for this task context. Read by
|
|
19
|
+
# _ProcessorIdFilter to stamp every LogRecord with its owning
|
|
20
|
+
# processor, and read by logging_loki's emitter via record.tags
|
|
21
|
+
# to label log lines in Loki. ContextVar so asyncio subtasks
|
|
22
|
+
# inherit their parent supervisor's processor id automatically.
|
|
23
|
+
current_processor_id = contextvars.ContextVar(
|
|
24
|
+
"current_processor_id", default="unknown"
|
|
25
|
+
)
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
def set_processor_id(pid):
|
|
29
|
+
"""Set the processor id for the current task context.
|
|
30
|
+
|
|
31
|
+
All subsequent log records emitted from this task — and any
|
|
32
|
+
asyncio tasks spawned from it — will be tagged with this id
|
|
33
|
+
in the console format and in Loki labels.
|
|
34
|
+
"""
|
|
35
|
+
current_processor_id.set(pid)
|
|
36
|
+
|
|
37
|
+
|
|
38
|
+
class _ProcessorIdFilter(logging.Filter):
|
|
39
|
+
"""Stamps every LogRecord with processor_id from the contextvar.
|
|
40
|
+
|
|
41
|
+
Attaches two fields to each record:
|
|
42
|
+
record.processor_id — used by the console format string
|
|
43
|
+
record.tags — merged into Loki labels by logging_loki's
|
|
44
|
+
emitter (it reads record.tags and combines
|
|
45
|
+
with the handler's static tags)
|
|
46
|
+
"""
|
|
47
|
+
|
|
48
|
+
def filter(self, record):
|
|
49
|
+
pid = current_processor_id.get()
|
|
50
|
+
record.processor_id = pid
|
|
51
|
+
existing = getattr(record, "tags", None) or {}
|
|
52
|
+
record.tags = {**existing, "processor": pid}
|
|
53
|
+
return True
|
|
54
|
+
|
|
55
|
+
|
|
17
56
|
def add_logging_args(parser):
|
|
18
57
|
"""
|
|
19
58
|
Add standard logging arguments to an argument parser.
|
|
@@ -87,12 +126,15 @@ def setup_logging(args):
|
|
|
87
126
|
loki_url = args.get('loki_url', 'http://loki:3100/loki/api/v1/push')
|
|
88
127
|
loki_username = args.get('loki_username')
|
|
89
128
|
loki_password = args.get('loki_password')
|
|
90
|
-
processor_id = args.get('id') # Processor identity (e.g., "config-svc", "text-completion")
|
|
91
129
|
|
|
92
130
|
try:
|
|
93
131
|
from logging_loki import LokiHandler
|
|
94
132
|
|
|
95
|
-
# Create Loki handler with optional authentication
|
|
133
|
+
# Create Loki handler with optional authentication. The
|
|
134
|
+
# processor label is NOT baked in here — it's stamped onto
|
|
135
|
+
# each record by _ProcessorIdFilter reading the task-local
|
|
136
|
+
# contextvar, and logging_loki's emitter reads record.tags
|
|
137
|
+
# to build per-record Loki labels.
|
|
96
138
|
loki_handler_kwargs = {
|
|
97
139
|
'url': loki_url,
|
|
98
140
|
'version': "1",
|
|
@@ -101,10 +143,6 @@ def setup_logging(args):
|
|
|
101
143
|
if loki_username and loki_password:
|
|
102
144
|
loki_handler_kwargs['auth'] = (loki_username, loki_password)
|
|
103
145
|
|
|
104
|
-
# Add processor label if available (for consistency with Prometheus metrics)
|
|
105
|
-
if processor_id:
|
|
106
|
-
loki_handler_kwargs['tags'] = {'processor': processor_id}
|
|
107
|
-
|
|
108
146
|
loki_handler = LokiHandler(**loki_handler_kwargs)
|
|
109
147
|
|
|
110
148
|
# Wrap in QueueHandler for non-blocking operation
|
|
@@ -133,23 +171,44 @@ def setup_logging(args):
|
|
|
133
171
|
print(f"WARNING: Failed to setup Loki logging: {e}")
|
|
134
172
|
print("Continuing with console-only logging")
|
|
135
173
|
|
|
136
|
-
#
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
#
|
|
140
|
-
# Use processor ID as the primary identifier in logs
|
|
174
|
+
# Configure logging with all handlers. The processor id comes
|
|
175
|
+
# from _ProcessorIdFilter (via contextvar) and is injected into
|
|
176
|
+
# each record as record.processor_id. The format string reads
|
|
177
|
+
# that attribute on every emit.
|
|
141
178
|
logging.basicConfig(
|
|
142
179
|
level=getattr(logging, log_level.upper()),
|
|
143
|
-
format=
|
|
180
|
+
format='%(asctime)s - %(processor_id)s - %(levelname)s - %(message)s',
|
|
144
181
|
handlers=handlers,
|
|
145
182
|
force=True # Force reconfiguration if already configured
|
|
146
183
|
)
|
|
147
184
|
|
|
148
|
-
#
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
185
|
+
# Attach the processor-id filter to every handler so all records
|
|
186
|
+
# passing through any sink get stamped (console, queue→loki,
|
|
187
|
+
# future handlers). Filters on handlers run regardless of which
|
|
188
|
+
# logger originated the record, so logs from pika, cassandra,
|
|
189
|
+
# processor code, etc. all pass through it.
|
|
190
|
+
processor_filter = _ProcessorIdFilter()
|
|
191
|
+
for h in handlers:
|
|
192
|
+
h.addFilter(processor_filter)
|
|
193
|
+
|
|
194
|
+
# Seed the contextvar from --id if one was supplied. In group
|
|
195
|
+
# mode --id isn't present; the processor_group supervisor sets
|
|
196
|
+
# it per task. In standalone mode AsyncProcessor.launch provides
|
|
197
|
+
# it via argparse default.
|
|
198
|
+
if args.get('id'):
|
|
199
|
+
set_processor_id(args['id'])
|
|
200
|
+
|
|
201
|
+
# Silence noisy third-party library loggers. These emit INFO-level
|
|
202
|
+
# chatter (connection churn, channel open/close, driver warnings) that
|
|
203
|
+
# drowns the useful signal and can't be attributed to a specific
|
|
204
|
+
# processor anyway. WARNING and above still propagate.
|
|
205
|
+
for noisy in (
|
|
206
|
+
'pika',
|
|
207
|
+
'cassandra',
|
|
208
|
+
'urllib3',
|
|
209
|
+
'urllib3.connectionpool',
|
|
210
|
+
):
|
|
211
|
+
logging.getLogger(noisy).setLevel(logging.WARNING)
|
|
153
212
|
|
|
154
213
|
logger = logging.getLogger(__name__)
|
|
155
214
|
logger.info(f"Logging configured with level: {log_level}")
|
|
@@ -0,0 +1,204 @@
|
|
|
1
|
+
|
|
2
|
+
# Multi-processor group runner. Runs multiple AsyncProcessor descendants
|
|
3
|
+
# as concurrent tasks inside a single process, sharing one event loop,
|
|
4
|
+
# one Prometheus HTTP server, and one pub/sub backend pool.
|
|
5
|
+
#
|
|
6
|
+
# Intended for dev and resource-constrained deployments. Scale deployments
|
|
7
|
+
# should continue to use per-processor endpoints.
|
|
8
|
+
#
|
|
9
|
+
# Group config is a YAML or JSON file with shape:
|
|
10
|
+
#
|
|
11
|
+
# processors:
|
|
12
|
+
# - class: trustgraph.extract.kg.definitions.extract.Processor
|
|
13
|
+
# params:
|
|
14
|
+
# id: kg-extract-definitions
|
|
15
|
+
# triples_batch_size: 1000
|
|
16
|
+
# - class: trustgraph.chunking.recursive.Processor
|
|
17
|
+
# params:
|
|
18
|
+
# id: chunker-recursive
|
|
19
|
+
#
|
|
20
|
+
# Each entry's params are passed directly to the class constructor alongside
|
|
21
|
+
# the shared taskgroup. Defaults live inside each processor class.
|
|
22
|
+
|
|
23
|
+
import argparse
|
|
24
|
+
import asyncio
|
|
25
|
+
import importlib
|
|
26
|
+
import json
|
|
27
|
+
import logging
|
|
28
|
+
import time
|
|
29
|
+
|
|
30
|
+
from prometheus_client import start_http_server
|
|
31
|
+
|
|
32
|
+
from . logging import add_logging_args, setup_logging, set_processor_id
|
|
33
|
+
|
|
34
|
+
logger = logging.getLogger(__name__)
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
def _load_config(path):
|
|
38
|
+
with open(path) as f:
|
|
39
|
+
text = f.read()
|
|
40
|
+
if path.endswith((".yaml", ".yml")):
|
|
41
|
+
import yaml
|
|
42
|
+
return yaml.safe_load(text)
|
|
43
|
+
return json.loads(text)
|
|
44
|
+
|
|
45
|
+
|
|
46
|
+
def _resolve_class(dotted):
|
|
47
|
+
module_path, _, class_name = dotted.rpartition(".")
|
|
48
|
+
if not module_path:
|
|
49
|
+
raise ValueError(
|
|
50
|
+
f"Processor class must be a dotted path, got {dotted!r}"
|
|
51
|
+
)
|
|
52
|
+
module = importlib.import_module(module_path)
|
|
53
|
+
return getattr(module, class_name)
|
|
54
|
+
|
|
55
|
+
|
|
56
|
+
RESTART_DELAY_SECONDS = 4
|
|
57
|
+
|
|
58
|
+
|
|
59
|
+
async def _supervise(entry):
|
|
60
|
+
"""Run one processor with its own nested TaskGroup, restarting on any
|
|
61
|
+
failure. Each processor is isolated from its siblings — a crash here
|
|
62
|
+
does not propagate to the outer group."""
|
|
63
|
+
|
|
64
|
+
pid = entry["params"]["id"]
|
|
65
|
+
class_path = entry["class"]
|
|
66
|
+
|
|
67
|
+
# Stamp the contextvar for this supervisor task. Every log
|
|
68
|
+
# record emitted from this task — and from any inner TaskGroup
|
|
69
|
+
# child created by the processor — inherits this id via
|
|
70
|
+
# contextvar propagation. Siblings in the outer group set
|
|
71
|
+
# their own id in their own task context and do not interfere.
|
|
72
|
+
set_processor_id(pid)
|
|
73
|
+
|
|
74
|
+
while True:
|
|
75
|
+
|
|
76
|
+
try:
|
|
77
|
+
|
|
78
|
+
async with asyncio.TaskGroup() as inner_tg:
|
|
79
|
+
|
|
80
|
+
cls = _resolve_class(class_path)
|
|
81
|
+
params = dict(entry.get("params", {}))
|
|
82
|
+
params["taskgroup"] = inner_tg
|
|
83
|
+
|
|
84
|
+
logger.info(f"Starting {class_path} as {pid}")
|
|
85
|
+
|
|
86
|
+
p = cls(**params)
|
|
87
|
+
await p.start()
|
|
88
|
+
inner_tg.create_task(p.run())
|
|
89
|
+
|
|
90
|
+
# Clean exit — processor's run() returned without raising.
|
|
91
|
+
# Treat as a transient shutdown and restart, matching the
|
|
92
|
+
# behaviour of per-container `restart: on-failure`.
|
|
93
|
+
logger.warning(
|
|
94
|
+
f"Processor {pid} exited cleanly, will restart"
|
|
95
|
+
)
|
|
96
|
+
|
|
97
|
+
except asyncio.CancelledError:
|
|
98
|
+
logger.info(f"Processor {pid} cancelled")
|
|
99
|
+
raise
|
|
100
|
+
|
|
101
|
+
except BaseExceptionGroup as eg:
|
|
102
|
+
for e in eg.exceptions:
|
|
103
|
+
logger.error(
|
|
104
|
+
f"Processor {pid} failure: {type(e).__name__}: {e}",
|
|
105
|
+
exc_info=e,
|
|
106
|
+
)
|
|
107
|
+
|
|
108
|
+
except Exception as e:
|
|
109
|
+
logger.error(
|
|
110
|
+
f"Processor {pid} failure: {type(e).__name__}: {e}",
|
|
111
|
+
exc_info=True,
|
|
112
|
+
)
|
|
113
|
+
|
|
114
|
+
logger.info(
|
|
115
|
+
f"Restarting {pid} in {RESTART_DELAY_SECONDS}s..."
|
|
116
|
+
)
|
|
117
|
+
await asyncio.sleep(RESTART_DELAY_SECONDS)
|
|
118
|
+
|
|
119
|
+
|
|
120
|
+
async def run_group(config):
|
|
121
|
+
|
|
122
|
+
entries = config.get("processors", [])
|
|
123
|
+
if not entries:
|
|
124
|
+
raise RuntimeError("Group config has no processors")
|
|
125
|
+
|
|
126
|
+
seen_ids = set()
|
|
127
|
+
for entry in entries:
|
|
128
|
+
pid = entry.get("params", {}).get("id")
|
|
129
|
+
if pid is None:
|
|
130
|
+
raise RuntimeError(
|
|
131
|
+
f"Entry {entry.get('class')!r} missing params.id — "
|
|
132
|
+
f"required for metrics labelling"
|
|
133
|
+
)
|
|
134
|
+
if pid in seen_ids:
|
|
135
|
+
raise RuntimeError(f"Duplicate processor id {pid!r} in group")
|
|
136
|
+
seen_ids.add(pid)
|
|
137
|
+
|
|
138
|
+
async with asyncio.TaskGroup() as outer_tg:
|
|
139
|
+
for entry in entries:
|
|
140
|
+
outer_tg.create_task(_supervise(entry))
|
|
141
|
+
|
|
142
|
+
|
|
143
|
+
def run():
|
|
144
|
+
|
|
145
|
+
parser = argparse.ArgumentParser(
|
|
146
|
+
prog="processor-group",
|
|
147
|
+
description="Run multiple processors as tasks in one process",
|
|
148
|
+
)
|
|
149
|
+
|
|
150
|
+
parser.add_argument(
|
|
151
|
+
"-c", "--config",
|
|
152
|
+
required=True,
|
|
153
|
+
help="Path to group config file (JSON or YAML)",
|
|
154
|
+
)
|
|
155
|
+
|
|
156
|
+
parser.add_argument(
|
|
157
|
+
"--metrics",
|
|
158
|
+
action=argparse.BooleanOptionalAction,
|
|
159
|
+
default=True,
|
|
160
|
+
help="Metrics enabled (default: true)",
|
|
161
|
+
)
|
|
162
|
+
|
|
163
|
+
parser.add_argument(
|
|
164
|
+
"-P", "--metrics-port",
|
|
165
|
+
type=int,
|
|
166
|
+
default=8000,
|
|
167
|
+
help="Prometheus metrics port (default: 8000)",
|
|
168
|
+
)
|
|
169
|
+
|
|
170
|
+
add_logging_args(parser)
|
|
171
|
+
|
|
172
|
+
args = vars(parser.parse_args())
|
|
173
|
+
|
|
174
|
+
setup_logging(args)
|
|
175
|
+
|
|
176
|
+
config = _load_config(args["config"])
|
|
177
|
+
|
|
178
|
+
if args["metrics"]:
|
|
179
|
+
start_http_server(args["metrics_port"])
|
|
180
|
+
|
|
181
|
+
while True:
|
|
182
|
+
|
|
183
|
+
logger.info("Starting group...")
|
|
184
|
+
|
|
185
|
+
try:
|
|
186
|
+
asyncio.run(run_group(config))
|
|
187
|
+
|
|
188
|
+
except KeyboardInterrupt:
|
|
189
|
+
logger.info("Keyboard interrupt.")
|
|
190
|
+
return
|
|
191
|
+
|
|
192
|
+
except ExceptionGroup as e:
|
|
193
|
+
logger.error("Exception group:")
|
|
194
|
+
for se in e.exceptions:
|
|
195
|
+
logger.error(f" Type: {type(se)}")
|
|
196
|
+
logger.error(f" Exception: {se}", exc_info=se)
|
|
197
|
+
|
|
198
|
+
except Exception as e:
|
|
199
|
+
logger.error(f"Type: {type(e)}")
|
|
200
|
+
logger.error(f"Exception: {e}", exc_info=True)
|
|
201
|
+
|
|
202
|
+
logger.warning("Will retry...")
|
|
203
|
+
time.sleep(4)
|
|
204
|
+
logger.info("Retrying...")
|
|
@@ -227,15 +227,30 @@ class RabbitMQBackendConsumer:
|
|
|
227
227
|
self._connect()
|
|
228
228
|
|
|
229
229
|
def receive(self, timeout_millis: int = 2000) -> Message:
|
|
230
|
-
"""Receive a message. Raises TimeoutError if none available.
|
|
230
|
+
"""Receive a message. Raises TimeoutError if none available.
|
|
231
|
+
|
|
232
|
+
Loop ordering matters: check _incoming at the TOP of each
|
|
233
|
+
iteration, not as the loop condition. process_data_events
|
|
234
|
+
may dispatch a message via the _on_message callback during
|
|
235
|
+
the pump; we must re-check _incoming on the next iteration
|
|
236
|
+
before giving up on the deadline. The previous control
|
|
237
|
+
flow (`while deadline: check; pump`) could lose a wakeup if
|
|
238
|
+
the pump consumed the remainder of the window — the
|
|
239
|
+
`while` check would fail before `_incoming` was re-read,
|
|
240
|
+
leaving a just-dispatched message stranded until the next
|
|
241
|
+
receive() call one full poll cycle later.
|
|
242
|
+
"""
|
|
231
243
|
if not self._is_alive():
|
|
232
244
|
self._connect()
|
|
233
245
|
|
|
234
246
|
timeout_seconds = timeout_millis / 1000.0
|
|
235
247
|
deadline = time.monotonic() + timeout_seconds
|
|
236
248
|
|
|
237
|
-
while
|
|
238
|
-
# Check if a message
|
|
249
|
+
while True:
|
|
250
|
+
# Check if a message has been dispatched to our queue.
|
|
251
|
+
# This catches both (a) messages dispatched before this
|
|
252
|
+
# receive() was called and (b) messages dispatched
|
|
253
|
+
# during the previous iteration's process_data_events.
|
|
239
254
|
try:
|
|
240
255
|
method, properties, body = self._incoming.get_nowait()
|
|
241
256
|
return RabbitMQMessage(
|
|
@@ -244,14 +259,16 @@ class RabbitMQBackendConsumer:
|
|
|
244
259
|
except queue.Empty:
|
|
245
260
|
pass
|
|
246
261
|
|
|
247
|
-
# Drive pika's I/O — delivers messages and processes heartbeats
|
|
248
262
|
remaining = deadline - time.monotonic()
|
|
249
|
-
if remaining
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
263
|
+
if remaining <= 0:
|
|
264
|
+
raise TimeoutError("No message received within timeout")
|
|
265
|
+
|
|
266
|
+
# Drive pika's I/O. Any messages delivered during this
|
|
267
|
+
# call land in _incoming via _on_message; the next
|
|
268
|
+
# iteration of this loop catches them at the top.
|
|
269
|
+
self._connection.process_data_events(
|
|
270
|
+
time_limit=min(0.1, remaining),
|
|
271
|
+
)
|
|
255
272
|
|
|
256
273
|
def acknowledge(self, message: Message) -> None:
|
|
257
274
|
if isinstance(message, RabbitMQMessage) and message._method:
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
__version__ = "2.3.11"
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: trustgraph-base
|
|
3
|
-
Version: 2.3.
|
|
3
|
+
Version: 2.3.11
|
|
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
|
|
@@ -48,6 +48,7 @@ trustgraph/base/llm_service.py
|
|
|
48
48
|
trustgraph/base/logging.py
|
|
49
49
|
trustgraph/base/metrics.py
|
|
50
50
|
trustgraph/base/parameter_spec.py
|
|
51
|
+
trustgraph/base/processor_group.py
|
|
51
52
|
trustgraph/base/producer.py
|
|
52
53
|
trustgraph/base/producer_spec.py
|
|
53
54
|
trustgraph/base/prompt_client.py
|
|
@@ -169,5 +170,6 @@ trustgraph/schema/services/tool_service.py
|
|
|
169
170
|
trustgraph_base.egg-info/PKG-INFO
|
|
170
171
|
trustgraph_base.egg-info/SOURCES.txt
|
|
171
172
|
trustgraph_base.egg-info/dependency_links.txt
|
|
173
|
+
trustgraph_base.egg-info/entry_points.txt
|
|
172
174
|
trustgraph_base.egg-info/requires.txt
|
|
173
175
|
trustgraph_base.egg-info/top_level.txt
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
__version__ = "2.3.9"
|
|
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
|
{trustgraph_base-2.3.9 → trustgraph_base-2.3.11}/trustgraph/base/collection_config_handler.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{trustgraph_base-2.3.9 → trustgraph_base-2.3.11}/trustgraph/base/document_embeddings_client.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
|
{trustgraph_base-2.3.9 → trustgraph_base-2.3.11}/trustgraph/base/graph_embeddings_query_service.py
RENAMED
|
File without changes
|
{trustgraph_base-2.3.9 → trustgraph_base-2.3.11}/trustgraph/base/graph_embeddings_store_service.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
|
{trustgraph_base-2.3.9 → trustgraph_base-2.3.11}/trustgraph/base/row_embeddings_query_client.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
|
{trustgraph_base-2.3.9 → trustgraph_base-2.3.11}/trustgraph/clients/document_embeddings_client.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{trustgraph_base-2.3.9 → trustgraph_base-2.3.11}/trustgraph/clients/graph_embeddings_client.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{trustgraph_base-2.3.9 → trustgraph_base-2.3.11}/trustgraph/clients/row_embeddings_client.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
|
{trustgraph_base-2.3.9 → trustgraph_base-2.3.11}/trustgraph/messaging/translators/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{trustgraph_base-2.3.9 → trustgraph_base-2.3.11}/trustgraph/messaging/translators/collection.py
RENAMED
|
File without changes
|
|
File without changes
|
{trustgraph_base-2.3.9 → trustgraph_base-2.3.11}/trustgraph/messaging/translators/diagnosis.py
RENAMED
|
File without changes
|
|
File without changes
|
{trustgraph_base-2.3.9 → trustgraph_base-2.3.11}/trustgraph/messaging/translators/embeddings.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{trustgraph_base-2.3.9 → trustgraph_base-2.3.11}/trustgraph/messaging/translators/knowledge.py
RENAMED
|
File without changes
|
{trustgraph_base-2.3.9 → trustgraph_base-2.3.11}/trustgraph/messaging/translators/library.py
RENAMED
|
File without changes
|
{trustgraph_base-2.3.9 → trustgraph_base-2.3.11}/trustgraph/messaging/translators/metadata.py
RENAMED
|
File without changes
|
{trustgraph_base-2.3.9 → trustgraph_base-2.3.11}/trustgraph/messaging/translators/nlp_query.py
RENAMED
|
File without changes
|
{trustgraph_base-2.3.9 → trustgraph_base-2.3.11}/trustgraph/messaging/translators/primitives.py
RENAMED
|
File without changes
|
|
File without changes
|
{trustgraph_base-2.3.9 → trustgraph_base-2.3.11}/trustgraph/messaging/translators/retrieval.py
RENAMED
|
File without changes
|
{trustgraph_base-2.3.9 → trustgraph_base-2.3.11}/trustgraph/messaging/translators/rows_query.py
RENAMED
|
File without changes
|
{trustgraph_base-2.3.9 → trustgraph_base-2.3.11}/trustgraph/messaging/translators/sparql_query.py
RENAMED
|
File without changes
|
|
File without changes
|
{trustgraph_base-2.3.9 → trustgraph_base-2.3.11}/trustgraph/messaging/translators/text_completion.py
RENAMED
|
File without changes
|
|
File without changes
|
{trustgraph_base-2.3.9 → trustgraph_base-2.3.11}/trustgraph/messaging/translators/triples.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
|
{trustgraph_base-2.3.9 → trustgraph_base-2.3.11}/trustgraph/schema/services/structured_query.py
RENAMED
|
File without changes
|
|
File without changes
|
{trustgraph_base-2.3.9 → trustgraph_base-2.3.11}/trustgraph_base.egg-info/dependency_links.txt
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|