wordlift-client 1.114.0__py3-none-any.whl → 1.116.0__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.
@@ -15,7 +15,7 @@
15
15
  """ # noqa: E501
16
16
 
17
17
 
18
- __version__ = "1.114.0"
18
+ __version__ = "1.116.0"
19
19
 
20
20
  # import apis into sdk package
21
21
  from wordlift_client.api.account_api import AccountApi
@@ -62,6 +62,7 @@ from wordlift_client.api.image_to_text_api import ImageToTextApi
62
62
  from wordlift_client.api.include_excludes_api import IncludeExcludesApi
63
63
  from wordlift_client.api.inspector_api import InspectorApi
64
64
  from wordlift_client.api.internal_links_api import InternalLinksApi
65
+ from wordlift_client.api.link_groups_api import LinkGroupsApi
65
66
  from wordlift_client.api.long_tails_api import LongTailsApi
66
67
  from wordlift_client.api.merchant_syncs_api import MerchantSyncsApi
67
68
  from wordlift_client.api.merchants_api import MerchantsApi
@@ -179,7 +180,10 @@ from wordlift_client.models.internal_link_request import InternalLinkRequest
179
180
  from wordlift_client.models.internal_link_source import InternalLinkSource
180
181
  from wordlift_client.models.item import Item
181
182
  from wordlift_client.models.kg_embedding_request import KgEmbeddingRequest
183
+ from wordlift_client.models.kg_embedding_response import KgEmbeddingResponse
182
184
  from wordlift_client.models.level_enum import LevelEnum
185
+ from wordlift_client.models.link_group import LinkGroup
186
+ from wordlift_client.models.link_group_response import LinkGroupResponse
183
187
  from wordlift_client.models.location_inner import LocationInner
184
188
  from wordlift_client.models.longtail_response import LongtailResponse
185
189
  from wordlift_client.models.merchant import Merchant
@@ -45,6 +45,7 @@ from wordlift_client.api.image_to_text_api import ImageToTextApi
45
45
  from wordlift_client.api.include_excludes_api import IncludeExcludesApi
46
46
  from wordlift_client.api.inspector_api import InspectorApi
47
47
  from wordlift_client.api.internal_links_api import InternalLinksApi
48
+ from wordlift_client.api.link_groups_api import LinkGroupsApi
48
49
  from wordlift_client.api.long_tails_api import LongTailsApi
49
50
  from wordlift_client.api.merchant_syncs_api import MerchantSyncsApi
50
51
  from wordlift_client.api.merchants_api import MerchantsApi
@@ -17,9 +17,9 @@ from pydantic import validate_call, Field, StrictFloat, StrictStr, StrictInt
17
17
  from typing import Any, Dict, List, Optional, Tuple, Union
18
18
  from typing_extensions import Annotated
19
19
 
20
- from pydantic import StrictStr
21
- from typing import Dict, List
20
+ from typing import List
22
21
  from wordlift_client.models.kg_embedding_request import KgEmbeddingRequest
22
+ from wordlift_client.models.kg_embedding_response import KgEmbeddingResponse
23
23
 
24
24
  from wordlift_client.api_client import ApiClient, RequestSerialized
25
25
  from wordlift_client.api_response import ApiResponse
@@ -55,7 +55,7 @@ class EmbeddingApi:
55
55
  _content_type: Optional[StrictStr] = None,
56
56
  _headers: Optional[Dict[StrictStr, Any]] = None,
57
57
  _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
58
- ) -> List[Dict[str, str]]:
58
+ ) -> List[KgEmbeddingResponse]:
59
59
  """Create
60
60
 
61
61
  Create the embedding for the IRIs for the provided query.
@@ -93,7 +93,7 @@ class EmbeddingApi:
93
93
  )
94
94
 
95
95
  _response_types_map: Dict[str, Optional[str]] = {
96
- '201': "List[Dict[str, str]]",
96
+ '201': "List[KgEmbeddingResponse]",
97
97
  '401': None,
98
98
  }
99
99
  response_data = await self.api_client.call_api(
@@ -123,7 +123,7 @@ class EmbeddingApi:
123
123
  _content_type: Optional[StrictStr] = None,
124
124
  _headers: Optional[Dict[StrictStr, Any]] = None,
125
125
  _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
126
- ) -> ApiResponse[List[Dict[str, str]]]:
126
+ ) -> ApiResponse[List[KgEmbeddingResponse]]:
127
127
  """Create
128
128
 
129
129
  Create the embedding for the IRIs for the provided query.
@@ -161,7 +161,7 @@ class EmbeddingApi:
161
161
  )
162
162
 
163
163
  _response_types_map: Dict[str, Optional[str]] = {
164
- '201': "List[Dict[str, str]]",
164
+ '201': "List[KgEmbeddingResponse]",
165
165
  '401': None,
166
166
  }
167
167
  response_data = await self.api_client.call_api(
@@ -229,7 +229,7 @@ class EmbeddingApi:
229
229
  )
230
230
 
231
231
  _response_types_map: Dict[str, Optional[str]] = {
232
- '201': "List[Dict[str, str]]",
232
+ '201': "List[KgEmbeddingResponse]",
233
233
  '401': None,
234
234
  }
235
235
  response_data = await self.api_client.call_api(
@@ -0,0 +1,319 @@
1
+ # coding: utf-8
2
+
3
+ """
4
+ WordLift API
5
+
6
+ WordLift API
7
+
8
+ The version of the OpenAPI document: 1.0
9
+ Contact: hello@wordlift.io
10
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
11
+
12
+ Do not edit the class manually.
13
+ """ # noqa: E501
14
+
15
+ import warnings
16
+ from pydantic import validate_call, Field, StrictFloat, StrictStr, StrictInt
17
+ from typing import Any, Dict, List, Optional, Tuple, Union
18
+ from typing_extensions import Annotated
19
+
20
+ from pydantic import Field, StrictInt, StrictStr
21
+ from typing import List
22
+ from typing_extensions import Annotated
23
+ from wordlift_client.models.link_group_response import LinkGroupResponse
24
+
25
+ from wordlift_client.api_client import ApiClient, RequestSerialized
26
+ from wordlift_client.api_response import ApiResponse
27
+ from wordlift_client.rest import RESTResponseType
28
+
29
+
30
+ class LinkGroupsApi:
31
+ """NOTE: This class is auto generated by OpenAPI Generator
32
+ Ref: https://openapi-generator.tech
33
+
34
+ Do not edit the class manually.
35
+ """
36
+
37
+ def __init__(self, api_client=None) -> None:
38
+ if api_client is None:
39
+ api_client = ApiClient.get_default()
40
+ self.api_client = api_client
41
+
42
+
43
+ @validate_call
44
+ async def get_link_groups(
45
+ self,
46
+ id: Annotated[StrictInt, Field(description="Graph id")],
47
+ url: Annotated[List[StrictStr], Field(description="One or more URLs.")],
48
+ _request_timeout: Union[
49
+ None,
50
+ Annotated[StrictFloat, Field(gt=0)],
51
+ Tuple[
52
+ Annotated[StrictFloat, Field(gt=0)],
53
+ Annotated[StrictFloat, Field(gt=0)]
54
+ ]
55
+ ] = None,
56
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
57
+ _content_type: Optional[StrictStr] = None,
58
+ _headers: Optional[Dict[StrictStr, Any]] = None,
59
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
60
+ ) -> LinkGroupResponse:
61
+ """Get
62
+
63
+ Get Link Groups
64
+
65
+ :param id: Graph id (required)
66
+ :type id: int
67
+ :param url: One or more URLs. (required)
68
+ :type url: List[str]
69
+ :param _request_timeout: timeout setting for this request. If one
70
+ number provided, it will be total request
71
+ timeout. It can also be a pair (tuple) of
72
+ (connection, read) timeouts.
73
+ :type _request_timeout: int, tuple(int, int), optional
74
+ :param _request_auth: set to override the auth_settings for an a single
75
+ request; this effectively ignores the
76
+ authentication in the spec for a single request.
77
+ :type _request_auth: dict, optional
78
+ :param _content_type: force content-type for the request.
79
+ :type _content_type: str, Optional
80
+ :param _headers: set to override the headers for a single
81
+ request; this effectively ignores the headers
82
+ in the spec for a single request.
83
+ :type _headers: dict, optional
84
+ :param _host_index: set to override the host_index for a single
85
+ request; this effectively ignores the host_index
86
+ in the spec for a single request.
87
+ :type _host_index: int, optional
88
+ :return: Returns the result object.
89
+ """ # noqa: E501
90
+
91
+ _param = self._get_link_groups_serialize(
92
+ id=id,
93
+ url=url,
94
+ _request_auth=_request_auth,
95
+ _content_type=_content_type,
96
+ _headers=_headers,
97
+ _host_index=_host_index
98
+ )
99
+
100
+ _response_types_map: Dict[str, Optional[str]] = {
101
+ '200': "LinkGroupResponse",
102
+ '401': None,
103
+ }
104
+ response_data = await self.api_client.call_api(
105
+ *_param,
106
+ _request_timeout=_request_timeout
107
+ )
108
+ await response_data.read()
109
+ return self.api_client.response_deserialize(
110
+ response_data=response_data,
111
+ response_types_map=_response_types_map,
112
+ ).data
113
+
114
+
115
+ @validate_call
116
+ async def get_link_groups_with_http_info(
117
+ self,
118
+ id: Annotated[StrictInt, Field(description="Graph id")],
119
+ url: Annotated[List[StrictStr], Field(description="One or more URLs.")],
120
+ _request_timeout: Union[
121
+ None,
122
+ Annotated[StrictFloat, Field(gt=0)],
123
+ Tuple[
124
+ Annotated[StrictFloat, Field(gt=0)],
125
+ Annotated[StrictFloat, Field(gt=0)]
126
+ ]
127
+ ] = None,
128
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
129
+ _content_type: Optional[StrictStr] = None,
130
+ _headers: Optional[Dict[StrictStr, Any]] = None,
131
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
132
+ ) -> ApiResponse[LinkGroupResponse]:
133
+ """Get
134
+
135
+ Get Link Groups
136
+
137
+ :param id: Graph id (required)
138
+ :type id: int
139
+ :param url: One or more URLs. (required)
140
+ :type url: List[str]
141
+ :param _request_timeout: timeout setting for this request. If one
142
+ number provided, it will be total request
143
+ timeout. It can also be a pair (tuple) of
144
+ (connection, read) timeouts.
145
+ :type _request_timeout: int, tuple(int, int), optional
146
+ :param _request_auth: set to override the auth_settings for an a single
147
+ request; this effectively ignores the
148
+ authentication in the spec for a single request.
149
+ :type _request_auth: dict, optional
150
+ :param _content_type: force content-type for the request.
151
+ :type _content_type: str, Optional
152
+ :param _headers: set to override the headers for a single
153
+ request; this effectively ignores the headers
154
+ in the spec for a single request.
155
+ :type _headers: dict, optional
156
+ :param _host_index: set to override the host_index for a single
157
+ request; this effectively ignores the host_index
158
+ in the spec for a single request.
159
+ :type _host_index: int, optional
160
+ :return: Returns the result object.
161
+ """ # noqa: E501
162
+
163
+ _param = self._get_link_groups_serialize(
164
+ id=id,
165
+ url=url,
166
+ _request_auth=_request_auth,
167
+ _content_type=_content_type,
168
+ _headers=_headers,
169
+ _host_index=_host_index
170
+ )
171
+
172
+ _response_types_map: Dict[str, Optional[str]] = {
173
+ '200': "LinkGroupResponse",
174
+ '401': None,
175
+ }
176
+ response_data = await self.api_client.call_api(
177
+ *_param,
178
+ _request_timeout=_request_timeout
179
+ )
180
+ await response_data.read()
181
+ return self.api_client.response_deserialize(
182
+ response_data=response_data,
183
+ response_types_map=_response_types_map,
184
+ )
185
+
186
+
187
+ @validate_call
188
+ async def get_link_groups_without_preload_content(
189
+ self,
190
+ id: Annotated[StrictInt, Field(description="Graph id")],
191
+ url: Annotated[List[StrictStr], Field(description="One or more URLs.")],
192
+ _request_timeout: Union[
193
+ None,
194
+ Annotated[StrictFloat, Field(gt=0)],
195
+ Tuple[
196
+ Annotated[StrictFloat, Field(gt=0)],
197
+ Annotated[StrictFloat, Field(gt=0)]
198
+ ]
199
+ ] = None,
200
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
201
+ _content_type: Optional[StrictStr] = None,
202
+ _headers: Optional[Dict[StrictStr, Any]] = None,
203
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
204
+ ) -> RESTResponseType:
205
+ """Get
206
+
207
+ Get Link Groups
208
+
209
+ :param id: Graph id (required)
210
+ :type id: int
211
+ :param url: One or more URLs. (required)
212
+ :type url: List[str]
213
+ :param _request_timeout: timeout setting for this request. If one
214
+ number provided, it will be total request
215
+ timeout. It can also be a pair (tuple) of
216
+ (connection, read) timeouts.
217
+ :type _request_timeout: int, tuple(int, int), optional
218
+ :param _request_auth: set to override the auth_settings for an a single
219
+ request; this effectively ignores the
220
+ authentication in the spec for a single request.
221
+ :type _request_auth: dict, optional
222
+ :param _content_type: force content-type for the request.
223
+ :type _content_type: str, Optional
224
+ :param _headers: set to override the headers for a single
225
+ request; this effectively ignores the headers
226
+ in the spec for a single request.
227
+ :type _headers: dict, optional
228
+ :param _host_index: set to override the host_index for a single
229
+ request; this effectively ignores the host_index
230
+ in the spec for a single request.
231
+ :type _host_index: int, optional
232
+ :return: Returns the result object.
233
+ """ # noqa: E501
234
+
235
+ _param = self._get_link_groups_serialize(
236
+ id=id,
237
+ url=url,
238
+ _request_auth=_request_auth,
239
+ _content_type=_content_type,
240
+ _headers=_headers,
241
+ _host_index=_host_index
242
+ )
243
+
244
+ _response_types_map: Dict[str, Optional[str]] = {
245
+ '200': "LinkGroupResponse",
246
+ '401': None,
247
+ }
248
+ response_data = await self.api_client.call_api(
249
+ *_param,
250
+ _request_timeout=_request_timeout
251
+ )
252
+ return response_data.response
253
+
254
+
255
+ def _get_link_groups_serialize(
256
+ self,
257
+ id,
258
+ url,
259
+ _request_auth,
260
+ _content_type,
261
+ _headers,
262
+ _host_index,
263
+ ) -> RequestSerialized:
264
+
265
+ _host = None
266
+
267
+ _collection_formats: Dict[str, str] = {
268
+ 'url': 'multi',
269
+ }
270
+
271
+ _path_params: Dict[str, str] = {}
272
+ _query_params: List[Tuple[str, str]] = []
273
+ _header_params: Dict[str, Optional[str]] = _headers or {}
274
+ _form_params: List[Tuple[str, str]] = []
275
+ _files: Dict[str, Union[str, bytes]] = {}
276
+ _body_params: Optional[bytes] = None
277
+
278
+ # process the path parameters
279
+ if id is not None:
280
+ _path_params['id'] = id
281
+ # process the query parameters
282
+ if url is not None:
283
+
284
+ _query_params.append(('url', url))
285
+
286
+ # process the header parameters
287
+ # process the form parameters
288
+ # process the body parameter
289
+
290
+
291
+ # set the HTTP header `Accept`
292
+ _header_params['Accept'] = self.api_client.select_header_accept(
293
+ [
294
+ 'application/json'
295
+ ]
296
+ )
297
+
298
+
299
+ # authentication setting
300
+ _auth_settings: List[str] = [
301
+ 'ApiKey'
302
+ ]
303
+
304
+ return self.api_client.param_serialize(
305
+ method='GET',
306
+ resource_path='/accounts/{id}/link-groups',
307
+ path_params=_path_params,
308
+ query_params=_query_params,
309
+ header_params=_header_params,
310
+ body=_body_params,
311
+ post_params=_form_params,
312
+ files=_files,
313
+ auth_settings=_auth_settings,
314
+ collection_formats=_collection_formats,
315
+ _host=_host,
316
+ _request_auth=_request_auth
317
+ )
318
+
319
+
@@ -89,7 +89,7 @@ class ApiClient:
89
89
  self.default_headers[header_name] = header_value
90
90
  self.cookie = cookie
91
91
  # Set default User-Agent.
92
- self.user_agent = 'OpenAPI-Generator/1.114.0/python'
92
+ self.user_agent = 'OpenAPI-Generator/1.116.0/python'
93
93
  self.client_side_validation = configuration.client_side_validation
94
94
 
95
95
  async def __aenter__(self):
@@ -426,7 +426,7 @@ conf = wordlift_client.Configuration(
426
426
  "OS: {env}\n"\
427
427
  "Python Version: {pyversion}\n"\
428
428
  "Version of the API: 1.0\n"\
429
- "SDK Package Version: 1.114.0".\
429
+ "SDK Package Version: 1.116.0".\
430
430
  format(env=sys.platform, pyversion=sys.version)
431
431
 
432
432
  def get_host_settings(self):
@@ -95,7 +95,10 @@ from wordlift_client.models.internal_link_request import InternalLinkRequest
95
95
  from wordlift_client.models.internal_link_source import InternalLinkSource
96
96
  from wordlift_client.models.item import Item
97
97
  from wordlift_client.models.kg_embedding_request import KgEmbeddingRequest
98
+ from wordlift_client.models.kg_embedding_response import KgEmbeddingResponse
98
99
  from wordlift_client.models.level_enum import LevelEnum
100
+ from wordlift_client.models.link_group import LinkGroup
101
+ from wordlift_client.models.link_group_response import LinkGroupResponse
99
102
  from wordlift_client.models.location_inner import LocationInner
100
103
  from wordlift_client.models.longtail_response import LongtailResponse
101
104
  from wordlift_client.models.merchant import Merchant
@@ -18,8 +18,9 @@ import pprint
18
18
  import re # noqa: F401
19
19
  import json
20
20
 
21
- from pydantic import BaseModel, ConfigDict, StrictStr
22
- from typing import Any, ClassVar, Dict, List, Optional
21
+ from pydantic import BaseModel, ConfigDict, Field, StrictStr
22
+ from typing import Any, ClassVar, Dict, List
23
+ from wordlift_client.models.embedding_request import EmbeddingRequest
23
24
  from typing import Optional, Set
24
25
  from typing_extensions import Self
25
26
 
@@ -27,9 +28,9 @@ class KgEmbeddingRequest(BaseModel):
27
28
  """
28
29
  KgEmbeddingRequest
29
30
  """ # noqa: E501
30
- graphql_query: Optional[StrictStr] = None
31
- properties: Optional[List[StrictStr]] = None
32
- __properties: ClassVar[List[str]] = ["graphql_query", "properties"]
31
+ embedding: EmbeddingRequest
32
+ graphql_query: StrictStr = Field(description="The GraphQL query used to select entities to create embedding vectors for.")
33
+ __properties: ClassVar[List[str]] = ["embedding", "graphql_query"]
33
34
 
34
35
  model_config = ConfigDict(
35
36
  populate_by_name=True,
@@ -70,6 +71,9 @@ class KgEmbeddingRequest(BaseModel):
70
71
  exclude=excluded_fields,
71
72
  exclude_none=True,
72
73
  )
74
+ # override the default output from pydantic by calling `to_dict()` of embedding
75
+ if self.embedding:
76
+ _dict['embedding'] = self.embedding.to_dict()
73
77
  return _dict
74
78
 
75
79
  @classmethod
@@ -82,8 +86,8 @@ class KgEmbeddingRequest(BaseModel):
82
86
  return cls.model_validate(obj)
83
87
 
84
88
  _obj = cls.model_validate({
85
- "graphql_query": obj.get("graphql_query"),
86
- "properties": obj.get("properties")
89
+ "embedding": EmbeddingRequest.from_dict(obj["embedding"]) if obj.get("embedding") is not None else None,
90
+ "graphql_query": obj.get("graphql_query")
87
91
  })
88
92
  return _obj
89
93
 
@@ -0,0 +1,90 @@
1
+ # coding: utf-8
2
+
3
+ """
4
+ WordLift API
5
+
6
+ WordLift API
7
+
8
+ The version of the OpenAPI document: 1.0
9
+ Contact: hello@wordlift.io
10
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
11
+
12
+ Do not edit the class manually.
13
+ """ # noqa: E501
14
+
15
+
16
+ from __future__ import annotations
17
+ import pprint
18
+ import re # noqa: F401
19
+ import json
20
+
21
+ from pydantic import BaseModel, ConfigDict, Field, StrictStr
22
+ from typing import Any, ClassVar, Dict, List
23
+ from typing import Optional, Set
24
+ from typing_extensions import Self
25
+
26
+ class KgEmbeddingResponse(BaseModel):
27
+ """
28
+ Graph Embedding Response
29
+ """ # noqa: E501
30
+ id: StrictStr = Field(description="The id/iri of the web page in the Graph.")
31
+ model: StrictStr
32
+ __properties: ClassVar[List[str]] = ["id", "model"]
33
+
34
+ model_config = ConfigDict(
35
+ populate_by_name=True,
36
+ validate_assignment=True,
37
+ protected_namespaces=(),
38
+ )
39
+
40
+
41
+ def to_str(self) -> str:
42
+ """Returns the string representation of the model using alias"""
43
+ return pprint.pformat(self.model_dump(by_alias=True))
44
+
45
+ def to_json(self) -> str:
46
+ """Returns the JSON representation of the model using alias"""
47
+ # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead
48
+ return json.dumps(self.to_dict())
49
+
50
+ @classmethod
51
+ def from_json(cls, json_str: str) -> Optional[Self]:
52
+ """Create an instance of KgEmbeddingResponse from a JSON string"""
53
+ return cls.from_dict(json.loads(json_str))
54
+
55
+ def to_dict(self) -> Dict[str, Any]:
56
+ """Return the dictionary representation of the model using alias.
57
+
58
+ This has the following differences from calling pydantic's
59
+ `self.model_dump(by_alias=True)`:
60
+
61
+ * `None` is only added to the output dict for nullable fields that
62
+ were set at model initialization. Other fields with value `None`
63
+ are ignored.
64
+ """
65
+ excluded_fields: Set[str] = set([
66
+ ])
67
+
68
+ _dict = self.model_dump(
69
+ by_alias=True,
70
+ exclude=excluded_fields,
71
+ exclude_none=True,
72
+ )
73
+ return _dict
74
+
75
+ @classmethod
76
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
77
+ """Create an instance of KgEmbeddingResponse from a dict"""
78
+ if obj is None:
79
+ return None
80
+
81
+ if not isinstance(obj, dict):
82
+ return cls.model_validate(obj)
83
+
84
+ _obj = cls.model_validate({
85
+ "id": obj.get("id"),
86
+ "model": obj.get("model")
87
+ })
88
+ return _obj
89
+
90
+
@@ -0,0 +1,100 @@
1
+ # coding: utf-8
2
+
3
+ """
4
+ WordLift API
5
+
6
+ WordLift API
7
+
8
+ The version of the OpenAPI document: 1.0
9
+ Contact: hello@wordlift.io
10
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
11
+
12
+ Do not edit the class manually.
13
+ """ # noqa: E501
14
+
15
+
16
+ from __future__ import annotations
17
+ import pprint
18
+ import re # noqa: F401
19
+ import json
20
+
21
+ from pydantic import BaseModel, ConfigDict, StrictStr
22
+ from typing import Any, ClassVar, Dict, List, Optional
23
+ from wordlift_client.models.item import Item
24
+ from typing import Optional, Set
25
+ from typing_extensions import Self
26
+
27
+ class LinkGroup(BaseModel):
28
+ """
29
+ LinkGroup
30
+ """ # noqa: E501
31
+ identifier: Optional[StrictStr] = None
32
+ items: Optional[List[Item]] = None
33
+ name: Optional[StrictStr] = None
34
+ __properties: ClassVar[List[str]] = ["identifier", "items", "name"]
35
+
36
+ model_config = ConfigDict(
37
+ populate_by_name=True,
38
+ validate_assignment=True,
39
+ protected_namespaces=(),
40
+ )
41
+
42
+
43
+ def to_str(self) -> str:
44
+ """Returns the string representation of the model using alias"""
45
+ return pprint.pformat(self.model_dump(by_alias=True))
46
+
47
+ def to_json(self) -> str:
48
+ """Returns the JSON representation of the model using alias"""
49
+ # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead
50
+ return json.dumps(self.to_dict())
51
+
52
+ @classmethod
53
+ def from_json(cls, json_str: str) -> Optional[Self]:
54
+ """Create an instance of LinkGroup from a JSON string"""
55
+ return cls.from_dict(json.loads(json_str))
56
+
57
+ def to_dict(self) -> Dict[str, Any]:
58
+ """Return the dictionary representation of the model using alias.
59
+
60
+ This has the following differences from calling pydantic's
61
+ `self.model_dump(by_alias=True)`:
62
+
63
+ * `None` is only added to the output dict for nullable fields that
64
+ were set at model initialization. Other fields with value `None`
65
+ are ignored.
66
+ """
67
+ excluded_fields: Set[str] = set([
68
+ ])
69
+
70
+ _dict = self.model_dump(
71
+ by_alias=True,
72
+ exclude=excluded_fields,
73
+ exclude_none=True,
74
+ )
75
+ # override the default output from pydantic by calling `to_dict()` of each item in items (list)
76
+ _items = []
77
+ if self.items:
78
+ for _item in self.items:
79
+ if _item:
80
+ _items.append(_item.to_dict())
81
+ _dict['items'] = _items
82
+ return _dict
83
+
84
+ @classmethod
85
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
86
+ """Create an instance of LinkGroup from a dict"""
87
+ if obj is None:
88
+ return None
89
+
90
+ if not isinstance(obj, dict):
91
+ return cls.model_validate(obj)
92
+
93
+ _obj = cls.model_validate({
94
+ "identifier": obj.get("identifier"),
95
+ "items": [Item.from_dict(_item) for _item in obj["items"]] if obj.get("items") is not None else None,
96
+ "name": obj.get("name")
97
+ })
98
+ return _obj
99
+
100
+
@@ -0,0 +1,96 @@
1
+ # coding: utf-8
2
+
3
+ """
4
+ WordLift API
5
+
6
+ WordLift API
7
+
8
+ The version of the OpenAPI document: 1.0
9
+ Contact: hello@wordlift.io
10
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
11
+
12
+ Do not edit the class manually.
13
+ """ # noqa: E501
14
+
15
+
16
+ from __future__ import annotations
17
+ import pprint
18
+ import re # noqa: F401
19
+ import json
20
+
21
+ from pydantic import BaseModel, ConfigDict
22
+ from typing import Any, ClassVar, Dict, List, Optional
23
+ from wordlift_client.models.link_group import LinkGroup
24
+ from typing import Optional, Set
25
+ from typing_extensions import Self
26
+
27
+ class LinkGroupResponse(BaseModel):
28
+ """
29
+ LinkGroupResponse
30
+ """ # noqa: E501
31
+ link_groups: Optional[List[LinkGroup]] = None
32
+ __properties: ClassVar[List[str]] = ["link_groups"]
33
+
34
+ model_config = ConfigDict(
35
+ populate_by_name=True,
36
+ validate_assignment=True,
37
+ protected_namespaces=(),
38
+ )
39
+
40
+
41
+ def to_str(self) -> str:
42
+ """Returns the string representation of the model using alias"""
43
+ return pprint.pformat(self.model_dump(by_alias=True))
44
+
45
+ def to_json(self) -> str:
46
+ """Returns the JSON representation of the model using alias"""
47
+ # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead
48
+ return json.dumps(self.to_dict())
49
+
50
+ @classmethod
51
+ def from_json(cls, json_str: str) -> Optional[Self]:
52
+ """Create an instance of LinkGroupResponse from a JSON string"""
53
+ return cls.from_dict(json.loads(json_str))
54
+
55
+ def to_dict(self) -> Dict[str, Any]:
56
+ """Return the dictionary representation of the model using alias.
57
+
58
+ This has the following differences from calling pydantic's
59
+ `self.model_dump(by_alias=True)`:
60
+
61
+ * `None` is only added to the output dict for nullable fields that
62
+ were set at model initialization. Other fields with value `None`
63
+ are ignored.
64
+ """
65
+ excluded_fields: Set[str] = set([
66
+ ])
67
+
68
+ _dict = self.model_dump(
69
+ by_alias=True,
70
+ exclude=excluded_fields,
71
+ exclude_none=True,
72
+ )
73
+ # override the default output from pydantic by calling `to_dict()` of each item in link_groups (list)
74
+ _items = []
75
+ if self.link_groups:
76
+ for _item in self.link_groups:
77
+ if _item:
78
+ _items.append(_item.to_dict())
79
+ _dict['link_groups'] = _items
80
+ return _dict
81
+
82
+ @classmethod
83
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
84
+ """Create an instance of LinkGroupResponse from a dict"""
85
+ if obj is None:
86
+ return None
87
+
88
+ if not isinstance(obj, dict):
89
+ return cls.model_validate(obj)
90
+
91
+ _obj = cls.model_validate({
92
+ "link_groups": [LinkGroup.from_dict(_item) for _item in obj["link_groups"]] if obj.get("link_groups") is not None else None
93
+ })
94
+ return _obj
95
+
96
+
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: wordlift-client
3
- Version: 1.114.0
3
+ Version: 1.116.0
4
4
  Summary: WordLift API
5
5
  Home-page:
6
6
  Author: WordLift
@@ -1,11 +1,11 @@
1
- wordlift_client/__init__.py,sha256=ENuv_BMl6yWZsbfXvbSY57-fKiVvVh7brFaqN7nOFtI,18735
2
- wordlift_client/api_client.py,sha256=0DLtNYdVa8YnoeWxWJgEyO90BNWd5fTlahR25fpFxOc,26397
1
+ wordlift_client/__init__.py,sha256=mZ15jkDhA__CI5OC_GSoFAxD7pC8Z5JNtTyuF5Y_soI,19003
2
+ wordlift_client/api_client.py,sha256=NhlZJ3DtGyAIQM4qEp7iT5v5n8mEKWkhF4dYrE4SMBs,26397
3
3
  wordlift_client/api_response.py,sha256=eMxw1mpmJcoGZ3gs9z6jM4oYoZ10Gjk333s9sKxGv7s,652
4
- wordlift_client/configuration.py,sha256=wGIsLddODP6Gbfsj9WzQ00SlfFMLvPKiFpTN3Otej0g,15932
4
+ wordlift_client/configuration.py,sha256=ksZaZdonGR8UUxzQQs8FRUP9JhMRMl_RPDjg0S96il4,15932
5
5
  wordlift_client/exceptions.py,sha256=KvTu-E964XhAzMXOSfVycfOL1Eeraob5bgD4CfElD7M,5912
6
6
  wordlift_client/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
7
7
  wordlift_client/rest.py,sha256=3D4hicZkeSFLxmhmgnlH63K7P39ToGyPk_3aQlHGznI,6817
8
- wordlift_client/api/__init__.py,sha256=DjbR8vjsSOsp5HYVXN4HlPwZta6rgqvbvuQobYGAGdo,4978
8
+ wordlift_client/api/__init__.py,sha256=F-6AqL_vHuDqe1ajIjbZhjV5vPUj44pXCNf-Tj_cnjo,5040
9
9
  wordlift_client/api/account_api.py,sha256=wxVhHEPyMfNpC1_sBLp2nECfvyGIVwlqqM2Xu3EGSHI,10288
10
10
  wordlift_client/api/account_google_search_console_api.py,sha256=QruHrGZ1LMRhVrVt5k1UOAQZSkMY8zMZWkQ2DdeD5Dw,12119
11
11
  wordlift_client/api/account_stats_api.py,sha256=tQshIfkbME-WMY-sBMwUUZdSTDBeoaV0wnrtAnaFv_g,10480
@@ -36,7 +36,7 @@ wordlift_client/api/custom_domains_api.py,sha256=LuKLllZaBA9k7W3SBRP4gKDLoF3liCp
36
36
  wordlift_client/api/data_uri_api.py,sha256=pLZRk1-LHBq65MYmWOjek7u3LOdlRAFoIXDm0V_zX-Q,10860
37
37
  wordlift_client/api/dataset_api.py,sha256=1HI7Ssmvx5mFLZa_Xldq944GdgLiTF7mY7pU6mbfjj8,42369
38
38
  wordlift_client/api/default_api.py,sha256=yxtYQghfU_e_UAB5crSS1YTqV725mtlsv2QSKz2VIg4,11335
39
- wordlift_client/api/embedding_api.py,sha256=Sigezg2srkeVYFXE7dP9gZXx5lZ1k9W0VbZFfxO5iOs,11667
39
+ wordlift_client/api/embedding_api.py,sha256=zvNmwVIaLguoIz7wtb4mmI84CKHil8jBPVhMpdoLyeQ,11732
40
40
  wordlift_client/api/embeddings_api.py,sha256=SaKKcVZ6voLpH0Coo5glu7sTsAClHR7eTc9wKiMIMsc,11181
41
41
  wordlift_client/api/entities_api.py,sha256=6cQ2m_b5f9aWCGnbb6auGiyrBP6LV7ZQQZDyve7y3ik,59076
42
42
  wordlift_client/api/entity_gaps_api.py,sha256=9jd4dkhQlDX409rDUPHQeDBPzF5q5RfjXRUC8M4lk94,11687
@@ -52,6 +52,7 @@ wordlift_client/api/include_excludes_api.py,sha256=VkAiiIPIHyIDRh77A2J6upXDuDYQY
52
52
  wordlift_client/api/include_excludes_word_press_plugin_api.py,sha256=rpJx3UQIH0ro6lmdo3N6Zs3kQyjBUIrx6cgaqRzzlWQ,22677
53
53
  wordlift_client/api/inspector_api.py,sha256=WJlDSbsutomdTTWZxyS6hNMyCX_SOhya-YiM8eUXRAA,13261
54
54
  wordlift_client/api/internal_links_api.py,sha256=8_zUtLpdu9dlMuBfeDXeIDGkfib9qJBpXFwN0ofcGC8,22262
55
+ wordlift_client/api/link_groups_api.py,sha256=NK0pzKIVg7EF8-FdjVLwiDDJ9o7bDnySPopAnv6qXsg,11531
55
56
  wordlift_client/api/long_tails_api.py,sha256=IGAndSFSOzbbArcHt77kqByjYCQHCx8xG7dNNRplwNc,41132
56
57
  wordlift_client/api/merchant_syncs_api.py,sha256=JjxWk_Msl49bGUG0Ih7IytPpZKBuWRZ0h9n4PdrpEN8,33915
57
58
  wordlift_client/api/merchants_api.py,sha256=LmXtyqjDpD_adnSmJkILtYuLxtUrGv6hsTcIj6RfQvw,53325
@@ -78,7 +79,7 @@ wordlift_client/api/web_asyncs_metadata_api.py,sha256=cpDQmIGc6uHu5rFXwZAy1cVgcW
78
79
  wordlift_client/api/web_asyncs_responses_api.py,sha256=h91xI3iIgGoMUcZ7Oft5xiLy0rHh_2qzZDrFTRz3P8w,10889
79
80
  wordlift_client/api/web_pages_api.py,sha256=VKPLIaQRxxDn3daP0zvXRiHj2eegsZIjxUmHKzxZXoc,10839
80
81
  wordlift_client/api/web_pages_imports_api.py,sha256=yPhNLZ1jV2dEDnYuHb7OpiFH3K2ROrRYHG4ZrAf4VMU,11719
81
- wordlift_client/models/__init__.py,sha256=4mRvHRIKwuME54dXJd3yDOVvsZilENwsqAWcbPe4EU4,13250
82
+ wordlift_client/models/__init__.py,sha256=igeABM4mDdU4T1yaMVOi-AG-sJs0JZ6g-wNXq0g4DvM,13456
82
83
  wordlift_client/models/account.py,sha256=trGNzy3ZBGE1VsSke4aoXBQem-3jK60xVz0OWOOMWso,5523
83
84
  wordlift_client/models/account_config.py,sha256=_4YZ8IGS4h16wa9aSaL9rpeoZYR8faiwEAtovP4eBVI,2592
84
85
  wordlift_client/models/account_info.py,sha256=tCqVHqfeK5u1cQkLOBgJRUTs-e8vmGCjqZ4wgfmNIuw,7750
@@ -160,8 +161,11 @@ wordlift_client/models/internal_link_destination.py,sha256=xWWqeUtc7MY2ErG7zitUP
160
161
  wordlift_client/models/internal_link_request.py,sha256=72ouLEOqachUNYOAEDxhOwrG43wBTGDZ5g1y6dibfvs,3537
161
162
  wordlift_client/models/internal_link_source.py,sha256=TCovpxQBR2v537rFePpptO4DEi--5V9fmmqMYA0jPrQ,2740
162
163
  wordlift_client/models/item.py,sha256=MvFFi8thULENZd9sbzTYlZH2bwqCGxwXJp4YJqtQvFs,3092
163
- wordlift_client/models/kg_embedding_request.py,sha256=g9aBAWm1_IDruTUi6--350jfCyl0-GmAkE4PaJ3u56o,2603
164
+ wordlift_client/models/kg_embedding_request.py,sha256=du2ce52FsAkkr5sLGvShzCQXFsXJHvQ8dDy5ita2tWw,2974
165
+ wordlift_client/models/kg_embedding_response.py,sha256=v4fz8xCXdcHclAbvBxLmmgV2k-Fki_OJfIhL8GzIHpk,2569
164
166
  wordlift_client/models/level_enum.py,sha256=0SRm7XXcgWCxcbrVHFi7GoFdmpla38Fl3RXIXH8_YVk,700
167
+ wordlift_client/models/link_group.py,sha256=JrN_T84DqMV_LffcNUkyATGxoRK-48r_Ke4PKJgKsCM,3029
168
+ wordlift_client/models/link_group_response.py,sha256=WJ1D5Rdr5MgctIpo16BXPPqBhFa1xAyjoxWR07Oy7s8,2937
165
169
  wordlift_client/models/location_inner.py,sha256=Y_RHc_JGr4sWRHqSJgyFvoiWU8HCLbmtpQEjBAkk70c,4765
166
170
  wordlift_client/models/longtail_response.py,sha256=MOJRLQ14lB2Zjl5Df4W0I-WVBwnmwnHx3eLk4fdxOy4,3124
167
171
  wordlift_client/models/merchant.py,sha256=vMnqcLyinefzFA2ebt9NpSEBjrHQGy8DWvxLcsVBZaE,7396
@@ -255,8 +259,8 @@ wordlift_client/models/with_limits.py,sha256=9I6-JNIb8pgUfVUegNqTc3YNx0micXUTpDo
255
259
  wordlift_client/models/word.py,sha256=FPCGb6ohwdfydE5_qG4PT-UrnMzaTktAWqEEnezwaso,3922
256
260
  wordlift_client/models/word_repetition_data.py,sha256=CQnxCnhakt12czl6a_AQIPgHlJtvR9YGBIjGV22rq14,2659
257
261
  wordlift_client/models/word_request.py,sha256=ZD13xNRYCZmF14jxEDrRRyEMAd-quDT-HsqkbUP_xWU,2627
258
- wordlift_client-1.114.0.dist-info/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
259
- wordlift_client-1.114.0.dist-info/METADATA,sha256=tB2srgyI1_YG-vdc6UGDDhrci_9vOx-3kg1TGqetZWI,530
260
- wordlift_client-1.114.0.dist-info/WHEEL,sha256=iAkIy5fosb7FzIOwONchHf19Qu7_1wCWyFNR5gu9nU0,91
261
- wordlift_client-1.114.0.dist-info/top_level.txt,sha256=p7KFYU869ksxkpP7ADvg8baPgWkTYCzcOpDl1qrJdHk,16
262
- wordlift_client-1.114.0.dist-info/RECORD,,
262
+ wordlift_client-1.116.0.dist-info/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
263
+ wordlift_client-1.116.0.dist-info/METADATA,sha256=3d5kPaKk20em9cnfe2-RRdq-ZunWqsPGU0xhthJpdzI,530
264
+ wordlift_client-1.116.0.dist-info/WHEEL,sha256=iAkIy5fosb7FzIOwONchHf19Qu7_1wCWyFNR5gu9nU0,91
265
+ wordlift_client-1.116.0.dist-info/top_level.txt,sha256=p7KFYU869ksxkpP7ADvg8baPgWkTYCzcOpDl1qrJdHk,16
266
+ wordlift_client-1.116.0.dist-info/RECORD,,