GeneralManager 0.87.5__tar.gz → 0.88.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 (377) hide show
  1. {generalmanager-0.87.5/src/GeneralManager.egg-info → generalmanager-0.88.0}/PKG-INFO +1 -1
  2. {generalmanager-0.87.5 → generalmanager-0.88.0}/pyproject.toml +1 -1
  3. {generalmanager-0.87.5 → generalmanager-0.88.0/src/GeneralManager.egg-info}/PKG-INFO +1 -1
  4. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/GeneralManager.egg-info/SOURCES.txt +3 -0
  5. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/api/graphql.py +6 -6
  6. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/api/graphql_output.py +66 -32
  7. generalmanager-0.88.0/src/general_manager/api/graphql_query_permissions.py +619 -0
  8. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/api/graphql_resolvers.py +319 -92
  9. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/api/graphql_search.py +430 -75
  10. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/api/graphql_type.py +10 -6
  11. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/api/mutation.py +206 -6
  12. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/apps.py +4 -0
  13. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/bucket/calculation_bucket.py +322 -15
  14. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/bucket/database_bucket.py +144 -1
  15. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/cache/run_context.py +15 -1
  16. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/cache/signals.py +82 -15
  17. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/interface/base_interface.py +18 -0
  18. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/interface/capabilities/orm/support.py +26 -0
  19. generalmanager-0.88.0/src/general_manager/interface/capabilities/orm_utils/collection_probes.py +181 -0
  20. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/interface/capabilities/orm_utils/field_descriptors.py +37 -0
  21. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/manager/general_manager.py +4 -0
  22. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/manager/input.py +12 -0
  23. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/manager/meta.py +70 -25
  24. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/permission/manager_based_permission.py +190 -11
  25. generalmanager-0.88.0/src/general_manager/search/authorization.py +109 -0
  26. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/search/backend.py +17 -2
  27. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/search/backends/meilisearch.py +313 -6
  28. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/search/config.py +30 -3
  29. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/search/indexer.py +2 -0
  30. generalmanager-0.88.0/src/general_manager/search/projection.py +317 -0
  31. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/search/reconciliation.py +29 -4
  32. generalmanager-0.87.5/src/general_manager/api/graphql_query_permissions.py +0 -168
  33. {generalmanager-0.87.5 → generalmanager-0.88.0}/LICENSE +0 -0
  34. {generalmanager-0.87.5 → generalmanager-0.88.0}/README.md +0 -0
  35. {generalmanager-0.87.5 → generalmanager-0.88.0}/setup.cfg +0 -0
  36. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/GeneralManager.egg-info/dependency_links.txt +0 -0
  37. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/GeneralManager.egg-info/requires.txt +0 -0
  38. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/GeneralManager.egg-info/top_level.txt +0 -0
  39. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/__init__.py +0 -0
  40. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/_types/__init__.py +0 -0
  41. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/_types/api.py +0 -0
  42. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/_types/bucket.py +0 -0
  43. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/_types/cache.py +0 -0
  44. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/_types/dataframes.py +0 -0
  45. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/_types/factory.py +0 -0
  46. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/_types/general_manager.py +0 -0
  47. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/_types/interface.py +0 -0
  48. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/_types/manager.py +0 -0
  49. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/_types/measurement.py +0 -0
  50. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/_types/permission.py +0 -0
  51. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/_types/rule.py +0 -0
  52. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/_types/search.py +0 -0
  53. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/_types/utils.py +0 -0
  54. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/api/__init__.py +0 -0
  55. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/api/graphql_as_of.py +0 -0
  56. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/api/graphql_errors.py +0 -0
  57. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/api/graphql_filter_contract.py +0 -0
  58. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/api/graphql_groups.py +0 -0
  59. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/api/graphql_identifiers.py +0 -0
  60. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/api/graphql_mutations.py +0 -0
  61. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/api/graphql_ordering.py +0 -0
  62. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/api/graphql_prefetch.py +0 -0
  63. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/api/graphql_relations.py +0 -0
  64. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/api/graphql_subscription_consumer.py +0 -0
  65. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/api/graphql_subscriptions.py +0 -0
  66. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/api/graphql_units.py +0 -0
  67. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/api/graphql_value_contract.py +0 -0
  68. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/api/graphql_view.py +0 -0
  69. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/api/graphql_warmup.py +0 -0
  70. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/api/graphql_warmup_registry.py +0 -0
  71. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/api/graphql_warmup_tasks.py +0 -0
  72. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/api/mutation_controls.py +0 -0
  73. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/api/notification_batching.py +0 -0
  74. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/api/property.py +0 -0
  75. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/api/registry.py +0 -0
  76. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/api/remote_api.py +0 -0
  77. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/api/remote_invalidation.py +0 -0
  78. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/api/remote_invalidation_client.py +0 -0
  79. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/as_of.py +0 -0
  80. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/bootstrap.py +0 -0
  81. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/bucket/__init__.py +0 -0
  82. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/bucket/_materialized_bucket.py +0 -0
  83. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/bucket/_ordering.py +0 -0
  84. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/bucket/base_bucket.py +0 -0
  85. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/bucket/excel_bucket.py +0 -0
  86. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/bucket/group_bucket.py +0 -0
  87. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/bucket/indexing.py +0 -0
  88. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/bucket/projection.py +0 -0
  89. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/bucket/request_bucket.py +0 -0
  90. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/cache/__init__.py +0 -0
  91. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/cache/_dependency_graph.py +0 -0
  92. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/cache/batch_refresh.py +0 -0
  93. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/cache/cache_decorator.py +0 -0
  94. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/cache/cache_tracker.py +0 -0
  95. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/cache/data_change_context.py +0 -0
  96. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/cache/dependency_cache.py +0 -0
  97. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/cache/dependency_index.py +0 -0
  98. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/cache/dependency_matching.py +0 -0
  99. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/cache/dependency_publish.py +0 -0
  100. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/cache/dependency_shards.py +0 -0
  101. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/cache/model_dependency_collector.py +0 -0
  102. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/cache/run_context_lru.py +0 -0
  103. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/cache/transaction_barrier.py +0 -0
  104. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/chat/__init__.py +0 -0
  105. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/chat/audit.py +0 -0
  106. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/chat/audit_identity.py +0 -0
  107. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/chat/bootstrap.py +0 -0
  108. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/chat/checks.py +0 -0
  109. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/chat/consumer.py +0 -0
  110. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/chat/context.py +0 -0
  111. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/chat/errors.py +0 -0
  112. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/chat/evals/__init__.py +0 -0
  113. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/chat/evals/__main__.py +0 -0
  114. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/chat/evals/baseline.py +0 -0
  115. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/chat/evals/datasets/basic_queries.yaml +0 -0
  116. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/chat/evals/datasets/demo_readiness.yaml +0 -0
  117. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/chat/evals/datasets/edge_cases.yaml +0 -0
  118. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/chat/evals/datasets/follow_ups.yaml +0 -0
  119. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/chat/evals/datasets/large_schema.yaml +0 -0
  120. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/chat/evals/datasets/multi_hop.yaml +0 -0
  121. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/chat/evals/datasets/planned_orchestration.yaml +0 -0
  122. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/chat/evals/diagnostics.py +0 -0
  123. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/chat/evals/execution.py +0 -0
  124. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/chat/evals/fingerprints.py +0 -0
  125. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/chat/evals/fixtures.py +0 -0
  126. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/chat/evals/judges/__init__.py +0 -0
  127. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/chat/evals/judges/answer_quality.py +0 -0
  128. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/chat/evals/judges/contract.py +0 -0
  129. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/chat/evals/judges/result_accuracy.py +0 -0
  130. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/chat/evals/judges/result_set.py +0 -0
  131. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/chat/evals/judges/tool_sequence.py +0 -0
  132. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/chat/evals/outcomes.py +0 -0
  133. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/chat/evals/readiness.py +0 -0
  134. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/chat/evals/runner.py +0 -0
  135. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/chat/evals/traces.py +0 -0
  136. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/chat/graphql_contract.py +0 -0
  137. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/chat/grounding.py +0 -0
  138. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/chat/models.py +0 -0
  139. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/chat/mutation_inputs.py +0 -0
  140. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/chat/planned/__init__.py +0 -0
  141. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/chat/planned/action_contract.py +0 -0
  142. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/chat/planned/binding_diagnostics.py +0 -0
  143. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/chat/planned/budget.py +0 -0
  144. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/chat/planned/calculation_scope.py +0 -0
  145. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/chat/planned/calculations.py +0 -0
  146. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/chat/planned/catalog.py +0 -0
  147. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/chat/planned/category_binding.py +0 -0
  148. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/chat/planned/choice_context.py +0 -0
  149. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/chat/planned/clarification.py +0 -0
  150. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/chat/planned/config.py +0 -0
  151. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/chat/planned/contract.py +0 -0
  152. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/chat/planned/conversion.py +0 -0
  153. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/chat/planned/cross_query.py +0 -0
  154. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/chat/planned/deferred_calculations.py +0 -0
  155. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/chat/planned/deferred_schema.py +0 -0
  156. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/chat/planned/events.py +0 -0
  157. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/chat/planned/evidence.py +0 -0
  158. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/chat/planned/evidence_selection.py +0 -0
  159. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/chat/planned/group_actions.py +0 -0
  160. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/chat/planned/models.py +0 -0
  161. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/chat/planned/planner.py +0 -0
  162. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/chat/planned/planner_context.py +0 -0
  163. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/chat/planned/provider_calls.py +0 -0
  164. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/chat/planned/resolver.py +0 -0
  165. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/chat/planned/scheduler.py +0 -0
  166. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/chat/planned/schema_projection.py +0 -0
  167. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/chat/planned/selector_clarification.py +0 -0
  168. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/chat/planned/selector_question.py +0 -0
  169. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/chat/planned/synthesis.py +0 -0
  170. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/chat/planned/validation.py +0 -0
  171. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/chat/providers/__init__.py +0 -0
  172. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/chat/providers/_shared.py +0 -0
  173. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/chat/providers/anthropic.py +0 -0
  174. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/chat/providers/base.py +0 -0
  175. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/chat/providers/google.py +0 -0
  176. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/chat/providers/ollama.py +0 -0
  177. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/chat/providers/openai.py +0 -0
  178. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/chat/rate_limits.py +0 -0
  179. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/chat/routing.py +0 -0
  180. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/chat/schema_index.py +0 -0
  181. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/chat/schema_inspection.py +0 -0
  182. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/chat/settings.py +0 -0
  183. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/chat/signals.py +0 -0
  184. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/chat/system_prompt.py +0 -0
  185. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/chat/tool_metadata.py +0 -0
  186. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/chat/tools.py +0 -0
  187. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/chat/turns.py +0 -0
  188. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/chat/views.py +0 -0
  189. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/conf.py +0 -0
  190. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/dataframes/__init__.py +0 -0
  191. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/dataframes/measurements.py +0 -0
  192. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/factory/__init__.py +0 -0
  193. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/factory/auto_factory.py +0 -0
  194. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/factory/factories.py +0 -0
  195. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/factory/factory_methods.py +0 -0
  196. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/interface/__init__.py +0 -0
  197. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/interface/bundles/__init__.py +0 -0
  198. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/interface/bundles/calculation.py +0 -0
  199. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/interface/bundles/database.py +0 -0
  200. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/interface/bundles/excel.py +0 -0
  201. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/interface/bundles/remote_manager.py +0 -0
  202. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/interface/bundles/request.py +0 -0
  203. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/interface/capabilities/__init__.py +0 -0
  204. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/interface/capabilities/base.py +0 -0
  205. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/interface/capabilities/builtin.py +0 -0
  206. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/interface/capabilities/calculation/__init__.py +0 -0
  207. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/interface/capabilities/calculation/_compat.py +0 -0
  208. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/interface/capabilities/calculation/input_resolution.py +0 -0
  209. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/interface/capabilities/calculation/lifecycle.py +0 -0
  210. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/interface/capabilities/configuration.py +0 -0
  211. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/interface/capabilities/core/observability.py +0 -0
  212. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/interface/capabilities/core/utils.py +0 -0
  213. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/interface/capabilities/excel/__init__.py +0 -0
  214. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/interface/capabilities/exceptions.py +0 -0
  215. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/interface/capabilities/existing_model/__init__.py +0 -0
  216. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/interface/capabilities/existing_model/_compat.py +0 -0
  217. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/interface/capabilities/existing_model/resolution.py +0 -0
  218. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/interface/capabilities/factory.py +0 -0
  219. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/interface/capabilities/orm/__init__.py +0 -0
  220. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/interface/capabilities/orm/_compat.py +0 -0
  221. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/interface/capabilities/orm/bulk.py +0 -0
  222. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/interface/capabilities/orm/create_many.py +0 -0
  223. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/interface/capabilities/orm/history.py +0 -0
  224. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/interface/capabilities/orm/history_query.py +0 -0
  225. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/interface/capabilities/orm/lifecycle.py +0 -0
  226. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/interface/capabilities/orm/mutations.py +0 -0
  227. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/interface/capabilities/orm_utils/__init__.py +0 -0
  228. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/interface/capabilities/orm_utils/django_manager_utils.py +0 -0
  229. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/interface/capabilities/orm_utils/payload_normalizer.py +0 -0
  230. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/interface/capabilities/orm_utils/update_state.py +0 -0
  231. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/interface/capabilities/read_only/__init__.py +0 -0
  232. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/interface/capabilities/read_only/_compat.py +0 -0
  233. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/interface/capabilities/read_only/_types.py +0 -0
  234. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/interface/capabilities/read_only/lifecycle.py +0 -0
  235. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/interface/capabilities/read_only/management.py +0 -0
  236. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/interface/capabilities/registry.py +0 -0
  237. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/interface/capabilities/remote_manager.py +0 -0
  238. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/interface/capabilities/request/__init__.py +0 -0
  239. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/interface/excel.py +0 -0
  240. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/interface/excel_store.py +0 -0
  241. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/interface/excel_workbook.py +0 -0
  242. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/interface/infrastructure/__init__.py +0 -0
  243. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/interface/infrastructure/startup_hooks.py +0 -0
  244. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/interface/infrastructure/system_checks.py +0 -0
  245. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/interface/interfaces/__init__.py +0 -0
  246. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/interface/interfaces/calculation.py +0 -0
  247. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/interface/interfaces/database.py +0 -0
  248. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/interface/interfaces/excel.py +0 -0
  249. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/interface/interfaces/existing_model.py +0 -0
  250. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/interface/interfaces/read_only.py +0 -0
  251. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/interface/interfaces/remote_manager.py +0 -0
  252. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/interface/interfaces/request.py +0 -0
  253. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/interface/manifests/__init__.py +0 -0
  254. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/interface/manifests/capability_builder.py +0 -0
  255. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/interface/manifests/capability_manifest.py +0 -0
  256. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/interface/manifests/capability_models.py +0 -0
  257. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/interface/orm_interface.py +0 -0
  258. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/interface/requests.py +0 -0
  259. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/interface/unit_contract.py +0 -0
  260. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/interface/utils/__init__.py +0 -0
  261. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/interface/utils/database_interface_protocols.py +0 -0
  262. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/interface/utils/errors.py +0 -0
  263. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/interface/utils/history.py +0 -0
  264. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/interface/utils/models.py +0 -0
  265. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/logging.py +0 -0
  266. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/management/commands/chat_cleanup.py +0 -0
  267. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/management/commands/cleanup_upload_intents.py +0 -0
  268. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/management/commands/graphql_warmup.py +0 -0
  269. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/management/commands/graphql_warmup_refresh_due.py +0 -0
  270. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/management/commands/search_index.py +0 -0
  271. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/management/commands/search_reconcile.py +0 -0
  272. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/management/commands/seed_manager_landscape.py +0 -0
  273. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/management/commands/shell.py +0 -0
  274. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/management/commands/sync_read_only.py +0 -0
  275. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/management/commands/workflow_drain_outbox.py +0 -0
  276. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/management/commands/workflow_replay_dead_letters.py +0 -0
  277. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/manager/__init__.py +0 -0
  278. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/manager/bulk_create.py +0 -0
  279. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/manager/group_manager.py +0 -0
  280. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/measurement/__init__.py +0 -0
  281. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/measurement/measurement.py +0 -0
  282. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/measurement/measurement_field.py +0 -0
  283. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/metrics/__init__.py +0 -0
  284. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/metrics/graphql.py +0 -0
  285. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/migrations/0001_initial.py +0 -0
  286. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/migrations/0002_workflow_outbox_scaling_indexes.py +0 -0
  287. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/migrations/0003_workflow_execution_correlation_constraint.py +0 -0
  288. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/migrations/0004_chat_persistence_models.py +0 -0
  289. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/migrations/0004_search_index_state.py +0 -0
  290. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/migrations/0005_merge_chat_search.py +0 -0
  291. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/migrations/0006_chat_pending_confirmation_scoped_ids.py +0 -0
  292. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/migrations/0007_upload_intent.py +0 -0
  293. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/migrations/0008_upload_finalization_versions.py +0 -0
  294. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/migrations/0009_upload_cleanup_state.py +0 -0
  295. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/migrations/0010_chat_pending_confirmation_portable_uniqueness.py +0 -0
  296. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/migrations/0011_search_index_state_dirty_generation.py +0 -0
  297. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/migrations/0012_chat_context_watermarks.py +0 -0
  298. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/migrations/__init__.py +0 -0
  299. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/models.py +0 -0
  300. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/permission/__init__.py +0 -0
  301. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/permission/audit.py +0 -0
  302. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/permission/base_permission.py +0 -0
  303. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/permission/graphql_capabilities.py +0 -0
  304. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/permission/mutation_permission.py +0 -0
  305. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/permission/permission_checks.py +0 -0
  306. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/permission/permission_data_manager.py +0 -0
  307. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/permission/utils.py +0 -0
  308. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/public_api_registry.py +0 -0
  309. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/py.typed +0 -0
  310. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/rule/__init__.py +0 -0
  311. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/rule/handler.py +0 -0
  312. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/rule/rule.py +0 -0
  313. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/search/__init__.py +0 -0
  314. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/search/async_tasks.py +0 -0
  315. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/search/backend_registry.py +0 -0
  316. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/search/backends/__init__.py +0 -0
  317. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/search/backends/dev.py +0 -0
  318. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/search/backends/opensearch.py +0 -0
  319. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/search/backends/typesense.py +0 -0
  320. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/search/checks.py +0 -0
  321. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/search/identity.py +0 -0
  322. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/search/invalidation.py +0 -0
  323. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/search/m2m_invalidation.py +0 -0
  324. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/search/models.py +0 -0
  325. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/search/registry.py +0 -0
  326. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/search/tasks.py +0 -0
  327. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/search/utils.py +0 -0
  328. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/seeding/__init__.py +0 -0
  329. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/seeding/manager_landscape.py +0 -0
  330. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/uploads/__init__.py +0 -0
  331. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/uploads/adapters.py +0 -0
  332. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/uploads/checks.py +0 -0
  333. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/uploads/config.py +0 -0
  334. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/uploads/errors.py +0 -0
  335. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/uploads/finalization.py +0 -0
  336. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/uploads/graphql.py +0 -0
  337. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/uploads/graphql_types.py +0 -0
  338. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/uploads/metrics.py +0 -0
  339. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/uploads/models.py +0 -0
  340. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/uploads/public.py +0 -0
  341. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/uploads/s3.py +0 -0
  342. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/uploads/services.py +0 -0
  343. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/uploads/tokens.py +0 -0
  344. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/uploads/types.py +0 -0
  345. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/uploads/urls.py +0 -0
  346. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/uploads/views.py +0 -0
  347. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/utils/__init__.py +0 -0
  348. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/utils/_args_to_kwargs.py +0 -0
  349. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/utils/_cache_key_encoder.py +0 -0
  350. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/utils/_make_cache_key.py +0 -0
  351. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/utils/_none_to_zero.py +0 -0
  352. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/utils/executable_contract.py +0 -0
  353. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/utils/filter_parser.py +0 -0
  354. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/utils/format_string.py +0 -0
  355. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/utils/json_encoder.py +0 -0
  356. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/utils/path_mapping.py +0 -0
  357. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/utils/public_api.py +0 -0
  358. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/utils/testing.py +0 -0
  359. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/utils/type_checks.py +0 -0
  360. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/workflow/__init__.py +0 -0
  361. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/workflow/actions.py +0 -0
  362. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/workflow/backend_registry.py +0 -0
  363. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/workflow/backends/__init__.py +0 -0
  364. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/workflow/backends/celery.py +0 -0
  365. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/workflow/backends/local.py +0 -0
  366. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/workflow/backends/n8n.py +0 -0
  367. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/workflow/config.py +0 -0
  368. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/workflow/engine.py +0 -0
  369. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/workflow/event_registry.py +0 -0
  370. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/workflow/events.py +0 -0
  371. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/workflow/models.py +0 -0
  372. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/workflow/signal_bridge.py +0 -0
  373. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/workflow/tasks.py +0 -0
  374. {generalmanager-0.87.5 → generalmanager-0.88.0}/src/general_manager/workflow/telemetry.py +0 -0
  375. {generalmanager-0.87.5 → generalmanager-0.88.0}/tests/test_settings.py +0 -0
  376. {generalmanager-0.87.5 → generalmanager-0.88.0}/tests/test_urls.py +0 -0
  377. {generalmanager-0.87.5 → generalmanager-0.88.0}/tests/testing_asgi.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: GeneralManager
3
- Version: 0.87.5
3
+ Version: 0.88.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.87.5"
7
+ version = "0.88.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.87.5
3
+ Version: 0.88.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
@@ -221,6 +221,7 @@ src/general_manager/interface/capabilities/orm/lifecycle.py
221
221
  src/general_manager/interface/capabilities/orm/mutations.py
222
222
  src/general_manager/interface/capabilities/orm/support.py
223
223
  src/general_manager/interface/capabilities/orm_utils/__init__.py
224
+ src/general_manager/interface/capabilities/orm_utils/collection_probes.py
224
225
  src/general_manager/interface/capabilities/orm_utils/django_manager_utils.py
225
226
  src/general_manager/interface/capabilities/orm_utils/field_descriptors.py
226
227
  src/general_manager/interface/capabilities/orm_utils/payload_normalizer.py
@@ -301,6 +302,7 @@ src/general_manager/rule/handler.py
301
302
  src/general_manager/rule/rule.py
302
303
  src/general_manager/search/__init__.py
303
304
  src/general_manager/search/async_tasks.py
305
+ src/general_manager/search/authorization.py
304
306
  src/general_manager/search/backend.py
305
307
  src/general_manager/search/backend_registry.py
306
308
  src/general_manager/search/checks.py
@@ -310,6 +312,7 @@ src/general_manager/search/indexer.py
310
312
  src/general_manager/search/invalidation.py
311
313
  src/general_manager/search/m2m_invalidation.py
312
314
  src/general_manager/search/models.py
315
+ src/general_manager/search/projection.py
313
316
  src/general_manager/search/reconciliation.py
314
317
  src/general_manager/search/registry.py
315
318
  src/general_manager/search/tasks.py
@@ -109,7 +109,7 @@ from general_manager.api.graphql_mutations import (
109
109
  generate_delete_mutation_class as _generate_delete_mutation_class_fn,
110
110
  )
111
111
  from general_manager.api.graphql_output import (
112
- GraphQLOutputIdentityMetadataError,
112
+ _value_field_is_identifier,
113
113
  create_output_field_resolver,
114
114
  map_graphql_output_annotation,
115
115
  resolve_output_type_hints,
@@ -390,6 +390,9 @@ class GraphQL:
390
390
  _subscription_payload_registry: ClassVar[dict[str, type[graphene.ObjectType]]] = {}
391
391
  graphql_type_registry: ClassVar[dict[str, type[graphene.ObjectType]]] = {}
392
392
  graphql_output_type_registry: ClassVar[dict[str, type[graphene.ObjectType]]] = {}
393
+ _value_input_type_cache: ClassVar[
394
+ dict[type[GraphQLType], type[graphene.InputObjectType]]
395
+ ] = {}
393
396
  graphql_filter_type_registry: ClassVar[
394
397
  dict[str, type[graphene.InputObjectType]]
395
398
  ] = {}
@@ -440,6 +443,7 @@ class GraphQL:
440
443
  cls._subscription_payload_registry = {}
441
444
  cls.graphql_type_registry = {}
442
445
  cls.graphql_output_type_registry = {}
446
+ cls._value_input_type_cache = {}
443
447
  cls.graphql_filter_type_registry = {}
444
448
  cls.graphql_capability_type_registry = {}
445
449
  cls.manager_registry = {}
@@ -532,11 +536,7 @@ class GraphQL:
532
536
  )
533
537
  fields: dict[str, graphene.Field] = {}
534
538
  for declared_field in dataclasses.fields(output_class):
535
- is_identifier = declared_field.metadata.get("is_identifier", False)
536
- if not isinstance(is_identifier, bool):
537
- raise GraphQLOutputIdentityMetadataError(
538
- output_name, declared_field.name, is_identifier
539
- )
539
+ is_identifier = _value_field_is_identifier(output_name, declared_field)
540
540
  mapped = map_graphql_output_annotation(
541
541
  hints[declared_field.name],
542
542
  owner_name=output_name,
@@ -3,7 +3,7 @@
3
3
  from __future__ import annotations
4
4
 
5
5
  from collections.abc import Callable, Mapping
6
- from dataclasses import dataclass, replace
6
+ from dataclasses import Field, dataclass, replace
7
7
  from datetime import date, datetime
8
8
  from decimal import Decimal
9
9
  import sys
@@ -51,6 +51,14 @@ class GraphQLOutputIdentityMetadataError(TypeError):
51
51
  )
52
52
 
53
53
 
54
+ def _value_field_is_identifier(owner_name: str, field: Field[object]) -> bool:
55
+ """Read the shared identity metadata on a GraphQL value field."""
56
+ flag = field.metadata.get("is_identifier", False)
57
+ if not isinstance(flag, bool):
58
+ raise GraphQLOutputIdentityMetadataError(owner_name, field.name, flag)
59
+ return flag
60
+
61
+
54
62
  @dataclass(frozen=True, slots=True)
55
63
  class _MappedAnnotation:
56
64
  """Internal Graphene type metadata before a field wrapper is mounted."""
@@ -144,19 +152,14 @@ def _lazy_registry_type(
144
152
  return lambda: registry[name]
145
153
 
146
154
 
147
- def _map_collection_annotation(
155
+ def _collection_element_annotation(
148
156
  annotation: object,
149
157
  *,
150
158
  owner_name: str,
151
159
  field_name: str,
152
- manager_registry: Mapping[str, type[GeneralManager]],
153
- manager_type_registry: Mapping[str, type[graphene.ObjectType]],
154
- output_class_registry: Mapping[str, type[GraphQLType]],
155
- output_type_registry: Mapping[str, type[graphene.ObjectType]],
156
- measurement_type: type[graphene.ObjectType],
157
- scalar_mapper: Callable[[type], type],
158
- is_identifier: bool = False,
159
- ) -> _MappedAnnotation:
160
+ is_identifier: bool,
161
+ ) -> object:
162
+ """Validate a homogeneous collection and return its element annotation."""
160
163
  origin = get_origin(annotation)
161
164
  if origin not in (list, tuple, set):
162
165
  raise _annotation_error(owner_name, field_name, annotation)
@@ -178,6 +181,28 @@ def _map_collection_annotation(
178
181
  if identity_type not in (int, str, UUID):
179
182
  raise _annotation_error(owner_name, field_name, annotation)
180
183
 
184
+ return element_annotation
185
+
186
+
187
+ def _map_collection_annotation(
188
+ annotation: object,
189
+ *,
190
+ owner_name: str,
191
+ field_name: str,
192
+ manager_registry: Mapping[str, type[GeneralManager]],
193
+ manager_type_registry: Mapping[str, type[graphene.ObjectType]],
194
+ output_class_registry: Mapping[str, type[GraphQLType]],
195
+ output_type_registry: Mapping[str, type[graphene.ObjectType]],
196
+ measurement_type: type[graphene.ObjectType],
197
+ scalar_mapper: Callable[[type], type],
198
+ is_identifier: bool = False,
199
+ ) -> _MappedAnnotation:
200
+ element_annotation = _collection_element_annotation(
201
+ annotation,
202
+ owner_name=owner_name,
203
+ field_name=field_name,
204
+ is_identifier=is_identifier,
205
+ )
181
206
  element = _map_annotation(
182
207
  element_annotation,
183
208
  owner_name=owner_name,
@@ -201,6 +226,23 @@ def _map_collection_annotation(
201
226
  )
202
227
 
203
228
 
229
+ def _map_value_scalar_annotation(
230
+ annotation: object,
231
+ *,
232
+ owner_name: str,
233
+ field_name: str,
234
+ scalar_mapper: Callable[[type], type],
235
+ is_identifier: bool,
236
+ ) -> object:
237
+ """Map value scalars without the legacy mapper's fallback to String."""
238
+ if is_identifier:
239
+ if annotation in (int, str, UUID):
240
+ return graphene.ID
241
+ elif safe_issubclass(annotation, (str, bool, int, float, Decimal, datetime, date)):
242
+ return scalar_mapper(annotation)
243
+ raise _annotation_error(owner_name, field_name, annotation)
244
+
245
+
204
246
  def _map_non_optional_value(
205
247
  annotation: object,
206
248
  *,
@@ -245,10 +287,14 @@ def _map_non_optional_value(
245
287
  )
246
288
 
247
289
  if is_identifier:
248
- if annotation not in (int, str, UUID):
249
- raise _annotation_error(owner_name, field_name, annotation)
250
290
  return _MappedAnnotation(
251
- graphene.ID,
291
+ _map_value_scalar_annotation(
292
+ annotation,
293
+ owner_name=owner_name,
294
+ field_name=field_name,
295
+ scalar_mapper=scalar_mapper,
296
+ is_identifier=True,
297
+ ),
252
298
  annotation,
253
299
  nullable=False,
254
300
  contains_measurement=False,
@@ -284,25 +330,13 @@ def _map_non_optional_value(
284
330
  contains_measurement=True,
285
331
  )
286
332
 
287
- if not isinstance(annotation, type):
288
- raise _annotation_error(owner_name, field_name, annotation)
289
-
290
- # Keep this allowlist explicit. The legacy mapper intentionally falls back
291
- # to String for unknown classes, which is unsafe for output declarations.
292
- if safe_issubclass(annotation, bool):
293
- scalar_type = scalar_mapper(annotation)
294
- elif safe_issubclass(annotation, str):
295
- scalar_type = scalar_mapper(annotation)
296
- elif safe_issubclass(annotation, int):
297
- scalar_type = scalar_mapper(annotation)
298
- elif safe_issubclass(annotation, (float, Decimal)):
299
- scalar_type = scalar_mapper(annotation)
300
- elif safe_issubclass(annotation, datetime):
301
- scalar_type = scalar_mapper(annotation)
302
- elif safe_issubclass(annotation, date):
303
- scalar_type = scalar_mapper(annotation)
304
- else:
305
- raise _annotation_error(owner_name, field_name, annotation)
333
+ scalar_type = _map_value_scalar_annotation(
334
+ annotation,
335
+ owner_name=owner_name,
336
+ field_name=field_name,
337
+ scalar_mapper=scalar_mapper,
338
+ is_identifier=False,
339
+ )
306
340
  return _MappedAnnotation(
307
341
  scalar_type,
308
342
  annotation,