unique_toolkit 1.14.3__py3-none-any.whl → 1.14.5__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.
@@ -2,12 +2,12 @@ from typing import Annotated, Any
2
2
 
3
3
  from pydantic import BaseModel, Field
4
4
 
5
- from unique_toolkit._common.default_language_model import DEFAULT_GPT_4o
6
5
  from unique_toolkit._common.validators import LMI, get_LMI_default_field
7
6
  from unique_toolkit.agentic.evaluation.context_relevancy.schema import (
8
7
  StructuredOutputConfig,
9
8
  )
10
9
  from unique_toolkit.agentic.tools.config import get_configuration_dict
10
+ from unique_toolkit.language_model.default_language_model import DEFAULT_GPT_4o
11
11
 
12
12
 
13
13
  class ChunkRelevancySortConfig(BaseModel):
@@ -13,9 +13,6 @@ from unique_toolkit._common.chunk_relevancy_sorter.schemas import (
13
13
  ChunkRelevancySorterResult,
14
14
  )
15
15
  from unique_toolkit._common.chunk_relevancy_sorter.service import ChunkRelevancySorter
16
- from unique_toolkit._common.default_language_model import (
17
- DEFAULT_GPT_4o,
18
- )
19
16
  from unique_toolkit.agentic.evaluation.context_relevancy.schema import (
20
17
  StructuredOutputConfig,
21
18
  )
@@ -25,6 +22,7 @@ from unique_toolkit.agentic.evaluation.schemas import (
25
22
  )
26
23
  from unique_toolkit.app.schemas import ChatEvent
27
24
  from unique_toolkit.content.schemas import ContentChunk
25
+ from unique_toolkit.language_model.default_language_model import DEFAULT_GPT_4o
28
26
  from unique_toolkit.language_model.infos import LanguageModelInfo
29
27
 
30
28
 
@@ -1,3 +1,12 @@
1
+ import warnings
2
+
1
3
  from unique_toolkit.language_model.infos import LanguageModelName
2
4
 
5
+ warnings.warn(
6
+ "unique_toolkit._common.default_language_model is deprecated. "
7
+ "Import DEFAULT_GPT_4o from unique_toolkit.language_model instead.",
8
+ DeprecationWarning,
9
+ stacklevel=2,
10
+ )
11
+
3
12
  DEFAULT_GPT_4o = LanguageModelName.AZURE_GPT_4o_2024_1120
@@ -3,8 +3,8 @@ from typing import Any
3
3
  from humps import camelize
4
4
  from pydantic import BaseModel, ConfigDict, Field
5
5
 
6
- from unique_toolkit._common.default_language_model import DEFAULT_GPT_4o
7
6
  from unique_toolkit._common.validators import LMI
7
+ from unique_toolkit.language_model.default_language_model import DEFAULT_GPT_4o
8
8
  from unique_toolkit.language_model.infos import LanguageModelInfo
9
9
 
10
10
  from .schemas import (
@@ -4,7 +4,6 @@ from typing import overload
4
4
  from pydantic import BaseModel, ValidationError
5
5
  from typing_extensions import deprecated
6
6
 
7
- from unique_toolkit._common.default_language_model import DEFAULT_GPT_4o
8
7
  from unique_toolkit._common.validate_required_values import (
9
8
  validate_required_values,
10
9
  )
@@ -24,6 +23,7 @@ from unique_toolkit.agentic.evaluation.schemas import (
24
23
  EvaluationMetricResult,
25
24
  )
26
25
  from unique_toolkit.app.schemas import BaseEvent, ChatEvent
26
+ from unique_toolkit.language_model.default_language_model import DEFAULT_GPT_4o
27
27
  from unique_toolkit.language_model.infos import (
28
28
  LanguageModelInfo,
29
29
  ModelCapabilities,
@@ -2,7 +2,6 @@ from typing import Any
2
2
 
3
3
  from pydantic import Field
4
4
 
5
- from unique_toolkit._common.default_language_model import DEFAULT_GPT_4o
6
5
  from unique_toolkit._common.validators import LMI
7
6
  from unique_toolkit.agentic.evaluation.config import EvaluationMetricConfig
8
7
  from unique_toolkit.agentic.evaluation.hallucination.prompts import (
@@ -15,6 +14,7 @@ from unique_toolkit.agentic.evaluation.schemas import (
15
14
  EvaluationMetricInputFieldName,
16
15
  EvaluationMetricName,
17
16
  )
17
+ from unique_toolkit.language_model.default_language_model import DEFAULT_GPT_4o
18
18
  from unique_toolkit.language_model.infos import LanguageModelInfo
19
19
 
20
20
  SYSTEM_MSG_KEY = "systemPrompt"
@@ -3,7 +3,6 @@ from typing import Annotated, Awaitable, Callable
3
3
 
4
4
  from pydantic import BaseModel, Field
5
5
 
6
- from unique_toolkit._common.default_language_model import DEFAULT_GPT_4o
7
6
  from unique_toolkit._common.validators import LMI
8
7
  from unique_toolkit.agentic.history_manager.loop_token_reducer import LoopTokenReducer
9
8
  from unique_toolkit.agentic.history_manager.utils import transform_chunks_to_string
@@ -11,6 +10,7 @@ from unique_toolkit.agentic.reference_manager.reference_manager import Reference
11
10
  from unique_toolkit.agentic.tools.config import get_configuration_dict
12
11
  from unique_toolkit.agentic.tools.schemas import ToolCallResponse
13
12
  from unique_toolkit.app.schemas import ChatEvent
13
+ from unique_toolkit.language_model.default_language_model import DEFAULT_GPT_4o
14
14
  from unique_toolkit.language_model.infos import LanguageModelInfo
15
15
  from unique_toolkit.language_model.schemas import (
16
16
  LanguageModelAssistantMessage,
@@ -2,12 +2,12 @@ from pathlib import Path
2
2
 
3
3
  from pydantic import AliasChoices, BaseModel, Field
4
4
 
5
- from unique_toolkit._common.default_language_model import DEFAULT_GPT_4o
6
5
  from unique_toolkit._common.pydantic_helpers import get_configuration_dict
7
6
  from unique_toolkit._common.validators import LMI, get_LMI_default_field
8
7
  from unique_toolkit.chat.schemas import (
9
8
  ChatMessageAssessmentType,
10
9
  )
10
+ from unique_toolkit.language_model.default_language_model import DEFAULT_GPT_4o
11
11
 
12
12
  DEFAULT_EVALUATION_SYSTEM_MESSAGE_TEMPLATE = """
13
13
  You are a through and precise summarization model.
@@ -189,4 +189,5 @@ class FolderInfo(BaseModel):
189
189
 
190
190
  class DeleteContentResponse(BaseModel):
191
191
  model_config = model_config
192
- id: str
192
+ content_id: str
193
+ object: str
@@ -0,0 +1,3 @@
1
+ from unique_toolkit.language_model.infos import LanguageModelName
2
+
3
+ DEFAULT_GPT_4o = LanguageModelName.AZURE_GPT_4o_2024_1120
@@ -745,19 +745,8 @@ class KnowledgeBaseService:
745
745
  *,
746
746
  content_id: str | None = None,
747
747
  file_path: str | None = None,
748
- metadata_filter: dict[str, Any] | None = None,
749
748
  ) -> DeleteContentResponse:
750
749
  """Delete content by id, file path or metadata filter"""
751
- if metadata_filter:
752
- infos = self.get_paginated_content_infos(
753
- metadata_filter=metadata_filter,
754
- )
755
- for info in infos.content_infos:
756
- delete_content(
757
- user_id=self._user_id,
758
- company_id=self._company_id,
759
- content_id=info.id,
760
- )
761
750
 
762
751
  return delete_content(
763
752
  user_id=self._user_id,
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: unique_toolkit
3
- Version: 1.14.3
3
+ Version: 1.14.5
4
4
  Summary:
5
5
  License: Proprietary
6
6
  Author: Cedric Klinkert
@@ -118,6 +118,14 @@ All notable changes to this project will be documented in this file.
118
118
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
119
119
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
120
120
 
121
+
122
+ ## [1.14.5] - 2025-10-09
123
+ - Move `DEFAULT_GPT_4o` constant from `_common/default_language_model.py` to `language_model/constants.py` and deprecate old import path
124
+
125
+ ## [1.14.4] - 2025-10-09
126
+ - Small fixes when deleting content
127
+ - Fixes in documentation
128
+
121
129
  ## [1.14.3] - 2025-10-08
122
130
  - Reorganizes documentation
123
131
  - All service interface towards a single folder
@@ -3,12 +3,12 @@ unique_toolkit/_common/_base_service.py,sha256=S8H0rAebx7GsOldA7xInLp3aQJt9yEPDQ
3
3
  unique_toolkit/_common/_time_utils.py,sha256=ztmTovTvr-3w71Ns2VwXC65OKUUh-sQlzbHdKTQWm-w,135
4
4
  unique_toolkit/_common/api_calling/human_verification_manager.py,sha256=wgK0hefTh3pdrs8kH26Pba46ROQoFihEhT4r6h189wo,7819
5
5
  unique_toolkit/_common/base_model_type_attribute.py,sha256=7rzVqjXa0deYEixeo_pJSJcQ7nKXpWK_UGpOiEH3yZY,10382
6
- unique_toolkit/_common/chunk_relevancy_sorter/config.py,sha256=Tz5no5_qojTX9LNqOewzyxAI7gOIQ5f6PTJiAh6UkBk,1799
6
+ unique_toolkit/_common/chunk_relevancy_sorter/config.py,sha256=tHETuMIC4CA_TPwU0oaHbckaKhvMFMYdO_d4lNRKnRc,1806
7
7
  unique_toolkit/_common/chunk_relevancy_sorter/exception.py,sha256=1mY4zjbvnXsd5oIxwiVsma09bS2XRnHrxW8KJBGtgCM,126
8
8
  unique_toolkit/_common/chunk_relevancy_sorter/schemas.py,sha256=YAyvXzVk8h5q6FEsXyvPi16VIONst9HLFeMi1guGPzs,1342
9
9
  unique_toolkit/_common/chunk_relevancy_sorter/service.py,sha256=ZX1pxcy53zh3Ha0_pN6yYIbMX1acRxcvqKTPTKpGKwA,13938
10
- unique_toolkit/_common/chunk_relevancy_sorter/tests/test_service.py,sha256=QDnUFOmTYHeg62_reQn2ipaDVnKbMDw43QkjkU4Yb6Y,8894
11
- unique_toolkit/_common/default_language_model.py,sha256=-_DBsJhLCsFdaU4ynAkyW0jYIl2lhrPybZm1K-GgVJs,125
10
+ unique_toolkit/_common/chunk_relevancy_sorter/tests/test_service.py,sha256=giD9b5W8A0xP18dZCcrLUruoGi38BeBvPnO1phY7Sp0,8892
11
+ unique_toolkit/_common/default_language_model.py,sha256=XCZu6n270QkxEeTpj5NZJda6Ok_IR-GcS8w30DU21aI,343
12
12
  unique_toolkit/_common/endpoint_builder.py,sha256=WzJrJ7azUQhvQRd-vsFFoyj6omJpHiVYrh1UFxNQvVg,8242
13
13
  unique_toolkit/_common/endpoint_requestor.py,sha256=7rDpeEvmQbLtn3iNW8NftyvAqDkLFGHoYN1h5AFDxho,12319
14
14
  unique_toolkit/_common/exception.py,sha256=hwh60UUawHDyPFNs-Wom-Gc6Yb09gPelftAuW1tXE6o,779
@@ -27,13 +27,13 @@ unique_toolkit/_common/validate_required_values.py,sha256=Y_M1ub9gIKP9qZ45F6Zq3Z
27
27
  unique_toolkit/_common/validators.py,sha256=LFZmAalNa886EXm1VYamFvfBuUZjYKwDdT_HOYU0BtE,2934
28
28
  unique_toolkit/agentic/__init__.py,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
29
29
  unique_toolkit/agentic/debug_info_manager/debug_info_manager.py,sha256=8u3_oxcln7y2zOsfiGh5YOm1zYAlV5QxZ5YAsbEJG0c,584
30
- unique_toolkit/agentic/evaluation/config.py,sha256=Fer-y1aP8kmnPWXQydh12i9f_XU7KuZexCsnBhv_Glw,980
30
+ unique_toolkit/agentic/evaluation/config.py,sha256=zcW7m63Yt5G39hN2If8slBl6Eu3jTRoRPjYaUMn54Uk,987
31
31
  unique_toolkit/agentic/evaluation/context_relevancy/prompts.py,sha256=EdHFUOB581yVxcOL8482KUv_LzaRjuiem71EF8udYMc,1331
32
32
  unique_toolkit/agentic/evaluation/context_relevancy/schema.py,sha256=lZd0TPzH43ifgWWGg3WO6b1AQX8aK2R9y51yH0d1DHM,2919
33
- unique_toolkit/agentic/evaluation/context_relevancy/service.py,sha256=fkPGq4Nnn5las1waYDICqHl6xC-rR5iOpT24YifGO20,9654
33
+ unique_toolkit/agentic/evaluation/context_relevancy/service.py,sha256=2NM1_PCP6fXsRm0r-MGrUg5Z3WO00FBCqmiU8f5Kagg,9661
34
34
  unique_toolkit/agentic/evaluation/evaluation_manager.py,sha256=IPx4BVUgkjFOP1BGLi0BlB6UujpXlZ0KGuSXDRemQhY,8143
35
35
  unique_toolkit/agentic/evaluation/exception.py,sha256=7lcVbCyoN4Md1chNJDFxpUYyWbVrcr9dcc3TxWykJTc,115
36
- unique_toolkit/agentic/evaluation/hallucination/constants.py,sha256=0HyvI5zu7JmjHLe9lKJSeAWMvfQfpmR6MLHJ4HPX1hc,2063
36
+ unique_toolkit/agentic/evaluation/hallucination/constants.py,sha256=SoGmoYti2J33tSmmOC1BSF6Pkh8DQvbQAU9xIZFQZRs,2070
37
37
  unique_toolkit/agentic/evaluation/hallucination/hallucination_evaluation.py,sha256=yMcfA7iMNXkneNrFxJuoDIoB37mK8IRXEKnPsK_UDOk,3454
38
38
  unique_toolkit/agentic/evaluation/hallucination/prompts.py,sha256=O3Hi_rOzZlujvnO2wn2jhoPmrYLjzVtRWwxn5Q81m9Y,3405
39
39
  unique_toolkit/agentic/evaluation/hallucination/service.py,sha256=Ut-f768HY4E9zEhfMoKYnGTFRZVkxWGiSTGOpgfZWYM,2447
@@ -43,7 +43,7 @@ unique_toolkit/agentic/evaluation/schemas.py,sha256=m9JMCUmeqP8KhsJOVEzsz6dRXUe1
43
43
  unique_toolkit/agentic/evaluation/tests/test_context_relevancy_service.py,sha256=4tDxHTApbaTMxN1sNS8WCqj2BweRk6YqZ5_zHP45jto,7977
44
44
  unique_toolkit/agentic/evaluation/tests/test_output_parser.py,sha256=RN_HcBbU6qy_e_PoYyUFcjWnp3ymJ6-gLj6TgEOupAI,3107
45
45
  unique_toolkit/agentic/history_manager/history_construction_with_contents.py,sha256=c8Zy3erSbHGT8AdICRRlSK91T_FN6tNpTznvUzpLbWk,9023
46
- unique_toolkit/agentic/history_manager/history_manager.py,sha256=8PMBwKtBSJDUmHwjrjr5wzkXVVQsrf2TN6I1B1WGoag,9463
46
+ unique_toolkit/agentic/history_manager/history_manager.py,sha256=xWA8w5CWrzueGW05ekIhc_Y_-_380hFfIB4rB5wlito,9470
47
47
  unique_toolkit/agentic/history_manager/loop_token_reducer.py,sha256=3QSDXZ9M12-cDhYr7-UgDYGEMySkXENt1OkfD0CruQ8,18538
48
48
  unique_toolkit/agentic/history_manager/utils.py,sha256=NDSSz0Jp3oVJU3iKlVScmM1AOe-6hTiVjLr16DUPsV0,5656
49
49
  unique_toolkit/agentic/postprocessor/postprocessor_manager.py,sha256=GDzJhaoOUwxZ37IINkQ7au4CHmAOFS5miP2lqv8ZwZA,4277
@@ -55,7 +55,7 @@ unique_toolkit/agentic/tools/a2a/__init__.py,sha256=uWLg5FhmPyZzo_hZBYcGmqnswTuW
55
55
  unique_toolkit/agentic/tools/a2a/config.py,sha256=6diTTSiS2prY294LfYozB-db2wmJ6jv1hAr2leRY-xk,768
56
56
  unique_toolkit/agentic/tools/a2a/evaluation/__init__.py,sha256=_cR8uBwLbG7lyXoRskTpItzacgs4n23e2LeqClrytuc,354
57
57
  unique_toolkit/agentic/tools/a2a/evaluation/_utils.py,sha256=GtcPAMWkwGwJ--hBxn35ow9jN0VKYx8h2qMUXR8DCho,1877
58
- unique_toolkit/agentic/tools/a2a/evaluation/config.py,sha256=faYYABL3Z-u7930MduTb5VO-W7VKYblQ5mS6mqjMJQA,2348
58
+ unique_toolkit/agentic/tools/a2a/evaluation/config.py,sha256=Ra5rzJArS3r8C7RTmzKB8cLEYh4w-u3pe_XLgul3GOA,2355
59
59
  unique_toolkit/agentic/tools/a2a/evaluation/evaluator.py,sha256=K4GkVOQwAUofjMF1-ofIGV3XPY1vOnOA8aw6CducRc0,7248
60
60
  unique_toolkit/agentic/tools/a2a/evaluation/summarization_user_message.j2,sha256=acP1YqD_sCy6DT0V2EIfhQTmaUKeqpeWNJ7RGgceo8I,271
61
61
  unique_toolkit/agentic/tools/a2a/manager.py,sha256=FkO9jY7o8Td0t-HBkkatmxwhJGSJXmYkFYKFhPdbpMo,1674
@@ -113,7 +113,7 @@ unique_toolkit/chat/utils.py,sha256=ihm-wQykBWhB4liR3LnwPVPt_qGW6ETq21Mw4HY0THE,
113
113
  unique_toolkit/content/__init__.py,sha256=EdJg_A_7loEtCQf4cah3QARQreJx6pdz89Rm96YbMVg,940
114
114
  unique_toolkit/content/constants.py,sha256=1iy4Y67xobl5VTnJB6SxSyuoBWbdLl9244xfVMUZi5o,60
115
115
  unique_toolkit/content/functions.py,sha256=TWwXGHZ8AeBC7UbRVjKXjHC7PmlghPtPNQvw7fOj1tY,22403
116
- unique_toolkit/content/schemas.py,sha256=pBm1XHSgATdVe9PWUcEetRux9W6oRQ91oFl-kHofDh0,5665
116
+ unique_toolkit/content/schemas.py,sha256=s2DOidIntzzqLSJGGOzqKC26dPEl-zFQZxnqLaPQ88I,5689
117
117
  unique_toolkit/content/service.py,sha256=i7wN_wYjF8NBZHBcpcA5XRlMRGntuw3mlVoudAoGQRk,23293
118
118
  unique_toolkit/content/smart_rules.py,sha256=z2gHToPrdyj3HqO8Uu-JE5G2ClvJPuhR2XERmmkgoug,9668
119
119
  unique_toolkit/content/utils.py,sha256=qNVmHTuETaPNGqheg7TbgPr1_1jbNHDc09N5RrmUIyo,7901
@@ -133,6 +133,7 @@ unique_toolkit/framework_utilities/utils.py,sha256=JK7g2yMfEx3eMprug26769xqNpS5W
133
133
  unique_toolkit/language_model/__init__.py,sha256=lRQyLlbwHbNFf4-0foBU13UGb09lwEeodbVsfsSgaCk,1971
134
134
  unique_toolkit/language_model/builder.py,sha256=4OKfwJfj3TrgO1ezc_ewIue6W7BCQ2ZYQXUckWVPPTA,3369
135
135
  unique_toolkit/language_model/constants.py,sha256=B-topqW0r83dkC_25DeQfnPk3n53qzIHUCBS7YJ0-1U,119
136
+ unique_toolkit/language_model/default_language_model.py,sha256=-_DBsJhLCsFdaU4ynAkyW0jYIl2lhrPybZm1K-GgVJs,125
136
137
  unique_toolkit/language_model/functions.py,sha256=PNCmbYovhgMSkY89p7-3DunG6jIekaZPvhh3iplG1Vg,16720
137
138
  unique_toolkit/language_model/infos.py,sha256=jc53AfqUyhgDRSK-nIK2S8d1RsedTNyyE_QQgGG_RFk,59256
138
139
  unique_toolkit/language_model/prompt.py,sha256=JSawaLjQg3VR-E2fK8engFyJnNdk21zaO8pPIodzN4Q,3991
@@ -142,7 +143,7 @@ unique_toolkit/language_model/service.py,sha256=JkYGtCug8POQskTv_aoYkzTMOaPCWRM9
142
143
  unique_toolkit/language_model/utils.py,sha256=bPQ4l6_YO71w-zaIPanUUmtbXC1_hCvLK0tAFc3VCRc,1902
143
144
  unique_toolkit/protocols/support.py,sha256=V15WEIFKVMyF1QCnR8vIi4GrJy4dfTCB6d6JlqPZ58o,2341
144
145
  unique_toolkit/services/chat_service.py,sha256=bSrsN_7jsBW_BiuIWvtwkJ57AmlKLKz_cWlc0t0Q0P8,54621
145
- unique_toolkit/services/knowledge_base.py,sha256=UU8S858sjrAJhOKtDb0b0RvjwzjZOvErNk4ShyLrTZY,27610
146
+ unique_toolkit/services/knowledge_base.py,sha256=WFeLnFf23AWHsAweDGrKIMI93HPE720fC_SaNh7mLNU,27183
146
147
  unique_toolkit/short_term_memory/__init__.py,sha256=2mI3AUrffgH7Yt-xS57EGqnHf7jnn6xquoKEhJqk3Wg,185
147
148
  unique_toolkit/short_term_memory/constants.py,sha256=698CL6-wjup2MvU19RxSmQk3gX7aqW_OOpZB7sbz_Xg,34
148
149
  unique_toolkit/short_term_memory/functions.py,sha256=3WiK-xatY5nh4Dr5zlDUye1k3E6kr41RiscwtTplw5k,4484
@@ -151,7 +152,7 @@ unique_toolkit/short_term_memory/service.py,sha256=5PeVBu1ZCAfyDb2HLVvlmqSbyzBBu
151
152
  unique_toolkit/smart_rules/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
152
153
  unique_toolkit/smart_rules/compile.py,sha256=Ozhh70qCn2yOzRWr9d8WmJeTo7AQurwd3tStgBMPFLA,1246
153
154
  unique_toolkit/test_utilities/events.py,sha256=_mwV2bs5iLjxS1ynDCjaIq-gjjKhXYCK-iy3dRfvO3g,6410
154
- unique_toolkit-1.14.3.dist-info/LICENSE,sha256=GlN8wHNdh53xwOPg44URnwag6TEolCjoq3YD_KrWgss,193
155
- unique_toolkit-1.14.3.dist-info/METADATA,sha256=a20ctjbmG5B_awkA-XLgmEcA0aCTYDv9W-njpI8u8S0,36512
156
- unique_toolkit-1.14.3.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
157
- unique_toolkit-1.14.3.dist-info/RECORD,,
155
+ unique_toolkit-1.14.5.dist-info/LICENSE,sha256=GlN8wHNdh53xwOPg44URnwag6TEolCjoq3YD_KrWgss,193
156
+ unique_toolkit-1.14.5.dist-info/METADATA,sha256=_MuqLWGMCIHWePHTGKlVry7IBOBlRgCPcbCz7UvNxgQ,36763
157
+ unique_toolkit-1.14.5.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
158
+ unique_toolkit-1.14.5.dist-info/RECORD,,