Make models use slots
This commit is contained in:
@@ -1,9 +1,9 @@
|
||||
import attr
|
||||
from ._core import Image
|
||||
from ._core import attrs_default, Image
|
||||
from . import _util
|
||||
|
||||
|
||||
@attr.s
|
||||
@attrs_default
|
||||
class Attachment:
|
||||
"""Represents a Facebook attachment."""
|
||||
|
||||
@@ -11,12 +11,12 @@ class Attachment:
|
||||
uid = attr.ib(None)
|
||||
|
||||
|
||||
@attr.s
|
||||
@attrs_default
|
||||
class UnsentMessage(Attachment):
|
||||
"""Represents an unsent message attachment."""
|
||||
|
||||
|
||||
@attr.s
|
||||
@attrs_default
|
||||
class ShareAttachment(Attachment):
|
||||
"""Represents a shared item (e.g. URL) attachment."""
|
||||
|
||||
|
@@ -4,6 +4,9 @@ import aenum
|
||||
|
||||
log = logging.getLogger("fbchat")
|
||||
|
||||
#: Default attrs settings for classes
|
||||
attrs_default = attr.s(slots=True) # TODO: Add kw_only=True
|
||||
|
||||
|
||||
class Enum(aenum.Enum):
|
||||
"""Used internally by ``fbchat`` to support enumerations"""
|
||||
|
@@ -1,10 +1,10 @@
|
||||
import attr
|
||||
from ._core import Image
|
||||
from ._core import attrs_default, Image
|
||||
from . import _util
|
||||
from ._attachment import Attachment
|
||||
|
||||
|
||||
@attr.s
|
||||
@attrs_default
|
||||
class FileAttachment(Attachment):
|
||||
"""Represents a file that has been sent as a Facebook attachment."""
|
||||
|
||||
@@ -28,7 +28,7 @@ class FileAttachment(Attachment):
|
||||
)
|
||||
|
||||
|
||||
@attr.s
|
||||
@attrs_default
|
||||
class AudioAttachment(Attachment):
|
||||
"""Represents an audio file that has been sent as a Facebook attachment."""
|
||||
|
||||
@@ -51,7 +51,7 @@ class AudioAttachment(Attachment):
|
||||
)
|
||||
|
||||
|
||||
@attr.s
|
||||
@attrs_default
|
||||
class ImageAttachment(Attachment):
|
||||
"""Represents an image that has been sent as a Facebook attachment.
|
||||
|
||||
@@ -108,7 +108,7 @@ class ImageAttachment(Attachment):
|
||||
)
|
||||
|
||||
|
||||
@attr.s
|
||||
@attrs_default
|
||||
class VideoAttachment(Attachment):
|
||||
"""Represents a video that has been sent as a Facebook attachment."""
|
||||
|
||||
|
@@ -1,10 +1,10 @@
|
||||
import attr
|
||||
from ._core import Image
|
||||
from ._core import attrs_default, Image
|
||||
from . import _util, _plan
|
||||
from ._thread import ThreadType, Thread
|
||||
|
||||
|
||||
@attr.s
|
||||
@attrs_default
|
||||
class Group(Thread):
|
||||
"""Represents a Facebook group. Inherits `Thread`."""
|
||||
|
||||
|
@@ -1,10 +1,10 @@
|
||||
import attr
|
||||
from ._core import Image
|
||||
from ._core import attrs_default, Image
|
||||
from ._attachment import Attachment
|
||||
from . import _util
|
||||
|
||||
|
||||
@attr.s
|
||||
@attrs_default
|
||||
class LocationAttachment(Attachment):
|
||||
"""Represents a user location.
|
||||
|
||||
@@ -44,7 +44,7 @@ class LocationAttachment(Attachment):
|
||||
)
|
||||
|
||||
|
||||
@attr.s
|
||||
@attrs_default
|
||||
class LiveLocationAttachment(LocationAttachment):
|
||||
"""Represents a live user location."""
|
||||
|
||||
|
@@ -1,7 +1,7 @@
|
||||
import attr
|
||||
import json
|
||||
from string import Formatter
|
||||
from ._core import log, Enum
|
||||
from ._core import log, attrs_default, Enum
|
||||
from . import _util, _attachment, _location, _file, _quick_reply, _sticker
|
||||
|
||||
|
||||
@@ -42,7 +42,7 @@ class MessageReaction(Enum):
|
||||
NO = "👎"
|
||||
|
||||
|
||||
@attr.s
|
||||
@attrs_default
|
||||
class Mention:
|
||||
"""Represents a ``@mention``."""
|
||||
|
||||
@@ -54,7 +54,7 @@ class Mention:
|
||||
length = attr.ib(10)
|
||||
|
||||
|
||||
@attr.s
|
||||
@attrs_default
|
||||
class Message:
|
||||
"""Represents a Facebook message."""
|
||||
|
||||
|
@@ -1,10 +1,10 @@
|
||||
import attr
|
||||
from ._core import Image
|
||||
from ._core import attrs_default, Image
|
||||
from . import _plan
|
||||
from ._thread import ThreadType, Thread
|
||||
|
||||
|
||||
@attr.s
|
||||
@attrs_default
|
||||
class Page(Thread):
|
||||
"""Represents a Facebook page. Inherits `Thread`."""
|
||||
|
||||
|
@@ -1,6 +1,6 @@
|
||||
import attr
|
||||
import json
|
||||
from ._core import Enum
|
||||
from ._core import attrs_default, Enum
|
||||
from . import _util
|
||||
|
||||
|
||||
@@ -10,7 +10,7 @@ class GuestStatus(Enum):
|
||||
DECLINED = 3
|
||||
|
||||
|
||||
@attr.s
|
||||
@attrs_default
|
||||
class Plan:
|
||||
"""Represents a plan."""
|
||||
|
||||
|
@@ -1,7 +1,8 @@
|
||||
import attr
|
||||
from ._core import attrs_default
|
||||
|
||||
|
||||
@attr.s
|
||||
@attrs_default
|
||||
class Poll:
|
||||
"""Represents a poll."""
|
||||
|
||||
@@ -24,7 +25,7 @@ class Poll:
|
||||
)
|
||||
|
||||
|
||||
@attr.s
|
||||
@attrs_default
|
||||
class PollOption:
|
||||
"""Represents a poll option."""
|
||||
|
||||
|
@@ -1,8 +1,9 @@
|
||||
import attr
|
||||
from ._core import attrs_default
|
||||
from ._attachment import Attachment
|
||||
|
||||
|
||||
@attr.s
|
||||
@attrs_default
|
||||
class QuickReply:
|
||||
"""Represents a quick reply."""
|
||||
|
||||
@@ -16,7 +17,7 @@ class QuickReply:
|
||||
is_response = attr.ib(False)
|
||||
|
||||
|
||||
@attr.s
|
||||
@attrs_default
|
||||
class QuickReplyText(QuickReply):
|
||||
"""Represents a text quick reply."""
|
||||
|
||||
@@ -28,7 +29,7 @@ class QuickReplyText(QuickReply):
|
||||
_type = "text"
|
||||
|
||||
|
||||
@attr.s
|
||||
@attrs_default
|
||||
class QuickReplyLocation(QuickReply):
|
||||
"""Represents a location quick reply (Doesn't work on mobile)."""
|
||||
|
||||
@@ -36,7 +37,7 @@ class QuickReplyLocation(QuickReply):
|
||||
_type = "location"
|
||||
|
||||
|
||||
@attr.s
|
||||
@attrs_default
|
||||
class QuickReplyPhoneNumber(QuickReply):
|
||||
"""Represents a phone number quick reply (Doesn't work on mobile)."""
|
||||
|
||||
@@ -46,7 +47,7 @@ class QuickReplyPhoneNumber(QuickReply):
|
||||
_type = "user_phone_number"
|
||||
|
||||
|
||||
@attr.s
|
||||
@attrs_default
|
||||
class QuickReplyEmail(QuickReply):
|
||||
"""Represents an email quick reply (Doesn't work on mobile)."""
|
||||
|
||||
|
@@ -5,7 +5,7 @@ import requests
|
||||
import random
|
||||
import urllib.parse
|
||||
|
||||
from ._core import log
|
||||
from ._core import log, attrs_default
|
||||
from . import _graphql, _util, _exception
|
||||
|
||||
FB_DTSG_REGEX = re.compile(r'name="fb_dtsg" value="(.*?)"')
|
||||
@@ -98,7 +98,7 @@ def _2fa_helper(session, code, r):
|
||||
return r
|
||||
|
||||
|
||||
@attr.s(slots=True) # TODO i Python 3: Add kw_only=True
|
||||
@attrs_default # TODO i Python 3: Add kw_only=True
|
||||
class State:
|
||||
"""Stores and manages state required for most Facebook requests."""
|
||||
|
||||
|
@@ -1,9 +1,9 @@
|
||||
import attr
|
||||
from ._core import Image
|
||||
from ._core import attrs_default, Image
|
||||
from ._attachment import Attachment
|
||||
|
||||
|
||||
@attr.s
|
||||
@attrs_default
|
||||
class Sticker(Attachment):
|
||||
"""Represents a Facebook sticker that has been sent to a thread as an attachment."""
|
||||
|
||||
|
@@ -1,5 +1,5 @@
|
||||
import attr
|
||||
from ._core import Enum, Image
|
||||
from ._core import attrs_default, Enum, Image
|
||||
|
||||
|
||||
class ThreadType(Enum):
|
||||
@@ -67,7 +67,7 @@ class ThreadColor(Enum):
|
||||
return cls._extend_if_invalid(value)
|
||||
|
||||
|
||||
@attr.s
|
||||
@attrs_default
|
||||
class Thread:
|
||||
"""Represents a Facebook thread."""
|
||||
|
||||
|
@@ -1,5 +1,5 @@
|
||||
import attr
|
||||
from ._core import Enum, Image
|
||||
from ._core import attrs_default, Enum, Image
|
||||
from . import _util, _plan
|
||||
from ._thread import ThreadType, Thread
|
||||
|
||||
@@ -41,7 +41,7 @@ class TypingStatus(Enum):
|
||||
TYPING = 1
|
||||
|
||||
|
||||
@attr.s
|
||||
@attrs_default
|
||||
class User(Thread):
|
||||
"""Represents a Facebook user. Inherits `Thread`."""
|
||||
|
||||
|
Reference in New Issue
Block a user