nedb-engine 2.5.0__tar.gz → 2.5.2__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.
Files changed (41) hide show
  1. {nedb_engine-2.5.0 → nedb_engine-2.5.2}/PKG-INFO +1 -1
  2. {nedb_engine-2.5.0 → nedb_engine-2.5.2}/pyproject.toml +1 -1
  3. {nedb_engine-2.5.0 → nedb_engine-2.5.2}/python/nedb/__init__.py +1 -1
  4. nedb_engine-2.5.2/python/nedb/_native.abi3.so +0 -0
  5. {nedb_engine-2.5.0 → nedb_engine-2.5.2}/python/nedb/engine.py +25 -0
  6. nedb_engine-2.5.2/python/nedb/nedbd-v2 +0 -0
  7. nedb_engine-2.5.2/python/nedb/nedbd-v2-darwin-arm64 +0 -0
  8. nedb_engine-2.5.2/python/nedb/nedbd-v2-darwin-x64 +0 -0
  9. nedb_engine-2.5.2/python/nedb/nedbd-v2.exe +0 -0
  10. nedb_engine-2.5.0/python/nedb/_native.abi3.so +0 -0
  11. nedb_engine-2.5.0/python/nedb/nedbd-v2 +0 -0
  12. nedb_engine-2.5.0/python/nedb/nedbd-v2-darwin-arm64 +0 -0
  13. nedb_engine-2.5.0/python/nedb/nedbd-v2-darwin-x64 +0 -0
  14. nedb_engine-2.5.0/python/nedb/nedbd-v2.exe +0 -0
  15. {nedb_engine-2.5.0 → nedb_engine-2.5.2}/.gitignore +0 -0
  16. {nedb_engine-2.5.0 → nedb_engine-2.5.2}/LICENSE +0 -0
  17. {nedb_engine-2.5.0 → nedb_engine-2.5.2}/README.md +0 -0
  18. {nedb_engine-2.5.0 → nedb_engine-2.5.2}/client/node/README.md +0 -0
  19. {nedb_engine-2.5.0 → nedb_engine-2.5.2}/client/python/README.md +0 -0
  20. {nedb_engine-2.5.0 → nedb_engine-2.5.2}/examples/mini-chain/README.md +0 -0
  21. {nedb_engine-2.5.0 → nedb_engine-2.5.2}/python/nedb/autoindex.py +0 -0
  22. {nedb_engine-2.5.0 → nedb_engine-2.5.2}/python/nedb/backends/__init__.py +0 -0
  23. {nedb_engine-2.5.0 → nedb_engine-2.5.2}/python/nedb/backends/redis_backend.py +0 -0
  24. {nedb_engine-2.5.0 → nedb_engine-2.5.2}/python/nedb/cascade.py +0 -0
  25. {nedb_engine-2.5.0 → nedb_engine-2.5.2}/python/nedb/concurrent.py +0 -0
  26. {nedb_engine-2.5.0 → nedb_engine-2.5.2}/python/nedb/crypto.py +0 -0
  27. {nedb_engine-2.5.0 → nedb_engine-2.5.2}/python/nedb/index.py +0 -0
  28. {nedb_engine-2.5.0 → nedb_engine-2.5.2}/python/nedb/log.py +0 -0
  29. {nedb_engine-2.5.0 → nedb_engine-2.5.2}/python/nedb/merkle.py +0 -0
  30. {nedb_engine-2.5.0 → nedb_engine-2.5.2}/python/nedb/mongo.py +0 -0
  31. {nedb_engine-2.5.0 → nedb_engine-2.5.2}/python/nedb/proof.py +0 -0
  32. {nedb_engine-2.5.0 → nedb_engine-2.5.2}/python/nedb/query.py +0 -0
  33. {nedb_engine-2.5.0 → nedb_engine-2.5.2}/python/nedb/redis_compat.py +0 -0
  34. {nedb_engine-2.5.0 → nedb_engine-2.5.2}/python/nedb/relations.py +0 -0
  35. {nedb_engine-2.5.0 → nedb_engine-2.5.2}/python/nedb/resp2.py +0 -0
  36. {nedb_engine-2.5.0 → nedb_engine-2.5.2}/python/nedb/server.py +0 -0
  37. {nedb_engine-2.5.0 → nedb_engine-2.5.2}/python/nedb/snapshot.py +0 -0
  38. {nedb_engine-2.5.0 → nedb_engine-2.5.2}/python/nedb/sql.py +0 -0
  39. {nedb_engine-2.5.0 → nedb_engine-2.5.2}/python/nedb/store.py +0 -0
  40. {nedb_engine-2.5.0 → nedb_engine-2.5.2}/python/nedb/wrap_redis.py +0 -0
  41. {nedb_engine-2.5.0 → nedb_engine-2.5.2}/rust/nedb-v2/README.md +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: nedb-engine
3
- Version: 2.5.0
3
+ Version: 2.5.2
4
4
  Summary: NEDB — a versioned, self-compressing, time-traveling embedded database (replay-protected, idempotent, relational, searchable) with durable AOF persistence and a server daemon (nedbd).
5
5
  Project-URL: Homepage, https://github.com/aiassistsecure/nedb
6
6
  Project-URL: Repository, https://github.com/aiassistsecure/nedb
@@ -10,7 +10,7 @@ build-backend = "hatchling.build"
10
10
 
11
11
  [project]
12
12
  name = "nedb-engine"
13
- version = "2.5.0"
13
+ version = "2.5.2"
14
14
  description = "NEDB — a versioned, self-compressing, time-traveling embedded database (replay-protected, idempotent, relational, searchable) with durable AOF persistence and a server daemon (nedbd)."
15
15
  readme = "README.md"
16
16
  requires-python = ">=3.8"
@@ -89,4 +89,4 @@ __all__ = [
89
89
  "verify_proof", "fold_head",
90
90
  "_native", "__has_native__",
91
91
  ]
92
- __version__ = "2.5.0"
92
+ __version__ = "2.5.2"
@@ -781,3 +781,28 @@ class NEDB:
781
781
  @property
782
782
  def seq(self) -> int:
783
783
  return len(self.log) - 1
784
+
785
+ def tip(self, coll: Optional[str] = None) -> Optional[dict]:
786
+ """The tip — the most recent write (head of the log) as a dict, or None if
787
+ nothing has been written yet. With ``coll``, the latest write into that
788
+ collection. Returned exactly as sealed in the chain (seq, hash, ts, op,
789
+ payload, plus any causal + valid-time fields). O(1) for the global tip.
790
+
791
+ Reference-engine parity of the Rust v2 core's Db::tip()."""
792
+ ops = self.log.ops
793
+ if not ops:
794
+ return None
795
+ if coll is None:
796
+ return ops[-1].to_dict()
797
+ for rec in reversed(ops):
798
+ if rec.payload.get("coll") == coll:
799
+ return rec.to_dict()
800
+ return None
801
+
802
+ def since(self, after_seq: int) -> List[dict]:
803
+ """Changefeed: every op written AFTER ``after_seq`` (exclusive), in
804
+ ascending seq order. Pass the seq you last saw (e.g. tip()["seq"]) to
805
+ stream only new writes — the append-only log IS the changefeed.
806
+
807
+ Reference-engine parity of the Rust v2 core's Db::since()."""
808
+ return [op.to_dict() for op in self.log.ops if op.seq > after_seq]
Binary file
Binary file
Binary file
File without changes
File without changes
File without changes