julee 0.1.2__py3-none-any.whl → 0.1.4__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.
- julee/api/app.py +9 -8
- julee/api/dependencies.py +15 -15
- julee/api/requests.py +10 -9
- julee/api/responses.py +2 -1
- julee/api/routers/__init__.py +5 -5
- julee/api/routers/assembly_specifications.py +5 -4
- julee/api/routers/documents.py +1 -1
- julee/api/routers/knowledge_service_configs.py +4 -3
- julee/api/routers/knowledge_service_queries.py +7 -6
- julee/api/routers/system.py +4 -3
- julee/api/routers/workflows.py +4 -5
- julee/api/services/system_initialization.py +6 -6
- julee/api/tests/routers/test_assembly_specifications.py +4 -3
- julee/api/tests/routers/test_documents.py +11 -10
- julee/api/tests/routers/test_knowledge_service_configs.py +7 -6
- julee/api/tests/routers/test_knowledge_service_queries.py +4 -3
- julee/api/tests/routers/test_system.py +5 -4
- julee/api/tests/routers/test_workflows.py +5 -4
- julee/api/tests/test_app.py +5 -4
- julee/api/tests/test_dependencies.py +3 -2
- julee/api/tests/test_requests.py +2 -1
- julee/contrib/__init__.py +15 -0
- julee/contrib/polling/__init__.py +47 -0
- julee/contrib/polling/domain/__init__.py +17 -0
- julee/contrib/polling/domain/models/__init__.py +13 -0
- julee/contrib/polling/domain/models/polling_config.py +39 -0
- julee/contrib/polling/domain/services/__init__.py +11 -0
- julee/contrib/polling/domain/services/poller.py +39 -0
- julee/contrib/polling/infrastructure/__init__.py +15 -0
- julee/contrib/polling/infrastructure/services/__init__.py +12 -0
- julee/contrib/polling/infrastructure/services/polling/__init__.py +12 -0
- julee/contrib/polling/infrastructure/services/polling/http/__init__.py +12 -0
- julee/contrib/polling/infrastructure/services/polling/http/http_poller_service.py +80 -0
- julee/contrib/polling/infrastructure/temporal/__init__.py +20 -0
- julee/contrib/polling/infrastructure/temporal/activities.py +42 -0
- julee/contrib/polling/infrastructure/temporal/activity_names.py +20 -0
- julee/contrib/polling/infrastructure/temporal/proxies.py +45 -0
- julee/contrib/polling/tests/__init__.py +6 -0
- julee/contrib/polling/tests/unit/__init__.py +6 -0
- julee/contrib/polling/tests/unit/infrastructure/__init__.py +7 -0
- julee/contrib/polling/tests/unit/infrastructure/services/__init__.py +6 -0
- julee/contrib/polling/tests/unit/infrastructure/services/polling/__init__.py +6 -0
- julee/contrib/polling/tests/unit/infrastructure/services/polling/http/__init__.py +7 -0
- julee/contrib/polling/tests/unit/infrastructure/services/polling/http/test_http_poller_service.py +163 -0
- julee/docs/__init__.py +5 -0
- julee/docs/sphinx_hcd/__init__.py +76 -0
- julee/docs/sphinx_hcd/accelerators.py +1175 -0
- julee/docs/sphinx_hcd/apps.py +518 -0
- julee/docs/sphinx_hcd/config.py +148 -0
- julee/docs/sphinx_hcd/epics.py +453 -0
- julee/docs/sphinx_hcd/integrations.py +310 -0
- julee/docs/sphinx_hcd/journeys.py +797 -0
- julee/docs/sphinx_hcd/personas.py +457 -0
- julee/docs/sphinx_hcd/stories.py +960 -0
- julee/docs/sphinx_hcd/utils.py +185 -0
- julee/domain/models/__init__.py +5 -6
- julee/domain/models/assembly/assembly.py +7 -7
- julee/domain/models/assembly/tests/factories.py +2 -1
- julee/domain/models/assembly/tests/test_assembly.py +16 -13
- julee/domain/models/assembly_specification/assembly_specification.py +11 -10
- julee/domain/models/assembly_specification/knowledge_service_query.py +7 -6
- julee/domain/models/assembly_specification/tests/factories.py +2 -1
- julee/domain/models/assembly_specification/tests/test_assembly_specification.py +9 -6
- julee/domain/models/assembly_specification/tests/test_knowledge_service_query.py +3 -1
- julee/domain/models/custom_fields/content_stream.py +3 -2
- julee/domain/models/custom_fields/tests/test_custom_fields.py +2 -1
- julee/domain/models/document/document.py +23 -30
- julee/domain/models/document/tests/factories.py +3 -2
- julee/domain/models/document/tests/test_document.py +20 -37
- julee/domain/models/knowledge_service_config/knowledge_service_config.py +4 -4
- julee/domain/models/policy/__init__.py +4 -4
- julee/domain/models/policy/document_policy_validation.py +17 -17
- julee/domain/models/policy/policy.py +10 -10
- julee/domain/models/policy/tests/factories.py +2 -1
- julee/domain/models/policy/tests/test_document_policy_validation.py +3 -1
- julee/domain/models/policy/tests/test_policy.py +2 -1
- julee/domain/repositories/__init__.py +3 -3
- julee/domain/repositories/assembly.py +3 -1
- julee/domain/repositories/assembly_specification.py +2 -0
- julee/domain/repositories/base.py +5 -4
- julee/domain/repositories/document.py +3 -1
- julee/domain/repositories/document_policy_validation.py +3 -1
- julee/domain/repositories/knowledge_service_config.py +2 -0
- julee/domain/repositories/knowledge_service_query.py +1 -0
- julee/domain/repositories/policy.py +3 -1
- julee/domain/use_cases/decorators.py +3 -2
- julee/domain/use_cases/extract_assemble_data.py +14 -13
- julee/domain/use_cases/initialize_system_data.py +88 -34
- julee/domain/use_cases/tests/test_extract_assemble_data.py +10 -10
- julee/domain/use_cases/tests/test_initialize_system_data.py +2 -2
- julee/domain/use_cases/tests/test_validate_document.py +11 -11
- julee/domain/use_cases/validate_document.py +14 -14
- julee/fixtures/documents.yaml +4 -43
- julee/fixtures/knowledge_service_queries.yaml +9 -0
- julee/maintenance/__init__.py +1 -0
- julee/maintenance/release.py +243 -0
- julee/repositories/memory/assembly.py +6 -5
- julee/repositories/memory/assembly_specification.py +8 -9
- julee/repositories/memory/base.py +12 -11
- julee/repositories/memory/document.py +27 -20
- julee/repositories/memory/document_policy_validation.py +7 -6
- julee/repositories/memory/knowledge_service_config.py +8 -7
- julee/repositories/memory/knowledge_service_query.py +8 -7
- julee/repositories/memory/policy.py +6 -5
- julee/repositories/memory/tests/test_document.py +24 -22
- julee/repositories/memory/tests/test_document_policy_validation.py +2 -1
- julee/repositories/memory/tests/test_policy.py +2 -1
- julee/repositories/minio/assembly.py +4 -4
- julee/repositories/minio/assembly_specification.py +6 -8
- julee/repositories/minio/client.py +22 -25
- julee/repositories/minio/document.py +36 -33
- julee/repositories/minio/document_policy_validation.py +5 -5
- julee/repositories/minio/knowledge_service_config.py +6 -6
- julee/repositories/minio/knowledge_service_query.py +6 -9
- julee/repositories/minio/policy.py +4 -4
- julee/repositories/minio/tests/fake_client.py +11 -9
- julee/repositories/minio/tests/test_assembly.py +3 -1
- julee/repositories/minio/tests/test_assembly_specification.py +2 -1
- julee/repositories/minio/tests/test_client_protocol.py +5 -5
- julee/repositories/minio/tests/test_document.py +23 -22
- julee/repositories/minio/tests/test_document_policy_validation.py +3 -1
- julee/repositories/minio/tests/test_knowledge_service_config.py +4 -2
- julee/repositories/minio/tests/test_knowledge_service_query.py +3 -2
- julee/repositories/minio/tests/test_policy.py +3 -1
- julee/repositories/temporal/activities.py +5 -5
- julee/repositories/temporal/proxies.py +5 -5
- julee/services/knowledge_service/__init__.py +1 -2
- julee/services/knowledge_service/anthropic/knowledge_service.py +8 -7
- julee/services/knowledge_service/anthropic/tests/test_knowledge_service.py +11 -10
- julee/services/knowledge_service/factory.py +8 -8
- julee/services/knowledge_service/knowledge_service.py +12 -14
- julee/services/knowledge_service/memory/knowledge_service.py +13 -12
- julee/services/knowledge_service/memory/test_knowledge_service.py +10 -7
- julee/services/knowledge_service/test_factory.py +11 -10
- julee/services/temporal/activities.py +10 -10
- julee/services/temporal/proxies.py +2 -2
- julee/util/domain.py +6 -6
- julee/util/repos/minio/file_storage.py +8 -9
- julee/util/repos/temporal/client_proxies/file_storage.py +3 -4
- julee/util/repos/temporal/data_converter.py +6 -6
- julee/util/repos/temporal/minio_file_storage.py +1 -1
- julee/util/repos/temporal/proxies/file_storage.py +2 -3
- julee/util/repositories.py +4 -3
- julee/util/temporal/decorators.py +20 -18
- julee/util/tests/test_decorators.py +13 -15
- julee/util/validation/repository.py +3 -3
- julee/util/validation/type_guards.py +12 -11
- julee/worker.py +9 -8
- julee/workflows/__init__.py +2 -2
- julee/workflows/extract_assemble.py +2 -1
- julee/workflows/validate_document.py +3 -2
- {julee-0.1.2.dist-info → julee-0.1.4.dist-info}/METADATA +3 -3
- julee-0.1.4.dist-info/RECORD +196 -0
- julee/fixtures/assembly_specifications.yaml +0 -70
- julee-0.1.2.dist-info/RECORD +0 -161
- {julee-0.1.2.dist-info → julee-0.1.4.dist-info}/WHEEL +0 -0
- {julee-0.1.2.dist-info → julee-0.1.4.dist-info}/licenses/LICENSE +0 -0
- {julee-0.1.2.dist-info → julee-0.1.4.dist-info}/top_level.txt +0 -0
|
@@ -10,8 +10,6 @@ import asyncio
|
|
|
10
10
|
import inspect
|
|
11
11
|
from typing import (
|
|
12
12
|
Any,
|
|
13
|
-
List,
|
|
14
|
-
Optional,
|
|
15
13
|
Protocol,
|
|
16
14
|
TypeVar,
|
|
17
15
|
get_args,
|
|
@@ -62,7 +60,7 @@ class MockRepositoryProtocol(MockBaseRepositoryProtocol, Protocol):
|
|
|
62
60
|
"""Mock payment processing method."""
|
|
63
61
|
...
|
|
64
62
|
|
|
65
|
-
async def get_payment(self, payment_id: str) ->
|
|
63
|
+
async def get_payment(self, payment_id: str) -> dict | None:
|
|
66
64
|
"""Mock get payment method."""
|
|
67
65
|
...
|
|
68
66
|
|
|
@@ -98,7 +96,7 @@ class MockRepository(MockRepositoryProtocol):
|
|
|
98
96
|
"""Mock payment processing method."""
|
|
99
97
|
return {"status": "success", "order_id": order_id, "amount": amount}
|
|
100
98
|
|
|
101
|
-
async def get_payment(self, payment_id: str) ->
|
|
99
|
+
async def get_payment(self, payment_id: str) -> dict | None:
|
|
102
100
|
"""Mock get payment method."""
|
|
103
101
|
if payment_id == "not_found":
|
|
104
102
|
return None
|
|
@@ -239,7 +237,7 @@ def test_activity_names_with_different_prefixes() -> None:
|
|
|
239
237
|
captured_activity_names = []
|
|
240
238
|
original_activity_defn = activity.defn
|
|
241
239
|
|
|
242
|
-
def mock_activity_defn(name:
|
|
240
|
+
def mock_activity_defn(name: str | None = None, **kwargs: Any) -> Any:
|
|
243
241
|
"""Mock activity.defn to capture the activity names being created."""
|
|
244
242
|
if name:
|
|
245
243
|
captured_activity_names.append(name)
|
|
@@ -317,7 +315,7 @@ def test_decorator_handles_inheritance_correctly() -> None:
|
|
|
317
315
|
"amount": amount,
|
|
318
316
|
}
|
|
319
317
|
|
|
320
|
-
async def get_payment(self, payment_id: str) ->
|
|
318
|
+
async def get_payment(self, payment_id: str) -> dict | None:
|
|
321
319
|
if payment_id == "not_found":
|
|
322
320
|
return None
|
|
323
321
|
return {"payment_id": payment_id, "status": "completed"}
|
|
@@ -467,7 +465,7 @@ class MockDocumentRepository(BaseRepository[MockDocument], Protocol):
|
|
|
467
465
|
class NonGenericRepository(Protocol):
|
|
468
466
|
"""Repository that doesn't follow BaseRepository[T] pattern."""
|
|
469
467
|
|
|
470
|
-
async def get(self, id: str) ->
|
|
468
|
+
async def get(self, id: str) -> MockDocument | None: ...
|
|
471
469
|
|
|
472
470
|
|
|
473
471
|
class TestTypeExtraction:
|
|
@@ -521,7 +519,7 @@ class TestTypeSubstitution:
|
|
|
521
519
|
|
|
522
520
|
def test_substitutes_optional_typevar(self) -> None:
|
|
523
521
|
"""Test Optional[TypeVar] substitution."""
|
|
524
|
-
optional_t =
|
|
522
|
+
optional_t = T | None
|
|
525
523
|
result = _substitute_typevar_with_concrete(
|
|
526
524
|
optional_t, MockAssemblySpecification
|
|
527
525
|
)
|
|
@@ -535,7 +533,7 @@ class TestTypeSubstitution:
|
|
|
535
533
|
|
|
536
534
|
def test_substitutes_nested_generics(self) -> None:
|
|
537
535
|
"""Test substitution in nested generic types."""
|
|
538
|
-
nested_generic =
|
|
536
|
+
nested_generic = list[T | None]
|
|
539
537
|
result = _substitute_typevar_with_concrete(nested_generic, MockDocument)
|
|
540
538
|
|
|
541
539
|
# Should be List[Optional[MockDocument]]
|
|
@@ -621,20 +619,20 @@ class TestPydanticValidationDetection:
|
|
|
621
619
|
|
|
622
620
|
def test_detects_optional_pydantic_types(self) -> None:
|
|
623
621
|
"""Test detection of Optional[PydanticModel] types."""
|
|
624
|
-
assert _needs_pydantic_validation(
|
|
625
|
-
assert _needs_pydantic_validation(
|
|
622
|
+
assert _needs_pydantic_validation(MockAssemblySpecification | None)
|
|
623
|
+
assert _needs_pydantic_validation(MockDocument | None)
|
|
626
624
|
|
|
627
625
|
def test_rejects_non_pydantic_types(self) -> None:
|
|
628
626
|
"""Test that non-Pydantic types are not flagged for validation."""
|
|
629
627
|
assert not _needs_pydantic_validation(str)
|
|
630
628
|
assert not _needs_pydantic_validation(int)
|
|
631
629
|
assert not _needs_pydantic_validation(dict)
|
|
632
|
-
assert not _needs_pydantic_validation(
|
|
630
|
+
assert not _needs_pydantic_validation(str | None)
|
|
633
631
|
|
|
634
632
|
def test_rejects_typevar_types(self) -> None:
|
|
635
633
|
"""Test TypeVar types aren't flagged for validation (the bug)."""
|
|
636
634
|
assert not _needs_pydantic_validation(T)
|
|
637
|
-
assert not _needs_pydantic_validation(
|
|
635
|
+
assert not _needs_pydantic_validation(T | None)
|
|
638
636
|
|
|
639
637
|
def test_handles_none_and_empty(self) -> None:
|
|
640
638
|
"""Test handling of None and Signature.empty."""
|
|
@@ -733,7 +731,7 @@ class TestEndToEndTypeSubstitution:
|
|
|
733
731
|
def test_type_substitution_enables_pydantic_validation(self) -> None:
|
|
734
732
|
"""Test type substitution enables Pydantic validation."""
|
|
735
733
|
# Simulate the problematic method signature: Optional[~T]
|
|
736
|
-
original_annotation =
|
|
734
|
+
original_annotation = T | None
|
|
737
735
|
|
|
738
736
|
# Before fix: TypeVar prevents validation
|
|
739
737
|
assert not _needs_pydantic_validation(original_annotation)
|
|
@@ -760,7 +758,7 @@ class TestEndToEndTypeSubstitution:
|
|
|
760
758
|
assert isinstance(activity_result_dict, dict)
|
|
761
759
|
with pytest.raises(AttributeError):
|
|
762
760
|
# This would fail because dict doesn't have the attribute
|
|
763
|
-
|
|
761
|
+
_ = activity_result_dict.assembly_specification_id
|
|
764
762
|
|
|
765
763
|
# Demonstrate the solution: reconstruct Pydantic object
|
|
766
764
|
reconstructed = MockAssemblySpecification.model_validate(activity_result_dict)
|
|
@@ -6,7 +6,7 @@ their defined Protocols using @runtime_checkable.
|
|
|
6
6
|
"""
|
|
7
7
|
|
|
8
8
|
import logging
|
|
9
|
-
from typing import
|
|
9
|
+
from typing import TypeVar
|
|
10
10
|
|
|
11
11
|
logger = logging.getLogger(__name__)
|
|
12
12
|
|
|
@@ -19,7 +19,7 @@ class RepositoryValidationError(Exception):
|
|
|
19
19
|
pass
|
|
20
20
|
|
|
21
21
|
|
|
22
|
-
def validate_repository_protocol(repository: object, protocol:
|
|
22
|
+
def validate_repository_protocol(repository: object, protocol: type[P]) -> None:
|
|
23
23
|
"""
|
|
24
24
|
Validate that a repository implementation satisfies a protocol contract.
|
|
25
25
|
|
|
@@ -72,7 +72,7 @@ def validate_repository_protocol(repository: object, protocol: Type[P]) -> None:
|
|
|
72
72
|
)
|
|
73
73
|
|
|
74
74
|
|
|
75
|
-
def ensure_repository_protocol(repository: object, protocol:
|
|
75
|
+
def ensure_repository_protocol(repository: object, protocol: type[P]) -> P:
|
|
76
76
|
"""
|
|
77
77
|
Validate and return a repository with proper type annotation.
|
|
78
78
|
|
|
@@ -11,17 +11,16 @@ providing clear error messages when types don't match expectations.
|
|
|
11
11
|
|
|
12
12
|
import inspect
|
|
13
13
|
import logging
|
|
14
|
+
from collections.abc import Callable
|
|
14
15
|
from functools import wraps
|
|
15
16
|
from typing import (
|
|
16
17
|
Any,
|
|
17
|
-
Dict,
|
|
18
|
-
List,
|
|
19
18
|
Union,
|
|
20
|
-
Callable,
|
|
21
|
-
get_type_hints,
|
|
22
|
-
get_origin,
|
|
23
19
|
get_args,
|
|
20
|
+
get_origin,
|
|
21
|
+
get_type_hints,
|
|
24
22
|
)
|
|
23
|
+
|
|
25
24
|
from pydantic import BaseModel
|
|
26
25
|
|
|
27
26
|
logger = logging.getLogger(__name__)
|
|
@@ -54,7 +53,7 @@ def validate_type(
|
|
|
54
53
|
if allow_none:
|
|
55
54
|
return
|
|
56
55
|
raise TypeValidationError(
|
|
57
|
-
f"{context_name}: Expected {_format_type(expected_type)},
|
|
56
|
+
f"{context_name}: Expected {_format_type(expected_type)}, got None"
|
|
58
57
|
)
|
|
59
58
|
|
|
60
59
|
# Get the origin type for generic types (List[X] -> list, Dict -> dict)
|
|
@@ -124,7 +123,7 @@ def _validate_generic_type(
|
|
|
124
123
|
|
|
125
124
|
|
|
126
125
|
def _validate_list_contents(
|
|
127
|
-
value:
|
|
126
|
+
value: list[Any], type_args: tuple, context_name: str
|
|
128
127
|
) -> None:
|
|
129
128
|
"""Validate contents of a list."""
|
|
130
129
|
if not type_args:
|
|
@@ -143,7 +142,7 @@ def _validate_list_contents(
|
|
|
143
142
|
|
|
144
143
|
|
|
145
144
|
def _validate_dict_contents(
|
|
146
|
-
value:
|
|
145
|
+
value: dict[Any, Any], type_args: tuple, context_name: str
|
|
147
146
|
) -> None:
|
|
148
147
|
"""Validate contents of a dictionary."""
|
|
149
148
|
if len(type_args) < 2:
|
|
@@ -241,7 +240,7 @@ def _raise_pydantic_dict_error(
|
|
|
241
240
|
"dict_keys": dict_keys,
|
|
242
241
|
"model_fields": model_fields,
|
|
243
242
|
"matching_fields": matching_fields,
|
|
244
|
-
"dict_sample":
|
|
243
|
+
"dict_sample": dict(list(value.items())[:3]),
|
|
245
244
|
},
|
|
246
245
|
)
|
|
247
246
|
|
|
@@ -263,7 +262,7 @@ def _format_value(value: Any, max_items: int = 5) -> str:
|
|
|
263
262
|
else:
|
|
264
263
|
items = list(value.items())[:max_items]
|
|
265
264
|
return f"{dict(items)}... ({len(value)} total items)"
|
|
266
|
-
elif isinstance(value,
|
|
265
|
+
elif isinstance(value, list | tuple):
|
|
267
266
|
if len(value) <= max_items:
|
|
268
267
|
return str(value)
|
|
269
268
|
else:
|
|
@@ -308,7 +307,9 @@ def validate_parameter_types(
|
|
|
308
307
|
param_names = list(sig.parameters.keys())
|
|
309
308
|
|
|
310
309
|
# Validate positional arguments
|
|
311
|
-
for i, (param_name, arg_value) in enumerate(
|
|
310
|
+
for i, (param_name, arg_value) in enumerate(
|
|
311
|
+
zip(param_names, args, strict=False)
|
|
312
|
+
):
|
|
312
313
|
if param_name in types_to_check and param_name != "self":
|
|
313
314
|
try:
|
|
314
315
|
validate_type(
|
julee/worker.py
CHANGED
|
@@ -8,30 +8,31 @@ assembly, and knowledge service operations within the julee domain.
|
|
|
8
8
|
import asyncio
|
|
9
9
|
import logging
|
|
10
10
|
import os
|
|
11
|
+
|
|
12
|
+
from minio import Minio
|
|
11
13
|
from temporalio.client import Client
|
|
12
14
|
from temporalio.service import RPCError
|
|
13
15
|
from temporalio.worker import Worker
|
|
14
|
-
from julee.util.repos.temporal.data_converter import temporal_data_converter
|
|
15
16
|
|
|
16
|
-
from julee.
|
|
17
|
-
ExtractAssembleWorkflow,
|
|
18
|
-
ValidateDocumentWorkflow,
|
|
19
|
-
)
|
|
17
|
+
from julee.repositories.minio.client import MinioClient
|
|
20
18
|
from julee.repositories.temporal.activities import (
|
|
21
19
|
TemporalMinioAssemblyRepository,
|
|
22
20
|
TemporalMinioAssemblySpecificationRepository,
|
|
21
|
+
TemporalMinioDocumentPolicyValidationRepository,
|
|
23
22
|
TemporalMinioDocumentRepository,
|
|
24
23
|
TemporalMinioKnowledgeServiceConfigRepository,
|
|
25
24
|
TemporalMinioKnowledgeServiceQueryRepository,
|
|
26
25
|
TemporalMinioPolicyRepository,
|
|
27
|
-
TemporalMinioDocumentPolicyValidationRepository,
|
|
28
26
|
)
|
|
29
27
|
from julee.services.temporal.activities import (
|
|
30
28
|
TemporalKnowledgeService,
|
|
31
29
|
)
|
|
32
|
-
from
|
|
33
|
-
from julee.repositories.minio.client import MinioClient
|
|
30
|
+
from julee.util.repos.temporal.data_converter import temporal_data_converter
|
|
34
31
|
from julee.util.temporal.activities import collect_activities_from_instances
|
|
32
|
+
from julee.workflows import (
|
|
33
|
+
ExtractAssembleWorkflow,
|
|
34
|
+
ValidateDocumentWorkflow,
|
|
35
|
+
)
|
|
35
36
|
|
|
36
37
|
logger = logging.getLogger(__name__)
|
|
37
38
|
|
julee/workflows/__init__.py
CHANGED
|
@@ -10,12 +10,12 @@ Workflows in this package:
|
|
|
10
10
|
"""
|
|
11
11
|
|
|
12
12
|
from .extract_assemble import (
|
|
13
|
-
ExtractAssembleWorkflow,
|
|
14
13
|
EXTRACT_ASSEMBLE_RETRY_POLICY,
|
|
14
|
+
ExtractAssembleWorkflow,
|
|
15
15
|
)
|
|
16
16
|
from .validate_document import (
|
|
17
|
-
ValidateDocumentWorkflow,
|
|
18
17
|
VALIDATE_DOCUMENT_RETRY_POLICY,
|
|
18
|
+
ValidateDocumentWorkflow,
|
|
19
19
|
)
|
|
20
20
|
|
|
21
21
|
__all__ = [
|
|
@@ -7,9 +7,10 @@ compensation for the complex document assembly process.
|
|
|
7
7
|
"""
|
|
8
8
|
|
|
9
9
|
import logging
|
|
10
|
+
from datetime import timedelta
|
|
11
|
+
|
|
10
12
|
from temporalio import workflow
|
|
11
13
|
from temporalio.common import RetryPolicy
|
|
12
|
-
from datetime import timedelta
|
|
13
14
|
|
|
14
15
|
from julee.domain.models.assembly import Assembly
|
|
15
16
|
from julee.domain.use_cases import ExtractAssembleDataUseCase
|
|
@@ -7,9 +7,10 @@ compensation for the document validation process.
|
|
|
7
7
|
"""
|
|
8
8
|
|
|
9
9
|
import logging
|
|
10
|
+
from datetime import timedelta
|
|
11
|
+
|
|
10
12
|
from temporalio import workflow
|
|
11
13
|
from temporalio.common import RetryPolicy
|
|
12
|
-
from datetime import timedelta
|
|
13
14
|
|
|
14
15
|
from julee.domain.models.policy import DocumentPolicyValidation
|
|
15
16
|
from julee.domain.use_cases import ValidateDocumentUseCase
|
|
@@ -110,8 +111,8 @@ class ValidateDocumentWorkflow:
|
|
|
110
111
|
# Import policy repository proxy (assuming it exists)
|
|
111
112
|
try:
|
|
112
113
|
from julee.repositories.temporal.proxies import (
|
|
113
|
-
WorkflowPolicyRepositoryProxy,
|
|
114
114
|
WorkflowDocumentPolicyValidationRepositoryProxy,
|
|
115
|
+
WorkflowPolicyRepositoryProxy,
|
|
115
116
|
)
|
|
116
117
|
|
|
117
118
|
policy_repo = WorkflowPolicyRepositoryProxy() # type: ignore[abstract]
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: julee
|
|
3
|
-
Version: 0.1.
|
|
3
|
+
Version: 0.1.4
|
|
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
|
|
@@ -13,11 +13,10 @@ Classifier: Development Status :: 3 - Alpha
|
|
|
13
13
|
Classifier: Intended Audience :: Developers
|
|
14
14
|
Classifier: License :: OSI Approved :: GNU General Public License v3 (GPLv3)
|
|
15
15
|
Classifier: Programming Language :: Python :: 3
|
|
16
|
-
Classifier: Programming Language :: Python :: 3.10
|
|
17
16
|
Classifier: Programming Language :: Python :: 3.11
|
|
18
17
|
Classifier: Programming Language :: Python :: 3.12
|
|
19
18
|
Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
|
20
|
-
Requires-Python: >=3.
|
|
19
|
+
Requires-Python: >=3.11
|
|
21
20
|
Description-Content-Type: text/markdown
|
|
22
21
|
License-File: LICENSE
|
|
23
22
|
Requires-Dist: fastapi>=0.100.0
|
|
@@ -50,6 +49,7 @@ Requires-Dist: black>=24.0.0; extra == "dev"
|
|
|
50
49
|
Requires-Dist: ruff>=0.5.0; extra == "dev"
|
|
51
50
|
Requires-Dist: pre-commit>=3.0.0; extra == "dev"
|
|
52
51
|
Requires-Dist: bandit; extra == "dev"
|
|
52
|
+
Requires-Dist: pip-tools>=7.0.0; extra == "dev"
|
|
53
53
|
Requires-Dist: asyncpg; extra == "dev"
|
|
54
54
|
Provides-Extra: docs
|
|
55
55
|
Requires-Dist: sphinx>=7.0.0; extra == "docs"
|
|
@@ -0,0 +1,196 @@
|
|
|
1
|
+
julee/__init__.py,sha256=8XYQJwEwJdGsPw23i7Zi_8hYCqNqRVrcPTlM0tkTO4g,111
|
|
2
|
+
julee/worker.py,sha256=26k7LkpLft8emjVsSRCK7VmbtTEaBxjokX_5CC52LDM,7231
|
|
3
|
+
julee/api/__init__.py,sha256=bJECAJifuV-pochMVeDqKhQ63jvXel3W4Y0_NK9gn8s,801
|
|
4
|
+
julee/api/app.py,sha256=I4a7fi9rE_0r92jmMusOxlcMalFnTy8qb4yyxKYg6-Q,4955
|
|
5
|
+
julee/api/dependencies.py,sha256=Jcy3nFOiFr9x7_TCd7zpepMLqwIg1LOw7q9taKA0sJk,9313
|
|
6
|
+
julee/api/requests.py,sha256=AluS7tNesJxDV2ux9OWOFaRVsoQhiBhE3g3SkhlhHXc,6448
|
|
7
|
+
julee/api/responses.py,sha256=hKT5wO7O5BbCjEwetbEqtPtWGwA93YIW7efMzxbByzY,1011
|
|
8
|
+
julee/api/routers/__init__.py,sha256=USabSC2VydrRZ9xlpIw7YjuiOQ83tfqT7cALJmVvv_g,1502
|
|
9
|
+
julee/api/routers/assembly_specifications.py,sha256=YxSuPvR19Emenyn617uXN7Cb0kinw84Ng9ef4u3g5M8,7075
|
|
10
|
+
julee/api/routers/documents.py,sha256=GhhFO44o7uxvKc78aEj1193P9838miaHPN5ctWxnJZU,5454
|
|
11
|
+
julee/api/routers/knowledge_service_configs.py,sha256=zCgSatx0HzuzqYkoNPXoGcKTi9XTFAFP5tQpo87yX6k,2586
|
|
12
|
+
julee/api/routers/knowledge_service_queries.py,sha256=NThwys0HEfCWw7oIcA0okp814Pnt0jWsdW-UVqyfZp0,9501
|
|
13
|
+
julee/api/routers/system.py,sha256=VGLh2LwnBqlhYZ6HXQQCKllk89qjwhbdlmIVj2mQz5I,4516
|
|
14
|
+
julee/api/routers/workflows.py,sha256=k7Qcw28sJRcJUAbM9pj3Y81h6gBHvYHW6mSxihQFq8k,7050
|
|
15
|
+
julee/api/services/__init__.py,sha256=YSzraaC6qD7pkEUXqbhlJH3dhwvGusywztnYnIOqJbM,660
|
|
16
|
+
julee/api/services/system_initialization.py,sha256=V3CGizs4Vvi6jGzW2fPuftkEHaw80y14Z_Ync5U3w40,6915
|
|
17
|
+
julee/api/tests/__init__.py,sha256=SAJjurDfB0ac0AUIzRvBsGEupR6BOp2dqNdfNeyXoTQ,411
|
|
18
|
+
julee/api/tests/test_app.py,sha256=PiQGKOzSr3x-8Q9t5NaPLcpTxZVmpwB2JFE5ZOIQx9U,9874
|
|
19
|
+
julee/api/tests/test_dependencies.py,sha256=BpMGWilh9wbWW4aYuu_Agw7LL7YjfLVGqnIofWS_zEs,9245
|
|
20
|
+
julee/api/tests/test_requests.py,sha256=JxiSL38VDoo-6pdoWy9iJrXWbTJa18enoN5jI79COcE,9877
|
|
21
|
+
julee/api/tests/routers/__init__.py,sha256=IawydYDi3sIBEPE6vyX8r_UBxUKc6NDh_UFL2kqdbqM,634
|
|
22
|
+
julee/api/tests/routers/test_assembly_specifications.py,sha256=3puq2f4l1OwLxEBbzstNaJ6e-t3iKABsrIlI29i0okQ,27462
|
|
23
|
+
julee/api/tests/routers/test_documents.py,sha256=6LlFvwRUJOqkPv1f7laRVzMz7k5VmH5J7xi-tqE9bw8,10720
|
|
24
|
+
julee/api/tests/routers/test_knowledge_service_configs.py,sha256=EO2Ngfrd0oQvUKVrbxQ7T5lvfG5eBXcfQ9NDvsJks3g,7848
|
|
25
|
+
julee/api/tests/routers/test_knowledge_service_queries.py,sha256=m-uqPQQQxX0cEx3NVNt-xdgjjSXhinAGZnJVZQIrFK0,26191
|
|
26
|
+
julee/api/tests/routers/test_system.py,sha256=xoOdf0Lt8PO212x4GpM8B5gAyTFbjdjcg5q8sHbC1cA,6287
|
|
27
|
+
julee/api/tests/routers/test_workflows.py,sha256=jcmSOXTJvZacNjWe3jwm_IxqKP3G-pXxmp3ErLsgsR8,13648
|
|
28
|
+
julee/contrib/__init__.py,sha256=RFlW03DFJQxINJCCif7s67LPOKW4rI4BuYWTUbakkGc,503
|
|
29
|
+
julee/contrib/polling/__init__.py,sha256=aNY3esupKvyc7sLtU_lrpZHozwco9gyzozgorepgNqA,1458
|
|
30
|
+
julee/contrib/polling/domain/__init__.py,sha256=Br8M36GJ3UJl3zwk9AwEcx8kkMSb-CVsn7ANH2unrBw,446
|
|
31
|
+
julee/contrib/polling/domain/models/__init__.py,sha256=UEL0aGwCg1Y2D5KyJ5VvVK4-lLaZeVevBLfMapfP-No,263
|
|
32
|
+
julee/contrib/polling/domain/models/polling_config.py,sha256=3YkormKPgzDXvAXBv0VBnjoDi7zaZ-PuRML33lkQpxo,1086
|
|
33
|
+
julee/contrib/polling/domain/services/__init__.py,sha256=k5lhY6roLD68n_O8K4PP3aXH1UkXy8RapKErhhZH9_M,180
|
|
34
|
+
julee/contrib/polling/domain/services/poller.py,sha256=7rTq9fawrdfdAMayrYmVwSfkHWbSbbqSs2Z8zPVjopE,1218
|
|
35
|
+
julee/contrib/polling/infrastructure/__init__.py,sha256=xM3TBrkxAijtXCLl5_EFrRRUDVQFjD41PohT7lWXCuc,413
|
|
36
|
+
julee/contrib/polling/infrastructure/services/__init__.py,sha256=QgoNNS9XPl_tCO-52m_ct37NBzT85_jjWdA-8QbuDJs,246
|
|
37
|
+
julee/contrib/polling/infrastructure/services/polling/__init__.py,sha256=kbUXRCuAFZN-7Xo44MQEdSC9AYKNfvru-cWgwYrS6rA,229
|
|
38
|
+
julee/contrib/polling/infrastructure/services/polling/http/__init__.py,sha256=mSMy6_2eKnrh2tetiVrf9iQEhxbGs_csQlUy82I1s6c,219
|
|
39
|
+
julee/contrib/polling/infrastructure/services/polling/http/http_poller_service.py,sha256=yK7porLBkEXaW6yBcO6-KBEfpjzCsv-i0iCjCSIooQo,2671
|
|
40
|
+
julee/contrib/polling/infrastructure/temporal/__init__.py,sha256=zsBmr9JY2Kb4vIf97NwIvqnuKzWsXgO9EHa47yrkpjw,662
|
|
41
|
+
julee/contrib/polling/infrastructure/temporal/activities.py,sha256=i1jVpMm6a8j60Ug0gKQ3F5QPW0qcrD0vtzdqickym5c,1456
|
|
42
|
+
julee/contrib/polling/infrastructure/temporal/activity_names.py,sha256=zdTu8-b7ucrJH5bIbFGv-nvXf2ZOvWs0YaBsUWC8FWM,668
|
|
43
|
+
julee/contrib/polling/infrastructure/temporal/proxies.py,sha256=mFpHjxtJ-eqm5tYUoA1Te8Fb2lfTwXz-tpHubNLIE0Y,1502
|
|
44
|
+
julee/contrib/polling/tests/__init__.py,sha256=0GSU_Gc9HtB0h6w5_c1qUdMWqCp2FVx-BV-IOR9_uo0,175
|
|
45
|
+
julee/contrib/polling/tests/unit/__init__.py,sha256=8QbeJjQZj0nIKd3F1eTXCR9utxZtiYQzkTyk4yGhCvM,160
|
|
46
|
+
julee/contrib/polling/tests/unit/infrastructure/__init__.py,sha256=BEFimVM4poUCs2AKZOggF4L07T96L85UnfIkt8qxFys,238
|
|
47
|
+
julee/contrib/polling/tests/unit/infrastructure/services/__init__.py,sha256=WCf2KzGeMChltre8YYf8IUtElgP4NmdugNOmKxno0Lw,190
|
|
48
|
+
julee/contrib/polling/tests/unit/infrastructure/services/polling/__init__.py,sha256=ygTzYEe2Zok4pwmGOd2G_Gf5sE5kaC6xHiFmZADiYvs,228
|
|
49
|
+
julee/contrib/polling/tests/unit/infrastructure/services/polling/http/__init__.py,sha256=OVMmGLJ7KEmvKeoDakizgFXSi-Z4QvHFh4B0CINbGSM,283
|
|
50
|
+
julee/contrib/polling/tests/unit/infrastructure/services/polling/http/test_http_poller_service.py,sha256=4B-CTyeHVYRAv-TmG9igSk_ifQeZNYNDeF8uPRz-bHk,6212
|
|
51
|
+
julee/docs/__init__.py,sha256=wknBFq8RF9S1M-oU-S1sw3UWQsmZSjq5Oj7HCCh1AHg,169
|
|
52
|
+
julee/docs/sphinx_hcd/__init__.py,sha256=mpEbmaDGoT74LGDS9wCEakov2mzagpFvWGp6TDDJegA,2378
|
|
53
|
+
julee/docs/sphinx_hcd/accelerators.py,sha256=fNrP9ztTbNjAe0sib23RnkkEuxk3cBkb8lfMojtqz0M,38759
|
|
54
|
+
julee/docs/sphinx_hcd/apps.py,sha256=lNHVJrF-OQ4c6VTv4MZn2b3ewcmSW3IvvgZyUD1HDwk,15974
|
|
55
|
+
julee/docs/sphinx_hcd/config.py,sha256=ilxLjnrG7oLgbSSUL90biFj7xxohgij4hlEfYSjIX0A,4159
|
|
56
|
+
julee/docs/sphinx_hcd/epics.py,sha256=anZXSrvWTzD6SU1fzBioMxZccIjym0TDmppN_eOVCN8,13894
|
|
57
|
+
julee/docs/sphinx_hcd/integrations.py,sha256=3baWEph9uYMipeWrPywmeRMko8LdkQx-LFQvkVcoJ08,9796
|
|
58
|
+
julee/docs/sphinx_hcd/journeys.py,sha256=abmd9kplnsy3gB209Iq_tFOseABkPJU4MGYEAHCSjhY,26582
|
|
59
|
+
julee/docs/sphinx_hcd/personas.py,sha256=V4l6-31KgkDe-TEY0iDEe_TBI3VlFQJyZgAc6m8GKNQ,13662
|
|
60
|
+
julee/docs/sphinx_hcd/stories.py,sha256=cFiNGDlpOE6wNEjZowzlmaGc_bK6xJjzYed9aIQFZLY,32233
|
|
61
|
+
julee/docs/sphinx_hcd/utils.py,sha256=lkmyQShHWLoU6nwxs4PS5pxn_jjsRWVeAexizR46PhA,4488
|
|
62
|
+
julee/domain/__init__.py,sha256=UWEUgtMguDCCsRbTQtsdkaR8-PBei9YI9tn46FtDLe8,774
|
|
63
|
+
julee/domain/models/__init__.py,sha256=HQYop2b0QjroxFHskoX4lcuMVIFRj8jteUI-P9TTze4,1230
|
|
64
|
+
julee/domain/models/assembly/__init__.py,sha256=3bivk26_gmKFUhoUMHumsFHRrXyhgv0ClTxyBPWr9B0,494
|
|
65
|
+
julee/domain/models/assembly/assembly.py,sha256=w7NMRKpu0e6NpWvecIZvvnBsnK9484WtMubEp9gsyd8,3593
|
|
66
|
+
julee/domain/models/assembly/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
67
|
+
julee/domain/models/assembly/tests/factories.py,sha256=8piauYltuzpNkX5I2g5PJ9bxXoFzvlZ9dv5FSteIcMg,1021
|
|
68
|
+
julee/domain/models/assembly/tests/test_assembly.py,sha256=QxtAJBxM0ZvpAFFkHAK8erAc_oCptfSYW-2DncSAfRw,16429
|
|
69
|
+
julee/domain/models/assembly_specification/__init__.py,sha256=8oHXxCUAwplrL1lTKNyLQg7QxFapmPgroU0W6TMWTNA,804
|
|
70
|
+
julee/domain/models/assembly_specification/assembly_specification.py,sha256=bolyMo8eubj--W5k9yC_CZLU-99eXPTkSPtwjHcJmho,6783
|
|
71
|
+
julee/domain/models/assembly_specification/knowledge_service_query.py,sha256=daVcEsOWN45Z0rjMAkTAiU8M8yiqrHUvCW1wchxsN-4,4282
|
|
72
|
+
julee/domain/models/assembly_specification/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
73
|
+
julee/domain/models/assembly_specification/tests/factories.py,sha256=CfVY65UW9PtC3isPervUH5pvtzquiHhxClyCG1LqAro,2370
|
|
74
|
+
julee/domain/models/assembly_specification/tests/test_assembly_specification.py,sha256=R-73DHZv_ItRIBgruaOgl9sAek22s8a8T5BT7tRrI3M,18189
|
|
75
|
+
julee/domain/models/assembly_specification/tests/test_knowledge_service_query.py,sha256=wg34sF3TDcocRS737tTzNTsFAfVjFvfObmYproXLlD8,10411
|
|
76
|
+
julee/domain/models/custom_fields/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
77
|
+
julee/domain/models/custom_fields/content_stream.py,sha256=DRpGjMSUuUwOzbJW-_pVy43IgvqQYn_Qi0612QJjlpY,2348
|
|
78
|
+
julee/domain/models/custom_fields/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
79
|
+
julee/domain/models/custom_fields/tests/test_custom_fields.py,sha256=1x-MH3FFgC5Ltw7tTqvvWpb1ZnsoRb7BtJ-p6EcdZuQ,1936
|
|
80
|
+
julee/domain/models/document/__init__.py,sha256=DJr8HKqB47AiJ5YIrTf3E-mpFYiKLLOZPEN8qcAJPWI,469
|
|
81
|
+
julee/domain/models/document/document.py,sha256=DgQNP_7alH3qHIhOS77Cx_JvTxZwTLtVuMrU4N5ztAU,5079
|
|
82
|
+
julee/domain/models/document/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
83
|
+
julee/domain/models/document/tests/factories.py,sha256=4sgVAOXInPO-RnT4ChO4zWWB0cAF9JFwYA50j692Ir0,2457
|
|
84
|
+
julee/domain/models/document/tests/test_document.py,sha256=hIufVemhkA-s403xQsJsyB6mTkcq6a8M0za1pLQ_ItY,9093
|
|
85
|
+
julee/domain/models/knowledge_service_config/__init__.py,sha256=5qYB-nGcVp6CIP7V85hzsQqvBg3HAq5H_p9hPQ5YqGM,431
|
|
86
|
+
julee/domain/models/knowledge_service_config/knowledge_service_config.py,sha256=WAoFtVv60leuWu0pyZrjy46tFD89lCcEHRMshSLnuBU,2945
|
|
87
|
+
julee/domain/models/policy/__init__.py,sha256=jsmjUb1QHD8T5X1Ri_wJkAQTaRig4B997yb6_ll2uC0,283
|
|
88
|
+
julee/domain/models/policy/document_policy_validation.py,sha256=uc9Y3yvz8wof6titUZfN-M4FD297VPhdX2fscp5DNx8,7978
|
|
89
|
+
julee/domain/models/policy/policy.py,sha256=hqSJg3CzKnfcKkVRHfbEJUEvnnGqNNytAVozOXN4teA,7036
|
|
90
|
+
julee/domain/models/policy/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
91
|
+
julee/domain/models/policy/tests/factories.py,sha256=b8stP-3ovjgckGzaKTpGY2XrfvzgoKq97ru8aCB02so,1300
|
|
92
|
+
julee/domain/models/policy/tests/test_document_policy_validation.py,sha256=TzVdOg_Y1hTaWoptQ9b9D0bOaj29-jPf_JKjft6YMn0,15888
|
|
93
|
+
julee/domain/models/policy/tests/test_policy.py,sha256=g7z9vvmkT0aJPHF2x8lHfjJgBOj6TcH1pejZWjwXvhk,20398
|
|
94
|
+
julee/domain/repositories/__init__.py,sha256=mRJ6MuktqbV93tLrtpBBoP1uPwXe8krqBQjxAgsU0B8,949
|
|
95
|
+
julee/domain/repositories/assembly.py,sha256=4LWo3LcyheuNkZ4U8oV6NAXEcFHxkE46Oa2a97YMMiE,1686
|
|
96
|
+
julee/domain/repositories/assembly_specification.py,sha256=XLxH1lPgr6LJiSyVdB3eZU7Kdr1UVwSvsoXroBMdxKI,2070
|
|
97
|
+
julee/domain/repositories/base.py,sha256=NvhMzDGbmXqBWMoBojMNYk0tGnzi_ik6FTKH8cNNlD4,5348
|
|
98
|
+
julee/domain/repositories/document.py,sha256=ulTbzIehhGD3dtnO6gLA_W93cFp8CdcieHT6kbJaMyE,1877
|
|
99
|
+
julee/domain/repositories/document_policy_validation.py,sha256=_E6emTr5DXF0NVHWLyuhBji-yvxsAo3_iNohH2ynsK8,2110
|
|
100
|
+
julee/domain/repositories/knowledge_service_config.py,sha256=oVXuFfRkfdbR-xa6WP_fAHTbSau_Jwvq4RfA85x5vac,1994
|
|
101
|
+
julee/domain/repositories/knowledge_service_query.py,sha256=9qrWMLT9Xxms9Q7fMjBbkZkmVELFn5ME6kwO6AvgPzI,1506
|
|
102
|
+
julee/domain/repositories/policy.py,sha256=-1Miwk_wmblr9QqVb4aZ_ajk9YIwPUXhxfhGG5CTuFQ,1874
|
|
103
|
+
julee/domain/use_cases/__init__.py,sha256=rKJyunXCHorEyxPfKDEYD27kese53e5spCfFTbDxpOc,534
|
|
104
|
+
julee/domain/use_cases/decorators.py,sha256=mMlR5ws94frAZEUEjj545cZpwnTimZI6JVpMlGu3EpA,3497
|
|
105
|
+
julee/domain/use_cases/extract_assemble_data.py,sha256=D7w63bR-3WXpwDaj2SH_L4ZO-pp4lHWV-K0--xLa7Qs,24946
|
|
106
|
+
julee/domain/use_cases/initialize_system_data.py,sha256=CIYasO96HQMKXh098Gw3r2rerPKsVXRRVLsxnSJnVfo,31330
|
|
107
|
+
julee/domain/use_cases/validate_document.py,sha256=noLzQp4hSJVAr-hL668ywxe4m7aNv2yuBMZzPgJPpIs,28219
|
|
108
|
+
julee/domain/use_cases/tests/__init__.py,sha256=xKgoU78i5zK5mlZ2NNfp8nhbnb9fIcNwCTcQD0j9gEw,199
|
|
109
|
+
julee/domain/use_cases/tests/test_extract_assemble_data.py,sha256=uNcKtzy-u7nwr68wOdDmXLdfw_2p4SA0Lm3czec9mAI,21596
|
|
110
|
+
julee/domain/use_cases/tests/test_initialize_system_data.py,sha256=6JwxQDNwknyPqtmSugKn2Eq1CA1Y8rFEb44yrN1_SCA,17918
|
|
111
|
+
julee/domain/use_cases/tests/test_validate_document.py,sha256=_VcGZK98oDzxN0iLP81hIVdjCPbgmjIJwFeBn5MuWZk,50922
|
|
112
|
+
julee/fixtures/documents.yaml,sha256=QMPbdMtjvsf08iFuNa4U2Kx7nTIGVpeRMlp-eeW9dY0,4918
|
|
113
|
+
julee/fixtures/knowledge_service_configs.yaml,sha256=SfJO1SJFzYtF2Y7XTZmhl3d9Eiv2-xMrHKW1kI7NhI0,1378
|
|
114
|
+
julee/fixtures/knowledge_service_queries.yaml,sha256=uYKD24jMIBhHjGaItyDVqtRlHLVeIRCw8XfhNjiMENk,2447
|
|
115
|
+
julee/maintenance/__init__.py,sha256=tThzvZBQ4bTSiXVfLVuHI2uLQOhZRMfND1ndj26BNu0,65
|
|
116
|
+
julee/maintenance/release.py,sha256=595Cs7CKSV7jsBVWHE3lZNclDievh8BVw5SP5JbrkAk,7697
|
|
117
|
+
julee/repositories/__init__.py,sha256=mJpDFYP5f4LBhavYSnC3SnTcWnozMCz7aXje4iB5pyU,571
|
|
118
|
+
julee/repositories/memory/__init__.py,sha256=w0ibQfMm3HYdFhLXXMPa_aRtbRiG60j2bqmEGdjmOtg,1225
|
|
119
|
+
julee/repositories/memory/assembly.py,sha256=1XuLtNiVKVg8jqwHxzQPJS-YmLGR0PtTiD_XhoPSUSo,2807
|
|
120
|
+
julee/repositories/memory/assembly_specification.py,sha256=pPv3nJuAdqkS3wMs220vp_4uu0OMH3EOuMwWQnk-ZNg,4234
|
|
121
|
+
julee/repositories/memory/base.py,sha256=9FSV9cIgFBfhPqZcUhprDo5QyE9YK-a1m2bnwKX04wQ,7722
|
|
122
|
+
julee/repositories/memory/document.py,sha256=-lcB37q4KIMVL9NxRBq4wq7tuyY7-h4_BI_N62fDSrA,5481
|
|
123
|
+
julee/repositories/memory/document_policy_validation.py,sha256=vjSAT6tk-V4IbWTKZjUTgTQ15YlR1MAZjbYnGprn8Wo,3715
|
|
124
|
+
julee/repositories/memory/knowledge_service_config.py,sha256=sG7bHAO2O131k7GD-8RwGrQ3VNyyEZulVIVBps57aAM,4215
|
|
125
|
+
julee/repositories/memory/knowledge_service_query.py,sha256=0rav6H4caKw-CGM4gsjcwsFba2vjLGJbg7WYg9eB7-Y,3939
|
|
126
|
+
julee/repositories/memory/policy.py,sha256=UjLCqm4V2hiF5kF2H_5IonNb4jXAQcdJ57jouMWjYns,2874
|
|
127
|
+
julee/repositories/memory/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
128
|
+
julee/repositories/memory/tests/test_document.py,sha256=Ah0pnC1CuDvjDPilM_rR1dzyCwLGjGZIioUAQJqU__o,7793
|
|
129
|
+
julee/repositories/memory/tests/test_document_policy_validation.py,sha256=NDQ0DSUA5tDM33ulmZM9fU93GMbYmj6l_9m6G_YrOwg,6210
|
|
130
|
+
julee/repositories/memory/tests/test_policy.py,sha256=EVi1Zl1mUrkGezjRQGCHQDPK4Loqapg94kAKno72yi8,15840
|
|
131
|
+
julee/repositories/minio/__init__.py,sha256=KiDxZUJ2Cvq9sD8TM2_SO50uDSsRq7g4cKTbDmYHHxI,1211
|
|
132
|
+
julee/repositories/minio/assembly.py,sha256=X3KPgzCEH8Z9kaQN2ANYughPPyF8InBV8-fSM7LSA2s,3724
|
|
133
|
+
julee/repositories/minio/assembly_specification.py,sha256=dnnxxyXteaPjWxsndoo6UIXqjiYmOKI5thMzhQP5ZWo,6393
|
|
134
|
+
julee/repositories/minio/client.py,sha256=p4NnTCL4FaQwPTrAUUyQztQVfQ2WcLubAGjQPn9Efdc,18365
|
|
135
|
+
julee/repositories/minio/document.py,sha256=A79MT1cKoO7N9Wt3y52JuxgWlNqpNA3jPc9dqiCG60Y,20022
|
|
136
|
+
julee/repositories/minio/document_policy_validation.py,sha256=960wS15N7P1PyrBGi1QGAzcjfO01PTO-koXrrZeAoHs,4860
|
|
137
|
+
julee/repositories/minio/knowledge_service_config.py,sha256=IaZlwTXuq4F6efUckUDjKX1gSm6tzBJVQW4COQjnRFA,6714
|
|
138
|
+
julee/repositories/minio/knowledge_service_query.py,sha256=nSH-UBt_42OgWokEKwpIhLmtBf17ShFA2jf8uUaWK8A,6955
|
|
139
|
+
julee/repositories/minio/policy.py,sha256=HGUcxlKkIAwOOnoFUMnpW0qMx_F3vCTvYrdWQ_I6M7M,3870
|
|
140
|
+
julee/repositories/minio/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
141
|
+
julee/repositories/minio/tests/fake_client.py,sha256=qyV6ApmVm54e3hPZganteE5n2wavOnnleE8Bs_uELJo,7377
|
|
142
|
+
julee/repositories/minio/tests/test_assembly.py,sha256=Sj5qgDgBRZ9gWQZGTC9H81c1LuP7Klq9yi5Wrvs9WvI,13793
|
|
143
|
+
julee/repositories/minio/tests/test_assembly_specification.py,sha256=wCsd6Mbxwsiju1Pn-OQGBpCAEr-4l2wwW9niVOciUms,15240
|
|
144
|
+
julee/repositories/minio/tests/test_client_protocol.py,sha256=mLESv_xrEM2A2eRm2GLfrqeMHdrDdMAdgI-pRRF-svk,2310
|
|
145
|
+
julee/repositories/minio/tests/test_document.py,sha256=z806S9Fjyc5lSJQYy7JL0zfcaensqVIh50eYGfdO2OI,22177
|
|
146
|
+
julee/repositories/minio/tests/test_document_policy_validation.py,sha256=klBc_5dq421I5tN2hIwOgLsfFQ4YnsjDgPb8Ywh74cI,7542
|
|
147
|
+
julee/repositories/minio/tests/test_knowledge_service_config.py,sha256=SeDPWr0Gmxtu-ytRHTUHfxC38Aii64GvteBDunJziBg,14823
|
|
148
|
+
julee/repositories/minio/tests/test_knowledge_service_query.py,sha256=tqlS9w9MShaL83PyfQo8xjFL2Kxli6uJqLIE36qdxa8,15331
|
|
149
|
+
julee/repositories/minio/tests/test_policy.py,sha256=n5flJxj75Yc-dkfmVQBkMDVGCagMB3BzhYtJhcQQWhY,20479
|
|
150
|
+
julee/repositories/temporal/__init__.py,sha256=DPXfhTFFrixbi5GIKs_-emWu1SbD3oqjGlfSXche3rQ,1416
|
|
151
|
+
julee/repositories/temporal/activities.py,sha256=xDd6SRR_TNxLHb5TYnfAwsWlWgYrtD0vDvV8HqX1Ebo,3716
|
|
152
|
+
julee/repositories/temporal/activity_names.py,sha256=qg0ZJvnMPaTHHnu9fHxzsDTjUb5viNATbMTL3Xg0A_c,1464
|
|
153
|
+
julee/repositories/temporal/proxies.py,sha256=eKNEOD_HuNeDxA62eJpR_Zf2KpZ-xnL91UKsV7_aXVc,4783
|
|
154
|
+
julee/services/__init__.py,sha256=LNoQvHMWQi1YMQW0xWw9KeTHOVMsYdhLj-nvu4HClFU,560
|
|
155
|
+
julee/services/knowledge_service/__init__.py,sha256=xsrMieT-IezlINBEAkM9KAMy5ZDODQqDtbqpK8DMhXM,1148
|
|
156
|
+
julee/services/knowledge_service/factory.py,sha256=gLRkbrmALuL7rqsuaqWJqHm6TllgsbYCe0RrvDIBfYE,4605
|
|
157
|
+
julee/services/knowledge_service/knowledge_service.py,sha256=-CT_bAPi6oZm_TB7hVh5E6Q2EWAC9kFWvLfWGhR8h2M,6384
|
|
158
|
+
julee/services/knowledge_service/test_factory.py,sha256=8HM3_touOYGohuBwJkhuF8wv5_R4U1RZTVebU13KLP0,3925
|
|
159
|
+
julee/services/knowledge_service/anthropic/__init__.py,sha256=eO_85w4dd9hgzcnsqMoE0bvcjBtTuIhyQ0vqdPHdoQ4,297
|
|
160
|
+
julee/services/knowledge_service/anthropic/knowledge_service.py,sha256=WtpQl9QTvNo6mAS7A-L18FHddJ7eF8BVYMIopEZdnVQ,11918
|
|
161
|
+
julee/services/knowledge_service/anthropic/tests/test_knowledge_service.py,sha256=ijsjh2CQhO74lt0wmfU-qvqJYmN9ZPvzxJ0qm4rCZYc,12910
|
|
162
|
+
julee/services/knowledge_service/memory/__init__.py,sha256=QgAw_Bt3ctn2S2c2OeTwOSADqEx-UIsG1dnoyITifW0,364
|
|
163
|
+
julee/services/knowledge_service/memory/knowledge_service.py,sha256=HATVCtJATkYAcZ_t13fSVrGtxeJZUZjlN1C4iMVPjEY,9954
|
|
164
|
+
julee/services/knowledge_service/memory/test_knowledge_service.py,sha256=AxZc9gzFOcHliZI8ZYDOticz88bxXp2kQHQhRq3yAUc,12973
|
|
165
|
+
julee/services/temporal/__init__.py,sha256=xPfg55wTler89fH4NbAt7uawGOJlz8vQiKJzi7ONAHM,1376
|
|
166
|
+
julee/services/temporal/activities.py,sha256=UhXDt50tJbaKQ6n1BpQWs3lUBY9UuTdhS0hiov2k5-w,3319
|
|
167
|
+
julee/services/temporal/activity_names.py,sha256=OG0XqCLt40m8h7nglV-k6K5Oyk9bUexND9M1OJ2zfoo,817
|
|
168
|
+
julee/services/temporal/proxies.py,sha256=GSs8v-R5jPkcRh7VUqQhNNadTiDX3K6gz7mP2ISfXz0,1266
|
|
169
|
+
julee/util/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
170
|
+
julee/util/domain.py,sha256=aoQgM6ldnbhnUaxzV0vxOMMiVpsyO9u0eEiLz8wl9Eo,3251
|
|
171
|
+
julee/util/repositories.py,sha256=7WkQDojI4-dnu5ZyFMns8nlXMl_zpHwECA9uJtbx6u0,1826
|
|
172
|
+
julee/util/repos/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
173
|
+
julee/util/repos/minio/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
174
|
+
julee/util/repos/minio/file_storage.py,sha256=JqS7M0VII_4gFTAQSLZvHXBVt8ulTm7EmZsNBFyau0E,7552
|
|
175
|
+
julee/util/repos/temporal/__init__.py,sha256=Dj73jgf2f0ugOr01wUdketzBgNsSu4GpLAaSbkjUYnQ,357
|
|
176
|
+
julee/util/repos/temporal/data_converter.py,sha256=PSPRSjBMqLTfWppy2-3uM9eKFDgdXXdbDowkW7gggSA,4493
|
|
177
|
+
julee/util/repos/temporal/minio_file_storage.py,sha256=fORyslZvZ3Eeh9LSlN994kJog4iJPeWTo0AjAN_6pVI,427
|
|
178
|
+
julee/util/repos/temporal/client_proxies/file_storage.py,sha256=rCJaZ-adLBYqkBM7yxBrc3dQtJSf23jQJ_KkljlYTE8,2343
|
|
179
|
+
julee/util/repos/temporal/proxies/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
180
|
+
julee/util/repos/temporal/proxies/file_storage.py,sha256=djmIlKn2yrRHvk5j9SRv7GuwPuVHh9gXFt-_m7uxLis,2458
|
|
181
|
+
julee/util/temporal/__init__.py,sha256=86xXEL8K5NAhT4s2H1uov8jV68NLkJiCZl2GDJaLnPg,491
|
|
182
|
+
julee/util/temporal/activities.py,sha256=j-xV12x-5KJQWT1I8_KhIWtPVYysLJo9A2Xwx4e31bc,4383
|
|
183
|
+
julee/util/temporal/decorators.py,sha256=MJzQcp7jD6jAzcwE-o3uKpIZy5r0H5I6hn72fBtHbic,17984
|
|
184
|
+
julee/util/tests/__init__.py,sha256=guP9qBQwD15l3fIX1kYS8v67pKHAHOCCqib9Us_eJ1Y,61
|
|
185
|
+
julee/util/tests/test_decorators.py,sha256=7U8f2UioCsXibtMZngVmw9SEIjEFdZGjPTOLJe3ksZ4,27425
|
|
186
|
+
julee/util/validation/__init__.py,sha256=Jp8A3iXEvLRaj07Z2UPnOBVO2QAUOW5ITCwMdLAgQyw,769
|
|
187
|
+
julee/util/validation/repository.py,sha256=li0bLav8ZpRqPe7aaOaZQQItdf_Ll-ZWJs7NpF8nmm0,3135
|
|
188
|
+
julee/util/validation/type_guards.py,sha256=sH9NfnrWAOQnLKQQNpJRdz1ygkt5nTUmKyjVDOE8iME,12548
|
|
189
|
+
julee/workflows/__init__.py,sha256=sHXZm4EPvsch6IYcJGqGuPJIep8XZQ8XvEju5b34tTs,724
|
|
190
|
+
julee/workflows/extract_assemble.py,sha256=ZldmLdwwn1LomDJg4gNGYrnY87tiXtU8em3-l_fqLGs,7876
|
|
191
|
+
julee/workflows/validate_document.py,sha256=Cwl-XgcQWeVCC-cGOAslS1vCjQosiWUi79c2uQfTYNc,8230
|
|
192
|
+
julee-0.1.4.dist-info/licenses/LICENSE,sha256=OXLcl0T2SZ8Pmy2_dmlvKuetivmyPd5m1q-Gyd-zaYY,35149
|
|
193
|
+
julee-0.1.4.dist-info/METADATA,sha256=2BMROf21mgMvdnWvHOr1YCh5Z8ZVc-llVk7ZrJdMm48,7011
|
|
194
|
+
julee-0.1.4.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
195
|
+
julee-0.1.4.dist-info/top_level.txt,sha256=woyPXhn9n-aM3oekZ341P1enrjj6nIcTwOxQL32VCLc,6
|
|
196
|
+
julee-0.1.4.dist-info/RECORD,,
|
|
@@ -1,70 +0,0 @@
|
|
|
1
|
-
assembly_specifications:
|
|
2
|
-
- assembly_specification_id: "meeting-minutes-assembly"
|
|
3
|
-
name: "Meeting Minutes Assembly"
|
|
4
|
-
applicability: "Meeting transcripts from video conferences or in-person meetings that need to be structured into formal meeting minutes"
|
|
5
|
-
status: "active"
|
|
6
|
-
version: "1.0"
|
|
7
|
-
jsonschema:
|
|
8
|
-
$schema: "http://json-schema.org/draft-07/schema#"
|
|
9
|
-
title: "Meeting Minutes"
|
|
10
|
-
type: "object"
|
|
11
|
-
properties:
|
|
12
|
-
meeting_info:
|
|
13
|
-
type: "object"
|
|
14
|
-
properties:
|
|
15
|
-
title:
|
|
16
|
-
type: "string"
|
|
17
|
-
date:
|
|
18
|
-
type: "string"
|
|
19
|
-
format: "date"
|
|
20
|
-
start_time:
|
|
21
|
-
type: "string"
|
|
22
|
-
end_time:
|
|
23
|
-
type: "string"
|
|
24
|
-
attendees:
|
|
25
|
-
type: "array"
|
|
26
|
-
items:
|
|
27
|
-
type: "object"
|
|
28
|
-
properties:
|
|
29
|
-
name:
|
|
30
|
-
type: "string"
|
|
31
|
-
role:
|
|
32
|
-
type: "string"
|
|
33
|
-
required: ["name", "role"]
|
|
34
|
-
required: ["title", "date", "attendees"]
|
|
35
|
-
agenda_items:
|
|
36
|
-
type: "array"
|
|
37
|
-
items:
|
|
38
|
-
type: "object"
|
|
39
|
-
properties:
|
|
40
|
-
topic:
|
|
41
|
-
type: "string"
|
|
42
|
-
discussion_points:
|
|
43
|
-
type: "array"
|
|
44
|
-
items:
|
|
45
|
-
type: "string"
|
|
46
|
-
decisions:
|
|
47
|
-
type: "array"
|
|
48
|
-
items:
|
|
49
|
-
type: "string"
|
|
50
|
-
required: ["topic"]
|
|
51
|
-
action_items:
|
|
52
|
-
type: "array"
|
|
53
|
-
items:
|
|
54
|
-
type: "object"
|
|
55
|
-
properties:
|
|
56
|
-
task:
|
|
57
|
-
type: "string"
|
|
58
|
-
assignee:
|
|
59
|
-
type: "string"
|
|
60
|
-
due_date:
|
|
61
|
-
type: "string"
|
|
62
|
-
priority:
|
|
63
|
-
type: "string"
|
|
64
|
-
enum: ["low", "medium", "high"]
|
|
65
|
-
required: ["task", "assignee"]
|
|
66
|
-
required: ["meeting_info", "agenda_items"]
|
|
67
|
-
knowledge_service_queries:
|
|
68
|
-
"/properties/meeting_info": "extract-meeting-info-query"
|
|
69
|
-
"/properties/agenda_items": "extract-agenda-items-query"
|
|
70
|
-
"/properties/action_items": "extract-action-items-query"
|