Skip to content

Commit 9c31119

Browse files
committed
Allow arbitary strings in sdk_version owner
1 parent 34f821a commit 9c31119

File tree

4 files changed

+12
-52
lines changed

4 files changed

+12
-52
lines changed

aws_doc_sdk_examples_tools/metadata.py

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -33,16 +33,6 @@ class Person:
3333
alias: str
3434

3535

36-
@dataclass
37-
class FeedbackCti:
38-
category: str
39-
type: str
40-
item: str
41-
42-
def __str__(self):
43-
return f"{self.category} | {self.type} | {self.item}"
44-
45-
4636
@dataclass
4737
class Excerpt:
4838
description: Optional[str]

aws_doc_sdk_examples_tools/metadata_errors.py

Lines changed: 6 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -174,6 +174,12 @@ class MissingField(FieldError):
174174
def message(self):
175175
return f"missing field {self.field}"
176176

177+
@dataclass
178+
class InvalidFieldType(FieldError):
179+
reason: str = 'unknown'
180+
181+
def message(self):
182+
return f"invalid field type {self.field} ({self.reason})"
177183

178184
@dataclass
179185
class AwsNotEntity(FieldError):
@@ -241,16 +247,6 @@ def message(self):
241247
return "lists version which is not listed in sdks.yaml."
242248

243249

244-
@dataclass
245-
class InvalidFeedbackCti(SdkVersionError):
246-
feedback_cti: str = ""
247-
248-
def message(self):
249-
return (
250-
f"has feedback CTI that is missing at least one field: {self.feedback_cti}"
251-
)
252-
253-
254250
@dataclass
255251
class InvalidGithubLink(SdkVersionError):
256252
link: str = ""

aws_doc_sdk_examples_tools/metadata_test.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -749,12 +749,12 @@ def test_verify_load_successful():
749749
name="None",
750750
751751
),
752-
metadata_errors.InvalidFeedbackCti(
752+
metadata_errors.InvalidFieldType(
753753
file=ERRORS_METADATA_PATH,
754754
id="sqs_InvalidOwner",
755755
language="Java",
756756
sdk_version=2,
757-
feedback_cti="AWS|Documentation|None",
757+
reason="must be string"
758758
),
759759
],
760760
[

aws_doc_sdk_examples_tools/yaml_mapper.py

Lines changed: 4 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@
99
Version,
1010
Excerpt,
1111
Person,
12-
FeedbackCti,
1312
)
1413
from .sdks import Sdk
1514
from .services import Service
@@ -219,23 +218,6 @@ def person_from_yaml(
219218
return Person(name, alias)
220219

221220

222-
def feedback_cti_from_yaml(
223-
yaml: Union[None, Dict[str, Optional[str]]]
224-
) -> Optional[Union[FeedbackCti, MetadataParseError]]:
225-
if yaml is None:
226-
return None
227-
category = yaml.get("category")
228-
type = yaml.get("type")
229-
item = yaml.get("item")
230-
231-
if category is None or type is None or item is None:
232-
return metadata_errors.InvalidFeedbackCti(
233-
feedback_cti="|".join([str(category), str(type), str(item)])
234-
)
235-
236-
return FeedbackCti(category, type, item)
237-
238-
239221
def version_from_yaml(
240222
yaml: Dict[str, Any],
241223
cross_content_blocks: Set[str],
@@ -283,18 +265,10 @@ def version_from_yaml(
283265
elif author is not None:
284266
errors.append(author)
285267

286-
# `owner` and `folder` are equivalent keys
287-
owner_yaml = yaml.get("owner", yaml.get("folder"))
288-
# use as-is for strings, otherwise try to parse them as CTI
289-
if isinstance(owner_yaml, str):
290-
owner = owner_yaml
291-
else:
292-
owner_cti = feedback_cti_from_yaml(owner_yaml)
293-
if owner_cti is not None and not isinstance(owner_cti, FeedbackCti):
294-
errors.append(owner_cti)
295-
owner = None
296-
else:
297-
owner = str(owner_cti)
268+
owner = yaml.get("owner")
269+
if owner and not isinstance(owner, str):
270+
errors.append(metadata_errors.InvalidFieldType(reason="must be string"))
271+
owner = None
298272

299273
add_services = parse_services(yaml.get("add_services", {}), errors)
300274
if add_services:

0 commit comments

Comments
 (0)