GeneralManager 0.87.3__tar.gz → 0.87.5__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {generalmanager-0.87.3/src/GeneralManager.egg-info → generalmanager-0.87.5}/PKG-INFO +1 -1
- {generalmanager-0.87.3 → generalmanager-0.87.5}/pyproject.toml +1 -1
- {generalmanager-0.87.3 → generalmanager-0.87.5/src/GeneralManager.egg-info}/PKG-INFO +1 -1
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/api/graphql.py +23 -5
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/api/graphql_resolvers.py +12 -7
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/rule/rule.py +68 -14
- {generalmanager-0.87.3 → generalmanager-0.87.5}/LICENSE +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/README.md +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/setup.cfg +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/GeneralManager.egg-info/SOURCES.txt +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/GeneralManager.egg-info/dependency_links.txt +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/GeneralManager.egg-info/requires.txt +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/GeneralManager.egg-info/top_level.txt +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/__init__.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/_types/__init__.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/_types/api.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/_types/bucket.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/_types/cache.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/_types/dataframes.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/_types/factory.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/_types/general_manager.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/_types/interface.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/_types/manager.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/_types/measurement.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/_types/permission.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/_types/rule.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/_types/search.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/_types/utils.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/api/__init__.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/api/graphql_as_of.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/api/graphql_errors.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/api/graphql_filter_contract.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/api/graphql_groups.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/api/graphql_identifiers.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/api/graphql_mutations.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/api/graphql_ordering.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/api/graphql_output.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/api/graphql_prefetch.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/api/graphql_query_permissions.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/api/graphql_relations.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/api/graphql_search.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/api/graphql_subscription_consumer.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/api/graphql_subscriptions.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/api/graphql_type.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/api/graphql_units.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/api/graphql_value_contract.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/api/graphql_view.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/api/graphql_warmup.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/api/graphql_warmup_registry.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/api/graphql_warmup_tasks.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/api/mutation.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/api/mutation_controls.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/api/notification_batching.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/api/property.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/api/registry.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/api/remote_api.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/api/remote_invalidation.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/api/remote_invalidation_client.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/apps.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/as_of.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/bootstrap.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/bucket/__init__.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/bucket/_materialized_bucket.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/bucket/_ordering.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/bucket/base_bucket.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/bucket/calculation_bucket.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/bucket/database_bucket.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/bucket/excel_bucket.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/bucket/group_bucket.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/bucket/indexing.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/bucket/projection.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/bucket/request_bucket.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/cache/__init__.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/cache/_dependency_graph.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/cache/batch_refresh.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/cache/cache_decorator.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/cache/cache_tracker.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/cache/data_change_context.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/cache/dependency_cache.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/cache/dependency_index.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/cache/dependency_matching.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/cache/dependency_publish.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/cache/dependency_shards.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/cache/model_dependency_collector.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/cache/run_context.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/cache/run_context_lru.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/cache/signals.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/cache/transaction_barrier.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/chat/__init__.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/chat/audit.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/chat/audit_identity.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/chat/bootstrap.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/chat/checks.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/chat/consumer.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/chat/context.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/chat/errors.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/chat/evals/__init__.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/chat/evals/__main__.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/chat/evals/baseline.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/chat/evals/datasets/basic_queries.yaml +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/chat/evals/datasets/demo_readiness.yaml +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/chat/evals/datasets/edge_cases.yaml +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/chat/evals/datasets/follow_ups.yaml +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/chat/evals/datasets/large_schema.yaml +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/chat/evals/datasets/multi_hop.yaml +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/chat/evals/datasets/planned_orchestration.yaml +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/chat/evals/diagnostics.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/chat/evals/execution.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/chat/evals/fingerprints.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/chat/evals/fixtures.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/chat/evals/judges/__init__.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/chat/evals/judges/answer_quality.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/chat/evals/judges/contract.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/chat/evals/judges/result_accuracy.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/chat/evals/judges/result_set.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/chat/evals/judges/tool_sequence.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/chat/evals/outcomes.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/chat/evals/readiness.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/chat/evals/runner.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/chat/evals/traces.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/chat/graphql_contract.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/chat/grounding.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/chat/models.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/chat/mutation_inputs.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/chat/planned/__init__.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/chat/planned/action_contract.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/chat/planned/binding_diagnostics.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/chat/planned/budget.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/chat/planned/calculation_scope.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/chat/planned/calculations.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/chat/planned/catalog.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/chat/planned/category_binding.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/chat/planned/choice_context.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/chat/planned/clarification.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/chat/planned/config.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/chat/planned/contract.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/chat/planned/conversion.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/chat/planned/cross_query.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/chat/planned/deferred_calculations.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/chat/planned/deferred_schema.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/chat/planned/events.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/chat/planned/evidence.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/chat/planned/evidence_selection.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/chat/planned/group_actions.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/chat/planned/models.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/chat/planned/planner.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/chat/planned/planner_context.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/chat/planned/provider_calls.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/chat/planned/resolver.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/chat/planned/scheduler.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/chat/planned/schema_projection.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/chat/planned/selector_clarification.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/chat/planned/selector_question.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/chat/planned/synthesis.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/chat/planned/validation.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/chat/providers/__init__.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/chat/providers/_shared.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/chat/providers/anthropic.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/chat/providers/base.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/chat/providers/google.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/chat/providers/ollama.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/chat/providers/openai.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/chat/rate_limits.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/chat/routing.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/chat/schema_index.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/chat/schema_inspection.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/chat/settings.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/chat/signals.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/chat/system_prompt.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/chat/tool_metadata.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/chat/tools.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/chat/turns.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/chat/views.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/conf.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/dataframes/__init__.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/dataframes/measurements.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/factory/__init__.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/factory/auto_factory.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/factory/factories.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/factory/factory_methods.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/interface/__init__.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/interface/base_interface.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/interface/bundles/__init__.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/interface/bundles/calculation.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/interface/bundles/database.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/interface/bundles/excel.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/interface/bundles/remote_manager.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/interface/bundles/request.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/interface/capabilities/__init__.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/interface/capabilities/base.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/interface/capabilities/builtin.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/interface/capabilities/calculation/__init__.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/interface/capabilities/calculation/_compat.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/interface/capabilities/calculation/input_resolution.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/interface/capabilities/calculation/lifecycle.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/interface/capabilities/configuration.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/interface/capabilities/core/observability.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/interface/capabilities/core/utils.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/interface/capabilities/excel/__init__.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/interface/capabilities/exceptions.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/interface/capabilities/existing_model/__init__.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/interface/capabilities/existing_model/_compat.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/interface/capabilities/existing_model/resolution.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/interface/capabilities/factory.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/interface/capabilities/orm/__init__.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/interface/capabilities/orm/_compat.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/interface/capabilities/orm/bulk.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/interface/capabilities/orm/create_many.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/interface/capabilities/orm/history.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/interface/capabilities/orm/history_query.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/interface/capabilities/orm/lifecycle.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/interface/capabilities/orm/mutations.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/interface/capabilities/orm/support.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/interface/capabilities/orm_utils/__init__.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/interface/capabilities/orm_utils/django_manager_utils.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/interface/capabilities/orm_utils/field_descriptors.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/interface/capabilities/orm_utils/payload_normalizer.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/interface/capabilities/orm_utils/update_state.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/interface/capabilities/read_only/__init__.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/interface/capabilities/read_only/_compat.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/interface/capabilities/read_only/_types.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/interface/capabilities/read_only/lifecycle.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/interface/capabilities/read_only/management.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/interface/capabilities/registry.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/interface/capabilities/remote_manager.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/interface/capabilities/request/__init__.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/interface/excel.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/interface/excel_store.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/interface/excel_workbook.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/interface/infrastructure/__init__.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/interface/infrastructure/startup_hooks.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/interface/infrastructure/system_checks.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/interface/interfaces/__init__.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/interface/interfaces/calculation.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/interface/interfaces/database.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/interface/interfaces/excel.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/interface/interfaces/existing_model.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/interface/interfaces/read_only.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/interface/interfaces/remote_manager.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/interface/interfaces/request.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/interface/manifests/__init__.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/interface/manifests/capability_builder.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/interface/manifests/capability_manifest.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/interface/manifests/capability_models.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/interface/orm_interface.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/interface/requests.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/interface/unit_contract.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/interface/utils/__init__.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/interface/utils/database_interface_protocols.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/interface/utils/errors.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/interface/utils/history.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/interface/utils/models.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/logging.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/management/commands/chat_cleanup.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/management/commands/cleanup_upload_intents.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/management/commands/graphql_warmup.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/management/commands/graphql_warmup_refresh_due.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/management/commands/search_index.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/management/commands/search_reconcile.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/management/commands/seed_manager_landscape.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/management/commands/shell.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/management/commands/sync_read_only.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/management/commands/workflow_drain_outbox.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/management/commands/workflow_replay_dead_letters.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/manager/__init__.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/manager/bulk_create.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/manager/general_manager.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/manager/group_manager.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/manager/input.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/manager/meta.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/measurement/__init__.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/measurement/measurement.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/measurement/measurement_field.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/metrics/__init__.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/metrics/graphql.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/migrations/0001_initial.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/migrations/0002_workflow_outbox_scaling_indexes.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/migrations/0003_workflow_execution_correlation_constraint.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/migrations/0004_chat_persistence_models.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/migrations/0004_search_index_state.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/migrations/0005_merge_chat_search.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/migrations/0006_chat_pending_confirmation_scoped_ids.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/migrations/0007_upload_intent.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/migrations/0008_upload_finalization_versions.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/migrations/0009_upload_cleanup_state.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/migrations/0010_chat_pending_confirmation_portable_uniqueness.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/migrations/0011_search_index_state_dirty_generation.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/migrations/0012_chat_context_watermarks.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/migrations/__init__.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/models.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/permission/__init__.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/permission/audit.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/permission/base_permission.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/permission/graphql_capabilities.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/permission/manager_based_permission.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/permission/mutation_permission.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/permission/permission_checks.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/permission/permission_data_manager.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/permission/utils.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/public_api_registry.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/py.typed +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/rule/__init__.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/rule/handler.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/search/__init__.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/search/async_tasks.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/search/backend.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/search/backend_registry.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/search/backends/__init__.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/search/backends/dev.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/search/backends/meilisearch.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/search/backends/opensearch.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/search/backends/typesense.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/search/checks.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/search/config.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/search/identity.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/search/indexer.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/search/invalidation.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/search/m2m_invalidation.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/search/models.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/search/reconciliation.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/search/registry.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/search/tasks.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/search/utils.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/seeding/__init__.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/seeding/manager_landscape.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/uploads/__init__.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/uploads/adapters.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/uploads/checks.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/uploads/config.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/uploads/errors.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/uploads/finalization.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/uploads/graphql.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/uploads/graphql_types.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/uploads/metrics.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/uploads/models.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/uploads/public.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/uploads/s3.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/uploads/services.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/uploads/tokens.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/uploads/types.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/uploads/urls.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/uploads/views.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/utils/__init__.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/utils/_args_to_kwargs.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/utils/_cache_key_encoder.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/utils/_make_cache_key.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/utils/_none_to_zero.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/utils/executable_contract.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/utils/filter_parser.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/utils/format_string.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/utils/json_encoder.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/utils/path_mapping.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/utils/public_api.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/utils/testing.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/utils/type_checks.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/workflow/__init__.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/workflow/actions.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/workflow/backend_registry.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/workflow/backends/__init__.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/workflow/backends/celery.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/workflow/backends/local.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/workflow/backends/n8n.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/workflow/config.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/workflow/engine.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/workflow/event_registry.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/workflow/events.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/workflow/models.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/workflow/signal_bridge.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/workflow/tasks.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/workflow/telemetry.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/tests/test_settings.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/tests/test_urls.py +0 -0
- {generalmanager-0.87.3 → generalmanager-0.87.5}/tests/testing_asgi.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: GeneralManager
|
|
3
|
-
Version: 0.87.
|
|
3
|
+
Version: 0.87.5
|
|
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.
|
|
7
|
+
version = "0.87.5"
|
|
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.
|
|
3
|
+
Version: 0.87.5
|
|
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
|
|
@@ -952,6 +952,10 @@ class GraphQL:
|
|
|
952
952
|
raw_hint,
|
|
953
953
|
cls.manager_registry,
|
|
954
954
|
)
|
|
955
|
+
is_generated_relation = (
|
|
956
|
+
getattr(attr_value, "_general_manager_generated_relation", False)
|
|
957
|
+
is True
|
|
958
|
+
)
|
|
955
959
|
property_page_hint = raw_hint
|
|
956
960
|
if get_origin(property_page_hint) in {Union, UnionType}:
|
|
957
961
|
non_none_hints = [
|
|
@@ -1068,13 +1072,27 @@ class GraphQL:
|
|
|
1068
1072
|
)
|
|
1069
1073
|
or resolved_type
|
|
1070
1074
|
)
|
|
1071
|
-
|
|
1072
|
-
|
|
1073
|
-
|
|
1075
|
+
if property_relation_manager is not None and not is_generated_relation:
|
|
1076
|
+
graphene_field = graphene.Field(
|
|
1077
|
+
lambda manager=property_relation_manager: cls.graphql_type_registry[
|
|
1078
|
+
manager.__name__
|
|
1079
|
+
]
|
|
1080
|
+
)
|
|
1081
|
+
else:
|
|
1082
|
+
graphene_field = cls._map_field_to_graphene_read(
|
|
1083
|
+
resolved_type, attr_name
|
|
1084
|
+
)
|
|
1074
1085
|
|
|
1075
1086
|
fields[attr_name] = graphene_field
|
|
1076
|
-
|
|
1077
|
-
|
|
1087
|
+
# Native property values follow their annotations. Generated reverse
|
|
1088
|
+
# relations retain their paginated resolver despite a manager hint.
|
|
1089
|
+
fields[f"resolve_{attr_name}"] = (
|
|
1090
|
+
_create_normal_resolver_fn(
|
|
1091
|
+
attr_name,
|
|
1092
|
+
authorize_manager_collection=origin in (list, tuple, set),
|
|
1093
|
+
)
|
|
1094
|
+
if property_relation_manager is not None and not is_generated_relation
|
|
1095
|
+
else cls._create_resolver(attr_name, resolved_type)
|
|
1078
1096
|
)
|
|
1079
1097
|
|
|
1080
1098
|
capability_declarations = get_graphql_capabilities(generalManagerClass)
|
{generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/api/graphql_resolvers.py
RENAMED
|
@@ -1591,14 +1591,19 @@ def create_list_resolver(
|
|
|
1591
1591
|
``base_queryset._manager_class`` when that is a GeneralManager subclass,
|
|
1592
1592
|
otherwise using ``fallback_manager_class``. That manager class drives
|
|
1593
1593
|
permission checks, filter normalization, dependency prefetching, and
|
|
1594
|
-
capability warmups. For non-calculation
|
|
1594
|
+
capability warmups. For non-calculation, non-request sources, the resolver applies
|
|
1595
1595
|
permission prefilters and the permission row gate before all user-supplied
|
|
1596
|
-
query predicates. For calculation managers, it applies
|
|
1597
|
-
|
|
1598
|
-
|
|
1599
|
-
computed-property predicates
|
|
1600
|
-
|
|
1601
|
-
|
|
1596
|
+
query predicates. For calculation managers, it also applies authorization
|
|
1597
|
+
first. When query operands are present, it fences the authorized rows as
|
|
1598
|
+
an exact subset, then applies declared-input predicates followed by
|
|
1599
|
+
computed-property predicates. User input filters cannot reintroduce rows
|
|
1600
|
+
outside the authorized subset. Request-backed sources are different:
|
|
1601
|
+
unless the permission plan denies all rows, user predicates are applied
|
|
1602
|
+
to ``base_queryset`` before that filtered source is authorized. The earlier
|
|
1603
|
+
query-field permission check uses a separate authorized subset and does
|
|
1604
|
+
not constrain ``base_queryset``. Supported remote ordering and pagination
|
|
1605
|
+
controls may be forwarded during request-source preparation. Grouping,
|
|
1606
|
+
local sorting, and local pagination follow source preparation. Sorting applies to records
|
|
1602
1607
|
when grouping is omitted and to grouped manager objects when grouping is
|
|
1603
1608
|
active. It computes ``total_count`` after grouping and sorting and before
|
|
1604
1609
|
pagination. Non-grouped page items are
|
|
@@ -6,10 +6,13 @@ import inspect
|
|
|
6
6
|
import re
|
|
7
7
|
import textwrap
|
|
8
8
|
from collections.abc import Container, Iterable, Mapping, Sequence, Sized
|
|
9
|
+
from contextvars import ContextVar
|
|
9
10
|
from operator import eq, ge, gt, le, lt, ne
|
|
10
11
|
from typing import Callable, Dict, Generic, List, Optional, Tuple, TypeVar, cast
|
|
11
12
|
from decimal import Decimal
|
|
12
13
|
from types import CodeType
|
|
14
|
+
from threading import RLock
|
|
15
|
+
from weakref import WeakKeyDictionary
|
|
13
16
|
|
|
14
17
|
from django.core.exceptions import NON_FIELD_ERRORS
|
|
15
18
|
from django.utils.module_loading import import_string
|
|
@@ -50,6 +53,17 @@ _REVERSED_COMPARISON_OPS: dict[type[ast.cmpop], type[ast.cmpop]] = {
|
|
|
50
53
|
_ERROR_TEMPLATE_PLACEHOLDER = re.compile(r"{([^{}]*)}")
|
|
51
54
|
|
|
52
55
|
|
|
56
|
+
class _EvaluationToken:
|
|
57
|
+
"""Identify one immutable evaluation state within an execution context."""
|
|
58
|
+
|
|
59
|
+
|
|
60
|
+
# Values contain no candidate or rule references, so a context cannot root a
|
|
61
|
+
# dynamic rule/class graph. Sharding limits copy-on-write to one rule bucket.
|
|
62
|
+
_rule_tokens: tuple[
|
|
63
|
+
ContextVar[WeakKeyDictionary[object, _EvaluationToken] | None], ...
|
|
64
|
+
] = tuple(ContextVar(f"rule_tokens_{index}", default=None) for index in range(64))
|
|
65
|
+
|
|
66
|
+
|
|
53
67
|
class NonexistentAttributeError(AttributeError):
|
|
54
68
|
"""Raised when a referenced attribute does not exist on the GeneralManager instance."""
|
|
55
69
|
|
|
@@ -135,9 +149,6 @@ class Rule(Generic[GeneralManagerType]):
|
|
|
135
149
|
_func: Callable[[GeneralManagerType], bool]
|
|
136
150
|
_custom_error_message: Optional[str]
|
|
137
151
|
_ignore_if_none: bool
|
|
138
|
-
_last_result: Optional[bool]
|
|
139
|
-
_last_input: Optional[GeneralManagerType]
|
|
140
|
-
_last_args: Dict[str, object]
|
|
141
152
|
_param_names: Tuple[str, ...]
|
|
142
153
|
_primary_param: Optional[str]
|
|
143
154
|
_tree: ast.AST
|
|
@@ -162,9 +173,10 @@ class Rule(Generic[GeneralManagerType]):
|
|
|
162
173
|
self._func = func
|
|
163
174
|
self._custom_error_message = custom_error_message
|
|
164
175
|
self._ignore_if_none = ignore_if_none
|
|
165
|
-
self.
|
|
166
|
-
|
|
167
|
-
|
|
176
|
+
self._evaluation_states: WeakKeyDictionary[
|
|
177
|
+
_EvaluationToken, tuple[Optional[bool], object, Dict[str, object]]
|
|
178
|
+
] = WeakKeyDictionary()
|
|
179
|
+
self._evaluation_lock = RLock()
|
|
168
180
|
|
|
169
181
|
parameters = inspect.signature(func).parameters
|
|
170
182
|
self._param_names = tuple(parameters.keys())
|
|
@@ -231,6 +243,49 @@ class Rule(Generic[GeneralManagerType]):
|
|
|
231
243
|
},
|
|
232
244
|
)
|
|
233
245
|
|
|
246
|
+
def _state(self) -> tuple[Optional[bool], object, Dict[str, object]]:
|
|
247
|
+
"""Read the last state for this rule in the current context."""
|
|
248
|
+
token_context = _rule_tokens[hash(self) % len(_rule_tokens)]
|
|
249
|
+
tokens = token_context.get()
|
|
250
|
+
token = tokens.get(self) if tokens is not None else None
|
|
251
|
+
if token is None:
|
|
252
|
+
return (None, None, {})
|
|
253
|
+
with self._evaluation_lock:
|
|
254
|
+
return self._evaluation_states.get(token, (None, None, {}))
|
|
255
|
+
|
|
256
|
+
def _set_state(
|
|
257
|
+
self, state: tuple[Optional[bool], object, Dict[str, object]]
|
|
258
|
+
) -> None:
|
|
259
|
+
"""Publish a new state without modifying inherited task contexts."""
|
|
260
|
+
token_context = _rule_tokens[hash(self) % len(_rule_tokens)]
|
|
261
|
+
previous = token_context.get()
|
|
262
|
+
tokens = previous.copy() if previous is not None else WeakKeyDictionary()
|
|
263
|
+
token = _EvaluationToken()
|
|
264
|
+
with self._evaluation_lock:
|
|
265
|
+
self._evaluation_states[token] = state
|
|
266
|
+
tokens[self] = token
|
|
267
|
+
token_context.set(tokens)
|
|
268
|
+
|
|
269
|
+
@property
|
|
270
|
+
def _last_result(self) -> Optional[bool]:
|
|
271
|
+
"""Return the result in the current execution context."""
|
|
272
|
+
return self._state()[0]
|
|
273
|
+
|
|
274
|
+
@_last_result.setter
|
|
275
|
+
def _last_result(self, value: Optional[bool]) -> None:
|
|
276
|
+
_, candidate, args = self._state()
|
|
277
|
+
self._set_state((value, candidate, args))
|
|
278
|
+
|
|
279
|
+
@property
|
|
280
|
+
def _last_input(self) -> Optional[GeneralManagerType]:
|
|
281
|
+
"""Return the input in the current execution context."""
|
|
282
|
+
return cast(Optional[GeneralManagerType], self._state()[1])
|
|
283
|
+
|
|
284
|
+
@property
|
|
285
|
+
def _last_args(self) -> Dict[str, object]:
|
|
286
|
+
"""Return the arguments in the current execution context."""
|
|
287
|
+
return self._state()[2]
|
|
288
|
+
|
|
234
289
|
@property
|
|
235
290
|
def func(self) -> Callable[[GeneralManagerType], bool]:
|
|
236
291
|
return self._func
|
|
@@ -454,11 +509,9 @@ class Rule(Generic[GeneralManagerType]):
|
|
|
454
509
|
Returns:
|
|
455
510
|
`True` if the predicate evaluates to true, `False` if it evaluates to false, `None` if evaluation was skipped because a referenced value was `None` and `ignore_if_none` is enabled.
|
|
456
511
|
"""
|
|
457
|
-
self.
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
if self._primary_param is not None:
|
|
461
|
-
self._last_args[self._primary_param] = x
|
|
512
|
+
self._set_state(
|
|
513
|
+
(None, x, {self._primary_param: x} if self._primary_param else {})
|
|
514
|
+
)
|
|
462
515
|
|
|
463
516
|
logger.debug(
|
|
464
517
|
"evaluating rule",
|
|
@@ -483,8 +536,9 @@ class Rule(Generic[GeneralManagerType]):
|
|
|
483
536
|
)
|
|
484
537
|
return None
|
|
485
538
|
|
|
486
|
-
|
|
487
|
-
|
|
539
|
+
result = self._func(x)
|
|
540
|
+
self._last_result = result
|
|
541
|
+
if result:
|
|
488
542
|
logger.debug(
|
|
489
543
|
"rule evaluation passed",
|
|
490
544
|
context={
|
|
@@ -501,7 +555,7 @@ class Rule(Generic[GeneralManagerType]):
|
|
|
501
555
|
"variables": self._variables,
|
|
502
556
|
},
|
|
503
557
|
)
|
|
504
|
-
return
|
|
558
|
+
return result
|
|
505
559
|
|
|
506
560
|
def _parse_custom_error_paths(self) -> dict[str, tuple[str, ...]]:
|
|
507
561
|
"""Parse and validate placeholder syntax in the custom error message."""
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{generalmanager-0.87.3 → generalmanager-0.87.5}/src/GeneralManager.egg-info/dependency_links.txt
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/_types/general_manager.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/api/graphql_filter_contract.py
RENAMED
|
File without changes
|
|
File without changes
|
{generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/api/graphql_identifiers.py
RENAMED
|
File without changes
|
{generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/api/graphql_mutations.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/api/graphql_query_permissions.py
RENAMED
|
File without changes
|
{generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/api/graphql_relations.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/api/graphql_subscriptions.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/api/graphql_value_contract.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/api/graphql_warmup_registry.py
RENAMED
|
File without changes
|
{generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/api/graphql_warmup_tasks.py
RENAMED
|
File without changes
|
|
File without changes
|
{generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/api/mutation_controls.py
RENAMED
|
File without changes
|
{generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/api/notification_batching.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/api/remote_invalidation.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/bucket/_materialized_bucket.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/bucket/calculation_bucket.py
RENAMED
|
File without changes
|
{generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/bucket/database_bucket.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/bucket/request_bucket.py
RENAMED
|
File without changes
|
|
File without changes
|
{generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/cache/_dependency_graph.py
RENAMED
|
File without changes
|
|
File without changes
|
{generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/cache/cache_decorator.py
RENAMED
|
File without changes
|
|
File without changes
|
{generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/cache/data_change_context.py
RENAMED
|
File without changes
|
{generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/cache/dependency_cache.py
RENAMED
|
File without changes
|
{generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/cache/dependency_index.py
RENAMED
|
File without changes
|
{generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/cache/dependency_matching.py
RENAMED
|
File without changes
|
{generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/cache/dependency_publish.py
RENAMED
|
File without changes
|
{generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/cache/dependency_shards.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/cache/run_context_lru.py
RENAMED
|
File without changes
|
|
File without changes
|
{generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/cache/transaction_barrier.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/chat/evals/diagnostics.py
RENAMED
|
File without changes
|
|
File without changes
|
{generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/chat/evals/fingerprints.py
RENAMED
|
File without changes
|
|
File without changes
|
{generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/chat/evals/judges/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/chat/evals/judges/contract.py
RENAMED
|
File without changes
|
|
File without changes
|
{generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/chat/evals/judges/result_set.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/chat/graphql_contract.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/chat/planned/__init__.py
RENAMED
|
File without changes
|
{generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/chat/planned/action_contract.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/chat/planned/calculations.py
RENAMED
|
File without changes
|
|
File without changes
|
{generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/chat/planned/category_binding.py
RENAMED
|
File without changes
|
{generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/chat/planned/choice_context.py
RENAMED
|
File without changes
|
{generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/chat/planned/clarification.py
RENAMED
|
File without changes
|
|
File without changes
|
{generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/chat/planned/contract.py
RENAMED
|
File without changes
|
{generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/chat/planned/conversion.py
RENAMED
|
File without changes
|
{generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/chat/planned/cross_query.py
RENAMED
|
File without changes
|
|
File without changes
|
{generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/chat/planned/deferred_schema.py
RENAMED
|
File without changes
|
|
File without changes
|
{generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/chat/planned/evidence.py
RENAMED
|
File without changes
|
|
File without changes
|
{generalmanager-0.87.3 → generalmanager-0.87.5}/src/general_manager/chat/planned/group_actions.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|