GeneralManager 0.52.0__tar.gz → 0.52.2__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {generalmanager-0.52.0/src/GeneralManager.egg-info → generalmanager-0.52.2}/PKG-INFO +1 -1
- {generalmanager-0.52.0 → generalmanager-0.52.2}/pyproject.toml +1 -1
- {generalmanager-0.52.0 → generalmanager-0.52.2/src/GeneralManager.egg-info}/PKG-INFO +1 -1
- {generalmanager-0.52.0 → generalmanager-0.52.2}/src/general_manager/api/graphql_mutations.py +27 -3
- {generalmanager-0.52.0 → generalmanager-0.52.2}/src/general_manager/cache/dependency_shards.py +199 -50
- {generalmanager-0.52.0 → generalmanager-0.52.2}/LICENSE +0 -0
- {generalmanager-0.52.0 → generalmanager-0.52.2}/README.md +0 -0
- {generalmanager-0.52.0 → generalmanager-0.52.2}/setup.cfg +0 -0
- {generalmanager-0.52.0 → generalmanager-0.52.2}/src/GeneralManager.egg-info/SOURCES.txt +0 -0
- {generalmanager-0.52.0 → generalmanager-0.52.2}/src/GeneralManager.egg-info/dependency_links.txt +0 -0
- {generalmanager-0.52.0 → generalmanager-0.52.2}/src/GeneralManager.egg-info/requires.txt +0 -0
- {generalmanager-0.52.0 → generalmanager-0.52.2}/src/GeneralManager.egg-info/top_level.txt +0 -0
- {generalmanager-0.52.0 → generalmanager-0.52.2}/src/general_manager/__init__.py +0 -0
- {generalmanager-0.52.0 → generalmanager-0.52.2}/src/general_manager/_types/__init__.py +0 -0
- {generalmanager-0.52.0 → generalmanager-0.52.2}/src/general_manager/_types/api.py +0 -0
- {generalmanager-0.52.0 → generalmanager-0.52.2}/src/general_manager/_types/bucket.py +0 -0
- {generalmanager-0.52.0 → generalmanager-0.52.2}/src/general_manager/_types/cache.py +0 -0
- {generalmanager-0.52.0 → generalmanager-0.52.2}/src/general_manager/_types/factory.py +0 -0
- {generalmanager-0.52.0 → generalmanager-0.52.2}/src/general_manager/_types/general_manager.py +0 -0
- {generalmanager-0.52.0 → generalmanager-0.52.2}/src/general_manager/_types/interface.py +0 -0
- {generalmanager-0.52.0 → generalmanager-0.52.2}/src/general_manager/_types/manager.py +0 -0
- {generalmanager-0.52.0 → generalmanager-0.52.2}/src/general_manager/_types/measurement.py +0 -0
- {generalmanager-0.52.0 → generalmanager-0.52.2}/src/general_manager/_types/permission.py +0 -0
- {generalmanager-0.52.0 → generalmanager-0.52.2}/src/general_manager/_types/rule.py +0 -0
- {generalmanager-0.52.0 → generalmanager-0.52.2}/src/general_manager/_types/search.py +0 -0
- {generalmanager-0.52.0 → generalmanager-0.52.2}/src/general_manager/_types/utils.py +0 -0
- {generalmanager-0.52.0 → generalmanager-0.52.2}/src/general_manager/api/__init__.py +0 -0
- {generalmanager-0.52.0 → generalmanager-0.52.2}/src/general_manager/api/graphql.py +0 -0
- {generalmanager-0.52.0 → generalmanager-0.52.2}/src/general_manager/api/graphql_errors.py +0 -0
- {generalmanager-0.52.0 → generalmanager-0.52.2}/src/general_manager/api/graphql_prefetch.py +0 -0
- {generalmanager-0.52.0 → generalmanager-0.52.2}/src/general_manager/api/graphql_resolvers.py +0 -0
- {generalmanager-0.52.0 → generalmanager-0.52.2}/src/general_manager/api/graphql_search.py +0 -0
- {generalmanager-0.52.0 → generalmanager-0.52.2}/src/general_manager/api/graphql_subscription_consumer.py +0 -0
- {generalmanager-0.52.0 → generalmanager-0.52.2}/src/general_manager/api/graphql_subscriptions.py +0 -0
- {generalmanager-0.52.0 → generalmanager-0.52.2}/src/general_manager/api/graphql_view.py +0 -0
- {generalmanager-0.52.0 → generalmanager-0.52.2}/src/general_manager/api/mutation.py +0 -0
- {generalmanager-0.52.0 → generalmanager-0.52.2}/src/general_manager/api/property.py +0 -0
- {generalmanager-0.52.0 → generalmanager-0.52.2}/src/general_manager/api/registry.py +0 -0
- {generalmanager-0.52.0 → generalmanager-0.52.2}/src/general_manager/api/remote_api.py +0 -0
- {generalmanager-0.52.0 → generalmanager-0.52.2}/src/general_manager/api/remote_invalidation.py +0 -0
- {generalmanager-0.52.0 → generalmanager-0.52.2}/src/general_manager/api/remote_invalidation_client.py +0 -0
- {generalmanager-0.52.0 → generalmanager-0.52.2}/src/general_manager/apps.py +0 -0
- {generalmanager-0.52.0 → generalmanager-0.52.2}/src/general_manager/bootstrap.py +0 -0
- {generalmanager-0.52.0 → generalmanager-0.52.2}/src/general_manager/bucket/__init__.py +0 -0
- {generalmanager-0.52.0 → generalmanager-0.52.2}/src/general_manager/bucket/base_bucket.py +0 -0
- {generalmanager-0.52.0 → generalmanager-0.52.2}/src/general_manager/bucket/calculation_bucket.py +0 -0
- {generalmanager-0.52.0 → generalmanager-0.52.2}/src/general_manager/bucket/database_bucket.py +0 -0
- {generalmanager-0.52.0 → generalmanager-0.52.2}/src/general_manager/bucket/group_bucket.py +0 -0
- {generalmanager-0.52.0 → generalmanager-0.52.2}/src/general_manager/bucket/indexing.py +0 -0
- {generalmanager-0.52.0 → generalmanager-0.52.2}/src/general_manager/bucket/request_bucket.py +0 -0
- {generalmanager-0.52.0 → generalmanager-0.52.2}/src/general_manager/cache/__init__.py +0 -0
- {generalmanager-0.52.0 → generalmanager-0.52.2}/src/general_manager/cache/cache_decorator.py +0 -0
- {generalmanager-0.52.0 → generalmanager-0.52.2}/src/general_manager/cache/cache_tracker.py +0 -0
- {generalmanager-0.52.0 → generalmanager-0.52.2}/src/general_manager/cache/dependency_cache.py +0 -0
- {generalmanager-0.52.0 → generalmanager-0.52.2}/src/general_manager/cache/dependency_index.py +0 -0
- {generalmanager-0.52.0 → generalmanager-0.52.2}/src/general_manager/cache/dependency_matching.py +0 -0
- {generalmanager-0.52.0 → generalmanager-0.52.2}/src/general_manager/cache/dependency_publish.py +0 -0
- {generalmanager-0.52.0 → generalmanager-0.52.2}/src/general_manager/cache/model_dependency_collector.py +0 -0
- {generalmanager-0.52.0 → generalmanager-0.52.2}/src/general_manager/cache/run_context.py +0 -0
- {generalmanager-0.52.0 → generalmanager-0.52.2}/src/general_manager/cache/signals.py +0 -0
- {generalmanager-0.52.0 → generalmanager-0.52.2}/src/general_manager/conf.py +0 -0
- {generalmanager-0.52.0 → generalmanager-0.52.2}/src/general_manager/factory/__init__.py +0 -0
- {generalmanager-0.52.0 → generalmanager-0.52.2}/src/general_manager/factory/auto_factory.py +0 -0
- {generalmanager-0.52.0 → generalmanager-0.52.2}/src/general_manager/factory/factories.py +0 -0
- {generalmanager-0.52.0 → generalmanager-0.52.2}/src/general_manager/factory/factory_methods.py +0 -0
- {generalmanager-0.52.0 → generalmanager-0.52.2}/src/general_manager/interface/__init__.py +0 -0
- {generalmanager-0.52.0 → generalmanager-0.52.2}/src/general_manager/interface/base_interface.py +0 -0
- {generalmanager-0.52.0 → generalmanager-0.52.2}/src/general_manager/interface/bundles/__init__.py +0 -0
- {generalmanager-0.52.0 → generalmanager-0.52.2}/src/general_manager/interface/bundles/calculation.py +0 -0
- {generalmanager-0.52.0 → generalmanager-0.52.2}/src/general_manager/interface/bundles/database.py +0 -0
- {generalmanager-0.52.0 → generalmanager-0.52.2}/src/general_manager/interface/bundles/remote_manager.py +0 -0
- {generalmanager-0.52.0 → generalmanager-0.52.2}/src/general_manager/interface/bundles/request.py +0 -0
- {generalmanager-0.52.0 → generalmanager-0.52.2}/src/general_manager/interface/capabilities/__init__.py +0 -0
- {generalmanager-0.52.0 → generalmanager-0.52.2}/src/general_manager/interface/capabilities/base.py +0 -0
- {generalmanager-0.52.0 → generalmanager-0.52.2}/src/general_manager/interface/capabilities/builtin.py +0 -0
- {generalmanager-0.52.0 → generalmanager-0.52.2}/src/general_manager/interface/capabilities/calculation/__init__.py +0 -0
- {generalmanager-0.52.0 → generalmanager-0.52.2}/src/general_manager/interface/capabilities/calculation/_compat.py +0 -0
- {generalmanager-0.52.0 → generalmanager-0.52.2}/src/general_manager/interface/capabilities/calculation/lifecycle.py +0 -0
- {generalmanager-0.52.0 → generalmanager-0.52.2}/src/general_manager/interface/capabilities/configuration.py +0 -0
- {generalmanager-0.52.0 → generalmanager-0.52.2}/src/general_manager/interface/capabilities/core/observability.py +0 -0
- {generalmanager-0.52.0 → generalmanager-0.52.2}/src/general_manager/interface/capabilities/core/utils.py +0 -0
- {generalmanager-0.52.0 → generalmanager-0.52.2}/src/general_manager/interface/capabilities/exceptions.py +0 -0
- {generalmanager-0.52.0 → generalmanager-0.52.2}/src/general_manager/interface/capabilities/existing_model/__init__.py +0 -0
- {generalmanager-0.52.0 → generalmanager-0.52.2}/src/general_manager/interface/capabilities/existing_model/_compat.py +0 -0
- {generalmanager-0.52.0 → generalmanager-0.52.2}/src/general_manager/interface/capabilities/existing_model/resolution.py +0 -0
- {generalmanager-0.52.0 → generalmanager-0.52.2}/src/general_manager/interface/capabilities/factory.py +0 -0
- {generalmanager-0.52.0 → generalmanager-0.52.2}/src/general_manager/interface/capabilities/orm/__init__.py +0 -0
- {generalmanager-0.52.0 → generalmanager-0.52.2}/src/general_manager/interface/capabilities/orm/_compat.py +0 -0
- {generalmanager-0.52.0 → generalmanager-0.52.2}/src/general_manager/interface/capabilities/orm/history.py +0 -0
- {generalmanager-0.52.0 → generalmanager-0.52.2}/src/general_manager/interface/capabilities/orm/lifecycle.py +0 -0
- {generalmanager-0.52.0 → generalmanager-0.52.2}/src/general_manager/interface/capabilities/orm/mutations.py +0 -0
- {generalmanager-0.52.0 → generalmanager-0.52.2}/src/general_manager/interface/capabilities/orm/support.py +0 -0
- {generalmanager-0.52.0 → generalmanager-0.52.2}/src/general_manager/interface/capabilities/orm_utils/__init__.py +0 -0
- {generalmanager-0.52.0 → generalmanager-0.52.2}/src/general_manager/interface/capabilities/orm_utils/django_manager_utils.py +0 -0
- {generalmanager-0.52.0 → generalmanager-0.52.2}/src/general_manager/interface/capabilities/orm_utils/field_descriptors.py +0 -0
- {generalmanager-0.52.0 → generalmanager-0.52.2}/src/general_manager/interface/capabilities/orm_utils/payload_normalizer.py +0 -0
- {generalmanager-0.52.0 → generalmanager-0.52.2}/src/general_manager/interface/capabilities/read_only/__init__.py +0 -0
- {generalmanager-0.52.0 → generalmanager-0.52.2}/src/general_manager/interface/capabilities/read_only/_compat.py +0 -0
- {generalmanager-0.52.0 → generalmanager-0.52.2}/src/general_manager/interface/capabilities/read_only/lifecycle.py +0 -0
- {generalmanager-0.52.0 → generalmanager-0.52.2}/src/general_manager/interface/capabilities/read_only/management.py +0 -0
- {generalmanager-0.52.0 → generalmanager-0.52.2}/src/general_manager/interface/capabilities/registry.py +0 -0
- {generalmanager-0.52.0 → generalmanager-0.52.2}/src/general_manager/interface/capabilities/remote_manager.py +0 -0
- {generalmanager-0.52.0 → generalmanager-0.52.2}/src/general_manager/interface/capabilities/request/__init__.py +0 -0
- {generalmanager-0.52.0 → generalmanager-0.52.2}/src/general_manager/interface/infrastructure/__init__.py +0 -0
- {generalmanager-0.52.0 → generalmanager-0.52.2}/src/general_manager/interface/infrastructure/startup_hooks.py +0 -0
- {generalmanager-0.52.0 → generalmanager-0.52.2}/src/general_manager/interface/infrastructure/system_checks.py +0 -0
- {generalmanager-0.52.0 → generalmanager-0.52.2}/src/general_manager/interface/interfaces/__init__.py +0 -0
- {generalmanager-0.52.0 → generalmanager-0.52.2}/src/general_manager/interface/interfaces/calculation.py +0 -0
- {generalmanager-0.52.0 → generalmanager-0.52.2}/src/general_manager/interface/interfaces/database.py +0 -0
- {generalmanager-0.52.0 → generalmanager-0.52.2}/src/general_manager/interface/interfaces/existing_model.py +0 -0
- {generalmanager-0.52.0 → generalmanager-0.52.2}/src/general_manager/interface/interfaces/read_only.py +0 -0
- {generalmanager-0.52.0 → generalmanager-0.52.2}/src/general_manager/interface/interfaces/remote_manager.py +0 -0
- {generalmanager-0.52.0 → generalmanager-0.52.2}/src/general_manager/interface/interfaces/request.py +0 -0
- {generalmanager-0.52.0 → generalmanager-0.52.2}/src/general_manager/interface/manifests/__init__.py +0 -0
- {generalmanager-0.52.0 → generalmanager-0.52.2}/src/general_manager/interface/manifests/capability_builder.py +0 -0
- {generalmanager-0.52.0 → generalmanager-0.52.2}/src/general_manager/interface/manifests/capability_manifest.py +0 -0
- {generalmanager-0.52.0 → generalmanager-0.52.2}/src/general_manager/interface/manifests/capability_models.py +0 -0
- {generalmanager-0.52.0 → generalmanager-0.52.2}/src/general_manager/interface/orm_interface.py +0 -0
- {generalmanager-0.52.0 → generalmanager-0.52.2}/src/general_manager/interface/requests.py +0 -0
- {generalmanager-0.52.0 → generalmanager-0.52.2}/src/general_manager/interface/utils/__init__.py +0 -0
- {generalmanager-0.52.0 → generalmanager-0.52.2}/src/general_manager/interface/utils/database_interface_protocols.py +0 -0
- {generalmanager-0.52.0 → generalmanager-0.52.2}/src/general_manager/interface/utils/errors.py +0 -0
- {generalmanager-0.52.0 → generalmanager-0.52.2}/src/general_manager/interface/utils/models.py +0 -0
- {generalmanager-0.52.0 → generalmanager-0.52.2}/src/general_manager/logging.py +0 -0
- {generalmanager-0.52.0 → generalmanager-0.52.2}/src/general_manager/management/commands/search_index.py +0 -0
- {generalmanager-0.52.0 → generalmanager-0.52.2}/src/general_manager/management/commands/seed_manager_landscape.py +0 -0
- {generalmanager-0.52.0 → generalmanager-0.52.2}/src/general_manager/management/commands/shell.py +0 -0
- {generalmanager-0.52.0 → generalmanager-0.52.2}/src/general_manager/management/commands/workflow_drain_outbox.py +0 -0
- {generalmanager-0.52.0 → generalmanager-0.52.2}/src/general_manager/management/commands/workflow_replay_dead_letters.py +0 -0
- {generalmanager-0.52.0 → generalmanager-0.52.2}/src/general_manager/manager/__init__.py +0 -0
- {generalmanager-0.52.0 → generalmanager-0.52.2}/src/general_manager/manager/general_manager.py +0 -0
- {generalmanager-0.52.0 → generalmanager-0.52.2}/src/general_manager/manager/group_manager.py +0 -0
- {generalmanager-0.52.0 → generalmanager-0.52.2}/src/general_manager/manager/input.py +0 -0
- {generalmanager-0.52.0 → generalmanager-0.52.2}/src/general_manager/manager/meta.py +0 -0
- {generalmanager-0.52.0 → generalmanager-0.52.2}/src/general_manager/measurement/__init__.py +0 -0
- {generalmanager-0.52.0 → generalmanager-0.52.2}/src/general_manager/measurement/measurement.py +0 -0
- {generalmanager-0.52.0 → generalmanager-0.52.2}/src/general_manager/measurement/measurement_field.py +0 -0
- {generalmanager-0.52.0 → generalmanager-0.52.2}/src/general_manager/metrics/__init__.py +0 -0
- {generalmanager-0.52.0 → generalmanager-0.52.2}/src/general_manager/metrics/graphql.py +0 -0
- {generalmanager-0.52.0 → generalmanager-0.52.2}/src/general_manager/migrations/0001_initial.py +0 -0
- {generalmanager-0.52.0 → generalmanager-0.52.2}/src/general_manager/migrations/0002_workflow_outbox_scaling_indexes.py +0 -0
- {generalmanager-0.52.0 → generalmanager-0.52.2}/src/general_manager/migrations/0003_workflow_execution_correlation_constraint.py +0 -0
- {generalmanager-0.52.0 → generalmanager-0.52.2}/src/general_manager/migrations/__init__.py +0 -0
- {generalmanager-0.52.0 → generalmanager-0.52.2}/src/general_manager/models.py +0 -0
- {generalmanager-0.52.0 → generalmanager-0.52.2}/src/general_manager/permission/__init__.py +0 -0
- {generalmanager-0.52.0 → generalmanager-0.52.2}/src/general_manager/permission/audit.py +0 -0
- {generalmanager-0.52.0 → generalmanager-0.52.2}/src/general_manager/permission/base_permission.py +0 -0
- {generalmanager-0.52.0 → generalmanager-0.52.2}/src/general_manager/permission/graphql_capabilities.py +0 -0
- {generalmanager-0.52.0 → generalmanager-0.52.2}/src/general_manager/permission/manager_based_permission.py +0 -0
- {generalmanager-0.52.0 → generalmanager-0.52.2}/src/general_manager/permission/mutation_permission.py +0 -0
- {generalmanager-0.52.0 → generalmanager-0.52.2}/src/general_manager/permission/permission_checks.py +0 -0
- {generalmanager-0.52.0 → generalmanager-0.52.2}/src/general_manager/permission/permission_data_manager.py +0 -0
- {generalmanager-0.52.0 → generalmanager-0.52.2}/src/general_manager/permission/utils.py +0 -0
- {generalmanager-0.52.0 → generalmanager-0.52.2}/src/general_manager/public_api_registry.py +0 -0
- {generalmanager-0.52.0 → generalmanager-0.52.2}/src/general_manager/py.typed +0 -0
- {generalmanager-0.52.0 → generalmanager-0.52.2}/src/general_manager/rule/__init__.py +0 -0
- {generalmanager-0.52.0 → generalmanager-0.52.2}/src/general_manager/rule/handler.py +0 -0
- {generalmanager-0.52.0 → generalmanager-0.52.2}/src/general_manager/rule/rule.py +0 -0
- {generalmanager-0.52.0 → generalmanager-0.52.2}/src/general_manager/search/__init__.py +0 -0
- {generalmanager-0.52.0 → generalmanager-0.52.2}/src/general_manager/search/async_tasks.py +0 -0
- {generalmanager-0.52.0 → generalmanager-0.52.2}/src/general_manager/search/backend.py +0 -0
- {generalmanager-0.52.0 → generalmanager-0.52.2}/src/general_manager/search/backend_registry.py +0 -0
- {generalmanager-0.52.0 → generalmanager-0.52.2}/src/general_manager/search/backends/__init__.py +0 -0
- {generalmanager-0.52.0 → generalmanager-0.52.2}/src/general_manager/search/backends/dev.py +0 -0
- {generalmanager-0.52.0 → generalmanager-0.52.2}/src/general_manager/search/backends/meilisearch.py +0 -0
- {generalmanager-0.52.0 → generalmanager-0.52.2}/src/general_manager/search/backends/opensearch.py +0 -0
- {generalmanager-0.52.0 → generalmanager-0.52.2}/src/general_manager/search/backends/typesense.py +0 -0
- {generalmanager-0.52.0 → generalmanager-0.52.2}/src/general_manager/search/config.py +0 -0
- {generalmanager-0.52.0 → generalmanager-0.52.2}/src/general_manager/search/indexer.py +0 -0
- {generalmanager-0.52.0 → generalmanager-0.52.2}/src/general_manager/search/registry.py +0 -0
- {generalmanager-0.52.0 → generalmanager-0.52.2}/src/general_manager/search/utils.py +0 -0
- {generalmanager-0.52.0 → generalmanager-0.52.2}/src/general_manager/seeding/__init__.py +0 -0
- {generalmanager-0.52.0 → generalmanager-0.52.2}/src/general_manager/seeding/manager_landscape.py +0 -0
- {generalmanager-0.52.0 → generalmanager-0.52.2}/src/general_manager/utils/__init__.py +0 -0
- {generalmanager-0.52.0 → generalmanager-0.52.2}/src/general_manager/utils/args_to_kwargs.py +0 -0
- {generalmanager-0.52.0 → generalmanager-0.52.2}/src/general_manager/utils/filter_parser.py +0 -0
- {generalmanager-0.52.0 → generalmanager-0.52.2}/src/general_manager/utils/format_string.py +0 -0
- {generalmanager-0.52.0 → generalmanager-0.52.2}/src/general_manager/utils/json_encoder.py +0 -0
- {generalmanager-0.52.0 → generalmanager-0.52.2}/src/general_manager/utils/make_cache_key.py +0 -0
- {generalmanager-0.52.0 → generalmanager-0.52.2}/src/general_manager/utils/none_to_zero.py +0 -0
- {generalmanager-0.52.0 → generalmanager-0.52.2}/src/general_manager/utils/path_mapping.py +0 -0
- {generalmanager-0.52.0 → generalmanager-0.52.2}/src/general_manager/utils/public_api.py +0 -0
- {generalmanager-0.52.0 → generalmanager-0.52.2}/src/general_manager/utils/testing.py +0 -0
- {generalmanager-0.52.0 → generalmanager-0.52.2}/src/general_manager/utils/type_checks.py +0 -0
- {generalmanager-0.52.0 → generalmanager-0.52.2}/src/general_manager/workflow/__init__.py +0 -0
- {generalmanager-0.52.0 → generalmanager-0.52.2}/src/general_manager/workflow/actions.py +0 -0
- {generalmanager-0.52.0 → generalmanager-0.52.2}/src/general_manager/workflow/backend_registry.py +0 -0
- {generalmanager-0.52.0 → generalmanager-0.52.2}/src/general_manager/workflow/backends/__init__.py +0 -0
- {generalmanager-0.52.0 → generalmanager-0.52.2}/src/general_manager/workflow/backends/celery.py +0 -0
- {generalmanager-0.52.0 → generalmanager-0.52.2}/src/general_manager/workflow/backends/local.py +0 -0
- {generalmanager-0.52.0 → generalmanager-0.52.2}/src/general_manager/workflow/backends/n8n.py +0 -0
- {generalmanager-0.52.0 → generalmanager-0.52.2}/src/general_manager/workflow/config.py +0 -0
- {generalmanager-0.52.0 → generalmanager-0.52.2}/src/general_manager/workflow/engine.py +0 -0
- {generalmanager-0.52.0 → generalmanager-0.52.2}/src/general_manager/workflow/event_registry.py +0 -0
- {generalmanager-0.52.0 → generalmanager-0.52.2}/src/general_manager/workflow/events.py +0 -0
- {generalmanager-0.52.0 → generalmanager-0.52.2}/src/general_manager/workflow/models.py +0 -0
- {generalmanager-0.52.0 → generalmanager-0.52.2}/src/general_manager/workflow/signal_bridge.py +0 -0
- {generalmanager-0.52.0 → generalmanager-0.52.2}/src/general_manager/workflow/tasks.py +0 -0
- {generalmanager-0.52.0 → generalmanager-0.52.2}/src/general_manager/workflow/telemetry.py +0 -0
- {generalmanager-0.52.0 → generalmanager-0.52.2}/tests/test_settings.py +0 -0
- {generalmanager-0.52.0 → generalmanager-0.52.2}/tests/test_urls.py +0 -0
- {generalmanager-0.52.0 → generalmanager-0.52.2}/tests/testing_asgi.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: GeneralManager
|
|
3
|
-
Version: 0.52.
|
|
3
|
+
Version: 0.52.2
|
|
4
4
|
Summary: Modular Django-based data management framework with ORM, GraphQL, fine-grained permissions, rule validation, calculations and caching.
|
|
5
5
|
Author-email: Tim Kleindick <tkleindick@yahoo.de>
|
|
6
6
|
License: MIT License
|
|
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "GeneralManager"
|
|
7
|
-
version = "0.52.
|
|
7
|
+
version = "0.52.2"
|
|
8
8
|
description = "Modular Django-based data management framework with ORM, GraphQL, fine-grained permissions, rule validation, calculations and caching."
|
|
9
9
|
readme = "README.md"
|
|
10
10
|
authors = [{ name = "Tim Kleindick", email = "tkleindick@yahoo.de" }]
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: GeneralManager
|
|
3
|
-
Version: 0.52.
|
|
3
|
+
Version: 0.52.2
|
|
4
4
|
Summary: Modular Django-based data management framework with ORM, GraphQL, fine-grained permissions, rule validation, calculations and caching.
|
|
5
5
|
Author-email: Tim Kleindick <tkleindick@yahoo.de>
|
|
6
6
|
License: MIT License
|
{generalmanager-0.52.0 → generalmanager-0.52.2}/src/general_manager/api/graphql_mutations.py
RENAMED
|
@@ -66,6 +66,24 @@ def _normalize_mutation_kwargs_for_manager(
|
|
|
66
66
|
# ---------------------------------------------------------------------------
|
|
67
67
|
|
|
68
68
|
|
|
69
|
+
def _is_direct_relation_raw_id_alias(
|
|
70
|
+
name: str,
|
|
71
|
+
attribute_types: dict[str, Any],
|
|
72
|
+
) -> bool:
|
|
73
|
+
"""Return true when ``name`` is the raw ``*_id`` alias for a direct relation."""
|
|
74
|
+
if not name.endswith("_id"):
|
|
75
|
+
return False
|
|
76
|
+
|
|
77
|
+
relation_name = name.removesuffix("_id")
|
|
78
|
+
relation_info = attribute_types.get(relation_name)
|
|
79
|
+
if relation_info is None:
|
|
80
|
+
return False
|
|
81
|
+
|
|
82
|
+
return relation_info.get("relation_kind") == "direct" and not relation_info.get(
|
|
83
|
+
"is_derived", False
|
|
84
|
+
)
|
|
85
|
+
|
|
86
|
+
|
|
69
87
|
def create_write_fields(
|
|
70
88
|
interface_cls: InterfaceBase,
|
|
71
89
|
*,
|
|
@@ -74,8 +92,10 @@ def create_write_fields(
|
|
|
74
92
|
"""
|
|
75
93
|
Create Graphene input fields for writable attributes defined by an Interface.
|
|
76
94
|
|
|
77
|
-
Skips system fields (``changed_by``, ``created_at``, ``updated_at``)
|
|
78
|
-
attributes marked as derived
|
|
95
|
+
Skips system fields (``changed_by``, ``created_at``, ``updated_at``),
|
|
96
|
+
attributes marked as derived, and raw ``*_id`` aliases for direct
|
|
97
|
+
relations already exposed by their canonical relation field. For
|
|
98
|
+
attributes whose type is a
|
|
79
99
|
``GeneralManager``, produces an ID field or a list of ID fields for names
|
|
80
100
|
ending with ``"_list"``. Always includes an optional ``history_comment``
|
|
81
101
|
string field.
|
|
@@ -91,11 +111,14 @@ def create_write_fields(
|
|
|
91
111
|
Mapping from attribute name to a Graphene input field instance.
|
|
92
112
|
"""
|
|
93
113
|
fields: dict[str, Any] = {}
|
|
94
|
-
|
|
114
|
+
attribute_types = interface_cls.get_attribute_types()
|
|
115
|
+
for name, info in attribute_types.items():
|
|
95
116
|
if name in ["changed_by", "created_at", "updated_at"]:
|
|
96
117
|
continue
|
|
97
118
|
if info["is_derived"]:
|
|
98
119
|
continue
|
|
120
|
+
if _is_direct_relation_raw_id_alias(name, attribute_types):
|
|
121
|
+
continue
|
|
99
122
|
|
|
100
123
|
typ = info["type"]
|
|
101
124
|
req = info["is_required"] if require_fields else False
|
|
@@ -184,6 +207,7 @@ def generate_create_mutation_class(
|
|
|
184
207
|
field_name: field
|
|
185
208
|
for field_name, field in create_write_fields(interface_cls).items()
|
|
186
209
|
if field_name not in generalManagerClass.Interface.input_fields
|
|
210
|
+
and field.editable
|
|
187
211
|
},
|
|
188
212
|
),
|
|
189
213
|
"mutate": create_mutation,
|
{generalmanager-0.52.0 → generalmanager-0.52.2}/src/general_manager/cache/dependency_shards.py
RENAMED
|
@@ -3,8 +3,9 @@
|
|
|
3
3
|
from __future__ import annotations
|
|
4
4
|
|
|
5
5
|
import hashlib
|
|
6
|
+
from collections import defaultdict
|
|
6
7
|
from dataclasses import dataclass, field
|
|
7
|
-
from typing import Any, Iterable, Literal
|
|
8
|
+
from typing import Any, Iterable, Literal, Mapping
|
|
8
9
|
|
|
9
10
|
from django.core.cache import cache
|
|
10
11
|
|
|
@@ -37,6 +38,14 @@ class ReverseDependencyMembership:
|
|
|
37
38
|
simple_dependencies: frozenset[SimpleDependency] = field(default_factory=frozenset)
|
|
38
39
|
|
|
39
40
|
|
|
41
|
+
@dataclass(frozen=True, slots=True)
|
|
42
|
+
class _DependencyShardPlan:
|
|
43
|
+
shard_keys: frozenset[str]
|
|
44
|
+
composite_dependencies: frozenset[CompositeDependency]
|
|
45
|
+
simple_dependencies: frozenset[SimpleDependency]
|
|
46
|
+
lookup_registrations: frozenset[tuple[str, str, str]]
|
|
47
|
+
|
|
48
|
+
|
|
40
49
|
def _hash_text(value: str) -> str:
|
|
41
50
|
return hashlib.sha256(value.encode("utf-8")).hexdigest()
|
|
42
51
|
|
|
@@ -104,19 +113,78 @@ def cache_set_members(key: str) -> set[str]:
|
|
|
104
113
|
return set(members)
|
|
105
114
|
|
|
106
115
|
|
|
116
|
+
def _cache_get_many(keys: Iterable[str]) -> dict[str, Any]:
|
|
117
|
+
key_tuple = tuple(dict.fromkeys(keys))
|
|
118
|
+
if not key_tuple:
|
|
119
|
+
return {}
|
|
120
|
+
return dict(cache.get_many(key_tuple))
|
|
121
|
+
|
|
122
|
+
|
|
123
|
+
def _cache_set_many(payloads: Mapping[str, Any]) -> None:
|
|
124
|
+
if payloads:
|
|
125
|
+
cache.set_many(dict(payloads), None)
|
|
126
|
+
|
|
127
|
+
|
|
128
|
+
def _cache_delete_many(keys: Iterable[str]) -> None:
|
|
129
|
+
key_tuple = tuple(dict.fromkeys(keys))
|
|
130
|
+
if not key_tuple:
|
|
131
|
+
return
|
|
132
|
+
delete_many = getattr(cache, "delete_many", None)
|
|
133
|
+
if callable(delete_many):
|
|
134
|
+
delete_many(key_tuple)
|
|
135
|
+
return
|
|
136
|
+
for key in key_tuple:
|
|
137
|
+
cache.delete(key)
|
|
138
|
+
|
|
139
|
+
|
|
140
|
+
def _cache_member_set(value: Any) -> set[str]:
|
|
141
|
+
if value is None:
|
|
142
|
+
return set()
|
|
143
|
+
if isinstance(value, (set, frozenset, list, tuple)):
|
|
144
|
+
return {member for member in value if isinstance(member, str)}
|
|
145
|
+
return set()
|
|
146
|
+
|
|
147
|
+
|
|
148
|
+
def _cache_set_add_many(additions: Mapping[str, set[str]]) -> None:
|
|
149
|
+
pending = {key: set(members) for key, members in additions.items() if members}
|
|
150
|
+
if not pending:
|
|
151
|
+
return
|
|
152
|
+
|
|
153
|
+
existing_sets = _cache_get_many(pending)
|
|
154
|
+
payloads: dict[str, set[str]] = {}
|
|
155
|
+
for key, members in pending.items():
|
|
156
|
+
current = _cache_member_set(existing_sets.get(key, set()))
|
|
157
|
+
current.update(members)
|
|
158
|
+
payloads[key] = current
|
|
159
|
+
_cache_set_many(payloads)
|
|
160
|
+
|
|
161
|
+
|
|
162
|
+
def _cache_set_discard_many(removals: Mapping[str, set[str]]) -> None:
|
|
163
|
+
pending = {key: set(members) for key, members in removals.items() if members}
|
|
164
|
+
if not pending:
|
|
165
|
+
return
|
|
166
|
+
|
|
167
|
+
existing_sets = _cache_get_many(pending)
|
|
168
|
+
payloads: dict[str, set[str]] = {}
|
|
169
|
+
delete_keys: list[str] = []
|
|
170
|
+
for key, members in pending.items():
|
|
171
|
+
current = _cache_member_set(existing_sets.get(key, set()))
|
|
172
|
+
current.difference_update(members)
|
|
173
|
+
if current:
|
|
174
|
+
payloads[key] = current
|
|
175
|
+
else:
|
|
176
|
+
delete_keys.append(key)
|
|
177
|
+
|
|
178
|
+
_cache_set_many(payloads)
|
|
179
|
+
_cache_delete_many(delete_keys)
|
|
180
|
+
|
|
181
|
+
|
|
107
182
|
def _cache_set_add(key: str, member: str) -> None:
|
|
108
|
-
|
|
109
|
-
members.add(member)
|
|
110
|
-
cache.set(key, members, None)
|
|
183
|
+
_cache_set_add_many({key: {member}})
|
|
111
184
|
|
|
112
185
|
|
|
113
186
|
def _cache_set_discard(key: str, member: str) -> None:
|
|
114
|
-
|
|
115
|
-
members.discard(member)
|
|
116
|
-
if members:
|
|
117
|
-
cache.set(key, members, None)
|
|
118
|
-
else:
|
|
119
|
-
cache.delete(key)
|
|
187
|
+
_cache_set_discard_many({key: {member}})
|
|
120
188
|
|
|
121
189
|
|
|
122
190
|
def _lookup_name_for_candidate(lookup: str) -> str:
|
|
@@ -190,20 +258,31 @@ def _shard_keys_for_dependency(
|
|
|
190
258
|
manager_name: str,
|
|
191
259
|
action: DependencyAction,
|
|
192
260
|
identifier: str,
|
|
193
|
-
) ->
|
|
261
|
+
) -> _DependencyShardPlan:
|
|
194
262
|
shard_keys: set[str] = set()
|
|
195
263
|
composites: set[CompositeDependency] = set()
|
|
196
264
|
simple_dependencies: set[SimpleDependency] = set()
|
|
265
|
+
lookup_registrations: set[tuple[str, str, str]] = set()
|
|
197
266
|
|
|
198
267
|
if action == "all":
|
|
199
268
|
shard_keys.add(all_records_shard_key(manager_name))
|
|
200
269
|
simple_dependencies.add((manager_name, action, identifier))
|
|
201
|
-
return
|
|
270
|
+
return _DependencyShardPlan(
|
|
271
|
+
frozenset(shard_keys),
|
|
272
|
+
frozenset(composites),
|
|
273
|
+
frozenset(simple_dependencies),
|
|
274
|
+
frozenset(lookup_registrations),
|
|
275
|
+
)
|
|
202
276
|
|
|
203
277
|
if action == "request_query":
|
|
204
278
|
shard_keys.add(request_query_shard_key(manager_name))
|
|
205
279
|
simple_dependencies.add((manager_name, action, identifier))
|
|
206
|
-
return
|
|
280
|
+
return _DependencyShardPlan(
|
|
281
|
+
frozenset(shard_keys),
|
|
282
|
+
frozenset(composites),
|
|
283
|
+
frozenset(simple_dependencies),
|
|
284
|
+
frozenset(lookup_registrations),
|
|
285
|
+
)
|
|
207
286
|
|
|
208
287
|
if action == "identification":
|
|
209
288
|
shard_keys.add(
|
|
@@ -216,19 +295,39 @@ def _shard_keys_for_dependency(
|
|
|
216
295
|
)
|
|
217
296
|
)
|
|
218
297
|
simple_dependencies.add((manager_name, action, identifier))
|
|
219
|
-
return
|
|
298
|
+
return _DependencyShardPlan(
|
|
299
|
+
frozenset(shard_keys),
|
|
300
|
+
frozenset(composites),
|
|
301
|
+
frozenset(simple_dependencies),
|
|
302
|
+
frozenset(lookup_registrations),
|
|
303
|
+
)
|
|
220
304
|
|
|
221
305
|
if action not in {"filter", "exclude"}:
|
|
222
|
-
return
|
|
306
|
+
return _DependencyShardPlan(
|
|
307
|
+
frozenset(),
|
|
308
|
+
frozenset(),
|
|
309
|
+
frozenset(),
|
|
310
|
+
frozenset(),
|
|
311
|
+
)
|
|
223
312
|
|
|
224
313
|
params = parse_dependency_identifier(identifier)
|
|
225
314
|
if not isinstance(params, dict):
|
|
226
|
-
return
|
|
315
|
+
return _DependencyShardPlan(
|
|
316
|
+
frozenset(),
|
|
317
|
+
frozenset(),
|
|
318
|
+
frozenset(),
|
|
319
|
+
frozenset(),
|
|
320
|
+
)
|
|
227
321
|
|
|
228
322
|
if not params:
|
|
229
323
|
shard_keys.add(all_records_shard_key(manager_name))
|
|
230
324
|
simple_dependencies.add((manager_name, action, identifier))
|
|
231
|
-
return
|
|
325
|
+
return _DependencyShardPlan(
|
|
326
|
+
frozenset(shard_keys),
|
|
327
|
+
frozenset(composites),
|
|
328
|
+
frozenset(simple_dependencies),
|
|
329
|
+
frozenset(lookup_registrations),
|
|
330
|
+
)
|
|
232
331
|
|
|
233
332
|
sort_lookups = [
|
|
234
333
|
str(lookup).removeprefix("__sort__")
|
|
@@ -239,18 +338,23 @@ def _shard_keys_for_dependency(
|
|
|
239
338
|
composite = (manager_name, action, identifier)
|
|
240
339
|
composites.add(composite)
|
|
241
340
|
for sort_lookup in sort_lookups:
|
|
242
|
-
|
|
341
|
+
lookup_registrations.add((manager_name, action, sort_lookup))
|
|
243
342
|
shard_keys.add(
|
|
244
343
|
composite_lookup_shard_key(manager_name, action, sort_lookup)
|
|
245
344
|
)
|
|
246
|
-
return
|
|
345
|
+
return _DependencyShardPlan(
|
|
346
|
+
frozenset(shard_keys),
|
|
347
|
+
frozenset(composites),
|
|
348
|
+
frozenset(simple_dependencies),
|
|
349
|
+
frozenset(lookup_registrations),
|
|
350
|
+
)
|
|
247
351
|
|
|
248
352
|
if len(params) > 1:
|
|
249
353
|
composite = (manager_name, action, identifier)
|
|
250
354
|
composites.add(composite)
|
|
251
355
|
for lookup in params:
|
|
252
356
|
candidate_lookup = _lookup_name_for_candidate(str(lookup))
|
|
253
|
-
|
|
357
|
+
lookup_registrations.add((manager_name, action, candidate_lookup))
|
|
254
358
|
shard_keys.add(
|
|
255
359
|
composite_lookup_shard_key(
|
|
256
360
|
manager_name,
|
|
@@ -258,12 +362,17 @@ def _shard_keys_for_dependency(
|
|
|
258
362
|
candidate_lookup,
|
|
259
363
|
)
|
|
260
364
|
)
|
|
261
|
-
return
|
|
365
|
+
return _DependencyShardPlan(
|
|
366
|
+
frozenset(shard_keys),
|
|
367
|
+
frozenset(composites),
|
|
368
|
+
frozenset(simple_dependencies),
|
|
369
|
+
frozenset(lookup_registrations),
|
|
370
|
+
)
|
|
262
371
|
|
|
263
372
|
lookup, value = next(iter(params.items()))
|
|
264
373
|
spec = lookup_spec_from_key(str(lookup))
|
|
265
374
|
candidate_lookup = "__".join(spec.attr_path)
|
|
266
|
-
|
|
375
|
+
lookup_registrations.add((manager_name, action, candidate_lookup))
|
|
267
376
|
if spec.operator == "eq":
|
|
268
377
|
shard_keys.add(
|
|
269
378
|
exact_lookup_shard_key(manager_name, action, spec.lookup, "eq", value)
|
|
@@ -273,56 +382,96 @@ def _shard_keys_for_dependency(
|
|
|
273
382
|
scan_lookup_shard_key(manager_name, action, spec.lookup, spec.operator)
|
|
274
383
|
)
|
|
275
384
|
simple_dependencies.add((manager_name, action, identifier))
|
|
276
|
-
return
|
|
385
|
+
return _DependencyShardPlan(
|
|
386
|
+
frozenset(shard_keys),
|
|
387
|
+
frozenset(composites),
|
|
388
|
+
frozenset(simple_dependencies),
|
|
389
|
+
frozenset(lookup_registrations),
|
|
390
|
+
)
|
|
277
391
|
|
|
278
392
|
|
|
279
|
-
def
|
|
393
|
+
def _reverse_membership_for_dependencies(
|
|
280
394
|
cache_key: str,
|
|
281
|
-
|
|
282
|
-
) ->
|
|
283
|
-
"""Record dependency metadata for one cache key in deterministic shards."""
|
|
284
|
-
dependency_set = set(dependencies)
|
|
285
|
-
if not dependency_set:
|
|
286
|
-
return
|
|
287
|
-
|
|
288
|
-
clear_legacy_dependency_index()
|
|
289
|
-
remove_cache_key_from_shards(cache_key)
|
|
290
|
-
|
|
395
|
+
dependency_set: set[Dependency],
|
|
396
|
+
) -> tuple[ReverseDependencyMembership, set[tuple[str, str, str]]]:
|
|
291
397
|
shard_keys: set[str] = set()
|
|
292
398
|
composites: set[CompositeDependency] = set()
|
|
293
399
|
simple_dependencies: set[SimpleDependency] = set()
|
|
294
|
-
|
|
295
|
-
new_shards, new_composites, new_simple = _shard_keys_for_dependency(
|
|
296
|
-
manager_name,
|
|
297
|
-
action,
|
|
298
|
-
identifier,
|
|
299
|
-
)
|
|
300
|
-
shard_keys.update(new_shards)
|
|
301
|
-
composites.update(new_composites)
|
|
302
|
-
simple_dependencies.update(new_simple)
|
|
400
|
+
lookup_registrations: set[tuple[str, str, str]] = set()
|
|
303
401
|
|
|
304
|
-
for
|
|
305
|
-
|
|
402
|
+
for manager_name, action, identifier in dependency_set:
|
|
403
|
+
plan = _shard_keys_for_dependency(manager_name, action, identifier)
|
|
404
|
+
shard_keys.update(plan.shard_keys)
|
|
405
|
+
composites.update(plan.composite_dependencies)
|
|
406
|
+
simple_dependencies.update(plan.simple_dependencies)
|
|
407
|
+
lookup_registrations.update(plan.lookup_registrations)
|
|
306
408
|
|
|
307
|
-
|
|
308
|
-
reverse_membership_key(cache_key),
|
|
409
|
+
return (
|
|
309
410
|
ReverseDependencyMembership(
|
|
310
411
|
cache_key=cache_key,
|
|
311
412
|
shard_keys=frozenset(shard_keys),
|
|
312
413
|
composite_dependencies=frozenset(composites),
|
|
313
414
|
simple_dependencies=frozenset(simple_dependencies),
|
|
314
415
|
),
|
|
315
|
-
|
|
416
|
+
lookup_registrations,
|
|
316
417
|
)
|
|
317
|
-
|
|
418
|
+
|
|
419
|
+
|
|
420
|
+
def record_cache_dependencies(
|
|
421
|
+
cache_key: str,
|
|
422
|
+
dependencies: Iterable[Dependency],
|
|
423
|
+
) -> None:
|
|
424
|
+
"""Record dependency metadata for one cache key in deterministic shards."""
|
|
425
|
+
record_many_cache_dependencies(((cache_key, dependencies),))
|
|
318
426
|
|
|
319
427
|
|
|
320
428
|
def record_many_cache_dependencies(
|
|
321
429
|
entries: Iterable[tuple[str, Iterable[Dependency]]],
|
|
322
430
|
) -> None:
|
|
323
431
|
"""Record dependency metadata for many cache keys."""
|
|
432
|
+
normalized: dict[str, set[Dependency]] = {}
|
|
324
433
|
for cache_key, dependencies in entries:
|
|
325
|
-
|
|
434
|
+
dependency_set = set(dependencies)
|
|
435
|
+
if dependency_set:
|
|
436
|
+
normalized.setdefault(cache_key, set()).update(dependency_set)
|
|
437
|
+
if not normalized:
|
|
438
|
+
return
|
|
439
|
+
|
|
440
|
+
clear_legacy_dependency_index()
|
|
441
|
+
|
|
442
|
+
reverse_keys = {
|
|
443
|
+
cache_key: reverse_membership_key(cache_key) for cache_key in normalized
|
|
444
|
+
}
|
|
445
|
+
existing_reverses = _cache_get_many(reverse_keys.values())
|
|
446
|
+
|
|
447
|
+
shard_removals: dict[str, set[str]] = defaultdict(set)
|
|
448
|
+
for cache_key, reverse_key in reverse_keys.items():
|
|
449
|
+
reverse = existing_reverses.get(reverse_key)
|
|
450
|
+
if isinstance(reverse, ReverseDependencyMembership):
|
|
451
|
+
for shard_key in reverse.shard_keys:
|
|
452
|
+
shard_removals[shard_key].add(cache_key)
|
|
453
|
+
|
|
454
|
+
_cache_set_discard_many(shard_removals)
|
|
455
|
+
|
|
456
|
+
set_additions: dict[str, set[str]] = defaultdict(set)
|
|
457
|
+
reverse_payloads: dict[str, ReverseDependencyMembership] = {}
|
|
458
|
+
|
|
459
|
+
for cache_key, dependency_set in normalized.items():
|
|
460
|
+
reverse, lookup_registrations = _reverse_membership_for_dependencies(
|
|
461
|
+
cache_key,
|
|
462
|
+
dependency_set,
|
|
463
|
+
)
|
|
464
|
+
for shard_key in reverse.shard_keys:
|
|
465
|
+
set_additions[shard_key].add(cache_key)
|
|
466
|
+
for manager_name, action, lookup in lookup_registrations:
|
|
467
|
+
set_additions[lookup_registry_key(manager_name, action)].add(lookup)
|
|
468
|
+
|
|
469
|
+
reverse_key = reverse_keys[cache_key]
|
|
470
|
+
reverse_payloads[reverse_key] = reverse
|
|
471
|
+
set_additions[REVERSE_MEMBERSHIP_REGISTRY_KEY].add(reverse_key)
|
|
472
|
+
|
|
473
|
+
_cache_set_add_many(set_additions)
|
|
474
|
+
_cache_set_many(reverse_payloads)
|
|
326
475
|
|
|
327
476
|
|
|
328
477
|
def remove_cache_key_from_shards(cache_key: str) -> None:
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{generalmanager-0.52.0 → generalmanager-0.52.2}/src/GeneralManager.egg-info/dependency_links.txt
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{generalmanager-0.52.0 → generalmanager-0.52.2}/src/general_manager/_types/general_manager.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{generalmanager-0.52.0 → generalmanager-0.52.2}/src/general_manager/api/graphql_resolvers.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{generalmanager-0.52.0 → generalmanager-0.52.2}/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.52.0 → generalmanager-0.52.2}/src/general_manager/api/remote_invalidation.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{generalmanager-0.52.0 → generalmanager-0.52.2}/src/general_manager/bucket/calculation_bucket.py
RENAMED
|
File without changes
|
{generalmanager-0.52.0 → generalmanager-0.52.2}/src/general_manager/bucket/database_bucket.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{generalmanager-0.52.0 → generalmanager-0.52.2}/src/general_manager/bucket/request_bucket.py
RENAMED
|
File without changes
|
|
File without changes
|
{generalmanager-0.52.0 → generalmanager-0.52.2}/src/general_manager/cache/cache_decorator.py
RENAMED
|
File without changes
|
|
File without changes
|
{generalmanager-0.52.0 → generalmanager-0.52.2}/src/general_manager/cache/dependency_cache.py
RENAMED
|
File without changes
|
{generalmanager-0.52.0 → generalmanager-0.52.2}/src/general_manager/cache/dependency_index.py
RENAMED
|
File without changes
|
{generalmanager-0.52.0 → generalmanager-0.52.2}/src/general_manager/cache/dependency_matching.py
RENAMED
|
File without changes
|
{generalmanager-0.52.0 → generalmanager-0.52.2}/src/general_manager/cache/dependency_publish.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.52.0 → generalmanager-0.52.2}/src/general_manager/factory/factory_methods.py
RENAMED
|
File without changes
|
|
File without changes
|
{generalmanager-0.52.0 → generalmanager-0.52.2}/src/general_manager/interface/base_interface.py
RENAMED
|
File without changes
|
{generalmanager-0.52.0 → generalmanager-0.52.2}/src/general_manager/interface/bundles/__init__.py
RENAMED
|
File without changes
|
{generalmanager-0.52.0 → generalmanager-0.52.2}/src/general_manager/interface/bundles/calculation.py
RENAMED
|
File without changes
|
{generalmanager-0.52.0 → generalmanager-0.52.2}/src/general_manager/interface/bundles/database.py
RENAMED
|
File without changes
|
|
File without changes
|
{generalmanager-0.52.0 → generalmanager-0.52.2}/src/general_manager/interface/bundles/request.py
RENAMED
|
File without changes
|
|
File without changes
|
{generalmanager-0.52.0 → generalmanager-0.52.2}/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
|