ememdev 0.0.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.
@@ -0,0 +1,110 @@
1
+ Metadata-Version: 2.4
2
+ Name: ememdev
3
+ Version: 0.0.9
4
+ Summary: Python client for emem.dev, the agent-native Earth memory protocol
5
+ Project-URL: Homepage, https://emem.dev
6
+ Project-URL: Repository, https://github.com/Vortx-AI/emem
7
+ Project-URL: Documentation, https://emem.dev/agents.md
8
+ Project-URL: Issues, https://github.com/Vortx-AI/emem/issues
9
+ Author-email: Vortx AI Private Limited <avijeet@vortx.ai>
10
+ License: Apache-2.0
11
+ Keywords: content-addressed,earth-observation,ed25519,geospatial,mcp,satellite
12
+ Classifier: Development Status :: 3 - Alpha
13
+ Classifier: Intended Audience :: Developers
14
+ Classifier: Intended Audience :: Science/Research
15
+ Classifier: License :: OSI Approved :: Apache Software License
16
+ Classifier: Programming Language :: Python :: 3
17
+ Classifier: Programming Language :: Python :: 3.9
18
+ Classifier: Programming Language :: Python :: 3.10
19
+ Classifier: Programming Language :: Python :: 3.11
20
+ Classifier: Programming Language :: Python :: 3.12
21
+ Classifier: Programming Language :: Python :: 3.13
22
+ Classifier: Topic :: Scientific/Engineering :: GIS
23
+ Requires-Python: >=3.9
24
+ Requires-Dist: httpx<1.0,>=0.27
25
+ Description-Content-Type: text/markdown
26
+
27
+ # ememdev: Python client for emem.dev
28
+
29
+ <!-- mcp-name: io.github.Vortx-AI/emem -->
30
+
31
+ Thin, typed Python client for the [emem.dev](https://emem.dev) Earth memory
32
+ protocol. Wraps the public REST surface (96 documented paths, 93 under
33
+ `/v1/*`) in a single `Client` class that returns parsed JSON verbatim. Every
34
+ ed25519-signed receipt and content-addressed CID is preserved for
35
+ citation and offline verification.
36
+
37
+ ## Install
38
+
39
+ ```bash
40
+ pip install ememdev
41
+ ```
42
+
43
+ The distribution is named `ememdev`; the import package is `emem` (so
44
+ `pip install ememdev`, then `from emem import Client`). To work from a
45
+ checkout instead:
46
+
47
+ ```bash
48
+ pip install -e sdks/emem-py
49
+ ```
50
+
51
+ Requires Python 3.9+. The only runtime dependency is
52
+ [`httpx`](https://www.python-httpx.org/).
53
+
54
+ ## Quick start
55
+
56
+ ```python
57
+ from emem import Client
58
+
59
+ with Client() as em:
60
+ cell = em.locate("Mount Fuji")["cell64"]
61
+ facts = em.recall(cell, bands=["copdem30m.elevation_mean"])
62
+ print(facts["facts"][0]["value"])
63
+ ```
64
+
65
+ ## Async
66
+
67
+ ```python
68
+ import asyncio
69
+ from emem import AsyncClient
70
+
71
+ async def main() -> None:
72
+ async with AsyncClient() as em:
73
+ out = await em.ask("How tall is Mount Everest?")
74
+ print(out["answer"])
75
+
76
+ asyncio.run(main())
77
+ ```
78
+
79
+ ## Configuration
80
+
81
+ | Env var | Default | Effect |
82
+ |-----------------------|----------------------|---------------------------------------------|
83
+ | `EMEM_BASE_URL` | `https://emem.dev` | Responder root; point at a self-hosted node |
84
+ | `EMEM_TIMEOUT_SECS` | `180` | HTTP timeout (matches gateway timeout) |
85
+
86
+ You can also pass `base_url=` and `timeout=` directly to the constructor.
87
+
88
+ ## Surface coverage
89
+
90
+ Geocoder + read primitives, physics solvers, boring lat/lng shortcuts, and
91
+ introspection — see the inline docstring on `emem.client` for the full
92
+ endpoint → method mapping.
93
+
94
+ ## Receipts
95
+
96
+ Every non-introspection response carries a `receipt` block with:
97
+
98
+ - `responder_pubkey` (ed25519 base32-nopad-lowercase)
99
+ - `signature_b32` (ed25519 over the canonical CBOR preimage)
100
+ - `merkle_root` (BLAKE3 over the fact CIDs)
101
+ - `fact_cids[]` (the BLAKE3 CIDs of every fact returned)
102
+
103
+ To cite an answer: quote `receipt.fact_cids[0]` and the responder pubkey.
104
+ The signature can be verified offline against the public key at
105
+ `https://emem.dev/.well-known/emem.json`; no callback to the responder is
106
+ required.
107
+
108
+ ## License
109
+
110
+ Apache-2.0. Same as the upstream protocol.
@@ -0,0 +1,3 @@
1
+ ememdev-0.0.9.dist-info/METADATA,sha256=UI5x9gpWnSz-W9MlSj7yaC3prH11poP7snDZrSjz48g,3609
2
+ ememdev-0.0.9.dist-info/WHEEL,sha256=mffPy8wBnZQn2VnJUU5jE99KsxaSfiyMHV9Yt0aLVxs,87
3
+ ememdev-0.0.9.dist-info/RECORD,,
@@ -0,0 +1,4 @@
1
+ Wheel-Version: 1.0
2
+ Generator: hatchling 1.30.1
3
+ Root-Is-Purelib: true
4
+ Tag: py3-none-any