diff --git a/src/feed.py b/src/feed.py index 9fcbfa1..1f82a8b 100644 --- a/src/feed.py +++ b/src/feed.py @@ -184,6 +184,7 @@ class RSSItem: @dataclass(slots=True) class RSSFeed: + """Represents an RSS Feed, including its items.""" title: str description: str @@ -194,9 +195,17 @@ class RSSFeed: items: list[RSSItem] = None def __post_init__(self): - self.items = [] + self.items = [] # can't use factory with dataclass slots, so this is second best. def add_item(self, item: RSSItem): + """Add a given `RSSItem` to this feed's list of entries. + + Parameters + ---------- + item: RSSItem + The item to add. + """ + if not isinstance(item, RSSItem): raise TypeError("item must be an instance of RSSItem") @@ -204,6 +213,18 @@ class RSSFeed: @classmethod def from_parsed_feed(cls, pf: FeedParserDict): + """Returns an instance of `RSSItem` from a given `FeedParserDict`. + + Parameters + ---------- + pf: FeedParserDict + The parsed feed being represented. + + Returns + ------- + RSSItem + """ + title = pf.feed.get('title', None) description = pf.feed.get('description', None) link = pf.feed.get('link', None)