GeneralManager 0.49.0__tar.gz → 0.50.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (199) hide show
  1. {generalmanager-0.49.0/src/GeneralManager.egg-info → generalmanager-0.50.0}/PKG-INFO +1 -1
  2. {generalmanager-0.49.0 → generalmanager-0.50.0}/pyproject.toml +1 -1
  3. {generalmanager-0.49.0 → generalmanager-0.50.0/src/GeneralManager.egg-info}/PKG-INFO +1 -1
  4. {generalmanager-0.49.0 → generalmanager-0.50.0}/src/general_manager/api/property.py +1 -1
  5. {generalmanager-0.49.0 → generalmanager-0.50.0}/src/general_manager/cache/cache_decorator.py +66 -43
  6. {generalmanager-0.49.0 → generalmanager-0.50.0}/LICENSE +0 -0
  7. {generalmanager-0.49.0 → generalmanager-0.50.0}/README.md +0 -0
  8. {generalmanager-0.49.0 → generalmanager-0.50.0}/setup.cfg +0 -0
  9. {generalmanager-0.49.0 → generalmanager-0.50.0}/src/GeneralManager.egg-info/SOURCES.txt +0 -0
  10. {generalmanager-0.49.0 → generalmanager-0.50.0}/src/GeneralManager.egg-info/dependency_links.txt +0 -0
  11. {generalmanager-0.49.0 → generalmanager-0.50.0}/src/GeneralManager.egg-info/requires.txt +0 -0
  12. {generalmanager-0.49.0 → generalmanager-0.50.0}/src/GeneralManager.egg-info/top_level.txt +0 -0
  13. {generalmanager-0.49.0 → generalmanager-0.50.0}/src/general_manager/__init__.py +0 -0
  14. {generalmanager-0.49.0 → generalmanager-0.50.0}/src/general_manager/_types/__init__.py +0 -0
  15. {generalmanager-0.49.0 → generalmanager-0.50.0}/src/general_manager/_types/api.py +0 -0
  16. {generalmanager-0.49.0 → generalmanager-0.50.0}/src/general_manager/_types/bucket.py +0 -0
  17. {generalmanager-0.49.0 → generalmanager-0.50.0}/src/general_manager/_types/cache.py +0 -0
  18. {generalmanager-0.49.0 → generalmanager-0.50.0}/src/general_manager/_types/factory.py +0 -0
  19. {generalmanager-0.49.0 → generalmanager-0.50.0}/src/general_manager/_types/general_manager.py +0 -0
  20. {generalmanager-0.49.0 → generalmanager-0.50.0}/src/general_manager/_types/interface.py +0 -0
  21. {generalmanager-0.49.0 → generalmanager-0.50.0}/src/general_manager/_types/manager.py +0 -0
  22. {generalmanager-0.49.0 → generalmanager-0.50.0}/src/general_manager/_types/measurement.py +0 -0
  23. {generalmanager-0.49.0 → generalmanager-0.50.0}/src/general_manager/_types/permission.py +0 -0
  24. {generalmanager-0.49.0 → generalmanager-0.50.0}/src/general_manager/_types/rule.py +0 -0
  25. {generalmanager-0.49.0 → generalmanager-0.50.0}/src/general_manager/_types/search.py +0 -0
  26. {generalmanager-0.49.0 → generalmanager-0.50.0}/src/general_manager/_types/utils.py +0 -0
  27. {generalmanager-0.49.0 → generalmanager-0.50.0}/src/general_manager/api/__init__.py +0 -0
  28. {generalmanager-0.49.0 → generalmanager-0.50.0}/src/general_manager/api/graphql.py +0 -0
  29. {generalmanager-0.49.0 → generalmanager-0.50.0}/src/general_manager/api/graphql_errors.py +0 -0
  30. {generalmanager-0.49.0 → generalmanager-0.50.0}/src/general_manager/api/graphql_mutations.py +0 -0
  31. {generalmanager-0.49.0 → generalmanager-0.50.0}/src/general_manager/api/graphql_prefetch.py +0 -0
  32. {generalmanager-0.49.0 → generalmanager-0.50.0}/src/general_manager/api/graphql_resolvers.py +0 -0
  33. {generalmanager-0.49.0 → generalmanager-0.50.0}/src/general_manager/api/graphql_search.py +0 -0
  34. {generalmanager-0.49.0 → generalmanager-0.50.0}/src/general_manager/api/graphql_subscription_consumer.py +0 -0
  35. {generalmanager-0.49.0 → generalmanager-0.50.0}/src/general_manager/api/graphql_subscriptions.py +0 -0
  36. {generalmanager-0.49.0 → generalmanager-0.50.0}/src/general_manager/api/graphql_view.py +0 -0
  37. {generalmanager-0.49.0 → generalmanager-0.50.0}/src/general_manager/api/mutation.py +0 -0
  38. {generalmanager-0.49.0 → generalmanager-0.50.0}/src/general_manager/api/registry.py +0 -0
  39. {generalmanager-0.49.0 → generalmanager-0.50.0}/src/general_manager/api/remote_api.py +0 -0
  40. {generalmanager-0.49.0 → generalmanager-0.50.0}/src/general_manager/api/remote_invalidation.py +0 -0
  41. {generalmanager-0.49.0 → generalmanager-0.50.0}/src/general_manager/api/remote_invalidation_client.py +0 -0
  42. {generalmanager-0.49.0 → generalmanager-0.50.0}/src/general_manager/apps.py +0 -0
  43. {generalmanager-0.49.0 → generalmanager-0.50.0}/src/general_manager/bootstrap.py +0 -0
  44. {generalmanager-0.49.0 → generalmanager-0.50.0}/src/general_manager/bucket/__init__.py +0 -0
  45. {generalmanager-0.49.0 → generalmanager-0.50.0}/src/general_manager/bucket/base_bucket.py +0 -0
  46. {generalmanager-0.49.0 → generalmanager-0.50.0}/src/general_manager/bucket/calculation_bucket.py +0 -0
  47. {generalmanager-0.49.0 → generalmanager-0.50.0}/src/general_manager/bucket/database_bucket.py +0 -0
  48. {generalmanager-0.49.0 → generalmanager-0.50.0}/src/general_manager/bucket/group_bucket.py +0 -0
  49. {generalmanager-0.49.0 → generalmanager-0.50.0}/src/general_manager/bucket/request_bucket.py +0 -0
  50. {generalmanager-0.49.0 → generalmanager-0.50.0}/src/general_manager/cache/__init__.py +0 -0
  51. {generalmanager-0.49.0 → generalmanager-0.50.0}/src/general_manager/cache/cache_tracker.py +0 -0
  52. {generalmanager-0.49.0 → generalmanager-0.50.0}/src/general_manager/cache/dependency_cache.py +0 -0
  53. {generalmanager-0.49.0 → generalmanager-0.50.0}/src/general_manager/cache/dependency_index.py +0 -0
  54. {generalmanager-0.49.0 → generalmanager-0.50.0}/src/general_manager/cache/dependency_publish.py +0 -0
  55. {generalmanager-0.49.0 → generalmanager-0.50.0}/src/general_manager/cache/model_dependency_collector.py +0 -0
  56. {generalmanager-0.49.0 → generalmanager-0.50.0}/src/general_manager/cache/run_context.py +0 -0
  57. {generalmanager-0.49.0 → generalmanager-0.50.0}/src/general_manager/cache/signals.py +0 -0
  58. {generalmanager-0.49.0 → generalmanager-0.50.0}/src/general_manager/conf.py +0 -0
  59. {generalmanager-0.49.0 → generalmanager-0.50.0}/src/general_manager/factory/__init__.py +0 -0
  60. {generalmanager-0.49.0 → generalmanager-0.50.0}/src/general_manager/factory/auto_factory.py +0 -0
  61. {generalmanager-0.49.0 → generalmanager-0.50.0}/src/general_manager/factory/factories.py +0 -0
  62. {generalmanager-0.49.0 → generalmanager-0.50.0}/src/general_manager/factory/factory_methods.py +0 -0
  63. {generalmanager-0.49.0 → generalmanager-0.50.0}/src/general_manager/interface/__init__.py +0 -0
  64. {generalmanager-0.49.0 → generalmanager-0.50.0}/src/general_manager/interface/base_interface.py +0 -0
  65. {generalmanager-0.49.0 → generalmanager-0.50.0}/src/general_manager/interface/bundles/__init__.py +0 -0
  66. {generalmanager-0.49.0 → generalmanager-0.50.0}/src/general_manager/interface/bundles/calculation.py +0 -0
  67. {generalmanager-0.49.0 → generalmanager-0.50.0}/src/general_manager/interface/bundles/database.py +0 -0
  68. {generalmanager-0.49.0 → generalmanager-0.50.0}/src/general_manager/interface/bundles/remote_manager.py +0 -0
  69. {generalmanager-0.49.0 → generalmanager-0.50.0}/src/general_manager/interface/bundles/request.py +0 -0
  70. {generalmanager-0.49.0 → generalmanager-0.50.0}/src/general_manager/interface/capabilities/__init__.py +0 -0
  71. {generalmanager-0.49.0 → generalmanager-0.50.0}/src/general_manager/interface/capabilities/base.py +0 -0
  72. {generalmanager-0.49.0 → generalmanager-0.50.0}/src/general_manager/interface/capabilities/builtin.py +0 -0
  73. {generalmanager-0.49.0 → generalmanager-0.50.0}/src/general_manager/interface/capabilities/calculation/__init__.py +0 -0
  74. {generalmanager-0.49.0 → generalmanager-0.50.0}/src/general_manager/interface/capabilities/calculation/_compat.py +0 -0
  75. {generalmanager-0.49.0 → generalmanager-0.50.0}/src/general_manager/interface/capabilities/calculation/lifecycle.py +0 -0
  76. {generalmanager-0.49.0 → generalmanager-0.50.0}/src/general_manager/interface/capabilities/configuration.py +0 -0
  77. {generalmanager-0.49.0 → generalmanager-0.50.0}/src/general_manager/interface/capabilities/core/observability.py +0 -0
  78. {generalmanager-0.49.0 → generalmanager-0.50.0}/src/general_manager/interface/capabilities/core/utils.py +0 -0
  79. {generalmanager-0.49.0 → generalmanager-0.50.0}/src/general_manager/interface/capabilities/exceptions.py +0 -0
  80. {generalmanager-0.49.0 → generalmanager-0.50.0}/src/general_manager/interface/capabilities/existing_model/__init__.py +0 -0
  81. {generalmanager-0.49.0 → generalmanager-0.50.0}/src/general_manager/interface/capabilities/existing_model/_compat.py +0 -0
  82. {generalmanager-0.49.0 → generalmanager-0.50.0}/src/general_manager/interface/capabilities/existing_model/resolution.py +0 -0
  83. {generalmanager-0.49.0 → generalmanager-0.50.0}/src/general_manager/interface/capabilities/factory.py +0 -0
  84. {generalmanager-0.49.0 → generalmanager-0.50.0}/src/general_manager/interface/capabilities/orm/__init__.py +0 -0
  85. {generalmanager-0.49.0 → generalmanager-0.50.0}/src/general_manager/interface/capabilities/orm/_compat.py +0 -0
  86. {generalmanager-0.49.0 → generalmanager-0.50.0}/src/general_manager/interface/capabilities/orm/history.py +0 -0
  87. {generalmanager-0.49.0 → generalmanager-0.50.0}/src/general_manager/interface/capabilities/orm/lifecycle.py +0 -0
  88. {generalmanager-0.49.0 → generalmanager-0.50.0}/src/general_manager/interface/capabilities/orm/mutations.py +0 -0
  89. {generalmanager-0.49.0 → generalmanager-0.50.0}/src/general_manager/interface/capabilities/orm/support.py +0 -0
  90. {generalmanager-0.49.0 → generalmanager-0.50.0}/src/general_manager/interface/capabilities/orm_utils/__init__.py +0 -0
  91. {generalmanager-0.49.0 → generalmanager-0.50.0}/src/general_manager/interface/capabilities/orm_utils/django_manager_utils.py +0 -0
  92. {generalmanager-0.49.0 → generalmanager-0.50.0}/src/general_manager/interface/capabilities/orm_utils/field_descriptors.py +0 -0
  93. {generalmanager-0.49.0 → generalmanager-0.50.0}/src/general_manager/interface/capabilities/orm_utils/payload_normalizer.py +0 -0
  94. {generalmanager-0.49.0 → generalmanager-0.50.0}/src/general_manager/interface/capabilities/read_only/__init__.py +0 -0
  95. {generalmanager-0.49.0 → generalmanager-0.50.0}/src/general_manager/interface/capabilities/read_only/_compat.py +0 -0
  96. {generalmanager-0.49.0 → generalmanager-0.50.0}/src/general_manager/interface/capabilities/read_only/lifecycle.py +0 -0
  97. {generalmanager-0.49.0 → generalmanager-0.50.0}/src/general_manager/interface/capabilities/read_only/management.py +0 -0
  98. {generalmanager-0.49.0 → generalmanager-0.50.0}/src/general_manager/interface/capabilities/registry.py +0 -0
  99. {generalmanager-0.49.0 → generalmanager-0.50.0}/src/general_manager/interface/capabilities/remote_manager.py +0 -0
  100. {generalmanager-0.49.0 → generalmanager-0.50.0}/src/general_manager/interface/capabilities/request/__init__.py +0 -0
  101. {generalmanager-0.49.0 → generalmanager-0.50.0}/src/general_manager/interface/infrastructure/__init__.py +0 -0
  102. {generalmanager-0.49.0 → generalmanager-0.50.0}/src/general_manager/interface/infrastructure/startup_hooks.py +0 -0
  103. {generalmanager-0.49.0 → generalmanager-0.50.0}/src/general_manager/interface/infrastructure/system_checks.py +0 -0
  104. {generalmanager-0.49.0 → generalmanager-0.50.0}/src/general_manager/interface/interfaces/__init__.py +0 -0
  105. {generalmanager-0.49.0 → generalmanager-0.50.0}/src/general_manager/interface/interfaces/calculation.py +0 -0
  106. {generalmanager-0.49.0 → generalmanager-0.50.0}/src/general_manager/interface/interfaces/database.py +0 -0
  107. {generalmanager-0.49.0 → generalmanager-0.50.0}/src/general_manager/interface/interfaces/existing_model.py +0 -0
  108. {generalmanager-0.49.0 → generalmanager-0.50.0}/src/general_manager/interface/interfaces/read_only.py +0 -0
  109. {generalmanager-0.49.0 → generalmanager-0.50.0}/src/general_manager/interface/interfaces/remote_manager.py +0 -0
  110. {generalmanager-0.49.0 → generalmanager-0.50.0}/src/general_manager/interface/interfaces/request.py +0 -0
  111. {generalmanager-0.49.0 → generalmanager-0.50.0}/src/general_manager/interface/manifests/__init__.py +0 -0
  112. {generalmanager-0.49.0 → generalmanager-0.50.0}/src/general_manager/interface/manifests/capability_builder.py +0 -0
  113. {generalmanager-0.49.0 → generalmanager-0.50.0}/src/general_manager/interface/manifests/capability_manifest.py +0 -0
  114. {generalmanager-0.49.0 → generalmanager-0.50.0}/src/general_manager/interface/manifests/capability_models.py +0 -0
  115. {generalmanager-0.49.0 → generalmanager-0.50.0}/src/general_manager/interface/orm_interface.py +0 -0
  116. {generalmanager-0.49.0 → generalmanager-0.50.0}/src/general_manager/interface/requests.py +0 -0
  117. {generalmanager-0.49.0 → generalmanager-0.50.0}/src/general_manager/interface/utils/__init__.py +0 -0
  118. {generalmanager-0.49.0 → generalmanager-0.50.0}/src/general_manager/interface/utils/database_interface_protocols.py +0 -0
  119. {generalmanager-0.49.0 → generalmanager-0.50.0}/src/general_manager/interface/utils/errors.py +0 -0
  120. {generalmanager-0.49.0 → generalmanager-0.50.0}/src/general_manager/interface/utils/models.py +0 -0
  121. {generalmanager-0.49.0 → generalmanager-0.50.0}/src/general_manager/logging.py +0 -0
  122. {generalmanager-0.49.0 → generalmanager-0.50.0}/src/general_manager/management/commands/search_index.py +0 -0
  123. {generalmanager-0.49.0 → generalmanager-0.50.0}/src/general_manager/management/commands/seed_manager_landscape.py +0 -0
  124. {generalmanager-0.49.0 → generalmanager-0.50.0}/src/general_manager/management/commands/shell.py +0 -0
  125. {generalmanager-0.49.0 → generalmanager-0.50.0}/src/general_manager/management/commands/workflow_drain_outbox.py +0 -0
  126. {generalmanager-0.49.0 → generalmanager-0.50.0}/src/general_manager/management/commands/workflow_replay_dead_letters.py +0 -0
  127. {generalmanager-0.49.0 → generalmanager-0.50.0}/src/general_manager/manager/__init__.py +0 -0
  128. {generalmanager-0.49.0 → generalmanager-0.50.0}/src/general_manager/manager/general_manager.py +0 -0
  129. {generalmanager-0.49.0 → generalmanager-0.50.0}/src/general_manager/manager/group_manager.py +0 -0
  130. {generalmanager-0.49.0 → generalmanager-0.50.0}/src/general_manager/manager/input.py +0 -0
  131. {generalmanager-0.49.0 → generalmanager-0.50.0}/src/general_manager/manager/meta.py +0 -0
  132. {generalmanager-0.49.0 → generalmanager-0.50.0}/src/general_manager/measurement/__init__.py +0 -0
  133. {generalmanager-0.49.0 → generalmanager-0.50.0}/src/general_manager/measurement/measurement.py +0 -0
  134. {generalmanager-0.49.0 → generalmanager-0.50.0}/src/general_manager/measurement/measurement_field.py +0 -0
  135. {generalmanager-0.49.0 → generalmanager-0.50.0}/src/general_manager/metrics/__init__.py +0 -0
  136. {generalmanager-0.49.0 → generalmanager-0.50.0}/src/general_manager/metrics/graphql.py +0 -0
  137. {generalmanager-0.49.0 → generalmanager-0.50.0}/src/general_manager/migrations/0001_initial.py +0 -0
  138. {generalmanager-0.49.0 → generalmanager-0.50.0}/src/general_manager/migrations/0002_workflow_outbox_scaling_indexes.py +0 -0
  139. {generalmanager-0.49.0 → generalmanager-0.50.0}/src/general_manager/migrations/0003_workflow_execution_correlation_constraint.py +0 -0
  140. {generalmanager-0.49.0 → generalmanager-0.50.0}/src/general_manager/migrations/__init__.py +0 -0
  141. {generalmanager-0.49.0 → generalmanager-0.50.0}/src/general_manager/models.py +0 -0
  142. {generalmanager-0.49.0 → generalmanager-0.50.0}/src/general_manager/permission/__init__.py +0 -0
  143. {generalmanager-0.49.0 → generalmanager-0.50.0}/src/general_manager/permission/audit.py +0 -0
  144. {generalmanager-0.49.0 → generalmanager-0.50.0}/src/general_manager/permission/base_permission.py +0 -0
  145. {generalmanager-0.49.0 → generalmanager-0.50.0}/src/general_manager/permission/graphql_capabilities.py +0 -0
  146. {generalmanager-0.49.0 → generalmanager-0.50.0}/src/general_manager/permission/manager_based_permission.py +0 -0
  147. {generalmanager-0.49.0 → generalmanager-0.50.0}/src/general_manager/permission/mutation_permission.py +0 -0
  148. {generalmanager-0.49.0 → generalmanager-0.50.0}/src/general_manager/permission/permission_checks.py +0 -0
  149. {generalmanager-0.49.0 → generalmanager-0.50.0}/src/general_manager/permission/permission_data_manager.py +0 -0
  150. {generalmanager-0.49.0 → generalmanager-0.50.0}/src/general_manager/permission/utils.py +0 -0
  151. {generalmanager-0.49.0 → generalmanager-0.50.0}/src/general_manager/public_api_registry.py +0 -0
  152. {generalmanager-0.49.0 → generalmanager-0.50.0}/src/general_manager/py.typed +0 -0
  153. {generalmanager-0.49.0 → generalmanager-0.50.0}/src/general_manager/rule/__init__.py +0 -0
  154. {generalmanager-0.49.0 → generalmanager-0.50.0}/src/general_manager/rule/handler.py +0 -0
  155. {generalmanager-0.49.0 → generalmanager-0.50.0}/src/general_manager/rule/rule.py +0 -0
  156. {generalmanager-0.49.0 → generalmanager-0.50.0}/src/general_manager/search/__init__.py +0 -0
  157. {generalmanager-0.49.0 → generalmanager-0.50.0}/src/general_manager/search/async_tasks.py +0 -0
  158. {generalmanager-0.49.0 → generalmanager-0.50.0}/src/general_manager/search/backend.py +0 -0
  159. {generalmanager-0.49.0 → generalmanager-0.50.0}/src/general_manager/search/backend_registry.py +0 -0
  160. {generalmanager-0.49.0 → generalmanager-0.50.0}/src/general_manager/search/backends/__init__.py +0 -0
  161. {generalmanager-0.49.0 → generalmanager-0.50.0}/src/general_manager/search/backends/dev.py +0 -0
  162. {generalmanager-0.49.0 → generalmanager-0.50.0}/src/general_manager/search/backends/meilisearch.py +0 -0
  163. {generalmanager-0.49.0 → generalmanager-0.50.0}/src/general_manager/search/backends/opensearch.py +0 -0
  164. {generalmanager-0.49.0 → generalmanager-0.50.0}/src/general_manager/search/backends/typesense.py +0 -0
  165. {generalmanager-0.49.0 → generalmanager-0.50.0}/src/general_manager/search/config.py +0 -0
  166. {generalmanager-0.49.0 → generalmanager-0.50.0}/src/general_manager/search/indexer.py +0 -0
  167. {generalmanager-0.49.0 → generalmanager-0.50.0}/src/general_manager/search/registry.py +0 -0
  168. {generalmanager-0.49.0 → generalmanager-0.50.0}/src/general_manager/search/utils.py +0 -0
  169. {generalmanager-0.49.0 → generalmanager-0.50.0}/src/general_manager/seeding/__init__.py +0 -0
  170. {generalmanager-0.49.0 → generalmanager-0.50.0}/src/general_manager/seeding/manager_landscape.py +0 -0
  171. {generalmanager-0.49.0 → generalmanager-0.50.0}/src/general_manager/utils/__init__.py +0 -0
  172. {generalmanager-0.49.0 → generalmanager-0.50.0}/src/general_manager/utils/args_to_kwargs.py +0 -0
  173. {generalmanager-0.49.0 → generalmanager-0.50.0}/src/general_manager/utils/filter_parser.py +0 -0
  174. {generalmanager-0.49.0 → generalmanager-0.50.0}/src/general_manager/utils/format_string.py +0 -0
  175. {generalmanager-0.49.0 → generalmanager-0.50.0}/src/general_manager/utils/json_encoder.py +0 -0
  176. {generalmanager-0.49.0 → generalmanager-0.50.0}/src/general_manager/utils/make_cache_key.py +0 -0
  177. {generalmanager-0.49.0 → generalmanager-0.50.0}/src/general_manager/utils/none_to_zero.py +0 -0
  178. {generalmanager-0.49.0 → generalmanager-0.50.0}/src/general_manager/utils/path_mapping.py +0 -0
  179. {generalmanager-0.49.0 → generalmanager-0.50.0}/src/general_manager/utils/public_api.py +0 -0
  180. {generalmanager-0.49.0 → generalmanager-0.50.0}/src/general_manager/utils/testing.py +0 -0
  181. {generalmanager-0.49.0 → generalmanager-0.50.0}/src/general_manager/utils/type_checks.py +0 -0
  182. {generalmanager-0.49.0 → generalmanager-0.50.0}/src/general_manager/workflow/__init__.py +0 -0
  183. {generalmanager-0.49.0 → generalmanager-0.50.0}/src/general_manager/workflow/actions.py +0 -0
  184. {generalmanager-0.49.0 → generalmanager-0.50.0}/src/general_manager/workflow/backend_registry.py +0 -0
  185. {generalmanager-0.49.0 → generalmanager-0.50.0}/src/general_manager/workflow/backends/__init__.py +0 -0
  186. {generalmanager-0.49.0 → generalmanager-0.50.0}/src/general_manager/workflow/backends/celery.py +0 -0
  187. {generalmanager-0.49.0 → generalmanager-0.50.0}/src/general_manager/workflow/backends/local.py +0 -0
  188. {generalmanager-0.49.0 → generalmanager-0.50.0}/src/general_manager/workflow/backends/n8n.py +0 -0
  189. {generalmanager-0.49.0 → generalmanager-0.50.0}/src/general_manager/workflow/config.py +0 -0
  190. {generalmanager-0.49.0 → generalmanager-0.50.0}/src/general_manager/workflow/engine.py +0 -0
  191. {generalmanager-0.49.0 → generalmanager-0.50.0}/src/general_manager/workflow/event_registry.py +0 -0
  192. {generalmanager-0.49.0 → generalmanager-0.50.0}/src/general_manager/workflow/events.py +0 -0
  193. {generalmanager-0.49.0 → generalmanager-0.50.0}/src/general_manager/workflow/models.py +0 -0
  194. {generalmanager-0.49.0 → generalmanager-0.50.0}/src/general_manager/workflow/signal_bridge.py +0 -0
  195. {generalmanager-0.49.0 → generalmanager-0.50.0}/src/general_manager/workflow/tasks.py +0 -0
  196. {generalmanager-0.49.0 → generalmanager-0.50.0}/src/general_manager/workflow/telemetry.py +0 -0
  197. {generalmanager-0.49.0 → generalmanager-0.50.0}/tests/test_settings.py +0 -0
  198. {generalmanager-0.49.0 → generalmanager-0.50.0}/tests/test_urls.py +0 -0
  199. {generalmanager-0.49.0 → generalmanager-0.50.0}/tests/testing_asgi.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: GeneralManager
3
- Version: 0.49.0
3
+ Version: 0.50.0
4
4
  Summary: Modular Django-based data management framework with ORM, GraphQL, fine-grained permissions, rule validation, calculations and caching.
5
5
  Author-email: Tim Kleindick <tkleindick@yahoo.de>
6
6
  License: MIT License
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "GeneralManager"
7
- version = "0.49.0"
7
+ version = "0.50.0"
8
8
  description = "Modular Django-based data management framework with ORM, GraphQL, fine-grained permissions, rule validation, calculations and caching."
9
9
  readme = "README.md"
10
10
  authors = [{ name = "Tim Kleindick", email = "tkleindick@yahoo.de" }]
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: GeneralManager
3
- Version: 0.49.0
3
+ Version: 0.50.0
4
4
  Summary: Modular Django-based data management framework with ORM, GraphQL, fine-grained permissions, rule validation, calculations and caching.
5
5
  Author-email: Tim Kleindick <tkleindick@yahoo.de>
6
6
  License: MIT License
@@ -95,7 +95,7 @@ class GraphQLProperty(property):
95
95
  selected_cache = self.cache
96
96
  if selected_cache == "none":
97
97
  return self._raw_fget
98
- return cached(scope=cast(Literal["dependency", "run"], selected_cache))(
98
+ return cached(cache=cast(Literal["dependency", "run"], selected_cache))(
99
99
  self._raw_fget
100
100
  )
101
101
 
@@ -11,6 +11,7 @@ from typing import (
11
11
  Set,
12
12
  TypeVar,
13
13
  cast,
14
+ overload,
14
15
  )
15
16
 
16
17
  from django.core.cache import cache as django_cache
@@ -88,102 +89,122 @@ class UnsupportedCacheScopeError(ValueError):
88
89
 
89
90
 
90
91
  class CacheTimeoutConfigurationError(ValueError):
91
- """Raised when timeout is used with an incompatible cache scope."""
92
+ """Raised when timeout is used with an incompatible cache setting."""
92
93
 
93
94
  @classmethod
94
95
  def missing_timeout(cls) -> "CacheTimeoutConfigurationError":
95
- return cls('scope="timeout" requires timeout')
96
+ return cls('cache="timeout" requires timeout')
96
97
 
97
98
  @classmethod
98
99
  def unexpected_timeout(cls) -> "CacheTimeoutConfigurationError":
99
- return cls('timeout is only supported with scope="timeout"')
100
+ return cls('timeout is only supported with cache="timeout"')
100
101
 
101
102
 
103
+ @overload
104
+ def cached(func: FuncT) -> FuncT: ...
105
+ @overload
102
106
  def cached(
107
+ func: None = None,
103
108
  timeout: Optional[int] = None,
104
109
  cache_backend: CacheBackend = django_cache,
105
110
  record_fn: RecordFn = record_dependencies,
106
111
  *,
107
- scope: CacheScope = "run",
108
- ) -> Callable[[FuncT], FuncT]:
112
+ cache: CacheScope = "run",
113
+ ) -> Callable[[FuncT], FuncT]: ...
114
+
115
+
116
+ def cached(
117
+ func: FuncT | None = None,
118
+ timeout: Optional[int] = None,
119
+ cache_backend: CacheBackend = django_cache,
120
+ record_fn: RecordFn = record_dependencies,
121
+ *,
122
+ cache: CacheScope = "run",
123
+ ) -> FuncT | Callable[[FuncT], FuncT]:
109
124
  """
110
- Decorator factory for caching a function call.
125
+ Decorator for caching a function call.
111
126
 
112
127
  By default, cached values are scoped to the active
113
128
  :class:`~general_manager.cache.run_context.CalculationRunContext` and are
114
- discarded when that run ends. Use ``scope="dependency"`` to persist values
129
+ discarded when that run ends. Use ``cache="dependency"`` to persist values
115
130
  in ``cache_backend`` and use ``record_fn`` to persist dependency metadata
116
- for invalidation. Use ``scope="timeout"`` with ``timeout`` set for
131
+ for invalidation. Use ``cache="timeout"`` with ``timeout`` set for
117
132
  cache-backend storage with time-based expiry; dependency recording is
118
- ignored for timeout-scoped values.
133
+ ignored for timeout-cached values.
119
134
 
120
135
  Parameters:
121
- timeout (int | None): Expiration in seconds for timeout-scoped cached values.
122
- Required when ``scope`` is ``"timeout"`` and invalid with any other
136
+ func (Callable[..., object] | None): Function being decorated when used
137
+ as ``@cached``. Leave unset when using ``@cached(...)``.
138
+ timeout (int | None): Expiration in seconds for timeout-cached values.
139
+ Required when ``cache`` is ``"timeout"`` and invalid with any other
123
140
  ``CacheScope``.
124
141
  cache_backend (CacheBackend): Backend used to read and write cached results.
125
142
  record_fn (RecordFn): Callback invoked to persist dependency metadata when
126
- ``scope`` is ``"dependency"``. Defaults to
143
+ ``cache`` is ``"dependency"``. Defaults to
127
144
  :func:`~general_manager.cache.dependency_index.record_dependencies`.
128
- scope (CacheScope): Cache storage strategy. ``"run"`` memoizes for the active run,
145
+ cache (CacheScope): Cache storage strategy. ``"run"`` memoizes for the active run,
129
146
  ``"dependency"`` stores in ``cache_backend`` with dependency tracking,
130
147
  ``"timeout"`` stores in ``cache_backend`` with time-based expiry, and
131
148
  ``"none"`` disables caching.
132
149
 
133
150
  Returns:
134
- Callable: Decorator that wraps the target function with caching behaviour.
151
+ Callable: Decorated function or decorator that wraps the target function
152
+ with caching behaviour.
135
153
 
136
154
  Raises:
137
- ValueError: Raised for invalid ``scope``/``timeout`` combinations, including
155
+ ValueError: Raised for invalid ``cache``/``timeout`` combinations, including
138
156
  unsupported ``CacheScope`` values, missing ``timeout`` for
139
- ``scope="timeout"``, and ``timeout`` supplied for non-timeout scopes.
157
+ ``cache="timeout"``, and ``timeout`` supplied for non-timeout cache modes.
140
158
  DependencyLockTimeoutError: Propagated from ``record_fn`` (i.e.
141
159
  :func:`~general_manager.cache.dependency_index.record_dependencies`) when the
142
- dependency-index lock cannot be acquired within the configured timeout. The cached
160
+ dependency-index lock cannot be acquired within the configured timeout. The cached
143
161
  value has already been stored at that point; only the dependency metadata is lost.
144
162
  """
145
- if scope not in {"dependency", "run", "timeout", "none"}:
146
- raise UnsupportedCacheScopeError(scope)
147
- if scope == "timeout" and timeout is None:
163
+ if cache not in {"dependency", "run", "timeout", "none"}:
164
+ raise UnsupportedCacheScopeError(cache)
165
+ if cache == "timeout" and timeout is None:
148
166
  raise CacheTimeoutConfigurationError.missing_timeout()
149
- if timeout is not None and scope != "timeout":
167
+ if timeout is not None and cache != "timeout":
150
168
  raise CacheTimeoutConfigurationError.unexpected_timeout()
151
169
 
152
- def decorator(func: FuncT) -> FuncT:
153
- @wraps(func)
170
+ def decorator(decorated_func: FuncT) -> FuncT:
171
+ @wraps(decorated_func)
154
172
  def wrapper(*args: object, **kwargs: object) -> object:
155
- if scope == "none":
156
- return func(*args, **kwargs)
173
+ if cache == "none":
174
+ return decorated_func(*args, **kwargs)
157
175
 
158
- if scope == "run":
159
- key = make_cache_key(func, args, kwargs)
176
+ if cache == "run":
177
+ key = make_cache_key(decorated_func, args, kwargs)
160
178
  with ensure_calculation_run_context() as context:
161
- return context.get_or_set(key, lambda: func(*args, **kwargs))
179
+ return context.get_or_set(
180
+ key,
181
+ lambda: decorated_func(*args, **kwargs),
182
+ )
162
183
 
163
- key = make_cache_key(func, args, kwargs)
184
+ key = make_cache_key(decorated_func, args, kwargs)
164
185
 
165
- if scope == "timeout":
186
+ if cache == "timeout":
166
187
  cached_result = cache_backend.get(key, _SENTINEL)
167
188
  if cached_result is not _SENTINEL:
168
189
  logger.debug(
169
190
  "cache hit",
170
191
  context={
171
- "function": func.__qualname__,
192
+ "function": decorated_func.__qualname__,
172
193
  "key": key,
173
- "scope": scope,
194
+ "cache": cache,
174
195
  },
175
196
  )
176
197
  return cached_result
177
198
 
178
- result = func(*args, **kwargs)
199
+ result = decorated_func(*args, **kwargs)
179
200
  cache_backend.set(key, result, timeout)
180
201
  logger.debug(
181
202
  "cache miss stored",
182
203
  context={
183
- "function": func.__qualname__,
204
+ "function": decorated_func.__qualname__,
184
205
  "key": key,
185
206
  "timeout": timeout,
186
- "scope": scope,
207
+ "cache": cache,
187
208
  },
188
209
  )
189
210
  return result
@@ -193,9 +214,9 @@ def cached(
193
214
  logger.debug(
194
215
  message,
195
216
  context={
196
- "function": func.__qualname__,
217
+ "function": decorated_func.__qualname__,
197
218
  "key": key,
198
- "scope": scope,
219
+ "cache": cache,
199
220
  },
200
221
  )
201
222
  return hit.value
@@ -245,7 +266,7 @@ def cached(
245
266
 
246
267
  started_generation = get_dependency_generation()
247
268
  with DependencyTracker() as dependencies:
248
- result = func(*args, **kwargs)
269
+ result = decorated_func(*args, **kwargs)
249
270
  ModelDependencyCollector.add_args(dependencies, args, kwargs)
250
271
 
251
272
  def record_many(
@@ -287,9 +308,9 @@ def cached(
287
308
  logger.debug(
288
309
  "dependency cache publish aborted",
289
310
  context={
290
- "function": func.__qualname__,
311
+ "function": decorated_func.__qualname__,
291
312
  "key": key,
292
- "scope": scope,
313
+ "cache": cache,
293
314
  },
294
315
  )
295
316
  finally:
@@ -299,7 +320,7 @@ def cached(
299
320
  logger.debug(
300
321
  "cache miss recorded",
301
322
  context={
302
- "function": func.__qualname__,
323
+ "function": decorated_func.__qualname__,
303
324
  "key": key,
304
325
  "dependency_count": len(dependencies),
305
326
  "timeout": timeout,
@@ -308,8 +329,10 @@ def cached(
308
329
  return result
309
330
 
310
331
  # fix for python 3.14:
311
- wrapper.__annotations__ = func.__annotations__
332
+ wrapper.__annotations__ = decorated_func.__annotations__
312
333
 
313
334
  return cast(FuncT, wrapper)
314
335
 
315
- return decorator
336
+ if func is None:
337
+ return decorator
338
+ return decorator(func)
File without changes