GeneralManager 0.89.3__tar.gz → 0.91.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {generalmanager-0.89.3/src/GeneralManager.egg-info → generalmanager-0.91.0}/PKG-INFO +1 -1
- {generalmanager-0.89.3 → generalmanager-0.91.0}/pyproject.toml +1 -1
- {generalmanager-0.89.3 → generalmanager-0.91.0/src/GeneralManager.egg-info}/PKG-INFO +1 -1
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/GeneralManager.egg-info/SOURCES.txt +1 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/api/graphql.py +42 -4
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/api/graphql_query_permissions.py +8 -2
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/api/graphql_search.py +22 -28
- generalmanager-0.91.0/src/general_manager/api/graphql_work_limits.py +35 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/manager/general_manager.py +1 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/permission/permission_data_manager.py +16 -2
- {generalmanager-0.89.3 → generalmanager-0.91.0}/LICENSE +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/README.md +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/setup.cfg +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/GeneralManager.egg-info/dependency_links.txt +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/GeneralManager.egg-info/requires.txt +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/GeneralManager.egg-info/top_level.txt +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/__init__.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/_types/__init__.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/_types/api.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/_types/bucket.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/_types/cache.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/_types/dataframes.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/_types/factory.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/_types/general_manager.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/_types/interface.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/_types/manager.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/_types/measurement.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/_types/permission.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/_types/rule.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/_types/search.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/_types/utils.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/api/__init__.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/api/graphql_as_of.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/api/graphql_errors.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/api/graphql_filter_contract.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/api/graphql_groups.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/api/graphql_identifiers.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/api/graphql_mutations.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/api/graphql_ordering.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/api/graphql_output.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/api/graphql_prefetch.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/api/graphql_relations.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/api/graphql_resolvers.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/api/graphql_subscription_consumer.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/api/graphql_subscriptions.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/api/graphql_type.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/api/graphql_units.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/api/graphql_value_contract.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/api/graphql_view.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/api/graphql_warmup.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/api/graphql_warmup_registry.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/api/graphql_warmup_tasks.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/api/mutation.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/api/mutation_controls.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/api/notification_batching.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/api/property.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/api/registry.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/api/remote_api.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/api/remote_invalidation.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/api/remote_invalidation_client.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/apps.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/as_of.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/bootstrap.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/bucket/__init__.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/bucket/_materialized_bucket.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/bucket/_ordering.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/bucket/base_bucket.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/bucket/calculation_bucket.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/bucket/database_bucket.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/bucket/excel_bucket.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/bucket/group_bucket.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/bucket/indexing.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/bucket/projection.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/bucket/request_bucket.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/cache/__init__.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/cache/_dependency_graph.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/cache/batch_refresh.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/cache/cache_decorator.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/cache/cache_tracker.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/cache/data_change_context.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/cache/dependency_cache.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/cache/dependency_index.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/cache/dependency_matching.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/cache/dependency_publish.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/cache/dependency_shards.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/cache/model_dependency_collector.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/cache/run_context.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/cache/run_context_lru.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/cache/signals.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/cache/transaction_barrier.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/chat/__init__.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/chat/audit.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/chat/audit_identity.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/chat/bootstrap.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/chat/checks.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/chat/consumer.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/chat/context.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/chat/errors.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/chat/evals/__init__.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/chat/evals/__main__.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/chat/evals/baseline.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/chat/evals/datasets/basic_queries.yaml +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/chat/evals/datasets/demo_readiness.yaml +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/chat/evals/datasets/edge_cases.yaml +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/chat/evals/datasets/follow_ups.yaml +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/chat/evals/datasets/large_schema.yaml +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/chat/evals/datasets/multi_hop.yaml +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/chat/evals/datasets/planned_orchestration.yaml +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/chat/evals/diagnostics.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/chat/evals/execution.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/chat/evals/fingerprints.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/chat/evals/fixtures.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/chat/evals/judges/__init__.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/chat/evals/judges/answer_quality.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/chat/evals/judges/contract.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/chat/evals/judges/result_accuracy.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/chat/evals/judges/result_set.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/chat/evals/judges/tool_sequence.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/chat/evals/outcomes.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/chat/evals/readiness.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/chat/evals/runner.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/chat/evals/traces.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/chat/graphql_contract.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/chat/grounding.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/chat/models.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/chat/mutation_inputs.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/chat/planned/__init__.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/chat/planned/action_contract.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/chat/planned/binding_diagnostics.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/chat/planned/budget.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/chat/planned/calculation_scope.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/chat/planned/calculations.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/chat/planned/catalog.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/chat/planned/category_binding.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/chat/planned/choice_context.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/chat/planned/clarification.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/chat/planned/config.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/chat/planned/contract.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/chat/planned/conversion.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/chat/planned/cross_query.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/chat/planned/deferred_calculations.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/chat/planned/deferred_schema.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/chat/planned/events.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/chat/planned/evidence.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/chat/planned/evidence_selection.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/chat/planned/group_actions.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/chat/planned/models.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/chat/planned/planner.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/chat/planned/planner_context.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/chat/planned/provider_calls.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/chat/planned/resolver.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/chat/planned/scheduler.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/chat/planned/schema_projection.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/chat/planned/selector_clarification.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/chat/planned/selector_question.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/chat/planned/synthesis.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/chat/planned/validation.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/chat/providers/__init__.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/chat/providers/_shared.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/chat/providers/anthropic.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/chat/providers/base.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/chat/providers/google.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/chat/providers/ollama.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/chat/providers/openai.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/chat/rate_limits.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/chat/routing.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/chat/schema_index.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/chat/schema_inspection.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/chat/settings.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/chat/signals.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/chat/system_prompt.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/chat/tool_metadata.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/chat/tools.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/chat/turns.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/chat/views.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/conf.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/dataframes/__init__.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/dataframes/measurements.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/factory/__init__.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/factory/auto_factory.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/factory/factories.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/factory/factory_methods.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/interface/__init__.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/interface/base_interface.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/interface/bundles/__init__.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/interface/bundles/calculation.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/interface/bundles/database.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/interface/bundles/excel.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/interface/bundles/remote_manager.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/interface/bundles/request.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/interface/capabilities/__init__.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/interface/capabilities/base.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/interface/capabilities/builtin.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/interface/capabilities/calculation/__init__.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/interface/capabilities/calculation/_compat.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/interface/capabilities/calculation/input_resolution.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/interface/capabilities/calculation/lifecycle.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/interface/capabilities/configuration.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/interface/capabilities/core/observability.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/interface/capabilities/core/utils.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/interface/capabilities/excel/__init__.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/interface/capabilities/exceptions.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/interface/capabilities/existing_model/__init__.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/interface/capabilities/existing_model/_compat.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/interface/capabilities/existing_model/resolution.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/interface/capabilities/factory.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/interface/capabilities/orm/__init__.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/interface/capabilities/orm/_compat.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/interface/capabilities/orm/bulk.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/interface/capabilities/orm/create_many.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/interface/capabilities/orm/history.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/interface/capabilities/orm/history_query.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/interface/capabilities/orm/lifecycle.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/interface/capabilities/orm/mutations.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/interface/capabilities/orm/support.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/interface/capabilities/orm_utils/__init__.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/interface/capabilities/orm_utils/collection_probes.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/interface/capabilities/orm_utils/django_manager_utils.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/interface/capabilities/orm_utils/field_descriptors.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/interface/capabilities/orm_utils/payload_normalizer.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/interface/capabilities/orm_utils/update_state.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/interface/capabilities/read_only/__init__.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/interface/capabilities/read_only/_compat.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/interface/capabilities/read_only/_types.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/interface/capabilities/read_only/lifecycle.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/interface/capabilities/read_only/management.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/interface/capabilities/registry.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/interface/capabilities/remote_manager.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/interface/capabilities/request/__init__.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/interface/capabilities/request/relation_inputs.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/interface/excel.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/interface/excel_store.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/interface/excel_workbook.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/interface/infrastructure/__init__.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/interface/infrastructure/startup_hooks.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/interface/infrastructure/system_checks.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/interface/interfaces/__init__.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/interface/interfaces/calculation.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/interface/interfaces/database.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/interface/interfaces/excel.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/interface/interfaces/existing_model.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/interface/interfaces/read_only.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/interface/interfaces/remote_manager.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/interface/interfaces/request.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/interface/manifests/__init__.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/interface/manifests/capability_builder.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/interface/manifests/capability_manifest.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/interface/manifests/capability_models.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/interface/orm_interface.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/interface/requests.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/interface/unit_contract.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/interface/utils/__init__.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/interface/utils/database_interface_protocols.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/interface/utils/errors.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/interface/utils/history.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/interface/utils/models.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/logging.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/management/commands/chat_cleanup.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/management/commands/cleanup_upload_intents.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/management/commands/graphql_warmup.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/management/commands/graphql_warmup_refresh_due.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/management/commands/search_index.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/management/commands/search_reconcile.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/management/commands/seed_manager_landscape.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/management/commands/shell.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/management/commands/sync_read_only.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/management/commands/workflow_drain_outbox.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/management/commands/workflow_replay_dead_letters.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/manager/__init__.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/manager/bulk_create.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/manager/group_manager.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/manager/input.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/manager/meta.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/measurement/__init__.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/measurement/measurement.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/measurement/measurement_field.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/metrics/__init__.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/metrics/graphql.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/migrations/0001_initial.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/migrations/0002_workflow_outbox_scaling_indexes.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/migrations/0003_workflow_execution_correlation_constraint.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/migrations/0004_chat_persistence_models.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/migrations/0004_search_index_state.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/migrations/0005_merge_chat_search.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/migrations/0006_chat_pending_confirmation_scoped_ids.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/migrations/0007_upload_intent.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/migrations/0008_upload_finalization_versions.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/migrations/0009_upload_cleanup_state.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/migrations/0010_chat_pending_confirmation_portable_uniqueness.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/migrations/0011_search_index_state_dirty_generation.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/migrations/0012_chat_context_watermarks.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/migrations/__init__.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/models.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/permission/__init__.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/permission/audit.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/permission/base_permission.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/permission/graphql_capabilities.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/permission/manager_based_permission.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/permission/mutation_permission.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/permission/permission_checks.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/permission/relation_aliases.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/permission/utils.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/public_api_registry.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/py.typed +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/rule/__init__.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/rule/handler.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/rule/rule.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/search/__init__.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/search/async_tasks.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/search/authorization.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/search/backend.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/search/backend_registry.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/search/backends/__init__.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/search/backends/dev.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/search/backends/meilisearch.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/search/backends/opensearch.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/search/backends/typesense.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/search/checks.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/search/config.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/search/identity.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/search/indexer.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/search/invalidation.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/search/m2m_invalidation.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/search/models.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/search/projection.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/search/reconciliation.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/search/registry.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/search/tasks.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/search/utils.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/seeding/__init__.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/seeding/manager_landscape.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/uploads/__init__.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/uploads/adapters.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/uploads/checks.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/uploads/config.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/uploads/errors.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/uploads/finalization.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/uploads/graphql.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/uploads/graphql_types.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/uploads/metrics.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/uploads/models.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/uploads/public.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/uploads/s3.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/uploads/services.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/uploads/tokens.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/uploads/types.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/uploads/urls.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/uploads/views.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/utils/__init__.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/utils/_args_to_kwargs.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/utils/_cache_key_encoder.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/utils/_make_cache_key.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/utils/_none_to_zero.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/utils/executable_contract.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/utils/filter_parser.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/utils/format_string.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/utils/json_encoder.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/utils/path_mapping.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/utils/public_api.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/utils/testing.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/utils/type_checks.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/workflow/__init__.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/workflow/actions.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/workflow/backend_registry.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/workflow/backends/__init__.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/workflow/backends/celery.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/workflow/backends/local.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/workflow/backends/n8n.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/workflow/config.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/workflow/engine.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/workflow/event_registry.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/workflow/events.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/workflow/models.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/workflow/signal_bridge.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/workflow/tasks.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/workflow/telemetry.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/tests/test_settings.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/tests/test_urls.py +0 -0
- {generalmanager-0.89.3 → generalmanager-0.91.0}/tests/testing_asgi.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: GeneralManager
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.91.0
|
|
4
4
|
Summary: Modular Django-based data management framework with ORM, GraphQL, fine-grained permissions, rule validation, calculations and caching.
|
|
5
5
|
Author-email: Tim Kleindick <tkleindick@yahoo.de>
|
|
6
6
|
License: MIT License
|
|
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "GeneralManager"
|
|
7
|
-
version = "0.
|
|
7
|
+
version = "0.91.0"
|
|
8
8
|
description = "Modular Django-based data management framework with ORM, GraphQL, fine-grained permissions, rule validation, calculations and caching."
|
|
9
9
|
readme = "README.md"
|
|
10
10
|
authors = [{ name = "Tim Kleindick", email = "tkleindick@yahoo.de" }]
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: GeneralManager
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.91.0
|
|
4
4
|
Summary: Modular Django-based data management framework with ORM, GraphQL, fine-grained permissions, rule validation, calculations and caching.
|
|
5
5
|
Author-email: Tim Kleindick <tkleindick@yahoo.de>
|
|
6
6
|
License: MIT License
|
|
@@ -53,6 +53,7 @@ src/general_manager/api/graphql_view.py
|
|
|
53
53
|
src/general_manager/api/graphql_warmup.py
|
|
54
54
|
src/general_manager/api/graphql_warmup_registry.py
|
|
55
55
|
src/general_manager/api/graphql_warmup_tasks.py
|
|
56
|
+
src/general_manager/api/graphql_work_limits.py
|
|
56
57
|
src/general_manager/api/mutation.py
|
|
57
58
|
src/general_manager/api/mutation_controls.py
|
|
58
59
|
src/general_manager/api/notification_batching.py
|
|
@@ -246,6 +246,23 @@ def _contains_measurement(annotation: object) -> bool:
|
|
|
246
246
|
return any(_contains_measurement(argument) for argument in get_args(annotation))
|
|
247
247
|
|
|
248
248
|
|
|
249
|
+
class InvalidGraphQLMutationDefaultError(TypeError):
|
|
250
|
+
"""Raised when the global generated CRUD default is not boolean."""
|
|
251
|
+
|
|
252
|
+
def __init__(self) -> None:
|
|
253
|
+
super().__init__("GRAPHQL_MUTATIONS_ENABLED must be a bool.")
|
|
254
|
+
|
|
255
|
+
|
|
256
|
+
class InvalidGraphQLMutationConfigurationError(TypeError):
|
|
257
|
+
"""Raised when a manager's generated CRUD allowlist is invalid."""
|
|
258
|
+
|
|
259
|
+
def __init__(self, manager_name: str) -> None:
|
|
260
|
+
super().__init__(
|
|
261
|
+
f"{manager_name}.__graphql_mutations__ must be a set or frozenset "
|
|
262
|
+
"containing only 'create', 'update', and 'delete'."
|
|
263
|
+
)
|
|
264
|
+
|
|
265
|
+
|
|
249
266
|
class GraphQLOutputTypeError(ValueError):
|
|
250
267
|
"""Raised when an output declaration cannot be registered safely."""
|
|
251
268
|
|
|
@@ -724,7 +741,14 @@ class GraphQL:
|
|
|
724
741
|
registering anything. Otherwise, it generates create/update/delete
|
|
725
742
|
mutation classes when the manager's Interface advertises support for the
|
|
726
743
|
corresponding operation: either by overriding the `InterfaceBase` method
|
|
727
|
-
or by listing the operation in `Interface.get_capabilities()`.
|
|
744
|
+
or by listing the operation in `Interface.get_capabilities()`. The
|
|
745
|
+
manager's `__graphql_mutations__` set or frozenset must also include that
|
|
746
|
+
operation. When omitted, the global GRAPHQL_MUTATIONS_ENABLED setting
|
|
747
|
+
defaults to True (all three operations); False hides all. Explicit
|
|
748
|
+
inherited allowlists override that default. An empty set
|
|
749
|
+
disables generated CRUD without changing Python writes, permissions,
|
|
750
|
+
queries, or separately registered custom mutations. Invalid allowlists
|
|
751
|
+
raise `TypeError` before mutation registration changes. Each
|
|
728
752
|
successfully generated mutation is stored on the class-level registry
|
|
729
753
|
(`_mutations`) under the names `create<ManagerName>`,
|
|
730
754
|
`update<ManagerName>`, and `delete<ManagerName>`. If a mutation factory
|
|
@@ -741,6 +765,20 @@ class GraphQL:
|
|
|
741
765
|
if not interface_cls:
|
|
742
766
|
return None
|
|
743
767
|
|
|
768
|
+
supported_mutations = {"create", "update", "delete"}
|
|
769
|
+
global_default = get_setting("GRAPHQL_MUTATIONS_ENABLED", True)
|
|
770
|
+
if not isinstance(global_default, bool):
|
|
771
|
+
raise InvalidGraphQLMutationDefaultError()
|
|
772
|
+
graphql_mutations = getattr(
|
|
773
|
+
generalManagerClass,
|
|
774
|
+
"__graphql_mutations__",
|
|
775
|
+
supported_mutations if global_default else frozenset(),
|
|
776
|
+
)
|
|
777
|
+
if not isinstance(graphql_mutations, (set, frozenset)) or not (
|
|
778
|
+
graphql_mutations <= supported_mutations
|
|
779
|
+
):
|
|
780
|
+
raise InvalidGraphQLMutationConfigurationError(generalManagerClass.__name__)
|
|
781
|
+
|
|
744
782
|
default_return_values = {
|
|
745
783
|
"success": graphene.Boolean(),
|
|
746
784
|
generalManagerClass.__name__: graphene.Field(
|
|
@@ -765,7 +803,7 @@ class GraphQL:
|
|
|
765
803
|
method_overridden = base_method.__code__ != method.__code__
|
|
766
804
|
return method_overridden or op_name in capabilities
|
|
767
805
|
|
|
768
|
-
if _supports("create", "create"):
|
|
806
|
+
if "create" in graphql_mutations and _supports("create", "create"):
|
|
769
807
|
create_name = f"create{generalManagerClass.__name__}"
|
|
770
808
|
create_mutation = cls.generate_create_mutation_class(
|
|
771
809
|
generalManagerClass, default_return_values
|
|
@@ -780,7 +818,7 @@ class GraphQL:
|
|
|
780
818
|
},
|
|
781
819
|
)
|
|
782
820
|
|
|
783
|
-
if _supports("update", "update"):
|
|
821
|
+
if "update" in graphql_mutations and _supports("update", "update"):
|
|
784
822
|
update_name = f"update{generalManagerClass.__name__}"
|
|
785
823
|
update_mutation = cls.generate_update_mutation_class(
|
|
786
824
|
generalManagerClass, default_return_values
|
|
@@ -795,7 +833,7 @@ class GraphQL:
|
|
|
795
833
|
},
|
|
796
834
|
)
|
|
797
835
|
|
|
798
|
-
if _supports("delete", "delete"):
|
|
836
|
+
if "delete" in graphql_mutations and _supports("delete", "delete"):
|
|
799
837
|
delete_name = f"delete{generalManagerClass.__name__}"
|
|
800
838
|
delete_mutation = cls.generate_delete_mutation_class(
|
|
801
839
|
generalManagerClass, default_return_values
|
{generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/api/graphql_query_permissions.py
RENAMED
|
@@ -9,6 +9,7 @@ from typing import TYPE_CHECKING
|
|
|
9
9
|
|
|
10
10
|
from graphql import GraphQLError
|
|
11
11
|
|
|
12
|
+
from general_manager.api.graphql_work_limits import get_graphql_work_limit
|
|
12
13
|
from general_manager.bucket.base_bucket import Bucket
|
|
13
14
|
from general_manager.bucket.request_bucket import RequestBucket
|
|
14
15
|
from general_manager.manager.general_manager import GeneralManager
|
|
@@ -47,7 +48,7 @@ CUSTOM_PROJECTION_ERROR = (
|
|
|
47
48
|
)
|
|
48
49
|
|
|
49
50
|
# Bound field/path decisions; bucket materialization and row checks precede this.
|
|
50
|
-
MAX_QUERY_PERMISSION_CANDIDATES =
|
|
51
|
+
MAX_QUERY_PERMISSION_CANDIDATES: int | None = None
|
|
51
52
|
_LOOKUPS = {
|
|
52
53
|
"exact",
|
|
53
54
|
"iexact",
|
|
@@ -79,11 +80,16 @@ class QueryFieldAuthorizationBudget:
|
|
|
79
80
|
"""Share only accounting across authorization calls in one operation."""
|
|
80
81
|
|
|
81
82
|
decisions: int = 0
|
|
83
|
+
limit: int | None = field(
|
|
84
|
+
default_factory=lambda: get_graphql_work_limit(
|
|
85
|
+
"GRAPHQL_QUERY_PERMISSION_LIMIT", MAX_QUERY_PERMISSION_CANDIDATES
|
|
86
|
+
)
|
|
87
|
+
)
|
|
82
88
|
|
|
83
89
|
def charge(self) -> None:
|
|
84
90
|
"""Reject work exceeding the operation's field/path decision limit."""
|
|
85
91
|
self.decisions += 1
|
|
86
|
-
if self.decisions >
|
|
92
|
+
if self.limit is not None and self.decisions > self.limit:
|
|
87
93
|
raise GraphQLError(_LIMIT_ERROR)
|
|
88
94
|
|
|
89
95
|
|
|
@@ -10,7 +10,6 @@ from __future__ import annotations
|
|
|
10
10
|
from dataclasses import replace
|
|
11
11
|
|
|
12
12
|
import json
|
|
13
|
-
import os
|
|
14
13
|
from collections.abc import Callable, Generator, Iterable, Mapping
|
|
15
14
|
from datetime import date, datetime
|
|
16
15
|
from decimal import Decimal
|
|
@@ -28,6 +27,7 @@ from graphql import GraphQLError, GraphQLID
|
|
|
28
27
|
from django.core.exceptions import FieldDoesNotExist
|
|
29
28
|
from django.db import models
|
|
30
29
|
|
|
30
|
+
from general_manager.api.graphql_work_limits import get_graphql_work_limit
|
|
31
31
|
from general_manager.conf import get_setting
|
|
32
32
|
from general_manager.api.graphql_identifiers import property_identifier_type
|
|
33
33
|
from general_manager.api.graphql_ordering import (
|
|
@@ -101,15 +101,11 @@ SearchTotalMode = Literal["exact", "bounded"]
|
|
|
101
101
|
_BAD_USER_INPUT_CODE = "BAD_USER_INPUT"
|
|
102
102
|
_PAGE_MUST_BE_POSITIVE = "page must be a positive integer."
|
|
103
103
|
_PAGE_SIZE_MUST_BE_POSITIVE = "pageSize must be a positive integer."
|
|
104
|
-
DEFAULT_GRAPHQL_SEARCH_TOTAL_SCAN_LIMIT =
|
|
105
|
-
_SEARCH_TOTAL_SCAN_LIMIT_UNSET = object()
|
|
104
|
+
DEFAULT_GRAPHQL_SEARCH_TOTAL_SCAN_LIMIT: int | None = None
|
|
106
105
|
SEARCH_SOURCE_AUTHORIZATION_LIMIT_ERROR = (
|
|
107
106
|
"Search source authorization candidate limit exceeded."
|
|
108
107
|
)
|
|
109
108
|
SEARCH_TOTAL_MODE_ERROR = "must be one of: exact, bounded."
|
|
110
|
-
SEARCH_TOTAL_SCAN_LIMIT_ERROR = (
|
|
111
|
-
"GRAPHQL_SEARCH_TOTAL_SCAN_LIMIT must be a positive integer."
|
|
112
|
-
)
|
|
113
109
|
_MALFORMED_NATIVE_ID = object()
|
|
114
110
|
|
|
115
111
|
_SEARCH_SCAN_LIMIT_EXCEEDED = (
|
|
@@ -204,24 +200,11 @@ def normalize_search_total_mode(total_mode: str | None = None) -> SearchTotalMod
|
|
|
204
200
|
return cast(SearchTotalMode, normalized)
|
|
205
201
|
|
|
206
202
|
|
|
207
|
-
def get_graphql_search_total_scan_limit() -> int:
|
|
208
|
-
"""Resolve the shared candidate budget from
|
|
209
|
-
|
|
210
|
-
"GRAPHQL_SEARCH_TOTAL_SCAN_LIMIT",
|
|
211
|
-
_SEARCH_TOTAL_SCAN_LIMIT_UNSET,
|
|
203
|
+
def get_graphql_search_total_scan_limit() -> int | None:
|
|
204
|
+
"""Resolve the optional shared candidate budget from settings, then env."""
|
|
205
|
+
return get_graphql_work_limit(
|
|
206
|
+
"GRAPHQL_SEARCH_TOTAL_SCAN_LIMIT", DEFAULT_GRAPHQL_SEARCH_TOTAL_SCAN_LIMIT
|
|
212
207
|
)
|
|
213
|
-
if raw_limit is _SEARCH_TOTAL_SCAN_LIMIT_UNSET:
|
|
214
|
-
env_limit = os.environ.get("GENERAL_MANAGER_GRAPHQL_SEARCH_TOTAL_SCAN_LIMIT")
|
|
215
|
-
if env_limit is None:
|
|
216
|
-
raw_limit = DEFAULT_GRAPHQL_SEARCH_TOTAL_SCAN_LIMIT
|
|
217
|
-
else:
|
|
218
|
-
try:
|
|
219
|
-
raw_limit = int(env_limit)
|
|
220
|
-
except ValueError:
|
|
221
|
-
raise _bad_user_input_error(SEARCH_TOTAL_SCAN_LIMIT_ERROR) from None
|
|
222
|
-
if not isinstance(raw_limit, int) or isinstance(raw_limit, bool) or raw_limit <= 0:
|
|
223
|
-
raise _bad_user_input_error(SEARCH_TOTAL_SCAN_LIMIT_ERROR)
|
|
224
|
-
return raw_limit
|
|
225
208
|
|
|
226
209
|
|
|
227
210
|
def sort_search_hit_entries(
|
|
@@ -1569,6 +1552,9 @@ def register_search_query(
|
|
|
1569
1552
|
QueryFieldAuthorizationBudget,
|
|
1570
1553
|
)
|
|
1571
1554
|
|
|
1555
|
+
source_limit = get_graphql_work_limit(
|
|
1556
|
+
"GRAPHQL_SEARCH_SOURCE_AUTHORIZATION_LIMIT", MAX_QUERY_PERMISSION_CANDIDATES
|
|
1557
|
+
)
|
|
1572
1558
|
source_candidate_count = 0
|
|
1573
1559
|
authorization_budget = QueryFieldAuthorizationBudget()
|
|
1574
1560
|
|
|
@@ -1577,7 +1563,7 @@ def register_search_query(
|
|
|
1577
1563
|
) -> Generator[GeneralManager, None, None]:
|
|
1578
1564
|
nonlocal source_candidate_count
|
|
1579
1565
|
for candidate in source:
|
|
1580
|
-
if source_candidate_count >=
|
|
1566
|
+
if source_limit is not None and source_candidate_count >= source_limit:
|
|
1581
1567
|
raise GraphQLError(SEARCH_SOURCE_AUTHORIZATION_LIMIT_ERROR)
|
|
1582
1568
|
source_candidate_count += 1
|
|
1583
1569
|
if passes_permission_filters(candidate, info, permission_plan=plan):
|
|
@@ -1804,11 +1790,19 @@ def register_search_query(
|
|
|
1804
1790
|
fast_source is not None and common_filter_execution_valid()
|
|
1805
1791
|
)
|
|
1806
1792
|
while True:
|
|
1807
|
-
remaining_scan_budget =
|
|
1808
|
-
|
|
1793
|
+
remaining_scan_budget = (
|
|
1794
|
+
None
|
|
1795
|
+
if total_scan_limit is None
|
|
1796
|
+
else total_scan_limit - scanned_hits
|
|
1797
|
+
)
|
|
1798
|
+
if remaining_scan_budget is not None and remaining_scan_budget <= 0:
|
|
1809
1799
|
manager_total_is_exact = False
|
|
1810
1800
|
break
|
|
1811
|
-
query_limit =
|
|
1801
|
+
query_limit = (
|
|
1802
|
+
fetch_limit
|
|
1803
|
+
if remaining_scan_budget is None
|
|
1804
|
+
else min(fetch_limit, remaining_scan_budget)
|
|
1805
|
+
)
|
|
1812
1806
|
result = backend.search(
|
|
1813
1807
|
index_name,
|
|
1814
1808
|
query,
|
|
@@ -1981,7 +1975,7 @@ def register_search_query(
|
|
|
1981
1975
|
break
|
|
1982
1976
|
if len(result.hits) < query_limit and not can_continue_page:
|
|
1983
1977
|
break
|
|
1984
|
-
if scanned_hits >= total_scan_limit:
|
|
1978
|
+
if total_scan_limit is not None and scanned_hits >= total_scan_limit:
|
|
1985
1979
|
manager_total_is_exact = False
|
|
1986
1980
|
break
|
|
1987
1981
|
total += total_hits_for_manager
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
"""Server-owned optional GraphQL workload budgets, independent of permissions."""
|
|
2
|
+
|
|
3
|
+
from __future__ import annotations
|
|
4
|
+
|
|
5
|
+
import os
|
|
6
|
+
|
|
7
|
+
from graphql import GraphQLError
|
|
8
|
+
|
|
9
|
+
from general_manager.conf import get_setting
|
|
10
|
+
|
|
11
|
+
_UNSET = object()
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
def get_graphql_work_limit(name: str, default: int | None = None) -> int | None:
|
|
15
|
+
"""Resolve Django settings before environment; explicit None means unlimited."""
|
|
16
|
+
value = get_setting(name, _UNSET)
|
|
17
|
+
if value is _UNSET:
|
|
18
|
+
raw = os.environ.get(f"GENERAL_MANAGER_{name}")
|
|
19
|
+
if raw is None:
|
|
20
|
+
return default
|
|
21
|
+
if raw.strip().lower() in {"none", "unlimited"}:
|
|
22
|
+
return None
|
|
23
|
+
try:
|
|
24
|
+
value = int(raw)
|
|
25
|
+
except ValueError:
|
|
26
|
+
value = raw
|
|
27
|
+
if value is None:
|
|
28
|
+
return None
|
|
29
|
+
if isinstance(value, int) and not isinstance(value, bool) and value > 0:
|
|
30
|
+
return value
|
|
31
|
+
message = f"{name} must be a positive integer or None (unlimited)."
|
|
32
|
+
raise GraphQLError(
|
|
33
|
+
message,
|
|
34
|
+
extensions={"code": "BAD_USER_INPUT"},
|
|
35
|
+
)
|
{generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/manager/general_manager.py
RENAMED
|
@@ -178,6 +178,7 @@ def _reconstruct_general_manager(
|
|
|
178
178
|
|
|
179
179
|
class GeneralManager(metaclass=GeneralManagerMeta):
|
|
180
180
|
chat_exposed: bool = False
|
|
181
|
+
__graphql_mutations__: ClassVar[set[str] | frozenset[str]]
|
|
181
182
|
_gm_uses_default_identification_dependency_active: ClassVar[bool] = True
|
|
182
183
|
Permission: Type[BasePermission]
|
|
183
184
|
_attributes: dict[str, object]
|
|
@@ -45,6 +45,20 @@ class PermissionRelationResolutionError(PermissionError):
|
|
|
45
45
|
)
|
|
46
46
|
|
|
47
47
|
|
|
48
|
+
def _resolved_relation_model(
|
|
49
|
+
field: models.ForeignKey[models.Model],
|
|
50
|
+
) -> type[models.Model]:
|
|
51
|
+
"""Use Django's resolved relation owner, not an early cached string reference."""
|
|
52
|
+
# RelatedField.related_model is cached; inspecting it during model assembly
|
|
53
|
+
# can retain a string even after Django resolves remote_field.model.
|
|
54
|
+
related_model = getattr(field.remote_field, "model", None)
|
|
55
|
+
if not isinstance(related_model, type) or not issubclass(
|
|
56
|
+
related_model, models.Model
|
|
57
|
+
):
|
|
58
|
+
raise PermissionRelationResolutionError(field.name)
|
|
59
|
+
return related_model
|
|
60
|
+
|
|
61
|
+
|
|
48
62
|
GeneralManagerData = TypeVar("GeneralManagerData", bound=GeneralManager)
|
|
49
63
|
|
|
50
64
|
|
|
@@ -299,7 +313,7 @@ class PermissionDataManager(Generic[GeneralManagerData]):
|
|
|
299
313
|
if identifier is None or name == field.attname:
|
|
300
314
|
return identifier
|
|
301
315
|
|
|
302
|
-
related_type = field
|
|
316
|
+
related_type = _resolved_relation_model(field)
|
|
303
317
|
manager_type = getattr(related_type, "_general_manager_class", None)
|
|
304
318
|
# A write check needs the target on the write database even if a read
|
|
305
319
|
# router would select a replica. Standalone checks retain Django hints.
|
|
@@ -342,7 +356,7 @@ class PermissionDataManager(Generic[GeneralManagerData]):
|
|
|
342
356
|
backing = getattr(getattr(manager, "_interface", None), "_instance", None)
|
|
343
357
|
if (
|
|
344
358
|
manager.identification.get("id") != related.pk
|
|
345
|
-
or not isinstance(backing, field
|
|
359
|
+
or not isinstance(backing, _resolved_relation_model(field))
|
|
346
360
|
or backing.pk != related.pk
|
|
347
361
|
or backing._state.db != related._state.db
|
|
348
362
|
or getattr(backing, field.target_field.attname)
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{generalmanager-0.89.3 → generalmanager-0.91.0}/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.3 → generalmanager-0.91.0}/src/general_manager/_types/general_manager.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/api/graphql_filter_contract.py
RENAMED
|
File without changes
|
|
File without changes
|
{generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/api/graphql_identifiers.py
RENAMED
|
File without changes
|
{generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/api/graphql_mutations.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/api/graphql_relations.py
RENAMED
|
File without changes
|
{generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/api/graphql_resolvers.py
RENAMED
|
File without changes
|
|
File without changes
|
{generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/api/graphql_subscriptions.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/api/graphql_value_contract.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/api/graphql_warmup_registry.py
RENAMED
|
File without changes
|
{generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/api/graphql_warmup_tasks.py
RENAMED
|
File without changes
|
|
File without changes
|
{generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/api/mutation_controls.py
RENAMED
|
File without changes
|
{generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/api/notification_batching.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{generalmanager-0.89.3 → generalmanager-0.91.0}/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.3 → generalmanager-0.91.0}/src/general_manager/bucket/_materialized_bucket.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/bucket/calculation_bucket.py
RENAMED
|
File without changes
|
{generalmanager-0.89.3 → generalmanager-0.91.0}/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.3 → generalmanager-0.91.0}/src/general_manager/bucket/request_bucket.py
RENAMED
|
File without changes
|
|
File without changes
|
{generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/cache/_dependency_graph.py
RENAMED
|
File without changes
|
|
File without changes
|
{generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/cache/cache_decorator.py
RENAMED
|
File without changes
|
|
File without changes
|
{generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/cache/data_change_context.py
RENAMED
|
File without changes
|
{generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/cache/dependency_cache.py
RENAMED
|
File without changes
|
{generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/cache/dependency_index.py
RENAMED
|
File without changes
|
{generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/cache/dependency_matching.py
RENAMED
|
File without changes
|
{generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/cache/dependency_publish.py
RENAMED
|
File without changes
|
{generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/cache/dependency_shards.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/cache/run_context_lru.py
RENAMED
|
File without changes
|
|
File without changes
|
{generalmanager-0.89.3 → generalmanager-0.91.0}/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.3 → generalmanager-0.91.0}/src/general_manager/chat/evals/diagnostics.py
RENAMED
|
File without changes
|
|
File without changes
|
{generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/chat/evals/fingerprints.py
RENAMED
|
File without changes
|
|
File without changes
|
{generalmanager-0.89.3 → generalmanager-0.91.0}/src/general_manager/chat/evals/judges/__init__.py
RENAMED
|
File without changes
|