GeneralManager 0.40.2__tar.gz → 0.40.3__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.40.2/src/GeneralManager.egg-info → generalmanager-0.40.3}/PKG-INFO +1 -1
- {generalmanager-0.40.2 → generalmanager-0.40.3}/pyproject.toml +1 -1
- {generalmanager-0.40.2 → generalmanager-0.40.3/src/GeneralManager.egg-info}/PKG-INFO +1 -1
- {generalmanager-0.40.2 → generalmanager-0.40.3}/src/general_manager/bucket/calculation_bucket.py +81 -24
- {generalmanager-0.40.2 → generalmanager-0.40.3}/LICENSE +0 -0
- {generalmanager-0.40.2 → generalmanager-0.40.3}/README.md +0 -0
- {generalmanager-0.40.2 → generalmanager-0.40.3}/setup.cfg +0 -0
- {generalmanager-0.40.2 → generalmanager-0.40.3}/src/GeneralManager.egg-info/SOURCES.txt +0 -0
- {generalmanager-0.40.2 → generalmanager-0.40.3}/src/GeneralManager.egg-info/dependency_links.txt +0 -0
- {generalmanager-0.40.2 → generalmanager-0.40.3}/src/GeneralManager.egg-info/requires.txt +0 -0
- {generalmanager-0.40.2 → generalmanager-0.40.3}/src/GeneralManager.egg-info/top_level.txt +0 -0
- {generalmanager-0.40.2 → generalmanager-0.40.3}/src/general_manager/__init__.py +0 -0
- {generalmanager-0.40.2 → generalmanager-0.40.3}/src/general_manager/_types/__init__.py +0 -0
- {generalmanager-0.40.2 → generalmanager-0.40.3}/src/general_manager/_types/api.py +0 -0
- {generalmanager-0.40.2 → generalmanager-0.40.3}/src/general_manager/_types/bucket.py +0 -0
- {generalmanager-0.40.2 → generalmanager-0.40.3}/src/general_manager/_types/cache.py +0 -0
- {generalmanager-0.40.2 → generalmanager-0.40.3}/src/general_manager/_types/factory.py +0 -0
- {generalmanager-0.40.2 → generalmanager-0.40.3}/src/general_manager/_types/general_manager.py +0 -0
- {generalmanager-0.40.2 → generalmanager-0.40.3}/src/general_manager/_types/interface.py +0 -0
- {generalmanager-0.40.2 → generalmanager-0.40.3}/src/general_manager/_types/manager.py +0 -0
- {generalmanager-0.40.2 → generalmanager-0.40.3}/src/general_manager/_types/measurement.py +0 -0
- {generalmanager-0.40.2 → generalmanager-0.40.3}/src/general_manager/_types/permission.py +0 -0
- {generalmanager-0.40.2 → generalmanager-0.40.3}/src/general_manager/_types/rule.py +0 -0
- {generalmanager-0.40.2 → generalmanager-0.40.3}/src/general_manager/_types/search.py +0 -0
- {generalmanager-0.40.2 → generalmanager-0.40.3}/src/general_manager/_types/utils.py +0 -0
- {generalmanager-0.40.2 → generalmanager-0.40.3}/src/general_manager/api/__init__.py +0 -0
- {generalmanager-0.40.2 → generalmanager-0.40.3}/src/general_manager/api/graphql.py +0 -0
- {generalmanager-0.40.2 → generalmanager-0.40.3}/src/general_manager/api/graphql_errors.py +0 -0
- {generalmanager-0.40.2 → generalmanager-0.40.3}/src/general_manager/api/graphql_mutations.py +0 -0
- {generalmanager-0.40.2 → generalmanager-0.40.3}/src/general_manager/api/graphql_resolvers.py +0 -0
- {generalmanager-0.40.2 → generalmanager-0.40.3}/src/general_manager/api/graphql_search.py +0 -0
- {generalmanager-0.40.2 → generalmanager-0.40.3}/src/general_manager/api/graphql_subscription_consumer.py +0 -0
- {generalmanager-0.40.2 → generalmanager-0.40.3}/src/general_manager/api/graphql_subscriptions.py +0 -0
- {generalmanager-0.40.2 → generalmanager-0.40.3}/src/general_manager/api/graphql_view.py +0 -0
- {generalmanager-0.40.2 → generalmanager-0.40.3}/src/general_manager/api/mutation.py +0 -0
- {generalmanager-0.40.2 → generalmanager-0.40.3}/src/general_manager/api/property.py +0 -0
- {generalmanager-0.40.2 → generalmanager-0.40.3}/src/general_manager/api/registry.py +0 -0
- {generalmanager-0.40.2 → generalmanager-0.40.3}/src/general_manager/api/remote_api.py +0 -0
- {generalmanager-0.40.2 → generalmanager-0.40.3}/src/general_manager/api/remote_invalidation.py +0 -0
- {generalmanager-0.40.2 → generalmanager-0.40.3}/src/general_manager/api/remote_invalidation_client.py +0 -0
- {generalmanager-0.40.2 → generalmanager-0.40.3}/src/general_manager/apps.py +0 -0
- {generalmanager-0.40.2 → generalmanager-0.40.3}/src/general_manager/bootstrap.py +0 -0
- {generalmanager-0.40.2 → generalmanager-0.40.3}/src/general_manager/bucket/__init__.py +0 -0
- {generalmanager-0.40.2 → generalmanager-0.40.3}/src/general_manager/bucket/base_bucket.py +0 -0
- {generalmanager-0.40.2 → generalmanager-0.40.3}/src/general_manager/bucket/database_bucket.py +0 -0
- {generalmanager-0.40.2 → generalmanager-0.40.3}/src/general_manager/bucket/group_bucket.py +0 -0
- {generalmanager-0.40.2 → generalmanager-0.40.3}/src/general_manager/bucket/request_bucket.py +0 -0
- {generalmanager-0.40.2 → generalmanager-0.40.3}/src/general_manager/cache/__init__.py +0 -0
- {generalmanager-0.40.2 → generalmanager-0.40.3}/src/general_manager/cache/cache_decorator.py +0 -0
- {generalmanager-0.40.2 → generalmanager-0.40.3}/src/general_manager/cache/cache_tracker.py +0 -0
- {generalmanager-0.40.2 → generalmanager-0.40.3}/src/general_manager/cache/dependency_index.py +0 -0
- {generalmanager-0.40.2 → generalmanager-0.40.3}/src/general_manager/cache/model_dependency_collector.py +0 -0
- {generalmanager-0.40.2 → generalmanager-0.40.3}/src/general_manager/cache/signals.py +0 -0
- {generalmanager-0.40.2 → generalmanager-0.40.3}/src/general_manager/conf.py +0 -0
- {generalmanager-0.40.2 → generalmanager-0.40.3}/src/general_manager/factory/__init__.py +0 -0
- {generalmanager-0.40.2 → generalmanager-0.40.3}/src/general_manager/factory/auto_factory.py +0 -0
- {generalmanager-0.40.2 → generalmanager-0.40.3}/src/general_manager/factory/factories.py +0 -0
- {generalmanager-0.40.2 → generalmanager-0.40.3}/src/general_manager/factory/factory_methods.py +0 -0
- {generalmanager-0.40.2 → generalmanager-0.40.3}/src/general_manager/interface/__init__.py +0 -0
- {generalmanager-0.40.2 → generalmanager-0.40.3}/src/general_manager/interface/base_interface.py +0 -0
- {generalmanager-0.40.2 → generalmanager-0.40.3}/src/general_manager/interface/bundles/__init__.py +0 -0
- {generalmanager-0.40.2 → generalmanager-0.40.3}/src/general_manager/interface/bundles/calculation.py +0 -0
- {generalmanager-0.40.2 → generalmanager-0.40.3}/src/general_manager/interface/bundles/database.py +0 -0
- {generalmanager-0.40.2 → generalmanager-0.40.3}/src/general_manager/interface/bundles/remote_manager.py +0 -0
- {generalmanager-0.40.2 → generalmanager-0.40.3}/src/general_manager/interface/bundles/request.py +0 -0
- {generalmanager-0.40.2 → generalmanager-0.40.3}/src/general_manager/interface/capabilities/__init__.py +0 -0
- {generalmanager-0.40.2 → generalmanager-0.40.3}/src/general_manager/interface/capabilities/base.py +0 -0
- {generalmanager-0.40.2 → generalmanager-0.40.3}/src/general_manager/interface/capabilities/builtin.py +0 -0
- {generalmanager-0.40.2 → generalmanager-0.40.3}/src/general_manager/interface/capabilities/calculation/__init__.py +0 -0
- {generalmanager-0.40.2 → generalmanager-0.40.3}/src/general_manager/interface/capabilities/calculation/_compat.py +0 -0
- {generalmanager-0.40.2 → generalmanager-0.40.3}/src/general_manager/interface/capabilities/calculation/lifecycle.py +0 -0
- {generalmanager-0.40.2 → generalmanager-0.40.3}/src/general_manager/interface/capabilities/configuration.py +0 -0
- {generalmanager-0.40.2 → generalmanager-0.40.3}/src/general_manager/interface/capabilities/core/observability.py +0 -0
- {generalmanager-0.40.2 → generalmanager-0.40.3}/src/general_manager/interface/capabilities/core/utils.py +0 -0
- {generalmanager-0.40.2 → generalmanager-0.40.3}/src/general_manager/interface/capabilities/exceptions.py +0 -0
- {generalmanager-0.40.2 → generalmanager-0.40.3}/src/general_manager/interface/capabilities/existing_model/__init__.py +0 -0
- {generalmanager-0.40.2 → generalmanager-0.40.3}/src/general_manager/interface/capabilities/existing_model/_compat.py +0 -0
- {generalmanager-0.40.2 → generalmanager-0.40.3}/src/general_manager/interface/capabilities/existing_model/resolution.py +0 -0
- {generalmanager-0.40.2 → generalmanager-0.40.3}/src/general_manager/interface/capabilities/factory.py +0 -0
- {generalmanager-0.40.2 → generalmanager-0.40.3}/src/general_manager/interface/capabilities/orm/__init__.py +0 -0
- {generalmanager-0.40.2 → generalmanager-0.40.3}/src/general_manager/interface/capabilities/orm/_compat.py +0 -0
- {generalmanager-0.40.2 → generalmanager-0.40.3}/src/general_manager/interface/capabilities/orm/history.py +0 -0
- {generalmanager-0.40.2 → generalmanager-0.40.3}/src/general_manager/interface/capabilities/orm/lifecycle.py +0 -0
- {generalmanager-0.40.2 → generalmanager-0.40.3}/src/general_manager/interface/capabilities/orm/mutations.py +0 -0
- {generalmanager-0.40.2 → generalmanager-0.40.3}/src/general_manager/interface/capabilities/orm/support.py +0 -0
- {generalmanager-0.40.2 → generalmanager-0.40.3}/src/general_manager/interface/capabilities/orm_utils/__init__.py +0 -0
- {generalmanager-0.40.2 → generalmanager-0.40.3}/src/general_manager/interface/capabilities/orm_utils/django_manager_utils.py +0 -0
- {generalmanager-0.40.2 → generalmanager-0.40.3}/src/general_manager/interface/capabilities/orm_utils/field_descriptors.py +0 -0
- {generalmanager-0.40.2 → generalmanager-0.40.3}/src/general_manager/interface/capabilities/orm_utils/payload_normalizer.py +0 -0
- {generalmanager-0.40.2 → generalmanager-0.40.3}/src/general_manager/interface/capabilities/read_only/__init__.py +0 -0
- {generalmanager-0.40.2 → generalmanager-0.40.3}/src/general_manager/interface/capabilities/read_only/_compat.py +0 -0
- {generalmanager-0.40.2 → generalmanager-0.40.3}/src/general_manager/interface/capabilities/read_only/lifecycle.py +0 -0
- {generalmanager-0.40.2 → generalmanager-0.40.3}/src/general_manager/interface/capabilities/read_only/management.py +0 -0
- {generalmanager-0.40.2 → generalmanager-0.40.3}/src/general_manager/interface/capabilities/registry.py +0 -0
- {generalmanager-0.40.2 → generalmanager-0.40.3}/src/general_manager/interface/capabilities/remote_manager.py +0 -0
- {generalmanager-0.40.2 → generalmanager-0.40.3}/src/general_manager/interface/capabilities/request/__init__.py +0 -0
- {generalmanager-0.40.2 → generalmanager-0.40.3}/src/general_manager/interface/infrastructure/startup_hooks.py +0 -0
- {generalmanager-0.40.2 → generalmanager-0.40.3}/src/general_manager/interface/infrastructure/system_checks.py +0 -0
- {generalmanager-0.40.2 → generalmanager-0.40.3}/src/general_manager/interface/interfaces/__init__.py +0 -0
- {generalmanager-0.40.2 → generalmanager-0.40.3}/src/general_manager/interface/interfaces/calculation.py +0 -0
- {generalmanager-0.40.2 → generalmanager-0.40.3}/src/general_manager/interface/interfaces/database.py +0 -0
- {generalmanager-0.40.2 → generalmanager-0.40.3}/src/general_manager/interface/interfaces/existing_model.py +0 -0
- {generalmanager-0.40.2 → generalmanager-0.40.3}/src/general_manager/interface/interfaces/read_only.py +0 -0
- {generalmanager-0.40.2 → generalmanager-0.40.3}/src/general_manager/interface/interfaces/remote_manager.py +0 -0
- {generalmanager-0.40.2 → generalmanager-0.40.3}/src/general_manager/interface/interfaces/request.py +0 -0
- {generalmanager-0.40.2 → generalmanager-0.40.3}/src/general_manager/interface/manifests/__init__.py +0 -0
- {generalmanager-0.40.2 → generalmanager-0.40.3}/src/general_manager/interface/manifests/capability_builder.py +0 -0
- {generalmanager-0.40.2 → generalmanager-0.40.3}/src/general_manager/interface/manifests/capability_manifest.py +0 -0
- {generalmanager-0.40.2 → generalmanager-0.40.3}/src/general_manager/interface/manifests/capability_models.py +0 -0
- {generalmanager-0.40.2 → generalmanager-0.40.3}/src/general_manager/interface/orm_interface.py +0 -0
- {generalmanager-0.40.2 → generalmanager-0.40.3}/src/general_manager/interface/requests.py +0 -0
- {generalmanager-0.40.2 → generalmanager-0.40.3}/src/general_manager/interface/utils/__init__.py +0 -0
- {generalmanager-0.40.2 → generalmanager-0.40.3}/src/general_manager/interface/utils/database_interface_protocols.py +0 -0
- {generalmanager-0.40.2 → generalmanager-0.40.3}/src/general_manager/interface/utils/errors.py +0 -0
- {generalmanager-0.40.2 → generalmanager-0.40.3}/src/general_manager/interface/utils/models.py +0 -0
- {generalmanager-0.40.2 → generalmanager-0.40.3}/src/general_manager/logging.py +0 -0
- {generalmanager-0.40.2 → generalmanager-0.40.3}/src/general_manager/management/commands/search_index.py +0 -0
- {generalmanager-0.40.2 → generalmanager-0.40.3}/src/general_manager/management/commands/seed_manager_landscape.py +0 -0
- {generalmanager-0.40.2 → generalmanager-0.40.3}/src/general_manager/management/commands/shell.py +0 -0
- {generalmanager-0.40.2 → generalmanager-0.40.3}/src/general_manager/management/commands/workflow_drain_outbox.py +0 -0
- {generalmanager-0.40.2 → generalmanager-0.40.3}/src/general_manager/management/commands/workflow_replay_dead_letters.py +0 -0
- {generalmanager-0.40.2 → generalmanager-0.40.3}/src/general_manager/manager/__init__.py +0 -0
- {generalmanager-0.40.2 → generalmanager-0.40.3}/src/general_manager/manager/general_manager.py +0 -0
- {generalmanager-0.40.2 → generalmanager-0.40.3}/src/general_manager/manager/group_manager.py +0 -0
- {generalmanager-0.40.2 → generalmanager-0.40.3}/src/general_manager/manager/input.py +0 -0
- {generalmanager-0.40.2 → generalmanager-0.40.3}/src/general_manager/manager/meta.py +0 -0
- {generalmanager-0.40.2 → generalmanager-0.40.3}/src/general_manager/measurement/__init__.py +0 -0
- {generalmanager-0.40.2 → generalmanager-0.40.3}/src/general_manager/measurement/measurement.py +0 -0
- {generalmanager-0.40.2 → generalmanager-0.40.3}/src/general_manager/measurement/measurement_field.py +0 -0
- {generalmanager-0.40.2 → generalmanager-0.40.3}/src/general_manager/metrics/__init__.py +0 -0
- {generalmanager-0.40.2 → generalmanager-0.40.3}/src/general_manager/metrics/graphql.py +0 -0
- {generalmanager-0.40.2 → generalmanager-0.40.3}/src/general_manager/migrations/0001_initial.py +0 -0
- {generalmanager-0.40.2 → generalmanager-0.40.3}/src/general_manager/migrations/0002_workflow_outbox_scaling_indexes.py +0 -0
- {generalmanager-0.40.2 → generalmanager-0.40.3}/src/general_manager/migrations/0003_workflow_execution_correlation_constraint.py +0 -0
- {generalmanager-0.40.2 → generalmanager-0.40.3}/src/general_manager/migrations/__init__.py +0 -0
- {generalmanager-0.40.2 → generalmanager-0.40.3}/src/general_manager/models.py +0 -0
- {generalmanager-0.40.2 → generalmanager-0.40.3}/src/general_manager/permission/__init__.py +0 -0
- {generalmanager-0.40.2 → generalmanager-0.40.3}/src/general_manager/permission/audit.py +0 -0
- {generalmanager-0.40.2 → generalmanager-0.40.3}/src/general_manager/permission/base_permission.py +0 -0
- {generalmanager-0.40.2 → generalmanager-0.40.3}/src/general_manager/permission/graphql_capabilities.py +0 -0
- {generalmanager-0.40.2 → generalmanager-0.40.3}/src/general_manager/permission/manager_based_permission.py +0 -0
- {generalmanager-0.40.2 → generalmanager-0.40.3}/src/general_manager/permission/mutation_permission.py +0 -0
- {generalmanager-0.40.2 → generalmanager-0.40.3}/src/general_manager/permission/permission_checks.py +0 -0
- {generalmanager-0.40.2 → generalmanager-0.40.3}/src/general_manager/permission/permission_data_manager.py +0 -0
- {generalmanager-0.40.2 → generalmanager-0.40.3}/src/general_manager/permission/utils.py +0 -0
- {generalmanager-0.40.2 → generalmanager-0.40.3}/src/general_manager/public_api_registry.py +0 -0
- {generalmanager-0.40.2 → generalmanager-0.40.3}/src/general_manager/py.typed +0 -0
- {generalmanager-0.40.2 → generalmanager-0.40.3}/src/general_manager/rule/__init__.py +0 -0
- {generalmanager-0.40.2 → generalmanager-0.40.3}/src/general_manager/rule/handler.py +0 -0
- {generalmanager-0.40.2 → generalmanager-0.40.3}/src/general_manager/rule/rule.py +0 -0
- {generalmanager-0.40.2 → generalmanager-0.40.3}/src/general_manager/search/__init__.py +0 -0
- {generalmanager-0.40.2 → generalmanager-0.40.3}/src/general_manager/search/async_tasks.py +0 -0
- {generalmanager-0.40.2 → generalmanager-0.40.3}/src/general_manager/search/backend.py +0 -0
- {generalmanager-0.40.2 → generalmanager-0.40.3}/src/general_manager/search/backend_registry.py +0 -0
- {generalmanager-0.40.2 → generalmanager-0.40.3}/src/general_manager/search/backends/__init__.py +0 -0
- {generalmanager-0.40.2 → generalmanager-0.40.3}/src/general_manager/search/backends/dev.py +0 -0
- {generalmanager-0.40.2 → generalmanager-0.40.3}/src/general_manager/search/backends/meilisearch.py +0 -0
- {generalmanager-0.40.2 → generalmanager-0.40.3}/src/general_manager/search/backends/opensearch.py +0 -0
- {generalmanager-0.40.2 → generalmanager-0.40.3}/src/general_manager/search/backends/typesense.py +0 -0
- {generalmanager-0.40.2 → generalmanager-0.40.3}/src/general_manager/search/config.py +0 -0
- {generalmanager-0.40.2 → generalmanager-0.40.3}/src/general_manager/search/indexer.py +0 -0
- {generalmanager-0.40.2 → generalmanager-0.40.3}/src/general_manager/search/registry.py +0 -0
- {generalmanager-0.40.2 → generalmanager-0.40.3}/src/general_manager/search/utils.py +0 -0
- {generalmanager-0.40.2 → generalmanager-0.40.3}/src/general_manager/seeding/__init__.py +0 -0
- {generalmanager-0.40.2 → generalmanager-0.40.3}/src/general_manager/seeding/manager_landscape.py +0 -0
- {generalmanager-0.40.2 → generalmanager-0.40.3}/src/general_manager/utils/__init__.py +0 -0
- {generalmanager-0.40.2 → generalmanager-0.40.3}/src/general_manager/utils/args_to_kwargs.py +0 -0
- {generalmanager-0.40.2 → generalmanager-0.40.3}/src/general_manager/utils/filter_parser.py +0 -0
- {generalmanager-0.40.2 → generalmanager-0.40.3}/src/general_manager/utils/format_string.py +0 -0
- {generalmanager-0.40.2 → generalmanager-0.40.3}/src/general_manager/utils/json_encoder.py +0 -0
- {generalmanager-0.40.2 → generalmanager-0.40.3}/src/general_manager/utils/make_cache_key.py +0 -0
- {generalmanager-0.40.2 → generalmanager-0.40.3}/src/general_manager/utils/none_to_zero.py +0 -0
- {generalmanager-0.40.2 → generalmanager-0.40.3}/src/general_manager/utils/path_mapping.py +0 -0
- {generalmanager-0.40.2 → generalmanager-0.40.3}/src/general_manager/utils/public_api.py +0 -0
- {generalmanager-0.40.2 → generalmanager-0.40.3}/src/general_manager/utils/testing.py +0 -0
- {generalmanager-0.40.2 → generalmanager-0.40.3}/src/general_manager/utils/type_checks.py +0 -0
- {generalmanager-0.40.2 → generalmanager-0.40.3}/src/general_manager/workflow/__init__.py +0 -0
- {generalmanager-0.40.2 → generalmanager-0.40.3}/src/general_manager/workflow/actions.py +0 -0
- {generalmanager-0.40.2 → generalmanager-0.40.3}/src/general_manager/workflow/backend_registry.py +0 -0
- {generalmanager-0.40.2 → generalmanager-0.40.3}/src/general_manager/workflow/backends/__init__.py +0 -0
- {generalmanager-0.40.2 → generalmanager-0.40.3}/src/general_manager/workflow/backends/celery.py +0 -0
- {generalmanager-0.40.2 → generalmanager-0.40.3}/src/general_manager/workflow/backends/local.py +0 -0
- {generalmanager-0.40.2 → generalmanager-0.40.3}/src/general_manager/workflow/backends/n8n.py +0 -0
- {generalmanager-0.40.2 → generalmanager-0.40.3}/src/general_manager/workflow/config.py +0 -0
- {generalmanager-0.40.2 → generalmanager-0.40.3}/src/general_manager/workflow/engine.py +0 -0
- {generalmanager-0.40.2 → generalmanager-0.40.3}/src/general_manager/workflow/event_registry.py +0 -0
- {generalmanager-0.40.2 → generalmanager-0.40.3}/src/general_manager/workflow/events.py +0 -0
- {generalmanager-0.40.2 → generalmanager-0.40.3}/src/general_manager/workflow/models.py +0 -0
- {generalmanager-0.40.2 → generalmanager-0.40.3}/src/general_manager/workflow/signal_bridge.py +0 -0
- {generalmanager-0.40.2 → generalmanager-0.40.3}/src/general_manager/workflow/tasks.py +0 -0
- {generalmanager-0.40.2 → generalmanager-0.40.3}/src/general_manager/workflow/telemetry.py +0 -0
- {generalmanager-0.40.2 → generalmanager-0.40.3}/tests/test_settings.py +0 -0
- {generalmanager-0.40.2 → generalmanager-0.40.3}/tests/test_urls.py +0 -0
- {generalmanager-0.40.2 → generalmanager-0.40.3}/tests/testing_asgi.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: GeneralManager
|
|
3
|
-
Version: 0.40.
|
|
3
|
+
Version: 0.40.3
|
|
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.40.
|
|
7
|
+
version = "0.40.3"
|
|
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.40.
|
|
3
|
+
Version: 0.40.3
|
|
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
|
{generalmanager-0.40.2 → generalmanager-0.40.3}/src/general_manager/bucket/calculation_bucket.py
RENAMED
|
@@ -453,6 +453,51 @@ class CalculationBucket(Bucket[GeneralManagerType]):
|
|
|
453
453
|
"input_excludes": input_excludes,
|
|
454
454
|
}
|
|
455
455
|
|
|
456
|
+
def _normalized_sort_key(self) -> tuple[str, ...] | None:
|
|
457
|
+
"""Return the configured sort key as a tuple, or None when unsorted."""
|
|
458
|
+
if self.sort_key is None:
|
|
459
|
+
return None
|
|
460
|
+
if isinstance(self.sort_key, str):
|
|
461
|
+
return (self.sort_key,)
|
|
462
|
+
return self.sort_key
|
|
463
|
+
|
|
464
|
+
def _sort_uses_only_inputs(self, sort_key: tuple[str, ...] | None) -> bool:
|
|
465
|
+
"""Return whether a sort can be applied to raw input dictionaries."""
|
|
466
|
+
if sort_key is None:
|
|
467
|
+
return True
|
|
468
|
+
return all(key in self.input_fields for key in sort_key)
|
|
469
|
+
|
|
470
|
+
def _sort_dict_combinations(
|
|
471
|
+
self,
|
|
472
|
+
combinations: list[dict[str, Any]],
|
|
473
|
+
sort_key: tuple[str, ...],
|
|
474
|
+
) -> list[dict[str, Any]]:
|
|
475
|
+
"""
|
|
476
|
+
Sort input dictionaries while tolerating missing optional inputs.
|
|
477
|
+
|
|
478
|
+
Present values sort before missing values in ascending order. Missing
|
|
479
|
+
keys use None as the explicit placeholder, guarded by a presence flag so
|
|
480
|
+
they are not compared directly with concrete input values.
|
|
481
|
+
"""
|
|
482
|
+
return sorted(
|
|
483
|
+
combinations,
|
|
484
|
+
key=lambda combo: tuple(
|
|
485
|
+
(key not in combo, combo.get(key, None)) for key in sort_key
|
|
486
|
+
),
|
|
487
|
+
)
|
|
488
|
+
|
|
489
|
+
def _manager_combinations(
|
|
490
|
+
self,
|
|
491
|
+
combinations: list[dict[str, Any]],
|
|
492
|
+
) -> list[GeneralManagerType]:
|
|
493
|
+
return [self._manager_class(**combo) for combo in combinations]
|
|
494
|
+
|
|
495
|
+
@staticmethod
|
|
496
|
+
def _manager_identifications(
|
|
497
|
+
managers: list[GeneralManagerType],
|
|
498
|
+
) -> list[dict[str, Any]]:
|
|
499
|
+
return [manager.identification for manager in managers]
|
|
500
|
+
|
|
456
501
|
def generate_combinations(self) -> List[dict[str, Any]]:
|
|
457
502
|
"""
|
|
458
503
|
Compute (and cache) the list of valid input combinations.
|
|
@@ -461,10 +506,6 @@ class CalculationBucket(Bucket[GeneralManagerType]):
|
|
|
461
506
|
list[dict[str, Any]]: Cached list of input dictionaries satisfying filters, excludes, and ordering.
|
|
462
507
|
"""
|
|
463
508
|
|
|
464
|
-
def key_func(manager_obj: GeneralManagerType) -> tuple:
|
|
465
|
-
getters = [attrgetter(key) for key in sort_key]
|
|
466
|
-
return tuple(getter(manager_obj) for getter in getters)
|
|
467
|
-
|
|
468
509
|
if self._data is None:
|
|
469
510
|
sorted_inputs = self.topological_sort_inputs()
|
|
470
511
|
sorted_filters = self._sort_filters(sorted_inputs)
|
|
@@ -473,23 +514,40 @@ class CalculationBucket(Bucket[GeneralManagerType]):
|
|
|
473
514
|
sorted_filters["input_filters"],
|
|
474
515
|
sorted_filters["input_excludes"],
|
|
475
516
|
)
|
|
476
|
-
|
|
477
|
-
|
|
478
|
-
sorted_filters["prop_filters"]
|
|
479
|
-
sorted_filters["prop_excludes"]
|
|
517
|
+
sort_key = self._normalized_sort_key()
|
|
518
|
+
needs_manager_access = (
|
|
519
|
+
bool(sorted_filters["prop_filters"])
|
|
520
|
+
or bool(sorted_filters["prop_excludes"])
|
|
521
|
+
or not self._sort_uses_only_inputs(sort_key)
|
|
480
522
|
)
|
|
481
523
|
|
|
482
|
-
if
|
|
483
|
-
|
|
484
|
-
|
|
485
|
-
sort_key = (sort_key,)
|
|
486
|
-
manager_combinations = sorted(
|
|
524
|
+
if needs_manager_access:
|
|
525
|
+
manager_combinations = self._manager_combinations(current_combinations)
|
|
526
|
+
manager_combinations = self._filter_prop_combinations(
|
|
487
527
|
manager_combinations,
|
|
488
|
-
|
|
528
|
+
sorted_filters["prop_filters"],
|
|
529
|
+
sorted_filters["prop_excludes"],
|
|
489
530
|
)
|
|
531
|
+
if sort_key is not None:
|
|
532
|
+
getters = [attrgetter(key) for key in sort_key]
|
|
533
|
+
manager_combinations = sorted(
|
|
534
|
+
manager_combinations,
|
|
535
|
+
key=lambda manager_obj: tuple(
|
|
536
|
+
getter(manager_obj) for getter in getters
|
|
537
|
+
),
|
|
538
|
+
)
|
|
539
|
+
identifications = self._manager_identifications(manager_combinations)
|
|
540
|
+
else:
|
|
541
|
+
identifications = current_combinations
|
|
542
|
+
if sort_key is not None:
|
|
543
|
+
identifications = self._sort_dict_combinations(
|
|
544
|
+
identifications,
|
|
545
|
+
sort_key,
|
|
546
|
+
)
|
|
547
|
+
|
|
490
548
|
if self.reverse:
|
|
491
|
-
|
|
492
|
-
self._data =
|
|
549
|
+
identifications.reverse()
|
|
550
|
+
self._data = identifications
|
|
493
551
|
|
|
494
552
|
return self._data
|
|
495
553
|
|
|
@@ -670,9 +728,9 @@ class CalculationBucket(Bucket[GeneralManagerType]):
|
|
|
670
728
|
|
|
671
729
|
return list(helper(0, {}))
|
|
672
730
|
|
|
673
|
-
def
|
|
731
|
+
def _filter_prop_combinations(
|
|
674
732
|
self,
|
|
675
|
-
|
|
733
|
+
manager_combinations: list[GeneralManagerType],
|
|
676
734
|
prop_filters: dict[str, Any],
|
|
677
735
|
prop_excludes: dict[str, Any],
|
|
678
736
|
) -> list[GeneralManagerType]:
|
|
@@ -680,23 +738,22 @@ class CalculationBucket(Bucket[GeneralManagerType]):
|
|
|
680
738
|
Apply property-level filters and excludes to manager combinations.
|
|
681
739
|
|
|
682
740
|
Parameters:
|
|
683
|
-
|
|
741
|
+
manager_combinations (list[GeneralManagerType]): Managers built from
|
|
742
|
+
input combinations already passing input filters.
|
|
684
743
|
prop_filters (dict[str, Any]): Filter definitions keyed by property name.
|
|
685
744
|
prop_excludes (dict[str, Any]): Exclude definitions keyed by property name.
|
|
686
745
|
|
|
687
746
|
Returns:
|
|
688
|
-
list[GeneralManagerType]: Manager instances that satisfy property
|
|
747
|
+
list[GeneralManagerType]: Manager instances that satisfy property
|
|
748
|
+
constraints.
|
|
689
749
|
"""
|
|
690
750
|
|
|
691
751
|
prop_filter_needed = set(prop_filters.keys()) | set(prop_excludes.keys())
|
|
692
|
-
manager_combinations = [
|
|
693
|
-
self._manager_class(**combo) for combo in current_combos
|
|
694
|
-
]
|
|
695
752
|
if not prop_filter_needed:
|
|
696
753
|
return manager_combinations
|
|
697
754
|
|
|
698
755
|
# Apply property filters and exclusions
|
|
699
|
-
filtered_combos = []
|
|
756
|
+
filtered_combos: list[GeneralManagerType] = []
|
|
700
757
|
for manager in manager_combinations:
|
|
701
758
|
keep = True
|
|
702
759
|
# include filters
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{generalmanager-0.40.2 → generalmanager-0.40.3}/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
|
{generalmanager-0.40.2 → generalmanager-0.40.3}/src/general_manager/_types/general_manager.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{generalmanager-0.40.2 → generalmanager-0.40.3}/src/general_manager/api/graphql_mutations.py
RENAMED
|
File without changes
|
{generalmanager-0.40.2 → generalmanager-0.40.3}/src/general_manager/api/graphql_resolvers.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{generalmanager-0.40.2 → generalmanager-0.40.3}/src/general_manager/api/graphql_subscriptions.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{generalmanager-0.40.2 → generalmanager-0.40.3}/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.40.2 → generalmanager-0.40.3}/src/general_manager/bucket/database_bucket.py
RENAMED
|
File without changes
|
|
File without changes
|
{generalmanager-0.40.2 → generalmanager-0.40.3}/src/general_manager/bucket/request_bucket.py
RENAMED
|
File without changes
|
|
File without changes
|
{generalmanager-0.40.2 → generalmanager-0.40.3}/src/general_manager/cache/cache_decorator.py
RENAMED
|
File without changes
|
|
File without changes
|
{generalmanager-0.40.2 → generalmanager-0.40.3}/src/general_manager/cache/dependency_index.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{generalmanager-0.40.2 → generalmanager-0.40.3}/src/general_manager/factory/factory_methods.py
RENAMED
|
File without changes
|
|
File without changes
|
{generalmanager-0.40.2 → generalmanager-0.40.3}/src/general_manager/interface/base_interface.py
RENAMED
|
File without changes
|
{generalmanager-0.40.2 → generalmanager-0.40.3}/src/general_manager/interface/bundles/__init__.py
RENAMED
|
File without changes
|
{generalmanager-0.40.2 → generalmanager-0.40.3}/src/general_manager/interface/bundles/calculation.py
RENAMED
|
File without changes
|
{generalmanager-0.40.2 → generalmanager-0.40.3}/src/general_manager/interface/bundles/database.py
RENAMED
|
File without changes
|
|
File without changes
|
{generalmanager-0.40.2 → generalmanager-0.40.3}/src/general_manager/interface/bundles/request.py
RENAMED
|
File without changes
|
|
File without changes
|
{generalmanager-0.40.2 → generalmanager-0.40.3}/src/general_manager/interface/capabilities/base.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
|
|
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.40.2 → generalmanager-0.40.3}/src/general_manager/interface/interfaces/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{generalmanager-0.40.2 → generalmanager-0.40.3}/src/general_manager/interface/interfaces/database.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{generalmanager-0.40.2 → generalmanager-0.40.3}/src/general_manager/interface/interfaces/request.py
RENAMED
|
File without changes
|
{generalmanager-0.40.2 → generalmanager-0.40.3}/src/general_manager/interface/manifests/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{generalmanager-0.40.2 → generalmanager-0.40.3}/src/general_manager/interface/orm_interface.py
RENAMED
|
File without changes
|
|
File without changes
|
{generalmanager-0.40.2 → generalmanager-0.40.3}/src/general_manager/interface/utils/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{generalmanager-0.40.2 → generalmanager-0.40.3}/src/general_manager/interface/utils/errors.py
RENAMED
|
File without changes
|
{generalmanager-0.40.2 → generalmanager-0.40.3}/src/general_manager/interface/utils/models.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{generalmanager-0.40.2 → generalmanager-0.40.3}/src/general_manager/management/commands/shell.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{generalmanager-0.40.2 → generalmanager-0.40.3}/src/general_manager/manager/general_manager.py
RENAMED
|
File without changes
|
{generalmanager-0.40.2 → generalmanager-0.40.3}/src/general_manager/manager/group_manager.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{generalmanager-0.40.2 → generalmanager-0.40.3}/src/general_manager/measurement/measurement.py
RENAMED
|
File without changes
|
{generalmanager-0.40.2 → generalmanager-0.40.3}/src/general_manager/measurement/measurement_field.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{generalmanager-0.40.2 → generalmanager-0.40.3}/src/general_manager/migrations/0001_initial.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{generalmanager-0.40.2 → generalmanager-0.40.3}/src/general_manager/permission/base_permission.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{generalmanager-0.40.2 → generalmanager-0.40.3}/src/general_manager/permission/permission_checks.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{generalmanager-0.40.2 → generalmanager-0.40.3}/src/general_manager/search/backend_registry.py
RENAMED
|
File without changes
|
{generalmanager-0.40.2 → generalmanager-0.40.3}/src/general_manager/search/backends/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{generalmanager-0.40.2 → generalmanager-0.40.3}/src/general_manager/search/backends/meilisearch.py
RENAMED
|
File without changes
|
{generalmanager-0.40.2 → generalmanager-0.40.3}/src/general_manager/search/backends/opensearch.py
RENAMED
|
File without changes
|
{generalmanager-0.40.2 → generalmanager-0.40.3}/src/general_manager/search/backends/typesense.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{generalmanager-0.40.2 → generalmanager-0.40.3}/src/general_manager/seeding/manager_landscape.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
|
{generalmanager-0.40.2 → generalmanager-0.40.3}/src/general_manager/workflow/backend_registry.py
RENAMED
|
File without changes
|
{generalmanager-0.40.2 → generalmanager-0.40.3}/src/general_manager/workflow/backends/__init__.py
RENAMED
|
File without changes
|
{generalmanager-0.40.2 → generalmanager-0.40.3}/src/general_manager/workflow/backends/celery.py
RENAMED
|
File without changes
|
{generalmanager-0.40.2 → generalmanager-0.40.3}/src/general_manager/workflow/backends/local.py
RENAMED
|
File without changes
|
{generalmanager-0.40.2 → generalmanager-0.40.3}/src/general_manager/workflow/backends/n8n.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{generalmanager-0.40.2 → generalmanager-0.40.3}/src/general_manager/workflow/event_registry.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{generalmanager-0.40.2 → generalmanager-0.40.3}/src/general_manager/workflow/signal_bridge.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|