memwal 0.1.11.dev0__tar.gz → 0.1.11.dev1__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.
- {memwal-0.1.11.dev0 → memwal-0.1.11.dev1}/PKG-INFO +1 -1
- {memwal-0.1.11.dev0 → memwal-0.1.11.dev1}/memwal/__init__.py +1 -1
- {memwal-0.1.11.dev0 → memwal-0.1.11.dev1}/memwal/client.py +5 -5
- {memwal-0.1.11.dev0 → memwal-0.1.11.dev1}/pyproject.toml +1 -1
- {memwal-0.1.11.dev0 → memwal-0.1.11.dev1}/tests/test_client.py +34 -1
- {memwal-0.1.11.dev0 → memwal-0.1.11.dev1}/.gitignore +0 -0
- {memwal-0.1.11.dev0 → memwal-0.1.11.dev1}/CHANGELOG.md +0 -0
- {memwal-0.1.11.dev0 → memwal-0.1.11.dev1}/README.md +0 -0
- {memwal-0.1.11.dev0 → memwal-0.1.11.dev1}/examples/.env.example +0 -0
- {memwal-0.1.11.dev0 → memwal-0.1.11.dev1}/examples/.gitignore +0 -0
- {memwal-0.1.11.dev0 → memwal-0.1.11.dev1}/examples/async_remember_demo.py +0 -0
- {memwal-0.1.11.dev0 → memwal-0.1.11.dev1}/examples/interactive_demo.py +0 -0
- {memwal-0.1.11.dev0 → memwal-0.1.11.dev1}/examples/verify_credentials.py +0 -0
- {memwal-0.1.11.dev0 → memwal-0.1.11.dev1}/memwal/compatibility.py +0 -0
- {memwal-0.1.11.dev0 → memwal-0.1.11.dev1}/memwal/middleware.py +0 -0
- {memwal-0.1.11.dev0 → memwal-0.1.11.dev1}/memwal/mock.py +0 -0
- {memwal-0.1.11.dev0 → memwal-0.1.11.dev1}/memwal/types.py +0 -0
- {memwal-0.1.11.dev0 → memwal-0.1.11.dev1}/memwal/utils.py +0 -0
- {memwal-0.1.11.dev0 → memwal-0.1.11.dev1}/notebooks/walrus_memory_python_sdk.ipynb +0 -0
- {memwal-0.1.11.dev0 → memwal-0.1.11.dev1}/run_tests.py +0 -0
- {memwal-0.1.11.dev0 → memwal-0.1.11.dev1}/tests/__init__.py +0 -0
- {memwal-0.1.11.dev0 → memwal-0.1.11.dev1}/tests/test_auth_rejected_message.py +0 -0
- {memwal-0.1.11.dev0 → memwal-0.1.11.dev1}/tests/test_env_presets.py +0 -0
- {memwal-0.1.11.dev0 → memwal-0.1.11.dev1}/tests/test_integration.py +0 -0
- {memwal-0.1.11.dev0 → memwal-0.1.11.dev1}/tests/test_list_namespaces.py +0 -0
- {memwal-0.1.11.dev0 → memwal-0.1.11.dev1}/tests/test_middleware.py +0 -0
- {memwal-0.1.11.dev0 → memwal-0.1.11.dev1}/tests/test_mock.py +0 -0
- {memwal-0.1.11.dev0 → memwal-0.1.11.dev1}/tests/test_normalize_server_url.py +0 -0
- {memwal-0.1.11.dev0 → memwal-0.1.11.dev1}/tests/test_signing.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.5
|
|
2
2
|
Name: memwal
|
|
3
|
-
Version: 0.1.11.
|
|
3
|
+
Version: 0.1.11.dev1
|
|
4
4
|
Summary: Python SDK for Walrus Memory — Privacy-first AI memory with Ed25519 signing
|
|
5
5
|
Project-URL: Homepage, https://memory.walrus.xyz
|
|
6
6
|
Project-URL: Documentation, https://memory.walrus.xyz
|
|
@@ -34,7 +34,7 @@ import re
|
|
|
34
34
|
import time
|
|
35
35
|
import uuid
|
|
36
36
|
from datetime import datetime, timezone
|
|
37
|
-
from typing import Any, Dict, List, Optional, Sequence, Tuple, TypeVar, Union
|
|
37
|
+
from typing import Any, Dict, List, Optional, Sequence, Set, Tuple, TypeVar, Union
|
|
38
38
|
from urllib.parse import ParseResult, urlencode, urlparse
|
|
39
39
|
|
|
40
40
|
import httpx
|
|
@@ -624,7 +624,7 @@ class MemWal:
|
|
|
624
624
|
continue
|
|
625
625
|
raise
|
|
626
626
|
|
|
627
|
-
|
|
627
|
+
terminal_ids: Set[str] = set()
|
|
628
628
|
for item in batch.results:
|
|
629
629
|
if item.status == "done":
|
|
630
630
|
results[item.job_id] = RememberBulkItemResult(
|
|
@@ -633,6 +633,7 @@ class MemWal:
|
|
|
633
633
|
status="done",
|
|
634
634
|
error=None,
|
|
635
635
|
)
|
|
636
|
+
terminal_ids.add(item.job_id)
|
|
636
637
|
elif item.status in ("failed", "not_found"):
|
|
637
638
|
results[item.job_id] = RememberBulkItemResult(
|
|
638
639
|
id=item.job_id,
|
|
@@ -640,9 +641,8 @@ class MemWal:
|
|
|
640
641
|
status="failed",
|
|
641
642
|
error=item.error,
|
|
642
643
|
)
|
|
643
|
-
|
|
644
|
-
|
|
645
|
-
pending = still_pending
|
|
644
|
+
terminal_ids.add(item.job_id)
|
|
645
|
+
pending = [jid for jid in pending if jid not in terminal_ids]
|
|
646
646
|
|
|
647
647
|
ordered = [results[job_id] for job_id in job_ids]
|
|
648
648
|
succeeded = sum(1 for r in ordered if r.status == "done")
|
|
@@ -10,7 +10,7 @@ from __future__ import annotations
|
|
|
10
10
|
import base64
|
|
11
11
|
import json
|
|
12
12
|
from datetime import datetime, timedelta, timezone
|
|
13
|
-
from typing import Any
|
|
13
|
+
from typing import Any, Sequence
|
|
14
14
|
|
|
15
15
|
import httpx
|
|
16
16
|
import nacl.signing
|
|
@@ -29,6 +29,9 @@ from memwal.types import (
|
|
|
29
29
|
RecallParams,
|
|
30
30
|
RememberBulkAcceptedResult,
|
|
31
31
|
RememberBulkItem,
|
|
32
|
+
RememberBulkOptions,
|
|
33
|
+
RememberBulkStatusItem,
|
|
34
|
+
RememberBulkStatusResult,
|
|
32
35
|
RememberManualOptions,
|
|
33
36
|
ScoringWeights,
|
|
34
37
|
)
|
|
@@ -428,6 +431,36 @@ class TestRememberBulkAsync:
|
|
|
428
431
|
assert result.total == 2
|
|
429
432
|
assert result.status == "pending"
|
|
430
433
|
|
|
434
|
+
async def test_job_omitted_from_a_poll_stays_pending(
|
|
435
|
+
self, memwal_client: MemWal
|
|
436
|
+
) -> None:
|
|
437
|
+
polls = 0
|
|
438
|
+
|
|
439
|
+
async def partial_status(
|
|
440
|
+
job_ids: Sequence[str],
|
|
441
|
+
) -> RememberBulkStatusResult:
|
|
442
|
+
nonlocal polls
|
|
443
|
+
polls += 1
|
|
444
|
+
job_id = "job-1" if polls == 1 else "job-2"
|
|
445
|
+
return RememberBulkStatusResult(
|
|
446
|
+
results=[
|
|
447
|
+
RememberBulkStatusItem(
|
|
448
|
+
job_id=job_id,
|
|
449
|
+
status="done",
|
|
450
|
+
blob_id=f"blob-for-{job_id}",
|
|
451
|
+
)
|
|
452
|
+
]
|
|
453
|
+
)
|
|
454
|
+
|
|
455
|
+
memwal_client.get_remember_bulk_status = partial_status # type: ignore[method-assign]
|
|
456
|
+
|
|
457
|
+
result = await memwal_client.wait_for_remember_jobs(
|
|
458
|
+
["job-1", "job-2"],
|
|
459
|
+
RememberBulkOptions(poll_interval_ms=1, timeout_ms=5_000),
|
|
460
|
+
)
|
|
461
|
+
|
|
462
|
+
assert [item.status for item in result.results] == ["done", "done"]
|
|
463
|
+
|
|
431
464
|
|
|
432
465
|
# ============================================================
|
|
433
466
|
# recall() tests
|
|
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
|