meerschaum 2.4.8__py3-none-any.whl → 2.4.9__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/_internal/arguments/_parser.py +36 -3
- meerschaum/actions/show.py +15 -4
- meerschaum/config/_version.py +1 -1
- meerschaum/connectors/sql/_pipes.py +5 -3
- meerschaum/core/Pipe/_data.py +12 -13
- meerschaum/utils/dataframe.py +2 -2
- meerschaum/utils/formatting/_pipes.py +4 -4
- meerschaum/utils/misc.py +4 -4
- {meerschaum-2.4.8.dist-info → meerschaum-2.4.9.dist-info}/METADATA +1 -1
- {meerschaum-2.4.8.dist-info → meerschaum-2.4.9.dist-info}/RECORD +16 -16
- {meerschaum-2.4.8.dist-info → meerschaum-2.4.9.dist-info}/LICENSE +0 -0
- {meerschaum-2.4.8.dist-info → meerschaum-2.4.9.dist-info}/NOTICE +0 -0
- {meerschaum-2.4.8.dist-info → meerschaum-2.4.9.dist-info}/WHEEL +0 -0
- {meerschaum-2.4.8.dist-info → meerschaum-2.4.9.dist-info}/entry_points.txt +0 -0
- {meerschaum-2.4.8.dist-info → meerschaum-2.4.9.dist-info}/top_level.txt +0 -0
- {meerschaum-2.4.8.dist-info → meerschaum-2.4.9.dist-info}/zip-safe +0 -0
@@ -10,6 +10,7 @@ from __future__ import annotations
|
|
10
10
|
import sys
|
11
11
|
import argparse
|
12
12
|
import json
|
13
|
+
import re
|
13
14
|
from datetime import datetime, timedelta, timezone
|
14
15
|
from meerschaum.utils.typing import Union, Dict, List, Any, Tuple, Callable
|
15
16
|
from meerschaum.utils.misc import string_to_dict
|
@@ -39,7 +40,7 @@ class ArgumentParser(argparse.ArgumentParser):
|
|
39
40
|
|
40
41
|
def parse_datetime(dt_str: str) -> Union[datetime, int, str]:
|
41
42
|
"""Parse a string into a datetime."""
|
42
|
-
from meerschaum.utils.misc import is_int
|
43
|
+
from meerschaum.utils.misc import is_int, round_time
|
43
44
|
if is_int(dt_str):
|
44
45
|
return int(dt_str)
|
45
46
|
|
@@ -47,11 +48,43 @@ def parse_datetime(dt_str: str) -> Union[datetime, int, str]:
|
|
47
48
|
return 'None'
|
48
49
|
|
49
50
|
from meerschaum.utils.packages import attempt_import
|
50
|
-
dateutil_parser = attempt_import(
|
51
|
+
dateutil_parser, dateutil_relativedelta = attempt_import(
|
52
|
+
'dateutil.parser', 'dateutil.relativedelta'
|
53
|
+
)
|
54
|
+
relativedelta = dateutil_relativedelta.relativedelta
|
55
|
+
|
56
|
+
ago_pattern = r'(\d+)\s+(days?|minutes?|seconds?|hours?|weeks?|months?|years?)\s+ago'
|
57
|
+
round_pattern = r'(\d+)\s+(days?|minutes?|seconds?|hours?|weeks?|years?)'
|
58
|
+
now = datetime.now(timezone.utc).replace(tzinfo=None)
|
59
|
+
ago_matches = re.findall(ago_pattern, dt_str.lower())
|
51
60
|
|
52
61
|
try:
|
53
62
|
if dt_str.lower() == 'now':
|
54
|
-
dt =
|
63
|
+
dt = now
|
64
|
+
elif ago_matches:
|
65
|
+
val_str, unit_str = ago_matches[0]
|
66
|
+
if not unit_str.endswith('s'):
|
67
|
+
unit_str += 's'
|
68
|
+
val = int(val_str) if is_int(val_str) else float(val_str)
|
69
|
+
ago_delta = relativedelta(**{unit_str: val})
|
70
|
+
round_part = dt_str.lower().split('ago ')[-1]
|
71
|
+
round_delta = None
|
72
|
+
if round_part:
|
73
|
+
round_matches = re.findall(round_pattern, round_part)
|
74
|
+
if round_matches:
|
75
|
+
round_val_str, round_unit_str = round_matches[0]
|
76
|
+
if not round_unit_str.endswith('s'):
|
77
|
+
round_unit_str += 's'
|
78
|
+
round_val = (
|
79
|
+
int(round_val_str)
|
80
|
+
if is_int(round_val_str)
|
81
|
+
else float(round_val_str)
|
82
|
+
)
|
83
|
+
round_delta = timedelta(**{round_unit_str: round_val})
|
84
|
+
|
85
|
+
dt = now - ago_delta
|
86
|
+
if round_delta is not None:
|
87
|
+
dt = round_time(dt, round_delta)
|
55
88
|
else:
|
56
89
|
dt = dateutil_parser.parse(dt_str)
|
57
90
|
except Exception as e:
|
meerschaum/actions/show.py
CHANGED
@@ -7,6 +7,8 @@ This module contains functions for printing elements.
|
|
7
7
|
"""
|
8
8
|
|
9
9
|
from __future__ import annotations
|
10
|
+
|
11
|
+
from datetime import datetime
|
10
12
|
import meerschaum as mrsm
|
11
13
|
from meerschaum.utils.typing import SuccessTuple, Union, Sequence, Any, Optional, List, Dict, Tuple
|
12
14
|
|
@@ -274,8 +276,8 @@ def _show_arguments(
|
|
274
276
|
def _show_data(
|
275
277
|
action: Optional[List[str]] = None,
|
276
278
|
gui: bool = False,
|
277
|
-
begin:
|
278
|
-
end:
|
279
|
+
begin: Union[datetime, int, None] = None,
|
280
|
+
end: Union[datetime, int, None] = None,
|
279
281
|
params: Optional[Dict[str, Any]] = None,
|
280
282
|
chunksize: Optional[int] = -1,
|
281
283
|
nopretty: bool = False,
|
@@ -401,12 +403,15 @@ def _show_columns(
|
|
401
403
|
def _show_rowcounts(
|
402
404
|
action: Optional[List[str]] = None,
|
403
405
|
workers: Optional[int] = None,
|
406
|
+
begin: Union[datetime, int, None] = None,
|
407
|
+
end: Union[datetime, int, None] = None,
|
408
|
+
params: Optional[Dict[str, Any]] = None,
|
404
409
|
debug: bool = False,
|
405
410
|
**kw: Any
|
406
411
|
) -> SuccessTuple:
|
407
412
|
"""
|
408
413
|
Show the rowcounts for pipes.
|
409
|
-
|
414
|
+
|
410
415
|
To see remote rowcounts (execute `COUNT(*)` on the source server),
|
411
416
|
execute `show rowcounts remote`.
|
412
417
|
"""
|
@@ -421,7 +426,13 @@ def _show_rowcounts(
|
|
421
426
|
pipes = get_pipes(as_list=True, debug=debug, **kw)
|
422
427
|
pool = get_pool(workers=workers)
|
423
428
|
def _get_rc(_pipe):
|
424
|
-
return _pipe.get_rowcount(
|
429
|
+
return _pipe.get_rowcount(
|
430
|
+
begin=begin,
|
431
|
+
end=end,
|
432
|
+
params=params,
|
433
|
+
remote=remote,
|
434
|
+
debug=debug
|
435
|
+
)
|
425
436
|
|
426
437
|
rowcounts = pool.map(_get_rc, pipes) if pool is not None else [_get_rc(p) for p in pipes]
|
427
438
|
|
meerschaum/config/_version.py
CHANGED
@@ -2075,7 +2075,7 @@ def get_pipe_rowcount(
|
|
2075
2075
|
----------
|
2076
2076
|
pipe: mrsm.Pipe
|
2077
2077
|
The pipe to query with.
|
2078
|
-
|
2078
|
+
|
2079
2079
|
begin: Union[datetime, int, None], default None
|
2080
2080
|
The begin datetime value.
|
2081
2081
|
|
@@ -2124,14 +2124,14 @@ def get_pipe_rowcount(
|
|
2124
2124
|
warn(
|
2125
2125
|
f"No datetime could be determined for {pipe}."
|
2126
2126
|
+ "\n Ignoring begin and end...",
|
2127
|
-
stack
|
2127
|
+
stack=False,
|
2128
2128
|
)
|
2129
2129
|
begin, end = None, None
|
2130
2130
|
else:
|
2131
2131
|
warn(
|
2132
2132
|
f"A datetime wasn't specified for {pipe}.\n"
|
2133
2133
|
+ f" Using column \"{_dt}\" for datetime bounds...",
|
2134
|
-
stack
|
2134
|
+
stack=False,
|
2135
2135
|
)
|
2136
2136
|
|
2137
2137
|
|
@@ -2187,6 +2187,8 @@ def get_pipe_rowcount(
|
|
2187
2187
|
FROM ({src}) AS src
|
2188
2188
|
"""
|
2189
2189
|
)
|
2190
|
+
print(f"{begin=}")
|
2191
|
+
print(f"{end=}")
|
2190
2192
|
if begin is not None or end is not None:
|
2191
2193
|
query += "WHERE"
|
2192
2194
|
if begin is not None:
|
meerschaum/core/Pipe/_data.py
CHANGED
@@ -515,15 +515,14 @@ def get_backtrack_data(
|
|
515
515
|
)
|
516
516
|
|
517
517
|
|
518
|
-
|
519
518
|
def get_rowcount(
|
520
|
-
|
521
|
-
|
522
|
-
|
523
|
-
|
524
|
-
|
525
|
-
|
526
|
-
|
519
|
+
self,
|
520
|
+
begin: Union[datetime, int, None] = None,
|
521
|
+
end: Union[datetime, int, None] = None,
|
522
|
+
params: Optional[Dict[str, Any]] = None,
|
523
|
+
remote: bool = False,
|
524
|
+
debug: bool = False
|
525
|
+
) -> int:
|
527
526
|
"""
|
528
527
|
Get a Pipe's instance or remote rowcount.
|
529
528
|
|
@@ -556,11 +555,11 @@ def get_rowcount(
|
|
556
555
|
with Venv(get_connector_plugin(connector)):
|
557
556
|
rowcount = connector.get_pipe_rowcount(
|
558
557
|
self,
|
559
|
-
begin
|
560
|
-
end
|
561
|
-
params
|
562
|
-
remote
|
563
|
-
debug
|
558
|
+
begin=begin,
|
559
|
+
end=end,
|
560
|
+
params=params,
|
561
|
+
remote=remote,
|
562
|
+
debug=debug,
|
564
563
|
)
|
565
564
|
if rowcount is None:
|
566
565
|
return 0
|
meerschaum/utils/dataframe.py
CHANGED
@@ -627,12 +627,12 @@ def get_numeric_cols(df: 'pd.DataFrame') -> List[str]:
|
|
627
627
|
|
628
628
|
def get_uuid_cols(df: 'pd.DataFrame') -> List[str]:
|
629
629
|
"""
|
630
|
-
Get the columns which contain `
|
630
|
+
Get the columns which contain `uuid.UUID` objects from a Pandas DataFrame.
|
631
631
|
|
632
632
|
Parameters
|
633
633
|
----------
|
634
634
|
df: pd.DataFrame
|
635
|
-
The DataFrame which may contain
|
635
|
+
The DataFrame which may contain UUID objects.
|
636
636
|
|
637
637
|
Returns
|
638
638
|
-------
|
@@ -276,10 +276,10 @@ def pprint_pipe_columns(
|
|
276
276
|
|
277
277
|
|
278
278
|
def pipe_repr(
|
279
|
-
|
280
|
-
|
281
|
-
|
282
|
-
|
279
|
+
pipe: mrsm.Pipe,
|
280
|
+
as_rich_text: bool = False,
|
281
|
+
ansi: Optional[bool] = None,
|
282
|
+
) -> Union[str, 'rich.text.Text']:
|
283
283
|
"""
|
284
284
|
Return a formatted string for representing a `meerschaum.Pipe`.
|
285
285
|
"""
|
meerschaum/utils/misc.py
CHANGED
@@ -390,10 +390,10 @@ def flatten_pipes_dict(pipes_dict: PipesDict) -> List[Pipe]:
|
|
390
390
|
|
391
391
|
|
392
392
|
def round_time(
|
393
|
-
|
394
|
-
|
395
|
-
|
396
|
-
|
393
|
+
dt: Optional[datetime] = None,
|
394
|
+
date_delta: Optional[timedelta] = None,
|
395
|
+
to: 'str' = 'down'
|
396
|
+
) -> datetime:
|
397
397
|
"""
|
398
398
|
Round a datetime object to a multiple of a timedelta.
|
399
399
|
http://stackoverflow.com/questions/3463930/how-to-round-the-minute-of-a-datetime-object-python
|
@@ -4,7 +4,7 @@ meerschaum/_internal/__init__.py,sha256=ilC7utfKtin7GAvuN34fKyUQYfPyqH0Mm3MJF5iy
|
|
4
4
|
meerschaum/_internal/entry.py,sha256=5vBZxQbtN0l9lia9HcvvLVWDCpSeThg-505dGhKiOBo,12234
|
5
5
|
meerschaum/_internal/arguments/__init__.py,sha256=_nSKKVLXNsJeSv-buxEZsx8_c0BAbkhRyE4nT6Bv6q0,541
|
6
6
|
meerschaum/_internal/arguments/_parse_arguments.py,sha256=602U0rQrKKGfJQYY_c13GcCD0avjOa44c5GoqIAD_iE,15805
|
7
|
-
meerschaum/_internal/arguments/_parser.py,sha256=
|
7
|
+
meerschaum/_internal/arguments/_parser.py,sha256=l2RYIn-1MEpjyUz2yczkeeuwg2liYaO2MNvEZ4Amk1o,16364
|
8
8
|
meerschaum/_internal/docs/__init__.py,sha256=ZQYHWo6n0kfLLkyG36YXqTYvv2Pc7it5HZHMylT6cBA,126
|
9
9
|
meerschaum/_internal/docs/index.py,sha256=IBVotNZ6f9KTSefXq5cCikcZ7mnjDy98JOeb-KPLkyg,24514
|
10
10
|
meerschaum/_internal/gui/__init__.py,sha256=KF6Opae0aBOjIndMZ2txoPs7ozCXRlR-lcTsicLO7fc,1313
|
@@ -41,7 +41,7 @@ meerschaum/actions/reload.py,sha256=gMXeFBGVfyQ7uhKhYf6bLaDMD0fLPcA9BrLBSiuvWIc,
|
|
41
41
|
meerschaum/actions/restart.py,sha256=6ffp3-X9eTEgunVSdD41HnOwqp71yjuSAmXJ5j39ONI,3038
|
42
42
|
meerschaum/actions/setup.py,sha256=KkAGWcgwzl_L6A19fTmTX1KtBjW2FwD8QenLjPy0mQQ,3205
|
43
43
|
meerschaum/actions/sh.py,sha256=fLfTJaacKu4sjLTRqEzzYlT2WbbdZBEczsKb6F-qAek,2026
|
44
|
-
meerschaum/actions/show.py,sha256=
|
44
|
+
meerschaum/actions/show.py,sha256=T8Ol1o-762cI9rlUzd-8svvwgT4slYXYfOPQETh9Koo,28446
|
45
45
|
meerschaum/actions/sql.py,sha256=8BSvlnccfEqLrscLq67Toa5D4FJ7I598IdxEe_yzmV8,4263
|
46
46
|
meerschaum/actions/stack.py,sha256=ZwrCTGJ0x3jjZkRieWcvqasQHYCqNtB1HYvTX-r3Z3g,5996
|
47
47
|
meerschaum/actions/start.py,sha256=7B6zLHh-DNWnJta1h_RV9ccGJ4EnbEDu3k-GdwAsU8M,19208
|
@@ -142,7 +142,7 @@ meerschaum/config/_preprocess.py,sha256=-AEA8m_--KivZwTQ1sWN6LTn5sio_fUr2XZ51BO6
|
|
142
142
|
meerschaum/config/_read_config.py,sha256=oxnLjuhy6JBBld886FkBX07wUdkpzEzTItYMUa9qw1Q,14688
|
143
143
|
meerschaum/config/_shell.py,sha256=46_m49Txc5q1rGfCgO49ca48BODx45DQJi8D0zz1R18,4245
|
144
144
|
meerschaum/config/_sync.py,sha256=jHcWRkxd82_BgX8Xo8agsWvf7BSbv3qHLWmYl6ehp_0,4242
|
145
|
-
meerschaum/config/_version.py,sha256=
|
145
|
+
meerschaum/config/_version.py,sha256=htHEYhloxhFm_vcPba-bk08zxppyNo-i76pJPh7DqqI,71
|
146
146
|
meerschaum/config/paths.py,sha256=JjibeGN3YAdSNceRwsd42aNmeUrIgM6ndzC8qZAmNI0,621
|
147
147
|
meerschaum/config/resources/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
148
148
|
meerschaum/config/stack/__init__.py,sha256=gGVxXgNnGb9u25iF__IiNPlZt1BLUVmHmFJ0jvnJg3Q,10548
|
@@ -175,7 +175,7 @@ meerschaum/connectors/sql/_cli.py,sha256=1SgnWeMIAihoxp4FzbNrcq1npXf0dSOQnCntpU9
|
|
175
175
|
meerschaum/connectors/sql/_create_engine.py,sha256=pZPjy-ne8DtVfu-wqMJopIGkgm8vul-y3E9d4tUyTgM,10215
|
176
176
|
meerschaum/connectors/sql/_fetch.py,sha256=NYYWDoEd-aGIS337KwH-D9_3KVWVCZOHAspGLfdEuUE,13086
|
177
177
|
meerschaum/connectors/sql/_instance.py,sha256=zXPZnEqvOAeOUPMeh6CcfkB1pOjjwJxdUOwXccRbuwk,6465
|
178
|
-
meerschaum/connectors/sql/_pipes.py,sha256=
|
178
|
+
meerschaum/connectors/sql/_pipes.py,sha256=0XQo4RF2DjpPp6-KvdSjkMpKknWd68QnnhgjfrREBvE,100637
|
179
179
|
meerschaum/connectors/sql/_plugins.py,sha256=wbxcNxqTtjfDsxPvdVGTllasYf6NHHzODaQ72hEUSBQ,8135
|
180
180
|
meerschaum/connectors/sql/_sql.py,sha256=zEh6fbOLJhfLOF-4x9OTQ5Fi3NMSVES3oixmnGYcNG8,36381
|
181
181
|
meerschaum/connectors/sql/_uri.py,sha256=0BrhQtqQdzg9mR04gWBZINs_BbPFtSlTECXT_TCUwik,3460
|
@@ -195,7 +195,7 @@ meerschaum/core/Pipe/_attributes.py,sha256=yAHYvizRSkqqkIRcaGAYvUjE2qe5H4xNKBmxU
|
|
195
195
|
meerschaum/core/Pipe/_bootstrap.py,sha256=evyi07kkzAVMj66HfZkbYdcWk_oHUDsl6f13EnSPMYs,7723
|
196
196
|
meerschaum/core/Pipe/_clear.py,sha256=yFAYQnDmL3m6DzyAutgnBDXSOL9gjIrLvlQXd86YFV0,2193
|
197
197
|
meerschaum/core/Pipe/_copy.py,sha256=PcOeNUb0B4-HehTAAnBpjyT4uLLTR6VQOarY0SFA9wk,2912
|
198
|
-
meerschaum/core/Pipe/_data.py,sha256=
|
198
|
+
meerschaum/core/Pipe/_data.py,sha256=Z4-B03-RP-PZtA9MnYe3-7oQSiNWTLRBwZsblvuXml4,22684
|
199
199
|
meerschaum/core/Pipe/_deduplicate.py,sha256=ZiuYZBb6d8tUkgHp6Nj8Xle20u4sjxqW45Rk2N-up54,10191
|
200
200
|
meerschaum/core/Pipe/_delete.py,sha256=1geNp9BgrocXP1gt76dMbnlJWKYFMuSNqPFA4K4-hXE,2118
|
201
201
|
meerschaum/core/Pipe/_drop.py,sha256=gIKdHWm0RsIgC2nu768MtFnPbCXyiJjNxaiT1obyuIo,1036
|
@@ -218,10 +218,10 @@ meerschaum/plugins/__init__.py,sha256=trMQ53qgP7ikJhhV_uXzqJw6X1NDz2rPOGXFk40bb1
|
|
218
218
|
meerschaum/plugins/bootstrap.py,sha256=qg9MQ1YAU8ShwGqWDl38WjiXLIxDPl95pSIGDLN9rOw,11423
|
219
219
|
meerschaum/utils/__init__.py,sha256=QrK1K9hIbPCRCM5k2nZGFqGnrqhA0Eh-iSmCU7FG6Cs,612
|
220
220
|
meerschaum/utils/_get_pipes.py,sha256=tu4xKPoDn79Dz2kWM13cXTP4DSCkn-3G9M8KiLftopw,11073
|
221
|
-
meerschaum/utils/dataframe.py,sha256=
|
221
|
+
meerschaum/utils/dataframe.py,sha256=qV_6ecpxMIZOoiUb0pIk8u5ZPBn-h6O1yS_DtdLFX_U,41937
|
222
222
|
meerschaum/utils/debug.py,sha256=GyIzJmunkoPnOcZNYVQdT4Sgd-aOb5MI2VbIgATOjIQ,3695
|
223
223
|
meerschaum/utils/interactive.py,sha256=t-6jWozXSqL7lYGDHuwiOjTgr-UKhdcg61q_eR5mikI,3196
|
224
|
-
meerschaum/utils/misc.py,sha256=
|
224
|
+
meerschaum/utils/misc.py,sha256=OijhS1TMjlqkDvahbxhqfUdo0Myeor-kTKrvqqG8wN0,46349
|
225
225
|
meerschaum/utils/networking.py,sha256=Sr_eYUGW8_UV9-k9LqRFf7xLtbUcsDucODyLCRsFRUc,1006
|
226
226
|
meerschaum/utils/pool.py,sha256=vkE42af4fjrTEJTxf6Ek3xGucm1MtEkpsSEiaVzNKHs,2655
|
227
227
|
meerschaum/utils/process.py,sha256=o7UtTQX87YGkg2dItPhlvN7gNQPkElXTYSzKf5Ro8Uc,7474
|
@@ -242,7 +242,7 @@ meerschaum/utils/dtypes/__init__.py,sha256=LawV4XrCLZRhyGquUen3i0HvK2IRHG-Ud4MYi
|
|
242
242
|
meerschaum/utils/dtypes/sql.py,sha256=K0pginy3U5UvgtM9af-HRoiqdvFlwiAmKNQBPGChIUA,16267
|
243
243
|
meerschaum/utils/formatting/__init__.py,sha256=GLx3fvTQi7EnC9fo31WggpMRpmR7yTWIuZmHdZgqvuM,15370
|
244
244
|
meerschaum/utils/formatting/_jobs.py,sha256=izsqPJhTtUkXUUtWnbXtReYsUYwulXtci3pBj72Ne64,6637
|
245
|
-
meerschaum/utils/formatting/_pipes.py,sha256=
|
245
|
+
meerschaum/utils/formatting/_pipes.py,sha256=qud_zaGKP3gh-Z5BMYadwEKWSwzUyR44Jg1RGCzAsXI,19476
|
246
246
|
meerschaum/utils/formatting/_pprint.py,sha256=tgrT3FyGyu5CWJYysqK3kX1xdZYorlbOk9fcU_vt9Qg,3096
|
247
247
|
meerschaum/utils/formatting/_shell.py,sha256=OMFh3cSZNr83z8m265irkS_JtEWHwjkEY2ybnMIOllY,3774
|
248
248
|
meerschaum/utils/packages/__init__.py,sha256=m3HLTkKJxXco1g-h75q2l5skBwKXWaJtNmfQOsijchI,63965
|
@@ -250,11 +250,11 @@ meerschaum/utils/packages/_packages.py,sha256=8Ox9fiQTVmmKAmlxZBV-7Wtq_jhPnnf3AM
|
|
250
250
|
meerschaum/utils/packages/lazy_loader.py,sha256=VHnph3VozH29R4JnSSBfwtA5WKZYZQFT_GeQSShCnuc,2540
|
251
251
|
meerschaum/utils/venv/_Venv.py,sha256=sBnlmxHdAh2bx8btfVoD79-H9-cYsv5lP02IIXkyECs,3553
|
252
252
|
meerschaum/utils/venv/__init__.py,sha256=G3KXL4ByWNqVxBRLs_RaJbO3h3tOKXkazkAYuoUW568,24420
|
253
|
-
meerschaum-2.4.
|
254
|
-
meerschaum-2.4.
|
255
|
-
meerschaum-2.4.
|
256
|
-
meerschaum-2.4.
|
257
|
-
meerschaum-2.4.
|
258
|
-
meerschaum-2.4.
|
259
|
-
meerschaum-2.4.
|
260
|
-
meerschaum-2.4.
|
253
|
+
meerschaum-2.4.9.dist-info/LICENSE,sha256=jG2zQEdRNt88EgHUWPpXVWmOrOduUQRx7MnYV9YIPaw,11359
|
254
|
+
meerschaum-2.4.9.dist-info/METADATA,sha256=Gb8bbSaia30M8sGjWj52E0DDAdgyELhNUA4yNlw8Mw0,24819
|
255
|
+
meerschaum-2.4.9.dist-info/NOTICE,sha256=OTA9Fcthjf5BRvWDDIcBC_xfLpeDV-RPZh3M-HQBRtQ,114
|
256
|
+
meerschaum-2.4.9.dist-info/WHEEL,sha256=GV9aMThwP_4oNCtvEC2ec3qUYutgWeAzklro_0m4WJQ,91
|
257
|
+
meerschaum-2.4.9.dist-info/entry_points.txt,sha256=5YBVzibw-0rNA_1VjB16z5GABsOGf-CDhW4yqH8C7Gc,88
|
258
|
+
meerschaum-2.4.9.dist-info/top_level.txt,sha256=bNoSiDj0El6buocix-FRoAtJOeq1qOF5rRm2u9i7Q6A,11
|
259
|
+
meerschaum-2.4.9.dist-info/zip-safe,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
|
260
|
+
meerschaum-2.4.9.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|