diff --git a/my/reddit/common.py b/my/reddit/common.py index a9be43e..c4a1f81 100644 --- a/my/reddit/common.py +++ b/my/reddit/common.py @@ -34,67 +34,24 @@ class RedditBase(Protocol): def text(self) -> str: ... -# TODO: is there some way to handle this with subclasses or inhering protocols? -# can't seem to figure it out - - # Note: doesn't include GDPR Save's since they don't have the same metadata -class Save(Protocol): - @property - def raw(self) -> Json: ... - @property - def created(self) -> datetime_aware: ... - @property - def id(self) -> str: ... - @property - def url(self) -> str: ... - @property - def text(self) -> str: ... +class Save(Protocol, RedditBase): @property def subreddit(self) -> str: ... # Note: doesn't include GDPR Upvote's since they don't have the same metadata -class Upvote(Protocol): - @property - def raw(self) -> Json: ... - @property - def created(self) -> datetime_aware: ... - @property - def id(self) -> str: ... - @property - def url(self) -> str: ... - @property - def text(self) -> str: ... +class Upvote(Protocol, RedditBase): @property def title(self) -> str: ... # From rexport, pushshift and the reddit GDPR export -class Comment(Protocol): - @property - def raw(self) -> Json: ... - @property - def created(self) -> datetime_aware: ... - @property - def id(self) -> str: ... - @property - def url(self) -> str: ... - @property - def text(self) -> str: ... +class Comment(Protocol, RedditBase): + pass # From rexport and the GDPR export -class Submission(Protocol): - @property - def raw(self) -> Json: ... - @property - def created(self) -> datetime_aware: ... - @property - def id(self) -> str: ... - @property - def url(self) -> str: ... - @property - def text(self) -> str: ... +class Submission(Protocol, RedditBase): @property def title(self) -> str: ...