GeneralManager 0.82.3__tar.gz → 0.82.4__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.82.3/src/GeneralManager.egg-info → generalmanager-0.82.4}/PKG-INFO +1 -1
- {generalmanager-0.82.3 → generalmanager-0.82.4}/pyproject.toml +1 -1
- {generalmanager-0.82.3 → generalmanager-0.82.4/src/GeneralManager.egg-info}/PKG-INFO +1 -1
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/api/graphql.py +7 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/api/graphql_output.py +44 -1
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/api/graphql_type.py +8 -1
- {generalmanager-0.82.3 → generalmanager-0.82.4}/LICENSE +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/README.md +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/setup.cfg +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/GeneralManager.egg-info/SOURCES.txt +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/GeneralManager.egg-info/dependency_links.txt +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/GeneralManager.egg-info/requires.txt +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/GeneralManager.egg-info/top_level.txt +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/__init__.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/_types/__init__.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/_types/api.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/_types/bucket.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/_types/cache.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/_types/dataframes.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/_types/factory.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/_types/general_manager.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/_types/interface.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/_types/manager.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/_types/measurement.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/_types/permission.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/_types/rule.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/_types/search.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/_types/utils.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/api/__init__.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/api/graphql_as_of.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/api/graphql_errors.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/api/graphql_groups.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/api/graphql_identifiers.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/api/graphql_mutations.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/api/graphql_ordering.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/api/graphql_prefetch.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/api/graphql_relations.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/api/graphql_resolvers.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/api/graphql_search.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/api/graphql_subscription_consumer.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/api/graphql_subscriptions.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/api/graphql_view.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/api/graphql_warmup.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/api/graphql_warmup_registry.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/api/graphql_warmup_tasks.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/api/mutation.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/api/notification_batching.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/api/property.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/api/registry.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/api/remote_api.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/api/remote_invalidation.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/api/remote_invalidation_client.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/apps.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/as_of.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/bootstrap.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/bucket/__init__.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/bucket/_materialized_bucket.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/bucket/_ordering.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/bucket/base_bucket.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/bucket/calculation_bucket.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/bucket/database_bucket.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/bucket/excel_bucket.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/bucket/group_bucket.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/bucket/indexing.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/bucket/projection.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/bucket/request_bucket.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/cache/__init__.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/cache/_dependency_graph.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/cache/batch_refresh.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/cache/cache_decorator.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/cache/cache_tracker.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/cache/data_change_context.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/cache/dependency_cache.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/cache/dependency_index.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/cache/dependency_matching.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/cache/dependency_publish.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/cache/dependency_shards.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/cache/model_dependency_collector.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/cache/run_context.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/cache/run_context_lru.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/cache/signals.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/cache/transaction_barrier.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/chat/__init__.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/chat/audit.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/chat/bootstrap.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/chat/checks.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/chat/consumer.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/chat/context.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/chat/errors.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/chat/evals/__init__.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/chat/evals/__main__.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/chat/evals/baseline.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/chat/evals/datasets/basic_queries.yaml +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/chat/evals/datasets/demo_readiness.yaml +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/chat/evals/datasets/edge_cases.yaml +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/chat/evals/datasets/follow_ups.yaml +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/chat/evals/datasets/large_schema.yaml +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/chat/evals/datasets/multi_hop.yaml +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/chat/evals/datasets/planned_orchestration.yaml +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/chat/evals/diagnostics.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/chat/evals/fingerprints.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/chat/evals/fixtures.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/chat/evals/judges/__init__.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/chat/evals/judges/answer_quality.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/chat/evals/judges/contract.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/chat/evals/judges/result_accuracy.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/chat/evals/judges/tool_sequence.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/chat/evals/readiness.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/chat/evals/runner.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/chat/evals/traces.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/chat/grounding.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/chat/models.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/chat/planned/__init__.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/chat/planned/budget.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/chat/planned/calculations.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/chat/planned/catalog.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/chat/planned/config.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/chat/planned/events.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/chat/planned/evidence.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/chat/planned/models.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/chat/planned/planner.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/chat/planned/provider_calls.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/chat/planned/resolver.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/chat/planned/routing.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/chat/planned/scheduler.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/chat/planned/synthesis.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/chat/planned/validation.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/chat/providers/__init__.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/chat/providers/_shared.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/chat/providers/anthropic.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/chat/providers/base.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/chat/providers/google.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/chat/providers/ollama.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/chat/providers/openai.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/chat/rate_limits.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/chat/routing.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/chat/schema_index.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/chat/settings.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/chat/signals.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/chat/system_prompt.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/chat/tool_metadata.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/chat/tools.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/chat/turns.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/chat/views.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/conf.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/dataframes/__init__.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/dataframes/measurements.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/factory/__init__.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/factory/auto_factory.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/factory/factories.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/factory/factory_methods.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/interface/__init__.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/interface/base_interface.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/interface/bundles/__init__.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/interface/bundles/calculation.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/interface/bundles/database.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/interface/bundles/excel.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/interface/bundles/remote_manager.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/interface/bundles/request.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/interface/capabilities/__init__.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/interface/capabilities/base.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/interface/capabilities/builtin.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/interface/capabilities/calculation/__init__.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/interface/capabilities/calculation/_compat.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/interface/capabilities/calculation/input_resolution.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/interface/capabilities/calculation/lifecycle.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/interface/capabilities/configuration.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/interface/capabilities/core/observability.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/interface/capabilities/core/utils.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/interface/capabilities/excel/__init__.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/interface/capabilities/exceptions.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/interface/capabilities/existing_model/__init__.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/interface/capabilities/existing_model/_compat.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/interface/capabilities/existing_model/resolution.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/interface/capabilities/factory.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/interface/capabilities/orm/__init__.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/interface/capabilities/orm/_compat.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/interface/capabilities/orm/bulk.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/interface/capabilities/orm/create_many.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/interface/capabilities/orm/history.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/interface/capabilities/orm/lifecycle.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/interface/capabilities/orm/mutations.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/interface/capabilities/orm/support.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/interface/capabilities/orm_utils/__init__.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/interface/capabilities/orm_utils/django_manager_utils.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/interface/capabilities/orm_utils/field_descriptors.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/interface/capabilities/orm_utils/payload_normalizer.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/interface/capabilities/orm_utils/update_state.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/interface/capabilities/read_only/__init__.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/interface/capabilities/read_only/_compat.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/interface/capabilities/read_only/_types.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/interface/capabilities/read_only/lifecycle.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/interface/capabilities/read_only/management.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/interface/capabilities/registry.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/interface/capabilities/remote_manager.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/interface/capabilities/request/__init__.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/interface/excel.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/interface/excel_store.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/interface/excel_workbook.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/interface/infrastructure/__init__.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/interface/infrastructure/startup_hooks.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/interface/infrastructure/system_checks.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/interface/interfaces/__init__.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/interface/interfaces/calculation.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/interface/interfaces/database.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/interface/interfaces/excel.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/interface/interfaces/existing_model.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/interface/interfaces/read_only.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/interface/interfaces/remote_manager.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/interface/interfaces/request.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/interface/manifests/__init__.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/interface/manifests/capability_builder.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/interface/manifests/capability_manifest.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/interface/manifests/capability_models.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/interface/orm_interface.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/interface/requests.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/interface/utils/__init__.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/interface/utils/database_interface_protocols.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/interface/utils/errors.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/interface/utils/history.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/interface/utils/models.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/logging.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/management/commands/chat_cleanup.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/management/commands/cleanup_upload_intents.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/management/commands/graphql_warmup.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/management/commands/graphql_warmup_refresh_due.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/management/commands/search_index.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/management/commands/search_reconcile.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/management/commands/seed_manager_landscape.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/management/commands/shell.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/management/commands/workflow_drain_outbox.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/management/commands/workflow_replay_dead_letters.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/manager/__init__.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/manager/bulk_create.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/manager/general_manager.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/manager/group_manager.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/manager/input.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/manager/meta.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/measurement/__init__.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/measurement/measurement.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/measurement/measurement_field.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/metrics/__init__.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/metrics/graphql.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/migrations/0001_initial.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/migrations/0002_workflow_outbox_scaling_indexes.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/migrations/0003_workflow_execution_correlation_constraint.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/migrations/0004_chat_persistence_models.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/migrations/0004_search_index_state.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/migrations/0005_merge_chat_search.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/migrations/0006_chat_pending_confirmation_scoped_ids.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/migrations/0007_upload_intent.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/migrations/0008_upload_finalization_versions.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/migrations/0009_upload_cleanup_state.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/migrations/0010_chat_pending_confirmation_portable_uniqueness.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/migrations/0011_search_index_state_dirty_generation.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/migrations/0012_chat_context_watermarks.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/migrations/__init__.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/models.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/permission/__init__.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/permission/audit.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/permission/base_permission.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/permission/graphql_capabilities.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/permission/manager_based_permission.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/permission/mutation_permission.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/permission/permission_checks.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/permission/permission_data_manager.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/permission/utils.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/public_api_registry.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/py.typed +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/rule/__init__.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/rule/handler.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/rule/rule.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/search/__init__.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/search/async_tasks.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/search/backend.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/search/backend_registry.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/search/backends/__init__.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/search/backends/dev.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/search/backends/meilisearch.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/search/backends/opensearch.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/search/backends/typesense.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/search/checks.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/search/config.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/search/indexer.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/search/invalidation.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/search/m2m_invalidation.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/search/models.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/search/reconciliation.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/search/registry.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/search/tasks.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/search/utils.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/seeding/__init__.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/seeding/manager_landscape.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/uploads/__init__.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/uploads/adapters.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/uploads/checks.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/uploads/config.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/uploads/errors.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/uploads/finalization.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/uploads/graphql.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/uploads/graphql_types.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/uploads/metrics.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/uploads/models.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/uploads/public.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/uploads/s3.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/uploads/services.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/uploads/tokens.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/uploads/types.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/uploads/urls.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/uploads/views.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/utils/__init__.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/utils/_args_to_kwargs.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/utils/_cache_key_encoder.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/utils/_make_cache_key.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/utils/_none_to_zero.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/utils/filter_parser.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/utils/format_string.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/utils/json_encoder.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/utils/path_mapping.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/utils/public_api.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/utils/testing.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/utils/type_checks.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/workflow/__init__.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/workflow/actions.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/workflow/backend_registry.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/workflow/backends/__init__.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/workflow/backends/celery.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/workflow/backends/local.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/workflow/backends/n8n.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/workflow/config.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/workflow/engine.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/workflow/event_registry.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/workflow/events.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/workflow/models.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/workflow/signal_bridge.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/workflow/tasks.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/workflow/telemetry.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/tests/test_settings.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/tests/test_urls.py +0 -0
- {generalmanager-0.82.3 → generalmanager-0.82.4}/tests/testing_asgi.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: GeneralManager
|
|
3
|
-
Version: 0.82.
|
|
3
|
+
Version: 0.82.4
|
|
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.82.
|
|
7
|
+
version = "0.82.4"
|
|
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.82.
|
|
3
|
+
Version: 0.82.4
|
|
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
|
|
@@ -100,6 +100,7 @@ from general_manager.api.graphql_mutations import (
|
|
|
100
100
|
generate_delete_mutation_class as _generate_delete_mutation_class_fn,
|
|
101
101
|
)
|
|
102
102
|
from general_manager.api.graphql_output import (
|
|
103
|
+
GraphQLOutputIdentityMetadataError,
|
|
103
104
|
create_output_field_resolver,
|
|
104
105
|
map_graphql_output_annotation,
|
|
105
106
|
resolve_output_type_hints,
|
|
@@ -518,6 +519,11 @@ class GraphQL:
|
|
|
518
519
|
)
|
|
519
520
|
fields: dict[str, graphene.Field] = {}
|
|
520
521
|
for declared_field in dataclasses.fields(output_class):
|
|
522
|
+
is_identifier = declared_field.metadata.get("is_identifier", False)
|
|
523
|
+
if not isinstance(is_identifier, bool):
|
|
524
|
+
raise GraphQLOutputIdentityMetadataError(
|
|
525
|
+
output_name, declared_field.name, is_identifier
|
|
526
|
+
)
|
|
521
527
|
mapped = map_graphql_output_annotation(
|
|
522
528
|
hints[declared_field.name],
|
|
523
529
|
owner_name=output_name,
|
|
@@ -528,6 +534,7 @@ class GraphQL:
|
|
|
528
534
|
output_type_registry=cls.graphql_output_type_registry,
|
|
529
535
|
measurement_type=MeasurementType,
|
|
530
536
|
scalar_mapper=cls._map_field_to_graphene_base_type,
|
|
537
|
+
is_identifier=is_identifier,
|
|
531
538
|
)
|
|
532
539
|
field = cast(graphene.Field, mapped.field)
|
|
533
540
|
field.resolver = create_output_field_resolver(
|
|
@@ -9,6 +9,7 @@ from decimal import Decimal
|
|
|
9
9
|
import sys
|
|
10
10
|
from types import UnionType
|
|
11
11
|
from typing import Any, ForwardRef, Union, get_args, get_origin, get_type_hints
|
|
12
|
+
from uuid import UUID
|
|
12
13
|
|
|
13
14
|
import graphene
|
|
14
15
|
|
|
@@ -40,6 +41,16 @@ class GraphQLOutputAnnotationError(TypeError):
|
|
|
40
41
|
)
|
|
41
42
|
|
|
42
43
|
|
|
44
|
+
class GraphQLOutputIdentityMetadataError(TypeError):
|
|
45
|
+
"""Raised when an output field's identity flag is not boolean."""
|
|
46
|
+
|
|
47
|
+
def __init__(self, owner_name: str, field_name: str, flag: object) -> None:
|
|
48
|
+
super().__init__(
|
|
49
|
+
f"Invalid is_identifier metadata for {owner_name}.{field_name}: "
|
|
50
|
+
f"expected bool, got {flag!r}"
|
|
51
|
+
)
|
|
52
|
+
|
|
53
|
+
|
|
43
54
|
@dataclass(frozen=True, slots=True)
|
|
44
55
|
class _MappedAnnotation:
|
|
45
56
|
"""Internal Graphene type metadata before a field wrapper is mounted."""
|
|
@@ -144,6 +155,7 @@ def _map_collection_annotation(
|
|
|
144
155
|
output_type_registry: Mapping[str, type[graphene.ObjectType]],
|
|
145
156
|
measurement_type: type[graphene.ObjectType],
|
|
146
157
|
scalar_mapper: Callable[[type], type],
|
|
158
|
+
is_identifier: bool = False,
|
|
147
159
|
) -> _MappedAnnotation:
|
|
148
160
|
origin = get_origin(annotation)
|
|
149
161
|
if origin not in (list, tuple, set):
|
|
@@ -159,6 +171,13 @@ def _map_collection_annotation(
|
|
|
159
171
|
raise _annotation_error(owner_name, field_name, annotation)
|
|
160
172
|
element_annotation = args[0]
|
|
161
173
|
|
|
174
|
+
if is_identifier:
|
|
175
|
+
_, identity_type = _unwrap_optional_annotation(
|
|
176
|
+
element_annotation, owner_name=owner_name, field_name=field_name
|
|
177
|
+
)
|
|
178
|
+
if identity_type not in (int, str, UUID):
|
|
179
|
+
raise _annotation_error(owner_name, field_name, annotation)
|
|
180
|
+
|
|
162
181
|
element = _map_annotation(
|
|
163
182
|
element_annotation,
|
|
164
183
|
owner_name=owner_name,
|
|
@@ -169,6 +188,7 @@ def _map_collection_annotation(
|
|
|
169
188
|
output_type_registry=output_type_registry,
|
|
170
189
|
measurement_type=measurement_type,
|
|
171
190
|
scalar_mapper=scalar_mapper,
|
|
191
|
+
is_identifier=is_identifier,
|
|
172
192
|
)
|
|
173
193
|
element_type = element.graphene_type
|
|
174
194
|
if not element.nullable:
|
|
@@ -192,6 +212,7 @@ def _map_non_optional_value(
|
|
|
192
212
|
output_type_registry: Mapping[str, type[graphene.ObjectType]],
|
|
193
213
|
measurement_type: type[graphene.ObjectType],
|
|
194
214
|
scalar_mapper: Callable[[type], type],
|
|
215
|
+
is_identifier: bool = False,
|
|
195
216
|
) -> _MappedAnnotation:
|
|
196
217
|
annotation = _resolve_registered_name(
|
|
197
218
|
annotation,
|
|
@@ -220,6 +241,17 @@ def _map_non_optional_value(
|
|
|
220
241
|
output_type_registry=output_type_registry,
|
|
221
242
|
measurement_type=measurement_type,
|
|
222
243
|
scalar_mapper=scalar_mapper,
|
|
244
|
+
is_identifier=is_identifier,
|
|
245
|
+
)
|
|
246
|
+
|
|
247
|
+
if is_identifier:
|
|
248
|
+
if annotation not in (int, str, UUID):
|
|
249
|
+
raise _annotation_error(owner_name, field_name, annotation)
|
|
250
|
+
return _MappedAnnotation(
|
|
251
|
+
graphene.ID,
|
|
252
|
+
annotation,
|
|
253
|
+
nullable=False,
|
|
254
|
+
contains_measurement=False,
|
|
223
255
|
)
|
|
224
256
|
|
|
225
257
|
if safe_issubclass(annotation, GraphQLType):
|
|
@@ -290,6 +322,7 @@ def _map_annotation(
|
|
|
290
322
|
output_type_registry: Mapping[str, type[graphene.ObjectType]],
|
|
291
323
|
measurement_type: type[graphene.ObjectType],
|
|
292
324
|
scalar_mapper: Callable[[type], type],
|
|
325
|
+
is_identifier: bool = False,
|
|
293
326
|
) -> _MappedAnnotation:
|
|
294
327
|
nullable, concrete = _unwrap_optional_annotation(
|
|
295
328
|
annotation,
|
|
@@ -306,6 +339,7 @@ def _map_annotation(
|
|
|
306
339
|
output_type_registry=output_type_registry,
|
|
307
340
|
measurement_type=measurement_type,
|
|
308
341
|
scalar_mapper=scalar_mapper,
|
|
342
|
+
is_identifier=is_identifier,
|
|
309
343
|
)
|
|
310
344
|
return replace(mapped, nullable=nullable)
|
|
311
345
|
|
|
@@ -322,6 +356,7 @@ def _map_non_optional_annotation(
|
|
|
322
356
|
measurement_type: type[graphene.ObjectType],
|
|
323
357
|
scalar_mapper: Callable[[type], type],
|
|
324
358
|
required: bool,
|
|
359
|
+
is_identifier: bool = False,
|
|
325
360
|
) -> MappedGraphQLOutput:
|
|
326
361
|
"""Map one non-optional annotation to a Graphene field."""
|
|
327
362
|
mapped = _map_non_optional_value(
|
|
@@ -334,6 +369,7 @@ def _map_non_optional_annotation(
|
|
|
334
369
|
output_type_registry=output_type_registry,
|
|
335
370
|
measurement_type=measurement_type,
|
|
336
371
|
scalar_mapper=scalar_mapper,
|
|
372
|
+
is_identifier=is_identifier,
|
|
337
373
|
)
|
|
338
374
|
field_kwargs: dict[str, object] = {}
|
|
339
375
|
if mapped.contains_measurement:
|
|
@@ -355,8 +391,14 @@ def map_graphql_output_annotation(
|
|
|
355
391
|
output_type_registry: Mapping[str, type[graphene.ObjectType]],
|
|
356
392
|
measurement_type: type[graphene.ObjectType],
|
|
357
393
|
scalar_mapper: Callable[[type], type],
|
|
394
|
+
is_identifier: bool = False,
|
|
358
395
|
) -> MappedGraphQLOutput:
|
|
359
|
-
"""Map a strict
|
|
396
|
+
"""Map a strict output hint, preserving nullability and native values.
|
|
397
|
+
|
|
398
|
+
Explicit identity fields accept int, str, UUID, and supported flat
|
|
399
|
+
collections of those types. Their resolver type stays native while the
|
|
400
|
+
generated scalar is ID. Unmarked fields retain the strict legacy mapping.
|
|
401
|
+
"""
|
|
360
402
|
nullable, concrete_type = _unwrap_optional_annotation(
|
|
361
403
|
annotation,
|
|
362
404
|
owner_name=owner_name,
|
|
@@ -374,6 +416,7 @@ def map_graphql_output_annotation(
|
|
|
374
416
|
measurement_type=measurement_type,
|
|
375
417
|
scalar_mapper=scalar_mapper,
|
|
376
418
|
required=not nullable,
|
|
419
|
+
is_identifier=is_identifier,
|
|
377
420
|
)
|
|
378
421
|
except GraphQLOutputAnnotationError as error:
|
|
379
422
|
# Preserve the annotation written on the owning field in diagnostics,
|
|
@@ -29,7 +29,14 @@ class GraphQLTypeMeta(type):
|
|
|
29
29
|
|
|
30
30
|
|
|
31
31
|
class GraphQLType(metaclass=GraphQLTypeMeta):
|
|
32
|
-
"""Frozen annotated value exposed only as a GraphQL output object.
|
|
32
|
+
"""Frozen annotated value exposed only as a GraphQL output object.
|
|
33
|
+
|
|
34
|
+
Use ``dataclasses.field(metadata={"is_identifier": True})`` to declare
|
|
35
|
+
native int, str, or UUID identity fields and their supported homogeneous
|
|
36
|
+
collections. Schema generation preserves annotation nullability and native
|
|
37
|
+
values while exposing ID scalars. Missing or false metadata keeps existing
|
|
38
|
+
output types; other flag values fail schema generation with TypeError.
|
|
39
|
+
"""
|
|
33
40
|
|
|
34
41
|
|
|
35
42
|
def get_registered_graphql_types() -> tuple[type[GraphQLType], ...]:
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{generalmanager-0.82.3 → generalmanager-0.82.4}/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.82.3 → generalmanager-0.82.4}/src/general_manager/_types/general_manager.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/api/graphql_identifiers.py
RENAMED
|
File without changes
|
{generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/api/graphql_mutations.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/api/graphql_relations.py
RENAMED
|
File without changes
|
{generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/api/graphql_resolvers.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/api/graphql_subscriptions.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/api/graphql_warmup_registry.py
RENAMED
|
File without changes
|
{generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/api/graphql_warmup_tasks.py
RENAMED
|
File without changes
|
|
File without changes
|
{generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/api/notification_batching.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{generalmanager-0.82.3 → generalmanager-0.82.4}/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.82.3 → generalmanager-0.82.4}/src/general_manager/bucket/_materialized_bucket.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/bucket/calculation_bucket.py
RENAMED
|
File without changes
|
{generalmanager-0.82.3 → generalmanager-0.82.4}/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.82.3 → generalmanager-0.82.4}/src/general_manager/bucket/request_bucket.py
RENAMED
|
File without changes
|
|
File without changes
|
{generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/cache/_dependency_graph.py
RENAMED
|
File without changes
|
|
File without changes
|
{generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/cache/cache_decorator.py
RENAMED
|
File without changes
|
|
File without changes
|
{generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/cache/data_change_context.py
RENAMED
|
File without changes
|
{generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/cache/dependency_cache.py
RENAMED
|
File without changes
|
{generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/cache/dependency_index.py
RENAMED
|
File without changes
|
{generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/cache/dependency_matching.py
RENAMED
|
File without changes
|
{generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/cache/dependency_publish.py
RENAMED
|
File without changes
|
{generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/cache/dependency_shards.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/cache/run_context_lru.py
RENAMED
|
File without changes
|
|
File without changes
|
{generalmanager-0.82.3 → generalmanager-0.82.4}/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
|
{generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/chat/evals/diagnostics.py
RENAMED
|
File without changes
|
{generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/chat/evals/fingerprints.py
RENAMED
|
File without changes
|
|
File without changes
|
{generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/chat/evals/judges/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{generalmanager-0.82.3 → generalmanager-0.82.4}/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.82.3 → generalmanager-0.82.4}/src/general_manager/chat/planned/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/chat/planned/calculations.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/chat/planned/evidence.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/chat/planned/provider_calls.py
RENAMED
|
File without changes
|
{generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/chat/planned/resolver.py
RENAMED
|
File without changes
|
|
File without changes
|
{generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/chat/planned/scheduler.py
RENAMED
|
File without changes
|
{generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/chat/planned/synthesis.py
RENAMED
|
File without changes
|
{generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/chat/planned/validation.py
RENAMED
|
File without changes
|
{generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/chat/providers/__init__.py
RENAMED
|
File without changes
|
{generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/chat/providers/_shared.py
RENAMED
|
File without changes
|
{generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/chat/providers/anthropic.py
RENAMED
|
File without changes
|
|
File without changes
|
{generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/chat/providers/google.py
RENAMED
|
File without changes
|
{generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/chat/providers/ollama.py
RENAMED
|
File without changes
|
{generalmanager-0.82.3 → generalmanager-0.82.4}/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
|
|
File without changes
|
{generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/dataframes/measurements.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/factory/factory_methods.py
RENAMED
|
File without changes
|
|
File without changes
|
{generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/interface/base_interface.py
RENAMED
|
File without changes
|
{generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/interface/bundles/__init__.py
RENAMED
|
File without changes
|
{generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/interface/bundles/calculation.py
RENAMED
|
File without changes
|
{generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/interface/bundles/database.py
RENAMED
|
File without changes
|
{generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/interface/bundles/excel.py
RENAMED
|
File without changes
|
|
File without changes
|
{generalmanager-0.82.3 → generalmanager-0.82.4}/src/general_manager/interface/bundles/request.py
RENAMED
|
File without changes
|