prediction-market-agent-tooling 0.56.2.dev145__tar.gz → 0.56.2.dev146__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 (106) hide show
  1. {prediction_market_agent_tooling-0.56.2.dev145 → prediction_market_agent_tooling-0.56.2.dev146}/PKG-INFO +2 -1
  2. {prediction_market_agent_tooling-0.56.2.dev145 → prediction_market_agent_tooling-0.56.2.dev146}/prediction_market_agent_tooling/loggers.py +38 -16
  3. {prediction_market_agent_tooling-0.56.2.dev145 → prediction_market_agent_tooling-0.56.2.dev146}/pyproject.toml +2 -1
  4. {prediction_market_agent_tooling-0.56.2.dev145 → prediction_market_agent_tooling-0.56.2.dev146}/LICENSE +0 -0
  5. {prediction_market_agent_tooling-0.56.2.dev145 → prediction_market_agent_tooling-0.56.2.dev146}/README.md +0 -0
  6. {prediction_market_agent_tooling-0.56.2.dev145 → prediction_market_agent_tooling-0.56.2.dev146}/prediction_market_agent_tooling/abis/debuggingcontract.abi.json +0 -0
  7. {prediction_market_agent_tooling-0.56.2.dev145 → prediction_market_agent_tooling-0.56.2.dev146}/prediction_market_agent_tooling/abis/depositablewrapper_erc20.abi.json +0 -0
  8. {prediction_market_agent_tooling-0.56.2.dev145 → prediction_market_agent_tooling-0.56.2.dev146}/prediction_market_agent_tooling/abis/erc20.abi.json +0 -0
  9. {prediction_market_agent_tooling-0.56.2.dev145 → prediction_market_agent_tooling-0.56.2.dev146}/prediction_market_agent_tooling/abis/erc4626.abi.json +0 -0
  10. {prediction_market_agent_tooling-0.56.2.dev145 → prediction_market_agent_tooling-0.56.2.dev146}/prediction_market_agent_tooling/abis/omen_agentresultmapping.abi.json +0 -0
  11. {prediction_market_agent_tooling-0.56.2.dev145 → prediction_market_agent_tooling-0.56.2.dev146}/prediction_market_agent_tooling/abis/omen_dxdao.abi.json +0 -0
  12. {prediction_market_agent_tooling-0.56.2.dev145 → prediction_market_agent_tooling-0.56.2.dev146}/prediction_market_agent_tooling/abis/omen_fpmm.abi.json +0 -0
  13. {prediction_market_agent_tooling-0.56.2.dev145 → prediction_market_agent_tooling-0.56.2.dev146}/prediction_market_agent_tooling/abis/omen_fpmm_conditionaltokens.abi.json +0 -0
  14. {prediction_market_agent_tooling-0.56.2.dev145 → prediction_market_agent_tooling-0.56.2.dev146}/prediction_market_agent_tooling/abis/omen_fpmm_factory.abi.json +0 -0
  15. {prediction_market_agent_tooling-0.56.2.dev145 → prediction_market_agent_tooling-0.56.2.dev146}/prediction_market_agent_tooling/abis/omen_kleros.abi.json +0 -0
  16. {prediction_market_agent_tooling-0.56.2.dev145 → prediction_market_agent_tooling-0.56.2.dev146}/prediction_market_agent_tooling/abis/omen_oracle.abi.json +0 -0
  17. {prediction_market_agent_tooling-0.56.2.dev145 → prediction_market_agent_tooling-0.56.2.dev146}/prediction_market_agent_tooling/abis/omen_realitio.abi.json +0 -0
  18. {prediction_market_agent_tooling-0.56.2.dev145 → prediction_market_agent_tooling-0.56.2.dev146}/prediction_market_agent_tooling/abis/omen_thumbnailmapping.abi.json +0 -0
  19. {prediction_market_agent_tooling-0.56.2.dev145 → prediction_market_agent_tooling-0.56.2.dev146}/prediction_market_agent_tooling/abis/proxy.abi.json +0 -0
  20. {prediction_market_agent_tooling-0.56.2.dev145 → prediction_market_agent_tooling-0.56.2.dev146}/prediction_market_agent_tooling/benchmark/__init__.py +0 -0
  21. {prediction_market_agent_tooling-0.56.2.dev145 → prediction_market_agent_tooling-0.56.2.dev146}/prediction_market_agent_tooling/benchmark/agents.py +0 -0
  22. {prediction_market_agent_tooling-0.56.2.dev145 → prediction_market_agent_tooling-0.56.2.dev146}/prediction_market_agent_tooling/benchmark/benchmark.py +0 -0
  23. {prediction_market_agent_tooling-0.56.2.dev145 → prediction_market_agent_tooling-0.56.2.dev146}/prediction_market_agent_tooling/benchmark/utils.py +0 -0
  24. {prediction_market_agent_tooling-0.56.2.dev145 → prediction_market_agent_tooling-0.56.2.dev146}/prediction_market_agent_tooling/config.py +0 -0
  25. {prediction_market_agent_tooling-0.56.2.dev145 → prediction_market_agent_tooling-0.56.2.dev146}/prediction_market_agent_tooling/deploy/agent.py +0 -0
  26. {prediction_market_agent_tooling-0.56.2.dev145 → prediction_market_agent_tooling-0.56.2.dev146}/prediction_market_agent_tooling/deploy/agent_example.py +0 -0
  27. {prediction_market_agent_tooling-0.56.2.dev145 → prediction_market_agent_tooling-0.56.2.dev146}/prediction_market_agent_tooling/deploy/betting_strategy.py +0 -0
  28. {prediction_market_agent_tooling-0.56.2.dev145 → prediction_market_agent_tooling-0.56.2.dev146}/prediction_market_agent_tooling/deploy/constants.py +0 -0
  29. {prediction_market_agent_tooling-0.56.2.dev145 → prediction_market_agent_tooling-0.56.2.dev146}/prediction_market_agent_tooling/deploy/gcp/deploy.py +0 -0
  30. {prediction_market_agent_tooling-0.56.2.dev145 → prediction_market_agent_tooling-0.56.2.dev146}/prediction_market_agent_tooling/deploy/gcp/kubernetes_models.py +0 -0
  31. {prediction_market_agent_tooling-0.56.2.dev145 → prediction_market_agent_tooling-0.56.2.dev146}/prediction_market_agent_tooling/deploy/gcp/utils.py +0 -0
  32. {prediction_market_agent_tooling-0.56.2.dev145 → prediction_market_agent_tooling-0.56.2.dev146}/prediction_market_agent_tooling/deploy/trade_interval.py +0 -0
  33. {prediction_market_agent_tooling-0.56.2.dev145 → prediction_market_agent_tooling-0.56.2.dev146}/prediction_market_agent_tooling/gtypes.py +0 -0
  34. {prediction_market_agent_tooling-0.56.2.dev145 → prediction_market_agent_tooling-0.56.2.dev146}/prediction_market_agent_tooling/jobs/__init__.py +0 -0
  35. {prediction_market_agent_tooling-0.56.2.dev145 → prediction_market_agent_tooling-0.56.2.dev146}/prediction_market_agent_tooling/jobs/jobs_models.py +0 -0
  36. {prediction_market_agent_tooling-0.56.2.dev145 → prediction_market_agent_tooling-0.56.2.dev146}/prediction_market_agent_tooling/jobs/omen/omen_jobs.py +0 -0
  37. {prediction_market_agent_tooling-0.56.2.dev145 → prediction_market_agent_tooling-0.56.2.dev146}/prediction_market_agent_tooling/markets/agent_market.py +0 -0
  38. {prediction_market_agent_tooling-0.56.2.dev145 → prediction_market_agent_tooling-0.56.2.dev146}/prediction_market_agent_tooling/markets/base_subgraph_handler.py +0 -0
  39. {prediction_market_agent_tooling-0.56.2.dev145 → prediction_market_agent_tooling-0.56.2.dev146}/prediction_market_agent_tooling/markets/categorize.py +0 -0
  40. {prediction_market_agent_tooling-0.56.2.dev145 → prediction_market_agent_tooling-0.56.2.dev146}/prediction_market_agent_tooling/markets/data_models.py +0 -0
  41. {prediction_market_agent_tooling-0.56.2.dev145 → prediction_market_agent_tooling-0.56.2.dev146}/prediction_market_agent_tooling/markets/manifold/__init__.py +0 -0
  42. {prediction_market_agent_tooling-0.56.2.dev145 → prediction_market_agent_tooling-0.56.2.dev146}/prediction_market_agent_tooling/markets/manifold/api.py +0 -0
  43. {prediction_market_agent_tooling-0.56.2.dev145 → prediction_market_agent_tooling-0.56.2.dev146}/prediction_market_agent_tooling/markets/manifold/data_models.py +0 -0
  44. {prediction_market_agent_tooling-0.56.2.dev145 → prediction_market_agent_tooling-0.56.2.dev146}/prediction_market_agent_tooling/markets/manifold/manifold.py +0 -0
  45. {prediction_market_agent_tooling-0.56.2.dev145 → prediction_market_agent_tooling-0.56.2.dev146}/prediction_market_agent_tooling/markets/manifold/utils.py +0 -0
  46. {prediction_market_agent_tooling-0.56.2.dev145 → prediction_market_agent_tooling-0.56.2.dev146}/prediction_market_agent_tooling/markets/market_fees.py +0 -0
  47. {prediction_market_agent_tooling-0.56.2.dev145 → prediction_market_agent_tooling-0.56.2.dev146}/prediction_market_agent_tooling/markets/markets.py +0 -0
  48. {prediction_market_agent_tooling-0.56.2.dev145 → prediction_market_agent_tooling-0.56.2.dev146}/prediction_market_agent_tooling/markets/metaculus/api.py +0 -0
  49. {prediction_market_agent_tooling-0.56.2.dev145 → prediction_market_agent_tooling-0.56.2.dev146}/prediction_market_agent_tooling/markets/metaculus/data_models.py +0 -0
  50. {prediction_market_agent_tooling-0.56.2.dev145 → prediction_market_agent_tooling-0.56.2.dev146}/prediction_market_agent_tooling/markets/metaculus/metaculus.py +0 -0
  51. {prediction_market_agent_tooling-0.56.2.dev145 → prediction_market_agent_tooling-0.56.2.dev146}/prediction_market_agent_tooling/markets/omen/__init__.py +0 -0
  52. {prediction_market_agent_tooling-0.56.2.dev145 → prediction_market_agent_tooling-0.56.2.dev146}/prediction_market_agent_tooling/markets/omen/data_models.py +0 -0
  53. {prediction_market_agent_tooling-0.56.2.dev145 → prediction_market_agent_tooling-0.56.2.dev146}/prediction_market_agent_tooling/markets/omen/omen.py +0 -0
  54. {prediction_market_agent_tooling-0.56.2.dev145 → prediction_market_agent_tooling-0.56.2.dev146}/prediction_market_agent_tooling/markets/omen/omen_contracts.py +0 -0
  55. {prediction_market_agent_tooling-0.56.2.dev145 → prediction_market_agent_tooling-0.56.2.dev146}/prediction_market_agent_tooling/markets/omen/omen_resolving.py +0 -0
  56. {prediction_market_agent_tooling-0.56.2.dev145 → prediction_market_agent_tooling-0.56.2.dev146}/prediction_market_agent_tooling/markets/omen/omen_subgraph_handler.py +0 -0
  57. {prediction_market_agent_tooling-0.56.2.dev145 → prediction_market_agent_tooling-0.56.2.dev146}/prediction_market_agent_tooling/markets/polymarket/api.py +0 -0
  58. {prediction_market_agent_tooling-0.56.2.dev145 → prediction_market_agent_tooling-0.56.2.dev146}/prediction_market_agent_tooling/markets/polymarket/data_models.py +0 -0
  59. {prediction_market_agent_tooling-0.56.2.dev145 → prediction_market_agent_tooling-0.56.2.dev146}/prediction_market_agent_tooling/markets/polymarket/data_models_web.py +0 -0
  60. {prediction_market_agent_tooling-0.56.2.dev145 → prediction_market_agent_tooling-0.56.2.dev146}/prediction_market_agent_tooling/markets/polymarket/polymarket.py +0 -0
  61. {prediction_market_agent_tooling-0.56.2.dev145 → prediction_market_agent_tooling-0.56.2.dev146}/prediction_market_agent_tooling/markets/polymarket/utils.py +0 -0
  62. {prediction_market_agent_tooling-0.56.2.dev145 → prediction_market_agent_tooling-0.56.2.dev146}/prediction_market_agent_tooling/markets/seer/data_models.py +0 -0
  63. {prediction_market_agent_tooling-0.56.2.dev145 → prediction_market_agent_tooling-0.56.2.dev146}/prediction_market_agent_tooling/markets/seer/seer_subgraph_handler.py +0 -0
  64. {prediction_market_agent_tooling-0.56.2.dev145 → prediction_market_agent_tooling-0.56.2.dev146}/prediction_market_agent_tooling/monitor/markets/manifold.py +0 -0
  65. {prediction_market_agent_tooling-0.56.2.dev145 → prediction_market_agent_tooling-0.56.2.dev146}/prediction_market_agent_tooling/monitor/markets/metaculus.py +0 -0
  66. {prediction_market_agent_tooling-0.56.2.dev145 → prediction_market_agent_tooling-0.56.2.dev146}/prediction_market_agent_tooling/monitor/markets/omen.py +0 -0
  67. {prediction_market_agent_tooling-0.56.2.dev145 → prediction_market_agent_tooling-0.56.2.dev146}/prediction_market_agent_tooling/monitor/markets/polymarket.py +0 -0
  68. {prediction_market_agent_tooling-0.56.2.dev145 → prediction_market_agent_tooling-0.56.2.dev146}/prediction_market_agent_tooling/monitor/monitor.py +0 -0
  69. {prediction_market_agent_tooling-0.56.2.dev145 → prediction_market_agent_tooling-0.56.2.dev146}/prediction_market_agent_tooling/monitor/monitor_app.py +0 -0
  70. {prediction_market_agent_tooling-0.56.2.dev145 → prediction_market_agent_tooling-0.56.2.dev146}/prediction_market_agent_tooling/monitor/monitor_settings.py +0 -0
  71. {prediction_market_agent_tooling-0.56.2.dev145 → prediction_market_agent_tooling-0.56.2.dev146}/prediction_market_agent_tooling/py.typed +0 -0
  72. {prediction_market_agent_tooling-0.56.2.dev145 → prediction_market_agent_tooling-0.56.2.dev146}/prediction_market_agent_tooling/tools/balances.py +0 -0
  73. {prediction_market_agent_tooling-0.56.2.dev145 → prediction_market_agent_tooling-0.56.2.dev146}/prediction_market_agent_tooling/tools/betting_strategies/kelly_criterion.py +0 -0
  74. {prediction_market_agent_tooling-0.56.2.dev145 → prediction_market_agent_tooling-0.56.2.dev146}/prediction_market_agent_tooling/tools/betting_strategies/market_moving.py +0 -0
  75. {prediction_market_agent_tooling-0.56.2.dev145 → prediction_market_agent_tooling-0.56.2.dev146}/prediction_market_agent_tooling/tools/betting_strategies/minimum_bet_to_win.py +0 -0
  76. {prediction_market_agent_tooling-0.56.2.dev145 → prediction_market_agent_tooling-0.56.2.dev146}/prediction_market_agent_tooling/tools/betting_strategies/stretch_bet_between.py +0 -0
  77. {prediction_market_agent_tooling-0.56.2.dev145 → prediction_market_agent_tooling-0.56.2.dev146}/prediction_market_agent_tooling/tools/betting_strategies/utils.py +0 -0
  78. {prediction_market_agent_tooling-0.56.2.dev145 → prediction_market_agent_tooling-0.56.2.dev146}/prediction_market_agent_tooling/tools/caches/db_cache.py +0 -0
  79. {prediction_market_agent_tooling-0.56.2.dev145 → prediction_market_agent_tooling-0.56.2.dev146}/prediction_market_agent_tooling/tools/caches/inmemory_cache.py +0 -0
  80. {prediction_market_agent_tooling-0.56.2.dev145 → prediction_market_agent_tooling-0.56.2.dev146}/prediction_market_agent_tooling/tools/contract.py +0 -0
  81. {prediction_market_agent_tooling-0.56.2.dev145 → prediction_market_agent_tooling-0.56.2.dev146}/prediction_market_agent_tooling/tools/costs.py +0 -0
  82. {prediction_market_agent_tooling-0.56.2.dev145 → prediction_market_agent_tooling-0.56.2.dev146}/prediction_market_agent_tooling/tools/datetime_utc.py +0 -0
  83. {prediction_market_agent_tooling-0.56.2.dev145 → prediction_market_agent_tooling-0.56.2.dev146}/prediction_market_agent_tooling/tools/gnosis_rpc.py +0 -0
  84. {prediction_market_agent_tooling-0.56.2.dev145 → prediction_market_agent_tooling-0.56.2.dev146}/prediction_market_agent_tooling/tools/google.py +0 -0
  85. {prediction_market_agent_tooling-0.56.2.dev145 → prediction_market_agent_tooling-0.56.2.dev146}/prediction_market_agent_tooling/tools/hexbytes_custom.py +0 -0
  86. {prediction_market_agent_tooling-0.56.2.dev145 → prediction_market_agent_tooling-0.56.2.dev146}/prediction_market_agent_tooling/tools/httpx_cached_client.py +0 -0
  87. {prediction_market_agent_tooling-0.56.2.dev145 → prediction_market_agent_tooling-0.56.2.dev146}/prediction_market_agent_tooling/tools/image_gen/image_gen.py +0 -0
  88. {prediction_market_agent_tooling-0.56.2.dev145 → prediction_market_agent_tooling-0.56.2.dev146}/prediction_market_agent_tooling/tools/image_gen/market_thumbnail_gen.py +0 -0
  89. {prediction_market_agent_tooling-0.56.2.dev145 → prediction_market_agent_tooling-0.56.2.dev146}/prediction_market_agent_tooling/tools/ipfs/ipfs_handler.py +0 -0
  90. {prediction_market_agent_tooling-0.56.2.dev145 → prediction_market_agent_tooling-0.56.2.dev146}/prediction_market_agent_tooling/tools/is_invalid.py +0 -0
  91. {prediction_market_agent_tooling-0.56.2.dev145 → prediction_market_agent_tooling-0.56.2.dev146}/prediction_market_agent_tooling/tools/is_predictable.py +0 -0
  92. {prediction_market_agent_tooling-0.56.2.dev145 → prediction_market_agent_tooling-0.56.2.dev146}/prediction_market_agent_tooling/tools/langfuse_.py +0 -0
  93. {prediction_market_agent_tooling-0.56.2.dev145 → prediction_market_agent_tooling-0.56.2.dev146}/prediction_market_agent_tooling/tools/langfuse_client_utils.py +0 -0
  94. {prediction_market_agent_tooling-0.56.2.dev145 → prediction_market_agent_tooling-0.56.2.dev146}/prediction_market_agent_tooling/tools/omen/reality_accuracy.py +0 -0
  95. {prediction_market_agent_tooling-0.56.2.dev145 → prediction_market_agent_tooling-0.56.2.dev146}/prediction_market_agent_tooling/tools/parallelism.py +0 -0
  96. {prediction_market_agent_tooling-0.56.2.dev145 → prediction_market_agent_tooling-0.56.2.dev146}/prediction_market_agent_tooling/tools/pickle_utils.py +0 -0
  97. {prediction_market_agent_tooling-0.56.2.dev145 → prediction_market_agent_tooling-0.56.2.dev146}/prediction_market_agent_tooling/tools/relevant_news_analysis/data_models.py +0 -0
  98. {prediction_market_agent_tooling-0.56.2.dev145 → prediction_market_agent_tooling-0.56.2.dev146}/prediction_market_agent_tooling/tools/relevant_news_analysis/relevant_news_analysis.py +0 -0
  99. {prediction_market_agent_tooling-0.56.2.dev145 → prediction_market_agent_tooling-0.56.2.dev146}/prediction_market_agent_tooling/tools/relevant_news_analysis/relevant_news_cache.py +0 -0
  100. {prediction_market_agent_tooling-0.56.2.dev145 → prediction_market_agent_tooling-0.56.2.dev146}/prediction_market_agent_tooling/tools/safe.py +0 -0
  101. {prediction_market_agent_tooling-0.56.2.dev145 → prediction_market_agent_tooling-0.56.2.dev146}/prediction_market_agent_tooling/tools/singleton.py +0 -0
  102. {prediction_market_agent_tooling-0.56.2.dev145 → prediction_market_agent_tooling-0.56.2.dev146}/prediction_market_agent_tooling/tools/streamlit_user_login.py +0 -0
  103. {prediction_market_agent_tooling-0.56.2.dev145 → prediction_market_agent_tooling-0.56.2.dev146}/prediction_market_agent_tooling/tools/tavily/tavily_models.py +0 -0
  104. {prediction_market_agent_tooling-0.56.2.dev145 → prediction_market_agent_tooling-0.56.2.dev146}/prediction_market_agent_tooling/tools/tavily/tavily_search.py +0 -0
  105. {prediction_market_agent_tooling-0.56.2.dev145 → prediction_market_agent_tooling-0.56.2.dev146}/prediction_market_agent_tooling/tools/utils.py +0 -0
  106. {prediction_market_agent_tooling-0.56.2.dev145 → prediction_market_agent_tooling-0.56.2.dev146}/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.56.2.dev145
3
+ Version: 0.56.2.dev146
4
4
  Summary: Tools to benchmark, deploy and monitor prediction market agents.
5
5
  Author: Gnosis
6
6
  Requires-Python: >=3.10,<3.12
@@ -26,6 +26,7 @@ Requires-Dist: langchain (>=0.2.6,<0.3.0) ; extra == "langchain"
26
26
  Requires-Dist: langchain-community (>=0.0.19)
27
27
  Requires-Dist: langchain-openai (>=0.1.0,<0.2.0) ; extra == "langchain"
28
28
  Requires-Dist: langfuse (>=2.42.0,<3.0.0)
29
+ Requires-Dist: loguru (>=0.7.2,<0.8.0)
29
30
  Requires-Dist: loky (>=3.4.1,<4.0.0)
30
31
  Requires-Dist: numpy (>=1.26.4,<2.0.0)
31
32
  Requires-Dist: openai (>=1.0.0,<2.0.0) ; extra == "openai"
@@ -1,13 +1,16 @@
1
1
  import builtins
2
2
  import logging
3
+ import sys
3
4
  import typing as t
4
5
  import warnings
5
6
  from enum import Enum
6
7
 
8
+ from loguru import logger
7
9
  from pydantic_settings import BaseSettings, SettingsConfigDict
8
10
 
9
11
 
10
12
  class LogFormat(str, Enum):
13
+ DEFAULT = "default"
11
14
  GCP = "gcp"
12
15
 
13
16
 
@@ -24,8 +27,8 @@ class LogConfig(BaseSettings):
24
27
  env_file=".env", env_file_encoding="utf-8", extra="ignore"
25
28
  )
26
29
 
27
- LOG_FORMAT: LogFormat = LogFormat.GCP
28
- LOG_LEVEL: LogLevel = LogLevel.INFO
30
+ LOG_FORMAT: LogFormat = LogFormat.DEFAULT
31
+ LOG_LEVEL: LogLevel = LogLevel.DEBUG
29
32
 
30
33
 
31
34
  class NoNewLineStreamHandler(logging.StreamHandler): # type: ignore # StreamHandler is not typed in the standard library.
@@ -33,15 +36,18 @@ class NoNewLineStreamHandler(logging.StreamHandler): # type: ignore # StreamHan
33
36
  return super().format(record).replace("\n", " ")
34
37
 
35
38
 
39
+ GCP_LOG_LOGURU_FORMAT = (
40
+ "{level:<.1}{time:MMDD HH:mm:ss} {process} {name}:{line}] {message}"
41
+ )
36
42
  GCP_LOG_LOGGING_FORMAT, GCP_LOG_FORMAT_LOGGING_DATEFMT = (
37
- "%(levelname).1s%(asctime)s %(process)d %(name)s:%(pathname)s:%(funcName)s:%(lineno)d] %(message)s"
43
+ "%(levelname).1s%(asctime)s %(process)d %(name)s:%(lineno)d] %(message)s"
38
44
  ), "%m%d %H:%M:%S"
39
45
 
40
46
 
41
47
  def patch_logger() -> None:
42
48
  """
43
49
  Function to patch loggers according to the deployed environment.
44
- Patches Python's default logger, warnings library and also monkey-patch print function as many libraries just use it.
50
+ Patches Loguru's logger, Python's default logger, warnings library and also monkey-patch print function as many libraries just use it.
45
51
  """
46
52
  if not getattr(logger, "_patched", False):
47
53
  logger._patched = True # type: ignore[attr-defined] # Hacky way to store a flag on the logger object, to not patch it multiple times.
@@ -51,34 +57,52 @@ def patch_logger() -> None:
51
57
  config = LogConfig()
52
58
 
53
59
  if config.LOG_FORMAT == LogFormat.GCP:
60
+ format_loguru = GCP_LOG_LOGURU_FORMAT
54
61
  format_logging = GCP_LOG_LOGGING_FORMAT
55
62
  datefmt_logging = GCP_LOG_FORMAT_LOGGING_DATEFMT
56
- print_logging = print_using_logger
63
+ print_logging = print_using_loguru_info
57
64
  handlers = [NoNewLineStreamHandler()]
58
65
 
66
+ elif config.LOG_FORMAT == LogFormat.DEFAULT:
67
+ format_loguru, format_logging, datefmt_logging = None, None, None
68
+ print_logging = None
69
+ handlers = None
70
+
59
71
  else:
60
72
  raise ValueError(f"Unknown log format: {config.LOG_FORMAT}")
61
73
 
62
74
  # Change built-in logging.
63
- logging.basicConfig(
64
- level=config.LOG_LEVEL.value,
65
- format=format_logging,
66
- datefmt=datefmt_logging,
67
- handlers=handlers,
68
- )
75
+ if format_logging is not None:
76
+ logging.basicConfig(
77
+ level=config.LOG_LEVEL.value,
78
+ format=format_logging,
79
+ datefmt=datefmt_logging,
80
+ handlers=handlers,
81
+ )
82
+
83
+ # Change loguru.
84
+ if format_loguru is not None:
85
+ logger.remove()
86
+ logger.add(
87
+ sys.stdout,
88
+ format=format_loguru,
89
+ level=config.LOG_LEVEL.value,
90
+ colorize=True,
91
+ )
69
92
 
70
93
  # Change warning formatting to a simpler one (no source code in a new line).
71
94
  warnings.formatwarning = simple_warning_format
72
95
  # Use logging module for warnings.
73
96
  logging.captureWarnings(True)
74
97
 
75
- # Use logger for prints.
76
- builtins.print = print_logging # type: ignore[assignment] # Monkey patching, it's messy but it works.
98
+ # Use loguru for prints.
99
+ if print_logging is not None:
100
+ builtins.print = print_logging # type: ignore[assignment] # Monkey patching, it's messy but it works.
77
101
 
78
102
  logger.info(f"Patched logger for {config.LOG_FORMAT.value} format.")
79
103
 
80
104
 
81
- def print_using_logger(
105
+ def print_using_loguru_info(
82
106
  *values: object,
83
107
  sep: str = " ",
84
108
  end: str = "\n",
@@ -97,6 +121,4 @@ def simple_warning_format(message, category, filename, lineno, line=None): # ty
97
121
  ) # Escape new lines, because otherwise logs will be broken.
98
122
 
99
123
 
100
- logger = logging.getLogger("prediction-market-agent-tooling")
101
-
102
124
  patch_logger()
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "prediction-market-agent-tooling"
3
- version = "0.56.2.dev145"
3
+ version = "0.56.2.dev146"
4
4
  description = "Tools to benchmark, deploy and monitor prediction market agents."
5
5
  authors = ["Gnosis"]
6
6
  readme = "README.md"
@@ -35,6 +35,7 @@ langchain = { version = "^0.2.6", optional = true}
35
35
  langchain-openai = { version = "^0.1.0", optional = true}
36
36
  google-api-python-client = { version = "2.95.0", optional = true}
37
37
  subgrounds = "^1.9.1"
38
+ loguru = "^0.7.2"
38
39
  safe-eth-py = "^6.0.0b41"
39
40
  eth-account = ">=0.8.0,<0.12.0"
40
41
  prompt-toolkit = "^3.0.43"