prediction-market-agent-tooling 0.32.0__tar.gz → 0.33.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 (72) hide show
  1. {prediction_market_agent_tooling-0.32.0 → prediction_market_agent_tooling-0.33.0}/PKG-INFO +1 -1
  2. prediction_market_agent_tooling-0.33.0/prediction_market_agent_tooling/tools/streamlit_user_login.py +82 -0
  3. {prediction_market_agent_tooling-0.32.0 → prediction_market_agent_tooling-0.33.0}/pyproject.toml +1 -1
  4. {prediction_market_agent_tooling-0.32.0 → prediction_market_agent_tooling-0.33.0}/LICENSE +0 -0
  5. {prediction_market_agent_tooling-0.32.0 → prediction_market_agent_tooling-0.33.0}/README.md +0 -0
  6. {prediction_market_agent_tooling-0.32.0 → prediction_market_agent_tooling-0.33.0}/prediction_market_agent_tooling/abis/erc20.abi.json +0 -0
  7. {prediction_market_agent_tooling-0.32.0 → prediction_market_agent_tooling-0.33.0}/prediction_market_agent_tooling/abis/omen_dxdao.abi.json +0 -0
  8. {prediction_market_agent_tooling-0.32.0 → prediction_market_agent_tooling-0.33.0}/prediction_market_agent_tooling/abis/omen_fpmm.abi.json +0 -0
  9. {prediction_market_agent_tooling-0.32.0 → prediction_market_agent_tooling-0.33.0}/prediction_market_agent_tooling/abis/omen_fpmm_conditionaltokens.abi.json +0 -0
  10. {prediction_market_agent_tooling-0.32.0 → prediction_market_agent_tooling-0.33.0}/prediction_market_agent_tooling/abis/omen_fpmm_factory.abi.json +0 -0
  11. {prediction_market_agent_tooling-0.32.0 → prediction_market_agent_tooling-0.33.0}/prediction_market_agent_tooling/abis/omen_kleros.abi.json +0 -0
  12. {prediction_market_agent_tooling-0.32.0 → prediction_market_agent_tooling-0.33.0}/prediction_market_agent_tooling/abis/omen_oracle.abi.json +0 -0
  13. {prediction_market_agent_tooling-0.32.0 → prediction_market_agent_tooling-0.33.0}/prediction_market_agent_tooling/abis/omen_realitio.abi.json +0 -0
  14. {prediction_market_agent_tooling-0.32.0 → prediction_market_agent_tooling-0.33.0}/prediction_market_agent_tooling/abis/wxdai.abi.json +0 -0
  15. {prediction_market_agent_tooling-0.32.0 → prediction_market_agent_tooling-0.33.0}/prediction_market_agent_tooling/benchmark/__init__.py +0 -0
  16. {prediction_market_agent_tooling-0.32.0 → prediction_market_agent_tooling-0.33.0}/prediction_market_agent_tooling/benchmark/agents.py +0 -0
  17. {prediction_market_agent_tooling-0.32.0 → prediction_market_agent_tooling-0.33.0}/prediction_market_agent_tooling/benchmark/benchmark.py +0 -0
  18. {prediction_market_agent_tooling-0.32.0 → prediction_market_agent_tooling-0.33.0}/prediction_market_agent_tooling/benchmark/utils.py +0 -0
  19. {prediction_market_agent_tooling-0.32.0 → prediction_market_agent_tooling-0.33.0}/prediction_market_agent_tooling/config.py +0 -0
  20. {prediction_market_agent_tooling-0.32.0 → prediction_market_agent_tooling-0.33.0}/prediction_market_agent_tooling/deploy/agent.py +0 -0
  21. {prediction_market_agent_tooling-0.32.0 → prediction_market_agent_tooling-0.33.0}/prediction_market_agent_tooling/deploy/agent_example.py +0 -0
  22. {prediction_market_agent_tooling-0.32.0 → prediction_market_agent_tooling-0.33.0}/prediction_market_agent_tooling/deploy/constants.py +0 -0
  23. {prediction_market_agent_tooling-0.32.0 → prediction_market_agent_tooling-0.33.0}/prediction_market_agent_tooling/deploy/gcp/deploy.py +0 -0
  24. {prediction_market_agent_tooling-0.32.0 → prediction_market_agent_tooling-0.33.0}/prediction_market_agent_tooling/deploy/gcp/kubernetes_models.py +0 -0
  25. {prediction_market_agent_tooling-0.32.0 → prediction_market_agent_tooling-0.33.0}/prediction_market_agent_tooling/deploy/gcp/utils.py +0 -0
  26. {prediction_market_agent_tooling-0.32.0 → prediction_market_agent_tooling-0.33.0}/prediction_market_agent_tooling/gtypes.py +0 -0
  27. {prediction_market_agent_tooling-0.32.0 → prediction_market_agent_tooling-0.33.0}/prediction_market_agent_tooling/loggers.py +0 -0
  28. {prediction_market_agent_tooling-0.32.0 → prediction_market_agent_tooling-0.33.0}/prediction_market_agent_tooling/markets/agent_market.py +0 -0
  29. {prediction_market_agent_tooling-0.32.0 → prediction_market_agent_tooling-0.33.0}/prediction_market_agent_tooling/markets/categorize.py +0 -0
  30. {prediction_market_agent_tooling-0.32.0 → prediction_market_agent_tooling-0.33.0}/prediction_market_agent_tooling/markets/data_models.py +0 -0
  31. {prediction_market_agent_tooling-0.32.0 → prediction_market_agent_tooling-0.33.0}/prediction_market_agent_tooling/markets/manifold/__init__.py +0 -0
  32. {prediction_market_agent_tooling-0.32.0 → prediction_market_agent_tooling-0.33.0}/prediction_market_agent_tooling/markets/manifold/api.py +0 -0
  33. {prediction_market_agent_tooling-0.32.0 → prediction_market_agent_tooling-0.33.0}/prediction_market_agent_tooling/markets/manifold/data_models.py +0 -0
  34. {prediction_market_agent_tooling-0.32.0 → prediction_market_agent_tooling-0.33.0}/prediction_market_agent_tooling/markets/manifold/manifold.py +0 -0
  35. {prediction_market_agent_tooling-0.32.0 → prediction_market_agent_tooling-0.33.0}/prediction_market_agent_tooling/markets/manifold/utils.py +0 -0
  36. {prediction_market_agent_tooling-0.32.0 → prediction_market_agent_tooling-0.33.0}/prediction_market_agent_tooling/markets/markets.py +0 -0
  37. {prediction_market_agent_tooling-0.32.0 → prediction_market_agent_tooling-0.33.0}/prediction_market_agent_tooling/markets/omen/__init__.py +0 -0
  38. {prediction_market_agent_tooling-0.32.0 → prediction_market_agent_tooling-0.33.0}/prediction_market_agent_tooling/markets/omen/data_models.py +0 -0
  39. {prediction_market_agent_tooling-0.32.0 → prediction_market_agent_tooling-0.33.0}/prediction_market_agent_tooling/markets/omen/omen.py +0 -0
  40. {prediction_market_agent_tooling-0.32.0 → prediction_market_agent_tooling-0.33.0}/prediction_market_agent_tooling/markets/omen/omen_contracts.py +0 -0
  41. {prediction_market_agent_tooling-0.32.0 → prediction_market_agent_tooling-0.33.0}/prediction_market_agent_tooling/markets/omen/omen_resolving.py +0 -0
  42. {prediction_market_agent_tooling-0.32.0 → prediction_market_agent_tooling-0.33.0}/prediction_market_agent_tooling/markets/omen/omen_subgraph_handler.py +0 -0
  43. {prediction_market_agent_tooling-0.32.0 → prediction_market_agent_tooling-0.33.0}/prediction_market_agent_tooling/markets/polymarket/api.py +0 -0
  44. {prediction_market_agent_tooling-0.32.0 → prediction_market_agent_tooling-0.33.0}/prediction_market_agent_tooling/markets/polymarket/data_models.py +0 -0
  45. {prediction_market_agent_tooling-0.32.0 → prediction_market_agent_tooling-0.33.0}/prediction_market_agent_tooling/markets/polymarket/data_models_web.py +0 -0
  46. {prediction_market_agent_tooling-0.32.0 → prediction_market_agent_tooling-0.33.0}/prediction_market_agent_tooling/markets/polymarket/polymarket.py +0 -0
  47. {prediction_market_agent_tooling-0.32.0 → prediction_market_agent_tooling-0.33.0}/prediction_market_agent_tooling/markets/polymarket/utils.py +0 -0
  48. {prediction_market_agent_tooling-0.32.0 → prediction_market_agent_tooling-0.33.0}/prediction_market_agent_tooling/monitor/langfuse/langfuse_wrapper.py +0 -0
  49. {prediction_market_agent_tooling-0.32.0 → prediction_market_agent_tooling-0.33.0}/prediction_market_agent_tooling/monitor/markets/manifold.py +0 -0
  50. {prediction_market_agent_tooling-0.32.0 → prediction_market_agent_tooling-0.33.0}/prediction_market_agent_tooling/monitor/markets/omen.py +0 -0
  51. {prediction_market_agent_tooling-0.32.0 → prediction_market_agent_tooling-0.33.0}/prediction_market_agent_tooling/monitor/markets/polymarket.py +0 -0
  52. {prediction_market_agent_tooling-0.32.0 → prediction_market_agent_tooling-0.33.0}/prediction_market_agent_tooling/monitor/monitor.py +0 -0
  53. {prediction_market_agent_tooling-0.32.0 → prediction_market_agent_tooling-0.33.0}/prediction_market_agent_tooling/monitor/monitor_app.py +0 -0
  54. {prediction_market_agent_tooling-0.32.0 → prediction_market_agent_tooling-0.33.0}/prediction_market_agent_tooling/monitor/monitor_settings.py +0 -0
  55. {prediction_market_agent_tooling-0.32.0 → prediction_market_agent_tooling-0.33.0}/prediction_market_agent_tooling/py.typed +0 -0
  56. {prediction_market_agent_tooling-0.32.0 → prediction_market_agent_tooling-0.33.0}/prediction_market_agent_tooling/tools/balances.py +0 -0
  57. {prediction_market_agent_tooling-0.32.0 → prediction_market_agent_tooling-0.33.0}/prediction_market_agent_tooling/tools/betting_strategies/kelly_criterion.py +0 -0
  58. {prediction_market_agent_tooling-0.32.0 → prediction_market_agent_tooling-0.33.0}/prediction_market_agent_tooling/tools/betting_strategies/market_moving.py +0 -0
  59. {prediction_market_agent_tooling-0.32.0 → prediction_market_agent_tooling-0.33.0}/prediction_market_agent_tooling/tools/betting_strategies/minimum_bet_to_win.py +0 -0
  60. {prediction_market_agent_tooling-0.32.0 → prediction_market_agent_tooling-0.33.0}/prediction_market_agent_tooling/tools/betting_strategies/stretch_bet_between.py +0 -0
  61. {prediction_market_agent_tooling-0.32.0 → prediction_market_agent_tooling-0.33.0}/prediction_market_agent_tooling/tools/cache.py +0 -0
  62. {prediction_market_agent_tooling-0.32.0 → prediction_market_agent_tooling-0.33.0}/prediction_market_agent_tooling/tools/contract.py +0 -0
  63. {prediction_market_agent_tooling-0.32.0 → prediction_market_agent_tooling-0.33.0}/prediction_market_agent_tooling/tools/costs.py +0 -0
  64. {prediction_market_agent_tooling-0.32.0 → prediction_market_agent_tooling-0.33.0}/prediction_market_agent_tooling/tools/gnosis_rpc.py +0 -0
  65. {prediction_market_agent_tooling-0.32.0 → prediction_market_agent_tooling-0.33.0}/prediction_market_agent_tooling/tools/google.py +0 -0
  66. {prediction_market_agent_tooling-0.32.0 → prediction_market_agent_tooling-0.33.0}/prediction_market_agent_tooling/tools/hexbytes_custom.py +0 -0
  67. {prediction_market_agent_tooling-0.32.0 → prediction_market_agent_tooling-0.33.0}/prediction_market_agent_tooling/tools/is_predictable.py +0 -0
  68. {prediction_market_agent_tooling-0.32.0 → prediction_market_agent_tooling-0.33.0}/prediction_market_agent_tooling/tools/parallelism.py +0 -0
  69. {prediction_market_agent_tooling-0.32.0 → prediction_market_agent_tooling-0.33.0}/prediction_market_agent_tooling/tools/safe.py +0 -0
  70. {prediction_market_agent_tooling-0.32.0 → prediction_market_agent_tooling-0.33.0}/prediction_market_agent_tooling/tools/singleton.py +0 -0
  71. {prediction_market_agent_tooling-0.32.0 → prediction_market_agent_tooling-0.33.0}/prediction_market_agent_tooling/tools/utils.py +0 -0
  72. {prediction_market_agent_tooling-0.32.0 → prediction_market_agent_tooling-0.33.0}/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.32.0
3
+ Version: 0.33.0
4
4
  Summary: Tools to benchmark, deploy and monitor prediction market agents.
5
5
  Author: Gnosis
6
6
  Requires-Python: >=3.10,<3.12
@@ -0,0 +1,82 @@
1
+ from enum import Enum
2
+
3
+ import streamlit as st
4
+ from pydantic import BaseModel, SecretStr
5
+ from pydantic_settings import BaseSettings, SettingsConfigDict
6
+
7
+ from prediction_market_agent_tooling.loggers import logger
8
+
9
+
10
+ class LoggedInUser(BaseModel):
11
+ email: str
12
+ password: SecretStr
13
+
14
+
15
+ class LoginSettings(BaseSettings):
16
+ model_config = SettingsConfigDict(
17
+ env_file=".env", env_file_encoding="utf-8", extra="ignore"
18
+ )
19
+ free_for_everyone: bool = False
20
+ free_access_codes: list[SecretStr] = []
21
+ users: list[LoggedInUser] = []
22
+
23
+
24
+ class LoggedEnum(str, Enum):
25
+ SELF_PAYING = "self_paying"
26
+ FREE_ACCESS = "free_access"
27
+ USER_LOGGED_IN = "user_logged_in"
28
+
29
+
30
+ def find_logged_in_user(email: str, password: SecretStr) -> LoggedInUser | None:
31
+ login_settings = LoginSettings()
32
+
33
+ for user in login_settings.users:
34
+ if (
35
+ user.email == email
36
+ and user.password.get_secret_value() == password.get_secret_value()
37
+ ):
38
+ return user
39
+
40
+ return None
41
+
42
+
43
+ def streamlit_login() -> tuple[LoggedEnum, LoggedInUser | None]:
44
+ login_settings = LoginSettings()
45
+
46
+ if login_settings.free_for_everyone:
47
+ logger.info("Free access for everyone!")
48
+ return LoggedEnum.FREE_ACCESS, None
49
+
50
+ if (
51
+ free_access_code := st.query_params.get("free_access_code")
52
+ ) is not None and free_access_code in [
53
+ x.get_secret_value() for x in login_settings.free_access_codes
54
+ ]:
55
+ logger.info(f"Using free access code: {free_access_code}.")
56
+ return LoggedEnum.FREE_ACCESS, None
57
+
58
+ # TODO: Because we are initializing APIKeys (based on environment variables) in random places in the code, the user can not provide their own access keys, such as OPENAI_API_KEY.
59
+ # Doing that would require to change the environment variables in the code, but Streamlit is using 1 thread per session, and the environment variables are shared between threads.
60
+ # So other users would get the secrets provided by the first user!
61
+ # Another option is to refactor the code, such that APIKeys are initialized in a single place, somewhere in the agent's initialisation and then, we can initialize them here based on the user's input and just provide them to the agent.
62
+ # After that's done, we should also have unique api keys per registered user.
63
+ self_paying = False
64
+ # self_paying = st.checkbox("I will provide my own access keys", value=False)
65
+
66
+ if not self_paying:
67
+ email = st.text_input("Email")
68
+ password = SecretStr(st.text_input("Password", type="password"))
69
+ logged_user = find_logged_in_user(email, password)
70
+
71
+ if logged_user is not None:
72
+ logger.info(f"Logged in as {email}.")
73
+ return LoggedEnum.USER_LOGGED_IN, logged_user
74
+
75
+ else:
76
+ st.error("Invalid email or password.")
77
+ st.stop()
78
+
79
+ else:
80
+ raise NotImplementedError(
81
+ "Should not happen. Self-paying is not implemented yet. See the comment above."
82
+ )
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "prediction-market-agent-tooling"
3
- version = "0.32.0"
3
+ version = "0.33.0"
4
4
  description = "Tools to benchmark, deploy and monitor prediction market agents."
5
5
  authors = ["Gnosis"]
6
6
  readme = "README.md"