summaryrefslogtreecommitdiff
path: root/morphlib/artifact.py
diff options
context:
space:
mode:
Diffstat (limited to 'morphlib/artifact.py')
-rw-r--r--morphlib/artifact.py51
1 files changed, 8 insertions, 43 deletions
diff --git a/morphlib/artifact.py b/morphlib/artifact.py
index da6d3763..8b4ce65e 100644
--- a/morphlib/artifact.py
+++ b/morphlib/artifact.py
@@ -22,13 +22,7 @@ class Artifact(object):
* ``source`` -- the source from which the artifact is built
* ``name`` -- the name of the artifact
- * ``cache_key`` -- a cache key to uniquely identify the artifact
- * ``cache_id`` -- a dict describing the components of the cache key
- * ``dependencies`` -- list of Artifacts that need to be built beforehand
- * ``dependents`` -- list of Artifacts that need this Artifact to be built
- * ``metadata_version`` -- When the format of the artifact metadata
- changes, this version number is raised causing
- any existing cached artifacts to be invalidated
+ * ``dependents`` -- list of Sources that need this Artifact to be built
The ``dependencies`` and ``dependents`` lists MUST be modified by
the ``add_dependencies`` and ``add_dependent`` methods only.
@@ -38,50 +32,21 @@ class Artifact(object):
def __init__(self, source, name):
self.source = source
self.name = name
- self.cache_id = None
- self.cache_key = None
- self.dependencies = []
self.dependents = []
- self.metadata_version = 1
-
- def add_dependency(self, artifact):
- '''Add ``artifact`` to the dependency list.'''
- if artifact not in self.dependencies:
- self.dependencies.append(artifact)
- artifact.dependents.append(self)
-
- def depends_on(self, artifact):
- '''Do we depend on ``artifact``?'''
- return artifact in self.dependencies
def basename(self): # pragma: no cover
- return '%s.%s.%s' % (self.cache_key,
- str(self.source.morphology['kind']),
- str(self.name))
+ return '%s.%s' % (self.source.basename(), str(self.name))
def metadata_basename(self, metadata_name): # pragma: no cover
- return '%s.%s.%s.%s' % (self.cache_key,
- str(self.source.morphology['kind']),
- str(self.name),
- metadata_name)
-
- def get_dependency_prefix_set(self):
- '''Collects all install prefixes of this artifact's build dependencies
-
- If any of the build dependencies of a chunk artifact are installed
- to non-standard prefixes, we need to add those prefixes to the
- PATH of the current artifact.
-
- '''
- result = set()
- for d in self.dependencies:
- if d.source.morphology['kind'] == 'chunk':
- result.add(d.source.prefix)
- return result
+ return '%s.%s' % (self.basename(), metadata_name)
def __str__(self): # pragma: no cover
return '%s|%s' % (self.source, self.name)
+ def __repr__(self): # pragma: no cover
+ return 'Artifact(%s)' % str(self)
+
+
def walk(self): # pragma: no cover
'''Return list of an artifact and its build dependencies.
@@ -95,7 +60,7 @@ class Artifact(object):
def depth_first(a):
if a not in done:
done.add(a)
- for dep in a.dependencies:
+ for dep in a.source.dependencies:
for ret in depth_first(dep):
yield ret
yield a