GeneralManager 0.88.0__tar.gz → 0.89.1__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.88.0/src/GeneralManager.egg-info → generalmanager-0.89.1}/PKG-INFO +1 -1
- {generalmanager-0.88.0 → generalmanager-0.89.1}/pyproject.toml +1 -1
- {generalmanager-0.88.0 → generalmanager-0.89.1/src/GeneralManager.egg-info}/PKG-INFO +1 -1
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/api/graphql_query_permissions.py +5 -14
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/api/graphql_resolvers.py +24 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/api/graphql_search.py +13 -2
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/search/authorization.py +30 -4
- {generalmanager-0.88.0 → generalmanager-0.89.1}/LICENSE +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/README.md +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/setup.cfg +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/GeneralManager.egg-info/SOURCES.txt +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/GeneralManager.egg-info/dependency_links.txt +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/GeneralManager.egg-info/requires.txt +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/GeneralManager.egg-info/top_level.txt +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/__init__.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/_types/__init__.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/_types/api.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/_types/bucket.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/_types/cache.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/_types/dataframes.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/_types/factory.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/_types/general_manager.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/_types/interface.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/_types/manager.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/_types/measurement.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/_types/permission.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/_types/rule.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/_types/search.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/_types/utils.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/api/__init__.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/api/graphql.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/api/graphql_as_of.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/api/graphql_errors.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/api/graphql_filter_contract.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/api/graphql_groups.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/api/graphql_identifiers.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/api/graphql_mutations.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/api/graphql_ordering.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/api/graphql_output.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/api/graphql_prefetch.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/api/graphql_relations.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/api/graphql_subscription_consumer.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/api/graphql_subscriptions.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/api/graphql_type.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/api/graphql_units.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/api/graphql_value_contract.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/api/graphql_view.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/api/graphql_warmup.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/api/graphql_warmup_registry.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/api/graphql_warmup_tasks.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/api/mutation.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/api/mutation_controls.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/api/notification_batching.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/api/property.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/api/registry.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/api/remote_api.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/api/remote_invalidation.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/api/remote_invalidation_client.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/apps.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/as_of.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/bootstrap.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/bucket/__init__.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/bucket/_materialized_bucket.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/bucket/_ordering.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/bucket/base_bucket.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/bucket/calculation_bucket.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/bucket/database_bucket.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/bucket/excel_bucket.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/bucket/group_bucket.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/bucket/indexing.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/bucket/projection.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/bucket/request_bucket.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/cache/__init__.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/cache/_dependency_graph.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/cache/batch_refresh.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/cache/cache_decorator.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/cache/cache_tracker.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/cache/data_change_context.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/cache/dependency_cache.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/cache/dependency_index.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/cache/dependency_matching.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/cache/dependency_publish.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/cache/dependency_shards.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/cache/model_dependency_collector.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/cache/run_context.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/cache/run_context_lru.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/cache/signals.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/cache/transaction_barrier.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/chat/__init__.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/chat/audit.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/chat/audit_identity.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/chat/bootstrap.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/chat/checks.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/chat/consumer.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/chat/context.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/chat/errors.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/chat/evals/__init__.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/chat/evals/__main__.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/chat/evals/baseline.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/chat/evals/datasets/basic_queries.yaml +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/chat/evals/datasets/demo_readiness.yaml +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/chat/evals/datasets/edge_cases.yaml +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/chat/evals/datasets/follow_ups.yaml +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/chat/evals/datasets/large_schema.yaml +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/chat/evals/datasets/multi_hop.yaml +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/chat/evals/datasets/planned_orchestration.yaml +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/chat/evals/diagnostics.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/chat/evals/execution.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/chat/evals/fingerprints.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/chat/evals/fixtures.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/chat/evals/judges/__init__.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/chat/evals/judges/answer_quality.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/chat/evals/judges/contract.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/chat/evals/judges/result_accuracy.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/chat/evals/judges/result_set.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/chat/evals/judges/tool_sequence.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/chat/evals/outcomes.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/chat/evals/readiness.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/chat/evals/runner.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/chat/evals/traces.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/chat/graphql_contract.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/chat/grounding.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/chat/models.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/chat/mutation_inputs.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/chat/planned/__init__.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/chat/planned/action_contract.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/chat/planned/binding_diagnostics.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/chat/planned/budget.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/chat/planned/calculation_scope.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/chat/planned/calculations.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/chat/planned/catalog.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/chat/planned/category_binding.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/chat/planned/choice_context.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/chat/planned/clarification.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/chat/planned/config.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/chat/planned/contract.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/chat/planned/conversion.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/chat/planned/cross_query.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/chat/planned/deferred_calculations.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/chat/planned/deferred_schema.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/chat/planned/events.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/chat/planned/evidence.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/chat/planned/evidence_selection.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/chat/planned/group_actions.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/chat/planned/models.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/chat/planned/planner.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/chat/planned/planner_context.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/chat/planned/provider_calls.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/chat/planned/resolver.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/chat/planned/scheduler.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/chat/planned/schema_projection.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/chat/planned/selector_clarification.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/chat/planned/selector_question.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/chat/planned/synthesis.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/chat/planned/validation.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/chat/providers/__init__.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/chat/providers/_shared.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/chat/providers/anthropic.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/chat/providers/base.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/chat/providers/google.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/chat/providers/ollama.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/chat/providers/openai.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/chat/rate_limits.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/chat/routing.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/chat/schema_index.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/chat/schema_inspection.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/chat/settings.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/chat/signals.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/chat/system_prompt.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/chat/tool_metadata.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/chat/tools.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/chat/turns.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/chat/views.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/conf.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/dataframes/__init__.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/dataframes/measurements.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/factory/__init__.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/factory/auto_factory.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/factory/factories.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/factory/factory_methods.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/interface/__init__.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/interface/base_interface.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/interface/bundles/__init__.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/interface/bundles/calculation.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/interface/bundles/database.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/interface/bundles/excel.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/interface/bundles/remote_manager.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/interface/bundles/request.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/interface/capabilities/__init__.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/interface/capabilities/base.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/interface/capabilities/builtin.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/interface/capabilities/calculation/__init__.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/interface/capabilities/calculation/_compat.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/interface/capabilities/calculation/input_resolution.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/interface/capabilities/calculation/lifecycle.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/interface/capabilities/configuration.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/interface/capabilities/core/observability.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/interface/capabilities/core/utils.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/interface/capabilities/excel/__init__.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/interface/capabilities/exceptions.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/interface/capabilities/existing_model/__init__.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/interface/capabilities/existing_model/_compat.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/interface/capabilities/existing_model/resolution.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/interface/capabilities/factory.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/interface/capabilities/orm/__init__.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/interface/capabilities/orm/_compat.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/interface/capabilities/orm/bulk.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/interface/capabilities/orm/create_many.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/interface/capabilities/orm/history.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/interface/capabilities/orm/history_query.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/interface/capabilities/orm/lifecycle.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/interface/capabilities/orm/mutations.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/interface/capabilities/orm/support.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/interface/capabilities/orm_utils/__init__.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/interface/capabilities/orm_utils/collection_probes.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/interface/capabilities/orm_utils/django_manager_utils.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/interface/capabilities/orm_utils/field_descriptors.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/interface/capabilities/orm_utils/payload_normalizer.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/interface/capabilities/orm_utils/update_state.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/interface/capabilities/read_only/__init__.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/interface/capabilities/read_only/_compat.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/interface/capabilities/read_only/_types.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/interface/capabilities/read_only/lifecycle.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/interface/capabilities/read_only/management.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/interface/capabilities/registry.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/interface/capabilities/remote_manager.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/interface/capabilities/request/__init__.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/interface/excel.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/interface/excel_store.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/interface/excel_workbook.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/interface/infrastructure/__init__.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/interface/infrastructure/startup_hooks.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/interface/infrastructure/system_checks.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/interface/interfaces/__init__.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/interface/interfaces/calculation.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/interface/interfaces/database.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/interface/interfaces/excel.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/interface/interfaces/existing_model.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/interface/interfaces/read_only.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/interface/interfaces/remote_manager.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/interface/interfaces/request.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/interface/manifests/__init__.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/interface/manifests/capability_builder.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/interface/manifests/capability_manifest.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/interface/manifests/capability_models.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/interface/orm_interface.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/interface/requests.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/interface/unit_contract.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/interface/utils/__init__.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/interface/utils/database_interface_protocols.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/interface/utils/errors.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/interface/utils/history.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/interface/utils/models.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/logging.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/management/commands/chat_cleanup.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/management/commands/cleanup_upload_intents.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/management/commands/graphql_warmup.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/management/commands/graphql_warmup_refresh_due.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/management/commands/search_index.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/management/commands/search_reconcile.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/management/commands/seed_manager_landscape.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/management/commands/shell.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/management/commands/sync_read_only.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/management/commands/workflow_drain_outbox.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/management/commands/workflow_replay_dead_letters.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/manager/__init__.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/manager/bulk_create.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/manager/general_manager.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/manager/group_manager.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/manager/input.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/manager/meta.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/measurement/__init__.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/measurement/measurement.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/measurement/measurement_field.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/metrics/__init__.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/metrics/graphql.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/migrations/0001_initial.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/migrations/0002_workflow_outbox_scaling_indexes.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/migrations/0003_workflow_execution_correlation_constraint.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/migrations/0004_chat_persistence_models.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/migrations/0004_search_index_state.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/migrations/0005_merge_chat_search.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/migrations/0006_chat_pending_confirmation_scoped_ids.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/migrations/0007_upload_intent.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/migrations/0008_upload_finalization_versions.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/migrations/0009_upload_cleanup_state.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/migrations/0010_chat_pending_confirmation_portable_uniqueness.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/migrations/0011_search_index_state_dirty_generation.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/migrations/0012_chat_context_watermarks.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/migrations/__init__.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/models.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/permission/__init__.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/permission/audit.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/permission/base_permission.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/permission/graphql_capabilities.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/permission/manager_based_permission.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/permission/mutation_permission.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/permission/permission_checks.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/permission/permission_data_manager.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/permission/utils.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/public_api_registry.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/py.typed +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/rule/__init__.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/rule/handler.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/rule/rule.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/search/__init__.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/search/async_tasks.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/search/backend.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/search/backend_registry.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/search/backends/__init__.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/search/backends/dev.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/search/backends/meilisearch.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/search/backends/opensearch.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/search/backends/typesense.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/search/checks.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/search/config.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/search/identity.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/search/indexer.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/search/invalidation.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/search/m2m_invalidation.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/search/models.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/search/projection.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/search/reconciliation.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/search/registry.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/search/tasks.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/search/utils.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/seeding/__init__.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/seeding/manager_landscape.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/uploads/__init__.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/uploads/adapters.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/uploads/checks.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/uploads/config.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/uploads/errors.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/uploads/finalization.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/uploads/graphql.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/uploads/graphql_types.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/uploads/metrics.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/uploads/models.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/uploads/public.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/uploads/s3.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/uploads/services.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/uploads/tokens.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/uploads/types.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/uploads/urls.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/uploads/views.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/utils/__init__.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/utils/_args_to_kwargs.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/utils/_cache_key_encoder.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/utils/_make_cache_key.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/utils/_none_to_zero.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/utils/executable_contract.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/utils/filter_parser.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/utils/format_string.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/utils/json_encoder.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/utils/path_mapping.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/utils/public_api.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/utils/testing.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/utils/type_checks.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/workflow/__init__.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/workflow/actions.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/workflow/backend_registry.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/workflow/backends/__init__.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/workflow/backends/celery.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/workflow/backends/local.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/workflow/backends/n8n.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/workflow/config.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/workflow/engine.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/workflow/event_registry.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/workflow/events.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/workflow/models.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/workflow/signal_bridge.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/workflow/tasks.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/workflow/telemetry.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/tests/test_settings.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/tests/test_urls.py +0 -0
- {generalmanager-0.88.0 → generalmanager-0.89.1}/tests/testing_asgi.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: GeneralManager
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.89.1
|
|
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.
|
|
7
|
+
version = "0.89.1"
|
|
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.
|
|
3
|
+
Version: 0.89.1
|
|
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
|
{generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/api/graphql_query_permissions.py
RENAMED
|
@@ -5,7 +5,7 @@ from __future__ import annotations
|
|
|
5
5
|
from collections.abc import Iterable
|
|
6
6
|
from dataclasses import dataclass, field
|
|
7
7
|
from inspect import getattr_static
|
|
8
|
-
from typing import TYPE_CHECKING
|
|
8
|
+
from typing import TYPE_CHECKING
|
|
9
9
|
|
|
10
10
|
from graphql import GraphQLError
|
|
11
11
|
|
|
@@ -412,6 +412,7 @@ def authorize_query_fields(
|
|
|
412
412
|
from general_manager.api.graphql_resolvers import (
|
|
413
413
|
can_read_instance,
|
|
414
414
|
check_read_permission,
|
|
415
|
+
relation_id_alias_target_fields,
|
|
415
416
|
)
|
|
416
417
|
|
|
417
418
|
normalized = set()
|
|
@@ -518,20 +519,10 @@ def authorize_query_fields(
|
|
|
518
519
|
raise GraphQLError(_RELATION_ERROR)
|
|
519
520
|
if not can_read_instance(value, info):
|
|
520
521
|
raise QueryRelationPermissionError()
|
|
521
|
-
|
|
522
|
-
|
|
523
|
-
|
|
524
|
-
orm_interface = cast(
|
|
525
|
-
type[OrmInterfaceBase[models.Model]], instance.Interface
|
|
526
|
-
)
|
|
527
|
-
foreign_key = orm_interface._model._meta.get_field(relation)
|
|
528
|
-
target_field = getattr(foreign_key, "target_field", None)
|
|
529
|
-
if not isinstance(target_field, models.Field):
|
|
522
|
+
target_names = relation_id_alias_target_fields(instance.Interface, relation)
|
|
523
|
+
if not target_names:
|
|
530
524
|
raise GraphQLError(_RELATION_ERROR)
|
|
531
|
-
|
|
532
|
-
if target_field.primary_key:
|
|
533
|
-
target_names.add("id")
|
|
534
|
-
for target_name in sorted(target_names):
|
|
525
|
+
for target_name in target_names:
|
|
535
526
|
check(value, (target_name,))
|
|
536
527
|
if not rest and not (native_node and native_node.children):
|
|
537
528
|
return
|
{generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/api/graphql_resolvers.py
RENAMED
|
@@ -86,6 +86,7 @@ from general_manager.utils.executable_contract import (
|
|
|
86
86
|
|
|
87
87
|
if TYPE_CHECKING:
|
|
88
88
|
from graphene import ResolveInfo as GraphQLResolveInfo
|
|
89
|
+
from general_manager.interface.base_interface import InterfaceBase
|
|
89
90
|
from general_manager.api.graphql_errors import (
|
|
90
91
|
GraphQLResolveInfo as ReadPermissionInfo,
|
|
91
92
|
)
|
|
@@ -1355,6 +1356,29 @@ def relation_id_alias_field(
|
|
|
1355
1356
|
return relation_field
|
|
1356
1357
|
|
|
1357
1358
|
|
|
1359
|
+
def relation_id_alias_target_fields(
|
|
1360
|
+
interface: type[InterfaceBase], relation_field: str
|
|
1361
|
+
) -> tuple[str, ...]:
|
|
1362
|
+
"""Return the target field names protected by a native ORM alias."""
|
|
1363
|
+
from django.core.exceptions import FieldDoesNotExist
|
|
1364
|
+
from django.db import models
|
|
1365
|
+
from general_manager.interface.orm_interface import OrmInterfaceBase
|
|
1366
|
+
|
|
1367
|
+
if not safe_issubclass(interface, OrmInterfaceBase):
|
|
1368
|
+
return ()
|
|
1369
|
+
orm_interface = cast(type[OrmInterfaceBase[models.Model]], interface)
|
|
1370
|
+
try:
|
|
1371
|
+
foreign_key = orm_interface._model._meta.get_field(relation_field)
|
|
1372
|
+
except FieldDoesNotExist:
|
|
1373
|
+
return ()
|
|
1374
|
+
target_field = getattr(foreign_key, "target_field", None)
|
|
1375
|
+
if not isinstance(target_field, models.Field):
|
|
1376
|
+
return ()
|
|
1377
|
+
if target_field.primary_key and target_field.name != "id":
|
|
1378
|
+
return tuple(sorted((target_field.name, "id")))
|
|
1379
|
+
return (target_field.name,)
|
|
1380
|
+
|
|
1381
|
+
|
|
1358
1382
|
def _unwrap_optional_annotation(annotation: object) -> object:
|
|
1359
1383
|
origin = get_origin(annotation)
|
|
1360
1384
|
if origin is Annotated:
|
|
@@ -10,6 +10,7 @@ from __future__ import annotations
|
|
|
10
10
|
from dataclasses import replace
|
|
11
11
|
|
|
12
12
|
import json
|
|
13
|
+
import os
|
|
13
14
|
from collections.abc import Callable, Generator, Iterable, Mapping
|
|
14
15
|
from datetime import date, datetime
|
|
15
16
|
from decimal import Decimal
|
|
@@ -101,6 +102,7 @@ _BAD_USER_INPUT_CODE = "BAD_USER_INPUT"
|
|
|
101
102
|
_PAGE_MUST_BE_POSITIVE = "page must be a positive integer."
|
|
102
103
|
_PAGE_SIZE_MUST_BE_POSITIVE = "pageSize must be a positive integer."
|
|
103
104
|
DEFAULT_GRAPHQL_SEARCH_TOTAL_SCAN_LIMIT = 1000
|
|
105
|
+
_SEARCH_TOTAL_SCAN_LIMIT_UNSET = object()
|
|
104
106
|
SEARCH_SOURCE_AUTHORIZATION_LIMIT_ERROR = (
|
|
105
107
|
"Search source authorization candidate limit exceeded."
|
|
106
108
|
)
|
|
@@ -203,11 +205,20 @@ def normalize_search_total_mode(total_mode: str | None = None) -> SearchTotalMod
|
|
|
203
205
|
|
|
204
206
|
|
|
205
207
|
def get_graphql_search_total_scan_limit() -> int:
|
|
206
|
-
"""
|
|
208
|
+
"""Resolve the shared candidate budget from Django settings, then the env."""
|
|
207
209
|
raw_limit = get_setting(
|
|
208
210
|
"GRAPHQL_SEARCH_TOTAL_SCAN_LIMIT",
|
|
209
|
-
|
|
211
|
+
_SEARCH_TOTAL_SCAN_LIMIT_UNSET,
|
|
210
212
|
)
|
|
213
|
+
if raw_limit is _SEARCH_TOTAL_SCAN_LIMIT_UNSET:
|
|
214
|
+
env_limit = os.environ.get("GENERAL_MANAGER_GRAPHQL_SEARCH_TOTAL_SCAN_LIMIT")
|
|
215
|
+
if env_limit is None:
|
|
216
|
+
raw_limit = DEFAULT_GRAPHQL_SEARCH_TOTAL_SCAN_LIMIT
|
|
217
|
+
else:
|
|
218
|
+
try:
|
|
219
|
+
raw_limit = int(env_limit)
|
|
220
|
+
except ValueError:
|
|
221
|
+
raise _bad_user_input_error(SEARCH_TOTAL_SCAN_LIMIT_ERROR) from None
|
|
211
222
|
if not isinstance(raw_limit, int) or isinstance(raw_limit, bool) or raw_limit <= 0:
|
|
212
223
|
raise _bad_user_input_error(SEARCH_TOTAL_SCAN_LIMIT_ERROR)
|
|
213
224
|
return raw_limit
|
|
@@ -35,7 +35,11 @@ def analyze_search_projection(
|
|
|
35
35
|
) -> SearchProjectionAuthorization:
|
|
36
36
|
"""Inspect definitions once, without evaluating a permission or property."""
|
|
37
37
|
from general_manager.api.graphql_relations import resolve_general_manager_type
|
|
38
|
-
from general_manager.api.graphql_resolvers import
|
|
38
|
+
from general_manager.api.graphql_resolvers import (
|
|
39
|
+
relation_id_alias_field,
|
|
40
|
+
relation_id_alias_target_fields,
|
|
41
|
+
)
|
|
42
|
+
from general_manager.api.graphql_value_contract import _manager_source
|
|
39
43
|
from general_manager.permission.manager_based_permission import (
|
|
40
44
|
additional_local_read_permission,
|
|
41
45
|
)
|
|
@@ -87,9 +91,31 @@ def analyze_search_projection(
|
|
|
87
91
|
if alias is not None:
|
|
88
92
|
inspect_permission(owner, alias, frozenset())
|
|
89
93
|
has_relations = True
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
94
|
+
target = resolve_general_manager_type(
|
|
95
|
+
owner.Interface.get_attribute_types()[alias].get("type"), registry
|
|
96
|
+
)
|
|
97
|
+
target_fields = relation_id_alias_target_fields(owner.Interface, alias)
|
|
98
|
+
if (
|
|
99
|
+
target is None
|
|
100
|
+
or not target_fields
|
|
101
|
+
or not _manager_source(owner, alias)
|
|
102
|
+
):
|
|
103
|
+
reasons.add("unknown relation identity target")
|
|
104
|
+
continue
|
|
105
|
+
for target_field in target_fields:
|
|
106
|
+
known, _ = source_field_annotation(target, target_field)
|
|
107
|
+
if (
|
|
108
|
+
not known
|
|
109
|
+
or relation_id_alias_field(
|
|
110
|
+
target, target_field, native_source=True
|
|
111
|
+
)
|
|
112
|
+
is not None
|
|
113
|
+
):
|
|
114
|
+
reasons.add("unknown relation identity target")
|
|
115
|
+
else:
|
|
116
|
+
inspect_permission(target, target_field, frozenset())
|
|
117
|
+
# Retain the exact alias path for the runtime target-row check.
|
|
118
|
+
continue
|
|
93
119
|
_, annotation = source_field_annotation(owner, field)
|
|
94
120
|
target = resolve_general_manager_type(annotation, registry)
|
|
95
121
|
if target is not None:
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{generalmanager-0.88.0 → generalmanager-0.89.1}/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.88.0 → generalmanager-0.89.1}/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
|
|
File without changes
|
{generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/api/graphql_filter_contract.py
RENAMED
|
File without changes
|
|
File without changes
|
{generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/api/graphql_identifiers.py
RENAMED
|
File without changes
|
{generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/api/graphql_mutations.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/api/graphql_relations.py
RENAMED
|
File without changes
|
|
File without changes
|
{generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/api/graphql_subscriptions.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/api/graphql_value_contract.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/api/graphql_warmup_registry.py
RENAMED
|
File without changes
|
{generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/api/graphql_warmup_tasks.py
RENAMED
|
File without changes
|
|
File without changes
|
{generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/api/mutation_controls.py
RENAMED
|
File without changes
|
{generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/api/notification_batching.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{generalmanager-0.88.0 → generalmanager-0.89.1}/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.88.0 → generalmanager-0.89.1}/src/general_manager/bucket/_materialized_bucket.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/bucket/calculation_bucket.py
RENAMED
|
File without changes
|
{generalmanager-0.88.0 → generalmanager-0.89.1}/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.88.0 → generalmanager-0.89.1}/src/general_manager/bucket/request_bucket.py
RENAMED
|
File without changes
|
|
File without changes
|
{generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/cache/_dependency_graph.py
RENAMED
|
File without changes
|
|
File without changes
|
{generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/cache/cache_decorator.py
RENAMED
|
File without changes
|
|
File without changes
|
{generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/cache/data_change_context.py
RENAMED
|
File without changes
|
{generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/cache/dependency_cache.py
RENAMED
|
File without changes
|
{generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/cache/dependency_index.py
RENAMED
|
File without changes
|
{generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/cache/dependency_matching.py
RENAMED
|
File without changes
|
{generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/cache/dependency_publish.py
RENAMED
|
File without changes
|
{generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/cache/dependency_shards.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/cache/run_context_lru.py
RENAMED
|
File without changes
|
|
File without changes
|
{generalmanager-0.88.0 → generalmanager-0.89.1}/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.88.0 → generalmanager-0.89.1}/src/general_manager/chat/evals/diagnostics.py
RENAMED
|
File without changes
|
|
File without changes
|
{generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/chat/evals/fingerprints.py
RENAMED
|
File without changes
|
|
File without changes
|
{generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/chat/evals/judges/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/chat/evals/judges/contract.py
RENAMED
|
File without changes
|
|
File without changes
|
{generalmanager-0.88.0 → generalmanager-0.89.1}/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.88.0 → generalmanager-0.89.1}/src/general_manager/chat/graphql_contract.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/chat/planned/__init__.py
RENAMED
|
File without changes
|
{generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/chat/planned/action_contract.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/chat/planned/calculations.py
RENAMED
|
File without changes
|
|
File without changes
|
{generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/chat/planned/category_binding.py
RENAMED
|
File without changes
|
{generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/chat/planned/choice_context.py
RENAMED
|
File without changes
|
{generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/chat/planned/clarification.py
RENAMED
|
File without changes
|
|
File without changes
|
{generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/chat/planned/contract.py
RENAMED
|
File without changes
|
{generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/chat/planned/conversion.py
RENAMED
|
File without changes
|
{generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/chat/planned/cross_query.py
RENAMED
|
File without changes
|
|
File without changes
|
{generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/chat/planned/deferred_schema.py
RENAMED
|
File without changes
|
|
File without changes
|
{generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/chat/planned/evidence.py
RENAMED
|
File without changes
|
|
File without changes
|
{generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/chat/planned/group_actions.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/chat/planned/planner_context.py
RENAMED
|
File without changes
|
{generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/chat/planned/provider_calls.py
RENAMED
|
File without changes
|
{generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/chat/planned/resolver.py
RENAMED
|
File without changes
|
{generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/chat/planned/scheduler.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/chat/planned/synthesis.py
RENAMED
|
File without changes
|
{generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/chat/planned/validation.py
RENAMED
|
File without changes
|
{generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/chat/providers/__init__.py
RENAMED
|
File without changes
|
{generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/chat/providers/_shared.py
RENAMED
|
File without changes
|
{generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/chat/providers/anthropic.py
RENAMED
|
File without changes
|
|
File without changes
|
{generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/chat/providers/google.py
RENAMED
|
File without changes
|
{generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/chat/providers/ollama.py
RENAMED
|
File without changes
|
{generalmanager-0.88.0 → generalmanager-0.89.1}/src/general_manager/chat/providers/openai.py
RENAMED
|
File without changes
|