GeneralManager 0.91.0__tar.gz → 0.91.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.91.0/src/GeneralManager.egg-info → generalmanager-0.91.1}/PKG-INFO +1 -1
- {generalmanager-0.91.0 → generalmanager-0.91.1}/pyproject.toml +1 -1
- {generalmanager-0.91.0 → generalmanager-0.91.1/src/GeneralManager.egg-info}/PKG-INFO +1 -1
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/api/graphql_query_permissions.py +133 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/api/graphql_resolvers.py +26 -1
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/interface/orm_interface.py +15 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/manager/general_manager.py +19 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/LICENSE +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/README.md +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/setup.cfg +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/GeneralManager.egg-info/SOURCES.txt +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/GeneralManager.egg-info/dependency_links.txt +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/GeneralManager.egg-info/requires.txt +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/GeneralManager.egg-info/top_level.txt +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/__init__.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/_types/__init__.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/_types/api.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/_types/bucket.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/_types/cache.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/_types/dataframes.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/_types/factory.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/_types/general_manager.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/_types/interface.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/_types/manager.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/_types/measurement.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/_types/permission.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/_types/rule.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/_types/search.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/_types/utils.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/api/__init__.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/api/graphql.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/api/graphql_as_of.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/api/graphql_errors.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/api/graphql_filter_contract.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/api/graphql_groups.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/api/graphql_identifiers.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/api/graphql_mutations.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/api/graphql_ordering.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/api/graphql_output.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/api/graphql_prefetch.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/api/graphql_relations.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/api/graphql_search.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/api/graphql_subscription_consumer.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/api/graphql_subscriptions.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/api/graphql_type.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/api/graphql_units.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/api/graphql_value_contract.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/api/graphql_view.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/api/graphql_warmup.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/api/graphql_warmup_registry.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/api/graphql_warmup_tasks.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/api/graphql_work_limits.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/api/mutation.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/api/mutation_controls.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/api/notification_batching.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/api/property.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/api/registry.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/api/remote_api.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/api/remote_invalidation.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/api/remote_invalidation_client.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/apps.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/as_of.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/bootstrap.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/bucket/__init__.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/bucket/_materialized_bucket.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/bucket/_ordering.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/bucket/base_bucket.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/bucket/calculation_bucket.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/bucket/database_bucket.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/bucket/excel_bucket.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/bucket/group_bucket.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/bucket/indexing.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/bucket/projection.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/bucket/request_bucket.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/cache/__init__.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/cache/_dependency_graph.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/cache/batch_refresh.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/cache/cache_decorator.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/cache/cache_tracker.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/cache/data_change_context.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/cache/dependency_cache.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/cache/dependency_index.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/cache/dependency_matching.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/cache/dependency_publish.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/cache/dependency_shards.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/cache/model_dependency_collector.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/cache/run_context.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/cache/run_context_lru.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/cache/signals.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/cache/transaction_barrier.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/chat/__init__.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/chat/audit.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/chat/audit_identity.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/chat/bootstrap.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/chat/checks.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/chat/consumer.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/chat/context.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/chat/errors.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/chat/evals/__init__.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/chat/evals/__main__.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/chat/evals/baseline.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/chat/evals/datasets/basic_queries.yaml +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/chat/evals/datasets/demo_readiness.yaml +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/chat/evals/datasets/edge_cases.yaml +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/chat/evals/datasets/follow_ups.yaml +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/chat/evals/datasets/large_schema.yaml +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/chat/evals/datasets/multi_hop.yaml +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/chat/evals/datasets/planned_orchestration.yaml +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/chat/evals/diagnostics.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/chat/evals/execution.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/chat/evals/fingerprints.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/chat/evals/fixtures.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/chat/evals/judges/__init__.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/chat/evals/judges/answer_quality.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/chat/evals/judges/contract.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/chat/evals/judges/result_accuracy.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/chat/evals/judges/result_set.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/chat/evals/judges/tool_sequence.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/chat/evals/outcomes.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/chat/evals/readiness.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/chat/evals/runner.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/chat/evals/traces.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/chat/graphql_contract.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/chat/grounding.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/chat/models.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/chat/mutation_inputs.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/chat/planned/__init__.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/chat/planned/action_contract.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/chat/planned/binding_diagnostics.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/chat/planned/budget.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/chat/planned/calculation_scope.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/chat/planned/calculations.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/chat/planned/catalog.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/chat/planned/category_binding.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/chat/planned/choice_context.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/chat/planned/clarification.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/chat/planned/config.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/chat/planned/contract.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/chat/planned/conversion.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/chat/planned/cross_query.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/chat/planned/deferred_calculations.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/chat/planned/deferred_schema.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/chat/planned/events.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/chat/planned/evidence.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/chat/planned/evidence_selection.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/chat/planned/group_actions.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/chat/planned/models.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/chat/planned/planner.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/chat/planned/planner_context.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/chat/planned/provider_calls.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/chat/planned/resolver.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/chat/planned/scheduler.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/chat/planned/schema_projection.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/chat/planned/selector_clarification.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/chat/planned/selector_question.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/chat/planned/synthesis.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/chat/planned/validation.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/chat/providers/__init__.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/chat/providers/_shared.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/chat/providers/anthropic.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/chat/providers/base.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/chat/providers/google.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/chat/providers/ollama.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/chat/providers/openai.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/chat/rate_limits.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/chat/routing.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/chat/schema_index.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/chat/schema_inspection.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/chat/settings.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/chat/signals.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/chat/system_prompt.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/chat/tool_metadata.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/chat/tools.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/chat/turns.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/chat/views.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/conf.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/dataframes/__init__.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/dataframes/measurements.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/factory/__init__.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/factory/auto_factory.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/factory/factories.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/factory/factory_methods.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/interface/__init__.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/interface/base_interface.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/interface/bundles/__init__.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/interface/bundles/calculation.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/interface/bundles/database.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/interface/bundles/excel.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/interface/bundles/remote_manager.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/interface/bundles/request.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/interface/capabilities/__init__.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/interface/capabilities/base.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/interface/capabilities/builtin.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/interface/capabilities/calculation/__init__.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/interface/capabilities/calculation/_compat.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/interface/capabilities/calculation/input_resolution.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/interface/capabilities/calculation/lifecycle.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/interface/capabilities/configuration.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/interface/capabilities/core/observability.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/interface/capabilities/core/utils.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/interface/capabilities/excel/__init__.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/interface/capabilities/exceptions.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/interface/capabilities/existing_model/__init__.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/interface/capabilities/existing_model/_compat.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/interface/capabilities/existing_model/resolution.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/interface/capabilities/factory.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/interface/capabilities/orm/__init__.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/interface/capabilities/orm/_compat.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/interface/capabilities/orm/bulk.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/interface/capabilities/orm/create_many.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/interface/capabilities/orm/history.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/interface/capabilities/orm/history_query.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/interface/capabilities/orm/lifecycle.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/interface/capabilities/orm/mutations.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/interface/capabilities/orm/support.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/interface/capabilities/orm_utils/__init__.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/interface/capabilities/orm_utils/collection_probes.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/interface/capabilities/orm_utils/django_manager_utils.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/interface/capabilities/orm_utils/field_descriptors.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/interface/capabilities/orm_utils/payload_normalizer.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/interface/capabilities/orm_utils/update_state.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/interface/capabilities/read_only/__init__.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/interface/capabilities/read_only/_compat.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/interface/capabilities/read_only/_types.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/interface/capabilities/read_only/lifecycle.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/interface/capabilities/read_only/management.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/interface/capabilities/registry.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/interface/capabilities/remote_manager.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/interface/capabilities/request/__init__.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/interface/capabilities/request/relation_inputs.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/interface/excel.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/interface/excel_store.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/interface/excel_workbook.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/interface/infrastructure/__init__.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/interface/infrastructure/startup_hooks.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/interface/infrastructure/system_checks.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/interface/interfaces/__init__.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/interface/interfaces/calculation.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/interface/interfaces/database.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/interface/interfaces/excel.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/interface/interfaces/existing_model.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/interface/interfaces/read_only.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/interface/interfaces/remote_manager.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/interface/interfaces/request.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/interface/manifests/__init__.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/interface/manifests/capability_builder.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/interface/manifests/capability_manifest.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/interface/manifests/capability_models.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/interface/requests.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/interface/unit_contract.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/interface/utils/__init__.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/interface/utils/database_interface_protocols.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/interface/utils/errors.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/interface/utils/history.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/interface/utils/models.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/logging.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/management/commands/chat_cleanup.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/management/commands/cleanup_upload_intents.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/management/commands/graphql_warmup.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/management/commands/graphql_warmup_refresh_due.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/management/commands/search_index.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/management/commands/search_reconcile.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/management/commands/seed_manager_landscape.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/management/commands/shell.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/management/commands/sync_read_only.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/management/commands/workflow_drain_outbox.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/management/commands/workflow_replay_dead_letters.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/manager/__init__.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/manager/bulk_create.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/manager/group_manager.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/manager/input.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/manager/meta.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/measurement/__init__.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/measurement/measurement.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/measurement/measurement_field.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/metrics/__init__.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/metrics/graphql.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/migrations/0001_initial.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/migrations/0002_workflow_outbox_scaling_indexes.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/migrations/0003_workflow_execution_correlation_constraint.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/migrations/0004_chat_persistence_models.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/migrations/0004_search_index_state.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/migrations/0005_merge_chat_search.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/migrations/0006_chat_pending_confirmation_scoped_ids.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/migrations/0007_upload_intent.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/migrations/0008_upload_finalization_versions.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/migrations/0009_upload_cleanup_state.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/migrations/0010_chat_pending_confirmation_portable_uniqueness.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/migrations/0011_search_index_state_dirty_generation.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/migrations/0012_chat_context_watermarks.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/migrations/__init__.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/models.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/permission/__init__.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/permission/audit.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/permission/base_permission.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/permission/graphql_capabilities.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/permission/manager_based_permission.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/permission/mutation_permission.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/permission/permission_checks.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/permission/permission_data_manager.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/permission/relation_aliases.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/permission/utils.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/public_api_registry.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/py.typed +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/rule/__init__.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/rule/handler.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/rule/rule.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/search/__init__.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/search/async_tasks.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/search/authorization.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/search/backend.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/search/backend_registry.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/search/backends/__init__.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/search/backends/dev.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/search/backends/meilisearch.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/search/backends/opensearch.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/search/backends/typesense.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/search/checks.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/search/config.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/search/identity.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/search/indexer.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/search/invalidation.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/search/m2m_invalidation.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/search/models.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/search/projection.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/search/reconciliation.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/search/registry.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/search/tasks.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/search/utils.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/seeding/__init__.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/seeding/manager_landscape.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/uploads/__init__.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/uploads/adapters.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/uploads/checks.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/uploads/config.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/uploads/errors.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/uploads/finalization.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/uploads/graphql.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/uploads/graphql_types.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/uploads/metrics.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/uploads/models.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/uploads/public.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/uploads/s3.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/uploads/services.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/uploads/tokens.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/uploads/types.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/uploads/urls.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/uploads/views.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/utils/__init__.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/utils/_args_to_kwargs.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/utils/_cache_key_encoder.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/utils/_make_cache_key.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/utils/_none_to_zero.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/utils/executable_contract.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/utils/filter_parser.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/utils/format_string.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/utils/json_encoder.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/utils/path_mapping.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/utils/public_api.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/utils/testing.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/utils/type_checks.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/workflow/__init__.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/workflow/actions.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/workflow/backend_registry.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/workflow/backends/__init__.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/workflow/backends/celery.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/workflow/backends/local.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/workflow/backends/n8n.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/workflow/config.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/workflow/engine.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/workflow/event_registry.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/workflow/events.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/workflow/models.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/workflow/signal_bridge.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/workflow/tasks.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/workflow/telemetry.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/tests/test_settings.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/tests/test_urls.py +0 -0
- {generalmanager-0.91.0 → generalmanager-0.91.1}/tests/testing_asgi.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: GeneralManager
|
|
3
|
-
Version: 0.91.
|
|
3
|
+
Version: 0.91.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.91.
|
|
7
|
+
version = "0.91.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.91.
|
|
3
|
+
Version: 0.91.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.91.0 → generalmanager-0.91.1}/src/general_manager/api/graphql_query_permissions.py
RENAMED
|
@@ -661,3 +661,136 @@ def authorize_query_fields(
|
|
|
661
661
|
check(candidate, normalized_parts)
|
|
662
662
|
if isinstance(candidates, RequestBucket) and not candidates.response_is_complete:
|
|
663
663
|
raise GraphQLError(INCOMPLETE_ERROR)
|
|
664
|
+
|
|
665
|
+
|
|
666
|
+
def _prepare_pushdown_structure(
|
|
667
|
+
manager: type[GeneralManager],
|
|
668
|
+
) -> _NativeQueryStructure | None:
|
|
669
|
+
"""Attest native construction before statically interpreting field policies."""
|
|
670
|
+
from general_manager.utils.executable_contract import executable_matches
|
|
671
|
+
|
|
672
|
+
if type(manager) is not GeneralManagerMeta:
|
|
673
|
+
return None
|
|
674
|
+
from general_manager.manager.general_manager import (
|
|
675
|
+
_QUERY_PUSHDOWN_MANAGER_METHODS,
|
|
676
|
+
_COMMON_MANAGER_IDENTIFICATION,
|
|
677
|
+
)
|
|
678
|
+
from general_manager.interface.orm_interface import (
|
|
679
|
+
_QUERY_PUSHDOWN_INTERFACE_METHODS,
|
|
680
|
+
)
|
|
681
|
+
|
|
682
|
+
if not _unchanged_metadata_methods(manager, _QUERY_PUSHDOWN_MANAGER_METHODS):
|
|
683
|
+
return None
|
|
684
|
+
identification, signature = _COMMON_MANAGER_IDENTIFICATION
|
|
685
|
+
if getattr_static(
|
|
686
|
+
manager, "identification"
|
|
687
|
+
) is not identification or not executable_matches(identification.fget, signature):
|
|
688
|
+
return None
|
|
689
|
+
interface = getattr_static(manager, "Interface", None)
|
|
690
|
+
if not _unchanged_metadata_methods(interface, _QUERY_PUSHDOWN_INTERFACE_METHODS):
|
|
691
|
+
return None
|
|
692
|
+
for owner in (manager, interface):
|
|
693
|
+
if any(
|
|
694
|
+
getattr_static(owner, name, None) is not getattr_static(object, name)
|
|
695
|
+
for name in ("__new__", "__getattribute__", "__setattr__")
|
|
696
|
+
):
|
|
697
|
+
return None
|
|
698
|
+
structure = _prepare_native_query_structure(manager)
|
|
699
|
+
if structure is None:
|
|
700
|
+
return None
|
|
701
|
+
return structure
|
|
702
|
+
|
|
703
|
+
|
|
704
|
+
def can_filter_before_query_authorization(
|
|
705
|
+
candidates: Bucket[GeneralManager],
|
|
706
|
+
paths: Iterable[str],
|
|
707
|
+
info: ResolveInfo | None = None,
|
|
708
|
+
) -> bool:
|
|
709
|
+
"""Prove predicates harmless once, before narrowing a native row domain.
|
|
710
|
+
|
|
711
|
+
Permission declarations remain stable during a query. Every relation hop
|
|
712
|
+
must be readable, and each traversed target must have an unconditional row
|
|
713
|
+
read plan for this actor; otherwise membership could reveal hidden targets.
|
|
714
|
+
Unknown/custom policies retain full-domain runtime authorization.
|
|
715
|
+
"""
|
|
716
|
+
from general_manager.bucket.database_bucket import DatabaseBucket
|
|
717
|
+
from general_manager.api.graphql_errors import get_read_permission_filter
|
|
718
|
+
from general_manager.api.graphql_relations import (
|
|
719
|
+
get_graphql_manager_registry,
|
|
720
|
+
resolve_general_manager_type,
|
|
721
|
+
)
|
|
722
|
+
from general_manager.permission.manager_based_permission import (
|
|
723
|
+
additional_local_read_permission,
|
|
724
|
+
)
|
|
725
|
+
|
|
726
|
+
if type(candidates) is not DatabaseBucket:
|
|
727
|
+
return False
|
|
728
|
+
structures: dict[type[GeneralManager], _NativeQueryStructure | None] = {}
|
|
729
|
+
readable_targets: dict[type[GeneralManager], bool] = {}
|
|
730
|
+
|
|
731
|
+
def safe_path(manager: type[GeneralManager], parts: tuple[str, ...]) -> bool:
|
|
732
|
+
if manager not in structures:
|
|
733
|
+
structures[manager] = _prepare_pushdown_structure(manager)
|
|
734
|
+
structure = structures[manager]
|
|
735
|
+
if structure is None or not parts:
|
|
736
|
+
return False
|
|
737
|
+
prepared = structure.flat_field(parts)
|
|
738
|
+
if prepared is not None:
|
|
739
|
+
return not prepared.additional
|
|
740
|
+
field_name, *rest = parts
|
|
741
|
+
aliases, names, _ = _operand_field_names(
|
|
742
|
+
manager, field_name, structure.attributes, native_paths=False
|
|
743
|
+
)
|
|
744
|
+
if (
|
|
745
|
+
len(aliases) > 1
|
|
746
|
+
or not names.intersection(structure.attributes)
|
|
747
|
+
or names.intersection(structure.properties)
|
|
748
|
+
or any(
|
|
749
|
+
additional_local_read_permission(
|
|
750
|
+
structure.permission, name, manager=manager
|
|
751
|
+
)
|
|
752
|
+
is not False
|
|
753
|
+
for name in names
|
|
754
|
+
)
|
|
755
|
+
):
|
|
756
|
+
return False
|
|
757
|
+
metadata: dict[str, object] = dict(
|
|
758
|
+
structure.attributes.get(aliases[0] if aliases else field_name, {})
|
|
759
|
+
)
|
|
760
|
+
target = resolve_general_manager_type(
|
|
761
|
+
metadata.get("type"), get_graphql_manager_registry()
|
|
762
|
+
)
|
|
763
|
+
if target is None or not rest:
|
|
764
|
+
return False
|
|
765
|
+
if target not in structures:
|
|
766
|
+
structures[target] = _prepare_pushdown_structure(target)
|
|
767
|
+
target_structure = structures[target]
|
|
768
|
+
if target_structure is None:
|
|
769
|
+
return False
|
|
770
|
+
# A target field called e.g. "contains" wins over lookup spelling,
|
|
771
|
+
# matching the existing runtime authorization grammar.
|
|
772
|
+
if (
|
|
773
|
+
len(rest) == 1
|
|
774
|
+
and rest[0] in _LOOKUPS
|
|
775
|
+
and rest[0]
|
|
776
|
+
not in (
|
|
777
|
+
set(target_structure.attributes)
|
|
778
|
+
| set(target_structure.properties)
|
|
779
|
+
| set(target_structure.interface.get_attributes())
|
|
780
|
+
)
|
|
781
|
+
):
|
|
782
|
+
return True
|
|
783
|
+
if info is None:
|
|
784
|
+
return False
|
|
785
|
+
if target not in readable_targets:
|
|
786
|
+
plan = get_read_permission_filter(target, info)
|
|
787
|
+
readable_targets[target] = (
|
|
788
|
+
plan.decision == "allow_all"
|
|
789
|
+
and not plan.requires_instance_check
|
|
790
|
+
and not plan.filters
|
|
791
|
+
)
|
|
792
|
+
return readable_targets[target] and safe_path(target, tuple(rest))
|
|
793
|
+
|
|
794
|
+
return all(
|
|
795
|
+
safe_path(candidates._manager_class, tuple(path.split("__"))) for path in paths
|
|
796
|
+
)
|
{generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/api/graphql_resolvers.py
RENAMED
|
@@ -1184,6 +1184,12 @@ def check_read_permission(
|
|
|
1184
1184
|
return check_read_permission_for_user(instance, info.context.user, field_name)
|
|
1185
1185
|
|
|
1186
1186
|
|
|
1187
|
+
_QUERY_PUSHDOWN_CHECKS = tuple(
|
|
1188
|
+
(function, executable_signature(function))
|
|
1189
|
+
for function in (check_read_permission, check_read_permission_for_user)
|
|
1190
|
+
)
|
|
1191
|
+
|
|
1192
|
+
|
|
1187
1193
|
def resolve_with_read_permission(
|
|
1188
1194
|
instance: GeneralManager,
|
|
1189
1195
|
info: GraphQLResolveInfo,
|
|
@@ -2114,6 +2120,24 @@ def create_list_resolver(
|
|
|
2114
2120
|
# requests nor validate the remote lookup vocabulary.
|
|
2115
2121
|
qs = MaterializedBucket(manager_class, qs)
|
|
2116
2122
|
else:
|
|
2123
|
+
from general_manager.api.graphql_query_permissions import (
|
|
2124
|
+
can_filter_before_query_authorization,
|
|
2125
|
+
)
|
|
2126
|
+
|
|
2127
|
+
filter_first = all(
|
|
2128
|
+
current is original and executable_matches(original, signature)
|
|
2129
|
+
for current, (original, signature) in zip(
|
|
2130
|
+
(check_read_permission, check_read_permission_for_user),
|
|
2131
|
+
_QUERY_PUSHDOWN_CHECKS,
|
|
2132
|
+
strict=True,
|
|
2133
|
+
)
|
|
2134
|
+
) and can_filter_before_query_authorization(
|
|
2135
|
+
base_queryset,
|
|
2136
|
+
set(plan.filters) | set(plan.excludes) | set(plan.normalized_excludes),
|
|
2137
|
+
info,
|
|
2138
|
+
)
|
|
2139
|
+
if filter_first:
|
|
2140
|
+
base_queryset = apply_query_parameter_plan(base_queryset, plan, None)
|
|
2117
2141
|
authorization_result = apply_read_authorization(
|
|
2118
2142
|
base_queryset,
|
|
2119
2143
|
manager_class,
|
|
@@ -2130,7 +2154,8 @@ def create_list_resolver(
|
|
|
2130
2154
|
budget_additional_permissions_only=True,
|
|
2131
2155
|
prepare_native_structure=isinstance(qs, DatabaseBucket),
|
|
2132
2156
|
)
|
|
2133
|
-
|
|
2157
|
+
if not filter_first:
|
|
2158
|
+
qs = apply_query_parameter_plan(qs, plan, None)
|
|
2134
2159
|
if grouping_validator is not None:
|
|
2135
2160
|
grouping_validator(qs, group_by, order_by, info)
|
|
2136
2161
|
qs_grouped = apply_grouping(qs, group_by)
|
{generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/interface/orm_interface.py
RENAMED
|
@@ -189,3 +189,18 @@ class OrmInterfaceBase(InterfaceBase, Generic[HistoryModelT]):
|
|
|
189
189
|
),
|
|
190
190
|
)
|
|
191
191
|
return lifecycle.describe_custom_fields(model)
|
|
192
|
+
|
|
193
|
+
|
|
194
|
+
from general_manager.utils.executable_contract import executable_signature as _signature
|
|
195
|
+
|
|
196
|
+
_QUERY_PUSHDOWN_INTERFACE_METHODS = tuple(
|
|
197
|
+
(
|
|
198
|
+
name,
|
|
199
|
+
descriptor,
|
|
200
|
+
_signature(
|
|
201
|
+
descriptor.__func__ if isinstance(descriptor, classmethod) else descriptor
|
|
202
|
+
),
|
|
203
|
+
)
|
|
204
|
+
for name in ("__init__", "_from_trusted_orm_instance")
|
|
205
|
+
for descriptor in (OrmInterfaceBase.__dict__[name],)
|
|
206
|
+
)
|
{generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/manager/general_manager.py
RENAMED
|
@@ -920,3 +920,22 @@ _COMMON_MANAGER_EXECUTABLES = tuple(
|
|
|
920
920
|
_COMMON_MANAGER_GETATTR,
|
|
921
921
|
)
|
|
922
922
|
)
|
|
923
|
+
|
|
924
|
+
|
|
925
|
+
# Native filter pushdown may not erase observable custom hydration behavior.
|
|
926
|
+
_QUERY_PUSHDOWN_MANAGER_METHODS = tuple(
|
|
927
|
+
(
|
|
928
|
+
name,
|
|
929
|
+
descriptor,
|
|
930
|
+
executable_signature(
|
|
931
|
+
descriptor.__func__ if isinstance(descriptor, classmethod) else descriptor
|
|
932
|
+
),
|
|
933
|
+
)
|
|
934
|
+
for name in (
|
|
935
|
+
"__init__",
|
|
936
|
+
"__getattr__",
|
|
937
|
+
"_from_trusted_orm_instance",
|
|
938
|
+
"_track_identification_dependency",
|
|
939
|
+
)
|
|
940
|
+
for descriptor in (GeneralManager.__dict__[name],)
|
|
941
|
+
)
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{generalmanager-0.91.0 → generalmanager-0.91.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.91.0 → generalmanager-0.91.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.91.0 → generalmanager-0.91.1}/src/general_manager/api/graphql_filter_contract.py
RENAMED
|
File without changes
|
|
File without changes
|
{generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/api/graphql_identifiers.py
RENAMED
|
File without changes
|
{generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/api/graphql_mutations.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/api/graphql_relations.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/api/graphql_subscriptions.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/api/graphql_value_contract.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/api/graphql_warmup_registry.py
RENAMED
|
File without changes
|
{generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/api/graphql_warmup_tasks.py
RENAMED
|
File without changes
|
{generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/api/graphql_work_limits.py
RENAMED
|
File without changes
|
|
File without changes
|
{generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/api/mutation_controls.py
RENAMED
|
File without changes
|
{generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/api/notification_batching.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{generalmanager-0.91.0 → generalmanager-0.91.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.91.0 → generalmanager-0.91.1}/src/general_manager/bucket/_materialized_bucket.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/bucket/calculation_bucket.py
RENAMED
|
File without changes
|
{generalmanager-0.91.0 → generalmanager-0.91.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.91.0 → generalmanager-0.91.1}/src/general_manager/bucket/request_bucket.py
RENAMED
|
File without changes
|
|
File without changes
|
{generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/cache/_dependency_graph.py
RENAMED
|
File without changes
|
|
File without changes
|
{generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/cache/cache_decorator.py
RENAMED
|
File without changes
|
|
File without changes
|
{generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/cache/data_change_context.py
RENAMED
|
File without changes
|
{generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/cache/dependency_cache.py
RENAMED
|
File without changes
|
{generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/cache/dependency_index.py
RENAMED
|
File without changes
|
{generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/cache/dependency_matching.py
RENAMED
|
File without changes
|
{generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/cache/dependency_publish.py
RENAMED
|
File without changes
|
{generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/cache/dependency_shards.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/cache/run_context_lru.py
RENAMED
|
File without changes
|
|
File without changes
|
{generalmanager-0.91.0 → generalmanager-0.91.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.91.0 → generalmanager-0.91.1}/src/general_manager/chat/evals/diagnostics.py
RENAMED
|
File without changes
|
|
File without changes
|
{generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/chat/evals/fingerprints.py
RENAMED
|
File without changes
|
|
File without changes
|
{generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/chat/evals/judges/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/chat/evals/judges/contract.py
RENAMED
|
File without changes
|
|
File without changes
|
{generalmanager-0.91.0 → generalmanager-0.91.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.91.0 → generalmanager-0.91.1}/src/general_manager/chat/graphql_contract.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/chat/planned/__init__.py
RENAMED
|
File without changes
|
{generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/chat/planned/action_contract.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/chat/planned/calculations.py
RENAMED
|
File without changes
|
|
File without changes
|
{generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/chat/planned/category_binding.py
RENAMED
|
File without changes
|
{generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/chat/planned/choice_context.py
RENAMED
|
File without changes
|
{generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/chat/planned/clarification.py
RENAMED
|
File without changes
|
|
File without changes
|
{generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/chat/planned/contract.py
RENAMED
|
File without changes
|
{generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/chat/planned/conversion.py
RENAMED
|
File without changes
|
{generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/chat/planned/cross_query.py
RENAMED
|
File without changes
|
|
File without changes
|
{generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/chat/planned/deferred_schema.py
RENAMED
|
File without changes
|
|
File without changes
|
{generalmanager-0.91.0 → generalmanager-0.91.1}/src/general_manager/chat/planned/evidence.py
RENAMED
|
File without changes
|