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)
|
@dataclass(slots=True)
|
||||||
class RSSFeed:
|
class RSSFeed:
|
||||||
|
"""Represents an RSS Feed, including its items."""
|
||||||
|
|
||||||
title: str
|
title: str
|
||||||
description: str
|
description: str
|
||||||
@ -194,9 +195,17 @@ class RSSFeed:
|
|||||||
items: list[RSSItem] = None
|
items: list[RSSItem] = None
|
||||||
|
|
||||||
def __post_init__(self):
|
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):
|
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):
|
if not isinstance(item, RSSItem):
|
||||||
raise TypeError("item must be an instance of RSSItem")
|
raise TypeError("item must be an instance of RSSItem")
|
||||||
|
|
||||||
@ -204,6 +213,18 @@ class RSSFeed:
|
|||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def from_parsed_feed(cls, pf: FeedParserDict):
|
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)
|
title = pf.feed.get('title', None)
|
||||||
description = pf.feed.get('description', None)
|
description = pf.feed.get('description', None)
|
||||||
link = pf.feed.get('link', None)
|
link = pf.feed.get('link', None)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user