vilvik 0.2.2__tar.gz → 0.3.0__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.
- {vilvik-0.2.2 → vilvik-0.3.0}/PKG-INFO +1 -1
- {vilvik-0.2.2 → vilvik-0.3.0}/tests/test_client.py +38 -0
- vilvik-0.3.0/vilvik/_version.py +1 -0
- {vilvik-0.2.2 → vilvik-0.3.0}/vilvik/client.py +24 -0
- {vilvik-0.2.2 → vilvik-0.3.0}/vilvik/models.py +4 -0
- {vilvik-0.2.2 → vilvik-0.3.0}/vilvik.egg-info/PKG-INFO +1 -1
- vilvik-0.2.2/vilvik/_version.py +0 -1
- {vilvik-0.2.2 → vilvik-0.3.0}/LICENSE +0 -0
- {vilvik-0.2.2 → vilvik-0.3.0}/README.md +0 -0
- {vilvik-0.2.2 → vilvik-0.3.0}/pyproject.toml +0 -0
- {vilvik-0.2.2 → vilvik-0.3.0}/setup.cfg +0 -0
- {vilvik-0.2.2 → vilvik-0.3.0}/tests/test_capture.py +0 -0
- {vilvik-0.2.2 → vilvik-0.3.0}/tests/test_credentials.py +0 -0
- {vilvik-0.2.2 → vilvik-0.3.0}/tests/test_extract.py +0 -0
- {vilvik-0.2.2 → vilvik-0.3.0}/tests/test_imports_resource.py +0 -0
- {vilvik-0.2.2 → vilvik-0.3.0}/tests/test_login.py +0 -0
- {vilvik-0.2.2 → vilvik-0.3.0}/tests/test_public_api.py +0 -0
- {vilvik-0.2.2 → vilvik-0.3.0}/tests/test_push.py +0 -0
- {vilvik-0.2.2 → vilvik-0.3.0}/vilvik/__init__.py +0 -0
- {vilvik-0.2.2 → vilvik-0.3.0}/vilvik/__main__.py +0 -0
- {vilvik-0.2.2 → vilvik-0.3.0}/vilvik/_capture.py +0 -0
- {vilvik-0.2.2 → vilvik-0.3.0}/vilvik/_credentials.py +0 -0
- {vilvik-0.2.2 → vilvik-0.3.0}/vilvik/_extract.py +0 -0
- {vilvik-0.2.2 → vilvik-0.3.0}/vilvik/_http.py +0 -0
- {vilvik-0.2.2 → vilvik-0.3.0}/vilvik/exceptions.py +0 -0
- {vilvik-0.2.2 → vilvik-0.3.0}/vilvik/login.py +0 -0
- {vilvik-0.2.2 → vilvik-0.3.0}/vilvik/push.py +0 -0
- {vilvik-0.2.2 → vilvik-0.3.0}/vilvik/run.py +0 -0
- {vilvik-0.2.2 → vilvik-0.3.0}/vilvik.egg-info/SOURCES.txt +0 -0
- {vilvik-0.2.2 → vilvik-0.3.0}/vilvik.egg-info/dependency_links.txt +0 -0
- {vilvik-0.2.2 → vilvik-0.3.0}/vilvik.egg-info/entry_points.txt +0 -0
- {vilvik-0.2.2 → vilvik-0.3.0}/vilvik.egg-info/requires.txt +0 -0
- {vilvik-0.2.2 → vilvik-0.3.0}/vilvik.egg-info/top_level.txt +0 -0
|
@@ -173,6 +173,44 @@ def test_results_continue_run(mock_api, client):
|
|
|
173
173
|
assert body == {"sol_per_pop": 200}
|
|
174
174
|
|
|
175
175
|
|
|
176
|
+
def test_results_delete(mock_api, client):
|
|
177
|
+
mock_api.add("DELETE", f"{BASE}/results/res_1", status=204)
|
|
178
|
+
# Must not raise and returns None on 204.
|
|
179
|
+
assert client.results.delete("res_1") is None
|
|
180
|
+
|
|
181
|
+
|
|
182
|
+
def test_results_update_sends_patch_and_returns_result(mock_api, client):
|
|
183
|
+
mock_api.add(
|
|
184
|
+
"PATCH",
|
|
185
|
+
f"{BASE}/results/res_1",
|
|
186
|
+
json={
|
|
187
|
+
"id": "res_1",
|
|
188
|
+
"submission_id": "sub_abc",
|
|
189
|
+
"name": "renamed result",
|
|
190
|
+
"is_shared": True,
|
|
191
|
+
},
|
|
192
|
+
)
|
|
193
|
+
r = client.results.update("res_1", name="renamed result", is_shared=True)
|
|
194
|
+
assert mock_api.calls[0].request.method == "PATCH"
|
|
195
|
+
body = json.loads(mock_api.calls[0].request.body)
|
|
196
|
+
assert body == {"name": "renamed result", "is_shared": True}
|
|
197
|
+
assert r.name == "renamed result"
|
|
198
|
+
assert r.is_shared is True
|
|
199
|
+
|
|
200
|
+
|
|
201
|
+
def test_results_update_sends_only_provided_fields(mock_api, client):
|
|
202
|
+
"""Partial update: passing only is_shared=False must send just that key
|
|
203
|
+
(False is a real value, not 'unset')."""
|
|
204
|
+
mock_api.add(
|
|
205
|
+
"PATCH",
|
|
206
|
+
f"{BASE}/results/res_1",
|
|
207
|
+
json={"id": "res_1", "submission_id": "sub_abc", "is_shared": False},
|
|
208
|
+
)
|
|
209
|
+
client.results.update("res_1", is_shared=False)
|
|
210
|
+
body = json.loads(mock_api.calls[0].request.body)
|
|
211
|
+
assert body == {"is_shared": False}
|
|
212
|
+
|
|
213
|
+
|
|
176
214
|
def test_wait_for_returns_result_when_submission_succeeds(mock_api, client, monkeypatch):
|
|
177
215
|
monkeypatch.setattr("vilvik.client.time.sleep", lambda *_a, **_k: None)
|
|
178
216
|
# First poll: still running. Second poll: succeeded. Then list returns one row.
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
__version__ = "0.3.0"
|
|
@@ -141,6 +141,30 @@ class Results(_Resource):
|
|
|
141
141
|
items = [Result.from_api(row) for row in payload.get("data", [])]
|
|
142
142
|
return Page(items=items, next_cursor=payload.get("next_cursor"), raw=payload)
|
|
143
143
|
|
|
144
|
+
def update(
|
|
145
|
+
self,
|
|
146
|
+
result_id: str,
|
|
147
|
+
*,
|
|
148
|
+
name: Optional[str] = None,
|
|
149
|
+
is_shared: Optional[bool] = None,
|
|
150
|
+
) -> Result:
|
|
151
|
+
"""PATCH /results/{id} — rename a result or change its shared flag.
|
|
152
|
+
|
|
153
|
+
Only the fields you pass are sent, so `is_shared=False` updates just
|
|
154
|
+
that flag. Returns the updated result.
|
|
155
|
+
"""
|
|
156
|
+
body: Dict[str, Any] = {}
|
|
157
|
+
if name is not None:
|
|
158
|
+
body["name"] = name
|
|
159
|
+
if is_shared is not None:
|
|
160
|
+
body["is_shared"] = is_shared
|
|
161
|
+
payload = self._t.request("PATCH", f"/results/{result_id}", json_body=body)
|
|
162
|
+
return Result.from_api(payload)
|
|
163
|
+
|
|
164
|
+
def delete(self, result_id: str) -> None:
|
|
165
|
+
"""DELETE /results/{id} — remove a result. The submission is untouched."""
|
|
166
|
+
self._t.request("DELETE", f"/results/{result_id}")
|
|
167
|
+
|
|
144
168
|
def continue_run(
|
|
145
169
|
self,
|
|
146
170
|
result_id: str,
|
|
@@ -70,6 +70,8 @@ class Result:
|
|
|
70
70
|
|
|
71
71
|
id: str
|
|
72
72
|
submission_id: str
|
|
73
|
+
name: Optional[str] = None
|
|
74
|
+
is_shared: Optional[bool] = None
|
|
73
75
|
best_fitness: Optional[float] = None
|
|
74
76
|
best_solution: Optional[List[Any]] = None
|
|
75
77
|
num_generations_ran: Optional[int] = None
|
|
@@ -82,6 +84,8 @@ class Result:
|
|
|
82
84
|
return cls(
|
|
83
85
|
id=str(data.get("id", "")),
|
|
84
86
|
submission_id=str(data.get("submission_id", "")),
|
|
87
|
+
name=data.get("name"),
|
|
88
|
+
is_shared=data.get("is_shared"),
|
|
85
89
|
best_fitness=data.get("best_fitness"),
|
|
86
90
|
best_solution=data.get("best_solution"),
|
|
87
91
|
num_generations_ran=data.get("num_generations_ran"),
|
vilvik-0.2.2/vilvik/_version.py
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
__version__ = "0.2.2"
|
|
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
|