prediction-market-agent-tooling 0.22.0__tar.gz → 0.23.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.22.0 → prediction_market_agent_tooling-0.23.0}/PKG-INFO +1 -1
  2. prediction_market_agent_tooling-0.23.0/prediction_market_agent_tooling/loggers.py +75 -0
  3. {prediction_market_agent_tooling-0.22.0 → prediction_market_agent_tooling-0.23.0}/pyproject.toml +1 -1
  4. prediction_market_agent_tooling-0.22.0/prediction_market_agent_tooling/loggers.py +0 -54
  5. {prediction_market_agent_tooling-0.22.0 → prediction_market_agent_tooling-0.23.0}/LICENSE +0 -0
  6. {prediction_market_agent_tooling-0.22.0 → prediction_market_agent_tooling-0.23.0}/README.md +0 -0
  7. {prediction_market_agent_tooling-0.22.0 → prediction_market_agent_tooling-0.23.0}/prediction_market_agent_tooling/abis/erc20.abi.json +0 -0
  8. {prediction_market_agent_tooling-0.22.0 → prediction_market_agent_tooling-0.23.0}/prediction_market_agent_tooling/abis/omen_dxdao.abi.json +0 -0
  9. {prediction_market_agent_tooling-0.22.0 → prediction_market_agent_tooling-0.23.0}/prediction_market_agent_tooling/abis/omen_fpmm.abi.json +0 -0
  10. {prediction_market_agent_tooling-0.22.0 → prediction_market_agent_tooling-0.23.0}/prediction_market_agent_tooling/abis/omen_fpmm_conditionaltokens.abi.json +0 -0
  11. {prediction_market_agent_tooling-0.22.0 → prediction_market_agent_tooling-0.23.0}/prediction_market_agent_tooling/abis/omen_fpmm_factory.abi.json +0 -0
  12. {prediction_market_agent_tooling-0.22.0 → prediction_market_agent_tooling-0.23.0}/prediction_market_agent_tooling/abis/omen_kleros.abi.json +0 -0
  13. {prediction_market_agent_tooling-0.22.0 → prediction_market_agent_tooling-0.23.0}/prediction_market_agent_tooling/abis/omen_oracle.abi.json +0 -0
  14. {prediction_market_agent_tooling-0.22.0 → prediction_market_agent_tooling-0.23.0}/prediction_market_agent_tooling/abis/omen_realitio.abi.json +0 -0
  15. {prediction_market_agent_tooling-0.22.0 → prediction_market_agent_tooling-0.23.0}/prediction_market_agent_tooling/abis/wxdai.abi.json +0 -0
  16. {prediction_market_agent_tooling-0.22.0 → prediction_market_agent_tooling-0.23.0}/prediction_market_agent_tooling/benchmark/__init__.py +0 -0
  17. {prediction_market_agent_tooling-0.22.0 → prediction_market_agent_tooling-0.23.0}/prediction_market_agent_tooling/benchmark/agents.py +0 -0
  18. {prediction_market_agent_tooling-0.22.0 → prediction_market_agent_tooling-0.23.0}/prediction_market_agent_tooling/benchmark/benchmark.py +0 -0
  19. {prediction_market_agent_tooling-0.22.0 → prediction_market_agent_tooling-0.23.0}/prediction_market_agent_tooling/benchmark/utils.py +0 -0
  20. {prediction_market_agent_tooling-0.22.0 → prediction_market_agent_tooling-0.23.0}/prediction_market_agent_tooling/config.py +0 -0
  21. {prediction_market_agent_tooling-0.22.0 → prediction_market_agent_tooling-0.23.0}/prediction_market_agent_tooling/deploy/agent.py +0 -0
  22. {prediction_market_agent_tooling-0.22.0 → prediction_market_agent_tooling-0.23.0}/prediction_market_agent_tooling/deploy/agent_example.py +0 -0
  23. {prediction_market_agent_tooling-0.22.0 → prediction_market_agent_tooling-0.23.0}/prediction_market_agent_tooling/deploy/constants.py +0 -0
  24. {prediction_market_agent_tooling-0.22.0 → prediction_market_agent_tooling-0.23.0}/prediction_market_agent_tooling/deploy/gcp/deploy.py +0 -0
  25. {prediction_market_agent_tooling-0.22.0 → prediction_market_agent_tooling-0.23.0}/prediction_market_agent_tooling/deploy/gcp/kubernetes_models.py +0 -0
  26. {prediction_market_agent_tooling-0.22.0 → prediction_market_agent_tooling-0.23.0}/prediction_market_agent_tooling/deploy/gcp/utils.py +0 -0
  27. {prediction_market_agent_tooling-0.22.0 → prediction_market_agent_tooling-0.23.0}/prediction_market_agent_tooling/gtypes.py +0 -0
  28. {prediction_market_agent_tooling-0.22.0 → prediction_market_agent_tooling-0.23.0}/prediction_market_agent_tooling/markets/agent_market.py +0 -0
  29. {prediction_market_agent_tooling-0.22.0 → prediction_market_agent_tooling-0.23.0}/prediction_market_agent_tooling/markets/categorize.py +0 -0
  30. {prediction_market_agent_tooling-0.22.0 → prediction_market_agent_tooling-0.23.0}/prediction_market_agent_tooling/markets/data_models.py +0 -0
  31. {prediction_market_agent_tooling-0.22.0 → prediction_market_agent_tooling-0.23.0}/prediction_market_agent_tooling/markets/manifold/__init__.py +0 -0
  32. {prediction_market_agent_tooling-0.22.0 → prediction_market_agent_tooling-0.23.0}/prediction_market_agent_tooling/markets/manifold/api.py +0 -0
  33. {prediction_market_agent_tooling-0.22.0 → prediction_market_agent_tooling-0.23.0}/prediction_market_agent_tooling/markets/manifold/data_models.py +0 -0
  34. {prediction_market_agent_tooling-0.22.0 → prediction_market_agent_tooling-0.23.0}/prediction_market_agent_tooling/markets/manifold/manifold.py +0 -0
  35. {prediction_market_agent_tooling-0.22.0 → prediction_market_agent_tooling-0.23.0}/prediction_market_agent_tooling/markets/manifold/utils.py +0 -0
  36. {prediction_market_agent_tooling-0.22.0 → prediction_market_agent_tooling-0.23.0}/prediction_market_agent_tooling/markets/markets.py +0 -0
  37. {prediction_market_agent_tooling-0.22.0 → prediction_market_agent_tooling-0.23.0}/prediction_market_agent_tooling/markets/omen/__init__.py +0 -0
  38. {prediction_market_agent_tooling-0.22.0 → prediction_market_agent_tooling-0.23.0}/prediction_market_agent_tooling/markets/omen/data_models.py +0 -0
  39. {prediction_market_agent_tooling-0.22.0 → prediction_market_agent_tooling-0.23.0}/prediction_market_agent_tooling/markets/omen/omen.py +0 -0
  40. {prediction_market_agent_tooling-0.22.0 → prediction_market_agent_tooling-0.23.0}/prediction_market_agent_tooling/markets/omen/omen_contracts.py +0 -0
  41. {prediction_market_agent_tooling-0.22.0 → prediction_market_agent_tooling-0.23.0}/prediction_market_agent_tooling/markets/omen/omen_resolving.py +0 -0
  42. {prediction_market_agent_tooling-0.22.0 → prediction_market_agent_tooling-0.23.0}/prediction_market_agent_tooling/markets/omen/omen_subgraph_handler.py +0 -0
  43. {prediction_market_agent_tooling-0.22.0 → prediction_market_agent_tooling-0.23.0}/prediction_market_agent_tooling/markets/polymarket/api.py +0 -0
  44. {prediction_market_agent_tooling-0.22.0 → prediction_market_agent_tooling-0.23.0}/prediction_market_agent_tooling/markets/polymarket/data_models.py +0 -0
  45. {prediction_market_agent_tooling-0.22.0 → prediction_market_agent_tooling-0.23.0}/prediction_market_agent_tooling/markets/polymarket/data_models_web.py +0 -0
  46. {prediction_market_agent_tooling-0.22.0 → prediction_market_agent_tooling-0.23.0}/prediction_market_agent_tooling/markets/polymarket/polymarket.py +0 -0
  47. {prediction_market_agent_tooling-0.22.0 → prediction_market_agent_tooling-0.23.0}/prediction_market_agent_tooling/markets/polymarket/utils.py +0 -0
  48. {prediction_market_agent_tooling-0.22.0 → prediction_market_agent_tooling-0.23.0}/prediction_market_agent_tooling/monitor/langfuse/langfuse_wrapper.py +0 -0
  49. {prediction_market_agent_tooling-0.22.0 → prediction_market_agent_tooling-0.23.0}/prediction_market_agent_tooling/monitor/markets/manifold.py +0 -0
  50. {prediction_market_agent_tooling-0.22.0 → prediction_market_agent_tooling-0.23.0}/prediction_market_agent_tooling/monitor/markets/omen.py +0 -0
  51. {prediction_market_agent_tooling-0.22.0 → prediction_market_agent_tooling-0.23.0}/prediction_market_agent_tooling/monitor/markets/polymarket.py +0 -0
  52. {prediction_market_agent_tooling-0.22.0 → prediction_market_agent_tooling-0.23.0}/prediction_market_agent_tooling/monitor/monitor.py +0 -0
  53. {prediction_market_agent_tooling-0.22.0 → prediction_market_agent_tooling-0.23.0}/prediction_market_agent_tooling/monitor/monitor_app.py +0 -0
  54. {prediction_market_agent_tooling-0.22.0 → prediction_market_agent_tooling-0.23.0}/prediction_market_agent_tooling/monitor/monitor_settings.py +0 -0
  55. {prediction_market_agent_tooling-0.22.0 → prediction_market_agent_tooling-0.23.0}/prediction_market_agent_tooling/py.typed +0 -0
  56. {prediction_market_agent_tooling-0.22.0 → prediction_market_agent_tooling-0.23.0}/prediction_market_agent_tooling/tools/balances.py +0 -0
  57. {prediction_market_agent_tooling-0.22.0 → prediction_market_agent_tooling-0.23.0}/prediction_market_agent_tooling/tools/betting_strategies/kelly_criterion.py +0 -0
  58. {prediction_market_agent_tooling-0.22.0 → prediction_market_agent_tooling-0.23.0}/prediction_market_agent_tooling/tools/betting_strategies/market_moving.py +0 -0
  59. {prediction_market_agent_tooling-0.22.0 → prediction_market_agent_tooling-0.23.0}/prediction_market_agent_tooling/tools/betting_strategies/minimum_bet_to_win.py +0 -0
  60. {prediction_market_agent_tooling-0.22.0 → prediction_market_agent_tooling-0.23.0}/prediction_market_agent_tooling/tools/betting_strategies/stretch_bet_between.py +0 -0
  61. {prediction_market_agent_tooling-0.22.0 → prediction_market_agent_tooling-0.23.0}/prediction_market_agent_tooling/tools/cache.py +0 -0
  62. {prediction_market_agent_tooling-0.22.0 → prediction_market_agent_tooling-0.23.0}/prediction_market_agent_tooling/tools/contract.py +0 -0
  63. {prediction_market_agent_tooling-0.22.0 → prediction_market_agent_tooling-0.23.0}/prediction_market_agent_tooling/tools/costs.py +0 -0
  64. {prediction_market_agent_tooling-0.22.0 → prediction_market_agent_tooling-0.23.0}/prediction_market_agent_tooling/tools/gnosis_rpc.py +0 -0
  65. {prediction_market_agent_tooling-0.22.0 → prediction_market_agent_tooling-0.23.0}/prediction_market_agent_tooling/tools/google.py +0 -0
  66. {prediction_market_agent_tooling-0.22.0 → prediction_market_agent_tooling-0.23.0}/prediction_market_agent_tooling/tools/hexbytes_custom.py +0 -0
  67. {prediction_market_agent_tooling-0.22.0 → prediction_market_agent_tooling-0.23.0}/prediction_market_agent_tooling/tools/is_predictable.py +0 -0
  68. {prediction_market_agent_tooling-0.22.0 → prediction_market_agent_tooling-0.23.0}/prediction_market_agent_tooling/tools/parallelism.py +0 -0
  69. {prediction_market_agent_tooling-0.22.0 → prediction_market_agent_tooling-0.23.0}/prediction_market_agent_tooling/tools/safe.py +0 -0
  70. {prediction_market_agent_tooling-0.22.0 → prediction_market_agent_tooling-0.23.0}/prediction_market_agent_tooling/tools/singleton.py +0 -0
  71. {prediction_market_agent_tooling-0.22.0 → prediction_market_agent_tooling-0.23.0}/prediction_market_agent_tooling/tools/utils.py +0 -0
  72. {prediction_market_agent_tooling-0.22.0 → prediction_market_agent_tooling-0.23.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.22.0
3
+ Version: 0.23.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,75 @@
1
+ import logging
2
+ import sys
3
+ import warnings
4
+ from enum import Enum
5
+
6
+ from loguru import logger
7
+ from pydantic_settings import BaseSettings, SettingsConfigDict
8
+
9
+
10
+ class LogFormat(str, Enum):
11
+ DEFAULT = "default"
12
+ GCP = "gcp"
13
+
14
+
15
+ class LogConfig(BaseSettings):
16
+ model_config = SettingsConfigDict(
17
+ env_file=".env", env_file_encoding="utf-8", extra="ignore"
18
+ )
19
+
20
+ LOG_FORMAT: LogFormat = LogFormat.DEFAULT
21
+
22
+
23
+ GCP_LOG_LOGURU_FORMAT = (
24
+ "{level:<.1}{time:MMDD HH:mm:ss} {process} {name}:{line}] {message}"
25
+ )
26
+ GCP_LOG_LOGGING_FORMAT, GCP_LOG_FORMAT_LOGGING_DATEFMT = (
27
+ "%(levelname).1s%(asctime)s %(process)d %(name)s:%(lineno)d] %(message)s"
28
+ ), "%m%d %H:%M:%S"
29
+
30
+
31
+ def patch_logger() -> None:
32
+ config = LogConfig()
33
+
34
+ if config.LOG_FORMAT == LogFormat.GCP:
35
+ format_loguru = GCP_LOG_LOGURU_FORMAT
36
+ format_logging = GCP_LOG_LOGGING_FORMAT
37
+ datefmt_logging = GCP_LOG_FORMAT_LOGGING_DATEFMT
38
+
39
+ elif config.LOG_FORMAT == LogFormat.DEFAULT:
40
+ format_loguru, format_logging, datefmt_logging = None, None, None
41
+
42
+ else:
43
+ raise ValueError(f"Unknown log format: {config.LOG_FORMAT}")
44
+
45
+ # Change built-in logging.
46
+ if format_logging is not None:
47
+ logging.basicConfig(
48
+ level=logging.DEBUG, format=format_logging, datefmt=datefmt_logging
49
+ )
50
+
51
+ # Change loguru.
52
+ if format_loguru is not None:
53
+ logger.remove()
54
+ logger.add(
55
+ sys.stdout,
56
+ format=format_loguru,
57
+ level="DEBUG", # Can be the lowest level, higher ones will use by default this one.
58
+ colorize=True,
59
+ )
60
+
61
+ # Change warning formatting to a simpler one (no source code in a new line).
62
+ warnings.formatwarning = simple_warning_format
63
+ # Use logging module for warnings.
64
+ logging.captureWarnings(True)
65
+
66
+ logger.info(f"Patched logger for {config.LOG_FORMAT.value} format.")
67
+
68
+
69
+ def simple_warning_format(message, category, filename, lineno, line=None): # type: ignore[no-untyped-def] # Not typed in the standard library neither.
70
+ return f"{category.__name__}: {message}"
71
+
72
+
73
+ if not getattr(logger, "_patched", False):
74
+ patch_logger()
75
+ logger._patched = True # type: ignore[attr-defined] # Hacky way to store a flag on the logger object, to not patch it multiple times.
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "prediction-market-agent-tooling"
3
- version = "0.22.0"
3
+ version = "0.23.0"
4
4
  description = "Tools to benchmark, deploy and monitor prediction market agents."
5
5
  authors = ["Gnosis"]
6
6
  readme = "README.md"
@@ -1,54 +0,0 @@
1
- import sys
2
- import typing as t
3
- from enum import Enum
4
-
5
- from loguru import logger
6
- from pydantic_settings import BaseSettings, SettingsConfigDict
7
-
8
- if t.TYPE_CHECKING:
9
- from loguru import Logger
10
-
11
-
12
- class LogFormat(str, Enum):
13
- DEFAULT = "default"
14
- GCP = "gcp"
15
-
16
-
17
- class LogConfig(BaseSettings):
18
- model_config = SettingsConfigDict(
19
- env_file=".env", env_file_encoding="utf-8", extra="ignore"
20
- )
21
-
22
- LOG_FORMAT: LogFormat = LogFormat.DEFAULT
23
-
24
-
25
- GCP_LOG_FORMAT = "{level:<.1}{time:MMDD HH:mm:ss.SSSSSS} {process} {name}:{line}] {message} | {extra}"
26
-
27
-
28
- def patch_logger(logger: "Logger") -> None:
29
- config = LogConfig()
30
-
31
- if config.LOG_FORMAT == LogFormat.GCP:
32
- format_ = GCP_LOG_FORMAT
33
-
34
- elif config.LOG_FORMAT == LogFormat.DEFAULT:
35
- format_ = None
36
-
37
- else:
38
- raise ValueError(f"Unknown log format: {config.LOG_FORMAT}")
39
-
40
- if format_ is not None:
41
- logger.remove()
42
- logger.add(
43
- sys.stdout,
44
- format=format_,
45
- level="DEBUG", # Can be the lowest level, higher ones will use by default this one.
46
- colorize=True,
47
- )
48
-
49
- logger.info(f"Patched logger for {config.LOG_FORMAT.value} format.")
50
-
51
-
52
- if not getattr(logger, "_patched", False):
53
- patch_logger(logger)
54
- logger._patched = True # type: ignore[attr-defined] # Hacky way to store a flag on the logger object, to not patch it multiple times.