methodic-research 0.29.0__tar.gz → 0.30.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.
Files changed (50) hide show
  1. {methodic_research-0.29.0/src/methodic_research.egg-info → methodic_research-0.30.0}/PKG-INFO +1 -1
  2. {methodic_research-0.29.0 → methodic_research-0.30.0}/pyproject.toml +1 -1
  3. {methodic_research-0.29.0 → methodic_research-0.30.0}/src/methodic/variations.py +37 -0
  4. {methodic_research-0.29.0 → methodic_research-0.30.0/src/methodic_research.egg-info}/PKG-INFO +1 -1
  5. {methodic_research-0.29.0 → methodic_research-0.30.0}/LICENSE +0 -0
  6. {methodic_research-0.29.0 → methodic_research-0.30.0}/README.md +0 -0
  7. {methodic_research-0.29.0 → methodic_research-0.30.0}/setup.cfg +0 -0
  8. {methodic_research-0.29.0 → methodic_research-0.30.0}/src/methodic/__init__.py +0 -0
  9. {methodic_research-0.29.0 → methodic_research-0.30.0}/src/methodic/api_keys.py +0 -0
  10. {methodic_research-0.29.0 → methodic_research-0.30.0}/src/methodic/assets.py +0 -0
  11. {methodic_research-0.29.0 → methodic_research-0.30.0}/src/methodic/chronicle.py +0 -0
  12. {methodic_research-0.29.0 → methodic_research-0.30.0}/src/methodic/cli.py +0 -0
  13. {methodic_research-0.29.0 → methodic_research-0.30.0}/src/methodic/collections.py +0 -0
  14. {methodic_research-0.29.0 → methodic_research-0.30.0}/src/methodic/datasets.py +0 -0
  15. {methodic_research-0.29.0 → methodic_research-0.30.0}/src/methodic/errata.py +0 -0
  16. {methodic_research-0.29.0 → methodic_research-0.30.0}/src/methodic/errors.py +0 -0
  17. {methodic_research-0.29.0 → methodic_research-0.30.0}/src/methodic/experiments.py +0 -0
  18. {methodic_research-0.29.0 → methodic_research-0.30.0}/src/methodic/feedback.py +0 -0
  19. {methodic_research-0.29.0 → methodic_research-0.30.0}/src/methodic/imports.py +0 -0
  20. {methodic_research-0.29.0 → methodic_research-0.30.0}/src/methodic/me.py +0 -0
  21. {methodic_research-0.29.0 → methodic_research-0.30.0}/src/methodic/reports.py +0 -0
  22. {methodic_research-0.29.0 → methodic_research-0.30.0}/src/methodic/research_prompts.py +0 -0
  23. {methodic_research-0.29.0 → methodic_research-0.30.0}/src/methodic/runs.py +0 -0
  24. {methodic_research-0.29.0 → methodic_research-0.30.0}/src/methodic/search.py +0 -0
  25. {methodic_research-0.29.0 → methodic_research-0.30.0}/src/methodic/tags.py +0 -0
  26. {methodic_research-0.29.0 → methodic_research-0.30.0}/src/methodic/transport.py +0 -0
  27. {methodic_research-0.29.0 → methodic_research-0.30.0}/src/methodic/types.py +0 -0
  28. {methodic_research-0.29.0 → methodic_research-0.30.0}/src/methodic/upload_tracker.py +0 -0
  29. {methodic_research-0.29.0 → methodic_research-0.30.0}/src/methodic_research.egg-info/SOURCES.txt +0 -0
  30. {methodic_research-0.29.0 → methodic_research-0.30.0}/src/methodic_research.egg-info/dependency_links.txt +0 -0
  31. {methodic_research-0.29.0 → methodic_research-0.30.0}/src/methodic_research.egg-info/entry_points.txt +0 -0
  32. {methodic_research-0.29.0 → methodic_research-0.30.0}/src/methodic_research.egg-info/requires.txt +0 -0
  33. {methodic_research-0.29.0 → methodic_research-0.30.0}/src/methodic_research.egg-info/top_level.txt +0 -0
  34. {methodic_research-0.29.0 → methodic_research-0.30.0}/tests/test_api_keys.py +0 -0
  35. {methodic_research-0.29.0 → methodic_research-0.30.0}/tests/test_assets.py +0 -0
  36. {methodic_research-0.29.0 → methodic_research-0.30.0}/tests/test_cli.py +0 -0
  37. {methodic_research-0.29.0 → methodic_research-0.30.0}/tests/test_client.py +0 -0
  38. {methodic_research-0.29.0 → methodic_research-0.30.0}/tests/test_collections.py +0 -0
  39. {methodic_research-0.29.0 → methodic_research-0.30.0}/tests/test_config.py +0 -0
  40. {methodic_research-0.29.0 → methodic_research-0.30.0}/tests/test_datasets.py +0 -0
  41. {methodic_research-0.29.0 → methodic_research-0.30.0}/tests/test_distill.py +0 -0
  42. {methodic_research-0.29.0 → methodic_research-0.30.0}/tests/test_experiments.py +0 -0
  43. {methodic_research-0.29.0 → methodic_research-0.30.0}/tests/test_feedback.py +0 -0
  44. {methodic_research-0.29.0 → methodic_research-0.30.0}/tests/test_imports.py +0 -0
  45. {methodic_research-0.29.0 → methodic_research-0.30.0}/tests/test_pending_reasons.py +0 -0
  46. {methodic_research-0.29.0 → methodic_research-0.30.0}/tests/test_reports.py +0 -0
  47. {methodic_research-0.29.0 → methodic_research-0.30.0}/tests/test_research_prompts.py +0 -0
  48. {methodic_research-0.29.0 → methodic_research-0.30.0}/tests/test_search.py +0 -0
  49. {methodic_research-0.29.0 → methodic_research-0.30.0}/tests/test_upload_tracker.py +0 -0
  50. {methodic_research-0.29.0 → methodic_research-0.30.0}/tests/test_variations.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: methodic-research
3
- Version: 0.29.0
3
+ Version: 0.30.0
4
4
  Summary: Python client for the Chronicle experiment platform
5
5
  License-Expression: Apache-2.0
6
6
  Project-URL: Documentation, https://docs.methodiclabs.ai
@@ -8,7 +8,7 @@ name = "methodic-research"
8
8
  # methodic-lib-publish.yml overwrites this from versions.toml at build
9
9
  # time, so the published artifact has a single source of truth. Kept
10
10
  # here for local `pip install -e conductor/`.
11
- version = "0.29.0"
11
+ version = "0.30.0"
12
12
  description = "Python client for the Chronicle experiment platform"
13
13
  requires-python = ">=3.11"
14
14
  license = "Apache-2.0"
@@ -140,6 +140,27 @@ class VariationsAPI:
140
140
  json={"git_ref": git_ref},
141
141
  )
142
142
 
143
+ def list_inputs(self, experiment_id: str, variation: int) -> list[dict[str, Any]]:
144
+ """List the variation's input assets (each a dict with ``id``,
145
+ ``asset_type``, ``name``, …). Use to find a linked ``code_artifact`` —
146
+ e.g. a bundle to clean up after rebinding the variation to git.
147
+ """
148
+ return self._t.get(f"{self._path(experiment_id, variation)}/inputs")
149
+
150
+ def unlink_input(
151
+ self, experiment_id: str, variation: int, asset_id: str
152
+ ) -> dict[str, Any]:
153
+ """Remove an input-asset link from an **open** variation.
154
+
155
+ Unlinks the asset from the variation's inputs without deleting the asset
156
+ itself — hard-delete the now-orphaned asset separately via
157
+ ``chronicle.assets.delete``. Refused with 409 once the variation is
158
+ committed (inputs freeze on commit). Used to drop a stale
159
+ ``code_artifact`` — e.g. a bundle that a later git-ref binding
160
+ superseded — while the variation is still open.
161
+ """
162
+ return self._t.delete(f"{self._path(experiment_id, variation)}/inputs/{asset_id}")
163
+
143
164
  def retract(
144
165
  self,
145
166
  experiment_id: str,
@@ -178,6 +199,12 @@ class _BoundVariations:
178
199
  def set_git_ref(self, variation: int, git_ref: str) -> dict[str, Any]:
179
200
  return self._api.set_git_ref(self._experiment_id, variation, git_ref)
180
201
 
202
+ def list_inputs(self, variation: int) -> list[dict[str, Any]]:
203
+ return self._api.list_inputs(self._experiment_id, variation)
204
+
205
+ def unlink_input(self, variation: int, asset_id: str) -> dict[str, Any]:
206
+ return self._api.unlink_input(self._experiment_id, variation, asset_id)
207
+
181
208
  def retract(
182
209
  self, variation: int, *, reason: str, document_asset_id: str | None = None
183
210
  ) -> dict[str, Any]:
@@ -273,6 +300,16 @@ class Variation:
273
300
  self._data = None
274
301
  return self
275
302
 
303
+ def list_inputs(self) -> list[dict[str, Any]]:
304
+ """List this variation's input assets (raw dicts)."""
305
+ return self._chronicle.variations.list_inputs(self.experiment_id, self.variation)
306
+
307
+ def unlink_input(self, asset_id: str) -> Variation:
308
+ """Unlink an input asset from this (open) variation. Returns self for chaining."""
309
+ self._chronicle.variations.unlink_input(self.experiment_id, self.variation, asset_id)
310
+ self._data = None
311
+ return self
312
+
276
313
  def retract(self, *, reason: str, document_asset_id: str | None = None) -> Variation:
277
314
  self._chronicle.variations.retract(
278
315
  self.experiment_id,
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: methodic-research
3
- Version: 0.29.0
3
+ Version: 0.30.0
4
4
  Summary: Python client for the Chronicle experiment platform
5
5
  License-Expression: Apache-2.0
6
6
  Project-URL: Documentation, https://docs.methodiclabs.ai