From 4302c6735d2985ed76e4a2d4a3319c7ef2c7ca84 Mon Sep 17 00:00:00 2001 From: Lars-Dominik Braun Date: Wed, 20 Jun 2018 11:39:40 +0200 Subject: Add __slots__ to classes This is mainly a quality of life change --- crocoite/behavior.py | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) (limited to 'crocoite/behavior.py') diff --git a/crocoite/behavior.py b/crocoite/behavior.py index fd8fff8..ffdc50c 100644 --- a/crocoite/behavior.py +++ b/crocoite/behavior.py @@ -43,6 +43,9 @@ logger = logging.getLogger(__name__) class Script: """ A JavaScript resource """ + + __slots__ = ('path', 'data') + def __init__ (self, path=None, encoding='utf-8'): self.path = path if path: @@ -61,6 +64,8 @@ class Script: return s class Behavior: + __slots__ = ('loader') + # unique behavior name name = None @@ -102,6 +107,8 @@ class HostnameFilter: class JsOnload (Behavior): """ Execute JavaScript on page load """ + __slots__ = ('script', 'scriptHandle') + scriptPath = None def __init__ (self, loader): @@ -120,6 +127,8 @@ class JsOnload (Behavior): ### Generic scripts ### class Scroll (JsOnload): + __slots__ = ('stopVarname') + name = 'scroll' scriptPath = 'scroll.js' @@ -170,6 +179,8 @@ class EmulateScreenMetrics (Behavior): yield from () class DomSnapshotEvent: + __slots__ = ('url', 'document', 'viewport') + def __init__ (self, url, document, viewport): self.url = url self.document = document @@ -186,6 +197,8 @@ class DomSnapshot (Behavior): can’t handle that though. """ + __slots__ = ('script') + name = 'domSnapshot' def __init__ (self, loader): @@ -222,6 +235,8 @@ class DomSnapshot (Behavior): yield DomSnapshotEvent (doc['documentURL'], serializer.render (stream, 'utf-8'), viewport) class ScreenshotEvent: + __slots__ = ('yoff', 'data') + def __init__ (self, yoff, data): self.yoff = yoff self.data = data @@ -257,6 +272,8 @@ class Click (JsOnload): scriptPath = 'click.js' class ExtractLinksEvent: + __slots__ = ('links') + def __init__ (self, links): self.links = links @@ -268,12 +285,13 @@ class ExtractLinks (Behavior): manually resolve relative links. """ + __slots__ = ('script') + name = 'extractLinks' def __init__ (self, loader): super ().__init__ (loader) self.script = Script ('extract-links.js') - self.links = None def onfinish (self): tab = self.loader.tab -- cgit v1.2.3