GeneralManager 0.69.1__tar.gz → 0.69.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.69.1/src/GeneralManager.egg-info → generalmanager-0.69.2}/PKG-INFO +1 -1
- {generalmanager-0.69.1 → generalmanager-0.69.2}/pyproject.toml +1 -1
- {generalmanager-0.69.1 → generalmanager-0.69.2/src/GeneralManager.egg-info}/PKG-INFO +1 -1
- {generalmanager-0.69.1 → generalmanager-0.69.2}/src/general_manager/cache/run_context.py +58 -17
- generalmanager-0.69.2/src/general_manager/cache/run_context_lru.py +1389 -0
- generalmanager-0.69.1/src/general_manager/cache/run_context_lru.py +0 -793
- {generalmanager-0.69.1 → generalmanager-0.69.2}/LICENSE +0 -0
- {generalmanager-0.69.1 → generalmanager-0.69.2}/README.md +0 -0
- {generalmanager-0.69.1 → generalmanager-0.69.2}/setup.cfg +0 -0
- {generalmanager-0.69.1 → generalmanager-0.69.2}/src/GeneralManager.egg-info/SOURCES.txt +0 -0
- {generalmanager-0.69.1 → generalmanager-0.69.2}/src/GeneralManager.egg-info/dependency_links.txt +0 -0
- {generalmanager-0.69.1 → generalmanager-0.69.2}/src/GeneralManager.egg-info/requires.txt +0 -0
- {generalmanager-0.69.1 → generalmanager-0.69.2}/src/GeneralManager.egg-info/top_level.txt +0 -0
- {generalmanager-0.69.1 → generalmanager-0.69.2}/src/general_manager/__init__.py +0 -0
- {generalmanager-0.69.1 → generalmanager-0.69.2}/src/general_manager/_types/__init__.py +0 -0
- {generalmanager-0.69.1 → generalmanager-0.69.2}/src/general_manager/_types/api.py +0 -0
- {generalmanager-0.69.1 → generalmanager-0.69.2}/src/general_manager/_types/bucket.py +0 -0
- {generalmanager-0.69.1 → generalmanager-0.69.2}/src/general_manager/_types/cache.py +0 -0
- {generalmanager-0.69.1 → generalmanager-0.69.2}/src/general_manager/_types/dataframes.py +0 -0
- {generalmanager-0.69.1 → generalmanager-0.69.2}/src/general_manager/_types/factory.py +0 -0
- {generalmanager-0.69.1 → generalmanager-0.69.2}/src/general_manager/_types/general_manager.py +0 -0
- {generalmanager-0.69.1 → generalmanager-0.69.2}/src/general_manager/_types/interface.py +0 -0
- {generalmanager-0.69.1 → generalmanager-0.69.2}/src/general_manager/_types/manager.py +0 -0
- {generalmanager-0.69.1 → generalmanager-0.69.2}/src/general_manager/_types/measurement.py +0 -0
- {generalmanager-0.69.1 → generalmanager-0.69.2}/src/general_manager/_types/permission.py +0 -0
- {generalmanager-0.69.1 → generalmanager-0.69.2}/src/general_manager/_types/rule.py +0 -0
- {generalmanager-0.69.1 → generalmanager-0.69.2}/src/general_manager/_types/search.py +0 -0
- {generalmanager-0.69.1 → generalmanager-0.69.2}/src/general_manager/_types/utils.py +0 -0
- {generalmanager-0.69.1 → generalmanager-0.69.2}/src/general_manager/api/__init__.py +0 -0
- {generalmanager-0.69.1 → generalmanager-0.69.2}/src/general_manager/api/graphql.py +0 -0
- {generalmanager-0.69.1 → generalmanager-0.69.2}/src/general_manager/api/graphql_as_of.py +0 -0
- {generalmanager-0.69.1 → generalmanager-0.69.2}/src/general_manager/api/graphql_errors.py +0 -0
- {generalmanager-0.69.1 → generalmanager-0.69.2}/src/general_manager/api/graphql_mutations.py +0 -0
- {generalmanager-0.69.1 → generalmanager-0.69.2}/src/general_manager/api/graphql_prefetch.py +0 -0
- {generalmanager-0.69.1 → generalmanager-0.69.2}/src/general_manager/api/graphql_relations.py +0 -0
- {generalmanager-0.69.1 → generalmanager-0.69.2}/src/general_manager/api/graphql_resolvers.py +0 -0
- {generalmanager-0.69.1 → generalmanager-0.69.2}/src/general_manager/api/graphql_search.py +0 -0
- {generalmanager-0.69.1 → generalmanager-0.69.2}/src/general_manager/api/graphql_subscription_consumer.py +0 -0
- {generalmanager-0.69.1 → generalmanager-0.69.2}/src/general_manager/api/graphql_subscriptions.py +0 -0
- {generalmanager-0.69.1 → generalmanager-0.69.2}/src/general_manager/api/graphql_view.py +0 -0
- {generalmanager-0.69.1 → generalmanager-0.69.2}/src/general_manager/api/graphql_warmup.py +0 -0
- {generalmanager-0.69.1 → generalmanager-0.69.2}/src/general_manager/api/graphql_warmup_registry.py +0 -0
- {generalmanager-0.69.1 → generalmanager-0.69.2}/src/general_manager/api/graphql_warmup_tasks.py +0 -0
- {generalmanager-0.69.1 → generalmanager-0.69.2}/src/general_manager/api/mutation.py +0 -0
- {generalmanager-0.69.1 → generalmanager-0.69.2}/src/general_manager/api/notification_batching.py +0 -0
- {generalmanager-0.69.1 → generalmanager-0.69.2}/src/general_manager/api/property.py +0 -0
- {generalmanager-0.69.1 → generalmanager-0.69.2}/src/general_manager/api/registry.py +0 -0
- {generalmanager-0.69.1 → generalmanager-0.69.2}/src/general_manager/api/remote_api.py +0 -0
- {generalmanager-0.69.1 → generalmanager-0.69.2}/src/general_manager/api/remote_invalidation.py +0 -0
- {generalmanager-0.69.1 → generalmanager-0.69.2}/src/general_manager/api/remote_invalidation_client.py +0 -0
- {generalmanager-0.69.1 → generalmanager-0.69.2}/src/general_manager/apps.py +0 -0
- {generalmanager-0.69.1 → generalmanager-0.69.2}/src/general_manager/as_of.py +0 -0
- {generalmanager-0.69.1 → generalmanager-0.69.2}/src/general_manager/bootstrap.py +0 -0
- {generalmanager-0.69.1 → generalmanager-0.69.2}/src/general_manager/bucket/__init__.py +0 -0
- {generalmanager-0.69.1 → generalmanager-0.69.2}/src/general_manager/bucket/base_bucket.py +0 -0
- {generalmanager-0.69.1 → generalmanager-0.69.2}/src/general_manager/bucket/calculation_bucket.py +0 -0
- {generalmanager-0.69.1 → generalmanager-0.69.2}/src/general_manager/bucket/database_bucket.py +0 -0
- {generalmanager-0.69.1 → generalmanager-0.69.2}/src/general_manager/bucket/group_bucket.py +0 -0
- {generalmanager-0.69.1 → generalmanager-0.69.2}/src/general_manager/bucket/indexing.py +0 -0
- {generalmanager-0.69.1 → generalmanager-0.69.2}/src/general_manager/bucket/request_bucket.py +0 -0
- {generalmanager-0.69.1 → generalmanager-0.69.2}/src/general_manager/cache/__init__.py +0 -0
- {generalmanager-0.69.1 → generalmanager-0.69.2}/src/general_manager/cache/cache_decorator.py +0 -0
- {generalmanager-0.69.1 → generalmanager-0.69.2}/src/general_manager/cache/cache_tracker.py +0 -0
- {generalmanager-0.69.1 → generalmanager-0.69.2}/src/general_manager/cache/data_change_context.py +0 -0
- {generalmanager-0.69.1 → generalmanager-0.69.2}/src/general_manager/cache/dependency_cache.py +0 -0
- {generalmanager-0.69.1 → generalmanager-0.69.2}/src/general_manager/cache/dependency_index.py +0 -0
- {generalmanager-0.69.1 → generalmanager-0.69.2}/src/general_manager/cache/dependency_matching.py +0 -0
- {generalmanager-0.69.1 → generalmanager-0.69.2}/src/general_manager/cache/dependency_publish.py +0 -0
- {generalmanager-0.69.1 → generalmanager-0.69.2}/src/general_manager/cache/dependency_shards.py +0 -0
- {generalmanager-0.69.1 → generalmanager-0.69.2}/src/general_manager/cache/model_dependency_collector.py +0 -0
- {generalmanager-0.69.1 → generalmanager-0.69.2}/src/general_manager/cache/signals.py +0 -0
- {generalmanager-0.69.1 → generalmanager-0.69.2}/src/general_manager/chat/__init__.py +0 -0
- {generalmanager-0.69.1 → generalmanager-0.69.2}/src/general_manager/chat/audit.py +0 -0
- {generalmanager-0.69.1 → generalmanager-0.69.2}/src/general_manager/chat/bootstrap.py +0 -0
- {generalmanager-0.69.1 → generalmanager-0.69.2}/src/general_manager/chat/checks.py +0 -0
- {generalmanager-0.69.1 → generalmanager-0.69.2}/src/general_manager/chat/consumer.py +0 -0
- {generalmanager-0.69.1 → generalmanager-0.69.2}/src/general_manager/chat/errors.py +0 -0
- {generalmanager-0.69.1 → generalmanager-0.69.2}/src/general_manager/chat/evals/__init__.py +0 -0
- {generalmanager-0.69.1 → generalmanager-0.69.2}/src/general_manager/chat/evals/__main__.py +0 -0
- {generalmanager-0.69.1 → generalmanager-0.69.2}/src/general_manager/chat/evals/baseline.py +0 -0
- {generalmanager-0.69.1 → generalmanager-0.69.2}/src/general_manager/chat/evals/datasets/basic_queries.yaml +0 -0
- {generalmanager-0.69.1 → generalmanager-0.69.2}/src/general_manager/chat/evals/datasets/demo_readiness.yaml +0 -0
- {generalmanager-0.69.1 → generalmanager-0.69.2}/src/general_manager/chat/evals/datasets/edge_cases.yaml +0 -0
- {generalmanager-0.69.1 → generalmanager-0.69.2}/src/general_manager/chat/evals/datasets/follow_ups.yaml +0 -0
- {generalmanager-0.69.1 → generalmanager-0.69.2}/src/general_manager/chat/evals/datasets/large_schema.yaml +0 -0
- {generalmanager-0.69.1 → generalmanager-0.69.2}/src/general_manager/chat/evals/datasets/multi_hop.yaml +0 -0
- {generalmanager-0.69.1 → generalmanager-0.69.2}/src/general_manager/chat/evals/diagnostics.py +0 -0
- {generalmanager-0.69.1 → generalmanager-0.69.2}/src/general_manager/chat/evals/fingerprints.py +0 -0
- {generalmanager-0.69.1 → generalmanager-0.69.2}/src/general_manager/chat/evals/fixtures.py +0 -0
- {generalmanager-0.69.1 → generalmanager-0.69.2}/src/general_manager/chat/evals/judges/__init__.py +0 -0
- {generalmanager-0.69.1 → generalmanager-0.69.2}/src/general_manager/chat/evals/judges/answer_quality.py +0 -0
- {generalmanager-0.69.1 → generalmanager-0.69.2}/src/general_manager/chat/evals/judges/contract.py +0 -0
- {generalmanager-0.69.1 → generalmanager-0.69.2}/src/general_manager/chat/evals/judges/result_accuracy.py +0 -0
- {generalmanager-0.69.1 → generalmanager-0.69.2}/src/general_manager/chat/evals/judges/tool_sequence.py +0 -0
- {generalmanager-0.69.1 → generalmanager-0.69.2}/src/general_manager/chat/evals/readiness.py +0 -0
- {generalmanager-0.69.1 → generalmanager-0.69.2}/src/general_manager/chat/evals/runner.py +0 -0
- {generalmanager-0.69.1 → generalmanager-0.69.2}/src/general_manager/chat/evals/traces.py +0 -0
- {generalmanager-0.69.1 → generalmanager-0.69.2}/src/general_manager/chat/grounding.py +0 -0
- {generalmanager-0.69.1 → generalmanager-0.69.2}/src/general_manager/chat/models.py +0 -0
- {generalmanager-0.69.1 → generalmanager-0.69.2}/src/general_manager/chat/providers/__init__.py +0 -0
- {generalmanager-0.69.1 → generalmanager-0.69.2}/src/general_manager/chat/providers/_shared.py +0 -0
- {generalmanager-0.69.1 → generalmanager-0.69.2}/src/general_manager/chat/providers/anthropic.py +0 -0
- {generalmanager-0.69.1 → generalmanager-0.69.2}/src/general_manager/chat/providers/base.py +0 -0
- {generalmanager-0.69.1 → generalmanager-0.69.2}/src/general_manager/chat/providers/google.py +0 -0
- {generalmanager-0.69.1 → generalmanager-0.69.2}/src/general_manager/chat/providers/ollama.py +0 -0
- {generalmanager-0.69.1 → generalmanager-0.69.2}/src/general_manager/chat/providers/openai.py +0 -0
- {generalmanager-0.69.1 → generalmanager-0.69.2}/src/general_manager/chat/rate_limits.py +0 -0
- {generalmanager-0.69.1 → generalmanager-0.69.2}/src/general_manager/chat/routing.py +0 -0
- {generalmanager-0.69.1 → generalmanager-0.69.2}/src/general_manager/chat/schema_index.py +0 -0
- {generalmanager-0.69.1 → generalmanager-0.69.2}/src/general_manager/chat/settings.py +0 -0
- {generalmanager-0.69.1 → generalmanager-0.69.2}/src/general_manager/chat/signals.py +0 -0
- {generalmanager-0.69.1 → generalmanager-0.69.2}/src/general_manager/chat/system_prompt.py +0 -0
- {generalmanager-0.69.1 → generalmanager-0.69.2}/src/general_manager/chat/tool_metadata.py +0 -0
- {generalmanager-0.69.1 → generalmanager-0.69.2}/src/general_manager/chat/tools.py +0 -0
- {generalmanager-0.69.1 → generalmanager-0.69.2}/src/general_manager/chat/views.py +0 -0
- {generalmanager-0.69.1 → generalmanager-0.69.2}/src/general_manager/conf.py +0 -0
- {generalmanager-0.69.1 → generalmanager-0.69.2}/src/general_manager/dataframes/__init__.py +0 -0
- {generalmanager-0.69.1 → generalmanager-0.69.2}/src/general_manager/dataframes/measurements.py +0 -0
- {generalmanager-0.69.1 → generalmanager-0.69.2}/src/general_manager/factory/__init__.py +0 -0
- {generalmanager-0.69.1 → generalmanager-0.69.2}/src/general_manager/factory/auto_factory.py +0 -0
- {generalmanager-0.69.1 → generalmanager-0.69.2}/src/general_manager/factory/factories.py +0 -0
- {generalmanager-0.69.1 → generalmanager-0.69.2}/src/general_manager/factory/factory_methods.py +0 -0
- {generalmanager-0.69.1 → generalmanager-0.69.2}/src/general_manager/interface/__init__.py +0 -0
- {generalmanager-0.69.1 → generalmanager-0.69.2}/src/general_manager/interface/base_interface.py +0 -0
- {generalmanager-0.69.1 → generalmanager-0.69.2}/src/general_manager/interface/bundles/__init__.py +0 -0
- {generalmanager-0.69.1 → generalmanager-0.69.2}/src/general_manager/interface/bundles/calculation.py +0 -0
- {generalmanager-0.69.1 → generalmanager-0.69.2}/src/general_manager/interface/bundles/database.py +0 -0
- {generalmanager-0.69.1 → generalmanager-0.69.2}/src/general_manager/interface/bundles/remote_manager.py +0 -0
- {generalmanager-0.69.1 → generalmanager-0.69.2}/src/general_manager/interface/bundles/request.py +0 -0
- {generalmanager-0.69.1 → generalmanager-0.69.2}/src/general_manager/interface/capabilities/__init__.py +0 -0
- {generalmanager-0.69.1 → generalmanager-0.69.2}/src/general_manager/interface/capabilities/base.py +0 -0
- {generalmanager-0.69.1 → generalmanager-0.69.2}/src/general_manager/interface/capabilities/builtin.py +0 -0
- {generalmanager-0.69.1 → generalmanager-0.69.2}/src/general_manager/interface/capabilities/calculation/__init__.py +0 -0
- {generalmanager-0.69.1 → generalmanager-0.69.2}/src/general_manager/interface/capabilities/calculation/_compat.py +0 -0
- {generalmanager-0.69.1 → generalmanager-0.69.2}/src/general_manager/interface/capabilities/calculation/lifecycle.py +0 -0
- {generalmanager-0.69.1 → generalmanager-0.69.2}/src/general_manager/interface/capabilities/configuration.py +0 -0
- {generalmanager-0.69.1 → generalmanager-0.69.2}/src/general_manager/interface/capabilities/core/observability.py +0 -0
- {generalmanager-0.69.1 → generalmanager-0.69.2}/src/general_manager/interface/capabilities/core/utils.py +0 -0
- {generalmanager-0.69.1 → generalmanager-0.69.2}/src/general_manager/interface/capabilities/exceptions.py +0 -0
- {generalmanager-0.69.1 → generalmanager-0.69.2}/src/general_manager/interface/capabilities/existing_model/__init__.py +0 -0
- {generalmanager-0.69.1 → generalmanager-0.69.2}/src/general_manager/interface/capabilities/existing_model/_compat.py +0 -0
- {generalmanager-0.69.1 → generalmanager-0.69.2}/src/general_manager/interface/capabilities/existing_model/resolution.py +0 -0
- {generalmanager-0.69.1 → generalmanager-0.69.2}/src/general_manager/interface/capabilities/factory.py +0 -0
- {generalmanager-0.69.1 → generalmanager-0.69.2}/src/general_manager/interface/capabilities/orm/__init__.py +0 -0
- {generalmanager-0.69.1 → generalmanager-0.69.2}/src/general_manager/interface/capabilities/orm/_compat.py +0 -0
- {generalmanager-0.69.1 → generalmanager-0.69.2}/src/general_manager/interface/capabilities/orm/history.py +0 -0
- {generalmanager-0.69.1 → generalmanager-0.69.2}/src/general_manager/interface/capabilities/orm/lifecycle.py +0 -0
- {generalmanager-0.69.1 → generalmanager-0.69.2}/src/general_manager/interface/capabilities/orm/mutations.py +0 -0
- {generalmanager-0.69.1 → generalmanager-0.69.2}/src/general_manager/interface/capabilities/orm/support.py +0 -0
- {generalmanager-0.69.1 → generalmanager-0.69.2}/src/general_manager/interface/capabilities/orm_utils/__init__.py +0 -0
- {generalmanager-0.69.1 → generalmanager-0.69.2}/src/general_manager/interface/capabilities/orm_utils/django_manager_utils.py +0 -0
- {generalmanager-0.69.1 → generalmanager-0.69.2}/src/general_manager/interface/capabilities/orm_utils/field_descriptors.py +0 -0
- {generalmanager-0.69.1 → generalmanager-0.69.2}/src/general_manager/interface/capabilities/orm_utils/payload_normalizer.py +0 -0
- {generalmanager-0.69.1 → generalmanager-0.69.2}/src/general_manager/interface/capabilities/read_only/__init__.py +0 -0
- {generalmanager-0.69.1 → generalmanager-0.69.2}/src/general_manager/interface/capabilities/read_only/_compat.py +0 -0
- {generalmanager-0.69.1 → generalmanager-0.69.2}/src/general_manager/interface/capabilities/read_only/_types.py +0 -0
- {generalmanager-0.69.1 → generalmanager-0.69.2}/src/general_manager/interface/capabilities/read_only/lifecycle.py +0 -0
- {generalmanager-0.69.1 → generalmanager-0.69.2}/src/general_manager/interface/capabilities/read_only/management.py +0 -0
- {generalmanager-0.69.1 → generalmanager-0.69.2}/src/general_manager/interface/capabilities/registry.py +0 -0
- {generalmanager-0.69.1 → generalmanager-0.69.2}/src/general_manager/interface/capabilities/remote_manager.py +0 -0
- {generalmanager-0.69.1 → generalmanager-0.69.2}/src/general_manager/interface/capabilities/request/__init__.py +0 -0
- {generalmanager-0.69.1 → generalmanager-0.69.2}/src/general_manager/interface/infrastructure/__init__.py +0 -0
- {generalmanager-0.69.1 → generalmanager-0.69.2}/src/general_manager/interface/infrastructure/startup_hooks.py +0 -0
- {generalmanager-0.69.1 → generalmanager-0.69.2}/src/general_manager/interface/infrastructure/system_checks.py +0 -0
- {generalmanager-0.69.1 → generalmanager-0.69.2}/src/general_manager/interface/interfaces/__init__.py +0 -0
- {generalmanager-0.69.1 → generalmanager-0.69.2}/src/general_manager/interface/interfaces/calculation.py +0 -0
- {generalmanager-0.69.1 → generalmanager-0.69.2}/src/general_manager/interface/interfaces/database.py +0 -0
- {generalmanager-0.69.1 → generalmanager-0.69.2}/src/general_manager/interface/interfaces/existing_model.py +0 -0
- {generalmanager-0.69.1 → generalmanager-0.69.2}/src/general_manager/interface/interfaces/read_only.py +0 -0
- {generalmanager-0.69.1 → generalmanager-0.69.2}/src/general_manager/interface/interfaces/remote_manager.py +0 -0
- {generalmanager-0.69.1 → generalmanager-0.69.2}/src/general_manager/interface/interfaces/request.py +0 -0
- {generalmanager-0.69.1 → generalmanager-0.69.2}/src/general_manager/interface/manifests/__init__.py +0 -0
- {generalmanager-0.69.1 → generalmanager-0.69.2}/src/general_manager/interface/manifests/capability_builder.py +0 -0
- {generalmanager-0.69.1 → generalmanager-0.69.2}/src/general_manager/interface/manifests/capability_manifest.py +0 -0
- {generalmanager-0.69.1 → generalmanager-0.69.2}/src/general_manager/interface/manifests/capability_models.py +0 -0
- {generalmanager-0.69.1 → generalmanager-0.69.2}/src/general_manager/interface/orm_interface.py +0 -0
- {generalmanager-0.69.1 → generalmanager-0.69.2}/src/general_manager/interface/requests.py +0 -0
- {generalmanager-0.69.1 → generalmanager-0.69.2}/src/general_manager/interface/utils/__init__.py +0 -0
- {generalmanager-0.69.1 → generalmanager-0.69.2}/src/general_manager/interface/utils/database_interface_protocols.py +0 -0
- {generalmanager-0.69.1 → generalmanager-0.69.2}/src/general_manager/interface/utils/errors.py +0 -0
- {generalmanager-0.69.1 → generalmanager-0.69.2}/src/general_manager/interface/utils/history.py +0 -0
- {generalmanager-0.69.1 → generalmanager-0.69.2}/src/general_manager/interface/utils/models.py +0 -0
- {generalmanager-0.69.1 → generalmanager-0.69.2}/src/general_manager/logging.py +0 -0
- {generalmanager-0.69.1 → generalmanager-0.69.2}/src/general_manager/management/commands/chat_cleanup.py +0 -0
- {generalmanager-0.69.1 → generalmanager-0.69.2}/src/general_manager/management/commands/cleanup_upload_intents.py +0 -0
- {generalmanager-0.69.1 → generalmanager-0.69.2}/src/general_manager/management/commands/graphql_warmup.py +0 -0
- {generalmanager-0.69.1 → generalmanager-0.69.2}/src/general_manager/management/commands/graphql_warmup_refresh_due.py +0 -0
- {generalmanager-0.69.1 → generalmanager-0.69.2}/src/general_manager/management/commands/search_index.py +0 -0
- {generalmanager-0.69.1 → generalmanager-0.69.2}/src/general_manager/management/commands/search_reconcile.py +0 -0
- {generalmanager-0.69.1 → generalmanager-0.69.2}/src/general_manager/management/commands/seed_manager_landscape.py +0 -0
- {generalmanager-0.69.1 → generalmanager-0.69.2}/src/general_manager/management/commands/shell.py +0 -0
- {generalmanager-0.69.1 → generalmanager-0.69.2}/src/general_manager/management/commands/workflow_drain_outbox.py +0 -0
- {generalmanager-0.69.1 → generalmanager-0.69.2}/src/general_manager/management/commands/workflow_replay_dead_letters.py +0 -0
- {generalmanager-0.69.1 → generalmanager-0.69.2}/src/general_manager/manager/__init__.py +0 -0
- {generalmanager-0.69.1 → generalmanager-0.69.2}/src/general_manager/manager/general_manager.py +0 -0
- {generalmanager-0.69.1 → generalmanager-0.69.2}/src/general_manager/manager/group_manager.py +0 -0
- {generalmanager-0.69.1 → generalmanager-0.69.2}/src/general_manager/manager/input.py +0 -0
- {generalmanager-0.69.1 → generalmanager-0.69.2}/src/general_manager/manager/meta.py +0 -0
- {generalmanager-0.69.1 → generalmanager-0.69.2}/src/general_manager/measurement/__init__.py +0 -0
- {generalmanager-0.69.1 → generalmanager-0.69.2}/src/general_manager/measurement/measurement.py +0 -0
- {generalmanager-0.69.1 → generalmanager-0.69.2}/src/general_manager/measurement/measurement_field.py +0 -0
- {generalmanager-0.69.1 → generalmanager-0.69.2}/src/general_manager/metrics/__init__.py +0 -0
- {generalmanager-0.69.1 → generalmanager-0.69.2}/src/general_manager/metrics/graphql.py +0 -0
- {generalmanager-0.69.1 → generalmanager-0.69.2}/src/general_manager/migrations/0001_initial.py +0 -0
- {generalmanager-0.69.1 → generalmanager-0.69.2}/src/general_manager/migrations/0002_workflow_outbox_scaling_indexes.py +0 -0
- {generalmanager-0.69.1 → generalmanager-0.69.2}/src/general_manager/migrations/0003_workflow_execution_correlation_constraint.py +0 -0
- {generalmanager-0.69.1 → generalmanager-0.69.2}/src/general_manager/migrations/0004_chat_persistence_models.py +0 -0
- {generalmanager-0.69.1 → generalmanager-0.69.2}/src/general_manager/migrations/0004_search_index_state.py +0 -0
- {generalmanager-0.69.1 → generalmanager-0.69.2}/src/general_manager/migrations/0005_merge_chat_search.py +0 -0
- {generalmanager-0.69.1 → generalmanager-0.69.2}/src/general_manager/migrations/0006_chat_pending_confirmation_scoped_ids.py +0 -0
- {generalmanager-0.69.1 → generalmanager-0.69.2}/src/general_manager/migrations/0007_upload_intent.py +0 -0
- {generalmanager-0.69.1 → generalmanager-0.69.2}/src/general_manager/migrations/0008_upload_finalization_versions.py +0 -0
- {generalmanager-0.69.1 → generalmanager-0.69.2}/src/general_manager/migrations/0009_upload_cleanup_state.py +0 -0
- {generalmanager-0.69.1 → generalmanager-0.69.2}/src/general_manager/migrations/0010_chat_pending_confirmation_portable_uniqueness.py +0 -0
- {generalmanager-0.69.1 → generalmanager-0.69.2}/src/general_manager/migrations/0011_search_index_state_dirty_generation.py +0 -0
- {generalmanager-0.69.1 → generalmanager-0.69.2}/src/general_manager/migrations/__init__.py +0 -0
- {generalmanager-0.69.1 → generalmanager-0.69.2}/src/general_manager/models.py +0 -0
- {generalmanager-0.69.1 → generalmanager-0.69.2}/src/general_manager/permission/__init__.py +0 -0
- {generalmanager-0.69.1 → generalmanager-0.69.2}/src/general_manager/permission/audit.py +0 -0
- {generalmanager-0.69.1 → generalmanager-0.69.2}/src/general_manager/permission/base_permission.py +0 -0
- {generalmanager-0.69.1 → generalmanager-0.69.2}/src/general_manager/permission/graphql_capabilities.py +0 -0
- {generalmanager-0.69.1 → generalmanager-0.69.2}/src/general_manager/permission/manager_based_permission.py +0 -0
- {generalmanager-0.69.1 → generalmanager-0.69.2}/src/general_manager/permission/mutation_permission.py +0 -0
- {generalmanager-0.69.1 → generalmanager-0.69.2}/src/general_manager/permission/permission_checks.py +0 -0
- {generalmanager-0.69.1 → generalmanager-0.69.2}/src/general_manager/permission/permission_data_manager.py +0 -0
- {generalmanager-0.69.1 → generalmanager-0.69.2}/src/general_manager/permission/utils.py +0 -0
- {generalmanager-0.69.1 → generalmanager-0.69.2}/src/general_manager/public_api_registry.py +0 -0
- {generalmanager-0.69.1 → generalmanager-0.69.2}/src/general_manager/py.typed +0 -0
- {generalmanager-0.69.1 → generalmanager-0.69.2}/src/general_manager/rule/__init__.py +0 -0
- {generalmanager-0.69.1 → generalmanager-0.69.2}/src/general_manager/rule/handler.py +0 -0
- {generalmanager-0.69.1 → generalmanager-0.69.2}/src/general_manager/rule/rule.py +0 -0
- {generalmanager-0.69.1 → generalmanager-0.69.2}/src/general_manager/search/__init__.py +0 -0
- {generalmanager-0.69.1 → generalmanager-0.69.2}/src/general_manager/search/async_tasks.py +0 -0
- {generalmanager-0.69.1 → generalmanager-0.69.2}/src/general_manager/search/backend.py +0 -0
- {generalmanager-0.69.1 → generalmanager-0.69.2}/src/general_manager/search/backend_registry.py +0 -0
- {generalmanager-0.69.1 → generalmanager-0.69.2}/src/general_manager/search/backends/__init__.py +0 -0
- {generalmanager-0.69.1 → generalmanager-0.69.2}/src/general_manager/search/backends/dev.py +0 -0
- {generalmanager-0.69.1 → generalmanager-0.69.2}/src/general_manager/search/backends/meilisearch.py +0 -0
- {generalmanager-0.69.1 → generalmanager-0.69.2}/src/general_manager/search/backends/opensearch.py +0 -0
- {generalmanager-0.69.1 → generalmanager-0.69.2}/src/general_manager/search/backends/typesense.py +0 -0
- {generalmanager-0.69.1 → generalmanager-0.69.2}/src/general_manager/search/checks.py +0 -0
- {generalmanager-0.69.1 → generalmanager-0.69.2}/src/general_manager/search/config.py +0 -0
- {generalmanager-0.69.1 → generalmanager-0.69.2}/src/general_manager/search/indexer.py +0 -0
- {generalmanager-0.69.1 → generalmanager-0.69.2}/src/general_manager/search/invalidation.py +0 -0
- {generalmanager-0.69.1 → generalmanager-0.69.2}/src/general_manager/search/m2m_invalidation.py +0 -0
- {generalmanager-0.69.1 → generalmanager-0.69.2}/src/general_manager/search/models.py +0 -0
- {generalmanager-0.69.1 → generalmanager-0.69.2}/src/general_manager/search/reconciliation.py +0 -0
- {generalmanager-0.69.1 → generalmanager-0.69.2}/src/general_manager/search/registry.py +0 -0
- {generalmanager-0.69.1 → generalmanager-0.69.2}/src/general_manager/search/tasks.py +0 -0
- {generalmanager-0.69.1 → generalmanager-0.69.2}/src/general_manager/search/utils.py +0 -0
- {generalmanager-0.69.1 → generalmanager-0.69.2}/src/general_manager/seeding/__init__.py +0 -0
- {generalmanager-0.69.1 → generalmanager-0.69.2}/src/general_manager/seeding/manager_landscape.py +0 -0
- {generalmanager-0.69.1 → generalmanager-0.69.2}/src/general_manager/uploads/__init__.py +0 -0
- {generalmanager-0.69.1 → generalmanager-0.69.2}/src/general_manager/uploads/adapters.py +0 -0
- {generalmanager-0.69.1 → generalmanager-0.69.2}/src/general_manager/uploads/checks.py +0 -0
- {generalmanager-0.69.1 → generalmanager-0.69.2}/src/general_manager/uploads/config.py +0 -0
- {generalmanager-0.69.1 → generalmanager-0.69.2}/src/general_manager/uploads/errors.py +0 -0
- {generalmanager-0.69.1 → generalmanager-0.69.2}/src/general_manager/uploads/finalization.py +0 -0
- {generalmanager-0.69.1 → generalmanager-0.69.2}/src/general_manager/uploads/graphql.py +0 -0
- {generalmanager-0.69.1 → generalmanager-0.69.2}/src/general_manager/uploads/graphql_types.py +0 -0
- {generalmanager-0.69.1 → generalmanager-0.69.2}/src/general_manager/uploads/metrics.py +0 -0
- {generalmanager-0.69.1 → generalmanager-0.69.2}/src/general_manager/uploads/models.py +0 -0
- {generalmanager-0.69.1 → generalmanager-0.69.2}/src/general_manager/uploads/public.py +0 -0
- {generalmanager-0.69.1 → generalmanager-0.69.2}/src/general_manager/uploads/s3.py +0 -0
- {generalmanager-0.69.1 → generalmanager-0.69.2}/src/general_manager/uploads/services.py +0 -0
- {generalmanager-0.69.1 → generalmanager-0.69.2}/src/general_manager/uploads/tokens.py +0 -0
- {generalmanager-0.69.1 → generalmanager-0.69.2}/src/general_manager/uploads/types.py +0 -0
- {generalmanager-0.69.1 → generalmanager-0.69.2}/src/general_manager/uploads/urls.py +0 -0
- {generalmanager-0.69.1 → generalmanager-0.69.2}/src/general_manager/uploads/views.py +0 -0
- {generalmanager-0.69.1 → generalmanager-0.69.2}/src/general_manager/utils/__init__.py +0 -0
- {generalmanager-0.69.1 → generalmanager-0.69.2}/src/general_manager/utils/args_to_kwargs.py +0 -0
- {generalmanager-0.69.1 → generalmanager-0.69.2}/src/general_manager/utils/filter_parser.py +0 -0
- {generalmanager-0.69.1 → generalmanager-0.69.2}/src/general_manager/utils/format_string.py +0 -0
- {generalmanager-0.69.1 → generalmanager-0.69.2}/src/general_manager/utils/json_encoder.py +0 -0
- {generalmanager-0.69.1 → generalmanager-0.69.2}/src/general_manager/utils/make_cache_key.py +0 -0
- {generalmanager-0.69.1 → generalmanager-0.69.2}/src/general_manager/utils/none_to_zero.py +0 -0
- {generalmanager-0.69.1 → generalmanager-0.69.2}/src/general_manager/utils/path_mapping.py +0 -0
- {generalmanager-0.69.1 → generalmanager-0.69.2}/src/general_manager/utils/public_api.py +0 -0
- {generalmanager-0.69.1 → generalmanager-0.69.2}/src/general_manager/utils/testing.py +0 -0
- {generalmanager-0.69.1 → generalmanager-0.69.2}/src/general_manager/utils/type_checks.py +0 -0
- {generalmanager-0.69.1 → generalmanager-0.69.2}/src/general_manager/workflow/__init__.py +0 -0
- {generalmanager-0.69.1 → generalmanager-0.69.2}/src/general_manager/workflow/actions.py +0 -0
- {generalmanager-0.69.1 → generalmanager-0.69.2}/src/general_manager/workflow/backend_registry.py +0 -0
- {generalmanager-0.69.1 → generalmanager-0.69.2}/src/general_manager/workflow/backends/__init__.py +0 -0
- {generalmanager-0.69.1 → generalmanager-0.69.2}/src/general_manager/workflow/backends/celery.py +0 -0
- {generalmanager-0.69.1 → generalmanager-0.69.2}/src/general_manager/workflow/backends/local.py +0 -0
- {generalmanager-0.69.1 → generalmanager-0.69.2}/src/general_manager/workflow/backends/n8n.py +0 -0
- {generalmanager-0.69.1 → generalmanager-0.69.2}/src/general_manager/workflow/config.py +0 -0
- {generalmanager-0.69.1 → generalmanager-0.69.2}/src/general_manager/workflow/engine.py +0 -0
- {generalmanager-0.69.1 → generalmanager-0.69.2}/src/general_manager/workflow/event_registry.py +0 -0
- {generalmanager-0.69.1 → generalmanager-0.69.2}/src/general_manager/workflow/events.py +0 -0
- {generalmanager-0.69.1 → generalmanager-0.69.2}/src/general_manager/workflow/models.py +0 -0
- {generalmanager-0.69.1 → generalmanager-0.69.2}/src/general_manager/workflow/signal_bridge.py +0 -0
- {generalmanager-0.69.1 → generalmanager-0.69.2}/src/general_manager/workflow/tasks.py +0 -0
- {generalmanager-0.69.1 → generalmanager-0.69.2}/src/general_manager/workflow/telemetry.py +0 -0
- {generalmanager-0.69.1 → generalmanager-0.69.2}/tests/test_settings.py +0 -0
- {generalmanager-0.69.1 → generalmanager-0.69.2}/tests/test_urls.py +0 -0
- {generalmanager-0.69.1 → generalmanager-0.69.2}/tests/testing_asgi.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: GeneralManager
|
|
3
|
-
Version: 0.69.
|
|
3
|
+
Version: 0.69.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.69.
|
|
7
|
+
version = "0.69.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.69.
|
|
3
|
+
Version: 0.69.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
|
|
@@ -113,7 +113,9 @@ class CalculationRunContext:
|
|
|
113
113
|
self._run_cache_touch_count = 0
|
|
114
114
|
self._run_cache_touch_thread_id: int | None = None
|
|
115
115
|
max_bytes = resolve_run_context_cache_max_bytes()
|
|
116
|
+
self._run_cache_mode_generation = -1
|
|
116
117
|
self._run_cache_budget_enabled = max_bytes is not None
|
|
118
|
+
self._run_cache_recency_enabled = False
|
|
117
119
|
run_context_cache_budget.register(
|
|
118
120
|
self,
|
|
119
121
|
max_bytes,
|
|
@@ -129,11 +131,20 @@ class CalculationRunContext:
|
|
|
129
131
|
if key not in self._dependency_cache_pending_publications:
|
|
130
132
|
yield "dependency_hits", key, hit
|
|
131
133
|
|
|
132
|
-
def
|
|
133
|
-
|
|
134
|
+
def _set_run_cache_modes(
|
|
135
|
+
self,
|
|
136
|
+
budget_enabled: bool,
|
|
137
|
+
recency_enabled: bool,
|
|
138
|
+
generation: int,
|
|
139
|
+
) -> None:
|
|
140
|
+
"""Refresh owner hints after a generated coordinator transition."""
|
|
134
141
|
with self._run_cache_touch_lock:
|
|
135
|
-
self.
|
|
136
|
-
|
|
142
|
+
if generation < self._run_cache_mode_generation:
|
|
143
|
+
return
|
|
144
|
+
self._run_cache_mode_generation = generation
|
|
145
|
+
self._run_cache_budget_enabled = budget_enabled
|
|
146
|
+
self._run_cache_recency_enabled = recency_enabled
|
|
147
|
+
if not budget_enabled or not recency_enabled:
|
|
137
148
|
self._pending_run_cache_touches.clear()
|
|
138
149
|
self._last_pending_run_cache_touch = None
|
|
139
150
|
self._run_cache_touch_count = 0
|
|
@@ -209,7 +220,10 @@ class CalculationRunContext:
|
|
|
209
220
|
) -> None:
|
|
210
221
|
pending_key = (namespace, key)
|
|
211
222
|
with self._run_cache_touch_lock:
|
|
212
|
-
if
|
|
223
|
+
if (
|
|
224
|
+
not self._run_cache_budget_enabled
|
|
225
|
+
or not self._run_cache_recency_enabled
|
|
226
|
+
):
|
|
213
227
|
return
|
|
214
228
|
if pending_key != self._last_pending_run_cache_touch:
|
|
215
229
|
self._pending_run_cache_touches.pop(pending_key, None)
|
|
@@ -223,11 +237,16 @@ class CalculationRunContext:
|
|
|
223
237
|
) -> bool:
|
|
224
238
|
touch_immediately = False
|
|
225
239
|
touches_to_flush: tuple[PendingRunCacheTouch, ...] = ()
|
|
240
|
+
mode_generation = -1
|
|
226
241
|
with self._run_cache_touch_lock:
|
|
227
|
-
if
|
|
242
|
+
if (
|
|
243
|
+
not self._run_cache_budget_enabled
|
|
244
|
+
or not self._run_cache_recency_enabled
|
|
245
|
+
):
|
|
228
246
|
return False
|
|
229
247
|
if self._run_cache_touch_thread_id != get_ident():
|
|
230
248
|
touch_immediately = True
|
|
249
|
+
mode_generation = self._run_cache_mode_generation
|
|
231
250
|
elif pending_key != self._last_pending_run_cache_touch:
|
|
232
251
|
return False
|
|
233
252
|
else:
|
|
@@ -235,11 +254,21 @@ class CalculationRunContext:
|
|
|
235
254
|
if count < RUN_CONTEXT_TOUCH_BATCH_SIZE:
|
|
236
255
|
self._run_cache_touch_count = count
|
|
237
256
|
return True
|
|
238
|
-
touches_to_flush =
|
|
257
|
+
touches_to_flush, mode_generation = (
|
|
258
|
+
self._take_run_cache_touches_locked()
|
|
259
|
+
)
|
|
239
260
|
if touch_immediately:
|
|
240
|
-
run_context_cache_budget.touch(
|
|
261
|
+
run_context_cache_budget.touch(
|
|
262
|
+
self,
|
|
263
|
+
*pending_key,
|
|
264
|
+
mode_generation=mode_generation,
|
|
265
|
+
)
|
|
241
266
|
return True
|
|
242
|
-
run_context_cache_budget.touch_many(
|
|
267
|
+
run_context_cache_budget.touch_many(
|
|
268
|
+
self,
|
|
269
|
+
touches_to_flush,
|
|
270
|
+
mode_generation=mode_generation,
|
|
271
|
+
)
|
|
243
272
|
return True
|
|
244
273
|
|
|
245
274
|
def _touch_run_cache_entry(
|
|
@@ -262,12 +291,13 @@ class CalculationRunContext:
|
|
|
262
291
|
|
|
263
292
|
def _take_run_cache_touches_locked(
|
|
264
293
|
self,
|
|
265
|
-
) -> tuple[PendingRunCacheTouch, ...]:
|
|
294
|
+
) -> tuple[tuple[PendingRunCacheTouch, ...], int]:
|
|
266
295
|
touches = tuple(self._pending_run_cache_touches)
|
|
296
|
+
mode_generation = self._run_cache_mode_generation
|
|
267
297
|
self._pending_run_cache_touches.clear()
|
|
268
298
|
self._last_pending_run_cache_touch = None
|
|
269
299
|
self._run_cache_touch_count = 0
|
|
270
|
-
return touches
|
|
300
|
+
return touches, mode_generation
|
|
271
301
|
|
|
272
302
|
def _flush_run_cache_touches(self) -> None:
|
|
273
303
|
with self._run_cache_touch_lock:
|
|
@@ -275,8 +305,12 @@ class CalculationRunContext:
|
|
|
275
305
|
self._last_pending_run_cache_touch = None
|
|
276
306
|
self._run_cache_touch_count = 0
|
|
277
307
|
return
|
|
278
|
-
touches = self._take_run_cache_touches_locked()
|
|
279
|
-
run_context_cache_budget.touch_many(
|
|
308
|
+
touches, mode_generation = self._take_run_cache_touches_locked()
|
|
309
|
+
run_context_cache_budget.touch_many(
|
|
310
|
+
self,
|
|
311
|
+
touches,
|
|
312
|
+
mode_generation=mode_generation,
|
|
313
|
+
)
|
|
280
314
|
|
|
281
315
|
@staticmethod
|
|
282
316
|
def _scoped_key(key: Hashable) -> Hashable:
|
|
@@ -296,6 +330,7 @@ class CalculationRunContext:
|
|
|
296
330
|
self._run_cache_touch_count = 0
|
|
297
331
|
self._run_cache_touch_thread_id = get_ident()
|
|
298
332
|
self._run_cache_budget_enabled = max_bytes is not None
|
|
333
|
+
self._run_cache_recency_enabled = False
|
|
299
334
|
run_context_cache_budget.register(
|
|
300
335
|
self,
|
|
301
336
|
max_bytes,
|
|
@@ -373,7 +408,8 @@ class CalculationRunContext:
|
|
|
373
408
|
value = loader()
|
|
374
409
|
self._store_run_value(scoped_key, value)
|
|
375
410
|
return value
|
|
376
|
-
self.
|
|
411
|
+
if self._run_cache_recency_enabled:
|
|
412
|
+
self._touch_run_cache_entry("values", scoped_key)
|
|
377
413
|
return cast(T, value)
|
|
378
414
|
|
|
379
415
|
def get(self, key: Hashable, default: object = None) -> object:
|
|
@@ -383,7 +419,8 @@ class CalculationRunContext:
|
|
|
383
419
|
value = self._values[scoped_key]
|
|
384
420
|
except KeyError:
|
|
385
421
|
return default
|
|
386
|
-
self.
|
|
422
|
+
if self._run_cache_recency_enabled:
|
|
423
|
+
self._touch_run_cache_entry("values", scoped_key)
|
|
387
424
|
return value
|
|
388
425
|
|
|
389
426
|
def set(self, key: Hashable, value: object) -> None:
|
|
@@ -414,7 +451,10 @@ class CalculationRunContext:
|
|
|
414
451
|
hit = self._dependency_cache_hits[key]
|
|
415
452
|
except KeyError:
|
|
416
453
|
return default
|
|
417
|
-
if
|
|
454
|
+
if (
|
|
455
|
+
self._run_cache_recency_enabled
|
|
456
|
+
and key not in self._dependency_cache_pending_publications
|
|
457
|
+
):
|
|
418
458
|
self._touch_run_cache_entry("dependency_hits", key)
|
|
419
459
|
return hit
|
|
420
460
|
|
|
@@ -838,7 +878,8 @@ class CalculationRunContext:
|
|
|
838
878
|
scoped_key = self._scoped_key(key)
|
|
839
879
|
if scoped_key not in self._values:
|
|
840
880
|
return False
|
|
841
|
-
self.
|
|
881
|
+
if self._run_cache_recency_enabled:
|
|
882
|
+
self._touch_run_cache_entry("values", scoped_key)
|
|
842
883
|
return True
|
|
843
884
|
|
|
844
885
|
def __contains__(self, key: Hashable) -> bool:
|