GeneralManager 0.64.1__tar.gz → 0.64.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.64.1/src/GeneralManager.egg-info → generalmanager-0.64.2}/PKG-INFO +1 -1
- {generalmanager-0.64.1 → generalmanager-0.64.2}/pyproject.toml +1 -1
- {generalmanager-0.64.1 → generalmanager-0.64.2/src/GeneralManager.egg-info}/PKG-INFO +1 -1
- generalmanager-0.64.2/src/general_manager/api/graphql_relations.py +180 -0
- {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/rule/rule.py +7 -2
- generalmanager-0.64.1/src/general_manager/api/graphql_relations.py +0 -72
- {generalmanager-0.64.1 → generalmanager-0.64.2}/LICENSE +0 -0
- {generalmanager-0.64.1 → generalmanager-0.64.2}/README.md +0 -0
- {generalmanager-0.64.1 → generalmanager-0.64.2}/setup.cfg +0 -0
- {generalmanager-0.64.1 → generalmanager-0.64.2}/src/GeneralManager.egg-info/SOURCES.txt +0 -0
- {generalmanager-0.64.1 → generalmanager-0.64.2}/src/GeneralManager.egg-info/dependency_links.txt +0 -0
- {generalmanager-0.64.1 → generalmanager-0.64.2}/src/GeneralManager.egg-info/requires.txt +0 -0
- {generalmanager-0.64.1 → generalmanager-0.64.2}/src/GeneralManager.egg-info/top_level.txt +0 -0
- {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/__init__.py +0 -0
- {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/_types/__init__.py +0 -0
- {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/_types/api.py +0 -0
- {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/_types/bucket.py +0 -0
- {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/_types/cache.py +0 -0
- {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/_types/dataframes.py +0 -0
- {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/_types/factory.py +0 -0
- {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/_types/general_manager.py +0 -0
- {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/_types/interface.py +0 -0
- {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/_types/manager.py +0 -0
- {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/_types/measurement.py +0 -0
- {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/_types/permission.py +0 -0
- {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/_types/rule.py +0 -0
- {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/_types/search.py +0 -0
- {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/_types/utils.py +0 -0
- {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/api/__init__.py +0 -0
- {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/api/graphql.py +0 -0
- {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/api/graphql_errors.py +0 -0
- {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/api/graphql_mutations.py +0 -0
- {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/api/graphql_prefetch.py +0 -0
- {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/api/graphql_resolvers.py +0 -0
- {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/api/graphql_search.py +0 -0
- {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/api/graphql_subscription_consumer.py +0 -0
- {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/api/graphql_subscriptions.py +0 -0
- {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/api/graphql_view.py +0 -0
- {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/api/graphql_warmup.py +0 -0
- {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/api/graphql_warmup_registry.py +0 -0
- {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/api/graphql_warmup_tasks.py +0 -0
- {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/api/mutation.py +0 -0
- {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/api/notification_batching.py +0 -0
- {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/api/property.py +0 -0
- {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/api/registry.py +0 -0
- {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/api/remote_api.py +0 -0
- {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/api/remote_invalidation.py +0 -0
- {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/api/remote_invalidation_client.py +0 -0
- {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/apps.py +0 -0
- {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/bootstrap.py +0 -0
- {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/bucket/__init__.py +0 -0
- {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/bucket/base_bucket.py +0 -0
- {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/bucket/calculation_bucket.py +0 -0
- {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/bucket/database_bucket.py +0 -0
- {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/bucket/group_bucket.py +0 -0
- {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/bucket/indexing.py +0 -0
- {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/bucket/request_bucket.py +0 -0
- {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/cache/__init__.py +0 -0
- {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/cache/cache_decorator.py +0 -0
- {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/cache/cache_tracker.py +0 -0
- {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/cache/dependency_cache.py +0 -0
- {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/cache/dependency_index.py +0 -0
- {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/cache/dependency_matching.py +0 -0
- {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/cache/dependency_publish.py +0 -0
- {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/cache/dependency_shards.py +0 -0
- {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/cache/model_dependency_collector.py +0 -0
- {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/cache/run_context.py +0 -0
- {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/cache/signals.py +0 -0
- {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/chat/__init__.py +0 -0
- {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/chat/audit.py +0 -0
- {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/chat/bootstrap.py +0 -0
- {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/chat/checks.py +0 -0
- {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/chat/consumer.py +0 -0
- {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/chat/errors.py +0 -0
- {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/chat/evals/__init__.py +0 -0
- {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/chat/evals/__main__.py +0 -0
- {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/chat/evals/baseline.py +0 -0
- {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/chat/evals/datasets/basic_queries.yaml +0 -0
- {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/chat/evals/datasets/demo_readiness.yaml +0 -0
- {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/chat/evals/datasets/edge_cases.yaml +0 -0
- {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/chat/evals/datasets/follow_ups.yaml +0 -0
- {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/chat/evals/datasets/large_schema.yaml +0 -0
- {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/chat/evals/datasets/multi_hop.yaml +0 -0
- {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/chat/evals/diagnostics.py +0 -0
- {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/chat/evals/fingerprints.py +0 -0
- {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/chat/evals/fixtures.py +0 -0
- {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/chat/evals/judges/__init__.py +0 -0
- {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/chat/evals/judges/answer_quality.py +0 -0
- {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/chat/evals/judges/contract.py +0 -0
- {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/chat/evals/judges/result_accuracy.py +0 -0
- {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/chat/evals/judges/tool_sequence.py +0 -0
- {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/chat/evals/readiness.py +0 -0
- {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/chat/evals/runner.py +0 -0
- {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/chat/evals/traces.py +0 -0
- {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/chat/grounding.py +0 -0
- {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/chat/models.py +0 -0
- {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/chat/providers/__init__.py +0 -0
- {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/chat/providers/_shared.py +0 -0
- {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/chat/providers/anthropic.py +0 -0
- {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/chat/providers/base.py +0 -0
- {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/chat/providers/google.py +0 -0
- {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/chat/providers/ollama.py +0 -0
- {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/chat/providers/openai.py +0 -0
- {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/chat/rate_limits.py +0 -0
- {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/chat/routing.py +0 -0
- {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/chat/schema_index.py +0 -0
- {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/chat/settings.py +0 -0
- {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/chat/signals.py +0 -0
- {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/chat/system_prompt.py +0 -0
- {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/chat/tool_metadata.py +0 -0
- {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/chat/tools.py +0 -0
- {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/chat/views.py +0 -0
- {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/conf.py +0 -0
- {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/dataframes/__init__.py +0 -0
- {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/dataframes/measurements.py +0 -0
- {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/factory/__init__.py +0 -0
- {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/factory/auto_factory.py +0 -0
- {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/factory/factories.py +0 -0
- {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/factory/factory_methods.py +0 -0
- {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/interface/__init__.py +0 -0
- {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/interface/base_interface.py +0 -0
- {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/interface/bundles/__init__.py +0 -0
- {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/interface/bundles/calculation.py +0 -0
- {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/interface/bundles/database.py +0 -0
- {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/interface/bundles/remote_manager.py +0 -0
- {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/interface/bundles/request.py +0 -0
- {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/interface/capabilities/__init__.py +0 -0
- {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/interface/capabilities/base.py +0 -0
- {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/interface/capabilities/builtin.py +0 -0
- {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/interface/capabilities/calculation/__init__.py +0 -0
- {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/interface/capabilities/calculation/_compat.py +0 -0
- {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/interface/capabilities/calculation/lifecycle.py +0 -0
- {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/interface/capabilities/configuration.py +0 -0
- {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/interface/capabilities/core/observability.py +0 -0
- {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/interface/capabilities/core/utils.py +0 -0
- {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/interface/capabilities/exceptions.py +0 -0
- {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/interface/capabilities/existing_model/__init__.py +0 -0
- {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/interface/capabilities/existing_model/_compat.py +0 -0
- {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/interface/capabilities/existing_model/resolution.py +0 -0
- {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/interface/capabilities/factory.py +0 -0
- {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/interface/capabilities/orm/__init__.py +0 -0
- {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/interface/capabilities/orm/_compat.py +0 -0
- {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/interface/capabilities/orm/history.py +0 -0
- {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/interface/capabilities/orm/lifecycle.py +0 -0
- {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/interface/capabilities/orm/mutations.py +0 -0
- {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/interface/capabilities/orm/support.py +0 -0
- {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/interface/capabilities/orm_utils/__init__.py +0 -0
- {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/interface/capabilities/orm_utils/django_manager_utils.py +0 -0
- {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/interface/capabilities/orm_utils/field_descriptors.py +0 -0
- {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/interface/capabilities/orm_utils/payload_normalizer.py +0 -0
- {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/interface/capabilities/read_only/__init__.py +0 -0
- {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/interface/capabilities/read_only/_compat.py +0 -0
- {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/interface/capabilities/read_only/_types.py +0 -0
- {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/interface/capabilities/read_only/lifecycle.py +0 -0
- {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/interface/capabilities/read_only/management.py +0 -0
- {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/interface/capabilities/registry.py +0 -0
- {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/interface/capabilities/remote_manager.py +0 -0
- {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/interface/capabilities/request/__init__.py +0 -0
- {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/interface/infrastructure/__init__.py +0 -0
- {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/interface/infrastructure/startup_hooks.py +0 -0
- {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/interface/infrastructure/system_checks.py +0 -0
- {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/interface/interfaces/__init__.py +0 -0
- {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/interface/interfaces/calculation.py +0 -0
- {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/interface/interfaces/database.py +0 -0
- {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/interface/interfaces/existing_model.py +0 -0
- {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/interface/interfaces/read_only.py +0 -0
- {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/interface/interfaces/remote_manager.py +0 -0
- {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/interface/interfaces/request.py +0 -0
- {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/interface/manifests/__init__.py +0 -0
- {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/interface/manifests/capability_builder.py +0 -0
- {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/interface/manifests/capability_manifest.py +0 -0
- {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/interface/manifests/capability_models.py +0 -0
- {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/interface/orm_interface.py +0 -0
- {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/interface/requests.py +0 -0
- {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/interface/utils/__init__.py +0 -0
- {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/interface/utils/database_interface_protocols.py +0 -0
- {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/interface/utils/errors.py +0 -0
- {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/interface/utils/history.py +0 -0
- {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/interface/utils/models.py +0 -0
- {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/logging.py +0 -0
- {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/management/commands/chat_cleanup.py +0 -0
- {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/management/commands/cleanup_upload_intents.py +0 -0
- {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/management/commands/graphql_warmup.py +0 -0
- {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/management/commands/graphql_warmup_refresh_due.py +0 -0
- {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/management/commands/search_index.py +0 -0
- {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/management/commands/search_reconcile.py +0 -0
- {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/management/commands/seed_manager_landscape.py +0 -0
- {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/management/commands/shell.py +0 -0
- {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/management/commands/workflow_drain_outbox.py +0 -0
- {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/management/commands/workflow_replay_dead_letters.py +0 -0
- {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/manager/__init__.py +0 -0
- {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/manager/general_manager.py +0 -0
- {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/manager/group_manager.py +0 -0
- {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/manager/input.py +0 -0
- {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/manager/meta.py +0 -0
- {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/measurement/__init__.py +0 -0
- {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/measurement/measurement.py +0 -0
- {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/measurement/measurement_field.py +0 -0
- {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/metrics/__init__.py +0 -0
- {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/metrics/graphql.py +0 -0
- {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/migrations/0001_initial.py +0 -0
- {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/migrations/0002_workflow_outbox_scaling_indexes.py +0 -0
- {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/migrations/0003_workflow_execution_correlation_constraint.py +0 -0
- {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/migrations/0004_chat_persistence_models.py +0 -0
- {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/migrations/0004_search_index_state.py +0 -0
- {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/migrations/0005_merge_chat_search.py +0 -0
- {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/migrations/0006_chat_pending_confirmation_scoped_ids.py +0 -0
- {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/migrations/0007_upload_intent.py +0 -0
- {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/migrations/0008_upload_finalization_versions.py +0 -0
- {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/migrations/0009_upload_cleanup_state.py +0 -0
- {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/migrations/__init__.py +0 -0
- {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/models.py +0 -0
- {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/permission/__init__.py +0 -0
- {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/permission/audit.py +0 -0
- {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/permission/base_permission.py +0 -0
- {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/permission/graphql_capabilities.py +0 -0
- {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/permission/manager_based_permission.py +0 -0
- {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/permission/mutation_permission.py +0 -0
- {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/permission/permission_checks.py +0 -0
- {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/permission/permission_data_manager.py +0 -0
- {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/permission/utils.py +0 -0
- {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/public_api_registry.py +0 -0
- {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/py.typed +0 -0
- {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/rule/__init__.py +0 -0
- {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/rule/handler.py +0 -0
- {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/search/__init__.py +0 -0
- {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/search/async_tasks.py +0 -0
- {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/search/backend.py +0 -0
- {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/search/backend_registry.py +0 -0
- {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/search/backends/__init__.py +0 -0
- {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/search/backends/dev.py +0 -0
- {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/search/backends/meilisearch.py +0 -0
- {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/search/backends/opensearch.py +0 -0
- {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/search/backends/typesense.py +0 -0
- {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/search/config.py +0 -0
- {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/search/indexer.py +0 -0
- {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/search/models.py +0 -0
- {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/search/reconciliation.py +0 -0
- {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/search/registry.py +0 -0
- {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/search/tasks.py +0 -0
- {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/search/utils.py +0 -0
- {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/seeding/__init__.py +0 -0
- {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/seeding/manager_landscape.py +0 -0
- {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/uploads/__init__.py +0 -0
- {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/uploads/adapters.py +0 -0
- {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/uploads/checks.py +0 -0
- {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/uploads/config.py +0 -0
- {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/uploads/errors.py +0 -0
- {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/uploads/finalization.py +0 -0
- {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/uploads/graphql.py +0 -0
- {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/uploads/graphql_types.py +0 -0
- {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/uploads/metrics.py +0 -0
- {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/uploads/models.py +0 -0
- {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/uploads/public.py +0 -0
- {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/uploads/s3.py +0 -0
- {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/uploads/services.py +0 -0
- {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/uploads/tokens.py +0 -0
- {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/uploads/types.py +0 -0
- {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/uploads/urls.py +0 -0
- {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/uploads/views.py +0 -0
- {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/utils/__init__.py +0 -0
- {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/utils/args_to_kwargs.py +0 -0
- {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/utils/filter_parser.py +0 -0
- {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/utils/format_string.py +0 -0
- {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/utils/json_encoder.py +0 -0
- {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/utils/make_cache_key.py +0 -0
- {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/utils/none_to_zero.py +0 -0
- {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/utils/path_mapping.py +0 -0
- {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/utils/public_api.py +0 -0
- {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/utils/testing.py +0 -0
- {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/utils/type_checks.py +0 -0
- {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/workflow/__init__.py +0 -0
- {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/workflow/actions.py +0 -0
- {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/workflow/backend_registry.py +0 -0
- {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/workflow/backends/__init__.py +0 -0
- {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/workflow/backends/celery.py +0 -0
- {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/workflow/backends/local.py +0 -0
- {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/workflow/backends/n8n.py +0 -0
- {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/workflow/config.py +0 -0
- {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/workflow/engine.py +0 -0
- {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/workflow/event_registry.py +0 -0
- {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/workflow/events.py +0 -0
- {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/workflow/models.py +0 -0
- {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/workflow/signal_bridge.py +0 -0
- {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/workflow/tasks.py +0 -0
- {generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/workflow/telemetry.py +0 -0
- {generalmanager-0.64.1 → generalmanager-0.64.2}/tests/test_settings.py +0 -0
- {generalmanager-0.64.1 → generalmanager-0.64.2}/tests/test_urls.py +0 -0
- {generalmanager-0.64.1 → generalmanager-0.64.2}/tests/testing_asgi.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: GeneralManager
|
|
3
|
-
Version: 0.64.
|
|
3
|
+
Version: 0.64.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.64.
|
|
7
|
+
version = "0.64.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.64.
|
|
3
|
+
Version: 0.64.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
|
|
@@ -0,0 +1,180 @@
|
|
|
1
|
+
"""Resolve manager targets from GraphQL relation annotations."""
|
|
2
|
+
|
|
3
|
+
from __future__ import annotations
|
|
4
|
+
|
|
5
|
+
import ast
|
|
6
|
+
from collections.abc import Mapping
|
|
7
|
+
from types import UnionType
|
|
8
|
+
from typing import ForwardRef, Union, get_args, get_origin
|
|
9
|
+
|
|
10
|
+
from general_manager.bucket.base_bucket import Bucket
|
|
11
|
+
from general_manager.manager.general_manager import GeneralManager
|
|
12
|
+
from general_manager.utils.type_checks import safe_issubclass
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
def get_graphql_manager_registry() -> dict[str, type[GeneralManager]]:
|
|
16
|
+
"""Return the live GraphQL manager registry without an import-time cycle."""
|
|
17
|
+
from general_manager.api.graphql import GraphQL
|
|
18
|
+
|
|
19
|
+
return GraphQL.manager_registry
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
def resolve_general_manager_type(
|
|
23
|
+
declared_type: object,
|
|
24
|
+
manager_registry: Mapping[str, type[GeneralManager]] | None = None,
|
|
25
|
+
) -> type[GeneralManager] | None:
|
|
26
|
+
"""Return the single manager target represented by ``declared_type``.
|
|
27
|
+
|
|
28
|
+
Concrete manager classes, interface model classes carrying a manager
|
|
29
|
+
back-reference, supported collection annotations, optional unions, and
|
|
30
|
+
postponed string forms of those annotations are recognized. Ambiguous
|
|
31
|
+
annotations containing multiple manager targets return ``None``.
|
|
32
|
+
"""
|
|
33
|
+
registry = manager_registry or {}
|
|
34
|
+
resolved = _collect_general_manager_types(declared_type, registry, set())
|
|
35
|
+
if len(resolved) != 1:
|
|
36
|
+
return None
|
|
37
|
+
return next(iter(resolved))
|
|
38
|
+
|
|
39
|
+
|
|
40
|
+
def _collect_general_manager_types(
|
|
41
|
+
declared_type: object,
|
|
42
|
+
manager_registry: Mapping[str, type[GeneralManager]],
|
|
43
|
+
seen: set[int],
|
|
44
|
+
) -> set[type[GeneralManager]]:
|
|
45
|
+
value_id = id(declared_type)
|
|
46
|
+
if value_id in seen:
|
|
47
|
+
return set()
|
|
48
|
+
seen.add(value_id)
|
|
49
|
+
|
|
50
|
+
if safe_issubclass(declared_type, GeneralManager):
|
|
51
|
+
return {declared_type}
|
|
52
|
+
|
|
53
|
+
related_manager_type = getattr(declared_type, "_general_manager_class", None)
|
|
54
|
+
if safe_issubclass(related_manager_type, GeneralManager):
|
|
55
|
+
return {related_manager_type}
|
|
56
|
+
|
|
57
|
+
if isinstance(declared_type, ForwardRef):
|
|
58
|
+
declared_type = declared_type.__forward_arg__
|
|
59
|
+
if isinstance(declared_type, str):
|
|
60
|
+
manager_type = manager_registry.get(declared_type)
|
|
61
|
+
if manager_type is not None:
|
|
62
|
+
return {manager_type}
|
|
63
|
+
return _collect_string_general_manager_types(
|
|
64
|
+
declared_type,
|
|
65
|
+
manager_registry,
|
|
66
|
+
set(),
|
|
67
|
+
)
|
|
68
|
+
|
|
69
|
+
origin = get_origin(declared_type)
|
|
70
|
+
if origin is None:
|
|
71
|
+
return set()
|
|
72
|
+
if origin not in {list, tuple, set, Union, UnionType} and not safe_issubclass(
|
|
73
|
+
origin, Bucket
|
|
74
|
+
):
|
|
75
|
+
return set()
|
|
76
|
+
|
|
77
|
+
manager_types: set[type[GeneralManager]] = set()
|
|
78
|
+
for argument in get_args(declared_type):
|
|
79
|
+
if argument is None or argument is type(None) or argument is Ellipsis:
|
|
80
|
+
continue
|
|
81
|
+
manager_types.update(
|
|
82
|
+
_collect_general_manager_types(argument, manager_registry, seen)
|
|
83
|
+
)
|
|
84
|
+
return manager_types
|
|
85
|
+
|
|
86
|
+
|
|
87
|
+
_SUPPORTED_STRING_WRAPPERS = {
|
|
88
|
+
"Bucket",
|
|
89
|
+
"List",
|
|
90
|
+
"Optional",
|
|
91
|
+
"Set",
|
|
92
|
+
"Tuple",
|
|
93
|
+
"Union",
|
|
94
|
+
"list",
|
|
95
|
+
"set",
|
|
96
|
+
"tuple",
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
|
|
100
|
+
def _collect_string_general_manager_types(
|
|
101
|
+
annotation: str,
|
|
102
|
+
manager_registry: Mapping[str, type[GeneralManager]],
|
|
103
|
+
seen: set[str],
|
|
104
|
+
) -> set[type[GeneralManager]]:
|
|
105
|
+
expression = annotation.strip()
|
|
106
|
+
if not expression or expression in seen:
|
|
107
|
+
return set()
|
|
108
|
+
seen.add(expression)
|
|
109
|
+
|
|
110
|
+
try:
|
|
111
|
+
node = ast.parse(expression, mode="eval").body
|
|
112
|
+
except (SyntaxError, ValueError):
|
|
113
|
+
return set()
|
|
114
|
+
return _collect_annotation_node_manager_types(node, manager_registry, seen)
|
|
115
|
+
|
|
116
|
+
|
|
117
|
+
def _collect_annotation_node_manager_types(
|
|
118
|
+
node: ast.expr,
|
|
119
|
+
manager_registry: Mapping[str, type[GeneralManager]],
|
|
120
|
+
seen: set[str],
|
|
121
|
+
) -> set[type[GeneralManager]]:
|
|
122
|
+
if isinstance(node, ast.Name):
|
|
123
|
+
manager_type = manager_registry.get(node.id)
|
|
124
|
+
return {manager_type} if manager_type is not None else set()
|
|
125
|
+
|
|
126
|
+
if isinstance(node, ast.Constant):
|
|
127
|
+
if isinstance(node.value, str):
|
|
128
|
+
return _collect_string_general_manager_types(
|
|
129
|
+
node.value,
|
|
130
|
+
manager_registry,
|
|
131
|
+
seen,
|
|
132
|
+
)
|
|
133
|
+
return set()
|
|
134
|
+
|
|
135
|
+
if isinstance(node, ast.Subscript):
|
|
136
|
+
wrapper_name = _annotation_node_name(node.value)
|
|
137
|
+
if wrapper_name is None or wrapper_name.rsplit(".", 1)[-1] not in (
|
|
138
|
+
_SUPPORTED_STRING_WRAPPERS
|
|
139
|
+
):
|
|
140
|
+
return set()
|
|
141
|
+
return _collect_annotation_node_manager_types(
|
|
142
|
+
node.slice,
|
|
143
|
+
manager_registry,
|
|
144
|
+
seen,
|
|
145
|
+
)
|
|
146
|
+
|
|
147
|
+
if isinstance(node, ast.BinOp) and isinstance(node.op, ast.BitOr):
|
|
148
|
+
return _collect_annotation_node_manager_types(
|
|
149
|
+
node.left,
|
|
150
|
+
manager_registry,
|
|
151
|
+
seen,
|
|
152
|
+
) | _collect_annotation_node_manager_types(
|
|
153
|
+
node.right,
|
|
154
|
+
manager_registry,
|
|
155
|
+
seen,
|
|
156
|
+
)
|
|
157
|
+
|
|
158
|
+
if isinstance(node, ast.Tuple):
|
|
159
|
+
manager_types: set[type[GeneralManager]] = set()
|
|
160
|
+
for element in node.elts:
|
|
161
|
+
manager_types.update(
|
|
162
|
+
_collect_annotation_node_manager_types(
|
|
163
|
+
element,
|
|
164
|
+
manager_registry,
|
|
165
|
+
seen,
|
|
166
|
+
)
|
|
167
|
+
)
|
|
168
|
+
return manager_types
|
|
169
|
+
|
|
170
|
+
return set()
|
|
171
|
+
|
|
172
|
+
|
|
173
|
+
def _annotation_node_name(node: ast.expr) -> str | None:
|
|
174
|
+
if isinstance(node, ast.Name):
|
|
175
|
+
return node.id
|
|
176
|
+
if isinstance(node, ast.Attribute):
|
|
177
|
+
parent_name = _annotation_node_name(node.value)
|
|
178
|
+
if parent_name is not None:
|
|
179
|
+
return f"{parent_name}.{node.attr}"
|
|
180
|
+
return None
|
|
@@ -311,10 +311,15 @@ class Rule(Generic[GeneralManagerType]):
|
|
|
311
311
|
Returns:
|
|
312
312
|
dict[str, str] | None: Mapping keyed by referenced variables or
|
|
313
313
|
Django's `NON_FIELD_ERRORS` fallback when no variables are available;
|
|
314
|
-
`None` if the predicate passed or
|
|
314
|
+
`None` if the predicate passed, was skipped, or has not been evaluated.
|
|
315
315
|
|
|
316
316
|
Raises:
|
|
317
|
-
|
|
317
|
+
MissingErrorTemplateVariableError: If a failed rule's custom message
|
|
318
|
+
omits a placeholder for a referenced variable.
|
|
319
|
+
ErrorMessageGenerationError: If internal evaluation state records a
|
|
320
|
+
failed result without retaining its evaluated input.
|
|
321
|
+
Exception: A matching rule handler's documented message-generation
|
|
322
|
+
exceptions propagate unchanged.
|
|
318
323
|
"""
|
|
319
324
|
if self._last_result or self._last_result is None:
|
|
320
325
|
return None
|
|
@@ -1,72 +0,0 @@
|
|
|
1
|
-
"""Resolve manager targets from GraphQL relation annotations."""
|
|
2
|
-
|
|
3
|
-
from __future__ import annotations
|
|
4
|
-
|
|
5
|
-
from collections.abc import Mapping
|
|
6
|
-
from types import UnionType
|
|
7
|
-
from typing import ForwardRef, Union, get_args, get_origin
|
|
8
|
-
|
|
9
|
-
from general_manager.bucket.base_bucket import Bucket
|
|
10
|
-
from general_manager.manager.general_manager import GeneralManager
|
|
11
|
-
from general_manager.utils.type_checks import safe_issubclass
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
def get_graphql_manager_registry() -> dict[str, type[GeneralManager]]:
|
|
15
|
-
"""Return the live GraphQL manager registry without an import-time cycle."""
|
|
16
|
-
from general_manager.api.graphql import GraphQL
|
|
17
|
-
|
|
18
|
-
return GraphQL.manager_registry
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
def resolve_general_manager_type(
|
|
22
|
-
declared_type: object,
|
|
23
|
-
manager_registry: Mapping[str, type[GeneralManager]] | None = None,
|
|
24
|
-
) -> type[GeneralManager] | None:
|
|
25
|
-
"""Return the single manager target represented by ``declared_type``.
|
|
26
|
-
|
|
27
|
-
Concrete manager classes, supported collection annotations, optional
|
|
28
|
-
unions, and exact names in ``manager_registry`` are recognized. Ambiguous
|
|
29
|
-
annotations containing multiple manager targets return ``None``.
|
|
30
|
-
"""
|
|
31
|
-
registry = manager_registry or {}
|
|
32
|
-
resolved = _collect_general_manager_types(declared_type, registry, set())
|
|
33
|
-
if len(resolved) != 1:
|
|
34
|
-
return None
|
|
35
|
-
return next(iter(resolved))
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
def _collect_general_manager_types(
|
|
39
|
-
declared_type: object,
|
|
40
|
-
manager_registry: Mapping[str, type[GeneralManager]],
|
|
41
|
-
seen: set[int],
|
|
42
|
-
) -> set[type[GeneralManager]]:
|
|
43
|
-
value_id = id(declared_type)
|
|
44
|
-
if value_id in seen:
|
|
45
|
-
return set()
|
|
46
|
-
seen.add(value_id)
|
|
47
|
-
|
|
48
|
-
if safe_issubclass(declared_type, GeneralManager):
|
|
49
|
-
return {declared_type}
|
|
50
|
-
|
|
51
|
-
if isinstance(declared_type, ForwardRef):
|
|
52
|
-
declared_type = declared_type.__forward_arg__
|
|
53
|
-
if isinstance(declared_type, str):
|
|
54
|
-
manager_type = manager_registry.get(declared_type)
|
|
55
|
-
return {manager_type} if manager_type is not None else set()
|
|
56
|
-
|
|
57
|
-
origin = get_origin(declared_type)
|
|
58
|
-
if origin is None:
|
|
59
|
-
return set()
|
|
60
|
-
if origin not in {list, tuple, set, Union, UnionType} and not safe_issubclass(
|
|
61
|
-
origin, Bucket
|
|
62
|
-
):
|
|
63
|
-
return set()
|
|
64
|
-
|
|
65
|
-
manager_types: set[type[GeneralManager]] = set()
|
|
66
|
-
for argument in get_args(declared_type):
|
|
67
|
-
if argument is None or argument is type(None) or argument is Ellipsis:
|
|
68
|
-
continue
|
|
69
|
-
manager_types.update(
|
|
70
|
-
_collect_general_manager_types(argument, manager_registry, seen)
|
|
71
|
-
)
|
|
72
|
-
return manager_types
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{generalmanager-0.64.1 → generalmanager-0.64.2}/src/GeneralManager.egg-info/dependency_links.txt
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/_types/general_manager.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/api/graphql_mutations.py
RENAMED
|
File without changes
|
|
File without changes
|
{generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/api/graphql_resolvers.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/api/graphql_subscriptions.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/api/graphql_warmup_registry.py
RENAMED
|
File without changes
|
{generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/api/graphql_warmup_tasks.py
RENAMED
|
File without changes
|
|
File without changes
|
{generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/api/notification_batching.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/api/remote_invalidation.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/bucket/calculation_bucket.py
RENAMED
|
File without changes
|
{generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/bucket/database_bucket.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/bucket/request_bucket.py
RENAMED
|
File without changes
|
|
File without changes
|
{generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/cache/cache_decorator.py
RENAMED
|
File without changes
|
|
File without changes
|
{generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/cache/dependency_cache.py
RENAMED
|
File without changes
|
{generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/cache/dependency_index.py
RENAMED
|
File without changes
|
{generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/cache/dependency_matching.py
RENAMED
|
File without changes
|
{generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/cache/dependency_publish.py
RENAMED
|
File without changes
|
{generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/cache/dependency_shards.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.64.1 → generalmanager-0.64.2}/src/general_manager/chat/evals/diagnostics.py
RENAMED
|
File without changes
|
{generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/chat/evals/fingerprints.py
RENAMED
|
File without changes
|
|
File without changes
|
{generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/chat/evals/judges/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/chat/evals/judges/contract.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
|
{generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/chat/providers/__init__.py
RENAMED
|
File without changes
|
{generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/chat/providers/_shared.py
RENAMED
|
File without changes
|
{generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/chat/providers/anthropic.py
RENAMED
|
File without changes
|
|
File without changes
|
{generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/chat/providers/google.py
RENAMED
|
File without changes
|
{generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/chat/providers/ollama.py
RENAMED
|
File without changes
|
{generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/chat/providers/openai.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/dataframes/measurements.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/factory/factory_methods.py
RENAMED
|
File without changes
|
|
File without changes
|
{generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/interface/base_interface.py
RENAMED
|
File without changes
|
{generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/interface/bundles/__init__.py
RENAMED
|
File without changes
|
{generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/interface/bundles/calculation.py
RENAMED
|
File without changes
|
{generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/interface/bundles/database.py
RENAMED
|
File without changes
|
|
File without changes
|
{generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/interface/bundles/request.py
RENAMED
|
File without changes
|
|
File without changes
|
{generalmanager-0.64.1 → generalmanager-0.64.2}/src/general_manager/interface/capabilities/base.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|