From 783b1d112b19dd0f90d9b5942f3dfb283714be1a Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Sat, 7 Jun 2014 21:17:31 +0530 Subject: [PATCH] Use __slots__ for easy memory savings --- src/tinycss/css21.py | 9 +++++++++ src/tinycss/fonts3.py | 1 + src/tinycss/page3.py | 2 ++ 3 files changed, 12 insertions(+) diff --git a/src/tinycss/css21.py b/src/tinycss/css21.py index 69738d3914..befe9bf385 100644 --- a/src/tinycss/css21.py +++ b/src/tinycss/css21.py @@ -100,6 +100,9 @@ class AtRule(object): the user API. """ + + __slots__ = 'at_keyword', 'head', 'body', 'line', 'column' + def __init__(self, at_keyword, head, body, line, column): self.at_keyword = at_keyword self.head = TokenList(head) @@ -134,6 +137,7 @@ class RuleSet(object): """ at_keyword = None + __slots__ = 'selector', 'declarations', 'line', 'column' def __init__(self, selector, declarations, line, column): self.selector = TokenList(selector) @@ -171,6 +175,8 @@ class Declaration(object): Either the string ``'important'`` or ``None``. """ + __slots__ = 'name', 'value', 'priority', 'line', 'column' + def __init__(self, name, value, priority, line, column): self.name = name self.value = TokenList(value) @@ -215,6 +221,7 @@ class PageRule(object): """ at_keyword = '@page' + __slots__ = 'selector', 'specificity', 'declarations', 'at_rules', 'line', 'column' def __init__(self, selector, specificity, declarations, at_rules, line, column): @@ -249,6 +256,7 @@ class MediaRule(object): """ at_keyword = '@media' + __slots__ = 'media', 'rules', 'line', 'column' def __init__(self, media, rules, line, column): self.media = media @@ -282,6 +290,7 @@ class ImportRule(object): """ at_keyword = '@import' + __slots__ = 'uri', 'media', 'line', 'column' def __init__(self, uri, media, line, column): self.uri = uri diff --git a/src/tinycss/fonts3.py b/src/tinycss/fonts3.py index e469ee5296..9a53c1b55d 100644 --- a/src/tinycss/fonts3.py +++ b/src/tinycss/fonts3.py @@ -12,6 +12,7 @@ from tinycss.css21 import CSS21Parser, ParseError class FontFaceRule(object): at_keyword = '@font-face' + __slots__ = 'declarations', 'line', 'column' def __init__(self, declarations, line, column): self.declarations = declarations diff --git a/src/tinycss/page3.py b/src/tinycss/page3.py index b5b09ffb8f..8a4e150e24 100644 --- a/src/tinycss/page3.py +++ b/src/tinycss/page3.py @@ -54,6 +54,8 @@ class MarginRule(object): """ + __slots__ = 'at_keyword', 'declarations', 'line', 'column' + def __init__(self, at_keyword, declarations, line, column): self.at_keyword = at_keyword self.declarations = declarations