RSSFeed documentation
This commit is contained in:
parent
03551d55e9
commit
9e23acf966
23
src/feed.py
23
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)
|
||||
|
Loading…
x
Reference in New Issue
Block a user