edsl 0.1.36__py3-none-any.whl → 0.1.36.dev2__py3-none-any.whl
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.
- edsl/Base.py +0 -5
- edsl/__init__.py +0 -1
- edsl/__version__.py +1 -1
- edsl/agents/Agent.py +7 -11
- edsl/agents/InvigilatorBase.py +1 -5
- edsl/agents/PromptConstructor.py +18 -27
- edsl/conversation/Conversation.py +1 -1
- edsl/coop/PriceFetcher.py +18 -14
- edsl/coop/coop.py +8 -42
- edsl/exceptions/coop.py +0 -8
- edsl/inference_services/InferenceServiceABC.py +0 -28
- edsl/inference_services/InferenceServicesCollection.py +4 -10
- edsl/inference_services/models_available_cache.py +1 -25
- edsl/jobs/Jobs.py +167 -190
- edsl/jobs/interviews/Interview.py +14 -42
- edsl/jobs/interviews/InterviewExceptionCollection.py +0 -9
- edsl/jobs/interviews/InterviewExceptionEntry.py +6 -31
- edsl/jobs/runners/JobsRunnerAsyncio.py +13 -8
- edsl/jobs/tasks/TaskHistory.py +7 -23
- edsl/questions/QuestionFunctional.py +3 -7
- edsl/results/Dataset.py +0 -12
- edsl/results/Result.py +0 -2
- edsl/results/Results.py +1 -13
- edsl/scenarios/FileStore.py +5 -20
- edsl/scenarios/Scenario.py +1 -15
- edsl/scenarios/__init__.py +0 -2
- edsl/surveys/Survey.py +0 -3
- edsl/surveys/instructions/Instruction.py +3 -20
- {edsl-0.1.36.dist-info → edsl-0.1.36.dev2.dist-info}/METADATA +1 -1
- {edsl-0.1.36.dist-info → edsl-0.1.36.dev2.dist-info}/RECORD +32 -33
- edsl/data/RemoteCacheSync.py +0 -97
- {edsl-0.1.36.dist-info → edsl-0.1.36.dev2.dist-info}/LICENSE +0 -0
- {edsl-0.1.36.dist-info → edsl-0.1.36.dev2.dist-info}/WHEEL +0 -0
edsl/data/RemoteCacheSync.py
DELETED
@@ -1,97 +0,0 @@
|
|
1
|
-
class RemoteCacheSync:
|
2
|
-
def __init__(
|
3
|
-
self, coop, cache, output_func, remote_cache=True, remote_cache_description=""
|
4
|
-
):
|
5
|
-
self.coop = coop
|
6
|
-
self.cache = cache
|
7
|
-
self._output = output_func
|
8
|
-
self.remote_cache = remote_cache
|
9
|
-
self.old_entry_keys = []
|
10
|
-
self.new_cache_entries = []
|
11
|
-
self.remote_cache_description = remote_cache_description
|
12
|
-
|
13
|
-
def __enter__(self):
|
14
|
-
if self.remote_cache:
|
15
|
-
self._sync_from_remote()
|
16
|
-
self.old_entry_keys = list(self.cache.keys())
|
17
|
-
return self
|
18
|
-
|
19
|
-
def __exit__(self, exc_type, exc_value, traceback):
|
20
|
-
if self.remote_cache:
|
21
|
-
self._sync_to_remote()
|
22
|
-
return False # Propagate exceptions
|
23
|
-
|
24
|
-
def _sync_from_remote(self):
|
25
|
-
cache_difference = self.coop.remote_cache_get_diff(self.cache.keys())
|
26
|
-
client_missing_cacheentries = cache_difference.get(
|
27
|
-
"client_missing_cacheentries", []
|
28
|
-
)
|
29
|
-
missing_entry_count = len(client_missing_cacheentries)
|
30
|
-
|
31
|
-
if missing_entry_count > 0:
|
32
|
-
self._output(
|
33
|
-
f"Updating local cache with {missing_entry_count:,} new "
|
34
|
-
f"{'entry' if missing_entry_count == 1 else 'entries'} from remote..."
|
35
|
-
)
|
36
|
-
self.cache.add_from_dict(
|
37
|
-
{entry.key: entry for entry in client_missing_cacheentries}
|
38
|
-
)
|
39
|
-
self._output("Local cache updated!")
|
40
|
-
else:
|
41
|
-
self._output("No new entries to add to local cache.")
|
42
|
-
|
43
|
-
def _sync_to_remote(self):
|
44
|
-
cache_difference = self.coop.remote_cache_get_diff(self.cache.keys())
|
45
|
-
server_missing_cacheentry_keys = cache_difference.get(
|
46
|
-
"server_missing_cacheentry_keys", []
|
47
|
-
)
|
48
|
-
server_missing_cacheentries = [
|
49
|
-
entry
|
50
|
-
for key in server_missing_cacheentry_keys
|
51
|
-
if (entry := self.cache.data.get(key)) is not None
|
52
|
-
]
|
53
|
-
|
54
|
-
new_cache_entries = [
|
55
|
-
entry
|
56
|
-
for entry in self.cache.values()
|
57
|
-
if entry.key not in self.old_entry_keys
|
58
|
-
]
|
59
|
-
server_missing_cacheentries.extend(new_cache_entries)
|
60
|
-
new_entry_count = len(server_missing_cacheentries)
|
61
|
-
|
62
|
-
if new_entry_count > 0:
|
63
|
-
self._output(
|
64
|
-
f"Updating remote cache with {new_entry_count:,} new "
|
65
|
-
f"{'entry' if new_entry_count == 1 else 'entries'}..."
|
66
|
-
)
|
67
|
-
self.coop.remote_cache_create_many(
|
68
|
-
server_missing_cacheentries,
|
69
|
-
visibility="private",
|
70
|
-
description=self.remote_cache_description,
|
71
|
-
)
|
72
|
-
self._output("Remote cache updated!")
|
73
|
-
else:
|
74
|
-
self._output("No new entries to add to remote cache.")
|
75
|
-
|
76
|
-
self._output(
|
77
|
-
f"There are {len(self.cache.keys()):,} entries in the local cache."
|
78
|
-
)
|
79
|
-
|
80
|
-
|
81
|
-
# # Usage example
|
82
|
-
# def run_job(self, n, progress_bar, cache, stop_on_exception, sidecar_model, print_exceptions, raise_validation_errors, use_remote_cache=True):
|
83
|
-
# with RemoteCacheSync(self.coop, cache, self._output, remote_cache=use_remote_cache):
|
84
|
-
# self._output("Running job...")
|
85
|
-
# results = self._run_local(
|
86
|
-
# n=n,
|
87
|
-
# progress_bar=progress_bar,
|
88
|
-
# cache=cache,
|
89
|
-
# stop_on_exception=stop_on_exception,
|
90
|
-
# sidecar_model=sidecar_model,
|
91
|
-
# print_exceptions=print_exceptions,
|
92
|
-
# raise_validation_errors=raise_validation_errors,
|
93
|
-
# )
|
94
|
-
# self._output("Job completed!")
|
95
|
-
|
96
|
-
# results.cache = cache.new_entries_cache()
|
97
|
-
# return results
|
File without changes
|
File without changes
|