diff options
author | Nishanth Amuluru | 2011-01-11 22:41:51 +0530 |
---|---|---|
committer | Nishanth Amuluru | 2011-01-11 22:41:51 +0530 |
commit | b03203c8cb991c16ac8a3d74c8c4078182d0bb48 (patch) | |
tree | 7cf13b2deacbfaaec99edb431b83ddd5ea734a52 /eggs/infrae.subversion-1.4.5-py2.6.egg/infrae/subversion/Common.py | |
parent | 0c50203cd9eb94b819883c3110922e873f003138 (diff) | |
download | pytask-b03203c8cb991c16ac8a3d74c8c4078182d0bb48.tar.gz pytask-b03203c8cb991c16ac8a3d74c8c4078182d0bb48.tar.bz2 pytask-b03203c8cb991c16ac8a3d74c8c4078182d0bb48.zip |
removed all the buildout files
Diffstat (limited to 'eggs/infrae.subversion-1.4.5-py2.6.egg/infrae/subversion/Common.py')
-rw-r--r-- | eggs/infrae.subversion-1.4.5-py2.6.egg/infrae/subversion/Common.py | 244 |
1 files changed, 0 insertions, 244 deletions
diff --git a/eggs/infrae.subversion-1.4.5-py2.6.egg/infrae/subversion/Common.py b/eggs/infrae.subversion-1.4.5-py2.6.egg/infrae/subversion/Common.py deleted file mode 100644 index 234ef6b..0000000 --- a/eggs/infrae.subversion-1.4.5-py2.6.egg/infrae/subversion/Common.py +++ /dev/null @@ -1,244 +0,0 @@ -# Copyright (c) 2007-2008 Infrae. All rights reserved. -# $Id: Common.py 33243 2009-01-29 10:59:47Z sylvain $ - -from sets import Set # For python 2.3 compatibility -import os.path -import os -import re - - -import zc.buildout - - -def ignoredFile(file): - """Return true if the file should be ignored while checking for - added/changed/modified files. - """ - for suffix in ['.pyc', '.pyo', '.egg-info']: - if file.endswith(suffix): - return True - return False - - -def reportInvalidFiles(path, name, badfiles): - """Report invalid files. - """ - badfiles = [file for file in badfiles if not ignoredFile(file)] - if not badfiles: - return - raise ValueError("""\ -In '%s': -local modifications detected while uninstalling %r: Uninstall aborted! - -Please check for local modifications and make sure these are checked -in. - -If you sure that these modifications can be ignored, remove the -checkout manually: - - rm -rf %s - -Or if applicable, add the file to the 'svn:ignore' property of the -file's container directory. Alternatively, add an ignore glob pattern -to your subversion client's 'global-ignores' configuration variable. -""" % (path, name, """ - rm -rf """.join(badfiles))) - - -def checkExistPath(path, warning=True): - """Check that a path exist. - """ - status = os.path.exists(path) - if not status and warning: - print "-------- WARNING --------" - print "Directory %s have been removed." % os.path.abspath(path) - print "Changes might be lost." - print "-------- WARNING --------" - return status - - -def checkAddedPaths(location, urls): - """Check that no path have been added to that location. - """ - current_paths = Set([os.path.join(location, s) for s in - os.listdir(location)]) - recipe_paths = Set(urls.keys()) - added_paths = list(current_paths - recipe_paths) - for path in added_paths[:]: - if path.endswith('.svn'): - added_paths.remove(path) - if added_paths: - msg = "New path have been added to the location: %s." - raise ValueError(msg % ', '.join(added_paths)) - - -def prepareURLs(location, urls): - """Given a list of urls/path, and a location, prepare a list of - tuple with url, full path. - """ - - def prepareEntry(line): - link, path = line.split() - return os.path.join(location, path), link - - return dict([prepareEntry(l) for l in urls.splitlines() if l.strip()]) - - -def extractNames(urls): - """Return just the target names of the urls (used for egg names)""" - - def extractName(line): - link, name = line.split() - return name - - return [extractName(line) for line in urls.splitlines() if line.strip()] - - -class BaseRecipe(object): - """infrae.subversion recipe. Base class. - """ - - def __init__(self, buildout, name, options): - self.buildout = buildout - self.name = name - self.options = options - # location is overridable if desired. - location = options.get('location', None) - if location: - self.location = os.path.abspath(os.path.join( - buildout['buildout']['directory'], location)) - else: - self.location = os.path.join( - buildout['buildout']['parts-directory'], self.name) - options['location'] = self.location - self.revisions = {} # Store revision information for each link - self.updated = [] # Store updated links - self.urls = prepareURLs(self.location, options['urls']) - self.export = options.get('export') - self.offline = buildout['buildout'].get('offline', 'false') == 'true' - self.eggify = options.get('as_eggs', False) - self.eggs = self.eggify and extractNames(options['urls']) or [] - self.newest = ( - not self.offline and - buildout['buildout'].get('newest', 'true') == 'true' - ) - self.verbose = buildout['buildout'].get('verbosity', 0) - self.warning = not (options.get('no_warnings', 'false') == 'true') - - def _exportInformationToOptions(self): - """Export revision and changed information to options. - - Options can only contains strings. - """ - if self.options.get('export_info', False): - self.options['updated'] = str('\n'.join(self.updated)) - str_revisions = ['%s %s' % r for r in self.revisions.items() - if r[1]] - self.options['revisions'] = str('\n'.join(sorted(str_revisions))) - # Always export egg list - self.options['eggs'] = '\n'.join(sorted(self.eggs)) - - def _updateAllRevisionInformation(self): - """Update all revision information for defined urls. - """ - for path, link in self.urls.items(): - if os.path.exists(path): - self._updateRevisionInformation(link, path) - - def _updateRevisionInformation(self, link, revision): - """Update revision information on a path. - """ - old_revision = self.revisions.get(link, None) - self.revisions[link] = revision - if not (old_revision is None): - self.updated.append(link) - - def _updatePath(self, link, path): - """Update a single path. - """ - raise NotImplementedError - - def _updateAllPaths(self): - """Update the checkouts. - """ - ignore = self.options.get('ignore_updates', False) or self.export - - num_release = re.compile('.*@[0-9]+$') - for path, link in self.urls.items(): - if not checkExistPath(path, warning=self.warning): - if self.verbose: - print "Entry %s missing, checkout a new version ..." % link - self._installPath(link, path) - continue - - if ignore: - continue - - if num_release.match(link): - if self.verbose: - print "Given num release for %s, skipping." % link - continue - - if self.verbose: - print "Updating %s" % path - self._updatePath(link, path) - - def update(self): - """Update the recipe. - - Does not update SVN path if the buildout is in offline mode, - but still eggify and export information. - """ - if self.newest: - self._updateAllPaths() - - if self.eggify: - self._eggify() - self._exportInformationToOptions() - return self.location - - def _installPath(self, link, path): - """Checkout a single entry. - """ - raise NotImplementedError - - def _installPathVerbose(self, link, path): - """Checkout a single entry with verbose. - """ - if self.verbose: - print "%s %s to %s" % (self.export and 'Export' or 'Fetch', - link, path) - self._installPath(link, path) - - def _eggify(self): - """Install everything as development eggs if eggs=true""" - if self.eggify: - target = self.buildout['buildout']['develop-eggs-directory'] - for path in self.urls.keys(): - # If we update the recipe, and we don't have newest, - # and that some path have been deleted, all of them - # might not be there. - if checkExistPath(path, warning=self.warning): - zc.buildout.easy_install.develop(path, target) - - def install(self): - """Checkout the checkouts. - - Fails if buildout is running in offline mode. - """ - - for path, link in self.urls.items(): - self._installPathVerbose(link, path) - installed = [self.location] - - if self.eggify: - self._eggify() - # And also return the develop-eggs/*.egg-link files that are - # ours so that an uninstall automatically zaps them. - dev_dir = self.buildout['buildout']['develop-eggs-directory'] - egg_links = ['%s.egg-link' % egg for egg in self.eggs] - egg_links = [os.path.join(dev_dir, link) for link in egg_links] - installed += egg_links - self._exportInformationToOptions() - - return installed |