GeneralManager 0.41.2__tar.gz → 0.41.4__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {generalmanager-0.41.2/src/GeneralManager.egg-info → generalmanager-0.41.4}/PKG-INFO +1 -1
- {generalmanager-0.41.2 → generalmanager-0.41.4}/pyproject.toml +1 -1
- {generalmanager-0.41.2 → generalmanager-0.41.4/src/GeneralManager.egg-info}/PKG-INFO +1 -1
- {generalmanager-0.41.2 → generalmanager-0.41.4}/src/general_manager/bootstrap.py +39 -13
- {generalmanager-0.41.2 → generalmanager-0.41.4}/src/general_manager/interface/capabilities/orm_utils/field_descriptors.py +23 -0
- {generalmanager-0.41.2 → generalmanager-0.41.4}/src/general_manager/manager/general_manager.py +2 -0
- {generalmanager-0.41.2 → generalmanager-0.41.4}/LICENSE +0 -0
- {generalmanager-0.41.2 → generalmanager-0.41.4}/README.md +0 -0
- {generalmanager-0.41.2 → generalmanager-0.41.4}/setup.cfg +0 -0
- {generalmanager-0.41.2 → generalmanager-0.41.4}/src/GeneralManager.egg-info/SOURCES.txt +0 -0
- {generalmanager-0.41.2 → generalmanager-0.41.4}/src/GeneralManager.egg-info/dependency_links.txt +0 -0
- {generalmanager-0.41.2 → generalmanager-0.41.4}/src/GeneralManager.egg-info/requires.txt +0 -0
- {generalmanager-0.41.2 → generalmanager-0.41.4}/src/GeneralManager.egg-info/top_level.txt +0 -0
- {generalmanager-0.41.2 → generalmanager-0.41.4}/src/general_manager/__init__.py +0 -0
- {generalmanager-0.41.2 → generalmanager-0.41.4}/src/general_manager/_types/__init__.py +0 -0
- {generalmanager-0.41.2 → generalmanager-0.41.4}/src/general_manager/_types/api.py +0 -0
- {generalmanager-0.41.2 → generalmanager-0.41.4}/src/general_manager/_types/bucket.py +0 -0
- {generalmanager-0.41.2 → generalmanager-0.41.4}/src/general_manager/_types/cache.py +0 -0
- {generalmanager-0.41.2 → generalmanager-0.41.4}/src/general_manager/_types/factory.py +0 -0
- {generalmanager-0.41.2 → generalmanager-0.41.4}/src/general_manager/_types/general_manager.py +0 -0
- {generalmanager-0.41.2 → generalmanager-0.41.4}/src/general_manager/_types/interface.py +0 -0
- {generalmanager-0.41.2 → generalmanager-0.41.4}/src/general_manager/_types/manager.py +0 -0
- {generalmanager-0.41.2 → generalmanager-0.41.4}/src/general_manager/_types/measurement.py +0 -0
- {generalmanager-0.41.2 → generalmanager-0.41.4}/src/general_manager/_types/permission.py +0 -0
- {generalmanager-0.41.2 → generalmanager-0.41.4}/src/general_manager/_types/rule.py +0 -0
- {generalmanager-0.41.2 → generalmanager-0.41.4}/src/general_manager/_types/search.py +0 -0
- {generalmanager-0.41.2 → generalmanager-0.41.4}/src/general_manager/_types/utils.py +0 -0
- {generalmanager-0.41.2 → generalmanager-0.41.4}/src/general_manager/api/__init__.py +0 -0
- {generalmanager-0.41.2 → generalmanager-0.41.4}/src/general_manager/api/graphql.py +0 -0
- {generalmanager-0.41.2 → generalmanager-0.41.4}/src/general_manager/api/graphql_errors.py +0 -0
- {generalmanager-0.41.2 → generalmanager-0.41.4}/src/general_manager/api/graphql_mutations.py +0 -0
- {generalmanager-0.41.2 → generalmanager-0.41.4}/src/general_manager/api/graphql_resolvers.py +0 -0
- {generalmanager-0.41.2 → generalmanager-0.41.4}/src/general_manager/api/graphql_search.py +0 -0
- {generalmanager-0.41.2 → generalmanager-0.41.4}/src/general_manager/api/graphql_subscription_consumer.py +0 -0
- {generalmanager-0.41.2 → generalmanager-0.41.4}/src/general_manager/api/graphql_subscriptions.py +0 -0
- {generalmanager-0.41.2 → generalmanager-0.41.4}/src/general_manager/api/graphql_view.py +0 -0
- {generalmanager-0.41.2 → generalmanager-0.41.4}/src/general_manager/api/mutation.py +0 -0
- {generalmanager-0.41.2 → generalmanager-0.41.4}/src/general_manager/api/property.py +0 -0
- {generalmanager-0.41.2 → generalmanager-0.41.4}/src/general_manager/api/registry.py +0 -0
- {generalmanager-0.41.2 → generalmanager-0.41.4}/src/general_manager/api/remote_api.py +0 -0
- {generalmanager-0.41.2 → generalmanager-0.41.4}/src/general_manager/api/remote_invalidation.py +0 -0
- {generalmanager-0.41.2 → generalmanager-0.41.4}/src/general_manager/api/remote_invalidation_client.py +0 -0
- {generalmanager-0.41.2 → generalmanager-0.41.4}/src/general_manager/apps.py +0 -0
- {generalmanager-0.41.2 → generalmanager-0.41.4}/src/general_manager/bucket/__init__.py +0 -0
- {generalmanager-0.41.2 → generalmanager-0.41.4}/src/general_manager/bucket/base_bucket.py +0 -0
- {generalmanager-0.41.2 → generalmanager-0.41.4}/src/general_manager/bucket/calculation_bucket.py +0 -0
- {generalmanager-0.41.2 → generalmanager-0.41.4}/src/general_manager/bucket/database_bucket.py +0 -0
- {generalmanager-0.41.2 → generalmanager-0.41.4}/src/general_manager/bucket/group_bucket.py +0 -0
- {generalmanager-0.41.2 → generalmanager-0.41.4}/src/general_manager/bucket/request_bucket.py +0 -0
- {generalmanager-0.41.2 → generalmanager-0.41.4}/src/general_manager/cache/__init__.py +0 -0
- {generalmanager-0.41.2 → generalmanager-0.41.4}/src/general_manager/cache/cache_decorator.py +0 -0
- {generalmanager-0.41.2 → generalmanager-0.41.4}/src/general_manager/cache/cache_tracker.py +0 -0
- {generalmanager-0.41.2 → generalmanager-0.41.4}/src/general_manager/cache/dependency_index.py +0 -0
- {generalmanager-0.41.2 → generalmanager-0.41.4}/src/general_manager/cache/model_dependency_collector.py +0 -0
- {generalmanager-0.41.2 → generalmanager-0.41.4}/src/general_manager/cache/signals.py +0 -0
- {generalmanager-0.41.2 → generalmanager-0.41.4}/src/general_manager/conf.py +0 -0
- {generalmanager-0.41.2 → generalmanager-0.41.4}/src/general_manager/factory/__init__.py +0 -0
- {generalmanager-0.41.2 → generalmanager-0.41.4}/src/general_manager/factory/auto_factory.py +0 -0
- {generalmanager-0.41.2 → generalmanager-0.41.4}/src/general_manager/factory/factories.py +0 -0
- {generalmanager-0.41.2 → generalmanager-0.41.4}/src/general_manager/factory/factory_methods.py +0 -0
- {generalmanager-0.41.2 → generalmanager-0.41.4}/src/general_manager/interface/__init__.py +0 -0
- {generalmanager-0.41.2 → generalmanager-0.41.4}/src/general_manager/interface/base_interface.py +0 -0
- {generalmanager-0.41.2 → generalmanager-0.41.4}/src/general_manager/interface/bundles/__init__.py +0 -0
- {generalmanager-0.41.2 → generalmanager-0.41.4}/src/general_manager/interface/bundles/calculation.py +0 -0
- {generalmanager-0.41.2 → generalmanager-0.41.4}/src/general_manager/interface/bundles/database.py +0 -0
- {generalmanager-0.41.2 → generalmanager-0.41.4}/src/general_manager/interface/bundles/remote_manager.py +0 -0
- {generalmanager-0.41.2 → generalmanager-0.41.4}/src/general_manager/interface/bundles/request.py +0 -0
- {generalmanager-0.41.2 → generalmanager-0.41.4}/src/general_manager/interface/capabilities/__init__.py +0 -0
- {generalmanager-0.41.2 → generalmanager-0.41.4}/src/general_manager/interface/capabilities/base.py +0 -0
- {generalmanager-0.41.2 → generalmanager-0.41.4}/src/general_manager/interface/capabilities/builtin.py +0 -0
- {generalmanager-0.41.2 → generalmanager-0.41.4}/src/general_manager/interface/capabilities/calculation/__init__.py +0 -0
- {generalmanager-0.41.2 → generalmanager-0.41.4}/src/general_manager/interface/capabilities/calculation/_compat.py +0 -0
- {generalmanager-0.41.2 → generalmanager-0.41.4}/src/general_manager/interface/capabilities/calculation/lifecycle.py +0 -0
- {generalmanager-0.41.2 → generalmanager-0.41.4}/src/general_manager/interface/capabilities/configuration.py +0 -0
- {generalmanager-0.41.2 → generalmanager-0.41.4}/src/general_manager/interface/capabilities/core/observability.py +0 -0
- {generalmanager-0.41.2 → generalmanager-0.41.4}/src/general_manager/interface/capabilities/core/utils.py +0 -0
- {generalmanager-0.41.2 → generalmanager-0.41.4}/src/general_manager/interface/capabilities/exceptions.py +0 -0
- {generalmanager-0.41.2 → generalmanager-0.41.4}/src/general_manager/interface/capabilities/existing_model/__init__.py +0 -0
- {generalmanager-0.41.2 → generalmanager-0.41.4}/src/general_manager/interface/capabilities/existing_model/_compat.py +0 -0
- {generalmanager-0.41.2 → generalmanager-0.41.4}/src/general_manager/interface/capabilities/existing_model/resolution.py +0 -0
- {generalmanager-0.41.2 → generalmanager-0.41.4}/src/general_manager/interface/capabilities/factory.py +0 -0
- {generalmanager-0.41.2 → generalmanager-0.41.4}/src/general_manager/interface/capabilities/orm/__init__.py +0 -0
- {generalmanager-0.41.2 → generalmanager-0.41.4}/src/general_manager/interface/capabilities/orm/_compat.py +0 -0
- {generalmanager-0.41.2 → generalmanager-0.41.4}/src/general_manager/interface/capabilities/orm/history.py +0 -0
- {generalmanager-0.41.2 → generalmanager-0.41.4}/src/general_manager/interface/capabilities/orm/lifecycle.py +0 -0
- {generalmanager-0.41.2 → generalmanager-0.41.4}/src/general_manager/interface/capabilities/orm/mutations.py +0 -0
- {generalmanager-0.41.2 → generalmanager-0.41.4}/src/general_manager/interface/capabilities/orm/support.py +0 -0
- {generalmanager-0.41.2 → generalmanager-0.41.4}/src/general_manager/interface/capabilities/orm_utils/__init__.py +0 -0
- {generalmanager-0.41.2 → generalmanager-0.41.4}/src/general_manager/interface/capabilities/orm_utils/django_manager_utils.py +0 -0
- {generalmanager-0.41.2 → generalmanager-0.41.4}/src/general_manager/interface/capabilities/orm_utils/payload_normalizer.py +0 -0
- {generalmanager-0.41.2 → generalmanager-0.41.4}/src/general_manager/interface/capabilities/read_only/__init__.py +0 -0
- {generalmanager-0.41.2 → generalmanager-0.41.4}/src/general_manager/interface/capabilities/read_only/_compat.py +0 -0
- {generalmanager-0.41.2 → generalmanager-0.41.4}/src/general_manager/interface/capabilities/read_only/lifecycle.py +0 -0
- {generalmanager-0.41.2 → generalmanager-0.41.4}/src/general_manager/interface/capabilities/read_only/management.py +0 -0
- {generalmanager-0.41.2 → generalmanager-0.41.4}/src/general_manager/interface/capabilities/registry.py +0 -0
- {generalmanager-0.41.2 → generalmanager-0.41.4}/src/general_manager/interface/capabilities/remote_manager.py +0 -0
- {generalmanager-0.41.2 → generalmanager-0.41.4}/src/general_manager/interface/capabilities/request/__init__.py +0 -0
- {generalmanager-0.41.2 → generalmanager-0.41.4}/src/general_manager/interface/infrastructure/startup_hooks.py +0 -0
- {generalmanager-0.41.2 → generalmanager-0.41.4}/src/general_manager/interface/infrastructure/system_checks.py +0 -0
- {generalmanager-0.41.2 → generalmanager-0.41.4}/src/general_manager/interface/interfaces/__init__.py +0 -0
- {generalmanager-0.41.2 → generalmanager-0.41.4}/src/general_manager/interface/interfaces/calculation.py +0 -0
- {generalmanager-0.41.2 → generalmanager-0.41.4}/src/general_manager/interface/interfaces/database.py +0 -0
- {generalmanager-0.41.2 → generalmanager-0.41.4}/src/general_manager/interface/interfaces/existing_model.py +0 -0
- {generalmanager-0.41.2 → generalmanager-0.41.4}/src/general_manager/interface/interfaces/read_only.py +0 -0
- {generalmanager-0.41.2 → generalmanager-0.41.4}/src/general_manager/interface/interfaces/remote_manager.py +0 -0
- {generalmanager-0.41.2 → generalmanager-0.41.4}/src/general_manager/interface/interfaces/request.py +0 -0
- {generalmanager-0.41.2 → generalmanager-0.41.4}/src/general_manager/interface/manifests/__init__.py +0 -0
- {generalmanager-0.41.2 → generalmanager-0.41.4}/src/general_manager/interface/manifests/capability_builder.py +0 -0
- {generalmanager-0.41.2 → generalmanager-0.41.4}/src/general_manager/interface/manifests/capability_manifest.py +0 -0
- {generalmanager-0.41.2 → generalmanager-0.41.4}/src/general_manager/interface/manifests/capability_models.py +0 -0
- {generalmanager-0.41.2 → generalmanager-0.41.4}/src/general_manager/interface/orm_interface.py +0 -0
- {generalmanager-0.41.2 → generalmanager-0.41.4}/src/general_manager/interface/requests.py +0 -0
- {generalmanager-0.41.2 → generalmanager-0.41.4}/src/general_manager/interface/utils/__init__.py +0 -0
- {generalmanager-0.41.2 → generalmanager-0.41.4}/src/general_manager/interface/utils/database_interface_protocols.py +0 -0
- {generalmanager-0.41.2 → generalmanager-0.41.4}/src/general_manager/interface/utils/errors.py +0 -0
- {generalmanager-0.41.2 → generalmanager-0.41.4}/src/general_manager/interface/utils/models.py +0 -0
- {generalmanager-0.41.2 → generalmanager-0.41.4}/src/general_manager/logging.py +0 -0
- {generalmanager-0.41.2 → generalmanager-0.41.4}/src/general_manager/management/commands/search_index.py +0 -0
- {generalmanager-0.41.2 → generalmanager-0.41.4}/src/general_manager/management/commands/seed_manager_landscape.py +0 -0
- {generalmanager-0.41.2 → generalmanager-0.41.4}/src/general_manager/management/commands/shell.py +0 -0
- {generalmanager-0.41.2 → generalmanager-0.41.4}/src/general_manager/management/commands/workflow_drain_outbox.py +0 -0
- {generalmanager-0.41.2 → generalmanager-0.41.4}/src/general_manager/management/commands/workflow_replay_dead_letters.py +0 -0
- {generalmanager-0.41.2 → generalmanager-0.41.4}/src/general_manager/manager/__init__.py +0 -0
- {generalmanager-0.41.2 → generalmanager-0.41.4}/src/general_manager/manager/group_manager.py +0 -0
- {generalmanager-0.41.2 → generalmanager-0.41.4}/src/general_manager/manager/input.py +0 -0
- {generalmanager-0.41.2 → generalmanager-0.41.4}/src/general_manager/manager/meta.py +0 -0
- {generalmanager-0.41.2 → generalmanager-0.41.4}/src/general_manager/measurement/__init__.py +0 -0
- {generalmanager-0.41.2 → generalmanager-0.41.4}/src/general_manager/measurement/measurement.py +0 -0
- {generalmanager-0.41.2 → generalmanager-0.41.4}/src/general_manager/measurement/measurement_field.py +0 -0
- {generalmanager-0.41.2 → generalmanager-0.41.4}/src/general_manager/metrics/__init__.py +0 -0
- {generalmanager-0.41.2 → generalmanager-0.41.4}/src/general_manager/metrics/graphql.py +0 -0
- {generalmanager-0.41.2 → generalmanager-0.41.4}/src/general_manager/migrations/0001_initial.py +0 -0
- {generalmanager-0.41.2 → generalmanager-0.41.4}/src/general_manager/migrations/0002_workflow_outbox_scaling_indexes.py +0 -0
- {generalmanager-0.41.2 → generalmanager-0.41.4}/src/general_manager/migrations/0003_workflow_execution_correlation_constraint.py +0 -0
- {generalmanager-0.41.2 → generalmanager-0.41.4}/src/general_manager/migrations/__init__.py +0 -0
- {generalmanager-0.41.2 → generalmanager-0.41.4}/src/general_manager/models.py +0 -0
- {generalmanager-0.41.2 → generalmanager-0.41.4}/src/general_manager/permission/__init__.py +0 -0
- {generalmanager-0.41.2 → generalmanager-0.41.4}/src/general_manager/permission/audit.py +0 -0
- {generalmanager-0.41.2 → generalmanager-0.41.4}/src/general_manager/permission/base_permission.py +0 -0
- {generalmanager-0.41.2 → generalmanager-0.41.4}/src/general_manager/permission/graphql_capabilities.py +0 -0
- {generalmanager-0.41.2 → generalmanager-0.41.4}/src/general_manager/permission/manager_based_permission.py +0 -0
- {generalmanager-0.41.2 → generalmanager-0.41.4}/src/general_manager/permission/mutation_permission.py +0 -0
- {generalmanager-0.41.2 → generalmanager-0.41.4}/src/general_manager/permission/permission_checks.py +0 -0
- {generalmanager-0.41.2 → generalmanager-0.41.4}/src/general_manager/permission/permission_data_manager.py +0 -0
- {generalmanager-0.41.2 → generalmanager-0.41.4}/src/general_manager/permission/utils.py +0 -0
- {generalmanager-0.41.2 → generalmanager-0.41.4}/src/general_manager/public_api_registry.py +0 -0
- {generalmanager-0.41.2 → generalmanager-0.41.4}/src/general_manager/py.typed +0 -0
- {generalmanager-0.41.2 → generalmanager-0.41.4}/src/general_manager/rule/__init__.py +0 -0
- {generalmanager-0.41.2 → generalmanager-0.41.4}/src/general_manager/rule/handler.py +0 -0
- {generalmanager-0.41.2 → generalmanager-0.41.4}/src/general_manager/rule/rule.py +0 -0
- {generalmanager-0.41.2 → generalmanager-0.41.4}/src/general_manager/search/__init__.py +0 -0
- {generalmanager-0.41.2 → generalmanager-0.41.4}/src/general_manager/search/async_tasks.py +0 -0
- {generalmanager-0.41.2 → generalmanager-0.41.4}/src/general_manager/search/backend.py +0 -0
- {generalmanager-0.41.2 → generalmanager-0.41.4}/src/general_manager/search/backend_registry.py +0 -0
- {generalmanager-0.41.2 → generalmanager-0.41.4}/src/general_manager/search/backends/__init__.py +0 -0
- {generalmanager-0.41.2 → generalmanager-0.41.4}/src/general_manager/search/backends/dev.py +0 -0
- {generalmanager-0.41.2 → generalmanager-0.41.4}/src/general_manager/search/backends/meilisearch.py +0 -0
- {generalmanager-0.41.2 → generalmanager-0.41.4}/src/general_manager/search/backends/opensearch.py +0 -0
- {generalmanager-0.41.2 → generalmanager-0.41.4}/src/general_manager/search/backends/typesense.py +0 -0
- {generalmanager-0.41.2 → generalmanager-0.41.4}/src/general_manager/search/config.py +0 -0
- {generalmanager-0.41.2 → generalmanager-0.41.4}/src/general_manager/search/indexer.py +0 -0
- {generalmanager-0.41.2 → generalmanager-0.41.4}/src/general_manager/search/registry.py +0 -0
- {generalmanager-0.41.2 → generalmanager-0.41.4}/src/general_manager/search/utils.py +0 -0
- {generalmanager-0.41.2 → generalmanager-0.41.4}/src/general_manager/seeding/__init__.py +0 -0
- {generalmanager-0.41.2 → generalmanager-0.41.4}/src/general_manager/seeding/manager_landscape.py +0 -0
- {generalmanager-0.41.2 → generalmanager-0.41.4}/src/general_manager/utils/__init__.py +0 -0
- {generalmanager-0.41.2 → generalmanager-0.41.4}/src/general_manager/utils/args_to_kwargs.py +0 -0
- {generalmanager-0.41.2 → generalmanager-0.41.4}/src/general_manager/utils/filter_parser.py +0 -0
- {generalmanager-0.41.2 → generalmanager-0.41.4}/src/general_manager/utils/format_string.py +0 -0
- {generalmanager-0.41.2 → generalmanager-0.41.4}/src/general_manager/utils/json_encoder.py +0 -0
- {generalmanager-0.41.2 → generalmanager-0.41.4}/src/general_manager/utils/make_cache_key.py +0 -0
- {generalmanager-0.41.2 → generalmanager-0.41.4}/src/general_manager/utils/none_to_zero.py +0 -0
- {generalmanager-0.41.2 → generalmanager-0.41.4}/src/general_manager/utils/path_mapping.py +0 -0
- {generalmanager-0.41.2 → generalmanager-0.41.4}/src/general_manager/utils/public_api.py +0 -0
- {generalmanager-0.41.2 → generalmanager-0.41.4}/src/general_manager/utils/testing.py +0 -0
- {generalmanager-0.41.2 → generalmanager-0.41.4}/src/general_manager/utils/type_checks.py +0 -0
- {generalmanager-0.41.2 → generalmanager-0.41.4}/src/general_manager/workflow/__init__.py +0 -0
- {generalmanager-0.41.2 → generalmanager-0.41.4}/src/general_manager/workflow/actions.py +0 -0
- {generalmanager-0.41.2 → generalmanager-0.41.4}/src/general_manager/workflow/backend_registry.py +0 -0
- {generalmanager-0.41.2 → generalmanager-0.41.4}/src/general_manager/workflow/backends/__init__.py +0 -0
- {generalmanager-0.41.2 → generalmanager-0.41.4}/src/general_manager/workflow/backends/celery.py +0 -0
- {generalmanager-0.41.2 → generalmanager-0.41.4}/src/general_manager/workflow/backends/local.py +0 -0
- {generalmanager-0.41.2 → generalmanager-0.41.4}/src/general_manager/workflow/backends/n8n.py +0 -0
- {generalmanager-0.41.2 → generalmanager-0.41.4}/src/general_manager/workflow/config.py +0 -0
- {generalmanager-0.41.2 → generalmanager-0.41.4}/src/general_manager/workflow/engine.py +0 -0
- {generalmanager-0.41.2 → generalmanager-0.41.4}/src/general_manager/workflow/event_registry.py +0 -0
- {generalmanager-0.41.2 → generalmanager-0.41.4}/src/general_manager/workflow/events.py +0 -0
- {generalmanager-0.41.2 → generalmanager-0.41.4}/src/general_manager/workflow/models.py +0 -0
- {generalmanager-0.41.2 → generalmanager-0.41.4}/src/general_manager/workflow/signal_bridge.py +0 -0
- {generalmanager-0.41.2 → generalmanager-0.41.4}/src/general_manager/workflow/tasks.py +0 -0
- {generalmanager-0.41.2 → generalmanager-0.41.4}/src/general_manager/workflow/telemetry.py +0 -0
- {generalmanager-0.41.2 → generalmanager-0.41.4}/tests/test_settings.py +0 -0
- {generalmanager-0.41.2 → generalmanager-0.41.4}/tests/test_urls.py +0 -0
- {generalmanager-0.41.2 → generalmanager-0.41.4}/tests/testing_asgi.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: GeneralManager
|
|
3
|
-
Version: 0.41.
|
|
3
|
+
Version: 0.41.4
|
|
4
4
|
Summary: Modular Django-based data management framework with ORM, GraphQL, fine-grained permissions, rule validation, calculations and caching.
|
|
5
5
|
Author-email: Tim Kleindick <tkleindick@yahoo.de>
|
|
6
6
|
License: MIT License
|
|
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "GeneralManager"
|
|
7
|
-
version = "0.41.
|
|
7
|
+
version = "0.41.4"
|
|
8
8
|
description = "Modular Django-based data management framework with ORM, GraphQL, fine-grained permissions, rule validation, calculations and caching."
|
|
9
9
|
readme = "README.md"
|
|
10
10
|
authors = [{ name = "Tim Kleindick", email = "tkleindick@yahoo.de" }]
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: GeneralManager
|
|
3
|
-
Version: 0.41.
|
|
3
|
+
Version: 0.41.4
|
|
4
4
|
Summary: Modular Django-based data management framework with ORM, GraphQL, fine-grained permissions, rule validation, calculations and caching.
|
|
5
5
|
Author-email: Tim Kleindick <tkleindick@yahoo.de>
|
|
6
6
|
License: MIT License
|
|
@@ -28,7 +28,7 @@ from general_manager.api.graphql import GraphQL
|
|
|
28
28
|
from general_manager.api.remote_api import add_remote_api_urls
|
|
29
29
|
from general_manager.api.remote_invalidation import ensure_remote_invalidation_route
|
|
30
30
|
from general_manager.conf import get_setting
|
|
31
|
-
from general_manager.api.property import
|
|
31
|
+
from general_manager.api.property import GraphQLProperty
|
|
32
32
|
from general_manager.logging import get_logger
|
|
33
33
|
from general_manager.interface.infrastructure.startup_hooks import (
|
|
34
34
|
registered_startup_hook_entries,
|
|
@@ -272,6 +272,32 @@ def initialize_general_manager_classes(
|
|
|
272
272
|
resolver.__annotations__ = {"return": manager_cls}
|
|
273
273
|
return resolver
|
|
274
274
|
|
|
275
|
+
def _iter_manager_relation_fields(
|
|
276
|
+
general_manager_class: Type[_GM],
|
|
277
|
+
) -> Iterable[tuple[str, Type[_GM]]]:
|
|
278
|
+
seen: set[str] = set()
|
|
279
|
+
input_fields = getattr(general_manager_class.Interface, "input_fields", {})
|
|
280
|
+
for attribute_name, attribute in input_fields.items():
|
|
281
|
+
if isinstance(attribute, Input) and issubclass(attribute.type, _GM):
|
|
282
|
+
seen.add(attribute_name)
|
|
283
|
+
yield attribute_name, attribute.type
|
|
284
|
+
|
|
285
|
+
get_attribute_types = getattr(
|
|
286
|
+
general_manager_class.Interface, "get_attribute_types", None
|
|
287
|
+
)
|
|
288
|
+
if not callable(get_attribute_types):
|
|
289
|
+
return
|
|
290
|
+
try:
|
|
291
|
+
attribute_types = get_attribute_types()
|
|
292
|
+
except NotImplementedError:
|
|
293
|
+
return
|
|
294
|
+
for attribute_name, metadata in attribute_types.items():
|
|
295
|
+
if attribute_name in seen or metadata.get("relation_kind") != "direct":
|
|
296
|
+
continue
|
|
297
|
+
field_type = metadata.get("type")
|
|
298
|
+
if isinstance(field_type, type) and issubclass(field_type, _GM):
|
|
299
|
+
yield attribute_name, field_type
|
|
300
|
+
|
|
275
301
|
logger.debug(
|
|
276
302
|
"creating manager attributes",
|
|
277
303
|
context={"pending_attributes": len(pending_attribute_initialization)},
|
|
@@ -294,18 +320,18 @@ def initialize_general_manager_classes(
|
|
|
294
320
|
context={"total_classes": len(all_classes)},
|
|
295
321
|
)
|
|
296
322
|
for general_manager_class in all_classes:
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
323
|
+
for attribute_name, connected_manager in _iter_manager_relation_fields(
|
|
324
|
+
general_manager_class
|
|
325
|
+
):
|
|
326
|
+
resolver = _build_connection_resolver(attribute_name, general_manager_class)
|
|
327
|
+
relation_property = GraphQLProperty(resolver)
|
|
328
|
+
marked_relation_property: Any = relation_property
|
|
329
|
+
marked_relation_property._general_manager_generated_relation = True
|
|
330
|
+
setattr(
|
|
331
|
+
connected_manager,
|
|
332
|
+
f"{general_manager_class.__name__.lower()}_list",
|
|
333
|
+
relation_property,
|
|
334
|
+
)
|
|
309
335
|
for general_manager_class in all_classes:
|
|
310
336
|
check_permission_class(general_manager_class)
|
|
311
337
|
|
|
@@ -36,6 +36,23 @@ class FieldDescriptor:
|
|
|
36
36
|
accessor: DescriptorAccessor
|
|
37
37
|
|
|
38
38
|
|
|
39
|
+
class MissingRelatedFieldsError(RuntimeError):
|
|
40
|
+
"""Raised when a GeneralManager collection relation cannot be scoped."""
|
|
41
|
+
|
|
42
|
+
def __init__(
|
|
43
|
+
self,
|
|
44
|
+
*,
|
|
45
|
+
accessor_name: str,
|
|
46
|
+
related_model: type[models.Model],
|
|
47
|
+
source_model: type[models.Model],
|
|
48
|
+
) -> None:
|
|
49
|
+
super().__init__(
|
|
50
|
+
"Unable to resolve related fields for collection relation "
|
|
51
|
+
f"'{accessor_name}' from {source_model.__name__} to "
|
|
52
|
+
f"{related_model.__name__}."
|
|
53
|
+
)
|
|
54
|
+
|
|
55
|
+
|
|
39
56
|
TRANSLATION: dict[type[models.Field], type] = {
|
|
40
57
|
models.fields.BigAutoField: int,
|
|
41
58
|
models.AutoField: int,
|
|
@@ -691,6 +708,12 @@ def _general_manager_many_accessor(
|
|
|
691
708
|
"""
|
|
692
709
|
filter_kwargs = {field.name: self.pk for field in related_fields}
|
|
693
710
|
manager_cls = cast(Any, general_manager_class)
|
|
711
|
+
if not filter_kwargs:
|
|
712
|
+
raise MissingRelatedFieldsError(
|
|
713
|
+
accessor_name=accessor_name,
|
|
714
|
+
related_model=related_model,
|
|
715
|
+
source_model=source_model,
|
|
716
|
+
)
|
|
694
717
|
return manager_cls.filter(**filter_kwargs)
|
|
695
718
|
|
|
696
719
|
return getter
|
{generalmanager-0.41.2 → generalmanager-0.41.4}/src/general_manager/manager/general_manager.py
RENAMED
|
@@ -196,6 +196,8 @@ class GeneralManager(metaclass=GeneralManagerMeta):
|
|
|
196
196
|
for name, value in self.__class__.__dict__.items():
|
|
197
197
|
if name == "history":
|
|
198
198
|
continue
|
|
199
|
+
if getattr(value, "_general_manager_generated_relation", False):
|
|
200
|
+
continue
|
|
199
201
|
if isinstance(value, (GraphQLProperty, property)):
|
|
200
202
|
yield name, getattr(self, name)
|
|
201
203
|
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{generalmanager-0.41.2 → generalmanager-0.41.4}/src/GeneralManager.egg-info/dependency_links.txt
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{generalmanager-0.41.2 → generalmanager-0.41.4}/src/general_manager/_types/general_manager.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{generalmanager-0.41.2 → generalmanager-0.41.4}/src/general_manager/api/graphql_mutations.py
RENAMED
|
File without changes
|
{generalmanager-0.41.2 → generalmanager-0.41.4}/src/general_manager/api/graphql_resolvers.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{generalmanager-0.41.2 → generalmanager-0.41.4}/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.41.2 → generalmanager-0.41.4}/src/general_manager/api/remote_invalidation.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{generalmanager-0.41.2 → generalmanager-0.41.4}/src/general_manager/bucket/calculation_bucket.py
RENAMED
|
File without changes
|
{generalmanager-0.41.2 → generalmanager-0.41.4}/src/general_manager/bucket/database_bucket.py
RENAMED
|
File without changes
|
|
File without changes
|
{generalmanager-0.41.2 → generalmanager-0.41.4}/src/general_manager/bucket/request_bucket.py
RENAMED
|
File without changes
|
|
File without changes
|
{generalmanager-0.41.2 → generalmanager-0.41.4}/src/general_manager/cache/cache_decorator.py
RENAMED
|
File without changes
|
|
File without changes
|
{generalmanager-0.41.2 → generalmanager-0.41.4}/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.41.2 → generalmanager-0.41.4}/src/general_manager/factory/factory_methods.py
RENAMED
|
File without changes
|
|
File without changes
|
{generalmanager-0.41.2 → generalmanager-0.41.4}/src/general_manager/interface/base_interface.py
RENAMED
|
File without changes
|
{generalmanager-0.41.2 → generalmanager-0.41.4}/src/general_manager/interface/bundles/__init__.py
RENAMED
|
File without changes
|
{generalmanager-0.41.2 → generalmanager-0.41.4}/src/general_manager/interface/bundles/calculation.py
RENAMED
|
File without changes
|
{generalmanager-0.41.2 → generalmanager-0.41.4}/src/general_manager/interface/bundles/database.py
RENAMED
|
File without changes
|
|
File without changes
|
{generalmanager-0.41.2 → generalmanager-0.41.4}/src/general_manager/interface/bundles/request.py
RENAMED
|
File without changes
|
|
File without changes
|
{generalmanager-0.41.2 → generalmanager-0.41.4}/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
|
{generalmanager-0.41.2 → generalmanager-0.41.4}/src/general_manager/interface/interfaces/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{generalmanager-0.41.2 → generalmanager-0.41.4}/src/general_manager/interface/interfaces/database.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{generalmanager-0.41.2 → generalmanager-0.41.4}/src/general_manager/interface/interfaces/request.py
RENAMED
|
File without changes
|
{generalmanager-0.41.2 → generalmanager-0.41.4}/src/general_manager/interface/manifests/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{generalmanager-0.41.2 → generalmanager-0.41.4}/src/general_manager/interface/orm_interface.py
RENAMED
|
File without changes
|
|
File without changes
|
{generalmanager-0.41.2 → generalmanager-0.41.4}/src/general_manager/interface/utils/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{generalmanager-0.41.2 → generalmanager-0.41.4}/src/general_manager/interface/utils/errors.py
RENAMED
|
File without changes
|
{generalmanager-0.41.2 → generalmanager-0.41.4}/src/general_manager/interface/utils/models.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{generalmanager-0.41.2 → generalmanager-0.41.4}/src/general_manager/management/commands/shell.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{generalmanager-0.41.2 → generalmanager-0.41.4}/src/general_manager/manager/group_manager.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{generalmanager-0.41.2 → generalmanager-0.41.4}/src/general_manager/measurement/measurement.py
RENAMED
|
File without changes
|
{generalmanager-0.41.2 → generalmanager-0.41.4}/src/general_manager/measurement/measurement_field.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{generalmanager-0.41.2 → generalmanager-0.41.4}/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.41.2 → generalmanager-0.41.4}/src/general_manager/permission/base_permission.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{generalmanager-0.41.2 → generalmanager-0.41.4}/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.41.2 → generalmanager-0.41.4}/src/general_manager/search/backend_registry.py
RENAMED
|
File without changes
|
{generalmanager-0.41.2 → generalmanager-0.41.4}/src/general_manager/search/backends/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{generalmanager-0.41.2 → generalmanager-0.41.4}/src/general_manager/search/backends/meilisearch.py
RENAMED
|
File without changes
|
{generalmanager-0.41.2 → generalmanager-0.41.4}/src/general_manager/search/backends/opensearch.py
RENAMED
|
File without changes
|
{generalmanager-0.41.2 → generalmanager-0.41.4}/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.41.2 → generalmanager-0.41.4}/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.41.2 → generalmanager-0.41.4}/src/general_manager/workflow/backend_registry.py
RENAMED
|
File without changes
|
{generalmanager-0.41.2 → generalmanager-0.41.4}/src/general_manager/workflow/backends/__init__.py
RENAMED
|
File without changes
|
{generalmanager-0.41.2 → generalmanager-0.41.4}/src/general_manager/workflow/backends/celery.py
RENAMED
|
File without changes
|
{generalmanager-0.41.2 → generalmanager-0.41.4}/src/general_manager/workflow/backends/local.py
RENAMED
|
File without changes
|
{generalmanager-0.41.2 → generalmanager-0.41.4}/src/general_manager/workflow/backends/n8n.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{generalmanager-0.41.2 → generalmanager-0.41.4}/src/general_manager/workflow/event_registry.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{generalmanager-0.41.2 → generalmanager-0.41.4}/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
|