diff options
author | Daniel Silverstone <daniel.silverstone@codethink.co.uk> | 2019-06-05 16:35:37 +0100 |
---|---|---|
committer | Daniel Silverstone <daniel.silverstone@codethink.co.uk> | 2019-06-05 16:35:37 +0100 |
commit | 26434f3e633abf297be0633352aebce5b591782b (patch) | |
tree | b8e69d11a80620f09cd2b40487fff9e296f99bb9 | |
parent | c4b08c67edb9038cbc43b98f9ec675f7665f68ac (diff) | |
download | buildstream-danielsilverstone-ct/loader-depends-smearing.tar.gz |
_loader: Add __slots__ to loadelement, meta*, and friendsdanielsilverstone-ct/loader-depends-smearing
Since these classes are basically named tuples, give them __slots__
to speed them up.
Signed-off-by: Daniel Silverstone <daniel.silverstone@codethink.co.uk>
-rw-r--r-- | src/buildstream/_loader/loadelement.py | 15 | ||||
-rw-r--r-- | src/buildstream/_loader/metaelement.py | 18 | ||||
-rw-r--r-- | src/buildstream/_loader/metasource.py | 10 |
3 files changed, 43 insertions, 0 deletions
diff --git a/src/buildstream/_loader/loadelement.py b/src/buildstream/_loader/loadelement.py index 9296acc50..abb29d228 100644 --- a/src/buildstream/_loader/loadelement.py +++ b/src/buildstream/_loader/loadelement.py @@ -51,12 +51,27 @@ class LoadElement(): # element (LoadElement): a LoadElement on which there is a dependency # dep_type (str): the type of dependency this dependency link is class Dependency: + + __slots__ = ('element', 'dep_type') + def __init__(self, element, dep_type): self.element = element self.dep_type = dep_type _counter = count() + __slots__ = ( + 'node', + 'name', + 'full_name', + 'deps', + 'meta_done', + 'node_id', + 'dependencies', + '_loader', + '_dep_cache', + ) + def __init__(self, node, filename, loader): # diff --git a/src/buildstream/_loader/metaelement.py b/src/buildstream/_loader/metaelement.py index 45eb6f4d0..cda1c3434 100644 --- a/src/buildstream/_loader/metaelement.py +++ b/src/buildstream/_loader/metaelement.py @@ -22,6 +22,24 @@ from .. import _yaml class MetaElement(): + __slots__ = ( + 'project', + 'name', + 'kind', + 'provenance', + 'sources', + 'config', + 'variables', + 'environment', + 'env_nocache', + 'public', + 'sandbox', + 'build_dependencies', + 'dependencies', + 'first_pass', + 'is_junction', + ) + # MetaElement() # # An abstract object holding data suitable for constructing an Element diff --git a/src/buildstream/_loader/metasource.py b/src/buildstream/_loader/metasource.py index da2c0e292..5cf7dc7ba 100644 --- a/src/buildstream/_loader/metasource.py +++ b/src/buildstream/_loader/metasource.py @@ -20,6 +20,16 @@ class MetaSource(): + __slots__ = ( + 'element_name', + 'element_index', + 'element_kind', + 'kind', + 'config', + 'directory', + 'first_pass', + ) + # MetaSource() # # An abstract object holding data suitable for constructing a Source |