wordlift-client 1.134.0__py3-none-any.whl → 1.136.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.
Files changed (45) hide show
  1. wordlift_client/__init__.py +25 -3
  2. wordlift_client/api/__init__.py +1 -0
  3. wordlift_client/api/audit_api.py +18 -6
  4. wordlift_client/api/default_api.py +1767 -39
  5. wordlift_client/api_client.py +1 -1
  6. wordlift_client/configuration.py +1 -1
  7. wordlift_client/models/__init__.py +23 -2
  8. wordlift_client/models/audit_data.py +27 -11
  9. wordlift_client/models/automation_issue.py +110 -0
  10. wordlift_client/models/automation_readiness.py +16 -5
  11. wordlift_client/models/bot_status.py +102 -0
  12. wordlift_client/models/content_freshness.py +106 -0
  13. wordlift_client/models/content_structure.py +10 -6
  14. wordlift_client/models/detected_schema.py +100 -0
  15. wordlift_client/models/error_response.py +5 -3
  16. wordlift_client/models/html_semantics.py +100 -0
  17. wordlift_client/models/http_validation_error1.py +96 -0
  18. wordlift_client/models/image_accessibility.py +9 -7
  19. wordlift_client/models/internal_linking.py +100 -0
  20. wordlift_client/models/js_rendering.py +8 -17
  21. wordlift_client/models/monitor_result_item.py +117 -0
  22. wordlift_client/models/monitor_state.py +39 -0
  23. wordlift_client/models/monitor_summary_item.py +105 -0
  24. wordlift_client/models/neighbors.py +101 -0
  25. wordlift_client/models/page_info.py +95 -0
  26. wordlift_client/models/quick_wins_result.py +110 -0
  27. wordlift_client/models/resource_request.py +92 -0
  28. wordlift_client/models/resource_type.py +40 -0
  29. wordlift_client/models/schema_recommendation.py +90 -0
  30. wordlift_client/models/seo_fundamentals.py +6 -3
  31. wordlift_client/models/site_files.py +25 -10
  32. wordlift_client/models/structured_data.py +28 -5
  33. wordlift_client/models/url_list_item.py +132 -0
  34. wordlift_client/models/url_list_response.py +104 -0
  35. wordlift_client/models/url_results_response.py +121 -0
  36. wordlift_client/models/url_summary_response.py +136 -0
  37. wordlift_client/models/validation_error1.py +22 -9
  38. wordlift_client/models/validation_error2.py +96 -0
  39. wordlift_client/models/validation_error2_detail_inner.py +92 -0
  40. wordlift_client/models/well_known_files.py +98 -0
  41. {wordlift_client-1.134.0.dist-info → wordlift_client-1.136.0.dist-info}/METADATA +1 -1
  42. {wordlift_client-1.134.0.dist-info → wordlift_client-1.136.0.dist-info}/RECORD +45 -22
  43. {wordlift_client-1.134.0.dist-info → wordlift_client-1.136.0.dist-info}/LICENSE +0 -0
  44. {wordlift_client-1.134.0.dist-info → wordlift_client-1.136.0.dist-info}/WHEEL +0 -0
  45. {wordlift_client-1.134.0.dist-info → wordlift_client-1.136.0.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,136 @@
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 datetime import datetime
22
+ from pydantic import BaseModel, ConfigDict, Field, StrictFloat, StrictInt, StrictStr
23
+ from typing import Any, ClassVar, Dict, List, Optional, Union
24
+ from typing_extensions import Annotated
25
+ from wordlift_client.models.monitor_summary_item import MonitorSummaryItem
26
+ from wordlift_client.models.neighbors import Neighbors
27
+ from typing import Optional, Set
28
+ from typing_extensions import Self
29
+
30
+ class UrlSummaryResponse(BaseModel):
31
+ """
32
+ UrlSummaryResponse
33
+ """ # noqa: E501
34
+ url: Annotated[str, Field(min_length=1, strict=True, max_length=2083)]
35
+ status: StrictStr
36
+ last_run: Optional[datetime] = None
37
+ score: Optional[Union[StrictFloat, StrictInt]] = None
38
+ ttfb_ms: Optional[Union[StrictFloat, StrictInt]] = None
39
+ response_time_ms: Optional[Union[StrictFloat, StrictInt]] = None
40
+ monitors: List[MonitorSummaryItem]
41
+ neighbors: Neighbors
42
+ __properties: ClassVar[List[str]] = ["url", "status", "last_run", "score", "ttfb_ms", "response_time_ms", "monitors", "neighbors"]
43
+
44
+ model_config = ConfigDict(
45
+ populate_by_name=True,
46
+ validate_assignment=True,
47
+ protected_namespaces=(),
48
+ )
49
+
50
+
51
+ def to_str(self) -> str:
52
+ """Returns the string representation of the model using alias"""
53
+ return pprint.pformat(self.model_dump(by_alias=True))
54
+
55
+ def to_json(self) -> str:
56
+ """Returns the JSON representation of the model using alias"""
57
+ # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead
58
+ return json.dumps(self.to_dict())
59
+
60
+ @classmethod
61
+ def from_json(cls, json_str: str) -> Optional[Self]:
62
+ """Create an instance of UrlSummaryResponse from a JSON string"""
63
+ return cls.from_dict(json.loads(json_str))
64
+
65
+ def to_dict(self) -> Dict[str, Any]:
66
+ """Return the dictionary representation of the model using alias.
67
+
68
+ This has the following differences from calling pydantic's
69
+ `self.model_dump(by_alias=True)`:
70
+
71
+ * `None` is only added to the output dict for nullable fields that
72
+ were set at model initialization. Other fields with value `None`
73
+ are ignored.
74
+ """
75
+ excluded_fields: Set[str] = set([
76
+ ])
77
+
78
+ _dict = self.model_dump(
79
+ by_alias=True,
80
+ exclude=excluded_fields,
81
+ exclude_none=True,
82
+ )
83
+ # override the default output from pydantic by calling `to_dict()` of each item in monitors (list)
84
+ _items = []
85
+ if self.monitors:
86
+ for _item in self.monitors:
87
+ if _item:
88
+ _items.append(_item.to_dict())
89
+ _dict['monitors'] = _items
90
+ # override the default output from pydantic by calling `to_dict()` of neighbors
91
+ if self.neighbors:
92
+ _dict['neighbors'] = self.neighbors.to_dict()
93
+ # set to None if last_run (nullable) is None
94
+ # and model_fields_set contains the field
95
+ if self.last_run is None and "last_run" in self.model_fields_set:
96
+ _dict['last_run'] = None
97
+
98
+ # set to None if score (nullable) is None
99
+ # and model_fields_set contains the field
100
+ if self.score is None and "score" in self.model_fields_set:
101
+ _dict['score'] = None
102
+
103
+ # set to None if ttfb_ms (nullable) is None
104
+ # and model_fields_set contains the field
105
+ if self.ttfb_ms is None and "ttfb_ms" in self.model_fields_set:
106
+ _dict['ttfb_ms'] = None
107
+
108
+ # set to None if response_time_ms (nullable) is None
109
+ # and model_fields_set contains the field
110
+ if self.response_time_ms is None and "response_time_ms" in self.model_fields_set:
111
+ _dict['response_time_ms'] = None
112
+
113
+ return _dict
114
+
115
+ @classmethod
116
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
117
+ """Create an instance of UrlSummaryResponse from a dict"""
118
+ if obj is None:
119
+ return None
120
+
121
+ if not isinstance(obj, dict):
122
+ return cls.model_validate(obj)
123
+
124
+ _obj = cls.model_validate({
125
+ "url": obj.get("url"),
126
+ "status": obj.get("status"),
127
+ "last_run": obj.get("last_run"),
128
+ "score": obj.get("score"),
129
+ "ttfb_ms": obj.get("ttfb_ms"),
130
+ "response_time_ms": obj.get("response_time_ms"),
131
+ "monitors": [MonitorSummaryItem.from_dict(_item) for _item in obj["monitors"]] if obj.get("monitors") is not None else None,
132
+ "neighbors": Neighbors.from_dict(obj["neighbors"]) if obj.get("neighbors") is not None else None
133
+ })
134
+ return _obj
135
+
136
+
@@ -18,9 +18,9 @@ import pprint
18
18
  import re # noqa: F401
19
19
  import json
20
20
 
21
- from pydantic import BaseModel, ConfigDict
21
+ from pydantic import BaseModel, ConfigDict, StrictStr
22
22
  from typing import Any, ClassVar, Dict, List, Optional
23
- from wordlift_client.models.validation_error1_detail_inner import ValidationError1DetailInner
23
+ from wordlift_client.models.location_inner import LocationInner
24
24
  from typing import Optional, Set
25
25
  from typing_extensions import Self
26
26
 
@@ -28,8 +28,12 @@ class ValidationError1(BaseModel):
28
28
  """
29
29
  ValidationError1
30
30
  """ # noqa: E501
31
- detail: Optional[List[ValidationError1DetailInner]] = None
32
- __properties: ClassVar[List[str]] = ["detail"]
31
+ loc: List[LocationInner]
32
+ msg: StrictStr
33
+ type: StrictStr
34
+ input: Optional[Any] = None
35
+ ctx: Optional[Dict[str, Any]] = None
36
+ __properties: ClassVar[List[str]] = ["loc", "msg", "type", "input", "ctx"]
33
37
 
34
38
  model_config = ConfigDict(
35
39
  populate_by_name=True,
@@ -70,13 +74,18 @@ class ValidationError1(BaseModel):
70
74
  exclude=excluded_fields,
71
75
  exclude_none=True,
72
76
  )
73
- # override the default output from pydantic by calling `to_dict()` of each item in detail (list)
77
+ # override the default output from pydantic by calling `to_dict()` of each item in loc (list)
74
78
  _items = []
75
- if self.detail:
76
- for _item in self.detail:
79
+ if self.loc:
80
+ for _item in self.loc:
77
81
  if _item:
78
82
  _items.append(_item.to_dict())
79
- _dict['detail'] = _items
83
+ _dict['loc'] = _items
84
+ # set to None if input (nullable) is None
85
+ # and model_fields_set contains the field
86
+ if self.input is None and "input" in self.model_fields_set:
87
+ _dict['input'] = None
88
+
80
89
  return _dict
81
90
 
82
91
  @classmethod
@@ -89,7 +98,11 @@ class ValidationError1(BaseModel):
89
98
  return cls.model_validate(obj)
90
99
 
91
100
  _obj = cls.model_validate({
92
- "detail": [ValidationError1DetailInner.from_dict(_item) for _item in obj["detail"]] if obj.get("detail") is not None else None
101
+ "loc": [LocationInner.from_dict(_item) for _item in obj["loc"]] if obj.get("loc") is not None else None,
102
+ "msg": obj.get("msg"),
103
+ "type": obj.get("type"),
104
+ "input": obj.get("input"),
105
+ "ctx": obj.get("ctx")
93
106
  })
94
107
  return _obj
95
108
 
@@ -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.validation_error2_detail_inner import ValidationError2DetailInner
24
+ from typing import Optional, Set
25
+ from typing_extensions import Self
26
+
27
+ class ValidationError2(BaseModel):
28
+ """
29
+ ValidationError2
30
+ """ # noqa: E501
31
+ detail: Optional[List[ValidationError2DetailInner]] = None
32
+ __properties: ClassVar[List[str]] = ["detail"]
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 ValidationError2 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 detail (list)
74
+ _items = []
75
+ if self.detail:
76
+ for _item in self.detail:
77
+ if _item:
78
+ _items.append(_item.to_dict())
79
+ _dict['detail'] = _items
80
+ return _dict
81
+
82
+ @classmethod
83
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
84
+ """Create an instance of ValidationError2 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
+ "detail": [ValidationError2DetailInner.from_dict(_item) for _item in obj["detail"]] if obj.get("detail") is not None else None
93
+ })
94
+ return _obj
95
+
96
+
@@ -0,0 +1,92 @@
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 typing import Optional, Set
24
+ from typing_extensions import Self
25
+
26
+ class ValidationError2DetailInner(BaseModel):
27
+ """
28
+ ValidationError2DetailInner
29
+ """ # noqa: E501
30
+ loc: Optional[List[StrictStr]] = None
31
+ msg: Optional[StrictStr] = None
32
+ type: Optional[StrictStr] = None
33
+ __properties: ClassVar[List[str]] = ["loc", "msg", "type"]
34
+
35
+ model_config = ConfigDict(
36
+ populate_by_name=True,
37
+ validate_assignment=True,
38
+ protected_namespaces=(),
39
+ )
40
+
41
+
42
+ def to_str(self) -> str:
43
+ """Returns the string representation of the model using alias"""
44
+ return pprint.pformat(self.model_dump(by_alias=True))
45
+
46
+ def to_json(self) -> str:
47
+ """Returns the JSON representation of the model using alias"""
48
+ # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead
49
+ return json.dumps(self.to_dict())
50
+
51
+ @classmethod
52
+ def from_json(cls, json_str: str) -> Optional[Self]:
53
+ """Create an instance of ValidationError2DetailInner from a JSON string"""
54
+ return cls.from_dict(json.loads(json_str))
55
+
56
+ def to_dict(self) -> Dict[str, Any]:
57
+ """Return the dictionary representation of the model using alias.
58
+
59
+ This has the following differences from calling pydantic's
60
+ `self.model_dump(by_alias=True)`:
61
+
62
+ * `None` is only added to the output dict for nullable fields that
63
+ were set at model initialization. Other fields with value `None`
64
+ are ignored.
65
+ """
66
+ excluded_fields: Set[str] = set([
67
+ ])
68
+
69
+ _dict = self.model_dump(
70
+ by_alias=True,
71
+ exclude=excluded_fields,
72
+ exclude_none=True,
73
+ )
74
+ return _dict
75
+
76
+ @classmethod
77
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
78
+ """Create an instance of ValidationError2DetailInner from a dict"""
79
+ if obj is None:
80
+ return None
81
+
82
+ if not isinstance(obj, dict):
83
+ return cls.model_validate(obj)
84
+
85
+ _obj = cls.model_validate({
86
+ "loc": obj.get("loc"),
87
+ "msg": obj.get("msg"),
88
+ "type": obj.get("type")
89
+ })
90
+ return _obj
91
+
92
+
@@ -0,0 +1,98 @@
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, StrictBool
22
+ from typing import Any, ClassVar, Dict, List, Optional
23
+ from typing import Optional, Set
24
+ from typing_extensions import Self
25
+
26
+ class WellKnownFiles(BaseModel):
27
+ """
28
+ Status of .well-known directory files
29
+ """ # noqa: E501
30
+ ai_plugin: Optional[StrictBool] = Field(default=None, description="Whether .well-known/ai-plugin.json exists (ChatGPT/OpenAI plugins)", alias="aiPlugin")
31
+ ucp: Optional[StrictBool] = Field(default=None, description="Whether .well-known/ucp.json exists (Universal Commerce Protocol)")
32
+ security: Optional[StrictBool] = Field(default=None, description="Whether .well-known/security.txt exists (security contact info)")
33
+ asset_links: Optional[StrictBool] = Field(default=None, description="Whether .well-known/assetlinks.json exists (Android deep linking)", alias="assetLinks")
34
+ apple_association: Optional[StrictBool] = Field(default=None, description="Whether .well-known/apple-app-site-association exists (iOS deep linking)", alias="appleAssociation")
35
+ llms_txt: Optional[StrictBool] = Field(default=None, description="Whether .well-known/llms.txt exists (alternative LLM instructions location)", alias="llmsTxt")
36
+ __properties: ClassVar[List[str]] = ["aiPlugin", "ucp", "security", "assetLinks", "appleAssociation", "llmsTxt"]
37
+
38
+ model_config = ConfigDict(
39
+ populate_by_name=True,
40
+ validate_assignment=True,
41
+ protected_namespaces=(),
42
+ )
43
+
44
+
45
+ def to_str(self) -> str:
46
+ """Returns the string representation of the model using alias"""
47
+ return pprint.pformat(self.model_dump(by_alias=True))
48
+
49
+ def to_json(self) -> str:
50
+ """Returns the JSON representation of the model using alias"""
51
+ # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead
52
+ return json.dumps(self.to_dict())
53
+
54
+ @classmethod
55
+ def from_json(cls, json_str: str) -> Optional[Self]:
56
+ """Create an instance of WellKnownFiles from a JSON string"""
57
+ return cls.from_dict(json.loads(json_str))
58
+
59
+ def to_dict(self) -> Dict[str, Any]:
60
+ """Return the dictionary representation of the model using alias.
61
+
62
+ This has the following differences from calling pydantic's
63
+ `self.model_dump(by_alias=True)`:
64
+
65
+ * `None` is only added to the output dict for nullable fields that
66
+ were set at model initialization. Other fields with value `None`
67
+ are ignored.
68
+ """
69
+ excluded_fields: Set[str] = set([
70
+ ])
71
+
72
+ _dict = self.model_dump(
73
+ by_alias=True,
74
+ exclude=excluded_fields,
75
+ exclude_none=True,
76
+ )
77
+ return _dict
78
+
79
+ @classmethod
80
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
81
+ """Create an instance of WellKnownFiles from a dict"""
82
+ if obj is None:
83
+ return None
84
+
85
+ if not isinstance(obj, dict):
86
+ return cls.model_validate(obj)
87
+
88
+ _obj = cls.model_validate({
89
+ "aiPlugin": obj.get("aiPlugin"),
90
+ "ucp": obj.get("ucp"),
91
+ "security": obj.get("security"),
92
+ "assetLinks": obj.get("assetLinks"),
93
+ "appleAssociation": obj.get("appleAssociation"),
94
+ "llmsTxt": obj.get("llmsTxt")
95
+ })
96
+ return _obj
97
+
98
+
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: wordlift-client
3
- Version: 1.134.0
3
+ Version: 1.136.0
4
4
  Summary: WordLift API
5
5
  Home-page:
6
6
  Author: WordLift