meerschaum 2.2.4__py3-none-any.whl → 2.2.5__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- meerschaum/__init__.py +4 -1
- meerschaum/_internal/arguments/_parse_arguments.py +23 -14
- meerschaum/_internal/arguments/_parser.py +4 -2
- meerschaum/_internal/docs/index.py +513 -110
- meerschaum/_internal/entry.py +2 -4
- meerschaum/_internal/shell/Shell.py +0 -3
- meerschaum/actions/__init__.py +5 -1
- meerschaum/actions/bootstrap.py +32 -7
- meerschaum/actions/delete.py +62 -0
- meerschaum/actions/edit.py +98 -15
- meerschaum/actions/python.py +44 -2
- meerschaum/actions/show.py +39 -4
- meerschaum/actions/stack.py +12 -12
- meerschaum/actions/uninstall.py +24 -29
- meerschaum/api/__init__.py +0 -1
- meerschaum/api/_oauth2.py +17 -0
- meerschaum/api/dash/__init__.py +0 -1
- meerschaum/api/dash/callbacks/custom.py +1 -1
- meerschaum/api/dash/plugins.py +5 -6
- meerschaum/api/routes/_login.py +23 -7
- meerschaum/config/__init__.py +16 -6
- meerschaum/config/_edit.py +1 -1
- meerschaum/config/_paths.py +3 -0
- meerschaum/config/_version.py +1 -1
- meerschaum/config/stack/__init__.py +3 -1
- meerschaum/connectors/Connector.py +7 -2
- meerschaum/connectors/__init__.py +7 -5
- meerschaum/core/Pipe/_data.py +23 -15
- meerschaum/core/Pipe/_deduplicate.py +1 -1
- meerschaum/core/Pipe/_dtypes.py +5 -0
- meerschaum/core/Pipe/_fetch.py +26 -20
- meerschaum/core/Pipe/_sync.py +96 -61
- meerschaum/plugins/__init__.py +1 -1
- meerschaum/plugins/bootstrap.py +333 -0
- meerschaum/utils/daemon/Daemon.py +14 -3
- meerschaum/utils/daemon/FileDescriptorInterceptor.py +21 -14
- meerschaum/utils/daemon/RotatingFile.py +21 -18
- meerschaum/utils/dataframe.py +12 -4
- meerschaum/utils/debug.py +9 -15
- meerschaum/utils/formatting/__init__.py +23 -10
- meerschaum/utils/misc.py +117 -11
- meerschaum/utils/packages/_packages.py +1 -1
- meerschaum/utils/prompt.py +64 -21
- meerschaum/utils/typing.py +1 -0
- meerschaum/utils/warnings.py +9 -1
- meerschaum/utils/yaml.py +32 -1
- {meerschaum-2.2.4.dist-info → meerschaum-2.2.5.dist-info}/METADATA +5 -2
- {meerschaum-2.2.4.dist-info → meerschaum-2.2.5.dist-info}/RECORD +54 -53
- {meerschaum-2.2.4.dist-info → meerschaum-2.2.5.dist-info}/WHEEL +1 -1
- {meerschaum-2.2.4.dist-info → meerschaum-2.2.5.dist-info}/LICENSE +0 -0
- {meerschaum-2.2.4.dist-info → meerschaum-2.2.5.dist-info}/NOTICE +0 -0
- {meerschaum-2.2.4.dist-info → meerschaum-2.2.5.dist-info}/entry_points.txt +0 -0
- {meerschaum-2.2.4.dist-info → meerschaum-2.2.5.dist-info}/top_level.txt +0 -0
- {meerschaum-2.2.4.dist-info → meerschaum-2.2.5.dist-info}/zip-safe +0 -0
meerschaum/__init__.py
CHANGED
@@ -23,7 +23,7 @@ from meerschaum.utils.typing import SuccessTuple
|
|
23
23
|
from meerschaum.core.Pipe import Pipe
|
24
24
|
from meerschaum.plugins import Plugin
|
25
25
|
from meerschaum.utils.venv import Venv
|
26
|
-
from meerschaum.connectors import get_connector
|
26
|
+
from meerschaum.connectors import get_connector, Connector, make_connector
|
27
27
|
from meerschaum.utils import get_pipes
|
28
28
|
from meerschaum.utils.formatting import pprint
|
29
29
|
from meerschaum._internal.docs import index as __doc__
|
@@ -49,4 +49,7 @@ __all__ = (
|
|
49
49
|
"connectors",
|
50
50
|
"plugins",
|
51
51
|
"utils",
|
52
|
+
"SuccessTuple",
|
53
|
+
"Connector",
|
54
|
+
"make_connector",
|
52
55
|
)
|
@@ -80,8 +80,9 @@ def parse_arguments(sysargs: List[str]) -> Dict[str, Any]:
|
|
80
80
|
|
81
81
|
### rebuild sysargs without sub_arguments
|
82
82
|
filtered_sysargs = [
|
83
|
-
word
|
84
|
-
|
83
|
+
word
|
84
|
+
for i, word in enumerate(sysargs)
|
85
|
+
if i not in sub_arg_indices
|
85
86
|
]
|
86
87
|
|
87
88
|
try:
|
@@ -99,7 +100,6 @@ def parse_arguments(sysargs: List[str]) -> Dict[str, Any]:
|
|
99
100
|
except Exception as _e:
|
100
101
|
args_dict['text'] = ' '.join(sysargs)
|
101
102
|
args_dict[STATIC_CONFIG['system']['arguments']['failure_key']] = e
|
102
|
-
unknown = []
|
103
103
|
|
104
104
|
false_flags = [arg for arg, val in args_dict.items() if val is False]
|
105
105
|
for arg in false_flags:
|
@@ -126,17 +126,26 @@ def parse_arguments(sysargs: List[str]) -> Dict[str, Any]:
|
|
126
126
|
|
127
127
|
### remove None (but not False) args
|
128
128
|
none_args = []
|
129
|
+
none_args_keep = []
|
129
130
|
for a, v in args_dict.items():
|
130
131
|
if v is None:
|
131
132
|
none_args.append(a)
|
133
|
+
elif v == 'None':
|
134
|
+
none_args_keep.append(a)
|
132
135
|
for a in none_args:
|
133
136
|
del args_dict[a]
|
137
|
+
for a in none_args_keep:
|
138
|
+
args_dict[a] = None
|
134
139
|
|
135
140
|
### location_key '[None]' or 'None' -> None
|
136
141
|
if 'location_keys' in args_dict:
|
137
142
|
args_dict['location_keys'] = [
|
138
|
-
|
139
|
-
|
143
|
+
(
|
144
|
+
None
|
145
|
+
if lk in ('[None]', 'None')
|
146
|
+
else lk
|
147
|
+
)
|
148
|
+
for lk in args_dict['location_keys']
|
140
149
|
]
|
141
150
|
|
142
151
|
return parse_synonyms(args_dict)
|
@@ -145,7 +154,7 @@ def parse_arguments(sysargs: List[str]) -> Dict[str, Any]:
|
|
145
154
|
def parse_line(line: str) -> Dict[str, Any]:
|
146
155
|
"""
|
147
156
|
Parse a line of text into standard Meerschaum arguments.
|
148
|
-
|
157
|
+
|
149
158
|
Parameters
|
150
159
|
----------
|
151
160
|
line: str
|
@@ -165,12 +174,12 @@ def parse_line(line: str) -> Dict[str, Any]:
|
|
165
174
|
try:
|
166
175
|
return parse_arguments(shlex.split(line))
|
167
176
|
except Exception as e:
|
168
|
-
return {'action': [], 'text': line
|
177
|
+
return {'action': [], 'text': line}
|
169
178
|
|
170
179
|
|
171
180
|
def parse_synonyms(
|
172
|
-
|
173
|
-
|
181
|
+
args_dict: Dict[str, Any]
|
182
|
+
) -> Dict[str, Any]:
|
174
183
|
"""Check for synonyms (e.g. `async` = `True` -> `unblock` = `True`)"""
|
175
184
|
if args_dict.get('async', None):
|
176
185
|
args_dict['unblock'] = True
|
@@ -194,8 +203,8 @@ def parse_synonyms(
|
|
194
203
|
|
195
204
|
|
196
205
|
def parse_dict_to_sysargs(
|
197
|
-
|
198
|
-
|
206
|
+
args_dict: Dict[str, Any]
|
207
|
+
) -> List[str]:
|
199
208
|
"""Revert an arguments dictionary back to a command line list."""
|
200
209
|
from meerschaum._internal.arguments._parser import get_arguments_triggers
|
201
210
|
sysargs = []
|
@@ -230,9 +239,9 @@ def parse_dict_to_sysargs(
|
|
230
239
|
|
231
240
|
|
232
241
|
def remove_leading_action(
|
233
|
-
|
234
|
-
|
235
|
-
|
242
|
+
action: List[str],
|
243
|
+
_actions: Optional[Dict[str, Callable[[Any], SuccessTuple]]] = None,
|
244
|
+
) -> List[str]:
|
236
245
|
"""
|
237
246
|
Remove the leading strings in the `action` list.
|
238
247
|
|
@@ -37,12 +37,15 @@ class ArgumentParser(argparse.ArgumentParser):
|
|
37
37
|
return result
|
38
38
|
|
39
39
|
|
40
|
-
def parse_datetime(dt_str: str) -> datetime:
|
40
|
+
def parse_datetime(dt_str: str) -> Union[datetime, int, str]:
|
41
41
|
"""Parse a string into a datetime."""
|
42
42
|
from meerschaum.utils.misc import is_int
|
43
43
|
if is_int(dt_str):
|
44
44
|
return int(dt_str)
|
45
45
|
|
46
|
+
if dt_str in ('None', '[None]'):
|
47
|
+
return 'None'
|
48
|
+
|
46
49
|
from meerschaum.utils.packages import attempt_import
|
47
50
|
dateutil_parser = attempt_import('dateutil.parser')
|
48
51
|
|
@@ -155,7 +158,6 @@ groups['actions'].add_argument(
|
|
155
158
|
'-d', '--daemon', action='store_true',
|
156
159
|
help = "Run an action as a background daemon."
|
157
160
|
)
|
158
|
-
|
159
161
|
groups['actions'].add_argument(
|
160
162
|
'--rm', action='store_true', help="Delete a job once it has finished executing."
|
161
163
|
)
|