Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/sugar
diff options
context:
space:
mode:
authorMarco Pesenti Gritti <mpg@redhat.com>2008-04-19 09:48:57 (GMT)
committer Marco Pesenti Gritti <mpg@redhat.com>2008-04-19 09:48:57 (GMT)
commit7b485120a3629a31203a1080d68d6e8d7a95f3e0 (patch)
treed7dde0bbfe05623bf1a78e9534aa60928d3aabb4 /sugar
parent050e9b54c3586047f6f86477810de543b296bee6 (diff)
pylint sugar.bundle
Diffstat (limited to 'sugar')
-rw-r--r--sugar/bundle/activitybundle.py27
-rw-r--r--sugar/bundle/bundle.py49
-rw-r--r--sugar/bundle/contentbundle.py21
3 files changed, 62 insertions, 35 deletions
diff --git a/sugar/bundle/activitybundle.py b/sugar/bundle/activitybundle.py
index ee72f80..5f1fb7b 100644
--- a/sugar/bundle/activitybundle.py
+++ b/sugar/bundle/activitybundle.py
@@ -217,8 +217,9 @@ class ActivityBundle(Bundle):
return False
def install(self):
+ activities_path = env.get_user_activities_path()
act = activity.get_registry().get_activity(self._bundle_id)
- if act is not None and act.path.startswith(env.get_user_activities_path()):
+ if act is not None and act.path.startswith(activities_path):
raise AlreadyInstalledException
install_dir = env.get_user_activities_path()
@@ -226,7 +227,8 @@ class ActivityBundle(Bundle):
install_path = os.path.join(install_dir, self._zip_root_dir)
- xdg_data_home = os.getenv('XDG_DATA_HOME', os.path.expanduser('~/.local/share'))
+ xdg_data_home = os.getenv('XDG_DATA_HOME',
+ os.path.expanduser('~/.local/share'))
mime_path = os.path.join(install_path, 'activity', 'mimetypes.xml')
if os.path.isfile(mime_path):
@@ -234,7 +236,8 @@ class ActivityBundle(Bundle):
mime_pkg_dir = os.path.join(mime_dir, 'packages')
if not os.path.isdir(mime_pkg_dir):
os.makedirs(mime_pkg_dir)
- installed_mime_path = os.path.join(mime_pkg_dir, '%s.xml' % self._bundle_id)
+ installed_mime_path = os.path.join(mime_pkg_dir,
+ '%s.xml' % self._bundle_id)
os.symlink(mime_path, installed_mime_path)
os.spawnlp(os.P_WAIT, 'update-mime-database',
'update-mime-database', mime_dir)
@@ -272,7 +275,7 @@ class ActivityBundle(Bundle):
act = activity.get_registry().get_activity(self._bundle_id)
if not force and act.version != self._activity_version:
- logging.warning('Not uninstalling because different bundle present')
+ logging.warning('Not uninstalling, different bundle present')
return
elif not act.path.startswith(env.get_user_activities_path()):
logging.warning('Not uninstalling system activity')
@@ -281,10 +284,12 @@ class ActivityBundle(Bundle):
install_path = os.path.join(env.get_user_activities_path(),
self._zip_root_dir)
- xdg_data_home = os.getenv('XDG_DATA_HOME', os.path.expanduser('~/.local/share'))
+ xdg_data_home = os.getenv('XDG_DATA_HOME',
+ os.path.expanduser('~/.local/share'))
mime_dir = os.path.join(xdg_data_home, 'mime')
- installed_mime_path = os.path.join(mime_dir, 'packages', '%s.xml' % self._bundle_id)
+ installed_mime_path = os.path.join(mime_dir, 'packages',
+ '%s.xml' % self._bundle_id)
if os.path.exists(installed_mime_path):
os.remove(installed_mime_path)
os.spawnlp(os.P_WAIT, 'update-mime-database',
@@ -294,8 +299,8 @@ class ActivityBundle(Bundle):
if mime_types is not None:
installed_icons_dir = os.path.join(xdg_data_home,
'icons/sugar/scalable/mimetypes')
- for file in os.listdir(installed_icons_dir):
- path = os.path.join(installed_icons_dir, file)
+ for f in os.listdir(installed_icons_dir):
+ path = os.path.join(installed_icons_dir, f)
if os.path.islink(path) and \
os.readlink(path).startswith(install_path):
os.remove(path)
@@ -313,9 +318,11 @@ class ActivityBundle(Bundle):
try:
self.uninstall(force=True)
except Exception, e:
- logging.warning('Uninstall failed (%s), still trying to install newer bundle', e)
+ logging.warning('Uninstall failed (%s), still trying ' \
+ 'to install newer bundle', e)
else:
- logging.warning('Unable to uninstall system activity, installing upgraded version in user activities')
+ logging.warning('Unable to uninstall system activity, ' \
+ 'installing upgraded version in user activities')
self.install()
diff --git a/sugar/bundle/bundle.py b/sugar/bundle/bundle.py
index f7f18c9..ae5e996 100644
--- a/sugar/bundle/bundle.py
+++ b/sugar/bundle/bundle.py
@@ -18,15 +18,27 @@
"""Sugar bundle file handler"""
import os
+import logging
import StringIO
import zipfile
-class AlreadyInstalledException(Exception): pass
-class NotInstalledException(Exception): pass
-class InvalidPathException(Exception): pass
-class ZipExtractException(Exception): pass
-class RegistrationException(Exception): pass
-class MalformedBundleException(Exception): pass
+class AlreadyInstalledException(Exception):
+ pass
+
+class NotInstalledException(Exception):
+ pass
+
+class InvalidPathException(Exception):
+ pass
+
+class ZipExtractException(Exception):
+ pass
+
+class RegistrationException(Exception):
+ pass
+
+class MalformedBundleException(Exception):
+ pass
class Bundle:
"""A Sugar activity, content module, etc.
@@ -38,8 +50,13 @@ class Bundle:
This is an abstract base class. See ActivityBundle and
ContentBundle for more details on those bundle types.
"""
+
+ _zipped_extension = None
+ _unzipped_extension = None
+
def __init__(self, path):
self._path = path
+ self._zip_root_dir = None
if os.path.isdir(self._path):
self._unpacked = True
@@ -66,7 +83,7 @@ class Bundle:
self._zip_root_dir = file_names[0].split('/')[0]
if self._unzipped_extension is not None:
- (name, ext) = os.path.splitext(self._zip_root_dir)
+ ext = os.path.splitext(self._zip_root_dir)[0]
if ext != self._unzipped_extension:
raise MalformedBundleException(
'All files in the bundle must be inside a single ' +
@@ -80,24 +97,23 @@ class Bundle:
'top-level directory')
def _get_file(self, filename):
- file = None
+ f = None
if self._unpacked:
path = os.path.join(self._path, filename)
if os.path.isfile(path):
- file = open(path)
+ f = open(path)
else:
zip_file = zipfile.ZipFile(self._path)
path = os.path.join(self._zip_root_dir, filename)
try:
data = zip_file.read(path)
- file = StringIO.StringIO(data)
+ f = StringIO.StringIO(data)
except KeyError:
- # == "file not found"
- pass
+ logging.log('%s not found.' % filename)
zip_file.close()
- return file
+ return f
def get_path(self):
"""Get the bundle path."""
@@ -123,12 +139,7 @@ class Bundle:
if not self._unpacked:
raise NotInstalledException
- # FIXME: use manifest
- zip = zipfile.ZipFile(bundle_path, 'w', zipfile.ZIP_DEFLATED)
- for root, dirs, files in os.walk(self._path):
- for name in files:
- zip.write(filename, os.path.join(base_dir, filename))
- zip.close()
+ raise NotImplementedError
def _uninstall(self, install_path):
if not os.path.isdir(install_path):
diff --git a/sugar/bundle/contentbundle.py b/sugar/bundle/contentbundle.py
index 9e2d36e..effab23 100644
--- a/sugar/bundle/contentbundle.py
+++ b/sugar/bundle/contentbundle.py
@@ -39,6 +39,16 @@ class ContentBundle(Bundle):
def __init__(self, path):
Bundle.__init__(self, path)
+ self._locale = None
+ self._l10n = None
+ self._category = None
+ self._name = None
+ self._subcategory = None
+ self._category_class = None
+ self._category_icon = None
+ self._library_version = None
+ self._bundle_class = None
+
info_file = self._get_file('library/library.info')
if info_file is None:
raise MalformedBundleException('No library.info file')
@@ -145,9 +155,6 @@ class ContentBundle(Bundle):
def get_category(self):
return self._category
- def get_category(self):
- return self._category
-
def get_category_icon(self):
return self._category_icon
@@ -161,9 +168,11 @@ class ContentBundle(Bundle):
return self._bundle_class
def _run_indexer(self):
- os.spawnlp(os.P_WAIT, 'python',
- 'python',
- env.get_prefix_path('share/library-common/make_index.py'))
+ if os.environ.has_key('XDG_DATA_DIRS'):
+ for path in os.environ['XDG_DATA_DIRS'].split(':'):
+ indexer = os.path.join(path, 'library-common', 'make_index.py')
+ if os.path.exists(indexer):
+ os.spawnlp(os.P_WAIT, 'python', 'python', indexer)
def is_installed(self):
if self._unpacked: