moat-kv 0.71.6__tar.gz → 0.71.8__tar.gz
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.
- {moat_kv-0.71.6 → moat_kv-0.71.8}/PKG-INFO +1 -1
- {moat_kv-0.71.6 → moat_kv-0.71.8}/debian/changelog +30 -0
- {moat_kv-0.71.6 → moat_kv-0.71.8}/debian/control +1 -1
- {moat_kv-0.71.6 → moat_kv-0.71.8}/pyproject.toml +1 -1
- {moat_kv-0.71.6 → moat_kv-0.71.8}/src/moat/kv/command/code.py +2 -2
- {moat_kv-0.71.6 → moat_kv-0.71.8}/src/moat/kv/command/dump/__init__.py +7 -5
- {moat_kv-0.71.6 → moat_kv-0.71.8}/src/moat/kv/model.py +3 -1
- {moat_kv-0.71.6 → moat_kv-0.71.8}/src/moat/kv/server.py +7 -2
- {moat_kv-0.71.6 → moat_kv-0.71.8}/src/moat/kv/types.py +4 -8
- {moat_kv-0.71.6 → moat_kv-0.71.8}/src/moat_kv.egg-info/PKG-INFO +1 -1
- {moat_kv-0.71.6 → moat_kv-0.71.8}/LICENSE +0 -0
- {moat_kv-0.71.6 → moat_kv-0.71.8}/LICENSE.APACHE2 +0 -0
- {moat_kv-0.71.6 → moat_kv-0.71.8}/LICENSE.MIT +0 -0
- {moat_kv-0.71.6 → moat_kv-0.71.8}/LICENSE.txt +0 -0
- {moat_kv-0.71.6 → moat_kv-0.71.8}/MANIFEST.in +0 -0
- {moat_kv-0.71.6 → moat_kv-0.71.8}/Makefile +0 -0
- {moat_kv-0.71.6 → moat_kv-0.71.8}/README.rst +0 -0
- {moat_kv-0.71.6 → moat_kv-0.71.8}/ci/rtd-requirements.txt +0 -0
- {moat_kv-0.71.6 → moat_kv-0.71.8}/ci/test-requirements.txt +0 -0
- {moat_kv-0.71.6 → moat_kv-0.71.8}/ci/travis.sh +0 -0
- {moat_kv-0.71.6 → moat_kv-0.71.8}/debian/.gitignore +0 -0
- {moat_kv-0.71.6 → moat_kv-0.71.8}/debian/moat-kv.postinst +0 -0
- {moat_kv-0.71.6 → moat_kv-0.71.8}/debian/rules +0 -0
- {moat_kv-0.71.6 → moat_kv-0.71.8}/debian/source/format +0 -0
- {moat_kv-0.71.6 → moat_kv-0.71.8}/debian/watch +0 -0
- {moat_kv-0.71.6 → moat_kv-0.71.8}/docs/Makefile +0 -0
- {moat_kv-0.71.6 → moat_kv-0.71.8}/docs/make.bat +0 -0
- {moat_kv-0.71.6 → moat_kv-0.71.8}/docs/source/TODO.rst +0 -0
- {moat_kv-0.71.6 → moat_kv-0.71.8}/docs/source/_static/.gitkeep +0 -0
- {moat_kv-0.71.6 → moat_kv-0.71.8}/docs/source/acls.rst +0 -0
- {moat_kv-0.71.6 → moat_kv-0.71.8}/docs/source/auth.rst +0 -0
- {moat_kv-0.71.6 → moat_kv-0.71.8}/docs/source/client_protocol.rst +0 -0
- {moat_kv-0.71.6 → moat_kv-0.71.8}/docs/source/code.rst +0 -0
- {moat_kv-0.71.6 → moat_kv-0.71.8}/docs/source/command_line.rst +0 -0
- {moat_kv-0.71.6 → moat_kv-0.71.8}/docs/source/common_protocol.rst +0 -0
- {moat_kv-0.71.6 → moat_kv-0.71.8}/docs/source/conf.py +0 -0
- {moat_kv-0.71.6 → moat_kv-0.71.8}/docs/source/debugging.rst +0 -0
- {moat_kv-0.71.6 → moat_kv-0.71.8}/docs/source/extend.rst +0 -0
- {moat_kv-0.71.6 → moat_kv-0.71.8}/docs/source/history.rst +0 -0
- {moat_kv-0.71.6 → moat_kv-0.71.8}/docs/source/index.rst +0 -0
- {moat_kv-0.71.6 → moat_kv-0.71.8}/docs/source/model.rst +0 -0
- {moat_kv-0.71.6 → moat_kv-0.71.8}/docs/source/overview.rst +0 -0
- {moat_kv-0.71.6 → moat_kv-0.71.8}/docs/source/related.rst +0 -0
- {moat_kv-0.71.6 → moat_kv-0.71.8}/docs/source/server_protocol.rst +0 -0
- {moat_kv-0.71.6 → moat_kv-0.71.8}/docs/source/startup.rst +0 -0
- {moat_kv-0.71.6 → moat_kv-0.71.8}/docs/source/translator.rst +0 -0
- {moat_kv-0.71.6 → moat_kv-0.71.8}/docs/source/tutorial.rst +0 -0
- {moat_kv-0.71.6 → moat_kv-0.71.8}/docs/source/v3.rst +0 -0
- {moat_kv-0.71.6 → moat_kv-0.71.8}/examples/code/transform.scale.yml +0 -0
- {moat_kv-0.71.6 → moat_kv-0.71.8}/examples/code/transform.switch.yml +0 -0
- {moat_kv-0.71.6 → moat_kv-0.71.8}/examples/code/transform.timeslot.yml +0 -0
- {moat_kv-0.71.6 → moat_kv-0.71.8}/examples/pathify.py +0 -0
- {moat_kv-0.71.6 → moat_kv-0.71.8}/mktag +0 -0
- {moat_kv-0.71.6 → moat_kv-0.71.8}/scripts/current +0 -0
- {moat_kv-0.71.6 → moat_kv-0.71.8}/scripts/env +0 -0
- {moat_kv-0.71.6 → moat_kv-0.71.8}/scripts/init +0 -0
- {moat_kv-0.71.6 → moat_kv-0.71.8}/scripts/recover +0 -0
- {moat_kv-0.71.6 → moat_kv-0.71.8}/scripts/rotate +0 -0
- {moat_kv-0.71.6 → moat_kv-0.71.8}/scripts/run +0 -0
- {moat_kv-0.71.6 → moat_kv-0.71.8}/scripts/run-all +0 -0
- {moat_kv-0.71.6 → moat_kv-0.71.8}/scripts/run-any +0 -0
- {moat_kv-0.71.6 → moat_kv-0.71.8}/scripts/run-single +0 -0
- {moat_kv-0.71.6 → moat_kv-0.71.8}/scripts/success +0 -0
- {moat_kv-0.71.6 → moat_kv-0.71.8}/setup.cfg +0 -0
- {moat_kv-0.71.6 → moat_kv-0.71.8}/src/moat/kv/__init__.py +0 -0
- {moat_kv-0.71.6 → moat_kv-0.71.8}/src/moat/kv/_cfg.yaml +0 -0
- {moat_kv-0.71.6 → moat_kv-0.71.8}/src/moat/kv/_main.py +0 -0
- {moat_kv-0.71.6 → moat_kv-0.71.8}/src/moat/kv/actor/__init__.py +0 -0
- {moat_kv-0.71.6 → moat_kv-0.71.8}/src/moat/kv/actor/deletor.py +0 -0
- {moat_kv-0.71.6 → moat_kv-0.71.8}/src/moat/kv/auth/__init__.py +0 -0
- {moat_kv-0.71.6 → moat_kv-0.71.8}/src/moat/kv/auth/_test.py +0 -0
- {moat_kv-0.71.6 → moat_kv-0.71.8}/src/moat/kv/auth/password.py +0 -0
- {moat_kv-0.71.6 → moat_kv-0.71.8}/src/moat/kv/auth/root.py +0 -0
- {moat_kv-0.71.6 → moat_kv-0.71.8}/src/moat/kv/backend/__init__.py +0 -0
- {moat_kv-0.71.6 → moat_kv-0.71.8}/src/moat/kv/backend/mqtt.py +0 -0
- {moat_kv-0.71.6 → moat_kv-0.71.8}/src/moat/kv/client.py +0 -0
- {moat_kv-0.71.6 → moat_kv-0.71.8}/src/moat/kv/code.py +0 -0
- {moat_kv-0.71.6 → moat_kv-0.71.8}/src/moat/kv/command/__init__.py +0 -0
- {moat_kv-0.71.6 → moat_kv-0.71.8}/src/moat/kv/command/acl.py +0 -0
- {moat_kv-0.71.6 → moat_kv-0.71.8}/src/moat/kv/command/auth.py +0 -0
- {moat_kv-0.71.6 → moat_kv-0.71.8}/src/moat/kv/command/codec.py +0 -0
- {moat_kv-0.71.6 → moat_kv-0.71.8}/src/moat/kv/command/data.py +0 -0
- {moat_kv-0.71.6 → moat_kv-0.71.8}/src/moat/kv/command/error.py +0 -0
- {moat_kv-0.71.6 → moat_kv-0.71.8}/src/moat/kv/command/internal.py +0 -0
- {moat_kv-0.71.6 → moat_kv-0.71.8}/src/moat/kv/command/job.py +0 -0
- {moat_kv-0.71.6 → moat_kv-0.71.8}/src/moat/kv/command/log.py +0 -0
- {moat_kv-0.71.6 → moat_kv-0.71.8}/src/moat/kv/command/server.py +0 -0
- {moat_kv-0.71.6 → moat_kv-0.71.8}/src/moat/kv/command/type.py +0 -0
- {moat_kv-0.71.6 → moat_kv-0.71.8}/src/moat/kv/config.py +0 -0
- {moat_kv-0.71.6 → moat_kv-0.71.8}/src/moat/kv/data.py +0 -0
- {moat_kv-0.71.6 → moat_kv-0.71.8}/src/moat/kv/errors.py +0 -0
- {moat_kv-0.71.6 → moat_kv-0.71.8}/src/moat/kv/exceptions.py +0 -0
- {moat_kv-0.71.6 → moat_kv-0.71.8}/src/moat/kv/mock/__init__.py +0 -0
- {moat_kv-0.71.6 → moat_kv-0.71.8}/src/moat/kv/mock/mqtt.py +0 -0
- {moat_kv-0.71.6 → moat_kv-0.71.8}/src/moat/kv/mock/tracer.py +0 -0
- {moat_kv-0.71.6 → moat_kv-0.71.8}/src/moat/kv/obj/__init__.py +0 -0
- {moat_kv-0.71.6 → moat_kv-0.71.8}/src/moat/kv/obj/command.py +0 -0
- {moat_kv-0.71.6 → moat_kv-0.71.8}/src/moat/kv/runner.py +0 -0
- {moat_kv-0.71.6 → moat_kv-0.71.8}/src/moat_kv.egg-info/SOURCES.txt +0 -0
- {moat_kv-0.71.6 → moat_kv-0.71.8}/src/moat_kv.egg-info/dependency_links.txt +0 -0
- {moat_kv-0.71.6 → moat_kv-0.71.8}/src/moat_kv.egg-info/requires.txt +0 -0
- {moat_kv-0.71.6 → moat_kv-0.71.8}/src/moat_kv.egg-info/top_level.txt +0 -0
- {moat_kv-0.71.6 → moat_kv-0.71.8}/systemd/moat-kv-recover.service +0 -0
- {moat_kv-0.71.6 → moat_kv-0.71.8}/systemd/moat-kv-rotate.service +0 -0
- {moat_kv-0.71.6 → moat_kv-0.71.8}/systemd/moat-kv-rotate.timer +0 -0
- {moat_kv-0.71.6 → moat_kv-0.71.8}/systemd/moat-kv-run-all.service +0 -0
- {moat_kv-0.71.6 → moat_kv-0.71.8}/systemd/moat-kv-run-all@.service +0 -0
- {moat_kv-0.71.6 → moat_kv-0.71.8}/systemd/moat-kv-run-any.service +0 -0
- {moat_kv-0.71.6 → moat_kv-0.71.8}/systemd/moat-kv-run-any@.service +0 -0
- {moat_kv-0.71.6 → moat_kv-0.71.8}/systemd/moat-kv-run-single.service +0 -0
- {moat_kv-0.71.6 → moat_kv-0.71.8}/systemd/moat-kv-run-single@.service +0 -0
- {moat_kv-0.71.6 → moat_kv-0.71.8}/systemd/moat-kv.service +0 -0
- {moat_kv-0.71.6 → moat_kv-0.71.8}/systemd/postinst +0 -0
- {moat_kv-0.71.6 → moat_kv-0.71.8}/systemd/sysusers +0 -0
@@ -1,3 +1,33 @@
|
|
1
|
+
moat-kv (0.71.8-1) unstable; urgency=medium
|
2
|
+
|
3
|
+
* New release for 25.1.20
|
4
|
+
|
5
|
+
-- Matthias Urlichs <matthias@urlichs.de> Tue, 13 May 2025 10:47:50 +0200
|
6
|
+
|
7
|
+
moat-kv (0.71.7-2) unstable; urgency=medium
|
8
|
+
|
9
|
+
* New release for 25.1.19
|
10
|
+
|
11
|
+
-- Matthias Urlichs <matthias@urlichs.de> Mon, 12 May 2025 20:29:28 +0200
|
12
|
+
|
13
|
+
moat-kv (0.71.7-1) unstable; urgency=medium
|
14
|
+
|
15
|
+
* New release for 25.1.18
|
16
|
+
|
17
|
+
-- Matthias Urlichs <matthias@urlichs.de> Mon, 12 May 2025 20:25:27 +0200
|
18
|
+
|
19
|
+
moat-kv (0.71.6-3) unstable; urgency=medium
|
20
|
+
|
21
|
+
* New release for 25.1.14
|
22
|
+
|
23
|
+
-- Matthias Urlichs <matthias@urlichs.de> Mon, 12 May 2025 17:38:50 +0200
|
24
|
+
|
25
|
+
moat-kv (0.71.6-2) unstable; urgency=medium
|
26
|
+
|
27
|
+
* New release for 25.2.1
|
28
|
+
|
29
|
+
-- Matthias Urlichs <matthias@urlichs.de> Mon, 12 May 2025 09:52:21 +0200
|
30
|
+
|
1
31
|
moat-kv (0.71.6-1) unstable; urgency=medium
|
2
32
|
|
3
33
|
* New release for 25.2.1
|
@@ -33,7 +33,7 @@ async def cli(ctx, path):
|
|
33
33
|
|
34
34
|
|
35
35
|
@cli.command()
|
36
|
-
@click.option("-
|
36
|
+
@click.option("-S", "--script", type=click.File(mode="w", lazy=True), help="Save the code here")
|
37
37
|
@click.pass_obj
|
38
38
|
async def get(obj, script):
|
39
39
|
"""Read a code entry"""
|
@@ -64,7 +64,7 @@ async def get(obj, script):
|
|
64
64
|
default=True,
|
65
65
|
)
|
66
66
|
@click.option("-t", "--thread", is_flag=True, help="The code should run in a worker thread")
|
67
|
-
@click.option("-
|
67
|
+
@click.option("-S", "--script", type=click.File(mode="r"), help="File with the code")
|
68
68
|
@click.option("-i", "--info", type=str, help="one-liner info about the code")
|
69
69
|
@click.option("-d", "--data", type=click.File(mode="r"), help="load the metadata (YAML)")
|
70
70
|
@attr_args
|
@@ -15,7 +15,6 @@ from moat.util import (
|
|
15
15
|
yprint,
|
16
16
|
)
|
17
17
|
|
18
|
-
from moat.util.mqtt import unpacker
|
19
18
|
from moat.util.msgpack import StdMsgpack
|
20
19
|
|
21
20
|
|
@@ -77,19 +76,21 @@ async def msg_(obj, path):
|
|
77
76
|
self._part_cache = dict()
|
78
77
|
|
79
78
|
import moat.kv.server
|
79
|
+
cfg = obj.cfg.kv
|
80
80
|
|
81
81
|
_Unpack._unpack_multiple = moat.kv.server.Server._unpack_multiple
|
82
82
|
_unpacker = _Unpack()._unpack_multiple
|
83
|
+
unpacker = StdMsgpack().decode
|
83
84
|
|
84
85
|
path = P(path)
|
85
86
|
if len(path) == 0:
|
86
|
-
path = P(
|
87
|
+
path = P(cfg.server["root"]) | "update"
|
87
88
|
elif len(path) == 1 and path[0].startswith("+"): # pylint: disable=no-member # owch
|
88
89
|
p = path[0][1:]
|
89
|
-
path = P(
|
90
|
+
path = P(cfg.server["root"])
|
90
91
|
path |= p or "#"
|
91
|
-
be =
|
92
|
-
kw =
|
92
|
+
be = cfg.server.backend
|
93
|
+
kw = cfg.server[be]
|
93
94
|
|
94
95
|
async with (
|
95
96
|
get_backend(be)(**kw) as conn,
|
@@ -99,6 +100,7 @@ async def msg_(obj, path):
|
|
99
100
|
v = vars(msg)
|
100
101
|
if isinstance(v.get("payload"), (bytearray, bytes)):
|
101
102
|
t = msg.topic
|
103
|
+
breakpoint()
|
102
104
|
v = unpacker(v["payload"])
|
103
105
|
v = _unpacker(v)
|
104
106
|
if v is None:
|
@@ -1026,13 +1026,15 @@ class Watcher:
|
|
1026
1026
|
|
1027
1027
|
root: Entry = None
|
1028
1028
|
q = None
|
1029
|
-
q_len =
|
1029
|
+
q_len = 10000
|
1030
1030
|
|
1031
1031
|
def __init__(self, root: Entry, full: bool = False, q_len: int | None = None):
|
1032
1032
|
self.root = root
|
1033
1033
|
self.full = full
|
1034
1034
|
if q_len is not None:
|
1035
1035
|
self.q_len = q_len
|
1036
|
+
if self.q_len<100000:
|
1037
|
+
self.q_len=100000
|
1036
1038
|
|
1037
1039
|
async def __aenter__(self):
|
1038
1040
|
if self.q is not None:
|
@@ -225,11 +225,16 @@ class StreamCommand:
|
|
225
225
|
except Exception as exc:
|
226
226
|
if not isinstance(exc, CancelledError):
|
227
227
|
self.client.logger.exception("ERS%d %r", self.client._client_nr, self.msg)
|
228
|
-
|
228
|
+
try:
|
229
|
+
await self.send(error=repr(exc))
|
230
|
+
except Exception:
|
231
|
+
pass
|
229
232
|
finally:
|
230
233
|
with anyio.move_on_after(2, shield=True):
|
231
|
-
|
234
|
+
try:
|
232
235
|
await self.send(state="end")
|
236
|
+
except Exception:
|
237
|
+
pass
|
233
238
|
|
234
239
|
else:
|
235
240
|
res = await self.run(**kw)
|
@@ -277,18 +277,16 @@ class CodecEntry(Entry):
|
|
277
277
|
if self._enc is not None:
|
278
278
|
try:
|
279
279
|
value = self._enc(value, entry=entry, data=self._data, **kv)
|
280
|
-
except TypeError:
|
281
|
-
|
282
|
-
raise
|
280
|
+
except (TypeError,ValueError):
|
281
|
+
pass
|
283
282
|
return value
|
284
283
|
|
285
284
|
def dec_value(self, value, entry=None, **kv):
|
286
285
|
if self._dec is not None:
|
287
286
|
try:
|
288
287
|
value = self._dec(value, entry=entry, data=self._data, **kv)
|
289
|
-
except TypeError:
|
290
|
-
|
291
|
-
raise
|
288
|
+
except (TypeError,ValueError):
|
289
|
+
pass
|
292
290
|
return value
|
293
291
|
|
294
292
|
async def set(self, value):
|
@@ -323,8 +321,6 @@ class CodecEntry(Entry):
|
|
323
321
|
) from exc
|
324
322
|
else:
|
325
323
|
pass # float, list/tuple, and similar nonsense
|
326
|
-
# if r != w:
|
327
|
-
# raise ValueError(f"Encoding at {self.path}: {v!r} got {r!r}, not {w!r}")
|
328
324
|
|
329
325
|
await super().set(value)
|
330
326
|
self._enc = enc
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|