dirigent-integration 0.29.0__tar.gz → 0.30.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.
- {dirigent_integration-0.29.0 → dirigent_integration-0.30.0}/PKG-INFO +11 -6
- {dirigent_integration-0.29.0 → dirigent_integration-0.30.0}/README.md +9 -4
- {dirigent_integration-0.29.0 → dirigent_integration-0.30.0}/pyproject.toml +17 -2
- {dirigent_integration-0.29.0 → dirigent_integration-0.30.0}/pyproject.toml.orig +8 -3
- {dirigent_integration-0.29.0 → dirigent_integration-0.30.0}/src/dirigent_integration/shelves/fhir/README.md +2 -3
- {dirigent_integration-0.29.0 → dirigent_integration-0.30.0}/LICENSE +0 -0
- {dirigent_integration-0.29.0 → dirigent_integration-0.30.0}/src/dirigent_integration/__init__.py +0 -0
- {dirigent_integration-0.29.0 → dirigent_integration-0.30.0}/src/dirigent_integration/py.typed +0 -0
- {dirigent_integration-0.29.0 → dirigent_integration-0.30.0}/src/dirigent_integration/shelves/dhis2-analytics-to-csv-report.yaml +0 -0
- {dirigent_integration-0.29.0 → dirigent_integration-0.30.0}/src/dirigent_integration/shelves/dhis2-export-to-s3.yaml +0 -0
- {dirigent_integration-0.29.0 → dirigent_integration-0.30.0}/src/dirigent_integration/shelves/dhis2-metadata-snapshot.yaml +0 -0
- {dirigent_integration-0.29.0 → dirigent_integration-0.30.0}/src/dirigent_integration/shelves/dhis2-tracker-weekly-window.yaml +0 -0
- {dirigent_integration-0.29.0 → dirigent_integration-0.30.0}/src/dirigent_integration/shelves/dhis2-values-per-org-unit-to-parquet.yaml +0 -0
- {dirigent_integration-0.29.0 → dirigent_integration-0.30.0}/src/dirigent_integration/shelves/dhis2-values-to-parquet.yaml +0 -0
- {dirigent_integration-0.29.0 → dirigent_integration-0.30.0}/src/dirigent_integration/shelves/fhir/dhis2-to-fhir-observations.yaml +0 -0
- {dirigent_integration-0.29.0 → dirigent_integration-0.30.0}/src/dirigent_integration/shelves/fhir/fhir-capture-bundle-to-data-values.yaml +0 -0
- {dirigent_integration-0.29.0 → dirigent_integration-0.30.0}/src/dirigent_integration/shelves/fhir/fhir-conceptmap-driven-mapping.yaml +0 -0
- {dirigent_integration-0.29.0 → dirigent_integration-0.30.0}/src/dirigent_integration/shelves/fhir/fhir-encounter-to-event.yaml +0 -0
- {dirigent_integration-0.29.0 → dirigent_integration-0.30.0}/src/dirigent_integration/shelves/fhir/fhir-measure-report-to-analytics-check.yaml +0 -0
- {dirigent_integration-0.29.0 → dirigent_integration-0.30.0}/src/dirigent_integration/shelves/fhir/fhir-nightly-window-sync.yaml +0 -0
- {dirigent_integration-0.29.0 → dirigent_integration-0.30.0}/src/dirigent_integration/shelves/fhir/fhir-patient-to-tracked-entity.yaml +0 -0
- {dirigent_integration-0.29.0 → dirigent_integration-0.30.0}/src/dirigent_integration/shelves/fhir/fhir-questionnaire-response-to-data-values.yaml +0 -0
- {dirigent_integration-0.29.0 → dirigent_integration-0.30.0}/src/dirigent_integration/shelves/fhir/fhir-subscription-to-dhis2.yaml +0 -0
- {dirigent_integration-0.29.0 → dirigent_integration-0.30.0}/src/dirigent_integration/shelves/inbound/README.md +0 -0
- {dirigent_integration-0.29.0 → dirigent_integration-0.30.0}/src/dirigent_integration/shelves/inbound/csv-drop-to-data-values.yaml +0 -0
- {dirigent_integration-0.29.0 → dirigent_integration-0.30.0}/src/dirigent_integration/shelves/inbound/endpoint-payload-to-data-values.yaml +0 -0
- {dirigent_integration-0.29.0 → dirigent_integration-0.30.0}/src/dirigent_integration/shelves/inbound/fan-out-per-facility-import.yaml +0 -0
- {dirigent_integration-0.29.0 → dirigent_integration-0.30.0}/src/dirigent_integration/shelves/inbound/fhir-observations-to-data-values.yaml +0 -0
- {dirigent_integration-0.29.0 → dirigent_integration-0.30.0}/src/dirigent_integration/shelves/inbound/http-json-to-data-values.yaml +0 -0
- {dirigent_integration-0.29.0 → dirigent_integration-0.30.0}/src/dirigent_integration/shelves/inbound/outside-to-dhis2-with-checks.yaml +0 -0
- {dirigent_integration-0.29.0 → dirigent_integration-0.30.0}/src/dirigent_integration/shelves/inbound/parquet-lakehouse-to-dhis2.yaml +0 -0
- {dirigent_integration-0.29.0 → dirigent_integration-0.30.0}/src/dirigent_integration/shelves/inbound/weekly-window-pull-and-import.yaml +0 -0
- {dirigent_integration-0.29.0 → dirigent_integration-0.30.0}/src/dirigent_integration/shelves/parquet-to-dhis2-import.yaml +0 -0
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: dirigent-integration
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.30.0
|
|
4
4
|
Summary: The control center for the dirigent plugin ecosystem: assemble every pack, run everyone's tests and examples together.
|
|
5
5
|
License-Expression: LicenseRef-Proprietary
|
|
6
6
|
License-File: LICENSE
|
|
7
|
-
Requires-Dist: dirigent-plugin==0.
|
|
7
|
+
Requires-Dist: dirigent-plugin==0.30.0
|
|
8
8
|
Requires-Python: >=3.13
|
|
9
9
|
Description-Content-Type: text/markdown
|
|
10
10
|
|
|
@@ -32,8 +32,12 @@ runnable at all.
|
|
|
32
32
|
- **`ecosystem.yaml`** -- the manifest: every component and the ref it tracks, the source of
|
|
33
33
|
truth for what gets assembled. `dirigent` (the runtime monorepo) is `role: runtime`,
|
|
34
34
|
installed as dependencies and never cloned; each adapter is `role: pack`, cloned and
|
|
35
|
-
self-tested here. `dirigent-dhis2`
|
|
36
|
-
|
|
35
|
+
self-tested here. `dirigent-dhis2`, `dirigent-contrib` (Chap and the open climate service)
|
|
36
|
+
and `dirigent-fhir` (one FHIR R4 server) are the three today; a future pack becomes real with
|
|
37
|
+
a single entry. A pack entry may name `pytest_args` for its suite and `examples` for its
|
|
38
|
+
example directories: contrib's and fhir's suites run with `-m "not live"`, leaving out the
|
|
39
|
+
tests that reach a real Chap, climate service or FHIR server, and their shelves under `src/`
|
|
40
|
+
are validated, never run.
|
|
37
41
|
- **`pyproject.toml`** -- the assembled runtime: every dirigent runtime package plus every
|
|
38
42
|
pack, wired through `[tool.uv.sources]` as git dependencies on `branch = main`, unpinned, so
|
|
39
43
|
the integration always assembles the latest ecosystem.
|
|
@@ -59,8 +63,9 @@ make test
|
|
|
59
63
|
One target, one green or red:
|
|
60
64
|
|
|
61
65
|
1. clone every `role: pack` in `ecosystem.yaml` into `checkouts/` (gitignored), at its ref;
|
|
62
|
-
2. run each pack's own pytest suite against the assembled environment
|
|
63
|
-
|
|
66
|
+
2. run each pack's own pytest suite against the assembled environment, with the arguments its
|
|
67
|
+
manifest entry names;
|
|
68
|
+
3. validate each pack's own examples against the merged catalog, connection bodies included;
|
|
64
69
|
4. validate the cross-boundary examples against the merged catalog;
|
|
65
70
|
5. run the integration's own tests;
|
|
66
71
|
6. ask every DHIS2 play demo an example names for its system info, and fail on any that no
|
|
@@ -22,8 +22,12 @@ runnable at all.
|
|
|
22
22
|
- **`ecosystem.yaml`** -- the manifest: every component and the ref it tracks, the source of
|
|
23
23
|
truth for what gets assembled. `dirigent` (the runtime monorepo) is `role: runtime`,
|
|
24
24
|
installed as dependencies and never cloned; each adapter is `role: pack`, cloned and
|
|
25
|
-
self-tested here. `dirigent-dhis2`
|
|
26
|
-
|
|
25
|
+
self-tested here. `dirigent-dhis2`, `dirigent-contrib` (Chap and the open climate service)
|
|
26
|
+
and `dirigent-fhir` (one FHIR R4 server) are the three today; a future pack becomes real with
|
|
27
|
+
a single entry. A pack entry may name `pytest_args` for its suite and `examples` for its
|
|
28
|
+
example directories: contrib's and fhir's suites run with `-m "not live"`, leaving out the
|
|
29
|
+
tests that reach a real Chap, climate service or FHIR server, and their shelves under `src/`
|
|
30
|
+
are validated, never run.
|
|
27
31
|
- **`pyproject.toml`** -- the assembled runtime: every dirigent runtime package plus every
|
|
28
32
|
pack, wired through `[tool.uv.sources]` as git dependencies on `branch = main`, unpinned, so
|
|
29
33
|
the integration always assembles the latest ecosystem.
|
|
@@ -49,8 +53,9 @@ make test
|
|
|
49
53
|
One target, one green or red:
|
|
50
54
|
|
|
51
55
|
1. clone every `role: pack` in `ecosystem.yaml` into `checkouts/` (gitignored), at its ref;
|
|
52
|
-
2. run each pack's own pytest suite against the assembled environment
|
|
53
|
-
|
|
56
|
+
2. run each pack's own pytest suite against the assembled environment, with the arguments its
|
|
57
|
+
manifest entry names;
|
|
58
|
+
3. validate each pack's own examples against the merged catalog, connection bodies included;
|
|
54
59
|
4. validate the cross-boundary examples against the merged catalog;
|
|
55
60
|
5. run the integration's own tests;
|
|
56
61
|
6. ask every DHIS2 play demo an example names for its system info, and fail on any that no
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "dirigent-integration"
|
|
3
|
-
version = "0.
|
|
3
|
+
version = "0.30.0"
|
|
4
4
|
description = "The control center for the dirigent plugin ecosystem: assemble every pack, run everyone's tests and examples together."
|
|
5
5
|
readme = "README.md"
|
|
6
6
|
requires-python = ">=3.13"
|
|
7
7
|
license = "LicenseRef-Proprietary"
|
|
8
8
|
license-files = ["LICENSE"]
|
|
9
|
-
dependencies = ["dirigent-plugin==0.
|
|
9
|
+
dependencies = ["dirigent-plugin==0.30.0"]
|
|
10
10
|
|
|
11
11
|
[project.entry-points."dirigent.plugins.v1"]
|
|
12
12
|
integration = "dirigent_integration:plugin"
|
|
@@ -31,6 +31,8 @@ assembly = [
|
|
|
31
31
|
"dirigent-client",
|
|
32
32
|
"dirigent-examples",
|
|
33
33
|
"dirigent-dhis2",
|
|
34
|
+
"dirigent-contrib",
|
|
35
|
+
"dirigent-fhir",
|
|
34
36
|
]
|
|
35
37
|
dev = [
|
|
36
38
|
"dirigent-testing",
|
|
@@ -138,6 +140,11 @@ git = "https://github.com/winterop-com/dirigent"
|
|
|
138
140
|
subdirectory = "packages/dirigent-examples"
|
|
139
141
|
branch = "main"
|
|
140
142
|
|
|
143
|
+
[tool.uv.sources.dirigent-mcp]
|
|
144
|
+
git = "https://github.com/winterop-com/dirigent"
|
|
145
|
+
subdirectory = "packages/dirigent-mcp"
|
|
146
|
+
branch = "main"
|
|
147
|
+
|
|
141
148
|
[tool.uv.sources.dirigent-testing]
|
|
142
149
|
git = "https://github.com/winterop-com/dirigent"
|
|
143
150
|
subdirectory = "packages/dirigent-testing"
|
|
@@ -147,6 +154,14 @@ branch = "main"
|
|
|
147
154
|
git = "https://github.com/winterop-com/dirigent-dhis2"
|
|
148
155
|
branch = "main"
|
|
149
156
|
|
|
157
|
+
[tool.uv.sources.dirigent-contrib]
|
|
158
|
+
git = "https://github.com/winterop-com/dirigent-contrib"
|
|
159
|
+
branch = "main"
|
|
160
|
+
|
|
161
|
+
[tool.uv.sources.dirigent-fhir]
|
|
162
|
+
git = "https://github.com/winterop-com/dirigent-fhir"
|
|
163
|
+
branch = "main"
|
|
164
|
+
|
|
150
165
|
[tool.pytest.ini_options]
|
|
151
166
|
asyncio_mode = "auto"
|
|
152
167
|
testpaths = ["tests"]
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "dirigent-integration"
|
|
3
|
-
version = "0.
|
|
3
|
+
version = "0.30.0"
|
|
4
4
|
description = "The control center for the dirigent plugin ecosystem: assemble every pack, run everyone's tests and examples together."
|
|
5
5
|
readme = "README.md"
|
|
6
6
|
requires-python = ">=3.13"
|
|
@@ -10,7 +10,7 @@ license-files = ["LICENSE"]
|
|
|
10
10
|
# A published install carries the cross-boundary shelves and nothing else: each document
|
|
11
11
|
# names the packs it needs under requires, and the Examples screen marks what is missing.
|
|
12
12
|
dependencies = [
|
|
13
|
-
"dirigent-plugin==0.
|
|
13
|
+
"dirigent-plugin==0.30.0",
|
|
14
14
|
]
|
|
15
15
|
|
|
16
16
|
# dirigent-testing is dev-only: the packs' suites import it, and nothing at runtime does,
|
|
@@ -38,6 +38,8 @@ assembly = [
|
|
|
38
38
|
"dirigent-client",
|
|
39
39
|
"dirigent-examples",
|
|
40
40
|
"dirigent-dhis2",
|
|
41
|
+
"dirigent-contrib",
|
|
42
|
+
"dirigent-fhir",
|
|
41
43
|
]
|
|
42
44
|
dev = [
|
|
43
45
|
"dirigent-testing",
|
|
@@ -51,7 +53,7 @@ dev = [
|
|
|
51
53
|
|
|
52
54
|
# All component packages ride their tracked branch, unpinned: the integration always assembles
|
|
53
55
|
# the latest ecosystem. The dirigent runtime packages come from the monorepo by subdirectory;
|
|
54
|
-
# dirigent-dhis2
|
|
56
|
+
# dirigent-dhis2, dirigent-contrib and dirigent-fhir come from their own repositories.
|
|
55
57
|
[tool.uv]
|
|
56
58
|
default-groups = ["dev", "assembly"]
|
|
57
59
|
|
|
@@ -74,8 +76,11 @@ dirigent-plugin = { git = "https://github.com/winterop-com/dirigent", subdirecto
|
|
|
74
76
|
dirigent-common = { git = "https://github.com/winterop-com/dirigent", subdirectory = "packages/dirigent-common", branch = "main" }
|
|
75
77
|
dirigent-client = { git = "https://github.com/winterop-com/dirigent", subdirectory = "packages/dirigent-client", branch = "main" }
|
|
76
78
|
dirigent-examples = { git = "https://github.com/winterop-com/dirigent", subdirectory = "packages/dirigent-examples", branch = "main" }
|
|
79
|
+
dirigent-mcp = { git = "https://github.com/winterop-com/dirigent", subdirectory = "packages/dirigent-mcp", branch = "main" }
|
|
77
80
|
dirigent-testing = { git = "https://github.com/winterop-com/dirigent", subdirectory = "packages/dirigent-testing", branch = "main" }
|
|
78
81
|
dirigent-dhis2 = { git = "https://github.com/winterop-com/dirigent-dhis2", branch = "main" }
|
|
82
|
+
dirigent-contrib = { git = "https://github.com/winterop-com/dirigent-contrib", branch = "main" }
|
|
83
|
+
dirigent-fhir = { git = "https://github.com/winterop-com/dirigent-fhir", branch = "main" }
|
|
79
84
|
|
|
80
85
|
# The control center is itself a distribution: it registers one plugin whose only
|
|
81
86
|
# contribution is the cross-boundary shelves the module carries.
|
|
@@ -6,9 +6,8 @@ validate blocks from the runtime, and neither knows the other exists -- only an
|
|
|
6
6
|
environment runs any of these at all.
|
|
7
7
|
|
|
8
8
|
Most of them read a `d2w fhir serve` facade, which publishes one DHIS2 instance as a FHIR
|
|
9
|
-
endpoint and takes captures back.
|
|
10
|
-
|
|
11
|
-
against a real server. Where a general-purpose FHIR server is the point -- an Encounter, an
|
|
9
|
+
endpoint and takes captures back. Their `fhir-facade` connection points at one on
|
|
10
|
+
`http://localhost:8095`, so start a facade there, or repoint the connection, before a run. Where a general-purpose FHIR server is the point -- an Encounter, an
|
|
12
11
|
Observation, a Subscription, a `_lastUpdated` search, none of which the facade serves -- the
|
|
13
12
|
default is the public HAPI R4 sandbox at `https://hapi.fhir.org/baseR4` instead, and the
|
|
14
13
|
document's header says why.
|
|
File without changes
|
{dirigent_integration-0.29.0 → dirigent_integration-0.30.0}/src/dirigent_integration/__init__.py
RENAMED
|
File without changes
|
{dirigent_integration-0.29.0 → dirigent_integration-0.30.0}/src/dirigent_integration/py.typed
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
|