prediction-market-agent-tooling 0.56.2.dev146__tar.gz → 0.56.2.dev148__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.
- {prediction_market_agent_tooling-0.56.2.dev146 → prediction_market_agent_tooling-0.56.2.dev148}/PKG-INFO +1 -1
- {prediction_market_agent_tooling-0.56.2.dev146 → prediction_market_agent_tooling-0.56.2.dev148}/prediction_market_agent_tooling/tools/caches/db_cache.py +9 -13
- {prediction_market_agent_tooling-0.56.2.dev146 → prediction_market_agent_tooling-0.56.2.dev148}/prediction_market_agent_tooling/tools/relevant_news_analysis/relevant_news_cache.py +6 -3
- {prediction_market_agent_tooling-0.56.2.dev146 → prediction_market_agent_tooling-0.56.2.dev148}/pyproject.toml +1 -1
- prediction_market_agent_tooling-0.56.2.dev146/prediction_market_agent_tooling/tools/pickle_utils.py +0 -31
- {prediction_market_agent_tooling-0.56.2.dev146 → prediction_market_agent_tooling-0.56.2.dev148}/LICENSE +0 -0
- {prediction_market_agent_tooling-0.56.2.dev146 → prediction_market_agent_tooling-0.56.2.dev148}/README.md +0 -0
- {prediction_market_agent_tooling-0.56.2.dev146 → prediction_market_agent_tooling-0.56.2.dev148}/prediction_market_agent_tooling/abis/debuggingcontract.abi.json +0 -0
- {prediction_market_agent_tooling-0.56.2.dev146 → prediction_market_agent_tooling-0.56.2.dev148}/prediction_market_agent_tooling/abis/depositablewrapper_erc20.abi.json +0 -0
- {prediction_market_agent_tooling-0.56.2.dev146 → prediction_market_agent_tooling-0.56.2.dev148}/prediction_market_agent_tooling/abis/erc20.abi.json +0 -0
- {prediction_market_agent_tooling-0.56.2.dev146 → prediction_market_agent_tooling-0.56.2.dev148}/prediction_market_agent_tooling/abis/erc4626.abi.json +0 -0
- {prediction_market_agent_tooling-0.56.2.dev146 → prediction_market_agent_tooling-0.56.2.dev148}/prediction_market_agent_tooling/abis/omen_agentresultmapping.abi.json +0 -0
- {prediction_market_agent_tooling-0.56.2.dev146 → prediction_market_agent_tooling-0.56.2.dev148}/prediction_market_agent_tooling/abis/omen_dxdao.abi.json +0 -0
- {prediction_market_agent_tooling-0.56.2.dev146 → prediction_market_agent_tooling-0.56.2.dev148}/prediction_market_agent_tooling/abis/omen_fpmm.abi.json +0 -0
- {prediction_market_agent_tooling-0.56.2.dev146 → prediction_market_agent_tooling-0.56.2.dev148}/prediction_market_agent_tooling/abis/omen_fpmm_conditionaltokens.abi.json +0 -0
- {prediction_market_agent_tooling-0.56.2.dev146 → prediction_market_agent_tooling-0.56.2.dev148}/prediction_market_agent_tooling/abis/omen_fpmm_factory.abi.json +0 -0
- {prediction_market_agent_tooling-0.56.2.dev146 → prediction_market_agent_tooling-0.56.2.dev148}/prediction_market_agent_tooling/abis/omen_kleros.abi.json +0 -0
- {prediction_market_agent_tooling-0.56.2.dev146 → prediction_market_agent_tooling-0.56.2.dev148}/prediction_market_agent_tooling/abis/omen_oracle.abi.json +0 -0
- {prediction_market_agent_tooling-0.56.2.dev146 → prediction_market_agent_tooling-0.56.2.dev148}/prediction_market_agent_tooling/abis/omen_realitio.abi.json +0 -0
- {prediction_market_agent_tooling-0.56.2.dev146 → prediction_market_agent_tooling-0.56.2.dev148}/prediction_market_agent_tooling/abis/omen_thumbnailmapping.abi.json +0 -0
- {prediction_market_agent_tooling-0.56.2.dev146 → prediction_market_agent_tooling-0.56.2.dev148}/prediction_market_agent_tooling/abis/proxy.abi.json +0 -0
- {prediction_market_agent_tooling-0.56.2.dev146 → prediction_market_agent_tooling-0.56.2.dev148}/prediction_market_agent_tooling/benchmark/__init__.py +0 -0
- {prediction_market_agent_tooling-0.56.2.dev146 → prediction_market_agent_tooling-0.56.2.dev148}/prediction_market_agent_tooling/benchmark/agents.py +0 -0
- {prediction_market_agent_tooling-0.56.2.dev146 → prediction_market_agent_tooling-0.56.2.dev148}/prediction_market_agent_tooling/benchmark/benchmark.py +0 -0
- {prediction_market_agent_tooling-0.56.2.dev146 → prediction_market_agent_tooling-0.56.2.dev148}/prediction_market_agent_tooling/benchmark/utils.py +0 -0
- {prediction_market_agent_tooling-0.56.2.dev146 → prediction_market_agent_tooling-0.56.2.dev148}/prediction_market_agent_tooling/config.py +0 -0
- {prediction_market_agent_tooling-0.56.2.dev146 → prediction_market_agent_tooling-0.56.2.dev148}/prediction_market_agent_tooling/deploy/agent.py +0 -0
- {prediction_market_agent_tooling-0.56.2.dev146 → prediction_market_agent_tooling-0.56.2.dev148}/prediction_market_agent_tooling/deploy/agent_example.py +0 -0
- {prediction_market_agent_tooling-0.56.2.dev146 → prediction_market_agent_tooling-0.56.2.dev148}/prediction_market_agent_tooling/deploy/betting_strategy.py +0 -0
- {prediction_market_agent_tooling-0.56.2.dev146 → prediction_market_agent_tooling-0.56.2.dev148}/prediction_market_agent_tooling/deploy/constants.py +0 -0
- {prediction_market_agent_tooling-0.56.2.dev146 → prediction_market_agent_tooling-0.56.2.dev148}/prediction_market_agent_tooling/deploy/gcp/deploy.py +0 -0
- {prediction_market_agent_tooling-0.56.2.dev146 → prediction_market_agent_tooling-0.56.2.dev148}/prediction_market_agent_tooling/deploy/gcp/kubernetes_models.py +0 -0
- {prediction_market_agent_tooling-0.56.2.dev146 → prediction_market_agent_tooling-0.56.2.dev148}/prediction_market_agent_tooling/deploy/gcp/utils.py +0 -0
- {prediction_market_agent_tooling-0.56.2.dev146 → prediction_market_agent_tooling-0.56.2.dev148}/prediction_market_agent_tooling/deploy/trade_interval.py +0 -0
- {prediction_market_agent_tooling-0.56.2.dev146 → prediction_market_agent_tooling-0.56.2.dev148}/prediction_market_agent_tooling/gtypes.py +0 -0
- {prediction_market_agent_tooling-0.56.2.dev146 → prediction_market_agent_tooling-0.56.2.dev148}/prediction_market_agent_tooling/jobs/__init__.py +0 -0
- {prediction_market_agent_tooling-0.56.2.dev146 → prediction_market_agent_tooling-0.56.2.dev148}/prediction_market_agent_tooling/jobs/jobs_models.py +0 -0
- {prediction_market_agent_tooling-0.56.2.dev146 → prediction_market_agent_tooling-0.56.2.dev148}/prediction_market_agent_tooling/jobs/omen/omen_jobs.py +0 -0
- {prediction_market_agent_tooling-0.56.2.dev146 → prediction_market_agent_tooling-0.56.2.dev148}/prediction_market_agent_tooling/loggers.py +0 -0
- {prediction_market_agent_tooling-0.56.2.dev146 → prediction_market_agent_tooling-0.56.2.dev148}/prediction_market_agent_tooling/markets/agent_market.py +0 -0
- {prediction_market_agent_tooling-0.56.2.dev146 → prediction_market_agent_tooling-0.56.2.dev148}/prediction_market_agent_tooling/markets/base_subgraph_handler.py +0 -0
- {prediction_market_agent_tooling-0.56.2.dev146 → prediction_market_agent_tooling-0.56.2.dev148}/prediction_market_agent_tooling/markets/categorize.py +0 -0
- {prediction_market_agent_tooling-0.56.2.dev146 → prediction_market_agent_tooling-0.56.2.dev148}/prediction_market_agent_tooling/markets/data_models.py +0 -0
- {prediction_market_agent_tooling-0.56.2.dev146 → prediction_market_agent_tooling-0.56.2.dev148}/prediction_market_agent_tooling/markets/manifold/__init__.py +0 -0
- {prediction_market_agent_tooling-0.56.2.dev146 → prediction_market_agent_tooling-0.56.2.dev148}/prediction_market_agent_tooling/markets/manifold/api.py +0 -0
- {prediction_market_agent_tooling-0.56.2.dev146 → prediction_market_agent_tooling-0.56.2.dev148}/prediction_market_agent_tooling/markets/manifold/data_models.py +0 -0
- {prediction_market_agent_tooling-0.56.2.dev146 → prediction_market_agent_tooling-0.56.2.dev148}/prediction_market_agent_tooling/markets/manifold/manifold.py +0 -0
- {prediction_market_agent_tooling-0.56.2.dev146 → prediction_market_agent_tooling-0.56.2.dev148}/prediction_market_agent_tooling/markets/manifold/utils.py +0 -0
- {prediction_market_agent_tooling-0.56.2.dev146 → prediction_market_agent_tooling-0.56.2.dev148}/prediction_market_agent_tooling/markets/market_fees.py +0 -0
- {prediction_market_agent_tooling-0.56.2.dev146 → prediction_market_agent_tooling-0.56.2.dev148}/prediction_market_agent_tooling/markets/markets.py +0 -0
- {prediction_market_agent_tooling-0.56.2.dev146 → prediction_market_agent_tooling-0.56.2.dev148}/prediction_market_agent_tooling/markets/metaculus/api.py +0 -0
- {prediction_market_agent_tooling-0.56.2.dev146 → prediction_market_agent_tooling-0.56.2.dev148}/prediction_market_agent_tooling/markets/metaculus/data_models.py +0 -0
- {prediction_market_agent_tooling-0.56.2.dev146 → prediction_market_agent_tooling-0.56.2.dev148}/prediction_market_agent_tooling/markets/metaculus/metaculus.py +0 -0
- {prediction_market_agent_tooling-0.56.2.dev146 → prediction_market_agent_tooling-0.56.2.dev148}/prediction_market_agent_tooling/markets/omen/__init__.py +0 -0
- {prediction_market_agent_tooling-0.56.2.dev146 → prediction_market_agent_tooling-0.56.2.dev148}/prediction_market_agent_tooling/markets/omen/data_models.py +0 -0
- {prediction_market_agent_tooling-0.56.2.dev146 → prediction_market_agent_tooling-0.56.2.dev148}/prediction_market_agent_tooling/markets/omen/omen.py +0 -0
- {prediction_market_agent_tooling-0.56.2.dev146 → prediction_market_agent_tooling-0.56.2.dev148}/prediction_market_agent_tooling/markets/omen/omen_contracts.py +0 -0
- {prediction_market_agent_tooling-0.56.2.dev146 → prediction_market_agent_tooling-0.56.2.dev148}/prediction_market_agent_tooling/markets/omen/omen_resolving.py +0 -0
- {prediction_market_agent_tooling-0.56.2.dev146 → prediction_market_agent_tooling-0.56.2.dev148}/prediction_market_agent_tooling/markets/omen/omen_subgraph_handler.py +0 -0
- {prediction_market_agent_tooling-0.56.2.dev146 → prediction_market_agent_tooling-0.56.2.dev148}/prediction_market_agent_tooling/markets/polymarket/api.py +0 -0
- {prediction_market_agent_tooling-0.56.2.dev146 → prediction_market_agent_tooling-0.56.2.dev148}/prediction_market_agent_tooling/markets/polymarket/data_models.py +0 -0
- {prediction_market_agent_tooling-0.56.2.dev146 → prediction_market_agent_tooling-0.56.2.dev148}/prediction_market_agent_tooling/markets/polymarket/data_models_web.py +0 -0
- {prediction_market_agent_tooling-0.56.2.dev146 → prediction_market_agent_tooling-0.56.2.dev148}/prediction_market_agent_tooling/markets/polymarket/polymarket.py +0 -0
- {prediction_market_agent_tooling-0.56.2.dev146 → prediction_market_agent_tooling-0.56.2.dev148}/prediction_market_agent_tooling/markets/polymarket/utils.py +0 -0
- {prediction_market_agent_tooling-0.56.2.dev146 → prediction_market_agent_tooling-0.56.2.dev148}/prediction_market_agent_tooling/markets/seer/data_models.py +0 -0
- {prediction_market_agent_tooling-0.56.2.dev146 → prediction_market_agent_tooling-0.56.2.dev148}/prediction_market_agent_tooling/markets/seer/seer_subgraph_handler.py +0 -0
- {prediction_market_agent_tooling-0.56.2.dev146 → prediction_market_agent_tooling-0.56.2.dev148}/prediction_market_agent_tooling/monitor/markets/manifold.py +0 -0
- {prediction_market_agent_tooling-0.56.2.dev146 → prediction_market_agent_tooling-0.56.2.dev148}/prediction_market_agent_tooling/monitor/markets/metaculus.py +0 -0
- {prediction_market_agent_tooling-0.56.2.dev146 → prediction_market_agent_tooling-0.56.2.dev148}/prediction_market_agent_tooling/monitor/markets/omen.py +0 -0
- {prediction_market_agent_tooling-0.56.2.dev146 → prediction_market_agent_tooling-0.56.2.dev148}/prediction_market_agent_tooling/monitor/markets/polymarket.py +0 -0
- {prediction_market_agent_tooling-0.56.2.dev146 → prediction_market_agent_tooling-0.56.2.dev148}/prediction_market_agent_tooling/monitor/monitor.py +0 -0
- {prediction_market_agent_tooling-0.56.2.dev146 → prediction_market_agent_tooling-0.56.2.dev148}/prediction_market_agent_tooling/monitor/monitor_app.py +0 -0
- {prediction_market_agent_tooling-0.56.2.dev146 → prediction_market_agent_tooling-0.56.2.dev148}/prediction_market_agent_tooling/monitor/monitor_settings.py +0 -0
- {prediction_market_agent_tooling-0.56.2.dev146 → prediction_market_agent_tooling-0.56.2.dev148}/prediction_market_agent_tooling/py.typed +0 -0
- {prediction_market_agent_tooling-0.56.2.dev146 → prediction_market_agent_tooling-0.56.2.dev148}/prediction_market_agent_tooling/tools/balances.py +0 -0
- {prediction_market_agent_tooling-0.56.2.dev146 → prediction_market_agent_tooling-0.56.2.dev148}/prediction_market_agent_tooling/tools/betting_strategies/kelly_criterion.py +0 -0
- {prediction_market_agent_tooling-0.56.2.dev146 → prediction_market_agent_tooling-0.56.2.dev148}/prediction_market_agent_tooling/tools/betting_strategies/market_moving.py +0 -0
- {prediction_market_agent_tooling-0.56.2.dev146 → prediction_market_agent_tooling-0.56.2.dev148}/prediction_market_agent_tooling/tools/betting_strategies/minimum_bet_to_win.py +0 -0
- {prediction_market_agent_tooling-0.56.2.dev146 → prediction_market_agent_tooling-0.56.2.dev148}/prediction_market_agent_tooling/tools/betting_strategies/stretch_bet_between.py +0 -0
- {prediction_market_agent_tooling-0.56.2.dev146 → prediction_market_agent_tooling-0.56.2.dev148}/prediction_market_agent_tooling/tools/betting_strategies/utils.py +0 -0
- {prediction_market_agent_tooling-0.56.2.dev146 → prediction_market_agent_tooling-0.56.2.dev148}/prediction_market_agent_tooling/tools/caches/inmemory_cache.py +0 -0
- {prediction_market_agent_tooling-0.56.2.dev146 → prediction_market_agent_tooling-0.56.2.dev148}/prediction_market_agent_tooling/tools/contract.py +0 -0
- {prediction_market_agent_tooling-0.56.2.dev146 → prediction_market_agent_tooling-0.56.2.dev148}/prediction_market_agent_tooling/tools/costs.py +0 -0
- {prediction_market_agent_tooling-0.56.2.dev146 → prediction_market_agent_tooling-0.56.2.dev148}/prediction_market_agent_tooling/tools/datetime_utc.py +0 -0
- {prediction_market_agent_tooling-0.56.2.dev146 → prediction_market_agent_tooling-0.56.2.dev148}/prediction_market_agent_tooling/tools/gnosis_rpc.py +0 -0
- {prediction_market_agent_tooling-0.56.2.dev146 → prediction_market_agent_tooling-0.56.2.dev148}/prediction_market_agent_tooling/tools/google.py +0 -0
- {prediction_market_agent_tooling-0.56.2.dev146 → prediction_market_agent_tooling-0.56.2.dev148}/prediction_market_agent_tooling/tools/hexbytes_custom.py +0 -0
- {prediction_market_agent_tooling-0.56.2.dev146 → prediction_market_agent_tooling-0.56.2.dev148}/prediction_market_agent_tooling/tools/httpx_cached_client.py +0 -0
- {prediction_market_agent_tooling-0.56.2.dev146 → prediction_market_agent_tooling-0.56.2.dev148}/prediction_market_agent_tooling/tools/image_gen/image_gen.py +0 -0
- {prediction_market_agent_tooling-0.56.2.dev146 → prediction_market_agent_tooling-0.56.2.dev148}/prediction_market_agent_tooling/tools/image_gen/market_thumbnail_gen.py +0 -0
- {prediction_market_agent_tooling-0.56.2.dev146 → prediction_market_agent_tooling-0.56.2.dev148}/prediction_market_agent_tooling/tools/ipfs/ipfs_handler.py +0 -0
- {prediction_market_agent_tooling-0.56.2.dev146 → prediction_market_agent_tooling-0.56.2.dev148}/prediction_market_agent_tooling/tools/is_invalid.py +0 -0
- {prediction_market_agent_tooling-0.56.2.dev146 → prediction_market_agent_tooling-0.56.2.dev148}/prediction_market_agent_tooling/tools/is_predictable.py +0 -0
- {prediction_market_agent_tooling-0.56.2.dev146 → prediction_market_agent_tooling-0.56.2.dev148}/prediction_market_agent_tooling/tools/langfuse_.py +0 -0
- {prediction_market_agent_tooling-0.56.2.dev146 → prediction_market_agent_tooling-0.56.2.dev148}/prediction_market_agent_tooling/tools/langfuse_client_utils.py +0 -0
- {prediction_market_agent_tooling-0.56.2.dev146 → prediction_market_agent_tooling-0.56.2.dev148}/prediction_market_agent_tooling/tools/omen/reality_accuracy.py +0 -0
- {prediction_market_agent_tooling-0.56.2.dev146 → prediction_market_agent_tooling-0.56.2.dev148}/prediction_market_agent_tooling/tools/parallelism.py +0 -0
- {prediction_market_agent_tooling-0.56.2.dev146 → prediction_market_agent_tooling-0.56.2.dev148}/prediction_market_agent_tooling/tools/relevant_news_analysis/data_models.py +0 -0
- {prediction_market_agent_tooling-0.56.2.dev146 → prediction_market_agent_tooling-0.56.2.dev148}/prediction_market_agent_tooling/tools/relevant_news_analysis/relevant_news_analysis.py +0 -0
- {prediction_market_agent_tooling-0.56.2.dev146 → prediction_market_agent_tooling-0.56.2.dev148}/prediction_market_agent_tooling/tools/safe.py +0 -0
- {prediction_market_agent_tooling-0.56.2.dev146 → prediction_market_agent_tooling-0.56.2.dev148}/prediction_market_agent_tooling/tools/singleton.py +0 -0
- {prediction_market_agent_tooling-0.56.2.dev146 → prediction_market_agent_tooling-0.56.2.dev148}/prediction_market_agent_tooling/tools/streamlit_user_login.py +0 -0
- {prediction_market_agent_tooling-0.56.2.dev146 → prediction_market_agent_tooling-0.56.2.dev148}/prediction_market_agent_tooling/tools/tavily/tavily_models.py +0 -0
- {prediction_market_agent_tooling-0.56.2.dev146 → prediction_market_agent_tooling-0.56.2.dev148}/prediction_market_agent_tooling/tools/tavily/tavily_search.py +0 -0
- {prediction_market_agent_tooling-0.56.2.dev146 → prediction_market_agent_tooling-0.56.2.dev148}/prediction_market_agent_tooling/tools/utils.py +0 -0
- {prediction_market_agent_tooling-0.56.2.dev146 → prediction_market_agent_tooling-0.56.2.dev148}/prediction_market_agent_tooling/tools/web3_utils.py +0 -0
@@ -22,7 +22,6 @@ from sqlmodel import Field, Session, SQLModel, create_engine, desc, select
|
|
22
22
|
from prediction_market_agent_tooling.config import APIKeys
|
23
23
|
from prediction_market_agent_tooling.loggers import logger
|
24
24
|
from prediction_market_agent_tooling.tools.datetime_utc import DatetimeUTC
|
25
|
-
from prediction_market_agent_tooling.tools.pickle_utils import InitialiseNonPickable
|
26
25
|
from prediction_market_agent_tooling.tools.utils import utcnow
|
27
26
|
|
28
27
|
FunctionT = TypeVar("FunctionT", bound=Callable[..., Any])
|
@@ -91,17 +90,6 @@ def db_cache(
|
|
91
90
|
return decorator
|
92
91
|
|
93
92
|
api_keys = api_keys if api_keys is not None else APIKeys()
|
94
|
-
wrapped_engine = InitialiseNonPickable(
|
95
|
-
lambda: create_engine(
|
96
|
-
api_keys.sqlalchemy_db_url.get_secret_value(),
|
97
|
-
# Use custom json serializer and deserializer, because otherwise, for example `datetime` serialization would fail.
|
98
|
-
json_serializer=json_serializer,
|
99
|
-
json_deserializer=json_deserializer,
|
100
|
-
)
|
101
|
-
)
|
102
|
-
|
103
|
-
if api_keys.ENABLE_CACHE:
|
104
|
-
SQLModel.metadata.create_all(wrapped_engine.get_value())
|
105
93
|
|
106
94
|
@wraps(func)
|
107
95
|
def wrapper(*args: Any, **kwargs: Any) -> Any:
|
@@ -109,7 +97,14 @@ def db_cache(
|
|
109
97
|
if not api_keys.ENABLE_CACHE:
|
110
98
|
return func(*args, **kwargs)
|
111
99
|
|
112
|
-
engine =
|
100
|
+
engine = create_engine(
|
101
|
+
api_keys.sqlalchemy_db_url.get_secret_value(),
|
102
|
+
# Use custom json serializer and deserializer, because otherwise, for example `datetime` serialization would fail.
|
103
|
+
json_serializer=json_serializer,
|
104
|
+
json_deserializer=json_deserializer,
|
105
|
+
pool_size=1,
|
106
|
+
)
|
107
|
+
SQLModel.metadata.create_all(engine)
|
113
108
|
|
114
109
|
# Convert *args and **kwargs to a single dictionary, where we have names for arguments passed as args as well.
|
115
110
|
signature = inspect.signature(func)
|
@@ -213,6 +208,7 @@ def db_cache(
|
|
213
208
|
session.add(cache_entry)
|
214
209
|
session.commit()
|
215
210
|
|
211
|
+
engine.dispose()
|
216
212
|
return computed_result
|
217
213
|
|
218
214
|
return cast(FunctionT, wrapper)
|
@@ -25,9 +25,12 @@ class RelevantNewsCacheModel(SQLModel, table=True):
|
|
25
25
|
class RelevantNewsResponseCache:
|
26
26
|
def __init__(self, sqlalchemy_db_url: str | None = None):
|
27
27
|
self.engine = create_engine(
|
28
|
-
|
29
|
-
|
30
|
-
|
28
|
+
(
|
29
|
+
sqlalchemy_db_url
|
30
|
+
if sqlalchemy_db_url
|
31
|
+
else APIKeys().sqlalchemy_db_url.get_secret_value()
|
32
|
+
),
|
33
|
+
pool_size=1,
|
31
34
|
)
|
32
35
|
self._initialize_db()
|
33
36
|
|
prediction_market_agent_tooling-0.56.2.dev146/prediction_market_agent_tooling/tools/pickle_utils.py
DELETED
@@ -1,31 +0,0 @@
|
|
1
|
-
import typing as t
|
2
|
-
|
3
|
-
InitialisedValue = t.TypeVar("InitialisedValue")
|
4
|
-
|
5
|
-
|
6
|
-
class InitialiseNonPickable(t.Generic[InitialisedValue]):
|
7
|
-
"""
|
8
|
-
Use this class to wrap values that you want to be shared within a thread,
|
9
|
-
but they are re-initialised for a new processes.
|
10
|
-
|
11
|
-
Initialiser for the value still needs to be pickable.
|
12
|
-
"""
|
13
|
-
|
14
|
-
def __init__(self, initialiser: t.Callable[[], InitialisedValue]) -> None:
|
15
|
-
self.value: InitialisedValue | None = None
|
16
|
-
self.initialiser = initialiser
|
17
|
-
|
18
|
-
def __getstate__(self) -> dict[str, t.Any]:
|
19
|
-
# During pickling, always return `value` as just None, which is pickable and this class will re-initialise it in `get_value` when called.
|
20
|
-
return {"value": None, "initialiser": self.initialiser}
|
21
|
-
|
22
|
-
def __setstate__(self, d: dict[str, t.Any]) -> None:
|
23
|
-
self.value = d["value"]
|
24
|
-
self.initialiser = d["initialiser"]
|
25
|
-
|
26
|
-
def get_value(self) -> InitialisedValue:
|
27
|
-
"""Use this function to get the wrapped value, which will be initialised if necessary."""
|
28
|
-
if self.value is None:
|
29
|
-
self.value = self.initialiser()
|
30
|
-
|
31
|
-
return self.value
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|