brilliance-admin 0.44.12__tar.gz → 0.44.14__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.
- {brilliance_admin-0.44.12 → brilliance_admin-0.44.14}/PKG-INFO +2 -1
- {brilliance_admin-0.44.12 → brilliance_admin-0.44.14}/brilliance_admin/schema/table/category_table.py +6 -6
- {brilliance_admin-0.44.12 → brilliance_admin-0.44.14}/brilliance_admin/schema/table/fields/function_field.py +2 -2
- {brilliance_admin-0.44.12 → brilliance_admin-0.44.14}/brilliance_admin/schema/table/fields_schema.py +2 -2
- brilliance_admin-0.44.12/brilliance_admin/static/index-8ahvKI6W.js → brilliance_admin-0.44.14/brilliance_admin/static/index-COgQt_g1.js +1 -1
- {brilliance_admin-0.44.12 → brilliance_admin-0.44.14}/brilliance_admin/templates/index.html +1 -1
- {brilliance_admin-0.44.12 → brilliance_admin-0.44.14}/brilliance_admin.egg-info/PKG-INFO +2 -1
- {brilliance_admin-0.44.12 → brilliance_admin-0.44.14}/brilliance_admin.egg-info/SOURCES.txt +1 -1
- {brilliance_admin-0.44.12 → brilliance_admin-0.44.14}/brilliance_admin.egg-info/requires.txt +1 -0
- {brilliance_admin-0.44.12 → brilliance_admin-0.44.14}/pyproject.toml +2 -1
- {brilliance_admin-0.44.12 → brilliance_admin-0.44.14}/LICENSE +0 -0
- {brilliance_admin-0.44.12 → brilliance_admin-0.44.14}/README.md +0 -0
- {brilliance_admin-0.44.12 → brilliance_admin-0.44.14}/brilliance_admin/__init__.py +0 -0
- {brilliance_admin-0.44.12 → brilliance_admin-0.44.14}/brilliance_admin/api/__init__.py +0 -0
- {brilliance_admin-0.44.12 → brilliance_admin-0.44.14}/brilliance_admin/api/routers.py +0 -0
- {brilliance_admin-0.44.12 → brilliance_admin-0.44.14}/brilliance_admin/api/utils.py +0 -0
- {brilliance_admin-0.44.12 → brilliance_admin-0.44.14}/brilliance_admin/api/views/__init__.py +0 -0
- {brilliance_admin-0.44.12 → brilliance_admin-0.44.14}/brilliance_admin/api/views/auth.py +0 -0
- {brilliance_admin-0.44.12 → brilliance_admin-0.44.14}/brilliance_admin/api/views/autocomplete.py +0 -0
- {brilliance_admin-0.44.12 → brilliance_admin-0.44.14}/brilliance_admin/api/views/dashboard.py +0 -0
- {brilliance_admin-0.44.12 → brilliance_admin-0.44.14}/brilliance_admin/api/views/index.py +0 -0
- {brilliance_admin-0.44.12 → brilliance_admin-0.44.14}/brilliance_admin/api/views/schema.py +0 -0
- {brilliance_admin-0.44.12 → brilliance_admin-0.44.14}/brilliance_admin/api/views/settings.py +0 -0
- {brilliance_admin-0.44.12 → brilliance_admin-0.44.14}/brilliance_admin/api/views/table.py +0 -0
- {brilliance_admin-0.44.12 → brilliance_admin-0.44.14}/brilliance_admin/auth.py +0 -0
- {brilliance_admin-0.44.12 → brilliance_admin-0.44.14}/brilliance_admin/docs.py +0 -0
- {brilliance_admin-0.44.12 → brilliance_admin-0.44.14}/brilliance_admin/exceptions.py +0 -0
- {brilliance_admin-0.44.12 → brilliance_admin-0.44.14}/brilliance_admin/integrations/__init__.py +0 -0
- {brilliance_admin-0.44.12 → brilliance_admin-0.44.14}/brilliance_admin/integrations/sqlalchemy/__init__.py +0 -0
- {brilliance_admin-0.44.12 → brilliance_admin-0.44.14}/brilliance_admin/integrations/sqlalchemy/auth.py +0 -0
- {brilliance_admin-0.44.12 → brilliance_admin-0.44.14}/brilliance_admin/integrations/sqlalchemy/autocomplete.py +0 -0
- {brilliance_admin-0.44.12 → brilliance_admin-0.44.14}/brilliance_admin/integrations/sqlalchemy/fields.py +0 -0
- {brilliance_admin-0.44.12 → brilliance_admin-0.44.14}/brilliance_admin/integrations/sqlalchemy/fields_schema.py +0 -0
- {brilliance_admin-0.44.12 → brilliance_admin-0.44.14}/brilliance_admin/integrations/sqlalchemy/table/__init__.py +0 -0
- {brilliance_admin-0.44.12 → brilliance_admin-0.44.14}/brilliance_admin/integrations/sqlalchemy/table/base.py +0 -0
- {brilliance_admin-0.44.12 → brilliance_admin-0.44.14}/brilliance_admin/integrations/sqlalchemy/table/create.py +0 -0
- {brilliance_admin-0.44.12 → brilliance_admin-0.44.14}/brilliance_admin/integrations/sqlalchemy/table/delete.py +0 -0
- {brilliance_admin-0.44.12 → brilliance_admin-0.44.14}/brilliance_admin/integrations/sqlalchemy/table/list.py +0 -0
- {brilliance_admin-0.44.12 → brilliance_admin-0.44.14}/brilliance_admin/integrations/sqlalchemy/table/retrieve.py +0 -0
- {brilliance_admin-0.44.12 → brilliance_admin-0.44.14}/brilliance_admin/integrations/sqlalchemy/table/update.py +0 -0
- {brilliance_admin-0.44.12 → brilliance_admin-0.44.14}/brilliance_admin/locales/en.yml +0 -0
- {brilliance_admin-0.44.12 → brilliance_admin-0.44.14}/brilliance_admin/locales/ru.yml +0 -0
- {brilliance_admin-0.44.12 → brilliance_admin-0.44.14}/brilliance_admin/schema/__init__.py +0 -0
- {brilliance_admin-0.44.12 → brilliance_admin-0.44.14}/brilliance_admin/schema/admin_schema.py +0 -0
- {brilliance_admin-0.44.12 → brilliance_admin-0.44.14}/brilliance_admin/schema/category.py +0 -0
- {brilliance_admin-0.44.12 → brilliance_admin-0.44.14}/brilliance_admin/schema/dashboard/__init__.py +0 -0
- {brilliance_admin-0.44.12 → brilliance_admin-0.44.14}/brilliance_admin/schema/dashboard/category_dashboard.py +0 -0
- {brilliance_admin-0.44.12 → brilliance_admin-0.44.14}/brilliance_admin/schema/table/__init__.py +0 -0
- {brilliance_admin-0.44.12 → brilliance_admin-0.44.14}/brilliance_admin/schema/table/admin_action.py +0 -0
- {brilliance_admin-0.44.12 → brilliance_admin-0.44.14}/brilliance_admin/schema/table/fields/__init__.py +0 -0
- {brilliance_admin-0.44.12 → brilliance_admin-0.44.14}/brilliance_admin/schema/table/fields/base.py +0 -0
- {brilliance_admin-0.44.12 → brilliance_admin-0.44.14}/brilliance_admin/schema/table/table_models.py +0 -0
- {brilliance_admin-0.44.12 → brilliance_admin-0.44.14}/brilliance_admin/static/index-B8JOx1Ps.css +0 -0
- {brilliance_admin-0.44.12 → brilliance_admin-0.44.14}/brilliance_admin/static/materialdesignicons-webfont-CYDMK1kx.woff2 +0 -0
- {brilliance_admin-0.44.12 → brilliance_admin-0.44.14}/brilliance_admin/static/materialdesignicons-webfont-CgCzGbLl.woff +0 -0
- {brilliance_admin-0.44.12 → brilliance_admin-0.44.14}/brilliance_admin/static/materialdesignicons-webfont-D3kAzl71.ttf +0 -0
- {brilliance_admin-0.44.12 → brilliance_admin-0.44.14}/brilliance_admin/static/materialdesignicons-webfont-DttUABo4.eot +0 -0
- {brilliance_admin-0.44.12 → brilliance_admin-0.44.14}/brilliance_admin/static/tinymce/dark-first/content.min.css +0 -0
- {brilliance_admin-0.44.12 → brilliance_admin-0.44.14}/brilliance_admin/static/tinymce/dark-first/skin.min.css +0 -0
- {brilliance_admin-0.44.12 → brilliance_admin-0.44.14}/brilliance_admin/static/tinymce/dark-slim/content.min.css +0 -0
- {brilliance_admin-0.44.12 → brilliance_admin-0.44.14}/brilliance_admin/static/tinymce/dark-slim/skin.min.css +0 -0
- {brilliance_admin-0.44.12 → brilliance_admin-0.44.14}/brilliance_admin/static/tinymce/img/example.png +0 -0
- {brilliance_admin-0.44.12 → brilliance_admin-0.44.14}/brilliance_admin/static/tinymce/img/tinymce.woff2 +0 -0
- {brilliance_admin-0.44.12 → brilliance_admin-0.44.14}/brilliance_admin/static/tinymce/lightgray/content.min.css +0 -0
- {brilliance_admin-0.44.12 → brilliance_admin-0.44.14}/brilliance_admin/static/tinymce/lightgray/fonts/tinymce.woff +0 -0
- {brilliance_admin-0.44.12 → brilliance_admin-0.44.14}/brilliance_admin/static/tinymce/lightgray/skin.min.css +0 -0
- {brilliance_admin-0.44.12 → brilliance_admin-0.44.14}/brilliance_admin/static/tinymce/plugins/accordion/css/accordion.css +0 -0
- {brilliance_admin-0.44.12 → brilliance_admin-0.44.14}/brilliance_admin/static/tinymce/plugins/accordion/plugin.js +0 -0
- {brilliance_admin-0.44.12 → brilliance_admin-0.44.14}/brilliance_admin/static/tinymce/plugins/codesample/css/prism.css +0 -0
- {brilliance_admin-0.44.12 → brilliance_admin-0.44.14}/brilliance_admin/static/tinymce/plugins/customLink/css/link.css +0 -0
- {brilliance_admin-0.44.12 → brilliance_admin-0.44.14}/brilliance_admin/static/tinymce/plugins/customLink/plugin.js +0 -0
- {brilliance_admin-0.44.12 → brilliance_admin-0.44.14}/brilliance_admin/static/tinymce/tinymce.min.js +0 -0
- {brilliance_admin-0.44.12 → brilliance_admin-0.44.14}/brilliance_admin/static/vanilla-picker-B6E6ObS_.js +0 -0
- {brilliance_admin-0.44.12 → brilliance_admin-0.44.14}/brilliance_admin/translations.py +0 -0
- {brilliance_admin-0.44.12 → brilliance_admin-0.44.14}/brilliance_admin/utils.py +0 -0
- {brilliance_admin-0.44.12 → brilliance_admin-0.44.14}/brilliance_admin.egg-info/dependency_links.txt +0 -0
- {brilliance_admin-0.44.12 → brilliance_admin-0.44.14}/brilliance_admin.egg-info/top_level.txt +0 -0
- {brilliance_admin-0.44.12 → brilliance_admin-0.44.14}/setup.cfg +0 -0
- {brilliance_admin-0.44.12 → brilliance_admin-0.44.14}/tests/test_action.py +0 -0
- {brilliance_admin-0.44.12 → brilliance_admin-0.44.14}/tests/test_payments_fields_schema.py +0 -0
- {brilliance_admin-0.44.12 → brilliance_admin-0.44.14}/tests/test_settings.py +0 -0
- {brilliance_admin-0.44.12 → brilliance_admin-0.44.14}/tests/test_sqlalcmeny_auth.py +0 -0
- {brilliance_admin-0.44.12 → brilliance_admin-0.44.14}/tests/test_sqlalcmeny_crud.py +0 -0
- {brilliance_admin-0.44.12 → brilliance_admin-0.44.14}/tests/test_sqlalcmeny_filters.py +0 -0
- {brilliance_admin-0.44.12 → brilliance_admin-0.44.14}/tests/test_sqlalcmeny_schema.py +0 -0
- {brilliance_admin-0.44.12 → brilliance_admin-0.44.14}/tests/test_translations.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: brilliance-admin
|
|
3
|
-
Version: 0.44.
|
|
3
|
+
Version: 0.44.14
|
|
4
4
|
Summary: Simple and lightweight data managment framework powered by FastAPI and Vue3 Vuetify all-in-one. Some call it heavenly in its brilliance.
|
|
5
5
|
License-Expression: MIT
|
|
6
6
|
Requires-Python: >=3.10
|
|
@@ -28,6 +28,7 @@ Requires-Dist: sqlalchemy>=2.0.41; extra == "tests"
|
|
|
28
28
|
Requires-Dist: aiosqlite>=0.22.1; extra == "tests"
|
|
29
29
|
Requires-Dist: factory-boy>=3.3.3; extra == "tests"
|
|
30
30
|
Requires-Dist: pyjwt>=2.10.1; extra == "tests"
|
|
31
|
+
Requires-Dist: testcontainers>=4.14.1; extra == "tests"
|
|
31
32
|
Provides-Extra: scalar
|
|
32
33
|
Requires-Dist: scalar-fastapi>=1.5.0; extra == "scalar"
|
|
33
34
|
Dynamic: license-file
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import abc
|
|
2
|
-
import asyncio
|
|
3
2
|
import copy
|
|
3
|
+
import inspect
|
|
4
4
|
from typing import Awaitable, List
|
|
5
5
|
|
|
6
6
|
from fastapi import HTTPException, Request
|
|
@@ -50,17 +50,17 @@ class CategoryTable(BaseCategory):
|
|
|
50
50
|
return False
|
|
51
51
|
|
|
52
52
|
fn = getattr(self, 'retrieve', None)
|
|
53
|
-
return
|
|
53
|
+
return inspect.iscoroutinefunction(fn)
|
|
54
54
|
|
|
55
55
|
@property
|
|
56
56
|
def has_create(self):
|
|
57
57
|
fn = getattr(self, 'create', None)
|
|
58
|
-
return
|
|
58
|
+
return inspect.iscoroutinefunction(fn)
|
|
59
59
|
|
|
60
60
|
@property
|
|
61
61
|
def has_update(self):
|
|
62
62
|
fn = getattr(self, 'update', None)
|
|
63
|
-
return
|
|
63
|
+
return inspect.iscoroutinefunction(fn)
|
|
64
64
|
|
|
65
65
|
def generate_schema(self, user, language_context: LanguageContext) -> dict:
|
|
66
66
|
schema = super().generate_schema(user, language_context)
|
|
@@ -93,7 +93,7 @@ class CategoryTable(BaseCategory):
|
|
|
93
93
|
continue
|
|
94
94
|
|
|
95
95
|
attribute = getattr(self, attribute_name)
|
|
96
|
-
if
|
|
96
|
+
if inspect.iscoroutinefunction(attribute) and getattr(attribute, '__action__', False):
|
|
97
97
|
action = copy.copy(attribute.action_info)
|
|
98
98
|
|
|
99
99
|
action['title'] = language_context.get_text(action.get('title'))
|
|
@@ -116,7 +116,7 @@ class CategoryTable(BaseCategory):
|
|
|
116
116
|
|
|
117
117
|
def _get_action_fn(self, action: str) -> Awaitable | None:
|
|
118
118
|
attribute = getattr(self, action)
|
|
119
|
-
if not
|
|
119
|
+
if not inspect.iscoroutinefunction(attribute) or not getattr(attribute, '__action__', False):
|
|
120
120
|
return None
|
|
121
121
|
|
|
122
122
|
return attribute
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import asyncio
|
|
2
1
|
import functools
|
|
2
|
+
import inspect
|
|
3
3
|
from typing import Any
|
|
4
4
|
|
|
5
5
|
from pydantic.dataclasses import dataclass
|
|
@@ -45,7 +45,7 @@ class FunctionField(TableField):
|
|
|
45
45
|
fn: Any = None
|
|
46
46
|
|
|
47
47
|
def __post_init__(self):
|
|
48
|
-
if not
|
|
48
|
+
if not inspect.iscoroutinefunction(self.fn):
|
|
49
49
|
msg = f'{type(self).__name__}.fn {self.fn} must be coroutine function'
|
|
50
50
|
raise AttributeError(msg)
|
|
51
51
|
|
{brilliance_admin-0.44.12 → brilliance_admin-0.44.14}/brilliance_admin/schema/table/fields_schema.py
RENAMED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import
|
|
1
|
+
import inspect
|
|
2
2
|
from typing import Any, ClassVar, Dict, List
|
|
3
3
|
|
|
4
4
|
from pydantic_core import core_schema
|
|
@@ -186,7 +186,7 @@ class FieldsSchema:
|
|
|
186
186
|
|
|
187
187
|
validate_method = getattr(self, f'validate_{field_slug}', None)
|
|
188
188
|
if callable(validate_method):
|
|
189
|
-
if not
|
|
189
|
+
if not inspect.iscoroutinefunction(validate_method):
|
|
190
190
|
msg = f'Validate method {type(self).__name__}.{field_slug} must be async'
|
|
191
191
|
raise AttributeError(msg)
|
|
192
192
|
deserialized_value = await validate_method(value)
|