GeneralManager 0.82.1__tar.gz → 0.82.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.82.1/src/GeneralManager.egg-info → generalmanager-0.82.2}/PKG-INFO +1 -1
- {generalmanager-0.82.1 → generalmanager-0.82.2}/pyproject.toml +1 -1
- {generalmanager-0.82.1 → generalmanager-0.82.2/src/GeneralManager.egg-info}/PKG-INFO +1 -1
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/api/graphql.py +18 -1
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/api/graphql_identifiers.py +43 -1
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/api/graphql_search.py +10 -1
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/api/property.py +18 -1
- {generalmanager-0.82.1 → generalmanager-0.82.2}/LICENSE +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/README.md +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/setup.cfg +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/GeneralManager.egg-info/SOURCES.txt +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/GeneralManager.egg-info/dependency_links.txt +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/GeneralManager.egg-info/requires.txt +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/GeneralManager.egg-info/top_level.txt +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/__init__.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/_types/__init__.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/_types/api.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/_types/bucket.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/_types/cache.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/_types/dataframes.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/_types/factory.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/_types/general_manager.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/_types/interface.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/_types/manager.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/_types/measurement.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/_types/permission.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/_types/rule.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/_types/search.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/_types/utils.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/api/__init__.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/api/graphql_as_of.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/api/graphql_errors.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/api/graphql_groups.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/api/graphql_mutations.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/api/graphql_ordering.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/api/graphql_output.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/api/graphql_prefetch.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/api/graphql_relations.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/api/graphql_resolvers.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/api/graphql_subscription_consumer.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/api/graphql_subscriptions.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/api/graphql_type.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/api/graphql_view.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/api/graphql_warmup.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/api/graphql_warmup_registry.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/api/graphql_warmup_tasks.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/api/mutation.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/api/notification_batching.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/api/registry.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/api/remote_api.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/api/remote_invalidation.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/api/remote_invalidation_client.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/apps.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/as_of.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/bootstrap.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/bucket/__init__.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/bucket/_materialized_bucket.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/bucket/_ordering.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/bucket/base_bucket.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/bucket/calculation_bucket.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/bucket/database_bucket.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/bucket/excel_bucket.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/bucket/group_bucket.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/bucket/indexing.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/bucket/projection.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/bucket/request_bucket.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/cache/__init__.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/cache/_dependency_graph.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/cache/batch_refresh.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/cache/cache_decorator.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/cache/cache_tracker.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/cache/data_change_context.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/cache/dependency_cache.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/cache/dependency_index.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/cache/dependency_matching.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/cache/dependency_publish.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/cache/dependency_shards.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/cache/model_dependency_collector.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/cache/run_context.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/cache/run_context_lru.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/cache/signals.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/cache/transaction_barrier.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/chat/__init__.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/chat/audit.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/chat/bootstrap.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/chat/checks.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/chat/consumer.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/chat/context.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/chat/errors.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/chat/evals/__init__.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/chat/evals/__main__.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/chat/evals/baseline.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/chat/evals/datasets/basic_queries.yaml +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/chat/evals/datasets/demo_readiness.yaml +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/chat/evals/datasets/edge_cases.yaml +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/chat/evals/datasets/follow_ups.yaml +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/chat/evals/datasets/large_schema.yaml +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/chat/evals/datasets/multi_hop.yaml +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/chat/evals/datasets/planned_orchestration.yaml +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/chat/evals/diagnostics.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/chat/evals/fingerprints.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/chat/evals/fixtures.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/chat/evals/judges/__init__.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/chat/evals/judges/answer_quality.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/chat/evals/judges/contract.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/chat/evals/judges/result_accuracy.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/chat/evals/judges/tool_sequence.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/chat/evals/readiness.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/chat/evals/runner.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/chat/evals/traces.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/chat/grounding.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/chat/models.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/chat/planned/__init__.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/chat/planned/budget.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/chat/planned/calculations.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/chat/planned/catalog.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/chat/planned/config.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/chat/planned/events.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/chat/planned/evidence.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/chat/planned/models.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/chat/planned/planner.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/chat/planned/provider_calls.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/chat/planned/resolver.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/chat/planned/routing.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/chat/planned/scheduler.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/chat/planned/synthesis.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/chat/planned/validation.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/chat/providers/__init__.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/chat/providers/_shared.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/chat/providers/anthropic.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/chat/providers/base.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/chat/providers/google.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/chat/providers/ollama.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/chat/providers/openai.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/chat/rate_limits.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/chat/routing.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/chat/schema_index.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/chat/settings.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/chat/signals.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/chat/system_prompt.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/chat/tool_metadata.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/chat/tools.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/chat/turns.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/chat/views.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/conf.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/dataframes/__init__.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/dataframes/measurements.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/factory/__init__.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/factory/auto_factory.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/factory/factories.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/factory/factory_methods.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/interface/__init__.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/interface/base_interface.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/interface/bundles/__init__.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/interface/bundles/calculation.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/interface/bundles/database.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/interface/bundles/excel.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/interface/bundles/remote_manager.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/interface/bundles/request.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/interface/capabilities/__init__.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/interface/capabilities/base.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/interface/capabilities/builtin.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/interface/capabilities/calculation/__init__.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/interface/capabilities/calculation/_compat.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/interface/capabilities/calculation/input_resolution.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/interface/capabilities/calculation/lifecycle.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/interface/capabilities/configuration.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/interface/capabilities/core/observability.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/interface/capabilities/core/utils.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/interface/capabilities/excel/__init__.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/interface/capabilities/exceptions.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/interface/capabilities/existing_model/__init__.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/interface/capabilities/existing_model/_compat.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/interface/capabilities/existing_model/resolution.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/interface/capabilities/factory.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/interface/capabilities/orm/__init__.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/interface/capabilities/orm/_compat.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/interface/capabilities/orm/bulk.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/interface/capabilities/orm/create_many.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/interface/capabilities/orm/history.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/interface/capabilities/orm/lifecycle.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/interface/capabilities/orm/mutations.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/interface/capabilities/orm/support.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/interface/capabilities/orm_utils/__init__.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/interface/capabilities/orm_utils/django_manager_utils.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/interface/capabilities/orm_utils/field_descriptors.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/interface/capabilities/orm_utils/payload_normalizer.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/interface/capabilities/orm_utils/update_state.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/interface/capabilities/read_only/__init__.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/interface/capabilities/read_only/_compat.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/interface/capabilities/read_only/_types.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/interface/capabilities/read_only/lifecycle.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/interface/capabilities/read_only/management.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/interface/capabilities/registry.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/interface/capabilities/remote_manager.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/interface/capabilities/request/__init__.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/interface/excel.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/interface/excel_store.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/interface/excel_workbook.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/interface/infrastructure/__init__.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/interface/infrastructure/startup_hooks.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/interface/infrastructure/system_checks.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/interface/interfaces/__init__.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/interface/interfaces/calculation.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/interface/interfaces/database.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/interface/interfaces/excel.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/interface/interfaces/existing_model.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/interface/interfaces/read_only.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/interface/interfaces/remote_manager.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/interface/interfaces/request.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/interface/manifests/__init__.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/interface/manifests/capability_builder.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/interface/manifests/capability_manifest.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/interface/manifests/capability_models.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/interface/orm_interface.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/interface/requests.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/interface/utils/__init__.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/interface/utils/database_interface_protocols.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/interface/utils/errors.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/interface/utils/history.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/interface/utils/models.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/logging.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/management/commands/chat_cleanup.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/management/commands/cleanup_upload_intents.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/management/commands/graphql_warmup.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/management/commands/graphql_warmup_refresh_due.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/management/commands/search_index.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/management/commands/search_reconcile.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/management/commands/seed_manager_landscape.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/management/commands/shell.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/management/commands/workflow_drain_outbox.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/management/commands/workflow_replay_dead_letters.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/manager/__init__.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/manager/bulk_create.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/manager/general_manager.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/manager/group_manager.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/manager/input.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/manager/meta.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/measurement/__init__.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/measurement/measurement.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/measurement/measurement_field.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/metrics/__init__.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/metrics/graphql.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/migrations/0001_initial.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/migrations/0002_workflow_outbox_scaling_indexes.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/migrations/0003_workflow_execution_correlation_constraint.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/migrations/0004_chat_persistence_models.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/migrations/0004_search_index_state.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/migrations/0005_merge_chat_search.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/migrations/0006_chat_pending_confirmation_scoped_ids.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/migrations/0007_upload_intent.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/migrations/0008_upload_finalization_versions.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/migrations/0009_upload_cleanup_state.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/migrations/0010_chat_pending_confirmation_portable_uniqueness.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/migrations/0011_search_index_state_dirty_generation.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/migrations/0012_chat_context_watermarks.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/migrations/__init__.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/models.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/permission/__init__.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/permission/audit.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/permission/base_permission.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/permission/graphql_capabilities.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/permission/manager_based_permission.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/permission/mutation_permission.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/permission/permission_checks.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/permission/permission_data_manager.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/permission/utils.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/public_api_registry.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/py.typed +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/rule/__init__.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/rule/handler.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/rule/rule.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/search/__init__.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/search/async_tasks.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/search/backend.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/search/backend_registry.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/search/backends/__init__.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/search/backends/dev.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/search/backends/meilisearch.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/search/backends/opensearch.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/search/backends/typesense.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/search/checks.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/search/config.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/search/indexer.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/search/invalidation.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/search/m2m_invalidation.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/search/models.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/search/reconciliation.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/search/registry.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/search/tasks.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/search/utils.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/seeding/__init__.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/seeding/manager_landscape.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/uploads/__init__.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/uploads/adapters.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/uploads/checks.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/uploads/config.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/uploads/errors.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/uploads/finalization.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/uploads/graphql.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/uploads/graphql_types.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/uploads/metrics.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/uploads/models.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/uploads/public.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/uploads/s3.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/uploads/services.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/uploads/tokens.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/uploads/types.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/uploads/urls.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/uploads/views.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/utils/__init__.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/utils/_args_to_kwargs.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/utils/_cache_key_encoder.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/utils/_make_cache_key.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/utils/_none_to_zero.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/utils/filter_parser.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/utils/format_string.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/utils/json_encoder.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/utils/path_mapping.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/utils/public_api.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/utils/testing.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/utils/type_checks.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/workflow/__init__.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/workflow/actions.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/workflow/backend_registry.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/workflow/backends/__init__.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/workflow/backends/celery.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/workflow/backends/local.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/workflow/backends/n8n.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/workflow/config.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/workflow/engine.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/workflow/event_registry.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/workflow/events.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/workflow/models.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/workflow/signal_bridge.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/workflow/tasks.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/workflow/telemetry.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/tests/test_settings.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/tests/test_urls.py +0 -0
- {generalmanager-0.82.1 → generalmanager-0.82.2}/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.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.82.
|
|
7
|
+
version = "0.82.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.82.
|
|
3
|
+
Version: 0.82.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
|
|
@@ -38,7 +38,10 @@ from django.core.exceptions import ObjectDoesNotExist
|
|
|
38
38
|
from django.db import DEFAULT_DB_ALIAS, models, transaction
|
|
39
39
|
from django.utils.module_loading import import_string
|
|
40
40
|
|
|
41
|
-
from general_manager.api.graphql_identifiers import
|
|
41
|
+
from general_manager.api.graphql_identifiers import (
|
|
42
|
+
build_identification_arguments,
|
|
43
|
+
property_identifier_type,
|
|
44
|
+
)
|
|
42
45
|
from general_manager.bucket.base_bucket import Bucket
|
|
43
46
|
from general_manager.bucket.group_bucket import GroupBucket
|
|
44
47
|
from general_manager.cache.dependency_index import (
|
|
@@ -929,6 +932,20 @@ class GraphQL:
|
|
|
929
932
|
) in generalManagerClass.Interface.get_graph_ql_properties().items():
|
|
930
933
|
raw_hint = attr_value.graphql_type_hint
|
|
931
934
|
|
|
935
|
+
if attr_value.is_identifier:
|
|
936
|
+
native_type, is_collection = property_identifier_type(
|
|
937
|
+
raw_hint,
|
|
938
|
+
owner_name=generalManagerClass.__name__,
|
|
939
|
+
field_name=attr_name,
|
|
940
|
+
)
|
|
941
|
+
fields[attr_name] = (
|
|
942
|
+
graphene.List(graphene.ID) if is_collection else graphene.ID()
|
|
943
|
+
)
|
|
944
|
+
fields[f"resolve_{attr_name}"] = cls._create_resolver(
|
|
945
|
+
attr_name, native_type
|
|
946
|
+
)
|
|
947
|
+
continue
|
|
948
|
+
|
|
932
949
|
if _contains_measurement(raw_hint):
|
|
933
950
|
mapped = map_graphql_output_annotation(
|
|
934
951
|
raw_hint,
|
{generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/api/graphql_identifiers.py
RENAMED
|
@@ -3,7 +3,9 @@
|
|
|
3
3
|
from __future__ import annotations
|
|
4
4
|
|
|
5
5
|
from collections.abc import Mapping
|
|
6
|
-
from
|
|
6
|
+
from types import UnionType
|
|
7
|
+
from typing import Annotated, Union, cast, get_args, get_origin
|
|
8
|
+
from uuid import UUID
|
|
7
9
|
|
|
8
10
|
import graphene
|
|
9
11
|
from django.db import models
|
|
@@ -16,9 +18,49 @@ from general_manager.api.graphql_relations import (
|
|
|
16
18
|
get_graphql_manager_registry,
|
|
17
19
|
resolve_general_manager_type,
|
|
18
20
|
)
|
|
21
|
+
from general_manager.api.graphql_output import GraphQLOutputAnnotationError
|
|
19
22
|
from general_manager.manager.general_manager import GeneralManager
|
|
20
23
|
|
|
21
24
|
|
|
25
|
+
def property_identifier_type(
|
|
26
|
+
annotation: object, *, owner_name: str, field_name: str
|
|
27
|
+
) -> tuple[type, bool]:
|
|
28
|
+
"""Validate an explicit native identity hint and return its type and shape.
|
|
29
|
+
|
|
30
|
+
This shared interpretation lets output and filter builders consume the
|
|
31
|
+
descriptor's public ``is_identifier`` flag without changing its annotation
|
|
32
|
+
or the native resolver value. Optional wrappers do not add non-null output
|
|
33
|
+
constraints to legacy manager properties.
|
|
34
|
+
"""
|
|
35
|
+
original_annotation = annotation
|
|
36
|
+
|
|
37
|
+
def unwrap(hint: object) -> object:
|
|
38
|
+
while get_origin(hint) is Annotated:
|
|
39
|
+
hint = get_args(hint)[0]
|
|
40
|
+
if get_origin(hint) in (Union, UnionType):
|
|
41
|
+
members = get_args(hint)
|
|
42
|
+
if len(members) == 2 and type(None) in members:
|
|
43
|
+
return unwrap(next(t for t in members if t is not type(None)))
|
|
44
|
+
return hint
|
|
45
|
+
|
|
46
|
+
annotation = unwrap(annotation)
|
|
47
|
+
origin = get_origin(annotation)
|
|
48
|
+
is_collection = origin in (list, tuple, set)
|
|
49
|
+
if is_collection:
|
|
50
|
+
elements = get_args(annotation)
|
|
51
|
+
if origin is tuple and len(elements) == 2 and elements[1] is Ellipsis:
|
|
52
|
+
elements = elements[:1]
|
|
53
|
+
if elements and (origin is tuple or len(elements) == 1):
|
|
54
|
+
native_type = unwrap(elements[0])
|
|
55
|
+
if native_type in (int, str, UUID) and all(
|
|
56
|
+
unwrap(element) is native_type for element in elements
|
|
57
|
+
):
|
|
58
|
+
return cast(type, native_type), True
|
|
59
|
+
elif annotation in (int, str, UUID):
|
|
60
|
+
return cast(type, annotation), False
|
|
61
|
+
raise GraphQLOutputAnnotationError(owner_name, field_name, original_annotation)
|
|
62
|
+
|
|
63
|
+
|
|
22
64
|
def is_orm_identifier_input(manager_class: type[GeneralManager], name: str) -> bool:
|
|
23
65
|
"""Identify the ORM constructor alias addressing the actual model PK."""
|
|
24
66
|
model = getattr(manager_class.Interface, "_model", None)
|
|
@@ -25,6 +25,7 @@ from django.core.exceptions import FieldDoesNotExist
|
|
|
25
25
|
from django.db import models
|
|
26
26
|
|
|
27
27
|
from general_manager.conf import get_setting
|
|
28
|
+
from general_manager.api.graphql_identifiers import property_identifier_type
|
|
28
29
|
from general_manager.api.graphql_ordering import (
|
|
29
30
|
GraphQLOrderingInputError,
|
|
30
31
|
create_ordering_types,
|
|
@@ -842,12 +843,20 @@ def create_filter_options(
|
|
|
842
843
|
continue
|
|
843
844
|
hints = [t for t in get_args(prop.graphql_type_hint) if t is not type(None)]
|
|
844
845
|
prop_type = hints[0] if hints else cast(type, prop.graphql_type_hint)
|
|
846
|
+
prop_info: dict[str, object] = {}
|
|
847
|
+
if prop.is_identifier:
|
|
848
|
+
prop_type, _ = property_identifier_type(
|
|
849
|
+
prop.graphql_type_hint,
|
|
850
|
+
owner_name=field_type.__name__,
|
|
851
|
+
field_name=prop_name,
|
|
852
|
+
)
|
|
853
|
+
prop_info["is_identifier"] = True
|
|
845
854
|
filter_fields = {
|
|
846
855
|
**filter_fields,
|
|
847
856
|
**{
|
|
848
857
|
k: v
|
|
849
858
|
for k, v in get_filter_options(
|
|
850
|
-
prop_type, prop_name, map_field_to_graphene_read
|
|
859
|
+
prop_type, prop_name, map_field_to_graphene_read, prop_info
|
|
851
860
|
)
|
|
852
861
|
if v is not None
|
|
853
862
|
},
|
|
@@ -55,7 +55,7 @@ class GraphQLPropertyTimeoutConfigurationError(ValueError):
|
|
|
55
55
|
class GraphQLProperty(property):
|
|
56
56
|
"""Descriptor that exposes a resolver with GraphQL metadata and caching.
|
|
57
57
|
|
|
58
|
-
Stable inspection attributes are `sortable`, `filterable`,
|
|
58
|
+
Stable inspection attributes are `sortable`, `filterable`, `is_identifier`,
|
|
59
59
|
`query_annotation`, `cache`, `timeout`, `warm_up`, and `graphql_type_hint`.
|
|
60
60
|
The descriptor preserves normal `property` behavior such as `fget` and
|
|
61
61
|
`__doc__`, but those values follow Python's property/wraps mechanics rather
|
|
@@ -66,6 +66,7 @@ class GraphQLProperty(property):
|
|
|
66
66
|
|
|
67
67
|
sortable: bool
|
|
68
68
|
filterable: bool
|
|
69
|
+
is_identifier: bool
|
|
69
70
|
warm_up: bool
|
|
70
71
|
query_annotation: object | None
|
|
71
72
|
timeout: int | None
|
|
@@ -77,6 +78,7 @@ class GraphQLProperty(property):
|
|
|
77
78
|
*,
|
|
78
79
|
sortable: bool = False,
|
|
79
80
|
filterable: bool = False,
|
|
81
|
+
is_identifier: bool = False,
|
|
80
82
|
query_annotation: object | None = None,
|
|
81
83
|
cache: GraphQLPropertyCache = "none",
|
|
82
84
|
timeout: int | None = None,
|
|
@@ -101,6 +103,10 @@ class GraphQLProperty(property):
|
|
|
101
103
|
filterable: Whether generated GraphQL fields may expose filtering
|
|
102
104
|
for this property. Stored as supplied; runtime truthiness is not
|
|
103
105
|
coerced or validated.
|
|
106
|
+
is_identifier: Declare native integer, string, or UUID identities,
|
|
107
|
+
either scalar or a homogeneous list, tuple, or set. Generates
|
|
108
|
+
GraphQL ID output without changing Python values. Unsupported
|
|
109
|
+
annotations raise TypeError during schema generation.
|
|
104
110
|
query_annotation: Opaque ORM annotation object or callable consumed
|
|
105
111
|
by database bucket query construction.
|
|
106
112
|
cache: Resolver cache scope. `"none"` evaluates every access,
|
|
@@ -160,6 +166,7 @@ class GraphQLProperty(property):
|
|
|
160
166
|
|
|
161
167
|
self.sortable = sortable
|
|
162
168
|
self.filterable = filterable
|
|
169
|
+
self.is_identifier = is_identifier
|
|
163
170
|
self.query_annotation = query_annotation
|
|
164
171
|
self.cache = cache
|
|
165
172
|
self.timeout = timeout
|
|
@@ -276,6 +283,7 @@ def graph_ql_property(
|
|
|
276
283
|
*,
|
|
277
284
|
sortable: bool = False,
|
|
278
285
|
filterable: bool = False,
|
|
286
|
+
is_identifier: bool = False,
|
|
279
287
|
query_annotation: object | None = None,
|
|
280
288
|
cache: GraphQLPropertyCache = "run",
|
|
281
289
|
timeout: int | None = None,
|
|
@@ -290,6 +298,7 @@ def graph_ql_property(
|
|
|
290
298
|
*,
|
|
291
299
|
sortable: bool = False,
|
|
292
300
|
filterable: bool = False,
|
|
301
|
+
is_identifier: bool = False,
|
|
293
302
|
query_annotation: object | None = None,
|
|
294
303
|
cache: GraphQLPropertyCache = "run",
|
|
295
304
|
timeout: int | None = None,
|
|
@@ -307,6 +316,13 @@ def graph_ql_property(
|
|
|
307
316
|
property.
|
|
308
317
|
filterable: Whether generated GraphQL fields may expose filtering for
|
|
309
318
|
this property.
|
|
319
|
+
is_identifier: Explicitly declare native integer, string, or UUID
|
|
320
|
+
identities. Scalars map to ID and homogeneous list, tuple, or set
|
|
321
|
+
collections to [ID], preserving nullable property output and native
|
|
322
|
+
Python values. Optional annotations and optional elements are
|
|
323
|
+
supported. Manager objects, nested collections, ambiguous unions,
|
|
324
|
+
and other scalar types raise TypeError during schema generation.
|
|
325
|
+
Names and query_annotation never infer this flag. Defaults to False.
|
|
310
326
|
query_annotation: Opaque ORM annotation object or callable consumed by
|
|
311
327
|
database bucket query construction.
|
|
312
328
|
cache: Cache scope. `"run"` is the default and memoizes only within the
|
|
@@ -354,6 +370,7 @@ def graph_ql_property(
|
|
|
354
370
|
sortable=sortable,
|
|
355
371
|
query_annotation=query_annotation,
|
|
356
372
|
filterable=filterable,
|
|
373
|
+
is_identifier=is_identifier,
|
|
357
374
|
cache=cache,
|
|
358
375
|
timeout=timeout,
|
|
359
376
|
warm_up=warm_up,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{generalmanager-0.82.1 → generalmanager-0.82.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.82.1 → generalmanager-0.82.2}/src/general_manager/_types/general_manager.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/api/graphql_mutations.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/api/graphql_relations.py
RENAMED
|
File without changes
|
{generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/api/graphql_resolvers.py
RENAMED
|
File without changes
|
|
File without changes
|
{generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/api/graphql_subscriptions.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/api/graphql_warmup_registry.py
RENAMED
|
File without changes
|
{generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/api/graphql_warmup_tasks.py
RENAMED
|
File without changes
|
|
File without changes
|
{generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/api/notification_batching.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{generalmanager-0.82.1 → generalmanager-0.82.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.82.1 → generalmanager-0.82.2}/src/general_manager/bucket/_materialized_bucket.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/bucket/calculation_bucket.py
RENAMED
|
File without changes
|
{generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/bucket/database_bucket.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/bucket/request_bucket.py
RENAMED
|
File without changes
|
|
File without changes
|
{generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/cache/_dependency_graph.py
RENAMED
|
File without changes
|
|
File without changes
|
{generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/cache/cache_decorator.py
RENAMED
|
File without changes
|
|
File without changes
|
{generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/cache/data_change_context.py
RENAMED
|
File without changes
|
{generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/cache/dependency_cache.py
RENAMED
|
File without changes
|
{generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/cache/dependency_index.py
RENAMED
|
File without changes
|
{generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/cache/dependency_matching.py
RENAMED
|
File without changes
|
{generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/cache/dependency_publish.py
RENAMED
|
File without changes
|
{generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/cache/dependency_shards.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/cache/run_context_lru.py
RENAMED
|
File without changes
|
|
File without changes
|
{generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/cache/transaction_barrier.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/chat/evals/diagnostics.py
RENAMED
|
File without changes
|
{generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/chat/evals/fingerprints.py
RENAMED
|
File without changes
|
|
File without changes
|
{generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/chat/evals/judges/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{generalmanager-0.82.1 → generalmanager-0.82.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.82.1 → generalmanager-0.82.2}/src/general_manager/chat/planned/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/chat/planned/calculations.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/chat/planned/evidence.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/chat/planned/provider_calls.py
RENAMED
|
File without changes
|
{generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/chat/planned/resolver.py
RENAMED
|
File without changes
|
|
File without changes
|
{generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/chat/planned/scheduler.py
RENAMED
|
File without changes
|
{generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/chat/planned/synthesis.py
RENAMED
|
File without changes
|
{generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/chat/planned/validation.py
RENAMED
|
File without changes
|
{generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/chat/providers/__init__.py
RENAMED
|
File without changes
|
{generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/chat/providers/_shared.py
RENAMED
|
File without changes
|
{generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/chat/providers/anthropic.py
RENAMED
|
File without changes
|
|
File without changes
|
{generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/chat/providers/google.py
RENAMED
|
File without changes
|
{generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/chat/providers/ollama.py
RENAMED
|
File without changes
|
{generalmanager-0.82.1 → generalmanager-0.82.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
|
|
File without changes
|
{generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/dataframes/measurements.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{generalmanager-0.82.1 → generalmanager-0.82.2}/src/general_manager/factory/factory_methods.py
RENAMED
|
File without changes
|