xrtm-data 0.3.1__tar.gz → 0.3.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 (30) hide show
  1. {xrtm_data-0.3.1/src/xrtm_data.egg-info → xrtm_data-0.3.2}/PKG-INFO +1 -1
  2. {xrtm_data-0.3.1 → xrtm_data-0.3.2}/pyproject.toml +1 -1
  3. {xrtm_data-0.3.1 → xrtm_data-0.3.2}/src/xrtm/data/core/schemas/forecast.py +4 -0
  4. {xrtm_data-0.3.1 → xrtm_data-0.3.2}/src/xrtm/data/version.py +1 -1
  5. {xrtm_data-0.3.1 → xrtm_data-0.3.2/src/xrtm_data.egg-info}/PKG-INFO +1 -1
  6. {xrtm_data-0.3.1 → xrtm_data-0.3.2}/tests/test_schemas.py +31 -1
  7. {xrtm_data-0.3.1 → xrtm_data-0.3.2}/LICENSE +0 -0
  8. {xrtm_data-0.3.1 → xrtm_data-0.3.2}/README.md +0 -0
  9. {xrtm_data-0.3.1 → xrtm_data-0.3.2}/setup.cfg +0 -0
  10. {xrtm_data-0.3.1 → xrtm_data-0.3.2}/src/xrtm/data/__init__.py +0 -0
  11. {xrtm_data-0.3.1 → xrtm_data-0.3.2}/src/xrtm/data/core/__init__.py +0 -0
  12. {xrtm_data-0.3.1 → xrtm_data-0.3.2}/src/xrtm/data/core/interfaces.py +0 -0
  13. {xrtm_data-0.3.1 → xrtm_data-0.3.2}/src/xrtm/data/core/schemas/__init__.py +0 -0
  14. {xrtm_data-0.3.1 → xrtm_data-0.3.2}/src/xrtm/data/core/schemas/prior.py +0 -0
  15. {xrtm_data-0.3.1 → xrtm_data-0.3.2}/src/xrtm/data/core/schemas/trade.py +0 -0
  16. {xrtm_data-0.3.1 → xrtm_data-0.3.2}/src/xrtm/data/corpora/__init__.py +0 -0
  17. {xrtm_data-0.3.1 → xrtm_data-0.3.2}/src/xrtm/data/corpora/_builtin_corpora.py +0 -0
  18. {xrtm_data-0.3.1 → xrtm_data-0.3.2}/src/xrtm/data/corpora/real_binary.py +0 -0
  19. {xrtm_data-0.3.1 → xrtm_data-0.3.2}/src/xrtm/data/corpora/registry.py +0 -0
  20. {xrtm_data-0.3.1 → xrtm_data-0.3.2}/src/xrtm/data/providers/__init__.py +0 -0
  21. {xrtm_data-0.3.1 → xrtm_data-0.3.2}/src/xrtm/data/providers/online/__init__.py +0 -0
  22. {xrtm_data-0.3.1 → xrtm_data-0.3.2}/src/xrtm/data/providers/online/metaculus.py +0 -0
  23. {xrtm_data-0.3.1 → xrtm_data-0.3.2}/src/xrtm/data/providers/online/polymarket.py +0 -0
  24. {xrtm_data-0.3.1 → xrtm_data-0.3.2}/src/xrtm_data.egg-info/SOURCES.txt +0 -0
  25. {xrtm_data-0.3.1 → xrtm_data-0.3.2}/src/xrtm_data.egg-info/dependency_links.txt +0 -0
  26. {xrtm_data-0.3.1 → xrtm_data-0.3.2}/src/xrtm_data.egg-info/requires.txt +0 -0
  27. {xrtm_data-0.3.1 → xrtm_data-0.3.2}/src/xrtm_data.egg-info/top_level.txt +0 -0
  28. {xrtm_data-0.3.1 → xrtm_data-0.3.2}/tests/test_corpus_registry.py +0 -0
  29. {xrtm_data-0.3.1 → xrtm_data-0.3.2}/tests/test_prior_schemas.py +0 -0
  30. {xrtm_data-0.3.1 → xrtm_data-0.3.2}/tests/test_real_binary_corpus.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: xrtm-data
3
- Version: 0.3.1
3
+ Version: 0.3.2
4
4
  Summary: The Snapshot Vault for XRTM.
5
5
  Author-email: XRTM Team <moy@xrtm.org>
6
6
  License-Expression: Apache-2.0
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "xrtm-data"
7
- version = "0.3.1"
7
+ version = "0.3.2"
8
8
  description = "The Snapshot Vault for XRTM."
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.11,<3.13"
@@ -111,6 +111,10 @@ class ForecastQuestion(BaseModel):
111
111
  description="Detailed context and background",
112
112
  )
113
113
  resolution_criteria: Optional[str] = Field(None, description="Explicit rules for ground truth determination")
114
+ context: Optional[Dict[str, Any]] = Field(
115
+ None,
116
+ description="Optional market context or metadata injected by downstream consumers (e.g., price, volume, spread)",
117
+ )
114
118
  metadata: MetadataBase = Field(default_factory=MetadataBase) # type: ignore[arg-type]
115
119
 
116
120
  @property
@@ -21,7 +21,7 @@ This module provides the single source of truth for the package version.
21
21
 
22
22
  __all__ = ["__version__", "__author__", "__contact__", "__license__", "__copyright__"]
23
23
 
24
- __version__ = "0.3.1"
24
+ __version__ = "0.3.2"
25
25
  __author__ = "XRTM Team"
26
26
  __contact__ = "moy@xrtm.org"
27
27
  __license__ = "Apache-2.0"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: xrtm-data
3
- Version: 0.3.1
3
+ Version: 0.3.2
4
4
  Summary: The Snapshot Vault for XRTM.
5
5
  Author-email: XRTM Team <moy@xrtm.org>
6
6
  License-Expression: Apache-2.0
@@ -16,7 +16,7 @@ from datetime import datetime, timedelta, timezone
16
16
 
17
17
  import pytest
18
18
 
19
- from xrtm.data import CausalEdge, CausalNode, ForecastOutput, ForecastResult, MetadataBase
19
+ from xrtm.data import CausalEdge, CausalNode, ForecastOutput, ForecastQuestion, ForecastResult, MetadataBase
20
20
  from xrtm.data.core.schemas import TradeEvent, TradeWindow
21
21
 
22
22
 
@@ -172,3 +172,33 @@ def test_trade_window_normalizes_naive_boundaries_and_timestamps():
172
172
 
173
173
  assert window.start_time.tzinfo == timezone.utc
174
174
  assert window.trades[0].timestamp.tzinfo == timezone.utc
175
+
176
+
177
+ def test_forecast_question_context_field():
178
+ """ForecastQuestion accepts an optional context dict for market metadata."""
179
+ q = ForecastQuestion(
180
+ id="q1",
181
+ title="Will market X exceed $100?",
182
+ context={"market_price": 0.55, "volume_24h": 150000, "spread": 0.02},
183
+ )
184
+ assert q.context == {"market_price": 0.55, "volume_24h": 150000, "spread": 0.02}
185
+
186
+
187
+ def test_forecast_question_context_defaults_to_none():
188
+ """ForecastQuestion context is None by default for backward compatibility."""
189
+ q = ForecastQuestion(id="q2", title="Simple question")
190
+ assert q.context is None
191
+
192
+
193
+ def test_forecast_question_context_serializes():
194
+ """Context field serializes to JSON and round-trips correctly."""
195
+ q = ForecastQuestion(
196
+ id="q3",
197
+ title="Serialization test",
198
+ context={"key": "value", "nested": {"a": 1}},
199
+ )
200
+ payload = q.model_dump(mode="json")
201
+ assert payload["context"] == {"key": "value", "nested": {"a": 1}}
202
+
203
+ reloaded = ForecastQuestion.model_validate(payload)
204
+ assert reloaded.context == {"key": "value", "nested": {"a": 1}}
File without changes
File without changes
File without changes