meerschaum 2.8.2__py3-none-any.whl → 2.8.3__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/api/__init__.py +14 -8
- meerschaum/api/routes/_pipes.py +14 -19
- meerschaum/config/_default.py +3 -0
- meerschaum/config/_version.py +1 -1
- meerschaum/config/static/__init__.py +1 -1
- meerschaum/connectors/sql/_cli.py +7 -1
- meerschaum/connectors/sql/_create_engine.py +6 -3
- meerschaum/connectors/sql/_users.py +4 -2
- meerschaum/core/Pipe/_verify.py +19 -10
- meerschaum/utils/dataframe.py +1 -1
- {meerschaum-2.8.2.dist-info → meerschaum-2.8.3.dist-info}/METADATA +1 -1
- {meerschaum-2.8.2.dist-info → meerschaum-2.8.3.dist-info}/RECORD +18 -18
- {meerschaum-2.8.2.dist-info → meerschaum-2.8.3.dist-info}/LICENSE +0 -0
- {meerschaum-2.8.2.dist-info → meerschaum-2.8.3.dist-info}/NOTICE +0 -0
- {meerschaum-2.8.2.dist-info → meerschaum-2.8.3.dist-info}/WHEEL +0 -0
- {meerschaum-2.8.2.dist-info → meerschaum-2.8.3.dist-info}/entry_points.txt +0 -0
- {meerschaum-2.8.2.dist-info → meerschaum-2.8.3.dist-info}/top_level.txt +0 -0
- {meerschaum-2.8.2.dist-info → meerschaum-2.8.3.dist-info}/zip-safe +0 -0
meerschaum/api/__init__.py
CHANGED
@@ -21,6 +21,7 @@ from meerschaum.plugins import _api_plugins
|
|
21
21
|
from meerschaum.utils.warnings import warn, dprint
|
22
22
|
from meerschaum.utils.threading import RLock
|
23
23
|
from meerschaum.utils.misc import is_pipe_registered
|
24
|
+
from meerschaum.connectors.parse import parse_instance_keys
|
24
25
|
|
25
26
|
from meerschaum import __version__ as version
|
26
27
|
__version__ = version
|
@@ -99,7 +100,6 @@ production = get_uvicorn_config().get('production', False)
|
|
99
100
|
_include_dash = (not no_dash)
|
100
101
|
docs_enabled = not production or sys_config.get('endpoints', {}).get('docs_in_production', True)
|
101
102
|
|
102
|
-
connector = None
|
103
103
|
default_instance_keys = None
|
104
104
|
_instance_connectors = defaultdict(lambda: None)
|
105
105
|
def get_api_connector(instance_keys: Optional[str] = None):
|
@@ -130,12 +130,19 @@ def get_api_connector(instance_keys: Optional[str] = None):
|
|
130
130
|
)
|
131
131
|
|
132
132
|
with _locks[f'instance-{instance_keys}']:
|
133
|
-
|
134
|
-
|
135
|
-
|
136
|
-
|
137
|
-
|
138
|
-
|
133
|
+
if _instance_connectors[instance_keys] is None:
|
134
|
+
try:
|
135
|
+
is_valid_connector = True
|
136
|
+
_instance_connectors[instance_keys] = parse_instance_keys(instance_keys, debug=debug)
|
137
|
+
except Exception:
|
138
|
+
is_valid_connector = False
|
139
|
+
|
140
|
+
if not is_valid_connector:
|
141
|
+
raise fastapi.HTTPException(
|
142
|
+
status_code=422,
|
143
|
+
detail="Invalid instance keys.",
|
144
|
+
)
|
145
|
+
return _instance_connectors[instance_keys]
|
139
146
|
|
140
147
|
|
141
148
|
cache_connector = None
|
@@ -164,7 +171,6 @@ def get_cache_connector(connector_keys: Optional[str] = None):
|
|
164
171
|
return None
|
165
172
|
|
166
173
|
if cache_connector is None:
|
167
|
-
from meerschaum.connectors.parse import parse_instance_keys
|
168
174
|
cache_connector = parse_instance_keys(connector_keys)
|
169
175
|
|
170
176
|
if debug:
|
meerschaum/api/routes/_pipes.py
CHANGED
@@ -311,7 +311,7 @@ def get_sync_time(
|
|
311
311
|
newest: bool = True,
|
312
312
|
remote: bool = False,
|
313
313
|
round_down: bool = True,
|
314
|
-
|
314
|
+
instance_keys: Optional[str] = None,
|
315
315
|
curr_user = (
|
316
316
|
fastapi.Depends(manager) if not no_auth else None
|
317
317
|
),
|
@@ -322,12 +322,11 @@ def get_sync_time(
|
|
322
322
|
"""
|
323
323
|
if location_key == '[None]':
|
324
324
|
location_key = None
|
325
|
-
pipe = get_pipe(connector_keys, metric_key, location_key)
|
325
|
+
pipe = get_pipe(connector_keys, metric_key, location_key, instance_keys)
|
326
326
|
sync_time = pipe.get_sync_time(
|
327
|
-
params
|
328
|
-
newest
|
329
|
-
|
330
|
-
round_down = round_down,
|
327
|
+
params=params,
|
328
|
+
newest=newest,
|
329
|
+
round_down=round_down,
|
331
330
|
)
|
332
331
|
if isinstance(sync_time, datetime):
|
333
332
|
sync_time = sync_time.isoformat()
|
@@ -339,7 +338,8 @@ def sync_pipe(
|
|
339
338
|
connector_keys: str,
|
340
339
|
metric_key: str,
|
341
340
|
location_key: str,
|
342
|
-
data:
|
341
|
+
data: Union[List[Dict[Any, Any]], Dict[Any, Any]],
|
342
|
+
instance_keys: Optional[str] = None,
|
343
343
|
check_existing: bool = True,
|
344
344
|
blocking: bool = True,
|
345
345
|
force: bool = False,
|
@@ -354,9 +354,9 @@ def sync_pipe(
|
|
354
354
|
Add data to an existing Pipe.
|
355
355
|
See [`meerschaum.Pipe.sync`](https://docs.meerschaum.io/meerschaum.html#Pipe.sync).
|
356
356
|
"""
|
357
|
-
if data
|
358
|
-
data
|
359
|
-
pipe = get_pipe(connector_keys, metric_key, location_key)
|
357
|
+
if not data:
|
358
|
+
return [True, "No data to sync."]
|
359
|
+
pipe = get_pipe(connector_keys, metric_key, location_key, instance_keys)
|
360
360
|
if pipe.target in ('mrsm_users', 'mrsm_plugins', 'mrsm_pipes'):
|
361
361
|
raise fastapi.HTTPException(
|
362
362
|
status_code=409,
|
@@ -365,21 +365,16 @@ def sync_pipe(
|
|
365
365
|
|
366
366
|
if not pipe.columns and columns is not None:
|
367
367
|
pipe.columns = json.loads(columns)
|
368
|
-
if not pipe.columns and not is_pipe_registered(pipe, pipes(refresh=True)):
|
369
|
-
raise fastapi.HTTPException(
|
370
|
-
status_code=409,
|
371
|
-
detail="Pipe must be registered with index columns specified."
|
372
|
-
)
|
373
368
|
|
374
|
-
|
369
|
+
success, msg = pipe.sync(
|
375
370
|
data,
|
376
371
|
debug=debug,
|
377
372
|
check_existing=check_existing,
|
378
373
|
blocking=blocking,
|
379
374
|
force=force,
|
380
375
|
workers=workers,
|
381
|
-
)
|
382
|
-
return
|
376
|
+
)
|
377
|
+
return list((success, msg))
|
383
378
|
|
384
379
|
|
385
380
|
@app.get(pipes_endpoint + '/{connector_keys}/{metric_key}/{location_key}/data', tags=['Pipes'])
|
@@ -543,7 +538,7 @@ def get_pipe_csv(
|
|
543
538
|
if not is_pipe_registered(pipe, pipes(instance_keys, refresh=True)):
|
544
539
|
raise fastapi.HTTPException(
|
545
540
|
status_code=409,
|
546
|
-
detail="Pipe must be registered
|
541
|
+
detail="Pipe must be registered."
|
547
542
|
)
|
548
543
|
|
549
544
|
dt_col = pipe.columns.get('datetime', None)
|
meerschaum/config/_default.py
CHANGED
meerschaum/config/_version.py
CHANGED
@@ -100,7 +100,13 @@ def _cli_exit(
|
|
100
100
|
### yet defined (e.g. 'sql:local').
|
101
101
|
cli_arg_str = self.DATABASE_URL
|
102
102
|
if self.flavor in ('sqlite', 'duckdb'):
|
103
|
-
cli_arg_str =
|
103
|
+
cli_arg_str = (
|
104
|
+
str(self.database)
|
105
|
+
if 'database' in self.__dict__
|
106
|
+
else self.parse_uri(self.URI).get('database', None)
|
107
|
+
)
|
108
|
+
if not cli_arg_str:
|
109
|
+
raise ValueError(f"Cannot determine database from connector '{self}'.")
|
104
110
|
if cli_arg_str.startswith('postgresql+psycopg://'):
|
105
111
|
cli_arg_str = cli_arg_str.replace('postgresql+psycopg://', 'postgresql://')
|
106
112
|
|
@@ -256,8 +256,11 @@ def create_engine(
|
|
256
256
|
) if not _uri else _uri
|
257
257
|
|
258
258
|
### Sometimes the timescaledb:// flavor can slip in.
|
259
|
-
if _uri and self.flavor in
|
260
|
-
|
259
|
+
if _uri and self.flavor in _uri:
|
260
|
+
if self.flavor == 'timescaledb':
|
261
|
+
engine_str = engine_str.replace(f'{self.flavor}', 'postgresql', 1)
|
262
|
+
elif _uri.startswith('postgresql://'):
|
263
|
+
engine_str = engine_str.replace('postgresql://', 'postgresql+psycopg2://')
|
261
264
|
|
262
265
|
if debug:
|
263
266
|
dprint(
|
@@ -303,7 +306,7 @@ def create_engine(
|
|
303
306
|
echo = debug,
|
304
307
|
**_create_engine_args
|
305
308
|
)
|
306
|
-
except Exception
|
309
|
+
except Exception:
|
307
310
|
warn(f"Failed to create connector '{self}':\n{traceback.format_exc()}", stack=False)
|
308
311
|
engine = None
|
309
312
|
|
@@ -43,7 +43,9 @@ def register_user(
|
|
43
43
|
'password_hash': user.password_hash,
|
44
44
|
'user_type': user.type,
|
45
45
|
'attributes': (
|
46
|
-
json.dumps(user.attributes)
|
46
|
+
json.dumps(user.attributes)
|
47
|
+
if self.flavor not in json_flavors
|
48
|
+
else user.attributes
|
47
49
|
),
|
48
50
|
}
|
49
51
|
if old_id is not None:
|
@@ -109,7 +111,7 @@ def edit_user(
|
|
109
111
|
user_id = user.user_id if user.user_id is not None else self.get_user_id(user, debug=debug)
|
110
112
|
if user_id is None:
|
111
113
|
return False, (
|
112
|
-
f"User '{user.username}' does not exist. "
|
114
|
+
f"User '{user.username}' does not exist. "
|
113
115
|
f"Register user '{user.username}' before editing."
|
114
116
|
)
|
115
117
|
user.user_id = user_id
|
meerschaum/core/Pipe/_verify.py
CHANGED
@@ -7,6 +7,7 @@ Verify the contents of a pipe by resyncing its interval.
|
|
7
7
|
"""
|
8
8
|
|
9
9
|
from datetime import datetime, timedelta
|
10
|
+
import time
|
10
11
|
|
11
12
|
import meerschaum as mrsm
|
12
13
|
from meerschaum.utils.typing import SuccessTuple, Any, Optional, Union, Tuple, Dict
|
@@ -183,6 +184,7 @@ def verify(
|
|
183
184
|
)
|
184
185
|
)
|
185
186
|
message_header = f"{begin_to_print} - {end_to_print}"
|
187
|
+
max_chunks_syncs = mrsm.get_config('pipes', 'verify', 'max_chunks_syncs')
|
186
188
|
|
187
189
|
info(
|
188
190
|
f"Verifying {self}:\n Syncing {len(chunk_bounds)} chunk"
|
@@ -219,9 +221,9 @@ def verify(
|
|
219
221
|
debug=debug,
|
220
222
|
)
|
221
223
|
checked_rows_str = (
|
222
|
-
f"checked {existing_rowcount} row"
|
224
|
+
f"checked {existing_rowcount:,} row"
|
223
225
|
+ ("s" if existing_rowcount != 1 else '')
|
224
|
-
+ f" vs {remote_rowcount} remote"
|
226
|
+
+ f" vs {remote_rowcount:,} remote"
|
225
227
|
)
|
226
228
|
if (
|
227
229
|
existing_rowcount is not None
|
@@ -239,19 +241,26 @@ def verify(
|
|
239
241
|
f"Row-counts are out-of-sync ({checked_rows_str})."
|
240
242
|
)
|
241
243
|
|
242
|
-
|
243
|
-
|
244
|
-
|
245
|
-
|
246
|
-
|
247
|
-
|
248
|
-
|
249
|
-
|
244
|
+
num_syncs = 0
|
245
|
+
while num_syncs < max_chunks_syncs:
|
246
|
+
chunk_success, chunk_msg = self.sync(
|
247
|
+
begin=chunk_begin,
|
248
|
+
end=chunk_end,
|
249
|
+
params=params,
|
250
|
+
workers=_workers,
|
251
|
+
debug=debug,
|
252
|
+
**kwargs
|
253
|
+
) if do_sync else (chunk_success, chunk_msg)
|
254
|
+
if chunk_success:
|
255
|
+
break
|
256
|
+
num_syncs += 1
|
257
|
+
time.sleep(num_syncs**2)
|
250
258
|
chunk_msg = chunk_msg.strip()
|
251
259
|
if ' - ' not in chunk_msg:
|
252
260
|
chunk_label = f"{chunk_begin} - {chunk_end}"
|
253
261
|
chunk_msg = f'Verified chunk for {self}:\n{chunk_label}\n{chunk_msg}'
|
254
262
|
mrsm.pprint((chunk_success, chunk_msg))
|
263
|
+
|
255
264
|
return chunk_begin_and_end, (chunk_success, chunk_msg)
|
256
265
|
|
257
266
|
### If we have more than one chunk, attempt to sync the first one and return if its fails.
|
meerschaum/utils/dataframe.py
CHANGED
@@ -222,7 +222,7 @@ def filter_unseen_df(
|
|
222
222
|
numeric_cols_precisions_scales = {
|
223
223
|
col: get_numeric_precision_scale(None, typ)
|
224
224
|
for col, typ in dtypes.items()
|
225
|
-
if col and typ
|
225
|
+
if col and str(typ).lower().startswith('numeric')
|
226
226
|
}
|
227
227
|
|
228
228
|
dt_dtypes = {
|
@@ -52,7 +52,7 @@ meerschaum/actions/tag.py,sha256=SJf5qFW0ccLXjqlTdkK_0MCcrCMdg6xhYrhKdco0hdA,305
|
|
52
52
|
meerschaum/actions/uninstall.py,sha256=tBXhdXggSieGEQe4EPGxpgMK0MZTJCweNvAJ9-59El0,5776
|
53
53
|
meerschaum/actions/upgrade.py,sha256=AjuC93Te-I_GWwIfuNkFJ2q1zVHDQ2Oco34S4JgK2iA,6485
|
54
54
|
meerschaum/actions/verify.py,sha256=81Km4sPkLVAzPG6pDbMfoBpEWsk8pxjVGXgu-k8seSs,5019
|
55
|
-
meerschaum/api/__init__.py,sha256=
|
55
|
+
meerschaum/api/__init__.py,sha256=3mgIsSGCefplGlRWyHShajFUm83LdnO925FikKlv0jI,10243
|
56
56
|
meerschaum/api/_chain.py,sha256=h8-WXUGXX6AqzdALfsBC5uv0FkAcLdHJXCGzqzuq89k,875
|
57
57
|
meerschaum/api/_events.py,sha256=f-98AXHU10IL9zRGX1FrZFANxxiMz5ryeJnfFWaU8R8,2232
|
58
58
|
meerschaum/api/_exceptions.py,sha256=xfbWp8F8JYrMUdtDXesn8C8e39_jAXHz51IosIGjkVM,463
|
@@ -126,7 +126,7 @@ meerschaum/api/routes/_index.py,sha256=Z8kuyqm3vmJadw8iIYyswYI4-3IOJ7KXdkhDTv1oU
|
|
126
126
|
meerschaum/api/routes/_jobs.py,sha256=sEt-UtVd5pN-hJgikTvj1oTKJQ2hhNe8XhjkclwOXOE,12568
|
127
127
|
meerschaum/api/routes/_login.py,sha256=tygEp50EVOMgvTG6CEASlShflbtEK8viJ9O07o0lnnE,2434
|
128
128
|
meerschaum/api/routes/_misc.py,sha256=XxfSvXNGAm8rdvXePXWxX8wc5tjeAdBOSZwYveL3oAM,2591
|
129
|
-
meerschaum/api/routes/_pipes.py,sha256=
|
129
|
+
meerschaum/api/routes/_pipes.py,sha256=eITQRzvMfa2WY9r_FIPIH3LlnE1TOcy-J2bic2wGwno,25262
|
130
130
|
meerschaum/api/routes/_plugins.py,sha256=okstNlv9Bhoiy6JvQWgwjxEi4kQ8adPUcir6k3Y7hH8,6329
|
131
131
|
meerschaum/api/routes/_users.py,sha256=i55LuLTQ2cuzIyWz0PxkWji6aQQUIBPf_FEryKwXI50,7197
|
132
132
|
meerschaum/api/routes/_version.py,sha256=-3A0i4Gk54netFOOwjI_x3YQik9vgHjtq7G_VYbzIJo,750
|
@@ -134,7 +134,7 @@ meerschaum/api/routes/_webterm.py,sha256=S7RXV8vvaTFbmVeehh4UhyXb4NCgcsyOQzoAG7j
|
|
134
134
|
meerschaum/api/tables/__init__.py,sha256=e2aNC0CdlWICTUMx1i9RauF8Pm426J0RZJbsJWv4SWo,482
|
135
135
|
meerschaum/config/__init__.py,sha256=5ZBq71P9t3nb74r5CGvMfNuauPscfegBX-nkaAUi5C4,11541
|
136
136
|
meerschaum/config/_dash.py,sha256=BJHl4xMrQB-YHUEU7ldEW8q_nOPoIRSOqLrfGElc6Dw,187
|
137
|
-
meerschaum/config/_default.py,sha256=
|
137
|
+
meerschaum/config/_default.py,sha256=F1xVug-lhVeIXTL1wvHrIPFmBsL2dGz4lHFakIleeZk,6473
|
138
138
|
meerschaum/config/_edit.py,sha256=M9yX_SDD24gV5kWITZpy7p9AWTizJsIAGWAs3WZx-Ws,9087
|
139
139
|
meerschaum/config/_environment.py,sha256=Vv4DLDfc2vKLbCLsMvkQDj77K4kEvHKEBmUBo-wCrgo,4419
|
140
140
|
meerschaum/config/_formatting.py,sha256=OMuqS1EWOsj_34wSs2tOqGIWci3bTMIZ5l-uelZgsIM,6672
|
@@ -145,7 +145,7 @@ meerschaum/config/_preprocess.py,sha256=-AEA8m_--KivZwTQ1sWN6LTn5sio_fUr2XZ51BO6
|
|
145
145
|
meerschaum/config/_read_config.py,sha256=RLC3HHi_1ndj7ITVDKLD9_uULY3caGRwSz3ATYE-ixA,15014
|
146
146
|
meerschaum/config/_shell.py,sha256=46_m49Txc5q1rGfCgO49ca48BODx45DQJi8D0zz1R18,4245
|
147
147
|
meerschaum/config/_sync.py,sha256=jHcWRkxd82_BgX8Xo8agsWvf7BSbv3qHLWmYl6ehp_0,4242
|
148
|
-
meerschaum/config/_version.py,sha256=
|
148
|
+
meerschaum/config/_version.py,sha256=D5OmoCDgj2pHwQuMvP2bpXNp9kyBtMIihn1h-y2p88k,71
|
149
149
|
meerschaum/config/paths.py,sha256=JjibeGN3YAdSNceRwsd42aNmeUrIgM6ndzC8qZAmNI0,621
|
150
150
|
meerschaum/config/resources/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
151
151
|
meerschaum/config/stack/__init__.py,sha256=2UukC0Lmk-aVL1o1qXzumqmuIrw3vu9fD7iCuz4XD4I,10544
|
@@ -153,7 +153,7 @@ meerschaum/config/stack/grafana/__init__.py,sha256=LNXQw2FvHKrD68RDhqDmi2wJjAHaK
|
|
153
153
|
meerschaum/config/stack/mosquitto/__init__.py,sha256=-OwOjq8KiBoSH_pmgCAAF3Dp3CRD4KgAEdimZSadROs,186
|
154
154
|
meerschaum/config/stack/mosquitto/resources/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
155
155
|
meerschaum/config/stack/resources/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
156
|
-
meerschaum/config/static/__init__.py,sha256=
|
156
|
+
meerschaum/config/static/__init__.py,sha256=ccm5oaYnLu0j5B85C9a8Y7jWsw4ReJq5RqyvLd-rW_s,5519
|
157
157
|
meerschaum/connectors/_Connector.py,sha256=VaVNg0SlQCTXk4shl3c68QdkbymA2Y9ScUlUjckk8PY,6795
|
158
158
|
meerschaum/connectors/__init__.py,sha256=bpWsnU0uvoowWyUkFTwfEkadK84pssZUJ4M7yReudOU,12703
|
159
159
|
meerschaum/connectors/parse.py,sha256=tnqzkzt_suOXYzktn_XVUrprtfym9ThijUf8HXZZlhY,4194
|
@@ -174,15 +174,15 @@ meerschaum/connectors/plugin/PluginConnector.py,sha256=aQ1QaB7MordCFimZqoGLb0R12
|
|
174
174
|
meerschaum/connectors/plugin/__init__.py,sha256=pwF7TGY4WNz2_HaVdmK4rPQ9ZwTOEuPHgzOqsGcoXJw,198
|
175
175
|
meerschaum/connectors/sql/_SQLConnector.py,sha256=B2-ltIIQy_n2qjeeT-sZk60tLJrg2Oefscytt7sGqb4,12083
|
176
176
|
meerschaum/connectors/sql/__init__.py,sha256=3cqYiDkVasn7zWdtOTAZbT4bo95AuvGOmDD2TkaAxtw,205
|
177
|
-
meerschaum/connectors/sql/_cli.py,sha256=
|
178
|
-
meerschaum/connectors/sql/_create_engine.py,sha256=
|
177
|
+
meerschaum/connectors/sql/_cli.py,sha256=3wXRfPSr5mXlM6Wt8UqrBYfWvkLVZ4jTzKRUd04enCo,5116
|
178
|
+
meerschaum/connectors/sql/_create_engine.py,sha256=h7c1nwdDWi33PBkRioPomHRT8h1DLc08EQ7INWyC_1Q,10717
|
179
179
|
meerschaum/connectors/sql/_fetch.py,sha256=mVe5zQo7SM9PSUU3Vjhacg4Bq1-Vttb7KkXL4p5YQdQ,12818
|
180
180
|
meerschaum/connectors/sql/_instance.py,sha256=xCc8M0xWMzF5Tu_1uWIFivAoHey5N1ccFhN_Z7u04zk,6304
|
181
181
|
meerschaum/connectors/sql/_pipes.py,sha256=8pp10lOYX8oVEqKHB9907Jny4nkT9fTgF8PrvhsdohI,128855
|
182
182
|
meerschaum/connectors/sql/_plugins.py,sha256=OVEdZ_UHTi-x5sF-5lu2TmR9ONxddp6SwDOmFo5TpU8,8051
|
183
183
|
meerschaum/connectors/sql/_sql.py,sha256=3hrANOId2DAoXsl8nvePnxvoXo5rtB5UfQsJK_fCY9s,42696
|
184
184
|
meerschaum/connectors/sql/_uri.py,sha256=BFzu5pjlbL3kxLH13vHWlpKGYTPfg8wuA2j58O9NsCM,3440
|
185
|
-
meerschaum/connectors/sql/_users.py,sha256=
|
185
|
+
meerschaum/connectors/sql/_users.py,sha256=mRyjsUCfPV52nfTQUbpu9gMXfV_DHXNqEhw4N-lSS4Q,9954
|
186
186
|
meerschaum/connectors/sql/tools.py,sha256=jz8huOaRCwGlYdtGfAqAh7SoK8uydYBrasKQba9FT38,187
|
187
187
|
meerschaum/connectors/sql/tables/__init__.py,sha256=53EeJsvmGjj68SpSShdt6kyLuk5Md5O8DnvWC1ra3u8,8876
|
188
188
|
meerschaum/connectors/sql/tables/types.py,sha256=Jc_MTHIBM-KHpQt__Lckp39CeOo7tGOiAk5faDx-znY,1573
|
@@ -209,7 +209,7 @@ meerschaum/core/Pipe/_index.py,sha256=cYgaVwBVfAYxJBZ6j6MXDqOxnOrD_QnYi33_kIwy_F
|
|
209
209
|
meerschaum/core/Pipe/_register.py,sha256=Sd5xaAW8H7uLTIoommcKb-6kHPRuHJLWNSbPnt2UbvA,2240
|
210
210
|
meerschaum/core/Pipe/_show.py,sha256=nG50y8eBT9TVuKkRgAKtNDNIxysJvMNxfu__lkL1F9k,1352
|
211
211
|
meerschaum/core/Pipe/_sync.py,sha256=NGiGhBI7M_nyIvVvyIA9_4jUKis1YpK4YL_pnceYGjg,38077
|
212
|
-
meerschaum/core/Pipe/_verify.py,sha256=
|
212
|
+
meerschaum/core/Pipe/_verify.py,sha256=OBjN7rxf1csUxV29fWy50ZpEtSycBs4RTqWmdkjikUA,21939
|
213
213
|
meerschaum/core/Plugin/__init__.py,sha256=UXg64EvJPgI1PCxkY_KM02-ZmBm4FZpLPIQR_uSJJDc,137
|
214
214
|
meerschaum/core/User/_User.py,sha256=qbI0GIkr3G0PI4d9S49uatbJQ2kH_-z5-GoVJ0fuEtA,6624
|
215
215
|
meerschaum/core/User/__init__.py,sha256=8WkDRSBmxsprnKE7GB6j1yXSfEz9RinRkSzW0bzVP1I,870
|
@@ -222,7 +222,7 @@ meerschaum/plugins/__init__.py,sha256=Kl7Dz0CwUUxyjRC5RWnYo6WMLsOvdX2eQ38Rh3Bjdz
|
|
222
222
|
meerschaum/plugins/bootstrap.py,sha256=VwjpZAuYdqPJW0YoVgAoM_taHkdQHqP902-8T7OWWCI,11339
|
223
223
|
meerschaum/utils/__init__.py,sha256=QrK1K9hIbPCRCM5k2nZGFqGnrqhA0Eh-iSmCU7FG6Cs,612
|
224
224
|
meerschaum/utils/_get_pipes.py,sha256=tu4xKPoDn79Dz2kWM13cXTP4DSCkn-3G9M8KiLftopw,11073
|
225
|
-
meerschaum/utils/dataframe.py,sha256=
|
225
|
+
meerschaum/utils/dataframe.py,sha256=f9h3fmG_ePHHls2NQmGHNqUurUEZBBvpS1UR7tQgwjI,49341
|
226
226
|
meerschaum/utils/debug.py,sha256=GyIzJmunkoPnOcZNYVQdT4Sgd-aOb5MI2VbIgATOjIQ,3695
|
227
227
|
meerschaum/utils/interactive.py,sha256=t-6jWozXSqL7lYGDHuwiOjTgr-UKhdcg61q_eR5mikI,3196
|
228
228
|
meerschaum/utils/misc.py,sha256=8TOQQlFyF_aYnc8tnx98lccXr9tFrdlS-ngXeOQjHHY,47407
|
@@ -254,11 +254,11 @@ meerschaum/utils/packages/_packages.py,sha256=UcQ0yEK3lIy4jSETHxrOylArUw5qnf6RFS
|
|
254
254
|
meerschaum/utils/packages/lazy_loader.py,sha256=VHnph3VozH29R4JnSSBfwtA5WKZYZQFT_GeQSShCnuc,2540
|
255
255
|
meerschaum/utils/venv/_Venv.py,sha256=gc1TCeAj-kTZbQFAT9xl1bi4HXFV5ApT0dPOJfxwr78,3748
|
256
256
|
meerschaum/utils/venv/__init__.py,sha256=-Mpfvz1mJ41TzVL0xKJCKOsU3nFi6XabbNiN7UbdVXs,27067
|
257
|
-
meerschaum-2.8.
|
258
|
-
meerschaum-2.8.
|
259
|
-
meerschaum-2.8.
|
260
|
-
meerschaum-2.8.
|
261
|
-
meerschaum-2.8.
|
262
|
-
meerschaum-2.8.
|
263
|
-
meerschaum-2.8.
|
264
|
-
meerschaum-2.8.
|
257
|
+
meerschaum-2.8.3.dist-info/LICENSE,sha256=jG2zQEdRNt88EgHUWPpXVWmOrOduUQRx7MnYV9YIPaw,11359
|
258
|
+
meerschaum-2.8.3.dist-info/METADATA,sha256=-3ku-lStPrYFIaHj31hcRmWClB_cPn2Z5c0gshj_01g,24489
|
259
|
+
meerschaum-2.8.3.dist-info/NOTICE,sha256=OTA9Fcthjf5BRvWDDIcBC_xfLpeDV-RPZh3M-HQBRtQ,114
|
260
|
+
meerschaum-2.8.3.dist-info/WHEEL,sha256=In9FTNxeP60KnTkGw7wk6mJPYd_dQSjEZmXdBdMCI-8,91
|
261
|
+
meerschaum-2.8.3.dist-info/entry_points.txt,sha256=5YBVzibw-0rNA_1VjB16z5GABsOGf-CDhW4yqH8C7Gc,88
|
262
|
+
meerschaum-2.8.3.dist-info/top_level.txt,sha256=bNoSiDj0El6buocix-FRoAtJOeq1qOF5rRm2u9i7Q6A,11
|
263
|
+
meerschaum-2.8.3.dist-info/zip-safe,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
|
264
|
+
meerschaum-2.8.3.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|