5555
5656
5757async def async_setup_platform (
58- hass : HomeAssistant ,
58+ hass : HomeAssistant , # noqa: ARG001
5959 config : ConfigType ,
6060 async_add_devices : AddEntitiesCallback ,
61- discovery_info : DiscoveryInfoType | None = None ,
61+ discovery_info : DiscoveryInfoType | None = None , # noqa: ARG001
6262) -> None :
6363 """Set up the Feedparser sensor."""
6464 async_add_devices (
@@ -92,6 +92,7 @@ def __init__(
9292 scan_interval : timedelta ,
9393 local_time : bool ,
9494 ) -> None :
95+ """Initialize the Feedparser sensor."""
9596 self ._feed = feed
9697 self ._attr_name = name
9798 self ._attr_icon = "mdi:rss"
@@ -112,6 +113,7 @@ def update(self: FeedParserSensor) -> None:
112113 self ._attr_native_value = None
113114 return
114115
116+ # set the sensor value to the amount of entries
115117 self ._attr_native_value = (
116118 self ._show_topn
117119 if len (parsed_feed .entries ) > self ._show_topn
@@ -120,7 +122,8 @@ def update(self: FeedParserSensor) -> None:
120122 self ._entries .extend (self ._generate_entries (parsed_feed ))
121123
122124 def _generate_entries (
123- self : FeedParserSensor , parsed_feed : FeedParserDict
125+ self : FeedParserSensor ,
126+ parsed_feed : FeedParserDict ,
124127 ) -> list [dict [str , str ]]:
125128 return [
126129 self ._generate_sensor_entry (feed_entry )
@@ -130,7 +133,8 @@ def _generate_entries(
130133 ]
131134
132135 def _generate_sensor_entry (
133- self : FeedParserSensor , feed_entry : FeedParserDict
136+ self : FeedParserSensor ,
137+ feed_entry : FeedParserDict ,
134138 ) -> dict [str , str ]:
135139 sensor_entry = {}
136140 for key , value in feed_entry .items ():
@@ -166,14 +170,16 @@ def _parse_date(self: FeedParserSensor, date: str) -> datetime:
166170 if not parsed_time .tzname ():
167171 # replace tzinfo with UTC offset if tzinfo does not contain a TZ name
168172 parsed_time = parsed_time .replace (
169- tzinfo = timezone (parsed_time .utcoffset ()) # type: ignore[arg-type]
173+ tzinfo = timezone (parsed_time .utcoffset ()), # type: ignore[arg-type]
170174 )
171175 if self ._local_time :
172176 parsed_time = dt .as_local (parsed_time )
173177 return parsed_time
174178
175179 def _process_image (
176- self : FeedParserSensor , feed_entry : FeedParserDict , sensor_entry : dict [str , str ]
180+ self : FeedParserSensor ,
181+ feed_entry : FeedParserDict ,
182+ sensor_entry : dict [str , str ],
177183 ) -> None :
178184 if "image" in self ._inclusions and "image" not in sensor_entry .keys ():
179185 if "enclosures" in feed_entry :
@@ -191,7 +197,24 @@ def _process_image(
191197 "image"
192198 ] = DEFAULT_THUMBNAIL # use default image if no image found
193199
200+ @property
201+ def feed_entries (self : FeedParserSensor ) -> list [dict [str , str ]]:
202+ """Return feed entries."""
203+ if hasattr (self , "_entries" ):
204+ return self ._entries
205+ return []
206+
207+ @property
208+ def local_time (self : FeedParserSensor ) -> bool :
209+ """Return local_time."""
210+ return self ._local_time
211+
212+ @local_time .setter
213+ def local_time (self : FeedParserSensor , value : bool ) -> None :
214+ """Set local_time."""
215+ self ._local_time = value
216+
194217 @property
195218 def extra_state_attributes (self : FeedParserSensor ) -> dict [str , list ]:
196219 """Return entity specific state attributes."""
197- return {"entries" : self ._entries }
220+ return {"entries" : self .feed_entries }
0 commit comments