diff options
author | Asif Saif Uddin <auvipy@gmail.com> | 2022-02-08 06:49:18 +0600 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-02-08 06:49:18 +0600 |
commit | d0ab95ec91176d13ef4c5d1ae162bb48b4f95bef (patch) | |
tree | 2d30bbe3994e9375bac3ee44d99901b1fbb45df2 /amqp | |
parent | 59af2445549e4e1bb87a932cbb4d196629f16dd6 (diff) | |
download | py-amqp-d0ab95ec91176d13ef4c5d1ae162bb48b4f95bef.tar.gz |
adding experimental __slots__ to some classes (#368)
* adding experimental __slots__ to some classes
* adding more experimental __slots__ to some classes
* remove redundant slots
* added more experimental slots to classes
* remove slots from buffer class
Diffstat (limited to 'amqp')
-rw-r--r-- | amqp/abstract_channel.py | 13 | ||||
-rw-r--r-- | amqp/basic_message.py | 6 | ||||
-rw-r--r-- | amqp/channel.py | 12 | ||||
-rw-r--r-- | amqp/sasl.py | 17 | ||||
-rw-r--r-- | amqp/serialization.py | 13 | ||||
-rw-r--r-- | amqp/transport.py | 20 |
6 files changed, 81 insertions, 0 deletions
diff --git a/amqp/abstract_channel.py b/amqp/abstract_channel.py index 6234b19..ae95a89 100644 --- a/amqp/abstract_channel.py +++ b/amqp/abstract_channel.py @@ -39,6 +39,19 @@ class AbstractChannel: self._setup_listeners() + __slots__ = ( + "is_closing", + "connection", + "channel_id", + "method_queue", + "auto_decode", + "_pending", + "_callbacks", + # adding '__dict__' to get dynamic assignment + "__dict__", + "__weakref__", + ) + def __enter__(self): return self diff --git a/amqp/basic_message.py b/amqp/basic_message.py index 222d366..cee0515 100644 --- a/amqp/basic_message.py +++ b/amqp/basic_message.py @@ -107,6 +107,12 @@ class Message(GenericContent): self.body = body self.channel = channel + __slots__ = ( + "delivery_info", + "body", + "channel", + ) + @property def headers(self): return self.properties.get('application_headers') diff --git a/amqp/channel.py b/amqp/channel.py index 77cfaab..fffc7b8 100644 --- a/amqp/channel.py +++ b/amqp/channel.py @@ -122,6 +122,18 @@ class Channel(AbstractChannel): if self.connection.confirm_publish: self.basic_publish = self.basic_publish_confirm + __slots__ = ( + "is_open", + "active", + "returned_messages", + "callbacks", + "cancel_callbacks", + "events", + "no_ack_consumers", + "on_open", + "_confirm_selected", + ) + def then(self, on_success, on_error=None): return self.on_open.then(on_success, on_error) diff --git a/amqp/sasl.py b/amqp/sasl.py index 9a98a7a..407ccb8 100644 --- a/amqp/sasl.py +++ b/amqp/sasl.py @@ -34,6 +34,11 @@ class PLAIN(SASL): def __init__(self, username, password): self.username, self.password = username, password + __slots__ = ( + "username", + "password", + ) + def start(self, connection): if self.username is None or self.password is None: return NotImplemented @@ -56,6 +61,11 @@ class AMQPLAIN(SASL): def __init__(self, username, password): self.username, self.password = username, password + __slots__ = ( + "username", + "password", + ) + def start(self, connection): if self.username is None or self.password is None: return NotImplemented @@ -104,6 +114,13 @@ def _get_gssapi_mechanism(): self.service = service self.rdns = rdns + __slots__ = ( + "client_name", + "fail_soft", + "service", + "rdns" + ) + def get_hostname(self, connection): sock = connection.transport.sock if self.rdns and sock.family in (socket.AF_INET, diff --git a/amqp/serialization.py b/amqp/serialization.py index 90f5857..1f2f8e2 100644 --- a/amqp/serialization.py +++ b/amqp/serialization.py @@ -488,6 +488,19 @@ class GenericContent: self.body_size = 0 self.ready = False + __slots__ = ( + "frame_method", + "frame_args", + "properties", + "_pending_chunks", + "body_received", + "body_size", + "ready", + # adding '__dict__' to get dynamic assignment + "__dict__", + "__weakref__", + ) + def __getattr__(self, name): # Look for additional properties in the 'properties' # dictionary, and if present - the 'delivery_info' dictionary. diff --git a/amqp/transport.py b/amqp/transport.py index b87f9fe..b5a0d4b 100644 --- a/amqp/transport.py +++ b/amqp/transport.py @@ -97,6 +97,22 @@ class _AbstractTransport: self.write_timeout = write_timeout self.socket_settings = socket_settings + __slots__ = ( + "connection", + "sock", + "raise_on_initial_eintr", + "_read_buffer", + "host", + "port", + "connect_timeout", + "read_timeout", + "write_timeout", + "socket_settings", + # adding '__dict__' to get dynamic assignment + "__dict__", + "__weakref__", + ) + def __repr__(self): if self.sock: src = f'{self.sock.getsockname()[0]}:{self.sock.getsockname()[1]}' @@ -410,6 +426,10 @@ class SSLTransport(_AbstractTransport): super().__init__( host, connect_timeout=connect_timeout, **kwargs) + __slots__ = ( + "sslopts", + ) + def _setup_transport(self): """Wrap the socket in an SSL object.""" self.sock = self._wrap_socket(self.sock, **self.sslopts) |