meerschaum 2.7.9__py3-none-any.whl → 2.7.10__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.
- meerschaum/_internal/term/TermPageHandler.py +1 -1
- meerschaum/_internal/term/__init__.py +1 -1
- meerschaum/actions/api.py +36 -10
- meerschaum/api/routes/_webterm.py +2 -2
- meerschaum/config/_version.py +1 -1
- meerschaum/config/static/__init__.py +1 -1
- {meerschaum-2.7.9.dist-info → meerschaum-2.7.10.dist-info}/METADATA +1 -1
- {meerschaum-2.7.9.dist-info → meerschaum-2.7.10.dist-info}/RECORD +14 -14
- {meerschaum-2.7.9.dist-info → meerschaum-2.7.10.dist-info}/LICENSE +0 -0
- {meerschaum-2.7.9.dist-info → meerschaum-2.7.10.dist-info}/NOTICE +0 -0
- {meerschaum-2.7.9.dist-info → meerschaum-2.7.10.dist-info}/WHEEL +0 -0
- {meerschaum-2.7.9.dist-info → meerschaum-2.7.10.dist-info}/entry_points.txt +0 -0
- {meerschaum-2.7.9.dist-info → meerschaum-2.7.10.dist-info}/top_level.txt +0 -0
- {meerschaum-2.7.9.dist-info → meerschaum-2.7.10.dist-info}/zip-safe +0 -0
meerschaum/actions/api.py
CHANGED
@@ -140,16 +140,28 @@ def _api_start(
|
|
140
140
|
If provided, serve over HTTPS with this certfile.
|
141
141
|
Requires `--keyfile`.
|
142
142
|
"""
|
143
|
+
import json
|
144
|
+
import sys
|
145
|
+
import shutil
|
146
|
+
import pathlib
|
147
|
+
from copy import deepcopy
|
148
|
+
|
143
149
|
from meerschaum.utils.packages import (
|
144
|
-
attempt_import,
|
150
|
+
attempt_import,
|
151
|
+
venv_contains_package,
|
152
|
+
pip_install,
|
153
|
+
run_python_package,
|
145
154
|
)
|
146
155
|
from meerschaum.utils.misc import is_int, filter_keywords
|
156
|
+
from meerschaum.utils.dtypes import json_serialize_value
|
147
157
|
from meerschaum.utils.formatting import pprint, ANSI, _init
|
148
158
|
from meerschaum.utils.debug import dprint
|
149
159
|
from meerschaum.utils.warnings import error, warn
|
150
160
|
from meerschaum.config import get_config, _config
|
151
161
|
from meerschaum.config._paths import (
|
152
|
-
API_UVICORN_RESOURCES_PATH,
|
162
|
+
API_UVICORN_RESOURCES_PATH,
|
163
|
+
API_UVICORN_CONFIG_PATH,
|
164
|
+
CACHE_RESOURCES_PATH,
|
153
165
|
PACKAGE_ROOT_PATH,
|
154
166
|
)
|
155
167
|
from meerschaum.config._patch import apply_patch_to_config
|
@@ -157,8 +169,6 @@ def _api_start(
|
|
157
169
|
from meerschaum.config.static import STATIC_CONFIG, SERVER_ID
|
158
170
|
from meerschaum.connectors.parse import parse_instance_keys
|
159
171
|
from meerschaum.utils.pool import get_pool
|
160
|
-
import shutil
|
161
|
-
from copy import deepcopy
|
162
172
|
|
163
173
|
if action is None:
|
164
174
|
action = []
|
@@ -256,7 +266,6 @@ def _api_start(
|
|
256
266
|
custom_keys = ['mrsm_instance', 'no_dash', 'no_auth', 'private', 'debug', 'production']
|
257
267
|
|
258
268
|
### write config to a temporary file to communicate with uvicorn threads
|
259
|
-
import json, sys
|
260
269
|
try:
|
261
270
|
if uvicorn_config_path.exists():
|
262
271
|
os.remove(uvicorn_config_path)
|
@@ -275,12 +284,25 @@ def _api_start(
|
|
275
284
|
MRSM_RUNTIME = STATIC_CONFIG['environment']['runtime']
|
276
285
|
MRSM_PATCH = STATIC_CONFIG['environment']['patch']
|
277
286
|
MRSM_ROOT_DIR = STATIC_CONFIG['environment']['root']
|
278
|
-
env_dict = {
|
287
|
+
env_dict = {}
|
288
|
+
env_dict.update({
|
279
289
|
MRSM_SERVER_ID: SERVER_ID,
|
280
290
|
MRSM_RUNTIME: 'api',
|
281
291
|
MRSM_CONFIG: json.loads(os.environ.get(MRSM_CONFIG, '{}')),
|
282
292
|
'FORWARDED_ALLOW_IPS': forwarded_allow_ips,
|
283
|
-
|
293
|
+
'TERM': os.environ.get('TERM', 'screen-256color'),
|
294
|
+
'SHELL': os.environ.get('SHELL', '/bin/bash'),
|
295
|
+
'LANG': os.environ.get('LANG', 'C.UTF-8'),
|
296
|
+
'HOME': os.environ.get('HOME', pathlib.Path.home().as_posix()),
|
297
|
+
'PATH': os.environ.get(
|
298
|
+
'PATH',
|
299
|
+
(
|
300
|
+
'/usr/local/bin:/usr/local/sbin:/usr/sbin:/usr/bin:/sbin:/bin:'
|
301
|
+
f'{pathlib.Path.home().as_posix().rstrip("/")}/.local/bin'
|
302
|
+
)
|
303
|
+
),
|
304
|
+
'HOSTNAME': os.environ.get('HOSTNAME', 'api'),
|
305
|
+
})
|
284
306
|
for env_var in get_env_vars():
|
285
307
|
if env_var in env_dict:
|
286
308
|
continue
|
@@ -294,10 +316,10 @@ def _api_start(
|
|
294
316
|
env_text = ''
|
295
317
|
for key, val in env_dict.items():
|
296
318
|
value = str(
|
297
|
-
json.dumps(val)
|
319
|
+
json.dumps(val, default=json_serialize_value)
|
298
320
|
if isinstance(val, (dict))
|
299
321
|
else val
|
300
|
-
).replace('\\', '\\\\')
|
322
|
+
).replace('\\', '\\\\').replace("'", "'\\''")
|
301
323
|
env_text += f"{key}='{value}'\n"
|
302
324
|
with open(uvicorn_env_path, 'w+', encoding='utf-8') as f:
|
303
325
|
if debug:
|
@@ -329,7 +351,11 @@ def _api_start(
|
|
329
351
|
for key, val in env_dict.items():
|
330
352
|
gunicorn_args += [
|
331
353
|
'--env', key + "="
|
332
|
-
+ (
|
354
|
+
+ (
|
355
|
+
json.dumps(val, default=json_serialize_value)
|
356
|
+
if isinstance(val, (dict, list))
|
357
|
+
else val
|
358
|
+
)
|
333
359
|
]
|
334
360
|
if workers is not None:
|
335
361
|
gunicorn_args += ['--workers', str(workers)]
|
@@ -76,7 +76,7 @@ async def get_webterm(
|
|
76
76
|
text = response.text
|
77
77
|
if request.url.scheme == 'https':
|
78
78
|
text = text.replace('ws://', 'wss://')
|
79
|
-
text = text.replace(f'
|
79
|
+
text = text.replace(f'websocket/{username}', f'websocket/{session_id}')
|
80
80
|
return HTMLResponse(
|
81
81
|
content=text,
|
82
82
|
status_code=response.status_code,
|
@@ -100,7 +100,7 @@ async def webterm_websocket(websocket: WebSocket, session_id: str):
|
|
100
100
|
|
101
101
|
username = get_username_from_session(session_id)
|
102
102
|
|
103
|
-
ws_url = f"ws://localhost:8765/
|
103
|
+
ws_url = f"ws://localhost:8765/websocket/{username or session_id}"
|
104
104
|
async with websockets.connect(ws_url) as ws:
|
105
105
|
async def forward_messages():
|
106
106
|
try:
|
meerschaum/config/_version.py
CHANGED
@@ -33,7 +33,7 @@ STATIC_CONFIG: Dict[str, Any] = {
|
|
33
33
|
'websocket': '/ws',
|
34
34
|
'dash': '/dash',
|
35
35
|
'webterm': r'/webterm/{session_id}',
|
36
|
-
'webterm_websocket': r'/
|
36
|
+
'webterm_websocket': r'/websocket/{session_id}',
|
37
37
|
'info': '/info',
|
38
38
|
'healthcheck': '/healthcheck',
|
39
39
|
},
|
@@ -18,11 +18,11 @@ meerschaum/_internal/shell/ValidAutoSuggest.py,sha256=bARjOWMidz0dvMelLUe6yRPto5
|
|
18
18
|
meerschaum/_internal/shell/__init__.py,sha256=vXQoQPEVlYiUYai1b5AwQAlTnja6A2cSABnqXhzlS7I,281
|
19
19
|
meerschaum/_internal/shell/updates.py,sha256=FmKu1NsIE7AI1zq8zNeKneZzORv6BeURQeX0lRR81Ag,5040
|
20
20
|
meerschaum/_internal/shell/resources/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
21
|
-
meerschaum/_internal/term/TermPageHandler.py,sha256=
|
22
|
-
meerschaum/_internal/term/__init__.py,sha256=
|
21
|
+
meerschaum/_internal/term/TermPageHandler.py,sha256=C43gVMBWvC74eS4MDYKPfPvyCS0TpdzfLB_4hjFgCDM,2420
|
22
|
+
meerschaum/_internal/term/__init__.py,sha256=oRjQXBvyAIEjf-k_neb614lYOuTPEKtimDn3aKgAgos,2161
|
23
23
|
meerschaum/_internal/term/tools.py,sha256=7Hb6W9G1nHZHAhzuJjatuP1IK9XZTgUXDRPk7H9Tkpg,1609
|
24
24
|
meerschaum/actions/__init__.py,sha256=MHPs8aRBhbZQXnqd_6tVtisTrNCgPAPgnNcXYbn0zP8,11640
|
25
|
-
meerschaum/actions/api.py,sha256=
|
25
|
+
meerschaum/actions/api.py,sha256=RsQKtTHcxfoXw6BIpz36unUSFo2m9huATGBQUhQw2TU,13392
|
26
26
|
meerschaum/actions/attach.py,sha256=UV19d9W_2WYcrf7BRz7k3mriDoX1V4rA4AKvbLdor0o,3106
|
27
27
|
meerschaum/actions/bootstrap.py,sha256=08o3PchrJ_Rv8IP30ZBH1Ovk-b8qFBGPedCjF7jRzSo,18084
|
28
28
|
meerschaum/actions/clear.py,sha256=v_xHn7-Pu7iwFNJ07q9eJt2hqPV7OwNZHUYa9dvixs4,4976
|
@@ -129,7 +129,7 @@ meerschaum/api/routes/_pipes.py,sha256=kykrEP6A75WBjn2wP28BLiPVRpwtfd8sVhfOhzjHa
|
|
129
129
|
meerschaum/api/routes/_plugins.py,sha256=zzUyCiylJGeoLoa3dNjeRMSspvKfywTVXBpB-ghJ7ls,6228
|
130
130
|
meerschaum/api/routes/_users.py,sha256=Gts7gltQc5uxgjfL5pQS_R-cAhkHJZJWBCKGPRS1gmQ,6809
|
131
131
|
meerschaum/api/routes/_version.py,sha256=2t-nw_9IxCVZCNEar0LOwmut2zsClRVHjiOOUx16cu0,825
|
132
|
-
meerschaum/api/routes/_webterm.py,sha256=
|
132
|
+
meerschaum/api/routes/_webterm.py,sha256=S7RXV8vvaTFbmVeehh4UhyXb4NCgcsyOQzoAG7jryH4,4129
|
133
133
|
meerschaum/api/tables/__init__.py,sha256=e2aNC0CdlWICTUMx1i9RauF8Pm426J0RZJbsJWv4SWo,482
|
134
134
|
meerschaum/config/__init__.py,sha256=5ZBq71P9t3nb74r5CGvMfNuauPscfegBX-nkaAUi5C4,11541
|
135
135
|
meerschaum/config/_dash.py,sha256=BJHl4xMrQB-YHUEU7ldEW8q_nOPoIRSOqLrfGElc6Dw,187
|
@@ -144,7 +144,7 @@ meerschaum/config/_preprocess.py,sha256=-AEA8m_--KivZwTQ1sWN6LTn5sio_fUr2XZ51BO6
|
|
144
144
|
meerschaum/config/_read_config.py,sha256=RLC3HHi_1ndj7ITVDKLD9_uULY3caGRwSz3ATYE-ixA,15014
|
145
145
|
meerschaum/config/_shell.py,sha256=46_m49Txc5q1rGfCgO49ca48BODx45DQJi8D0zz1R18,4245
|
146
146
|
meerschaum/config/_sync.py,sha256=jHcWRkxd82_BgX8Xo8agsWvf7BSbv3qHLWmYl6ehp_0,4242
|
147
|
-
meerschaum/config/_version.py,sha256=
|
147
|
+
meerschaum/config/_version.py,sha256=Zd83fipDchBm-SAFq7mGqf_u06tqRCglJ5vwS5qF1ZQ,72
|
148
148
|
meerschaum/config/paths.py,sha256=JjibeGN3YAdSNceRwsd42aNmeUrIgM6ndzC8qZAmNI0,621
|
149
149
|
meerschaum/config/resources/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
150
150
|
meerschaum/config/stack/__init__.py,sha256=2UukC0Lmk-aVL1o1qXzumqmuIrw3vu9fD7iCuz4XD4I,10544
|
@@ -152,7 +152,7 @@ meerschaum/config/stack/grafana/__init__.py,sha256=LNXQw2FvHKrD68RDhqDmi2wJjAHaK
|
|
152
152
|
meerschaum/config/stack/mosquitto/__init__.py,sha256=-OwOjq8KiBoSH_pmgCAAF3Dp3CRD4KgAEdimZSadROs,186
|
153
153
|
meerschaum/config/stack/mosquitto/resources/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
154
154
|
meerschaum/config/stack/resources/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
155
|
-
meerschaum/config/static/__init__.py,sha256=
|
155
|
+
meerschaum/config/static/__init__.py,sha256=pl2I2zj24xikCLwQox5MnFCUtI00Duje6a-1c_cuc8c,5393
|
156
156
|
meerschaum/connectors/_Connector.py,sha256=VaVNg0SlQCTXk4shl3c68QdkbymA2Y9ScUlUjckk8PY,6795
|
157
157
|
meerschaum/connectors/__init__.py,sha256=bpWsnU0uvoowWyUkFTwfEkadK84pssZUJ4M7yReudOU,12703
|
158
158
|
meerschaum/connectors/parse.py,sha256=tnqzkzt_suOXYzktn_XVUrprtfym9ThijUf8HXZZlhY,4194
|
@@ -253,11 +253,11 @@ meerschaum/utils/packages/_packages.py,sha256=_xODMSz1FAcx3XHrn9RXUhGJ1zg-QKsVu9
|
|
253
253
|
meerschaum/utils/packages/lazy_loader.py,sha256=VHnph3VozH29R4JnSSBfwtA5WKZYZQFT_GeQSShCnuc,2540
|
254
254
|
meerschaum/utils/venv/_Venv.py,sha256=gc1TCeAj-kTZbQFAT9xl1bi4HXFV5ApT0dPOJfxwr78,3748
|
255
255
|
meerschaum/utils/venv/__init__.py,sha256=-Mpfvz1mJ41TzVL0xKJCKOsU3nFi6XabbNiN7UbdVXs,27067
|
256
|
-
meerschaum-2.7.
|
257
|
-
meerschaum-2.7.
|
258
|
-
meerschaum-2.7.
|
259
|
-
meerschaum-2.7.
|
260
|
-
meerschaum-2.7.
|
261
|
-
meerschaum-2.7.
|
262
|
-
meerschaum-2.7.
|
263
|
-
meerschaum-2.7.
|
256
|
+
meerschaum-2.7.10.dist-info/LICENSE,sha256=jG2zQEdRNt88EgHUWPpXVWmOrOduUQRx7MnYV9YIPaw,11359
|
257
|
+
meerschaum-2.7.10.dist-info/METADATA,sha256=rv1XMPgLXtrBaNTQBv-6zF_mxGdVcF5YnVacC2UGnqM,24490
|
258
|
+
meerschaum-2.7.10.dist-info/NOTICE,sha256=OTA9Fcthjf5BRvWDDIcBC_xfLpeDV-RPZh3M-HQBRtQ,114
|
259
|
+
meerschaum-2.7.10.dist-info/WHEEL,sha256=In9FTNxeP60KnTkGw7wk6mJPYd_dQSjEZmXdBdMCI-8,91
|
260
|
+
meerschaum-2.7.10.dist-info/entry_points.txt,sha256=5YBVzibw-0rNA_1VjB16z5GABsOGf-CDhW4yqH8C7Gc,88
|
261
|
+
meerschaum-2.7.10.dist-info/top_level.txt,sha256=bNoSiDj0El6buocix-FRoAtJOeq1qOF5rRm2u9i7Q6A,11
|
262
|
+
meerschaum-2.7.10.dist-info/zip-safe,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
|
263
|
+
meerschaum-2.7.10.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|