2025-07-23 21:22:08 +01:00
|
|
|
[build-system]
|
|
|
|
|
requires = ["setuptools>=61.0", "wheel"]
|
|
|
|
|
build-backend = "setuptools.build_meta"
|
|
|
|
|
|
|
|
|
|
[project]
|
|
|
|
|
name = "trustgraph-base"
|
|
|
|
|
dynamic = ["version"]
|
|
|
|
|
authors = [{name = "trustgraph.ai", email = "security@trustgraph.ai"}]
|
|
|
|
|
description = "TrustGraph provides a means to run a pipeline of flexible AI processing components in a flexible means to achieve a processing pipeline."
|
|
|
|
|
readme = "README.md"
|
|
|
|
|
requires-python = ">=3.8"
|
|
|
|
|
dependencies = [
|
|
|
|
|
"pulsar-client",
|
|
|
|
|
"prometheus-client",
|
2025-09-25 19:11:40 +01:00
|
|
|
"requests",
|
2025-12-09 23:24:41 +00:00
|
|
|
"python-logging-loki",
|
2026-04-02 12:47:16 +01:00
|
|
|
"pika",
|
2026-04-18 11:18:34 +01:00
|
|
|
"confluent-kafka",
|
2026-04-15 15:37:46 +01:00
|
|
|
"pyyaml",
|
2025-07-23 21:22:08 +01:00
|
|
|
]
|
|
|
|
|
classifiers = [
|
|
|
|
|
"Programming Language :: Python :: 3",
|
|
|
|
|
"Operating System :: OS Independent",
|
|
|
|
|
]
|
|
|
|
|
|
|
|
|
|
[project.urls]
|
|
|
|
|
Homepage = "https://github.com/trustgraph-ai/trustgraph"
|
|
|
|
|
|
Processor group implementation: dev wrapper (#808)
Processor group implementation: A wrapper to launch multiple
processors in a single processor
- trustgraph-base/trustgraph/base/processor_group.py — group runner
module. run_group(config) is the async body; run() is the
endpoint. Loads JSON or YAML config, validates that every entry
has a unique params.id, instantiates each class via importlib,
shares one TaskGroup, mirrors AsyncProcessor.launch's retry loop
and Prometheus startup.
- trustgraph-base/pyproject.toml — added [project.scripts] block
with processor-group = "trustgraph.base.processor_group:run".
Key behaviours:
- Unique id enforced up front — missing or duplicate params.id fails
fast with a clear error, preventing the Prometheus Info label
collision we flagged.
- No registry — dotted class path is the identifier; any
AsyncProcessor descendant importable at runtime is packable.
- YAML import is lazy — only pulled in if the config file ends in
.yaml/.yml, so JSON-only users don't need PyYAML installed.
- Single Prometheus server — start_http_server runs once at
startup, before the retry loop, matching launch()'s pattern.
- Retry loop — same shape as AsyncProcessor.launch: catches
ExceptionGroup from TaskGroup, logs, sleeps 4s,
retries. Fail-group semantics (one processor dying tears down the
group) — simple and surfaces bugs, as discussed.
Example config:
processors:
- class: trustgraph.extract.kg.definitions.extract.Processor
params:
id: kg-extract-definitions
- class: trustgraph.chunking.recursive.Processor
params:
id: chunker-recursive
Run with processor-group -c group.yaml.
2026-04-14 15:19:04 +01:00
|
|
|
[project.scripts]
|
|
|
|
|
processor-group = "trustgraph.base.processor_group:run"
|
|
|
|
|
|
2025-07-23 21:22:08 +01:00
|
|
|
[tool.setuptools.packages.find]
|
|
|
|
|
include = ["trustgraph*"]
|
|
|
|
|
|
Feat: TrustGraph i18n & Documentation Translation Updates (#781)
Native CLI i18n: The TrustGraph CLI has built-in translation support
that dynamically loads language strings. You can test and use
different languages by simply passing the --lang flag (e.g., --lang
es for Spanish, --lang ru for Russian) or by configuring your
environment's LANG variable.
Automated Docs Translations: This PR introduces autonomously
translated Markdown documentation into several target languages,
including Spanish, Swahili, Portuguese, Turkish, Hindi, Hebrew,
Arabic, Simplified Chinese, and Russian.
2026-04-14 07:07:58 -04:00
|
|
|
[tool.setuptools.package-data]
|
|
|
|
|
"trustgraph.i18n.packs" = ["*.json"]
|
|
|
|
|
|
2025-07-23 21:22:08 +01:00
|
|
|
[tool.setuptools.dynamic]
|
2026-04-15 15:37:46 +01:00
|
|
|
version = {attr = "trustgraph.base_version.__version__"}
|