meerschaum 2.4.11__py3-none-any.whl → 2.4.13__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/arguments/_parse_arguments.py +15 -1
- meerschaum/_internal/docs/index.py +1 -0
- meerschaum/_internal/entry.py +1 -0
- meerschaum/_internal/shell/Shell.py +19 -9
- meerschaum/_internal/shell/ShellCompleter.py +11 -6
- meerschaum/actions/bootstrap.py +119 -16
- meerschaum/actions/clear.py +41 -30
- meerschaum/actions/delete.py +1 -1
- meerschaum/actions/edit.py +118 -3
- meerschaum/actions/sh.py +11 -10
- meerschaum/actions/start.py +61 -4
- meerschaum/actions/sync.py +14 -16
- meerschaum/actions/upgrade.py +5 -4
- meerschaum/api/dash/callbacks/dashboard.py +2 -1
- meerschaum/api/dash/callbacks/jobs.py +53 -7
- meerschaum/api/dash/callbacks/pipes.py +1 -1
- meerschaum/api/dash/jobs.py +86 -60
- meerschaum/api/dash/pages/__init__.py +1 -0
- meerschaum/api/dash/pages/job.py +21 -0
- meerschaum/api/routes/_jobs.py +3 -3
- meerschaum/config/_version.py +1 -1
- meerschaum/connectors/sql/_fetch.py +67 -61
- meerschaum/connectors/sql/_pipes.py +36 -29
- meerschaum/plugins/__init__.py +6 -2
- meerschaum/plugins/bootstrap.py +15 -15
- meerschaum/utils/formatting/__init__.py +32 -16
- meerschaum/utils/formatting/_pipes.py +1 -1
- meerschaum/utils/formatting/_shell.py +4 -3
- meerschaum/utils/process.py +18 -8
- meerschaum/utils/prompt.py +16 -15
- meerschaum/utils/sql.py +107 -35
- meerschaum/utils/venv/__init__.py +35 -24
- meerschaum/utils/warnings.py +7 -7
- {meerschaum-2.4.11.dist-info → meerschaum-2.4.13.dist-info}/METADATA +1 -1
- {meerschaum-2.4.11.dist-info → meerschaum-2.4.13.dist-info}/RECORD +41 -40
- {meerschaum-2.4.11.dist-info → meerschaum-2.4.13.dist-info}/WHEEL +1 -1
- {meerschaum-2.4.11.dist-info → meerschaum-2.4.13.dist-info}/LICENSE +0 -0
- {meerschaum-2.4.11.dist-info → meerschaum-2.4.13.dist-info}/NOTICE +0 -0
- {meerschaum-2.4.11.dist-info → meerschaum-2.4.13.dist-info}/entry_points.txt +0 -0
- {meerschaum-2.4.11.dist-info → meerschaum-2.4.13.dist-info}/top_level.txt +0 -0
- {meerschaum-2.4.11.dist-info → meerschaum-2.4.13.dist-info}/zip-safe +0 -0
meerschaum/utils/prompt.py
CHANGED
@@ -10,17 +10,18 @@ from __future__ import annotations
|
|
10
10
|
import os
|
11
11
|
from meerschaum.utils.typing import Any, Union, Optional, Tuple, List
|
12
12
|
|
13
|
+
|
13
14
|
def prompt(
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
15
|
+
question: str,
|
16
|
+
icon: bool = True,
|
17
|
+
default: Union[str, Tuple[str, str], None] = None,
|
18
|
+
default_editable: Optional[str] = None,
|
19
|
+
detect_password: bool = True,
|
20
|
+
is_password: bool = False,
|
21
|
+
wrap_lines: bool = True,
|
22
|
+
noask: bool = False,
|
23
|
+
**kw: Any
|
24
|
+
) -> str:
|
24
25
|
"""
|
25
26
|
Ask the user a question and return the answer.
|
26
27
|
Wrapper around `prompt_toolkit.prompt()` with modified behavior.
|
@@ -75,7 +76,7 @@ def prompt(
|
|
75
76
|
### if a default is provided, append it to the question.
|
76
77
|
default_answer = default
|
77
78
|
if default is not None:
|
78
|
-
question +=
|
79
|
+
question += " (default: "
|
79
80
|
if isinstance(default, tuple) and len(default) > 1:
|
80
81
|
question += f"{default[0]} [{default[1]}]"
|
81
82
|
default_answer = default[0]
|
@@ -86,7 +87,7 @@ def prompt(
|
|
86
87
|
### detect password
|
87
88
|
if (detect_password and 'password' in question.lower()) or is_password:
|
88
89
|
kw['is_password'] = True
|
89
|
-
|
90
|
+
|
90
91
|
### Add the icon and only color the first line.
|
91
92
|
lines = question.split('\n')
|
92
93
|
first_line = lines[0]
|
@@ -107,15 +108,15 @@ def prompt(
|
|
107
108
|
answer = (
|
108
109
|
prompt_toolkit.prompt(
|
109
110
|
prompt_toolkit.formatted_text.ANSI(question),
|
110
|
-
wrap_lines
|
111
|
-
default
|
111
|
+
wrap_lines=wrap_lines,
|
112
|
+
default=default_editable or '',
|
112
113
|
**filter_keywords(prompt_toolkit.prompt, **kw)
|
113
114
|
) if not noask else ''
|
114
115
|
)
|
115
116
|
else:
|
116
117
|
print(question, end='\n', flush=True)
|
117
118
|
try:
|
118
|
-
answer = input()
|
119
|
+
answer = input() if not noask else ''
|
119
120
|
except EOFError:
|
120
121
|
answer = ''
|
121
122
|
if noask:
|
meerschaum/utils/sql.py
CHANGED
@@ -758,11 +758,11 @@ def build_where(
|
|
758
758
|
|
759
759
|
|
760
760
|
def table_exists(
|
761
|
-
|
762
|
-
|
763
|
-
|
764
|
-
|
765
|
-
|
761
|
+
table: str,
|
762
|
+
connector: mrsm.connectors.sql.SQLConnector,
|
763
|
+
schema: Optional[str] = None,
|
764
|
+
debug: bool = False,
|
765
|
+
) -> bool:
|
766
766
|
"""Check if a table exists.
|
767
767
|
|
768
768
|
Parameters
|
@@ -793,12 +793,12 @@ def table_exists(
|
|
793
793
|
|
794
794
|
|
795
795
|
def get_sqlalchemy_table(
|
796
|
-
|
797
|
-
|
798
|
-
|
799
|
-
|
800
|
-
|
801
|
-
|
796
|
+
table: str,
|
797
|
+
connector: Optional[mrsm.connectors.sql.SQLConnector] = None,
|
798
|
+
schema: Optional[str] = None,
|
799
|
+
refresh: bool = False,
|
800
|
+
debug: bool = False,
|
801
|
+
) -> Union['sqlalchemy.Table', None]:
|
802
802
|
"""
|
803
803
|
Construct a SQLAlchemy table from its name.
|
804
804
|
|
@@ -829,6 +829,9 @@ def get_sqlalchemy_table(
|
|
829
829
|
from meerschaum import get_connector
|
830
830
|
connector = get_connector('sql')
|
831
831
|
|
832
|
+
if connector.flavor == 'duckdb':
|
833
|
+
return None
|
834
|
+
|
832
835
|
from meerschaum.connectors.sql.tables import get_tables
|
833
836
|
from meerschaum.utils.packages import attempt_import
|
834
837
|
from meerschaum.utils.warnings import warn
|
@@ -1333,11 +1336,11 @@ def get_rename_table_queries(
|
|
1333
1336
|
|
1334
1337
|
|
1335
1338
|
def get_create_table_query(
|
1336
|
-
|
1337
|
-
|
1338
|
-
|
1339
|
-
|
1340
|
-
|
1339
|
+
query: str,
|
1340
|
+
new_table: str,
|
1341
|
+
flavor: str,
|
1342
|
+
schema: Optional[str] = None,
|
1343
|
+
) -> str:
|
1341
1344
|
"""
|
1342
1345
|
Return a query to create a new table from a `SELECT` query.
|
1343
1346
|
|
@@ -1365,10 +1368,8 @@ def get_create_table_query(
|
|
1365
1368
|
new_table_name = sql_item_name(new_table, flavor, schema)
|
1366
1369
|
if flavor in ('mssql',):
|
1367
1370
|
query = query.lstrip()
|
1368
|
-
original_query = query
|
1369
1371
|
if 'with ' in query.lower():
|
1370
1372
|
final_select_ix = query.lower().rfind('select')
|
1371
|
-
def_name = query[len('WITH '):].split(' ', maxsplit=1)[0]
|
1372
1373
|
return (
|
1373
1374
|
query[:final_select_ix].rstrip() + ',\n'
|
1374
1375
|
+ f"{create_cte_name} AS (\n"
|
@@ -1405,12 +1406,86 @@ def get_create_table_query(
|
|
1405
1406
|
return textwrap.dedent(create_table_query)
|
1406
1407
|
|
1407
1408
|
|
1409
|
+
def wrap_query_with_cte(
|
1410
|
+
sub_query: str,
|
1411
|
+
parent_query: str,
|
1412
|
+
flavor: str,
|
1413
|
+
cte_name: str = "src",
|
1414
|
+
) -> str:
|
1415
|
+
"""
|
1416
|
+
Wrap a subquery in a CTE and append an encapsulating query.
|
1417
|
+
|
1418
|
+
Parameters
|
1419
|
+
----------
|
1420
|
+
sub_query: str
|
1421
|
+
The query to be referenced. This may itself contain CTEs.
|
1422
|
+
Unless `cte_name` is provided, this will be aliased as `src`.
|
1423
|
+
|
1424
|
+
parent_query: str
|
1425
|
+
The larger query to append which references the subquery.
|
1426
|
+
This must not contain CTEs.
|
1427
|
+
|
1428
|
+
flavor: str
|
1429
|
+
The database flavor, e.g. `'mssql'`.
|
1430
|
+
|
1431
|
+
cte_name: str, default 'src'
|
1432
|
+
The CTE alias, defaults to `src`.
|
1433
|
+
|
1434
|
+
Returns
|
1435
|
+
-------
|
1436
|
+
An encapsulating query which allows you to treat `sub_query` as a temporary table.
|
1437
|
+
|
1438
|
+
Examples
|
1439
|
+
--------
|
1440
|
+
|
1441
|
+
```python
|
1442
|
+
from meerschaum.utils.sql import wrap_query_with_cte
|
1443
|
+
sub_query = "WITH foo AS (SELECT 1 AS val) SELECT (val * 2) AS newval FROM foo"
|
1444
|
+
parent_query = "SELECT newval * 3 FROM src"
|
1445
|
+
query = wrap_query_with_cte(sub_query, parent_query, 'mssql')
|
1446
|
+
print(query)
|
1447
|
+
# WITH foo AS (SELECT 1 AS val),
|
1448
|
+
# [src] AS (
|
1449
|
+
# SELECT (val * 2) AS newval FROM foo
|
1450
|
+
# )
|
1451
|
+
# SELECT newval * 3 FROM src
|
1452
|
+
```
|
1453
|
+
|
1454
|
+
"""
|
1455
|
+
sub_query = sub_query.lstrip()
|
1456
|
+
cte_name_quoted = sql_item_name(cte_name, flavor, None)
|
1457
|
+
|
1458
|
+
if flavor in NO_CTE_FLAVORS:
|
1459
|
+
return (
|
1460
|
+
parent_query
|
1461
|
+
.replace(cte_name_quoted, '--MRSM_SUBQUERY--')
|
1462
|
+
.replace(cte_name, '--MRSM_SUBQUERY--')
|
1463
|
+
.replace('--MRSM_SUBQUERY--', f"(\n{sub_query}\n) AS {cte_name_quoted}")
|
1464
|
+
)
|
1465
|
+
|
1466
|
+
if 'with ' in sub_query.lower():
|
1467
|
+
final_select_ix = sub_query.lower().rfind('select')
|
1468
|
+
return (
|
1469
|
+
sub_query[:final_select_ix].rstrip() + ',\n'
|
1470
|
+
+ f"{cte_name_quoted} AS (\n"
|
1471
|
+
+ ' ' + sub_query[final_select_ix:]
|
1472
|
+
+ "\n)\n"
|
1473
|
+
+ parent_query
|
1474
|
+
)
|
1475
|
+
|
1476
|
+
return (
|
1477
|
+
f"WITH {cte_name_quoted} AS (\n"
|
1478
|
+
f" {sub_query}\n"
|
1479
|
+
f")\n{parent_query}"
|
1480
|
+
)
|
1481
|
+
|
1482
|
+
|
1408
1483
|
def format_cte_subquery(
|
1409
|
-
|
1410
|
-
|
1411
|
-
|
1412
|
-
|
1413
|
-
|
1484
|
+
sub_query: str,
|
1485
|
+
flavor: str,
|
1486
|
+
sub_name: str = 'src',
|
1487
|
+
cols_to_select: Union[List[str], str] = '*',
|
1488
|
+
) -> str:
|
1414
1489
|
"""
|
1415
1490
|
Given a subquery, build a wrapper query that selects from the CTE subquery.
|
1416
1491
|
|
@@ -1434,28 +1509,25 @@ def format_cte_subquery(
|
|
1434
1509
|
-------
|
1435
1510
|
A wrapper query that selects from the CTE.
|
1436
1511
|
"""
|
1437
|
-
import textwrap
|
1438
1512
|
quoted_sub_name = sql_item_name(sub_name, flavor, None)
|
1439
1513
|
cols_str = (
|
1440
1514
|
cols_to_select
|
1441
1515
|
if isinstance(cols_to_select, str)
|
1442
1516
|
else ', '.join([sql_item_name(col, flavor, None) for col in cols_to_select])
|
1443
1517
|
)
|
1444
|
-
|
1445
|
-
f""
|
1446
|
-
|
1447
|
-
FROM ({sub_query})"""
|
1448
|
-
+ (f' AS {quoted_sub_name}' if flavor != 'oracle' else '') + """
|
1449
|
-
"""
|
1518
|
+
parent_query = (
|
1519
|
+
f"SELECT {cols_str}\n"
|
1520
|
+
f"FROM {quoted_sub_name}"
|
1450
1521
|
)
|
1522
|
+
return wrap_query_with_cte(sub_query, parent_query, flavor, cte_name=sub_name)
|
1451
1523
|
|
1452
1524
|
|
1453
1525
|
def session_execute(
|
1454
|
-
|
1455
|
-
|
1456
|
-
|
1457
|
-
|
1458
|
-
|
1526
|
+
session: 'sqlalchemy.orm.session.Session',
|
1527
|
+
queries: Union[List[str], str],
|
1528
|
+
with_results: bool = False,
|
1529
|
+
debug: bool = False,
|
1530
|
+
) -> Union[mrsm.SuccessTuple, Tuple[mrsm.SuccessTuple, List['sqlalchemy.sql.ResultProxy']]]:
|
1459
1531
|
"""
|
1460
1532
|
Similar to `SQLConnector.exec_queries()`, execute a list of queries
|
1461
1533
|
and roll back when one fails.
|
@@ -29,15 +29,16 @@ active_venvs = set()
|
|
29
29
|
active_venvs_counts: Dict[str, int] = {}
|
30
30
|
active_venvs_order: List[Optional[str]] = []
|
31
31
|
threads_active_venvs: Dict[int, 'set[str]'] = {}
|
32
|
+
CREATE_NEW_PROCESS_GROUP = 0x00000200
|
32
33
|
|
33
34
|
|
34
35
|
def activate_venv(
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
36
|
+
venv: Optional[str] = 'mrsm',
|
37
|
+
color: bool = True,
|
38
|
+
force: bool = False,
|
39
|
+
debug: bool = False,
|
40
|
+
**kw
|
41
|
+
) -> bool:
|
41
42
|
"""
|
42
43
|
Create a virtual environment (if it doesn't exist) and add it to `sys.path` if necessary.
|
43
44
|
|
@@ -102,13 +103,13 @@ def activate_venv(
|
|
102
103
|
|
103
104
|
|
104
105
|
def deactivate_venv(
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
|
106
|
+
venv: str = 'mrsm',
|
107
|
+
color: bool = True,
|
108
|
+
debug: bool = False,
|
109
|
+
previously_active_venvs: Union['set[str]', List[str], None] = None,
|
110
|
+
force: bool = False,
|
111
|
+
**kw
|
112
|
+
) -> bool:
|
112
113
|
"""
|
113
114
|
Remove a virtual environment from `sys.path` (if it's been activated).
|
114
115
|
|
@@ -498,14 +499,14 @@ def venv_executable(venv: Optional[str] = 'mrsm') -> str:
|
|
498
499
|
|
499
500
|
|
500
501
|
def venv_exec(
|
501
|
-
|
502
|
-
|
503
|
-
|
504
|
-
|
505
|
-
|
506
|
-
|
507
|
-
|
508
|
-
|
502
|
+
code: str,
|
503
|
+
venv: Optional[str] = 'mrsm',
|
504
|
+
env: Optional[Dict[str, str]] = None,
|
505
|
+
with_extras: bool = False,
|
506
|
+
as_proc: bool = False,
|
507
|
+
capture_output: bool = True,
|
508
|
+
debug: bool = False,
|
509
|
+
) -> Union[bool, Tuple[int, bytes, bytes]]:
|
509
510
|
"""
|
510
511
|
Execute Python code in a subprocess via a virtual environment's interpeter.
|
511
512
|
Return `True` if the code successfully executes, `False` on failure.
|
@@ -538,6 +539,7 @@ def venv_exec(
|
|
538
539
|
"""
|
539
540
|
import os
|
540
541
|
import subprocess
|
542
|
+
import platform
|
541
543
|
from meerschaum.utils.debug import dprint
|
542
544
|
executable = venv_executable(venv=venv)
|
543
545
|
cmd_list = [executable, '-c', code]
|
@@ -549,11 +551,20 @@ def venv_exec(
|
|
549
551
|
return subprocess.call(cmd_list, env=env) == 0
|
550
552
|
|
551
553
|
stdout, stderr = (None, None) if not capture_output else (subprocess.PIPE, subprocess.PIPE)
|
554
|
+
group_kwargs = (
|
555
|
+
{
|
556
|
+
'preexec_fn': os.setsid,
|
557
|
+
} if platform.system() != 'Windows'
|
558
|
+
else {
|
559
|
+
'creationflags': CREATE_NEW_PROCESS_GROUP,
|
560
|
+
}
|
561
|
+
)
|
552
562
|
process = subprocess.Popen(
|
553
563
|
cmd_list,
|
554
|
-
stdout
|
555
|
-
stderr
|
556
|
-
env
|
564
|
+
stdout=stdout,
|
565
|
+
stderr=stderr,
|
566
|
+
env=env,
|
567
|
+
**group_kwargs
|
557
568
|
)
|
558
569
|
if as_proc:
|
559
570
|
return process
|
meerschaum/utils/warnings.py
CHANGED
@@ -154,13 +154,13 @@ def exception_with_traceback(
|
|
154
154
|
|
155
155
|
|
156
156
|
def error(
|
157
|
-
|
158
|
-
|
159
|
-
|
160
|
-
|
161
|
-
|
162
|
-
|
163
|
-
|
157
|
+
message: str,
|
158
|
+
exception_class = Exception,
|
159
|
+
nopretty: bool = False,
|
160
|
+
silent: bool = True,
|
161
|
+
stack: bool = True,
|
162
|
+
raise_: bool = True,
|
163
|
+
):
|
164
164
|
"""
|
165
165
|
Raise an exception with supressed traceback.
|
166
166
|
"""
|
@@ -1,19 +1,19 @@
|
|
1
1
|
meerschaum/__init__.py,sha256=6bn5zz7VInDP4fE_FGBMzJYrM6rQhBMJNQqsf1pU7eI,1701
|
2
2
|
meerschaum/__main__.py,sha256=r5UjYxH1WA6dGG9YGBPul5xOdgF3Iwl0X4dWDtXU-30,2646
|
3
3
|
meerschaum/_internal/__init__.py,sha256=ilC7utfKtin7GAvuN34fKyUQYfPyqH0Mm3MJF5iyEf4,169
|
4
|
-
meerschaum/_internal/entry.py,sha256=
|
4
|
+
meerschaum/_internal/entry.py,sha256=6attwMETUtFUtWq17asaSaNoeEvrwSLIVV_e5RX0pCc,12235
|
5
5
|
meerschaum/_internal/arguments/__init__.py,sha256=_nSKKVLXNsJeSv-buxEZsx8_c0BAbkhRyE4nT6Bv6q0,541
|
6
|
-
meerschaum/_internal/arguments/_parse_arguments.py,sha256=
|
6
|
+
meerschaum/_internal/arguments/_parse_arguments.py,sha256=H492J571CetGVIEzOZhwQVS3bcm4t6hjWg8Gsf6dw0Y,16340
|
7
7
|
meerschaum/_internal/arguments/_parser.py,sha256=l2RYIn-1MEpjyUz2yczkeeuwg2liYaO2MNvEZ4Amk1o,16364
|
8
8
|
meerschaum/_internal/docs/__init__.py,sha256=ZQYHWo6n0kfLLkyG36YXqTYvv2Pc7it5HZHMylT6cBA,126
|
9
|
-
meerschaum/_internal/docs/index.py,sha256=
|
9
|
+
meerschaum/_internal/docs/index.py,sha256=8nU5Ck4I8ZrTTT2yWRCJYx92g2OfL23LWNZZ2eFSXaU,24585
|
10
10
|
meerschaum/_internal/gui/__init__.py,sha256=KF6Opae0aBOjIndMZ2txoPs7ozCXRlR-lcTsicLO7fc,1313
|
11
11
|
meerschaum/_internal/gui/app/__init__.py,sha256=rKUa8hHk6Fai-PDF61tQcpT1myxKcfmvEMDHxThNp7o,1565
|
12
12
|
meerschaum/_internal/gui/app/_windows.py,sha256=-VHdjTzA3V596fVqnbmTxemONSp_80-sTNJ0CTB8FwU,2632
|
13
13
|
meerschaum/_internal/gui/app/actions.py,sha256=rx37qXf3uoa7Ou0n1cISqNFZNL0nr4wO7vSUmWO8f2E,935
|
14
14
|
meerschaum/_internal/gui/app/pipes.py,sha256=4nAQ0rrHb_2bNgDF0Ru2YlbPaCDDzAl5beOGU4Af-4A,1596
|
15
|
-
meerschaum/_internal/shell/Shell.py,sha256
|
16
|
-
meerschaum/_internal/shell/ShellCompleter.py,sha256=
|
15
|
+
meerschaum/_internal/shell/Shell.py,sha256=-dw1k9NbG0VGX0Sve1c8gQ1_XsMYcmYl0VwSO98ERVk,40099
|
16
|
+
meerschaum/_internal/shell/ShellCompleter.py,sha256=uWo-SYBXDGEeKExsjVWi-u7yfnc5XWWCy4Nl4eSO8j4,3340
|
17
17
|
meerschaum/_internal/shell/ValidAutoSuggest.py,sha256=bARjOWMidz0dvMelLUe6yRPto5l3gcEHYHqFDjoh22I,1280
|
18
18
|
meerschaum/_internal/shell/__init__.py,sha256=vXQoQPEVlYiUYai1b5AwQAlTnja6A2cSABnqXhzlS7I,281
|
19
19
|
meerschaum/_internal/shell/updates.py,sha256=FmKu1NsIE7AI1zq8zNeKneZzORv6BeURQeX0lRR81Ag,5040
|
@@ -24,13 +24,13 @@ meerschaum/_internal/term/tools.py,sha256=dXVAimKD-Yv2fg2WOTr0YGBY7XDKjQqw-RizcS
|
|
24
24
|
meerschaum/actions/__init__.py,sha256=MHPs8aRBhbZQXnqd_6tVtisTrNCgPAPgnNcXYbn0zP8,11640
|
25
25
|
meerschaum/actions/api.py,sha256=xeqkf4S-DEzFR8roIF1mzy-i_mAnUPkF7y3nIu8twCo,12593
|
26
26
|
meerschaum/actions/attach.py,sha256=UV19d9W_2WYcrf7BRz7k3mriDoX1V4rA4AKvbLdor0o,3106
|
27
|
-
meerschaum/actions/bootstrap.py,sha256=
|
28
|
-
meerschaum/actions/clear.py,sha256=
|
27
|
+
meerschaum/actions/bootstrap.py,sha256=9y4HU1uqjbkAg_706pOOJUMzl196pU7ghfGDCWg0vPE,18234
|
28
|
+
meerschaum/actions/clear.py,sha256=tMacHFv8btWpkNnXHtKDOMiCDNhGb5S6CJhCDIrrNDk,4914
|
29
29
|
meerschaum/actions/copy.py,sha256=NwTwj3IMdK1TFRuJXCxsbIEFNVeoNGoMkvE6H1ZQZzo,6838
|
30
30
|
meerschaum/actions/deduplicate.py,sha256=puYyxeFYEUy1Sd2IOcZB2e6MrNxAZl2bTLmNzFDkCiw,1167
|
31
|
-
meerschaum/actions/delete.py,sha256=
|
31
|
+
meerschaum/actions/delete.py,sha256=7hW4Ff_WSczW8If-EEDbEUU0U0XzV3fVbFb9gED4S9Q,19032
|
32
32
|
meerschaum/actions/drop.py,sha256=Hd5h4rrWd7qL2rTqglsTonUsEoH7qQlsfqNFSHGeqr0,2453
|
33
|
-
meerschaum/actions/edit.py,sha256=
|
33
|
+
meerschaum/actions/edit.py,sha256=bJ9DaPXGOySjq_rGFPVlbK99Ls9ajbQ5q5MksX_3WVY,15440
|
34
34
|
meerschaum/actions/install.py,sha256=jdhOrR_KlvinTKr0YJNkUHsnh5EY6OzA7cRq0Vnp1oU,7494
|
35
35
|
meerschaum/actions/login.py,sha256=fNgsgkrFCn9wBQJY50SQhz2PwsN_TvEYYHnXK3JG4ig,4206
|
36
36
|
meerschaum/actions/os.py,sha256=dtoppoBhLzW3rLNF0SFovEfNxA4WJWt_9WrOGlS5KbA,2251
|
@@ -40,16 +40,16 @@ meerschaum/actions/register.py,sha256=By4eCJn-nvrWKs8dPG5GqMClUMm9y_yvIwU_FwRqJX
|
|
40
40
|
meerschaum/actions/reload.py,sha256=gMXeFBGVfyQ7uhKhYf6bLaDMD0fLPcA9BrLBSiuvWIc,508
|
41
41
|
meerschaum/actions/restart.py,sha256=6ffp3-X9eTEgunVSdD41HnOwqp71yjuSAmXJ5j39ONI,3038
|
42
42
|
meerschaum/actions/setup.py,sha256=KkAGWcgwzl_L6A19fTmTX1KtBjW2FwD8QenLjPy0mQQ,3205
|
43
|
-
meerschaum/actions/sh.py,sha256=
|
43
|
+
meerschaum/actions/sh.py,sha256=hSkGNTVqP5dNjhJ64zy3V3VCFPTKnDlH3PxdKdxtkGQ,1990
|
44
44
|
meerschaum/actions/show.py,sha256=T8Ol1o-762cI9rlUzd-8svvwgT4slYXYfOPQETh9Koo,28446
|
45
45
|
meerschaum/actions/sql.py,sha256=8BSvlnccfEqLrscLq67Toa5D4FJ7I598IdxEe_yzmV8,4263
|
46
46
|
meerschaum/actions/stack.py,sha256=ZwrCTGJ0x3jjZkRieWcvqasQHYCqNtB1HYvTX-r3Z3g,5996
|
47
|
-
meerschaum/actions/start.py,sha256=
|
47
|
+
meerschaum/actions/start.py,sha256=26i2Pqg3c_Ltw3lgYzl3sZL2wG0XBgOuJrPK8qPPHdI,21281
|
48
48
|
meerschaum/actions/stop.py,sha256=5fdUw70YN-yuUWrC-NhA88cxr9FZ5NbssbQ8xXO8nFU,4632
|
49
|
-
meerschaum/actions/sync.py,sha256=
|
49
|
+
meerschaum/actions/sync.py,sha256=uXneLSykNH0LapE4kn_9fzwUQ-kJcRUzJ42pyuoFNaI,17161
|
50
50
|
meerschaum/actions/tag.py,sha256=SJf5qFW0ccLXjqlTdkK_0MCcrCMdg6xhYrhKdco0hdA,3053
|
51
51
|
meerschaum/actions/uninstall.py,sha256=tBXhdXggSieGEQe4EPGxpgMK0MZTJCweNvAJ9-59El0,5776
|
52
|
-
meerschaum/actions/upgrade.py,sha256=
|
52
|
+
meerschaum/actions/upgrade.py,sha256=1oXzK05WH-l8wq8Dxidr7c0hn7UQa3SuwRk0yyQH5vI,6462
|
53
53
|
meerschaum/actions/verify.py,sha256=tY5slGpHiWiE0v9TDnjbmxSKn86zBnu9WBpixUgKNQU,4885
|
54
54
|
meerschaum/api/__init__.py,sha256=5q2XelZvqZSyfCyGIf1mlrWVxrsDaG2_I4L5ACeqMso,8456
|
55
55
|
meerschaum/api/_chain.py,sha256=h8-WXUGXX6AqzdALfsBC5uv0FkAcLdHJXCGzqzuq89k,875
|
@@ -60,7 +60,7 @@ meerschaum/api/dash/__init__.py,sha256=Qs7Q1wMI3TWl1gRECgHyJpPb7Zh70F_6TLIF8_qDv
|
|
60
60
|
meerschaum/api/dash/components.py,sha256=t2goHW7oioao5Ew6Dro9U4LZDnHF-YWb4flLPx46GP8,6293
|
61
61
|
meerschaum/api/dash/connectors.py,sha256=nJxBOFldtCMJLYjUSVYZwX5BO-LNjTNHgoEaXe-0XMo,843
|
62
62
|
meerschaum/api/dash/graphs.py,sha256=wJUDWzcLN8-C3xko6rj0F2v7Rt8YDkSXoVkkXJjYGIk,2046
|
63
|
-
meerschaum/api/dash/jobs.py,sha256=
|
63
|
+
meerschaum/api/dash/jobs.py,sha256=mj9STE6AaQY4fwkjD1JcYRG0iW3VEcP04bO1SlKgiXw,7681
|
64
64
|
meerschaum/api/dash/keys.py,sha256=hzEVeN60SAfVTVSO5lajGaykxRIKGhj9Ph00HRJnNoE,12598
|
65
65
|
meerschaum/api/dash/pipes.py,sha256=Bgp33bGkIFcqjrLiUxEubpxcXVVssY8bzwi7kLp6UQ8,21814
|
66
66
|
meerschaum/api/dash/plugins.py,sha256=KdfG04f6SsUpBg-nm7MUJegFGuElOj-GAkxDX98hi60,3768
|
@@ -77,15 +77,16 @@ meerschaum/api/dash/assets/logo_48x48.png,sha256=hTR5BHUHEN4yP2xiqAcDciuigoII9T3
|
|
77
77
|
meerschaum/api/dash/assets/logo_500x500.png,sha256=9EUtf6wQcEZTXHKfQ2kjNXod6Rn_4DTB_BkTgxggq00,67702
|
78
78
|
meerschaum/api/dash/callbacks/__init__.py,sha256=5nLDkziaWWWt5ivmuMNG3kVBMOfqB6KQNIAS8f16bmA,493
|
79
79
|
meerschaum/api/dash/callbacks/custom.py,sha256=N9pVolAF8sIuJD3V6xBSgS7k8THJo_f8d1qAoh1Kg60,1161
|
80
|
-
meerschaum/api/dash/callbacks/dashboard.py,sha256=
|
81
|
-
meerschaum/api/dash/callbacks/jobs.py,sha256=
|
80
|
+
meerschaum/api/dash/callbacks/dashboard.py,sha256=aXZ22qcVq_MOn2GWBuFV1MUjmojLjyDk24QyaUnkkk4,32757
|
81
|
+
meerschaum/api/dash/callbacks/jobs.py,sha256=JYTrDcUEte_MIT3EegLDmQDsmU_Mxqw8L60dvF71ho4,8418
|
82
82
|
meerschaum/api/dash/callbacks/login.py,sha256=mEvMgV-f85H6DvqNdTvJPoiwHqTnhWY2nf_zLB26ipE,2876
|
83
|
-
meerschaum/api/dash/callbacks/pipes.py,sha256=
|
83
|
+
meerschaum/api/dash/callbacks/pipes.py,sha256=byphQn-wJOe8ft-fGU9wac0n5xsMjVHJzNvYYb9NsKU,1693
|
84
84
|
meerschaum/api/dash/callbacks/plugins.py,sha256=znPgw_Uf3__QEjKxoIHADfjVNubTehCDaTJ02b16pQo,2760
|
85
85
|
meerschaum/api/dash/callbacks/register.py,sha256=KfMFgXWiFkemz0YriSPaLQBVnFDG8q6_t9gHuempOS0,3666
|
86
|
-
meerschaum/api/dash/pages/__init__.py,sha256=
|
86
|
+
meerschaum/api/dash/pages/__init__.py,sha256=E3MI73_FR21R_-npTJ9HBNd7hdbOwQ75V-TMpq3ohz8,349
|
87
87
|
meerschaum/api/dash/pages/dashboard.py,sha256=WKwy40kgm2Qy0k1ZTIueFnnVu0YBzFAd_8AT6CHHvfM,3835
|
88
88
|
meerschaum/api/dash/pages/error.py,sha256=-uCrASuIBrceHcc-leLeEoLos2ibSBWG0XMFQzFwtbw,595
|
89
|
+
meerschaum/api/dash/pages/job.py,sha256=bAXXDB0fM3bSiqqJ2XlTwVdg2lohRaWdIGZp7ZtTZOw,544
|
89
90
|
meerschaum/api/dash/pages/login.py,sha256=w8Cy1l4HSiMMgUndE4X_8pB0odU_iG7x1dwe9JrwR88,4633
|
90
91
|
meerschaum/api/dash/pages/pipes.py,sha256=Cd5XY_m4nBIsEk6TQadpcajuBRzxw1cyDaTtojwykcI,506
|
91
92
|
meerschaum/api/dash/pages/plugins.py,sha256=9VpRqWW-3OhgZDUoo4J8PYswd231HaxlcSntxOOKsQA,1549
|
@@ -120,7 +121,7 @@ meerschaum/api/routes/__init__.py,sha256=jbkeFNl51Tg8aT5gWe560ZLZLojFJsLMe5IENRj
|
|
120
121
|
meerschaum/api/routes/_actions.py,sha256=KGUlPyWiO0e7t7Fj8-nIowWokDVP22Gr9z1XxLx5tpw,3063
|
121
122
|
meerschaum/api/routes/_connectors.py,sha256=NNbcn5xWhKqw2PqueSEaqRaZ95hFGDKazG5lE7gsssc,1849
|
122
123
|
meerschaum/api/routes/_index.py,sha256=QI6CBo6pI2Zi0a6fJHDjZfiLa9f4okb0BGe3A_JD0kM,578
|
123
|
-
meerschaum/api/routes/_jobs.py,sha256=
|
124
|
+
meerschaum/api/routes/_jobs.py,sha256=deKv9Y9XtCAB6u3ZyI2_zeMbrzkA8Q8-o6PWmTf9sxc,11702
|
124
125
|
meerschaum/api/routes/_login.py,sha256=ti2onNOemOGLHLoPubAQOYtD7eq7FA1jOlbOSVSjXVo,2466
|
125
126
|
meerschaum/api/routes/_misc.py,sha256=05--9ZVFeaCgZrHER2kA3SYdK4TyfkEXOCjLvPbum-w,2469
|
126
127
|
meerschaum/api/routes/_pipes.py,sha256=g88AU_NUM6tlX3bFl4EOGiQWZYqvDxDFlaLIYbYn1c4,21397
|
@@ -142,7 +143,7 @@ meerschaum/config/_preprocess.py,sha256=-AEA8m_--KivZwTQ1sWN6LTn5sio_fUr2XZ51BO6
|
|
142
143
|
meerschaum/config/_read_config.py,sha256=oxnLjuhy6JBBld886FkBX07wUdkpzEzTItYMUa9qw1Q,14688
|
143
144
|
meerschaum/config/_shell.py,sha256=46_m49Txc5q1rGfCgO49ca48BODx45DQJi8D0zz1R18,4245
|
144
145
|
meerschaum/config/_sync.py,sha256=jHcWRkxd82_BgX8Xo8agsWvf7BSbv3qHLWmYl6ehp_0,4242
|
145
|
-
meerschaum/config/_version.py,sha256=
|
146
|
+
meerschaum/config/_version.py,sha256=kz1QZdlaaIVseDrdmhCpAtbsywLZfvnZsEoYBk9hyyE,72
|
146
147
|
meerschaum/config/paths.py,sha256=JjibeGN3YAdSNceRwsd42aNmeUrIgM6ndzC8qZAmNI0,621
|
147
148
|
meerschaum/config/resources/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
148
149
|
meerschaum/config/stack/__init__.py,sha256=gGVxXgNnGb9u25iF__IiNPlZt1BLUVmHmFJ0jvnJg3Q,10548
|
@@ -173,9 +174,9 @@ meerschaum/connectors/sql/_SQLConnector.py,sha256=QlC2Af7AM7bIlPHjUO57mTyzot3zU7
|
|
173
174
|
meerschaum/connectors/sql/__init__.py,sha256=3cqYiDkVasn7zWdtOTAZbT4bo95AuvGOmDD2TkaAxtw,205
|
174
175
|
meerschaum/connectors/sql/_cli.py,sha256=1SgnWeMIAihoxp4FzbNrcq1npXf0dSOQnCntpU9hUXA,4405
|
175
176
|
meerschaum/connectors/sql/_create_engine.py,sha256=pZPjy-ne8DtVfu-wqMJopIGkgm8vul-y3E9d4tUyTgM,10215
|
176
|
-
meerschaum/connectors/sql/_fetch.py,sha256=
|
177
|
+
meerschaum/connectors/sql/_fetch.py,sha256=4-Bc4X8dFo6bikVGE5X16s4qmdqbN7NpGPeYB3MlqAA,13014
|
177
178
|
meerschaum/connectors/sql/_instance.py,sha256=zXPZnEqvOAeOUPMeh6CcfkB1pOjjwJxdUOwXccRbuwk,6465
|
178
|
-
meerschaum/connectors/sql/_pipes.py,sha256
|
179
|
+
meerschaum/connectors/sql/_pipes.py,sha256=-jbuBjZ8EET2bkhgAWQmqci5FNcBCZUqnOcF_tuHq8M,101055
|
179
180
|
meerschaum/connectors/sql/_plugins.py,sha256=wbxcNxqTtjfDsxPvdVGTllasYf6NHHzODaQ72hEUSBQ,8135
|
180
181
|
meerschaum/connectors/sql/_sql.py,sha256=zEh6fbOLJhfLOF-4x9OTQ5Fi3NMSVES3oixmnGYcNG8,36381
|
181
182
|
meerschaum/connectors/sql/_uri.py,sha256=0BrhQtqQdzg9mR04gWBZINs_BbPFtSlTECXT_TCUwik,3460
|
@@ -214,8 +215,8 @@ meerschaum/jobs/_Job.py,sha256=hkjHqG5YPej5rC4nwdU7Ay_mjep9Fy4HO5B-eqdBdfo,31984
|
|
214
215
|
meerschaum/jobs/__init__.py,sha256=q0f_2zWw91sAyafP50IgMM06abe-BIYSR_SCWmI4W3E,12177
|
215
216
|
meerschaum/jobs/systemd.py,sha256=Rq-tsDPslG17ZhpKMrVJ5r8Z0IPr6DEc9APObfIoXCg,24614
|
216
217
|
meerschaum/plugins/_Plugin.py,sha256=rTiGNQ9nIQeVSG_P9C6DHCMLW0K-J7zzuu3FjNXUOlE,34056
|
217
|
-
meerschaum/plugins/__init__.py,sha256=
|
218
|
-
meerschaum/plugins/bootstrap.py,sha256=
|
218
|
+
meerschaum/plugins/__init__.py,sha256=6krcqaMKyzuVqesXMqEL0XEy2SJQ4xfNt2-oI_fJ6v0,26278
|
219
|
+
meerschaum/plugins/bootstrap.py,sha256=VwjpZAuYdqPJW0YoVgAoM_taHkdQHqP902-8T7OWWCI,11339
|
219
220
|
meerschaum/utils/__init__.py,sha256=QrK1K9hIbPCRCM5k2nZGFqGnrqhA0Eh-iSmCU7FG6Cs,612
|
220
221
|
meerschaum/utils/_get_pipes.py,sha256=tu4xKPoDn79Dz2kWM13cXTP4DSCkn-3G9M8KiLftopw,11073
|
221
222
|
meerschaum/utils/dataframe.py,sha256=qV_6ecpxMIZOoiUb0pIk8u5ZPBn-h6O1yS_DtdLFX_U,41937
|
@@ -224,13 +225,13 @@ meerschaum/utils/interactive.py,sha256=t-6jWozXSqL7lYGDHuwiOjTgr-UKhdcg61q_eR5mi
|
|
224
225
|
meerschaum/utils/misc.py,sha256=OijhS1TMjlqkDvahbxhqfUdo0Myeor-kTKrvqqG8wN0,46349
|
225
226
|
meerschaum/utils/networking.py,sha256=Sr_eYUGW8_UV9-k9LqRFf7xLtbUcsDucODyLCRsFRUc,1006
|
226
227
|
meerschaum/utils/pool.py,sha256=vkE42af4fjrTEJTxf6Ek3xGucm1MtEkpsSEiaVzNKHs,2655
|
227
|
-
meerschaum/utils/process.py,sha256=
|
228
|
-
meerschaum/utils/prompt.py,sha256=
|
228
|
+
meerschaum/utils/process.py,sha256=9O8PPPJjY9Q5W2f39I3B3lFU6TlSiRiI3bgrzdOOyOw,7843
|
229
|
+
meerschaum/utils/prompt.py,sha256=6J--mZJ_NcEdSX6KMjtY4fXXezyILLHP24VdxFFqOIc,18985
|
229
230
|
meerschaum/utils/schedule.py,sha256=6I2TFGa1aPRU9wTdd3YFrJq-DCPpnl-sTWeFEnrINYA,10886
|
230
|
-
meerschaum/utils/sql.py,sha256=
|
231
|
+
meerschaum/utils/sql.py,sha256=R_hX92brvZDqID7c85-PNUVVR6RWXGXEgn1vFpHmi88,49869
|
231
232
|
meerschaum/utils/threading.py,sha256=3N8JXPAnwqJiSjuQcbbJg3Rv9-CCUMJpeQRfKFR7MaA,2489
|
232
233
|
meerschaum/utils/typing.py,sha256=U3MC347sh1umpa3Xr1k71eADyDmk4LB6TnVCpq8dVzI,2830
|
233
|
-
meerschaum/utils/warnings.py,sha256=
|
234
|
+
meerschaum/utils/warnings.py,sha256=n-phr3BftNNgyPnvnXC_VMSjtCvjiCZ-ewmVfcROhkc,6611
|
234
235
|
meerschaum/utils/yaml.py,sha256=PoC1du0pn2hLwTHwL-zuOf_EBWZSbCGOz-P-AZ4BWN0,3901
|
235
236
|
meerschaum/utils/daemon/Daemon.py,sha256=rLUjJTGwKVUGVTHyz_A_lUJ_Wb2CgzT1ZFLhLwvGiNk,42142
|
236
237
|
meerschaum/utils/daemon/FileDescriptorInterceptor.py,sha256=MJKMO0Syf3d8yWUs6xXcQzg8Ptsuvh2aCRRoglOjusA,5257
|
@@ -240,21 +241,21 @@ meerschaum/utils/daemon/__init__.py,sha256=o9jWb4lRTIyny4EPt7fPXFgV_vIf1mUofsTwo
|
|
240
241
|
meerschaum/utils/daemon/_names.py,sha256=d2ZwTxBoTAqXZkCfZ5LuX2XrkQmLNUq1OTlUqfoH5dA,4515
|
241
242
|
meerschaum/utils/dtypes/__init__.py,sha256=LawV4XrCLZRhyGquUen3i0HvK2IRHG-Ud4MYi3L4phA,7391
|
242
243
|
meerschaum/utils/dtypes/sql.py,sha256=K0pginy3U5UvgtM9af-HRoiqdvFlwiAmKNQBPGChIUA,16267
|
243
|
-
meerschaum/utils/formatting/__init__.py,sha256=
|
244
|
+
meerschaum/utils/formatting/__init__.py,sha256=GpJQWeqkdWw5IuDmW4Rgmapjzv-KkI4jhBZllJi4QIg,15999
|
244
245
|
meerschaum/utils/formatting/_jobs.py,sha256=izsqPJhTtUkXUUtWnbXtReYsUYwulXtci3pBj72Ne64,6637
|
245
|
-
meerschaum/utils/formatting/_pipes.py,sha256=
|
246
|
+
meerschaum/utils/formatting/_pipes.py,sha256=840O5rg2aHhQoraCDOh2ZtBo43_W2W6R60yYufEoXp8,19494
|
246
247
|
meerschaum/utils/formatting/_pprint.py,sha256=tgrT3FyGyu5CWJYysqK3kX1xdZYorlbOk9fcU_vt9Qg,3096
|
247
|
-
meerschaum/utils/formatting/_shell.py,sha256=
|
248
|
+
meerschaum/utils/formatting/_shell.py,sha256=XH7VFLteNv7NGtWhJl7FdIGt80sKeTiDoJokGSDAwBM,3761
|
248
249
|
meerschaum/utils/packages/__init__.py,sha256=m3HLTkKJxXco1g-h75q2l5skBwKXWaJtNmfQOsijchI,63965
|
249
250
|
meerschaum/utils/packages/_packages.py,sha256=8Ox9fiQTVmmKAmlxZBV-7Wtq_jhPnnf3AMXvktGE-KY,8319
|
250
251
|
meerschaum/utils/packages/lazy_loader.py,sha256=VHnph3VozH29R4JnSSBfwtA5WKZYZQFT_GeQSShCnuc,2540
|
251
252
|
meerschaum/utils/venv/_Venv.py,sha256=sBnlmxHdAh2bx8btfVoD79-H9-cYsv5lP02IIXkyECs,3553
|
252
|
-
meerschaum/utils/venv/__init__.py,sha256=
|
253
|
-
meerschaum-2.4.
|
254
|
-
meerschaum-2.4.
|
255
|
-
meerschaum-2.4.
|
256
|
-
meerschaum-2.4.
|
257
|
-
meerschaum-2.4.
|
258
|
-
meerschaum-2.4.
|
259
|
-
meerschaum-2.4.
|
260
|
-
meerschaum-2.4.
|
253
|
+
meerschaum/utils/venv/__init__.py,sha256=f3oi67lXYPLKJrnRW9lae7M3A8SFiC7DzaMoBdCVUFs,24609
|
254
|
+
meerschaum-2.4.13.dist-info/LICENSE,sha256=jG2zQEdRNt88EgHUWPpXVWmOrOduUQRx7MnYV9YIPaw,11359
|
255
|
+
meerschaum-2.4.13.dist-info/METADATA,sha256=y0OKNCTNx9iyL9PI80-yYa_Yg9SYcSK8Td172EBl5Fo,24820
|
256
|
+
meerschaum-2.4.13.dist-info/NOTICE,sha256=OTA9Fcthjf5BRvWDDIcBC_xfLpeDV-RPZh3M-HQBRtQ,114
|
257
|
+
meerschaum-2.4.13.dist-info/WHEEL,sha256=OVMc5UfuAQiSplgO0_WdW7vXVGAt9Hdd6qtN4HotdyA,91
|
258
|
+
meerschaum-2.4.13.dist-info/entry_points.txt,sha256=5YBVzibw-0rNA_1VjB16z5GABsOGf-CDhW4yqH8C7Gc,88
|
259
|
+
meerschaum-2.4.13.dist-info/top_level.txt,sha256=bNoSiDj0El6buocix-FRoAtJOeq1qOF5rRm2u9i7Q6A,11
|
260
|
+
meerschaum-2.4.13.dist-info/zip-safe,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
|
261
|
+
meerschaum-2.4.13.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|