deepeval 3.8.1__py3-none-any.whl → 3.8.3__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.
- deepeval/_version.py +1 -1
- deepeval/confident/api.py +31 -3
- deepeval/integrations/crewai/__init__.py +9 -2
- deepeval/integrations/crewai/handler.py +261 -66
- deepeval/integrations/crewai/subs.py +23 -10
- deepeval/integrations/crewai/tool.py +20 -3
- deepeval/integrations/crewai/wrapper.py +69 -15
- deepeval/integrations/langchain/callback.py +310 -14
- deepeval/integrations/langchain/utils.py +75 -24
- deepeval/integrations/llama_index/handler.py +69 -21
- deepeval/integrations/pydantic_ai/instrumentator.py +50 -14
- deepeval/integrations/pydantic_ai/otel.py +9 -0
- deepeval/metrics/utils.py +11 -0
- deepeval/simulator/conversation_simulator.py +4 -2
- deepeval/telemetry.py +12 -91
- deepeval/tracing/api.py +1 -0
- deepeval/tracing/context.py +3 -0
- deepeval/tracing/trace_context.py +5 -0
- deepeval/tracing/tracing.py +7 -5
- deepeval/tracing/types.py +1 -0
- {deepeval-3.8.1.dist-info → deepeval-3.8.3.dist-info}/METADATA +1 -1
- {deepeval-3.8.1.dist-info → deepeval-3.8.3.dist-info}/RECORD +25 -25
- {deepeval-3.8.1.dist-info → deepeval-3.8.3.dist-info}/LICENSE.md +0 -0
- {deepeval-3.8.1.dist-info → deepeval-3.8.3.dist-info}/WHEEL +0 -0
- {deepeval-3.8.1.dist-info → deepeval-3.8.3.dist-info}/entry_points.txt +0 -0
deepeval/tracing/context.py
CHANGED
|
@@ -74,6 +74,7 @@ def update_current_trace(
|
|
|
74
74
|
expected_tools: Optional[List[ToolCall]] = None,
|
|
75
75
|
test_case: Optional[LLMTestCase] = None,
|
|
76
76
|
confident_api_key: Optional[str] = None,
|
|
77
|
+
test_case_id: Optional[str] = None,
|
|
77
78
|
):
|
|
78
79
|
current_trace = current_trace_context.get()
|
|
79
80
|
if not current_trace:
|
|
@@ -112,6 +113,8 @@ def update_current_trace(
|
|
|
112
113
|
current_trace.expected_tools = expected_tools
|
|
113
114
|
if confident_api_key:
|
|
114
115
|
current_trace.confident_api_key = confident_api_key
|
|
116
|
+
if test_case_id:
|
|
117
|
+
current_trace.test_case_id = test_case_id
|
|
115
118
|
|
|
116
119
|
|
|
117
120
|
def update_llm_span(
|
|
@@ -69,9 +69,11 @@ def trace(
|
|
|
69
69
|
)
|
|
70
70
|
|
|
71
71
|
current_trace = current_trace_context.get()
|
|
72
|
+
started_new_trace = False
|
|
72
73
|
|
|
73
74
|
if not current_trace:
|
|
74
75
|
current_trace = trace_manager.start_new_trace()
|
|
76
|
+
started_new_trace = True
|
|
75
77
|
|
|
76
78
|
if metrics:
|
|
77
79
|
current_trace.metrics = metrics
|
|
@@ -103,5 +105,8 @@ def trace(
|
|
|
103
105
|
try:
|
|
104
106
|
yield current_trace
|
|
105
107
|
finally:
|
|
108
|
+
if started_new_trace:
|
|
109
|
+
trace_manager.end_trace(current_trace.uuid)
|
|
110
|
+
|
|
106
111
|
current_llm_context.set(LlmSpanContext())
|
|
107
112
|
current_agent_context.set(AgentSpanContext())
|
deepeval/tracing/tracing.py
CHANGED
|
@@ -690,6 +690,7 @@ class TraceManager:
|
|
|
690
690
|
expectedOutput=trace.expected_output,
|
|
691
691
|
toolsCalled=trace.tools_called,
|
|
692
692
|
expectedTools=trace.expected_tools,
|
|
693
|
+
testCaseId=trace.test_case_id,
|
|
693
694
|
confident_api_key=trace.confident_api_key,
|
|
694
695
|
environment=(
|
|
695
696
|
self.environment if not trace.environment else trace.environment
|
|
@@ -969,9 +970,9 @@ class Observer:
|
|
|
969
970
|
else:
|
|
970
971
|
current_trace = current_trace_context.get()
|
|
971
972
|
if current_trace.input is None:
|
|
972
|
-
current_trace.input = self.function_kwargs
|
|
973
|
+
current_trace.input = trace_manager.mask(self.function_kwargs)
|
|
973
974
|
if current_trace.output is None:
|
|
974
|
-
current_trace.output = self.result
|
|
975
|
+
current_trace.output = trace_manager.mask(self.result)
|
|
975
976
|
if current_span.status == TraceSpanStatus.ERRORED:
|
|
976
977
|
current_trace.status = TraceSpanStatus.ERRORED
|
|
977
978
|
if current_trace and current_trace.uuid == current_span.trace_uuid:
|
|
@@ -1037,7 +1038,8 @@ class Observer:
|
|
|
1037
1038
|
return RetrieverSpan(**span_kwargs, embedder=embedder)
|
|
1038
1039
|
|
|
1039
1040
|
elif self.span_type == SpanType.TOOL.value:
|
|
1040
|
-
|
|
1041
|
+
description = self.observe_kwargs.get("description", None)
|
|
1042
|
+
return ToolSpan(**span_kwargs, description=description)
|
|
1041
1043
|
else:
|
|
1042
1044
|
return BaseSpan(**span_kwargs)
|
|
1043
1045
|
|
|
@@ -1107,7 +1109,7 @@ def observe(
|
|
|
1107
1109
|
yield chunk
|
|
1108
1110
|
observer.__exit__(None, None, None)
|
|
1109
1111
|
except Exception as e:
|
|
1110
|
-
observer.__exit__(
|
|
1112
|
+
observer.__exit__(e.__class__, e, e.__traceback__)
|
|
1111
1113
|
raise
|
|
1112
1114
|
|
|
1113
1115
|
return gen()
|
|
@@ -1150,7 +1152,7 @@ def observe(
|
|
|
1150
1152
|
yield from original_gen
|
|
1151
1153
|
observer.__exit__(None, None, None)
|
|
1152
1154
|
except Exception as e:
|
|
1153
|
-
observer.__exit__(
|
|
1155
|
+
observer.__exit__(e.__class__, e, e.__traceback__)
|
|
1154
1156
|
raise
|
|
1155
1157
|
|
|
1156
1158
|
return gen()
|
deepeval/tracing/types.py
CHANGED
|
@@ -157,6 +157,7 @@ class Trace(BaseModel):
|
|
|
157
157
|
output: Optional[Any] = None
|
|
158
158
|
metrics: Optional[List[BaseMetric]] = None
|
|
159
159
|
metric_collection: Optional[str] = None
|
|
160
|
+
test_case_id: Optional[str] = Field(None, serialization_alias="testCaseId")
|
|
160
161
|
|
|
161
162
|
# Don't serialize these
|
|
162
163
|
confident_api_key: Optional[str] = Field(None, exclude=True)
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
deepeval/__init__.py,sha256=tle4lT4FONApg3OeztGPEdrpGMEGLWajyGTu7bEd3s0,2976
|
|
2
|
-
deepeval/_version.py,sha256=
|
|
2
|
+
deepeval/_version.py,sha256=DuZF4w5M7-EVzWNXFxp8yJIQADpdXSQSjeWW87pqtn4,27
|
|
3
3
|
deepeval/annotation/__init__.py,sha256=ZFhUVNNuH_YgQSZJ-m5E9iUb9TkAkEV33a6ouMDZ8EI,111
|
|
4
4
|
deepeval/annotation/annotation.py,sha256=WLFZRkx6wRJcNzaOMMGXuTfw6Q1_1Mv5A4jpD7Ea4sU,2300
|
|
5
5
|
deepeval/annotation/api.py,sha256=EYN33ACVzVxsFleRYm60KB4Exvff3rPJKt1VBuuX970,2147
|
|
@@ -142,7 +142,7 @@ deepeval/cli/test.py,sha256=aoBPMfk0HTvOqb2xdvMykkx_s4SHst7lEnoUiSXo1lU,5483
|
|
|
142
142
|
deepeval/cli/types.py,sha256=_7KdthstHNc-JKCWrfpDQCf_j8h9PMxh0qJCHmVXJr0,310
|
|
143
143
|
deepeval/cli/utils.py,sha256=3fgH5WPTTe7Cz_QOLCHyflXB81kmFaSxXHJ2tnxvFLw,10649
|
|
144
144
|
deepeval/confident/__init__.py,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
|
|
145
|
-
deepeval/confident/api.py,sha256=
|
|
145
|
+
deepeval/confident/api.py,sha256=rxMNMK5VYPQKdEDSRsovlULV14QlGW3TNDkARLj_Pt4,9589
|
|
146
146
|
deepeval/confident/types.py,sha256=9bgePDaU31yY7JGwCLZcc7pev9VGtNDZLbjsVpCLVdc,574
|
|
147
147
|
deepeval/config/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
148
148
|
deepeval/config/dotenv_handler.py,sha256=lOosoC7fm9RljriY8EFl5ywSGfSiQsVf_vmYqzpbZ8s,588
|
|
@@ -169,27 +169,27 @@ deepeval/evaluate/execute.py,sha256=5RZrTRfe-AnwO5aS16LL-iBqT3fciun9zt3wbXp70v8,
|
|
|
169
169
|
deepeval/evaluate/types.py,sha256=jf424xPHgdJcvgG2l_wTMskJBOEe9tl55c3v3B-SLNU,1071
|
|
170
170
|
deepeval/evaluate/utils.py,sha256=STYyJCvVkewU5iigKnAsUDcVtJuFU_Qefi-aoyv2elA,20740
|
|
171
171
|
deepeval/integrations/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
172
|
-
deepeval/integrations/crewai/__init__.py,sha256=
|
|
173
|
-
deepeval/integrations/crewai/handler.py,sha256=
|
|
174
|
-
deepeval/integrations/crewai/subs.py,sha256=
|
|
175
|
-
deepeval/integrations/crewai/tool.py,sha256=
|
|
176
|
-
deepeval/integrations/crewai/wrapper.py,sha256=
|
|
172
|
+
deepeval/integrations/crewai/__init__.py,sha256=8bkOWfzrqETEYWMB9nCKbqMd7nlU-TGvNH0CIrqtlps,316
|
|
173
|
+
deepeval/integrations/crewai/handler.py,sha256=dgzfWwHw94ro28-h8RyYfNQ8cOmnXCwEoWOZatxcbVk,15178
|
|
174
|
+
deepeval/integrations/crewai/subs.py,sha256=wcMJVBNf69dqFO8L1kMTvm4n1GsO2S-nopQn924JdU4,1974
|
|
175
|
+
deepeval/integrations/crewai/tool.py,sha256=thdDXt-dA2B4LmUuQipAcOiR6H19KA7zzqjlsfTyn3s,3210
|
|
176
|
+
deepeval/integrations/crewai/wrapper.py,sha256=w3NsXHe1M4BhjGcpMA7grUCdSAjlu2zBk9daLeTRluc,5615
|
|
177
177
|
deepeval/integrations/hugging_face/__init__.py,sha256=MuHIf9im9Jypq4VkfLzhklxIrd7vSTGlT74iUNSPgvg,93
|
|
178
178
|
deepeval/integrations/hugging_face/callback.py,sha256=15QQEzR34Cpdp5kUp5oVA6dEsShtiMNZ03akJWAh7lo,7911
|
|
179
179
|
deepeval/integrations/hugging_face/rich_manager.py,sha256=WvFtPGpPmGeg2Ftsnojga6yvbBLiZv_tvNbnFcGb6og,3630
|
|
180
180
|
deepeval/integrations/hugging_face/tests/test_callbacks.py,sha256=88Wyg-aDaXujj9jHeGdFF3ITSl2-y7eaJGWgSyvvDi8,4607
|
|
181
181
|
deepeval/integrations/hugging_face/utils.py,sha256=HUKdQcTIb76Ct69AS737oPxmlVxk5fw2UbT2pLn-o8k,1817
|
|
182
182
|
deepeval/integrations/langchain/__init__.py,sha256=G1Qey5WkKou2-PA34KwWgmayQ_TbvXqPyotTbzmD8tw,84
|
|
183
|
-
deepeval/integrations/langchain/callback.py,sha256
|
|
183
|
+
deepeval/integrations/langchain/callback.py,sha256=-Ip1PU84YqKbf4j17qV925GHsW5mRJN9b-d7V4fOuP8,32892
|
|
184
184
|
deepeval/integrations/langchain/patch.py,sha256=fCHfZXU9xX3IJ6SG8GEYzn3qrifyUkT0i_uUABTsmcs,1255
|
|
185
|
-
deepeval/integrations/langchain/utils.py,sha256=
|
|
185
|
+
deepeval/integrations/langchain/utils.py,sha256=mhv0anU5ZnbBsESMuCooT9FSNPkx2ObrVLlq7QNEZOI,13104
|
|
186
186
|
deepeval/integrations/llama_index/__init__.py,sha256=Ujs9ZBJFkuCWUDBJOF88UbM1Y-S6QFQhxSo0oQnEWNw,90
|
|
187
|
-
deepeval/integrations/llama_index/handler.py,sha256=
|
|
187
|
+
deepeval/integrations/llama_index/handler.py,sha256=uVfMs9VC2vp5J_A8lxy1OmVtha31wvkJGzkp5GKhf-A,12367
|
|
188
188
|
deepeval/integrations/llama_index/utils.py,sha256=onmmo1vpn6cpOY5EhfTc0Uui7X6l1M0HD3sq-KVAesg,3380
|
|
189
189
|
deepeval/integrations/pydantic_ai/__init__.py,sha256=UIkXn_g6h9LTQXG1PaWu1eCFkCssIwG48WSvN46UWgU,202
|
|
190
190
|
deepeval/integrations/pydantic_ai/agent.py,sha256=-NKvpTUw3AxRNhuxVFcx9mw5BWCujzOwsaC8u7K0ubc,1178
|
|
191
|
-
deepeval/integrations/pydantic_ai/instrumentator.py,sha256=
|
|
192
|
-
deepeval/integrations/pydantic_ai/otel.py,sha256=
|
|
191
|
+
deepeval/integrations/pydantic_ai/instrumentator.py,sha256=PPoGeJzkuoCerrjc-s_Nv8hn9DC54Jp-uXgJU0OI1Ug,13081
|
|
192
|
+
deepeval/integrations/pydantic_ai/otel.py,sha256=xWYnMT1HwcAmyWdoJa6C1sHwd5frP9_IcR8dj9sKsG0,2386
|
|
193
193
|
deepeval/integrations/pydantic_ai/test_instrumentator.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
194
194
|
deepeval/key_handler.py,sha256=lajMBgF2lCzbQpW4e6Y7cD9FOw0Qk5UOKS4_kIIHj6Y,9562
|
|
195
195
|
deepeval/metrics/__init__.py,sha256=19Df323r8aAlx2sRfV9BHJLicORhTLpogR8M1deJetw,4680
|
|
@@ -384,7 +384,7 @@ deepeval/metrics/turn_relevancy/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm
|
|
|
384
384
|
deepeval/metrics/turn_relevancy/schema.py,sha256=om0zFJcM6qu2GWS9aJTP3lUmuEXX8KpoACEvCsJqfq4,234
|
|
385
385
|
deepeval/metrics/turn_relevancy/template.py,sha256=k02QVclRtCTVBZ7Xd4f-LdTrSO_dBxquQiFYqRYmiSA,3245
|
|
386
386
|
deepeval/metrics/turn_relevancy/turn_relevancy.py,sha256=gMx5o5vfPJjVKior96L_A-4o3IoAyxSoTgI8U9sJtRY,9468
|
|
387
|
-
deepeval/metrics/utils.py,sha256=
|
|
387
|
+
deepeval/metrics/utils.py,sha256=osdTrK0jMiMynfks3uUFx6KmhcbRmr41ZXoGMisx2xY,21932
|
|
388
388
|
deepeval/model_integrations/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
389
389
|
deepeval/model_integrations/types.py,sha256=rbVMhC_2yWwD6JqzkRO9D7aMVC_KtXN686G_S7de7S8,630
|
|
390
390
|
deepeval/model_integrations/utils.py,sha256=Zt9SYPgTxlGsQFZgpZvh_a5fWuL8mmIFVSe6uoQywZ4,3562
|
|
@@ -468,7 +468,7 @@ deepeval/red_teaming/README.md,sha256=BY5rAdpp3-sMMToEKwq0Nsd9ivkGDzPE16DeDb8GY7
|
|
|
468
468
|
deepeval/scorer/__init__.py,sha256=hTvtoV3a4l0dSBjERm-jX7jveTtKZXK0c9JerQo0T_w,27
|
|
469
469
|
deepeval/scorer/scorer.py,sha256=EmXo1wEMMAL2it8WxNJ4cTqZLCH1ad4BY2VewoX6b10,18348
|
|
470
470
|
deepeval/simulator/__init__.py,sha256=wkyevg9nh46rsVnVrBjY3K5bHlkqjwx4TtrTfyjDCO0,96
|
|
471
|
-
deepeval/simulator/conversation_simulator.py,sha256=
|
|
471
|
+
deepeval/simulator/conversation_simulator.py,sha256=RfCZZmxiKNiSmd_g9CN-Un_ekkqeyDARP3aXcj3rUck,27282
|
|
472
472
|
deepeval/simulator/schema.py,sha256=16X2-m92plP52YTd-dvECt_-6gsz0U4j7Ut3UdI6gKY,252
|
|
473
473
|
deepeval/simulator/template.py,sha256=6wh6xiUaZQn-pvkBWgOK7pWfsv5nntgjGfTqUkcKn0A,6461
|
|
474
474
|
deepeval/singleton.py,sha256=irNbt0-IRI7rD4t05OZHsrNovpeva0XPc8PoieFytG8,532
|
|
@@ -486,7 +486,7 @@ deepeval/synthesizer/templates/template_extraction.py,sha256=jmvr8AOOUzDgsHYIOsq
|
|
|
486
486
|
deepeval/synthesizer/templates/template_prompt.py,sha256=bzfC71AXZqBrmoDWmBvuIQKD6hPJZ0ZAWX4hy-lPlnQ,21478
|
|
487
487
|
deepeval/synthesizer/types.py,sha256=wUZntvCAE29sM9K8hk9RPwUpkTip1ObOCExyMEo3sME,493
|
|
488
488
|
deepeval/synthesizer/utils.py,sha256=o-9z5gApQcHqDqusgrD0LagXWAju17LVc27BxtaA7og,1018
|
|
489
|
-
deepeval/telemetry.py,sha256=
|
|
489
|
+
deepeval/telemetry.py,sha256=VSPAv1XWS0jzDIjPzgAg42WDfYgqaR4Iwi8RrM_aPns,18041
|
|
490
490
|
deepeval/test_case/__init__.py,sha256=i1hIGeE_J1Zm-KmDVFqmogvBKzyOlIsENrfhL-3B8_M,658
|
|
491
491
|
deepeval/test_case/api.py,sha256=i9e1ggt4O9w_cu7tMSArw-LkiIZ_u_WPgpM2YAhfgks,3408
|
|
492
492
|
deepeval/test_case/arena_test_case.py,sha256=ngEU5_-YVQ-qPSOVVuSUJ_nuvdQR-MGA_QZQst5c8MI,1482
|
|
@@ -501,8 +501,8 @@ deepeval/test_run/hooks.py,sha256=Qnd06bk9RJN4WmFUzJrBAi3Xj261hzyzI2iRmG8wbKw,37
|
|
|
501
501
|
deepeval/test_run/hyperparameters.py,sha256=4yJkNgwL2y6eyWDTmUV62f5RUlfOui4R22wsJ5uTbto,3874
|
|
502
502
|
deepeval/test_run/test_run.py,sha256=csbj0KVsp1QDCFKEqthQzPSmxusjNQkoVfsWBnq2Z_s,41549
|
|
503
503
|
deepeval/tracing/__init__.py,sha256=aSOk_ZgL-K7CZzcyiaIa5peAiaPViDST5GhpHA3Adc8,614
|
|
504
|
-
deepeval/tracing/api.py,sha256=
|
|
505
|
-
deepeval/tracing/context.py,sha256=
|
|
504
|
+
deepeval/tracing/api.py,sha256=x6Ze5ruPDbuRsR8rS0524cvUkCQ7CxLoT0up1gMQWMk,5062
|
|
505
|
+
deepeval/tracing/context.py,sha256=KKP0Wp7zpzTzISyDceI7fndpVnehawI8rBMyRYEwb9U,5580
|
|
506
506
|
deepeval/tracing/offline_evals/__init__.py,sha256=bEniJAl7PmS9u2ksiOTfHtlCPJ9_CJV5R6umrUOX5MM,102
|
|
507
507
|
deepeval/tracing/offline_evals/api.py,sha256=eBfqh2uWyeRkIeGhjrN1bTQzAEow-XPubs-42WEZ2QQ,510
|
|
508
508
|
deepeval/tracing/offline_evals/span.py,sha256=pXqTVXs-WnjRVpCYYEbNe0zSM6Wz9GsKHsM5ZcWxrmM,1802
|
|
@@ -514,14 +514,14 @@ deepeval/tracing/otel/test_exporter.py,sha256=bezihPGWJpwUEF3ZghxqhhorocVFTO2b43
|
|
|
514
514
|
deepeval/tracing/otel/utils.py,sha256=NVMN07JtxuvVPtdyTW7KFdTqQL3TpoCO-JdZeghQJBY,17859
|
|
515
515
|
deepeval/tracing/patchers.py,sha256=Oi9wao3oDYhcviv7p0KoWBeS9ne7rHLa2gh9AR9EyiU,6882
|
|
516
516
|
deepeval/tracing/perf_epoch_bridge.py,sha256=iyAPddB6Op7NpMtPHJ29lDm53Btz9yLaN6xSCfTRQm4,1825
|
|
517
|
-
deepeval/tracing/trace_context.py,sha256=
|
|
517
|
+
deepeval/tracing/trace_context.py,sha256=RkXSlAWuMzuRrvepsM0PlGaWwX7QBstkWv_frYn_7CE,3718
|
|
518
518
|
deepeval/tracing/trace_test_manager.py,sha256=wt4y7EWTRc4Bw938-UFFtXHkdFFOrnx6JaIk7J5Iulw,555
|
|
519
|
-
deepeval/tracing/tracing.py,sha256=
|
|
520
|
-
deepeval/tracing/types.py,sha256=
|
|
519
|
+
deepeval/tracing/tracing.py,sha256=RS3mBV-63_vDyz-WxYPir34u0BF3mPnAJWee1aCc1sc,46892
|
|
520
|
+
deepeval/tracing/types.py,sha256=PUXDC1JZDaAalPc3uUHywkt2GE2hZ-2ocGP0Fe4sB2E,6120
|
|
521
521
|
deepeval/tracing/utils.py,sha256=mdvhYAxDNsdnusaEXJd-c-_O2Jn6S3xSuzRvLO1Jz4U,5684
|
|
522
522
|
deepeval/utils.py,sha256=Wsu95g6t1wdttxWIESVwuUxbml7C-9ZTsV7qHCQI3Xg,27259
|
|
523
|
-
deepeval-3.8.
|
|
524
|
-
deepeval-3.8.
|
|
525
|
-
deepeval-3.8.
|
|
526
|
-
deepeval-3.8.
|
|
527
|
-
deepeval-3.8.
|
|
523
|
+
deepeval-3.8.3.dist-info/LICENSE.md,sha256=0ATkuLv6QgsJTBODUHC5Rak_PArA6gv2t7inJzNTP38,11352
|
|
524
|
+
deepeval-3.8.3.dist-info/METADATA,sha256=BXj2MMYGn2usVl9VX5fcXNOHK-gp2DEY5uUDlP4kObQ,18752
|
|
525
|
+
deepeval-3.8.3.dist-info/WHEEL,sha256=d2fvjOD7sXsVzChCqf0Ty0JbHKBaLYwDbGQDwQTnJ50,88
|
|
526
|
+
deepeval-3.8.3.dist-info/entry_points.txt,sha256=NoismUQfwLOojSGZmBrdcpwfaoFRAzUhBvZD3UwOKog,95
|
|
527
|
+
deepeval-3.8.3.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|