prediction-market-agent-tooling 0.43.1__tar.gz → 0.43.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 (79) hide show
  1. {prediction_market_agent_tooling-0.43.1 → prediction_market_agent_tooling-0.43.2}/PKG-INFO +1 -1
  2. {prediction_market_agent_tooling-0.43.1 → prediction_market_agent_tooling-0.43.2}/prediction_market_agent_tooling/deploy/agent.py +10 -2
  3. {prediction_market_agent_tooling-0.43.1 → prediction_market_agent_tooling-0.43.2}/prediction_market_agent_tooling/deploy/agent_example.py +4 -1
  4. {prediction_market_agent_tooling-0.43.1 → prediction_market_agent_tooling-0.43.2}/prediction_market_agent_tooling/markets/omen/omen_resolving.py +2 -1
  5. {prediction_market_agent_tooling-0.43.1 → prediction_market_agent_tooling-0.43.2}/prediction_market_agent_tooling/markets/polymarket/data_models_web.py +83 -83
  6. {prediction_market_agent_tooling-0.43.1 → prediction_market_agent_tooling-0.43.2}/prediction_market_agent_tooling/tools/is_predictable.py +4 -2
  7. {prediction_market_agent_tooling-0.43.1 → prediction_market_agent_tooling-0.43.2}/pyproject.toml +1 -1
  8. {prediction_market_agent_tooling-0.43.1 → prediction_market_agent_tooling-0.43.2}/LICENSE +0 -0
  9. {prediction_market_agent_tooling-0.43.1 → prediction_market_agent_tooling-0.43.2}/README.md +0 -0
  10. {prediction_market_agent_tooling-0.43.1 → prediction_market_agent_tooling-0.43.2}/prediction_market_agent_tooling/abis/erc20.abi.json +0 -0
  11. {prediction_market_agent_tooling-0.43.1 → prediction_market_agent_tooling-0.43.2}/prediction_market_agent_tooling/abis/omen_dxdao.abi.json +0 -0
  12. {prediction_market_agent_tooling-0.43.1 → prediction_market_agent_tooling-0.43.2}/prediction_market_agent_tooling/abis/omen_fpmm.abi.json +0 -0
  13. {prediction_market_agent_tooling-0.43.1 → prediction_market_agent_tooling-0.43.2}/prediction_market_agent_tooling/abis/omen_fpmm_conditionaltokens.abi.json +0 -0
  14. {prediction_market_agent_tooling-0.43.1 → prediction_market_agent_tooling-0.43.2}/prediction_market_agent_tooling/abis/omen_fpmm_factory.abi.json +0 -0
  15. {prediction_market_agent_tooling-0.43.1 → prediction_market_agent_tooling-0.43.2}/prediction_market_agent_tooling/abis/omen_kleros.abi.json +0 -0
  16. {prediction_market_agent_tooling-0.43.1 → prediction_market_agent_tooling-0.43.2}/prediction_market_agent_tooling/abis/omen_oracle.abi.json +0 -0
  17. {prediction_market_agent_tooling-0.43.1 → prediction_market_agent_tooling-0.43.2}/prediction_market_agent_tooling/abis/omen_realitio.abi.json +0 -0
  18. {prediction_market_agent_tooling-0.43.1 → prediction_market_agent_tooling-0.43.2}/prediction_market_agent_tooling/abis/omen_thumbnailmapping.abi.json +0 -0
  19. {prediction_market_agent_tooling-0.43.1 → prediction_market_agent_tooling-0.43.2}/prediction_market_agent_tooling/abis/wxdai.abi.json +0 -0
  20. {prediction_market_agent_tooling-0.43.1 → prediction_market_agent_tooling-0.43.2}/prediction_market_agent_tooling/benchmark/__init__.py +0 -0
  21. {prediction_market_agent_tooling-0.43.1 → prediction_market_agent_tooling-0.43.2}/prediction_market_agent_tooling/benchmark/agents.py +0 -0
  22. {prediction_market_agent_tooling-0.43.1 → prediction_market_agent_tooling-0.43.2}/prediction_market_agent_tooling/benchmark/benchmark.py +0 -0
  23. {prediction_market_agent_tooling-0.43.1 → prediction_market_agent_tooling-0.43.2}/prediction_market_agent_tooling/benchmark/utils.py +0 -0
  24. {prediction_market_agent_tooling-0.43.1 → prediction_market_agent_tooling-0.43.2}/prediction_market_agent_tooling/config.py +0 -0
  25. {prediction_market_agent_tooling-0.43.1 → prediction_market_agent_tooling-0.43.2}/prediction_market_agent_tooling/deploy/constants.py +0 -0
  26. {prediction_market_agent_tooling-0.43.1 → prediction_market_agent_tooling-0.43.2}/prediction_market_agent_tooling/deploy/gcp/deploy.py +0 -0
  27. {prediction_market_agent_tooling-0.43.1 → prediction_market_agent_tooling-0.43.2}/prediction_market_agent_tooling/deploy/gcp/kubernetes_models.py +0 -0
  28. {prediction_market_agent_tooling-0.43.1 → prediction_market_agent_tooling-0.43.2}/prediction_market_agent_tooling/deploy/gcp/utils.py +0 -0
  29. {prediction_market_agent_tooling-0.43.1 → prediction_market_agent_tooling-0.43.2}/prediction_market_agent_tooling/gtypes.py +0 -0
  30. {prediction_market_agent_tooling-0.43.1 → prediction_market_agent_tooling-0.43.2}/prediction_market_agent_tooling/loggers.py +0 -0
  31. {prediction_market_agent_tooling-0.43.1 → prediction_market_agent_tooling-0.43.2}/prediction_market_agent_tooling/markets/agent_market.py +0 -0
  32. {prediction_market_agent_tooling-0.43.1 → prediction_market_agent_tooling-0.43.2}/prediction_market_agent_tooling/markets/categorize.py +0 -0
  33. {prediction_market_agent_tooling-0.43.1 → prediction_market_agent_tooling-0.43.2}/prediction_market_agent_tooling/markets/data_models.py +0 -0
  34. {prediction_market_agent_tooling-0.43.1 → prediction_market_agent_tooling-0.43.2}/prediction_market_agent_tooling/markets/manifold/__init__.py +0 -0
  35. {prediction_market_agent_tooling-0.43.1 → prediction_market_agent_tooling-0.43.2}/prediction_market_agent_tooling/markets/manifold/api.py +0 -0
  36. {prediction_market_agent_tooling-0.43.1 → prediction_market_agent_tooling-0.43.2}/prediction_market_agent_tooling/markets/manifold/data_models.py +0 -0
  37. {prediction_market_agent_tooling-0.43.1 → prediction_market_agent_tooling-0.43.2}/prediction_market_agent_tooling/markets/manifold/manifold.py +0 -0
  38. {prediction_market_agent_tooling-0.43.1 → prediction_market_agent_tooling-0.43.2}/prediction_market_agent_tooling/markets/manifold/utils.py +0 -0
  39. {prediction_market_agent_tooling-0.43.1 → prediction_market_agent_tooling-0.43.2}/prediction_market_agent_tooling/markets/markets.py +0 -0
  40. {prediction_market_agent_tooling-0.43.1 → prediction_market_agent_tooling-0.43.2}/prediction_market_agent_tooling/markets/metaculus/api.py +0 -0
  41. {prediction_market_agent_tooling-0.43.1 → prediction_market_agent_tooling-0.43.2}/prediction_market_agent_tooling/markets/metaculus/data_models.py +0 -0
  42. {prediction_market_agent_tooling-0.43.1 → prediction_market_agent_tooling-0.43.2}/prediction_market_agent_tooling/markets/metaculus/metaculus.py +0 -0
  43. {prediction_market_agent_tooling-0.43.1 → prediction_market_agent_tooling-0.43.2}/prediction_market_agent_tooling/markets/omen/__init__.py +0 -0
  44. {prediction_market_agent_tooling-0.43.1 → prediction_market_agent_tooling-0.43.2}/prediction_market_agent_tooling/markets/omen/data_models.py +0 -0
  45. {prediction_market_agent_tooling-0.43.1 → prediction_market_agent_tooling-0.43.2}/prediction_market_agent_tooling/markets/omen/omen.py +0 -0
  46. {prediction_market_agent_tooling-0.43.1 → prediction_market_agent_tooling-0.43.2}/prediction_market_agent_tooling/markets/omen/omen_contracts.py +0 -0
  47. {prediction_market_agent_tooling-0.43.1 → prediction_market_agent_tooling-0.43.2}/prediction_market_agent_tooling/markets/omen/omen_subgraph_handler.py +0 -0
  48. {prediction_market_agent_tooling-0.43.1 → prediction_market_agent_tooling-0.43.2}/prediction_market_agent_tooling/markets/polymarket/api.py +0 -0
  49. {prediction_market_agent_tooling-0.43.1 → prediction_market_agent_tooling-0.43.2}/prediction_market_agent_tooling/markets/polymarket/data_models.py +0 -0
  50. {prediction_market_agent_tooling-0.43.1 → prediction_market_agent_tooling-0.43.2}/prediction_market_agent_tooling/markets/polymarket/polymarket.py +0 -0
  51. {prediction_market_agent_tooling-0.43.1 → prediction_market_agent_tooling-0.43.2}/prediction_market_agent_tooling/markets/polymarket/utils.py +0 -0
  52. {prediction_market_agent_tooling-0.43.1 → prediction_market_agent_tooling-0.43.2}/prediction_market_agent_tooling/monitor/langfuse/langfuse_wrapper.py +0 -0
  53. {prediction_market_agent_tooling-0.43.1 → prediction_market_agent_tooling-0.43.2}/prediction_market_agent_tooling/monitor/markets/manifold.py +0 -0
  54. {prediction_market_agent_tooling-0.43.1 → prediction_market_agent_tooling-0.43.2}/prediction_market_agent_tooling/monitor/markets/metaculus.py +0 -0
  55. {prediction_market_agent_tooling-0.43.1 → prediction_market_agent_tooling-0.43.2}/prediction_market_agent_tooling/monitor/markets/omen.py +0 -0
  56. {prediction_market_agent_tooling-0.43.1 → prediction_market_agent_tooling-0.43.2}/prediction_market_agent_tooling/monitor/markets/polymarket.py +0 -0
  57. {prediction_market_agent_tooling-0.43.1 → prediction_market_agent_tooling-0.43.2}/prediction_market_agent_tooling/monitor/monitor.py +0 -0
  58. {prediction_market_agent_tooling-0.43.1 → prediction_market_agent_tooling-0.43.2}/prediction_market_agent_tooling/monitor/monitor_app.py +0 -0
  59. {prediction_market_agent_tooling-0.43.1 → prediction_market_agent_tooling-0.43.2}/prediction_market_agent_tooling/monitor/monitor_settings.py +0 -0
  60. {prediction_market_agent_tooling-0.43.1 → prediction_market_agent_tooling-0.43.2}/prediction_market_agent_tooling/py.typed +0 -0
  61. {prediction_market_agent_tooling-0.43.1 → prediction_market_agent_tooling-0.43.2}/prediction_market_agent_tooling/tools/balances.py +0 -0
  62. {prediction_market_agent_tooling-0.43.1 → prediction_market_agent_tooling-0.43.2}/prediction_market_agent_tooling/tools/betting_strategies/kelly_criterion.py +0 -0
  63. {prediction_market_agent_tooling-0.43.1 → prediction_market_agent_tooling-0.43.2}/prediction_market_agent_tooling/tools/betting_strategies/market_moving.py +0 -0
  64. {prediction_market_agent_tooling-0.43.1 → prediction_market_agent_tooling-0.43.2}/prediction_market_agent_tooling/tools/betting_strategies/minimum_bet_to_win.py +0 -0
  65. {prediction_market_agent_tooling-0.43.1 → prediction_market_agent_tooling-0.43.2}/prediction_market_agent_tooling/tools/betting_strategies/stretch_bet_between.py +0 -0
  66. {prediction_market_agent_tooling-0.43.1 → prediction_market_agent_tooling-0.43.2}/prediction_market_agent_tooling/tools/cache.py +0 -0
  67. {prediction_market_agent_tooling-0.43.1 → prediction_market_agent_tooling-0.43.2}/prediction_market_agent_tooling/tools/contract.py +0 -0
  68. {prediction_market_agent_tooling-0.43.1 → prediction_market_agent_tooling-0.43.2}/prediction_market_agent_tooling/tools/costs.py +0 -0
  69. {prediction_market_agent_tooling-0.43.1 → prediction_market_agent_tooling-0.43.2}/prediction_market_agent_tooling/tools/gnosis_rpc.py +0 -0
  70. {prediction_market_agent_tooling-0.43.1 → prediction_market_agent_tooling-0.43.2}/prediction_market_agent_tooling/tools/google.py +0 -0
  71. {prediction_market_agent_tooling-0.43.1 → prediction_market_agent_tooling-0.43.2}/prediction_market_agent_tooling/tools/hexbytes_custom.py +0 -0
  72. {prediction_market_agent_tooling-0.43.1 → prediction_market_agent_tooling-0.43.2}/prediction_market_agent_tooling/tools/image_gen/image_gen.py +0 -0
  73. {prediction_market_agent_tooling-0.43.1 → prediction_market_agent_tooling-0.43.2}/prediction_market_agent_tooling/tools/image_gen/market_thumbnail_gen.py +0 -0
  74. {prediction_market_agent_tooling-0.43.1 → prediction_market_agent_tooling-0.43.2}/prediction_market_agent_tooling/tools/parallelism.py +0 -0
  75. {prediction_market_agent_tooling-0.43.1 → prediction_market_agent_tooling-0.43.2}/prediction_market_agent_tooling/tools/safe.py +0 -0
  76. {prediction_market_agent_tooling-0.43.1 → prediction_market_agent_tooling-0.43.2}/prediction_market_agent_tooling/tools/singleton.py +0 -0
  77. {prediction_market_agent_tooling-0.43.1 → prediction_market_agent_tooling-0.43.2}/prediction_market_agent_tooling/tools/streamlit_user_login.py +0 -0
  78. {prediction_market_agent_tooling-0.43.1 → prediction_market_agent_tooling-0.43.2}/prediction_market_agent_tooling/tools/utils.py +0 -0
  79. {prediction_market_agent_tooling-0.43.1 → prediction_market_agent_tooling-0.43.2}/prediction_market_agent_tooling/tools/web3_utils.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: prediction-market-agent-tooling
3
- Version: 0.43.1
3
+ Version: 0.43.2
4
4
  Summary: Tools to benchmark, deploy and monitor prediction market agents.
5
5
  Author: Gnosis
6
6
  Requires-Python: >=3.10,<3.12
@@ -209,7 +209,9 @@ class DeployableTraderAgent(DeployableAgent):
209
209
  def have_bet_on_market_since(self, market: AgentMarket, since: timedelta) -> bool:
210
210
  return have_bet_on_market_since(keys=APIKeys(), market=market, since=since)
211
211
 
212
- def pick_markets(self, markets: t.Sequence[AgentMarket]) -> t.Sequence[AgentMarket]:
212
+ def pick_markets(
213
+ self, market_type: MarketType, markets: t.Sequence[AgentMarket]
214
+ ) -> t.Sequence[AgentMarket]:
213
215
  """
214
216
  Subclasses can implement their own logic instead of this one, or on top of this one.
215
217
  By default, it picks only the first {n_markets_per_run} markets where user didn't bet recently and it's a reasonable question.
@@ -227,6 +229,12 @@ class DeployableTraderAgent(DeployableAgent):
227
229
  if not is_predictable_binary(market.question):
228
230
  continue
229
231
 
232
+ # Manifold allows to bet only on markets with probability between 1 and 99.
233
+ if market_type == MarketType.MANIFOLD and not (
234
+ 1 < market.current_p_yes < 99
235
+ ):
236
+ continue
237
+
230
238
  picked.append(market)
231
239
 
232
240
  return picked
@@ -275,7 +283,7 @@ class DeployableTraderAgent(DeployableAgent):
275
283
  Processes bets placed by agents on a given market.
276
284
  """
277
285
  available_markets = self.get_markets(market_type)
278
- markets = self.pick_markets(available_markets)
286
+ markets = self.pick_markets(market_type, available_markets)
279
287
  for market in markets:
280
288
  result = self.answer_binary_market(market)
281
289
  if result is None:
@@ -7,10 +7,13 @@ from prediction_market_agent_tooling.deploy.agent import (
7
7
  Probability,
8
8
  )
9
9
  from prediction_market_agent_tooling.markets.agent_market import AgentMarket
10
+ from prediction_market_agent_tooling.markets.markets import MarketType
10
11
 
11
12
 
12
13
  class DeployableCoinFlipAgent(DeployableTraderAgent):
13
- def pick_markets(self, markets: t.Sequence[AgentMarket]) -> t.Sequence[AgentMarket]:
14
+ def pick_markets(
15
+ self, market_type: MarketType, markets: t.Sequence[AgentMarket]
16
+ ) -> t.Sequence[AgentMarket]:
14
17
  return random.sample(markets, 1)
15
18
 
16
19
  def answer_binary_market(self, market: AgentMarket) -> Answer | None:
@@ -236,9 +236,10 @@ def find_resolution_on_other_markets(market: OmenMarket) -> Resolution | None:
236
236
  resolution = find_resolution_on_polymarket(market.question_title)
237
237
 
238
238
  case _:
239
- raise ValueError(
239
+ logger.warning(
240
240
  f"Unknown market type {market_type} in replication resolving."
241
241
  )
242
+ continue
242
243
 
243
244
  if resolution is not None:
244
245
  return resolution
@@ -34,7 +34,7 @@ class Event(BaseModel):
34
34
  slug: str
35
35
  ticker: str
36
36
  title: str
37
- series: str | None
37
+ series: t.Any | None = None
38
38
 
39
39
 
40
40
  class Event1(BaseModel):
@@ -46,7 +46,7 @@ class Market1(BaseModel):
46
46
  slug: str
47
47
  question: str
48
48
  image: str
49
- volume: USDC | None
49
+ volume: USDC | None = None
50
50
  outcomes: list[str]
51
51
  outcomePrices: list[USDC]
52
52
  active: bool
@@ -54,7 +54,7 @@ class Market1(BaseModel):
54
54
  closed: bool
55
55
  orderPriceMinTickSize: USDC
56
56
  clobTokenIds: str
57
- events: list[Event1]
57
+ events: list[Event1] | None = None
58
58
 
59
59
 
60
60
  class ResolutionData(BaseModel):
@@ -77,98 +77,98 @@ class Market(BaseModel):
77
77
  question: str
78
78
  conditionId: str
79
79
  slug: str
80
- twitterCardImage: t.Any | None
80
+ twitterCardImage: t.Any | None = None
81
81
  resolutionSource: str
82
82
  endDate: datetime
83
- category: t.Any | None
84
- ammType: t.Any | None
83
+ category: t.Any | None = None
84
+ ammType: t.Any | None = None
85
85
  description: str
86
- liquidity: str | None
86
+ liquidity: str | None = None
87
87
  startDate: datetime
88
88
  createdAt: datetime
89
- xAxisValue: t.Any | None
90
- yAxisValue: t.Any | None
91
- denominationToken: t.Any | None
92
- fee: str | None
93
- lowerBound: t.Any | None
94
- upperBound: t.Any | None
89
+ xAxisValue: t.Any | None = None
90
+ yAxisValue: t.Any | None = None
91
+ denominationToken: t.Any | None = None
92
+ fee: str | None = None
93
+ lowerBound: t.Any | None = None
94
+ upperBound: t.Any | None = None
95
95
  outcomes: list[str]
96
96
  image: str
97
97
  icon: str
98
- imageOptimized: t.Any | None
99
- iconOptimized: t.Any | None
98
+ imageOptimized: t.Any | None = None
99
+ iconOptimized: t.Any | None = None
100
100
  outcomePrices: list[USDC]
101
- volume: USDC | None
101
+ volume: USDC | None = None
102
102
  active: bool
103
- marketType: str | None
104
- formatType: t.Any | None
105
- lowerBoundDate: t.Any | None
106
- upperBoundDate: t.Any | None
103
+ marketType: str | None = None
104
+ formatType: t.Any | None = None
105
+ lowerBoundDate: t.Any | None = None
106
+ upperBoundDate: t.Any | None = None
107
107
  closed: bool
108
108
  marketMakerAddress: HexAddress
109
- closedTime: datetime | None
110
- wideFormat: bool | None
109
+ closedTime: datetime | None = None
110
+ wideFormat: bool | None = None
111
111
  new: bool
112
- sentDiscord: t.Any | None
113
- mailchimpTag: t.Any | None
112
+ sentDiscord: t.Any | None = None
113
+ mailchimpTag: t.Any | None = None
114
114
  featured: bool
115
115
  submitted_by: str
116
- subcategory: t.Any | None
117
- categoryMailchimpTag: t.Any | None
116
+ subcategory: t.Any | None = None
117
+ categoryMailchimpTag: t.Any | None = None
118
118
  archived: bool
119
119
  resolvedBy: str
120
120
  restricted: bool
121
121
  groupItemTitle: str
122
122
  groupItemThreshold: str
123
123
  questionID: str
124
- umaEndDate: t.Any | None
124
+ umaEndDate: t.Any | None = None
125
125
  enableOrderBook: bool
126
126
  orderPriceMinTickSize: float
127
127
  orderMinSize: int
128
- umaResolutionStatus: t.Any | None
129
- curationOrder: t.Any | None
130
- volumeNum: USDC | None
131
- liquidityNum: float | None
132
- endDateIso: datetime | None
133
- startDateIso: datetime | None
134
- umaEndDateIso: datetime | None
135
- commentsEnabled: bool | None
136
- disqusThread: t.Any | None
137
- gameStartTime: datetime | None
138
- secondsDelay: int | None
128
+ umaResolutionStatus: t.Any | None = None
129
+ curationOrder: t.Any | None = None
130
+ volumeNum: USDC | None = None
131
+ liquidityNum: float | None = None
132
+ endDateIso: datetime | None = None
133
+ startDateIso: datetime | None = None
134
+ umaEndDateIso: datetime | None = None
135
+ commentsEnabled: bool | None = None
136
+ disqusThread: t.Any | None = None
137
+ gameStartTime: datetime | None = None
138
+ secondsDelay: int | None = None
139
139
  clobTokenIds: list[str]
140
- liquidityAmm: float | None
141
- liquidityClob: float | None
142
- makerBaseFee: int | None
143
- takerBaseFee: int | None
144
- negRisk: t.Any | None
145
- negRiskRequestID: t.Any | None
146
- negRiskMarketID: t.Any | None
140
+ liquidityAmm: float | None = None
141
+ liquidityClob: float | None = None
142
+ makerBaseFee: int | None = None
143
+ takerBaseFee: int | None = None
144
+ negRisk: t.Any | None = None
145
+ negRiskRequestID: t.Any | None = None
146
+ negRiskMarketID: t.Any | None = None
147
147
  events: list[Event]
148
148
  markets: list[Market1]
149
- lower_bound_date: t.Any | None
150
- upper_bound_date: t.Any | None
151
- market_type: str | None
149
+ lower_bound_date: t.Any | None = None
150
+ upper_bound_date: t.Any | None = None
151
+ market_type: str | None = None
152
152
  resolution_source: str
153
153
  end_date: str
154
- amm_type: t.Any | None
155
- x_axis_value: t.Any | None
156
- y_axis_value: t.Any | None
157
- denomination_token: t.Any | None
154
+ amm_type: t.Any | None = None
155
+ x_axis_value: t.Any | None = None
156
+ y_axis_value: t.Any | None = None
157
+ denomination_token: t.Any | None = None
158
158
  resolved_by: str
159
- upper_bound: t.Any | None
160
- lower_bound: t.Any | None
159
+ upper_bound: t.Any | None = None
160
+ lower_bound: t.Any | None = None
161
161
  created_at: str
162
- updated_at: t.Any | None
163
- closed_time: t.Any | None
164
- wide_format: bool | None
165
- volume_num: USDC | None
166
- liquidity_num: USDC | None
162
+ updated_at: t.Any | None = None
163
+ closed_time: t.Any | None = None
164
+ wide_format: bool | None = None
165
+ volume_num: USDC | None = None
166
+ liquidity_num: USDC | None = None
167
167
  image_raw: str
168
168
  resolutionData: ResolutionData
169
169
 
170
170
  @field_validator("closedTime", mode="before")
171
- def field_validator_closedTime(cls, v: str | None) -> str | None:
171
+ def field_validator_closedTime(cls, v: str | None = None) -> str | None:
172
172
  return v.replace("+00", "") if v else None
173
173
 
174
174
  @property
@@ -232,7 +232,7 @@ class PolymarketFullMarket(BaseModel):
232
232
  ticker: str
233
233
  slug: str
234
234
  title: str
235
- subtitle: t.Any | None
235
+ subtitle: t.Any | None = None
236
236
  description: str
237
237
  commentCount: int
238
238
  resolutionSource: str
@@ -240,35 +240,35 @@ class PolymarketFullMarket(BaseModel):
240
240
  endDate: datetime
241
241
  image: str
242
242
  icon: str
243
- featuredImage: str | None
243
+ featuredImage: str | None = None
244
244
  active: bool
245
245
  closed: bool
246
246
  archived: bool
247
247
  new: bool
248
248
  featured: bool
249
249
  restricted: bool
250
- liquidity: USDC | None
251
- volume: USDC | None
252
- volume24hr: USDC | None
253
- competitive: float | None
254
- openInterest: int | None
255
- sortBy: str | None
250
+ liquidity: USDC | None = None
251
+ volume: USDC | None = None
252
+ volume24hr: USDC | None = None
253
+ competitive: float | None = None
254
+ openInterest: int | None = None
255
+ sortBy: str | None = None
256
256
  createdAt: datetime
257
- commentsEnabled: bool | None
258
- disqusThread: t.Any | None
257
+ commentsEnabled: bool | None = None
258
+ disqusThread: t.Any | None = None
259
259
  updatedAt: datetime
260
260
  enableOrderBook: bool
261
- liquidityAmm: float | None
262
- liquidityClob: float | None
263
- imageOptimized: ImageOptimized | None
264
- iconOptimized: IconOptimized | None
265
- featuredImageOptimized: str | None
266
- negRisk: t.Any | None
267
- negRiskMarketID: t.Any | None
268
- negRiskFeeBips: t.Any | None
261
+ liquidityAmm: float | None = None
262
+ liquidityClob: float | None = None
263
+ imageOptimized: ImageOptimized | None = None
264
+ iconOptimized: IconOptimized | None = None
265
+ featuredImageOptimized: str | None = None
266
+ negRisk: t.Any | None = None
267
+ negRiskMarketID: t.Any | None = None
268
+ negRiskFeeBips: t.Any | None = None
269
269
  markets: list[Market]
270
270
  categories: list[Category] | None = None
271
- series: t.Any | None
271
+ series: t.Any | None = None
272
272
  image_raw: str
273
273
 
274
274
  @property
@@ -355,12 +355,12 @@ class State(BaseModel):
355
355
  ) # It's none if you go to the website and it says "Oops...we didn't forecast this".
356
356
  dataUpdateCount: int
357
357
  dataUpdatedAt: int
358
- error: t.Any | None
358
+ error: t.Any | None = None
359
359
  errorUpdateCount: int
360
360
  errorUpdatedAt: int
361
361
  fetchFailureCount: int
362
- fetchFailureReason: t.Any | None
363
- fetchMeta: t.Any | None
362
+ fetchFailureReason: t.Any | None = None
363
+ fetchMeta: t.Any | None = None
364
364
  isInvalidated: bool
365
365
  status: str
366
366
  fetchStatus: str
@@ -381,7 +381,7 @@ class PageProps(BaseModel):
381
381
  key: str
382
382
  dehydratedState: DehydratedState
383
383
  eslug: str
384
- mslug: str | None
384
+ mslug: str | None = None
385
385
  isSingleMarket: bool
386
386
 
387
387
 
@@ -76,6 +76,7 @@ def is_predictable_binary(
76
76
  question: str,
77
77
  engine: str = "gpt-4-1106-preview",
78
78
  prompt_template: str = QUESTION_IS_PREDICTABLE_BINARY_PROMPT,
79
+ max_tokens: int = 1024,
79
80
  ) -> bool:
80
81
  """
81
82
  Evaluate if the question is actually answerable.
@@ -95,7 +96,7 @@ def is_predictable_binary(
95
96
 
96
97
  prompt = ChatPromptTemplate.from_template(template=prompt_template)
97
98
  messages = prompt.format_messages(question=question)
98
- completion = str(llm(messages, max_tokens=512).content)
99
+ completion = str(llm(messages, max_tokens=max_tokens).content)
99
100
 
100
101
  return parse_decision_yes_no_completion(question, completion)
101
102
 
@@ -106,6 +107,7 @@ def is_predictable_without_description(
106
107
  description: str,
107
108
  engine: str = "gpt-4-1106-preview",
108
109
  prompt_template: str = QUESTION_IS_PREDICTABLE_WITHOUT_DESCRIPTION_PROMPT,
110
+ max_tokens: int = 1024,
109
111
  ) -> bool:
110
112
  """
111
113
  Evaluate if the question is fully self-contained.
@@ -130,7 +132,7 @@ def is_predictable_without_description(
130
132
  question=question,
131
133
  description=description,
132
134
  )
133
- completion = str(llm(messages, max_tokens=512).content)
135
+ completion = str(llm(messages, max_tokens=max_tokens).content)
134
136
 
135
137
  return parse_decision_yes_no_completion(question, completion)
136
138
 
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "prediction-market-agent-tooling"
3
- version = "0.43.1"
3
+ version = "0.43.2"
4
4
  description = "Tools to benchmark, deploy and monitor prediction market agents."
5
5
  authors = ["Gnosis"]
6
6
  readme = "README.md"