Explorar o código

Add some abstract classes

jherve hai 1 ano
pai
achega
b49fb36112
Modificáronse 2 ficheiros con 34 adicións e 10 borrados
  1. 28 0
      src/de_quoi_parle_le_monde/article.py
  2. 6 10
      src/de_quoi_parle_le_monde/le_monde.py

+ 28 - 0
src/de_quoi_parle_le_monde/article.py

@@ -0,0 +1,28 @@
+from abc import ABC, abstractmethod
+from attrs import frozen
+from bs4 import BeautifulSoup
+
+from de_quoi_parle_le_monde.internet_archive import InternetArchiveSnapshot
+
+
+@frozen
+class TopArticle(ABC):
+    title: str
+    url: str
+
+
+@frozen
+class MainArticle(ABC):
+    title: str
+    url: str
+
+
+@frozen
+class MainPage(ABC):
+    snapshot: InternetArchiveSnapshot
+    soup: BeautifulSoup
+
+    @staticmethod
+    @abstractmethod
+    async def from_snapshot(snapshot: InternetArchiveSnapshot):
+        ...

+ 6 - 10
src/de_quoi_parle_le_monde/le_monde.py

@@ -5,22 +5,18 @@ import asyncio
 from bs4 import BeautifulSoup
 
 from de_quoi_parle_le_monde.internet_archive import InternetArchiveSnapshot
+from de_quoi_parle_le_monde.article import TopArticle, MainArticle, MainPage
 
-
-@frozen
-class LeMondeTopArticle:
-    title: str
-    url: str
+class LeMondeTopArticle(TopArticle):
+    ...
 
 
-@frozen
-class LeMondeMainArticle:
-    title: str
-    url: str
+class LeMondeMainArticle(MainArticle):
+    ...
 
 
 @frozen
-class LeMondeMainPage:
+class LeMondeMainPage(MainPage):
     snapshot: InternetArchiveSnapshot
     soup: BeautifulSoup