GeneralManager 0.17.0__py3-none-any.whl → 0.19.0__py3-none-any.whl
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.
- general_manager/__init__.py +11 -1
- general_manager/_types/api.py +0 -1
- general_manager/_types/bucket.py +0 -1
- general_manager/_types/cache.py +0 -1
- general_manager/_types/factory.py +0 -1
- general_manager/_types/general_manager.py +0 -1
- general_manager/_types/interface.py +0 -1
- general_manager/_types/manager.py +0 -1
- general_manager/_types/measurement.py +0 -1
- general_manager/_types/permission.py +0 -1
- general_manager/_types/rule.py +0 -1
- general_manager/_types/utils.py +0 -1
- general_manager/api/__init__.py +13 -1
- general_manager/api/graphql.py +356 -221
- general_manager/api/graphql_subscription_consumer.py +81 -78
- general_manager/api/mutation.py +85 -23
- general_manager/api/property.py +39 -13
- general_manager/apps.py +188 -47
- general_manager/bucket/__init__.py +10 -1
- general_manager/bucket/calculationBucket.py +155 -53
- general_manager/bucket/databaseBucket.py +157 -45
- general_manager/bucket/groupBucket.py +133 -44
- general_manager/cache/__init__.py +10 -1
- general_manager/cache/cacheDecorator.py +3 -0
- general_manager/cache/dependencyIndex.py +143 -45
- general_manager/cache/signals.py +9 -2
- general_manager/factory/__init__.py +10 -1
- general_manager/factory/autoFactory.py +55 -13
- general_manager/factory/factories.py +110 -40
- general_manager/factory/factoryMethods.py +122 -34
- general_manager/interface/__init__.py +10 -1
- general_manager/interface/baseInterface.py +129 -36
- general_manager/interface/calculationInterface.py +35 -18
- general_manager/interface/databaseBasedInterface.py +71 -45
- general_manager/interface/databaseInterface.py +96 -38
- general_manager/interface/models.py +5 -5
- general_manager/interface/readOnlyInterface.py +94 -20
- general_manager/manager/__init__.py +10 -1
- general_manager/manager/generalManager.py +25 -16
- general_manager/manager/groupManager.py +20 -6
- general_manager/manager/meta.py +84 -16
- general_manager/measurement/__init__.py +10 -1
- general_manager/measurement/measurement.py +289 -95
- general_manager/measurement/measurementField.py +42 -31
- general_manager/permission/__init__.py +10 -1
- general_manager/permission/basePermission.py +120 -38
- general_manager/permission/managerBasedPermission.py +72 -21
- general_manager/permission/mutationPermission.py +14 -9
- general_manager/permission/permissionChecks.py +14 -12
- general_manager/permission/permissionDataManager.py +24 -11
- general_manager/permission/utils.py +34 -6
- general_manager/public_api_registry.py +36 -10
- general_manager/rule/__init__.py +10 -1
- general_manager/rule/handler.py +133 -44
- general_manager/rule/rule.py +178 -39
- general_manager/utils/__init__.py +10 -1
- general_manager/utils/argsToKwargs.py +34 -9
- general_manager/utils/filterParser.py +22 -7
- general_manager/utils/formatString.py +1 -0
- general_manager/utils/pathMapping.py +23 -15
- general_manager/utils/public_api.py +33 -2
- general_manager/utils/testing.py +31 -33
- {generalmanager-0.17.0.dist-info → generalmanager-0.19.0.dist-info}/METADATA +3 -1
- generalmanager-0.19.0.dist-info/RECORD +77 -0
- {generalmanager-0.17.0.dist-info → generalmanager-0.19.0.dist-info}/licenses/LICENSE +1 -1
- generalmanager-0.17.0.dist-info/RECORD +0 -77
- {generalmanager-0.17.0.dist-info → generalmanager-0.19.0.dist-info}/WHEEL +0 -0
- {generalmanager-0.17.0.dist-info → generalmanager-0.19.0.dist-info}/top_level.txt +0 -0
general_manager/utils/testing.py
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
from contextlib import suppress
|
|
4
4
|
from importlib import import_module
|
|
5
|
-
from typing import Any, Callable, cast
|
|
5
|
+
from typing import Any, Callable, ClassVar, cast
|
|
6
6
|
|
|
7
7
|
from django.apps import AppConfig, apps as global_apps
|
|
8
8
|
from django.conf import settings
|
|
@@ -81,15 +81,15 @@ class GMTestCaseMeta(type):
|
|
|
81
81
|
) -> type:
|
|
82
82
|
"""
|
|
83
83
|
Create a new test case class that injects GeneralManager-specific initialization into `setUpClass`.
|
|
84
|
-
|
|
84
|
+
|
|
85
85
|
The constructed class replaces or wraps any user-defined `setUpClass` with logic that resets GraphQL and manager registries, configures an optional fallback app lookup, ensures database tables for managed models exist, initializes GeneralManager and GraphQL registrations, and then calls the standard GraphQL test setup.
|
|
86
|
-
|
|
86
|
+
|
|
87
87
|
Parameters:
|
|
88
88
|
mcs (type[GMTestCaseMeta]): Metaclass constructing the new class.
|
|
89
89
|
name (str): Name of the class to create.
|
|
90
90
|
bases (tuple[type, ...]): Base classes for the new class.
|
|
91
91
|
attrs (dict[str, object]): Class namespace; may contain a user-defined `setUpClass` and `fallback_app`.
|
|
92
|
-
|
|
92
|
+
|
|
93
93
|
Returns:
|
|
94
94
|
type: The newly created test case class whose `setUpClass` has been augmented for GeneralManager testing.
|
|
95
95
|
"""
|
|
@@ -103,8 +103,8 @@ class GMTestCaseMeta(type):
|
|
|
103
103
|
) -> None:
|
|
104
104
|
"""
|
|
105
105
|
Prepare the test environment for GeneralManager GraphQL tests.
|
|
106
|
-
|
|
107
|
-
Resets GraphQL and manager registries, optionally
|
|
106
|
+
|
|
107
|
+
Resets GraphQL and manager registries, optionally overrides Django's app-config lookup to use a fallback app, clears the default GraphQL URL pattern, creates missing database tables for models referenced by the test class's `general_manager_classes`, initializes GeneralManager classes and read-only interfaces, registers GraphQL types/fields, and then invokes the base class `setUpClass`.
|
|
108
108
|
"""
|
|
109
109
|
GraphQL._query_class = None
|
|
110
110
|
GraphQL._mutation_class = None
|
|
@@ -120,10 +120,9 @@ class GMTestCaseMeta(type):
|
|
|
120
120
|
GraphQL._schema = None
|
|
121
121
|
|
|
122
122
|
if fallback_app is not None:
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
createFallbackGetApp(fallback_app),
|
|
123
|
+
handler = createFallbackGetApp(fallback_app)
|
|
124
|
+
global_apps.get_containing_app_config = cast( # type: ignore[assignment]
|
|
125
|
+
Callable[[str], AppConfig | None], handler
|
|
127
126
|
)
|
|
128
127
|
|
|
129
128
|
# 1) user-defined setUpClass (if any)
|
|
@@ -146,11 +145,14 @@ class GMTestCaseMeta(type):
|
|
|
146
145
|
):
|
|
147
146
|
continue
|
|
148
147
|
model_class = cast(
|
|
149
|
-
type[models.Model],
|
|
148
|
+
type[models.Model],
|
|
149
|
+
manager_class.Interface._model, # type: ignore
|
|
150
150
|
)
|
|
151
151
|
if model_class._meta.db_table not in existing:
|
|
152
152
|
editor.create_model(model_class)
|
|
153
|
-
|
|
153
|
+
history_model = getattr(model_class, "history", None)
|
|
154
|
+
if history_model:
|
|
155
|
+
editor.create_model(history_model.model) # type: ignore[attr-defined]
|
|
154
156
|
# 4) GM & GraphQL initialization
|
|
155
157
|
GeneralmanagerConfig.initializeGeneralManagerClasses(
|
|
156
158
|
cls.general_manager_classes, cls.general_manager_classes
|
|
@@ -197,22 +199,20 @@ class LoggingCache(LocMemCache):
|
|
|
197
199
|
self,
|
|
198
200
|
key: str,
|
|
199
201
|
value: object,
|
|
200
|
-
timeout:
|
|
202
|
+
timeout: float | None = None,
|
|
201
203
|
version: int | None = None,
|
|
202
204
|
) -> None:
|
|
203
205
|
"""
|
|
204
|
-
Store a value in the cache and
|
|
206
|
+
Store a value in the cache and record the set operation in the cache's operation log.
|
|
205
207
|
|
|
206
208
|
Parameters:
|
|
207
|
-
key (str): Cache key
|
|
208
|
-
value (
|
|
209
|
-
timeout (
|
|
209
|
+
key (str): Cache key under which to store the value.
|
|
210
|
+
value (object): Value to store.
|
|
211
|
+
timeout (float | None): Expiration time in seconds, or None for no explicit timeout.
|
|
210
212
|
version (int | None): Optional cache version identifier.
|
|
211
|
-
|
|
212
|
-
Returns:
|
|
213
|
-
None
|
|
214
213
|
"""
|
|
215
|
-
|
|
214
|
+
timeout = int(timeout) if timeout is not None else timeout
|
|
215
|
+
super().set(key, value, timeout=timeout, version=version)
|
|
216
216
|
self.ops.append(("set", key))
|
|
217
217
|
|
|
218
218
|
|
|
@@ -233,30 +233,26 @@ class GeneralManagerTransactionTestCase(
|
|
|
233
233
|
GraphQLTransactionTestCase, metaclass=GMTestCaseMeta
|
|
234
234
|
):
|
|
235
235
|
GRAPHQL_URL = "/graphql/"
|
|
236
|
-
general_manager_classes: list[type[GeneralManager]] = []
|
|
237
|
-
read_only_classes: list[type[GeneralManager]] = []
|
|
236
|
+
general_manager_classes: ClassVar[list[type[GeneralManager]]] = []
|
|
237
|
+
read_only_classes: ClassVar[list[type[GeneralManager]]] = []
|
|
238
238
|
fallback_app: str | None = "general_manager"
|
|
239
239
|
|
|
240
240
|
def setUp(self) -> None:
|
|
241
241
|
"""
|
|
242
|
-
|
|
242
|
+
Install a logging cache backend and reset its operation log for the test.
|
|
243
243
|
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
Returns:
|
|
247
|
-
None
|
|
244
|
+
Replaces Django's default cache connection with a LoggingCache instance and clears any prior cache operation records so tests start with a fresh cache operation log.
|
|
248
245
|
"""
|
|
249
246
|
super().setUp()
|
|
250
|
-
|
|
247
|
+
caches._connections.default = LoggingCache("test-cache", {}) # type: ignore[attr-defined]
|
|
251
248
|
self.__resetCacheCounter()
|
|
252
249
|
|
|
253
250
|
@classmethod
|
|
254
251
|
def tearDownClass(cls) -> None:
|
|
255
252
|
"""
|
|
256
|
-
|
|
253
|
+
Tear down test-class state by removing dynamically created models and restoring patched global state.
|
|
257
254
|
|
|
258
|
-
|
|
259
|
-
None
|
|
255
|
+
Performs these actions: removes the GraphQL URL pattern added during setup; drops database tables for any models created for the test (including associated history models); unregisters those models from Django's app registry and clears the app cache; removes the test's GeneralManager classes from metaclass registries; restores the original app-config lookup function; and finally calls the superclass teardown.
|
|
260
256
|
"""
|
|
261
257
|
# remove GraphQL URL pattern added during setUpClass
|
|
262
258
|
_default_graphql_url_clear()
|
|
@@ -308,7 +304,9 @@ class GeneralManagerTransactionTestCase(
|
|
|
308
304
|
]
|
|
309
305
|
|
|
310
306
|
# reset fallback app lookup
|
|
311
|
-
|
|
307
|
+
global_apps.get_containing_app_config = cast( # type: ignore[assignment]
|
|
308
|
+
Callable[[str], AppConfig | None], _original_get_app
|
|
309
|
+
)
|
|
312
310
|
|
|
313
311
|
super().tearDownClass()
|
|
314
312
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: GeneralManager
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.19.0
|
|
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
|
|
@@ -24,6 +24,7 @@ License: MIT License
|
|
|
24
24
|
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
25
25
|
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
26
26
|
SOFTWARE.
|
|
27
|
+
|
|
27
28
|
Project-URL: Homepage, https://github.com/TimKleindick/general_manager
|
|
28
29
|
Project-URL: Documentation, https://timkleindick.github.io/general_manager/
|
|
29
30
|
Project-URL: Repository, https://github.com/TimKleindick/general_manager
|
|
@@ -35,6 +36,7 @@ Classifier: Programming Language :: Python :: 3
|
|
|
35
36
|
Classifier: Programming Language :: Python :: 3 :: Only
|
|
36
37
|
Classifier: Programming Language :: Python :: 3.12
|
|
37
38
|
Classifier: Programming Language :: Python :: 3.13
|
|
39
|
+
Classifier: Programming Language :: Python :: 3.14
|
|
38
40
|
Classifier: Framework :: Django
|
|
39
41
|
Classifier: Intended Audience :: Developers
|
|
40
42
|
Classifier: Operating System :: OS Independent
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
general_manager/__init__.py,sha256=Xy4_fFjChIYtlBPDv7K3JEHOulq9_IFXkCc4CElS32Q,1035
|
|
2
|
+
general_manager/apps.py,sha256=wFxRLEqyFbBlOB5yvQXjNX_Yc4DPsl0xD5-PIWvhPdk,25785
|
|
3
|
+
general_manager/public_api_registry.py,sha256=zR-pOl5-X1IEt-Q6eF8FT-6mQiQi3Tsmvkfi1nxIKp8,7544
|
|
4
|
+
general_manager/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
5
|
+
general_manager/_types/__init__.py,sha256=RmS0Ok-1-CwWOZL_socLWksEk9MfsshL9eQx879I4mU,60
|
|
6
|
+
general_manager/_types/api.py,sha256=WO5b0MT85LaVsi_KE45onWX1R75iENM4Q-3qMEZCbdk,488
|
|
7
|
+
general_manager/_types/bucket.py,sha256=bMsZFsh3kiUrtmtK10X_oA2LVCIHXbub4xDVBzYw5sQ,431
|
|
8
|
+
general_manager/_types/cache.py,sha256=J49VQLm-UChQOPal1mbd5vB2JtjIhS_HT-7Yl1jDtVE,654
|
|
9
|
+
general_manager/_types/factory.py,sha256=ovjtOLjZNHxWjt6q5xT1n-3nlE2JcqxZfR5GXLhnpY8,1652
|
|
10
|
+
general_manager/_types/general_manager.py,sha256=Y-L_CdzM54pB_q-gZR3mp--md9sbQOA8UtTkiII4kac,951
|
|
11
|
+
general_manager/_types/interface.py,sha256=Fuo9-PcUwyNLI-dw4S1T2l_K5-Ndhz_ed-_vswksgaY,598
|
|
12
|
+
general_manager/_types/manager.py,sha256=WaTh3F2r5IdG7tQsbJkO2h0Sf1uv4jQllJ-upG3rCLU,500
|
|
13
|
+
general_manager/_types/measurement.py,sha256=CIgWAWM1UNEh1pKTG5Tj0XKiktdhY6dIgm3WbxG5IlM,442
|
|
14
|
+
general_manager/_types/permission.py,sha256=i8E7O6NENjkbXVf4k4TQgHo9V74yEH-KVcbQrsW9GBk,412
|
|
15
|
+
general_manager/_types/rule.py,sha256=aNbx3jlVinAYQGJlmFwW8rOwTjf19F6khq5xbGTdD3U,238
|
|
16
|
+
general_manager/_types/utils.py,sha256=p2U0R0G0qviA5tmgfYggD4wRmIiCQGU7XF4Lqtoa_aM,1025
|
|
17
|
+
general_manager/api/__init__.py,sha256=ChV1UPCUjW1Lci0BajmXVtE-3C-WLQTvjO058BMu1Bs,1020
|
|
18
|
+
general_manager/api/graphql.py,sha256=Ma4fb_1YWEP_pBXVBfCjp6D2oSOl3yUFp5hk9kIwZ9E,79451
|
|
19
|
+
general_manager/api/graphql_subscription_consumer.py,sha256=cA-pQNjeF4o92yc2IHtNob6z1CNhHoGxIw2Fgoj24-U,17492
|
|
20
|
+
general_manager/api/mutation.py,sha256=A7Z5UPn_ln8VJIF9NHLdA9jAXqT0p7dB0u2WDjtis2I,10130
|
|
21
|
+
general_manager/api/property.py,sha256=vBoOSBtqMV9uwWdgiYLoAt2f_aL7h6fCnwdjgPcm2LE,5683
|
|
22
|
+
general_manager/bucket/__init__.py,sha256=0VbGdLveCYBvbDBdOCwNDJ1SmxrVyd5-Xv-X0JZXwb4,949
|
|
23
|
+
general_manager/bucket/baseBucket.py,sha256=wSQijZrs1joA-8IGh2AwD4KARSgYqSL4AxXq3KwOz6A,8126
|
|
24
|
+
general_manager/bucket/calculationBucket.py,sha256=x6wl71C1lt6BDIIcPDg06JL5Nyp7igAS6Lrb1YeitjQ,30934
|
|
25
|
+
general_manager/bucket/databaseBucket.py,sha256=Ud0ailMQPoBbt0hsnpIm4urhrTAuw12xbowPD2Mh7Zg,23075
|
|
26
|
+
general_manager/bucket/groupBucket.py,sha256=mOyYyYKP53eIk2iaTES0J_HxABbUtoJtcHlyGeg-WvM,16354
|
|
27
|
+
general_manager/cache/__init__.py,sha256=1qLNRTHScsXDoIXKdwvHwyoi7pIb5phv7ASS1AP4Xc8,1014
|
|
28
|
+
general_manager/cache/cacheDecorator.py,sha256=IAf9KW0hOQRIScBqSHmP5Bn4O2JwqwVxmMtEHKlNO3Q,3493
|
|
29
|
+
general_manager/cache/cacheTracker.py,sha256=rb637hGHOe79sehpTZLhfO979qrYLw3ATufo7kr_VvM,2991
|
|
30
|
+
general_manager/cache/dependencyIndex.py,sha256=7PWYbeeMCPCP3_xUSCTkrStr50csE4bgHiW81IMalsg,25599
|
|
31
|
+
general_manager/cache/modelDependencyCollector.py,sha256=iFiuuQKO3-sEcUxbpA1svxL2TMkr8F6afAtRXK5fUBk,2645
|
|
32
|
+
general_manager/cache/signals.py,sha256=0EQjBkhydObwOFpVm4le8nh4KxMfk_1hzSFZSQ0DiBE,2552
|
|
33
|
+
general_manager/factory/__init__.py,sha256=A-if6AxDHIejg9S2ObJXGolBfD5xfG9P1aUqT-KEGf0,943
|
|
34
|
+
general_manager/factory/autoFactory.py,sha256=ueO38ns0Z-NZtuVKk0BmqURxngxCyuP5Y6_UUvllrxg,10398
|
|
35
|
+
general_manager/factory/factories.py,sha256=9dIQygfvkaBCKgE8CFMTsamYn3aaTuQHY7lN-IQN6ng,12158
|
|
36
|
+
general_manager/factory/factoryMethods.py,sha256=sNxyoMzmSDHeEo11yhzNmUGFSt9AapXAjLpGkrsR594,8373
|
|
37
|
+
general_manager/interface/__init__.py,sha256=L0IQUHOJehJbX6hzX9nomMhT8f1tqrPtLDgINIpe5-w,1010
|
|
38
|
+
general_manager/interface/baseInterface.py,sha256=JgI5FpyArINVVFhGqDVtVijilrs1UUt-5RfYPmc96PE,15799
|
|
39
|
+
general_manager/interface/calculationInterface.py,sha256=mkoBXalFaktqz34zFPB0Eo0lmdMGCWVShtdm8NcK4y8,5952
|
|
40
|
+
general_manager/interface/databaseBasedInterface.py,sha256=U_9Q1uD03JXSdlgjW4-Evica2NsbP8Wg1FNN0j0aYPY,25543
|
|
41
|
+
general_manager/interface/databaseInterface.py,sha256=NVtwsGKffXVOo6D3UNkR496y-2Y7KTq2AjRhxxsjj-c,11731
|
|
42
|
+
general_manager/interface/models.py,sha256=RPvjw56IZyvrSH_-Hr9evO5Zkc6NrOUtAsKM0G0vb7o,3693
|
|
43
|
+
general_manager/interface/readOnlyInterface.py,sha256=9hmDh5SnZSsWkjlphKL_OtyorHjeRwzBrxXGobkMO1E,14912
|
|
44
|
+
general_manager/manager/__init__.py,sha256=Dbka86jtcS2NIxKXA0mohqnLZwLb6NDRX-HeD1_R6UQ,933
|
|
45
|
+
general_manager/manager/generalManager.py,sha256=98LR4TBJsGaQDcfhQOH_2HfZngZK9c0jYMn1W03Qblo,10217
|
|
46
|
+
general_manager/manager/groupManager.py,sha256=-e7Zvd4JQSvBhYVVnO7p8FarXE6YE4CzaTXgUGYzoGw,7313
|
|
47
|
+
general_manager/manager/input.py,sha256=UoVU0FDXHDEmuOk7mppx63DuwbPK2_qolcILar2Kk6U,3031
|
|
48
|
+
general_manager/manager/meta.py,sha256=gh2FEvSvyYTRU2mIOR-Vw2OM1PtNZ8CNqHE2ST87who,9614
|
|
49
|
+
general_manager/measurement/__init__.py,sha256=38-6kTERbw7EeOQAw3eZ9DDEu6hwwqkGJIfJy1D5fx0,993
|
|
50
|
+
general_manager/measurement/measurement.py,sha256=PRsR7KZiZ-m8pwR1DVlBxnetEkWcmHbzsXT2s5tfXs8,26067
|
|
51
|
+
general_manager/measurement/measurementField.py,sha256=zQbyLZT7E9Lx4f3u_wQ-rEoLPqH0FWhfWyOd1BaW--M,13950
|
|
52
|
+
general_manager/permission/__init__.py,sha256=s4Ka11uYBrymM5O-n5kIxOjwUprZ394jTuzGf5prO_8,981
|
|
53
|
+
general_manager/permission/basePermission.py,sha256=9XC62LvbvX6LTmPG2z_y-Q16zwgo2sqtxRoEtViYI3A,11101
|
|
54
|
+
general_manager/permission/fileBasedPermission.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
55
|
+
general_manager/permission/managerBasedPermission.py,sha256=Vju6lriBDgieOt_rVpn2EVtX4762DHtAO7799A1EveQ,10577
|
|
56
|
+
general_manager/permission/mutationPermission.py,sha256=LvUuozjcaQtcCmyO_8VZ_hCW-Ah-TYqRyqU-ghTh7LI,4584
|
|
57
|
+
general_manager/permission/permissionChecks.py,sha256=ax7OucBgm__-sFdmTP95eCllSmtd7M9JVoq9XmIJCEM,2294
|
|
58
|
+
general_manager/permission/permissionDataManager.py,sha256=m3ZP58iuuKSRNuTWZtz6mPbFKw7oALorHKu9AyIwwFA,3899
|
|
59
|
+
general_manager/permission/utils.py,sha256=BePKYjaThY2rFElOaaSWA5ZIOkH_psRF67N9odhziDM,2895
|
|
60
|
+
general_manager/rule/__init__.py,sha256=dFQLJNr0qpkpuzuBbMY-74jz_Y033YyB9X_OfeJYhSs,1026
|
|
61
|
+
general_manager/rule/handler.py,sha256=H7XX3reM5Wc3FxzHLZvB9npQo5yuuOAUNuG12ojp-zM,16316
|
|
62
|
+
general_manager/rule/rule.py,sha256=RMxrH8BdQwQmzuUxUMoWbbfn5nh2wR2uoOdxLZYntNc,19620
|
|
63
|
+
general_manager/utils/__init__.py,sha256=a72hkiV4_c3wQN-NK-q3Dw25irbzoTTfyKm173WtjwQ,1003
|
|
64
|
+
general_manager/utils/argsToKwargs.py,sha256=uvc0YkfeKvny4SGWNVqFioIxajBHrSkzoqrzonu7jeU,2128
|
|
65
|
+
general_manager/utils/filterParser.py,sha256=c8rmUXiTky3rHwqfNtvUgtUyM3pFOJaCVQzncI1b3AY,5684
|
|
66
|
+
general_manager/utils/formatString.py,sha256=Da7aJMjP_vH85N4O8iqMflQHNWJqZChXp4vFC-3kXUw,1512
|
|
67
|
+
general_manager/utils/jsonEncoder.py,sha256=Jw7iA50GEOjxk_AiebXJ9PNl_KijnvEOLG7oISZ07KE,1048
|
|
68
|
+
general_manager/utils/makeCacheKey.py,sha256=T9YTHDW8VN50iW_Yzklm9Xw-mp1Q7PKMphQ8lLKkqdA,1252
|
|
69
|
+
general_manager/utils/noneToZero.py,sha256=e3zk8Ofh3AsYW8spYmZWiv7FjOsr0jvfB9AOQbaPMWY,665
|
|
70
|
+
general_manager/utils/pathMapping.py,sha256=WnCY43pFQrpdUN8DyO6QsOpDB3MPIyXf7q6wms7bHws,9913
|
|
71
|
+
general_manager/utils/public_api.py,sha256=VvsJWJkJ9HIVu5xSQ_IhX2SROSbORXeGARpGVSGo9r4,2732
|
|
72
|
+
general_manager/utils/testing.py,sha256=DhWeOqtANpKEmvyfn7ihjKEAllXHMWdNOgJ7aw8EBcU,14913
|
|
73
|
+
generalmanager-0.19.0.dist-info/licenses/LICENSE,sha256=OcRwUgM4iiESN1oNELgyuwuah39XX-EPZiPDDHndNVI,1070
|
|
74
|
+
generalmanager-0.19.0.dist-info/METADATA,sha256=yzF3pArOVG33hIPGRhRI6glOKUFtATAEkS7Arv2rAMk,8266
|
|
75
|
+
generalmanager-0.19.0.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
76
|
+
generalmanager-0.19.0.dist-info/top_level.txt,sha256=sTDtExP9ga-YP3h3h42yivUY-A2Q23C2nw6LNKOho4I,16
|
|
77
|
+
generalmanager-0.19.0.dist-info/RECORD,,
|
|
@@ -18,4 +18,4 @@ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
|
18
18
|
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
19
|
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
20
|
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
-
SOFTWARE.
|
|
21
|
+
SOFTWARE.
|
|
@@ -1,77 +0,0 @@
|
|
|
1
|
-
general_manager/__init__.py,sha256=OmRYpjg3N9w0yX1eAq32WdLtcf8I55M3sqhO-Qrawjo,742
|
|
2
|
-
general_manager/apps.py,sha256=Fsqvh7Xznp_7zOAyHABGtwJz10oT4kdY3C4MgmOGnAs,16723
|
|
3
|
-
general_manager/public_api_registry.py,sha256=xKfgbyvXB_oZZku9ksLNzOGQbmL5QfWuRGE2qH2FOtc,7338
|
|
4
|
-
general_manager/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
5
|
-
general_manager/_types/__init__.py,sha256=RmS0Ok-1-CwWOZL_socLWksEk9MfsshL9eQx879I4mU,60
|
|
6
|
-
general_manager/_types/api.py,sha256=EnEUKCr24Ac2klzZJvx17dJNxDRyfI9zEx9I0vCfpio,489
|
|
7
|
-
general_manager/_types/bucket.py,sha256=-kK46YX7mGwv3OVEjZTnmMqR9qpq8fT09Ez-wMF80nc,432
|
|
8
|
-
general_manager/_types/cache.py,sha256=KfHr6Pdg9WpWKs5iyNLA4vq9S9GRMGwDCjLe7zgIMRw,655
|
|
9
|
-
general_manager/_types/factory.py,sha256=2QZTc9jDbH55Jj-DuuuiWEdgqAFmlCqchsKB0EAwD5E,1653
|
|
10
|
-
general_manager/_types/general_manager.py,sha256=mImHmBX39Al2q9Uqkmzrrvcdk3b-DzfEbyaTxc_Qiyw,952
|
|
11
|
-
general_manager/_types/interface.py,sha256=mjrifUJyixgkjCVjcJokEs-pzxlssEJSXu7DsTK5Nzc,599
|
|
12
|
-
general_manager/_types/manager.py,sha256=hjmV5gtWDhy_XAaZ6jIRVLCWVwps90tL8SqnC2oS8OQ,501
|
|
13
|
-
general_manager/_types/measurement.py,sha256=5ZAsmjULrSe6Zh4-NyV1CXCAYJ75qqO_YWWQeeTao-Y,443
|
|
14
|
-
general_manager/_types/permission.py,sha256=BG-RMsGgVCRVHyJgns9a1VTcwtqS9WzbG2HOrXaBNaI,413
|
|
15
|
-
general_manager/_types/rule.py,sha256=Ju5t7NhGO76KnqwOElXk2cMI6cIYyMW5sEPayXExJPM,239
|
|
16
|
-
general_manager/_types/utils.py,sha256=jze1yRZQw_OKVOmJNMv4MEu92rP01CVtjLBCEMqxCqk,1026
|
|
17
|
-
general_manager/api/__init__.py,sha256=6Usf6aEc5RalaOE4xzqqSp7KChxi9W4Nts4nFIFHtt4,677
|
|
18
|
-
general_manager/api/graphql.py,sha256=2OYYYtCDu5-L5aBRTv2Ns6s6O2lnyEQvootmoXQiuPY,74261
|
|
19
|
-
general_manager/api/graphql_subscription_consumer.py,sha256=JXJ8FRi3kP07jTXs9kSeSLaAc_AueiqJf_eeaVu8w4s,17916
|
|
20
|
-
general_manager/api/mutation.py,sha256=6T-UHElnTxWubG99-Svy7AeFlHuXaKc8nKvRPADmI0E,7347
|
|
21
|
-
general_manager/api/property.py,sha256=tT-eAKcuPhy0q_v0fKL4gPXcCVASC5M15_DYWMCQXjc,4358
|
|
22
|
-
general_manager/bucket/__init__.py,sha256=Ay3kVmdxWC8nt3jYx3FFnND89ysD_z0GaD5rIr-v7Ec,690
|
|
23
|
-
general_manager/bucket/baseBucket.py,sha256=wSQijZrs1joA-8IGh2AwD4KARSgYqSL4AxXq3KwOz6A,8126
|
|
24
|
-
general_manager/bucket/calculationBucket.py,sha256=nH2VATcS3z07LGpKiWUEf3CiYnPjNeJPYhYo6ZSBNqk,25996
|
|
25
|
-
general_manager/bucket/databaseBucket.py,sha256=5k0Q7iDJUgnOqQMg2SG35nM16C7_E5TzNMGJc0BVzXM,17127
|
|
26
|
-
general_manager/bucket/groupBucket.py,sha256=-cN9jA_AOsnrpwmjiy6jTB_TFoUqLMeM1SdJ6DlSXag,12103
|
|
27
|
-
general_manager/cache/__init__.py,sha256=_jwrpqGzlwaL1moqG1B9XL9V-QW08VVdtDbkVDfN_sU,698
|
|
28
|
-
general_manager/cache/cacheDecorator.py,sha256=kgUvJHcC8tilqf1JH2QvyG-158AT_rmuKf6pgUy1IBs,3406
|
|
29
|
-
general_manager/cache/cacheTracker.py,sha256=rb637hGHOe79sehpTZLhfO979qrYLw3ATufo7kr_VvM,2991
|
|
30
|
-
general_manager/cache/dependencyIndex.py,sha256=FWUqnG1BAqF7FdAFl8bqa4JX3ecN8dpesyeRbo0JsQU,19389
|
|
31
|
-
general_manager/cache/modelDependencyCollector.py,sha256=iFiuuQKO3-sEcUxbpA1svxL2TMkr8F6afAtRXK5fUBk,2645
|
|
32
|
-
general_manager/cache/signals.py,sha256=pKibv1EL7fYL4KB7O13TpqVTKZLnqo6A620vKlXaNkg,2015
|
|
33
|
-
general_manager/factory/__init__.py,sha256=t9RLlp_ZPU_0Xu5I7hg-xwo3yy1eSwnvfXMYvpGCFtE,714
|
|
34
|
-
general_manager/factory/autoFactory.py,sha256=j5jy5FASG8xhToE1yCwQ8c53XLsKBtPLFYPWS17K9Fk,8441
|
|
35
|
-
general_manager/factory/factories.py,sha256=7rmO7tIBDiBpRoXUbPleNHYuXs0owAMGcoOsFTKr3KA,8475
|
|
36
|
-
general_manager/factory/factoryMethods.py,sha256=gFHctepxvdNJKASuNvj5RrDCheIpBYQHh3D0n7OeIsM,5018
|
|
37
|
-
general_manager/interface/__init__.py,sha256=kLcHRvDb9_lxNgNEp4GXZ3qCZc5tHwruEt1tz3nDgtA,726
|
|
38
|
-
general_manager/interface/baseInterface.py,sha256=Gg1r1rzgn2AM2IC4lDUg2Q5m8AwlX-c_9RVKgALeGa4,10797
|
|
39
|
-
general_manager/interface/calculationInterface.py,sha256=5xr4pnn3XNYXlEBgsI9YbSjCXBGeVA11x7pgicPqgW8,5079
|
|
40
|
-
general_manager/interface/databaseBasedInterface.py,sha256=lRAmjaTUHKk250S4F2WKe--52xvYiip3pfIrG1mfB-g,24096
|
|
41
|
-
general_manager/interface/databaseInterface.py,sha256=vDj2mgWnIrsvcu1_HBq018303WndhqUL0o2qnNsQ6hM,8356
|
|
42
|
-
general_manager/interface/models.py,sha256=rtuhOKeSgD2DboeZIMAQU99JyCOT7SuiuGqWvDjAQqk,3576
|
|
43
|
-
general_manager/interface/readOnlyInterface.py,sha256=UcaCClVJv8IT-EBm__IN4jU6td_sXRRCN_Y_OKngs_4,11392
|
|
44
|
-
general_manager/manager/__init__.py,sha256=UwvLs13_UpYsq5igSY78cbyg11C6iTrHlr-rtDql43I,703
|
|
45
|
-
general_manager/manager/generalManager.py,sha256=A6kYjM2duxT0AAeN0er87gRWjLmcPmEjPmNHTQgACgs,9577
|
|
46
|
-
general_manager/manager/groupManager.py,sha256=zGSupjNVgASinyjLkpaM_SeR4Kb61hyXbkcj-R3sPa0,6429
|
|
47
|
-
general_manager/manager/input.py,sha256=UoVU0FDXHDEmuOk7mppx63DuwbPK2_qolcILar2Kk6U,3031
|
|
48
|
-
general_manager/manager/meta.py,sha256=iGYwuVrM0SWyvzVPLTS0typ8VT38QoxFuWhA1b1FBnA,5032
|
|
49
|
-
general_manager/measurement/__init__.py,sha256=Tt2Es7J-dGWcd8bFK4PR2m4AKBlRoj2WGXcKy64fOTY,711
|
|
50
|
-
general_manager/measurement/measurement.py,sha256=FOtnOASNV6qhYsIsN-VX9JuGWwvpmJqusMgYxkEHhqE,16876
|
|
51
|
-
general_manager/measurement/measurementField.py,sha256=4W12etl4OukuQOf2K016KZ9K7LtzgEE1FEIW2jySzRM,13227
|
|
52
|
-
general_manager/permission/__init__.py,sha256=myUSLuG30I4OQa7CvKFuloKAAEJCir6ew27Tlc6653Q,730
|
|
53
|
-
general_manager/permission/basePermission.py,sha256=Gv-6HkX_MXqm1RZxKvK_J-9cuSOEOYn5yYWAzL8PjlA,6728
|
|
54
|
-
general_manager/permission/fileBasedPermission.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
55
|
-
general_manager/permission/managerBasedPermission.py,sha256=KgTUl7_oDjCuQlPrgTkjoduA9w04TWAK1jWZ1T0PiwE,7795
|
|
56
|
-
general_manager/permission/mutationPermission.py,sha256=QuGpdX8lyM-_xxclYXXwDVxJ_WSEKvwLIJaFdtcmvSE,4197
|
|
57
|
-
general_manager/permission/permissionChecks.py,sha256=l09zokWPwZKUTlJOxtE5r_ZdPDDIDxGoAbydL4wHmII,2253
|
|
58
|
-
general_manager/permission/permissionDataManager.py,sha256=Jf5JiqKH4CdnxeNGqfB3NnkjL5qzERaYvj7qprw_05c,3190
|
|
59
|
-
general_manager/permission/utils.py,sha256=gnKSSiet5U5Zm9o7E5-QdN29tX_VX6sv82K5evGVzPk,1629
|
|
60
|
-
general_manager/rule/__init__.py,sha256=BHTtPyZ6sCXBeJgToL5VGoxsGCdwEi5R5qcT4xMYL_k,690
|
|
61
|
-
general_manager/rule/handler.py,sha256=h85-Oazhc4gpWNl8ieR4pDEtu8a8lTeJcbiEj11C4Nw,11349
|
|
62
|
-
general_manager/rule/rule.py,sha256=uo1XT_5lN11t5AmFg5v5AsIC1-JkmqannQvAPHmyQXY,11303
|
|
63
|
-
general_manager/utils/__init__.py,sha256=BADJHiMBYpT1MKtnls3P0V6sdmd2UX8VgEAlQu_KliI,700
|
|
64
|
-
general_manager/utils/argsToKwargs.py,sha256=XYIEgPBeIvJoNWeqmO6djRrqo3IcnPcoSUbfWrUByI0,1294
|
|
65
|
-
general_manager/utils/filterParser.py,sha256=6GzcpCzMRkmJkNs6SttJqS4DQHa_-nYheyhSWDrhIrg,5100
|
|
66
|
-
general_manager/utils/formatString.py,sha256=McmsBaB1DnA4YVKswXn5rqNRPHUEiX6dID69YBzfoh0,1511
|
|
67
|
-
general_manager/utils/jsonEncoder.py,sha256=Jw7iA50GEOjxk_AiebXJ9PNl_KijnvEOLG7oISZ07KE,1048
|
|
68
|
-
general_manager/utils/makeCacheKey.py,sha256=T9YTHDW8VN50iW_Yzklm9Xw-mp1Q7PKMphQ8lLKkqdA,1252
|
|
69
|
-
general_manager/utils/noneToZero.py,sha256=e3zk8Ofh3AsYW8spYmZWiv7FjOsr0jvfB9AOQbaPMWY,665
|
|
70
|
-
general_manager/utils/pathMapping.py,sha256=3BWRUM1EimUKeh8i_UK6nYsKtOJDykgmZgCA9dgYjqU,9531
|
|
71
|
-
general_manager/utils/public_api.py,sha256=SNTI_tRMcbv0qMttm-wMBoAEkqSEFMTI6ZHMajOnDlg,1437
|
|
72
|
-
general_manager/utils/testing.py,sha256=etf_JlSaulD85A1CjPeOS0M0CbWCfPnaOxgHi0ozJLQ,14083
|
|
73
|
-
generalmanager-0.17.0.dist-info/licenses/LICENSE,sha256=OezwCA4X2-xXmRDvMaqHvHCeUmGtyCYjZ8F3XUxSGwc,1069
|
|
74
|
-
generalmanager-0.17.0.dist-info/METADATA,sha256=-YVROYZscJ9qFKOuwPEN7IJ8vunvto6P4OEm_Elsevo,8206
|
|
75
|
-
generalmanager-0.17.0.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
76
|
-
generalmanager-0.17.0.dist-info/top_level.txt,sha256=sTDtExP9ga-YP3h3h42yivUY-A2Q23C2nw6LNKOho4I,16
|
|
77
|
-
generalmanager-0.17.0.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|