GeneralManager 0.64.1__tar.gz → 0.64.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 (289) hide show
  1. {generalmanager-0.64.1/src/GeneralManager.egg-info → generalmanager-0.64.2}/PKG-INFO +1 -1
  2. {generalmanager-0.64.1 → generalmanager-0.64.2}/pyproject.toml +1 -1
  3. {generalmanager-0.64.1 → generalmanager-0.64.2/src/GeneralManager.egg-info}/PKG-INFO +1 -1
  4. generalmanager-0.64.2/src/general_manager/api/graphql_relations.py +180 -0
  5. {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/rule/rule.py +7 -2
  6. generalmanager-0.64.1/src/general_manager/api/graphql_relations.py +0 -72
  7. {generalmanager-0.64.1 → generalmanager-0.64.2}/LICENSE +0 -0
  8. {generalmanager-0.64.1 → generalmanager-0.64.2}/README.md +0 -0
  9. {generalmanager-0.64.1 → generalmanager-0.64.2}/setup.cfg +0 -0
  10. {generalmanager-0.64.1 → generalmanager-0.64.2}/src/GeneralManager.egg-info/SOURCES.txt +0 -0
  11. {generalmanager-0.64.1 → generalmanager-0.64.2}/src/GeneralManager.egg-info/dependency_links.txt +0 -0
  12. {generalmanager-0.64.1 → generalmanager-0.64.2}/src/GeneralManager.egg-info/requires.txt +0 -0
  13. {generalmanager-0.64.1 → generalmanager-0.64.2}/src/GeneralManager.egg-info/top_level.txt +0 -0
  14. {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/__init__.py +0 -0
  15. {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/_types/__init__.py +0 -0
  16. {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/_types/api.py +0 -0
  17. {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/_types/bucket.py +0 -0
  18. {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/_types/cache.py +0 -0
  19. {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/_types/dataframes.py +0 -0
  20. {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/_types/factory.py +0 -0
  21. {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/_types/general_manager.py +0 -0
  22. {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/_types/interface.py +0 -0
  23. {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/_types/manager.py +0 -0
  24. {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/_types/measurement.py +0 -0
  25. {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/_types/permission.py +0 -0
  26. {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/_types/rule.py +0 -0
  27. {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/_types/search.py +0 -0
  28. {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/_types/utils.py +0 -0
  29. {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/api/__init__.py +0 -0
  30. {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/api/graphql.py +0 -0
  31. {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/api/graphql_errors.py +0 -0
  32. {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/api/graphql_mutations.py +0 -0
  33. {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/api/graphql_prefetch.py +0 -0
  34. {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/api/graphql_resolvers.py +0 -0
  35. {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/api/graphql_search.py +0 -0
  36. {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/api/graphql_subscription_consumer.py +0 -0
  37. {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/api/graphql_subscriptions.py +0 -0
  38. {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/api/graphql_view.py +0 -0
  39. {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/api/graphql_warmup.py +0 -0
  40. {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/api/graphql_warmup_registry.py +0 -0
  41. {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/api/graphql_warmup_tasks.py +0 -0
  42. {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/api/mutation.py +0 -0
  43. {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/api/notification_batching.py +0 -0
  44. {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/api/property.py +0 -0
  45. {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/api/registry.py +0 -0
  46. {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/api/remote_api.py +0 -0
  47. {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/api/remote_invalidation.py +0 -0
  48. {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/api/remote_invalidation_client.py +0 -0
  49. {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/apps.py +0 -0
  50. {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/bootstrap.py +0 -0
  51. {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/bucket/__init__.py +0 -0
  52. {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/bucket/base_bucket.py +0 -0
  53. {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/bucket/calculation_bucket.py +0 -0
  54. {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/bucket/database_bucket.py +0 -0
  55. {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/bucket/group_bucket.py +0 -0
  56. {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/bucket/indexing.py +0 -0
  57. {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/bucket/request_bucket.py +0 -0
  58. {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/cache/__init__.py +0 -0
  59. {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/cache/cache_decorator.py +0 -0
  60. {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/cache/cache_tracker.py +0 -0
  61. {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/cache/dependency_cache.py +0 -0
  62. {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/cache/dependency_index.py +0 -0
  63. {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/cache/dependency_matching.py +0 -0
  64. {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/cache/dependency_publish.py +0 -0
  65. {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/cache/dependency_shards.py +0 -0
  66. {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/cache/model_dependency_collector.py +0 -0
  67. {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/cache/run_context.py +0 -0
  68. {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/cache/signals.py +0 -0
  69. {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/chat/__init__.py +0 -0
  70. {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/chat/audit.py +0 -0
  71. {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/chat/bootstrap.py +0 -0
  72. {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/chat/checks.py +0 -0
  73. {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/chat/consumer.py +0 -0
  74. {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/chat/errors.py +0 -0
  75. {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/chat/evals/__init__.py +0 -0
  76. {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/chat/evals/__main__.py +0 -0
  77. {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/chat/evals/baseline.py +0 -0
  78. {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/chat/evals/datasets/basic_queries.yaml +0 -0
  79. {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/chat/evals/datasets/demo_readiness.yaml +0 -0
  80. {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/chat/evals/datasets/edge_cases.yaml +0 -0
  81. {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/chat/evals/datasets/follow_ups.yaml +0 -0
  82. {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/chat/evals/datasets/large_schema.yaml +0 -0
  83. {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/chat/evals/datasets/multi_hop.yaml +0 -0
  84. {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/chat/evals/diagnostics.py +0 -0
  85. {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/chat/evals/fingerprints.py +0 -0
  86. {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/chat/evals/fixtures.py +0 -0
  87. {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/chat/evals/judges/__init__.py +0 -0
  88. {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/chat/evals/judges/answer_quality.py +0 -0
  89. {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/chat/evals/judges/contract.py +0 -0
  90. {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/chat/evals/judges/result_accuracy.py +0 -0
  91. {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/chat/evals/judges/tool_sequence.py +0 -0
  92. {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/chat/evals/readiness.py +0 -0
  93. {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/chat/evals/runner.py +0 -0
  94. {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/chat/evals/traces.py +0 -0
  95. {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/chat/grounding.py +0 -0
  96. {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/chat/models.py +0 -0
  97. {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/chat/providers/__init__.py +0 -0
  98. {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/chat/providers/_shared.py +0 -0
  99. {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/chat/providers/anthropic.py +0 -0
  100. {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/chat/providers/base.py +0 -0
  101. {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/chat/providers/google.py +0 -0
  102. {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/chat/providers/ollama.py +0 -0
  103. {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/chat/providers/openai.py +0 -0
  104. {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/chat/rate_limits.py +0 -0
  105. {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/chat/routing.py +0 -0
  106. {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/chat/schema_index.py +0 -0
  107. {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/chat/settings.py +0 -0
  108. {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/chat/signals.py +0 -0
  109. {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/chat/system_prompt.py +0 -0
  110. {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/chat/tool_metadata.py +0 -0
  111. {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/chat/tools.py +0 -0
  112. {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/chat/views.py +0 -0
  113. {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/conf.py +0 -0
  114. {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/dataframes/__init__.py +0 -0
  115. {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/dataframes/measurements.py +0 -0
  116. {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/factory/__init__.py +0 -0
  117. {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/factory/auto_factory.py +0 -0
  118. {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/factory/factories.py +0 -0
  119. {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/factory/factory_methods.py +0 -0
  120. {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/interface/__init__.py +0 -0
  121. {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/interface/base_interface.py +0 -0
  122. {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/interface/bundles/__init__.py +0 -0
  123. {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/interface/bundles/calculation.py +0 -0
  124. {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/interface/bundles/database.py +0 -0
  125. {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/interface/bundles/remote_manager.py +0 -0
  126. {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/interface/bundles/request.py +0 -0
  127. {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/interface/capabilities/__init__.py +0 -0
  128. {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/interface/capabilities/base.py +0 -0
  129. {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/interface/capabilities/builtin.py +0 -0
  130. {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/interface/capabilities/calculation/__init__.py +0 -0
  131. {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/interface/capabilities/calculation/_compat.py +0 -0
  132. {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/interface/capabilities/calculation/lifecycle.py +0 -0
  133. {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/interface/capabilities/configuration.py +0 -0
  134. {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/interface/capabilities/core/observability.py +0 -0
  135. {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/interface/capabilities/core/utils.py +0 -0
  136. {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/interface/capabilities/exceptions.py +0 -0
  137. {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/interface/capabilities/existing_model/__init__.py +0 -0
  138. {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/interface/capabilities/existing_model/_compat.py +0 -0
  139. {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/interface/capabilities/existing_model/resolution.py +0 -0
  140. {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/interface/capabilities/factory.py +0 -0
  141. {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/interface/capabilities/orm/__init__.py +0 -0
  142. {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/interface/capabilities/orm/_compat.py +0 -0
  143. {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/interface/capabilities/orm/history.py +0 -0
  144. {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/interface/capabilities/orm/lifecycle.py +0 -0
  145. {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/interface/capabilities/orm/mutations.py +0 -0
  146. {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/interface/capabilities/orm/support.py +0 -0
  147. {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/interface/capabilities/orm_utils/__init__.py +0 -0
  148. {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/interface/capabilities/orm_utils/django_manager_utils.py +0 -0
  149. {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/interface/capabilities/orm_utils/field_descriptors.py +0 -0
  150. {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/interface/capabilities/orm_utils/payload_normalizer.py +0 -0
  151. {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/interface/capabilities/read_only/__init__.py +0 -0
  152. {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/interface/capabilities/read_only/_compat.py +0 -0
  153. {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/interface/capabilities/read_only/_types.py +0 -0
  154. {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/interface/capabilities/read_only/lifecycle.py +0 -0
  155. {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/interface/capabilities/read_only/management.py +0 -0
  156. {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/interface/capabilities/registry.py +0 -0
  157. {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/interface/capabilities/remote_manager.py +0 -0
  158. {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/interface/capabilities/request/__init__.py +0 -0
  159. {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/interface/infrastructure/__init__.py +0 -0
  160. {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/interface/infrastructure/startup_hooks.py +0 -0
  161. {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/interface/infrastructure/system_checks.py +0 -0
  162. {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/interface/interfaces/__init__.py +0 -0
  163. {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/interface/interfaces/calculation.py +0 -0
  164. {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/interface/interfaces/database.py +0 -0
  165. {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/interface/interfaces/existing_model.py +0 -0
  166. {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/interface/interfaces/read_only.py +0 -0
  167. {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/interface/interfaces/remote_manager.py +0 -0
  168. {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/interface/interfaces/request.py +0 -0
  169. {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/interface/manifests/__init__.py +0 -0
  170. {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/interface/manifests/capability_builder.py +0 -0
  171. {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/interface/manifests/capability_manifest.py +0 -0
  172. {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/interface/manifests/capability_models.py +0 -0
  173. {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/interface/orm_interface.py +0 -0
  174. {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/interface/requests.py +0 -0
  175. {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/interface/utils/__init__.py +0 -0
  176. {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/interface/utils/database_interface_protocols.py +0 -0
  177. {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/interface/utils/errors.py +0 -0
  178. {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/interface/utils/history.py +0 -0
  179. {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/interface/utils/models.py +0 -0
  180. {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/logging.py +0 -0
  181. {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/management/commands/chat_cleanup.py +0 -0
  182. {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/management/commands/cleanup_upload_intents.py +0 -0
  183. {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/management/commands/graphql_warmup.py +0 -0
  184. {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/management/commands/graphql_warmup_refresh_due.py +0 -0
  185. {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/management/commands/search_index.py +0 -0
  186. {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/management/commands/search_reconcile.py +0 -0
  187. {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/management/commands/seed_manager_landscape.py +0 -0
  188. {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/management/commands/shell.py +0 -0
  189. {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/management/commands/workflow_drain_outbox.py +0 -0
  190. {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/management/commands/workflow_replay_dead_letters.py +0 -0
  191. {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/manager/__init__.py +0 -0
  192. {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/manager/general_manager.py +0 -0
  193. {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/manager/group_manager.py +0 -0
  194. {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/manager/input.py +0 -0
  195. {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/manager/meta.py +0 -0
  196. {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/measurement/__init__.py +0 -0
  197. {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/measurement/measurement.py +0 -0
  198. {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/measurement/measurement_field.py +0 -0
  199. {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/metrics/__init__.py +0 -0
  200. {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/metrics/graphql.py +0 -0
  201. {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/migrations/0001_initial.py +0 -0
  202. {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/migrations/0002_workflow_outbox_scaling_indexes.py +0 -0
  203. {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/migrations/0003_workflow_execution_correlation_constraint.py +0 -0
  204. {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/migrations/0004_chat_persistence_models.py +0 -0
  205. {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/migrations/0004_search_index_state.py +0 -0
  206. {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/migrations/0005_merge_chat_search.py +0 -0
  207. {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/migrations/0006_chat_pending_confirmation_scoped_ids.py +0 -0
  208. {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/migrations/0007_upload_intent.py +0 -0
  209. {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/migrations/0008_upload_finalization_versions.py +0 -0
  210. {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/migrations/0009_upload_cleanup_state.py +0 -0
  211. {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/migrations/__init__.py +0 -0
  212. {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/models.py +0 -0
  213. {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/permission/__init__.py +0 -0
  214. {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/permission/audit.py +0 -0
  215. {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/permission/base_permission.py +0 -0
  216. {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/permission/graphql_capabilities.py +0 -0
  217. {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/permission/manager_based_permission.py +0 -0
  218. {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/permission/mutation_permission.py +0 -0
  219. {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/permission/permission_checks.py +0 -0
  220. {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/permission/permission_data_manager.py +0 -0
  221. {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/permission/utils.py +0 -0
  222. {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/public_api_registry.py +0 -0
  223. {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/py.typed +0 -0
  224. {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/rule/__init__.py +0 -0
  225. {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/rule/handler.py +0 -0
  226. {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/search/__init__.py +0 -0
  227. {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/search/async_tasks.py +0 -0
  228. {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/search/backend.py +0 -0
  229. {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/search/backend_registry.py +0 -0
  230. {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/search/backends/__init__.py +0 -0
  231. {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/search/backends/dev.py +0 -0
  232. {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/search/backends/meilisearch.py +0 -0
  233. {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/search/backends/opensearch.py +0 -0
  234. {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/search/backends/typesense.py +0 -0
  235. {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/search/config.py +0 -0
  236. {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/search/indexer.py +0 -0
  237. {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/search/models.py +0 -0
  238. {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/search/reconciliation.py +0 -0
  239. {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/search/registry.py +0 -0
  240. {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/search/tasks.py +0 -0
  241. {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/search/utils.py +0 -0
  242. {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/seeding/__init__.py +0 -0
  243. {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/seeding/manager_landscape.py +0 -0
  244. {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/uploads/__init__.py +0 -0
  245. {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/uploads/adapters.py +0 -0
  246. {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/uploads/checks.py +0 -0
  247. {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/uploads/config.py +0 -0
  248. {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/uploads/errors.py +0 -0
  249. {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/uploads/finalization.py +0 -0
  250. {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/uploads/graphql.py +0 -0
  251. {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/uploads/graphql_types.py +0 -0
  252. {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/uploads/metrics.py +0 -0
  253. {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/uploads/models.py +0 -0
  254. {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/uploads/public.py +0 -0
  255. {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/uploads/s3.py +0 -0
  256. {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/uploads/services.py +0 -0
  257. {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/uploads/tokens.py +0 -0
  258. {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/uploads/types.py +0 -0
  259. {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/uploads/urls.py +0 -0
  260. {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/uploads/views.py +0 -0
  261. {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/utils/__init__.py +0 -0
  262. {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/utils/args_to_kwargs.py +0 -0
  263. {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/utils/filter_parser.py +0 -0
  264. {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/utils/format_string.py +0 -0
  265. {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/utils/json_encoder.py +0 -0
  266. {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/utils/make_cache_key.py +0 -0
  267. {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/utils/none_to_zero.py +0 -0
  268. {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/utils/path_mapping.py +0 -0
  269. {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/utils/public_api.py +0 -0
  270. {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/utils/testing.py +0 -0
  271. {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/utils/type_checks.py +0 -0
  272. {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/workflow/__init__.py +0 -0
  273. {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/workflow/actions.py +0 -0
  274. {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/workflow/backend_registry.py +0 -0
  275. {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/workflow/backends/__init__.py +0 -0
  276. {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/workflow/backends/celery.py +0 -0
  277. {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/workflow/backends/local.py +0 -0
  278. {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/workflow/backends/n8n.py +0 -0
  279. {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/workflow/config.py +0 -0
  280. {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/workflow/engine.py +0 -0
  281. {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/workflow/event_registry.py +0 -0
  282. {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/workflow/events.py +0 -0
  283. {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/workflow/models.py +0 -0
  284. {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/workflow/signal_bridge.py +0 -0
  285. {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/workflow/tasks.py +0 -0
  286. {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/workflow/telemetry.py +0 -0
  287. {generalmanager-0.64.1 → generalmanager-0.64.2}/tests/test_settings.py +0 -0
  288. {generalmanager-0.64.1 → generalmanager-0.64.2}/tests/test_urls.py +0 -0
  289. {generalmanager-0.64.1 → generalmanager-0.64.2}/tests/testing_asgi.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: GeneralManager
3
- Version: 0.64.1
3
+ Version: 0.64.2
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.64.1"
7
+ version = "0.64.2"
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.64.1
3
+ Version: 0.64.2
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
@@ -0,0 +1,180 @@
1
+ """Resolve manager targets from GraphQL relation annotations."""
2
+
3
+ from __future__ import annotations
4
+
5
+ import ast
6
+ from collections.abc import Mapping
7
+ from types import UnionType
8
+ from typing import ForwardRef, Union, get_args, get_origin
9
+
10
+ from general_manager.bucket.base_bucket import Bucket
11
+ from general_manager.manager.general_manager import GeneralManager
12
+ from general_manager.utils.type_checks import safe_issubclass
13
+
14
+
15
+ def get_graphql_manager_registry() -> dict[str, type[GeneralManager]]:
16
+ """Return the live GraphQL manager registry without an import-time cycle."""
17
+ from general_manager.api.graphql import GraphQL
18
+
19
+ return GraphQL.manager_registry
20
+
21
+
22
+ def resolve_general_manager_type(
23
+ declared_type: object,
24
+ manager_registry: Mapping[str, type[GeneralManager]] | None = None,
25
+ ) -> type[GeneralManager] | None:
26
+ """Return the single manager target represented by ``declared_type``.
27
+
28
+ Concrete manager classes, interface model classes carrying a manager
29
+ back-reference, supported collection annotations, optional unions, and
30
+ postponed string forms of those annotations are recognized. Ambiguous
31
+ annotations containing multiple manager targets return ``None``.
32
+ """
33
+ registry = manager_registry or {}
34
+ resolved = _collect_general_manager_types(declared_type, registry, set())
35
+ if len(resolved) != 1:
36
+ return None
37
+ return next(iter(resolved))
38
+
39
+
40
+ def _collect_general_manager_types(
41
+ declared_type: object,
42
+ manager_registry: Mapping[str, type[GeneralManager]],
43
+ seen: set[int],
44
+ ) -> set[type[GeneralManager]]:
45
+ value_id = id(declared_type)
46
+ if value_id in seen:
47
+ return set()
48
+ seen.add(value_id)
49
+
50
+ if safe_issubclass(declared_type, GeneralManager):
51
+ return {declared_type}
52
+
53
+ related_manager_type = getattr(declared_type, "_general_manager_class", None)
54
+ if safe_issubclass(related_manager_type, GeneralManager):
55
+ return {related_manager_type}
56
+
57
+ if isinstance(declared_type, ForwardRef):
58
+ declared_type = declared_type.__forward_arg__
59
+ if isinstance(declared_type, str):
60
+ manager_type = manager_registry.get(declared_type)
61
+ if manager_type is not None:
62
+ return {manager_type}
63
+ return _collect_string_general_manager_types(
64
+ declared_type,
65
+ manager_registry,
66
+ set(),
67
+ )
68
+
69
+ origin = get_origin(declared_type)
70
+ if origin is None:
71
+ return set()
72
+ if origin not in {list, tuple, set, Union, UnionType} and not safe_issubclass(
73
+ origin, Bucket
74
+ ):
75
+ return set()
76
+
77
+ manager_types: set[type[GeneralManager]] = set()
78
+ for argument in get_args(declared_type):
79
+ if argument is None or argument is type(None) or argument is Ellipsis:
80
+ continue
81
+ manager_types.update(
82
+ _collect_general_manager_types(argument, manager_registry, seen)
83
+ )
84
+ return manager_types
85
+
86
+
87
+ _SUPPORTED_STRING_WRAPPERS = {
88
+ "Bucket",
89
+ "List",
90
+ "Optional",
91
+ "Set",
92
+ "Tuple",
93
+ "Union",
94
+ "list",
95
+ "set",
96
+ "tuple",
97
+ }
98
+
99
+
100
+ def _collect_string_general_manager_types(
101
+ annotation: str,
102
+ manager_registry: Mapping[str, type[GeneralManager]],
103
+ seen: set[str],
104
+ ) -> set[type[GeneralManager]]:
105
+ expression = annotation.strip()
106
+ if not expression or expression in seen:
107
+ return set()
108
+ seen.add(expression)
109
+
110
+ try:
111
+ node = ast.parse(expression, mode="eval").body
112
+ except (SyntaxError, ValueError):
113
+ return set()
114
+ return _collect_annotation_node_manager_types(node, manager_registry, seen)
115
+
116
+
117
+ def _collect_annotation_node_manager_types(
118
+ node: ast.expr,
119
+ manager_registry: Mapping[str, type[GeneralManager]],
120
+ seen: set[str],
121
+ ) -> set[type[GeneralManager]]:
122
+ if isinstance(node, ast.Name):
123
+ manager_type = manager_registry.get(node.id)
124
+ return {manager_type} if manager_type is not None else set()
125
+
126
+ if isinstance(node, ast.Constant):
127
+ if isinstance(node.value, str):
128
+ return _collect_string_general_manager_types(
129
+ node.value,
130
+ manager_registry,
131
+ seen,
132
+ )
133
+ return set()
134
+
135
+ if isinstance(node, ast.Subscript):
136
+ wrapper_name = _annotation_node_name(node.value)
137
+ if wrapper_name is None or wrapper_name.rsplit(".", 1)[-1] not in (
138
+ _SUPPORTED_STRING_WRAPPERS
139
+ ):
140
+ return set()
141
+ return _collect_annotation_node_manager_types(
142
+ node.slice,
143
+ manager_registry,
144
+ seen,
145
+ )
146
+
147
+ if isinstance(node, ast.BinOp) and isinstance(node.op, ast.BitOr):
148
+ return _collect_annotation_node_manager_types(
149
+ node.left,
150
+ manager_registry,
151
+ seen,
152
+ ) | _collect_annotation_node_manager_types(
153
+ node.right,
154
+ manager_registry,
155
+ seen,
156
+ )
157
+
158
+ if isinstance(node, ast.Tuple):
159
+ manager_types: set[type[GeneralManager]] = set()
160
+ for element in node.elts:
161
+ manager_types.update(
162
+ _collect_annotation_node_manager_types(
163
+ element,
164
+ manager_registry,
165
+ seen,
166
+ )
167
+ )
168
+ return manager_types
169
+
170
+ return set()
171
+
172
+
173
+ def _annotation_node_name(node: ast.expr) -> str | None:
174
+ if isinstance(node, ast.Name):
175
+ return node.id
176
+ if isinstance(node, ast.Attribute):
177
+ parent_name = _annotation_node_name(node.value)
178
+ if parent_name is not None:
179
+ return f"{parent_name}.{node.attr}"
180
+ return None
@@ -311,10 +311,15 @@ class Rule(Generic[GeneralManagerType]):
311
311
  Returns:
312
312
  dict[str, str] | None: Mapping keyed by referenced variables or
313
313
  Django's `NON_FIELD_ERRORS` fallback when no variables are available;
314
- `None` if the predicate passed or was not evaluated.
314
+ `None` if the predicate passed, was skipped, or has not been evaluated.
315
315
 
316
316
  Raises:
317
- ErrorMessageGenerationError: If called before any input has been evaluated.
317
+ MissingErrorTemplateVariableError: If a failed rule's custom message
318
+ omits a placeholder for a referenced variable.
319
+ ErrorMessageGenerationError: If internal evaluation state records a
320
+ failed result without retaining its evaluated input.
321
+ Exception: A matching rule handler's documented message-generation
322
+ exceptions propagate unchanged.
318
323
  """
319
324
  if self._last_result or self._last_result is None:
320
325
  return None
@@ -1,72 +0,0 @@
1
- """Resolve manager targets from GraphQL relation annotations."""
2
-
3
- from __future__ import annotations
4
-
5
- from collections.abc import Mapping
6
- from types import UnionType
7
- from typing import ForwardRef, Union, get_args, get_origin
8
-
9
- from general_manager.bucket.base_bucket import Bucket
10
- from general_manager.manager.general_manager import GeneralManager
11
- from general_manager.utils.type_checks import safe_issubclass
12
-
13
-
14
- def get_graphql_manager_registry() -> dict[str, type[GeneralManager]]:
15
- """Return the live GraphQL manager registry without an import-time cycle."""
16
- from general_manager.api.graphql import GraphQL
17
-
18
- return GraphQL.manager_registry
19
-
20
-
21
- def resolve_general_manager_type(
22
- declared_type: object,
23
- manager_registry: Mapping[str, type[GeneralManager]] | None = None,
24
- ) -> type[GeneralManager] | None:
25
- """Return the single manager target represented by ``declared_type``.
26
-
27
- Concrete manager classes, supported collection annotations, optional
28
- unions, and exact names in ``manager_registry`` are recognized. Ambiguous
29
- annotations containing multiple manager targets return ``None``.
30
- """
31
- registry = manager_registry or {}
32
- resolved = _collect_general_manager_types(declared_type, registry, set())
33
- if len(resolved) != 1:
34
- return None
35
- return next(iter(resolved))
36
-
37
-
38
- def _collect_general_manager_types(
39
- declared_type: object,
40
- manager_registry: Mapping[str, type[GeneralManager]],
41
- seen: set[int],
42
- ) -> set[type[GeneralManager]]:
43
- value_id = id(declared_type)
44
- if value_id in seen:
45
- return set()
46
- seen.add(value_id)
47
-
48
- if safe_issubclass(declared_type, GeneralManager):
49
- return {declared_type}
50
-
51
- if isinstance(declared_type, ForwardRef):
52
- declared_type = declared_type.__forward_arg__
53
- if isinstance(declared_type, str):
54
- manager_type = manager_registry.get(declared_type)
55
- return {manager_type} if manager_type is not None else set()
56
-
57
- origin = get_origin(declared_type)
58
- if origin is None:
59
- return set()
60
- if origin not in {list, tuple, set, Union, UnionType} and not safe_issubclass(
61
- origin, Bucket
62
- ):
63
- return set()
64
-
65
- manager_types: set[type[GeneralManager]] = set()
66
- for argument in get_args(declared_type):
67
- if argument is None or argument is type(None) or argument is Ellipsis:
68
- continue
69
- manager_types.update(
70
- _collect_general_manager_types(argument, manager_registry, seen)
71
- )
72
- return manager_types
File without changes