thds.mops 3.9.20250721225429__py3-none-any.whl → 3.9.20250721231027__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.
- 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 +0 -8
- 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.20250721225429.dist-info → thds_mops-3.9.20250721231027.dist-info}/METADATA +1 -1
- {thds_mops-3.9.20250721225429.dist-info → thds_mops-3.9.20250721231027.dist-info}/RECORD +37 -32
- {thds_mops-3.9.20250721225429.dist-info → thds_mops-3.9.20250721231027.dist-info}/WHEEL +0 -0
- {thds_mops-3.9.20250721225429.dist-info → thds_mops-3.9.20250721231027.dist-info}/entry_points.txt +0 -0
- {thds_mops-3.9.20250721225429.dist-info → thds_mops-3.9.20250721231027.dist-info}/top_level.txt +0 -0
|
@@ -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.20250721231027
|
|
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.20250721231027.dist-info/METADATA,sha256=6vHxfg2DaPLR5V4C3G9_r5HCo6VrbGtXlSMHYkikPpA,2225
|
|
113
|
+
thds_mops-3.9.20250721231027.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
114
|
+
thds_mops-3.9.20250721231027.dist-info/entry_points.txt,sha256=qKvCAaB80syXfxVR3xx6x9J0YJdaQWkIbVSw-NwFgMw,322
|
|
115
|
+
thds_mops-3.9.20250721231027.dist-info/top_level.txt,sha256=LTZaE5SkWJwv9bwOlMbIhiS-JWQEEIcjVYnJrt-CriY,5
|
|
116
|
+
thds_mops-3.9.20250721231027.dist-info/RECORD,,
|
|
File without changes
|
{thds_mops-3.9.20250721225429.dist-info → thds_mops-3.9.20250721231027.dist-info}/entry_points.txt
RENAMED
|
File without changes
|
{thds_mops-3.9.20250721225429.dist-info → thds_mops-3.9.20250721231027.dist-info}/top_level.txt
RENAMED
|
File without changes
|