GeneralManager 0.17.0__tar.gz → 0.19.0__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.
Potentially problematic release.
This version of GeneralManager might be problematic. Click here for more details.
- {generalmanager-0.17.0 → generalmanager-0.19.0}/LICENSE +1 -1
- {generalmanager-0.17.0/src/GeneralManager.egg-info → generalmanager-0.19.0}/PKG-INFO +3 -1
- {generalmanager-0.17.0 → generalmanager-0.19.0}/pyproject.toml +86 -1
- {generalmanager-0.17.0 → generalmanager-0.19.0/src/GeneralManager.egg-info}/PKG-INFO +3 -1
- {generalmanager-0.17.0 → generalmanager-0.19.0}/src/general_manager/__init__.py +11 -1
- {generalmanager-0.17.0 → generalmanager-0.19.0}/src/general_manager/_types/api.py +0 -1
- {generalmanager-0.17.0 → generalmanager-0.19.0}/src/general_manager/_types/bucket.py +0 -1
- {generalmanager-0.17.0 → generalmanager-0.19.0}/src/general_manager/_types/cache.py +0 -1
- {generalmanager-0.17.0 → generalmanager-0.19.0}/src/general_manager/_types/factory.py +0 -1
- {generalmanager-0.17.0 → generalmanager-0.19.0}/src/general_manager/_types/general_manager.py +0 -1
- {generalmanager-0.17.0 → generalmanager-0.19.0}/src/general_manager/_types/interface.py +0 -1
- {generalmanager-0.17.0 → generalmanager-0.19.0}/src/general_manager/_types/manager.py +0 -1
- {generalmanager-0.17.0 → generalmanager-0.19.0}/src/general_manager/_types/measurement.py +0 -1
- {generalmanager-0.17.0 → generalmanager-0.19.0}/src/general_manager/_types/permission.py +0 -1
- {generalmanager-0.17.0 → generalmanager-0.19.0}/src/general_manager/_types/rule.py +0 -1
- {generalmanager-0.17.0 → generalmanager-0.19.0}/src/general_manager/_types/utils.py +0 -1
- {generalmanager-0.17.0 → generalmanager-0.19.0}/src/general_manager/api/__init__.py +13 -1
- {generalmanager-0.17.0 → generalmanager-0.19.0}/src/general_manager/api/graphql.py +356 -221
- {generalmanager-0.17.0 → generalmanager-0.19.0}/src/general_manager/api/graphql_subscription_consumer.py +81 -78
- {generalmanager-0.17.0 → generalmanager-0.19.0}/src/general_manager/api/mutation.py +85 -23
- {generalmanager-0.17.0 → generalmanager-0.19.0}/src/general_manager/api/property.py +39 -13
- generalmanager-0.19.0/src/general_manager/apps.py +527 -0
- {generalmanager-0.17.0 → generalmanager-0.19.0}/src/general_manager/bucket/__init__.py +10 -1
- {generalmanager-0.17.0 → generalmanager-0.19.0}/src/general_manager/bucket/calculationBucket.py +155 -53
- {generalmanager-0.17.0 → generalmanager-0.19.0}/src/general_manager/bucket/databaseBucket.py +157 -45
- {generalmanager-0.17.0 → generalmanager-0.19.0}/src/general_manager/bucket/groupBucket.py +133 -44
- {generalmanager-0.17.0 → generalmanager-0.19.0}/src/general_manager/cache/__init__.py +10 -1
- {generalmanager-0.17.0 → generalmanager-0.19.0}/src/general_manager/cache/cacheDecorator.py +3 -0
- {generalmanager-0.17.0 → generalmanager-0.19.0}/src/general_manager/cache/dependencyIndex.py +143 -45
- {generalmanager-0.17.0 → generalmanager-0.19.0}/src/general_manager/cache/signals.py +9 -2
- {generalmanager-0.17.0 → generalmanager-0.19.0}/src/general_manager/factory/__init__.py +10 -1
- {generalmanager-0.17.0 → generalmanager-0.19.0}/src/general_manager/factory/autoFactory.py +55 -13
- {generalmanager-0.17.0 → generalmanager-0.19.0}/src/general_manager/factory/factories.py +110 -40
- generalmanager-0.19.0/src/general_manager/factory/factoryMethods.py +234 -0
- {generalmanager-0.17.0 → generalmanager-0.19.0}/src/general_manager/interface/__init__.py +10 -1
- {generalmanager-0.17.0 → generalmanager-0.19.0}/src/general_manager/interface/baseInterface.py +129 -36
- {generalmanager-0.17.0 → generalmanager-0.19.0}/src/general_manager/interface/calculationInterface.py +35 -18
- {generalmanager-0.17.0 → generalmanager-0.19.0}/src/general_manager/interface/databaseBasedInterface.py +71 -45
- generalmanager-0.19.0/src/general_manager/interface/databaseInterface.py +279 -0
- {generalmanager-0.17.0 → generalmanager-0.19.0}/src/general_manager/interface/models.py +5 -5
- {generalmanager-0.17.0 → generalmanager-0.19.0}/src/general_manager/interface/readOnlyInterface.py +94 -20
- {generalmanager-0.17.0 → generalmanager-0.19.0}/src/general_manager/manager/__init__.py +10 -1
- {generalmanager-0.17.0 → generalmanager-0.19.0}/src/general_manager/manager/generalManager.py +25 -16
- {generalmanager-0.17.0 → generalmanager-0.19.0}/src/general_manager/manager/groupManager.py +20 -6
- generalmanager-0.19.0/src/general_manager/manager/meta.py +195 -0
- {generalmanager-0.17.0 → generalmanager-0.19.0}/src/general_manager/measurement/__init__.py +10 -1
- generalmanager-0.19.0/src/general_manager/measurement/measurement.py +640 -0
- {generalmanager-0.17.0 → generalmanager-0.19.0}/src/general_manager/measurement/measurementField.py +42 -31
- {generalmanager-0.17.0 → generalmanager-0.19.0}/src/general_manager/permission/__init__.py +10 -1
- generalmanager-0.19.0/src/general_manager/permission/basePermission.py +261 -0
- {generalmanager-0.17.0 → generalmanager-0.19.0}/src/general_manager/permission/managerBasedPermission.py +72 -21
- {generalmanager-0.17.0 → generalmanager-0.19.0}/src/general_manager/permission/mutationPermission.py +14 -9
- {generalmanager-0.17.0 → generalmanager-0.19.0}/src/general_manager/permission/permissionChecks.py +14 -12
- {generalmanager-0.17.0 → generalmanager-0.19.0}/src/general_manager/permission/permissionDataManager.py +24 -11
- generalmanager-0.19.0/src/general_manager/permission/utils.py +74 -0
- {generalmanager-0.17.0 → generalmanager-0.19.0}/src/general_manager/public_api_registry.py +36 -10
- {generalmanager-0.17.0 → generalmanager-0.19.0}/src/general_manager/rule/__init__.py +10 -1
- generalmanager-0.19.0/src/general_manager/rule/handler.py +408 -0
- generalmanager-0.19.0/src/general_manager/rule/rule.py +467 -0
- {generalmanager-0.17.0 → generalmanager-0.19.0}/src/general_manager/utils/__init__.py +10 -1
- generalmanager-0.19.0/src/general_manager/utils/argsToKwargs.py +58 -0
- {generalmanager-0.17.0 → generalmanager-0.19.0}/src/general_manager/utils/filterParser.py +22 -7
- {generalmanager-0.17.0 → generalmanager-0.19.0}/src/general_manager/utils/formatString.py +1 -0
- {generalmanager-0.17.0 → generalmanager-0.19.0}/src/general_manager/utils/pathMapping.py +23 -15
- generalmanager-0.19.0/src/general_manager/utils/public_api.py +80 -0
- {generalmanager-0.17.0 → generalmanager-0.19.0}/src/general_manager/utils/testing.py +31 -33
- {generalmanager-0.17.0 → generalmanager-0.19.0}/tests/test_settings.py +4 -1
- generalmanager-0.17.0/src/general_manager/apps.py +0 -386
- generalmanager-0.17.0/src/general_manager/factory/factoryMethods.py +0 -146
- generalmanager-0.17.0/src/general_manager/interface/databaseInterface.py +0 -221
- generalmanager-0.17.0/src/general_manager/manager/meta.py +0 -127
- generalmanager-0.17.0/src/general_manager/measurement/measurement.py +0 -446
- generalmanager-0.17.0/src/general_manager/permission/basePermission.py +0 -179
- generalmanager-0.17.0/src/general_manager/permission/utils.py +0 -46
- generalmanager-0.17.0/src/general_manager/rule/handler.py +0 -319
- generalmanager-0.17.0/src/general_manager/rule/rule.py +0 -328
- generalmanager-0.17.0/src/general_manager/utils/argsToKwargs.py +0 -33
- generalmanager-0.17.0/src/general_manager/utils/public_api.py +0 -49
- {generalmanager-0.17.0 → generalmanager-0.19.0}/README.md +0 -0
- {generalmanager-0.17.0 → generalmanager-0.19.0}/setup.cfg +0 -0
- {generalmanager-0.17.0 → generalmanager-0.19.0}/src/GeneralManager.egg-info/SOURCES.txt +0 -0
- {generalmanager-0.17.0 → generalmanager-0.19.0}/src/GeneralManager.egg-info/dependency_links.txt +0 -0
- {generalmanager-0.17.0 → generalmanager-0.19.0}/src/GeneralManager.egg-info/requires.txt +0 -0
- {generalmanager-0.17.0 → generalmanager-0.19.0}/src/GeneralManager.egg-info/top_level.txt +0 -0
- {generalmanager-0.17.0 → generalmanager-0.19.0}/src/general_manager/_types/__init__.py +0 -0
- {generalmanager-0.17.0 → generalmanager-0.19.0}/src/general_manager/bucket/baseBucket.py +0 -0
- {generalmanager-0.17.0 → generalmanager-0.19.0}/src/general_manager/cache/cacheTracker.py +0 -0
- {generalmanager-0.17.0 → generalmanager-0.19.0}/src/general_manager/cache/modelDependencyCollector.py +0 -0
- {generalmanager-0.17.0 → generalmanager-0.19.0}/src/general_manager/manager/input.py +0 -0
- {generalmanager-0.17.0 → generalmanager-0.19.0}/src/general_manager/permission/fileBasedPermission.py +0 -0
- {generalmanager-0.17.0 → generalmanager-0.19.0}/src/general_manager/py.typed +0 -0
- {generalmanager-0.17.0 → generalmanager-0.19.0}/src/general_manager/utils/jsonEncoder.py +0 -0
- {generalmanager-0.17.0 → generalmanager-0.19.0}/src/general_manager/utils/makeCacheKey.py +0 -0
- {generalmanager-0.17.0 → generalmanager-0.19.0}/src/general_manager/utils/noneToZero.py +0 -0
- {generalmanager-0.17.0 → generalmanager-0.19.0}/tests/test_urls.py +0 -0
- {generalmanager-0.17.0 → generalmanager-0.19.0}/tests/testing_asgi.py +0 -0
|
@@ -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,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
|
|
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "GeneralManager"
|
|
7
|
-
version = "0.
|
|
7
|
+
version = "0.19.0"
|
|
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" }]
|
|
@@ -25,6 +25,7 @@ classifiers = [
|
|
|
25
25
|
"Programming Language :: Python :: 3 :: Only",
|
|
26
26
|
"Programming Language :: Python :: 3.12",
|
|
27
27
|
"Programming Language :: Python :: 3.13",
|
|
28
|
+
"Programming Language :: Python :: 3.14",
|
|
28
29
|
"Framework :: Django",
|
|
29
30
|
"Intended Audience :: Developers",
|
|
30
31
|
"Operating System :: OS Independent",
|
|
@@ -86,3 +87,87 @@ upload_to_release = true
|
|
|
86
87
|
|
|
87
88
|
[tool.semantic_release.remote]
|
|
88
89
|
ignore_token_for_push = true
|
|
90
|
+
|
|
91
|
+
[tool.ruff]
|
|
92
|
+
|
|
93
|
+
target-version = "py312"
|
|
94
|
+
line-length = 88
|
|
95
|
+
src = ["src", "tests"]
|
|
96
|
+
extend-exclude = ["example_project"]
|
|
97
|
+
|
|
98
|
+
[tool.ruff.lint]
|
|
99
|
+
select = [
|
|
100
|
+
"F", # Pyflakes
|
|
101
|
+
"B", # flake8-bugbear
|
|
102
|
+
"S", # flake8-bandit (Security)
|
|
103
|
+
"BLE", # blind except
|
|
104
|
+
"T10", # debugger
|
|
105
|
+
"EXE", # executable
|
|
106
|
+
"ARG", # unused arguments
|
|
107
|
+
"TRY", # tryceratops
|
|
108
|
+
"RUF", # Ruff-own rules
|
|
109
|
+
"E7", # pycodestyle: Syntax
|
|
110
|
+
"E9", # pycodestyle: Runtime
|
|
111
|
+
]
|
|
112
|
+
|
|
113
|
+
ignore = [
|
|
114
|
+
"F401",
|
|
115
|
+
"I001",
|
|
116
|
+
"Q000",
|
|
117
|
+
"UP006",
|
|
118
|
+
"E501",
|
|
119
|
+
"S101",
|
|
120
|
+
"ARG001",
|
|
121
|
+
"ARG002",
|
|
122
|
+
"ARG003",
|
|
123
|
+
"ARG004",
|
|
124
|
+
]
|
|
125
|
+
|
|
126
|
+
[tool.ruff.lint.per-file-ignores]
|
|
127
|
+
"**/__init__.py" = ["E402"]
|
|
128
|
+
"**/conftest.py" = ["E402"]
|
|
129
|
+
"example_project/manage.py" = ["TRY003"]
|
|
130
|
+
"example_project/**/migrations/*.py" = ["RUF012"]
|
|
131
|
+
|
|
132
|
+
[tool.ruff.format]
|
|
133
|
+
quote-style = "double"
|
|
134
|
+
indent-style = "space"
|
|
135
|
+
line-ending = "lf"
|
|
136
|
+
skip-magic-trailing-comma = false
|
|
137
|
+
docstring-code-format = true
|
|
138
|
+
|
|
139
|
+
[tool.mypy]
|
|
140
|
+
python_version = "3.12"
|
|
141
|
+
explicit_package_bases = true
|
|
142
|
+
namespace_packages = true
|
|
143
|
+
mypy_path = ["src"]
|
|
144
|
+
files = ["src"]
|
|
145
|
+
exclude = ["^build/", "^dist/", "^docs/", "^example_project/", "^site/"]
|
|
146
|
+
|
|
147
|
+
[[tool.mypy.overrides]]
|
|
148
|
+
module = [
|
|
149
|
+
"channels",
|
|
150
|
+
"channels.*",
|
|
151
|
+
"channels.layers",
|
|
152
|
+
"channels.auth",
|
|
153
|
+
"channels.routing",
|
|
154
|
+
"django",
|
|
155
|
+
"django.*",
|
|
156
|
+
"django_simple_history",
|
|
157
|
+
"simple_history",
|
|
158
|
+
"simple_history.*",
|
|
159
|
+
"exrex",
|
|
160
|
+
"factory",
|
|
161
|
+
"factory.*",
|
|
162
|
+
"faker",
|
|
163
|
+
"faker.*",
|
|
164
|
+
"graphene",
|
|
165
|
+
"graphene.*",
|
|
166
|
+
"graphql",
|
|
167
|
+
"graphql.*",
|
|
168
|
+
"numpy",
|
|
169
|
+
"pint",
|
|
170
|
+
"pint.*",
|
|
171
|
+
"promise",
|
|
172
|
+
]
|
|
173
|
+
ignore_missing_imports = true
|
|
@@ -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
|
|
@@ -12,9 +12,19 @@ __all__ = list(GENERAL_MANAGER_EXPORTS)
|
|
|
12
12
|
_MODULE_MAP = GENERAL_MANAGER_EXPORTS
|
|
13
13
|
|
|
14
14
|
if TYPE_CHECKING:
|
|
15
|
-
from general_manager._types.general_manager import * # noqa:
|
|
15
|
+
from general_manager._types.general_manager import * # noqa: F403
|
|
16
|
+
|
|
16
17
|
|
|
17
18
|
def __getattr__(name: str) -> Any:
|
|
19
|
+
"""
|
|
20
|
+
Dynamically resolve and return a requested export when a module attribute is accessed but not defined.
|
|
21
|
+
|
|
22
|
+
Parameters:
|
|
23
|
+
name (str): The attribute name being accessed on the module.
|
|
24
|
+
|
|
25
|
+
Returns:
|
|
26
|
+
Any: The resolved export object or value corresponding to `name`.
|
|
27
|
+
"""
|
|
18
28
|
return resolve_export(
|
|
19
29
|
name,
|
|
20
30
|
module_all=__all__,
|
|
@@ -17,4 +17,3 @@ from general_manager.cache.cacheDecorator import cached
|
|
|
17
17
|
from general_manager.cache.dependencyIndex import invalidate_cache_key
|
|
18
18
|
from general_manager.cache.dependencyIndex import record_dependencies
|
|
19
19
|
from general_manager.cache.dependencyIndex import remove_cache_key_from_index
|
|
20
|
-
|
|
@@ -15,4 +15,3 @@ from general_manager.interface.databaseBasedInterface import DBBasedInterface
|
|
|
15
15
|
from general_manager.interface.databaseInterface import DatabaseInterface
|
|
16
16
|
from general_manager.interface.baseInterface import InterfaceBase
|
|
17
17
|
from general_manager.interface.readOnlyInterface import ReadOnlyInterface
|
|
18
|
-
|
|
@@ -13,4 +13,3 @@ from general_manager.measurement.measurement import Measurement
|
|
|
13
13
|
from general_manager.measurement.measurementField import MeasurementField
|
|
14
14
|
from general_manager.measurement.measurement import currency_units
|
|
15
15
|
from general_manager.measurement.measurement import ureg
|
|
16
|
-
|
|
@@ -12,10 +12,22 @@ __all__ = list(API_EXPORTS)
|
|
|
12
12
|
_MODULE_MAP = API_EXPORTS
|
|
13
13
|
|
|
14
14
|
if TYPE_CHECKING:
|
|
15
|
-
from general_manager._types.api import * # noqa:
|
|
15
|
+
from general_manager._types.api import * # noqa: F403
|
|
16
16
|
|
|
17
17
|
|
|
18
18
|
def __getattr__(name: str) -> Any:
|
|
19
|
+
"""
|
|
20
|
+
Dynamically resolve and return a named export from this module.
|
|
21
|
+
|
|
22
|
+
Parameters:
|
|
23
|
+
name (str): The attribute name to resolve from the module's public API.
|
|
24
|
+
|
|
25
|
+
Returns:
|
|
26
|
+
The resolved exported object corresponding to `name`.
|
|
27
|
+
|
|
28
|
+
Raises:
|
|
29
|
+
AttributeError: If `name` is not a registered export for this module.
|
|
30
|
+
"""
|
|
19
31
|
return resolve_export(
|
|
20
32
|
name,
|
|
21
33
|
module_all=__all__,
|