meerschaum 2.2.7__py3-none-any.whl → 2.3.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 (50) hide show
  1. meerschaum/__init__.py +4 -1
  2. meerschaum/_internal/arguments/_parser.py +44 -15
  3. meerschaum/_internal/entry.py +22 -1
  4. meerschaum/_internal/shell/Shell.py +129 -31
  5. meerschaum/actions/api.py +12 -12
  6. meerschaum/actions/attach.py +95 -0
  7. meerschaum/actions/delete.py +35 -26
  8. meerschaum/actions/show.py +119 -148
  9. meerschaum/actions/start.py +85 -75
  10. meerschaum/actions/stop.py +68 -39
  11. meerschaum/api/_events.py +18 -1
  12. meerschaum/api/_oauth2.py +2 -0
  13. meerschaum/api/_websockets.py +2 -2
  14. meerschaum/api/dash/jobs.py +5 -2
  15. meerschaum/api/routes/__init__.py +1 -0
  16. meerschaum/api/routes/_actions.py +122 -44
  17. meerschaum/api/routes/_jobs.py +340 -0
  18. meerschaum/api/routes/_pipes.py +5 -5
  19. meerschaum/config/_default.py +1 -0
  20. meerschaum/config/_paths.py +1 -0
  21. meerschaum/config/_shell.py +8 -3
  22. meerschaum/config/_version.py +1 -1
  23. meerschaum/config/static/__init__.py +8 -0
  24. meerschaum/connectors/__init__.py +9 -11
  25. meerschaum/connectors/api/APIConnector.py +18 -1
  26. meerschaum/connectors/api/_actions.py +60 -71
  27. meerschaum/connectors/api/_jobs.py +260 -0
  28. meerschaum/connectors/parse.py +23 -7
  29. meerschaum/plugins/__init__.py +89 -5
  30. meerschaum/utils/daemon/Daemon.py +255 -30
  31. meerschaum/utils/daemon/FileDescriptorInterceptor.py +5 -5
  32. meerschaum/utils/daemon/RotatingFile.py +10 -6
  33. meerschaum/utils/daemon/StdinFile.py +110 -0
  34. meerschaum/utils/daemon/__init__.py +13 -7
  35. meerschaum/utils/formatting/__init__.py +2 -1
  36. meerschaum/utils/formatting/_jobs.py +83 -54
  37. meerschaum/utils/formatting/_shell.py +6 -0
  38. meerschaum/utils/jobs/_Job.py +684 -0
  39. meerschaum/utils/jobs/__init__.py +245 -0
  40. meerschaum/utils/misc.py +18 -17
  41. meerschaum/utils/packages/_packages.py +2 -2
  42. meerschaum/utils/prompt.py +16 -8
  43. {meerschaum-2.2.7.dist-info → meerschaum-2.3.0.dev1.dist-info}/METADATA +9 -9
  44. {meerschaum-2.2.7.dist-info → meerschaum-2.3.0.dev1.dist-info}/RECORD +50 -44
  45. {meerschaum-2.2.7.dist-info → meerschaum-2.3.0.dev1.dist-info}/WHEEL +1 -1
  46. {meerschaum-2.2.7.dist-info → meerschaum-2.3.0.dev1.dist-info}/LICENSE +0 -0
  47. {meerschaum-2.2.7.dist-info → meerschaum-2.3.0.dev1.dist-info}/NOTICE +0 -0
  48. {meerschaum-2.2.7.dist-info → meerschaum-2.3.0.dev1.dist-info}/entry_points.txt +0 -0
  49. {meerschaum-2.2.7.dist-info → meerschaum-2.3.0.dev1.dist-info}/top_level.txt +0 -0
  50. {meerschaum-2.2.7.dist-info → meerschaum-2.3.0.dev1.dist-info}/zip-safe +0 -0
@@ -0,0 +1,245 @@
1
+ #! /usr/bin/env python3
2
+ # -*- coding: utf-8 -*-
3
+ # vim:fenc=utf-8
4
+
5
+ """
6
+ Higher-level utilities for managing `meerschaum.utils.daemon.Daemon`.
7
+ """
8
+
9
+ import pathlib
10
+
11
+ import meerschaum as mrsm
12
+ from meerschaum.utils.jobs._Job import Job, StopMonitoringLogs
13
+ from meerschaum.utils.typing import Dict, Optional, List, Callable, Any
14
+
15
+ __all__ = (
16
+ 'Job',
17
+ 'get_jobs',
18
+ 'get_filtered_jobs',
19
+ 'get_restart_jobs',
20
+ 'get_running_jobs',
21
+ 'get_stopped_jobs',
22
+ 'get_paused_jobs',
23
+ 'get_restart_jobs',
24
+ 'check_restart_jobs',
25
+ 'start_check_jobs_thread',
26
+ 'stop_check_jobs_thread',
27
+ )
28
+
29
+
30
+ def get_jobs(
31
+ executor_keys: Optional[str] = None,
32
+ debug: bool = False,
33
+ ) -> Dict[str, Job]:
34
+ """
35
+ Return a dictionary of the existing jobs.
36
+
37
+ Parameters
38
+ ----------
39
+ executor_keys: Optional[str], default None
40
+ If provided, return remote jobs on the given API instance.
41
+ Otherwise return local jobs.
42
+
43
+ Returns
44
+ -------
45
+ A dictionary mapping job names to jobs.
46
+ """
47
+ from meerschaum.connectors.parse import parse_connector_keys
48
+ if executor_keys == 'local':
49
+ executor_keys = None
50
+
51
+ if executor_keys is not None:
52
+ try:
53
+ _ = parse_connector_keys(executor_keys, construct=False)
54
+ conn = mrsm.get_connector(executor_keys)
55
+ return conn.get_jobs(debug=debug)
56
+ except Exception:
57
+ return {}
58
+
59
+ from meerschaum.utils.daemon import get_daemons
60
+ daemons = get_daemons()
61
+ return {
62
+ daemon.daemon_id: Job(name=daemon.daemon_id)
63
+ for daemon in daemons
64
+ }
65
+
66
+
67
+ def get_filtered_jobs(
68
+ executor_keys: Optional[str] = None,
69
+ filter_list: Optional[List[str]] = None,
70
+ warn: bool = False,
71
+ debug: bool = False,
72
+ ) -> Dict[str, Job]:
73
+ """
74
+ Return a list of jobs filtered by the user.
75
+ """
76
+ from meerschaum.utils.warnings import warn as _warn
77
+ jobs = get_jobs(executor_keys, debug=debug)
78
+
79
+ if not filter_list:
80
+ return {
81
+ name: job
82
+ for name, job in jobs.items()
83
+ if not job.hidden
84
+ }
85
+
86
+ jobs_to_return = {}
87
+ for name in filter_list:
88
+ job = jobs.get(name, None)
89
+ if job is None:
90
+ if warn:
91
+ _warn(
92
+ f"Job '{name}' does not exist.",
93
+ stack=False,
94
+ )
95
+ continue
96
+ jobs_to_return[name] = job
97
+
98
+ return jobs_to_return
99
+
100
+
101
+ def get_restart_jobs(
102
+ executor_keys: Optional[str] = None,
103
+ jobs: Optional[Dict[str, Job]] = None,
104
+ debug: bool = False,
105
+ ) -> Dict[str, Job]:
106
+ """
107
+ Return jobs which were created with `--restart` or `--loop`.
108
+ """
109
+ if jobs is None:
110
+ jobs = get_jobs(executor_keys, debug=debug)
111
+
112
+ return {
113
+ name: job
114
+ for name, job in jobs.items()
115
+ if job.restart
116
+ }
117
+
118
+
119
+ def get_running_jobs(
120
+ executor_keys: Optional[str] = None,
121
+ jobs: Optional[Dict[str, Job]] = None,
122
+ debug: bool = False,
123
+ ) -> Dict[str, Job]:
124
+ """
125
+ Return a dictionary of running jobs.
126
+ """
127
+ if jobs is None:
128
+ jobs = get_jobs(executor_keys, debug=debug)
129
+
130
+ return {
131
+ name: job
132
+ for name, job in jobs.items()
133
+ if job.status == 'running'
134
+ }
135
+
136
+
137
+ def get_paused_jobs(
138
+ executor_keys: Optional[str] = None,
139
+ jobs: Optional[Dict[str, Job]] = None,
140
+ debug: bool = False,
141
+ ) -> Dict[str, Job]:
142
+ """
143
+ Return a dictionary of paused jobs.
144
+ """
145
+ if jobs is None:
146
+ jobs = get_jobs(executor_keys, debug=debug)
147
+
148
+ return {
149
+ name: job
150
+ for name, job in jobs.items()
151
+ if job.status == 'paused'
152
+ }
153
+
154
+
155
+ def get_stopped_jobs(
156
+ executor_keys: Optional[str] = None,
157
+ jobs: Optional[Dict[str, Job]] = None,
158
+ debug: bool = False,
159
+ ) -> Dict[str, Job]:
160
+ """
161
+ Return a dictionary of stopped jobs.
162
+ """
163
+ if jobs is None:
164
+ jobs = get_jobs(executor_keys, debug=debug)
165
+
166
+ return {
167
+ name: job
168
+ for name, job in jobs.items()
169
+ if job.status == 'stopped'
170
+ }
171
+
172
+
173
+ def check_restart_jobs(
174
+ executor_keys: Optional[str] = None,
175
+ silent: bool = False,
176
+ ) -> None:
177
+ """
178
+ Restart any stopped jobs which were created with `--restart`.
179
+
180
+ Parameters
181
+ ----------
182
+ executor_keys: Optional[str], default None
183
+ If provided, check jobs on the given remote API instance.
184
+ Otherwise check local jobs.
185
+
186
+ silent: bool, default False
187
+ If `True`, do not print the restart success message.
188
+ """
189
+ jobs = get_jobs(executor_keys)
190
+ for name, job in jobs.items():
191
+ success, msg = job.check_restart()
192
+ if not silent:
193
+ mrsm.pprint((success, msg))
194
+
195
+
196
+ def _check_restart_jobs_against_lock(*args, **kwargs):
197
+ from meerschaum.config.paths import CHECK_JOBS_LOCK_PATH
198
+ fasteners = mrsm.attempt_import('fasteners')
199
+ lock = fasteners.InterProcessLock(CHECK_JOBS_LOCK_PATH)
200
+ with lock:
201
+ check_restart_jobs(*args, **kwargs)
202
+
203
+
204
+ _check_loop_stop_thread = None
205
+ def start_check_jobs_thread():
206
+ """
207
+ Start a thread to regularly monitor jobs.
208
+ """
209
+ import atexit
210
+ from functools import partial
211
+ from meerschaum.utils.threading import RepeatTimer
212
+ from meerschaum.config.static import STATIC_CONFIG
213
+
214
+ global _check_loop_stop_thread
215
+ sleep_seconds = STATIC_CONFIG['jobs']['check_restart_seconds']
216
+
217
+ _check_loop_stop_thread = RepeatTimer(
218
+ sleep_seconds,
219
+ partial(
220
+ _check_restart_jobs_against_lock,
221
+ silent=True,
222
+ )
223
+ )
224
+ _check_loop_stop_thread.daemon = False
225
+ atexit.register(stop_check_jobs_thread)
226
+
227
+ _check_loop_stop_thread.start()
228
+
229
+
230
+ def stop_check_jobs_thread():
231
+ """
232
+ Stop the job monitoring thread.
233
+ """
234
+ from meerschaum.config.paths import CHECK_JOBS_LOCK_PATH
235
+ from meerschaum.utils.warnings import warn
236
+ if _check_loop_stop_thread is None:
237
+ return
238
+
239
+ _check_loop_stop_thread.cancel()
240
+
241
+ try:
242
+ if CHECK_JOBS_LOCK_PATH.exists():
243
+ CHECK_JOBS_LOCK_PATH.unlink()
244
+ except Exception as e:
245
+ warn(f"Failed to remove check jobs lock file:\n{e}")
meerschaum/utils/misc.py CHANGED
@@ -875,7 +875,7 @@ def dict_from_od(od: collections.OrderedDict) -> Dict[Any, Any]:
875
875
  _d[k] = dict_from_od(v)
876
876
  return _d
877
877
 
878
- def remove_ansi(s : str) -> str:
878
+ def remove_ansi(s: str) -> str:
879
879
  """
880
880
  Remove ANSI escape characters from a string.
881
881
 
@@ -899,10 +899,10 @@ def remove_ansi(s : str) -> str:
899
899
 
900
900
 
901
901
  def get_connector_labels(
902
- *types: str,
903
- search_term: str = '',
904
- ignore_exact_match = True,
905
- ) -> List[str]:
902
+ *types: str,
903
+ search_term: str = '',
904
+ ignore_exact_match = True,
905
+ ) -> List[str]:
906
906
  """
907
907
  Read connector labels from the configuration dictionary.
908
908
 
@@ -1063,7 +1063,7 @@ def async_wrap(func):
1063
1063
  loop = asyncio.get_event_loop()
1064
1064
  pfunc = partial(func, *args, **kwargs)
1065
1065
  return await loop.run_in_executor(executor, pfunc)
1066
- return run
1066
+ return run
1067
1067
 
1068
1068
 
1069
1069
  def debug_trace(browser: bool = True):
@@ -1077,17 +1077,17 @@ def debug_trace(browser: bool = True):
1077
1077
 
1078
1078
 
1079
1079
  def items_str(
1080
- items: List[Any],
1081
- quotes: bool = True,
1082
- quote_str: str = "'",
1083
- commas: bool = True,
1084
- comma_str: str = ',',
1085
- and_: bool = True,
1086
- and_str: str = 'and',
1087
- oxford_comma: bool = True,
1088
- spaces: bool = True,
1089
- space_str = ' ',
1090
- ) -> str:
1080
+ items: List[Any],
1081
+ quotes: bool = True,
1082
+ quote_str: str = "'",
1083
+ commas: bool = True,
1084
+ comma_str: str = ',',
1085
+ and_: bool = True,
1086
+ and_str: str = 'and',
1087
+ oxford_comma: bool = True,
1088
+ spaces: bool = True,
1089
+ space_str = ' ',
1090
+ ) -> str:
1091
1091
  """
1092
1092
  Return a formatted string if list items separated by commas.
1093
1093
 
@@ -1522,6 +1522,7 @@ def safely_extract_tar(tarf: 'file', output_dir: Union[str, 'pathlib.Path']) ->
1522
1522
 
1523
1523
  return safe_extract(tarf, output_dir)
1524
1524
 
1525
+
1525
1526
  ##################
1526
1527
  # Legacy imports #
1527
1528
  ##################
@@ -48,7 +48,7 @@ packages: Dict[str, Dict[str, str]] = {
48
48
  'prompt_toolkit' : 'prompt-toolkit>=3.0.39',
49
49
  'more_itertools' : 'more-itertools>=8.7.0',
50
50
  'daemon' : 'python-daemon>=0.2.3',
51
- 'fasteners' : 'fasteners>=0.18.0',
51
+ 'fasteners' : 'fasteners>=0.19.0',
52
52
  'psutil' : 'psutil>=5.8.0',
53
53
  'watchfiles' : 'watchfiles>=0.21.0',
54
54
  'dill' : 'dill>=0.3.3',
@@ -58,7 +58,7 @@ packages: Dict[str, Dict[str, str]] = {
58
58
  },
59
59
  'drivers': {
60
60
  'cryptography' : 'cryptography>=38.0.1',
61
- 'psycopg' : 'psycopg[binary]>=3.1.18',
61
+ 'psycopg' : 'psycopg[binary]>=3.2.1',
62
62
  'pymysql' : 'PyMySQL>=0.9.0',
63
63
  'aiomysql' : 'aiomysql>=0.0.21',
64
64
  'sqlalchemy_cockroachdb' : 'sqlalchemy-cockroachdb>=2.0.0',
@@ -66,6 +66,7 @@ def prompt(
66
66
  from meerschaum.config import get_config
67
67
  from meerschaum.config.static import _static_config
68
68
  from meerschaum.utils.misc import filter_keywords
69
+ from meerschaum.utils.daemon import running_in_daemon
69
70
  noask = check_noask(noask)
70
71
  if not noask:
71
72
  prompt_toolkit = attempt_import('prompt_toolkit')
@@ -102,14 +103,21 @@ def prompt(
102
103
  question += '\n' + other_lines
103
104
  question += ' '
104
105
 
105
- answer = (
106
- prompt_toolkit.prompt(
107
- prompt_toolkit.formatted_text.ANSI(question),
108
- wrap_lines = wrap_lines,
109
- default = default_editable or '',
110
- **filter_keywords(prompt_toolkit.prompt, **kw)
111
- ) if not noask else ''
112
- )
106
+ if not running_in_daemon():
107
+ answer = (
108
+ prompt_toolkit.prompt(
109
+ prompt_toolkit.formatted_text.ANSI(question),
110
+ wrap_lines = wrap_lines,
111
+ default = default_editable or '',
112
+ **filter_keywords(prompt_toolkit.prompt, **kw)
113
+ ) if not noask else ''
114
+ )
115
+ else:
116
+ print(question, end='', flush=True)
117
+ try:
118
+ answer = input()
119
+ except EOFError:
120
+ answer = ''
113
121
  if noask:
114
122
  print(question)
115
123
  if answer == '' and default is not None:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: meerschaum
3
- Version: 2.2.7
3
+ Version: 2.3.0.dev1
4
4
  Summary: Sync Time-Series Pipes with Meerschaum
5
5
  Home-page: https://meerschaum.io
6
6
  Author: Bennett Meares
@@ -51,7 +51,7 @@ Requires-Dist: databases >=0.4.0 ; extra == 'api'
51
51
  Requires-Dist: aiosqlite >=0.16.0 ; extra == 'api'
52
52
  Requires-Dist: asyncpg >=0.21.0 ; extra == 'api'
53
53
  Requires-Dist: cryptography >=38.0.1 ; extra == 'api'
54
- Requires-Dist: psycopg[binary] >=3.1.18 ; extra == 'api'
54
+ Requires-Dist: psycopg[binary] >=3.2.1 ; 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'
@@ -74,7 +74,7 @@ Requires-Dist: packaging >=21.3.0 ; extra == 'api'
74
74
  Requires-Dist: prompt-toolkit >=3.0.39 ; extra == 'api'
75
75
  Requires-Dist: more-itertools >=8.7.0 ; extra == 'api'
76
76
  Requires-Dist: python-daemon >=0.2.3 ; extra == 'api'
77
- Requires-Dist: fasteners >=0.18.0 ; extra == 'api'
77
+ Requires-Dist: fasteners >=0.19.0 ; extra == 'api'
78
78
  Requires-Dist: psutil >=5.8.0 ; extra == 'api'
79
79
  Requires-Dist: watchfiles >=0.21.0 ; extra == 'api'
80
80
  Requires-Dist: dill >=0.3.3 ; extra == 'api'
@@ -124,7 +124,7 @@ Requires-Dist: packaging >=21.3.0 ; extra == 'core'
124
124
  Requires-Dist: prompt-toolkit >=3.0.39 ; extra == 'core'
125
125
  Requires-Dist: more-itertools >=8.7.0 ; extra == 'core'
126
126
  Requires-Dist: python-daemon >=0.2.3 ; extra == 'core'
127
- Requires-Dist: fasteners >=0.18.0 ; extra == 'core'
127
+ Requires-Dist: fasteners >=0.19.0 ; extra == 'core'
128
128
  Requires-Dist: psutil >=5.8.0 ; extra == 'core'
129
129
  Requires-Dist: watchfiles >=0.21.0 ; extra == 'core'
130
130
  Requires-Dist: dill >=0.3.3 ; extra == 'core'
@@ -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: psycopg[binary] >=3.1.18 ; extra == 'drivers'
164
+ Requires-Dist: psycopg[binary] >=3.2.1 ; 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'
@@ -211,7 +211,7 @@ Requires-Dist: packaging >=21.3.0 ; extra == 'full'
211
211
  Requires-Dist: prompt-toolkit >=3.0.39 ; extra == 'full'
212
212
  Requires-Dist: more-itertools >=8.7.0 ; extra == 'full'
213
213
  Requires-Dist: python-daemon >=0.2.3 ; extra == 'full'
214
- Requires-Dist: fasteners >=0.18.0 ; extra == 'full'
214
+ Requires-Dist: fasteners >=0.19.0 ; extra == 'full'
215
215
  Requires-Dist: psutil >=5.8.0 ; extra == 'full'
216
216
  Requires-Dist: watchfiles >=0.21.0 ; extra == 'full'
217
217
  Requires-Dist: dill >=0.3.3 ; extra == 'full'
@@ -219,7 +219,7 @@ Requires-Dist: virtualenv >=20.1.0 ; extra == 'full'
219
219
  Requires-Dist: APScheduler >=4.0.0a5 ; extra == 'full'
220
220
  Requires-Dist: uv >=0.2.11 ; extra == 'full'
221
221
  Requires-Dist: cryptography >=38.0.1 ; extra == 'full'
222
- Requires-Dist: psycopg[binary] >=3.1.18 ; extra == 'full'
222
+ Requires-Dist: psycopg[binary] >=3.2.1 ; extra == 'full'
223
223
  Requires-Dist: PyMySQL >=0.9.0 ; extra == 'full'
224
224
  Requires-Dist: aiomysql >=0.0.21 ; extra == 'full'
225
225
  Requires-Dist: sqlalchemy-cockroachdb >=2.0.0 ; extra == 'full'
@@ -273,7 +273,7 @@ Requires-Dist: databases >=0.4.0 ; extra == 'sql'
273
273
  Requires-Dist: aiosqlite >=0.16.0 ; extra == 'sql'
274
274
  Requires-Dist: asyncpg >=0.21.0 ; extra == 'sql'
275
275
  Requires-Dist: cryptography >=38.0.1 ; extra == 'sql'
276
- Requires-Dist: psycopg[binary] >=3.1.18 ; extra == 'sql'
276
+ Requires-Dist: psycopg[binary] >=3.2.1 ; extra == 'sql'
277
277
  Requires-Dist: PyMySQL >=0.9.0 ; extra == 'sql'
278
278
  Requires-Dist: aiomysql >=0.0.21 ; extra == 'sql'
279
279
  Requires-Dist: sqlalchemy-cockroachdb >=2.0.0 ; extra == 'sql'
@@ -296,7 +296,7 @@ Requires-Dist: packaging >=21.3.0 ; extra == 'sql'
296
296
  Requires-Dist: prompt-toolkit >=3.0.39 ; extra == 'sql'
297
297
  Requires-Dist: more-itertools >=8.7.0 ; extra == 'sql'
298
298
  Requires-Dist: python-daemon >=0.2.3 ; extra == 'sql'
299
- Requires-Dist: fasteners >=0.18.0 ; extra == 'sql'
299
+ Requires-Dist: fasteners >=0.19.0 ; extra == 'sql'
300
300
  Requires-Dist: psutil >=5.8.0 ; extra == 'sql'
301
301
  Requires-Dist: watchfiles >=0.21.0 ; extra == 'sql'
302
302
  Requires-Dist: dill >=0.3.3 ; extra == 'sql'
@@ -1,10 +1,10 @@
1
- meerschaum/__init__.py,sha256=ajWutNBmINxce821AXajfQ4CygmvF8vyIczSmYAKLRE,1573
1
+ meerschaum/__init__.py,sha256=wx5DF7gMpBt7zjDNsj8IxJ2PmhRGI5EdwjziOiGbWew,1636
2
2
  meerschaum/__main__.py,sha256=-xIXokhJ5vV784zDBF4engE3J1nj3LDHlLIRYMQ5nXY,2883
3
3
  meerschaum/_internal/__init__.py,sha256=ilC7utfKtin7GAvuN34fKyUQYfPyqH0Mm3MJF5iyEf4,169
4
- meerschaum/_internal/entry.py,sha256=WwWg0kqE_tBqAtyAa2f634jM-RDtj6A2wCXgeAzANP0,5537
4
+ meerschaum/_internal/entry.py,sha256=4zHxcNFffxNUVVwYCjWMupG9CFeY78rKKsRfbmCPRVc,6228
5
5
  meerschaum/_internal/arguments/__init__.py,sha256=HFciFQgo2ZOT19Mo6CpLhPYlpLYh2sNn1C9Lo7NMADc,519
6
6
  meerschaum/_internal/arguments/_parse_arguments.py,sha256=ZPkJamB6noJAEpG_cyZGVYu6hXxtQ7H7c-j7gq3Csi8,10405
7
- meerschaum/_internal/arguments/_parser.py,sha256=uESRIjANdJhz5cEkZg2Zj3ZzeUQ3-YklM4NlUpE44lo,13969
7
+ meerschaum/_internal/arguments/_parser.py,sha256=vRqs7NuDSC0EDkmaDLwyTi4XDjAQOhon1lIEZjjtiEQ,14842
8
8
  meerschaum/_internal/docs/__init__.py,sha256=ZQYHWo6n0kfLLkyG36YXqTYvv2Pc7it5HZHMylT6cBA,126
9
9
  meerschaum/_internal/docs/index.py,sha256=Qovl1fI-KqCz7KtxCIWklqUGUcJ8Sbx4UKAEarrUn_A,18056
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=TDJT7SCzQp5mjjotXhRZ99okqN3uF9jG7KdWWxMeO08,33324
15
+ meerschaum/_internal/shell/Shell.py,sha256=sODcF8Z2yXRQv8AkEAOR3Iq_hIYv_tXERALCJ9S_Rgc,36693
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
@@ -22,12 +22,13 @@ meerschaum/_internal/term/TermPageHandler.py,sha256=Rt5S47Pr_3HLJc8xIXpZUczYE_Dw
22
22
  meerschaum/_internal/term/__init__.py,sha256=eXjfRzpnASWomB4xpY2AfzC_CLenkInNnVWSLZEexlg,1638
23
23
  meerschaum/_internal/term/tools.py,sha256=dXVAimKD-Yv2fg2WOTr0YGBY7XDKjQqw-RizcS65YVI,727
24
24
  meerschaum/actions/__init__.py,sha256=ZUdQk6FvuMqyEvLCP-RiDDlIK4NwkqLRgFZSKq04qq4,11440
25
- meerschaum/actions/api.py,sha256=mWhv4bn3Ap17_Gqf2Cx9bAsHKG-Zhy072pBbNzHLEJc,12756
25
+ meerschaum/actions/api.py,sha256=8wjREHNRkl8WBgtz1KfWmAVjeFR_J2j7ghXjSyYUW3g,12603
26
+ meerschaum/actions/attach.py,sha256=sMR7CZbvCadnOBJtxx1CklqUXChRCvuChTxTe0rS5Ew,2433
26
27
  meerschaum/actions/bootstrap.py,sha256=9D3cBHzgZbZyWy-Y7iQgk9bpTbKEhumFKbIIThZgPXI,14058
27
28
  meerschaum/actions/clear.py,sha256=OoFZE0bK5m8s3GLNZcixuVT0DMj1izXVxGCATcmUGbI,4851
28
29
  meerschaum/actions/copy.py,sha256=8g3ANXfVdvuyaoXcZjgTg3BxHTOhHGrzVDOOsTBrpSU,6213
29
30
  meerschaum/actions/deduplicate.py,sha256=puYyxeFYEUy1Sd2IOcZB2e6MrNxAZl2bTLmNzFDkCiw,1167
30
- meerschaum/actions/delete.py,sha256=RDkIQEnnN8t52dMAJpxoQ7LN-pzH7UAfGF8yT5oNiIw,17325
31
+ meerschaum/actions/delete.py,sha256=8uNx8WVLo2ym1Kc-lMVUhNN7lDijWAGqGQjUJj_gnPk,17507
31
32
  meerschaum/actions/drop.py,sha256=Hd5h4rrWd7qL2rTqglsTonUsEoH7qQlsfqNFSHGeqr0,2453
32
33
  meerschaum/actions/edit.py,sha256=93_mlZhPfiErs9TJ3_Xf9KYxIopaR86nQXJlZsKNNok,11752
33
34
  meerschaum/actions/install.py,sha256=akzzgsvy5yqUFuUqzSMG4eBKARY2iSnL3n_BiaNcM58,7431
@@ -39,11 +40,11 @@ meerschaum/actions/register.py,sha256=bOQY0AlZlchsxPF27LL7G1OgdiCyj7mkBaD-PO6bFZ
39
40
  meerschaum/actions/reload.py,sha256=gMXeFBGVfyQ7uhKhYf6bLaDMD0fLPcA9BrLBSiuvWIc,508
40
41
  meerschaum/actions/setup.py,sha256=KkAGWcgwzl_L6A19fTmTX1KtBjW2FwD8QenLjPy0mQQ,3205
41
42
  meerschaum/actions/sh.py,sha256=fLfTJaacKu4sjLTRqEzzYlT2WbbdZBEczsKb6F-qAek,2026
42
- meerschaum/actions/show.py,sha256=7uT49RN7sX0z1eFVS1nxPgu1ttqFTilbKpXuh5qNGC4,29687
43
+ meerschaum/actions/show.py,sha256=kPKKKvfM_orc9wqkIDU3Nq9Hy-vOYnu3Nne7XuyigGg,28165
43
44
  meerschaum/actions/sql.py,sha256=wYofwk1vGO96U2ncigGEfMtYMZeprz2FR1PRRZhkAPI,4311
44
45
  meerschaum/actions/stack.py,sha256=7ODAxzmCx8i9AHxvkbr5ZtzUNPpY-iqlSVo4rZHMOw4,5900
45
- meerschaum/actions/start.py,sha256=9Ej3Hk7qXfbrBaQq17KirTII_4Pa-BWSdrkutMnLA3k,18352
46
- meerschaum/actions/stop.py,sha256=lnqxGTzv1la4F3l2WbNt2utua6Mp92_Z7pjLlgr1A18,4267
46
+ meerschaum/actions/start.py,sha256=osQtYyhGM4vk2RwDzel5WXNVWBJqgVYSXNisRLY9YUM,18105
47
+ meerschaum/actions/stop.py,sha256=HM_oCMlQWARXa3kh60SdxvUHWTJV42R9B8VBUmXCE9U,4472
47
48
  meerschaum/actions/sync.py,sha256=AkH-1O5bkUC-UElQGr0lRhrX-z18ZY2nBPSy9EsW1Kc,17506
48
49
  meerschaum/actions/tag.py,sha256=SJf5qFW0ccLXjqlTdkK_0MCcrCMdg6xhYrhKdco0hdA,3053
49
50
  meerschaum/actions/uninstall.py,sha256=tBXhdXggSieGEQe4EPGxpgMK0MZTJCweNvAJ9-59El0,5776
@@ -51,15 +52,15 @@ meerschaum/actions/upgrade.py,sha256=uhFhAPmguGDgxLa1UkVZnPQ-JRcbmOdExE38v-HrLvo
51
52
  meerschaum/actions/verify.py,sha256=tY5slGpHiWiE0v9TDnjbmxSKn86zBnu9WBpixUgKNQU,4885
52
53
  meerschaum/api/__init__.py,sha256=tjxyG8SQR_ymYuj3YUaadlguXBj-edL4kY_CxWYrYHk,7449
53
54
  meerschaum/api/_chain.py,sha256=h8-WXUGXX6AqzdALfsBC5uv0FkAcLdHJXCGzqzuq89k,875
54
- meerschaum/api/_events.py,sha256=NrjiabEr7rmHMfxnX07DOGzr9sPiEbRkFqPjuA_8Zx8,1603
55
- meerschaum/api/_oauth2.py,sha256=o4ub9gMLvJ5ewxuCbk78kA8c6MOHV4FDxURupH1lT7U,1645
56
- meerschaum/api/_websockets.py,sha256=OmrSDGx3xGlfP5XXeLEyYW6-Y3iRUcB-xSqL3RWsjqQ,1609
55
+ meerschaum/api/_events.py,sha256=RSFltHHIZP52qBSQGwyrPwZUmhvKSv2NBd78wcrCWPw,2020
56
+ meerschaum/api/_oauth2.py,sha256=SDdFbssy-9QoFBkuZZmep7mCX7jsn_zjqCbMXiksEVg,1647
57
+ meerschaum/api/_websockets.py,sha256=Rso85r4Yj8yUB-Oh8T8bGBvO5vCzZboryOjY-VnxdZQ,1601
57
58
  meerschaum/api/dash/__init__.py,sha256=NkqnUP77c02J6sjWp5PGw48Hz9Dhov7gBO5f2mK2b40,2198
58
59
  meerschaum/api/dash/actions.py,sha256=eUClPPdNVNSCtyq8Ecr1saasxj5VBgd1gcXejvQxXEc,9418
59
60
  meerschaum/api/dash/components.py,sha256=oGX7HFzNCi37iMww747iL3bbB52ZTt9tFa2iLohffg4,6399
60
61
  meerschaum/api/dash/connectors.py,sha256=nJxBOFldtCMJLYjUSVYZwX5BO-LNjTNHgoEaXe-0XMo,843
61
62
  meerschaum/api/dash/graphs.py,sha256=wJUDWzcLN8-C3xko6rj0F2v7Rt8YDkSXoVkkXJjYGIk,2046
62
- meerschaum/api/dash/jobs.py,sha256=htqnrtAGCOgn2-THezMGYM8n1E-M-sM5A5qNmOGfHzg,7529
63
+ meerschaum/api/dash/jobs.py,sha256=auCN0EKSX-Xiuhz2n4D80gv1MtCzHyhTFy2Pwp8URxA,7628
63
64
  meerschaum/api/dash/keys.py,sha256=hzEVeN60SAfVTVSO5lajGaykxRIKGhj9Ph00HRJnNoE,12598
64
65
  meerschaum/api/dash/pipes.py,sha256=RVVYIJJy4G01cXou9OT8Gr5ZsygQ_GUqJDDhU1akhi8,20615
65
66
  meerschaum/api/dash/plugins.py,sha256=JiQjeeCT21MoPDo81pkTXw9viqIH6xpivQgZEO4qtzQ,3676
@@ -112,13 +113,14 @@ meerschaum/api/resources/templates/index.html,sha256=Ck-S0U5abJgB-wTOKIGg0ispGzK
112
113
  meerschaum/api/resources/templates/old_index.html,sha256=BDeOlcXhSsBH3-NaRtuX4Z1sDuhOoCMa_Dq-6g5RMpc,1711
113
114
  meerschaum/api/resources/templates/secret.html,sha256=0QWkm4ZoN81Aw1pd2-62rGCvx3nXPHfFUoegj3Iy8Ls,141
114
115
  meerschaum/api/resources/templates/termpage.html,sha256=qspXRuOkzqOn2mXw9mmUldzsvOHq_LyaywQ29CUevp0,4527
115
- meerschaum/api/routes/__init__.py,sha256=vEXVwhvhVlGf0SFBjjCpQiYM4mMoxH3oywBgVOaKF_w,564
116
- meerschaum/api/routes/_actions.py,sha256=nPLJlhnl0kDjsjFiBmUub63fe1N1_4cVimmlxtInsK0,2240
116
+ meerschaum/api/routes/__init__.py,sha256=jbkeFNl51Tg8aT5gWe560ZLZLojFJsLMe5IENRjRkb0,606
117
+ meerschaum/api/routes/_actions.py,sha256=uZCf6HdSxixEJ2S2YJhzU8zx1E5mmKXPsVHN8xJW-z4,4400
117
118
  meerschaum/api/routes/_connectors.py,sha256=NNbcn5xWhKqw2PqueSEaqRaZ95hFGDKazG5lE7gsssc,1849
118
119
  meerschaum/api/routes/_index.py,sha256=QI6CBo6pI2Zi0a6fJHDjZfiLa9f4okb0BGe3A_JD0kM,578
120
+ meerschaum/api/routes/_jobs.py,sha256=4dVbzu_3d9m5Di9fjQ-2m6qn9KuN-UwY0BhPD8D_8jM,8459
119
121
  meerschaum/api/routes/_login.py,sha256=psPKmFkXgYVX83NepqwIhaLsQ5uWgOc4F2QZtPGxY1A,2482
120
122
  meerschaum/api/routes/_misc.py,sha256=05--9ZVFeaCgZrHER2kA3SYdK4TyfkEXOCjLvPbum-w,2469
121
- meerschaum/api/routes/_pipes.py,sha256=d94fAjvyVjFUpHaWxJAIocyq-5EeQ1mlMRcYOn4GygA,21597
123
+ meerschaum/api/routes/_pipes.py,sha256=1gBuE4E-QvIK_kmbmiw7uLcXjnIobFI1t4tb2skpp6E,21592
122
124
  meerschaum/api/routes/_plugins.py,sha256=vR6-uTJraY1YEJMuRvds1-xFLB2mexxnp2dJwN_0rVo,6216
123
125
  meerschaum/api/routes/_users.py,sha256=SfAkZFKrKnGjpzj8SFIKzPemzQJOH3oB72h19EaUvcQ,7204
124
126
  meerschaum/api/routes/_version.py,sha256=2t-nw_9IxCVZCNEar0LOwmut2zsClRVHjiOOUx16cu0,825
@@ -126,18 +128,18 @@ meerschaum/api/routes/_webterm.py,sha256=7eilgDXckpEc2LyeNmJS5YO6HxlyMkwPnAMWd7e
126
128
  meerschaum/api/tables/__init__.py,sha256=e2aNC0CdlWICTUMx1i9RauF8Pm426J0RZJbsJWv4SWo,482
127
129
  meerschaum/config/__init__.py,sha256=jZgQSjvbOWyvGouqRgIeYBg9Pp343_9CDsCWWpwYDGY,11577
128
130
  meerschaum/config/_dash.py,sha256=BJHl4xMrQB-YHUEU7ldEW8q_nOPoIRSOqLrfGElc6Dw,187
129
- meerschaum/config/_default.py,sha256=J6AWxxXM4mntCdkM6bKIpyQznZ5NuMICmTaurF11J9Q,5275
131
+ meerschaum/config/_default.py,sha256=vnUBmP2LYBVba1KWhboUid4-W0qHeG2GPjmrXN3yFzc,5308
130
132
  meerschaum/config/_edit.py,sha256=_kabgFbJdI5kcLs-JIsoaTo0JdyxnPnBdrlTyTAgPm8,8236
131
133
  meerschaum/config/_environment.py,sha256=Vv4DLDfc2vKLbCLsMvkQDj77K4kEvHKEBmUBo-wCrgo,4419
132
134
  meerschaum/config/_formatting.py,sha256=OMuqS1EWOsj_34wSs2tOqGIWci3bTMIZ5l-uelZgsIM,6672
133
135
  meerschaum/config/_jobs.py,sha256=2bEikO48qVSguFS3lrbWz6uiKt_0b3oSRWhwyz8RRDM,1279
134
136
  meerschaum/config/_patch.py,sha256=21N30q1ANmWMDQ-2RUjpMx7KafWfPQ3lKx9rrMqg1s4,1526
135
- meerschaum/config/_paths.py,sha256=2O31aBfS1W_uJOOkG_4-7IeIJ-IVrl24xqTIzgVjWMk,9276
137
+ meerschaum/config/_paths.py,sha256=Tfet05CY4OsIwumZO98h-L1Jy8_DH_OQ-0M1UBp83tk,9365
136
138
  meerschaum/config/_preprocess.py,sha256=-AEA8m_--KivZwTQ1sWN6LTn5sio_fUr2XZ51BO6wLs,1220
137
139
  meerschaum/config/_read_config.py,sha256=WFZKIXZMDe_ca0ES7ivgM_mnwShvFxLdoeisT_X5-h0,14720
138
- meerschaum/config/_shell.py,sha256=n0LUH1GXi2OGHY_khhoMF3eXph_ntnfCtGxy9DUwb2U,4083
140
+ meerschaum/config/_shell.py,sha256=FXml2CqtvjY0wVTS4B2VqMKaGlWJHPK-_PT_Nr48ys4,4244
139
141
  meerschaum/config/_sync.py,sha256=oK2ZujO2T1he08BXCFyiniBUevNGWSQKXLcS_jRv_7Y,4155
140
- meerschaum/config/_version.py,sha256=SujFANNU5qkD1Mq99kBYwijO621qWc_H2F9f0IxNZUg,71
142
+ meerschaum/config/_version.py,sha256=qr-fEo2FFI5Xvih81aaNY1pLvQj86Jj6DjKkA6RJsG4,76
141
143
  meerschaum/config/paths.py,sha256=JjibeGN3YAdSNceRwsd42aNmeUrIgM6ndzC8qZAmNI0,621
142
144
  meerschaum/config/resources/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
143
145
  meerschaum/config/stack/__init__.py,sha256=Yt7GNzC_hz7iUDZ4gVho_lugJO2DnXgnMtsMG_ReoRg,9114
@@ -145,15 +147,16 @@ meerschaum/config/stack/grafana/__init__.py,sha256=LNXQw2FvHKrD68RDhqDmi2wJjAHaK
145
147
  meerschaum/config/stack/mosquitto/__init__.py,sha256=-OwOjq8KiBoSH_pmgCAAF3Dp3CRD4KgAEdimZSadROs,186
146
148
  meerschaum/config/stack/mosquitto/resources/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
147
149
  meerschaum/config/stack/resources/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
148
- meerschaum/config/static/__init__.py,sha256=GNQozN7S-rUxKj2whXk0l2On162yG2oOkkosPVeYC1A,4547
150
+ meerschaum/config/static/__init__.py,sha256=8bNRKw7nDI9EojtvPydM3UPHVbZKeiffbPxxrMxamsM,4735
149
151
  meerschaum/connectors/Connector.py,sha256=sa95S2upqaMpwZoVm3SwDovUoMM5JiWD6qg6QT4jxdA,6476
150
- meerschaum/connectors/__init__.py,sha256=UNb_CCXlLnYCtCiEN78I2L5xQDmEOIr6GlBLB7-R6oc,12194
151
- meerschaum/connectors/parse.py,sha256=gidA2jvOLTvEeL5hM9JjcUwkMRBadUhd4IfA5Jy1tgg,4044
152
+ meerschaum/connectors/__init__.py,sha256=jo6X4AdhB2BXKIsoqHOqWtNqMaqLa_EqwopPNVE4vkc,12147
153
+ meerschaum/connectors/parse.py,sha256=F2RLb6U7lW0BGDxSHcXdCDf5g4RibKFjX8jOAcfYvFU,4451
152
154
  meerschaum/connectors/poll.py,sha256=gIY9TvFBqMvMNQvR0O2No7koLLz2PjfExBr_Dsosgpg,7363
153
- meerschaum/connectors/api/APIConnector.py,sha256=4H0y1Pm-QlMEtntE9lctS38Tie8dpDVpcHr-FFPP3J8,4474
155
+ meerschaum/connectors/api/APIConnector.py,sha256=CRPrlarB3QccY2sm7D1J-tZTfLcvP3BENwDE_skWKU0,4864
154
156
  meerschaum/connectors/api/__init__.py,sha256=JwKrGtuE5aOd2VnsRwudFBYyBf5IxczOwPVdNvCUgSQ,205
155
- meerschaum/connectors/api/_actions.py,sha256=d4LcR6HTcD9NXnfb5E7b2XvvZlxsfE1kzo4gjWki9-k,2668
157
+ meerschaum/connectors/api/_actions.py,sha256=KS2Ib5_yHuN0Fw86wyg0bXORV2xY4m3DQrBtcqIIjnY,2343
156
158
  meerschaum/connectors/api/_fetch.py,sha256=Khq9AFr1nk8Dsmcedb77aWhAuHw0JGgVeahDG95Q5MQ,2072
159
+ meerschaum/connectors/api/_jobs.py,sha256=iPEVy331-zQVQ37hlWI1ddFQTHbJGxLuxi_3RTdWC08,7501
157
160
  meerschaum/connectors/api/_login.py,sha256=5GsD-B214vr5EYfM3XrTUs1sTFApxZA-9dNxq8oNSyg,2050
158
161
  meerschaum/connectors/api/_misc.py,sha256=OZRZBYOokKIEjmQaR8jUYgu6ZRn9VzXBChzR8CfDv_w,1092
159
162
  meerschaum/connectors/api/_pipes.py,sha256=wf-_jqFBiTNw2s2msp0Ye6IyTl5JWiyC9aLBI0PQuPs,20962
@@ -197,46 +200,49 @@ meerschaum/core/Plugin/__init__.py,sha256=UXg64EvJPgI1PCxkY_KM02-ZmBm4FZpLPIQR_u
197
200
  meerschaum/core/User/_User.py,sha256=CApB7Y0QJL6S9QOCCfrG4SbPuPXJ9AsAYQ5pASMP_Aw,6527
198
201
  meerschaum/core/User/__init__.py,sha256=lJ7beIZTG9sO4dAi3367fFBl17dXYEWHKi7HoaPlDyk,193
199
202
  meerschaum/plugins/_Plugin.py,sha256=q1B4gVAO2BGA-PIR0HI3-O9q1n8BaT7tSANIyW7gUPg,34084
200
- meerschaum/plugins/__init__.py,sha256=3CwpVCXNYZXO3zYyDu7gNQflsZ2rwXXMDSbzOb9j6ZU,23518
203
+ meerschaum/plugins/__init__.py,sha256=eo4evfzcZYzVVF29SUSuwAY6T-pDWOHlv5bgP4UpQd4,26176
201
204
  meerschaum/plugins/bootstrap.py,sha256=qg9MQ1YAU8ShwGqWDl38WjiXLIxDPl95pSIGDLN9rOw,11423
202
205
  meerschaum/utils/__init__.py,sha256=QrK1K9hIbPCRCM5k2nZGFqGnrqhA0Eh-iSmCU7FG6Cs,612
203
206
  meerschaum/utils/_get_pipes.py,sha256=dlPckpYYyM0IwRZ2VL0u9DiEeYhr5Ho9gkzvWxzNVwI,11460
204
207
  meerschaum/utils/dataframe.py,sha256=asZ2PMWVp7Gyh5RsJDCyW2E0RY7_5e8PAvV4Tr9ezKw,32056
205
208
  meerschaum/utils/debug.py,sha256=GyIzJmunkoPnOcZNYVQdT4Sgd-aOb5MI2VbIgATOjIQ,3695
206
209
  meerschaum/utils/interactive.py,sha256=t-6jWozXSqL7lYGDHuwiOjTgr-UKhdcg61q_eR5mikI,3196
207
- meerschaum/utils/misc.py,sha256=YzyMlz2nDk5L3FC7CaUY1kAlMpmodIOrYckc9R9InsM,45981
210
+ meerschaum/utils/misc.py,sha256=0x9_BGZFRMczPYDQtpUtMD401Ft9bTRa8hk9YqPwT30,45920
208
211
  meerschaum/utils/networking.py,sha256=Sr_eYUGW8_UV9-k9LqRFf7xLtbUcsDucODyLCRsFRUc,1006
209
212
  meerschaum/utils/pool.py,sha256=vkE42af4fjrTEJTxf6Ek3xGucm1MtEkpsSEiaVzNKHs,2655
210
213
  meerschaum/utils/process.py,sha256=UyiNszYXdnjF6WN8Tt0NchWjkCV10MbOXEFn_TAhXeg,7510
211
- meerschaum/utils/prompt.py,sha256=_-gpAEF5FvGNnnanXfLQIHeFd4eK14iQ6rQ0cZUjnRA,18741
214
+ meerschaum/utils/prompt.py,sha256=JCM36APVEJ6hN-ncQOD2qXtbyVlIey5OhhyWSIdRs9k,19008
212
215
  meerschaum/utils/schedule.py,sha256=WSJ0eDGvCVxkQwbUc_7vNm0uuKf9WJcY2NCZZdbnZrk,10837
213
216
  meerschaum/utils/sql.py,sha256=4sCNEpgUd6uFz6ySs4nnUMVaOT0YAvPM1ZlQYJTSF-0,46656
214
217
  meerschaum/utils/threading.py,sha256=3N8JXPAnwqJiSjuQcbbJg3Rv9-CCUMJpeQRfKFR7MaA,2489
215
218
  meerschaum/utils/typing.py,sha256=U3MC347sh1umpa3Xr1k71eADyDmk4LB6TnVCpq8dVzI,2830
216
219
  meerschaum/utils/warnings.py,sha256=IDiwYspsfjIi1gtk3V9cSo9vNLckB9bCsHhRClpPJTc,6639
217
220
  meerschaum/utils/yaml.py,sha256=Da9ZtNdT8f68sqz6g4eLQM3jz8QQ2J9_FglX-fw5VXY,3901
218
- meerschaum/utils/daemon/Daemon.py,sha256=zG42M20BgpOIj9MtCsNFAeRyR6sdkWW304D1xF3iGNc,34176
219
- meerschaum/utils/daemon/FileDescriptorInterceptor.py,sha256=53tPCiYLzyz8hWUyL1sjaNUcS6JcJbKsBWEjgdHda4Q,5262
220
- meerschaum/utils/daemon/RotatingFile.py,sha256=2F15ltRAxMZdHUfnW02DVNWC3NBHvhawqmeRf7PC-10,24048
221
- meerschaum/utils/daemon/__init__.py,sha256=b5RrYGoQaGd4_bHppewFAzbP0EjaZyEwPjTE9k4L7JE,8505
221
+ meerschaum/utils/daemon/Daemon.py,sha256=WUMd8VghGic_-x23M9yoioA32rbuELQedz5sp5AHwVo,40996
222
+ meerschaum/utils/daemon/FileDescriptorInterceptor.py,sha256=MJKMO0Syf3d8yWUs6xXcQzg8Ptsuvh2aCRRoglOjusA,5257
223
+ meerschaum/utils/daemon/RotatingFile.py,sha256=qa0V53uocyayUk2Nj0A72hNIHueT6UoaVhkj59V2d1s,24220
224
+ meerschaum/utils/daemon/StdinFile.py,sha256=ZB3PefiU5h61B3PryjB99-JmGlI0hDnXWutbTpnXyHw,2928
225
+ meerschaum/utils/daemon/__init__.py,sha256=u9qT5mB0mv2jcaqWkhmFCubiU62JRWb0kLVrveOr39c,8632
222
226
  meerschaum/utils/daemon/_names.py,sha256=Prf7xA2GWDbKR_9Xq9_5RTTIf9GNWY3Yt0s4tEU3JgM,4330
223
227
  meerschaum/utils/dtypes/__init__.py,sha256=JR9PViJTzhukZhq0QoPIs73HOnXZZr8OmfhAAD4OAUA,6261
224
228
  meerschaum/utils/dtypes/sql.py,sha256=IkEOyB63je-rCLHM6WwFzGbCerYk1zobL1cXkWqmTa4,14638
225
- meerschaum/utils/formatting/__init__.py,sha256=eJlEr4_daqvD14rEYFkxI5a_tLFmqefAADRslpMsrcQ,15321
226
- meerschaum/utils/formatting/_jobs.py,sha256=StisQ6D8Z5nO-YaZb8XgEHPItyyu1_EJu1zTbjaXTJ8,4672
229
+ meerschaum/utils/formatting/__init__.py,sha256=NcNPxXRSnKZAIBxAD0ictCjVBzYzFtOwpf2CDMfr4_Y,15354
230
+ meerschaum/utils/formatting/_jobs.py,sha256=m3dVGRS3zRNAbu7zWPdpEuou6GEOe7hHWrTz1DkOJ2U,5495
227
231
  meerschaum/utils/formatting/_pipes.py,sha256=wy0iWJFsFl3X2VloaiA_gp9Yx9w6tD3FQZvAQAqef4A,19492
228
232
  meerschaum/utils/formatting/_pprint.py,sha256=tgrT3FyGyu5CWJYysqK3kX1xdZYorlbOk9fcU_vt9Qg,3096
229
- meerschaum/utils/formatting/_shell.py,sha256=ox75O7VHDAiwzSvdMSJZhXLadvAqYJVeihU6WeZ2Ogc,3677
233
+ meerschaum/utils/formatting/_shell.py,sha256=jsjf_GMXBpGNBbpT7skTUZrHZl5HooFzffRDc4hz5Tc,3786
234
+ meerschaum/utils/jobs/_Job.py,sha256=id0VMZw6mNsmhjCpu2VptYQlcwH7oNg0-NtdRbc41Uw,22155
235
+ meerschaum/utils/jobs/__init__.py,sha256=NfO43tpGgPBikoFV98w2cFag0aQd7Z7FOpb5NCJZ0lg,6088
230
236
  meerschaum/utils/packages/__init__.py,sha256=zBy3cUy60Eht90PhgWzL_VjTjJSFpt5sA-DvrLch47A,63179
231
- meerschaum/utils/packages/_packages.py,sha256=gWrco46rqKjtAI714aJp0XfzYQFAdNi08Kq5dq1VEkg,7977
237
+ meerschaum/utils/packages/_packages.py,sha256=pWSVUEQ0XXEmnRbVUOH-c17O0VGdxuGAixuE2-XJP0I,7976
232
238
  meerschaum/utils/packages/lazy_loader.py,sha256=VHnph3VozH29R4JnSSBfwtA5WKZYZQFT_GeQSShCnuc,2540
233
239
  meerschaum/utils/venv/_Venv.py,sha256=sBnlmxHdAh2bx8btfVoD79-H9-cYsv5lP02IIXkyECs,3553
234
240
  meerschaum/utils/venv/__init__.py,sha256=7TjSHKbUAACqteNFkqp3CS8vxm9lMo8sJJ7q_oaCMd0,24365
235
- meerschaum-2.2.7.dist-info/LICENSE,sha256=jG2zQEdRNt88EgHUWPpXVWmOrOduUQRx7MnYV9YIPaw,11359
236
- meerschaum-2.2.7.dist-info/METADATA,sha256=c75aTwCFSsQncAI1tpGRfsOMWsJGqxqHNqn-r63btY4,24187
237
- meerschaum-2.2.7.dist-info/NOTICE,sha256=OTA9Fcthjf5BRvWDDIcBC_xfLpeDV-RPZh3M-HQBRtQ,114
238
- meerschaum-2.2.7.dist-info/WHEEL,sha256=Wyh-_nZ0DJYolHNn1_hMa4lM7uDedD_RGVwbmTjyItk,91
239
- meerschaum-2.2.7.dist-info/entry_points.txt,sha256=5YBVzibw-0rNA_1VjB16z5GABsOGf-CDhW4yqH8C7Gc,88
240
- meerschaum-2.2.7.dist-info/top_level.txt,sha256=bNoSiDj0El6buocix-FRoAtJOeq1qOF5rRm2u9i7Q6A,11
241
- meerschaum-2.2.7.dist-info/zip-safe,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
242
- meerschaum-2.2.7.dist-info/RECORD,,
241
+ meerschaum-2.3.0.dev1.dist-info/LICENSE,sha256=jG2zQEdRNt88EgHUWPpXVWmOrOduUQRx7MnYV9YIPaw,11359
242
+ meerschaum-2.3.0.dev1.dist-info/METADATA,sha256=_1wseADvLgHCK8nwyxtXe9IiVFE2pEA3ZAW8fJQb9vE,24188
243
+ meerschaum-2.3.0.dev1.dist-info/NOTICE,sha256=OTA9Fcthjf5BRvWDDIcBC_xfLpeDV-RPZh3M-HQBRtQ,114
244
+ meerschaum-2.3.0.dev1.dist-info/WHEEL,sha256=R0nc6qTxuoLk7ShA2_Y-UWkN8ZdfDBG2B6Eqpz2WXbs,91
245
+ meerschaum-2.3.0.dev1.dist-info/entry_points.txt,sha256=5YBVzibw-0rNA_1VjB16z5GABsOGf-CDhW4yqH8C7Gc,88
246
+ meerschaum-2.3.0.dev1.dist-info/top_level.txt,sha256=bNoSiDj0El6buocix-FRoAtJOeq1qOF5rRm2u9i7Q6A,11
247
+ meerschaum-2.3.0.dev1.dist-info/zip-safe,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
248
+ meerschaum-2.3.0.dev1.dist-info/RECORD,,