meerschaum 2.1.6__py3-none-any.whl → 2.2.0.dev1__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.
Files changed (36) hide show
  1. meerschaum/_internal/arguments/_parser.py +3 -0
  2. meerschaum/_internal/entry.py +2 -1
  3. meerschaum/_internal/shell/Shell.py +1 -6
  4. meerschaum/actions/api.py +1 -1
  5. meerschaum/actions/install.py +7 -3
  6. meerschaum/actions/sync.py +7 -3
  7. meerschaum/api/dash/callbacks/dashboard.py +77 -8
  8. meerschaum/api/dash/callbacks/jobs.py +55 -3
  9. meerschaum/api/dash/jobs.py +34 -8
  10. meerschaum/api/dash/pipes.py +79 -11
  11. meerschaum/api/resources/static/js/xterm.js +1 -1
  12. meerschaum/config/_shell.py +0 -1
  13. meerschaum/config/_version.py +1 -1
  14. meerschaum/connectors/api/_plugins.py +2 -1
  15. meerschaum/connectors/sql/_create_engine.py +5 -5
  16. meerschaum/connectors/sql/_fetch.py +8 -11
  17. meerschaum/connectors/sql/_pipes.py +7 -1
  18. meerschaum/core/Pipe/_dtypes.py +2 -1
  19. meerschaum/core/Pipe/_sync.py +26 -13
  20. meerschaum/plugins/_Plugin.py +11 -2
  21. meerschaum/utils/daemon/Daemon.py +11 -3
  22. meerschaum/utils/dataframe.py +183 -8
  23. meerschaum/utils/dtypes/__init__.py +9 -5
  24. meerschaum/utils/formatting/_pipes.py +44 -10
  25. meerschaum/utils/misc.py +34 -2
  26. meerschaum/utils/packages/__init__.py +4 -3
  27. meerschaum/utils/packages/_packages.py +1 -1
  28. meerschaum/utils/typing.py +1 -1
  29. {meerschaum-2.1.6.dist-info → meerschaum-2.2.0.dev1.dist-info}/METADATA +5 -5
  30. {meerschaum-2.1.6.dist-info → meerschaum-2.2.0.dev1.dist-info}/RECORD +36 -36
  31. {meerschaum-2.1.6.dist-info → meerschaum-2.2.0.dev1.dist-info}/LICENSE +0 -0
  32. {meerschaum-2.1.6.dist-info → meerschaum-2.2.0.dev1.dist-info}/NOTICE +0 -0
  33. {meerschaum-2.1.6.dist-info → meerschaum-2.2.0.dev1.dist-info}/WHEEL +0 -0
  34. {meerschaum-2.1.6.dist-info → meerschaum-2.2.0.dev1.dist-info}/entry_points.txt +0 -0
  35. {meerschaum-2.1.6.dist-info → meerschaum-2.2.0.dev1.dist-info}/top_level.txt +0 -0
  36. {meerschaum-2.1.6.dist-info → meerschaum-2.2.0.dev1.dist-info}/zip-safe +0 -0
@@ -9,7 +9,7 @@ Formatting functions for printing pipes
9
9
  from __future__ import annotations
10
10
  import json
11
11
  import meerschaum as mrsm
12
- from meerschaum.utils.typing import PipesDict, Dict, Union, Optional, SuccessTuple, Any
12
+ from meerschaum.utils.typing import PipesDict, Dict, Union, Optional, SuccessTuple, Any, List
13
13
  from meerschaum.config import get_config
14
14
 
15
15
  def pprint_pipes(pipes: PipesDict) -> None:
@@ -481,22 +481,54 @@ def print_pipes_results(
481
481
  )
482
482
 
483
483
 
484
- def extract_stats_from_message(message: str) -> Dict[str, int]:
484
+ def extract_stats_from_message(
485
+ message: str,
486
+ stat_keys: Optional[List[str]] = None,
487
+ ) -> Dict[str, int]:
485
488
  """
486
- Given a sync message, return the insert, update stats from within.
489
+ Given a sync message, return the insert, update, upsert stats from within.
490
+
491
+ Parameters
492
+ ----------
493
+ message: str
494
+ The message to parse for statistics.
495
+
496
+ stat_keys: Optional[List[str]], default None
497
+ If provided, search for these words (case insensitive) in the message.
498
+ Defaults to `['inserted', 'updated', 'upserted']`.
499
+
500
+ Returns
501
+ -------
502
+ A dictionary mapping the stat keys to the total number of rows affected.
487
503
  """
488
- stats = {
489
- 'inserted': 0,
490
- 'updated': 0,
491
- 'upserted': 0,
504
+ stat_keys = stat_keys or ['inserted', 'updated', 'upserted']
505
+ lines_stats = [extract_stats_from_line(line, stat_keys) for line in message.split('\n')]
506
+ message_stats = {
507
+ stat_key: sum(stats.get(stat_key, 0) for stats in lines_stats)
508
+ for stat_key in stat_keys
492
509
  }
510
+ return message_stats
493
511
 
494
- for search_key in list(stats.keys()):
495
- if search_key not in message.lower():
512
+
513
+ def extract_stats_from_line(
514
+ line: str,
515
+ stat_keys: List[str],
516
+ ) -> Dict[str, int]:
517
+ """
518
+ Return the insert, update, upsert stats from a single line.
519
+ """
520
+ stats = {key: 0 for key in stat_keys}
521
+
522
+ for stat_key in stat_keys:
523
+ search_key = stat_key.lower()
524
+ if search_key not in line.lower():
496
525
  continue
497
526
 
498
527
  ### stat_text starts with the digits we want.
499
- stat_text = message.lower().split(search_key + ' ')[1]
528
+ try:
529
+ stat_text = line.lower().split(search_key + ' ')[1]
530
+ except IndexError:
531
+ continue
500
532
 
501
533
  ### find the first non-digit value.
502
534
  end_of_num_ix = -1
@@ -504,6 +536,8 @@ def extract_stats_from_message(message: str) -> Dict[str, int]:
504
536
  if not char.isdigit():
505
537
  end_of_num_ix = i
506
538
  break
539
+ if i == len(stat_text) - 1:
540
+ end_of_num_ix = i + 1
507
541
  if end_of_num_ix == -1:
508
542
  continue
509
543
 
meerschaum/utils/misc.py CHANGED
@@ -1234,7 +1234,7 @@ def truncate_string_sections(item: str, delimeter: str = '_', max_len: int = 128
1234
1234
 
1235
1235
 
1236
1236
  def separate_negation_values(
1237
- vals: List[str],
1237
+ vals: Union[List[str], Tuple[str]],
1238
1238
  negation_prefix: Optional[str] = None,
1239
1239
  ) -> Tuple[List[str], List[str]]:
1240
1240
  """
@@ -1243,7 +1243,7 @@ def separate_negation_values(
1243
1243
 
1244
1244
  Parameters
1245
1245
  ----------
1246
- vals: List[str]
1246
+ vals: Union[List[str], Tuple[str]]
1247
1247
  A list of strings to parse.
1248
1248
 
1249
1249
  negation_prefix: Optional[str], default None
@@ -1263,6 +1263,38 @@ def separate_negation_values(
1263
1263
  return _in_vals, _ex_vals
1264
1264
 
1265
1265
 
1266
+ def get_in_ex_params(params: Optional[Dict[str, Any]]) -> Dict[str, Tuple[List[Any], List[Any]]]:
1267
+ """
1268
+ Translate a params dictionary into lists of include- and exclude-values.
1269
+
1270
+ Parameters
1271
+ ----------
1272
+ params: Optional[Dict[str, Any]]
1273
+ A params query dictionary.
1274
+
1275
+ Returns
1276
+ -------
1277
+ A dictionary mapping keys to a tuple of lists for include and exclude values.
1278
+
1279
+ Examples
1280
+ --------
1281
+ >>> get_in_ex_params({'a': ['b', 'c', '_d', 'e', '_f']})
1282
+ {'a': (['b', 'c', 'e'], ['d', 'f'])}
1283
+ """
1284
+ if not params:
1285
+ return {}
1286
+ return {
1287
+ col: separate_negation_values(
1288
+ (
1289
+ val
1290
+ if isinstance(val, (list, tuple))
1291
+ else [val]
1292
+ )
1293
+ )
1294
+ for col, val in params.items()
1295
+ }
1296
+
1297
+
1266
1298
  def flatten_list(list_: List[Any]) -> List[Any]:
1267
1299
  """
1268
1300
  Recursively flatten a list.
@@ -350,6 +350,7 @@ def determine_version(
350
350
  with _locks['import_versions']:
351
351
  if venv not in import_versions:
352
352
  import_versions[venv] = {}
353
+ import importlib.metadata
353
354
  import re, os
354
355
  old_cwd = os.getcwd()
355
356
  if debug:
@@ -1379,13 +1380,13 @@ def get_modules_from_package(
1379
1380
  Returns
1380
1381
  -------
1381
1382
  Either list of modules or tuple of lists.
1382
-
1383
1383
  """
1384
1384
  from os.path import dirname, join, isfile, isdir, basename
1385
1385
  import glob
1386
1386
 
1387
1387
  pattern = '*' if recursive else '*.py'
1388
- module_names = glob.glob(join(dirname(package.__file__), pattern), recursive=recursive)
1388
+ package_path = dirname(package.__file__ or package.__path__[0])
1389
+ module_names = glob.glob(join(package_path, pattern), recursive=recursive)
1389
1390
  _all = [
1390
1391
  basename(f)[:-3] if isfile(f) else basename(f)
1391
1392
  for f in module_names
@@ -1410,7 +1411,7 @@ def get_modules_from_package(
1410
1411
  modules.append(m)
1411
1412
  except Exception as e:
1412
1413
  if debug:
1413
- dprint(e)
1414
+ dprint(str(e))
1414
1415
  finally:
1415
1416
  if modules_venvs:
1416
1417
  deactivate_venv(module_name.split('.')[-1], debug=debug)
@@ -56,7 +56,7 @@ packages: Dict[str, Dict[str, str]] = {
56
56
  },
57
57
  'drivers': {
58
58
  'cryptography' : 'cryptography>=38.0.1',
59
- 'psycopg2' : 'psycopg2-binary>=2.8.6',
59
+ 'psycopg' : 'psycopg[binary]>=3.1.18',
60
60
  'pymysql' : 'PyMySQL>=0.9.0',
61
61
  'aiomysql' : 'aiomysql>=0.0.21',
62
62
  'sqlalchemy_cockroachdb' : 'sqlalchemy-cockroachdb>=2.0.0',
@@ -86,7 +86,7 @@ PipesDict = Dict[
86
86
  ]
87
87
  ]
88
88
  ]
89
- WebState = Dict[str, str]
89
+ WebState = Dict[str, Union[str, Dict[str, str]]]
90
90
 
91
91
  def is_success_tuple(x: Any) -> bool:
92
92
  """
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: meerschaum
3
- Version: 2.1.6
3
+ Version: 2.2.0.dev1
4
4
  Summary: Sync Time-Series Pipes with Meerschaum
5
5
  Home-page: https://meerschaum.io
6
6
  Author: Bennett Meares
@@ -79,7 +79,7 @@ Requires-Dist: databases >=0.4.0 ; extra == 'api'
79
79
  Requires-Dist: aiosqlite >=0.16.0 ; extra == 'api'
80
80
  Requires-Dist: asyncpg >=0.21.0 ; extra == 'api'
81
81
  Requires-Dist: cryptography >=38.0.1 ; extra == 'api'
82
- Requires-Dist: psycopg2-binary >=2.8.6 ; extra == 'api'
82
+ Requires-Dist: psycopg[binary] >=3.1.18 ; extra == 'api'
83
83
  Requires-Dist: PyMySQL >=0.9.0 ; extra == 'api'
84
84
  Requires-Dist: aiomysql >=0.0.21 ; extra == 'api'
85
85
  Requires-Dist: sqlalchemy-cockroachdb >=2.0.0 ; extra == 'api'
@@ -161,7 +161,7 @@ Requires-Dist: mkdocs-redirects >=1.0.4 ; extra == 'docs'
161
161
  Requires-Dist: jinja2 ==3.0.3 ; extra == 'docs'
162
162
  Provides-Extra: drivers
163
163
  Requires-Dist: cryptography >=38.0.1 ; extra == 'drivers'
164
- Requires-Dist: psycopg2-binary >=2.8.6 ; extra == 'drivers'
164
+ Requires-Dist: psycopg[binary] >=3.1.18 ; extra == 'drivers'
165
165
  Requires-Dist: PyMySQL >=0.9.0 ; extra == 'drivers'
166
166
  Requires-Dist: aiomysql >=0.0.21 ; extra == 'drivers'
167
167
  Requires-Dist: sqlalchemy-cockroachdb >=2.0.0 ; extra == 'drivers'
@@ -214,7 +214,7 @@ Requires-Dist: dill >=0.3.3 ; extra == 'full'
214
214
  Requires-Dist: virtualenv >=20.1.0 ; extra == 'full'
215
215
  Requires-Dist: rocketry >=2.5.1 ; extra == 'full'
216
216
  Requires-Dist: cryptography >=38.0.1 ; extra == 'full'
217
- Requires-Dist: psycopg2-binary >=2.8.6 ; extra == 'full'
217
+ Requires-Dist: psycopg[binary] >=3.1.18 ; extra == 'full'
218
218
  Requires-Dist: PyMySQL >=0.9.0 ; extra == 'full'
219
219
  Requires-Dist: aiomysql >=0.0.21 ; extra == 'full'
220
220
  Requires-Dist: sqlalchemy-cockroachdb >=2.0.0 ; extra == 'full'
@@ -270,7 +270,7 @@ Requires-Dist: databases >=0.4.0 ; extra == 'sql'
270
270
  Requires-Dist: aiosqlite >=0.16.0 ; extra == 'sql'
271
271
  Requires-Dist: asyncpg >=0.21.0 ; extra == 'sql'
272
272
  Requires-Dist: cryptography >=38.0.1 ; extra == 'sql'
273
- Requires-Dist: psycopg2-binary >=2.8.6 ; extra == 'sql'
273
+ Requires-Dist: psycopg[binary] >=3.1.18 ; extra == 'sql'
274
274
  Requires-Dist: PyMySQL >=0.9.0 ; extra == 'sql'
275
275
  Requires-Dist: aiomysql >=0.0.21 ; extra == 'sql'
276
276
  Requires-Dist: sqlalchemy-cockroachdb >=2.0.0 ; extra == 'sql'
@@ -1,10 +1,10 @@
1
1
  meerschaum/__init__.py,sha256=mw_PhxT7155SW8d_S51T4-WTibL5g205CwMa3qX8qyA,1487
2
2
  meerschaum/__main__.py,sha256=8XGS2sJCtz6AMfBv5vm84mH1eS36h1sN1eL8SSmYtE4,2763
3
3
  meerschaum/_internal/__init__.py,sha256=ilC7utfKtin7GAvuN34fKyUQYfPyqH0Mm3MJF5iyEf4,169
4
- meerschaum/_internal/entry.py,sha256=_76FVDQGzZ_AU37XfC42ZVIDx4KHx4Xf5-lEQR2nmwg,4820
4
+ meerschaum/_internal/entry.py,sha256=c96Q4OsozbJevpqRkJG3Zf8PKcil5pMBZlw3FQ0t88o,4824
5
5
  meerschaum/_internal/arguments/__init__.py,sha256=HFciFQgo2ZOT19Mo6CpLhPYlpLYh2sNn1C9Lo7NMADc,519
6
6
  meerschaum/_internal/arguments/_parse_arguments.py,sha256=dNVDBvXYNgEw-TrlZJ9A6VPlG696EpQcQm6FOAhseqw,10249
7
- meerschaum/_internal/arguments/_parser.py,sha256=ljOmwghzEBv1Fawf_ZsY0L5SWsZF4E2W-Roc_WKMiqw,13597
7
+ meerschaum/_internal/arguments/_parser.py,sha256=OtcrZK-_qV9a5qpdcP9NLKOGRevjmCU9fBLbB88px3c,13719
8
8
  meerschaum/_internal/docs/__init__.py,sha256=ZQYHWo6n0kfLLkyG36YXqTYvv2Pc7it5HZHMylT6cBA,126
9
9
  meerschaum/_internal/docs/index.py,sha256=iWMe1rOVKvaP84q0tEzqwy-Dtgojg9cFmBntgPQBHu0,7076
10
10
  meerschaum/_internal/gui/__init__.py,sha256=KF6Opae0aBOjIndMZ2txoPs7ozCXRlR-lcTsicLO7fc,1313
@@ -12,7 +12,7 @@ meerschaum/_internal/gui/app/__init__.py,sha256=rKUa8hHk6Fai-PDF61tQcpT1myxKcfmv
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=34lDd4FVTyvj17L4WdcSWwN60VXu0NpiVzY45IGTWq4,33102
15
+ meerschaum/_internal/shell/Shell.py,sha256=zcgajt0FGH5ou0kqmOrYAvNfunOsn_CN6LHFYFXBBlI,32826
16
16
  meerschaum/_internal/shell/ShellCompleter.py,sha256=bbG-mExNXO4pltWBOXdbMp8P2wLgy8_BgipIr5aGp5s,3114
17
17
  meerschaum/_internal/shell/ValidAutoSuggest.py,sha256=bARjOWMidz0dvMelLUe6yRPto5l3gcEHYHqFDjoh22I,1280
18
18
  meerschaum/_internal/shell/__init__.py,sha256=vXQoQPEVlYiUYai1b5AwQAlTnja6A2cSABnqXhzlS7I,281
@@ -21,7 +21,7 @@ meerschaum/_internal/term/TermPageHandler.py,sha256=Rt5S47Pr_3HLJc8xIXpZUczYE_Dw
21
21
  meerschaum/_internal/term/__init__.py,sha256=xIwEWXyq1qaU7Rx-AryTtANJPdm__fy3XSMzxaFn0wU,1594
22
22
  meerschaum/_internal/term/tools.py,sha256=bpYexJBDCQXfzz6ESMvmpSHM1AIy4qWsrAHl95tSW2I,716
23
23
  meerschaum/actions/__init__.py,sha256=7CNoKEqkqqafqMcChspJX9cR9OdgEWk9ggj0000Jl98,11360
24
- meerschaum/actions/api.py,sha256=StCJN-gCLNTDJhGxgux_9aMdeSFDTl-Yzsx4o9imw_I,12757
24
+ meerschaum/actions/api.py,sha256=mWhv4bn3Ap17_Gqf2Cx9bAsHKG-Zhy072pBbNzHLEJc,12756
25
25
  meerschaum/actions/bootstrap.py,sha256=JnIyJ4odw6cA4e0Cw7J8THkLavMcj68nRyGsQDAT8nc,13396
26
26
  meerschaum/actions/clear.py,sha256=OoFZE0bK5m8s3GLNZcixuVT0DMj1izXVxGCATcmUGbI,4851
27
27
  meerschaum/actions/copy.py,sha256=8g3ANXfVdvuyaoXcZjgTg3BxHTOhHGrzVDOOsTBrpSU,6213
@@ -29,7 +29,7 @@ meerschaum/actions/deduplicate.py,sha256=puYyxeFYEUy1Sd2IOcZB2e6MrNxAZl2bTLmNzFD
29
29
  meerschaum/actions/delete.py,sha256=Nf1c47i_qZcWVpVe_se3qG5LhhYpXzvDPCqFBy_ER8U,15528
30
30
  meerschaum/actions/drop.py,sha256=Hd5h4rrWd7qL2rTqglsTonUsEoH7qQlsfqNFSHGeqr0,2453
31
31
  meerschaum/actions/edit.py,sha256=dHfqVtc1v6UUT_GEhWQkgoUf1nMbX_LLOETLGR5cCXQ,9487
32
- meerschaum/actions/install.py,sha256=RgSJuWRNyYdBd6hN86N09Lsi_uTMdt8PNih4HWOcxa0,7372
32
+ meerschaum/actions/install.py,sha256=akzzgsvy5yqUFuUqzSMG4eBKARY2iSnL3n_BiaNcM58,7431
33
33
  meerschaum/actions/login.py,sha256=fNgsgkrFCn9wBQJY50SQhz2PwsN_TvEYYHnXK3JG4ig,4206
34
34
  meerschaum/actions/os.py,sha256=dtoppoBhLzW3rLNF0SFovEfNxA4WJWt_9WrOGlS5KbA,2251
35
35
  meerschaum/actions/pause.py,sha256=kDK0UMm90TuohFEG5Gugl3PEbuqGua-ghidqvgYShoc,3909
@@ -43,7 +43,7 @@ meerschaum/actions/sql.py,sha256=wYofwk1vGO96U2ncigGEfMtYMZeprz2FR1PRRZhkAPI,431
43
43
  meerschaum/actions/stack.py,sha256=WMRMebyYwZGNlbnj6Ja09qvCSDNteFJOTa8_joHlnVo,5886
44
44
  meerschaum/actions/start.py,sha256=mNFWqxc_o9moavvDQWE4YoZF6b-SW2nKyw5MtwIj-90,18384
45
45
  meerschaum/actions/stop.py,sha256=KTBadAmJ6SbReqlltkwfqZW6EryB4kZXupl0ZyInI0Q,4311
46
- meerschaum/actions/sync.py,sha256=Pzj0p53Aa4ZjP3SnlUyB6OeNvVUoJ0iCfWffMIIsd0k,17266
46
+ meerschaum/actions/sync.py,sha256=10uPREu3HBVgtzakVxhCegQOz_mistABJlsNNCMgywY,17518
47
47
  meerschaum/actions/tag.py,sha256=SJf5qFW0ccLXjqlTdkK_0MCcrCMdg6xhYrhKdco0hdA,3053
48
48
  meerschaum/actions/uninstall.py,sha256=2fUd5ZK45VGGCI8V4NLmSnavdKjOv7cGM22x2WlTStw,6068
49
49
  meerschaum/actions/upgrade.py,sha256=VQKyjCGioEF2FYbQmldHh21imDqApNl0xal0rhxzrJk,6302
@@ -58,9 +58,9 @@ meerschaum/api/dash/actions.py,sha256=eUClPPdNVNSCtyq8Ecr1saasxj5VBgd1gcXejvQxXE
58
58
  meerschaum/api/dash/components.py,sha256=hdcxQahw9lHDBlZlztj-IKX4GueZRTVKfjGC6fFcj_8,6364
59
59
  meerschaum/api/dash/connectors.py,sha256=nJxBOFldtCMJLYjUSVYZwX5BO-LNjTNHgoEaXe-0XMo,843
60
60
  meerschaum/api/dash/graphs.py,sha256=wJUDWzcLN8-C3xko6rj0F2v7Rt8YDkSXoVkkXJjYGIk,2046
61
- meerschaum/api/dash/jobs.py,sha256=LO6l7Als_euZOInqDcIG7WQm9tWrh72dUTR86VtKmxQ,6672
61
+ meerschaum/api/dash/jobs.py,sha256=htqnrtAGCOgn2-THezMGYM8n1E-M-sM5A5qNmOGfHzg,7529
62
62
  meerschaum/api/dash/keys.py,sha256=anGVwK5pVR5alVQS0oStl7iq9c6klsocENfSjCRdGyQ,12591
63
- meerschaum/api/dash/pipes.py,sha256=EWG0WNjvYwXRS7IwBvqKpBtLJ-qaOsDxyVRCyv4SJYU,14866
63
+ meerschaum/api/dash/pipes.py,sha256=QFznPYi5drleN03sWNnf6i2jJ_j_eLviRFplqR7fZ2M,17599
64
64
  meerschaum/api/dash/plugins.py,sha256=Ib9z9jFC3pSGSuqjeuSlswhHnLcBrVf30B8VFdYyV-s,3115
65
65
  meerschaum/api/dash/sync.py,sha256=9lt7IRdG-fe9gf_ZO_viPiGlerX7ic6r_VFocv3I51A,504
66
66
  meerschaum/api/dash/users.py,sha256=xfKwezl_yM4-gmCFSk4VRXR8teIEouw03c6oGVhOzns,2362
@@ -73,8 +73,8 @@ meerschaum/api/dash/assets/favicon.ico,sha256=nDEekVxwS60wEDno1nbw5GF3TJOcDV26SE
73
73
  meerschaum/api/dash/assets/logo_48x48.png,sha256=hTR5BHUHEN4yP2xiqAcDciuigoII9T3-80R-dzsxVmw,10218
74
74
  meerschaum/api/dash/assets/logo_500x500.png,sha256=9EUtf6wQcEZTXHKfQ2kjNXod6Rn_4DTB_BkTgxggq00,67702
75
75
  meerschaum/api/dash/callbacks/__init__.py,sha256=tAcK0ZX5qAN9mD5f7AYv0IBsGI6vI5r6wswPXfGgJfM,325
76
- meerschaum/api/dash/callbacks/dashboard.py,sha256=Fje0ToUiC3HKHzDMJ_FGE3fh3dLYPj2YCdJQXbxnGpc,30454
77
- meerschaum/api/dash/callbacks/jobs.py,sha256=Vpgfi-JZMNcHwAHod4-_goA6UGgSoS5MNsvbf22hKIs,6233
76
+ meerschaum/api/dash/callbacks/dashboard.py,sha256=DCXs_98JBXPgNCEkZLPaUCNnZrT4P9HK2d-YsBTw8BM,32206
77
+ meerschaum/api/dash/callbacks/jobs.py,sha256=OEYxJRlmnxqbsvHb5jBJJCsRvVCsMNusm9AClCT9Pm0,7689
78
78
  meerschaum/api/dash/callbacks/login.py,sha256=dfl0EOkEUcF7a-u8fq0WGNtwV63714ds30yWfOM2rqE,2613
79
79
  meerschaum/api/dash/callbacks/plugins.py,sha256=7CrwwbBI2N3DR4Yb1bKmrtJ3cAQ3dVv1l6E_AtZ6Wng,2777
80
80
  meerschaum/api/dash/callbacks/register.py,sha256=9AgTcl--TPt6oETKzirQCkH9Azlm3XrU9U6XJM2b8Lk,3600
@@ -103,7 +103,7 @@ meerschaum/api/resources/static/js/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQe
103
103
  meerschaum/api/resources/static/js/action_button.js,sha256=A0tH6W5lXR1dcGKtNk_pTNSKFVH-HGX2eMR-IOgGLeM,540
104
104
  meerschaum/api/resources/static/js/main.js,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
105
105
  meerschaum/api/resources/static/js/terminado.js,sha256=xAinWhBfMwP5tBIrFNzln7R9UQ46nxKeGfApLx_Yt7I,1729
106
- meerschaum/api/resources/static/js/xterm.js,sha256=FWpXPygjJnyJILdvCviaaeT1qGhCG-XFWG1laTINzvs,282870
106
+ meerschaum/api/resources/static/js/xterm.js,sha256=H5kaw7Syg-v5bmCuI6AKUnZd06Lkb6b92p8aqwMvdJU,289441
107
107
  meerschaum/api/resources/static/png/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
108
108
  meerschaum/api/resources/templates/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
109
109
  meerschaum/api/resources/templates/index.html,sha256=Ck-S0U5abJgB-wTOKIGg0ispGzKlXXqvFUoNAAByzLA,1019
@@ -132,9 +132,9 @@ meerschaum/config/_patch.py,sha256=21N30q1ANmWMDQ-2RUjpMx7KafWfPQ3lKx9rrMqg1s4,1
132
132
  meerschaum/config/_paths.py,sha256=ORzpEpYE5OM06H6Hw_nh51R8fkk45MyGPI7mDd1QzqI,7983
133
133
  meerschaum/config/_preprocess.py,sha256=-AEA8m_--KivZwTQ1sWN6LTn5sio_fUr2XZ51BO6wLs,1220
134
134
  meerschaum/config/_read_config.py,sha256=WFZKIXZMDe_ca0ES7ivgM_mnwShvFxLdoeisT_X5-h0,14720
135
- meerschaum/config/_shell.py,sha256=k6PH0BEr2imhgURLYlR5p6s5gXfYpWoyZSV29U-SsXk,3589
135
+ meerschaum/config/_shell.py,sha256=s74cmJl8NrhM_Y1cB_P41_JDUYXV0g4WXnKFZWMtnrY,3551
136
136
  meerschaum/config/_sync.py,sha256=Q-sz5YcjL3CJS2Dyw4rVRQsz9th9GWa9o5F9D0Jrmn8,4120
137
- meerschaum/config/_version.py,sha256=4oiHJ97xK6U_82-kd6gX-Wu6OlnPt6kBWdvU0LDvhtc,71
137
+ meerschaum/config/_version.py,sha256=PkQljZNVFa8BNyCTXpUW8xtjTZNJ6ru--pVX3diqFcU,76
138
138
  meerschaum/config/resources/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
139
139
  meerschaum/config/stack/__init__.py,sha256=4a_up1oxkitwgIylWWk0vA4XkGhEpWazUaENOPEdYQI,9034
140
140
  meerschaum/config/stack/grafana/__init__.py,sha256=wzuoch_AK49lcn7lH2qTSJ_PPbSagF4lcweeipz_XiE,2010
@@ -153,7 +153,7 @@ meerschaum/connectors/api/_fetch.py,sha256=Khq9AFr1nk8Dsmcedb77aWhAuHw0JGgVeahDG
153
153
  meerschaum/connectors/api/_login.py,sha256=5GsD-B214vr5EYfM3XrTUs1sTFApxZA-9dNxq8oNSyg,2050
154
154
  meerschaum/connectors/api/_misc.py,sha256=SIAiob8LjlCsvodKbAhYdrk_7HAKAv-lWkCHBoj30qI,1093
155
155
  meerschaum/connectors/api/_pipes.py,sha256=wf-_jqFBiTNw2s2msp0Ye6IyTl5JWiyC9aLBI0PQuPs,20962
156
- meerschaum/connectors/api/_plugins.py,sha256=0qGXF_dFFHoetxM4aP9FHzyUVx7SWgvYgbCoFk7gQgk,5163
156
+ meerschaum/connectors/api/_plugins.py,sha256=z04tPjfZZWwa7T60mogZH3X3wDmeLdnoN5Oh8m_YsU8,5217
157
157
  meerschaum/connectors/api/_request.py,sha256=mU9Spw8AeNWpG_cemZdkljElbqacuChCMqmmuSpq4EU,6922
158
158
  meerschaum/connectors/api/_uri.py,sha256=h4Gj63f0q2V-TNMd8aAkQZMIj_-pA6uGacg_RNEJILI,1489
159
159
  meerschaum/connectors/api/_users.py,sha256=kzb7ENgXwQ19OJYKOuuWzx2rwVuUZCly9dTnyvVuT2Q,5275
@@ -162,10 +162,10 @@ meerschaum/connectors/plugin/__init__.py,sha256=pwF7TGY4WNz2_HaVdmK4rPQ9ZwTOEuPH
162
162
  meerschaum/connectors/sql/SQLConnector.py,sha256=dPMgJXLghzBmqHaT9qxvn8pzerQLpzkUPRx42W6mJIU,11522
163
163
  meerschaum/connectors/sql/__init__.py,sha256=xwSYhYuketTXhQLXyD9pZ0NNBPboW5Oqv9zrKfjx0Ic,175
164
164
  meerschaum/connectors/sql/_cli.py,sha256=XaWjWZzGIfhMiYoXAs2FrwHUGNyZpxIzH4g4xugLKsw,4123
165
- meerschaum/connectors/sql/_create_engine.py,sha256=PrHS5xCvqBMdCl0-AsoEw_9Dt2WrH3Wim5qKeTiLyp4,10382
166
- meerschaum/connectors/sql/_fetch.py,sha256=BLcZBGeE8JV6utnCgvq1TX_y6dTjX5KAvB4xm4YKxiQ,13210
165
+ meerschaum/connectors/sql/_create_engine.py,sha256=b1ICKl3ZnPX5R2vqbKcClsCnHih9SghF6ghpy19FEpQ,10375
166
+ meerschaum/connectors/sql/_fetch.py,sha256=NYYWDoEd-aGIS337KwH-D9_3KVWVCZOHAspGLfdEuUE,13086
167
167
  meerschaum/connectors/sql/_instance.py,sha256=jAGq_qjz2WyBrjtnI7FyGRLOs2l3o630vonPM5Pp4Mg,6447
168
- meerschaum/connectors/sql/_pipes.py,sha256=5XsaEfFRqMejwvRBRaWrAX2laplJMDRxA82-DqiKSGc,100773
168
+ meerschaum/connectors/sql/_pipes.py,sha256=4v1-2AwW8QqOTRjNUEoDJJH8KsJa6FxMNSekEDWJu6o,100925
169
169
  meerschaum/connectors/sql/_plugins.py,sha256=hS0cuJQxwd6jUfY136AQ33dGQw_MigP_OFC84KdSMhA,8323
170
170
  meerschaum/connectors/sql/_sql.py,sha256=jNdIcwQC2ZMNKT9W6ugavQPtimUpoTr8cBt05z_vHIo,34262
171
171
  meerschaum/connectors/sql/_uri.py,sha256=0BrhQtqQdzg9mR04gWBZINs_BbPFtSlTECXT_TCUwik,3460
@@ -182,24 +182,24 @@ meerschaum/core/Pipe/_data.py,sha256=uafKY7GGD5uGQ__-YcKlWOnRatAp1ExSbvz06LWPTsA
182
182
  meerschaum/core/Pipe/_deduplicate.py,sha256=hXeNhz8p6Zgz2Y-A2W5AZPkVFUgsLqNvTQKKL0JHJ0A,10267
183
183
  meerschaum/core/Pipe/_delete.py,sha256=1geNp9BgrocXP1gt76dMbnlJWKYFMuSNqPFA4K4-hXE,2118
184
184
  meerschaum/core/Pipe/_drop.py,sha256=uf3MvMkCw9tVfJ2fuo8LqZ4vvMNa3xC3YoFGEuc-hH8,1052
185
- meerschaum/core/Pipe/_dtypes.py,sha256=RIJ5KwPWawV1zIwmsLz3lF33NZ-6zICf7XPscmaigB8,3641
185
+ meerschaum/core/Pipe/_dtypes.py,sha256=NcfVMJPyyA1VzIJOnPhyL36YTt2IXMRqQy4ZRDySSqg,3694
186
186
  meerschaum/core/Pipe/_edit.py,sha256=ZH2A0ZOpZKsVDnQxKzmXspNQKTEFUhkkZDjwOkmWtaY,8471
187
187
  meerschaum/core/Pipe/_fetch.py,sha256=zV3DzD7kfx08O6zda0I-9cX91m0Z_wO_on1ozHaqWnk,5234
188
188
  meerschaum/core/Pipe/_register.py,sha256=Sd5xaAW8H7uLTIoommcKb-6kHPRuHJLWNSbPnt2UbvA,2240
189
189
  meerschaum/core/Pipe/_show.py,sha256=nG50y8eBT9TVuKkRgAKtNDNIxysJvMNxfu__lkL1F9k,1352
190
- meerschaum/core/Pipe/_sync.py,sha256=761pNmLrH9wuemE2ZNqa1GtX-ZJeZ18aIEUQevB1Tvo,27330
190
+ meerschaum/core/Pipe/_sync.py,sha256=48qk1xvkcKOqfzzYf3QdA7ojsP80yrso1YU8QIGJxwE,28038
191
191
  meerschaum/core/Pipe/_verify.py,sha256=KSnthUzImRLjt9fxyBaLvArqDuOLRpKBfk0tnseJClc,14262
192
192
  meerschaum/core/Plugin/__init__.py,sha256=UXg64EvJPgI1PCxkY_KM02-ZmBm4FZpLPIQR_uSJJDc,137
193
193
  meerschaum/core/User/_User.py,sha256=waVdpH4SFZSXNYBgX5KFQ8csbCSxRLI5T2efAzVONks,2448
194
194
  meerschaum/core/User/__init__.py,sha256=EiL0rYdtNeu2HqXFLurJcyomjyw3UTFdAR8rgb_vlbU,161
195
- meerschaum/plugins/_Plugin.py,sha256=f0RDPazwzYSTZmD21rxwF48abUeVyFWKggBC9cWR7sw,33706
195
+ meerschaum/plugins/_Plugin.py,sha256=NzMdJAU8qOZ6wj9T8lbkmGQw_MOtdHs8roGhCaCK1io,34013
196
196
  meerschaum/plugins/__init__.py,sha256=pVRgbBk1UMlqLrM5p1s7_x_mN70epdDBZOa4vrt6C6w,20760
197
197
  meerschaum/utils/__init__.py,sha256=QrK1K9hIbPCRCM5k2nZGFqGnrqhA0Eh-iSmCU7FG6Cs,612
198
198
  meerschaum/utils/_get_pipes.py,sha256=dlPckpYYyM0IwRZ2VL0u9DiEeYhr5Ho9gkzvWxzNVwI,11460
199
- meerschaum/utils/dataframe.py,sha256=wqSmyD_UAnGJYWVYF9obD1T_zW0ioFE4tmbVwe4Okps,26479
199
+ meerschaum/utils/dataframe.py,sha256=vxZ72ME7IWuadtktgjFZF5bc9fXW_0TuynjFlJljlLU,31955
200
200
  meerschaum/utils/debug.py,sha256=ry9UWf0ECelVIuBApwmKxPZ_IoL6UqjTSMpGNbjghVQ,3690
201
201
  meerschaum/utils/interactive.py,sha256=t-6jWozXSqL7lYGDHuwiOjTgr-UKhdcg61q_eR5mikI,3196
202
- meerschaum/utils/misc.py,sha256=aEohLCpf6u-eW1YWWFJed3077F7HJni1kXzeaeo3USg,42457
202
+ meerschaum/utils/misc.py,sha256=H26hLtCP8QHwXoHlvkxjWu6cPTwudDbbsbRkGw6ultg,43296
203
203
  meerschaum/utils/networking.py,sha256=Sr_eYUGW8_UV9-k9LqRFf7xLtbUcsDucODyLCRsFRUc,1006
204
204
  meerschaum/utils/pool.py,sha256=vkE42af4fjrTEJTxf6Ek3xGucm1MtEkpsSEiaVzNKHs,2655
205
205
  meerschaum/utils/process.py,sha256=tbEutHAg_Kn5UetOI-fduRjsafGOYX5tkLvpzqosgvc,7098
@@ -207,30 +207,30 @@ meerschaum/utils/prompt.py,sha256=0mBFbgi_l9rCou9UnC_6qKTHkqyl1Z_jSRzfmc0xRXM,16
207
207
  meerschaum/utils/schedule.py,sha256=lYra4f7QpGlmV4vAhO1UvA5TWQSPdLqw7eG7ekKZtwg,1951
208
208
  meerschaum/utils/sql.py,sha256=4sCNEpgUd6uFz6ySs4nnUMVaOT0YAvPM1ZlQYJTSF-0,46656
209
209
  meerschaum/utils/threading.py,sha256=fAXk7-FnbFvdU1FQ4vHKk5NeGbbTpTw7y9dRnlVayNI,2472
210
- meerschaum/utils/typing.py,sha256=-g_LN1HzBdYZml7iZNSoB4EbpV27D0S0pM_PhuDSuzI,2784
210
+ meerschaum/utils/typing.py,sha256=L05wOXfWdn_nJ0KnZVr-2zdMYcqjdyOW_7InT3xe6-s,2807
211
211
  meerschaum/utils/warnings.py,sha256=0b5O2DBbhEAGnu6RAB1hlHSVmwL_hcR3EiMkExXmBJ0,6535
212
212
  meerschaum/utils/yaml.py,sha256=vbCrFjdapKsZ9wRRaI9Ih8dVUwZ-KHpSzfGhRcpDBgQ,3162
213
- meerschaum/utils/daemon/Daemon.py,sha256=_dxHUM4SEIvTin_k0xMIFjdXTDj97ZE1Do4A_AXcAHA,31961
213
+ meerschaum/utils/daemon/Daemon.py,sha256=vphcP9KzvJmnqjk9rHazxl6qO2YWzjyYLPdaVyyMlww,32192
214
214
  meerschaum/utils/daemon/RotatingFile.py,sha256=fNjLWENoTxbIOj9vTQcnHg2uC78ZKtel5L_snwnSbrI,19362
215
215
  meerschaum/utils/daemon/__init__.py,sha256=7LZeLuakprirfQ_XjnMoOp5Z96cy83vs75oBJiXU19Q,8174
216
216
  meerschaum/utils/daemon/_names.py,sha256=Prf7xA2GWDbKR_9Xq9_5RTTIf9GNWY3Yt0s4tEU3JgM,4330
217
- meerschaum/utils/dtypes/__init__.py,sha256=5GJUHZSJBc0lrynmvc2vgKAN2ybYlCs-YEi0rFHM0Jo,6110
217
+ meerschaum/utils/dtypes/__init__.py,sha256=JR9PViJTzhukZhq0QoPIs73HOnXZZr8OmfhAAD4OAUA,6261
218
218
  meerschaum/utils/dtypes/sql.py,sha256=IkEOyB63je-rCLHM6WwFzGbCerYk1zobL1cXkWqmTa4,14638
219
219
  meerschaum/utils/formatting/__init__.py,sha256=Dn-8EUTjz0s11bFaAr1HjqlM8IogCTxlpulwp_Kn4ok,13778
220
220
  meerschaum/utils/formatting/_jobs.py,sha256=s1lVcdMkzNj5Bqw-GsUhcguUFtahi5nQ-kg1fbp0Idw,3294
221
- meerschaum/utils/formatting/_pipes.py,sha256=vixqKIUYNC7yDtU-MoeSXnHug9IGkK1N2yqujxvJ-i0,18414
221
+ meerschaum/utils/formatting/_pipes.py,sha256=wy0iWJFsFl3X2VloaiA_gp9Yx9w6tD3FQZvAQAqef4A,19492
222
222
  meerschaum/utils/formatting/_pprint.py,sha256=tgrT3FyGyu5CWJYysqK3kX1xdZYorlbOk9fcU_vt9Qg,3096
223
223
  meerschaum/utils/formatting/_shell.py,sha256=ox75O7VHDAiwzSvdMSJZhXLadvAqYJVeihU6WeZ2Ogc,3677
224
- meerschaum/utils/packages/__init__.py,sha256=sUUtdkTNCXzMl21_8BN-fxuplVUuSx4gaKjXpC3XX6A,56445
225
- meerschaum/utils/packages/_packages.py,sha256=gEWZHxFbYV6FZfM2uV1JOzS4eBl5OVoBZftMkLsU-4g,7967
224
+ meerschaum/utils/packages/__init__.py,sha256=yyf-3rAyRy5XaQkNFHjOC85VIkZt0o00o7rG3ykG7XU,56534
225
+ meerschaum/utils/packages/_packages.py,sha256=ygRG1sBps2C0_7lfwMRnD84S4cPt4KiNAGXYduiyfoI,7968
226
226
  meerschaum/utils/packages/lazy_loader.py,sha256=VHnph3VozH29R4JnSSBfwtA5WKZYZQFT_GeQSShCnuc,2540
227
227
  meerschaum/utils/venv/_Venv.py,sha256=sBnlmxHdAh2bx8btfVoD79-H9-cYsv5lP02IIXkyECs,3553
228
228
  meerschaum/utils/venv/__init__.py,sha256=sj-n8scWH2NPDJGAxfpqzsYqVUt2jMEr-7Uq9G7YUNQ,23183
229
- meerschaum-2.1.6.dist-info/LICENSE,sha256=jG2zQEdRNt88EgHUWPpXVWmOrOduUQRx7MnYV9YIPaw,11359
230
- meerschaum-2.1.6.dist-info/METADATA,sha256=3D9pRJcEwjj7Z5FSkaBa2DTnoW0uzxi1xQ-ZzIHQ6II,23976
231
- meerschaum-2.1.6.dist-info/NOTICE,sha256=OTA9Fcthjf5BRvWDDIcBC_xfLpeDV-RPZh3M-HQBRtQ,114
232
- meerschaum-2.1.6.dist-info/WHEEL,sha256=oiQVh_5PnQM0E3gPdiz09WCNmwiHDMaGer_elqB3coM,92
233
- meerschaum-2.1.6.dist-info/entry_points.txt,sha256=5YBVzibw-0rNA_1VjB16z5GABsOGf-CDhW4yqH8C7Gc,88
234
- meerschaum-2.1.6.dist-info/top_level.txt,sha256=bNoSiDj0El6buocix-FRoAtJOeq1qOF5rRm2u9i7Q6A,11
235
- meerschaum-2.1.6.dist-info/zip-safe,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
236
- meerschaum-2.1.6.dist-info/RECORD,,
229
+ meerschaum-2.2.0.dev1.dist-info/LICENSE,sha256=jG2zQEdRNt88EgHUWPpXVWmOrOduUQRx7MnYV9YIPaw,11359
230
+ meerschaum-2.2.0.dev1.dist-info/METADATA,sha256=PsW8SeL9h5X0HPnnBk3tcNly1Wvl6epTWr0VRYuMRvo,23985
231
+ meerschaum-2.2.0.dev1.dist-info/NOTICE,sha256=OTA9Fcthjf5BRvWDDIcBC_xfLpeDV-RPZh3M-HQBRtQ,114
232
+ meerschaum-2.2.0.dev1.dist-info/WHEEL,sha256=oiQVh_5PnQM0E3gPdiz09WCNmwiHDMaGer_elqB3coM,92
233
+ meerschaum-2.2.0.dev1.dist-info/entry_points.txt,sha256=5YBVzibw-0rNA_1VjB16z5GABsOGf-CDhW4yqH8C7Gc,88
234
+ meerschaum-2.2.0.dev1.dist-info/top_level.txt,sha256=bNoSiDj0El6buocix-FRoAtJOeq1qOF5rRm2u9i7Q6A,11
235
+ meerschaum-2.2.0.dev1.dist-info/zip-safe,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
236
+ meerschaum-2.2.0.dev1.dist-info/RECORD,,