hexcore 9.7.1__tar.gz → 9.7.2__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 (351) hide show
  1. {hexcore-9.7.1/hexcore.egg-info → hexcore-9.7.2}/PKG-INFO +58 -36
  2. {hexcore-9.7.1 → hexcore-9.7.2}/README.md +51 -35
  3. {hexcore-9.7.1 → hexcore-9.7.2/hexcore.egg-info}/PKG-INFO +58 -36
  4. {hexcore-9.7.1 → hexcore-9.7.2}/pyproject.toml +17 -1
  5. {hexcore-9.7.1 → hexcore-9.7.2}/tests/test_documentation_examples.py +149 -17
  6. {hexcore-9.7.1 → hexcore-9.7.2}/LICENSE +0 -0
  7. {hexcore-9.7.1 → hexcore-9.7.2}/MANIFEST.in +0 -0
  8. {hexcore-9.7.1 → hexcore-9.7.2}/hexcore/__init__.py +0 -0
  9. {hexcore-9.7.1 → hexcore-9.7.2}/hexcore/__main__.py +0 -0
  10. {hexcore-9.7.1 → hexcore-9.7.2}/hexcore/_deprecation.py +0 -0
  11. {hexcore-9.7.1 → hexcore-9.7.2}/hexcore/application/__init__.py +0 -0
  12. {hexcore-9.7.1 → hexcore-9.7.2}/hexcore/application/cqrs/__init__.py +0 -0
  13. {hexcore-9.7.1 → hexcore-9.7.2}/hexcore/application/cqrs/adapters.py +0 -0
  14. {hexcore-9.7.1 → hexcore-9.7.2}/hexcore/application/cqrs/config.py +0 -0
  15. {hexcore-9.7.1 → hexcore-9.7.2}/hexcore/application/cqrs/factory.py +0 -0
  16. {hexcore-9.7.1 → hexcore-9.7.2}/hexcore/application/cqrs/in_memory_buses.py +0 -0
  17. {hexcore-9.7.1 → hexcore-9.7.2}/hexcore/application/cqrs/pipeline.py +0 -0
  18. {hexcore-9.7.1 → hexcore-9.7.2}/hexcore/application/cqrs/registry.py +0 -0
  19. {hexcore-9.7.1 → hexcore-9.7.2}/hexcore/application/cqrs/scheduler.py +0 -0
  20. {hexcore-9.7.1 → hexcore-9.7.2}/hexcore/application/dtos/__init__.py +0 -0
  21. {hexcore-9.7.1 → hexcore-9.7.2}/hexcore/application/dtos/base.py +0 -0
  22. {hexcore-9.7.1 → hexcore-9.7.2}/hexcore/application/dtos/cursor.py +0 -0
  23. {hexcore-9.7.1 → hexcore-9.7.2}/hexcore/application/dtos/errors.py +0 -0
  24. {hexcore-9.7.1 → hexcore-9.7.2}/hexcore/application/dtos/query.py +0 -0
  25. {hexcore-9.7.1 → hexcore-9.7.2}/hexcore/application/eventsourcing/__init__.py +0 -0
  26. {hexcore-9.7.1 → hexcore-9.7.2}/hexcore/application/eventsourcing/config.py +0 -0
  27. {hexcore-9.7.1 → hexcore-9.7.2}/hexcore/application/eventsourcing/factory.py +0 -0
  28. {hexcore-9.7.1 → hexcore-9.7.2}/hexcore/application/eventsourcing/projector.py +0 -0
  29. {hexcore-9.7.1 → hexcore-9.7.2}/hexcore/application/eventsourcing/relay.py +0 -0
  30. {hexcore-9.7.1 → hexcore-9.7.2}/hexcore/application/eventsourcing/repository.py +0 -0
  31. {hexcore-9.7.1 → hexcore-9.7.2}/hexcore/application/use_cases/__init__.py +0 -0
  32. {hexcore-9.7.1 → hexcore-9.7.2}/hexcore/application/use_cases/base.py +0 -0
  33. {hexcore-9.7.1 → hexcore-9.7.2}/hexcore/application/use_cases/query.py +0 -0
  34. {hexcore-9.7.1 → hexcore-9.7.2}/hexcore/capabilities.py +0 -0
  35. {hexcore-9.7.1 → hexcore-9.7.2}/hexcore/config.py +0 -0
  36. {hexcore-9.7.1 → hexcore-9.7.2}/hexcore/cqrs.py +0 -0
  37. {hexcore-9.7.1 → hexcore-9.7.2}/hexcore/cqrs.pyi +0 -0
  38. {hexcore-9.7.1 → hexcore-9.7.2}/hexcore/darwin/__init__.py +0 -0
  39. {hexcore-9.7.1 → hexcore-9.7.2}/hexcore/darwin/__init__.pyi +0 -0
  40. {hexcore-9.7.1 → hexcore-9.7.2}/hexcore/darwin/application/__init__.py +0 -0
  41. {hexcore-9.7.1 → hexcore-9.7.2}/hexcore/darwin/application/commands.py +0 -0
  42. {hexcore-9.7.1 → hexcore-9.7.2}/hexcore/darwin/application/config.py +0 -0
  43. {hexcore-9.7.1 → hexcore-9.7.2}/hexcore/darwin/application/container.py +0 -0
  44. {hexcore-9.7.1 → hexcore-9.7.2}/hexcore/darwin/application/hooks.py +0 -0
  45. {hexcore-9.7.1 → hexcore-9.7.2}/hexcore/darwin/application/plugins.py +0 -0
  46. {hexcore-9.7.1 → hexcore-9.7.2}/hexcore/darwin/application/services.py +0 -0
  47. {hexcore-9.7.1 → hexcore-9.7.2}/hexcore/darwin/domain/__init__.py +0 -0
  48. {hexcore-9.7.1 → hexcore-9.7.2}/hexcore/darwin/domain/context.py +0 -0
  49. {hexcore-9.7.1 → hexcore-9.7.2}/hexcore/darwin/domain/entities.py +0 -0
  50. {hexcore-9.7.1 → hexcore-9.7.2}/hexcore/darwin/domain/events.py +0 -0
  51. {hexcore-9.7.1 → hexcore-9.7.2}/hexcore/darwin/domain/exceptions.py +0 -0
  52. {hexcore-9.7.1 → hexcore-9.7.2}/hexcore/darwin/domain/permissions.py +0 -0
  53. {hexcore-9.7.1 → hexcore-9.7.2}/hexcore/darwin/domain/plugins.py +0 -0
  54. {hexcore-9.7.1 → hexcore-9.7.2}/hexcore/darwin/domain/ports.py +0 -0
  55. {hexcore-9.7.1 → hexcore-9.7.2}/hexcore/darwin/domain/value_objects.py +0 -0
  56. {hexcore-9.7.1 → hexcore-9.7.2}/hexcore/darwin/infrastructure/__init__.py +0 -0
  57. {hexcore-9.7.1 → hexcore-9.7.2}/hexcore/darwin/infrastructure/api/__init__.py +0 -0
  58. {hexcore-9.7.1 → hexcore-9.7.2}/hexcore/darwin/infrastructure/api/dependencies.py +0 -0
  59. {hexcore-9.7.1 → hexcore-9.7.2}/hexcore/darwin/infrastructure/api/middlewares.py +0 -0
  60. {hexcore-9.7.1 → hexcore-9.7.2}/hexcore/darwin/infrastructure/api/routers.py +0 -0
  61. {hexcore-9.7.1 → hexcore-9.7.2}/hexcore/darwin/infrastructure/cli.py +0 -0
  62. {hexcore-9.7.1 → hexcore-9.7.2}/hexcore/darwin/infrastructure/clock.py +0 -0
  63. {hexcore-9.7.1 → hexcore-9.7.2}/hexcore/darwin/infrastructure/envelope.py +0 -0
  64. {hexcore-9.7.1 → hexcore-9.7.2}/hexcore/darwin/infrastructure/hashing.py +0 -0
  65. {hexcore-9.7.1 → hexcore-9.7.2}/hexcore/darwin/infrastructure/keys.py +0 -0
  66. {hexcore-9.7.1 → hexcore-9.7.2}/hexcore/darwin/infrastructure/lifespan.py +0 -0
  67. {hexcore-9.7.1 → hexcore-9.7.2}/hexcore/darwin/infrastructure/orms/__init__.py +0 -0
  68. {hexcore-9.7.1 → hexcore-9.7.2}/hexcore/darwin/infrastructure/orms/beanie/__init__.py +0 -0
  69. {hexcore-9.7.1 → hexcore-9.7.2}/hexcore/darwin/infrastructure/orms/beanie/documents.py +0 -0
  70. {hexcore-9.7.1 → hexcore-9.7.2}/hexcore/darwin/infrastructure/orms/beanie/repositories.py +0 -0
  71. {hexcore-9.7.1 → hexcore-9.7.2}/hexcore/darwin/infrastructure/orms/beanie/schema.py +0 -0
  72. {hexcore-9.7.1 → hexcore-9.7.2}/hexcore/darwin/infrastructure/orms/selection.py +0 -0
  73. {hexcore-9.7.1 → hexcore-9.7.2}/hexcore/darwin/infrastructure/orms/sqlalchemy/__init__.py +0 -0
  74. {hexcore-9.7.1 → hexcore-9.7.2}/hexcore/darwin/infrastructure/orms/sqlalchemy/models.py +0 -0
  75. {hexcore-9.7.1 → hexcore-9.7.2}/hexcore/darwin/infrastructure/orms/sqlalchemy/models_mixins.py +0 -0
  76. {hexcore-9.7.1 → hexcore-9.7.2}/hexcore/darwin/infrastructure/orms/sqlalchemy/repositories.py +0 -0
  77. {hexcore-9.7.1 → hexcore-9.7.2}/hexcore/darwin/infrastructure/orms/sqlalchemy/schema.py +0 -0
  78. {hexcore-9.7.1 → hexcore-9.7.2}/hexcore/darwin/infrastructure/revocation.py +0 -0
  79. {hexcore-9.7.1 → hexcore-9.7.2}/hexcore/darwin/infrastructure/secretbox.py +0 -0
  80. {hexcore-9.7.1 → hexcore-9.7.2}/hexcore/darwin/infrastructure/tokens.py +0 -0
  81. {hexcore-9.7.1 → hexcore-9.7.2}/hexcore/darwin/infrastructure/transports.py +0 -0
  82. {hexcore-9.7.1 → hexcore-9.7.2}/hexcore/darwin/plugins/__init__.py +0 -0
  83. {hexcore-9.7.1 → hexcore-9.7.2}/hexcore/darwin/plugins/impersonate/__init__.py +0 -0
  84. {hexcore-9.7.1 → hexcore-9.7.2}/hexcore/darwin/plugins/impersonate/commands.py +0 -0
  85. {hexcore-9.7.1 → hexcore-9.7.2}/hexcore/darwin/plugins/impersonate/domain.py +0 -0
  86. {hexcore-9.7.1 → hexcore-9.7.2}/hexcore/darwin/plugins/impersonate/router.py +0 -0
  87. {hexcore-9.7.1 → hexcore-9.7.2}/hexcore/darwin/plugins/impersonate/service.py +0 -0
  88. {hexcore-9.7.1 → hexcore-9.7.2}/hexcore/darwin/plugins/magic_link/__init__.py +0 -0
  89. {hexcore-9.7.1 → hexcore-9.7.2}/hexcore/darwin/plugins/magic_link/commands.py +0 -0
  90. {hexcore-9.7.1 → hexcore-9.7.2}/hexcore/darwin/plugins/magic_link/router.py +0 -0
  91. {hexcore-9.7.1 → hexcore-9.7.2}/hexcore/darwin/plugins/oauth/__init__.py +0 -0
  92. {hexcore-9.7.1 → hexcore-9.7.2}/hexcore/darwin/plugins/oauth/domain.py +0 -0
  93. {hexcore-9.7.1 → hexcore-9.7.2}/hexcore/darwin/plugins/oauth/http.py +0 -0
  94. {hexcore-9.7.1 → hexcore-9.7.2}/hexcore/darwin/plugins/oauth/orms/__init__.py +0 -0
  95. {hexcore-9.7.1 → hexcore-9.7.2}/hexcore/darwin/plugins/oauth/orms/beanie/__init__.py +0 -0
  96. {hexcore-9.7.1 → hexcore-9.7.2}/hexcore/darwin/plugins/oauth/orms/beanie/repository.py +0 -0
  97. {hexcore-9.7.1 → hexcore-9.7.2}/hexcore/darwin/plugins/oauth/orms/sqlalchemy/__init__.py +0 -0
  98. {hexcore-9.7.1 → hexcore-9.7.2}/hexcore/darwin/plugins/oauth/orms/sqlalchemy/models.py +0 -0
  99. {hexcore-9.7.1 → hexcore-9.7.2}/hexcore/darwin/plugins/oauth/orms/sqlalchemy/models_mixins.py +0 -0
  100. {hexcore-9.7.1 → hexcore-9.7.2}/hexcore/darwin/plugins/oauth/orms/sqlalchemy/repository.py +0 -0
  101. {hexcore-9.7.1 → hexcore-9.7.2}/hexcore/darwin/plugins/oauth/providers.py +0 -0
  102. {hexcore-9.7.1 → hexcore-9.7.2}/hexcore/darwin/plugins/oauth/router.py +0 -0
  103. {hexcore-9.7.1 → hexcore-9.7.2}/hexcore/darwin/plugins/oauth/service.py +0 -0
  104. {hexcore-9.7.1 → hexcore-9.7.2}/hexcore/darwin/plugins/organization/__init__.py +0 -0
  105. {hexcore-9.7.1 → hexcore-9.7.2}/hexcore/darwin/plugins/organization/domain.py +0 -0
  106. {hexcore-9.7.1 → hexcore-9.7.2}/hexcore/darwin/plugins/organization/orms/__init__.py +0 -0
  107. {hexcore-9.7.1 → hexcore-9.7.2}/hexcore/darwin/plugins/organization/orms/beanie/__init__.py +0 -0
  108. {hexcore-9.7.1 → hexcore-9.7.2}/hexcore/darwin/plugins/organization/orms/beanie/repository.py +0 -0
  109. {hexcore-9.7.1 → hexcore-9.7.2}/hexcore/darwin/plugins/organization/orms/sqlalchemy/__init__.py +0 -0
  110. {hexcore-9.7.1 → hexcore-9.7.2}/hexcore/darwin/plugins/organization/orms/sqlalchemy/models.py +0 -0
  111. {hexcore-9.7.1 → hexcore-9.7.2}/hexcore/darwin/plugins/organization/orms/sqlalchemy/models_mixins.py +0 -0
  112. {hexcore-9.7.1 → hexcore-9.7.2}/hexcore/darwin/plugins/organization/orms/sqlalchemy/repository.py +0 -0
  113. {hexcore-9.7.1 → hexcore-9.7.2}/hexcore/darwin/plugins/organization/router.py +0 -0
  114. {hexcore-9.7.1 → hexcore-9.7.2}/hexcore/darwin/plugins/organization/service.py +0 -0
  115. {hexcore-9.7.1 → hexcore-9.7.2}/hexcore/darwin/plugins/passkey/__init__.py +0 -0
  116. {hexcore-9.7.1 → hexcore-9.7.2}/hexcore/darwin/plugins/passkey/domain.py +0 -0
  117. {hexcore-9.7.1 → hexcore-9.7.2}/hexcore/darwin/plugins/passkey/orms/__init__.py +0 -0
  118. {hexcore-9.7.1 → hexcore-9.7.2}/hexcore/darwin/plugins/passkey/orms/beanie/__init__.py +0 -0
  119. {hexcore-9.7.1 → hexcore-9.7.2}/hexcore/darwin/plugins/passkey/orms/beanie/repository.py +0 -0
  120. {hexcore-9.7.1 → hexcore-9.7.2}/hexcore/darwin/plugins/passkey/orms/sqlalchemy/__init__.py +0 -0
  121. {hexcore-9.7.1 → hexcore-9.7.2}/hexcore/darwin/plugins/passkey/orms/sqlalchemy/models.py +0 -0
  122. {hexcore-9.7.1 → hexcore-9.7.2}/hexcore/darwin/plugins/passkey/orms/sqlalchemy/models_mixins.py +0 -0
  123. {hexcore-9.7.1 → hexcore-9.7.2}/hexcore/darwin/plugins/passkey/orms/sqlalchemy/repository.py +0 -0
  124. {hexcore-9.7.1 → hexcore-9.7.2}/hexcore/darwin/plugins/passkey/router.py +0 -0
  125. {hexcore-9.7.1 → hexcore-9.7.2}/hexcore/darwin/plugins/passkey/service.py +0 -0
  126. {hexcore-9.7.1 → hexcore-9.7.2}/hexcore/darwin/plugins/passkey/webauthn_adapter.py +0 -0
  127. {hexcore-9.7.1 → hexcore-9.7.2}/hexcore/darwin/plugins/storage.py +0 -0
  128. {hexcore-9.7.1 → hexcore-9.7.2}/hexcore/darwin/plugins/two_factor/__init__.py +0 -0
  129. {hexcore-9.7.1 → hexcore-9.7.2}/hexcore/darwin/plugins/two_factor/commands.py +0 -0
  130. {hexcore-9.7.1 → hexcore-9.7.2}/hexcore/darwin/plugins/two_factor/crypto.py +0 -0
  131. {hexcore-9.7.1 → hexcore-9.7.2}/hexcore/darwin/plugins/two_factor/domain.py +0 -0
  132. {hexcore-9.7.1 → hexcore-9.7.2}/hexcore/darwin/plugins/two_factor/orms/__init__.py +0 -0
  133. {hexcore-9.7.1 → hexcore-9.7.2}/hexcore/darwin/plugins/two_factor/orms/beanie/__init__.py +0 -0
  134. {hexcore-9.7.1 → hexcore-9.7.2}/hexcore/darwin/plugins/two_factor/orms/beanie/repository.py +0 -0
  135. {hexcore-9.7.1 → hexcore-9.7.2}/hexcore/darwin/plugins/two_factor/orms/sqlalchemy/__init__.py +0 -0
  136. {hexcore-9.7.1 → hexcore-9.7.2}/hexcore/darwin/plugins/two_factor/orms/sqlalchemy/models.py +0 -0
  137. {hexcore-9.7.1 → hexcore-9.7.2}/hexcore/darwin/plugins/two_factor/orms/sqlalchemy/models_mixins.py +0 -0
  138. {hexcore-9.7.1 → hexcore-9.7.2}/hexcore/darwin/plugins/two_factor/orms/sqlalchemy/repository.py +0 -0
  139. {hexcore-9.7.1 → hexcore-9.7.2}/hexcore/darwin/plugins/two_factor/router.py +0 -0
  140. {hexcore-9.7.1 → hexcore-9.7.2}/hexcore/darwin/plugins/two_factor/service.py +0 -0
  141. {hexcore-9.7.1 → hexcore-9.7.2}/hexcore/darwin/plugins/two_factor/totp.py +0 -0
  142. {hexcore-9.7.1 → hexcore-9.7.2}/hexcore/darwin/testing/__init__.py +0 -0
  143. {hexcore-9.7.1 → hexcore-9.7.2}/hexcore/darwin/testing/fakes.py +0 -0
  144. {hexcore-9.7.1 → hexcore-9.7.2}/hexcore/darwin/testing/fixtures.py +0 -0
  145. {hexcore-9.7.1 → hexcore-9.7.2}/hexcore/darwin/testing/helpers.py +0 -0
  146. {hexcore-9.7.1 → hexcore-9.7.2}/hexcore/domain/__init__.py +0 -0
  147. {hexcore-9.7.1 → hexcore-9.7.2}/hexcore/domain/auth/__init__.py +0 -0
  148. {hexcore-9.7.1 → hexcore-9.7.2}/hexcore/domain/auth/permissions.py +0 -0
  149. {hexcore-9.7.1 → hexcore-9.7.2}/hexcore/domain/auth/value_objects.py +0 -0
  150. {hexcore-9.7.1 → hexcore-9.7.2}/hexcore/domain/base.py +0 -0
  151. {hexcore-9.7.1 → hexcore-9.7.2}/hexcore/domain/cqrs/__init__.py +0 -0
  152. {hexcore-9.7.1 → hexcore-9.7.2}/hexcore/domain/cqrs/buses.py +0 -0
  153. {hexcore-9.7.1 → hexcore-9.7.2}/hexcore/domain/cqrs/commands.py +0 -0
  154. {hexcore-9.7.1 → hexcore-9.7.2}/hexcore/domain/cqrs/context.py +0 -0
  155. {hexcore-9.7.1 → hexcore-9.7.2}/hexcore/domain/cqrs/cron.py +0 -0
  156. {hexcore-9.7.1 → hexcore-9.7.2}/hexcore/domain/cqrs/decorators.py +0 -0
  157. {hexcore-9.7.1 → hexcore-9.7.2}/hexcore/domain/cqrs/dispatch.py +0 -0
  158. {hexcore-9.7.1 → hexcore-9.7.2}/hexcore/domain/cqrs/envelope.py +0 -0
  159. {hexcore-9.7.1 → hexcore-9.7.2}/hexcore/domain/cqrs/exceptions.py +0 -0
  160. {hexcore-9.7.1 → hexcore-9.7.2}/hexcore/domain/cqrs/handlers.py +0 -0
  161. {hexcore-9.7.1 → hexcore-9.7.2}/hexcore/domain/cqrs/middleware.py +0 -0
  162. {hexcore-9.7.1 → hexcore-9.7.2}/hexcore/domain/cqrs/queries.py +0 -0
  163. {hexcore-9.7.1 → hexcore-9.7.2}/hexcore/domain/cqrs/resolution.py +0 -0
  164. {hexcore-9.7.1 → hexcore-9.7.2}/hexcore/domain/cqrs/serializer.py +0 -0
  165. {hexcore-9.7.1 → hexcore-9.7.2}/hexcore/domain/cqrs/task_queues.py +0 -0
  166. {hexcore-9.7.1 → hexcore-9.7.2}/hexcore/domain/events.py +0 -0
  167. {hexcore-9.7.1 → hexcore-9.7.2}/hexcore/domain/eventsourcing/__init__.py +0 -0
  168. {hexcore-9.7.1 → hexcore-9.7.2}/hexcore/domain/eventsourcing/aggregate.py +0 -0
  169. {hexcore-9.7.1 → hexcore-9.7.2}/hexcore/domain/eventsourcing/exceptions.py +0 -0
  170. {hexcore-9.7.1 → hexcore-9.7.2}/hexcore/domain/eventsourcing/projections.py +0 -0
  171. {hexcore-9.7.1 → hexcore-9.7.2}/hexcore/domain/eventsourcing/snapshots.py +0 -0
  172. {hexcore-9.7.1 → hexcore-9.7.2}/hexcore/domain/eventsourcing/store.py +0 -0
  173. {hexcore-9.7.1 → hexcore-9.7.2}/hexcore/domain/eventsourcing/stored.py +0 -0
  174. {hexcore-9.7.1 → hexcore-9.7.2}/hexcore/domain/exceptions.py +0 -0
  175. {hexcore-9.7.1 → hexcore-9.7.2}/hexcore/domain/repositories.py +0 -0
  176. {hexcore-9.7.1 → hexcore-9.7.2}/hexcore/domain/services.py +0 -0
  177. {hexcore-9.7.1 → hexcore-9.7.2}/hexcore/domain/uow.py +0 -0
  178. {hexcore-9.7.1 → hexcore-9.7.2}/hexcore/eventsourcing.py +0 -0
  179. {hexcore-9.7.1 → hexcore-9.7.2}/hexcore/eventsourcing.pyi +0 -0
  180. {hexcore-9.7.1 → hexcore-9.7.2}/hexcore/fastapi.py +0 -0
  181. {hexcore-9.7.1 → hexcore-9.7.2}/hexcore/fastapi.pyi +0 -0
  182. {hexcore-9.7.1 → hexcore-9.7.2}/hexcore/infrastructure/__init__.py +0 -0
  183. {hexcore-9.7.1 → hexcore-9.7.2}/hexcore/infrastructure/api/__init__.py +0 -0
  184. {hexcore-9.7.1 → hexcore-9.7.2}/hexcore/infrastructure/api/app.py +0 -0
  185. {hexcore-9.7.1 → hexcore-9.7.2}/hexcore/infrastructure/api/cqrs.py +0 -0
  186. {hexcore-9.7.1 → hexcore-9.7.2}/hexcore/infrastructure/api/eventsourcing.py +0 -0
  187. {hexcore-9.7.1 → hexcore-9.7.2}/hexcore/infrastructure/api/exception_handlers.py +0 -0
  188. {hexcore-9.7.1 → hexcore-9.7.2}/hexcore/infrastructure/api/health.py +0 -0
  189. {hexcore-9.7.1 → hexcore-9.7.2}/hexcore/infrastructure/api/lifespan.py +0 -0
  190. {hexcore-9.7.1 → hexcore-9.7.2}/hexcore/infrastructure/api/middlewares.py +0 -0
  191. {hexcore-9.7.1 → hexcore-9.7.2}/hexcore/infrastructure/api/rate_limit.py +0 -0
  192. {hexcore-9.7.1 → hexcore-9.7.2}/hexcore/infrastructure/api/routing.py +0 -0
  193. {hexcore-9.7.1 → hexcore-9.7.2}/hexcore/infrastructure/api/streaming.py +0 -0
  194. {hexcore-9.7.1 → hexcore-9.7.2}/hexcore/infrastructure/api/utils.py +0 -0
  195. {hexcore-9.7.1 → hexcore-9.7.2}/hexcore/infrastructure/cache/__init__.py +0 -0
  196. {hexcore-9.7.1 → hexcore-9.7.2}/hexcore/infrastructure/cache/cache_backends/__init__.py +0 -0
  197. {hexcore-9.7.1 → hexcore-9.7.2}/hexcore/infrastructure/cache/cache_backends/memory.py +0 -0
  198. {hexcore-9.7.1 → hexcore-9.7.2}/hexcore/infrastructure/cache/cache_backends/redis.py +0 -0
  199. {hexcore-9.7.1 → hexcore-9.7.2}/hexcore/infrastructure/cli.py +0 -0
  200. {hexcore-9.7.1 → hexcore-9.7.2}/hexcore/infrastructure/cqrs/__init__.py +0 -0
  201. {hexcore-9.7.1 → hexcore-9.7.2}/hexcore/infrastructure/cqrs/cron_sql.py +0 -0
  202. {hexcore-9.7.1 → hexcore-9.7.2}/hexcore/infrastructure/cqrs/middlewares.py +0 -0
  203. {hexcore-9.7.1 → hexcore-9.7.2}/hexcore/infrastructure/cqrs/postgres_bus.py +0 -0
  204. {hexcore-9.7.1 → hexcore-9.7.2}/hexcore/infrastructure/cqrs/postgres_lock.py +0 -0
  205. {hexcore-9.7.1 → hexcore-9.7.2}/hexcore/infrastructure/cqrs/procrastinate.py +0 -0
  206. {hexcore-9.7.1 → hexcore-9.7.2}/hexcore/infrastructure/cqrs/pydantic_serializer.py +0 -0
  207. {hexcore-9.7.1 → hexcore-9.7.2}/hexcore/infrastructure/cqrs/rabbitmq.py +0 -0
  208. {hexcore-9.7.1 → hexcore-9.7.2}/hexcore/infrastructure/cqrs/redis_bus.py +0 -0
  209. {hexcore-9.7.1 → hexcore-9.7.2}/hexcore/infrastructure/cqrs/redis_lock.py +0 -0
  210. {hexcore-9.7.1 → hexcore-9.7.2}/hexcore/infrastructure/events/__init__.py +0 -0
  211. {hexcore-9.7.1 → hexcore-9.7.2}/hexcore/infrastructure/events/events_backends/__init__.py +0 -0
  212. {hexcore-9.7.1 → hexcore-9.7.2}/hexcore/infrastructure/events/events_backends/memory.py +0 -0
  213. {hexcore-9.7.1 → hexcore-9.7.2}/hexcore/infrastructure/eventsourcing/__init__.py +0 -0
  214. {hexcore-9.7.1 → hexcore-9.7.2}/hexcore/infrastructure/eventsourcing/beanie_documents.py +0 -0
  215. {hexcore-9.7.1 → hexcore-9.7.2}/hexcore/infrastructure/eventsourcing/beanie_store.py +0 -0
  216. {hexcore-9.7.1 → hexcore-9.7.2}/hexcore/infrastructure/eventsourcing/memory.py +0 -0
  217. {hexcore-9.7.1 → hexcore-9.7.2}/hexcore/infrastructure/eventsourcing/redis_store.py +0 -0
  218. {hexcore-9.7.1 → hexcore-9.7.2}/hexcore/infrastructure/eventsourcing/sqlalchemy_models.py +0 -0
  219. {hexcore-9.7.1 → hexcore-9.7.2}/hexcore/infrastructure/eventsourcing/sqlalchemy_models_mixins.py +0 -0
  220. {hexcore-9.7.1 → hexcore-9.7.2}/hexcore/infrastructure/eventsourcing/sqlalchemy_store.py +0 -0
  221. {hexcore-9.7.1 → hexcore-9.7.2}/hexcore/infrastructure/repositories/__init__.py +0 -0
  222. {hexcore-9.7.1 → hexcore-9.7.2}/hexcore/infrastructure/repositories/_beanie_impl.py +0 -0
  223. {hexcore-9.7.1 → hexcore-9.7.2}/hexcore/infrastructure/repositories/_sqlalchemy_impl.py +0 -0
  224. {hexcore-9.7.1 → hexcore-9.7.2}/hexcore/infrastructure/repositories/base.py +0 -0
  225. {hexcore-9.7.1 → hexcore-9.7.2}/hexcore/infrastructure/repositories/decorators.py +0 -0
  226. {hexcore-9.7.1 → hexcore-9.7.2}/hexcore/infrastructure/repositories/implementations.py +0 -0
  227. {hexcore-9.7.1 → hexcore-9.7.2}/hexcore/infrastructure/repositories/orms/__init__.py +0 -0
  228. {hexcore-9.7.1 → hexcore-9.7.2}/hexcore/infrastructure/repositories/orms/beanie/__init__.py +0 -0
  229. {hexcore-9.7.1 → hexcore-9.7.2}/hexcore/infrastructure/repositories/orms/beanie/utils.py +0 -0
  230. {hexcore-9.7.1 → hexcore-9.7.2}/hexcore/infrastructure/repositories/orms/sqlalchemy/__init__.py +0 -0
  231. {hexcore-9.7.1 → hexcore-9.7.2}/hexcore/infrastructure/repositories/orms/sqlalchemy/session.py +0 -0
  232. {hexcore-9.7.1 → hexcore-9.7.2}/hexcore/infrastructure/repositories/orms/sqlalchemy/utils.py +0 -0
  233. {hexcore-9.7.1 → hexcore-9.7.2}/hexcore/infrastructure/repositories/utils.py +0 -0
  234. {hexcore-9.7.1 → hexcore-9.7.2}/hexcore/infrastructure/task_queues/__init__.py +0 -0
  235. {hexcore-9.7.1 → hexcore-9.7.2}/hexcore/infrastructure/task_queues/celery_adapter.py +0 -0
  236. {hexcore-9.7.1 → hexcore-9.7.2}/hexcore/infrastructure/task_queues/procrastinate_adapter.py +0 -0
  237. {hexcore-9.7.1 → hexcore-9.7.2}/hexcore/infrastructure/uow/__init__.py +0 -0
  238. {hexcore-9.7.1 → hexcore-9.7.2}/hexcore/infrastructure/uow/decorators.py +0 -0
  239. {hexcore-9.7.1 → hexcore-9.7.2}/hexcore/infrastructure/uow/helpers.py +0 -0
  240. {hexcore-9.7.1 → hexcore-9.7.2}/hexcore/infrastructure/uow/scopes.py +0 -0
  241. {hexcore-9.7.1 → hexcore-9.7.2}/hexcore/infrastructure/workers/__init__.py +0 -0
  242. {hexcore-9.7.1 → hexcore-9.7.2}/hexcore/infrastructure/workers/consumer.py +0 -0
  243. {hexcore-9.7.1 → hexcore-9.7.2}/hexcore/infrastructure/workers/rabbitmq_worker.py +0 -0
  244. {hexcore-9.7.1 → hexcore-9.7.2}/hexcore/infrastructure/workers/runner.py +0 -0
  245. {hexcore-9.7.1 → hexcore-9.7.2}/hexcore/py.typed +0 -0
  246. {hexcore-9.7.1 → hexcore-9.7.2}/hexcore/sql.py +0 -0
  247. {hexcore-9.7.1 → hexcore-9.7.2}/hexcore/sql.pyi +0 -0
  248. {hexcore-9.7.1 → hexcore-9.7.2}/hexcore/testing/__init__.py +0 -0
  249. {hexcore-9.7.1 → hexcore-9.7.2}/hexcore/testing/fakes.py +0 -0
  250. {hexcore-9.7.1 → hexcore-9.7.2}/hexcore/testing/fixtures.py +0 -0
  251. {hexcore-9.7.1 → hexcore-9.7.2}/hexcore/testing/helpers.py +0 -0
  252. {hexcore-9.7.1 → hexcore-9.7.2}/hexcore/testing/repositories.py +0 -0
  253. {hexcore-9.7.1 → hexcore-9.7.2}/hexcore/types.py +0 -0
  254. {hexcore-9.7.1 → hexcore-9.7.2}/hexcore.egg-info/SOURCES.txt +0 -0
  255. {hexcore-9.7.1 → hexcore-9.7.2}/hexcore.egg-info/dependency_links.txt +0 -0
  256. {hexcore-9.7.1 → hexcore-9.7.2}/hexcore.egg-info/entry_points.txt +0 -0
  257. {hexcore-9.7.1 → hexcore-9.7.2}/hexcore.egg-info/requires.txt +0 -0
  258. {hexcore-9.7.1 → hexcore-9.7.2}/hexcore.egg-info/top_level.txt +0 -0
  259. {hexcore-9.7.1 → hexcore-9.7.2}/setup.cfg +0 -0
  260. {hexcore-9.7.1 → hexcore-9.7.2}/tests/test_alembic_metadata_completeness.py +0 -0
  261. {hexcore-9.7.1 → hexcore-9.7.2}/tests/test_anclas_del_repo.py +0 -0
  262. {hexcore-9.7.1 → hexcore-9.7.2}/tests/test_api_app_and_lifespan.py +0 -0
  263. {hexcore-9.7.1 → hexcore-9.7.2}/tests/test_api_cqrs_providers.py +0 -0
  264. {hexcore-9.7.1 → hexcore-9.7.2}/tests/test_api_exception_handlers.py +0 -0
  265. {hexcore-9.7.1 → hexcore-9.7.2}/tests/test_api_health.py +0 -0
  266. {hexcore-9.7.1 → hexcore-9.7.2}/tests/test_api_middlewares_and_routing.py +0 -0
  267. {hexcore-9.7.1 → hexcore-9.7.2}/tests/test_api_rate_limit.py +0 -0
  268. {hexcore-9.7.1 → hexcore-9.7.2}/tests/test_api_streaming.py +0 -0
  269. {hexcore-9.7.1 → hexcore-9.7.2}/tests/test_basic.py +0 -0
  270. {hexcore-9.7.1 → hexcore-9.7.2}/tests/test_beanie_query_utils.py +0 -0
  271. {hexcore-9.7.1 → hexcore-9.7.2}/tests/test_celery_event_loop.py +0 -0
  272. {hexcore-9.7.1 → hexcore-9.7.2}/tests/test_config_cors_security.py +0 -0
  273. {hexcore-9.7.1 → hexcore-9.7.2}/tests/test_config_loading.py +0 -0
  274. {hexcore-9.7.1 → hexcore-9.7.2}/tests/test_consumer_optional_event_bus.py +0 -0
  275. {hexcore-9.7.1 → hexcore-9.7.2}/tests/test_cqrs.py +0 -0
  276. {hexcore-9.7.1 → hexcore-9.7.2}/tests/test_cqrs_envelope.py +0 -0
  277. {hexcore-9.7.1 → hexcore-9.7.2}/tests/test_cqrs_factory.py +0 -0
  278. {hexcore-9.7.1 → hexcore-9.7.2}/tests/test_cqrs_middlewares.py +0 -0
  279. {hexcore-9.7.1 → hexcore-9.7.2}/tests/test_cron_sql.py +0 -0
  280. {hexcore-9.7.1 → hexcore-9.7.2}/tests/test_darwin_backend_neutrality.py +0 -0
  281. {hexcore-9.7.1 → hexcore-9.7.2}/tests/test_darwin_beanie.py +0 -0
  282. {hexcore-9.7.1 → hexcore-9.7.2}/tests/test_darwin_cli.py +0 -0
  283. {hexcore-9.7.1 → hexcore-9.7.2}/tests/test_darwin_container.py +0 -0
  284. {hexcore-9.7.1 → hexcore-9.7.2}/tests/test_darwin_context.py +0 -0
  285. {hexcore-9.7.1 → hexcore-9.7.2}/tests/test_darwin_custom_plugin.py +0 -0
  286. {hexcore-9.7.1 → hexcore-9.7.2}/tests/test_darwin_envelope.py +0 -0
  287. {hexcore-9.7.1 → hexcore-9.7.2}/tests/test_darwin_facade_and_events.py +0 -0
  288. {hexcore-9.7.1 → hexcore-9.7.2}/tests/test_darwin_flows.py +0 -0
  289. {hexcore-9.7.1 → hexcore-9.7.2}/tests/test_darwin_hashing.py +0 -0
  290. {hexcore-9.7.1 → hexcore-9.7.2}/tests/test_darwin_http.py +0 -0
  291. {hexcore-9.7.1 → hexcore-9.7.2}/tests/test_darwin_impersonate.py +0 -0
  292. {hexcore-9.7.1 → hexcore-9.7.2}/tests/test_darwin_magic_link.py +0 -0
  293. {hexcore-9.7.1 → hexcore-9.7.2}/tests/test_darwin_models.py +0 -0
  294. {hexcore-9.7.1 → hexcore-9.7.2}/tests/test_darwin_oauth.py +0 -0
  295. {hexcore-9.7.1 → hexcore-9.7.2}/tests/test_darwin_openapi.py +0 -0
  296. {hexcore-9.7.1 → hexcore-9.7.2}/tests/test_darwin_organization.py +0 -0
  297. {hexcore-9.7.1 → hexcore-9.7.2}/tests/test_darwin_passkey.py +0 -0
  298. {hexcore-9.7.1 → hexcore-9.7.2}/tests/test_darwin_permissions.py +0 -0
  299. {hexcore-9.7.1 → hexcore-9.7.2}/tests/test_darwin_plugin_decoupling.py +0 -0
  300. {hexcore-9.7.1 → hexcore-9.7.2}/tests/test_darwin_plugins.py +0 -0
  301. {hexcore-9.7.1 → hexcore-9.7.2}/tests/test_darwin_repositories.py +0 -0
  302. {hexcore-9.7.1 → hexcore-9.7.2}/tests/test_darwin_revocation.py +0 -0
  303. {hexcore-9.7.1 → hexcore-9.7.2}/tests/test_darwin_schema_registration.py +0 -0
  304. {hexcore-9.7.1 → hexcore-9.7.2}/tests/test_darwin_storage_selection.py +0 -0
  305. {hexcore-9.7.1 → hexcore-9.7.2}/tests/test_darwin_tokens.py +0 -0
  306. {hexcore-9.7.1 → hexcore-9.7.2}/tests/test_darwin_two_factor.py +0 -0
  307. {hexcore-9.7.1 → hexcore-9.7.2}/tests/test_darwin_value_objects.py +0 -0
  308. {hexcore-9.7.1 → hexcore-9.7.2}/tests/test_deprecations.py +0 -0
  309. {hexcore-9.7.1 → hexcore-9.7.2}/tests/test_domain_base_contract.py +0 -0
  310. {hexcore-9.7.1 → hexcore-9.7.2}/tests/test_domain_service_query.py +0 -0
  311. {hexcore-9.7.1 → hexcore-9.7.2}/tests/test_dotted_resolution.py +0 -0
  312. {hexcore-9.7.1 → hexcore-9.7.2}/tests/test_event_dispatch_mro.py +0 -0
  313. {hexcore-9.7.1 → hexcore-9.7.2}/tests/test_eventsourcing_aggregate.py +0 -0
  314. {hexcore-9.7.1 → hexcore-9.7.2}/tests/test_eventsourcing_beanie.py +0 -0
  315. {hexcore-9.7.1 → hexcore-9.7.2}/tests/test_eventsourcing_config.py +0 -0
  316. {hexcore-9.7.1 → hexcore-9.7.2}/tests/test_eventsourcing_ports.py +0 -0
  317. {hexcore-9.7.1 → hexcore-9.7.2}/tests/test_eventsourcing_projections.py +0 -0
  318. {hexcore-9.7.1 → hexcore-9.7.2}/tests/test_eventsourcing_redis.py +0 -0
  319. {hexcore-9.7.1 → hexcore-9.7.2}/tests/test_eventsourcing_relay.py +0 -0
  320. {hexcore-9.7.1 → hexcore-9.7.2}/tests/test_eventsourcing_repository.py +0 -0
  321. {hexcore-9.7.1 → hexcore-9.7.2}/tests/test_eventsourcing_snapshot_checkpoint.py +0 -0
  322. {hexcore-9.7.1 → hexcore-9.7.2}/tests/test_eventsourcing_sql_schema.py +0 -0
  323. {hexcore-9.7.1 → hexcore-9.7.2}/tests/test_eventsourcing_store_contract.py +0 -0
  324. {hexcore-9.7.1 → hexcore-9.7.2}/tests/test_eventsourcing_uow_integration.py +0 -0
  325. {hexcore-9.7.1 → hexcore-9.7.2}/tests/test_facades.py +0 -0
  326. {hexcore-9.7.1 → hexcore-9.7.2}/tests/test_handler_registry.py +0 -0
  327. {hexcore-9.7.1 → hexcore-9.7.2}/tests/test_infrastructure_query_path.py +0 -0
  328. {hexcore-9.7.1 → hexcore-9.7.2}/tests/test_lock_error_policy.py +0 -0
  329. {hexcore-9.7.1 → hexcore-9.7.2}/tests/test_optional_dependencies.py +0 -0
  330. {hexcore-9.7.1 → hexcore-9.7.2}/tests/test_packaging.py +0 -0
  331. {hexcore-9.7.1 → hexcore-9.7.2}/tests/test_postgres_bus.py +0 -0
  332. {hexcore-9.7.1 → hexcore-9.7.2}/tests/test_postgres_lock.py +0 -0
  333. {hexcore-9.7.1 → hexcore-9.7.2}/tests/test_query_cursor_and_endpoint.py +0 -0
  334. {hexcore-9.7.1 → hexcore-9.7.2}/tests/test_query_field_validation.py +0 -0
  335. {hexcore-9.7.1 → hexcore-9.7.2}/tests/test_rabbitmq_bus.py +0 -0
  336. {hexcore-9.7.1 → hexcore-9.7.2}/tests/test_redis_bus.py +0 -0
  337. {hexcore-9.7.1 → hexcore-9.7.2}/tests/test_redis_lock.py +0 -0
  338. {hexcore-9.7.1 → hexcore-9.7.2}/tests/test_repositories_utils.py +0 -0
  339. {hexcore-9.7.1 → hexcore-9.7.2}/tests/test_scheduler.py +0 -0
  340. {hexcore-9.7.1 → hexcore-9.7.2}/tests/test_scheduler_catchup.py +0 -0
  341. {hexcore-9.7.1 → hexcore-9.7.2}/tests/test_smart_routing.py +0 -0
  342. {hexcore-9.7.1 → hexcore-9.7.2}/tests/test_sql_naming_convention.py +0 -0
  343. {hexcore-9.7.1 → hexcore-9.7.2}/tests/test_sql_session_layer.py +0 -0
  344. {hexcore-9.7.1 → hexcore-9.7.2}/tests/test_task_queues_adapters.py +0 -0
  345. {hexcore-9.7.1 → hexcore-9.7.2}/tests/test_testing_kit.py +0 -0
  346. {hexcore-9.7.1 → hexcore-9.7.2}/tests/test_testing_utilities.py +0 -0
  347. {hexcore-9.7.1 → hexcore-9.7.2}/tests/test_typing_gate.py +0 -0
  348. {hexcore-9.7.1 → hexcore-9.7.2}/tests/test_uow_session_regression.py +0 -0
  349. {hexcore-9.7.1 → hexcore-9.7.2}/tests/test_use_cases_query.py +0 -0
  350. {hexcore-9.7.1 → hexcore-9.7.2}/tests/test_worker_bus_integration.py +0 -0
  351. {hexcore-9.7.1 → hexcore-9.7.2}/tests/test_worker_runner.py +0 -0
@@ -1,9 +1,15 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: hexcore
3
- Version: 9.7.1
3
+ Version: 9.7.2
4
4
  Summary: Reusable core for Python projects with hexagonal architecture, DDD, CQRS and background tasks. Ships the abstractions and the infrastructure: SQL session layer, FastAPI factories, worker runner, dynamic cron and identity.
5
5
  Author-email: "David Latosefki (Indroic)" <indroic@outlook.com>
6
6
  License-Expression: MIT
7
+ Project-URL: Homepage, https://github.com/Indroic/HexCore
8
+ Project-URL: Documentation, https://github.com/Indroic/HexCore/tree/master/docs/hexcore
9
+ Project-URL: Repository, https://github.com/Indroic/HexCore
10
+ Project-URL: Changelog, https://github.com/Indroic/HexCore/blob/master/CHANGELOG.md
11
+ Project-URL: Issues, https://github.com/Indroic/HexCore/issues
12
+ Keywords: hexagonal-architecture,ddd,cqrs,event-sourcing,fastapi,sqlalchemy,background-tasks,cron,authentication,identity
7
13
  Requires-Python: >=3.12
8
14
  Description-Content-Type: text/markdown
9
15
  License-File: LICENSE
@@ -73,7 +79,16 @@ Requires-Dist: httpx>=0.27.0; extra == "all"
73
79
  Requires-Dist: webauthn>=2.0.0; extra == "all"
74
80
  Dynamic: license-file
75
81
 
76
- # HexCore [![PyPI Downloads](https://static.pepy.tech/personalized-badge/hexcore?period=total&units=INTERNATIONAL_SYSTEM&left_color=BLACK&right_color=GREEN&left_text=downloads)](https://pepy.tech/projects/hexcore)
82
+ # HexCore
83
+
84
+ [![PyPI](https://img.shields.io/pypi/v/hexcore?color=blue)](https://pypi.org/project/hexcore/)
85
+ [![PyPI Downloads](https://static.pepy.tech/personalized-badge/hexcore?period=total&units=INTERNATIONAL_SYSTEM&left_color=BLACK&right_color=GREEN&left_text=downloads)](https://pepy.tech/projects/hexcore)
86
+ [![Python](https://img.shields.io/pypi/pyversions/hexcore)](https://pypi.org/project/hexcore/)
87
+ [![License](https://img.shields.io/pypi/l/hexcore)](https://github.com/Indroic/HexCore/blob/master/LICENSE)
88
+
89
+ 📖 **[Full documentation](https://github.com/Indroic/HexCore/tree/master/docs/hexcore/)** ·
90
+ 🐙 **[Repository](https://github.com/Indroic/HexCore)** ·
91
+ 🟦 **[TypeScript client for Darwin](https://github.com/Indroic/HexCore/tree/master/docs/darwin-client/)**
77
92
 
78
93
  A reusable core for Python applications built on **hexagonal architecture**, **DDD**, **CQRS**
79
94
  and **background tasks**. HexCore ships the abstractions (entities, repositories, unit of work,
@@ -85,7 +100,7 @@ arguments gives you a usable app, `init_engine()` with no arguments gives you a
85
100
  production-correct engine.
86
101
 
87
102
  > 🇪🇸 **¿Preferís español?** La documentación está completa en los dos idiomas:
88
- > **[docs/es/](./docs/es/)**.
103
+ > **[docs/es/](https://github.com/Indroic/HexCore/blob/master/docs/hexcore/es/)**.
89
104
 
90
105
  ```python
91
106
  # main.py — a complete HexCore app
@@ -113,26 +128,26 @@ await cqrs.run_procrastinate_worker(
113
128
 
114
129
  ## 📚 Documentation
115
130
 
116
- **→ [`docs/`](./docs/) — 🇬🇧 [English](./docs/en/) · 🇪🇸 [español](./docs/es/)**
131
+ **→ [`docs/`](https://github.com/Indroic/HexCore/tree/master/docs/hexcore/) — 🇬🇧 [English](https://github.com/Indroic/HexCore/blob/master/docs/hexcore/en/) · 🇪🇸 [español](https://github.com/Indroic/HexCore/blob/master/docs/hexcore/es/)**
117
132
 
118
133
  | | English | Español |
119
134
  | :-- | :-- | :-- |
120
- | Installation and extras | [installation](./docs/en/installation.md) | [instalacion](./docs/es/instalacion.md) |
121
- | Quickstart | [quickstart](./docs/en/quickstart.md) | [inicio-rapido](./docs/es/inicio-rapido.md) |
122
- | Configuration | [configuration](./docs/en/configuration.md) | [configuracion](./docs/es/configuracion.md) |
123
- | SQL layer | [sql](./docs/en/sql.md) | [sql](./docs/es/sql.md) |
124
- | Repositories and entities | [repositories](./docs/en/repositories.md) | [repositorios](./docs/es/repositorios.md) |
125
- | FastAPI utilities | [fastapi](./docs/en/fastapi.md) | [fastapi](./docs/es/fastapi.md) |
126
- | CQRS architecture | [cqrs](./docs/en/cqrs.md) | [cqrs](./docs/es/cqrs.md) |
127
- | Queues and workers | [queues-and-workers](./docs/en/queues-and-workers.md) | [colas-y-workers](./docs/es/colas-y-workers.md) |
128
- | Scheduled tasks | [cron](./docs/en/cron.md) | [cron](./docs/es/cron.md) |
129
- | **Event Sourcing** | [event-sourcing](./docs/en/event-sourcing.md) | [event-sourcing](./docs/es/event-sourcing.md) |
130
- | Testing | [testing](./docs/en/testing.md) | [testing](./docs/es/testing.md) |
131
- | CLI | [cli](./docs/en/cli.md) | [cli](./docs/es/cli.md) |
132
- | **Darwin** (identity) | [darwin/](./docs/en/darwin/) | [darwin/](./docs/es/darwin/) |
133
- | API reference | [reference](./docs/en/reference.md) | [referencia](./docs/es/referencia.md) |
134
- | Versions and migration | [versions-and-migration](./docs/en/versions-and-migration.md) | [versiones-y-migracion](./docs/es/versiones-y-migracion.md) |
135
- | Typing | [typing](./docs/en/typing.md) | [tipado](./docs/es/tipado.md) |
135
+ | Installation and extras | [installation](https://github.com/Indroic/HexCore/blob/master/docs/hexcore/en/installation.md) | [instalacion](https://github.com/Indroic/HexCore/blob/master/docs/hexcore/es/instalacion.md) |
136
+ | Quickstart | [quickstart](https://github.com/Indroic/HexCore/blob/master/docs/hexcore/en/quickstart.md) | [inicio-rapido](https://github.com/Indroic/HexCore/blob/master/docs/hexcore/es/inicio-rapido.md) |
137
+ | Configuration | [configuration](https://github.com/Indroic/HexCore/blob/master/docs/hexcore/en/configuration.md) | [configuracion](https://github.com/Indroic/HexCore/blob/master/docs/hexcore/es/configuracion.md) |
138
+ | SQL layer | [sql](https://github.com/Indroic/HexCore/blob/master/docs/hexcore/en/sql.md) | [sql](https://github.com/Indroic/HexCore/blob/master/docs/hexcore/es/sql.md) |
139
+ | Repositories and entities | [repositories](https://github.com/Indroic/HexCore/blob/master/docs/hexcore/en/repositories.md) | [repositorios](https://github.com/Indroic/HexCore/blob/master/docs/hexcore/es/repositorios.md) |
140
+ | FastAPI utilities | [fastapi](https://github.com/Indroic/HexCore/blob/master/docs/hexcore/en/fastapi.md) | [fastapi](https://github.com/Indroic/HexCore/blob/master/docs/hexcore/es/fastapi.md) |
141
+ | CQRS architecture | [cqrs](https://github.com/Indroic/HexCore/blob/master/docs/hexcore/en/cqrs.md) | [cqrs](https://github.com/Indroic/HexCore/blob/master/docs/hexcore/es/cqrs.md) |
142
+ | Queues and workers | [queues-and-workers](https://github.com/Indroic/HexCore/blob/master/docs/hexcore/en/queues-and-workers.md) | [colas-y-workers](https://github.com/Indroic/HexCore/blob/master/docs/hexcore/es/colas-y-workers.md) |
143
+ | Scheduled tasks | [cron](https://github.com/Indroic/HexCore/blob/master/docs/hexcore/en/cron.md) | [cron](https://github.com/Indroic/HexCore/blob/master/docs/hexcore/es/cron.md) |
144
+ | **Event Sourcing** | [event-sourcing](https://github.com/Indroic/HexCore/blob/master/docs/hexcore/en/event-sourcing.md) | [event-sourcing](https://github.com/Indroic/HexCore/blob/master/docs/hexcore/es/event-sourcing.md) |
145
+ | Testing | [testing](https://github.com/Indroic/HexCore/blob/master/docs/hexcore/en/testing.md) | [testing](https://github.com/Indroic/HexCore/blob/master/docs/hexcore/es/testing.md) |
146
+ | CLI | [cli](https://github.com/Indroic/HexCore/blob/master/docs/hexcore/en/cli.md) | [cli](https://github.com/Indroic/HexCore/blob/master/docs/hexcore/es/cli.md) |
147
+ | **Darwin** (identity) | [darwin/](https://github.com/Indroic/HexCore/blob/master/docs/hexcore/en/darwin/) | [darwin/](https://github.com/Indroic/HexCore/blob/master/docs/hexcore/es/darwin/) |
148
+ | API reference | [reference](https://github.com/Indroic/HexCore/blob/master/docs/hexcore/en/reference.md) | [referencia](https://github.com/Indroic/HexCore/blob/master/docs/hexcore/es/referencia.md) |
149
+ | Versions and migration | [versions-and-migration](https://github.com/Indroic/HexCore/blob/master/docs/hexcore/en/versions-and-migration.md) | [versiones-y-migracion](https://github.com/Indroic/HexCore/blob/master/docs/hexcore/es/versiones-y-migracion.md) |
150
+ | Typing | [typing](https://github.com/Indroic/HexCore/blob/master/docs/hexcore/en/typing.md) | [tipado](https://github.com/Indroic/HexCore/blob/master/docs/hexcore/es/tipado.md) |
136
151
 
137
152
  ---
138
153
 
@@ -158,7 +173,7 @@ pip install "hexcore[all]"
158
173
  | Everything | `all` |
159
174
 
160
175
  The full table, with what each one enables, is in
161
- [installation](./docs/en/installation.md) · [instalación](./docs/es/instalacion.md).
176
+ [installation](https://github.com/Indroic/HexCore/blob/master/docs/hexcore/en/installation.md) · [instalación](https://github.com/Indroic/HexCore/blob/master/docs/hexcore/es/instalacion.md).
162
177
 
163
178
  > `import hexcore.cqrs` works with no extras at all: name resolution is lazy, so
164
179
  > `hexcore.cqrs.SqlAlchemyCronJobRepository` only requires `[sql]` at the moment you ask for it.
@@ -228,7 +243,7 @@ app = create_app(
228
243
  ```
229
244
 
230
245
  ⚠️ If you use SQL, the most important thing to read before deploying is the Alembic section:
231
- [storage](./docs/en/darwin/storage.md) · [almacenamiento](./docs/es/darwin/almacenamiento.md).
246
+ [storage](https://github.com/Indroic/HexCore/blob/master/docs/hexcore/en/darwin/storage.md) · [almacenamiento](https://github.com/Indroic/HexCore/blob/master/docs/hexcore/es/darwin/almacenamiento.md).
232
247
  A plugin missing from your `env.py` makes `alembic revision --autogenerate` emit
233
248
  `op.drop_table` for its tables.
234
249
 
@@ -245,7 +260,7 @@ hexcore init my_project --template vertical-slice
245
260
  - `vertical-slice` → `src/features`, `src/shared/{domain,application,infrastructure}`.
246
261
 
247
262
  Both generate a root `config.py` and leave Alembic configured. See
248
- [CLI](./docs/en/cli.md) · [CLI](./docs/es/cli.md).
263
+ [CLI](https://github.com/Indroic/HexCore/blob/master/docs/hexcore/en/cli.md) · [CLI](https://github.com/Indroic/HexCore/blob/master/docs/hexcore/es/cli.md).
249
264
 
250
265
  ---
251
266
 
@@ -265,8 +280,8 @@ Both generate a root `config.py` and leave Alembic configured. See
265
280
 
266
281
  **Everything before 9.0 is deprecated. Migrate to 9.x.** The detail of each series, the silent
267
282
  2.x bugs and the step-by-step guides are in
268
- [versions and migration](./docs/en/versions-and-migration.md) ·
269
- [versiones y migración](./docs/es/versiones-y-migracion.md).
283
+ [versions and migration](https://github.com/Indroic/HexCore/blob/master/docs/hexcore/en/versions-and-migration.md) ·
284
+ [versiones y migración](https://github.com/Indroic/HexCore/blob/master/docs/hexcore/es/versiones-y-migracion.md).
270
285
 
271
286
  ### Removed API and its replacement
272
287
 
@@ -303,7 +318,7 @@ python -m pytest -W "default::DeprecationWarning"
303
318
 
304
319
  ## Contributing
305
320
 
306
- 1. **Code of conduct** — read the [Code of Conduct](CODE_OF_CONDUCT.md) before interacting.
321
+ 1. **Code of conduct** — read the [Code of Conduct](https://github.com/Indroic/HexCore/blob/master/CODE_OF_CONDUCT.md) before interacting.
307
322
  2. **Branches** — fork and create a branch (`feat/name`, `fix/name`, `docs/name`).
308
323
  3. **Tests** — every fix lands with at least one test that fails before and passes after:
309
324
 
@@ -315,26 +330,33 @@ python -m pytest -W "default::DeprecationWarning"
315
330
  CI fails if any test is **skipped**: a skip means an extra is missing, and we would be
316
331
  reporting green without having run half the suite.
317
332
  4. **Typecheck** — `uv run pyright hexcore`. The verdict comes from the ratchet, not the exit
318
- code: see [typing](./docs/en/typing.md) · [tipado](./docs/es/tipado.md).
333
+ code: see [typing](https://github.com/Indroic/HexCore/blob/master/docs/hexcore/en/typing.md) · [tipado](https://github.com/Indroic/HexCore/blob/master/docs/hexcore/es/tipado.md).
319
334
  5. **Style** — [PEP8](https://pep8.org/). Comment the *why*, not the *what*.
320
335
  6. **Commits** — [Commitizen](https://commitizen-tools.github.io/commitizen/): `feat:`, `fix:`,
321
336
  `docs:`, `refactor:`, and `!` for breaking changes. The version bump and the CHANGELOG are
322
337
  automatic on merge to `master`.
323
338
  7. **PRs** — describe the problem, the reproduction, the solution and **why that option**.
324
339
 
325
- Full detail in [CONTRIBUTING.md](CONTRIBUTING.md).
340
+ Full detail in [CONTRIBUTING.md](https://github.com/Indroic/HexCore/blob/master/CONTRIBUTING.md).
341
+
342
+ ### The agent skill
326
343
 
327
- ### Project skills
344
+ [`skills/hexcore/`](https://github.com/Indroic/HexCore/tree/master/skills/hexcore) is a
345
+ [Claude Code](https://claude.com/claude-code) skill covering both packages — this one and the
346
+ TypeScript client. It reads the installed package instead of remembering it, and audits a
347
+ project for the framework's silent failure modes rather than just describing them. Its prose is
348
+ under the same CI gate as the documentation, so a rename here turns it red.
328
349
 
329
- There is a set of skills for extending HexCore in VS Code and compatible environments:
330
- [HexCore Skills repository](https://github.com/Indroic/hexcore-skill).
350
+ To use it in a project that consumes HexCore, copy that directory into the project's
351
+ `.claude/skills/`. Details in
352
+ [skills/README.md](https://github.com/Indroic/HexCore/blob/master/skills/README.md).
331
353
 
332
354
  ---
333
355
 
334
356
  ## References
335
357
 
336
- - [docs/](./docs/) — the complete documentation, in English and Spanish.
337
- - [docs/ARCHITECTURE_TYPING.md](./docs/ARCHITECTURE_TYPING.md) — type system and stubs.
338
- - [CHANGELOG.md](../../CHANGELOG.md) — change history.
339
- - [CONTRIBUTING.md](../../CONTRIBUTING.md) — collaboration guidelines.
340
- - [SECURITY.md](../../SECURITY.md) — security policy.
358
+ - [docs/](https://github.com/Indroic/HexCore/tree/master/docs/hexcore/) — the complete documentation, in English and Spanish.
359
+ - [docs/ARCHITECTURE_TYPING.md](https://github.com/Indroic/HexCore/blob/master/docs/ARCHITECTURE_TYPING.md) — type system and stubs.
360
+ - [CHANGELOG.md](https://github.com/Indroic/HexCore/blob/master/CHANGELOG.md) — change history.
361
+ - [CONTRIBUTING.md](https://github.com/Indroic/HexCore/blob/master/CONTRIBUTING.md) — collaboration guidelines.
362
+ - [SECURITY.md](https://github.com/Indroic/HexCore/blob/master/SECURITY.md) — security policy.
@@ -1,4 +1,13 @@
1
- # HexCore [![PyPI Downloads](https://static.pepy.tech/personalized-badge/hexcore?period=total&units=INTERNATIONAL_SYSTEM&left_color=BLACK&right_color=GREEN&left_text=downloads)](https://pepy.tech/projects/hexcore)
1
+ # HexCore
2
+
3
+ [![PyPI](https://img.shields.io/pypi/v/hexcore?color=blue)](https://pypi.org/project/hexcore/)
4
+ [![PyPI Downloads](https://static.pepy.tech/personalized-badge/hexcore?period=total&units=INTERNATIONAL_SYSTEM&left_color=BLACK&right_color=GREEN&left_text=downloads)](https://pepy.tech/projects/hexcore)
5
+ [![Python](https://img.shields.io/pypi/pyversions/hexcore)](https://pypi.org/project/hexcore/)
6
+ [![License](https://img.shields.io/pypi/l/hexcore)](https://github.com/Indroic/HexCore/blob/master/LICENSE)
7
+
8
+ 📖 **[Full documentation](https://github.com/Indroic/HexCore/tree/master/docs/hexcore/)** ·
9
+ 🐙 **[Repository](https://github.com/Indroic/HexCore)** ·
10
+ 🟦 **[TypeScript client for Darwin](https://github.com/Indroic/HexCore/tree/master/docs/darwin-client/)**
2
11
 
3
12
  A reusable core for Python applications built on **hexagonal architecture**, **DDD**, **CQRS**
4
13
  and **background tasks**. HexCore ships the abstractions (entities, repositories, unit of work,
@@ -10,7 +19,7 @@ arguments gives you a usable app, `init_engine()` with no arguments gives you a
10
19
  production-correct engine.
11
20
 
12
21
  > 🇪🇸 **¿Preferís español?** La documentación está completa en los dos idiomas:
13
- > **[docs/es/](./docs/es/)**.
22
+ > **[docs/es/](https://github.com/Indroic/HexCore/blob/master/docs/hexcore/es/)**.
14
23
 
15
24
  ```python
16
25
  # main.py — a complete HexCore app
@@ -38,26 +47,26 @@ await cqrs.run_procrastinate_worker(
38
47
 
39
48
  ## 📚 Documentation
40
49
 
41
- **→ [`docs/`](./docs/) — 🇬🇧 [English](./docs/en/) · 🇪🇸 [español](./docs/es/)**
50
+ **→ [`docs/`](https://github.com/Indroic/HexCore/tree/master/docs/hexcore/) — 🇬🇧 [English](https://github.com/Indroic/HexCore/blob/master/docs/hexcore/en/) · 🇪🇸 [español](https://github.com/Indroic/HexCore/blob/master/docs/hexcore/es/)**
42
51
 
43
52
  | | English | Español |
44
53
  | :-- | :-- | :-- |
45
- | Installation and extras | [installation](./docs/en/installation.md) | [instalacion](./docs/es/instalacion.md) |
46
- | Quickstart | [quickstart](./docs/en/quickstart.md) | [inicio-rapido](./docs/es/inicio-rapido.md) |
47
- | Configuration | [configuration](./docs/en/configuration.md) | [configuracion](./docs/es/configuracion.md) |
48
- | SQL layer | [sql](./docs/en/sql.md) | [sql](./docs/es/sql.md) |
49
- | Repositories and entities | [repositories](./docs/en/repositories.md) | [repositorios](./docs/es/repositorios.md) |
50
- | FastAPI utilities | [fastapi](./docs/en/fastapi.md) | [fastapi](./docs/es/fastapi.md) |
51
- | CQRS architecture | [cqrs](./docs/en/cqrs.md) | [cqrs](./docs/es/cqrs.md) |
52
- | Queues and workers | [queues-and-workers](./docs/en/queues-and-workers.md) | [colas-y-workers](./docs/es/colas-y-workers.md) |
53
- | Scheduled tasks | [cron](./docs/en/cron.md) | [cron](./docs/es/cron.md) |
54
- | **Event Sourcing** | [event-sourcing](./docs/en/event-sourcing.md) | [event-sourcing](./docs/es/event-sourcing.md) |
55
- | Testing | [testing](./docs/en/testing.md) | [testing](./docs/es/testing.md) |
56
- | CLI | [cli](./docs/en/cli.md) | [cli](./docs/es/cli.md) |
57
- | **Darwin** (identity) | [darwin/](./docs/en/darwin/) | [darwin/](./docs/es/darwin/) |
58
- | API reference | [reference](./docs/en/reference.md) | [referencia](./docs/es/referencia.md) |
59
- | Versions and migration | [versions-and-migration](./docs/en/versions-and-migration.md) | [versiones-y-migracion](./docs/es/versiones-y-migracion.md) |
60
- | Typing | [typing](./docs/en/typing.md) | [tipado](./docs/es/tipado.md) |
54
+ | Installation and extras | [installation](https://github.com/Indroic/HexCore/blob/master/docs/hexcore/en/installation.md) | [instalacion](https://github.com/Indroic/HexCore/blob/master/docs/hexcore/es/instalacion.md) |
55
+ | Quickstart | [quickstart](https://github.com/Indroic/HexCore/blob/master/docs/hexcore/en/quickstart.md) | [inicio-rapido](https://github.com/Indroic/HexCore/blob/master/docs/hexcore/es/inicio-rapido.md) |
56
+ | Configuration | [configuration](https://github.com/Indroic/HexCore/blob/master/docs/hexcore/en/configuration.md) | [configuracion](https://github.com/Indroic/HexCore/blob/master/docs/hexcore/es/configuracion.md) |
57
+ | SQL layer | [sql](https://github.com/Indroic/HexCore/blob/master/docs/hexcore/en/sql.md) | [sql](https://github.com/Indroic/HexCore/blob/master/docs/hexcore/es/sql.md) |
58
+ | Repositories and entities | [repositories](https://github.com/Indroic/HexCore/blob/master/docs/hexcore/en/repositories.md) | [repositorios](https://github.com/Indroic/HexCore/blob/master/docs/hexcore/es/repositorios.md) |
59
+ | FastAPI utilities | [fastapi](https://github.com/Indroic/HexCore/blob/master/docs/hexcore/en/fastapi.md) | [fastapi](https://github.com/Indroic/HexCore/blob/master/docs/hexcore/es/fastapi.md) |
60
+ | CQRS architecture | [cqrs](https://github.com/Indroic/HexCore/blob/master/docs/hexcore/en/cqrs.md) | [cqrs](https://github.com/Indroic/HexCore/blob/master/docs/hexcore/es/cqrs.md) |
61
+ | Queues and workers | [queues-and-workers](https://github.com/Indroic/HexCore/blob/master/docs/hexcore/en/queues-and-workers.md) | [colas-y-workers](https://github.com/Indroic/HexCore/blob/master/docs/hexcore/es/colas-y-workers.md) |
62
+ | Scheduled tasks | [cron](https://github.com/Indroic/HexCore/blob/master/docs/hexcore/en/cron.md) | [cron](https://github.com/Indroic/HexCore/blob/master/docs/hexcore/es/cron.md) |
63
+ | **Event Sourcing** | [event-sourcing](https://github.com/Indroic/HexCore/blob/master/docs/hexcore/en/event-sourcing.md) | [event-sourcing](https://github.com/Indroic/HexCore/blob/master/docs/hexcore/es/event-sourcing.md) |
64
+ | Testing | [testing](https://github.com/Indroic/HexCore/blob/master/docs/hexcore/en/testing.md) | [testing](https://github.com/Indroic/HexCore/blob/master/docs/hexcore/es/testing.md) |
65
+ | CLI | [cli](https://github.com/Indroic/HexCore/blob/master/docs/hexcore/en/cli.md) | [cli](https://github.com/Indroic/HexCore/blob/master/docs/hexcore/es/cli.md) |
66
+ | **Darwin** (identity) | [darwin/](https://github.com/Indroic/HexCore/blob/master/docs/hexcore/en/darwin/) | [darwin/](https://github.com/Indroic/HexCore/blob/master/docs/hexcore/es/darwin/) |
67
+ | API reference | [reference](https://github.com/Indroic/HexCore/blob/master/docs/hexcore/en/reference.md) | [referencia](https://github.com/Indroic/HexCore/blob/master/docs/hexcore/es/referencia.md) |
68
+ | Versions and migration | [versions-and-migration](https://github.com/Indroic/HexCore/blob/master/docs/hexcore/en/versions-and-migration.md) | [versiones-y-migracion](https://github.com/Indroic/HexCore/blob/master/docs/hexcore/es/versiones-y-migracion.md) |
69
+ | Typing | [typing](https://github.com/Indroic/HexCore/blob/master/docs/hexcore/en/typing.md) | [tipado](https://github.com/Indroic/HexCore/blob/master/docs/hexcore/es/tipado.md) |
61
70
 
62
71
  ---
63
72
 
@@ -83,7 +92,7 @@ pip install "hexcore[all]"
83
92
  | Everything | `all` |
84
93
 
85
94
  The full table, with what each one enables, is in
86
- [installation](./docs/en/installation.md) · [instalación](./docs/es/instalacion.md).
95
+ [installation](https://github.com/Indroic/HexCore/blob/master/docs/hexcore/en/installation.md) · [instalación](https://github.com/Indroic/HexCore/blob/master/docs/hexcore/es/instalacion.md).
87
96
 
88
97
  > `import hexcore.cqrs` works with no extras at all: name resolution is lazy, so
89
98
  > `hexcore.cqrs.SqlAlchemyCronJobRepository` only requires `[sql]` at the moment you ask for it.
@@ -153,7 +162,7 @@ app = create_app(
153
162
  ```
154
163
 
155
164
  ⚠️ If you use SQL, the most important thing to read before deploying is the Alembic section:
156
- [storage](./docs/en/darwin/storage.md) · [almacenamiento](./docs/es/darwin/almacenamiento.md).
165
+ [storage](https://github.com/Indroic/HexCore/blob/master/docs/hexcore/en/darwin/storage.md) · [almacenamiento](https://github.com/Indroic/HexCore/blob/master/docs/hexcore/es/darwin/almacenamiento.md).
157
166
  A plugin missing from your `env.py` makes `alembic revision --autogenerate` emit
158
167
  `op.drop_table` for its tables.
159
168
 
@@ -170,7 +179,7 @@ hexcore init my_project --template vertical-slice
170
179
  - `vertical-slice` → `src/features`, `src/shared/{domain,application,infrastructure}`.
171
180
 
172
181
  Both generate a root `config.py` and leave Alembic configured. See
173
- [CLI](./docs/en/cli.md) · [CLI](./docs/es/cli.md).
182
+ [CLI](https://github.com/Indroic/HexCore/blob/master/docs/hexcore/en/cli.md) · [CLI](https://github.com/Indroic/HexCore/blob/master/docs/hexcore/es/cli.md).
174
183
 
175
184
  ---
176
185
 
@@ -190,8 +199,8 @@ Both generate a root `config.py` and leave Alembic configured. See
190
199
 
191
200
  **Everything before 9.0 is deprecated. Migrate to 9.x.** The detail of each series, the silent
192
201
  2.x bugs and the step-by-step guides are in
193
- [versions and migration](./docs/en/versions-and-migration.md) ·
194
- [versiones y migración](./docs/es/versiones-y-migracion.md).
202
+ [versions and migration](https://github.com/Indroic/HexCore/blob/master/docs/hexcore/en/versions-and-migration.md) ·
203
+ [versiones y migración](https://github.com/Indroic/HexCore/blob/master/docs/hexcore/es/versiones-y-migracion.md).
195
204
 
196
205
  ### Removed API and its replacement
197
206
 
@@ -228,7 +237,7 @@ python -m pytest -W "default::DeprecationWarning"
228
237
 
229
238
  ## Contributing
230
239
 
231
- 1. **Code of conduct** — read the [Code of Conduct](CODE_OF_CONDUCT.md) before interacting.
240
+ 1. **Code of conduct** — read the [Code of Conduct](https://github.com/Indroic/HexCore/blob/master/CODE_OF_CONDUCT.md) before interacting.
232
241
  2. **Branches** — fork and create a branch (`feat/name`, `fix/name`, `docs/name`).
233
242
  3. **Tests** — every fix lands with at least one test that fails before and passes after:
234
243
 
@@ -240,26 +249,33 @@ python -m pytest -W "default::DeprecationWarning"
240
249
  CI fails if any test is **skipped**: a skip means an extra is missing, and we would be
241
250
  reporting green without having run half the suite.
242
251
  4. **Typecheck** — `uv run pyright hexcore`. The verdict comes from the ratchet, not the exit
243
- code: see [typing](./docs/en/typing.md) · [tipado](./docs/es/tipado.md).
252
+ code: see [typing](https://github.com/Indroic/HexCore/blob/master/docs/hexcore/en/typing.md) · [tipado](https://github.com/Indroic/HexCore/blob/master/docs/hexcore/es/tipado.md).
244
253
  5. **Style** — [PEP8](https://pep8.org/). Comment the *why*, not the *what*.
245
254
  6. **Commits** — [Commitizen](https://commitizen-tools.github.io/commitizen/): `feat:`, `fix:`,
246
255
  `docs:`, `refactor:`, and `!` for breaking changes. The version bump and the CHANGELOG are
247
256
  automatic on merge to `master`.
248
257
  7. **PRs** — describe the problem, the reproduction, the solution and **why that option**.
249
258
 
250
- Full detail in [CONTRIBUTING.md](CONTRIBUTING.md).
259
+ Full detail in [CONTRIBUTING.md](https://github.com/Indroic/HexCore/blob/master/CONTRIBUTING.md).
260
+
261
+ ### The agent skill
251
262
 
252
- ### Project skills
263
+ [`skills/hexcore/`](https://github.com/Indroic/HexCore/tree/master/skills/hexcore) is a
264
+ [Claude Code](https://claude.com/claude-code) skill covering both packages — this one and the
265
+ TypeScript client. It reads the installed package instead of remembering it, and audits a
266
+ project for the framework's silent failure modes rather than just describing them. Its prose is
267
+ under the same CI gate as the documentation, so a rename here turns it red.
253
268
 
254
- There is a set of skills for extending HexCore in VS Code and compatible environments:
255
- [HexCore Skills repository](https://github.com/Indroic/hexcore-skill).
269
+ To use it in a project that consumes HexCore, copy that directory into the project's
270
+ `.claude/skills/`. Details in
271
+ [skills/README.md](https://github.com/Indroic/HexCore/blob/master/skills/README.md).
256
272
 
257
273
  ---
258
274
 
259
275
  ## References
260
276
 
261
- - [docs/](./docs/) — the complete documentation, in English and Spanish.
262
- - [docs/ARCHITECTURE_TYPING.md](./docs/ARCHITECTURE_TYPING.md) — type system and stubs.
263
- - [CHANGELOG.md](../../CHANGELOG.md) — change history.
264
- - [CONTRIBUTING.md](../../CONTRIBUTING.md) — collaboration guidelines.
265
- - [SECURITY.md](../../SECURITY.md) — security policy.
277
+ - [docs/](https://github.com/Indroic/HexCore/tree/master/docs/hexcore/) — the complete documentation, in English and Spanish.
278
+ - [docs/ARCHITECTURE_TYPING.md](https://github.com/Indroic/HexCore/blob/master/docs/ARCHITECTURE_TYPING.md) — type system and stubs.
279
+ - [CHANGELOG.md](https://github.com/Indroic/HexCore/blob/master/CHANGELOG.md) — change history.
280
+ - [CONTRIBUTING.md](https://github.com/Indroic/HexCore/blob/master/CONTRIBUTING.md) — collaboration guidelines.
281
+ - [SECURITY.md](https://github.com/Indroic/HexCore/blob/master/SECURITY.md) — security policy.
@@ -1,9 +1,15 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: hexcore
3
- Version: 9.7.1
3
+ Version: 9.7.2
4
4
  Summary: Reusable core for Python projects with hexagonal architecture, DDD, CQRS and background tasks. Ships the abstractions and the infrastructure: SQL session layer, FastAPI factories, worker runner, dynamic cron and identity.
5
5
  Author-email: "David Latosefki (Indroic)" <indroic@outlook.com>
6
6
  License-Expression: MIT
7
+ Project-URL: Homepage, https://github.com/Indroic/HexCore
8
+ Project-URL: Documentation, https://github.com/Indroic/HexCore/tree/master/docs/hexcore
9
+ Project-URL: Repository, https://github.com/Indroic/HexCore
10
+ Project-URL: Changelog, https://github.com/Indroic/HexCore/blob/master/CHANGELOG.md
11
+ Project-URL: Issues, https://github.com/Indroic/HexCore/issues
12
+ Keywords: hexagonal-architecture,ddd,cqrs,event-sourcing,fastapi,sqlalchemy,background-tasks,cron,authentication,identity
7
13
  Requires-Python: >=3.12
8
14
  Description-Content-Type: text/markdown
9
15
  License-File: LICENSE
@@ -73,7 +79,16 @@ Requires-Dist: httpx>=0.27.0; extra == "all"
73
79
  Requires-Dist: webauthn>=2.0.0; extra == "all"
74
80
  Dynamic: license-file
75
81
 
76
- # HexCore [![PyPI Downloads](https://static.pepy.tech/personalized-badge/hexcore?period=total&units=INTERNATIONAL_SYSTEM&left_color=BLACK&right_color=GREEN&left_text=downloads)](https://pepy.tech/projects/hexcore)
82
+ # HexCore
83
+
84
+ [![PyPI](https://img.shields.io/pypi/v/hexcore?color=blue)](https://pypi.org/project/hexcore/)
85
+ [![PyPI Downloads](https://static.pepy.tech/personalized-badge/hexcore?period=total&units=INTERNATIONAL_SYSTEM&left_color=BLACK&right_color=GREEN&left_text=downloads)](https://pepy.tech/projects/hexcore)
86
+ [![Python](https://img.shields.io/pypi/pyversions/hexcore)](https://pypi.org/project/hexcore/)
87
+ [![License](https://img.shields.io/pypi/l/hexcore)](https://github.com/Indroic/HexCore/blob/master/LICENSE)
88
+
89
+ 📖 **[Full documentation](https://github.com/Indroic/HexCore/tree/master/docs/hexcore/)** ·
90
+ 🐙 **[Repository](https://github.com/Indroic/HexCore)** ·
91
+ 🟦 **[TypeScript client for Darwin](https://github.com/Indroic/HexCore/tree/master/docs/darwin-client/)**
77
92
 
78
93
  A reusable core for Python applications built on **hexagonal architecture**, **DDD**, **CQRS**
79
94
  and **background tasks**. HexCore ships the abstractions (entities, repositories, unit of work,
@@ -85,7 +100,7 @@ arguments gives you a usable app, `init_engine()` with no arguments gives you a
85
100
  production-correct engine.
86
101
 
87
102
  > 🇪🇸 **¿Preferís español?** La documentación está completa en los dos idiomas:
88
- > **[docs/es/](./docs/es/)**.
103
+ > **[docs/es/](https://github.com/Indroic/HexCore/blob/master/docs/hexcore/es/)**.
89
104
 
90
105
  ```python
91
106
  # main.py — a complete HexCore app
@@ -113,26 +128,26 @@ await cqrs.run_procrastinate_worker(
113
128
 
114
129
  ## 📚 Documentation
115
130
 
116
- **→ [`docs/`](./docs/) — 🇬🇧 [English](./docs/en/) · 🇪🇸 [español](./docs/es/)**
131
+ **→ [`docs/`](https://github.com/Indroic/HexCore/tree/master/docs/hexcore/) — 🇬🇧 [English](https://github.com/Indroic/HexCore/blob/master/docs/hexcore/en/) · 🇪🇸 [español](https://github.com/Indroic/HexCore/blob/master/docs/hexcore/es/)**
117
132
 
118
133
  | | English | Español |
119
134
  | :-- | :-- | :-- |
120
- | Installation and extras | [installation](./docs/en/installation.md) | [instalacion](./docs/es/instalacion.md) |
121
- | Quickstart | [quickstart](./docs/en/quickstart.md) | [inicio-rapido](./docs/es/inicio-rapido.md) |
122
- | Configuration | [configuration](./docs/en/configuration.md) | [configuracion](./docs/es/configuracion.md) |
123
- | SQL layer | [sql](./docs/en/sql.md) | [sql](./docs/es/sql.md) |
124
- | Repositories and entities | [repositories](./docs/en/repositories.md) | [repositorios](./docs/es/repositorios.md) |
125
- | FastAPI utilities | [fastapi](./docs/en/fastapi.md) | [fastapi](./docs/es/fastapi.md) |
126
- | CQRS architecture | [cqrs](./docs/en/cqrs.md) | [cqrs](./docs/es/cqrs.md) |
127
- | Queues and workers | [queues-and-workers](./docs/en/queues-and-workers.md) | [colas-y-workers](./docs/es/colas-y-workers.md) |
128
- | Scheduled tasks | [cron](./docs/en/cron.md) | [cron](./docs/es/cron.md) |
129
- | **Event Sourcing** | [event-sourcing](./docs/en/event-sourcing.md) | [event-sourcing](./docs/es/event-sourcing.md) |
130
- | Testing | [testing](./docs/en/testing.md) | [testing](./docs/es/testing.md) |
131
- | CLI | [cli](./docs/en/cli.md) | [cli](./docs/es/cli.md) |
132
- | **Darwin** (identity) | [darwin/](./docs/en/darwin/) | [darwin/](./docs/es/darwin/) |
133
- | API reference | [reference](./docs/en/reference.md) | [referencia](./docs/es/referencia.md) |
134
- | Versions and migration | [versions-and-migration](./docs/en/versions-and-migration.md) | [versiones-y-migracion](./docs/es/versiones-y-migracion.md) |
135
- | Typing | [typing](./docs/en/typing.md) | [tipado](./docs/es/tipado.md) |
135
+ | Installation and extras | [installation](https://github.com/Indroic/HexCore/blob/master/docs/hexcore/en/installation.md) | [instalacion](https://github.com/Indroic/HexCore/blob/master/docs/hexcore/es/instalacion.md) |
136
+ | Quickstart | [quickstart](https://github.com/Indroic/HexCore/blob/master/docs/hexcore/en/quickstart.md) | [inicio-rapido](https://github.com/Indroic/HexCore/blob/master/docs/hexcore/es/inicio-rapido.md) |
137
+ | Configuration | [configuration](https://github.com/Indroic/HexCore/blob/master/docs/hexcore/en/configuration.md) | [configuracion](https://github.com/Indroic/HexCore/blob/master/docs/hexcore/es/configuracion.md) |
138
+ | SQL layer | [sql](https://github.com/Indroic/HexCore/blob/master/docs/hexcore/en/sql.md) | [sql](https://github.com/Indroic/HexCore/blob/master/docs/hexcore/es/sql.md) |
139
+ | Repositories and entities | [repositories](https://github.com/Indroic/HexCore/blob/master/docs/hexcore/en/repositories.md) | [repositorios](https://github.com/Indroic/HexCore/blob/master/docs/hexcore/es/repositorios.md) |
140
+ | FastAPI utilities | [fastapi](https://github.com/Indroic/HexCore/blob/master/docs/hexcore/en/fastapi.md) | [fastapi](https://github.com/Indroic/HexCore/blob/master/docs/hexcore/es/fastapi.md) |
141
+ | CQRS architecture | [cqrs](https://github.com/Indroic/HexCore/blob/master/docs/hexcore/en/cqrs.md) | [cqrs](https://github.com/Indroic/HexCore/blob/master/docs/hexcore/es/cqrs.md) |
142
+ | Queues and workers | [queues-and-workers](https://github.com/Indroic/HexCore/blob/master/docs/hexcore/en/queues-and-workers.md) | [colas-y-workers](https://github.com/Indroic/HexCore/blob/master/docs/hexcore/es/colas-y-workers.md) |
143
+ | Scheduled tasks | [cron](https://github.com/Indroic/HexCore/blob/master/docs/hexcore/en/cron.md) | [cron](https://github.com/Indroic/HexCore/blob/master/docs/hexcore/es/cron.md) |
144
+ | **Event Sourcing** | [event-sourcing](https://github.com/Indroic/HexCore/blob/master/docs/hexcore/en/event-sourcing.md) | [event-sourcing](https://github.com/Indroic/HexCore/blob/master/docs/hexcore/es/event-sourcing.md) |
145
+ | Testing | [testing](https://github.com/Indroic/HexCore/blob/master/docs/hexcore/en/testing.md) | [testing](https://github.com/Indroic/HexCore/blob/master/docs/hexcore/es/testing.md) |
146
+ | CLI | [cli](https://github.com/Indroic/HexCore/blob/master/docs/hexcore/en/cli.md) | [cli](https://github.com/Indroic/HexCore/blob/master/docs/hexcore/es/cli.md) |
147
+ | **Darwin** (identity) | [darwin/](https://github.com/Indroic/HexCore/blob/master/docs/hexcore/en/darwin/) | [darwin/](https://github.com/Indroic/HexCore/blob/master/docs/hexcore/es/darwin/) |
148
+ | API reference | [reference](https://github.com/Indroic/HexCore/blob/master/docs/hexcore/en/reference.md) | [referencia](https://github.com/Indroic/HexCore/blob/master/docs/hexcore/es/referencia.md) |
149
+ | Versions and migration | [versions-and-migration](https://github.com/Indroic/HexCore/blob/master/docs/hexcore/en/versions-and-migration.md) | [versiones-y-migracion](https://github.com/Indroic/HexCore/blob/master/docs/hexcore/es/versiones-y-migracion.md) |
150
+ | Typing | [typing](https://github.com/Indroic/HexCore/blob/master/docs/hexcore/en/typing.md) | [tipado](https://github.com/Indroic/HexCore/blob/master/docs/hexcore/es/tipado.md) |
136
151
 
137
152
  ---
138
153
 
@@ -158,7 +173,7 @@ pip install "hexcore[all]"
158
173
  | Everything | `all` |
159
174
 
160
175
  The full table, with what each one enables, is in
161
- [installation](./docs/en/installation.md) · [instalación](./docs/es/instalacion.md).
176
+ [installation](https://github.com/Indroic/HexCore/blob/master/docs/hexcore/en/installation.md) · [instalación](https://github.com/Indroic/HexCore/blob/master/docs/hexcore/es/instalacion.md).
162
177
 
163
178
  > `import hexcore.cqrs` works with no extras at all: name resolution is lazy, so
164
179
  > `hexcore.cqrs.SqlAlchemyCronJobRepository` only requires `[sql]` at the moment you ask for it.
@@ -228,7 +243,7 @@ app = create_app(
228
243
  ```
229
244
 
230
245
  ⚠️ If you use SQL, the most important thing to read before deploying is the Alembic section:
231
- [storage](./docs/en/darwin/storage.md) · [almacenamiento](./docs/es/darwin/almacenamiento.md).
246
+ [storage](https://github.com/Indroic/HexCore/blob/master/docs/hexcore/en/darwin/storage.md) · [almacenamiento](https://github.com/Indroic/HexCore/blob/master/docs/hexcore/es/darwin/almacenamiento.md).
232
247
  A plugin missing from your `env.py` makes `alembic revision --autogenerate` emit
233
248
  `op.drop_table` for its tables.
234
249
 
@@ -245,7 +260,7 @@ hexcore init my_project --template vertical-slice
245
260
  - `vertical-slice` → `src/features`, `src/shared/{domain,application,infrastructure}`.
246
261
 
247
262
  Both generate a root `config.py` and leave Alembic configured. See
248
- [CLI](./docs/en/cli.md) · [CLI](./docs/es/cli.md).
263
+ [CLI](https://github.com/Indroic/HexCore/blob/master/docs/hexcore/en/cli.md) · [CLI](https://github.com/Indroic/HexCore/blob/master/docs/hexcore/es/cli.md).
249
264
 
250
265
  ---
251
266
 
@@ -265,8 +280,8 @@ Both generate a root `config.py` and leave Alembic configured. See
265
280
 
266
281
  **Everything before 9.0 is deprecated. Migrate to 9.x.** The detail of each series, the silent
267
282
  2.x bugs and the step-by-step guides are in
268
- [versions and migration](./docs/en/versions-and-migration.md) ·
269
- [versiones y migración](./docs/es/versiones-y-migracion.md).
283
+ [versions and migration](https://github.com/Indroic/HexCore/blob/master/docs/hexcore/en/versions-and-migration.md) ·
284
+ [versiones y migración](https://github.com/Indroic/HexCore/blob/master/docs/hexcore/es/versiones-y-migracion.md).
270
285
 
271
286
  ### Removed API and its replacement
272
287
 
@@ -303,7 +318,7 @@ python -m pytest -W "default::DeprecationWarning"
303
318
 
304
319
  ## Contributing
305
320
 
306
- 1. **Code of conduct** — read the [Code of Conduct](CODE_OF_CONDUCT.md) before interacting.
321
+ 1. **Code of conduct** — read the [Code of Conduct](https://github.com/Indroic/HexCore/blob/master/CODE_OF_CONDUCT.md) before interacting.
307
322
  2. **Branches** — fork and create a branch (`feat/name`, `fix/name`, `docs/name`).
308
323
  3. **Tests** — every fix lands with at least one test that fails before and passes after:
309
324
 
@@ -315,26 +330,33 @@ python -m pytest -W "default::DeprecationWarning"
315
330
  CI fails if any test is **skipped**: a skip means an extra is missing, and we would be
316
331
  reporting green without having run half the suite.
317
332
  4. **Typecheck** — `uv run pyright hexcore`. The verdict comes from the ratchet, not the exit
318
- code: see [typing](./docs/en/typing.md) · [tipado](./docs/es/tipado.md).
333
+ code: see [typing](https://github.com/Indroic/HexCore/blob/master/docs/hexcore/en/typing.md) · [tipado](https://github.com/Indroic/HexCore/blob/master/docs/hexcore/es/tipado.md).
319
334
  5. **Style** — [PEP8](https://pep8.org/). Comment the *why*, not the *what*.
320
335
  6. **Commits** — [Commitizen](https://commitizen-tools.github.io/commitizen/): `feat:`, `fix:`,
321
336
  `docs:`, `refactor:`, and `!` for breaking changes. The version bump and the CHANGELOG are
322
337
  automatic on merge to `master`.
323
338
  7. **PRs** — describe the problem, the reproduction, the solution and **why that option**.
324
339
 
325
- Full detail in [CONTRIBUTING.md](CONTRIBUTING.md).
340
+ Full detail in [CONTRIBUTING.md](https://github.com/Indroic/HexCore/blob/master/CONTRIBUTING.md).
341
+
342
+ ### The agent skill
326
343
 
327
- ### Project skills
344
+ [`skills/hexcore/`](https://github.com/Indroic/HexCore/tree/master/skills/hexcore) is a
345
+ [Claude Code](https://claude.com/claude-code) skill covering both packages — this one and the
346
+ TypeScript client. It reads the installed package instead of remembering it, and audits a
347
+ project for the framework's silent failure modes rather than just describing them. Its prose is
348
+ under the same CI gate as the documentation, so a rename here turns it red.
328
349
 
329
- There is a set of skills for extending HexCore in VS Code and compatible environments:
330
- [HexCore Skills repository](https://github.com/Indroic/hexcore-skill).
350
+ To use it in a project that consumes HexCore, copy that directory into the project's
351
+ `.claude/skills/`. Details in
352
+ [skills/README.md](https://github.com/Indroic/HexCore/blob/master/skills/README.md).
331
353
 
332
354
  ---
333
355
 
334
356
  ## References
335
357
 
336
- - [docs/](./docs/) — the complete documentation, in English and Spanish.
337
- - [docs/ARCHITECTURE_TYPING.md](./docs/ARCHITECTURE_TYPING.md) — type system and stubs.
338
- - [CHANGELOG.md](../../CHANGELOG.md) — change history.
339
- - [CONTRIBUTING.md](../../CONTRIBUTING.md) — collaboration guidelines.
340
- - [SECURITY.md](../../SECURITY.md) — security policy.
358
+ - [docs/](https://github.com/Indroic/HexCore/tree/master/docs/hexcore/) — the complete documentation, in English and Spanish.
359
+ - [docs/ARCHITECTURE_TYPING.md](https://github.com/Indroic/HexCore/blob/master/docs/ARCHITECTURE_TYPING.md) — type system and stubs.
360
+ - [CHANGELOG.md](https://github.com/Indroic/HexCore/blob/master/CHANGELOG.md) — change history.
361
+ - [CONTRIBUTING.md](https://github.com/Indroic/HexCore/blob/master/CONTRIBUTING.md) — collaboration guidelines.
362
+ - [SECURITY.md](https://github.com/Indroic/HexCore/blob/master/SECURITY.md) — security policy.
@@ -10,7 +10,7 @@ build-backend = "setuptools.build_meta"
10
10
 
11
11
  [project]
12
12
  name = "hexcore"
13
- version = "9.7.1"
13
+ version = "9.7.2"
14
14
  authors = [
15
15
  { name="David Latosefki (Indroic)", email="indroic@outlook.com" },
16
16
  ]
@@ -26,6 +26,22 @@ dependencies = [
26
26
  license = "MIT"
27
27
  license-files = ["LICEN[CS]E*"]
28
28
 
29
+ keywords = [
30
+ "hexagonal-architecture", "ddd", "cqrs", "event-sourcing", "fastapi",
31
+ "sqlalchemy", "background-tasks", "cron", "authentication", "identity",
32
+ ]
33
+
34
+ # La documentación **no** se empaqueta en la wheel (`MANIFEST.in` sólo incluye `*.pyi` y
35
+ # `py.typed`), así que estas URLs son la única forma de llegar a ella desde PyPI. Apuntan a
36
+ # `docs/` de la raíz del monorepo, que es donde vive desde la consolidación — un enlace
37
+ # relativo del README no resolvería en la página de PyPI aunque el archivo existiera.
38
+ [project.urls]
39
+ Homepage = "https://github.com/Indroic/HexCore"
40
+ Documentation = "https://github.com/Indroic/HexCore/tree/master/docs/hexcore"
41
+ Repository = "https://github.com/Indroic/HexCore"
42
+ Changelog = "https://github.com/Indroic/HexCore/blob/master/CHANGELOG.md"
43
+ Issues = "https://github.com/Indroic/HexCore/issues"
44
+
29
45
  [project.optional-dependencies]
30
46
  api = ["fastapi>=0.116.1"]
31
47
  redis = ["redis>=6.4.0"]