meerschaum 2.4.0.dev0__py3-none-any.whl → 2.4.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.
- meerschaum/actions/copy.py +3 -3
- meerschaum/config/_version.py +1 -1
- meerschaum/core/Pipe/__init__.py +1 -0
- meerschaum/core/Pipe/_clear.py +16 -13
- meerschaum/core/Pipe/_copy.py +106 -0
- meerschaum/core/Pipe/_verify.py +11 -11
- {meerschaum-2.4.0.dev0.dist-info → meerschaum-2.4.0.dev1.dist-info}/METADATA +1 -1
- {meerschaum-2.4.0.dev0.dist-info → meerschaum-2.4.0.dev1.dist-info}/RECORD +14 -13
- {meerschaum-2.4.0.dev0.dist-info → meerschaum-2.4.0.dev1.dist-info}/LICENSE +0 -0
- {meerschaum-2.4.0.dev0.dist-info → meerschaum-2.4.0.dev1.dist-info}/NOTICE +0 -0
- {meerschaum-2.4.0.dev0.dist-info → meerschaum-2.4.0.dev1.dist-info}/WHEEL +0 -0
- {meerschaum-2.4.0.dev0.dist-info → meerschaum-2.4.0.dev1.dist-info}/entry_points.txt +0 -0
- {meerschaum-2.4.0.dev0.dist-info → meerschaum-2.4.0.dev1.dist-info}/top_level.txt +0 -0
- {meerschaum-2.4.0.dev0.dist-info → meerschaum-2.4.0.dev1.dist-info}/zip-safe +0 -0
meerschaum/actions/copy.py
CHANGED
meerschaum/config/_version.py
CHANGED
meerschaum/core/Pipe/__init__.py
CHANGED
meerschaum/core/Pipe/_clear.py
CHANGED
@@ -7,25 +7,28 @@ Clear pipe data within a bounded or unbounded interval.
|
|
7
7
|
"""
|
8
8
|
|
9
9
|
from __future__ import annotations
|
10
|
+
|
11
|
+
from datetime import datetime
|
10
12
|
from meerschaum.utils.typing import SuccessTuple, Any, Optional, Dict
|
11
13
|
|
14
|
+
|
12
15
|
def clear(
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
16
|
+
self,
|
17
|
+
begin: Optional[datetime] = None,
|
18
|
+
end: Optional[datetime] = None,
|
19
|
+
params: Optional[Dict[str, Any]] = None,
|
20
|
+
debug: bool = False,
|
21
|
+
**kwargs: Any
|
22
|
+
) -> SuccessTuple:
|
20
23
|
"""
|
21
24
|
Call the Pipe's instance connector's `clear_pipe` method.
|
22
25
|
|
23
26
|
Parameters
|
24
27
|
----------
|
25
|
-
begin: Optional[datetime
|
28
|
+
begin: Optional[datetime], default None:
|
26
29
|
If provided, only remove rows newer than this datetime value.
|
27
30
|
|
28
|
-
end: Optional[datetime
|
31
|
+
end: Optional[datetime], default None:
|
29
32
|
If provided, only remove rows older than this datetime column (not including end).
|
30
33
|
|
31
34
|
params: Optional[Dict[str, Any]], default None
|
@@ -41,11 +44,11 @@ def clear(
|
|
41
44
|
Examples
|
42
45
|
--------
|
43
46
|
>>> pipe = mrsm.Pipe('test', 'test', columns={'datetime': 'dt'}, instance='sql:local')
|
44
|
-
>>> pipe.sync({'dt': [datetime
|
45
|
-
>>> pipe.sync({'dt': [datetime
|
46
|
-
>>> pipe.sync({'dt': [datetime
|
47
|
+
>>> pipe.sync({'dt': [datetime(2020, 1, 1, 0, 0)]})
|
48
|
+
>>> pipe.sync({'dt': [datetime(2021, 1, 1, 0, 0)]})
|
49
|
+
>>> pipe.sync({'dt': [datetime(2022, 1, 1, 0, 0)]})
|
47
50
|
>>>
|
48
|
-
>>> pipe.clear(begin=datetime
|
51
|
+
>>> pipe.clear(begin=datetime(2021, 1, 1, 0, 0))
|
49
52
|
>>> pipe.get_data()
|
50
53
|
dt
|
51
54
|
0 2020-01-01
|
@@ -0,0 +1,106 @@
|
|
1
|
+
#! /usr/bin/env python3
|
2
|
+
# vim:fenc=utf-8
|
3
|
+
|
4
|
+
"""
|
5
|
+
Define methods for copying pipes.
|
6
|
+
"""
|
7
|
+
|
8
|
+
from datetime import datetime, timedelta
|
9
|
+
|
10
|
+
import meerschaum as mrsm
|
11
|
+
from meerschaum.utils.typing import SuccessTuple, Any, Optional, Dict, Union
|
12
|
+
|
13
|
+
|
14
|
+
def copy_to(
|
15
|
+
self,
|
16
|
+
instance_keys: str,
|
17
|
+
sync: bool = True,
|
18
|
+
begin: Union[datetime, int, None] = None,
|
19
|
+
end: Union[datetime, int, None] = None,
|
20
|
+
params: Optional[Dict[str, Any]] = None,
|
21
|
+
chunk_interval: Union[timedelta, int, None] = None,
|
22
|
+
debug: bool = False,
|
23
|
+
**kwargs: Any
|
24
|
+
) -> SuccessTuple:
|
25
|
+
"""
|
26
|
+
Copy a pipe to another instance.
|
27
|
+
|
28
|
+
Parameters
|
29
|
+
----------
|
30
|
+
instance_keys: str
|
31
|
+
The instance to which to copy this pipe.
|
32
|
+
|
33
|
+
sync: bool, default True
|
34
|
+
If `True`, sync the source pipe's documents
|
35
|
+
|
36
|
+
begin: Union[datetime, int, None], default None
|
37
|
+
Beginning datetime value to pass to `Pipe.get_data()`.
|
38
|
+
|
39
|
+
end: Union[datetime, int, None], default None
|
40
|
+
End datetime value to pass to `Pipe.get_data()`.
|
41
|
+
|
42
|
+
params: Optional[Dict[str, Any]], default None
|
43
|
+
Parameters filter to pass to `Pipe.get_data()`.
|
44
|
+
|
45
|
+
chunk_interval: Union[timedelta, int, None], default None
|
46
|
+
The size of chunks to retrieve from `Pipe.get_data()` for syncing.
|
47
|
+
|
48
|
+
kwargs: Any
|
49
|
+
Additional flags to pass to `Pipe.get_data()` and `Pipe.sync()`, e.g. `workers`.
|
50
|
+
|
51
|
+
Returns
|
52
|
+
-------
|
53
|
+
A SuccessTuple indicating success.
|
54
|
+
"""
|
55
|
+
if str(instance_keys) == self.instance_keys:
|
56
|
+
return False, f"Cannot copy {self} to instance '{instance_keys}'."
|
57
|
+
|
58
|
+
new_pipe = mrsm.Pipe(
|
59
|
+
self.connector_keys,
|
60
|
+
self.metric_key,
|
61
|
+
self.location_key,
|
62
|
+
parameters=self.parameters.copy(),
|
63
|
+
instance=instance_keys,
|
64
|
+
)
|
65
|
+
|
66
|
+
new_pipe_is_registered = new_pipe.get_id() is not None
|
67
|
+
|
68
|
+
metadata_method = new_pipe.edit if new_pipe_is_registered else new_pipe.register
|
69
|
+
metadata_success, metadata_msg = metadata_method(debug=debug)
|
70
|
+
if not metadata_success:
|
71
|
+
return metadata_success, metadata_msg
|
72
|
+
|
73
|
+
if not self.exists(debug=debug):
|
74
|
+
return True, f"{self} does not exist; nothing to sync."
|
75
|
+
|
76
|
+
original_as_iterator = kwargs.get('as_iterator', None)
|
77
|
+
kwargs['as_iterator'] = True
|
78
|
+
|
79
|
+
chunk_generator = self.get_data(
|
80
|
+
begin=begin,
|
81
|
+
end=end,
|
82
|
+
params=params,
|
83
|
+
chunk_interval=chunk_interval,
|
84
|
+
debug=debug,
|
85
|
+
**kwargs
|
86
|
+
)
|
87
|
+
|
88
|
+
if original_as_iterator is None:
|
89
|
+
_ = kwargs.pop('as_iterator', None)
|
90
|
+
else:
|
91
|
+
kwargs['as_iterator'] = original_as_iterator
|
92
|
+
|
93
|
+
sync_success, sync_msg = new_pipe.sync(
|
94
|
+
chunk_generator,
|
95
|
+
begin=begin,
|
96
|
+
end=end,
|
97
|
+
params=params,
|
98
|
+
debug=debug,
|
99
|
+
**kwargs
|
100
|
+
)
|
101
|
+
msg = (
|
102
|
+
f"Successfully synced {new_pipe}:\n{sync_msg}"
|
103
|
+
if sync_success
|
104
|
+
else f"Failed to sync {new_pipe}:\n{sync_msg}"
|
105
|
+
)
|
106
|
+
return sync_success, msg
|
meerschaum/core/Pipe/_verify.py
CHANGED
@@ -12,17 +12,17 @@ from meerschaum.utils.warnings import warn, info
|
|
12
12
|
from meerschaum.utils.debug import dprint
|
13
13
|
|
14
14
|
def verify(
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
15
|
+
self,
|
16
|
+
begin: Union[datetime, int, None] = None,
|
17
|
+
end: Union[datetime, int, None] = None,
|
18
|
+
params: Optional[Dict[str, Any]] = None,
|
19
|
+
chunk_interval: Union[timedelta, int, None] = None,
|
20
|
+
bounded: Optional[bool] = None,
|
21
|
+
deduplicate: bool = False,
|
22
|
+
workers: Optional[int] = None,
|
23
|
+
debug: bool = False,
|
24
|
+
**kwargs: Any
|
25
|
+
) -> SuccessTuple:
|
26
26
|
"""
|
27
27
|
Verify the contents of the pipe by resyncing its interval.
|
28
28
|
|
@@ -26,7 +26,7 @@ meerschaum/actions/api.py,sha256=nRHGeMTy0njI9Qec_606GwSS0AnoxiGJodOS8uWpjfU,125
|
|
26
26
|
meerschaum/actions/attach.py,sha256=UV19d9W_2WYcrf7BRz7k3mriDoX1V4rA4AKvbLdor0o,3106
|
27
27
|
meerschaum/actions/bootstrap.py,sha256=c6US_SklR_ipr1Ax_2S6zP5pVZivr7v9OLTPxsMCiI4,14828
|
28
28
|
meerschaum/actions/clear.py,sha256=OoFZE0bK5m8s3GLNZcixuVT0DMj1izXVxGCATcmUGbI,4851
|
29
|
-
meerschaum/actions/copy.py,sha256=
|
29
|
+
meerschaum/actions/copy.py,sha256=NwTwj3IMdK1TFRuJXCxsbIEFNVeoNGoMkvE6H1ZQZzo,6838
|
30
30
|
meerschaum/actions/deduplicate.py,sha256=puYyxeFYEUy1Sd2IOcZB2e6MrNxAZl2bTLmNzFDkCiw,1167
|
31
31
|
meerschaum/actions/delete.py,sha256=OidLnYT4E3OEHGHOeHOHbL3FFJonE7iR_3sPCj0azK0,18974
|
32
32
|
meerschaum/actions/drop.py,sha256=Hd5h4rrWd7qL2rTqglsTonUsEoH7qQlsfqNFSHGeqr0,2453
|
@@ -142,7 +142,7 @@ meerschaum/config/_preprocess.py,sha256=-AEA8m_--KivZwTQ1sWN6LTn5sio_fUr2XZ51BO6
|
|
142
142
|
meerschaum/config/_read_config.py,sha256=WFZKIXZMDe_ca0ES7ivgM_mnwShvFxLdoeisT_X5-h0,14720
|
143
143
|
meerschaum/config/_shell.py,sha256=46_m49Txc5q1rGfCgO49ca48BODx45DQJi8D0zz1R18,4245
|
144
144
|
meerschaum/config/_sync.py,sha256=oK2ZujO2T1he08BXCFyiniBUevNGWSQKXLcS_jRv_7Y,4155
|
145
|
-
meerschaum/config/_version.py,sha256=
|
145
|
+
meerschaum/config/_version.py,sha256=iWXhzo8W_BkmGIL_HSHnU4ESCCaOIuBZGwu1MFLKjfQ,76
|
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=bUXiccj-dvpuPCGs-hclR8E5lrgrpg5Tmjte3BJVX4s,10488
|
@@ -190,10 +190,11 @@ meerschaum/connectors/valkey/_pipes.py,sha256=-QnjGs6Xb7U9ZyjRyJ1PRUPfxoCOSAS7Zd
|
|
190
190
|
meerschaum/connectors/valkey/_plugins.py,sha256=ZqiEW4XZCOpw4G8DUK2IKY6Qrph4mYfTjgXWimgakYY,6267
|
191
191
|
meerschaum/connectors/valkey/_users.py,sha256=AS1vLarrkDA9yPK644GWwRiQiTZVa9x3nlLpyntq40g,7730
|
192
192
|
meerschaum/core/__init__.py,sha256=tjASW10n9uLV6bYhcwP4rggh-ESXSJzgxpSBbVsuISs,251
|
193
|
-
meerschaum/core/Pipe/__init__.py,sha256=
|
193
|
+
meerschaum/core/Pipe/__init__.py,sha256=g1Geblo4NwNYumM9sSPBMAxiGZnhuh-nQ5OSwQ06Dvg,16702
|
194
194
|
meerschaum/core/Pipe/_attributes.py,sha256=8nHMCZnQexAcG1ONXNqTldEowD7gstd34lDUcBktPeA,13144
|
195
195
|
meerschaum/core/Pipe/_bootstrap.py,sha256=evyi07kkzAVMj66HfZkbYdcWk_oHUDsl6f13EnSPMYs,7723
|
196
|
-
meerschaum/core/Pipe/_clear.py,sha256=
|
196
|
+
meerschaum/core/Pipe/_clear.py,sha256=yFAYQnDmL3m6DzyAutgnBDXSOL9gjIrLvlQXd86YFV0,2193
|
197
|
+
meerschaum/core/Pipe/_copy.py,sha256=PcOeNUb0B4-HehTAAnBpjyT4uLLTR6VQOarY0SFA9wk,2912
|
197
198
|
meerschaum/core/Pipe/_data.py,sha256=Ese54Qointav0M-bmIx5NrJIbIrFCb2hQvPEAfxRBAk,20922
|
198
199
|
meerschaum/core/Pipe/_deduplicate.py,sha256=E3oXu6-0vZhzacv0GHri9yHd7XrSlIStZ--KE2EqeVM,10274
|
199
200
|
meerschaum/core/Pipe/_delete.py,sha256=1geNp9BgrocXP1gt76dMbnlJWKYFMuSNqPFA4K4-hXE,2118
|
@@ -204,7 +205,7 @@ meerschaum/core/Pipe/_fetch.py,sha256=LtYqZSN2kwc5Tl2gQ5kSmGN7Ombv86k1zDNTP3SUF1
|
|
204
205
|
meerschaum/core/Pipe/_register.py,sha256=Sd5xaAW8H7uLTIoommcKb-6kHPRuHJLWNSbPnt2UbvA,2240
|
205
206
|
meerschaum/core/Pipe/_show.py,sha256=nG50y8eBT9TVuKkRgAKtNDNIxysJvMNxfu__lkL1F9k,1352
|
206
207
|
meerschaum/core/Pipe/_sync.py,sha256=ha0bk3FEw3foaWIpzYYxzAeFjXoOubVL-avfowKJImE,32132
|
207
|
-
meerschaum/core/Pipe/_verify.py,sha256=
|
208
|
+
meerschaum/core/Pipe/_verify.py,sha256=GDCFRWWoaqXXfLQaTlS9_J7OqjuqA_JqXvUWZUOEclk,14218
|
208
209
|
meerschaum/core/Plugin/__init__.py,sha256=UXg64EvJPgI1PCxkY_KM02-ZmBm4FZpLPIQR_uSJJDc,137
|
209
210
|
meerschaum/core/User/_User.py,sha256=JZ9Y1tsjZe-cgD24m9YfZ6ZwSOKn_sHc4rbQ7KblBz8,6592
|
210
211
|
meerschaum/core/User/__init__.py,sha256=lJ7beIZTG9sO4dAi3367fFBl17dXYEWHKi7HoaPlDyk,193
|
@@ -249,11 +250,11 @@ meerschaum/utils/packages/_packages.py,sha256=I1tXtYbMlITIVmoJhYQhWtCcmOwvK7iHdb
|
|
249
250
|
meerschaum/utils/packages/lazy_loader.py,sha256=VHnph3VozH29R4JnSSBfwtA5WKZYZQFT_GeQSShCnuc,2540
|
250
251
|
meerschaum/utils/venv/_Venv.py,sha256=sBnlmxHdAh2bx8btfVoD79-H9-cYsv5lP02IIXkyECs,3553
|
251
252
|
meerschaum/utils/venv/__init__.py,sha256=bLAWnllKDuE_z6bLk7gLh4mI3Sp1j5hsboTqPKOQq84,24361
|
252
|
-
meerschaum-2.4.0.
|
253
|
-
meerschaum-2.4.0.
|
254
|
-
meerschaum-2.4.0.
|
255
|
-
meerschaum-2.4.0.
|
256
|
-
meerschaum-2.4.0.
|
257
|
-
meerschaum-2.4.0.
|
258
|
-
meerschaum-2.4.0.
|
259
|
-
meerschaum-2.4.0.
|
253
|
+
meerschaum-2.4.0.dev1.dist-info/LICENSE,sha256=jG2zQEdRNt88EgHUWPpXVWmOrOduUQRx7MnYV9YIPaw,11359
|
254
|
+
meerschaum-2.4.0.dev1.dist-info/METADATA,sha256=7D3rckc0osdt2IQDj2ChMSJDuQeihJMwF3qgROoETSI,24106
|
255
|
+
meerschaum-2.4.0.dev1.dist-info/NOTICE,sha256=OTA9Fcthjf5BRvWDDIcBC_xfLpeDV-RPZh3M-HQBRtQ,114
|
256
|
+
meerschaum-2.4.0.dev1.dist-info/WHEEL,sha256=UvcQYKBHoFqaQd6LKyqHw9fxEolWLQnlzP0h_LgJAfI,91
|
257
|
+
meerschaum-2.4.0.dev1.dist-info/entry_points.txt,sha256=5YBVzibw-0rNA_1VjB16z5GABsOGf-CDhW4yqH8C7Gc,88
|
258
|
+
meerschaum-2.4.0.dev1.dist-info/top_level.txt,sha256=bNoSiDj0El6buocix-FRoAtJOeq1qOF5rRm2u9i7Q6A,11
|
259
|
+
meerschaum-2.4.0.dev1.dist-info/zip-safe,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
|
260
|
+
meerschaum-2.4.0.dev1.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|