julee 0.1.5__py3-none-any.whl → 0.1.7__py3-none-any.whl

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 (108) hide show
  1. julee/__init__.py +1 -1
  2. julee/contrib/polling/apps/worker/pipelines.py +3 -1
  3. julee/contrib/polling/tests/unit/apps/worker/test_pipelines.py +3 -0
  4. julee/docs/sphinx_hcd/__init__.py +146 -13
  5. julee/docs/sphinx_hcd/domain/__init__.py +5 -0
  6. julee/docs/sphinx_hcd/domain/models/__init__.py +32 -0
  7. julee/docs/sphinx_hcd/domain/models/accelerator.py +152 -0
  8. julee/docs/sphinx_hcd/domain/models/app.py +151 -0
  9. julee/docs/sphinx_hcd/domain/models/code_info.py +121 -0
  10. julee/docs/sphinx_hcd/domain/models/epic.py +79 -0
  11. julee/docs/sphinx_hcd/domain/models/integration.py +230 -0
  12. julee/docs/sphinx_hcd/domain/models/journey.py +222 -0
  13. julee/docs/sphinx_hcd/domain/models/persona.py +106 -0
  14. julee/docs/sphinx_hcd/domain/models/story.py +128 -0
  15. julee/docs/sphinx_hcd/domain/repositories/__init__.py +25 -0
  16. julee/docs/sphinx_hcd/domain/repositories/accelerator.py +98 -0
  17. julee/docs/sphinx_hcd/domain/repositories/app.py +57 -0
  18. julee/docs/sphinx_hcd/domain/repositories/base.py +89 -0
  19. julee/docs/sphinx_hcd/domain/repositories/code_info.py +69 -0
  20. julee/docs/sphinx_hcd/domain/repositories/epic.py +62 -0
  21. julee/docs/sphinx_hcd/domain/repositories/integration.py +79 -0
  22. julee/docs/sphinx_hcd/domain/repositories/journey.py +106 -0
  23. julee/docs/sphinx_hcd/domain/repositories/story.py +68 -0
  24. julee/docs/sphinx_hcd/domain/use_cases/__init__.py +64 -0
  25. julee/docs/sphinx_hcd/domain/use_cases/derive_personas.py +166 -0
  26. julee/docs/sphinx_hcd/domain/use_cases/resolve_accelerator_references.py +236 -0
  27. julee/docs/sphinx_hcd/domain/use_cases/resolve_app_references.py +144 -0
  28. julee/docs/sphinx_hcd/domain/use_cases/resolve_story_references.py +121 -0
  29. julee/docs/sphinx_hcd/parsers/__init__.py +48 -0
  30. julee/docs/sphinx_hcd/parsers/ast.py +150 -0
  31. julee/docs/sphinx_hcd/parsers/gherkin.py +155 -0
  32. julee/docs/sphinx_hcd/parsers/yaml.py +184 -0
  33. julee/docs/sphinx_hcd/repositories/__init__.py +4 -0
  34. julee/docs/sphinx_hcd/repositories/memory/__init__.py +25 -0
  35. julee/docs/sphinx_hcd/repositories/memory/accelerator.py +86 -0
  36. julee/docs/sphinx_hcd/repositories/memory/app.py +45 -0
  37. julee/docs/sphinx_hcd/repositories/memory/base.py +106 -0
  38. julee/docs/sphinx_hcd/repositories/memory/code_info.py +59 -0
  39. julee/docs/sphinx_hcd/repositories/memory/epic.py +54 -0
  40. julee/docs/sphinx_hcd/repositories/memory/integration.py +70 -0
  41. julee/docs/sphinx_hcd/repositories/memory/journey.py +96 -0
  42. julee/docs/sphinx_hcd/repositories/memory/story.py +63 -0
  43. julee/docs/sphinx_hcd/sphinx/__init__.py +28 -0
  44. julee/docs/sphinx_hcd/sphinx/adapters.py +116 -0
  45. julee/docs/sphinx_hcd/sphinx/context.py +163 -0
  46. julee/docs/sphinx_hcd/sphinx/directives/__init__.py +160 -0
  47. julee/docs/sphinx_hcd/sphinx/directives/accelerator.py +576 -0
  48. julee/docs/sphinx_hcd/sphinx/directives/app.py +349 -0
  49. julee/docs/sphinx_hcd/sphinx/directives/base.py +211 -0
  50. julee/docs/sphinx_hcd/sphinx/directives/epic.py +434 -0
  51. julee/docs/sphinx_hcd/sphinx/directives/integration.py +220 -0
  52. julee/docs/sphinx_hcd/sphinx/directives/journey.py +642 -0
  53. julee/docs/sphinx_hcd/sphinx/directives/persona.py +345 -0
  54. julee/docs/sphinx_hcd/sphinx/directives/story.py +575 -0
  55. julee/docs/sphinx_hcd/sphinx/event_handlers/__init__.py +16 -0
  56. julee/docs/sphinx_hcd/sphinx/event_handlers/builder_inited.py +31 -0
  57. julee/docs/sphinx_hcd/sphinx/event_handlers/doctree_read.py +27 -0
  58. julee/docs/sphinx_hcd/sphinx/event_handlers/doctree_resolved.py +43 -0
  59. julee/docs/sphinx_hcd/sphinx/event_handlers/env_purge_doc.py +42 -0
  60. julee/docs/sphinx_hcd/sphinx/initialization.py +139 -0
  61. julee/docs/sphinx_hcd/tests/__init__.py +9 -0
  62. julee/docs/sphinx_hcd/tests/conftest.py +6 -0
  63. julee/docs/sphinx_hcd/tests/domain/__init__.py +1 -0
  64. julee/docs/sphinx_hcd/tests/domain/models/__init__.py +1 -0
  65. julee/docs/sphinx_hcd/tests/domain/models/test_accelerator.py +266 -0
  66. julee/docs/sphinx_hcd/tests/domain/models/test_app.py +258 -0
  67. julee/docs/sphinx_hcd/tests/domain/models/test_code_info.py +231 -0
  68. julee/docs/sphinx_hcd/tests/domain/models/test_epic.py +163 -0
  69. julee/docs/sphinx_hcd/tests/domain/models/test_integration.py +327 -0
  70. julee/docs/sphinx_hcd/tests/domain/models/test_journey.py +249 -0
  71. julee/docs/sphinx_hcd/tests/domain/models/test_persona.py +172 -0
  72. julee/docs/sphinx_hcd/tests/domain/models/test_story.py +216 -0
  73. julee/docs/sphinx_hcd/tests/domain/use_cases/__init__.py +1 -0
  74. julee/docs/sphinx_hcd/tests/domain/use_cases/test_derive_personas.py +314 -0
  75. julee/docs/sphinx_hcd/tests/domain/use_cases/test_resolve_accelerator_references.py +476 -0
  76. julee/docs/sphinx_hcd/tests/domain/use_cases/test_resolve_app_references.py +265 -0
  77. julee/docs/sphinx_hcd/tests/domain/use_cases/test_resolve_story_references.py +229 -0
  78. julee/docs/sphinx_hcd/tests/integration/__init__.py +1 -0
  79. julee/docs/sphinx_hcd/tests/parsers/__init__.py +1 -0
  80. julee/docs/sphinx_hcd/tests/parsers/test_ast.py +298 -0
  81. julee/docs/sphinx_hcd/tests/parsers/test_gherkin.py +282 -0
  82. julee/docs/sphinx_hcd/tests/parsers/test_yaml.py +496 -0
  83. julee/docs/sphinx_hcd/tests/repositories/__init__.py +1 -0
  84. julee/docs/sphinx_hcd/tests/repositories/test_accelerator.py +298 -0
  85. julee/docs/sphinx_hcd/tests/repositories/test_app.py +218 -0
  86. julee/docs/sphinx_hcd/tests/repositories/test_base.py +151 -0
  87. julee/docs/sphinx_hcd/tests/repositories/test_code_info.py +253 -0
  88. julee/docs/sphinx_hcd/tests/repositories/test_epic.py +237 -0
  89. julee/docs/sphinx_hcd/tests/repositories/test_integration.py +268 -0
  90. julee/docs/sphinx_hcd/tests/repositories/test_journey.py +294 -0
  91. julee/docs/sphinx_hcd/tests/repositories/test_story.py +236 -0
  92. julee/docs/sphinx_hcd/tests/sphinx/__init__.py +1 -0
  93. julee/docs/sphinx_hcd/tests/sphinx/directives/__init__.py +1 -0
  94. julee/docs/sphinx_hcd/tests/sphinx/directives/test_base.py +160 -0
  95. julee/docs/sphinx_hcd/tests/sphinx/test_adapters.py +176 -0
  96. julee/docs/sphinx_hcd/tests/sphinx/test_context.py +257 -0
  97. {julee-0.1.5.dist-info → julee-0.1.7.dist-info}/METADATA +2 -1
  98. {julee-0.1.5.dist-info → julee-0.1.7.dist-info}/RECORD +101 -16
  99. julee/docs/sphinx_hcd/accelerators.py +0 -1175
  100. julee/docs/sphinx_hcd/apps.py +0 -518
  101. julee/docs/sphinx_hcd/epics.py +0 -453
  102. julee/docs/sphinx_hcd/integrations.py +0 -310
  103. julee/docs/sphinx_hcd/journeys.py +0 -797
  104. julee/docs/sphinx_hcd/personas.py +0 -457
  105. julee/docs/sphinx_hcd/stories.py +0 -960
  106. {julee-0.1.5.dist-info → julee-0.1.7.dist-info}/WHEEL +0 -0
  107. {julee-0.1.5.dist-info → julee-0.1.7.dist-info}/licenses/LICENSE +0 -0
  108. {julee-0.1.5.dist-info → julee-0.1.7.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,257 @@
1
+ """Tests for HCDContext."""
2
+
3
+ import pytest
4
+
5
+ from julee.docs.sphinx_hcd.domain.models import (
6
+ Accelerator,
7
+ App,
8
+ AppType,
9
+ Epic,
10
+ Journey,
11
+ Story,
12
+ )
13
+ from julee.docs.sphinx_hcd.sphinx.context import (
14
+ HCDContext,
15
+ ensure_hcd_context,
16
+ get_hcd_context,
17
+ set_hcd_context,
18
+ )
19
+
20
+
21
+ class MockSphinxApp:
22
+ """Mock Sphinx app for testing."""
23
+
24
+ pass
25
+
26
+
27
+ class TestHCDContextCreation:
28
+ """Test HCDContext creation."""
29
+
30
+ def test_create_context(self) -> None:
31
+ """Test creating a new context."""
32
+ context = HCDContext()
33
+
34
+ assert context.story_repo is not None
35
+ assert context.journey_repo is not None
36
+ assert context.epic_repo is not None
37
+ assert context.app_repo is not None
38
+ assert context.accelerator_repo is not None
39
+ assert context.integration_repo is not None
40
+ assert context.code_info_repo is not None
41
+
42
+ def test_repositories_are_independent(self) -> None:
43
+ """Test that each context has its own repositories."""
44
+ context1 = HCDContext()
45
+ context2 = HCDContext()
46
+
47
+ # Add to context1
48
+ story = Story(
49
+ slug="test-story",
50
+ feature_title="Test Story",
51
+ persona="Tester",
52
+ i_want="test",
53
+ so_that="verify",
54
+ app_slug="test-app",
55
+ file_path="test.feature",
56
+ )
57
+ context1.story_repo.save(story)
58
+
59
+ # context2 should be empty
60
+ assert context1.story_repo.get("test-story") is not None
61
+ assert context2.story_repo.get("test-story") is None
62
+
63
+
64
+ class TestHCDContextOperations:
65
+ """Test HCDContext operations."""
66
+
67
+ @pytest.fixture
68
+ def context(self) -> HCDContext:
69
+ """Create a context with sample data."""
70
+ ctx = HCDContext()
71
+
72
+ # Add some entities
73
+ ctx.story_repo.save(
74
+ Story(
75
+ slug="upload-document",
76
+ feature_title="Upload Document",
77
+ persona="Curator",
78
+ i_want="upload",
79
+ so_that="share",
80
+ app_slug="vocab-tool",
81
+ file_path="test.feature",
82
+ )
83
+ )
84
+
85
+ ctx.journey_repo.save(
86
+ Journey(
87
+ slug="build-vocabulary",
88
+ persona="Curator",
89
+ docname="journeys/build-vocabulary",
90
+ )
91
+ )
92
+
93
+ ctx.epic_repo.save(
94
+ Epic(
95
+ slug="vocabulary-management",
96
+ description="Manage vocabularies",
97
+ docname="epics/vocabulary-management",
98
+ )
99
+ )
100
+
101
+ ctx.app_repo.save(
102
+ App(
103
+ slug="vocab-tool",
104
+ name="Vocabulary Tool",
105
+ app_type=AppType.STAFF,
106
+ manifest_path="apps/vocab-tool/app.yaml",
107
+ )
108
+ )
109
+
110
+ ctx.accelerator_repo.save(
111
+ Accelerator(
112
+ slug="vocabulary",
113
+ status="alpha",
114
+ docname="accelerators/vocabulary",
115
+ )
116
+ )
117
+
118
+ return ctx
119
+
120
+ def test_clear_all(self, context: HCDContext) -> None:
121
+ """Test clearing all repositories."""
122
+ # Verify data exists
123
+ assert context.story_repo.get("upload-document") is not None
124
+ assert context.journey_repo.get("build-vocabulary") is not None
125
+ assert context.epic_repo.get("vocabulary-management") is not None
126
+ assert context.app_repo.get("vocab-tool") is not None
127
+ assert context.accelerator_repo.get("vocabulary") is not None
128
+
129
+ # Clear all
130
+ context.clear_all()
131
+
132
+ # Verify all cleared
133
+ assert context.story_repo.get("upload-document") is None
134
+ assert context.journey_repo.get("build-vocabulary") is None
135
+ assert context.epic_repo.get("vocabulary-management") is None
136
+ assert context.app_repo.get("vocab-tool") is None
137
+ assert context.accelerator_repo.get("vocabulary") is None
138
+
139
+ def test_clear_by_docname(self, context: HCDContext) -> None:
140
+ """Test clearing entities by docname."""
141
+ # Add another journey with different docname
142
+ context.journey_repo.save(
143
+ Journey(
144
+ slug="other-journey",
145
+ persona="User",
146
+ docname="journeys/other",
147
+ )
148
+ )
149
+
150
+ # Clear by docname
151
+ results = context.clear_by_docname("journeys/build-vocabulary")
152
+
153
+ # Verify results
154
+ assert results["journeys"] == 1
155
+ assert results["epics"] == 0
156
+ assert results["accelerators"] == 0
157
+
158
+ # Verify correct entity cleared
159
+ assert context.journey_repo.get("build-vocabulary") is None
160
+ assert context.journey_repo.get("other-journey") is not None
161
+
162
+ def test_clear_by_docname_multiple_types(self) -> None:
163
+ """Test clearing entities across multiple types with same docname."""
164
+ context = HCDContext()
165
+
166
+ # Add entities with same docname
167
+ context.journey_repo.save(
168
+ Journey(
169
+ slug="shared-journey",
170
+ persona="User",
171
+ docname="shared/doc",
172
+ )
173
+ )
174
+ context.epic_repo.save(
175
+ Epic(
176
+ slug="shared-epic",
177
+ docname="shared/doc",
178
+ )
179
+ )
180
+ context.accelerator_repo.save(
181
+ Accelerator(
182
+ slug="shared-accel",
183
+ docname="shared/doc",
184
+ )
185
+ )
186
+
187
+ # Clear by docname
188
+ results = context.clear_by_docname("shared/doc")
189
+
190
+ # All should be cleared
191
+ assert results["journeys"] == 1
192
+ assert results["epics"] == 1
193
+ assert results["accelerators"] == 1
194
+
195
+
196
+ class TestContextAccessFunctions:
197
+ """Test context access helper functions."""
198
+
199
+ def test_set_and_get_context(self) -> None:
200
+ """Test setting and getting context from app."""
201
+ app = MockSphinxApp()
202
+ context = HCDContext()
203
+
204
+ set_hcd_context(app, context)
205
+ retrieved = get_hcd_context(app)
206
+
207
+ assert retrieved is context
208
+
209
+ def test_get_context_not_set(self) -> None:
210
+ """Test getting context when not set raises error."""
211
+ app = MockSphinxApp()
212
+
213
+ with pytest.raises(AttributeError):
214
+ get_hcd_context(app)
215
+
216
+ def test_ensure_context_creates_new(self) -> None:
217
+ """Test ensure_hcd_context creates new context if none exists."""
218
+ app = MockSphinxApp()
219
+
220
+ context = ensure_hcd_context(app)
221
+
222
+ assert context is not None
223
+ assert isinstance(context, HCDContext)
224
+
225
+ def test_ensure_context_returns_existing(self) -> None:
226
+ """Test ensure_hcd_context returns existing context."""
227
+ app = MockSphinxApp()
228
+ original = HCDContext()
229
+ set_hcd_context(app, original)
230
+
231
+ retrieved = ensure_hcd_context(app)
232
+
233
+ assert retrieved is original
234
+
235
+ def test_context_persists_on_app(self) -> None:
236
+ """Test context persists on app object."""
237
+ app = MockSphinxApp()
238
+ context = HCDContext()
239
+
240
+ # Add data through context
241
+ context.story_repo.save(
242
+ Story(
243
+ slug="test",
244
+ feature_title="Test",
245
+ persona="User",
246
+ i_want="test",
247
+ so_that="verify",
248
+ app_slug="app",
249
+ file_path="test.feature",
250
+ )
251
+ )
252
+
253
+ set_hcd_context(app, context)
254
+
255
+ # Retrieve and verify data
256
+ retrieved = get_hcd_context(app)
257
+ assert retrieved.story_repo.get("test") is not None
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: julee
3
- Version: 0.1.5
3
+ Version: 0.1.7
4
4
  Summary: Julee - Clean architecture for accountable and transparent digital supply chains
5
5
  Author-email: Pyx Industries <chris@pyx.io>
6
6
  License: GPL-3.0
@@ -52,6 +52,7 @@ Requires-Dist: pre-commit>=3.0.0; extra == "dev"
52
52
  Requires-Dist: bandit; extra == "dev"
53
53
  Requires-Dist: pip-tools>=7.0.0; extra == "dev"
54
54
  Requires-Dist: asyncpg; extra == "dev"
55
+ Requires-Dist: sphinx>=7.0.0; extra == "dev"
55
56
  Provides-Extra: docs
56
57
  Requires-Dist: sphinx>=7.0.0; extra == "docs"
57
58
  Requires-Dist: sphinx-autobuild>=2021.3.14; extra == "docs"
@@ -1,4 +1,4 @@
1
- julee/__init__.py,sha256=vG46rbd6qYeNtSgP3Awo8RqA2n7Qka3HlsGutEc7sZM,111
1
+ julee/__init__.py,sha256=lpc7dyHUdS7URdXnMUEbipojCJcSEniK4Dc9VTO_Q6Y,111
2
2
  julee/worker.py,sha256=26k7LkpLft8emjVsSRCK7VmbtTEaBxjokX_5CC52LDM,7231
3
3
  julee/api/__init__.py,sha256=bJECAJifuV-pochMVeDqKhQ63jvXel3W4Y0_NK9gn8s,801
4
4
  julee/api/app.py,sha256=I4a7fi9rE_0r92jmMusOxlcMalFnTy8qb4yyxKYg6-Q,4955
@@ -29,7 +29,7 @@ julee/contrib/__init__.py,sha256=RFlW03DFJQxINJCCif7s67LPOKW4rI4BuYWTUbakkGc,503
29
29
  julee/contrib/polling/__init__.py,sha256=xk0bRSShKdJXcm8CMqJ7tQWSBdLwOLLj05-pXd2cUSM,2115
30
30
  julee/contrib/polling/apps/__init__.py,sha256=f1SCPBxN5pD-okEz7Bc7q8ApVSmhTxxb7edZq3z7ejU,619
31
31
  julee/contrib/polling/apps/worker/__init__.py,sha256=a7q35Tmmia0NxfCxwMeWeOq5ZacZ082VYxe_9hseYOE,619
32
- julee/contrib/polling/apps/worker/pipelines.py,sha256=aScz2hGynJ7_vYjwUsx6QMAxxbgj2JqWzezMHkxd0Bo,11021
32
+ julee/contrib/polling/apps/worker/pipelines.py,sha256=dAdQH5NI1E_GeWUGx-ihO_HBaeKZHLhWD4UPPHTd89w,11133
33
33
  julee/contrib/polling/domain/__init__.py,sha256=9TGbfrNXaQgjrCOUwAifidSQ3CP7FAqQUNVpXk5GAUo,576
34
34
  julee/contrib/polling/domain/models/__init__.py,sha256=AUgbHTVy2AHYTfaLKG1DvtE11UB1B-xzaFVCtQoHzC0,369
35
35
  julee/contrib/polling/domain/models/polling_config.py,sha256=6n89yP5c1XblKvnj4vialLgrmqzLcY3p_LV_4aTYaUo,1720
@@ -47,7 +47,7 @@ julee/contrib/polling/infrastructure/temporal/manager.py,sha256=90T5jikv7F-wB4cC
47
47
  julee/contrib/polling/infrastructure/temporal/proxies.py,sha256=eiYr1d0tXkREpbJx7nG5Otc7FCxNJrLFtj2CMzJd5iM,1509
48
48
  julee/contrib/polling/tests/__init__.py,sha256=0GSU_Gc9HtB0h6w5_c1qUdMWqCp2FVx-BV-IOR9_uo0,175
49
49
  julee/contrib/polling/tests/unit/__init__.py,sha256=8QbeJjQZj0nIKd3F1eTXCR9utxZtiYQzkTyk4yGhCvM,160
50
- julee/contrib/polling/tests/unit/apps/worker/test_pipelines.py,sha256=_1bvvOV9LDYuup9OmKTBvYm7acL55o98Yku2i39kU4E,23306
50
+ julee/contrib/polling/tests/unit/apps/worker/test_pipelines.py,sha256=HpKQQD5YcCwO403uQnvbUS88jmqIYIBORCHFmgfTOmI,23413
51
51
  julee/contrib/polling/tests/unit/infrastructure/__init__.py,sha256=BEFimVM4poUCs2AKZOggF4L07T96L85UnfIkt8qxFys,238
52
52
  julee/contrib/polling/tests/unit/infrastructure/services/__init__.py,sha256=WCf2KzGeMChltre8YYf8IUtElgP4NmdugNOmKxno0Lw,190
53
53
  julee/contrib/polling/tests/unit/infrastructure/services/polling/__init__.py,sha256=ygTzYEe2Zok4pwmGOd2G_Gf5sE5kaC6xHiFmZADiYvs,228
@@ -56,16 +56,101 @@ julee/contrib/polling/tests/unit/infrastructure/services/polling/http/test_http_
56
56
  julee/contrib/polling/tests/unit/infrastructure/temporal/__init__.py,sha256=8SkkiZsr_RjD__H27tObR2F6EennVe7F_hsnHvmqGUI,267
57
57
  julee/contrib/polling/tests/unit/infrastructure/temporal/test_manager.py,sha256=gintS5ZyaHfo16GJb5YL-MKoOERnN7na8P4BK42OgeA,18818
58
58
  julee/docs/__init__.py,sha256=wknBFq8RF9S1M-oU-S1sw3UWQsmZSjq5Oj7HCCh1AHg,169
59
- julee/docs/sphinx_hcd/__init__.py,sha256=mpEbmaDGoT74LGDS9wCEakov2mzagpFvWGp6TDDJegA,2378
60
- julee/docs/sphinx_hcd/accelerators.py,sha256=fNrP9ztTbNjAe0sib23RnkkEuxk3cBkb8lfMojtqz0M,38759
61
- julee/docs/sphinx_hcd/apps.py,sha256=lNHVJrF-OQ4c6VTv4MZn2b3ewcmSW3IvvgZyUD1HDwk,15974
59
+ julee/docs/sphinx_hcd/__init__.py,sha256=fwOEXad6Dy5FLMGmYhQfsTnPqUaHtMTD1TlM6smAeNs,7969
62
60
  julee/docs/sphinx_hcd/config.py,sha256=ilxLjnrG7oLgbSSUL90biFj7xxohgij4hlEfYSjIX0A,4159
63
- julee/docs/sphinx_hcd/epics.py,sha256=anZXSrvWTzD6SU1fzBioMxZccIjym0TDmppN_eOVCN8,13894
64
- julee/docs/sphinx_hcd/integrations.py,sha256=3baWEph9uYMipeWrPywmeRMko8LdkQx-LFQvkVcoJ08,9796
65
- julee/docs/sphinx_hcd/journeys.py,sha256=abmd9kplnsy3gB209Iq_tFOseABkPJU4MGYEAHCSjhY,26582
66
- julee/docs/sphinx_hcd/personas.py,sha256=V4l6-31KgkDe-TEY0iDEe_TBI3VlFQJyZgAc6m8GKNQ,13662
67
- julee/docs/sphinx_hcd/stories.py,sha256=cFiNGDlpOE6wNEjZowzlmaGc_bK6xJjzYed9aIQFZLY,32233
68
61
  julee/docs/sphinx_hcd/utils.py,sha256=lkmyQShHWLoU6nwxs4PS5pxn_jjsRWVeAexizR46PhA,4488
62
+ julee/docs/sphinx_hcd/domain/__init__.py,sha256=D6lsOUy-ataFbz4wygL5NhqVa_5oiMRgumalmRF4ioU,142
63
+ julee/docs/sphinx_hcd/domain/models/__init__.py,sha256=vN1yN57n1cxEHOoO2hFakk9CAzX0A-BMWLC8VnudXLw,778
64
+ julee/docs/sphinx_hcd/domain/models/accelerator.py,sha256=Rn2r2JgF1BOOOQh90_YWaoyFqQH-bgq0JwzOnX0DW1E,5223
65
+ julee/docs/sphinx_hcd/domain/models/app.py,sha256=ZSAd_AEyN_X-NDV1mXruoUrLIAu0PpYw6S7sS5puNxo,4667
66
+ julee/docs/sphinx_hcd/domain/models/code_info.py,sha256=CnBN44mF1nm8N5Rqu-2dCyoXUvDgRhfAhfVy0oWKioc,4159
67
+ julee/docs/sphinx_hcd/domain/models/epic.py,sha256=ZOYjhgfrl2lsQiQ_N9dDT-DWmujWlNSD5iqLufJl2jQ,2367
68
+ julee/docs/sphinx_hcd/domain/models/integration.py,sha256=Wlc5zW72YexCRCRH630Je_dmJUHmBUQI_n0waO7gawQ,7042
69
+ julee/docs/sphinx_hcd/domain/models/journey.py,sha256=ZL8UvpXBqEnfyXGP8NwUlGdyeHK3misHCrgwsh0oh_w,6646
70
+ julee/docs/sphinx_hcd/domain/models/persona.py,sha256=dX5kanFKGRNkGbpzCzDmjZRtA7mf9McLuFEwqWBwrAQ,3109
71
+ julee/docs/sphinx_hcd/domain/models/story.py,sha256=4w4Q21KJNVx1OYw65eb5TkyhLiNcJ19jgI1uQgNxXQI,4336
72
+ julee/docs/sphinx_hcd/domain/repositories/__init__.py,sha256=1snRGZkT2QwrJ2e3OKlmE2TuXOYEnc_rOL2YqksJrNY,680
73
+ julee/docs/sphinx_hcd/domain/repositories/accelerator.py,sha256=EjC94J-rxUrguln68xC1j4ekriwqdoGRQENmutXhuyU,2795
74
+ julee/docs/sphinx_hcd/domain/repositories/app.py,sha256=FsKL1Dz4sPv06bMEqKbp4OPQCEBFOoLa_yKxNbriHlM,1465
75
+ julee/docs/sphinx_hcd/domain/repositories/base.py,sha256=cByy57NNvYVjvnX528TR3GkLNIogAhcE3uUrMVQJt8Y,2396
76
+ julee/docs/sphinx_hcd/domain/repositories/code_info.py,sha256=rNfJnDTpxzbmWiPXqhn2EnuwS_jnWjpv5OW-WDEE87A,2026
77
+ julee/docs/sphinx_hcd/domain/repositories/epic.py,sha256=38On_zzMRxu473mXs4RTkYYqqKmiuDhQjsRqoETuVIY,1569
78
+ julee/docs/sphinx_hcd/domain/repositories/integration.py,sha256=ZKq8EAMqhweeRNz_4DA-KnjCuEUum86XzrMzTjPz1pk,2285
79
+ julee/docs/sphinx_hcd/domain/repositories/journey.py,sha256=DsyqbwjghavhvxQQQwjmJY_umwQNnTJcnwncC4divdw,2817
80
+ julee/docs/sphinx_hcd/domain/repositories/story.py,sha256=YYVMCONtdZKJ8MI1RQr_yjc9wOPfRWoI3K3hWTHPc8g,1778
81
+ julee/docs/sphinx_hcd/domain/use_cases/__init__.py,sha256=Eg225LAdTzjeaGmEnN2xe8dboJn71f4Lfd7Xfn60dDI,1689
82
+ julee/docs/sphinx_hcd/domain/use_cases/derive_personas.py,sha256=4bzXJbS_tmAo5Tud7iPe42HwTIXPKe9NHlwGFmFxZv0,5052
83
+ julee/docs/sphinx_hcd/domain/use_cases/resolve_accelerator_references.py,sha256=r-oojwRqHRMTKo-5pBGwOfWFZ7VE1T1-UW_wSSwkX4w,7275
84
+ julee/docs/sphinx_hcd/domain/use_cases/resolve_app_references.py,sha256=O9Iy2xAZRTffcWMVD115AJ7z2q6Wdz-DU7VvZMtkvOw,3863
85
+ julee/docs/sphinx_hcd/domain/use_cases/resolve_story_references.py,sha256=r2Q50V7yRX2bXbbuSRxYiEIiVbJaK2R-PDTCgsOFqJs,3315
86
+ julee/docs/sphinx_hcd/parsers/__init__.py,sha256=mSWHkrcJQnXm_MNnMZBvYBe9ZPXE5j4iSzBb4M6g2xE,1126
87
+ julee/docs/sphinx_hcd/parsers/ast.py,sha256=l9KkDz1CMz-41dwFVKaDK1YIJpTXJp2VQw44OJiztSQ,4721
88
+ julee/docs/sphinx_hcd/parsers/gherkin.py,sha256=JdhFdpAzp77ZJ4xgUPstw2JS-R6dchbFmWID3YaCz7U,4583
89
+ julee/docs/sphinx_hcd/parsers/yaml.py,sha256=osWqAJA_gSOX7BQz0Rg6xA25j0qdCVzT3g9y2WkUBmc,4967
90
+ julee/docs/sphinx_hcd/repositories/__init__.py,sha256=9P810vHx0a5XUq1Zu8eohbfnhFmvtzwAYxAeUmfEzHQ,120
91
+ julee/docs/sphinx_hcd/repositories/memory/__init__.py,sha256=Vd78mowhaWwuW9hTMlDVlI4LPU-g0Oh8-_v363q-flY,819
92
+ julee/docs/sphinx_hcd/repositories/memory/accelerator.py,sha256=FRDjxRNE9SQEwAF7zQthFmMl0qOYdwNhGD43xnUBVtw,3218
93
+ julee/docs/sphinx_hcd/repositories/memory/app.py,sha256=5K6xzJepD_8igsyS9XPikYFXysTOQP52agonFnpIUBQ,1656
94
+ julee/docs/sphinx_hcd/repositories/memory/base.py,sha256=I6sbYrHYOOXMLexWCXGcEV5fk6qt503MuGxW0MnpDDQ,3568
95
+ julee/docs/sphinx_hcd/repositories/memory/code_info.py,sha256=sj92x6EYDb4IlBFo9ugEseB_SHo76AL23lP_xLRFux4,2333
96
+ julee/docs/sphinx_hcd/repositories/memory/epic.py,sha256=NK7dThiQ2jD0S34tOoTa_WCdGsDyubSTn0shhBQ8aQg,1992
97
+ julee/docs/sphinx_hcd/repositories/memory/integration.py,sha256=LIydzqDGDs_S7Od4OkM7Liw8kt0yLYxshf39LFFb9rc,2608
98
+ julee/docs/sphinx_hcd/repositories/memory/journey.py,sha256=D0Wg4yuFio6gu1qG2JVBzKG5ftFHra176ynqjwXUlVM,3402
99
+ julee/docs/sphinx_hcd/repositories/memory/story.py,sha256=JG0B2Rc6uV763ebmHSMFgcTJrRGfWtEmqsigxu-IvLs,2230
100
+ julee/docs/sphinx_hcd/sphinx/__init__.py,sha256=nVLe3q9zMghEOIfzcPQxw4qruxpm8KbzeJEqcdVXGY4,768
101
+ julee/docs/sphinx_hcd/sphinx/adapters.py,sha256=u3F4m5f388LEMJE7k4TQt_0pafwdOVfw380epBkJRxY,3386
102
+ julee/docs/sphinx_hcd/sphinx/context.py,sha256=waS7wDakxdVvYtFRyyU4zpmAJChAOrAFGEUUZWk_AFg,5092
103
+ julee/docs/sphinx_hcd/sphinx/initialization.py,sha256=znLAkOPE97bXREWRbQP0bBx4mLTC05t2EleVACZ9Zak,4282
104
+ julee/docs/sphinx_hcd/sphinx/directives/__init__.py,sha256=Tb8mAYDU9GzUUzgj0HwZvstznXMfz2LJaVLUFpWKoP0,4638
105
+ julee/docs/sphinx_hcd/sphinx/directives/accelerator.py,sha256=tAZhsExVhMe52ZTbbb2lnNCOSTL5_PpHs0TGTHmk51c,18789
106
+ julee/docs/sphinx_hcd/sphinx/directives/app.py,sha256=1H3Rv96SKYm-GxvNHvg3a2TaYRaaOy2XDdJ366A_Q6Y,10449
107
+ julee/docs/sphinx_hcd/sphinx/directives/base.py,sha256=CqtguTB1LYrlzyuO5MIxHSgdrpfkM33iFuj1CSKrU5o,6618
108
+ julee/docs/sphinx_hcd/sphinx/directives/epic.py,sha256=ea2pkgBtPVUDdIJlFnScyTeW-yA13cpx4tTHP1suwIw,13421
109
+ julee/docs/sphinx_hcd/sphinx/directives/integration.py,sha256=N35zKaf5f5R4zL2bsvbF1u73Ea4AIuqovNav1GGEhQE,6888
110
+ julee/docs/sphinx_hcd/sphinx/directives/journey.py,sha256=nhgysatMJng223G7E2Z68g-7iAlyt9W8y6ToNK8N_lw,20266
111
+ julee/docs/sphinx_hcd/sphinx/directives/persona.py,sha256=ATFEs-XyK3QGXrAZcOEE72SZE3y51kBYE-91ioXP1_8,10644
112
+ julee/docs/sphinx_hcd/sphinx/directives/story.py,sha256=YNtlV6Cd_SJ8vltwvM4wsulRwX1zpNMUEhmFcvvOwY8,19090
113
+ julee/docs/sphinx_hcd/sphinx/event_handlers/__init__.py,sha256=9t-gY_sC0CootRif2XQyyBClhv3SLQs8Z2FX3rVTaaM,398
114
+ julee/docs/sphinx_hcd/sphinx/event_handlers/builder_inited.py,sha256=SJ66RGYjrM7f1Fb7FXd897FrMpD0WqABHcw337OqbtQ,791
115
+ julee/docs/sphinx_hcd/sphinx/event_handlers/doctree_read.py,sha256=kgJ5Ue2P3_cWK8Sp3yABtuTM8LHanHLkym-D1W5ZdbQ,796
116
+ julee/docs/sphinx_hcd/sphinx/event_handlers/doctree_resolved.py,sha256=jXWPaLLSaOUUaatnV5uC-APNBx3x7w5I6T8GCj39D0M,1437
117
+ julee/docs/sphinx_hcd/sphinx/event_handlers/env_purge_doc.py,sha256=k9IpZwior_4tAmFGTRKD5kTK0CvNx2kkYG2PxnqsBlo,1223
118
+ julee/docs/sphinx_hcd/tests/__init__.py,sha256=CyK_afsBf8T0bKuXDy10U8o_3iV6RQZYb23a7jKV5Ho,253
119
+ julee/docs/sphinx_hcd/tests/conftest.py,sha256=sBfHdcbHXEQXnPR_965PQj5lBSM8UXEeAGOmj_fpt7g,168
120
+ julee/docs/sphinx_hcd/tests/domain/__init__.py,sha256=rLTqkyXnxfwoIofpORu7Ar3zE-0AzCFDHJw2Id095Tg,26
121
+ julee/docs/sphinx_hcd/tests/domain/models/__init__.py,sha256=BYYNetLkht50XUKW6NByIeKI6sLano-9UYv7otbYG7U,26
122
+ julee/docs/sphinx_hcd/tests/domain/models/test_accelerator.py,sha256=SXhiWcG3Uc1TGiYHOZ8HQffITGpfe_Sy0Hp74zyJyio,10117
123
+ julee/docs/sphinx_hcd/tests/domain/models/test_app.py,sha256=PvRav1QjvW04zi7Oclq9ad6LYwp8CtapyXBHg77LIJ8,8818
124
+ julee/docs/sphinx_hcd/tests/domain/models/test_code_info.py,sha256=RVelg5lOheQiJNLiGLWCQSlNZkJgDckR_xYuurHIpk8,8353
125
+ julee/docs/sphinx_hcd/tests/domain/models/test_epic.py,sha256=s1eQBBN2o99Ay-3Wr6jG6AdZLP4su8BPGLSY6h1VG7c,6049
126
+ julee/docs/sphinx_hcd/tests/domain/models/test_integration.py,sha256=bhENu0g-9j-_AnkmMHwjjpiKTOY43a58OdtIy4Zpz1o,11864
127
+ julee/docs/sphinx_hcd/tests/domain/models/test_journey.py,sha256=EYB7BkhQUUCxhOZTALcz8b31Cr0GpXdztW0VLzKB-8Y,9575
128
+ julee/docs/sphinx_hcd/tests/domain/models/test_persona.py,sha256=j3EjS8DnwFHsZUvx1qetM4SuBmxKyN0rFulWuNFpYHM,6495
129
+ julee/docs/sphinx_hcd/tests/domain/models/test_story.py,sha256=hfn-zl9BXT7rxfn2v0JElTpAH3zenZBkAAVSBVNTNS4,7918
130
+ julee/docs/sphinx_hcd/tests/domain/use_cases/__init__.py,sha256=aF_oZ8V7ds7ityckiUw8DKzEeAOsqnnPomEbTsSNae4,34
131
+ julee/docs/sphinx_hcd/tests/domain/use_cases/test_derive_personas.py,sha256=J1h7acxLZ02eHjpfkfSvPfhDCHNOzKH86Jn8s61Lk7U,10876
132
+ julee/docs/sphinx_hcd/tests/domain/use_cases/test_resolve_accelerator_references.py,sha256=3wvp-VSeNFufLhAkEH49-V3EXXShdti7cxw0Svv_yyA,16840
133
+ julee/docs/sphinx_hcd/tests/domain/use_cases/test_resolve_app_references.py,sha256=XQrbIn_2tvntLIymzKpZuCHqjarU0pza8ke1WlDuQrg,8806
134
+ julee/docs/sphinx_hcd/tests/domain/use_cases/test_resolve_story_references.py,sha256=Hzp-x6oD4C9fG2w3F3Cs6u7scnMA-r9u4MjPmZMW6bQ,7706
135
+ julee/docs/sphinx_hcd/tests/integration/__init__.py,sha256=rGhWmaDAol_eUY2S_S-NF8l5SACAYMh6njOCjLoQkvQ,25
136
+ julee/docs/sphinx_hcd/tests/parsers/__init__.py,sha256=rbyIYuS-N6S7JOhR3U8WsmaymCrT_jlG2tMS1a4eY-8,20
137
+ julee/docs/sphinx_hcd/tests/parsers/test_ast.py,sha256=CtLmHUkIH-qjzN4W4yQNOREriLGMThwG_vmNTaWFgUg,9669
138
+ julee/docs/sphinx_hcd/tests/parsers/test_gherkin.py,sha256=W6musl5EC9-wULQUL6OnRTfnfguuYewiBAEzmRoyvwE,9880
139
+ julee/docs/sphinx_hcd/tests/parsers/test_yaml.py,sha256=1arjVQYcC8fhRz9cj1yFePzpEhP7Dk55RPILqcOPHQU,17164
140
+ julee/docs/sphinx_hcd/tests/repositories/__init__.py,sha256=Bpysp1bUHzYXOAXBl51ZQV9a77MbIr4fFKmj_aScl3Q,39
141
+ julee/docs/sphinx_hcd/tests/repositories/test_accelerator.py,sha256=6hXkWTkp1FByHOalkuiJPMV9HkVRGM2fZ6y2e-nAxBk,11067
142
+ julee/docs/sphinx_hcd/tests/repositories/test_app.py,sha256=jxcLqUA1kNzCjC730Q2yh5ZL0TKPVGUPbNH0uzLB2Yo,7596
143
+ julee/docs/sphinx_hcd/tests/repositories/test_base.py,sha256=_6xZzHotIuc0c5naV7jCHXeLDmAOA1zHKieX36g0XHM,5226
144
+ julee/docs/sphinx_hcd/tests/repositories/test_code_info.py,sha256=MXkCIzq9lFR3mD630hGTxyxG1_yivtUDhZOR8wY7I58,9184
145
+ julee/docs/sphinx_hcd/tests/repositories/test_epic.py,sha256=XFbNaVU6LDcmltBTZhEWnQDGtF2gQM5REYLqsq7qlzE,8668
146
+ julee/docs/sphinx_hcd/tests/repositories/test_integration.py,sha256=WfkdJmju3uvJM8D6YYLcR2I3GxbJYU-Gb3Wg9anYeXI,10048
147
+ julee/docs/sphinx_hcd/tests/repositories/test_journey.py,sha256=SvNcvRdDhID0zX2cvvPLAByD1PtZzWQ2QPZvvX6YEwk,10914
148
+ julee/docs/sphinx_hcd/tests/repositories/test_story.py,sha256=pUNG0uHgNggTVdleqW3PHbsKhw0R7tPuG8fOyP68XQY,8312
149
+ julee/docs/sphinx_hcd/tests/sphinx/__init__.py,sha256=nQDjXW4cMfYrX4PuNX2YyvxFfalcj9Y6FFCV65N2kL0,38
150
+ julee/docs/sphinx_hcd/tests/sphinx/test_adapters.py,sha256=QErf0UHnSWbFWyzv6RPjD-34zVvk0_agka3SNOAy2tA,5743
151
+ julee/docs/sphinx_hcd/tests/sphinx/test_context.py,sha256=2GbiirXt4ZnIj-LxCoZDIiN7IE4gJkC-kyMxvUPLjfM,7546
152
+ julee/docs/sphinx_hcd/tests/sphinx/directives/__init__.py,sha256=no1LWtNjJfG8F9IdLqWKM05L_7K_6tLZ--hu7v4GN9s,39
153
+ julee/docs/sphinx_hcd/tests/sphinx/directives/test_base.py,sha256=AalcNCK1rqpkxE2nwIVkcS05SMH4mHbew34jCXNUwrk,5510
69
154
  julee/domain/__init__.py,sha256=UWEUgtMguDCCsRbTQtsdkaR8-PBei9YI9tn46FtDLe8,774
70
155
  julee/domain/models/__init__.py,sha256=HQYop2b0QjroxFHskoX4lcuMVIFRj8jteUI-P9TTze4,1230
71
156
  julee/domain/models/assembly/__init__.py,sha256=3bivk26_gmKFUhoUMHumsFHRrXyhgv0ClTxyBPWr9B0,494
@@ -196,8 +281,8 @@ julee/util/validation/type_guards.py,sha256=sH9NfnrWAOQnLKQQNpJRdz1ygkt5nTUmKyjV
196
281
  julee/workflows/__init__.py,sha256=sHXZm4EPvsch6IYcJGqGuPJIep8XZQ8XvEju5b34tTs,724
197
282
  julee/workflows/extract_assemble.py,sha256=ZldmLdwwn1LomDJg4gNGYrnY87tiXtU8em3-l_fqLGs,7876
198
283
  julee/workflows/validate_document.py,sha256=Cwl-XgcQWeVCC-cGOAslS1vCjQosiWUi79c2uQfTYNc,8230
199
- julee-0.1.5.dist-info/licenses/LICENSE,sha256=OXLcl0T2SZ8Pmy2_dmlvKuetivmyPd5m1q-Gyd-zaYY,35149
200
- julee-0.1.5.dist-info/METADATA,sha256=CkArVT-ZDglaWu_XsOLdAlvsY7RFXoVGYebj0GlYZsI,4409
201
- julee-0.1.5.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
202
- julee-0.1.5.dist-info/top_level.txt,sha256=woyPXhn9n-aM3oekZ341P1enrjj6nIcTwOxQL32VCLc,6
203
- julee-0.1.5.dist-info/RECORD,,
284
+ julee-0.1.7.dist-info/licenses/LICENSE,sha256=OXLcl0T2SZ8Pmy2_dmlvKuetivmyPd5m1q-Gyd-zaYY,35149
285
+ julee-0.1.7.dist-info/METADATA,sha256=ng2LD3HdJe4ER49Y8VqVAUDPk-qujgfjPOgNBYPSR_g,4454
286
+ julee-0.1.7.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
287
+ julee-0.1.7.dist-info/top_level.txt,sha256=woyPXhn9n-aM3oekZ341P1enrjj6nIcTwOxQL32VCLc,6
288
+ julee-0.1.7.dist-info/RECORD,,