thds.mops 3.9.20250722213952__py3-none-any.whl → 3.9.20250723161622__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.
Potentially problematic release.
This version of thds.mops might be problematic. Click here for more details.
- thds/mops/impure/runner.py +1 -1
- thds/mops/k8s/__init__.py +3 -1
- thds/mops/k8s/{launch.py → _launch.py} +56 -57
- thds/mops/k8s/batching.py +198 -0
- thds/mops/k8s/config.py +1 -1
- thds/mops/k8s/counts.py +28 -0
- thds/mops/k8s/job_future.py +109 -0
- thds/mops/k8s/jobs.py +4 -0
- thds/mops/k8s/logging.py +37 -5
- thds/mops/k8s/uncertain_future.py +160 -0
- thds/mops/k8s/watch.py +120 -62
- thds/mops/pure/__init__.py +2 -1
- thds/mops/pure/_magic/sauce.py +11 -3
- thds/mops/pure/_magic/shims.py +2 -2
- thds/mops/pure/core/deferred_work.py +15 -12
- thds/mops/pure/core/entry/runner_registry.py +1 -10
- thds/mops/pure/core/lock/__init__.py +1 -0
- thds/mops/pure/core/lock/_acquire.py +2 -2
- thds/mops/pure/core/lock/maintain.py +22 -3
- thds/mops/pure/core/lock/write.py +19 -19
- thds/mops/pure/core/memo/__init__.py +1 -1
- thds/mops/pure/core/memo/results.py +5 -4
- thds/mops/pure/core/use_runner.py +21 -7
- thds/mops/pure/pickling/mprunner.py +21 -14
- thds/mops/pure/pickling/pickles.py +19 -8
- thds/mops/pure/pickling/remote.py +3 -1
- thds/mops/pure/runner/get_results.py +106 -0
- thds/mops/pure/runner/local.py +58 -87
- thds/mops/pure/runner/shim_builder.py +7 -7
- thds/mops/pure/runner/simple_shims.py +7 -0
- thds/mops/pure/runner/types.py +15 -4
- thds/mops/pure/tools/summarize/run_summary.py +9 -8
- {thds_mops-3.9.20250722213952.dist-info → thds_mops-3.9.20250723161622.dist-info}/METADATA +1 -1
- {thds_mops-3.9.20250722213952.dist-info → thds_mops-3.9.20250723161622.dist-info}/RECORD +37 -32
- {thds_mops-3.9.20250722213952.dist-info → thds_mops-3.9.20250723161622.dist-info}/WHEEL +0 -0
- {thds_mops-3.9.20250722213952.dist-info → thds_mops-3.9.20250723161622.dist-info}/entry_points.txt +0 -0
- {thds_mops-3.9.20250722213952.dist-info → thds_mops-3.9.20250723161622.dist-info}/top_level.txt +0 -0
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import concurrent.futures
|
|
1
2
|
import subprocess
|
|
2
3
|
from typing import Sequence
|
|
3
4
|
|
|
@@ -19,3 +20,9 @@ def samethread_shim(shim_args: Sequence[str]) -> None:
|
|
|
19
20
|
def subprocess_shim(shim_args: Sequence[str]) -> None:
|
|
20
21
|
logger.debug("Running a mops function locally in a new subprocess.")
|
|
21
22
|
subprocess.check_call(["python", "-m", "thds.mops.pure.core.entry.main", *shim_args])
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
def future_subprocess_shim(shim_args: Sequence[str]) -> concurrent.futures.Future:
|
|
26
|
+
"""Use this if you really want a Future rather than just running the process"""
|
|
27
|
+
logger.debug("Running a mops function in a new subprocess, returning a Future.")
|
|
28
|
+
return concurrent.futures.ProcessPoolExecutor().submit(samethread_shim, shim_args)
|
thds/mops/pure/runner/types.py
CHANGED
|
@@ -1,25 +1,36 @@
|
|
|
1
1
|
import typing as ty
|
|
2
2
|
|
|
3
|
+
from thds.core import futures
|
|
4
|
+
|
|
3
5
|
from ..core.metadata import ResultMetadata
|
|
4
6
|
from ..core.types import Args, F, Kwargs
|
|
5
7
|
|
|
6
|
-
|
|
8
|
+
FutureShim = ty.Callable[[ty.Sequence[str]], futures.PFuture]
|
|
9
|
+
SyncShim = ty.Callable[[ty.Sequence[str]], None]
|
|
10
|
+
Shim = ty.Union[SyncShim, FutureShim]
|
|
7
11
|
"""A runner Shim is a way of getting back into a Python process with enough
|
|
8
12
|
context to download the uploaded function and its arguments from the
|
|
9
13
|
location where a runner placed it, and then invoke the function. All
|
|
10
14
|
arguments are strings because it is assumed that this represents some
|
|
11
15
|
kind of command line invocation.
|
|
12
16
|
|
|
13
|
-
|
|
17
|
+
A SyncShim must be a blocking call, and its result(s) must be available
|
|
14
18
|
immediately after its return.
|
|
19
|
+
A FutureShim must return a Future (with an 'add_done_callback' method)
|
|
20
|
+
that, when resolved, means that the result(s) are available.
|
|
15
21
|
"""
|
|
16
22
|
|
|
23
|
+
S = ty.TypeVar("S", SyncShim, FutureShim, Shim, covariant=True)
|
|
24
|
+
|
|
17
25
|
|
|
18
|
-
class ShimBuilder(ty.Protocol):
|
|
19
|
-
def __call__(self, __f:
|
|
26
|
+
class ShimBuilder(ty.Protocol, ty.Generic[S]):
|
|
27
|
+
def __call__(self, __f: ty.Callable, __args: Args, __kwargs: Kwargs) -> S:
|
|
20
28
|
... # pragma: no cover
|
|
21
29
|
|
|
22
30
|
|
|
31
|
+
SyncShimBuilder = ShimBuilder[SyncShim]
|
|
32
|
+
FutureShimBuilder = ShimBuilder[FutureShim]
|
|
33
|
+
|
|
23
34
|
StorageRootURI = str
|
|
24
35
|
SerializeArgsKwargs = ty.Callable[[StorageRootURI, F, Args, Kwargs], bytes]
|
|
25
36
|
SerializeInvocation = ty.Callable[[StorageRootURI, F, bytes], bytes]
|
|
@@ -78,7 +78,7 @@ def _generate_log_filename(
|
|
|
78
78
|
return run_directory / filename
|
|
79
79
|
|
|
80
80
|
|
|
81
|
-
def
|
|
81
|
+
def extract_source_uris(obj: ty.Any) -> ty.Set[str]:
|
|
82
82
|
uris: ty.Set[str] = set()
|
|
83
83
|
|
|
84
84
|
def extract_uri(unknown: ty.Any) -> None:
|
|
@@ -94,15 +94,16 @@ def _extract_source_uris(result: ty.Any) -> ty.Set[str]:
|
|
|
94
94
|
material = unknown.material
|
|
95
95
|
if callable(material):
|
|
96
96
|
mat = material()
|
|
97
|
-
|
|
97
|
+
# recurse!
|
|
98
|
+
for uri in extract_source_uris(mat):
|
|
98
99
|
uris.add(uri)
|
|
99
100
|
|
|
100
101
|
try:
|
|
101
|
-
pickle_visit.recursive_visit(extract_uri,
|
|
102
|
+
pickle_visit.recursive_visit(extract_uri, obj)
|
|
102
103
|
except pickle.PicklingError:
|
|
103
104
|
pass
|
|
104
105
|
except Exception as exc:
|
|
105
|
-
logger.warning(f'Unexpected error trying to extract URIs from "%s"; {exc}',
|
|
106
|
+
logger.warning(f'Unexpected error trying to extract URIs from "%s"; {exc}', obj)
|
|
106
107
|
|
|
107
108
|
return uris
|
|
108
109
|
|
|
@@ -115,7 +116,7 @@ def log_function_execution(
|
|
|
115
116
|
runner_prefix: str = "",
|
|
116
117
|
was_error: bool = False,
|
|
117
118
|
return_value: ty.Any = None,
|
|
118
|
-
|
|
119
|
+
args_kwargs_uris: ty.Collection[str] = (),
|
|
119
120
|
) -> None:
|
|
120
121
|
if not run_directory:
|
|
121
122
|
logger.debug("Not writing function summary for %s", memo_uri)
|
|
@@ -145,9 +146,9 @@ def log_function_execution(
|
|
|
145
146
|
log_entry["remote_code_version"] = metadata.remote_code_version
|
|
146
147
|
# we don't bother with invoked_at or remote_started_at because they can be
|
|
147
148
|
# inferred from the timestamp and the wall times
|
|
148
|
-
if
|
|
149
|
-
log_entry["uris_in_args_kwargs"] = sorted(
|
|
150
|
-
if source_uris :=
|
|
149
|
+
if args_kwargs_uris:
|
|
150
|
+
log_entry["uris_in_args_kwargs"] = sorted(args_kwargs_uris)
|
|
151
|
+
if source_uris := extract_source_uris(return_value):
|
|
151
152
|
log_entry["uris_in_rvalue"] = sorted(source_uris)
|
|
152
153
|
|
|
153
154
|
try:
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: thds.mops
|
|
3
|
-
Version: 3.9.
|
|
3
|
+
Version: 3.9.20250723161622
|
|
4
4
|
Summary: ML Ops tools for Trilliant Health
|
|
5
5
|
Author-email: Trilliant Health <info@trillianthealth.com>
|
|
6
6
|
Project-URL: Repository, https://github.com/TrilliantHealth/ds-monorepo
|
|
@@ -14,37 +14,41 @@ thds/mops/_utils/once.py,sha256=_LHkPbMJO4nqp0RIDj8VgIV3JoZYSQYKGdatdnT-19s,946
|
|
|
14
14
|
thds/mops/_utils/temp.py,sha256=pcHkqIPghPfcZcwAFjCIzLfUWdIgXD3XC8Au1dk5l1k,948
|
|
15
15
|
thds/mops/impure/__init__.py,sha256=VnrHPVgbOYUjkrVnnVicvNV39G6K6ENcWtCuV-BedW4,83
|
|
16
16
|
thds/mops/impure/keyfunc.py,sha256=-THL-GPa6j1zjiHBONkiFzKHuOvE_kGdIVtz0nG4Mp8,524
|
|
17
|
-
thds/mops/impure/runner.py,sha256=
|
|
18
|
-
thds/mops/k8s/__init__.py,sha256=
|
|
17
|
+
thds/mops/impure/runner.py,sha256=UI1NZWMZ_5TQHfFKLnoiSm2zDR3zCunTKFmJoybkyCo,2840
|
|
18
|
+
thds/mops/k8s/__init__.py,sha256=zl4GVcCFRvPscyo6gvv5Lx0OKB7d3QjtVFjYurnxMuE,764
|
|
19
|
+
thds/mops/k8s/_launch.py,sha256=n4a3v6JNjcShFlBgRyL6JdS9My0ApggsjurtZFuKOnk,10893
|
|
19
20
|
thds/mops/k8s/_shared.py,sha256=MR-s6ijWUHZGjxK_fsOpHuRDB6kuofjo5xiIb7ul2VM,86
|
|
20
21
|
thds/mops/k8s/apply_yaml.py,sha256=hVW6dIVbNdzHdbGlc2VAPGkdByv_rH2oPybyIm7tKIM,820
|
|
21
22
|
thds/mops/k8s/auth.py,sha256=mXFPZvyJYEPASsBatv1r8syB9AoayuHGptHHnNUg8LE,1517
|
|
22
|
-
thds/mops/k8s/
|
|
23
|
+
thds/mops/k8s/batching.py,sha256=VJw6DhdhklOSu-iUW6r_BpAP7Jx62uoKV2Bpy0V9U_Q,8266
|
|
24
|
+
thds/mops/k8s/config.py,sha256=_znocX5BW8kfG_Cbq6f3apx5FqSihD7Tmic-SBkVjMQ,2992
|
|
23
25
|
thds/mops/k8s/container_registry.py,sha256=qOiGCE4t_tLYgJDGrhKV9KNv48lF_AlwCDHyFgucd2s,539
|
|
24
|
-
thds/mops/k8s/
|
|
25
|
-
thds/mops/k8s/
|
|
26
|
-
thds/mops/k8s/
|
|
26
|
+
thds/mops/k8s/counts.py,sha256=W_gfXScvrEFskPFU9dEkI7V1I5ExXm9t_bUwO52lwtc,580
|
|
27
|
+
thds/mops/k8s/job_future.py,sha256=_wsH5Lh9qdcGqLZsvXYz8vAFgpV_nMYZ5d8dIFJA-eQ,3933
|
|
28
|
+
thds/mops/k8s/jobs.py,sha256=KcHxlPRukubRp_ddOm0tAX4COs7Ppv0mjbEdv4SAjmM,3359
|
|
29
|
+
thds/mops/k8s/logging.py,sha256=m_3Tn0XAFhUHdEicqRKnMzdK_hvSTCB7hsP1mIilKC4,10940
|
|
27
30
|
thds/mops/k8s/namespace.py,sha256=Z6trVTU9WFashto4PqIhTcxu-foOF93W0TpgqCU7WIA,383
|
|
28
31
|
thds/mops/k8s/node_selection.py,sha256=Gy2Jz8IxZblg2LmtGg8-MtKI4RmXz2AMXqFPP8OQyu0,2065
|
|
29
32
|
thds/mops/k8s/retry.py,sha256=JVfP304kItpLs5nrONHE5UWkVWlrFGlV_oFQqhq3zHg,2846
|
|
30
33
|
thds/mops/k8s/too_old_resource_version.py,sha256=S7ltVA-LrxUpQ8Q__AB0nQmezN8Mmnx5oKK62_baAKI,1500
|
|
34
|
+
thds/mops/k8s/uncertain_future.py,sha256=60v9yVlhnCDN_yUv8l4Z4KafR4TsTGxN7dprkGI8pQQ,7152
|
|
31
35
|
thds/mops/k8s/wait_job.py,sha256=_X5lSn-3CE4V-_ra0kF1WtxkAiOgqSom8mU1-0hhMio,2445
|
|
32
36
|
thds/mops/k8s/warn_image_backoff.py,sha256=ls_zLSnRbJjO4ICjq1Rk21EXh190l2dT6nKg-PT8Das,1934
|
|
33
|
-
thds/mops/k8s/watch.py,sha256=
|
|
37
|
+
thds/mops/k8s/watch.py,sha256=iU3sgWEVyjNgVN9HObMoHoQyT8YPrApn4XZlE0sZcLA,14028
|
|
34
38
|
thds/mops/k8s/tools/krsync.py,sha256=us7pXX0-bRMwD2oAno7Z6BJcPs6FgaUabHW0STyQJYg,1773
|
|
35
39
|
thds/mops/k8s/tools/krsync.sh,sha256=fWgwkdzWnJeTbzEA_uBiIIi-bNU4nXAYj3dNovyRluU,747
|
|
36
|
-
thds/mops/pure/__init__.py,sha256=
|
|
40
|
+
thds/mops/pure/__init__.py,sha256=3xLimQ2JWdeq1YgPs7bPwlwOspzPRwaR2w2KX7vfJU0,1624
|
|
37
41
|
thds/mops/pure/_magic/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
38
42
|
thds/mops/pure/_magic/api.py,sha256=kSlediIZQYsmeHB8plP6osjvUuSEVW4NWdY9ADia12Y,5094
|
|
39
|
-
thds/mops/pure/_magic/sauce.py,sha256=
|
|
40
|
-
thds/mops/pure/_magic/shims.py,sha256=
|
|
43
|
+
thds/mops/pure/_magic/sauce.py,sha256=xLaseOhoGgntmz6nZdj2te85sOaOiWExBLMGdeNmKsI,6870
|
|
44
|
+
thds/mops/pure/_magic/shims.py,sha256=CXN8wlHv039oKRzDtp5YFDlwGXmmaheWLCi2I95gSeM,1212
|
|
41
45
|
thds/mops/pure/adls/__init__.py,sha256=fw67xxwnizBurScMa-_zWb94lo5gamEVRt27V4bR0jc,54
|
|
42
46
|
thds/mops/pure/adls/_files.py,sha256=9m35Y4elWF0DjgAXVp4oi5CaY6fXWt8n67PilWxWJns,821
|
|
43
47
|
thds/mops/pure/adls/blob_store.py,sha256=ZWr7CKKcI-jz1sWZq4Jwq6LYkhFNxp-EFnNh83EJd84,7374
|
|
44
48
|
thds/mops/pure/adls/output_fqn.py,sha256=qnwdubjVwKShzZ5RruD0_85x86DtPwZNSgwADrdhrTs,748
|
|
45
49
|
thds/mops/pure/core/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
46
50
|
thds/mops/pure/core/content_addressed.py,sha256=RaCPvtM7bf0NnY5lNR5jPcNn2Moh-bmLtC4zOvdWjCU,1202
|
|
47
|
-
thds/mops/pure/core/deferred_work.py,sha256=
|
|
51
|
+
thds/mops/pure/core/deferred_work.py,sha256=zN-iRJj2lUB83SrxOC0JLhfkSWA6qIc1cvSScfkWKOM,3756
|
|
48
52
|
thds/mops/pure/core/file_blob_store.py,sha256=N4m4LLrBZaqTJFR4D_eYl03a-n6yQBRsv0ID1bOS9TA,4298
|
|
49
53
|
thds/mops/pure/core/metadata.py,sha256=xAL2iz0pXrcKapmYnNrqSZ8nH2GVakA167NSpAfwiCI,8276
|
|
50
54
|
thds/mops/pure/core/output_naming.py,sha256=ntufOVNJiVPiUM-Azl9mFpDFhIxiB-V2je9dv9AUQhg,2283
|
|
@@ -57,25 +61,25 @@ thds/mops/pure/core/serialize_paths.py,sha256=bWI-AKNP_Tf29JGO7DKqshOh7b7gu51lfG
|
|
|
57
61
|
thds/mops/pure/core/source.py,sha256=b0i58gE13e25lIV6ls1yPKH67SQ7aCuZmKDEHNr9Ux4,14682
|
|
58
62
|
thds/mops/pure/core/types.py,sha256=w2g83miGhnjaWr2_4TW2Fc3BdIgoIHFbIr_wX1HC7A0,5452
|
|
59
63
|
thds/mops/pure/core/uris.py,sha256=qO9_f-ro7kax6haNOPTPe81-_aUSRFELeeZH4PMTTU4,2694
|
|
60
|
-
thds/mops/pure/core/use_runner.py,sha256=
|
|
64
|
+
thds/mops/pure/core/use_runner.py,sha256=m1Mu1XDr3xRf_u_VSiHfTG4TH6fnSg0IqwmtbLKG_oc,2103
|
|
61
65
|
thds/mops/pure/core/entry/__init__.py,sha256=kiDcsj16CwjRSexOZW-4h4b4tDCYIS_eLS5wgu2yIlk,151
|
|
62
66
|
thds/mops/pure/core/entry/main.py,sha256=b1F5lFDK_hnpvW3bqzt5MWDcpKvCXZpWdEHI8zroC4k,2061
|
|
63
67
|
thds/mops/pure/core/entry/route_result.py,sha256=2LcS9M2mYtu56kso0YcMEZbR1mbTWZm0hFlbE2yaf4k,2741
|
|
64
|
-
thds/mops/pure/core/entry/runner_registry.py,sha256=
|
|
65
|
-
thds/mops/pure/core/lock/__init__.py,sha256=
|
|
66
|
-
thds/mops/pure/core/lock/_acquire.py,sha256=
|
|
68
|
+
thds/mops/pure/core/entry/runner_registry.py,sha256=aPDCML7gM_zP6NfPnqx0_Q1oRHzgdaCa_XzYc5VIw7U,601
|
|
69
|
+
thds/mops/pure/core/lock/__init__.py,sha256=Fq5Fa9DGFcADFxfyFckSl1mYX7p8DAemjMKH9PMpb-s,240
|
|
70
|
+
thds/mops/pure/core/lock/_acquire.py,sha256=O__mQCUQy0mx-JGNgQjbaSPbfCOXkaiJealYt2Av7Cg,9079
|
|
67
71
|
thds/mops/pure/core/lock/_funcs.py,sha256=j4g8yVWnrAMPDKqLlq8nTnccM1KHSJ3g71L1iWNbV2Q,969
|
|
68
72
|
thds/mops/pure/core/lock/cli.py,sha256=uidtmgHB2y5LDkj7SQTncy_cNe1EfIseuiJPV9kcxBU,2488
|
|
69
|
-
thds/mops/pure/core/lock/maintain.py,sha256=
|
|
73
|
+
thds/mops/pure/core/lock/maintain.py,sha256=5IUQFAU96p46nNt6SMwTAlB2e0HGHJj8n7kqeRxb26M,5767
|
|
70
74
|
thds/mops/pure/core/lock/read.py,sha256=Ct5eYMlkTlEaV5Yhw6HWsDD7VrgdhDZoI6AVIQ0ts-4,1255
|
|
71
75
|
thds/mops/pure/core/lock/types.py,sha256=f32t_e2svMOXUVzcnLkEizw6Q47g3HPQsyAkGT2OKMs,993
|
|
72
|
-
thds/mops/pure/core/lock/write.py,sha256=
|
|
73
|
-
thds/mops/pure/core/memo/__init__.py,sha256=
|
|
76
|
+
thds/mops/pure/core/lock/write.py,sha256=yuF2zRAzgYOmnet1GXZHwYT7oT1znVB3SPK1_j7orFA,5556
|
|
77
|
+
thds/mops/pure/core/memo/__init__.py,sha256=k64vX3XazDkP0m8MZgwqt0BV4vXg-ojK1EDhymucnuo,286
|
|
74
78
|
thds/mops/pure/core/memo/calls.py,sha256=kvm6kn-CbOLxZuo86BvzEJw69p7VlEJ8_mCiWd6uz-g,3631
|
|
75
79
|
thds/mops/pure/core/memo/function_memospace.py,sha256=PlQCs7dZ2Fu3gIjfzJMeOy7R5zPqYQDBp7OuViLqrpc,11644
|
|
76
80
|
thds/mops/pure/core/memo/keyfunc.py,sha256=FAOEDzMcQ-0JvW4j1eaUzixnemo_373V-16kWZl7_i0,2053
|
|
77
81
|
thds/mops/pure/core/memo/overwrite_params.py,sha256=ltuFxhr8gNo2iBoBz2eFPayjSV23gMdBuoLZD42lIAg,2425
|
|
78
|
-
thds/mops/pure/core/memo/results.py,sha256=
|
|
82
|
+
thds/mops/pure/core/memo/results.py,sha256=hEgwlNXRIzihjUMgrlKeHAXDDBmp7y6vQyemzc47hgY,3202
|
|
79
83
|
thds/mops/pure/core/memo/unique_name_for_function.py,sha256=NGuBmK9c-UdgQP27I-WLMRlCMWJmPSdMymRm14mT1K0,2331
|
|
80
84
|
thds/mops/pure/joblib/__init__.py,sha256=-3hSs-GsNzE_eNnwrdZBHAR_eaub5Uyl5GPYqBwEEPo,58
|
|
81
85
|
thds/mops/pure/joblib/backend.py,sha256=F__6lrdc1-VcX4n4Pw7Lz1bBgeefShtRy2DQh6Fp-eI,2671
|
|
@@ -83,16 +87,17 @@ thds/mops/pure/joblib/batching.py,sha256=tPOATD28-YW7KcWa3IqKm-fhLaILzM792ApvU-_
|
|
|
83
87
|
thds/mops/pure/pickling/__init__.py,sha256=WNdG8PdJCk-kYaXkvvPa--hjYGoUlBXG3w2X86yuhGo,156
|
|
84
88
|
thds/mops/pure/pickling/_pickle.py,sha256=YB8xbqDiwdk8ccnVZ2_4kQn98V2JSrFqw2E3J-jEHlA,8081
|
|
85
89
|
thds/mops/pure/pickling/memoize_only.py,sha256=oI5CMy6IEJc46Gb_BGWNUuAe3fysS7HxRSTajN0WssI,837
|
|
86
|
-
thds/mops/pure/pickling/mprunner.py,sha256=
|
|
87
|
-
thds/mops/pure/pickling/pickles.py,sha256=
|
|
88
|
-
thds/mops/pure/pickling/remote.py,sha256=
|
|
90
|
+
thds/mops/pure/pickling/mprunner.py,sha256=vabdHIVteddkU5ncOq73wWC7-naChW_3_vvAQArvjqU,8814
|
|
91
|
+
thds/mops/pure/pickling/pickles.py,sha256=CSlnjLssE0Ad8YzqyaKqWCSNyW5LiMFKiXO6hWAZmvU,5097
|
|
92
|
+
thds/mops/pure/pickling/remote.py,sha256=l4bIDc7jg7923IFKBeJE3oJYCN4OeT5tmtAg1eS_k7c,6011
|
|
89
93
|
thds/mops/pure/pickling/sha256_b64.py,sha256=HL0cPixHPZYuZDVDBscxsnI-3a2amWEfw-LseOX-PyY,2916
|
|
90
94
|
thds/mops/pure/runner/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
91
|
-
thds/mops/pure/runner/
|
|
92
|
-
thds/mops/pure/runner/
|
|
93
|
-
thds/mops/pure/runner/
|
|
95
|
+
thds/mops/pure/runner/get_results.py,sha256=1K6qf_Vg2YfUPfUuu103WyYsfS3e_ju6W7Z_PV01-pU,4053
|
|
96
|
+
thds/mops/pure/runner/local.py,sha256=tTRQcglYdf4PC7-smkqJAi-u2BQYR61g21gwrBIcEyY,10406
|
|
97
|
+
thds/mops/pure/runner/shim_builder.py,sha256=obs2-NipAB8w0NR8o90UQX_bmHYS69c-raL2JPw8yM4,821
|
|
98
|
+
thds/mops/pure/runner/simple_shims.py,sha256=r-kLmpSCwzjfzF-Ku43YKvrHMLpZR5jDmweo4Vk07O4,1069
|
|
94
99
|
thds/mops/pure/runner/strings.py,sha256=PYAYMxZ2ehgahKIBXJilENNE6OrdNkueNBel8LPsoh8,26
|
|
95
|
-
thds/mops/pure/runner/types.py,sha256=
|
|
100
|
+
thds/mops/pure/runner/types.py,sha256=fEpZyLYd1mtM1lRX_1MANpbttnJge0Z1zNqC8tAAxnw,1566
|
|
96
101
|
thds/mops/pure/tools/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
97
102
|
thds/mops/pure/tools/_pickle_dis.py,sha256=EyLgWP_dRzz1HIabGRTEGZFT_LZV5gmn4asJyFUAt4Y,6312
|
|
98
103
|
thds/mops/pure/tools/history.py,sha256=dB7C2jq-0P3Fnv5Q3nzEkLehXdX0kaZZrGl1U1ns9DU,1048
|
|
@@ -101,11 +106,11 @@ thds/mops/pure/tools/sha256_b64_addressed.py,sha256=SECAiw3xSqpsrBBZix0MgJRTQrbH
|
|
|
101
106
|
thds/mops/pure/tools/stress.py,sha256=N7C8kLpaGbImeEYlT5jsEl1metvsUu8cnfyQ8vFN0H8,2541
|
|
102
107
|
thds/mops/pure/tools/summarize/__init__.py,sha256=MSmt_5Xg84uHqzTN38JwgseJK8rsJn_11A8WD99VtEo,61
|
|
103
108
|
thds/mops/pure/tools/summarize/cli.py,sha256=7kDtn24ok8oBO3jFjlMmOK3jnZYpMoE_5Y8fmDH8Imc,11524
|
|
104
|
-
thds/mops/pure/tools/summarize/run_summary.py,sha256=
|
|
109
|
+
thds/mops/pure/tools/summarize/run_summary.py,sha256=w45qiQr7elrHDiK9Hgs85gtU3gwLuXa447ih1Y23BBY,5776
|
|
105
110
|
thds/mops/testing/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
106
111
|
thds/mops/testing/deferred_imports.py,sha256=f0ezCgQAtzTqW1yAOb0OWgsB9ZrlztLB894LtpWDaVw,3780
|
|
107
|
-
thds_mops-3.9.
|
|
108
|
-
thds_mops-3.9.
|
|
109
|
-
thds_mops-3.9.
|
|
110
|
-
thds_mops-3.9.
|
|
111
|
-
thds_mops-3.9.
|
|
112
|
+
thds_mops-3.9.20250723161622.dist-info/METADATA,sha256=43lrkV_8wwluWLte1bT0A0Rxa60ubCV5M63IA0yVl0g,2225
|
|
113
|
+
thds_mops-3.9.20250723161622.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
114
|
+
thds_mops-3.9.20250723161622.dist-info/entry_points.txt,sha256=qKvCAaB80syXfxVR3xx6x9J0YJdaQWkIbVSw-NwFgMw,322
|
|
115
|
+
thds_mops-3.9.20250723161622.dist-info/top_level.txt,sha256=LTZaE5SkWJwv9bwOlMbIhiS-JWQEEIcjVYnJrt-CriY,5
|
|
116
|
+
thds_mops-3.9.20250723161622.dist-info/RECORD,,
|
|
File without changes
|
{thds_mops-3.9.20250722213952.dist-info → thds_mops-3.9.20250723161622.dist-info}/entry_points.txt
RENAMED
|
File without changes
|
{thds_mops-3.9.20250722213952.dist-info → thds_mops-3.9.20250723161622.dist-info}/top_level.txt
RENAMED
|
File without changes
|