langfun 0.1.2.dev202505150805__py3-none-any.whl → 0.1.2.dev202505170804__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 langfun might be problematic. Click here for more details.
- langfun/core/agentic/action.py +6 -6
- langfun/core/agentic/action_test.py +3 -3
- langfun/core/eval/v2/evaluation.py +1 -1
- langfun/core/eval/v2/example.py +4 -3
- langfun/core/eval/v2/example_test.py +2 -2
- langfun/core/eval/v2/metrics_test.py +4 -4
- langfun/core/logging.py +1 -1
- langfun/core/structured/querying.py +5 -5
- langfun/core/structured/querying_test.py +1 -1
- {langfun-0.1.2.dev202505150805.dist-info → langfun-0.1.2.dev202505170804.dist-info}/METADATA +1 -1
- {langfun-0.1.2.dev202505150805.dist-info → langfun-0.1.2.dev202505170804.dist-info}/RECORD +14 -14
- {langfun-0.1.2.dev202505150805.dist-info → langfun-0.1.2.dev202505170804.dist-info}/WHEEL +0 -0
- {langfun-0.1.2.dev202505150805.dist-info → langfun-0.1.2.dev202505170804.dist-info}/licenses/LICENSE +0 -0
- {langfun-0.1.2.dev202505150805.dist-info → langfun-0.1.2.dev202505170804.dist-info}/top_level.txt +0 -0
langfun/core/agentic/action.py
CHANGED
@@ -225,7 +225,7 @@ class Action(pg.Object):
|
|
225
225
|
result = self.call(session=session, **kwargs)
|
226
226
|
self._invocation.end(result)
|
227
227
|
except BaseException as e:
|
228
|
-
error = pg.
|
228
|
+
error = pg.ErrorInfo.from_exception(e)
|
229
229
|
self._invocation.end(result=None, error=error)
|
230
230
|
if self._session is not None:
|
231
231
|
self._session.end(result=None, error=error)
|
@@ -819,7 +819,7 @@ class ActionInvocation(pg.Object, pg.views.html.HtmlTreeView.Extension):
|
|
819
819
|
] = {}
|
820
820
|
|
821
821
|
error: Annotated[
|
822
|
-
pg.
|
822
|
+
pg.ErrorInfo | None,
|
823
823
|
'Error from the action if failed.'
|
824
824
|
] = None
|
825
825
|
|
@@ -910,7 +910,7 @@ class ActionInvocation(pg.Object, pg.views.html.HtmlTreeView.Extension):
|
|
910
910
|
def end(
|
911
911
|
self,
|
912
912
|
result: Any,
|
913
|
-
error: pg.
|
913
|
+
error: pg.ErrorInfo | None = None,
|
914
914
|
metadata: dict[str, Any] | None = None,
|
915
915
|
) -> None:
|
916
916
|
"""Ends the execution of the action with result and metadata."""
|
@@ -1138,7 +1138,7 @@ class Session(pg.Object, pg.views.html.HtmlTreeView.Extension):
|
|
1138
1138
|
return self.root.result
|
1139
1139
|
|
1140
1140
|
@property
|
1141
|
-
def final_error(self) -> pg.
|
1141
|
+
def final_error(self) -> pg.ErrorInfo | None:
|
1142
1142
|
"""Returns the error of the session."""
|
1143
1143
|
return self.root.error
|
1144
1144
|
|
@@ -1186,7 +1186,7 @@ class Session(pg.Object, pg.views.html.HtmlTreeView.Extension):
|
|
1186
1186
|
def end(
|
1187
1187
|
self,
|
1188
1188
|
result: Any,
|
1189
|
-
error: pg.
|
1189
|
+
error: pg.ErrorInfo | None = None,
|
1190
1190
|
metadata: dict[str, Any] | None = None,
|
1191
1191
|
) -> None:
|
1192
1192
|
"""Ends the session."""
|
@@ -1220,7 +1220,7 @@ class Session(pg.Object, pg.views.html.HtmlTreeView.Extension):
|
|
1220
1220
|
|
1221
1221
|
if exc_val is not None:
|
1222
1222
|
result, metadata = None, None
|
1223
|
-
error = pg.
|
1223
|
+
error = pg.ErrorInfo.from_exception(exc_val)
|
1224
1224
|
else:
|
1225
1225
|
actions = self.root.actions
|
1226
1226
|
if actions:
|
@@ -308,7 +308,7 @@ class SessionTest(unittest.TestCase):
|
|
308
308
|
self.assertTrue(session.has_started)
|
309
309
|
self.assertTrue(session.has_stopped)
|
310
310
|
self.assertTrue(session.has_error)
|
311
|
-
self.assertIsInstance(session.final_error, pg.
|
311
|
+
self.assertIsInstance(session.final_error, pg.ErrorInfo)
|
312
312
|
self.assertIn('Bar error', str(session.root.error))
|
313
313
|
|
314
314
|
def test_succeeded_with_explicit_session(self):
|
@@ -375,7 +375,7 @@ class SessionTest(unittest.TestCase):
|
|
375
375
|
self.assertTrue(session.has_stopped)
|
376
376
|
self.assertTrue(session.has_error)
|
377
377
|
self.assertIsNone(session.final_result)
|
378
|
-
self.assertIsInstance(session.root.error, pg.
|
378
|
+
self.assertIsInstance(session.root.error, pg.ErrorInfo)
|
379
379
|
self.assertIn('Bar error', str(session.root.error))
|
380
380
|
|
381
381
|
def test_failed_with_explicit_session_without_start(self):
|
@@ -412,7 +412,7 @@ class SessionTest(unittest.TestCase):
|
|
412
412
|
self.assertTrue(session.has_started)
|
413
413
|
self.assertTrue(session.has_stopped)
|
414
414
|
self.assertTrue(session.has_error)
|
415
|
-
self.assertIsInstance(session.root.error, pg.
|
415
|
+
self.assertIsInstance(session.root.error, pg.ErrorInfo)
|
416
416
|
self.assertEqual(len(session.root.execution), 3)
|
417
417
|
self.assertEqual(len(session.root.actions), 2)
|
418
418
|
self.assertEqual(len(session.root.logs), 1)
|
@@ -255,7 +255,7 @@ class Evaluation(experiment_lib.Experiment):
|
|
255
255
|
except BaseException as e: # pylint: disable=broad-except
|
256
256
|
if raise_if_has_error:
|
257
257
|
raise
|
258
|
-
example.error = pg.
|
258
|
+
example.error = pg.ErrorInfo.from_exception(e)
|
259
259
|
|
260
260
|
#
|
261
261
|
# Handling evaluation scheduling.
|
langfun/core/eval/v2/example.py
CHANGED
@@ -39,7 +39,7 @@ class Example(pg.JSONConvertible, pg.views.HtmlTreeView.Extension):
|
|
39
39
|
id: int
|
40
40
|
input: Any = pg.MISSING_VALUE
|
41
41
|
output: Any = pg.MISSING_VALUE
|
42
|
-
error: pg.
|
42
|
+
error: pg.ErrorInfo | None = None
|
43
43
|
metadata: dict[str, Any] = dataclasses.field(default_factory=dict)
|
44
44
|
metric_metadata: dict[str, Any] | None = None
|
45
45
|
# Execution information.
|
@@ -47,12 +47,13 @@ class Example(pg.JSONConvertible, pg.views.HtmlTreeView.Extension):
|
|
47
47
|
start_time: float | None = None
|
48
48
|
end_time: float | None = None
|
49
49
|
usage_summary: lf.UsageSummary | None = None
|
50
|
-
execution_status: dict[str, pg.
|
50
|
+
execution_status: dict[str, pg.utils.TimeIt.Status] | None = None
|
51
51
|
|
52
52
|
def __post_init__(self):
|
53
53
|
if self.execution_status is not None:
|
54
54
|
for status in self.execution_status.values():
|
55
55
|
if status.has_error:
|
56
|
+
assert isinstance(status.error, pg.ErrorInfo)
|
56
57
|
self.error = status.error
|
57
58
|
break
|
58
59
|
|
@@ -188,7 +189,7 @@ class Example(pg.JSONConvertible, pg.views.HtmlTreeView.Extension):
|
|
188
189
|
text = f'{key}:{value}'
|
189
190
|
return pg.views.html.controls.Badge(
|
190
191
|
text,
|
191
|
-
css_classes=[pg.
|
192
|
+
css_classes=[pg.utils.camel_to_snake(key, '-')],
|
192
193
|
)
|
193
194
|
|
194
195
|
def _render_header():
|
@@ -22,13 +22,13 @@ Example = example_lib.Example
|
|
22
22
|
class ExampleTest(unittest.TestCase):
|
23
23
|
|
24
24
|
def test_basic(self):
|
25
|
-
error = pg.
|
25
|
+
error = pg.ErrorInfo(
|
26
26
|
tag='ValueError',
|
27
27
|
description='Bad input',
|
28
28
|
stacktrace='...',
|
29
29
|
)
|
30
30
|
ex = Example(id=1, execution_status={
|
31
|
-
'evaluate': pg.
|
31
|
+
'evaluate': pg.utils.TimeIt.Status(
|
32
32
|
name='evaluation', elapse=1.0, error=error
|
33
33
|
)
|
34
34
|
})
|
@@ -37,7 +37,7 @@ class MatchTest(unittest.TestCase):
|
|
37
37
|
Example(
|
38
38
|
id=3,
|
39
39
|
input=pg.Dict(groundtruth=1),
|
40
|
-
error=pg.
|
40
|
+
error=pg.symbolic.ErrorInfo(
|
41
41
|
tag='ValueError',
|
42
42
|
description='Bad input.',
|
43
43
|
stacktrace='...',
|
@@ -51,7 +51,7 @@ class MatchTest(unittest.TestCase):
|
|
51
51
|
Example(
|
52
52
|
id=3,
|
53
53
|
input=pg.Dict(groundtruth=1),
|
54
|
-
error=pg.
|
54
|
+
error=pg.symbolic.ErrorInfo(
|
55
55
|
tag='MappingError.CodeError',
|
56
56
|
description='Bad input.',
|
57
57
|
stacktrace='...',
|
@@ -130,7 +130,7 @@ class ScoreTest(unittest.TestCase):
|
|
130
130
|
Example(
|
131
131
|
id=3,
|
132
132
|
input=pg.Dict(x=1),
|
133
|
-
error=pg.
|
133
|
+
error=pg.symbolic.ErrorInfo(
|
134
134
|
tag='ValueError',
|
135
135
|
description='Bad input.',
|
136
136
|
stacktrace='...',
|
@@ -144,7 +144,7 @@ class ScoreTest(unittest.TestCase):
|
|
144
144
|
Example(
|
145
145
|
id=3,
|
146
146
|
input=pg.Dict(x=1),
|
147
|
-
error=pg.
|
147
|
+
error=pg.symbolic.ErrorInfo(
|
148
148
|
tag='MappingError.CodeError',
|
149
149
|
description='Bad input.',
|
150
150
|
stacktrace='...',
|
langfun/core/logging.py
CHANGED
@@ -276,7 +276,7 @@ def log(level: LogLevel,
|
|
276
276
|
console_lib.write(entry)
|
277
277
|
elif not console:
|
278
278
|
if kwargs:
|
279
|
-
message = f'{message} (metadata: {pg.format(kwargs)})'
|
279
|
+
message = f'{message} (metadata: {pg.format(kwargs, verbose=False)})'
|
280
280
|
system_log_func(level)(message)
|
281
281
|
return entry
|
282
282
|
|
@@ -649,7 +649,7 @@ def query(
|
|
649
649
|
_mark_query_completed(output_message, None, usage_summary)
|
650
650
|
except mapping.MappingError as e:
|
651
651
|
_mark_query_completed(
|
652
|
-
e.lm_response, pg.
|
652
|
+
e.lm_response, pg.ErrorInfo.from_exception(e), usage_summary
|
653
653
|
)
|
654
654
|
if lf.RAISE_IF_HAS_ERROR == default:
|
655
655
|
raise e
|
@@ -657,7 +657,7 @@ def query(
|
|
657
657
|
output_message.result = default
|
658
658
|
except BaseException as e:
|
659
659
|
_mark_query_completed(
|
660
|
-
None, pg.
|
660
|
+
None, pg.ErrorInfo.from_exception(e), usage_summary
|
661
661
|
)
|
662
662
|
raise e
|
663
663
|
|
@@ -867,7 +867,7 @@ class QueryInvocation(pg.Object, pg.views.HtmlTreeView.Extension):
|
|
867
867
|
] = None
|
868
868
|
|
869
869
|
error: Annotated[
|
870
|
-
pg.
|
870
|
+
pg.ErrorInfo | None,
|
871
871
|
'Error info if the query failed.'
|
872
872
|
] = None
|
873
873
|
|
@@ -946,7 +946,7 @@ class QueryInvocation(pg.Object, pg.views.HtmlTreeView.Extension):
|
|
946
946
|
def mark_completed(
|
947
947
|
self,
|
948
948
|
lm_response: lf.Message | None,
|
949
|
-
error: pg.
|
949
|
+
error: pg.ErrorInfo | None = None,
|
950
950
|
usage_summary: lf.UsageSummary | None = None) -> None:
|
951
951
|
"""Marks the query as completed."""
|
952
952
|
assert self.end_time is None, 'Query is already completed.'
|
@@ -965,7 +965,7 @@ class QueryInvocation(pg.Object, pg.views.HtmlTreeView.Extension):
|
|
965
965
|
)
|
966
966
|
except mapping.MappingError as e:
|
967
967
|
output = None
|
968
|
-
error = pg.
|
968
|
+
error = pg.ErrorInfo.from_exception(e)
|
969
969
|
self._output = output
|
970
970
|
else:
|
971
971
|
assert lm_response is not None
|
@@ -1333,7 +1333,7 @@ class QueryInvocationTest(unittest.TestCase):
|
|
1333
1333
|
|
1334
1334
|
self.assertEqual(queries[0].id, '123')
|
1335
1335
|
self.assertTrue(queries[0].has_error)
|
1336
|
-
self.assertIsInstance(queries[0].error, pg.
|
1336
|
+
self.assertIsInstance(queries[0].error, pg.ErrorInfo)
|
1337
1337
|
self.assertIn('MappingError', queries[0].error.tag)
|
1338
1338
|
self.assertIsNone(queries[0].output)
|
1339
1339
|
|
@@ -10,7 +10,7 @@ langfun/core/langfunc.py,sha256=G50YgoVZ0y1GFw2ev41MlOqr6qa8YakbvNC0h_E0PiA,1114
|
|
10
10
|
langfun/core/langfunc_test.py,sha256=CDn-gJCa5EnjN7cotAVCfSCbuzddq2o-HzEt7kV8HbY,8882
|
11
11
|
langfun/core/language_model.py,sha256=GCvbu749TviZyLQSNunO0rKeDAb7E_6G4rzqQJerN_E,47913
|
12
12
|
langfun/core/language_model_test.py,sha256=iA5uo7rIj2jAtCYzMzhyNg1fWqE2Onn60bOO58q72C0,36454
|
13
|
-
langfun/core/logging.py,sha256=
|
13
|
+
langfun/core/logging.py,sha256=7IGAhp7mGokZxxqtL-XZvFLKaZ5k3F5_Xp2NUtR4GwE,9136
|
14
14
|
langfun/core/logging_test.py,sha256=vbVGOQxwMmVSiFfbt2897gUt-8nqDpV64jCAeUG_q5U,6924
|
15
15
|
langfun/core/memory.py,sha256=vyXVvfvSdLLJAzdIupnbn3k26OgclCx-OJ7gddS5e1Y,2070
|
16
16
|
langfun/core/message.py,sha256=qUJZ9NfrlYG3aU_K2ud236gdTnvZ7Qw2T4pv4hI9ivg,32817
|
@@ -26,10 +26,10 @@ langfun/core/subscription_test.py,sha256=Y4ZdbZEwm83YNZBxHff0QR4QUa4rdaNXA3_jfIc
|
|
26
26
|
langfun/core/template.py,sha256=jNhYSrbLIn9kZOa03w5QZbyjgfnzJzE_ZrrMvvWY4t4,24929
|
27
27
|
langfun/core/template_test.py,sha256=AQv_m9qE93WxhEhSlm1xaBgB4hu0UVtA53dljngkUW0,17090
|
28
28
|
langfun/core/agentic/__init__.py,sha256=qR3jlfUO4rhIoYdRDLz-d22YZf3FvU4FW88vsjiGDQQ,1224
|
29
|
-
langfun/core/agentic/action.py,sha256=
|
29
|
+
langfun/core/agentic/action.py,sha256=ngBN__OUjMrw4eg8ljHKQ7VY-EABW8T7gF1nw_ZkQmM,50673
|
30
30
|
langfun/core/agentic/action_eval.py,sha256=YTilyUEkJl_8FVMgdfO17PurWWaEJ6oA15CuefJJRLk,4887
|
31
31
|
langfun/core/agentic/action_eval_test.py,sha256=7AkOwNbUX-ZgR1R0a7bvUZ5abNTUV7blf_8Mnrwb-II,2811
|
32
|
-
langfun/core/agentic/action_test.py,sha256=
|
32
|
+
langfun/core/agentic/action_test.py,sha256=46piw5J7vGwmJGjmVG13HQRBmp5TLgkV_ymJ2EQVEIc,15867
|
33
33
|
langfun/core/coding/__init__.py,sha256=5utju_fwEsImaiftx4oXKl9FAM8p281k8-Esdh_-m1w,835
|
34
34
|
langfun/core/coding/python/__init__.py,sha256=4ByknuoNU-mOIHwHKnTtmo6oD64oMFtlqPlYWmA5Wic,1736
|
35
35
|
langfun/core/coding/python/correction.py,sha256=4PD76Xfv36Xrm8Ji3-GgGDNImtcDqWfMw3z6ircJMlM,7285
|
@@ -63,16 +63,16 @@ langfun/core/eval/v2/__init__.py,sha256=9lNKJwbvl0lcFblAXYT_OHI8fOubJsTOdSkxEqsP
|
|
63
63
|
langfun/core/eval/v2/checkpointing.py,sha256=t47rBfzGZYgIqWW1N1Ak9yQnNtHd-IRbEO0cZjG2VRo,11755
|
64
64
|
langfun/core/eval/v2/checkpointing_test.py,sha256=NggOSJ_6XSa4cNP6nGIu9wLsK59dUwe8SPWDiXtGGDE,9197
|
65
65
|
langfun/core/eval/v2/eval_test_helper.py,sha256=sKFi_wPYCNmr96WyTduuXY0KnxjFxcJyEhXey-_nGX8,3962
|
66
|
-
langfun/core/eval/v2/evaluation.py,sha256=
|
66
|
+
langfun/core/eval/v2/evaluation.py,sha256=ihT5dljnUkHM97XS9OwE2wOnYC-oYnHYgG5KN1hmiaU,27037
|
67
67
|
langfun/core/eval/v2/evaluation_test.py,sha256=QNp_HEvRTupvNuLEeYTvylykh1Ut2jpMqHQ-gCUZQ10,6919
|
68
|
-
langfun/core/eval/v2/example.py,sha256=
|
69
|
-
langfun/core/eval/v2/example_test.py,sha256=
|
68
|
+
langfun/core/eval/v2/example.py,sha256=v1dIz89pccIqujt7utrk0EbqMWM9kBn-2fYGRTKe358,10890
|
69
|
+
langfun/core/eval/v2/example_test.py,sha256=wsHQD6te7ghROmxe3Xg_NK4TU0xS2MkNfnpo-H0H8xM,3399
|
70
70
|
langfun/core/eval/v2/experiment.py,sha256=fb3RHNOSRftV7ZTBfYVV50iEevqdPwRHCt3mgtLzuFw,33408
|
71
71
|
langfun/core/eval/v2/experiment_test.py,sha256=UmCobeS6ifPcaGkTJp0WPISolXrVFbeFCBiyJeA0Lt4,13666
|
72
72
|
langfun/core/eval/v2/metric_values.py,sha256=_B905bC-jxrYPLSEcP2M8MaHZOVMz_bVrUw8YC4arCE,4660
|
73
73
|
langfun/core/eval/v2/metric_values_test.py,sha256=ab2oF_HsIwrSy459108ggyjgefHSPn8UVILR4dRwx14,2634
|
74
74
|
langfun/core/eval/v2/metrics.py,sha256=bl8i6u-ZHRBz4hAc3LzsZ2Dc7ZRQcuTYeUhhH-GxfF0,10628
|
75
|
-
langfun/core/eval/v2/metrics_test.py,sha256=
|
75
|
+
langfun/core/eval/v2/metrics_test.py,sha256=LibZXvWEJDVRY-Mza_bQT-SbmbXCHUnFhL7Ztlzhzw4,6066
|
76
76
|
langfun/core/eval/v2/progress.py,sha256=azZgssQgNdv3IgjKEaQBuGI5ucFDNbdi02P4z_nQ8GE,10292
|
77
77
|
langfun/core/eval/v2/progress_test.py,sha256=YU7VHzmy5knPZwj9vpBN3rQQH2tukj9eKHkuBCI62h8,2540
|
78
78
|
langfun/core/eval/v2/progress_tracking.py,sha256=zNhNPGlnJnHELEfFpbTMCSXFn8d1IJ57OOYkfFaBFfM,6097
|
@@ -137,8 +137,8 @@ langfun/core/structured/mapping.py,sha256=iraHpcEeF_iuEX2eoTsLGwTHHvxqp2gNDjoMf9
|
|
137
137
|
langfun/core/structured/mapping_test.py,sha256=OntYvfDitAf0tAnzQty3YS90vyEn6FY1Mi93r_ViEk8,9594
|
138
138
|
langfun/core/structured/parsing.py,sha256=MGvI7ypXlwfzr5XB8_TFU9Ei0_5reYqkWkv64eAy0EA,12015
|
139
139
|
langfun/core/structured/parsing_test.py,sha256=V8Cj1tJK4Lxv_b0YQj6-2hzXZgnYNBa2JR7rOLRBKoQ,22346
|
140
|
-
langfun/core/structured/querying.py,sha256=
|
141
|
-
langfun/core/structured/querying_test.py,sha256=
|
140
|
+
langfun/core/structured/querying.py,sha256=vE_NOLNlIe4A0DueQfyiBEUh3AsSD8Hhx2dSDHNYpYk,37976
|
141
|
+
langfun/core/structured/querying_test.py,sha256=pYWXqAnzp5eOCjU4yEPtE73iLNqxHISb3y3FaSbI7vs,49760
|
142
142
|
langfun/core/structured/schema.py,sha256=r_ewdRMsALVOdnvGSeYBcz2-VJ_3_nMxY4GtzUHCYUU,29111
|
143
143
|
langfun/core/structured/schema_generation.py,sha256=pEWeTd8tQWYnEHukas6GVl4uGerLsQ2aNybtnm4Qgxc,5352
|
144
144
|
langfun/core/structured/schema_generation_test.py,sha256=RM9s71kMNg2jTePwInkiW9fK1ACN37eyPeF8OII-0zw,2950
|
@@ -156,8 +156,8 @@ langfun/core/templates/demonstration.py,sha256=vCrgYubdZM5Umqcgp8NUVGXgr4P_c-fik
|
|
156
156
|
langfun/core/templates/demonstration_test.py,sha256=SafcDQ0WgI7pw05EmPI2S4v1t3ABKzup8jReCljHeK4,2162
|
157
157
|
langfun/core/templates/selfplay.py,sha256=yhgrJbiYwq47TgzThmHrDQTF4nDrTI09CWGhuQPNv-s,2273
|
158
158
|
langfun/core/templates/selfplay_test.py,sha256=Ot__1P1M8oJfoTp-M9-PQ6HUXqZKyMwvZ5f7yQ3yfyM,2326
|
159
|
-
langfun-0.1.2.
|
160
|
-
langfun-0.1.2.
|
161
|
-
langfun-0.1.2.
|
162
|
-
langfun-0.1.2.
|
163
|
-
langfun-0.1.2.
|
159
|
+
langfun-0.1.2.dev202505170804.dist-info/licenses/LICENSE,sha256=WNHhf_5RCaeuKWyq_K39vmp9F28LxKsB4SpomwSZ2L0,11357
|
160
|
+
langfun-0.1.2.dev202505170804.dist-info/METADATA,sha256=U2rauYCb-_LY_r_xxtlTa61nIxkMWL4icBLDu5SrW8Y,8178
|
161
|
+
langfun-0.1.2.dev202505170804.dist-info/WHEEL,sha256=Nw36Djuh_5VDukK0H78QzOX-_FQEo6V37m3nkm96gtU,91
|
162
|
+
langfun-0.1.2.dev202505170804.dist-info/top_level.txt,sha256=RhlEkHxs1qtzmmtWSwYoLVJAc1YrbPtxQ52uh8Z9VvY,8
|
163
|
+
langfun-0.1.2.dev202505170804.dist-info/RECORD,,
|
File without changes
|
{langfun-0.1.2.dev202505150805.dist-info → langfun-0.1.2.dev202505170804.dist-info}/licenses/LICENSE
RENAMED
File without changes
|
{langfun-0.1.2.dev202505150805.dist-info → langfun-0.1.2.dev202505170804.dist-info}/top_level.txt
RENAMED
File without changes
|