validmind 2.4.6__py3-none-any.whl → 2.4.9__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.
- validmind/__version__.py +1 -1
- validmind/html_templates/content_blocks.py +2 -1
- validmind/tests/data_validation/DatasetDescription.py +1 -1
- validmind/tests/model_validation/ragas/AnswerCorrectness.py +6 -2
- validmind/tests/model_validation/ragas/AnswerRelevance.py +6 -2
- validmind/tests/model_validation/ragas/AnswerSimilarity.py +6 -2
- validmind/tests/model_validation/ragas/AspectCritique.py +21 -17
- validmind/tests/model_validation/ragas/ContextEntityRecall.py +6 -2
- validmind/tests/model_validation/ragas/ContextPrecision.py +6 -2
- validmind/tests/model_validation/ragas/ContextRecall.py +6 -2
- validmind/tests/model_validation/ragas/ContextRelevancy.py +6 -2
- validmind/tests/model_validation/ragas/Faithfulness.py +6 -2
- validmind/tests/model_validation/ragas/utils.py +6 -2
- {validmind-2.4.6.dist-info → validmind-2.4.9.dist-info}/METADATA +3 -2
- {validmind-2.4.6.dist-info → validmind-2.4.9.dist-info}/RECORD +18 -18
- {validmind-2.4.6.dist-info → validmind-2.4.9.dist-info}/LICENSE +0 -0
- {validmind-2.4.6.dist-info → validmind-2.4.9.dist-info}/WHEEL +0 -0
- {validmind-2.4.6.dist-info → validmind-2.4.9.dist-info}/entry_points.txt +0 -0
validmind/__version__.py
CHANGED
@@ -1 +1 @@
|
|
1
|
-
__version__ = "2.4.
|
1
|
+
__version__ = "2.4.9"
|
@@ -27,7 +27,8 @@ test_content_block_html = """
|
|
27
27
|
<div id="expandable_instructions_{uuid}" style="display: {instructions_display};">
|
28
28
|
<h4>Code:</h4>
|
29
29
|
<pre>
|
30
|
-
<code class='language-python'>
|
30
|
+
<code class='language-python'>
|
31
|
+
import validmind as vm
|
31
32
|
|
32
33
|
# inputs dictionary maps your inputs to the expected input names
|
33
34
|
# keys are the expected input names and values are the actual inputs
|
@@ -161,7 +161,7 @@ class DatasetDescription(Metric):
|
|
161
161
|
.describe(percentiles=[0.25, 0.5, 0.75, 0.9, 0.95])
|
162
162
|
.to_dict()
|
163
163
|
)
|
164
|
-
elif field_type == "Categorical":
|
164
|
+
elif field_type == "Categorical" or field_type == "Text":
|
165
165
|
field["statistics"] = (
|
166
166
|
df[field["id"]].astype("category").describe().to_dict()
|
167
167
|
)
|
@@ -6,8 +6,6 @@ import warnings
|
|
6
6
|
|
7
7
|
import plotly.express as px
|
8
8
|
from datasets import Dataset
|
9
|
-
from ragas import evaluate
|
10
|
-
from ragas.metrics import answer_correctness
|
11
9
|
|
12
10
|
from validmind import tags, tasks
|
13
11
|
|
@@ -89,6 +87,12 @@ def AnswerCorrectness(
|
|
89
87
|
}
|
90
88
|
```
|
91
89
|
"""
|
90
|
+
try:
|
91
|
+
from ragas import evaluate
|
92
|
+
from ragas.metrics import answer_correctness
|
93
|
+
except ImportError:
|
94
|
+
raise ImportError("Please run `pip install validmind[llm]` to use LLM tests")
|
95
|
+
|
92
96
|
warnings.filterwarnings(
|
93
97
|
"ignore",
|
94
98
|
category=FutureWarning,
|
@@ -6,8 +6,6 @@ import warnings
|
|
6
6
|
|
7
7
|
import plotly.express as px
|
8
8
|
from datasets import Dataset
|
9
|
-
from ragas import evaluate
|
10
|
-
from ragas.metrics import answer_relevancy
|
11
9
|
|
12
10
|
from validmind import tags, tasks
|
13
11
|
|
@@ -93,6 +91,12 @@ def AnswerRelevance(
|
|
93
91
|
}
|
94
92
|
```
|
95
93
|
"""
|
94
|
+
try:
|
95
|
+
from ragas import evaluate
|
96
|
+
from ragas.metrics import answer_relevancy
|
97
|
+
except ImportError:
|
98
|
+
raise ImportError("Please run `pip install validmind[llm]` to use LLM tests")
|
99
|
+
|
96
100
|
warnings.filterwarnings(
|
97
101
|
"ignore",
|
98
102
|
category=FutureWarning,
|
@@ -6,8 +6,6 @@ import warnings
|
|
6
6
|
|
7
7
|
import plotly.express as px
|
8
8
|
from datasets import Dataset
|
9
|
-
from ragas import evaluate
|
10
|
-
from ragas.metrics import answer_similarity
|
11
9
|
|
12
10
|
from validmind import tags, tasks
|
13
11
|
|
@@ -79,6 +77,12 @@ def AnswerSimilarity(
|
|
79
77
|
}
|
80
78
|
```
|
81
79
|
"""
|
80
|
+
try:
|
81
|
+
from ragas import evaluate
|
82
|
+
from ragas.metrics import answer_similarity
|
83
|
+
except ImportError:
|
84
|
+
raise ImportError("Please run `pip install validmind[llm]` to use LLM tests")
|
85
|
+
|
82
86
|
warnings.filterwarnings(
|
83
87
|
"ignore",
|
84
88
|
category=FutureWarning,
|
@@ -6,28 +6,11 @@ import warnings
|
|
6
6
|
|
7
7
|
import plotly.express as px
|
8
8
|
from datasets import Dataset
|
9
|
-
from ragas import evaluate
|
10
|
-
from ragas.metrics.critique import AspectCritique as _AspectCritique
|
11
|
-
from ragas.metrics.critique import (
|
12
|
-
coherence,
|
13
|
-
conciseness,
|
14
|
-
correctness,
|
15
|
-
harmfulness,
|
16
|
-
maliciousness,
|
17
|
-
)
|
18
9
|
|
19
10
|
from validmind import tags, tasks
|
20
11
|
|
21
12
|
from .utils import get_ragas_config, get_renamed_columns
|
22
13
|
|
23
|
-
aspect_map = {
|
24
|
-
"coherence": coherence,
|
25
|
-
"conciseness": conciseness,
|
26
|
-
"correctness": correctness,
|
27
|
-
"harmfulness": harmfulness,
|
28
|
-
"maliciousness": maliciousness,
|
29
|
-
}
|
30
|
-
|
31
14
|
|
32
15
|
@tags("ragas", "llm", "qualitative")
|
33
16
|
@tasks("text_summarization", "text_generation", "text_qa")
|
@@ -116,6 +99,27 @@ def AspectCritique(
|
|
116
99
|
)
|
117
100
|
```
|
118
101
|
"""
|
102
|
+
try:
|
103
|
+
from ragas import evaluate
|
104
|
+
from ragas.metrics.critique import AspectCritique as _AspectCritique
|
105
|
+
from ragas.metrics.critique import (
|
106
|
+
coherence,
|
107
|
+
conciseness,
|
108
|
+
correctness,
|
109
|
+
harmfulness,
|
110
|
+
maliciousness,
|
111
|
+
)
|
112
|
+
except ImportError:
|
113
|
+
raise ImportError("Please run `pip install validmind[llm]` to use LLM tests")
|
114
|
+
|
115
|
+
aspect_map = {
|
116
|
+
"coherence": coherence,
|
117
|
+
"conciseness": conciseness,
|
118
|
+
"correctness": correctness,
|
119
|
+
"harmfulness": harmfulness,
|
120
|
+
"maliciousness": maliciousness,
|
121
|
+
}
|
122
|
+
|
119
123
|
warnings.filterwarnings(
|
120
124
|
"ignore",
|
121
125
|
category=FutureWarning,
|
@@ -6,8 +6,6 @@ import warnings
|
|
6
6
|
|
7
7
|
import plotly.express as px
|
8
8
|
from datasets import Dataset
|
9
|
-
from ragas import evaluate
|
10
|
-
from ragas.metrics import context_entity_recall
|
11
9
|
|
12
10
|
from validmind import tags, tasks
|
13
11
|
|
@@ -85,6 +83,12 @@ def ContextEntityRecall(
|
|
85
83
|
}
|
86
84
|
```
|
87
85
|
"""
|
86
|
+
try:
|
87
|
+
from ragas import evaluate
|
88
|
+
from ragas.metrics import context_entity_recall
|
89
|
+
except ImportError:
|
90
|
+
raise ImportError("Please run `pip install validmind[llm]` to use LLM tests")
|
91
|
+
|
88
92
|
warnings.filterwarnings(
|
89
93
|
"ignore",
|
90
94
|
category=FutureWarning,
|
@@ -6,8 +6,6 @@ import warnings
|
|
6
6
|
|
7
7
|
import plotly.express as px
|
8
8
|
from datasets import Dataset
|
9
|
-
from ragas import evaluate
|
10
|
-
from ragas.metrics import context_precision
|
11
9
|
|
12
10
|
from validmind import tags, tasks
|
13
11
|
|
@@ -80,6 +78,12 @@ def ContextPrecision(
|
|
80
78
|
}
|
81
79
|
```
|
82
80
|
"""
|
81
|
+
try:
|
82
|
+
from ragas import evaluate
|
83
|
+
from ragas.metrics import context_precision
|
84
|
+
except ImportError:
|
85
|
+
raise ImportError("Please run `pip install validmind[llm]` to use LLM tests")
|
86
|
+
|
83
87
|
warnings.filterwarnings(
|
84
88
|
"ignore",
|
85
89
|
category=FutureWarning,
|
@@ -6,8 +6,6 @@ import warnings
|
|
6
6
|
|
7
7
|
import plotly.express as px
|
8
8
|
from datasets import Dataset
|
9
|
-
from ragas import evaluate
|
10
|
-
from ragas.metrics import context_recall
|
11
9
|
|
12
10
|
from validmind import tags, tasks
|
13
11
|
|
@@ -80,6 +78,12 @@ def ContextRecall(
|
|
80
78
|
}
|
81
79
|
```
|
82
80
|
"""
|
81
|
+
try:
|
82
|
+
from ragas import evaluate
|
83
|
+
from ragas.metrics import context_recall
|
84
|
+
except ImportError:
|
85
|
+
raise ImportError("Please run `pip install validmind[llm]` to use LLM tests")
|
86
|
+
|
83
87
|
warnings.filterwarnings(
|
84
88
|
"ignore",
|
85
89
|
category=FutureWarning,
|
@@ -6,8 +6,6 @@ import warnings
|
|
6
6
|
|
7
7
|
import plotly.express as px
|
8
8
|
from datasets import Dataset
|
9
|
-
from ragas import evaluate
|
10
|
-
from ragas.metrics import context_relevancy
|
11
9
|
|
12
10
|
from validmind import tags, tasks
|
13
11
|
|
@@ -74,6 +72,12 @@ def ContextRelevancy(
|
|
74
72
|
}
|
75
73
|
```
|
76
74
|
"""
|
75
|
+
try:
|
76
|
+
from ragas import evaluate
|
77
|
+
from ragas.metrics import context_relevancy
|
78
|
+
except ImportError:
|
79
|
+
raise ImportError("Please run `pip install validmind[llm]` to use LLM tests")
|
80
|
+
|
77
81
|
warnings.filterwarnings(
|
78
82
|
"ignore",
|
79
83
|
category=FutureWarning,
|
@@ -6,8 +6,6 @@ import warnings
|
|
6
6
|
|
7
7
|
import plotly.express as px
|
8
8
|
from datasets import Dataset
|
9
|
-
from ragas import evaluate
|
10
|
-
from ragas.metrics import faithfulness
|
11
9
|
|
12
10
|
from validmind import tags, tasks
|
13
11
|
|
@@ -79,6 +77,12 @@ def Faithfulness(
|
|
79
77
|
}
|
80
78
|
```
|
81
79
|
"""
|
80
|
+
try:
|
81
|
+
from ragas import evaluate
|
82
|
+
from ragas.metrics import faithfulness
|
83
|
+
except ImportError:
|
84
|
+
raise ImportError("Please run `pip install validmind[llm]` to use LLM tests")
|
85
|
+
|
82
86
|
warnings.filterwarnings(
|
83
87
|
"ignore",
|
84
88
|
category=FutureWarning,
|
@@ -4,14 +4,18 @@
|
|
4
4
|
|
5
5
|
import os
|
6
6
|
|
7
|
-
from langchain_openai import ChatOpenAI, OpenAIEmbeddings
|
8
|
-
|
9
7
|
from validmind.ai.utils import get_client_and_model
|
10
8
|
|
11
9
|
EMBEDDINGS_MODEL = "text-embedding-3-small"
|
12
10
|
|
13
11
|
|
14
12
|
def get_ragas_config():
|
13
|
+
# import here since its an optional dependency
|
14
|
+
try:
|
15
|
+
from langchain_openai import ChatOpenAI, OpenAIEmbeddings
|
16
|
+
except ImportError:
|
17
|
+
raise ImportError("Please run `pip install validmind[llm]` to use LLM tests")
|
18
|
+
|
15
19
|
client, model = get_client_and_model()
|
16
20
|
os.environ["OPENAI_API_BASE"] = str(client.base_url)
|
17
21
|
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: validmind
|
3
|
-
Version: 2.4.
|
3
|
+
Version: 2.4.9
|
4
4
|
Summary: ValidMind Developer Framework
|
5
5
|
License: Commercial License
|
6
6
|
Author: Andres Rodriguez
|
@@ -29,10 +29,11 @@ Requires-Dist: latex2mathml (>=3.77.0)
|
|
29
29
|
Requires-Dist: llvmlite ; python_version >= "3.8" and python_full_version <= "3.11.0"
|
30
30
|
Requires-Dist: matplotlib
|
31
31
|
Requires-Dist: mistune (>=3.0.2,<4.0.0)
|
32
|
+
Requires-Dist: nest-asyncio (>=1.6.0,<2.0.0)
|
32
33
|
Requires-Dist: nltk (>=3.8.1,<4.0.0)
|
33
34
|
Requires-Dist: numba (<0.59.0)
|
34
35
|
Requires-Dist: numpy
|
35
|
-
Requires-Dist: openai (>=1)
|
36
|
+
Requires-Dist: openai (>=1)
|
36
37
|
Requires-Dist: pandas (>=1.1,<2)
|
37
38
|
Requires-Dist: plotly
|
38
39
|
Requires-Dist: plotly-express
|
@@ -1,5 +1,5 @@
|
|
1
1
|
validmind/__init__.py,sha256=UfmzPwUCdUWbWq3zPqqmq4jw0_kfl3hX4U72p_seE4I,3700
|
2
|
-
validmind/__version__.py,sha256=
|
2
|
+
validmind/__version__.py,sha256=jexP_bn42GgaPCRDRYZqRI6UFG4hFgjug7OJbg8uE0Y,22
|
3
3
|
validmind/ai/test_descriptions.py,sha256=Q1Ftus4x5eiVLKWJu7hqPLukBQZzhy-dARqq_6_JWtk,9464
|
4
4
|
validmind/ai/utils.py,sha256=TEXII_S5CpkpczzSyHwTlqLcPMLnPBJWEBR6QFMKh1U,3421
|
5
5
|
validmind/api_client.py,sha256=xr9VNqCmA_WFf8rVm-0M0pmzVyLAPFOnfEe4dAog1LA,17144
|
@@ -59,7 +59,7 @@ validmind/datasets/regression/models/fred_loan_rates_model_4.pkl,sha256=cSxhpcrI
|
|
59
59
|
validmind/datasets/regression/models/fred_loan_rates_model_5.pkl,sha256=FkNLHq9xkPMbYks_vyMjFL371mw9SQYbP1iX9lY4Ljo,60343
|
60
60
|
validmind/errors.py,sha256=qy7Gp6Uom5J6WmLw-CpE5zaTN96SiN7kJjDGBaJdoxY,8023
|
61
61
|
validmind/html_templates/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
62
|
-
validmind/html_templates/content_blocks.py,sha256=
|
62
|
+
validmind/html_templates/content_blocks.py,sha256=LTsv2Hr_drUUZVLEfY2JcT4z0M-45RGYy2sFInt1VKY,3998
|
63
63
|
validmind/input_registry.py,sha256=zexO3x-vncaoWvQ6VfkvgDLn6x72e2BNel_jCbrVHSE,793
|
64
64
|
validmind/logging.py,sha256=J1Y1dYCH1dtkoYCHoXMOQH_B7EO4fJytWRDrDqZZz8U,5204
|
65
65
|
validmind/models/__init__.py,sha256=lraTbNwoKckXNP3Dbyj-euI78UTkZ_w5wpUOb8l5nWs,729
|
@@ -101,7 +101,7 @@ validmind/tests/data_validation/BivariateScatterPlots.py,sha256=9QcMcbc3yiZl8LbV
|
|
101
101
|
validmind/tests/data_validation/ChiSquaredFeaturesTable.py,sha256=5lPRnNbHjxEdMGtp6fhg4cYy7FLSHbHxUtpymU8GRO0,5977
|
102
102
|
validmind/tests/data_validation/ClassImbalance.py,sha256=nRNHDtjCAgLQfWbCWP-zX5CFZSjJno8NWLXZBPaG_yA,6882
|
103
103
|
validmind/tests/data_validation/DFGLSArch.py,sha256=D6_kR4AkvctjK-MRUJCc9cELwdmTT_085QIGagliSsA,5365
|
104
|
-
validmind/tests/data_validation/DatasetDescription.py,sha256=
|
104
|
+
validmind/tests/data_validation/DatasetDescription.py,sha256=ftB6RrEc4Sfc2qGtOmX7Ogf8yJxGV9QJY29OzjdQCyE,11365
|
105
105
|
validmind/tests/data_validation/DatasetSplit.py,sha256=4BCeshqxvNSwmRwXw37uIJ3xy8JnU7ZJIWPyzzTdLJ0,5068
|
106
106
|
validmind/tests/data_validation/DescriptiveStatistics.py,sha256=5u1qx-VGD8aVBFEi_4ffCWZfJ17YXbT5PO1Na52KoNo,6333
|
107
107
|
validmind/tests/data_validation/Duplicates.py,sha256=oO1LPMyclfJno1_AAITpKB-fZryU-705BvYCm5StClw,5592
|
@@ -190,16 +190,16 @@ validmind/tests/model_validation/embeddings/StabilityAnalysisRandomNoise.py,sha2
|
|
190
190
|
validmind/tests/model_validation/embeddings/StabilityAnalysisSynonyms.py,sha256=npnOPAoXb5FoiwQEwp_gDcbGa5xk4rYnXChTJnuGX64,4405
|
191
191
|
validmind/tests/model_validation/embeddings/StabilityAnalysisTranslation.py,sha256=qLydyTQ6mzHOYQzqysjPPe_ltiTsRfPEhZDEDm5XxX8,4825
|
192
192
|
validmind/tests/model_validation/embeddings/TSNEComponentsPairwisePlots.py,sha256=ereo_dGf19xqvOGz7zcGwhDRU_UqvjFRi5n4KmGDKl8,4511
|
193
|
-
validmind/tests/model_validation/ragas/AnswerCorrectness.py,sha256=
|
194
|
-
validmind/tests/model_validation/ragas/AnswerRelevance.py,sha256=
|
195
|
-
validmind/tests/model_validation/ragas/AnswerSimilarity.py,sha256=
|
196
|
-
validmind/tests/model_validation/ragas/AspectCritique.py,sha256=
|
197
|
-
validmind/tests/model_validation/ragas/ContextEntityRecall.py,sha256=
|
198
|
-
validmind/tests/model_validation/ragas/ContextPrecision.py,sha256
|
199
|
-
validmind/tests/model_validation/ragas/ContextRecall.py,sha256=
|
200
|
-
validmind/tests/model_validation/ragas/ContextRelevancy.py,sha256=
|
201
|
-
validmind/tests/model_validation/ragas/Faithfulness.py,sha256=
|
202
|
-
validmind/tests/model_validation/ragas/utils.py,sha256=
|
193
|
+
validmind/tests/model_validation/ragas/AnswerCorrectness.py,sha256=XOEpsVqeaUCGUILu81ZLXSDlyqLStPX9ZKUJDrTh2Bg,5138
|
194
|
+
validmind/tests/model_validation/ragas/AnswerRelevance.py,sha256=Tz3rNO2PnHvvAw7YKWPUZiiitJTH6VJDG8LjC9Nkwx8,4997
|
195
|
+
validmind/tests/model_validation/ragas/AnswerSimilarity.py,sha256=O1xq5GNnWB9roscmaBRGiWEi0BvXh705ppeKJTP3O58,4457
|
196
|
+
validmind/tests/model_validation/ragas/AspectCritique.py,sha256=08jlfL4qVuRM-U4Y-zGYb9iy-DLsXk7JtdvA0yRK498,6263
|
197
|
+
validmind/tests/model_validation/ragas/ContextEntityRecall.py,sha256=Du3A5Jkpt9_msaF3bDy6tNvgomUkmgwsIxO2zdZmmyA,4904
|
198
|
+
validmind/tests/model_validation/ragas/ContextPrecision.py,sha256=-4LBSu1ovzIuf2evSoSwyYdrNtGl5-9w8yRQzjcdDtY,4630
|
199
|
+
validmind/tests/model_validation/ragas/ContextRecall.py,sha256=i72mPF8eO8BUrshdvn6Mpoq9oFSfvPH1lfWk-LKvS8w,4567
|
200
|
+
validmind/tests/model_validation/ragas/ContextRelevancy.py,sha256=TcfC-O7vj2zDU1UqIYC4KgAQaA9aaOtSUHuXfl70JJE,4155
|
201
|
+
validmind/tests/model_validation/ragas/Faithfulness.py,sha256=89EeM0lrUq5MAhKYhOO9cnp32WCap6eG2n28SjZH9c4,4525
|
202
|
+
validmind/tests/model_validation/ragas/utils.py,sha256=zh9_pGitutGBS4Tvk3Bw1D-QVnDueggNErAhAvMPUOA,3130
|
203
203
|
validmind/tests/model_validation/sklearn/AdjustedMutualInformation.py,sha256=KhQroHKDG4gpRAoD9Clw65qNslwGS93rTETdZTOqoTk,2840
|
204
204
|
validmind/tests/model_validation/sklearn/AdjustedRandIndex.py,sha256=nSs1BGC8MSWWp7T6M0FZR5kNPraiZwRJF7U6LNCoMMM,2715
|
205
205
|
validmind/tests/model_validation/sklearn/ClassifierPerformance.py,sha256=4ebx4erElJM32QOZD79ycL6jSNyz7a7yS5Oy86LlG3s,5885
|
@@ -307,8 +307,8 @@ validmind/vm_models/test_suite/runner.py,sha256=aewxadRfoOPH48jes2Gtb3Ju_FWFfVM_
|
|
307
307
|
validmind/vm_models/test_suite/summary.py,sha256=GQRNe2ZvvqjQN0yKmaN7ohAUjRFQIN4YYUYxfOuWN6M,4682
|
308
308
|
validmind/vm_models/test_suite/test.py,sha256=_GfbK36l98SjzgVcucmp0OKBJKqMW3neO7SqJ3EWeps,5049
|
309
309
|
validmind/vm_models/test_suite/test_suite.py,sha256=Cns2wL54v0T5Mv5_HJb3kMeaa4rtycdqT8KxK9_rWEU,6279
|
310
|
-
validmind-2.4.
|
311
|
-
validmind-2.4.
|
312
|
-
validmind-2.4.
|
313
|
-
validmind-2.4.
|
314
|
-
validmind-2.4.
|
310
|
+
validmind-2.4.9.dist-info/LICENSE,sha256=XonPUfwjvrC5Ombl3y-ko0Wubb1xdG_7nzvIbkZRKHw,35772
|
311
|
+
validmind-2.4.9.dist-info/METADATA,sha256=pZA_sXTyykGQNAwB6yPyMQIjFgvekoh_jdNhqf0eaXY,4250
|
312
|
+
validmind-2.4.9.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
|
313
|
+
validmind-2.4.9.dist-info/entry_points.txt,sha256=HuW7YyOv9u_OEWpViQXtv0nfoI67uieJHawKWA4Hv9A,76
|
314
|
+
validmind-2.4.9.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|