meerschaum 2.9.1__py3-none-any.whl → 2.9.2__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/shell/Shell.py +79 -30
- meerschaum/api/dash/pages/pipes.py +9 -6
- meerschaum/api/resources/templates/termpage.html +2 -0
- meerschaum/config/_version.py +1 -1
- meerschaum/core/Pipe/_data.py +10 -1
- meerschaum/core/Pipe/_verify.py +1 -0
- meerschaum/utils/dtypes/__init__.py +4 -2
- meerschaum/utils/misc.py +33 -0
- meerschaum/utils/sql.py +8 -4
- {meerschaum-2.9.1.dist-info → meerschaum-2.9.2.dist-info}/METADATA +3 -2
- {meerschaum-2.9.1.dist-info → meerschaum-2.9.2.dist-info}/RECORD +17 -17
- {meerschaum-2.9.1.dist-info → meerschaum-2.9.2.dist-info}/WHEEL +1 -1
- {meerschaum-2.9.1.dist-info → meerschaum-2.9.2.dist-info}/entry_points.txt +0 -0
- {meerschaum-2.9.1.dist-info → meerschaum-2.9.2.dist-info/licenses}/LICENSE +0 -0
- {meerschaum-2.9.1.dist-info → meerschaum-2.9.2.dist-info/licenses}/NOTICE +0 -0
- {meerschaum-2.9.1.dist-info → meerschaum-2.9.2.dist-info}/top_level.txt +0 -0
- {meerschaum-2.9.1.dist-info → meerschaum-2.9.2.dist-info}/zip-safe +0 -0
@@ -10,6 +10,7 @@ import os
|
|
10
10
|
from copy import deepcopy
|
11
11
|
from itertools import chain
|
12
12
|
import shlex
|
13
|
+
import shutil
|
13
14
|
|
14
15
|
from meerschaum.utils.typing import Union, SuccessTuple, Any, Callable, Optional, List, Dict
|
15
16
|
from meerschaum.utils.packages import attempt_import
|
@@ -309,7 +310,7 @@ class Shell(cmd.Cmd):
|
|
309
310
|
try:
|
310
311
|
for c in hidden_commands:
|
311
312
|
self.hidden_commands.append(c)
|
312
|
-
except Exception
|
313
|
+
except Exception:
|
313
314
|
pass
|
314
315
|
|
315
316
|
### Finally, spawn the version update thread.
|
@@ -387,8 +388,9 @@ class Shell(cmd.Cmd):
|
|
387
388
|
username: Optional[str] = None,
|
388
389
|
executor_keys: Optional[str] = None,
|
389
390
|
):
|
390
|
-
from meerschaum.utils.formatting import ANSI, colored
|
391
|
+
from meerschaum.utils.formatting import ANSI, colored, UNICODE, get_console
|
391
392
|
from meerschaum._internal.entry import _shell, get_shell
|
393
|
+
from meerschaum.utils.misc import truncate_text_for_display, remove_ansi
|
392
394
|
|
393
395
|
cmd.__builtins__['input'] = input_with_sigint(
|
394
396
|
_old_input,
|
@@ -414,7 +416,6 @@ class Shell(cmd.Cmd):
|
|
414
416
|
|
415
417
|
if '{username}' in shell_attrs['_prompt']:
|
416
418
|
if username is None:
|
417
|
-
from meerschaum.utils.misc import remove_ansi
|
418
419
|
from meerschaum.connectors.parse import parse_instance_keys
|
419
420
|
from meerschaum.connectors.sql import SQLConnector
|
420
421
|
try:
|
@@ -422,15 +423,19 @@ class Shell(cmd.Cmd):
|
|
422
423
|
remove_ansi(shell_attrs['instance_keys']),
|
423
424
|
construct=False,
|
424
425
|
)
|
425
|
-
if 'username'
|
426
|
-
|
426
|
+
if conn_attrs and 'username' in conn_attrs:
|
427
|
+
username = conn_attrs.get('username', '(no username)')
|
428
|
+
elif conn_attrs and 'uri' in conn_attrs:
|
429
|
+
try:
|
427
430
|
username = SQLConnector.parse_uri(conn_attrs['uri'])['username']
|
431
|
+
except Exception:
|
432
|
+
username = '(no username)'
|
428
433
|
else:
|
429
|
-
username =
|
434
|
+
username = '(no username)'
|
430
435
|
except KeyError:
|
431
436
|
username = '(no username)'
|
432
|
-
except Exception
|
433
|
-
username =
|
437
|
+
except Exception:
|
438
|
+
username = None
|
434
439
|
if username is None:
|
435
440
|
username = '(no username)'
|
436
441
|
shell_attrs['username'] = (
|
@@ -463,12 +468,32 @@ class Shell(cmd.Cmd):
|
|
463
468
|
_c = colored(_c, **get_config('shell', 'ansi', 'prompt', 'rich'))
|
464
469
|
remainder_prompt[i] = _c
|
465
470
|
|
471
|
+
truncation_suffix = (
|
472
|
+
'…'
|
473
|
+
if UNICODE
|
474
|
+
else '...'
|
475
|
+
)
|
476
|
+
console = get_console()
|
477
|
+
truncation_kwargs = {
|
478
|
+
'suffix': truncation_suffix,
|
479
|
+
'max_length': int(console.size.width / 4),
|
480
|
+
}
|
481
|
+
|
466
482
|
self.prompt = ''.join(remainder_prompt).replace(
|
467
|
-
'{username}',
|
483
|
+
'{username}', truncate_text_for_display(
|
484
|
+
shell_attrs['username'],
|
485
|
+
**truncation_kwargs
|
486
|
+
)
|
468
487
|
).replace(
|
469
|
-
'{instance}',
|
488
|
+
'{instance}', truncate_text_for_display(
|
489
|
+
shell_attrs['instance'],
|
490
|
+
**truncation_kwargs
|
491
|
+
)
|
470
492
|
).replace(
|
471
|
-
'{executor_keys}',
|
493
|
+
'{executor_keys}', truncate_text_for_display(
|
494
|
+
shell_attrs['executor_keys'],
|
495
|
+
**truncation_kwargs
|
496
|
+
)
|
472
497
|
)
|
473
498
|
shell_attrs['prompt'] = self.prompt
|
474
499
|
### flush stdout
|
@@ -1018,15 +1043,14 @@ def input_with_sigint(_input, session, shell: Optional[Shell] = None):
|
|
1018
1043
|
"""
|
1019
1044
|
Replace built-in `input()` with prompt_toolkit.prompt.
|
1020
1045
|
"""
|
1021
|
-
from meerschaum.utils.formatting import CHARSET, ANSI, colored
|
1046
|
+
from meerschaum.utils.formatting import CHARSET, ANSI, colored, UNICODE
|
1022
1047
|
from meerschaum.connectors import is_connected, connectors
|
1023
|
-
from meerschaum.utils.misc import remove_ansi
|
1048
|
+
from meerschaum.utils.misc import remove_ansi, truncate_text_for_display
|
1024
1049
|
from meerschaum.config import get_config
|
1025
1050
|
import platform
|
1026
1051
|
if shell is None:
|
1027
1052
|
from meerschaum.actions import get_shell
|
1028
1053
|
shell = get_shell()
|
1029
|
-
|
1030
1054
|
style = prompt_toolkit_styles.Style.from_dict({
|
1031
1055
|
'bottom-toolbar': 'black',
|
1032
1056
|
})
|
@@ -1039,46 +1063,71 @@ def input_with_sigint(_input, session, shell: Optional[Shell] = None):
|
|
1039
1063
|
return shell_attrs['_old_bottom_toolbar']
|
1040
1064
|
size = os.get_terminal_size()
|
1041
1065
|
num_cols, num_lines = size.columns, size.lines
|
1042
|
-
|
1066
|
+
truncation_suffix = (
|
1067
|
+
'…'
|
1068
|
+
if UNICODE
|
1069
|
+
else '...'
|
1070
|
+
)
|
1071
|
+
truncation_kwargs = {
|
1072
|
+
'suffix': truncation_suffix,
|
1073
|
+
'max_length': int(num_cols / 4),
|
1074
|
+
}
|
1075
|
+
instance_text = truncate_text_for_display(
|
1076
|
+
remove_ansi(shell_attrs['instance_keys']),
|
1077
|
+
**truncation_kwargs
|
1078
|
+
)
|
1043
1079
|
instance_colored = (
|
1044
1080
|
colored(
|
1045
|
-
|
1081
|
+
instance_text,
|
1046
1082
|
'on ' + get_config('shell', 'ansi', 'instance', 'rich', 'style')
|
1047
1083
|
)
|
1048
1084
|
if ANSI
|
1049
|
-
else colored(
|
1085
|
+
else colored(instance_text, 'on white')
|
1086
|
+
)
|
1087
|
+
repo_text = truncate_text_for_display(
|
1088
|
+
remove_ansi(shell_attrs['repo_keys']),
|
1089
|
+
**truncation_kwargs
|
1050
1090
|
)
|
1051
1091
|
repo_colored = (
|
1052
1092
|
colored(
|
1053
|
-
|
1093
|
+
repo_text,
|
1054
1094
|
'on ' + get_config('shell', 'ansi', 'repo', 'rich', 'style')
|
1055
1095
|
)
|
1056
1096
|
if ANSI
|
1057
1097
|
else colored(shell_attrs['repo_keys'], 'on white')
|
1058
1098
|
)
|
1099
|
+
executor_text = truncate_text_for_display(
|
1100
|
+
remove_ansi(shell_attrs['executor_keys']),
|
1101
|
+
**truncation_kwargs
|
1102
|
+
)
|
1059
1103
|
executor_colored = (
|
1060
1104
|
colored(
|
1061
|
-
|
1105
|
+
executor_text,
|
1062
1106
|
'on ' + get_config('shell', 'ansi', 'executor', 'rich', 'style')
|
1063
1107
|
)
|
1064
1108
|
if ANSI
|
1065
|
-
else colored(
|
1109
|
+
else colored(executor_text, 'on white')
|
1066
1110
|
)
|
1067
1111
|
|
1068
1112
|
try:
|
1069
1113
|
typ, label = shell_attrs['instance_keys'].split(':', maxsplit=1)
|
1070
1114
|
connected = typ in connectors and label in connectors[typ]
|
1071
|
-
except Exception
|
1115
|
+
except Exception:
|
1072
1116
|
connected = False
|
1073
1117
|
last_connected = connected
|
1074
|
-
connected_str = (
|
1118
|
+
connected_str = truncate_text_for_display(
|
1119
|
+
('dis' if not connected else '') + 'connected',
|
1120
|
+
**truncation_kwargs
|
1121
|
+
)
|
1122
|
+
connected_icon = get_config(
|
1123
|
+
'formatting', connected_str, CHARSET, 'icon', warn=False,
|
1124
|
+
) or ''
|
1075
1125
|
connection_text = (
|
1076
|
-
|
1077
|
-
|
1078
|
-
|
1079
|
-
|
1080
|
-
|
1081
|
-
) + ' ') if ANSI else (colored(connected_str.capitalize(), 'on white') + ' ')
|
1126
|
+
connected_icon + ' ' + (
|
1127
|
+
colored(connected_str.capitalize(), 'on ' + (get_config(
|
1128
|
+
'formatting', connected_str, 'ansi', 'rich', 'style',
|
1129
|
+
warn=False,
|
1130
|
+
) or '') + ' ') if ANSI else (colored(connected_str.capitalize(), 'on white') + ' ')
|
1082
1131
|
)
|
1083
1132
|
)
|
1084
1133
|
|
@@ -1104,8 +1153,8 @@ def input_with_sigint(_input, session, shell: Optional[Shell] = None):
|
|
1104
1153
|
_args = []
|
1105
1154
|
for a in args:
|
1106
1155
|
try:
|
1107
|
-
_a = prompt_toolkit_formatted_text.ANSI(a)
|
1108
|
-
except Exception
|
1156
|
+
_a = prompt_toolkit_formatted_text.ANSI(a) if isinstance(a, str) else str(a)
|
1157
|
+
except Exception:
|
1109
1158
|
_a = a
|
1110
1159
|
_args.append(_a)
|
1111
1160
|
try:
|
@@ -7,13 +7,16 @@ Display pipes via a shareable URL.
|
|
7
7
|
|
8
8
|
from meerschaum.api import CHECK_UPDATE
|
9
9
|
from meerschaum.utils.packages import import_html, import_dcc
|
10
|
-
from meerschaum.api.dash.components import download_dataframe
|
10
|
+
from meerschaum.api.dash.components import download_dataframe, pages_navbar
|
11
11
|
|
12
12
|
html, dcc = import_html(check_update=CHECK_UPDATE), import_dcc(check_update=CHECK_UPDATE)
|
13
13
|
import dash_bootstrap_components as dbc
|
14
14
|
|
15
|
-
layout =
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
15
|
+
layout = [
|
16
|
+
pages_navbar,
|
17
|
+
dbc.Container([
|
18
|
+
dcc.Location('pipes-location'),
|
19
|
+
download_dataframe,
|
20
|
+
html.Div(id='pipe-output-div'),
|
21
|
+
])
|
22
|
+
]
|
@@ -55,6 +55,8 @@ window.addEventListener(
|
|
55
55
|
if (typeof lk === "string"){
|
56
56
|
quote_str = lk.includes(" ") ? "'" : "";
|
57
57
|
location_keys_str += " " + quote_str + lk + quote_str;
|
58
|
+
} else if (lk === null) {
|
59
|
+
location_keys_str += " None";
|
58
60
|
}
|
59
61
|
}
|
60
62
|
if (location_keys_str === " -l"){
|
meerschaum/config/_version.py
CHANGED
meerschaum/core/Pipe/_data.py
CHANGED
@@ -679,12 +679,15 @@ def get_chunk_bounds(
|
|
679
679
|
include_greater_than_end = not bounded and end is None
|
680
680
|
if begin is None:
|
681
681
|
begin = self.get_sync_time(newest=False, debug=debug)
|
682
|
+
consolidate_end_chunk = False
|
682
683
|
if end is None:
|
683
684
|
end = self.get_sync_time(newest=True, debug=debug)
|
684
685
|
if end is not None and hasattr(end, 'tzinfo'):
|
685
686
|
end += timedelta(minutes=1)
|
687
|
+
consolidate_end_chunk = True
|
686
688
|
elif are_dtypes_equal(str(type(end)), 'int'):
|
687
689
|
end += 1
|
690
|
+
consolidate_end_chunk = True
|
688
691
|
if begin is None and end is None:
|
689
692
|
return [(None, None)]
|
690
693
|
|
@@ -707,9 +710,15 @@ def get_chunk_bounds(
|
|
707
710
|
num_chunks += 1
|
708
711
|
if num_chunks >= max_chunks:
|
709
712
|
raise ValueError(
|
710
|
-
f"Too many chunks of size '{interval_str(chunk_interval)}'
|
713
|
+
f"Too many chunks of size '{interval_str(chunk_interval)}' "
|
714
|
+
f"between '{begin}' and '{end}'."
|
711
715
|
)
|
712
716
|
|
717
|
+
if num_chunks > 1 and consolidate_end_chunk:
|
718
|
+
last_bounds, second_last_bounds = chunk_bounds[-1], chunk_bounds[-2]
|
719
|
+
chunk_bounds = chunk_bounds[:-2]
|
720
|
+
chunk_bounds.append((second_last_bounds[0], last_bounds[1]))
|
721
|
+
|
713
722
|
### The chunk interval might be too large.
|
714
723
|
if not chunk_bounds and end >= begin:
|
715
724
|
chunk_bounds = [(begin, end)]
|
meerschaum/core/Pipe/_verify.py
CHANGED
@@ -282,6 +282,7 @@ def verify(
|
|
282
282
|
)
|
283
283
|
bounds_success_tuples[first_chunk_bounds] = (first_success, first_msg)
|
284
284
|
info(f"Completed first chunk for {self}:\n {first_label}\n")
|
285
|
+
chunk_bounds = chunk_bounds[1:]
|
285
286
|
|
286
287
|
pool = get_pool(workers=workers)
|
287
288
|
batches = self.get_chunk_bounds_batches(chunk_bounds, batchsize=batchsize, workers=workers)
|
@@ -542,7 +542,7 @@ def serialize_geometry(
|
|
542
542
|
geom: Any,
|
543
543
|
geometry_format: str = 'wkb_hex',
|
544
544
|
as_wkt: bool = False,
|
545
|
-
) -> Union[str, Dict[str, Any]]:
|
545
|
+
) -> Union[str, Dict[str, Any], None]:
|
546
546
|
"""
|
547
547
|
Serialize geometry data as a hex-encoded well-known-binary string.
|
548
548
|
|
@@ -560,6 +560,8 @@ def serialize_geometry(
|
|
560
560
|
-------
|
561
561
|
A string containing the geometry data.
|
562
562
|
"""
|
563
|
+
if value_is_null(geom):
|
564
|
+
return None
|
563
565
|
shapely = mrsm.attempt_import('shapely', lazy=False)
|
564
566
|
if geometry_format == 'geojson':
|
565
567
|
geojson_str = shapely.to_geojson(geom)
|
@@ -579,7 +581,7 @@ def deserialize_geometry(geom_wkb: Union[str, bytes]):
|
|
579
581
|
return shapely.wkb.loads(geom_wkb)
|
580
582
|
|
581
583
|
|
582
|
-
def deserialize_bytes_string(data: str
|
584
|
+
def deserialize_bytes_string(data: Optional[str], force_hex: bool = False) -> Union[bytes, None]:
|
583
585
|
"""
|
584
586
|
Given a serialized ASCII string of bytes data, return the original bytes.
|
585
587
|
The input data may either be base64- or hex-encoded.
|
meerschaum/utils/misc.py
CHANGED
@@ -1355,6 +1355,39 @@ def truncate_string_sections(item: str, delimeter: str = '_', max_len: int = 128
|
|
1355
1355
|
return delimeter.join([s for i, s in new_sections])
|
1356
1356
|
|
1357
1357
|
|
1358
|
+
def truncate_text_for_display(
|
1359
|
+
text: str,
|
1360
|
+
max_length: int = 50,
|
1361
|
+
suffix: str = '…',
|
1362
|
+
) -> str:
|
1363
|
+
"""
|
1364
|
+
Truncate a potentially long string for display purposes.
|
1365
|
+
|
1366
|
+
Parameters
|
1367
|
+
----------
|
1368
|
+
text: str
|
1369
|
+
The string to be truncated.
|
1370
|
+
|
1371
|
+
max_length: int, default 60
|
1372
|
+
The maximum length of `text` before truncation.
|
1373
|
+
|
1374
|
+
suffix: str, default '…'
|
1375
|
+
The string to append to the length of `text` to indicate truncation.
|
1376
|
+
|
1377
|
+
Returns
|
1378
|
+
-------
|
1379
|
+
A string of length `max_length` or less.
|
1380
|
+
"""
|
1381
|
+
text_length = len(text)
|
1382
|
+
if text_length <= max_length:
|
1383
|
+
return text
|
1384
|
+
|
1385
|
+
suffix_length = len(suffix)
|
1386
|
+
|
1387
|
+
truncated_text = text[:max_length - suffix_length]
|
1388
|
+
return truncated_text + suffix
|
1389
|
+
|
1390
|
+
|
1358
1391
|
def separate_negation_values(
|
1359
1392
|
vals: Union[List[str], Tuple[str]],
|
1360
1393
|
negation_prefix: Optional[str] = None,
|
meerschaum/utils/sql.py
CHANGED
@@ -975,12 +975,12 @@ def build_where(
|
|
975
975
|
negation_prefix = STATIC_CONFIG['system']['fetch_pipes_keys']['negation_prefix']
|
976
976
|
try:
|
977
977
|
params_json = json.dumps(params)
|
978
|
-
except Exception
|
978
|
+
except Exception:
|
979
979
|
params_json = str(params)
|
980
980
|
bad_words = ['drop ', '--', ';']
|
981
981
|
for word in bad_words:
|
982
982
|
if word in params_json.lower():
|
983
|
-
warn(
|
983
|
+
warn("Aborting build_where() due to possible SQL injection.")
|
984
984
|
return ''
|
985
985
|
|
986
986
|
query_flavor = getattr(connector, 'flavor', flavor) if connector is not None else flavor
|
@@ -2539,9 +2539,10 @@ def get_postgis_geo_columns_types(
|
|
2539
2539
|
debug: bool = False,
|
2540
2540
|
) -> Dict[str, str]:
|
2541
2541
|
"""
|
2542
|
-
Return
|
2542
|
+
Return a dictionary mapping PostGIS geometry column names to geometry types.
|
2543
2543
|
"""
|
2544
2544
|
from meerschaum.utils.dtypes import get_geometry_type_srid
|
2545
|
+
sqlalchemy = mrsm.attempt_import('sqlalchemy', lazy=False)
|
2545
2546
|
default_type, default_srid = get_geometry_type_srid()
|
2546
2547
|
default_type = default_type.upper()
|
2547
2548
|
|
@@ -2550,7 +2551,7 @@ def get_postgis_geo_columns_types(
|
|
2550
2551
|
schema = schema or 'public'
|
2551
2552
|
truncated_schema_name = truncate_item_name(schema, flavor='postgis')
|
2552
2553
|
truncated_table_name = truncate_item_name(table, flavor='postgis')
|
2553
|
-
query = (
|
2554
|
+
query = sqlalchemy.text(
|
2554
2555
|
"SELECT \"f_geometry_column\" AS \"column\", 'GEOMETRY' AS \"func\", \"type\", \"srid\"\n"
|
2555
2556
|
"FROM \"geometry_columns\"\n"
|
2556
2557
|
f"WHERE \"f_table_schema\" = '{truncated_schema_name}'\n"
|
@@ -2603,6 +2604,9 @@ def get_create_schema_if_not_exists_queries(
|
|
2603
2604
|
if flavor in NO_SCHEMA_FLAVORS:
|
2604
2605
|
return []
|
2605
2606
|
|
2607
|
+
if schema == DEFAULT_SCHEMA_FLAVORS.get(flavor, None):
|
2608
|
+
return []
|
2609
|
+
|
2606
2610
|
clean(schema)
|
2607
2611
|
|
2608
2612
|
if flavor == 'mssql':
|
@@ -1,6 +1,6 @@
|
|
1
|
-
Metadata-Version: 2.
|
1
|
+
Metadata-Version: 2.4
|
2
2
|
Name: meerschaum
|
3
|
-
Version: 2.9.
|
3
|
+
Version: 2.9.2
|
4
4
|
Summary: Sync Time-Series Pipes with Meerschaum
|
5
5
|
Home-page: https://meerschaum.io
|
6
6
|
Author: Bennett Meares
|
@@ -339,6 +339,7 @@ Dynamic: description
|
|
339
339
|
Dynamic: description-content-type
|
340
340
|
Dynamic: home-page
|
341
341
|
Dynamic: license
|
342
|
+
Dynamic: license-file
|
342
343
|
Dynamic: maintainer-email
|
343
344
|
Dynamic: project-url
|
344
345
|
Dynamic: provides-extra
|
@@ -7,7 +7,7 @@ meerschaum/_internal/arguments/_parse_arguments.py,sha256=TtHX7NvdHLD-nVVlMctc6S
|
|
7
7
|
meerschaum/_internal/arguments/_parser.py,sha256=9AfOJ4Kc37y2gLeRabU3cDwF4RRnW-3nGKfN2l0P3rQ,17163
|
8
8
|
meerschaum/_internal/docs/__init__.py,sha256=ZQYHWo6n0kfLLkyG36YXqTYvv2Pc7it5HZHMylT6cBA,126
|
9
9
|
meerschaum/_internal/docs/index.py,sha256=ZkqXj-GhoLEpgMysy4ugvOlFhWVlnq7tFvzMhy43jUQ,24670
|
10
|
-
meerschaum/_internal/shell/Shell.py,sha256=
|
10
|
+
meerschaum/_internal/shell/Shell.py,sha256=Iky6eXCbEsCCnvINbv7EA-DoglYzT3IjSl6BKMB8Mds,41571
|
11
11
|
meerschaum/_internal/shell/ShellCompleter.py,sha256=Ex6mPv83RUNdC3ufRJCcaoOmQ8q8z6tCHDVzXQmWIpY,3293
|
12
12
|
meerschaum/_internal/shell/ValidAutoSuggest.py,sha256=bARjOWMidz0dvMelLUe6yRPto5l3gcEHYHqFDjoh22I,1280
|
13
13
|
meerschaum/_internal/shell/__init__.py,sha256=vXQoQPEVlYiUYai1b5AwQAlTnja6A2cSABnqXhzlS7I,281
|
@@ -88,7 +88,7 @@ meerschaum/api/dash/pages/dashboard.py,sha256=d6zPEycsbiFJyvufN6kt5JsOZbpW9zy-mN
|
|
88
88
|
meerschaum/api/dash/pages/error.py,sha256=-uCrASuIBrceHcc-leLeEoLos2ibSBWG0XMFQzFwtbw,595
|
89
89
|
meerschaum/api/dash/pages/job.py,sha256=bAXXDB0fM3bSiqqJ2XlTwVdg2lohRaWdIGZp7ZtTZOw,544
|
90
90
|
meerschaum/api/dash/pages/login.py,sha256=Qjc-kDL9wW4D1cN48x0MrmWCME4igHDt0VkX9JSipjY,4603
|
91
|
-
meerschaum/api/dash/pages/pipes.py,sha256=
|
91
|
+
meerschaum/api/dash/pages/pipes.py,sha256=s4Ytfmf8kiPEYI5MCPhWtyY6l1nLFh_A_w8cgep8VP8,562
|
92
92
|
meerschaum/api/dash/pages/plugins.py,sha256=EX-M99bxvRSrI-9bIBocj-tmBpf6NgPQ813sJ_HSXS8,1731
|
93
93
|
meerschaum/api/dash/pages/register.py,sha256=dqhsiu2OhrXhs4RL41_CpqipdrWo1-_roASvZIDBAq8,2364
|
94
94
|
meerschaum/api/dash/pages/settings/__init__.py,sha256=UjfD2Pyz504CcbieVQbXbljjU5Wnxx7Pe0aix1zqBOE,153
|
@@ -118,7 +118,7 @@ meerschaum/api/resources/templates/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQe
|
|
118
118
|
meerschaum/api/resources/templates/index.html,sha256=Ck-S0U5abJgB-wTOKIGg0ispGzKlXXqvFUoNAAByzLA,1019
|
119
119
|
meerschaum/api/resources/templates/old_index.html,sha256=BDeOlcXhSsBH3-NaRtuX4Z1sDuhOoCMa_Dq-6g5RMpc,1711
|
120
120
|
meerschaum/api/resources/templates/secret.html,sha256=0QWkm4ZoN81Aw1pd2-62rGCvx3nXPHfFUoegj3Iy8Ls,141
|
121
|
-
meerschaum/api/resources/templates/termpage.html,sha256=
|
121
|
+
meerschaum/api/resources/templates/termpage.html,sha256=UKEUkBprNUPtL8m3gXOBfDU_ewOowi4phdP4GatoLvo,6244
|
122
122
|
meerschaum/api/routes/__init__.py,sha256=38k-iGm7LM30C1jfvkt7_tatRO3tfx-eOd8AnTgLkc0,611
|
123
123
|
meerschaum/api/routes/_actions.py,sha256=VUasS1dpr4d3TXHcR1CXlRZPAqvGKKuHv_f9PsOkQ5c,1732
|
124
124
|
meerschaum/api/routes/_connectors.py,sha256=E2Icawy42nBPM7peRlHBM9_v4vF0daWCf-_Ok14LbqI,1776
|
@@ -145,7 +145,7 @@ meerschaum/config/_preprocess.py,sha256=-AEA8m_--KivZwTQ1sWN6LTn5sio_fUr2XZ51BO6
|
|
145
145
|
meerschaum/config/_read_config.py,sha256=RLC3HHi_1ndj7ITVDKLD9_uULY3caGRwSz3ATYE-ixA,15014
|
146
146
|
meerschaum/config/_shell.py,sha256=46_m49Txc5q1rGfCgO49ca48BODx45DQJi8D0zz1R18,4245
|
147
147
|
meerschaum/config/_sync.py,sha256=jHcWRkxd82_BgX8Xo8agsWvf7BSbv3qHLWmYl6ehp_0,4242
|
148
|
-
meerschaum/config/_version.py,sha256=
|
148
|
+
meerschaum/config/_version.py,sha256=IsNhoHfdCmZpo3XxQo3K-ny9DYKuE8viAyCDbZGWxDs,71
|
149
149
|
meerschaum/config/paths.py,sha256=JjibeGN3YAdSNceRwsd42aNmeUrIgM6ndzC8qZAmNI0,621
|
150
150
|
meerschaum/config/resources/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
151
151
|
meerschaum/config/stack/__init__.py,sha256=2UukC0Lmk-aVL1o1qXzumqmuIrw3vu9fD7iCuz4XD4I,10544
|
@@ -198,7 +198,7 @@ meerschaum/core/Pipe/_attributes.py,sha256=wZQBGspZHmqmab_DNEUrvYsJSZtwaDsj0zeXD
|
|
198
198
|
meerschaum/core/Pipe/_bootstrap.py,sha256=gTNGh5e2LmTMrgIpHqrVaL60uPKWCphhsuz8j-lJ2HI,7348
|
199
199
|
meerschaum/core/Pipe/_clear.py,sha256=LghXabgyyc1tD7FNQrh9ExT71ipcg2poM9FDA3k9e4M,2230
|
200
200
|
meerschaum/core/Pipe/_copy.py,sha256=YDclAapf_spm9phpFr4-CALyYyw7nUsyKyiaLM1cnm4,2965
|
201
|
-
meerschaum/core/Pipe/_data.py,sha256=
|
201
|
+
meerschaum/core/Pipe/_data.py,sha256=x98glD6_1oxgnwCl7YvMERe1YHbjCZUmfp5iPPmHk7c,27165
|
202
202
|
meerschaum/core/Pipe/_deduplicate.py,sha256=Wsa1cJk41LgaHwIsJC9OZfPZ_3GoMP26_y8MmJdTrO8,10137
|
203
203
|
meerschaum/core/Pipe/_delete.py,sha256=1geNp9BgrocXP1gt76dMbnlJWKYFMuSNqPFA4K4-hXE,2118
|
204
204
|
meerschaum/core/Pipe/_drop.py,sha256=KDfJVz2aGjHUE1Jkmj7Ej4ICPR5xPiuhyhgRO7Lu9d4,3299
|
@@ -209,7 +209,7 @@ meerschaum/core/Pipe/_index.py,sha256=cYgaVwBVfAYxJBZ6j6MXDqOxnOrD_QnYi33_kIwy_F
|
|
209
209
|
meerschaum/core/Pipe/_register.py,sha256=Sd5xaAW8H7uLTIoommcKb-6kHPRuHJLWNSbPnt2UbvA,2240
|
210
210
|
meerschaum/core/Pipe/_show.py,sha256=nG50y8eBT9TVuKkRgAKtNDNIxysJvMNxfu__lkL1F9k,1352
|
211
211
|
meerschaum/core/Pipe/_sync.py,sha256=YsNlWepIPHVxfoBsYtPkdl5jMdTIEEd0kHtMllUyAoI,39968
|
212
|
-
meerschaum/core/Pipe/_verify.py,sha256=
|
212
|
+
meerschaum/core/Pipe/_verify.py,sha256=t9s1874malRdtQjdKAotnkSFwVSFJIPEpOwV8ByVa1s,22605
|
213
213
|
meerschaum/core/Plugin/__init__.py,sha256=UXg64EvJPgI1PCxkY_KM02-ZmBm4FZpLPIQR_uSJJDc,137
|
214
214
|
meerschaum/core/User/_User.py,sha256=qbI0GIkr3G0PI4d9S49uatbJQ2kH_-z5-GoVJ0fuEtA,6624
|
215
215
|
meerschaum/core/User/__init__.py,sha256=8WkDRSBmxsprnKE7GB6j1yXSfEz9RinRkSzW0bzVP1I,870
|
@@ -225,13 +225,13 @@ meerschaum/utils/_get_pipes.py,sha256=tu4xKPoDn79Dz2kWM13cXTP4DSCkn-3G9M8KiLftop
|
|
225
225
|
meerschaum/utils/dataframe.py,sha256=J7L2OWCuRI1Oxi-UMgQK9S_CiduuSopC7bmO1k-eQdM,54091
|
226
226
|
meerschaum/utils/debug.py,sha256=GyIzJmunkoPnOcZNYVQdT4Sgd-aOb5MI2VbIgATOjIQ,3695
|
227
227
|
meerschaum/utils/interactive.py,sha256=t-6jWozXSqL7lYGDHuwiOjTgr-UKhdcg61q_eR5mikI,3196
|
228
|
-
meerschaum/utils/misc.py,sha256=
|
228
|
+
meerschaum/utils/misc.py,sha256=dQ7WvcN7Z-LwkaipNeliqjdkKp_1U5JPq6lNLfwuE0U,48160
|
229
229
|
meerschaum/utils/networking.py,sha256=Sr_eYUGW8_UV9-k9LqRFf7xLtbUcsDucODyLCRsFRUc,1006
|
230
230
|
meerschaum/utils/pool.py,sha256=vkE42af4fjrTEJTxf6Ek3xGucm1MtEkpsSEiaVzNKHs,2655
|
231
231
|
meerschaum/utils/process.py,sha256=as0-CjG4mqFP0TydVvmAmgki6er4thS5BqUopeiq98Q,8216
|
232
232
|
meerschaum/utils/prompt.py,sha256=qj1As1tuiL0GZTku_YOC6I5DmOU6L5otDR7DW7LA5fM,19397
|
233
233
|
meerschaum/utils/schedule.py,sha256=Vrcd2Qs-UPVn6xBayNUIgludf0Mlb6Wrgq6ATdyhV8c,11451
|
234
|
-
meerschaum/utils/sql.py,sha256=
|
234
|
+
meerschaum/utils/sql.py,sha256=py9PtVyuC1NO2WTcpMiP_ZBkOofLnkGJ5NGrHBIVfBo,84584
|
235
235
|
meerschaum/utils/threading.py,sha256=awjbVL_QR6G-o_9Qk85utac9cSdqkiC8tQSdERCdrG8,2814
|
236
236
|
meerschaum/utils/typing.py,sha256=U3MC347sh1umpa3Xr1k71eADyDmk4LB6TnVCpq8dVzI,2830
|
237
237
|
meerschaum/utils/warnings.py,sha256=n-phr3BftNNgyPnvnXC_VMSjtCvjiCZ-ewmVfcROhkc,6611
|
@@ -242,7 +242,7 @@ meerschaum/utils/daemon/RotatingFile.py,sha256=8_bXegBjjzNRlNEjFZ_EHU4pSaDfjXZTw
|
|
242
242
|
meerschaum/utils/daemon/StdinFile.py,sha256=qdZ8E_RSOkURypwnS50mWeyWyRig1bAY9tKWMTVKajc,3307
|
243
243
|
meerschaum/utils/daemon/__init__.py,sha256=ziRPyu_IM3l7Xd58y3Uvt0fZLoirJ9nuboFIxxult6c,8741
|
244
244
|
meerschaum/utils/daemon/_names.py,sha256=d2ZwTxBoTAqXZkCfZ5LuX2XrkQmLNUq1OTlUqfoH5dA,4515
|
245
|
-
meerschaum/utils/dtypes/__init__.py,sha256=
|
245
|
+
meerschaum/utils/dtypes/__init__.py,sha256=NI09GgIcTxwXhGjaxqYFV0FmdrPpvrnjoKfX9gaHKf8,21348
|
246
246
|
meerschaum/utils/dtypes/sql.py,sha256=zhwGnz6MfsaJEH7Sibtd-GfVEImnBSkZh1I3srxgiKE,31428
|
247
247
|
meerschaum/utils/formatting/__init__.py,sha256=bA8qwBeTNIVHVQOBK682bJsKSKik1yS6xYJAoi0RErk,15528
|
248
248
|
meerschaum/utils/formatting/_jobs.py,sha256=izsqPJhTtUkXUUtWnbXtReYsUYwulXtci3pBj72Ne64,6637
|
@@ -254,11 +254,11 @@ meerschaum/utils/packages/_packages.py,sha256=G3eMtqq4WJo_iTC4ctRAWkzKhN6ZQcdFRp
|
|
254
254
|
meerschaum/utils/packages/lazy_loader.py,sha256=VHnph3VozH29R4JnSSBfwtA5WKZYZQFT_GeQSShCnuc,2540
|
255
255
|
meerschaum/utils/venv/_Venv.py,sha256=gc1TCeAj-kTZbQFAT9xl1bi4HXFV5ApT0dPOJfxwr78,3748
|
256
256
|
meerschaum/utils/venv/__init__.py,sha256=RhWuDohBEROIu_9T6BNPgYCrGtuE14w7nXHR1E2qyh8,27321
|
257
|
-
meerschaum-2.9.
|
258
|
-
meerschaum-2.9.
|
259
|
-
meerschaum-2.9.
|
260
|
-
meerschaum-2.9.
|
261
|
-
meerschaum-2.9.
|
262
|
-
meerschaum-2.9.
|
263
|
-
meerschaum-2.9.
|
264
|
-
meerschaum-2.9.
|
257
|
+
meerschaum-2.9.2.dist-info/licenses/LICENSE,sha256=jG2zQEdRNt88EgHUWPpXVWmOrOduUQRx7MnYV9YIPaw,11359
|
258
|
+
meerschaum-2.9.2.dist-info/licenses/NOTICE,sha256=OTA9Fcthjf5BRvWDDIcBC_xfLpeDV-RPZh3M-HQBRtQ,114
|
259
|
+
meerschaum-2.9.2.dist-info/METADATA,sha256=iIB9Mvn5MVfTZWCZDaMbjdcYLfxOxJuf1s8nNzKXTOk,25145
|
260
|
+
meerschaum-2.9.2.dist-info/WHEEL,sha256=1tXe9gY0PYatrMPMDd6jXqjfpz_B-Wqm32CPfRC58XU,91
|
261
|
+
meerschaum-2.9.2.dist-info/entry_points.txt,sha256=5YBVzibw-0rNA_1VjB16z5GABsOGf-CDhW4yqH8C7Gc,88
|
262
|
+
meerschaum-2.9.2.dist-info/top_level.txt,sha256=bNoSiDj0El6buocix-FRoAtJOeq1qOF5rRm2u9i7Q6A,11
|
263
|
+
meerschaum-2.9.2.dist-info/zip-safe,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
|
264
|
+
meerschaum-2.9.2.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|