GeneralManager 0.89.0__tar.gz → 0.89.2__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {generalmanager-0.89.0/src/GeneralManager.egg-info → generalmanager-0.89.2}/PKG-INFO +1 -1
- {generalmanager-0.89.0 → generalmanager-0.89.2}/pyproject.toml +1 -1
- {generalmanager-0.89.0 → generalmanager-0.89.2/src/GeneralManager.egg-info}/PKG-INFO +1 -1
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/api/graphql_query_permissions.py +5 -14
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/api/graphql_resolvers.py +24 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/search/authorization.py +30 -4
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/search/backends/meilisearch.py +46 -1
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/search/config.py +9 -1
- {generalmanager-0.89.0 → generalmanager-0.89.2}/LICENSE +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/README.md +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/setup.cfg +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/GeneralManager.egg-info/SOURCES.txt +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/GeneralManager.egg-info/dependency_links.txt +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/GeneralManager.egg-info/requires.txt +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/GeneralManager.egg-info/top_level.txt +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/__init__.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/_types/__init__.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/_types/api.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/_types/bucket.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/_types/cache.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/_types/dataframes.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/_types/factory.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/_types/general_manager.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/_types/interface.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/_types/manager.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/_types/measurement.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/_types/permission.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/_types/rule.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/_types/search.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/_types/utils.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/api/__init__.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/api/graphql.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/api/graphql_as_of.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/api/graphql_errors.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/api/graphql_filter_contract.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/api/graphql_groups.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/api/graphql_identifiers.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/api/graphql_mutations.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/api/graphql_ordering.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/api/graphql_output.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/api/graphql_prefetch.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/api/graphql_relations.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/api/graphql_search.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/api/graphql_subscription_consumer.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/api/graphql_subscriptions.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/api/graphql_type.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/api/graphql_units.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/api/graphql_value_contract.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/api/graphql_view.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/api/graphql_warmup.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/api/graphql_warmup_registry.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/api/graphql_warmup_tasks.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/api/mutation.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/api/mutation_controls.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/api/notification_batching.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/api/property.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/api/registry.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/api/remote_api.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/api/remote_invalidation.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/api/remote_invalidation_client.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/apps.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/as_of.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/bootstrap.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/bucket/__init__.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/bucket/_materialized_bucket.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/bucket/_ordering.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/bucket/base_bucket.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/bucket/calculation_bucket.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/bucket/database_bucket.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/bucket/excel_bucket.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/bucket/group_bucket.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/bucket/indexing.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/bucket/projection.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/bucket/request_bucket.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/cache/__init__.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/cache/_dependency_graph.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/cache/batch_refresh.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/cache/cache_decorator.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/cache/cache_tracker.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/cache/data_change_context.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/cache/dependency_cache.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/cache/dependency_index.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/cache/dependency_matching.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/cache/dependency_publish.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/cache/dependency_shards.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/cache/model_dependency_collector.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/cache/run_context.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/cache/run_context_lru.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/cache/signals.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/cache/transaction_barrier.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/chat/__init__.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/chat/audit.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/chat/audit_identity.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/chat/bootstrap.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/chat/checks.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/chat/consumer.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/chat/context.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/chat/errors.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/chat/evals/__init__.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/chat/evals/__main__.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/chat/evals/baseline.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/chat/evals/datasets/basic_queries.yaml +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/chat/evals/datasets/demo_readiness.yaml +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/chat/evals/datasets/edge_cases.yaml +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/chat/evals/datasets/follow_ups.yaml +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/chat/evals/datasets/large_schema.yaml +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/chat/evals/datasets/multi_hop.yaml +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/chat/evals/datasets/planned_orchestration.yaml +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/chat/evals/diagnostics.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/chat/evals/execution.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/chat/evals/fingerprints.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/chat/evals/fixtures.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/chat/evals/judges/__init__.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/chat/evals/judges/answer_quality.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/chat/evals/judges/contract.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/chat/evals/judges/result_accuracy.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/chat/evals/judges/result_set.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/chat/evals/judges/tool_sequence.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/chat/evals/outcomes.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/chat/evals/readiness.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/chat/evals/runner.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/chat/evals/traces.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/chat/graphql_contract.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/chat/grounding.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/chat/models.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/chat/mutation_inputs.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/chat/planned/__init__.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/chat/planned/action_contract.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/chat/planned/binding_diagnostics.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/chat/planned/budget.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/chat/planned/calculation_scope.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/chat/planned/calculations.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/chat/planned/catalog.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/chat/planned/category_binding.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/chat/planned/choice_context.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/chat/planned/clarification.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/chat/planned/config.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/chat/planned/contract.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/chat/planned/conversion.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/chat/planned/cross_query.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/chat/planned/deferred_calculations.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/chat/planned/deferred_schema.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/chat/planned/events.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/chat/planned/evidence.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/chat/planned/evidence_selection.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/chat/planned/group_actions.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/chat/planned/models.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/chat/planned/planner.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/chat/planned/planner_context.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/chat/planned/provider_calls.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/chat/planned/resolver.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/chat/planned/scheduler.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/chat/planned/schema_projection.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/chat/planned/selector_clarification.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/chat/planned/selector_question.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/chat/planned/synthesis.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/chat/planned/validation.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/chat/providers/__init__.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/chat/providers/_shared.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/chat/providers/anthropic.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/chat/providers/base.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/chat/providers/google.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/chat/providers/ollama.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/chat/providers/openai.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/chat/rate_limits.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/chat/routing.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/chat/schema_index.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/chat/schema_inspection.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/chat/settings.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/chat/signals.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/chat/system_prompt.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/chat/tool_metadata.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/chat/tools.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/chat/turns.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/chat/views.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/conf.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/dataframes/__init__.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/dataframes/measurements.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/factory/__init__.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/factory/auto_factory.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/factory/factories.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/factory/factory_methods.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/interface/__init__.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/interface/base_interface.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/interface/bundles/__init__.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/interface/bundles/calculation.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/interface/bundles/database.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/interface/bundles/excel.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/interface/bundles/remote_manager.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/interface/bundles/request.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/interface/capabilities/__init__.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/interface/capabilities/base.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/interface/capabilities/builtin.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/interface/capabilities/calculation/__init__.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/interface/capabilities/calculation/_compat.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/interface/capabilities/calculation/input_resolution.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/interface/capabilities/calculation/lifecycle.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/interface/capabilities/configuration.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/interface/capabilities/core/observability.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/interface/capabilities/core/utils.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/interface/capabilities/excel/__init__.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/interface/capabilities/exceptions.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/interface/capabilities/existing_model/__init__.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/interface/capabilities/existing_model/_compat.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/interface/capabilities/existing_model/resolution.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/interface/capabilities/factory.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/interface/capabilities/orm/__init__.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/interface/capabilities/orm/_compat.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/interface/capabilities/orm/bulk.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/interface/capabilities/orm/create_many.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/interface/capabilities/orm/history.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/interface/capabilities/orm/history_query.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/interface/capabilities/orm/lifecycle.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/interface/capabilities/orm/mutations.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/interface/capabilities/orm/support.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/interface/capabilities/orm_utils/__init__.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/interface/capabilities/orm_utils/collection_probes.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/interface/capabilities/orm_utils/django_manager_utils.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/interface/capabilities/orm_utils/field_descriptors.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/interface/capabilities/orm_utils/payload_normalizer.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/interface/capabilities/orm_utils/update_state.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/interface/capabilities/read_only/__init__.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/interface/capabilities/read_only/_compat.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/interface/capabilities/read_only/_types.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/interface/capabilities/read_only/lifecycle.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/interface/capabilities/read_only/management.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/interface/capabilities/registry.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/interface/capabilities/remote_manager.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/interface/capabilities/request/__init__.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/interface/excel.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/interface/excel_store.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/interface/excel_workbook.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/interface/infrastructure/__init__.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/interface/infrastructure/startup_hooks.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/interface/infrastructure/system_checks.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/interface/interfaces/__init__.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/interface/interfaces/calculation.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/interface/interfaces/database.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/interface/interfaces/excel.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/interface/interfaces/existing_model.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/interface/interfaces/read_only.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/interface/interfaces/remote_manager.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/interface/interfaces/request.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/interface/manifests/__init__.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/interface/manifests/capability_builder.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/interface/manifests/capability_manifest.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/interface/manifests/capability_models.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/interface/orm_interface.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/interface/requests.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/interface/unit_contract.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/interface/utils/__init__.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/interface/utils/database_interface_protocols.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/interface/utils/errors.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/interface/utils/history.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/interface/utils/models.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/logging.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/management/commands/chat_cleanup.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/management/commands/cleanup_upload_intents.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/management/commands/graphql_warmup.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/management/commands/graphql_warmup_refresh_due.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/management/commands/search_index.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/management/commands/search_reconcile.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/management/commands/seed_manager_landscape.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/management/commands/shell.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/management/commands/sync_read_only.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/management/commands/workflow_drain_outbox.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/management/commands/workflow_replay_dead_letters.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/manager/__init__.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/manager/bulk_create.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/manager/general_manager.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/manager/group_manager.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/manager/input.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/manager/meta.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/measurement/__init__.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/measurement/measurement.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/measurement/measurement_field.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/metrics/__init__.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/metrics/graphql.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/migrations/0001_initial.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/migrations/0002_workflow_outbox_scaling_indexes.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/migrations/0003_workflow_execution_correlation_constraint.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/migrations/0004_chat_persistence_models.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/migrations/0004_search_index_state.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/migrations/0005_merge_chat_search.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/migrations/0006_chat_pending_confirmation_scoped_ids.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/migrations/0007_upload_intent.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/migrations/0008_upload_finalization_versions.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/migrations/0009_upload_cleanup_state.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/migrations/0010_chat_pending_confirmation_portable_uniqueness.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/migrations/0011_search_index_state_dirty_generation.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/migrations/0012_chat_context_watermarks.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/migrations/__init__.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/models.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/permission/__init__.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/permission/audit.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/permission/base_permission.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/permission/graphql_capabilities.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/permission/manager_based_permission.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/permission/mutation_permission.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/permission/permission_checks.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/permission/permission_data_manager.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/permission/utils.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/public_api_registry.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/py.typed +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/rule/__init__.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/rule/handler.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/rule/rule.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/search/__init__.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/search/async_tasks.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/search/backend.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/search/backend_registry.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/search/backends/__init__.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/search/backends/dev.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/search/backends/opensearch.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/search/backends/typesense.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/search/checks.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/search/identity.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/search/indexer.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/search/invalidation.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/search/m2m_invalidation.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/search/models.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/search/projection.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/search/reconciliation.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/search/registry.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/search/tasks.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/search/utils.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/seeding/__init__.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/seeding/manager_landscape.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/uploads/__init__.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/uploads/adapters.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/uploads/checks.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/uploads/config.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/uploads/errors.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/uploads/finalization.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/uploads/graphql.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/uploads/graphql_types.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/uploads/metrics.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/uploads/models.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/uploads/public.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/uploads/s3.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/uploads/services.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/uploads/tokens.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/uploads/types.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/uploads/urls.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/uploads/views.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/utils/__init__.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/utils/_args_to_kwargs.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/utils/_cache_key_encoder.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/utils/_make_cache_key.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/utils/_none_to_zero.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/utils/executable_contract.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/utils/filter_parser.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/utils/format_string.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/utils/json_encoder.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/utils/path_mapping.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/utils/public_api.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/utils/testing.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/utils/type_checks.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/workflow/__init__.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/workflow/actions.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/workflow/backend_registry.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/workflow/backends/__init__.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/workflow/backends/celery.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/workflow/backends/local.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/workflow/backends/n8n.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/workflow/config.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/workflow/engine.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/workflow/event_registry.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/workflow/events.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/workflow/models.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/workflow/signal_bridge.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/workflow/tasks.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/workflow/telemetry.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/tests/test_settings.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/tests/test_urls.py +0 -0
- {generalmanager-0.89.0 → generalmanager-0.89.2}/tests/testing_asgi.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: GeneralManager
|
|
3
|
-
Version: 0.89.
|
|
3
|
+
Version: 0.89.2
|
|
4
4
|
Summary: Modular Django-based data management framework with ORM, GraphQL, fine-grained permissions, rule validation, calculations and caching.
|
|
5
5
|
Author-email: Tim Kleindick <tkleindick@yahoo.de>
|
|
6
6
|
License: MIT License
|
|
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "GeneralManager"
|
|
7
|
-
version = "0.89.
|
|
7
|
+
version = "0.89.2"
|
|
8
8
|
description = "Modular Django-based data management framework with ORM, GraphQL, fine-grained permissions, rule validation, calculations and caching."
|
|
9
9
|
readme = "README.md"
|
|
10
10
|
authors = [{ name = "Tim Kleindick", email = "tkleindick@yahoo.de" }]
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: GeneralManager
|
|
3
|
-
Version: 0.89.
|
|
3
|
+
Version: 0.89.2
|
|
4
4
|
Summary: Modular Django-based data management framework with ORM, GraphQL, fine-grained permissions, rule validation, calculations and caching.
|
|
5
5
|
Author-email: Tim Kleindick <tkleindick@yahoo.de>
|
|
6
6
|
License: MIT License
|
{generalmanager-0.89.0 → generalmanager-0.89.2}/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.89.0 → generalmanager-0.89.2}/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:
|
|
@@ -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:
|
{generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/search/backends/meilisearch.py
RENAMED
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
from __future__ import annotations
|
|
4
4
|
|
|
5
5
|
import hashlib
|
|
6
|
+
import re
|
|
6
7
|
import time
|
|
7
8
|
from collections.abc import Callable, Iterable
|
|
8
9
|
from dataclasses import dataclass
|
|
@@ -241,6 +242,16 @@ class MeilisearchBackend:
|
|
|
241
242
|
"""
|
|
242
243
|
index = self._get_or_create_index(index_name)
|
|
243
244
|
searchable_fields = self._string_sequence_setting(settings, "searchable_fields")
|
|
245
|
+
if searchable_fields is not None and "*" not in searchable_fields:
|
|
246
|
+
# Keep original field priority and expose only each searchable
|
|
247
|
+
# field's own aliases, never filter-/sort-only numeric values.
|
|
248
|
+
searchable_fields = [
|
|
249
|
+
*searchable_fields,
|
|
250
|
+
*(
|
|
251
|
+
"gm_numeric_tokens." + _numeric_field_key(name)
|
|
252
|
+
for name in searchable_fields
|
|
253
|
+
),
|
|
254
|
+
]
|
|
244
255
|
filterable_fields = self._string_sequence_setting(settings, "filterable_fields")
|
|
245
256
|
contracts = settings.get("identity_fields", {})
|
|
246
257
|
if not isinstance(contracts, Mapping):
|
|
@@ -807,10 +818,13 @@ class MeilisearchBackend:
|
|
|
807
818
|
- `data`: the original data mapping,
|
|
808
819
|
- additional top-level keys copied from `document.data` except
|
|
809
820
|
reserved keys (`id`, `gm_document_id`, `type`,
|
|
810
|
-
`identification`, `data`, `gm_identity`).
|
|
821
|
+
`identification`, `data`, `gm_identity`, `gm_numeric_tokens`).
|
|
811
822
|
- `gm_identity`: bounded equality tokens for declared present
|
|
812
823
|
identity fields. UUID/set JSON conversion affects only the
|
|
813
824
|
payload copy, never the source document.
|
|
825
|
+
- `gm_numeric_tokens`: complete ASCII digit runs from each
|
|
826
|
+
serialized string field, plus their zero-stripped forms.
|
|
827
|
+
Source values, filtering, and sorting remain unchanged.
|
|
814
828
|
"""
|
|
815
829
|
reserved_keys = {
|
|
816
830
|
"id",
|
|
@@ -819,6 +833,7 @@ class MeilisearchBackend:
|
|
|
819
833
|
"identification",
|
|
820
834
|
"data",
|
|
821
835
|
"gm_identity",
|
|
836
|
+
"gm_numeric_tokens",
|
|
822
837
|
}
|
|
823
838
|
extra_data = {
|
|
824
839
|
key: value
|
|
@@ -846,6 +861,12 @@ class MeilisearchBackend:
|
|
|
846
861
|
"data": document.data,
|
|
847
862
|
**extra_data,
|
|
848
863
|
"gm_identity": identities,
|
|
864
|
+
"gm_numeric_tokens": {
|
|
865
|
+
_numeric_field_key(name): list(
|
|
866
|
+
dict.fromkeys(_numeric_tokens(value))
|
|
867
|
+
)
|
|
868
|
+
for name, value in extra_data.items()
|
|
869
|
+
},
|
|
849
870
|
}
|
|
850
871
|
),
|
|
851
872
|
)
|
|
@@ -1207,6 +1228,30 @@ def _is_meilisearch_already_exists(error: Exception) -> bool:
|
|
|
1207
1228
|
return status == 409 or "already_exists" in code
|
|
1208
1229
|
|
|
1209
1230
|
|
|
1231
|
+
def _numeric_field_key(name: str) -> str:
|
|
1232
|
+
"""Keep literal source names distinct without provider path punctuation."""
|
|
1233
|
+
return "f" + name.encode("utf-8").hex()
|
|
1234
|
+
|
|
1235
|
+
|
|
1236
|
+
def _numeric_tokens(value: object) -> Iterable[str]:
|
|
1237
|
+
"""Yield at most two aliases per digit run, never arbitrary substrings.
|
|
1238
|
+
|
|
1239
|
+
Inspect only existing string values, including collection/mapping values.
|
|
1240
|
+
Do not read managers, mapping keys, or object representations. String
|
|
1241
|
+
stripping handles arbitrarily long numbers without integer conversion.
|
|
1242
|
+
"""
|
|
1243
|
+
if isinstance(value, str):
|
|
1244
|
+
for digits in re.findall(r"[0-9]+", value):
|
|
1245
|
+
yield digits
|
|
1246
|
+
yield digits.lstrip("0") or "0"
|
|
1247
|
+
elif isinstance(value, Mapping):
|
|
1248
|
+
for item in value.values():
|
|
1249
|
+
yield from _numeric_tokens(item)
|
|
1250
|
+
elif isinstance(value, (list, tuple, set)):
|
|
1251
|
+
for item in value:
|
|
1252
|
+
yield from _numeric_tokens(item)
|
|
1253
|
+
|
|
1254
|
+
|
|
1210
1255
|
def _json_search_value(value: object) -> object:
|
|
1211
1256
|
"""Copy native document values into JSON-compatible provider payloads."""
|
|
1212
1257
|
if isinstance(value, UUID):
|
|
@@ -11,7 +11,15 @@ from general_manager.manager.general_manager import GeneralManager
|
|
|
11
11
|
|
|
12
12
|
|
|
13
13
|
_RESERVED_DOCUMENT_FIELD_NAMES = frozenset(
|
|
14
|
-
{
|
|
14
|
+
{
|
|
15
|
+
"id",
|
|
16
|
+
"gm_document_id",
|
|
17
|
+
"type",
|
|
18
|
+
"identification",
|
|
19
|
+
"data",
|
|
20
|
+
"gm_identity",
|
|
21
|
+
"gm_numeric_tokens",
|
|
22
|
+
}
|
|
15
23
|
)
|
|
16
24
|
|
|
17
25
|
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{generalmanager-0.89.0 → generalmanager-0.89.2}/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.89.0 → generalmanager-0.89.2}/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.89.0 → generalmanager-0.89.2}/src/general_manager/api/graphql_filter_contract.py
RENAMED
|
File without changes
|
|
File without changes
|
{generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/api/graphql_identifiers.py
RENAMED
|
File without changes
|
{generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/api/graphql_mutations.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/api/graphql_relations.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/api/graphql_subscriptions.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/api/graphql_value_contract.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/api/graphql_warmup_registry.py
RENAMED
|
File without changes
|
{generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/api/graphql_warmup_tasks.py
RENAMED
|
File without changes
|
|
File without changes
|
{generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/api/mutation_controls.py
RENAMED
|
File without changes
|
{generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/api/notification_batching.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{generalmanager-0.89.0 → generalmanager-0.89.2}/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.89.0 → generalmanager-0.89.2}/src/general_manager/bucket/_materialized_bucket.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/bucket/calculation_bucket.py
RENAMED
|
File without changes
|
{generalmanager-0.89.0 → generalmanager-0.89.2}/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.89.0 → generalmanager-0.89.2}/src/general_manager/bucket/request_bucket.py
RENAMED
|
File without changes
|
|
File without changes
|
{generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/cache/_dependency_graph.py
RENAMED
|
File without changes
|
|
File without changes
|
{generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/cache/cache_decorator.py
RENAMED
|
File without changes
|
|
File without changes
|
{generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/cache/data_change_context.py
RENAMED
|
File without changes
|
{generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/cache/dependency_cache.py
RENAMED
|
File without changes
|
{generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/cache/dependency_index.py
RENAMED
|
File without changes
|
{generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/cache/dependency_matching.py
RENAMED
|
File without changes
|
{generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/cache/dependency_publish.py
RENAMED
|
File without changes
|
{generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/cache/dependency_shards.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/cache/run_context_lru.py
RENAMED
|
File without changes
|
|
File without changes
|
{generalmanager-0.89.0 → generalmanager-0.89.2}/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.89.0 → generalmanager-0.89.2}/src/general_manager/chat/evals/diagnostics.py
RENAMED
|
File without changes
|
|
File without changes
|
{generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/chat/evals/fingerprints.py
RENAMED
|
File without changes
|
|
File without changes
|
{generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/chat/evals/judges/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/chat/evals/judges/contract.py
RENAMED
|
File without changes
|
|
File without changes
|
{generalmanager-0.89.0 → generalmanager-0.89.2}/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.89.0 → generalmanager-0.89.2}/src/general_manager/chat/graphql_contract.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/chat/planned/__init__.py
RENAMED
|
File without changes
|
{generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/chat/planned/action_contract.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/chat/planned/calculations.py
RENAMED
|
File without changes
|
|
File without changes
|
{generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/chat/planned/category_binding.py
RENAMED
|
File without changes
|
{generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/chat/planned/choice_context.py
RENAMED
|
File without changes
|
{generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/chat/planned/clarification.py
RENAMED
|
File without changes
|
|
File without changes
|
{generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/chat/planned/contract.py
RENAMED
|
File without changes
|
{generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/chat/planned/conversion.py
RENAMED
|
File without changes
|
{generalmanager-0.89.0 → generalmanager-0.89.2}/src/general_manager/chat/planned/cross_query.py
RENAMED
|
File without changes
|
|
File without changes
|