julee 0.1.3__tar.gz → 0.1.5__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.
Files changed (222) hide show
  1. julee-0.1.5/PKG-INFO +103 -0
  2. julee-0.1.5/README.md +38 -0
  3. {julee-0.1.3 → julee-0.1.5}/pyproject.toml +13 -3
  4. {julee-0.1.3 → julee-0.1.5}/src/julee/__init__.py +1 -1
  5. {julee-0.1.3 → julee-0.1.5}/src/julee/api/tests/routers/test_assembly_specifications.py +2 -0
  6. {julee-0.1.3 → julee-0.1.5}/src/julee/api/tests/routers/test_documents.py +8 -6
  7. {julee-0.1.3 → julee-0.1.5}/src/julee/api/tests/routers/test_knowledge_service_configs.py +2 -0
  8. {julee-0.1.3 → julee-0.1.5}/src/julee/api/tests/routers/test_knowledge_service_queries.py +2 -0
  9. {julee-0.1.3 → julee-0.1.5}/src/julee/api/tests/routers/test_system.py +2 -0
  10. {julee-0.1.3 → julee-0.1.5}/src/julee/api/tests/routers/test_workflows.py +2 -0
  11. {julee-0.1.3 → julee-0.1.5}/src/julee/api/tests/test_app.py +2 -0
  12. {julee-0.1.3 → julee-0.1.5}/src/julee/api/tests/test_dependencies.py +2 -0
  13. {julee-0.1.3 → julee-0.1.5}/src/julee/api/tests/test_requests.py +2 -0
  14. julee-0.1.5/src/julee/contrib/polling/__init__.py +50 -0
  15. julee-0.1.5/src/julee/contrib/polling/apps/__init__.py +17 -0
  16. julee-0.1.5/src/julee/contrib/polling/apps/worker/__init__.py +17 -0
  17. julee-0.1.5/src/julee/contrib/polling/apps/worker/pipelines.py +288 -0
  18. julee-0.1.5/src/julee/contrib/polling/domain/__init__.py +15 -0
  19. julee-0.1.5/src/julee/contrib/polling/domain/models/__init__.py +12 -0
  20. {julee-0.1.3 → julee-0.1.5}/src/julee/contrib/polling/domain/models/polling_config.py +18 -1
  21. julee-0.1.5/src/julee/contrib/polling/domain/services/__init__.py +12 -0
  22. {julee-0.1.3 → julee-0.1.5}/src/julee/contrib/polling/domain/services/poller.py +1 -1
  23. julee-0.1.5/src/julee/contrib/polling/infrastructure/__init__.py +16 -0
  24. julee-0.1.5/src/julee/contrib/polling/infrastructure/services/__init__.py +13 -0
  25. julee-0.1.5/src/julee/contrib/polling/infrastructure/services/polling/__init__.py +13 -0
  26. julee-0.1.5/src/julee/contrib/polling/infrastructure/services/polling/http/__init__.py +13 -0
  27. {julee-0.1.3 → julee-0.1.5}/src/julee/contrib/polling/infrastructure/services/polling/http/http_poller_service.py +5 -2
  28. julee-0.1.5/src/julee/contrib/polling/infrastructure/temporal/__init__.py +20 -0
  29. {julee-0.1.3 → julee-0.1.5}/src/julee/contrib/polling/infrastructure/temporal/activities.py +1 -1
  30. julee-0.1.5/src/julee/contrib/polling/infrastructure/temporal/manager.py +291 -0
  31. {julee-0.1.3 → julee-0.1.5}/src/julee/contrib/polling/infrastructure/temporal/proxies.py +1 -1
  32. julee-0.1.5/src/julee/contrib/polling/tests/unit/apps/worker/test_pipelines.py +580 -0
  33. {julee-0.1.3 → julee-0.1.5}/src/julee/contrib/polling/tests/unit/infrastructure/services/polling/http/test_http_poller_service.py +40 -2
  34. julee-0.1.5/src/julee/contrib/polling/tests/unit/infrastructure/temporal/__init__.py +7 -0
  35. julee-0.1.5/src/julee/contrib/polling/tests/unit/infrastructure/temporal/test_manager.py +475 -0
  36. {julee-0.1.3 → julee-0.1.5}/src/julee/docs/sphinx_hcd/__init__.py +4 -10
  37. {julee-0.1.3 → julee-0.1.5}/src/julee/docs/sphinx_hcd/accelerators.py +277 -180
  38. {julee-0.1.3 → julee-0.1.5}/src/julee/docs/sphinx_hcd/apps.py +78 -59
  39. {julee-0.1.3 → julee-0.1.5}/src/julee/docs/sphinx_hcd/config.py +16 -16
  40. {julee-0.1.3 → julee-0.1.5}/src/julee/docs/sphinx_hcd/epics.py +47 -42
  41. {julee-0.1.3 → julee-0.1.5}/src/julee/docs/sphinx_hcd/integrations.py +53 -49
  42. {julee-0.1.3 → julee-0.1.5}/src/julee/docs/sphinx_hcd/journeys.py +124 -110
  43. {julee-0.1.3 → julee-0.1.5}/src/julee/docs/sphinx_hcd/personas.py +75 -53
  44. {julee-0.1.3 → julee-0.1.5}/src/julee/docs/sphinx_hcd/stories.py +99 -71
  45. {julee-0.1.3 → julee-0.1.5}/src/julee/docs/sphinx_hcd/utils.py +23 -18
  46. {julee-0.1.3 → julee-0.1.5}/src/julee/domain/models/assembly/tests/test_assembly.py +2 -0
  47. {julee-0.1.3 → julee-0.1.5}/src/julee/domain/models/assembly_specification/tests/test_assembly_specification.py +2 -0
  48. {julee-0.1.3 → julee-0.1.5}/src/julee/domain/models/assembly_specification/tests/test_knowledge_service_query.py +2 -0
  49. {julee-0.1.3 → julee-0.1.5}/src/julee/domain/models/custom_fields/tests/test_custom_fields.py +2 -0
  50. {julee-0.1.3 → julee-0.1.5}/src/julee/domain/models/document/document.py +12 -21
  51. {julee-0.1.3 → julee-0.1.5}/src/julee/domain/models/document/tests/test_document.py +16 -34
  52. {julee-0.1.3 → julee-0.1.5}/src/julee/domain/models/policy/tests/test_document_policy_validation.py +2 -0
  53. {julee-0.1.3 → julee-0.1.5}/src/julee/domain/models/policy/tests/test_policy.py +2 -0
  54. {julee-0.1.3 → julee-0.1.5}/src/julee/domain/use_cases/extract_assemble_data.py +1 -1
  55. {julee-0.1.3 → julee-0.1.5}/src/julee/domain/use_cases/initialize_system_data.py +75 -21
  56. {julee-0.1.3 → julee-0.1.5}/src/julee/domain/use_cases/tests/test_extract_assemble_data.py +2 -0
  57. {julee-0.1.3 → julee-0.1.5}/src/julee/domain/use_cases/tests/test_initialize_system_data.py +2 -0
  58. {julee-0.1.3 → julee-0.1.5}/src/julee/domain/use_cases/tests/test_validate_document.py +2 -0
  59. {julee-0.1.3 → julee-0.1.5}/src/julee/fixtures/documents.yaml +4 -43
  60. {julee-0.1.3 → julee-0.1.5}/src/julee/fixtures/knowledge_service_queries.yaml +9 -0
  61. {julee-0.1.3 → julee-0.1.5}/src/julee/maintenance/release.py +90 -30
  62. {julee-0.1.3 → julee-0.1.5}/src/julee/repositories/memory/document.py +19 -13
  63. {julee-0.1.3 → julee-0.1.5}/src/julee/repositories/memory/tests/test_document.py +20 -18
  64. {julee-0.1.3 → julee-0.1.5}/src/julee/repositories/memory/tests/test_document_policy_validation.py +2 -0
  65. {julee-0.1.3 → julee-0.1.5}/src/julee/repositories/memory/tests/test_policy.py +2 -0
  66. {julee-0.1.3 → julee-0.1.5}/src/julee/repositories/minio/document.py +25 -22
  67. {julee-0.1.3 → julee-0.1.5}/src/julee/repositories/minio/tests/test_assembly.py +2 -0
  68. {julee-0.1.3 → julee-0.1.5}/src/julee/repositories/minio/tests/test_assembly_specification.py +2 -0
  69. {julee-0.1.3 → julee-0.1.5}/src/julee/repositories/minio/tests/test_client_protocol.py +3 -0
  70. {julee-0.1.3 → julee-0.1.5}/src/julee/repositories/minio/tests/test_document.py +18 -16
  71. {julee-0.1.3 → julee-0.1.5}/src/julee/repositories/minio/tests/test_document_policy_validation.py +2 -0
  72. {julee-0.1.3 → julee-0.1.5}/src/julee/repositories/minio/tests/test_knowledge_service_config.py +2 -0
  73. {julee-0.1.3 → julee-0.1.5}/src/julee/repositories/minio/tests/test_knowledge_service_query.py +2 -0
  74. {julee-0.1.3 → julee-0.1.5}/src/julee/repositories/minio/tests/test_policy.py +2 -0
  75. {julee-0.1.3 → julee-0.1.5}/src/julee/services/knowledge_service/anthropic/tests/test_knowledge_service.py +2 -0
  76. {julee-0.1.3 → julee-0.1.5}/src/julee/services/knowledge_service/memory/test_knowledge_service.py +2 -0
  77. {julee-0.1.3 → julee-0.1.5}/src/julee/services/knowledge_service/test_factory.py +2 -0
  78. {julee-0.1.3 → julee-0.1.5}/src/julee/util/tests/test_decorators.py +2 -0
  79. julee-0.1.5/src/julee.egg-info/PKG-INFO +103 -0
  80. {julee-0.1.3 → julee-0.1.5}/src/julee.egg-info/SOURCES.txt +7 -1
  81. {julee-0.1.3 → julee-0.1.5}/src/julee.egg-info/requires.txt +1 -0
  82. julee-0.1.3/PKG-INFO +0 -198
  83. julee-0.1.3/README.md +0 -133
  84. julee-0.1.3/src/julee/contrib/polling/__init__.py +0 -47
  85. julee-0.1.3/src/julee/contrib/polling/domain/__init__.py +0 -17
  86. julee-0.1.3/src/julee/contrib/polling/domain/models/__init__.py +0 -13
  87. julee-0.1.3/src/julee/contrib/polling/domain/services/__init__.py +0 -11
  88. julee-0.1.3/src/julee/contrib/polling/infrastructure/__init__.py +0 -15
  89. julee-0.1.3/src/julee/contrib/polling/infrastructure/services/__init__.py +0 -12
  90. julee-0.1.3/src/julee/contrib/polling/infrastructure/services/polling/__init__.py +0 -12
  91. julee-0.1.3/src/julee/contrib/polling/infrastructure/services/polling/http/__init__.py +0 -12
  92. julee-0.1.3/src/julee/contrib/polling/infrastructure/temporal/__init__.py +0 -20
  93. julee-0.1.3/src/julee/fixtures/assembly_specifications.yaml +0 -70
  94. julee-0.1.3/src/julee.egg-info/PKG-INFO +0 -198
  95. {julee-0.1.3 → julee-0.1.5}/LICENSE +0 -0
  96. {julee-0.1.3 → julee-0.1.5}/MANIFEST.in +0 -0
  97. {julee-0.1.3 → julee-0.1.5}/setup.cfg +0 -0
  98. {julee-0.1.3 → julee-0.1.5}/src/julee/api/__init__.py +0 -0
  99. {julee-0.1.3 → julee-0.1.5}/src/julee/api/app.py +0 -0
  100. {julee-0.1.3 → julee-0.1.5}/src/julee/api/dependencies.py +0 -0
  101. {julee-0.1.3 → julee-0.1.5}/src/julee/api/requests.py +0 -0
  102. {julee-0.1.3 → julee-0.1.5}/src/julee/api/responses.py +0 -0
  103. {julee-0.1.3 → julee-0.1.5}/src/julee/api/routers/__init__.py +0 -0
  104. {julee-0.1.3 → julee-0.1.5}/src/julee/api/routers/assembly_specifications.py +0 -0
  105. {julee-0.1.3 → julee-0.1.5}/src/julee/api/routers/documents.py +0 -0
  106. {julee-0.1.3 → julee-0.1.5}/src/julee/api/routers/knowledge_service_configs.py +0 -0
  107. {julee-0.1.3 → julee-0.1.5}/src/julee/api/routers/knowledge_service_queries.py +0 -0
  108. {julee-0.1.3 → julee-0.1.5}/src/julee/api/routers/system.py +0 -0
  109. {julee-0.1.3 → julee-0.1.5}/src/julee/api/routers/workflows.py +0 -0
  110. {julee-0.1.3 → julee-0.1.5}/src/julee/api/services/__init__.py +0 -0
  111. {julee-0.1.3 → julee-0.1.5}/src/julee/api/services/system_initialization.py +0 -0
  112. {julee-0.1.3 → julee-0.1.5}/src/julee/api/tests/__init__.py +0 -0
  113. {julee-0.1.3 → julee-0.1.5}/src/julee/api/tests/routers/__init__.py +0 -0
  114. {julee-0.1.3 → julee-0.1.5}/src/julee/contrib/__init__.py +0 -0
  115. {julee-0.1.3 → julee-0.1.5}/src/julee/contrib/polling/infrastructure/temporal/activity_names.py +0 -0
  116. {julee-0.1.3 → julee-0.1.5}/src/julee/contrib/polling/tests/__init__.py +0 -0
  117. {julee-0.1.3 → julee-0.1.5}/src/julee/contrib/polling/tests/unit/__init__.py +0 -0
  118. {julee-0.1.3 → julee-0.1.5}/src/julee/contrib/polling/tests/unit/infrastructure/__init__.py +0 -0
  119. {julee-0.1.3 → julee-0.1.5}/src/julee/contrib/polling/tests/unit/infrastructure/services/__init__.py +0 -0
  120. {julee-0.1.3 → julee-0.1.5}/src/julee/contrib/polling/tests/unit/infrastructure/services/polling/__init__.py +0 -0
  121. {julee-0.1.3 → julee-0.1.5}/src/julee/contrib/polling/tests/unit/infrastructure/services/polling/http/__init__.py +0 -0
  122. {julee-0.1.3 → julee-0.1.5}/src/julee/docs/__init__.py +0 -0
  123. {julee-0.1.3 → julee-0.1.5}/src/julee/domain/__init__.py +0 -0
  124. {julee-0.1.3 → julee-0.1.5}/src/julee/domain/models/__init__.py +0 -0
  125. {julee-0.1.3 → julee-0.1.5}/src/julee/domain/models/assembly/__init__.py +0 -0
  126. {julee-0.1.3 → julee-0.1.5}/src/julee/domain/models/assembly/assembly.py +0 -0
  127. {julee-0.1.3 → julee-0.1.5}/src/julee/domain/models/assembly/tests/__init__.py +0 -0
  128. {julee-0.1.3 → julee-0.1.5}/src/julee/domain/models/assembly/tests/factories.py +0 -0
  129. {julee-0.1.3 → julee-0.1.5}/src/julee/domain/models/assembly_specification/__init__.py +0 -0
  130. {julee-0.1.3 → julee-0.1.5}/src/julee/domain/models/assembly_specification/assembly_specification.py +0 -0
  131. {julee-0.1.3 → julee-0.1.5}/src/julee/domain/models/assembly_specification/knowledge_service_query.py +0 -0
  132. {julee-0.1.3 → julee-0.1.5}/src/julee/domain/models/assembly_specification/tests/__init__.py +0 -0
  133. {julee-0.1.3 → julee-0.1.5}/src/julee/domain/models/assembly_specification/tests/factories.py +0 -0
  134. {julee-0.1.3 → julee-0.1.5}/src/julee/domain/models/custom_fields/__init__.py +0 -0
  135. {julee-0.1.3 → julee-0.1.5}/src/julee/domain/models/custom_fields/content_stream.py +0 -0
  136. {julee-0.1.3 → julee-0.1.5}/src/julee/domain/models/custom_fields/tests/__init__.py +0 -0
  137. {julee-0.1.3 → julee-0.1.5}/src/julee/domain/models/document/__init__.py +0 -0
  138. {julee-0.1.3 → julee-0.1.5}/src/julee/domain/models/document/tests/__init__.py +0 -0
  139. {julee-0.1.3 → julee-0.1.5}/src/julee/domain/models/document/tests/factories.py +0 -0
  140. {julee-0.1.3 → julee-0.1.5}/src/julee/domain/models/knowledge_service_config/__init__.py +0 -0
  141. {julee-0.1.3 → julee-0.1.5}/src/julee/domain/models/knowledge_service_config/knowledge_service_config.py +0 -0
  142. {julee-0.1.3 → julee-0.1.5}/src/julee/domain/models/policy/__init__.py +0 -0
  143. {julee-0.1.3 → julee-0.1.5}/src/julee/domain/models/policy/document_policy_validation.py +0 -0
  144. {julee-0.1.3 → julee-0.1.5}/src/julee/domain/models/policy/policy.py +0 -0
  145. {julee-0.1.3 → julee-0.1.5}/src/julee/domain/models/policy/tests/__init__.py +0 -0
  146. {julee-0.1.3 → julee-0.1.5}/src/julee/domain/models/policy/tests/factories.py +0 -0
  147. {julee-0.1.3 → julee-0.1.5}/src/julee/domain/repositories/__init__.py +0 -0
  148. {julee-0.1.3 → julee-0.1.5}/src/julee/domain/repositories/assembly.py +0 -0
  149. {julee-0.1.3 → julee-0.1.5}/src/julee/domain/repositories/assembly_specification.py +0 -0
  150. {julee-0.1.3 → julee-0.1.5}/src/julee/domain/repositories/base.py +0 -0
  151. {julee-0.1.3 → julee-0.1.5}/src/julee/domain/repositories/document.py +0 -0
  152. {julee-0.1.3 → julee-0.1.5}/src/julee/domain/repositories/document_policy_validation.py +0 -0
  153. {julee-0.1.3 → julee-0.1.5}/src/julee/domain/repositories/knowledge_service_config.py +0 -0
  154. {julee-0.1.3 → julee-0.1.5}/src/julee/domain/repositories/knowledge_service_query.py +0 -0
  155. {julee-0.1.3 → julee-0.1.5}/src/julee/domain/repositories/policy.py +0 -0
  156. {julee-0.1.3 → julee-0.1.5}/src/julee/domain/use_cases/__init__.py +0 -0
  157. {julee-0.1.3 → julee-0.1.5}/src/julee/domain/use_cases/decorators.py +0 -0
  158. {julee-0.1.3 → julee-0.1.5}/src/julee/domain/use_cases/tests/__init__.py +0 -0
  159. {julee-0.1.3 → julee-0.1.5}/src/julee/domain/use_cases/validate_document.py +0 -0
  160. {julee-0.1.3 → julee-0.1.5}/src/julee/fixtures/knowledge_service_configs.yaml +0 -0
  161. {julee-0.1.3 → julee-0.1.5}/src/julee/maintenance/__init__.py +0 -0
  162. {julee-0.1.3 → julee-0.1.5}/src/julee/repositories/__init__.py +0 -0
  163. {julee-0.1.3 → julee-0.1.5}/src/julee/repositories/memory/__init__.py +0 -0
  164. {julee-0.1.3 → julee-0.1.5}/src/julee/repositories/memory/assembly.py +0 -0
  165. {julee-0.1.3 → julee-0.1.5}/src/julee/repositories/memory/assembly_specification.py +0 -0
  166. {julee-0.1.3 → julee-0.1.5}/src/julee/repositories/memory/base.py +0 -0
  167. {julee-0.1.3 → julee-0.1.5}/src/julee/repositories/memory/document_policy_validation.py +0 -0
  168. {julee-0.1.3 → julee-0.1.5}/src/julee/repositories/memory/knowledge_service_config.py +0 -0
  169. {julee-0.1.3 → julee-0.1.5}/src/julee/repositories/memory/knowledge_service_query.py +0 -0
  170. {julee-0.1.3 → julee-0.1.5}/src/julee/repositories/memory/policy.py +0 -0
  171. {julee-0.1.3 → julee-0.1.5}/src/julee/repositories/memory/tests/__init__.py +0 -0
  172. {julee-0.1.3 → julee-0.1.5}/src/julee/repositories/minio/__init__.py +0 -0
  173. {julee-0.1.3 → julee-0.1.5}/src/julee/repositories/minio/assembly.py +0 -0
  174. {julee-0.1.3 → julee-0.1.5}/src/julee/repositories/minio/assembly_specification.py +0 -0
  175. {julee-0.1.3 → julee-0.1.5}/src/julee/repositories/minio/client.py +0 -0
  176. {julee-0.1.3 → julee-0.1.5}/src/julee/repositories/minio/document_policy_validation.py +0 -0
  177. {julee-0.1.3 → julee-0.1.5}/src/julee/repositories/minio/knowledge_service_config.py +0 -0
  178. {julee-0.1.3 → julee-0.1.5}/src/julee/repositories/minio/knowledge_service_query.py +0 -0
  179. {julee-0.1.3 → julee-0.1.5}/src/julee/repositories/minio/policy.py +0 -0
  180. {julee-0.1.3 → julee-0.1.5}/src/julee/repositories/minio/tests/__init__.py +0 -0
  181. {julee-0.1.3 → julee-0.1.5}/src/julee/repositories/minio/tests/fake_client.py +0 -0
  182. {julee-0.1.3 → julee-0.1.5}/src/julee/repositories/temporal/__init__.py +0 -0
  183. {julee-0.1.3 → julee-0.1.5}/src/julee/repositories/temporal/activities.py +0 -0
  184. {julee-0.1.3 → julee-0.1.5}/src/julee/repositories/temporal/activity_names.py +0 -0
  185. {julee-0.1.3 → julee-0.1.5}/src/julee/repositories/temporal/proxies.py +0 -0
  186. {julee-0.1.3 → julee-0.1.5}/src/julee/services/__init__.py +0 -0
  187. {julee-0.1.3 → julee-0.1.5}/src/julee/services/knowledge_service/__init__.py +0 -0
  188. {julee-0.1.3 → julee-0.1.5}/src/julee/services/knowledge_service/anthropic/__init__.py +0 -0
  189. {julee-0.1.3 → julee-0.1.5}/src/julee/services/knowledge_service/anthropic/knowledge_service.py +0 -0
  190. {julee-0.1.3 → julee-0.1.5}/src/julee/services/knowledge_service/factory.py +0 -0
  191. {julee-0.1.3 → julee-0.1.5}/src/julee/services/knowledge_service/knowledge_service.py +0 -0
  192. {julee-0.1.3 → julee-0.1.5}/src/julee/services/knowledge_service/memory/__init__.py +0 -0
  193. {julee-0.1.3 → julee-0.1.5}/src/julee/services/knowledge_service/memory/knowledge_service.py +0 -0
  194. {julee-0.1.3 → julee-0.1.5}/src/julee/services/temporal/__init__.py +0 -0
  195. {julee-0.1.3 → julee-0.1.5}/src/julee/services/temporal/activities.py +0 -0
  196. {julee-0.1.3 → julee-0.1.5}/src/julee/services/temporal/activity_names.py +0 -0
  197. {julee-0.1.3 → julee-0.1.5}/src/julee/services/temporal/proxies.py +0 -0
  198. {julee-0.1.3 → julee-0.1.5}/src/julee/util/__init__.py +0 -0
  199. {julee-0.1.3 → julee-0.1.5}/src/julee/util/domain.py +0 -0
  200. {julee-0.1.3 → julee-0.1.5}/src/julee/util/repos/__init__.py +0 -0
  201. {julee-0.1.3 → julee-0.1.5}/src/julee/util/repos/minio/__init__.py +0 -0
  202. {julee-0.1.3 → julee-0.1.5}/src/julee/util/repos/minio/file_storage.py +0 -0
  203. {julee-0.1.3 → julee-0.1.5}/src/julee/util/repos/temporal/__init__.py +0 -0
  204. {julee-0.1.3 → julee-0.1.5}/src/julee/util/repos/temporal/client_proxies/file_storage.py +0 -0
  205. {julee-0.1.3 → julee-0.1.5}/src/julee/util/repos/temporal/data_converter.py +0 -0
  206. {julee-0.1.3 → julee-0.1.5}/src/julee/util/repos/temporal/minio_file_storage.py +0 -0
  207. {julee-0.1.3 → julee-0.1.5}/src/julee/util/repos/temporal/proxies/__init__.py +0 -0
  208. {julee-0.1.3 → julee-0.1.5}/src/julee/util/repos/temporal/proxies/file_storage.py +0 -0
  209. {julee-0.1.3 → julee-0.1.5}/src/julee/util/repositories.py +0 -0
  210. {julee-0.1.3 → julee-0.1.5}/src/julee/util/temporal/__init__.py +0 -0
  211. {julee-0.1.3 → julee-0.1.5}/src/julee/util/temporal/activities.py +0 -0
  212. {julee-0.1.3 → julee-0.1.5}/src/julee/util/temporal/decorators.py +0 -0
  213. {julee-0.1.3 → julee-0.1.5}/src/julee/util/tests/__init__.py +0 -0
  214. {julee-0.1.3 → julee-0.1.5}/src/julee/util/validation/__init__.py +0 -0
  215. {julee-0.1.3 → julee-0.1.5}/src/julee/util/validation/repository.py +0 -0
  216. {julee-0.1.3 → julee-0.1.5}/src/julee/util/validation/type_guards.py +0 -0
  217. {julee-0.1.3 → julee-0.1.5}/src/julee/worker.py +0 -0
  218. {julee-0.1.3 → julee-0.1.5}/src/julee/workflows/__init__.py +0 -0
  219. {julee-0.1.3 → julee-0.1.5}/src/julee/workflows/extract_assemble.py +0 -0
  220. {julee-0.1.3 → julee-0.1.5}/src/julee/workflows/validate_document.py +0 -0
  221. {julee-0.1.3 → julee-0.1.5}/src/julee.egg-info/dependency_links.txt +0 -0
  222. {julee-0.1.3 → julee-0.1.5}/src/julee.egg-info/top_level.txt +0 -0
julee-0.1.5/PKG-INFO ADDED
@@ -0,0 +1,103 @@
1
+ Metadata-Version: 2.4
2
+ Name: julee
3
+ Version: 0.1.5
4
+ Summary: Julee - Clean architecture for accountable and transparent digital supply chains
5
+ Author-email: Pyx Industries <chris@pyx.io>
6
+ License: GPL-3.0
7
+ Project-URL: Homepage, https://github.com/pyx-industries/julee
8
+ Project-URL: Repository, https://github.com/pyx-industries/julee
9
+ Project-URL: Documentation, https://github.com/pyx-industries/julee#readme
10
+ Project-URL: Issues, https://github.com/pyx-industries/julee/issues
11
+ Keywords: temporal,workflow,document-processing,ai,supply-chain
12
+ Classifier: Development Status :: 3 - Alpha
13
+ Classifier: Intended Audience :: Developers
14
+ Classifier: License :: OSI Approved :: GNU General Public License v3 (GPLv3)
15
+ Classifier: Programming Language :: Python :: 3
16
+ Classifier: Programming Language :: Python :: 3.11
17
+ Classifier: Programming Language :: Python :: 3.12
18
+ Classifier: Topic :: Software Development :: Libraries :: Python Modules
19
+ Requires-Python: >=3.11
20
+ Description-Content-Type: text/markdown
21
+ License-File: LICENSE
22
+ Requires-Dist: fastapi>=0.100.0
23
+ Requires-Dist: uvicorn>=0.20.0
24
+ Requires-Dist: python-multipart
25
+ Requires-Dist: fastapi-pagination>=0.12.0
26
+ Requires-Dist: pydantic>=2.0.0
27
+ Requires-Dist: temporalio[pydantic]>=1.3.0
28
+ Requires-Dist: minio>=7.0.0
29
+ Requires-Dist: anthropic>=0.66.0
30
+ Requires-Dist: click>=0.8.0
31
+ Requires-Dist: Jinja2>=3.0.0
32
+ Requires-Dist: PyYAML>=6.0.0
33
+ Requires-Dist: python-magic>=0.4.27
34
+ Requires-Dist: multihash>=0.1.1
35
+ Requires-Dist: six>=1.16.0
36
+ Requires-Dist: jsonschema>=4.0.0
37
+ Requires-Dist: jsonpointer>=3.0.0
38
+ Provides-Extra: dev
39
+ Requires-Dist: pytest>=8.0.0; extra == "dev"
40
+ Requires-Dist: pytest-asyncio>=1.0.0; extra == "dev"
41
+ Requires-Dist: pytest-cov>=4.1.0; extra == "dev"
42
+ Requires-Dist: pytest-xdist>=3.5.0; extra == "dev"
43
+ Requires-Dist: hypothesis>=6.0.0; extra == "dev"
44
+ Requires-Dist: factory-boy>=3.2.0; extra == "dev"
45
+ Requires-Dist: mypy>=1.7.0; extra == "dev"
46
+ Requires-Dist: types-PyYAML; extra == "dev"
47
+ Requires-Dist: types-jsonschema; extra == "dev"
48
+ Requires-Dist: types-python-dateutil; extra == "dev"
49
+ Requires-Dist: black>=24.0.0; extra == "dev"
50
+ Requires-Dist: ruff>=0.5.0; extra == "dev"
51
+ Requires-Dist: pre-commit>=3.0.0; extra == "dev"
52
+ Requires-Dist: bandit; extra == "dev"
53
+ Requires-Dist: pip-tools>=7.0.0; extra == "dev"
54
+ Requires-Dist: asyncpg; extra == "dev"
55
+ Provides-Extra: docs
56
+ Requires-Dist: sphinx>=7.0.0; extra == "docs"
57
+ Requires-Dist: sphinx-autobuild>=2021.3.14; extra == "docs"
58
+ Requires-Dist: sphinx-rtd-theme>=2.0.0; extra == "docs"
59
+ Requires-Dist: furo>=2023.9.10; extra == "docs"
60
+ Requires-Dist: sphinx-autodoc-typehints>=1.25.0; extra == "docs"
61
+ Requires-Dist: sphinxcontrib-mermaid>=0.9.2; extra == "docs"
62
+ Requires-Dist: sphinxcontrib-plantuml>=0.25; extra == "docs"
63
+ Requires-Dist: sphinx-autoapi>=3.0.0; extra == "docs"
64
+ Dynamic: license-file
65
+
66
+ # Julee
67
+
68
+ Clean architecture for accountable and transparent digital supply chains.
69
+
70
+ Julee is a Python framework for building resilient, auditable business processes using Temporal workflows. Solutions are organized around your business domain—your bounded contexts become "accelerators" that speak your business language, not framework jargon.
71
+
72
+ **Use Julee when:** processes must be done correctly, may be complex or long-running, need compliance audit trails (responsible AI, algorithmic due-diligence), or depend on unreliable services that may fail, timeout, or be rate-limited.
73
+
74
+ **Core concepts:** Accelerators are collections of pipelines that automate a business area. Pipelines are use cases wrapped with Temporal, providing durability (survives crashes), reliability (automatic retries), observability (complete execution history), and supply chain provenance (audit trails that become "digital product passports").
75
+
76
+ ## Installation
77
+
78
+ ```bash
79
+ pip install julee
80
+ ```
81
+
82
+ ## Runtime Dependencies
83
+
84
+ Julee applications require: [Temporal](https://temporal.io/) (workflow orchestration), S3-compatible object storage (e.g. MinIO), PostgreSQL (for Temporal).
85
+
86
+ ## Documentation
87
+
88
+ Full documentation at [julee.readthedocs.io](https://julee.readthedocs.io), package on [PyPI](https://pypi.org/project/julee/).
89
+
90
+ ## Example
91
+
92
+ This repository includes a Docker Compose example demonstrating a meeting minutes extraction system:
93
+
94
+ ```bash
95
+ cp .env.example .env # Add your ANTHROPIC_API_KEY
96
+ docker compose up --build
97
+ ```
98
+
99
+ See the `demo-ui/` directory for the UI source.
100
+
101
+ ## License
102
+
103
+ GPL-3.0 — see [LICENSE](LICENSE) for details.
julee-0.1.5/README.md ADDED
@@ -0,0 +1,38 @@
1
+ # Julee
2
+
3
+ Clean architecture for accountable and transparent digital supply chains.
4
+
5
+ Julee is a Python framework for building resilient, auditable business processes using Temporal workflows. Solutions are organized around your business domain—your bounded contexts become "accelerators" that speak your business language, not framework jargon.
6
+
7
+ **Use Julee when:** processes must be done correctly, may be complex or long-running, need compliance audit trails (responsible AI, algorithmic due-diligence), or depend on unreliable services that may fail, timeout, or be rate-limited.
8
+
9
+ **Core concepts:** Accelerators are collections of pipelines that automate a business area. Pipelines are use cases wrapped with Temporal, providing durability (survives crashes), reliability (automatic retries), observability (complete execution history), and supply chain provenance (audit trails that become "digital product passports").
10
+
11
+ ## Installation
12
+
13
+ ```bash
14
+ pip install julee
15
+ ```
16
+
17
+ ## Runtime Dependencies
18
+
19
+ Julee applications require: [Temporal](https://temporal.io/) (workflow orchestration), S3-compatible object storage (e.g. MinIO), PostgreSQL (for Temporal).
20
+
21
+ ## Documentation
22
+
23
+ Full documentation at [julee.readthedocs.io](https://julee.readthedocs.io), package on [PyPI](https://pypi.org/project/julee/).
24
+
25
+ ## Example
26
+
27
+ This repository includes a Docker Compose example demonstrating a meeting minutes extraction system:
28
+
29
+ ```bash
30
+ cp .env.example .env # Add your ANTHROPIC_API_KEY
31
+ docker compose up --build
32
+ ```
33
+
34
+ See the `demo-ui/` directory for the UI source.
35
+
36
+ ## License
37
+
38
+ GPL-3.0 — see [LICENSE](LICENSE) for details.
@@ -4,10 +4,10 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "julee"
7
- version = "0.1.3"
7
+ version = "0.1.5"
8
8
  description = "Julee - Clean architecture for accountable and transparent digital supply chains"
9
9
  readme = "README.md"
10
- requires-python = ">=3.10"
10
+ requires-python = ">=3.11"
11
11
  license = {text = "GPL-3.0"}
12
12
  authors = [
13
13
  {name = "Pyx Industries", email = "chris@pyx.io"}
@@ -18,7 +18,6 @@ classifiers = [
18
18
  "Intended Audience :: Developers",
19
19
  "License :: OSI Approved :: GNU General Public License v3 (GPLv3)",
20
20
  "Programming Language :: Python :: 3",
21
- "Programming Language :: Python :: 3.10",
22
21
  "Programming Language :: Python :: 3.11",
23
22
  "Programming Language :: Python :: 3.12",
24
23
  "Topic :: Software Development :: Libraries :: Python Modules",
@@ -55,6 +54,7 @@ dev = [
55
54
  "pytest>=8.0.0",
56
55
  "pytest-asyncio>=1.0.0",
57
56
  "pytest-cov>=4.1.0",
57
+ "pytest-xdist>=3.5.0",
58
58
  "hypothesis>=6.0.0",
59
59
  "factory-boy>=3.2.0",
60
60
  # Type checking
@@ -107,10 +107,20 @@ asyncio_mode = "auto"
107
107
  addopts = [
108
108
  "--strict-markers",
109
109
  "--tb=short",
110
+ "-n", "auto",
111
+ "--dist", "loadgroup",
110
112
  "--cov=src/julee",
111
113
  "--cov-report=term-missing",
112
114
  "--cov-report=html",
113
115
  ]
116
+ markers = [
117
+ "unit: Unit tests (fast, isolated)",
118
+ "integration: Integration tests (slower, with dependencies)",
119
+ "e2e: End-to-end tests (slowest, full stack)",
120
+ "llm: Tests that use real LLM API calls (slow, costs money)",
121
+ "contract: Contract tests (verify external API shapes and mock fidelity)",
122
+ "slow: Slow tests (stress tests, load tests)",
123
+ ]
114
124
 
115
125
  [tool.coverage.run]
116
126
  source = ["src/julee"]
@@ -1,3 +1,3 @@
1
1
  """Julee - Clean architecture for accountable and transparent digital supply chains."""
2
2
 
3
- __version__ = "0.1.1"
3
+ __version__ = "0.1.5"
@@ -25,6 +25,8 @@ from julee.repositories.memory import (
25
25
  MemoryAssemblySpecificationRepository,
26
26
  )
27
27
 
28
+ pytestmark = pytest.mark.unit
29
+
28
30
 
29
31
  @pytest.fixture
30
32
  def memory_repo() -> MemoryAssemblySpecificationRepository:
@@ -18,6 +18,8 @@ from julee.api.routers.documents import router
18
18
  from julee.domain.models.document import Document, DocumentStatus
19
19
  from julee.repositories.memory import MemoryDocumentRepository
20
20
 
21
+ pytestmark = pytest.mark.unit
22
+
21
23
 
22
24
  @pytest.fixture
23
25
  def memory_repo() -> MemoryDocumentRepository:
@@ -61,7 +63,7 @@ def sample_documents() -> list[Document]:
61
63
  created_at=datetime(2024, 1, 1, 12, 0, 0, tzinfo=timezone.utc),
62
64
  updated_at=datetime(2024, 1, 1, 12, 0, 0, tzinfo=timezone.utc),
63
65
  additional_metadata={"type": "test"},
64
- content_string="test content",
66
+ content_bytes="test content",
65
67
  ),
66
68
  Document(
67
69
  document_id="doc-2",
@@ -73,7 +75,7 @@ def sample_documents() -> list[Document]:
73
75
  created_at=datetime(2024, 1, 2, 12, 0, 0, tzinfo=timezone.utc),
74
76
  updated_at=datetime(2024, 1, 2, 12, 0, 0, tzinfo=timezone.utc),
75
77
  additional_metadata={"type": "report"},
76
- content_string="pdf content",
78
+ content_bytes="pdf content",
77
79
  ),
78
80
  ]
79
81
 
@@ -203,7 +205,7 @@ class TestGetDocument:
203
205
  assert data["additional_metadata"] == doc.additional_metadata
204
206
 
205
207
  # Content should NOT be included in metadata endpoint
206
- assert data["content_string"] is None
208
+ assert data["content_bytes"] is None
207
209
  # Content field is excluded from JSON response
208
210
  assert "content" not in data
209
211
 
@@ -273,7 +275,7 @@ class TestGetDocumentContent:
273
275
  memory_repo: MemoryDocumentRepository,
274
276
  ) -> None:
275
277
  """Test content retrieval when document has no content."""
276
- # Create document with content_string first to pass validation
278
+ # Create document with content_bytes first to pass validation
277
279
  doc = Document(
278
280
  document_id="doc-no-content",
279
281
  original_filename="empty.txt",
@@ -282,7 +284,7 @@ class TestGetDocumentContent:
282
284
  content_multihash="empty_hash",
283
285
  status=DocumentStatus.CAPTURED,
284
286
  additional_metadata={"type": "empty"},
285
- content_string="temp",
287
+ content_bytes="temp",
286
288
  )
287
289
 
288
290
  # Save document normally, then manually remove content from storage
@@ -290,7 +292,7 @@ class TestGetDocumentContent:
290
292
  stored_doc = memory_repo.storage_dict[doc.document_id]
291
293
  # Remove content from the stored document
292
294
  memory_repo.storage_dict[doc.document_id] = stored_doc.model_copy(
293
- update={"content": None, "content_string": None}
295
+ update={"content": None, "content_bytes": None}
294
296
  )
295
297
 
296
298
  # Make request
@@ -22,6 +22,8 @@ from julee.domain.models.knowledge_service_config import (
22
22
  ServiceApi,
23
23
  )
24
24
 
25
+ pytestmark = pytest.mark.unit
26
+
25
27
 
26
28
  @pytest.fixture
27
29
  def mock_repository() -> AsyncMock:
@@ -22,6 +22,8 @@ from julee.repositories.memory import (
22
22
  MemoryKnowledgeServiceQueryRepository,
23
23
  )
24
24
 
25
+ pytestmark = pytest.mark.unit
26
+
25
27
 
26
28
  @pytest.fixture
27
29
  def memory_repo() -> MemoryKnowledgeServiceQueryRepository:
@@ -17,6 +17,8 @@ from fastapi.testclient import TestClient
17
17
  from julee.api.responses import ServiceStatus
18
18
  from julee.api.routers.system import router
19
19
 
20
+ pytestmark = pytest.mark.unit
21
+
20
22
 
21
23
  @pytest.fixture
22
24
  def app_with_router() -> FastAPI:
@@ -16,6 +16,8 @@ from fastapi_pagination import add_pagination
16
16
  from julee.api.dependencies import get_temporal_client
17
17
  from julee.api.routers.workflows import router
18
18
 
19
+ pytestmark = pytest.mark.unit
20
+
19
21
 
20
22
  @pytest.fixture
21
23
  def mock_temporal_client() -> MagicMock:
@@ -25,6 +25,8 @@ from julee.repositories.memory.knowledge_service_config import (
25
25
  MemoryKnowledgeServiceConfigRepository,
26
26
  )
27
27
 
28
+ pytestmark = pytest.mark.unit
29
+
28
30
 
29
31
  @pytest.fixture
30
32
  def memory_repo() -> MemoryKnowledgeServiceQueryRepository:
@@ -16,6 +16,8 @@ from julee.api.dependencies import (
16
16
  get_startup_dependencies,
17
17
  )
18
18
 
19
+ pytestmark = pytest.mark.unit
20
+
19
21
 
20
22
  @pytest.fixture
21
23
  def mock_container() -> AsyncMock:
@@ -21,6 +21,8 @@ from julee.domain.models import (
21
21
  KnowledgeServiceQuery,
22
22
  )
23
23
 
24
+ pytestmark = pytest.mark.unit
25
+
24
26
 
25
27
  class TestCreateAssemblySpecificationRequest:
26
28
  """Test CreateAssemblySpecificationRequest model."""
@@ -0,0 +1,50 @@
1
+ """
2
+ Polling Contrib Module.
3
+
4
+ This module provides ready-made polling functionality for external endpoints.
5
+ It follows the Julee contrib module pattern, providing a complete polling
6
+ solution that can be imported and used by Julee solutions.
7
+
8
+ The polling module includes:
9
+ - Domain models for polling configuration and results
10
+ - Service protocols for polling operations
11
+ - HTTP implementation for REST API polling
12
+ - Co-located tests and examples
13
+
14
+ Example usage:
15
+ from julee.contrib.polling.domain.models.polling_config import PollingConfig, PollingProtocol
16
+ from julee.contrib.polling.infrastructure.services.polling.http import HttpPollerService
17
+ from julee.contrib.polling.domain.services.poller import PollerService
18
+ from julee.contrib.polling.domain.models.polling_config import PollingResult
19
+
20
+ # Configure polling
21
+ config = PollingConfig(
22
+ endpoint_identifier="api-v1",
23
+ polling_protocol=PollingProtocol.HTTP,
24
+ connection_params={"url": "https://api.example.com/data"},
25
+ timeout_seconds=30
26
+ )
27
+
28
+ # Poll the endpoint
29
+ service = HttpPollerService()
30
+ result = await service.poll_endpoint(config)
31
+
32
+ Note: All imports must be explicit to avoid import chains that can pull
33
+ non-deterministic code into Temporal workflows. Import directly from
34
+ the specific modules you need rather than using this convenience module.
35
+ """
36
+
37
+ # No re-exports to avoid import chains that pull non-deterministic code
38
+ # into Temporal workflows. Import from specific submodules instead:
39
+ #
40
+ # Domain:
41
+ # - from julee.contrib.polling.domain.models.polling_config import PollingConfig, PollingProtocol, PollingResult
42
+ # - from julee.contrib.polling.domain.services.poller import PollerService
43
+ #
44
+ # Infrastructure:
45
+ # - from julee.contrib.polling.infrastructure.services.polling.http import HttpPollerService
46
+ # - from julee.contrib.polling.infrastructure.temporal.manager import PollingManager
47
+ # - from julee.contrib.polling.infrastructure.temporal.proxies import WorkflowPollerServiceProxy
48
+ # - from julee.contrib.polling.infrastructure.temporal.activities import TemporalPollerService
49
+
50
+ __all__ = []
@@ -0,0 +1,17 @@
1
+ """
2
+ Application entry points for the polling contrib module.
3
+
4
+ This module contains the application-layer components that provide entry points
5
+ for the polling contrib module, including worker pipelines, API routes, and
6
+ CLI commands.
7
+
8
+ Following the ADR contrib module structure, this layer wires together domain
9
+ services and infrastructure implementations into runnable applications.
10
+
11
+ No re-exports to avoid import chains that pull non-deterministic code
12
+ into Temporal workflows. Import directly from specific modules:
13
+
14
+ - from julee.contrib.polling.apps.worker.pipelines import NewDataDetectionPipeline
15
+ """
16
+
17
+ __all__ = []
@@ -0,0 +1,17 @@
1
+ """
2
+ Worker applications for the polling contrib module.
3
+
4
+ This module contains worker-specific entry points for the polling contrib module,
5
+ including Temporal workflows (pipelines) that orchestrate polling operations
6
+ with durability guarantees.
7
+
8
+ The worker applications in this module can be registered with Temporal workers
9
+ to provide polling capabilities within workflow contexts.
10
+
11
+ No re-exports to avoid import chains that pull non-deterministic code
12
+ into Temporal workflows. Import directly from specific modules:
13
+
14
+ - from julee.contrib.polling.apps.worker.pipelines import NewDataDetectionPipeline
15
+ """
16
+
17
+ __all__ = []