meerschaum 2.4.11__py3-none-any.whl → 2.4.12__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/shell/Shell.py +19 -9
- meerschaum/_internal/shell/ShellCompleter.py +11 -6
- meerschaum/actions/bootstrap.py +120 -15
- meerschaum/actions/clear.py +41 -30
- meerschaum/actions/edit.py +89 -0
- meerschaum/actions/start.py +3 -2
- 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 +65 -61
- meerschaum/connectors/sql/_pipes.py +36 -29
- meerschaum/utils/formatting/__init__.py +32 -16
- meerschaum/utils/formatting/_pipes.py +1 -1
- meerschaum/utils/formatting/_shell.py +4 -3
- meerschaum/utils/prompt.py +16 -15
- meerschaum/utils/sql.py +107 -35
- {meerschaum-2.4.11.dist-info → meerschaum-2.4.12.dist-info}/METADATA +1 -1
- {meerschaum-2.4.11.dist-info → meerschaum-2.4.12.dist-info}/RECORD +31 -30
- {meerschaum-2.4.11.dist-info → meerschaum-2.4.12.dist-info}/WHEEL +1 -1
- {meerschaum-2.4.11.dist-info → meerschaum-2.4.12.dist-info}/LICENSE +0 -0
- {meerschaum-2.4.11.dist-info → meerschaum-2.4.12.dist-info}/NOTICE +0 -0
- {meerschaum-2.4.11.dist-info → meerschaum-2.4.12.dist-info}/entry_points.txt +0 -0
- {meerschaum-2.4.11.dist-info → meerschaum-2.4.12.dist-info}/top_level.txt +0 -0
- {meerschaum-2.4.11.dist-info → meerschaum-2.4.12.dist-info}/zip-safe +0 -0
@@ -11,7 +11,7 @@ import platform
|
|
11
11
|
import os
|
12
12
|
import sys
|
13
13
|
import meerschaum as mrsm
|
14
|
-
from meerschaum.utils.typing import Optional, Union, Any, Dict
|
14
|
+
from meerschaum.utils.typing import Optional, Union, Any, Dict, Iterable
|
15
15
|
from meerschaum.utils.formatting._shell import make_header
|
16
16
|
from meerschaum.utils.formatting._pprint import pprint
|
17
17
|
from meerschaum.utils.formatting._pipes import (
|
@@ -322,14 +322,14 @@ def format_success_tuple(
|
|
322
322
|
from meerschaum.config import get_config
|
323
323
|
status_config = get_config('formatting', status, patch=True)
|
324
324
|
|
325
|
-
msg = (' ' * left_padding) + status_config[CHARSET]['icon'] + ' ' + str(tup[1])
|
325
|
+
msg = (' ' * left_padding) + status_config[CHARSET]['icon'] + ' ' + str(highlight_pipes(tup[1]))
|
326
326
|
lines = msg.split('\n')
|
327
327
|
lines = [lines[0]] + [
|
328
328
|
((' ' + line if not line.startswith(' ') else line))
|
329
329
|
for line in lines[1:]
|
330
330
|
]
|
331
331
|
if ANSI:
|
332
|
-
lines[0] = fill_ansi(
|
332
|
+
lines[0] = fill_ansi(lines[0], **status_config['ansi']['rich'])
|
333
333
|
|
334
334
|
msg = '\n'.join(lines)
|
335
335
|
msg = ('\n' * upper_padding) + msg + ('\n' * lower_padding)
|
@@ -337,7 +337,7 @@ def format_success_tuple(
|
|
337
337
|
|
338
338
|
|
339
339
|
def print_options(
|
340
|
-
options: Optional[
|
340
|
+
options: Optional[Iterable[Any]] = None,
|
341
341
|
nopretty: bool = False,
|
342
342
|
no_rich: bool = False,
|
343
343
|
name: str = 'options',
|
@@ -345,6 +345,7 @@ def print_options(
|
|
345
345
|
num_cols: Optional[int] = None,
|
346
346
|
adjust_cols: bool = True,
|
347
347
|
sort_options: bool = False,
|
348
|
+
number_options: bool = False,
|
348
349
|
**kw
|
349
350
|
) -> None:
|
350
351
|
"""
|
@@ -373,6 +374,12 @@ def print_options(
|
|
373
374
|
adjust_cols: bool, default True
|
374
375
|
If `True`, adjust the number of columns depending on the terminal size.
|
375
376
|
|
377
|
+
sort_options: bool, default False
|
378
|
+
If `True`, print the options in sorted order.
|
379
|
+
|
380
|
+
number_options: bool, default False
|
381
|
+
If `True`, print the option's number in the list (1 index).
|
382
|
+
|
376
383
|
"""
|
377
384
|
import os
|
378
385
|
from meerschaum.utils.packages import import_rich
|
@@ -398,9 +405,10 @@ def print_options(
|
|
398
405
|
print()
|
399
406
|
print(make_header(_header))
|
400
407
|
### print actions
|
401
|
-
for option in _options:
|
408
|
+
for i, option in enumerate(_options):
|
409
|
+
marker = '-' if not number_options else (str(i + 1) + '.')
|
402
410
|
if not nopretty:
|
403
|
-
print("
|
411
|
+
print(f" {marker} ", end="")
|
404
412
|
print(option)
|
405
413
|
if not nopretty:
|
406
414
|
print()
|
@@ -434,11 +442,11 @@ def print_options(
|
|
434
442
|
|
435
443
|
if _header is not None:
|
436
444
|
table = Table(
|
437
|
-
title
|
438
|
-
box
|
439
|
-
show_header
|
440
|
-
show_footer
|
441
|
-
title_style
|
445
|
+
title=_header,
|
446
|
+
box=box.SIMPLE,
|
447
|
+
show_header=False,
|
448
|
+
show_footer=False,
|
449
|
+
title_style='',
|
442
450
|
expand = True,
|
443
451
|
)
|
444
452
|
else:
|
@@ -447,18 +455,26 @@ def print_options(
|
|
447
455
|
table.add_column()
|
448
456
|
|
449
457
|
if len(_options) < 12:
|
450
|
-
|
451
|
-
for option in _options:
|
452
|
-
|
458
|
+
### If fewer than 12 items, use a single column
|
459
|
+
for i, option in enumerate(_options):
|
460
|
+
item = highlight_pipes(option)
|
461
|
+
if number_options:
|
462
|
+
item = str(i + 1) + '. ' + item
|
463
|
+
table.add_row(Text.from_ansi(item))
|
453
464
|
else:
|
454
|
-
|
465
|
+
### Otherwise, use multiple columns as before
|
455
466
|
num_rows = (len(_options) + num_cols - 1) // num_cols
|
467
|
+
item_ix = 0
|
456
468
|
for i in range(num_rows):
|
457
469
|
row = []
|
458
470
|
for j in range(num_cols):
|
459
471
|
index = i + j * num_rows
|
460
472
|
if index < len(_options):
|
461
|
-
|
473
|
+
item = highlight_pipes(_options[index])
|
474
|
+
if number_options:
|
475
|
+
item = str(i + 1) + '. ' + item
|
476
|
+
row.append(Text.from_ansi(item))
|
477
|
+
item_ix += 1
|
462
478
|
else:
|
463
479
|
row.append('')
|
464
480
|
table.add_row(*row)
|
@@ -10,10 +10,11 @@ from re import sub
|
|
10
10
|
from meerschaum.utils.threading import Lock
|
11
11
|
_locks = {'_tried_clear_command': Lock()}
|
12
12
|
|
13
|
+
|
13
14
|
def make_header(
|
14
|
-
|
15
|
-
|
16
|
-
|
15
|
+
message: str,
|
16
|
+
ruler: str = '─',
|
17
|
+
) -> str:
|
17
18
|
"""Format a message string with a ruler.
|
18
19
|
Length of the ruler is the length of the longest word.
|
19
20
|
|
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.
|
@@ -3,17 +3,17 @@ meerschaum/__main__.py,sha256=r5UjYxH1WA6dGG9YGBPul5xOdgF3Iwl0X4dWDtXU-30,2646
|
|
3
3
|
meerschaum/_internal/__init__.py,sha256=ilC7utfKtin7GAvuN34fKyUQYfPyqH0Mm3MJF5iyEf4,169
|
4
4
|
meerschaum/_internal/entry.py,sha256=5vBZxQbtN0l9lia9HcvvLVWDCpSeThg-505dGhKiOBo,12234
|
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=XmWv1UP2cGb28GRKSVKywAV6_9pk3HQR-Ad8hjnMcK8,18280
|
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
31
|
meerschaum/actions/delete.py,sha256=DnEdkt_H4OYoee2DG-1mSDpTBp_Ay2aI1euRa4twPJU,19029
|
32
32
|
meerschaum/actions/drop.py,sha256=Hd5h4rrWd7qL2rTqglsTonUsEoH7qQlsfqNFSHGeqr0,2453
|
33
|
-
meerschaum/actions/edit.py,sha256=
|
33
|
+
meerschaum/actions/edit.py,sha256=f51kHaVu2hMllAszVJtfLh7uKDrZ5OViSQcg12tSsl4,14598
|
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
|
@@ -44,7 +44,7 @@ meerschaum/actions/sh.py,sha256=fLfTJaacKu4sjLTRqEzzYlT2WbbdZBEczsKb6F-qAek,2026
|
|
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=PTYk-EzsSHnPyG5dEF0LHSLLNrJBaN6B9UuJGPhfRbM,19205
|
48
48
|
meerschaum/actions/stop.py,sha256=5fdUw70YN-yuUWrC-NhA88cxr9FZ5NbssbQ8xXO8nFU,4632
|
49
49
|
meerschaum/actions/sync.py,sha256=DTWDIx7QGwh9zCxwG9L1k3k598h_ePPkrVkybwWUt4w,17225
|
50
50
|
meerschaum/actions/tag.py,sha256=SJf5qFW0ccLXjqlTdkK_0MCcrCMdg6xhYrhKdco0hdA,3053
|
@@ -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=xIXlWHgz3jJoMBNfzTMSvX_D7PqRAasEI5rlJLcWiyA,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=pReFEPwwS2UuDn4A-EkAm6O2IpekM88pLujCkby9fyc,12913
|
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
|
@@ -225,9 +226,9 @@ meerschaum/utils/misc.py,sha256=OijhS1TMjlqkDvahbxhqfUdo0Myeor-kTKrvqqG8wN0,4634
|
|
225
226
|
meerschaum/utils/networking.py,sha256=Sr_eYUGW8_UV9-k9LqRFf7xLtbUcsDucODyLCRsFRUc,1006
|
226
227
|
meerschaum/utils/pool.py,sha256=vkE42af4fjrTEJTxf6Ek3xGucm1MtEkpsSEiaVzNKHs,2655
|
227
228
|
meerschaum/utils/process.py,sha256=o7UtTQX87YGkg2dItPhlvN7gNQPkElXTYSzKf5Ro8Uc,7474
|
228
|
-
meerschaum/utils/prompt.py,sha256=
|
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
234
|
meerschaum/utils/warnings.py,sha256=IDiwYspsfjIi1gtk3V9cSo9vNLckB9bCsHhRClpPJTc,6639
|
@@ -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
253
|
meerschaum/utils/venv/__init__.py,sha256=G3KXL4ByWNqVxBRLs_RaJbO3h3tOKXkazkAYuoUW568,24420
|
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.
|
254
|
+
meerschaum-2.4.12.dist-info/LICENSE,sha256=jG2zQEdRNt88EgHUWPpXVWmOrOduUQRx7MnYV9YIPaw,11359
|
255
|
+
meerschaum-2.4.12.dist-info/METADATA,sha256=rVQS3Zz8YZeAYGAa3AEkifTMrDyvBW2B-epRjrf7xc8,24820
|
256
|
+
meerschaum-2.4.12.dist-info/NOTICE,sha256=OTA9Fcthjf5BRvWDDIcBC_xfLpeDV-RPZh3M-HQBRtQ,114
|
257
|
+
meerschaum-2.4.12.dist-info/WHEEL,sha256=OVMc5UfuAQiSplgO0_WdW7vXVGAt9Hdd6qtN4HotdyA,91
|
258
|
+
meerschaum-2.4.12.dist-info/entry_points.txt,sha256=5YBVzibw-0rNA_1VjB16z5GABsOGf-CDhW4yqH8C7Gc,88
|
259
|
+
meerschaum-2.4.12.dist-info/top_level.txt,sha256=bNoSiDj0El6buocix-FRoAtJOeq1qOF5rRm2u9i7Q6A,11
|
260
|
+
meerschaum-2.4.12.dist-info/zip-safe,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
|
261
|
+
meerschaum-2.4.12.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|