dmart 1.4.40.post30__py3-none-any.whl → 1.4.40.post33__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.
- dmart/api/managed/router.py +1 -2
- dmart/api/public/router.py +0 -1
- dmart/api/user/router.py +1 -1
- dmart/cxb/assets/EntryRenderer-9GXyhIWz.js +32 -0
- dmart/cxb/assets/{ListView-BdD1H9O0.js → ListView-DZFUWyVb.js} +1 -1
- dmart/cxb/assets/{_module-D8kEF7kO.js → _module-BTyKyzwE.js} +1 -1
- dmart/cxb/assets/{_module-V6R1b0kg.js → _module-BwgDn_st.js} +1 -1
- dmart/cxb/assets/{index-DgQsfZgD.js → index-BWN92sjI.js} +2 -2
- dmart/cxb/assets/{index-6M7C9TrA.js → index-CIUfy6RC.js} +1 -1
- dmart/cxb/assets/{index-BpfgvZff.js → index-DOCBh6PM.js} +1 -1
- dmart/cxb/assets/{index-BgluT4fV.js → index-Du1Yp_ew.js} +1 -1
- dmart/cxb/assets/{index-CH9Pz6mL.js → index-UMAHQJV7.js} +1 -1
- dmart/cxb/assets/{index-C3bhX1QW.js → index-xuuZoPt8.js} +1 -1
- dmart/cxb/config.json +1 -1
- dmart/cxb/index.html +1 -1
- dmart/data_adapters/file/adapter.py +72 -0
- dmart/data_adapters/sql/adapter.py +21 -4
- dmart/dmart.py +106 -47
- dmart/info.json +1 -1
- dmart/main.py +10 -3
- dmart/utils/settings.py +0 -31
- {dmart-1.4.40.post30.dist-info → dmart-1.4.40.post33.dist-info}/METADATA +1 -1
- {dmart-1.4.40.post30.dist-info → dmart-1.4.40.post33.dist-info}/RECORD +26 -26
- dmart/cxb/assets/EntryRenderer-9uNxNpBp.js +0 -32
- {dmart-1.4.40.post30.dist-info → dmart-1.4.40.post33.dist-info}/WHEEL +0 -0
- {dmart-1.4.40.post30.dist-info → dmart-1.4.40.post33.dist-info}/entry_points.txt +0 -0
- {dmart-1.4.40.post30.dist-info → dmart-1.4.40.post33.dist-info}/top_level.txt +0 -0
dmart/dmart.py
CHANGED
|
@@ -4,12 +4,12 @@ from __future__ import annotations
|
|
|
4
4
|
import argparse
|
|
5
5
|
import asyncio
|
|
6
6
|
import json
|
|
7
|
-
import os
|
|
8
7
|
import shutil
|
|
9
8
|
import ssl
|
|
10
9
|
import subprocess
|
|
11
10
|
import sys
|
|
12
11
|
import os
|
|
12
|
+
import secrets
|
|
13
13
|
sys.path.append(os.path.dirname(__file__))
|
|
14
14
|
|
|
15
15
|
import time
|
|
@@ -21,7 +21,6 @@ from pathlib import Path
|
|
|
21
21
|
|
|
22
22
|
from hypercorn.config import Config
|
|
23
23
|
from hypercorn.run import run
|
|
24
|
-
from utils.settings import settings
|
|
25
24
|
|
|
26
25
|
# freeze_support()
|
|
27
26
|
|
|
@@ -47,6 +46,109 @@ commands = """
|
|
|
47
46
|
|
|
48
47
|
sentinel = object()
|
|
49
48
|
|
|
49
|
+
def ensure_dmart_home():
|
|
50
|
+
dmart_home = Path.home() / ".dmart"
|
|
51
|
+
dmart_home.mkdir(parents=True, exist_ok=True)
|
|
52
|
+
|
|
53
|
+
config_env = dmart_home / "config.env"
|
|
54
|
+
if not config_env.exists():
|
|
55
|
+
try:
|
|
56
|
+
(dmart_home / "logs").mkdir(parents=True, exist_ok=True)
|
|
57
|
+
(dmart_home / "spaces").mkdir(parents=True, exist_ok=True)
|
|
58
|
+
(dmart_home / "spaces" / "custom_plugins").mkdir(parents=True, exist_ok=True)
|
|
59
|
+
|
|
60
|
+
jwt_secret = secrets.token_urlsafe(32)
|
|
61
|
+
|
|
62
|
+
config_content = f"""# dmart configuration
|
|
63
|
+
JWT_SECRET="{jwt_secret}"
|
|
64
|
+
JWT_ALGORITHM="HS256"
|
|
65
|
+
LOG_FILE="{dmart_home / 'logs' / 'dmart.ljson.log'}"
|
|
66
|
+
WS_LOG_FILE="{dmart_home / 'logs' / 'websocket.ljson.log'}"
|
|
67
|
+
|
|
68
|
+
# Database configuration
|
|
69
|
+
ACTIVE_DATA_DB="file"
|
|
70
|
+
SPACES_FOLDER="{dmart_home / 'spaces'}"
|
|
71
|
+
DATABASE_DRIVER="sqlite+pysqlite"
|
|
72
|
+
DATABASE_NAME="{dmart_home / 'dmart.db'}"
|
|
73
|
+
|
|
74
|
+
# Server configuration
|
|
75
|
+
LISTENING_HOST="0.0.0.0"
|
|
76
|
+
LISTENING_PORT=8282
|
|
77
|
+
"""
|
|
78
|
+
config_env.write_text(config_content)
|
|
79
|
+
print(f"Created default config.env at {config_env}")
|
|
80
|
+
except Exception as e:
|
|
81
|
+
print(f"Warning: Failed to create default config.env at {config_env}: {e}")
|
|
82
|
+
|
|
83
|
+
cli_ini = dmart_home / "cli.ini"
|
|
84
|
+
if not cli_ini.exists():
|
|
85
|
+
try:
|
|
86
|
+
default_config = ""
|
|
87
|
+
sample_path = Path(__file__).resolve().parent / "config.ini.sample"
|
|
88
|
+
if sample_path.exists():
|
|
89
|
+
with open(sample_path, "r") as f:
|
|
90
|
+
default_config = f.read()
|
|
91
|
+
else:
|
|
92
|
+
default_config = (
|
|
93
|
+
'url = "http://localhost:8282"\n'
|
|
94
|
+
'shortname = "dmart"\n'
|
|
95
|
+
'password = "xxxx"\n'
|
|
96
|
+
'query_limit = 50\n'
|
|
97
|
+
'retrieve_json_payload = True\n'
|
|
98
|
+
'default_space = "management"\n'
|
|
99
|
+
'pagination = 50\n'
|
|
100
|
+
)
|
|
101
|
+
|
|
102
|
+
login_creds_path = dmart_home / "login_creds.sh"
|
|
103
|
+
if login_creds_path.exists():
|
|
104
|
+
try:
|
|
105
|
+
with open(login_creds_path, "r") as f:
|
|
106
|
+
creds_content = f.read()
|
|
107
|
+
|
|
108
|
+
match = re.search(r"export SUPERMAN='(.*?)'", creds_content)
|
|
109
|
+
if match:
|
|
110
|
+
creds_json = match.group(1)
|
|
111
|
+
creds = json.loads(creds_json)
|
|
112
|
+
if "shortname" in creds:
|
|
113
|
+
default_config = re.sub(r'shortname = ".*"', f'shortname = "{creds["shortname"]}"', default_config)
|
|
114
|
+
if "password" in creds:
|
|
115
|
+
default_config = re.sub(r'password = ".*"', f'password = "{creds["password"]}"', default_config)
|
|
116
|
+
except Exception as e:
|
|
117
|
+
print(f"Warning: Failed to parse login_creds.sh: {e}")
|
|
118
|
+
|
|
119
|
+
with open(cli_ini, "w") as f:
|
|
120
|
+
f.write(default_config)
|
|
121
|
+
print(f"Created default cli.ini at {cli_ini}")
|
|
122
|
+
except Exception as e:
|
|
123
|
+
print(f"Warning: Failed to create default cli.ini at {cli_ini}: {e}")
|
|
124
|
+
|
|
125
|
+
cxb_config = dmart_home / "config.json"
|
|
126
|
+
if not cxb_config.exists():
|
|
127
|
+
try:
|
|
128
|
+
sample_cxb_path = Path(__file__).resolve().parent / "cxb" / "config.sample.json"
|
|
129
|
+
if sample_cxb_path.exists():
|
|
130
|
+
shutil.copy2(sample_cxb_path, cxb_config)
|
|
131
|
+
print(f"Created default config.json at {cxb_config}")
|
|
132
|
+
else:
|
|
133
|
+
default_cxb_config = {
|
|
134
|
+
"title": "DMART Unified Data Platform",
|
|
135
|
+
"footer": "dmart.cc unified data platform",
|
|
136
|
+
"short_name": "dmart",
|
|
137
|
+
"display_name": "dmart",
|
|
138
|
+
"description": "dmart unified data platform",
|
|
139
|
+
"default_language": "en",
|
|
140
|
+
"languages": { "ar": "العربية", "en": "English" },
|
|
141
|
+
"backend": "http://localhost:8282",
|
|
142
|
+
"websocket": "ws://0.0.0.0:8484/ws"
|
|
143
|
+
}
|
|
144
|
+
with open(cxb_config, "w") as f:
|
|
145
|
+
json.dump(default_cxb_config, f, indent=2)
|
|
146
|
+
print(f"Created default config.json at {cxb_config}")
|
|
147
|
+
except Exception as e:
|
|
148
|
+
print(f"Warning: Failed to create default config.json at {cxb_config}: {e}")
|
|
149
|
+
|
|
150
|
+
ensure_dmart_home()
|
|
151
|
+
from utils.settings import settings
|
|
50
152
|
|
|
51
153
|
def hypercorn_main() -> int:
|
|
52
154
|
parser = argparse.ArgumentParser()
|
|
@@ -434,49 +536,6 @@ def main():
|
|
|
434
536
|
home_config = Path.home() / ".dmart" / "cli.ini"
|
|
435
537
|
if home_config.exists():
|
|
436
538
|
config_file = str(home_config)
|
|
437
|
-
else:
|
|
438
|
-
try:
|
|
439
|
-
home_config.parent.mkdir(parents=True, exist_ok=True)
|
|
440
|
-
|
|
441
|
-
default_config = ""
|
|
442
|
-
sample_path = Path(__file__).resolve().parent / "config.ini.sample"
|
|
443
|
-
if sample_path.exists():
|
|
444
|
-
with open(sample_path, "r") as f:
|
|
445
|
-
default_config = f.read()
|
|
446
|
-
else:
|
|
447
|
-
default_config = (
|
|
448
|
-
'url = "http://localhost:8282"\n'
|
|
449
|
-
'shortname = "dmart"\n'
|
|
450
|
-
'password = "xxxx"\n'
|
|
451
|
-
'query_limit = 50\n'
|
|
452
|
-
'retrieve_json_payload = True\n'
|
|
453
|
-
'default_space = "management"\n'
|
|
454
|
-
'pagination = 50\n'
|
|
455
|
-
)
|
|
456
|
-
|
|
457
|
-
login_creds_path = Path.home() / ".dmart" / "login_creds.sh"
|
|
458
|
-
if login_creds_path.exists():
|
|
459
|
-
try:
|
|
460
|
-
with open(login_creds_path, "r") as f:
|
|
461
|
-
creds_content = f.read()
|
|
462
|
-
|
|
463
|
-
match = re.search(r"export SUPERMAN='(.*?)'", creds_content)
|
|
464
|
-
if match:
|
|
465
|
-
creds_json = match.group(1)
|
|
466
|
-
creds = json.loads(creds_json)
|
|
467
|
-
if "shortname" in creds:
|
|
468
|
-
default_config = re.sub(r'shortname = ".*"', f'shortname = "{creds["shortname"]}"', default_config)
|
|
469
|
-
if "password" in creds:
|
|
470
|
-
default_config = re.sub(r'password = ".*"', f'password = "{creds["password"]}"', default_config)
|
|
471
|
-
except Exception as e:
|
|
472
|
-
print(f"Warning: Failed to parse login_creds.sh: {e}")
|
|
473
|
-
|
|
474
|
-
with open(home_config, "w") as f:
|
|
475
|
-
f.write(default_config)
|
|
476
|
-
print(f"Created default config at {home_config}")
|
|
477
|
-
config_file = str(home_config)
|
|
478
|
-
except Exception as e:
|
|
479
|
-
print(f"Warning: Failed to create default config at {home_config}: {e}")
|
|
480
539
|
|
|
481
540
|
if config_file:
|
|
482
541
|
os.environ["BACKEND_ENV"] = config_file
|
|
@@ -724,9 +783,9 @@ def main():
|
|
|
724
783
|
if not sample_spaces_path.exists():
|
|
725
784
|
print("Error: Sample spaces not found in the package.")
|
|
726
785
|
sys.exit(1)
|
|
727
|
-
|
|
786
|
+
|
|
728
787
|
target_path = Path.home() / ".dmart" / "spaces"
|
|
729
|
-
|
|
788
|
+
|
|
730
789
|
try:
|
|
731
790
|
if target_path.exists():
|
|
732
791
|
shutil.rmtree(target_path)
|
dmart/info.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"branch": "pypi", "version": "
|
|
1
|
+
{"branch": "pypi", "version": "4704f2b0", "tag": "v1.4.0-112-g4704f2b0", "version_date": "'Wed Jan 28 11:58:40 2026 +0300'"}
|
dmart/main.py
CHANGED
|
@@ -25,7 +25,7 @@ from fastapi.logger import logger
|
|
|
25
25
|
from fastapi.encoders import jsonable_encoder
|
|
26
26
|
from fastapi.exceptions import RequestValidationError
|
|
27
27
|
from utils.access_control import access_control
|
|
28
|
-
from fastapi.responses import ORJSONResponse, FileResponse
|
|
28
|
+
from fastapi.responses import ORJSONResponse, FileResponse, RedirectResponse
|
|
29
29
|
from hypercorn.asyncio import serve
|
|
30
30
|
from hypercorn.config import Config
|
|
31
31
|
from starlette.concurrency import iterate_in_threadpool
|
|
@@ -41,6 +41,7 @@ from api.public.router import router as public
|
|
|
41
41
|
from api.user.router import router as user
|
|
42
42
|
from api.info.router import router as info, git_info
|
|
43
43
|
from utils.internal_error_code import InternalErrorCode
|
|
44
|
+
from pathlib import Path
|
|
44
45
|
|
|
45
46
|
|
|
46
47
|
class SPAStaticFiles(StaticFiles):
|
|
@@ -503,6 +504,10 @@ if os.path.isdir(cxb_path):
|
|
|
503
504
|
if user_config.exists():
|
|
504
505
|
return FileResponse(user_config)
|
|
505
506
|
|
|
507
|
+
home_config = Path.home() / ".dmart" / "config.json"
|
|
508
|
+
if home_config.exists():
|
|
509
|
+
return FileResponse(home_config)
|
|
510
|
+
|
|
506
511
|
bundled_config = os.path.join(cxb_path, "config.json")
|
|
507
512
|
if os.path.exists(bundled_config):
|
|
508
513
|
return FileResponse(bundled_config)
|
|
@@ -531,11 +536,13 @@ async def myoptions():
|
|
|
531
536
|
@app.put("/{x:path}", include_in_schema=False)
|
|
532
537
|
@app.patch("/{x:path}", include_in_schema=False)
|
|
533
538
|
@app.delete("/{x:path}", include_in_schema=False)
|
|
534
|
-
async def catchall()
|
|
539
|
+
async def catchall(x):
|
|
540
|
+
if x.startswith("cxb"):
|
|
541
|
+
return RedirectResponse(f"{settings.cxb_url}/")
|
|
535
542
|
raise api.Exception(
|
|
536
543
|
status_code=status.HTTP_404_NOT_FOUND,
|
|
537
544
|
error=api.Error(
|
|
538
|
-
type="catchall", code=InternalErrorCode.INVALID_ROUTE, message="Requested method or path is invalid"
|
|
545
|
+
type="catchall", code=InternalErrorCode.INVALID_ROUTE, message=f"Requested method or path is invalid : {x}"
|
|
539
546
|
),
|
|
540
547
|
)
|
|
541
548
|
|
dmart/utils/settings.py
CHANGED
|
@@ -5,7 +5,6 @@ import os
|
|
|
5
5
|
import random
|
|
6
6
|
import re
|
|
7
7
|
import string
|
|
8
|
-
import secrets
|
|
9
8
|
from venv import logger
|
|
10
9
|
|
|
11
10
|
from pydantic import Field
|
|
@@ -25,36 +24,6 @@ def get_env_file():
|
|
|
25
24
|
dmart_home = Path.home() / ".dmart"
|
|
26
25
|
home_config = dmart_home / "config.env"
|
|
27
26
|
|
|
28
|
-
if not home_config.exists():
|
|
29
|
-
if not (os.path.exists(".git") or os.path.exists("setup.py")):
|
|
30
|
-
try:
|
|
31
|
-
dmart_home.mkdir(parents=True, exist_ok=True)
|
|
32
|
-
(dmart_home / "logs").mkdir(parents=True, exist_ok=True)
|
|
33
|
-
(dmart_home / "spaces").mkdir(parents=True, exist_ok=True)
|
|
34
|
-
(dmart_home / "spaces" / "custom_plugins").mkdir(parents=True, exist_ok=True)
|
|
35
|
-
|
|
36
|
-
jwt_secret = secrets.token_urlsafe(32)
|
|
37
|
-
|
|
38
|
-
config_content = f"""# dmart configuration
|
|
39
|
-
JWT_SECRET="{jwt_secret}"
|
|
40
|
-
JWT_ALGORITHM="HS256"
|
|
41
|
-
LOG_FILE="{dmart_home / 'logs' / 'dmart.ljson.log'}"
|
|
42
|
-
WS_LOG_FILE="{dmart_home / 'logs' / 'websocket.ljson.log'}"
|
|
43
|
-
|
|
44
|
-
# Database configuration
|
|
45
|
-
ACTIVE_DATA_DB="file"
|
|
46
|
-
SPACES_FOLDER="{dmart_home / 'spaces'}"
|
|
47
|
-
DATABASE_DRIVER="sqlite+pysqlite"
|
|
48
|
-
DATABASE_NAME="{dmart_home / 'dmart.db'}"
|
|
49
|
-
|
|
50
|
-
# Server configuration
|
|
51
|
-
LISTENING_HOST="0.0.0.0"
|
|
52
|
-
LISTENING_PORT=8282
|
|
53
|
-
"""
|
|
54
|
-
home_config.write_text(config_content)
|
|
55
|
-
except Exception:
|
|
56
|
-
pass
|
|
57
|
-
|
|
58
27
|
if home_config.exists():
|
|
59
28
|
return str(home_config)
|
|
60
29
|
|
|
@@ -8,13 +8,13 @@ dmart/conftest.py,sha256=0ry_zeCmdBNLbm5q115b-pkOrUFYxdsOUXbIMkr7E5Y,362
|
|
|
8
8
|
dmart/curl.pypi.sh,sha256=KQ-kgV3_d5mwqoLd4XOwz5s2wRQ7LDVX3z-kvjvp9hA,15631
|
|
9
9
|
dmart/curl.sh,sha256=lmHSFVr5ft-lc5Aq9LfvKyWfntrfYbnirhzx1EGjp_A,15743
|
|
10
10
|
dmart/data_generator.py,sha256=CnE-VHEeX7-lAXtqCgbRqR9WHjTuOgeiZcviYrHAmho,2287
|
|
11
|
-
dmart/dmart.py,sha256=
|
|
11
|
+
dmart/dmart.py,sha256=IJ1PIoP0OcxXWnIhAugWwSq73gYA4dwI8D4-1LSbuK8,33797
|
|
12
12
|
dmart/get_settings.py,sha256=Sbe2WCoiK398E7HY4SNLfDN_GmE8knR4M-YJWF31jcg,153
|
|
13
13
|
dmart/hypercorn_config.toml,sha256=-eryppEG8HBOM_KbFc4dTQePnpyfoW9ZG5aUATU_6yM,50
|
|
14
|
-
dmart/info.json,sha256=
|
|
14
|
+
dmart/info.json,sha256=MM4SvhU44LXhSt8jMf8RX_XxQlfPAJkeQSshgBUjz0o,124
|
|
15
15
|
dmart/login_creds.sh,sha256=Aht1LwL11uzR13sa8p3BdeUCprIa9tq0vzOoplJjH5U,235
|
|
16
16
|
dmart/login_creds.sh.sample,sha256=Sb43HNNn1g11rrJrtDsPgAxcXu3_wJvdNn--8S62dTE,227
|
|
17
|
-
dmart/main.py,sha256=
|
|
17
|
+
dmart/main.py,sha256=EMsrV57yAf_LZbM-dY9ZkD6oEAFmdhIUQn9l81vmVn4,20072
|
|
18
18
|
dmart/manifest.sh,sha256=K3mY5MsUlrTyHa5cARslkShegvXh-UeqJcE2UZobdrE,544
|
|
19
19
|
dmart/migrate.py,sha256=hn1MZoVby_Jjqhc7y3CrLcGD619QmVZv3PONNvO7VKQ,665
|
|
20
20
|
dmart/password_gen.py,sha256=xjx8wi105ZYvhLBBQj7_rugACpxifGXHse6f7YlGXWQ,196
|
|
@@ -62,14 +62,14 @@ dmart/api/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
|
62
62
|
dmart/api/info/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
63
63
|
dmart/api/info/router.py,sha256=sQZZor7A-uDzsJX39aqEA7bMZOJ-WTitYeFvVNWfaHw,3938
|
|
64
64
|
dmart/api/managed/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
65
|
-
dmart/api/managed/router.py,sha256=
|
|
65
|
+
dmart/api/managed/router.py,sha256=GdXw0vActrFE9i6sPSsWN8us3Fr3x8-ILUnN4y0ye18,50975
|
|
66
66
|
dmart/api/managed/utils.py,sha256=IqgFVHVfNubYOx5i9YoQjVqbUbaveIrqfOfTFvV42BA,74227
|
|
67
67
|
dmart/api/public/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
68
|
-
dmart/api/public/router.py,sha256=
|
|
68
|
+
dmart/api/public/router.py,sha256=rmrHHmtm0ovGelgnmzcsDVgiz4fbHMWUeV08-aEieII,24864
|
|
69
69
|
dmart/api/qr/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
70
70
|
dmart/api/qr/router.py,sha256=Ru7UT_iQS6mFwE1bCPPrusSQfFgoV_u6pjZJ0gArE7g,3870
|
|
71
71
|
dmart/api/user/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
72
|
-
dmart/api/user/router.py,sha256=
|
|
72
|
+
dmart/api/user/router.py,sha256=IasiPKr9ddNpK07i2fFgnbybH5wzKa3eg4yCq6fdl7w,51737
|
|
73
73
|
dmart/api/user/service.py,sha256=-iQpcBVPTDiLE_xOf87Ni0oSQDtmALAXEwU4IgSvnJk,8463
|
|
74
74
|
dmart/api/user/model/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
75
75
|
dmart/api/user/model/errors.py,sha256=rhcIcbAIk_7rs5lxdgcsf7SWFGmC9QLsgc67x7S6CKA,299
|
|
@@ -79,11 +79,11 @@ dmart/config/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
|
79
79
|
dmart/config/channels.json,sha256=GepystGi0h_1fuakC_gdIc-YYxyy-a4TI619ygIpyyM,156
|
|
80
80
|
dmart/config/notification.json,sha256=esrOaMUIqfcCHB0Tawp3t4cu7DQAA15X12OS-Gyenb0,361
|
|
81
81
|
dmart/cxb/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
82
|
-
dmart/cxb/config.json,sha256=
|
|
82
|
+
dmart/cxb/config.json,sha256=64YRz6YAQhb6xr72aglNIiL5eeIrYHcRt_xTl2luW_Q,356
|
|
83
83
|
dmart/cxb/config.sample.json,sha256=fTYLbnTiUdbT_F7rcwI7CLSZ_KoX8EflfuyswRGW2x0,355
|
|
84
84
|
dmart/cxb/favicon.ico,sha256=CD2FYyYYFNAbH7lGPnM5-2asMmhf-kwitAp99Kh0Wmc,4286
|
|
85
85
|
dmart/cxb/favicon.png,sha256=gbSWS2UiKrUcy5Jt4gcncDrE5yvfAS00OgYzdNxPxlk,4164
|
|
86
|
-
dmart/cxb/index.html,sha256=
|
|
86
|
+
dmart/cxb/index.html,sha256=WJVKaHvTpnU4h9tpRxhbqrz-WmT54o8BCaxmAy-TlaA,1622
|
|
87
87
|
dmart/cxb/assets/@codemirror-Rn7_6DkE.js,sha256=lE9KsREWfszCrh0SBu7CKi3k1OiDzBrIeNO_S5PYRcM,342674
|
|
88
88
|
dmart/cxb/assets/@edraj-CS4NwVbD.js,sha256=zndm--w-VH0vIAjb2K_MHp5oSC-khzxT8Evj1Dl_2-c,9293
|
|
89
89
|
dmart/cxb/assets/@floating-ui-BwwcF-xh.js,sha256=K4lsJw_hrkV0vq1uguBTS_GxONRbsFtlBjX4pagaOwg,17129
|
|
@@ -99,9 +99,9 @@ dmart/cxb/assets/@typewriter-cCzskkIv.js,sha256=kyXdd1BwqHKx7CIB8Up_1AblBsI5ViLx
|
|
|
99
99
|
dmart/cxb/assets/@zerodevx-BlBZjKxu.js,sha256=u3olMch61ywj4FnmXTSswD1myRH_rHI0dQMCNogCAH0,3883
|
|
100
100
|
dmart/cxb/assets/@zerodevx-CVEpe6WZ.css,sha256=BkcVDS4u4ljfIXhn6xv4h5Pld01evCI_ebMKCxpK8i4,1976
|
|
101
101
|
dmart/cxb/assets/BreadCrumbLite-ClLCZ5eT.js,sha256=MhNPJmYxefByIkD0aSUlNu8X36JIuF74SPsCsMfg7WA,1949
|
|
102
|
-
dmart/cxb/assets/EntryRenderer-
|
|
102
|
+
dmart/cxb/assets/EntryRenderer-9GXyhIWz.js,sha256=jpAMAgnXnysBhfSAdmdg6sfsO1eR3Dxs51WcXLUxpPs,64272
|
|
103
103
|
dmart/cxb/assets/EntryRenderer-DXytdFp9.css,sha256=8J5fh7_foC06CVV6Qk7UYvxXKqTrFOqQ4isbyJ-gABY,496
|
|
104
|
-
dmart/cxb/assets/ListView-
|
|
104
|
+
dmart/cxb/assets/ListView-DZFUWyVb.js,sha256=oQ-SV1QGImPFqgJkmeJDnQoyUsIWf173q92sfGgkZLk,137928
|
|
105
105
|
dmart/cxb/assets/ListView-U8of-_c-.css,sha256=sPIUBfAsMEwhNqvGgGf_oD09XUR5hT8PWk_OtVEwMgI,1288
|
|
106
106
|
dmart/cxb/assets/Prism--hMplq-p.js,sha256=wzk_GRGPAnTHIenvdCuh_qqHFCeCKco2OCoFinBUesw,587
|
|
107
107
|
dmart/cxb/assets/Prism-Uh6uStUw.css,sha256=_wHCkOjMWX__hXLr6MjadiXCj2dBxIQFAhkSLAhHwSA,6165
|
|
@@ -109,9 +109,9 @@ dmart/cxb/assets/Table2Cols-BsbwicQm.js,sha256=w6w37qzrdh3f-8waIUDnwPk0MDa8dJBrr
|
|
|
109
109
|
dmart/cxb/assets/_..-BvT6vdHa.css,sha256=u-3Pj3A2tQeUNBIItE_qki2Lk4GBISmHRs7957cGP30,275
|
|
110
110
|
dmart/cxb/assets/_...404_-fuLH_rX9.js,sha256=9oGBvAECq9eMcTAZG-cznYAXcM2WaBu4G5wPoTt53uY,684
|
|
111
111
|
dmart/cxb/assets/_...fallback_-Ba_NLmAE.js,sha256=leHVZijlVjIaqzYUCCTIFDFrFsVcS2NsxgVTW58OhBg,123
|
|
112
|
-
dmart/cxb/assets/_module-
|
|
112
|
+
dmart/cxb/assets/_module-BTyKyzwE.js,sha256=9bXFzt5sAwI1CMgar73n3Y2x7LevOdxXQ1rU9EAE5RY,7899
|
|
113
|
+
dmart/cxb/assets/_module-BwgDn_st.js,sha256=zQ9jinQ2x4YgLpcPM2gvn24TDDPCS7V3LDGCPjtd0i0,3793
|
|
113
114
|
dmart/cxb/assets/_module-DBPRg0LH.js,sha256=I4g12NHh4b1Is6eI1m83aW4_k85zmExSRGh9ixL8S_c,11226
|
|
114
|
-
dmart/cxb/assets/_module-V6R1b0kg.js,sha256=QWjSAe3rVRkyRiuAxWXg-Lv8JcUhG4qAB0BQQ4aMCbA,3793
|
|
115
115
|
dmart/cxb/assets/ajv-Cpj98o6Y.js,sha256=liU3m63UhJYQ3-bBVFPN8MAHEmTJDu8Xcwf6wJTSqmw,236
|
|
116
116
|
dmart/cxb/assets/axios-CG2WSiiR.js,sha256=URKIJZfepkPrQwK1aPXLhg4f5cGLhk6c0tVUS5eFFB0,36287
|
|
117
117
|
dmart/cxb/assets/clsx-B-dksMZM.js,sha256=x7hDvCu6RhEQ5d35FtnEAYCjg4BM5zZYcw7EblGW0v0,374
|
|
@@ -138,20 +138,20 @@ dmart/cxb/assets/global-igKv-1g9.js,sha256=9AnwcOz6vUYKXcaBuqOCag8rxRCSVDwmIHG8i
|
|
|
138
138
|
dmart/cxb/assets/hookar-BMRD9G9H.js,sha256=_Dzjp-0cmaseuT5CcILxOLX5a4QsMWHgS3bcAC5oH64,519
|
|
139
139
|
dmart/cxb/assets/immutable-json-patch-DtRO2E_S.js,sha256=I1LmEOX8J21wFhrrAtIV6svx32i-j5TJpso1CpzEEik,5600
|
|
140
140
|
dmart/cxb/assets/import-BiJTp7Zs.js,sha256=gZBNWPWYdRF2e60mjZgsZ33RgU2RhwC0v167bGDlPoY,3106
|
|
141
|
-
dmart/cxb/assets/index-
|
|
141
|
+
dmart/cxb/assets/index-BWN92sjI.js,sha256=wQ8rYV9VlxNfsbR5U0q1xCDVGZpdMStyLmEUQ2Ve3lk,33755
|
|
142
142
|
dmart/cxb/assets/index-BdeNM69f.js,sha256=gkNccueAx5s9vUKp3ZE31Xg2wL4xfipeQ73y27N-61c,2035
|
|
143
143
|
dmart/cxb/assets/index-BejgdGl7.js,sha256=iJPZqRdPsv87xOFObXEcJkcG5MHcsLmphbnzdl2uEsc,4047
|
|
144
|
-
dmart/cxb/assets/index-BgluT4fV.js,sha256=IqTgXzTui1h1rRYQHMqTud-euX5VA_boVTv08yyMmL8,3621
|
|
145
|
-
dmart/cxb/assets/index-BpfgvZff.js,sha256=B4qzUp6Air6ADhuUUKxd592_dI4g9l1Hxy2cpLhDTso,3498
|
|
146
|
-
dmart/cxb/assets/index-C3bhX1QW.js,sha256=N2qRqaqDtiRltRIfB8ta8fDU3LNOegDD31tXQyIxW6M,3381
|
|
147
144
|
dmart/cxb/assets/index-CC-A1ipE.js,sha256=dfVwbYUl2GzaPaRcm9bvcm3c0bi8WQj9RsSYaZneH2w,412
|
|
148
|
-
dmart/cxb/assets/index-
|
|
145
|
+
dmart/cxb/assets/index-CIUfy6RC.js,sha256=5jfbGb1zvScPwuMOHzDq0Vb-bdoBhcqxmo67STPz1Uk,3250
|
|
149
146
|
dmart/cxb/assets/index-CJk5Ul2Q.js,sha256=kn6Zj5mDIHYbkcyzOB71tnmIaQK_D_lNwHgnSlP8lIE,9824
|
|
147
|
+
dmart/cxb/assets/index-DOCBh6PM.js,sha256=MSfGFIW9ZEEBHs5YW1G8qTcRROtBvoPBkVBEMOf0VPo,3498
|
|
150
148
|
dmart/cxb/assets/index-DQmwVe-X.js,sha256=gYEdGCvGryXFT0KjT6m-83GSQy2EafirTALPaZsHdWg,6015
|
|
151
149
|
dmart/cxb/assets/index-DTfhnhwd.js,sha256=YKLsTYhS7k2f1QwXRCyYdRn2vB_mwzsqinT1of7dcnc,354
|
|
152
|
-
dmart/cxb/assets/index-DgQsfZgD.js,sha256=HpW6FJSUsxfPFG6Je72Rg8i_mRJMiFziyI6IBtaaRGc,33755
|
|
153
150
|
dmart/cxb/assets/index-DtiCmB4o.js,sha256=nv7dVMmo1vex5ih5mMC9MNLLMGuCmy_ktOa1j4rXQ0M,1976
|
|
151
|
+
dmart/cxb/assets/index-Du1Yp_ew.js,sha256=XOOlMI6U8dNXf5sVEIEyciHI-DFDtQDt-q2AE9Ds5F4,3621
|
|
154
152
|
dmart/cxb/assets/index-NBrXBlLA.css,sha256=2mHbGZHluiEeZiiiubPFD2dGd6eL59WUa2qV8eSQqXs,376846
|
|
153
|
+
dmart/cxb/assets/index-UMAHQJV7.js,sha256=LEAUJw6VcTkhk17qAxHBP6zONiAoi1OfHEl6NBC7C24,2821
|
|
154
|
+
dmart/cxb/assets/index-xuuZoPt8.js,sha256=M_JC_8Kmi2t59kGZFyOWeKzKo5Rbo-o6I04QzCVF6Fo,3381
|
|
155
155
|
dmart/cxb/assets/info-Dd-l-jS9.js,sha256=q-6VHA_bHbG_GggNzlN4zBtkOr8MWOX0syl8XUZjYAk,2226
|
|
156
156
|
dmart/cxb/assets/intl-messageformat-Dc5UU-HB.js,sha256=-5X21qzJD7TmWO2-DWDdxF8tql-Xdcq2QoUkBY54G00,6630
|
|
157
157
|
dmart/cxb/assets/jmespath-l0sNRNKZ.js,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
|
|
@@ -198,7 +198,7 @@ dmart/data_adapters/adapter.py,sha256=zR_yFd5ZI9vIQuUB6AUcF-LHgxOaxoREV2hogasivj
|
|
|
198
198
|
dmart/data_adapters/base_data_adapter.py,sha256=vG9WeHyw_c_BnH0EmudwPSNS6iMb5buQJiZS_9cm9p8,12055
|
|
199
199
|
dmart/data_adapters/helpers.py,sha256=0ySEDnQBMgFVXstFnPjXLtZ_-8IC4Q8oPXXrWokpFB8,660
|
|
200
200
|
dmart/data_adapters/file/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
201
|
-
dmart/data_adapters/file/adapter.py,sha256=
|
|
201
|
+
dmart/data_adapters/file/adapter.py,sha256=ZN1Qt7iFCOLuPX-qWZt5pXCFjleV35INSi3Bjko-LN8,81058
|
|
202
202
|
dmart/data_adapters/file/adapter_helpers.py,sha256=ExA_fAnRaPOLDuEY3hsLNR2BvvCscnS5Du6lWRtCvh0,34321
|
|
203
203
|
dmart/data_adapters/file/archive.py,sha256=B4VV6HNB3Bqd4tlqZ3jUQps8oqht_xOdBNOi9cLuo8Q,5423
|
|
204
204
|
dmart/data_adapters/file/create_index.py,sha256=lUcUkepo9QUIQDDDgoPAL74_n16cZ_q0NKnITGmbF6I,11888
|
|
@@ -208,7 +208,7 @@ dmart/data_adapters/file/drop_index.py,sha256=OK3wXwaO9tUcHcJjqyLeBnkElzK35MZMi8
|
|
|
208
208
|
dmart/data_adapters/file/health_check.py,sha256=cMvwsXhjEykjrTyB3HtUn8QqKdtB_h5w8mGOEYPepzU,24221
|
|
209
209
|
dmart/data_adapters/file/redis_services.py,sha256=83STcca5fYFaEVLRYAxfUQXeUQZqJOT8XH-GBSbkR-E,39914
|
|
210
210
|
dmart/data_adapters/sql/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
211
|
-
dmart/data_adapters/sql/adapter.py,sha256=
|
|
211
|
+
dmart/data_adapters/sql/adapter.py,sha256=IM_0w_9AweH82fJpLcU0x4QSVTBcy_8rFTfVLzDU4E0,155834
|
|
212
212
|
dmart/data_adapters/sql/adapter_helpers.py,sha256=Eu22NElz2fMu6zyOsGsGrnAZcyWhHz9I__RJ9z6cwK0,15076
|
|
213
213
|
dmart/data_adapters/sql/create_tables.py,sha256=KqaXHTDOD8YaqGNc_e0iHHotd0WE3Kad_tBevtoGA20,17427
|
|
214
214
|
dmart/data_adapters/sql/create_users_folders.py,sha256=fm3P-CMcPX4b4DqXHKWMOtfX4RHdaev2nCDhYrS5cIs,1911
|
|
@@ -476,15 +476,15 @@ dmart/utils/query_policies_helper.py,sha256=Bf5qriQJ8CpUqPaQg5cdvNrn-92l_jKxHwsv
|
|
|
476
476
|
dmart/utils/regex.py,sha256=cv9b_l_e8tz42mKckeeyDgypKqh2e71E28co2iuEVxA,2286
|
|
477
477
|
dmart/utils/repository.py,sha256=9L-IvQ0Js0SQ5OR-Rh0i2Wdu4H9H06r8eE84hfBIu7Q,18313
|
|
478
478
|
dmart/utils/router_helper.py,sha256=Tgoq3oakejdEeyeVieTNk38JsPZ8x5RuR0kw2THc1mI,604
|
|
479
|
-
dmart/utils/settings.py,sha256=
|
|
479
|
+
dmart/utils/settings.py,sha256=TOlW_ZWYQ_KyelPWCDg30V-fa1jsgazlek8agAPgkQ0,6036
|
|
480
480
|
dmart/utils/sms_notifier.py,sha256=04D6D_ldk3S9SojI7_381pqLc8v9lligeNHAysohz7w,550
|
|
481
481
|
dmart/utils/social_sso.py,sha256=Dm1W6U9OwKbAeUwM-kwJBHFEoreeoN-s-RHdOZ1-cNg,2216
|
|
482
482
|
dmart/utils/ticket_sys_utils.py,sha256=9QAlW2iiy8KyxQRBDj_WmzS5kKb0aYJmGwd4qzmGVqo,7005
|
|
483
483
|
dmart/utils/web_notifier.py,sha256=QM87VVid2grC5lK3NdS1yzz0z1wXljr4GChJOeK86W4,843
|
|
484
484
|
dmart/utils/templates/activation.html.j2,sha256=XAMKCdoqONoc4ZQucD0yV-Pg5DlHHASZrTVItNS-iBE,640
|
|
485
485
|
dmart/utils/templates/reminder.html.j2,sha256=aoS8bTs56q4hjAZKsb0jV9c-PIURBELuBOpT_qPZNVU,639
|
|
486
|
-
dmart-1.4.40.
|
|
487
|
-
dmart-1.4.40.
|
|
488
|
-
dmart-1.4.40.
|
|
489
|
-
dmart-1.4.40.
|
|
490
|
-
dmart-1.4.40.
|
|
486
|
+
dmart-1.4.40.post33.dist-info/METADATA,sha256=vst7VgejZJeBryCl7eW3Oln7i6Fa4cKa1JNQrHTKSOg,839
|
|
487
|
+
dmart-1.4.40.post33.dist-info/WHEEL,sha256=wUyA8OaulRlbfwMtmQsvNngGrxQHAvkKcvRmdizlJi0,92
|
|
488
|
+
dmart-1.4.40.post33.dist-info/entry_points.txt,sha256=N832M4wG8d2GDw1xztKRVM3TnxpY2QDzvdFE8XaWaG8,43
|
|
489
|
+
dmart-1.4.40.post33.dist-info/top_level.txt,sha256=zJo4qk9fUW0BGIR9f4DCfpxaXbvQXH9izIOom6JsyAo,6
|
|
490
|
+
dmart-1.4.40.post33.dist-info/RECORD,,
|