meerschaum 2.2.0rc4__py3-none-any.whl → 2.2.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.
Files changed (42) hide show
  1. meerschaum/_internal/entry.py +36 -11
  2. meerschaum/_internal/shell/Shell.py +40 -16
  3. meerschaum/_internal/term/__init__.py +3 -2
  4. meerschaum/_internal/term/tools.py +1 -1
  5. meerschaum/actions/api.py +65 -31
  6. meerschaum/actions/python.py +56 -24
  7. meerschaum/actions/start.py +2 -4
  8. meerschaum/actions/uninstall.py +5 -9
  9. meerschaum/actions/upgrade.py +11 -3
  10. meerschaum/api/__init__.py +1 -0
  11. meerschaum/api/dash/callbacks/__init__.py +4 -0
  12. meerschaum/api/dash/callbacks/custom.py +39 -0
  13. meerschaum/api/dash/callbacks/dashboard.py +39 -6
  14. meerschaum/api/dash/callbacks/login.py +3 -1
  15. meerschaum/api/dash/components.py +5 -2
  16. meerschaum/api/dash/pipes.py +145 -97
  17. meerschaum/config/_default.py +1 -0
  18. meerschaum/config/_paths.py +12 -12
  19. meerschaum/config/_version.py +1 -1
  20. meerschaum/config/paths.py +10 -0
  21. meerschaum/config/static/__init__.py +1 -1
  22. meerschaum/connectors/__init__.py +9 -2
  23. meerschaum/connectors/sql/_cli.py +7 -1
  24. meerschaum/connectors/sql/_pipes.py +6 -0
  25. meerschaum/core/Pipe/__init__.py +5 -0
  26. meerschaum/core/Pipe/_sync.py +2 -3
  27. meerschaum/plugins/__init__.py +67 -9
  28. meerschaum/utils/daemon/Daemon.py +7 -2
  29. meerschaum/utils/misc.py +6 -0
  30. meerschaum/utils/packages/__init__.py +212 -53
  31. meerschaum/utils/packages/_packages.py +3 -2
  32. meerschaum/utils/process.py +12 -2
  33. meerschaum/utils/schedule.py +10 -3
  34. meerschaum/utils/venv/__init__.py +46 -11
  35. {meerschaum-2.2.0rc4.dist-info → meerschaum-2.2.2.dist-info}/METADATA +13 -9
  36. {meerschaum-2.2.0rc4.dist-info → meerschaum-2.2.2.dist-info}/RECORD +42 -40
  37. {meerschaum-2.2.0rc4.dist-info → meerschaum-2.2.2.dist-info}/WHEEL +1 -1
  38. {meerschaum-2.2.0rc4.dist-info → meerschaum-2.2.2.dist-info}/LICENSE +0 -0
  39. {meerschaum-2.2.0rc4.dist-info → meerschaum-2.2.2.dist-info}/NOTICE +0 -0
  40. {meerschaum-2.2.0rc4.dist-info → meerschaum-2.2.2.dist-info}/entry_points.txt +0 -0
  41. {meerschaum-2.2.0rc4.dist-info → meerschaum-2.2.2.dist-info}/top_level.txt +0 -0
  42. {meerschaum-2.2.0rc4.dist-info → meerschaum-2.2.2.dist-info}/zip-safe +0 -0
@@ -9,10 +9,16 @@ See `meerschaum.utils.pool` for multiprocessing and
9
9
  """
10
10
 
11
11
  from __future__ import annotations
12
- import os, signal, subprocess, sys, platform
12
+ import os, signal, subprocess, sys, platform, traceback
13
13
  from meerschaum.utils.typing import Union, Optional, Any, Callable, Dict, Tuple
14
14
  from meerschaum.config.static import STATIC_CONFIG
15
15
 
16
+ _child_processes = []
17
+ def signal_handler(sig, frame):
18
+ for child in _child_processes:
19
+ child.send_signal(sig)
20
+ child.wait()
21
+
16
22
  def run_process(
17
23
  *args,
18
24
  foreground: bool = False,
@@ -73,6 +79,7 @@ def run_process(
73
79
  sys.stdout.write(line.decode('utf-8'))
74
80
  sys.stdout.flush()
75
81
 
82
+
76
83
  if capture_output or line_callback is not None:
77
84
  kw['stdout'] = subprocess.PIPE
78
85
  kw['stderr'] = subprocess.STDOUT
@@ -123,6 +130,7 @@ def run_process(
123
130
 
124
131
  try:
125
132
  child = subprocess.Popen(*args, **kw)
133
+ _child_processes.append(child)
126
134
 
127
135
  # we can't set the process group id from the parent since the child
128
136
  # will already have exec'd. and we can't SIGSTOP it before exec,
@@ -147,7 +155,9 @@ def run_process(
147
155
  store_proc_dict[store_proc_key] = child
148
156
  _ret = poll_process(child, line_callback) if line_callback is not None else child.wait()
149
157
  ret = _ret if not as_proc else child
150
-
158
+ except KeyboardInterrupt:
159
+ child.send_signal(signal.SIGINT)
160
+ ret = child.wait() if not as_proc else child
151
161
  finally:
152
162
  if foreground:
153
163
  # we have to mask SIGTTOU because tcsetpgrp
@@ -8,7 +8,7 @@ Schedule processes and threads.
8
8
 
9
9
  from __future__ import annotations
10
10
  import sys
11
- from datetime import datetime, timezone, timedelta, timedelta
11
+ from datetime import datetime, timezone, timedelta
12
12
  import meerschaum as mrsm
13
13
  from meerschaum.utils.typing import Callable, Any, Optional, List, Dict
14
14
 
@@ -99,7 +99,7 @@ def schedule_function(
99
99
  apscheduler = mrsm.attempt_import('apscheduler', lazy=False)
100
100
  now = round_time(datetime.now(timezone.utc), timedelta(minutes=1))
101
101
  trigger = parse_schedule(schedule, now=now)
102
- _scheduler = apscheduler.AsyncScheduler()
102
+ _scheduler = apscheduler.AsyncScheduler(identity='mrsm-scheduler')
103
103
  try:
104
104
  loop = asyncio.get_running_loop()
105
105
  except RuntimeError:
@@ -107,7 +107,14 @@ def schedule_function(
107
107
 
108
108
  async def run_scheduler():
109
109
  async with _scheduler:
110
- job = await _scheduler.add_schedule(function, trigger, args=args, kwargs=kw)
110
+ job = await _scheduler.add_schedule(
111
+ function,
112
+ trigger,
113
+ args = args,
114
+ kwargs = kw,
115
+ max_running_jobs = 1,
116
+ conflict_policy = apscheduler.ConflictPolicy.replace,
117
+ )
111
118
  try:
112
119
  await _scheduler.run_until_stopped()
113
120
  except (KeyboardInterrupt, SystemExit) as e:
@@ -15,7 +15,7 @@ __all__ = sorted([
15
15
  'activate_venv', 'deactivate_venv', 'init_venv',
16
16
  'inside_venv', 'is_venv_active', 'venv_exec',
17
17
  'venv_executable', 'venv_exists', 'venv_target_path',
18
- 'Venv', 'get_venvs', 'verify_venv',
18
+ 'Venv', 'get_venvs', 'verify_venv', 'get_module_venv',
19
19
  ])
20
20
  __pdoc__ = {'Venv': True}
21
21
 
@@ -79,7 +79,7 @@ def activate_venv(
79
79
  else:
80
80
  threads_active_venvs[thread_id][venv] += 1
81
81
 
82
- target = str(venv_target_path(venv, debug=debug))
82
+ target = venv_target_path(venv, debug=debug).as_posix()
83
83
  if venv in active_venvs_order:
84
84
  sys.path.remove(target)
85
85
  try:
@@ -171,7 +171,7 @@ def deactivate_venv(
171
171
  if sys.path is None:
172
172
  return False
173
173
 
174
- target = str(venv_target_path(venv, allow_nonexistent=force, debug=debug))
174
+ target = venv_target_path(venv, allow_nonexistent=force, debug=debug).as_posix()
175
175
  with LOCKS['sys.path']:
176
176
  if target in sys.path:
177
177
  sys.path.remove(target)
@@ -361,6 +361,8 @@ def init_venv(
361
361
  verified_venvs.add(venv)
362
362
  return True
363
363
 
364
+ import io
365
+ from contextlib import redirect_stdout, redirect_stderr
364
366
  import sys, platform, os, pathlib, shutil
365
367
  from meerschaum.config.static import STATIC_CONFIG
366
368
  from meerschaum.config._paths import VIRTENV_RESOURCES_PATH
@@ -381,25 +383,34 @@ def init_venv(
381
383
  verified_venvs.add(venv)
382
384
  return True
383
385
 
384
- from meerschaum.utils.packages import run_python_package, attempt_import
386
+ from meerschaum.utils.packages import run_python_package, attempt_import, _get_pip_os_env
385
387
  global tried_virtualenv
386
388
  try:
387
389
  import venv as _venv
390
+ uv = attempt_import('uv', venv=None, debug=debug)
388
391
  virtualenv = None
389
392
  except ImportError:
390
393
  _venv = None
394
+ uv = None
391
395
  virtualenv = None
392
-
393
396
 
394
397
  _venv_success = False
395
- if _venv is not None:
396
- import io
397
- from contextlib import redirect_stdout
398
+
399
+ if uv is not None:
400
+ _venv_success = run_python_package(
401
+ 'uv',
402
+ ['venv', venv_path.as_posix(), '-q'],
403
+ venv = None,
404
+ env = _get_pip_os_env(),
405
+ debug = debug,
406
+ ) == 0
407
+
408
+ if _venv is not None and not _venv_success:
398
409
  f = io.StringIO()
399
410
  with redirect_stdout(f):
400
411
  _venv_success = run_python_package(
401
412
  'venv',
402
- [str(venv_path)] + (
413
+ [venv_path.as_posix()] + (
403
414
  ['--symlinks'] if platform.system() != 'Windows' else []
404
415
  ),
405
416
  venv=None, debug=debug
@@ -438,7 +449,7 @@ def init_venv(
438
449
  except Exception as e:
439
450
  import traceback
440
451
  traceback.print_exc()
441
- virtualenv.cli_run([str(venv_path)])
452
+ virtualenv.cli_run([venv_path.as_posix()])
442
453
  if dist_packages_path.exists():
443
454
  vtp.mkdir(exist_ok=True, parents=True)
444
455
  for file_path in dist_packages_path.glob('*'):
@@ -614,7 +625,7 @@ def venv_target_path(
614
625
  return site_path
615
626
 
616
627
  ### Allow for dist-level paths (running as root).
617
- for possible_dist in reversed(site.getsitepackages()):
628
+ for possible_dist in site.getsitepackages():
618
629
  dist_path = pathlib.Path(possible_dist)
619
630
  if not dist_path.exists():
620
631
  continue
@@ -698,4 +709,28 @@ def get_venvs() -> List[str]:
698
709
  return venvs
699
710
 
700
711
 
712
+ def get_module_venv(module) -> Union[str, None]:
713
+ """
714
+ Return the virtual environment where an imported module is installed.
715
+
716
+ Parameters
717
+ ----------
718
+ module: ModuleType
719
+ The imported module to inspect.
720
+
721
+ Returns
722
+ -------
723
+ The name of a venv or `None`.
724
+ """
725
+ import pathlib
726
+ from meerschaum.config.paths import VIRTENV_RESOURCES_PATH
727
+ module_path = pathlib.Path(module.__file__).resolve()
728
+ try:
729
+ rel_path = module_path.relative_to(VIRTENV_RESOURCES_PATH)
730
+ except ValueError:
731
+ return None
732
+
733
+ return rel_path.as_posix().split('/', maxsplit=1)[0]
734
+
735
+
701
736
  from meerschaum.utils.venv._Venv import Venv
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: meerschaum
3
- Version: 2.2.0rc4
3
+ Version: 2.2.2
4
4
  Summary: Sync Time-Series Pipes with Meerschaum
5
5
  Home-page: https://meerschaum.io
6
6
  Author: Bennett Meares
@@ -55,8 +55,8 @@ Requires-Dist: psycopg[binary] >=3.1.18 ; extra == 'api'
55
55
  Requires-Dist: PyMySQL >=0.9.0 ; extra == 'api'
56
56
  Requires-Dist: aiomysql >=0.0.21 ; extra == 'api'
57
57
  Requires-Dist: sqlalchemy-cockroachdb >=2.0.0 ; extra == 'api'
58
- Requires-Dist: duckdb <0.10.3 ; extra == 'api'
59
- Requires-Dist: duckdb-engine >=0.9.2 ; extra == 'api'
58
+ Requires-Dist: duckdb >=1.0.0 ; extra == 'api'
59
+ Requires-Dist: duckdb-engine >=0.13.0 ; extra == 'api'
60
60
  Requires-Dist: wheel >=0.34.2 ; extra == 'api'
61
61
  Requires-Dist: setuptools >=63.3.0 ; extra == 'api'
62
62
  Requires-Dist: PyYAML >=5.3.1 ; extra == 'api'
@@ -79,6 +79,7 @@ Requires-Dist: watchfiles >=0.21.0 ; extra == 'api'
79
79
  Requires-Dist: dill >=0.3.3 ; extra == 'api'
80
80
  Requires-Dist: virtualenv >=20.1.0 ; extra == 'api'
81
81
  Requires-Dist: APScheduler >=4.0.0a5 ; extra == 'api'
82
+ Requires-Dist: uv >=0.2.11 ; extra == 'api'
82
83
  Requires-Dist: pprintpp >=0.4.0 ; extra == 'api'
83
84
  Requires-Dist: asciitree >=0.3.3 ; extra == 'api'
84
85
  Requires-Dist: typing-extensions >=4.7.1 ; extra == 'api'
@@ -127,6 +128,7 @@ Requires-Dist: watchfiles >=0.21.0 ; extra == 'core'
127
128
  Requires-Dist: dill >=0.3.3 ; extra == 'core'
128
129
  Requires-Dist: virtualenv >=20.1.0 ; extra == 'core'
129
130
  Requires-Dist: APScheduler >=4.0.0a5 ; extra == 'core'
131
+ Requires-Dist: uv >=0.2.11 ; extra == 'core'
130
132
  Provides-Extra: dash
131
133
  Requires-Dist: Flask-Compress >=1.10.1 ; extra == 'dash'
132
134
  Requires-Dist: dash >=2.6.2 ; extra == 'dash'
@@ -161,8 +163,8 @@ Requires-Dist: psycopg[binary] >=3.1.18 ; extra == 'drivers'
161
163
  Requires-Dist: PyMySQL >=0.9.0 ; extra == 'drivers'
162
164
  Requires-Dist: aiomysql >=0.0.21 ; extra == 'drivers'
163
165
  Requires-Dist: sqlalchemy-cockroachdb >=2.0.0 ; extra == 'drivers'
164
- Requires-Dist: duckdb <0.10.3 ; extra == 'drivers'
165
- Requires-Dist: duckdb-engine >=0.9.2 ; extra == 'drivers'
166
+ Requires-Dist: duckdb >=1.0.0 ; extra == 'drivers'
167
+ Requires-Dist: duckdb-engine >=0.13.0 ; extra == 'drivers'
166
168
  Provides-Extra: drivers-extras
167
169
  Requires-Dist: pyodbc >=4.0.30 ; extra == 'drivers-extras'
168
170
  Requires-Dist: cx-Oracle >=8.3.0 ; extra == 'drivers-extras'
@@ -212,13 +214,14 @@ Requires-Dist: watchfiles >=0.21.0 ; extra == 'full'
212
214
  Requires-Dist: dill >=0.3.3 ; extra == 'full'
213
215
  Requires-Dist: virtualenv >=20.1.0 ; extra == 'full'
214
216
  Requires-Dist: APScheduler >=4.0.0a5 ; extra == 'full'
217
+ Requires-Dist: uv >=0.2.11 ; extra == 'full'
215
218
  Requires-Dist: cryptography >=38.0.1 ; extra == 'full'
216
219
  Requires-Dist: psycopg[binary] >=3.1.18 ; extra == 'full'
217
220
  Requires-Dist: PyMySQL >=0.9.0 ; extra == 'full'
218
221
  Requires-Dist: aiomysql >=0.0.21 ; extra == 'full'
219
222
  Requires-Dist: sqlalchemy-cockroachdb >=2.0.0 ; extra == 'full'
220
- Requires-Dist: duckdb <0.10.3 ; extra == 'full'
221
- Requires-Dist: duckdb-engine >=0.9.2 ; extra == 'full'
223
+ Requires-Dist: duckdb >=1.0.0 ; extra == 'full'
224
+ Requires-Dist: duckdb-engine >=0.13.0 ; extra == 'full'
222
225
  Requires-Dist: toga >=0.3.0-dev29 ; extra == 'full'
223
226
  Requires-Dist: pywebview >=3.6.3 ; extra == 'full'
224
227
  Requires-Dist: pycparser >=2.21.0 ; extra == 'full'
@@ -271,8 +274,8 @@ Requires-Dist: psycopg[binary] >=3.1.18 ; extra == 'sql'
271
274
  Requires-Dist: PyMySQL >=0.9.0 ; extra == 'sql'
272
275
  Requires-Dist: aiomysql >=0.0.21 ; extra == 'sql'
273
276
  Requires-Dist: sqlalchemy-cockroachdb >=2.0.0 ; extra == 'sql'
274
- Requires-Dist: duckdb <0.10.3 ; extra == 'sql'
275
- Requires-Dist: duckdb-engine >=0.9.2 ; extra == 'sql'
277
+ Requires-Dist: duckdb >=1.0.0 ; extra == 'sql'
278
+ Requires-Dist: duckdb-engine >=0.13.0 ; extra == 'sql'
276
279
  Requires-Dist: wheel >=0.34.2 ; extra == 'sql'
277
280
  Requires-Dist: setuptools >=63.3.0 ; extra == 'sql'
278
281
  Requires-Dist: PyYAML >=5.3.1 ; extra == 'sql'
@@ -295,6 +298,7 @@ Requires-Dist: watchfiles >=0.21.0 ; extra == 'sql'
295
298
  Requires-Dist: dill >=0.3.3 ; extra == 'sql'
296
299
  Requires-Dist: virtualenv >=20.1.0 ; extra == 'sql'
297
300
  Requires-Dist: APScheduler >=4.0.0a5 ; extra == 'sql'
301
+ Requires-Dist: uv >=0.2.11 ; extra == 'sql'
298
302
  Provides-Extra: stack
299
303
  Requires-Dist: docker-compose >=1.29.2 ; extra == 'stack'
300
304
 
@@ -1,7 +1,7 @@
1
1
  meerschaum/__init__.py,sha256=mw_PhxT7155SW8d_S51T4-WTibL5g205CwMa3qX8qyA,1487
2
2
  meerschaum/__main__.py,sha256=Q43yra6APe5CdhDp9ngaorUjs8ZoabeYnMa6C5kQchA,2763
3
3
  meerschaum/_internal/__init__.py,sha256=ilC7utfKtin7GAvuN34fKyUQYfPyqH0Mm3MJF5iyEf4,169
4
- meerschaum/_internal/entry.py,sha256=Oga0OH808UtTJGvvkQQFRKjVCjSCRYjJe3M1A9-yf1k,4806
4
+ meerschaum/_internal/entry.py,sha256=_pfnlnXhqzP4XQ5syZ04sDG9LxS5UhNdziBlETDMUhc,5756
5
5
  meerschaum/_internal/arguments/__init__.py,sha256=HFciFQgo2ZOT19Mo6CpLhPYlpLYh2sNn1C9Lo7NMADc,519
6
6
  meerschaum/_internal/arguments/_parse_arguments.py,sha256=dNVDBvXYNgEw-TrlZJ9A6VPlG696EpQcQm6FOAhseqw,10249
7
7
  meerschaum/_internal/arguments/_parser.py,sha256=OtcrZK-_qV9a5qpdcP9NLKOGRevjmCU9fBLbB88px3c,13719
@@ -12,16 +12,16 @@ 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=zcgajt0FGH5ou0kqmOrYAvNfunOsn_CN6LHFYFXBBlI,32826
15
+ meerschaum/_internal/shell/Shell.py,sha256=aWWUWD5i0T7qopEFqIf76AiTwLYy41DC7qFjIuiOnoM,33276
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
19
19
  meerschaum/_internal/shell/resources/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
20
20
  meerschaum/_internal/term/TermPageHandler.py,sha256=Rt5S47Pr_3HLJc8xIXpZUczYE_Dw2qT8qwf1jZFtUHQ,520
21
- meerschaum/_internal/term/__init__.py,sha256=xIwEWXyq1qaU7Rx-AryTtANJPdm__fy3XSMzxaFn0wU,1594
22
- meerschaum/_internal/term/tools.py,sha256=bpYexJBDCQXfzz6ESMvmpSHM1AIy4qWsrAHl95tSW2I,716
21
+ meerschaum/_internal/term/__init__.py,sha256=c4Je3376Tj7Me2qldCxg_Xs2mGN-Mu1YAMIaAG6vK6w,1642
22
+ meerschaum/_internal/term/tools.py,sha256=dXVAimKD-Yv2fg2WOTr0YGBY7XDKjQqw-RizcS65YVI,727
23
23
  meerschaum/actions/__init__.py,sha256=7CNoKEqkqqafqMcChspJX9cR9OdgEWk9ggj0000Jl98,11360
24
- meerschaum/actions/api.py,sha256=mWhv4bn3Ap17_Gqf2Cx9bAsHKG-Zhy072pBbNzHLEJc,12756
24
+ meerschaum/actions/api.py,sha256=7OTGfcu7CmOqplYJBdk3vCIFMPE_8QkEGRS_B-Ow9V0,14031
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
@@ -33,7 +33,7 @@ meerschaum/actions/install.py,sha256=akzzgsvy5yqUFuUqzSMG4eBKARY2iSnL3n_BiaNcM58
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
36
- meerschaum/actions/python.py,sha256=eXSpAli8ARo9k2NeZi11TwiyA6T5leMSDQXKS6dgRkM,2395
36
+ meerschaum/actions/python.py,sha256=ELGeOI6CZXHtweVN-x1jENYdGipj1Nd4_oPAKQX5nvc,3680
37
37
  meerschaum/actions/register.py,sha256=l_21LWZCzKwJVex_xAXECC5WVW1VEuIX9HSp7CuyCwA,11326
38
38
  meerschaum/actions/reload.py,sha256=gMXeFBGVfyQ7uhKhYf6bLaDMD0fLPcA9BrLBSiuvWIc,508
39
39
  meerschaum/actions/setup.py,sha256=KkAGWcgwzl_L6A19fTmTX1KtBjW2FwD8QenLjPy0mQQ,3205
@@ -41,26 +41,26 @@ meerschaum/actions/sh.py,sha256=fLfTJaacKu4sjLTRqEzzYlT2WbbdZBEczsKb6F-qAek,2026
41
41
  meerschaum/actions/show.py,sha256=p92UahbFeKOThGooO8Ul5Z6s6_Ll54FCxXsMAFnhuT0,29024
42
42
  meerschaum/actions/sql.py,sha256=wYofwk1vGO96U2ncigGEfMtYMZeprz2FR1PRRZhkAPI,4311
43
43
  meerschaum/actions/stack.py,sha256=WMRMebyYwZGNlbnj6Ja09qvCSDNteFJOTa8_joHlnVo,5886
44
- meerschaum/actions/start.py,sha256=mNFWqxc_o9moavvDQWE4YoZF6b-SW2nKyw5MtwIj-90,18384
44
+ meerschaum/actions/start.py,sha256=9Ej3Hk7qXfbrBaQq17KirTII_4Pa-BWSdrkutMnLA3k,18352
45
45
  meerschaum/actions/stop.py,sha256=KTBadAmJ6SbReqlltkwfqZW6EryB4kZXupl0ZyInI0Q,4311
46
46
  meerschaum/actions/sync.py,sha256=10uPREu3HBVgtzakVxhCegQOz_mistABJlsNNCMgywY,17518
47
47
  meerschaum/actions/tag.py,sha256=SJf5qFW0ccLXjqlTdkK_0MCcrCMdg6xhYrhKdco0hdA,3053
48
- meerschaum/actions/uninstall.py,sha256=2fUd5ZK45VGGCI8V4NLmSnavdKjOv7cGM22x2WlTStw,6068
49
- meerschaum/actions/upgrade.py,sha256=VQKyjCGioEF2FYbQmldHh21imDqApNl0xal0rhxzrJk,6302
48
+ meerschaum/actions/uninstall.py,sha256=jKS4LpNJt1DQ_Z6684lD5I7P8zcTAyp5ikJRoJ5Puhc,6056
49
+ meerschaum/actions/upgrade.py,sha256=wepYdvrjSuc2wMd21rbLoxGjlRuXxLVH0GOD9OhKB48,6658
50
50
  meerschaum/actions/verify.py,sha256=tY5slGpHiWiE0v9TDnjbmxSKn86zBnu9WBpixUgKNQU,4885
51
- meerschaum/api/__init__.py,sha256=LEAAhOBNT6VHRTiLKWfVxBHBbqeucilHXLelrPkxjZI,7385
51
+ meerschaum/api/__init__.py,sha256=oOYwNnkXM2s-h52EYnN2NGPfrlaQh6D4-zmHa7uPLG0,7450
52
52
  meerschaum/api/_chain.py,sha256=h8-WXUGXX6AqzdALfsBC5uv0FkAcLdHJXCGzqzuq89k,875
53
53
  meerschaum/api/_events.py,sha256=NrjiabEr7rmHMfxnX07DOGzr9sPiEbRkFqPjuA_8Zx8,1603
54
54
  meerschaum/api/_oauth2.py,sha256=He8JnFDhfCq25Wlz1Jh3TcGz83VOttrJk6RgzJKbFLw,1056
55
55
  meerschaum/api/_websockets.py,sha256=OmrSDGx3xGlfP5XXeLEyYW6-Y3iRUcB-xSqL3RWsjqQ,1609
56
56
  meerschaum/api/dash/__init__.py,sha256=yr4zR7uFPlLFc_lDpwa2rCM1h9ZWGiu5-2XhHcM-5f8,2252
57
57
  meerschaum/api/dash/actions.py,sha256=eUClPPdNVNSCtyq8Ecr1saasxj5VBgd1gcXejvQxXEc,9418
58
- meerschaum/api/dash/components.py,sha256=hdcxQahw9lHDBlZlztj-IKX4GueZRTVKfjGC6fFcj_8,6364
58
+ meerschaum/api/dash/components.py,sha256=oGX7HFzNCi37iMww747iL3bbB52ZTt9tFa2iLohffg4,6399
59
59
  meerschaum/api/dash/connectors.py,sha256=nJxBOFldtCMJLYjUSVYZwX5BO-LNjTNHgoEaXe-0XMo,843
60
60
  meerschaum/api/dash/graphs.py,sha256=wJUDWzcLN8-C3xko6rj0F2v7Rt8YDkSXoVkkXJjYGIk,2046
61
61
  meerschaum/api/dash/jobs.py,sha256=htqnrtAGCOgn2-THezMGYM8n1E-M-sM5A5qNmOGfHzg,7529
62
62
  meerschaum/api/dash/keys.py,sha256=hzEVeN60SAfVTVSO5lajGaykxRIKGhj9Ph00HRJnNoE,12598
63
- meerschaum/api/dash/pipes.py,sha256=yGlLesL32XiHqt2n28876s49BlGEov2X18ZZhZJRw-M,19233
63
+ meerschaum/api/dash/pipes.py,sha256=RVVYIJJy4G01cXou9OT8Gr5ZsygQ_GUqJDDhU1akhi8,20615
64
64
  meerschaum/api/dash/plugins.py,sha256=JrLLw2r1Ar7asBgbMbSuiuz8dB9bME41ChynYN2KO-Y,3662
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
@@ -72,10 +72,11 @@ meerschaum/api/dash/assets/banner_1920x320.png,sha256=n2cNTSVEsGxO9XZg2keb85J3UO
72
72
  meerschaum/api/dash/assets/favicon.ico,sha256=nDEekVxwS60wEDno1nbw5GF3TJOcDV26SETOHJEZKkY,9662
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
- meerschaum/api/dash/callbacks/__init__.py,sha256=tAcK0ZX5qAN9mD5f7AYv0IBsGI6vI5r6wswPXfGgJfM,325
76
- meerschaum/api/dash/callbacks/dashboard.py,sha256=M3VJoRoI89jjPLSQejwp5v56-nkzs-g30r6rRvwIkCQ,32301
75
+ meerschaum/api/dash/callbacks/__init__.py,sha256=CKOkt7PIHbYxX9aDab2xPDuufIAQjSR5MVX-hU8Zi2w,450
76
+ meerschaum/api/dash/callbacks/custom.py,sha256=hm6fb0f-bpS_--qlV_9ScaAN_-dnSw60FwyomWBQHfY,1166
77
+ meerschaum/api/dash/callbacks/dashboard.py,sha256=8Rjxuw8uGww6oRfwRUC_mjm6i7aD0dVW0CeY2a7r7Yo,33101
77
78
  meerschaum/api/dash/callbacks/jobs.py,sha256=OEYxJRlmnxqbsvHb5jBJJCsRvVCsMNusm9AClCT9Pm0,7689
78
- meerschaum/api/dash/callbacks/login.py,sha256=dfl0EOkEUcF7a-u8fq0WGNtwV63714ds30yWfOM2rqE,2613
79
+ meerschaum/api/dash/callbacks/login.py,sha256=7WHZPsegy1qf3rrm5rucLYTufi93WrAy921HXQP14lU,2630
79
80
  meerschaum/api/dash/callbacks/plugins.py,sha256=7CrwwbBI2N3DR4Yb1bKmrtJ3cAQ3dVv1l6E_AtZ6Wng,2777
80
81
  meerschaum/api/dash/callbacks/register.py,sha256=9AgTcl--TPt6oETKzirQCkH9Azlm3XrU9U6XJM2b8Lk,3600
81
82
  meerschaum/api/dash/pages/__init__.py,sha256=1g3KAVYklZ5L8bpW-LfG5jBXRebnUeA_wmNsuIMRZEE,273
@@ -124,27 +125,28 @@ meerschaum/api/routes/_webterm.py,sha256=7eilgDXckpEc2LyeNmJS5YO6HxlyMkwPnAMWd7e
124
125
  meerschaum/api/tables/__init__.py,sha256=e2aNC0CdlWICTUMx1i9RauF8Pm426J0RZJbsJWv4SWo,482
125
126
  meerschaum/config/__init__.py,sha256=01hZ4Z8jGs4LbcIwNTeVzSvHD-Y0nAgiewRgngVUYb4,11517
126
127
  meerschaum/config/_dash.py,sha256=BJHl4xMrQB-YHUEU7ldEW8q_nOPoIRSOqLrfGElc6Dw,187
127
- meerschaum/config/_default.py,sha256=DSbyVcAL55Xf8MJCTxpgF7ZXL-O9peeMEqL29WFfsJ4,5251
128
+ meerschaum/config/_default.py,sha256=J6AWxxXM4mntCdkM6bKIpyQznZ5NuMICmTaurF11J9Q,5275
128
129
  meerschaum/config/_edit.py,sha256=CE8gumBiOtnZZdTATCLAZgUnhL04yJdReaNCrv1yuJc,8218
129
130
  meerschaum/config/_environment.py,sha256=Vv4DLDfc2vKLbCLsMvkQDj77K4kEvHKEBmUBo-wCrgo,4419
130
131
  meerschaum/config/_formatting.py,sha256=RT_oU0OSfUkzeqbY5jvEJwuove_t9sP4MyUb1Px250U,6635
131
132
  meerschaum/config/_jobs.py,sha256=2bEikO48qVSguFS3lrbWz6uiKt_0b3oSRWhwyz8RRDM,1279
132
133
  meerschaum/config/_patch.py,sha256=21N30q1ANmWMDQ-2RUjpMx7KafWfPQ3lKx9rrMqg1s4,1526
133
- meerschaum/config/_paths.py,sha256=TihDGA6IQou3ms1xKYHmRTU48kOflqV5ZOMguG25NM4,8154
134
+ meerschaum/config/_paths.py,sha256=CWhB17T00NeyyKW5T0fjmetd5AqOGYIN5ySbFg3dAMI,8265
134
135
  meerschaum/config/_preprocess.py,sha256=-AEA8m_--KivZwTQ1sWN6LTn5sio_fUr2XZ51BO6wLs,1220
135
136
  meerschaum/config/_read_config.py,sha256=WFZKIXZMDe_ca0ES7ivgM_mnwShvFxLdoeisT_X5-h0,14720
136
137
  meerschaum/config/_shell.py,sha256=s74cmJl8NrhM_Y1cB_P41_JDUYXV0g4WXnKFZWMtnrY,3551
137
138
  meerschaum/config/_sync.py,sha256=oK2ZujO2T1he08BXCFyiniBUevNGWSQKXLcS_jRv_7Y,4155
138
- meerschaum/config/_version.py,sha256=6-VmhSVm61Y2uCa9nlsUwmkBFChw3Ft25iUS-WOY4Ts,74
139
+ meerschaum/config/_version.py,sha256=7Chud7gTCO7SUtyelFQRWHw7ilTSMdYcfm0f6ExTxwo,71
140
+ meerschaum/config/paths.py,sha256=Z7vaOunaEJbVFXiSSz4IthhNOQDI-dhtpi5TpSyrcXg,206
139
141
  meerschaum/config/resources/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
140
142
  meerschaum/config/stack/__init__.py,sha256=c_WdTSejVdj8lqSE_pK5MhIBkHoftiZWDuEuB9dmk2I,9007
141
143
  meerschaum/config/stack/grafana/__init__.py,sha256=LNXQw2FvHKrD68RDhqDmi2wJjAHaKw9IWx8rNuyWEPo,2010
142
144
  meerschaum/config/stack/mosquitto/__init__.py,sha256=-OwOjq8KiBoSH_pmgCAAF3Dp3CRD4KgAEdimZSadROs,186
143
145
  meerschaum/config/stack/mosquitto/resources/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
144
146
  meerschaum/config/stack/resources/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
145
- meerschaum/config/static/__init__.py,sha256=zsSq54OkLqjfG_QGyH6zXzZnoaGpDyjmV0OCvbygFr8,4474
147
+ meerschaum/config/static/__init__.py,sha256=d3bkER5FJwsvrL8TM5V8Vmy0Bi7Fq7H8U-4jjfpV4Og,4474
146
148
  meerschaum/connectors/Connector.py,sha256=cJKinmk7eWZwCBvtX4H9r66macTZOY1qjxR7JUEmDmg,6381
147
- meerschaum/connectors/__init__.py,sha256=OCNfIEeuom6g7GOO3xj37YAuxLOesGCZ-VrcltyHsSY,12071
149
+ meerschaum/connectors/__init__.py,sha256=WmnYotqRnz_YVQMkf2TkizdqZxWKYbCrnIc1_Dr3Wb0,12129
148
150
  meerschaum/connectors/parse.py,sha256=gidA2jvOLTvEeL5hM9JjcUwkMRBadUhd4IfA5Jy1tgg,4044
149
151
  meerschaum/connectors/poll.py,sha256=gIY9TvFBqMvMNQvR0O2No7koLLz2PjfExBr_Dsosgpg,7363
150
152
  meerschaum/connectors/api/APIConnector.py,sha256=pj-RncLhDUEBK7R4tByH6nrxZWU8zxGVOS2Wyik36zs,4355
@@ -162,11 +164,11 @@ meerschaum/connectors/plugin/PluginConnector.py,sha256=aQ1QaB7MordCFimZqoGLb0R12
162
164
  meerschaum/connectors/plugin/__init__.py,sha256=pwF7TGY4WNz2_HaVdmK4rPQ9ZwTOEuPHgzOqsGcoXJw,198
163
165
  meerschaum/connectors/sql/SQLConnector.py,sha256=QvsFgAv2NAUdsJrcNYZIkQ9x_ow5JRe4Ie_UgSrDz3M,11709
164
166
  meerschaum/connectors/sql/__init__.py,sha256=xwSYhYuketTXhQLXyD9pZ0NNBPboW5Oqv9zrKfjx0Ic,175
165
- meerschaum/connectors/sql/_cli.py,sha256=XaWjWZzGIfhMiYoXAs2FrwHUGNyZpxIzH4g4xugLKsw,4123
167
+ meerschaum/connectors/sql/_cli.py,sha256=1SgnWeMIAihoxp4FzbNrcq1npXf0dSOQnCntpU9hUXA,4405
166
168
  meerschaum/connectors/sql/_create_engine.py,sha256=vPVwR3cpfcQm0aW9xo_DUWA3gMdlkuB0wJ8JoTpRYD0,10396
167
169
  meerschaum/connectors/sql/_fetch.py,sha256=NYYWDoEd-aGIS337KwH-D9_3KVWVCZOHAspGLfdEuUE,13086
168
170
  meerschaum/connectors/sql/_instance.py,sha256=r_S96vzSuKnBVGROSKQAPl-DnFnOOEPUkz1KFDFPHFQ,6509
169
- meerschaum/connectors/sql/_pipes.py,sha256=rVNHYo7BwVe7PTNYBQVsjxH2bKT2XFqZO4Kakzv9AW8,101362
171
+ meerschaum/connectors/sql/_pipes.py,sha256=0FeRmmZueWBfgBo6XFKcidC7l8eBTDUY12-DbdrXOsk,101627
170
172
  meerschaum/connectors/sql/_plugins.py,sha256=OsCmDlZKyJnY77QAWghmpuXR0z_CmFq5uHpZK7Cj-ZI,8321
171
173
  meerschaum/connectors/sql/_sql.py,sha256=553BTPtvnnLMERYK8IcxR4CS3R4Sq7id-5hbApOEsIU,34199
172
174
  meerschaum/connectors/sql/_uri.py,sha256=0BrhQtqQdzg9mR04gWBZINs_BbPFtSlTECXT_TCUwik,3460
@@ -175,7 +177,7 @@ meerschaum/connectors/sql/tools.py,sha256=jz8huOaRCwGlYdtGfAqAh7SoK8uydYBrasKQba
175
177
  meerschaum/connectors/sql/tables/__init__.py,sha256=e2dALTtThqbrq0soMNQ9QwgccyfTAjOrFkEClstLp3A,9001
176
178
  meerschaum/connectors/sql/tables/types.py,sha256=Jc_MTHIBM-KHpQt__Lckp39CeOo7tGOiAk5faDx-znY,1573
177
179
  meerschaum/core/__init__.py,sha256=tjASW10n9uLV6bYhcwP4rggh-ESXSJzgxpSBbVsuISs,251
178
- meerschaum/core/Pipe/__init__.py,sha256=1QOHqyUX2uJnfihVoGQV30BLm7JZZX2qjbsYIpCNFGI,16230
180
+ meerschaum/core/Pipe/__init__.py,sha256=5VxC5qvEuT-1eo5t4Sw5oycZCK40oxAFkHJq436ieFY,16486
179
181
  meerschaum/core/Pipe/_attributes.py,sha256=XbSHfDsomaNymzf7-__UhbHqu6mlTTx20xprsw_L04I,13202
180
182
  meerschaum/core/Pipe/_bootstrap.py,sha256=sTbHUX8V0Kfn6vEErXzsVslSjQNfQ5MxXxxuRYslr4w,7613
181
183
  meerschaum/core/Pipe/_clear.py,sha256=hQVPztHiadzLB0c4_yFg6EETnf9MtFdJDCpO41Giuco,2261
@@ -188,30 +190,30 @@ meerschaum/core/Pipe/_edit.py,sha256=ZH2A0ZOpZKsVDnQxKzmXspNQKTEFUhkkZDjwOkmWtaY
188
190
  meerschaum/core/Pipe/_fetch.py,sha256=zV3DzD7kfx08O6zda0I-9cX91m0Z_wO_on1ozHaqWnk,5234
189
191
  meerschaum/core/Pipe/_register.py,sha256=Sd5xaAW8H7uLTIoommcKb-6kHPRuHJLWNSbPnt2UbvA,2240
190
192
  meerschaum/core/Pipe/_show.py,sha256=nG50y8eBT9TVuKkRgAKtNDNIxysJvMNxfu__lkL1F9k,1352
191
- meerschaum/core/Pipe/_sync.py,sha256=48qk1xvkcKOqfzzYf3QdA7ojsP80yrso1YU8QIGJxwE,28038
193
+ meerschaum/core/Pipe/_sync.py,sha256=g_cQ4e4fd6_8qzjOjSH4hhO5vy2y0ZF8InOP9Lolzj8,27975
192
194
  meerschaum/core/Pipe/_verify.py,sha256=KSnthUzImRLjt9fxyBaLvArqDuOLRpKBfk0tnseJClc,14262
193
195
  meerschaum/core/Plugin/__init__.py,sha256=UXg64EvJPgI1PCxkY_KM02-ZmBm4FZpLPIQR_uSJJDc,137
194
196
  meerschaum/core/User/_User.py,sha256=CApB7Y0QJL6S9QOCCfrG4SbPuPXJ9AsAYQ5pASMP_Aw,6527
195
197
  meerschaum/core/User/__init__.py,sha256=lJ7beIZTG9sO4dAi3367fFBl17dXYEWHKi7HoaPlDyk,193
196
198
  meerschaum/plugins/_Plugin.py,sha256=LpplVPviSskKqf_igl4yIsD72H2C9vaFPQgU7-93ytg,34039
197
- meerschaum/plugins/__init__.py,sha256=g-KFejGEqcfBukqqF13Vsj8TdjGo99nrv_Z6CB8-mCg,21866
199
+ meerschaum/plugins/__init__.py,sha256=RUnkBTvusySyp4rvVRbtqoV2lKCdKeu0uxExB5Fg7KM,23503
198
200
  meerschaum/utils/__init__.py,sha256=QrK1K9hIbPCRCM5k2nZGFqGnrqhA0Eh-iSmCU7FG6Cs,612
199
201
  meerschaum/utils/_get_pipes.py,sha256=dlPckpYYyM0IwRZ2VL0u9DiEeYhr5Ho9gkzvWxzNVwI,11460
200
202
  meerschaum/utils/dataframe.py,sha256=vxZ72ME7IWuadtktgjFZF5bc9fXW_0TuynjFlJljlLU,31955
201
203
  meerschaum/utils/debug.py,sha256=ry9UWf0ECelVIuBApwmKxPZ_IoL6UqjTSMpGNbjghVQ,3690
202
204
  meerschaum/utils/interactive.py,sha256=t-6jWozXSqL7lYGDHuwiOjTgr-UKhdcg61q_eR5mikI,3196
203
- meerschaum/utils/misc.py,sha256=H26hLtCP8QHwXoHlvkxjWu6cPTwudDbbsbRkGw6ultg,43296
205
+ meerschaum/utils/misc.py,sha256=2_FyirImT793NH-wQriJ1VPOW7DcXm98Id0XMn8nh9I,43445
204
206
  meerschaum/utils/networking.py,sha256=Sr_eYUGW8_UV9-k9LqRFf7xLtbUcsDucODyLCRsFRUc,1006
205
207
  meerschaum/utils/pool.py,sha256=vkE42af4fjrTEJTxf6Ek3xGucm1MtEkpsSEiaVzNKHs,2655
206
- meerschaum/utils/process.py,sha256=IHnUhX79XofHwMsOs1A_irLMa7i48xXB-GCL83MtZOY,7192
208
+ meerschaum/utils/process.py,sha256=UyiNszYXdnjF6WN8Tt0NchWjkCV10MbOXEFn_TAhXeg,7510
207
209
  meerschaum/utils/prompt.py,sha256=0mBFbgi_l9rCou9UnC_6qKTHkqyl1Z_jSRzfmc0xRXM,16490
208
- meerschaum/utils/schedule.py,sha256=coJm8s91DZjezv4h9dkgUkU3R_O7gWJUBojxjItkrCQ,10654
210
+ meerschaum/utils/schedule.py,sha256=btAeSDaoFH62-7wTO0U7NK9P9QHV46PtY3DJ8DN_mCY,10860
209
211
  meerschaum/utils/sql.py,sha256=4sCNEpgUd6uFz6ySs4nnUMVaOT0YAvPM1ZlQYJTSF-0,46656
210
212
  meerschaum/utils/threading.py,sha256=3N8JXPAnwqJiSjuQcbbJg3Rv9-CCUMJpeQRfKFR7MaA,2489
211
213
  meerschaum/utils/typing.py,sha256=L05wOXfWdn_nJ0KnZVr-2zdMYcqjdyOW_7InT3xe6-s,2807
212
214
  meerschaum/utils/warnings.py,sha256=0b5O2DBbhEAGnu6RAB1hlHSVmwL_hcR3EiMkExXmBJ0,6535
213
215
  meerschaum/utils/yaml.py,sha256=vbCrFjdapKsZ9wRRaI9Ih8dVUwZ-KHpSzfGhRcpDBgQ,3162
214
- meerschaum/utils/daemon/Daemon.py,sha256=iZzlPMF237sidfQJ3iNrhGJpV6onvEo1_9qtv9pE1j4,34595
216
+ meerschaum/utils/daemon/Daemon.py,sha256=rd9L9BgB0vwnPuhAbgLI-KkiEhFIPJqTQZ4PJ66lTf4,34686
215
217
  meerschaum/utils/daemon/FileDescriptorInterceptor.py,sha256=1cn5nQYLImL-BHXlLoxN_TadgN7XmGRLl1b7xecYMPc,4544
216
218
  meerschaum/utils/daemon/RotatingFile.py,sha256=LuaHPs-c4GaMc3VkMjvL6WJ5r7wmMUOm9ZLyk4OHAlg,23658
217
219
  meerschaum/utils/daemon/__init__.py,sha256=I_ki51yml4vsh9OoH7BWTaz9SnATD8qM0i0fN3aUMn0,8375
@@ -223,16 +225,16 @@ meerschaum/utils/formatting/_jobs.py,sha256=s1lVcdMkzNj5Bqw-GsUhcguUFtahi5nQ-kg1
223
225
  meerschaum/utils/formatting/_pipes.py,sha256=wy0iWJFsFl3X2VloaiA_gp9Yx9w6tD3FQZvAQAqef4A,19492
224
226
  meerschaum/utils/formatting/_pprint.py,sha256=tgrT3FyGyu5CWJYysqK3kX1xdZYorlbOk9fcU_vt9Qg,3096
225
227
  meerschaum/utils/formatting/_shell.py,sha256=ox75O7VHDAiwzSvdMSJZhXLadvAqYJVeihU6WeZ2Ogc,3677
226
- meerschaum/utils/packages/__init__.py,sha256=HEJYz_rceqljpyRFlnToLR6vc_b7r-2d2K8zh_th2lg,57185
227
- meerschaum/utils/packages/_packages.py,sha256=eAw_5D9AHblnUnKEiBMCElVgtCosxgrhQUAAktITSNA,7864
228
+ meerschaum/utils/packages/__init__.py,sha256=6zRX0g8Kh-wHjvkbiMf_kLKM2BlR5FJUCA3JStX9YeU,62628
229
+ meerschaum/utils/packages/_packages.py,sha256=kWoo1KWvpQgR3rY_rpHzvGIh14BBFH92Erw5UtW7yX0,7918
228
230
  meerschaum/utils/packages/lazy_loader.py,sha256=VHnph3VozH29R4JnSSBfwtA5WKZYZQFT_GeQSShCnuc,2540
229
231
  meerschaum/utils/venv/_Venv.py,sha256=sBnlmxHdAh2bx8btfVoD79-H9-cYsv5lP02IIXkyECs,3553
230
- meerschaum/utils/venv/__init__.py,sha256=sj-n8scWH2NPDJGAxfpqzsYqVUt2jMEr-7Uq9G7YUNQ,23183
231
- meerschaum-2.2.0rc4.dist-info/LICENSE,sha256=jG2zQEdRNt88EgHUWPpXVWmOrOduUQRx7MnYV9YIPaw,11359
232
- meerschaum-2.2.0rc4.dist-info/METADATA,sha256=KBLySrydHzynnwn50qWE8vmaRC7G5UjrRDU-R65BgoY,23806
233
- meerschaum-2.2.0rc4.dist-info/NOTICE,sha256=OTA9Fcthjf5BRvWDDIcBC_xfLpeDV-RPZh3M-HQBRtQ,114
234
- meerschaum-2.2.0rc4.dist-info/WHEEL,sha256=GJ7t_kWBFywbagK5eo9IoUwLW6oyOeTKmQ-9iHFVNxQ,92
235
- meerschaum-2.2.0rc4.dist-info/entry_points.txt,sha256=5YBVzibw-0rNA_1VjB16z5GABsOGf-CDhW4yqH8C7Gc,88
236
- meerschaum-2.2.0rc4.dist-info/top_level.txt,sha256=bNoSiDj0El6buocix-FRoAtJOeq1qOF5rRm2u9i7Q6A,11
237
- meerschaum-2.2.0rc4.dist-info/zip-safe,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
238
- meerschaum-2.2.0rc4.dist-info/RECORD,,
232
+ meerschaum/utils/venv/__init__.py,sha256=4vFAu85lQ5GYEVhc6e_KhFmrks4t_Ma6ysmtraccYbs,24187
233
+ meerschaum-2.2.2.dist-info/LICENSE,sha256=jG2zQEdRNt88EgHUWPpXVWmOrOduUQRx7MnYV9YIPaw,11359
234
+ meerschaum-2.2.2.dist-info/METADATA,sha256=Jw95nQ9iQxBZ2cam7Hepn70zCUw36OEXOQMV67v2P0I,23985
235
+ meerschaum-2.2.2.dist-info/NOTICE,sha256=OTA9Fcthjf5BRvWDDIcBC_xfLpeDV-RPZh3M-HQBRtQ,114
236
+ meerschaum-2.2.2.dist-info/WHEEL,sha256=cpQTJ5IWu9CdaPViMhC9YzF8gZuS5-vlfoFihTBC86A,91
237
+ meerschaum-2.2.2.dist-info/entry_points.txt,sha256=5YBVzibw-0rNA_1VjB16z5GABsOGf-CDhW4yqH8C7Gc,88
238
+ meerschaum-2.2.2.dist-info/top_level.txt,sha256=bNoSiDj0El6buocix-FRoAtJOeq1qOF5rRm2u9i7Q6A,11
239
+ meerschaum-2.2.2.dist-info/zip-safe,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
240
+ meerschaum-2.2.2.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: bdist_wheel (0.43.0)
2
+ Generator: setuptools (70.1.0)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5