GeneralManager 0.80.3__tar.gz → 0.80.5__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.80.3/src/GeneralManager.egg-info → generalmanager-0.80.5}/PKG-INFO +1 -1
- {generalmanager-0.80.3 → generalmanager-0.80.5}/pyproject.toml +1 -1
- {generalmanager-0.80.3 → generalmanager-0.80.5/src/GeneralManager.egg-info}/PKG-INFO +1 -1
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/manager/meta.py +27 -4
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/measurement/measurement.py +50 -7
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/search/backends/meilisearch.py +26 -4
- {generalmanager-0.80.3 → generalmanager-0.80.5}/LICENSE +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/README.md +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/setup.cfg +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/GeneralManager.egg-info/SOURCES.txt +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/GeneralManager.egg-info/dependency_links.txt +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/GeneralManager.egg-info/requires.txt +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/GeneralManager.egg-info/top_level.txt +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/__init__.py +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/_types/__init__.py +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/_types/api.py +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/_types/bucket.py +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/_types/cache.py +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/_types/dataframes.py +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/_types/factory.py +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/_types/general_manager.py +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/_types/interface.py +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/_types/manager.py +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/_types/measurement.py +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/_types/permission.py +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/_types/rule.py +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/_types/search.py +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/_types/utils.py +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/api/__init__.py +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/api/graphql.py +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/api/graphql_as_of.py +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/api/graphql_errors.py +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/api/graphql_groups.py +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/api/graphql_mutations.py +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/api/graphql_ordering.py +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/api/graphql_output.py +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/api/graphql_prefetch.py +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/api/graphql_relations.py +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/api/graphql_resolvers.py +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/api/graphql_search.py +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/api/graphql_subscription_consumer.py +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/api/graphql_subscriptions.py +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/api/graphql_type.py +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/api/graphql_view.py +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/api/graphql_warmup.py +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/api/graphql_warmup_registry.py +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/api/graphql_warmup_tasks.py +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/api/mutation.py +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/api/notification_batching.py +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/api/property.py +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/api/registry.py +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/api/remote_api.py +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/api/remote_invalidation.py +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/api/remote_invalidation_client.py +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/apps.py +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/as_of.py +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/bootstrap.py +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/bucket/__init__.py +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/bucket/_materialized_bucket.py +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/bucket/_ordering.py +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/bucket/base_bucket.py +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/bucket/calculation_bucket.py +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/bucket/database_bucket.py +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/bucket/excel_bucket.py +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/bucket/group_bucket.py +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/bucket/indexing.py +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/bucket/projection.py +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/bucket/request_bucket.py +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/cache/__init__.py +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/cache/_dependency_graph.py +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/cache/cache_decorator.py +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/cache/cache_tracker.py +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/cache/data_change_context.py +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/cache/dependency_cache.py +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/cache/dependency_index.py +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/cache/dependency_matching.py +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/cache/dependency_publish.py +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/cache/dependency_shards.py +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/cache/model_dependency_collector.py +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/cache/run_context.py +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/cache/run_context_lru.py +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/cache/signals.py +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/chat/__init__.py +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/chat/audit.py +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/chat/bootstrap.py +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/chat/checks.py +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/chat/consumer.py +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/chat/context.py +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/chat/errors.py +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/chat/evals/__init__.py +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/chat/evals/__main__.py +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/chat/evals/baseline.py +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/chat/evals/datasets/basic_queries.yaml +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/chat/evals/datasets/demo_readiness.yaml +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/chat/evals/datasets/edge_cases.yaml +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/chat/evals/datasets/follow_ups.yaml +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/chat/evals/datasets/large_schema.yaml +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/chat/evals/datasets/multi_hop.yaml +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/chat/evals/datasets/planned_orchestration.yaml +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/chat/evals/diagnostics.py +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/chat/evals/fingerprints.py +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/chat/evals/fixtures.py +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/chat/evals/judges/__init__.py +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/chat/evals/judges/answer_quality.py +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/chat/evals/judges/contract.py +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/chat/evals/judges/result_accuracy.py +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/chat/evals/judges/tool_sequence.py +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/chat/evals/readiness.py +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/chat/evals/runner.py +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/chat/evals/traces.py +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/chat/grounding.py +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/chat/models.py +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/chat/planned/__init__.py +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/chat/planned/budget.py +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/chat/planned/calculations.py +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/chat/planned/catalog.py +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/chat/planned/config.py +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/chat/planned/events.py +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/chat/planned/evidence.py +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/chat/planned/models.py +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/chat/planned/planner.py +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/chat/planned/provider_calls.py +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/chat/planned/resolver.py +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/chat/planned/routing.py +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/chat/planned/scheduler.py +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/chat/planned/synthesis.py +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/chat/planned/validation.py +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/chat/providers/__init__.py +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/chat/providers/_shared.py +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/chat/providers/anthropic.py +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/chat/providers/base.py +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/chat/providers/google.py +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/chat/providers/ollama.py +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/chat/providers/openai.py +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/chat/rate_limits.py +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/chat/routing.py +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/chat/schema_index.py +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/chat/settings.py +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/chat/signals.py +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/chat/system_prompt.py +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/chat/tool_metadata.py +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/chat/tools.py +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/chat/turns.py +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/chat/views.py +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/conf.py +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/dataframes/__init__.py +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/dataframes/measurements.py +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/factory/__init__.py +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/factory/auto_factory.py +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/factory/factories.py +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/factory/factory_methods.py +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/interface/__init__.py +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/interface/base_interface.py +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/interface/bundles/__init__.py +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/interface/bundles/calculation.py +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/interface/bundles/database.py +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/interface/bundles/excel.py +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/interface/bundles/remote_manager.py +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/interface/bundles/request.py +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/interface/capabilities/__init__.py +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/interface/capabilities/base.py +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/interface/capabilities/builtin.py +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/interface/capabilities/calculation/__init__.py +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/interface/capabilities/calculation/_compat.py +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/interface/capabilities/calculation/input_resolution.py +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/interface/capabilities/calculation/lifecycle.py +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/interface/capabilities/configuration.py +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/interface/capabilities/core/observability.py +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/interface/capabilities/core/utils.py +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/interface/capabilities/excel/__init__.py +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/interface/capabilities/exceptions.py +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/interface/capabilities/existing_model/__init__.py +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/interface/capabilities/existing_model/_compat.py +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/interface/capabilities/existing_model/resolution.py +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/interface/capabilities/factory.py +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/interface/capabilities/orm/__init__.py +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/interface/capabilities/orm/_compat.py +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/interface/capabilities/orm/history.py +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/interface/capabilities/orm/lifecycle.py +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/interface/capabilities/orm/mutations.py +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/interface/capabilities/orm/support.py +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/interface/capabilities/orm_utils/__init__.py +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/interface/capabilities/orm_utils/django_manager_utils.py +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/interface/capabilities/orm_utils/field_descriptors.py +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/interface/capabilities/orm_utils/payload_normalizer.py +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/interface/capabilities/orm_utils/update_state.py +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/interface/capabilities/read_only/__init__.py +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/interface/capabilities/read_only/_compat.py +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/interface/capabilities/read_only/_types.py +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/interface/capabilities/read_only/lifecycle.py +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/interface/capabilities/read_only/management.py +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/interface/capabilities/registry.py +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/interface/capabilities/remote_manager.py +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/interface/capabilities/request/__init__.py +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/interface/excel.py +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/interface/excel_store.py +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/interface/excel_workbook.py +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/interface/infrastructure/__init__.py +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/interface/infrastructure/startup_hooks.py +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/interface/infrastructure/system_checks.py +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/interface/interfaces/__init__.py +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/interface/interfaces/calculation.py +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/interface/interfaces/database.py +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/interface/interfaces/excel.py +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/interface/interfaces/existing_model.py +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/interface/interfaces/read_only.py +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/interface/interfaces/remote_manager.py +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/interface/interfaces/request.py +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/interface/manifests/__init__.py +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/interface/manifests/capability_builder.py +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/interface/manifests/capability_manifest.py +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/interface/manifests/capability_models.py +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/interface/orm_interface.py +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/interface/requests.py +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/interface/utils/__init__.py +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/interface/utils/database_interface_protocols.py +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/interface/utils/errors.py +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/interface/utils/history.py +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/interface/utils/models.py +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/logging.py +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/management/commands/chat_cleanup.py +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/management/commands/cleanup_upload_intents.py +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/management/commands/graphql_warmup.py +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/management/commands/graphql_warmup_refresh_due.py +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/management/commands/search_index.py +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/management/commands/search_reconcile.py +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/management/commands/seed_manager_landscape.py +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/management/commands/shell.py +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/management/commands/workflow_drain_outbox.py +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/management/commands/workflow_replay_dead_letters.py +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/manager/__init__.py +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/manager/general_manager.py +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/manager/group_manager.py +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/manager/input.py +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/measurement/__init__.py +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/measurement/measurement_field.py +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/metrics/__init__.py +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/metrics/graphql.py +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/migrations/0001_initial.py +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/migrations/0002_workflow_outbox_scaling_indexes.py +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/migrations/0003_workflow_execution_correlation_constraint.py +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/migrations/0004_chat_persistence_models.py +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/migrations/0004_search_index_state.py +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/migrations/0005_merge_chat_search.py +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/migrations/0006_chat_pending_confirmation_scoped_ids.py +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/migrations/0007_upload_intent.py +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/migrations/0008_upload_finalization_versions.py +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/migrations/0009_upload_cleanup_state.py +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/migrations/0010_chat_pending_confirmation_portable_uniqueness.py +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/migrations/0011_search_index_state_dirty_generation.py +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/migrations/0012_chat_context_watermarks.py +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/migrations/__init__.py +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/models.py +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/permission/__init__.py +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/permission/audit.py +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/permission/base_permission.py +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/permission/graphql_capabilities.py +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/permission/manager_based_permission.py +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/permission/mutation_permission.py +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/permission/permission_checks.py +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/permission/permission_data_manager.py +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/permission/utils.py +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/public_api_registry.py +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/py.typed +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/rule/__init__.py +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/rule/handler.py +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/rule/rule.py +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/search/__init__.py +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/search/async_tasks.py +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/search/backend.py +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/search/backend_registry.py +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/search/backends/__init__.py +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/search/backends/dev.py +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/search/backends/opensearch.py +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/search/backends/typesense.py +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/search/checks.py +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/search/config.py +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/search/indexer.py +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/search/invalidation.py +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/search/m2m_invalidation.py +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/search/models.py +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/search/reconciliation.py +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/search/registry.py +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/search/tasks.py +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/search/utils.py +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/seeding/__init__.py +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/seeding/manager_landscape.py +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/uploads/__init__.py +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/uploads/adapters.py +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/uploads/checks.py +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/uploads/config.py +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/uploads/errors.py +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/uploads/finalization.py +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/uploads/graphql.py +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/uploads/graphql_types.py +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/uploads/metrics.py +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/uploads/models.py +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/uploads/public.py +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/uploads/s3.py +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/uploads/services.py +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/uploads/tokens.py +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/uploads/types.py +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/uploads/urls.py +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/uploads/views.py +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/utils/__init__.py +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/utils/_args_to_kwargs.py +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/utils/_cache_key_encoder.py +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/utils/_make_cache_key.py +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/utils/_none_to_zero.py +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/utils/filter_parser.py +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/utils/format_string.py +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/utils/json_encoder.py +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/utils/path_mapping.py +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/utils/public_api.py +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/utils/testing.py +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/utils/type_checks.py +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/workflow/__init__.py +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/workflow/actions.py +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/workflow/backend_registry.py +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/workflow/backends/__init__.py +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/workflow/backends/celery.py +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/workflow/backends/local.py +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/workflow/backends/n8n.py +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/workflow/config.py +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/workflow/engine.py +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/workflow/event_registry.py +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/workflow/events.py +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/workflow/models.py +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/workflow/signal_bridge.py +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/workflow/tasks.py +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/workflow/telemetry.py +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/tests/test_settings.py +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/tests/test_urls.py +0 -0
- {generalmanager-0.80.3 → generalmanager-0.80.5}/tests/testing_asgi.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: GeneralManager
|
|
3
|
-
Version: 0.80.
|
|
3
|
+
Version: 0.80.5
|
|
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.80.
|
|
7
|
+
version = "0.80.5"
|
|
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.80.
|
|
3
|
+
Version: 0.80.5
|
|
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
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
from __future__ import annotations
|
|
4
4
|
|
|
5
|
-
from collections.abc import Callable, Iterator
|
|
5
|
+
from collections.abc import Callable, Iterator, Mapping
|
|
6
6
|
from functools import wraps
|
|
7
7
|
import threading
|
|
8
8
|
from _thread import RLock as RLockType
|
|
@@ -781,6 +781,17 @@ class GeneralManagerMeta(type):
|
|
|
781
781
|
) -> None:
|
|
782
782
|
self._attr_name = descriptor_attr_name
|
|
783
783
|
self._class = descriptor_class
|
|
784
|
+
# Keep a live view: validation can be reset after installation.
|
|
785
|
+
# Custom metaclasses retain their observable dictionary lookups.
|
|
786
|
+
self._standard_class_dict: Mapping[str, object] | None = (
|
|
787
|
+
vars(descriptor_class)
|
|
788
|
+
if (
|
|
789
|
+
type(descriptor_class) is GeneralManagerMeta
|
|
790
|
+
and _STANDARD_MANAGER_META_DICT.get("__getattribute__")
|
|
791
|
+
is _STANDARD_MANAGER_META_GETATTRIBUTE
|
|
792
|
+
)
|
|
793
|
+
else None
|
|
794
|
+
)
|
|
784
795
|
# Excel values can change outside this manager instance.
|
|
785
796
|
self._cache_values = (
|
|
786
797
|
getattr(descriptor_class.Interface, "_interface_type", None)
|
|
@@ -826,9 +837,17 @@ class GeneralManagerMeta(type):
|
|
|
826
837
|
"""
|
|
827
838
|
if instance is None:
|
|
828
839
|
return self._class.Interface.get_field_type(self._attr_name)
|
|
829
|
-
|
|
830
|
-
|
|
831
|
-
|
|
840
|
+
class_dict = self._standard_class_dict
|
|
841
|
+
if (
|
|
842
|
+
class_dict is None
|
|
843
|
+
or type(self._class) is not GeneralManagerMeta
|
|
844
|
+
or _STANDARD_MANAGER_META_DICT.get("__getattribute__")
|
|
845
|
+
is not _STANDARD_MANAGER_META_GETATTRIBUTE
|
|
846
|
+
or class_dict.get("_gm_rule_templates_validated") is not True
|
|
847
|
+
):
|
|
848
|
+
GeneralManagerMeta.ensure_rule_templates_validated_after_readiness(
|
|
849
|
+
self._class
|
|
850
|
+
)
|
|
832
851
|
try:
|
|
833
852
|
ensure_as_of_compatible = object.__getattribute__(
|
|
834
853
|
instance, "_ensure_as_of_compatible"
|
|
@@ -940,6 +959,10 @@ class GeneralManagerMeta(type):
|
|
|
940
959
|
type.__setattr__(new_class, "_gm_attributes_initialized", True)
|
|
941
960
|
|
|
942
961
|
|
|
962
|
+
# In-place metaclass customization must retain observable dictionary lookups.
|
|
963
|
+
_STANDARD_MANAGER_META_GETATTRIBUTE = GeneralManagerMeta.__getattribute__
|
|
964
|
+
_STANDARD_MANAGER_META_DICT = vars(GeneralManagerMeta)
|
|
965
|
+
|
|
943
966
|
_CAPABILITY_BUILDER: "ManifestCapabilityBuilder | None" = None
|
|
944
967
|
|
|
945
968
|
|
{generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/measurement/measurement.py
RENAMED
|
@@ -6,7 +6,7 @@ from collections.abc import Callable
|
|
|
6
6
|
from functools import lru_cache
|
|
7
7
|
from typing import TypeAlias, TypeGuard, cast
|
|
8
8
|
import pint
|
|
9
|
-
from decimal import Decimal, InvalidOperation, ROUND_HALF_EVEN, localcontext
|
|
9
|
+
from decimal import Decimal, InvalidOperation, ROUND_HALF_EVEN, getcontext, localcontext
|
|
10
10
|
from operator import lt, le, gt, ge
|
|
11
11
|
from pint.facets.plain import PlainQuantity
|
|
12
12
|
from pint.util import UnitsContainer
|
|
@@ -58,6 +58,15 @@ def _canonical_unit_string(unit: str) -> str:
|
|
|
58
58
|
return str(parsed_unit)
|
|
59
59
|
|
|
60
60
|
|
|
61
|
+
@lru_cache(maxsize=512)
|
|
62
|
+
def _default_quantity_unit(unit: str) -> pint.Unit:
|
|
63
|
+
"""Cache the legacy unit round trip for the default Pint formatter only."""
|
|
64
|
+
|
|
65
|
+
# Pint's display can round fractional exponents. Retain that round trip
|
|
66
|
+
# without relying on a public label cached under a previous formatter.
|
|
67
|
+
return _parse_unit(str(_parse_unit(unit)))
|
|
68
|
+
|
|
69
|
+
|
|
61
70
|
def _format_decimal(value: Decimal) -> Decimal:
|
|
62
71
|
"""
|
|
63
72
|
Normalise decimals so integers have no fractional component.
|
|
@@ -82,6 +91,13 @@ def _format_decimal(value: Decimal) -> Decimal:
|
|
|
82
91
|
def _decimal_precision(*values: Decimal, extra_digits: int = 0) -> int:
|
|
83
92
|
"""Return enough local precision to retain all supplied Decimal coefficients."""
|
|
84
93
|
|
|
94
|
+
if len(values) == 1:
|
|
95
|
+
value = values[0]
|
|
96
|
+
if not value.is_finite():
|
|
97
|
+
return max(28, extra_digits)
|
|
98
|
+
# For one coefficient, adjusted - exponent + 1 is its digit count.
|
|
99
|
+
return max(28, len(value.as_tuple().digits)) + extra_digits
|
|
100
|
+
|
|
85
101
|
finite_values = [value for value in values if value.is_finite()]
|
|
86
102
|
coefficient_digits = sum(len(value.as_tuple().digits) for value in finite_values)
|
|
87
103
|
if not finite_values:
|
|
@@ -734,7 +750,7 @@ class Measurement:
|
|
|
734
750
|
version and are not a stable GeneralManager API contract.
|
|
735
751
|
"""
|
|
736
752
|
|
|
737
|
-
__quantity: MeasurementQuantity | None
|
|
753
|
+
__quantity: MeasurementQuantity | pint.Unit | None
|
|
738
754
|
__magnitude: Decimal
|
|
739
755
|
__unit: str
|
|
740
756
|
__quantity_exposed: bool
|
|
@@ -744,8 +760,9 @@ class Measurement:
|
|
|
744
760
|
Create a Measurement from a numeric value and a unit label.
|
|
745
761
|
|
|
746
762
|
Converts the provided numeric-like value to a Decimal through
|
|
747
|
-
``Decimal(str(value))`` and
|
|
748
|
-
|
|
763
|
+
``Decimal(str(value))`` and validates the given Pint unit expression.
|
|
764
|
+
Ordinary values defer the internal Pint quantity until it is needed.
|
|
765
|
+
``unit`` may be ``"dimensionless"`` or an
|
|
749
766
|
empty string for dimensionless measurements. Discrete item quantities
|
|
750
767
|
should use ``"count"``, which belongs to its own unit family rather than
|
|
751
768
|
Pint's plain dimensionless family. Invalid units are reported by Pint and
|
|
@@ -784,6 +801,29 @@ class Measurement:
|
|
|
784
801
|
value = Decimal(str(value))
|
|
785
802
|
except (InvalidOperation, TypeError, ValueError) as error:
|
|
786
803
|
raise InvalidMeasurementInitializationError() from error
|
|
804
|
+
self.__set_value(value, unit)
|
|
805
|
+
|
|
806
|
+
def __set_value(self, value: Decimal, unit: str) -> None:
|
|
807
|
+
"""Validate scalar parts eagerly and defer ordinary Pint allocations."""
|
|
808
|
+
|
|
809
|
+
# Normalization is idempotent for normal values and zeros without clamp.
|
|
810
|
+
# Subnormals can change again as their coefficient (and local precision)
|
|
811
|
+
# shrinks; preserve the original Pint/Decimal pipeline for those cases.
|
|
812
|
+
if (
|
|
813
|
+
not getcontext().clamp
|
|
814
|
+
and (value.is_normal() or value.is_zero())
|
|
815
|
+
and not ureg.formatter.default_format
|
|
816
|
+
):
|
|
817
|
+
magnitude = _decimal_from_magnitude(value)
|
|
818
|
+
canonical_unit = _canonical_unit_string(unit)
|
|
819
|
+
# Keep immutable internal units separate from the public label,
|
|
820
|
+
# which may have been cached under a different Pint formatter.
|
|
821
|
+
self.__quantity = _default_quantity_unit(unit)
|
|
822
|
+
self.__magnitude = magnitude
|
|
823
|
+
self.__unit = canonical_unit
|
|
824
|
+
self.__quantity_exposed = False
|
|
825
|
+
return
|
|
826
|
+
# Custom formatters must retain the eager unit reparse and its errors.
|
|
787
827
|
self.__set_quantity(_build_quantity(value, unit), _canonical_unit_string(unit))
|
|
788
828
|
|
|
789
829
|
@classmethod
|
|
@@ -828,10 +868,13 @@ class Measurement:
|
|
|
828
868
|
|
|
829
869
|
def __current_quantity(self) -> MeasurementQuantity:
|
|
830
870
|
quantity = self.__quantity
|
|
831
|
-
if quantity
|
|
871
|
+
if not isinstance(quantity, PlainQuantity):
|
|
832
872
|
quantity = cast(
|
|
833
873
|
MeasurementQuantity,
|
|
834
|
-
ureg.Quantity(
|
|
874
|
+
ureg.Quantity(
|
|
875
|
+
self.__magnitude,
|
|
876
|
+
quantity if quantity is not None else _parse_unit(self.__unit),
|
|
877
|
+
),
|
|
835
878
|
)
|
|
836
879
|
self.__quantity = quantity
|
|
837
880
|
return quantity
|
|
@@ -867,7 +910,7 @@ class Measurement:
|
|
|
867
910
|
"""
|
|
868
911
|
value = Decimal(state["magnitude"])
|
|
869
912
|
unit = state["unit"]
|
|
870
|
-
self.
|
|
913
|
+
self.__set_value(value, unit)
|
|
871
914
|
|
|
872
915
|
def deconstruct(self) -> tuple[str, list[object], dict[str, object]]:
|
|
873
916
|
"""Describe this value for Django migration serialization.
|
{generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/search/backends/meilisearch.py
RENAMED
|
@@ -6,6 +6,7 @@ import hashlib
|
|
|
6
6
|
import time
|
|
7
7
|
from collections.abc import Callable, Iterable
|
|
8
8
|
from importlib import import_module
|
|
9
|
+
from inspect import signature
|
|
9
10
|
from typing import Mapping, Protocol, Sequence, cast
|
|
10
11
|
|
|
11
12
|
from general_manager.search.backend import (
|
|
@@ -83,7 +84,7 @@ class _MeilisearchClientWithGetOrCreate(_MeilisearchClient, Protocol):
|
|
|
83
84
|
class _MeilisearchClientWithWait(_MeilisearchClient, Protocol):
|
|
84
85
|
"""Client variant exposing server-side task waiting."""
|
|
85
86
|
|
|
86
|
-
def wait_for_task(self, task_uid: object) -> object: ...
|
|
87
|
+
def wait_for_task(self, task_uid: object, *, timeout_in_ms: int) -> object: ...
|
|
87
88
|
|
|
88
89
|
|
|
89
90
|
class _MeilisearchClientWithGetTask(_MeilisearchClient, Protocol):
|
|
@@ -111,6 +112,7 @@ class MeilisearchBackend:
|
|
|
111
112
|
url: str = "http://127.0.0.1:7700",
|
|
112
113
|
api_key: str | None = None,
|
|
113
114
|
client: _MeilisearchClient | None = None,
|
|
115
|
+
task_timeout_in_ms: int = 5000,
|
|
114
116
|
) -> None:
|
|
115
117
|
"""
|
|
116
118
|
Initialize the backend with a provided Meilisearch client or a new one.
|
|
@@ -124,6 +126,10 @@ class MeilisearchBackend:
|
|
|
124
126
|
`meilisearch` package and instantiates a client with `url` and
|
|
125
127
|
`api_key`; if the package is not available, raises
|
|
126
128
|
SearchBackendClientMissingError("Meilisearch").
|
|
129
|
+
task_timeout_in_ms: Timeout in milliseconds forwarded to the client
|
|
130
|
+
`wait_for_task` method. Defaults to 5000 (five seconds). Does not
|
|
131
|
+
affect fallback polling for clients exposing only `get_task`
|
|
132
|
+
or legacy clients whose wait method does not accept the timeout.
|
|
127
133
|
|
|
128
134
|
Raises:
|
|
129
135
|
SearchBackendClientMissingError: The `meilisearch` package is not
|
|
@@ -137,6 +143,7 @@ class MeilisearchBackend:
|
|
|
137
143
|
client_factory = cast(_MeilisearchModule, meilisearch_module).Client
|
|
138
144
|
client = client_factory(url, api_key)
|
|
139
145
|
self._client = client
|
|
146
|
+
self._task_timeout_in_ms = task_timeout_in_ms
|
|
140
147
|
|
|
141
148
|
def ensure_index(self, index_name: str, settings: Mapping[str, object]) -> None:
|
|
142
149
|
"""
|
|
@@ -549,9 +556,24 @@ class MeilisearchBackend:
|
|
|
549
556
|
if task_uid is None:
|
|
550
557
|
return
|
|
551
558
|
if hasattr(self._client, "wait_for_task"):
|
|
552
|
-
|
|
553
|
-
|
|
554
|
-
|
|
559
|
+
wait_for_task = cast(_MeilisearchClientWithWait, self._client).wait_for_task
|
|
560
|
+
supports_timeout = True
|
|
561
|
+
try:
|
|
562
|
+
wait_signature = signature(wait_for_task)
|
|
563
|
+
except (TypeError, ValueError):
|
|
564
|
+
# Uninspectable clients retain the standard Meilisearch call.
|
|
565
|
+
pass
|
|
566
|
+
else:
|
|
567
|
+
try:
|
|
568
|
+
wait_signature.bind(
|
|
569
|
+
task_uid, timeout_in_ms=self._task_timeout_in_ms
|
|
570
|
+
)
|
|
571
|
+
except TypeError:
|
|
572
|
+
supports_timeout = False
|
|
573
|
+
if supports_timeout:
|
|
574
|
+
result = wait_for_task(task_uid, timeout_in_ms=self._task_timeout_in_ms)
|
|
575
|
+
else:
|
|
576
|
+
result = cast(Callable[[object], object], wait_for_task)(task_uid)
|
|
555
577
|
self._raise_for_failed_task(result)
|
|
556
578
|
return
|
|
557
579
|
if hasattr(self._client, "get_task"):
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{generalmanager-0.80.3 → generalmanager-0.80.5}/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.80.3 → generalmanager-0.80.5}/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
|
|
File without changes
|
{generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/api/graphql_mutations.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/api/graphql_relations.py
RENAMED
|
File without changes
|
{generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/api/graphql_resolvers.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/api/graphql_subscriptions.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/api/graphql_warmup_registry.py
RENAMED
|
File without changes
|
{generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/api/graphql_warmup_tasks.py
RENAMED
|
File without changes
|
|
File without changes
|
{generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/api/notification_batching.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{generalmanager-0.80.3 → generalmanager-0.80.5}/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.80.3 → generalmanager-0.80.5}/src/general_manager/bucket/_materialized_bucket.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/bucket/calculation_bucket.py
RENAMED
|
File without changes
|
{generalmanager-0.80.3 → generalmanager-0.80.5}/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.80.3 → generalmanager-0.80.5}/src/general_manager/bucket/request_bucket.py
RENAMED
|
File without changes
|
|
File without changes
|
{generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/cache/_dependency_graph.py
RENAMED
|
File without changes
|
{generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/cache/cache_decorator.py
RENAMED
|
File without changes
|
|
File without changes
|
{generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/cache/data_change_context.py
RENAMED
|
File without changes
|
{generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/cache/dependency_cache.py
RENAMED
|
File without changes
|
{generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/cache/dependency_index.py
RENAMED
|
File without changes
|
{generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/cache/dependency_matching.py
RENAMED
|
File without changes
|
{generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/cache/dependency_publish.py
RENAMED
|
File without changes
|
{generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/cache/dependency_shards.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/cache/run_context_lru.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/chat/evals/diagnostics.py
RENAMED
|
File without changes
|
{generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/chat/evals/fingerprints.py
RENAMED
|
File without changes
|
|
File without changes
|
{generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/chat/evals/judges/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{generalmanager-0.80.3 → generalmanager-0.80.5}/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.80.3 → generalmanager-0.80.5}/src/general_manager/chat/planned/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/chat/planned/calculations.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/chat/planned/evidence.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/chat/planned/provider_calls.py
RENAMED
|
File without changes
|
{generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/chat/planned/resolver.py
RENAMED
|
File without changes
|
|
File without changes
|
{generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/chat/planned/scheduler.py
RENAMED
|
File without changes
|
{generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/chat/planned/synthesis.py
RENAMED
|
File without changes
|
{generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/chat/planned/validation.py
RENAMED
|
File without changes
|
{generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/chat/providers/__init__.py
RENAMED
|
File without changes
|
{generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/chat/providers/_shared.py
RENAMED
|
File without changes
|
{generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/chat/providers/anthropic.py
RENAMED
|
File without changes
|
|
File without changes
|
{generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/chat/providers/google.py
RENAMED
|
File without changes
|
{generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/chat/providers/ollama.py
RENAMED
|
File without changes
|
{generalmanager-0.80.3 → generalmanager-0.80.5}/src/general_manager/chat/providers/openai.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|