Fix flake8 line length errors

This commit is contained in:
Glenn Johnson 2016-08-01 13:37:42 -05:00
parent b1e5ec0573
commit 19578d954f

View File

@ -52,10 +52,12 @@ class Stage(object):
lifecycle looks like this: lifecycle looks like this:
``` ```
with Stage() as stage: # Context manager creates and destroys the stage directory with Stage() as stage: # Context manager creates and destroys the
# stage directory
stage.fetch() # Fetch a source archive into the stage. stage.fetch() # Fetch a source archive into the stage.
stage.expand_archive() # Expand the source archive. stage.expand_archive() # Expand the source archive.
<install> # Build and install the archive. (handled by user of Stage) <install> # Build and install the archive. (handled by
# user of Stage)
``` ```
When used as a context manager, the stage is automatically When used as a context manager, the stage is automatically
@ -72,7 +74,8 @@ class Stage(object):
stage.create() # Explicitly create the stage directory. stage.create() # Explicitly create the stage directory.
stage.fetch() # Fetch a source archive into the stage. stage.fetch() # Fetch a source archive into the stage.
stage.expand_archive() # Expand the source archive. stage.expand_archive() # Expand the source archive.
<install> # Build and install the archive. (handled by user of Stage) <install> # Build and install the archive. (handled by
# user of Stage)
finally: finally:
stage.destroy() # Explicitly destroy the stage directory. stage.destroy() # Explicitly destroy the stage directory.
``` ```
@ -121,13 +124,17 @@ def __init__(self, url_or_fetch_strategy,
elif isinstance(url_or_fetch_strategy, fs.FetchStrategy): elif isinstance(url_or_fetch_strategy, fs.FetchStrategy):
self.fetcher = url_or_fetch_strategy self.fetcher = url_or_fetch_strategy
else: else:
raise ValueError("Can't construct Stage without url or fetch strategy") raise ValueError(
"Can't construct Stage without url or fetch strategy")
self.fetcher.set_stage(self) self.fetcher.set_stage(self)
self.default_fetcher = self.fetcher # self.fetcher can change with mirrors. # self.fetcher can change with mirrors.
self.skip_checksum_for_mirror = True # used for mirrored archives of repositories. self.default_fetcher = self.fetcher
# used for mirrored archives of repositories.
self.skip_checksum_for_mirror = True
# TODO : this uses a protected member of tempfile, but seemed the only way to get a temporary name # TODO : this uses a protected member of tempfile, but seemed the only
# TODO : besides, the temporary link name won't be the same as the temporary stage area in tmp_root # TODO : way to get a temporary name besides, the temporary link name
# TODO : won't be the same as the temporary stage area in tmp_root
self.name = name self.name = name
if name is None: if name is None:
self.name = STAGE_PREFIX + next(tempfile._get_candidate_names()) self.name = STAGE_PREFIX + next(tempfile._get_candidate_names())
@ -175,8 +182,7 @@ def __exit__(self, exc_type, exc_val, exc_tb):
def _need_to_create_path(self): def _need_to_create_path(self):
"""Makes sure nothing weird has happened since the last time we """Makes sure nothing weird has happened since the last time we
looked at path. Returns True if path already exists and is ok. looked at path. Returns True if path already exists and is ok.
Returns False if path needs to be created. Returns False if path needs to be created."""
"""
# Path doesn't exist yet. Will need to create it. # Path doesn't exist yet. Will need to create it.
if not os.path.exists(self.path): if not os.path.exists(self.path):
return True return True
@ -194,7 +200,8 @@ def _need_to_create_path(self):
if spack.use_tmp_stage: if spack.use_tmp_stage:
# If we're using a tmp dir, it's a link, and it points at the # If we're using a tmp dir, it's a link, and it points at the
# right spot, then keep it. # right spot, then keep it.
if (real_path.startswith(real_tmp) and os.path.exists(real_path)): if (real_path.startswith(real_tmp) and
os.path.exists(real_path)):
return False return False
else: else:
# otherwise, just unlink it and start over. # otherwise, just unlink it and start over.
@ -202,7 +209,8 @@ def _need_to_create_path(self):
return True return True
else: else:
# If we're not tmp mode, then it's a link and we want a directory. # If we're not tmp mode, then it's a link and we want a
# directory.
os.unlink(self.path) os.unlink(self.path)
return True return True
@ -213,10 +221,12 @@ def expected_archive_files(self):
"""Possible archive file paths.""" """Possible archive file paths."""
paths = [] paths = []
if isinstance(self.fetcher, fs.URLFetchStrategy): if isinstance(self.fetcher, fs.URLFetchStrategy):
paths.append(os.path.join(self.path, os.path.basename(self.fetcher.url))) paths.append(os.path.join(
self.path, os.path.basename(self.fetcher.url)))
if self.mirror_path: if self.mirror_path:
paths.append(os.path.join(self.path, os.path.basename(self.mirror_path))) paths.append(os.path.join(
self.path, os.path.basename(self.mirror_path)))
return paths return paths
@ -225,10 +235,12 @@ def archive_file(self):
"""Path to the source archive within this stage directory.""" """Path to the source archive within this stage directory."""
paths = [] paths = []
if isinstance(self.fetcher, fs.URLFetchStrategy): if isinstance(self.fetcher, fs.URLFetchStrategy):
paths.append(os.path.join(self.path, os.path.basename(self.fetcher.url))) paths.append(os.path.join(
self.path, os.path.basename(self.fetcher.url)))
if self.mirror_path: if self.mirror_path:
paths.append(os.path.join(self.path, os.path.basename(self.mirror_path))) paths.append(os.path.join(
self.path, os.path.basename(self.mirror_path)))
for path in paths: for path in paths:
if os.path.exists(path): if os.path.exists(path):
@ -260,7 +272,8 @@ def source_path(self):
return None return None
def chdir(self): def chdir(self):
"""Changes directory to the stage path. Or dies if it is not set up.""" """Changes directory to the stage path. Or dies if it is not set
up."""
if os.path.isdir(self.path): if os.path.isdir(self.path):
os.chdir(self.path) os.chdir(self.path)
else: else:
@ -335,7 +348,8 @@ def fetch(self, mirror_only=False):
def check(self): def check(self):
"""Check the downloaded archive against a checksum digest. """Check the downloaded archive against a checksum digest.
No-op if this stage checks code out of a repository.""" No-op if this stage checks code out of a repository."""
if self.fetcher is not self.default_fetcher and self.skip_checksum_for_mirror: if self.fetcher is not self.default_fetcher and \
self.skip_checksum_for_mirror:
tty.warn("Fetching from mirror without a checksum!", tty.warn("Fetching from mirror without a checksum!",
"This package is normally checked out from a version " "This package is normally checked out from a version "
"control system, but it has been archived on a spack " "control system, but it has been archived on a spack "
@ -351,8 +365,7 @@ def cache_local(self):
def expand_archive(self): def expand_archive(self):
"""Changes to the stage directory and attempt to expand the downloaded """Changes to the stage directory and attempt to expand the downloaded
archive. Fail if the stage is not set up or if the archive is not yet archive. Fail if the stage is not set up or if the archive is not yet
downloaded. downloaded."""
"""
archive_dir = self.source_path archive_dir = self.source_path
if not archive_dir: if not archive_dir:
self.fetcher.expand() self.fetcher.expand()
@ -394,8 +407,8 @@ def create(self):
# Create the top-level stage directory # Create the top-level stage directory
mkdirp(spack.stage_path) mkdirp(spack.stage_path)
remove_dead_links(spack.stage_path) remove_dead_links(spack.stage_path)
# If a tmp_root exists then create a directory there and then link it in the stage area, # If a tmp_root exists then create a directory there and then link it
# otherwise create the stage directory in self.path # in the stage area, otherwise create the stage directory in self.path
if self._need_to_create_path(): if self._need_to_create_path():
if self.tmp_root: if self.tmp_root:
tmp_dir = tempfile.mkdtemp('', STAGE_PREFIX, self.tmp_root) tmp_dir = tempfile.mkdtemp('', STAGE_PREFIX, self.tmp_root)
@ -417,6 +430,7 @@ def destroy(self):
class ResourceStage(Stage): class ResourceStage(Stage):
def __init__(self, url_or_fetch_strategy, root, resource, **kwargs): def __init__(self, url_or_fetch_strategy, root, resource, **kwargs):
super(ResourceStage, self).__init__(url_or_fetch_strategy, **kwargs) super(ResourceStage, self).__init__(url_or_fetch_strategy, **kwargs)
self.root_stage = root self.root_stage = root
@ -426,12 +440,15 @@ def expand_archive(self):
super(ResourceStage, self).expand_archive() super(ResourceStage, self).expand_archive()
root_stage = self.root_stage root_stage = self.root_stage
resource = self.resource resource = self.resource
placement = os.path.basename(self.source_path) if resource.placement is None else resource.placement placement = os.path.basename(self.source_path) \
if resource.placement is None \
else resource.placement
if not isinstance(placement, dict): if not isinstance(placement, dict):
placement = {'': placement} placement = {'': placement}
# Make the paths in the dictionary absolute and link # Make the paths in the dictionary absolute and link
for key, value in placement.iteritems(): for key, value in placement.iteritems():
target_path = join_path(root_stage.source_path, resource.destination) target_path = join_path(
root_stage.source_path, resource.destination)
destination_path = join_path(target_path, value) destination_path = join_path(target_path, value)
source_path = join_path(self.source_path, key) source_path = join_path(self.source_path, key)
@ -445,21 +462,23 @@ def expand_archive(self):
if not os.path.exists(destination_path): if not os.path.exists(destination_path):
# Create a symlink # Create a symlink
tty.info('Moving resource stage\n\tsource : {stage}\n\tdestination : {destination}'.format( tty.info('Moving resource stage\n\tsource : '
'{stage}\n\tdestination : {destination}'.format(
stage=source_path, destination=destination_path stage=source_path, destination=destination_path
)) ))
shutil.move(source_path, destination_path) shutil.move(source_path, destination_path)
@pattern.composite(method_list=['fetch', 'create', 'check', 'expand_archive', 'restage', 'destroy', 'cache_local']) @pattern.composite(method_list=['fetch', 'create', 'check', 'expand_archive',
'restage', 'destroy', 'cache_local'])
class StageComposite: class StageComposite:
""" """Composite for Stage type objects. The first item in this composite is
Composite for Stage type objects. The first item in this composite is considered to be the root package, and considered to be the root package, and operations that return a value are
operations that return a value are forwarded to it. forwarded to it."""
"""
# #
# __enter__ and __exit__ delegate to all stages in the composite. # __enter__ and __exit__ delegate to all stages in the composite.
# #
def __enter__(self): def __enter__(self):
for item in self: for item in self:
item.__enter__() item.__enter__()