| Index: cms/sources.py |
| =================================================================== |
| --- a/cms/sources.py |
| +++ b/cms/sources.py |
| @@ -29,18 +29,18 @@ |
| def resolve_link(self, url, locale): |
| parsed = urlparse.urlparse(url) |
| page = parsed.path |
| - if parsed.scheme != "" or page.startswith("/") or page.startswith("."): |
| + if parsed.scheme != '' or page.startswith('/') or page.startswith('.'): |
| # Not a page link |
| return None, None |
| - if page == "" and url != "": |
| + if page == '' and url != '': |
| # Page-relative link |
| return None, None |
| config = self.read_config() |
| - default_locale = config.get("general", "defaultlocale") |
| - default_page = config.get("general", "defaultpage") |
| - alternative_page = "/".join([page.rstrip("/"), default_page]).lstrip("/") |
| + default_locale = config.get('general', 'defaultlocale') |
| + default_page = config.get('general', 'defaultpage') |
| + alternative_page = '/'.join([page.rstrip('/'), default_page]).lstrip('/') |
| if self.has_localizable_file(default_locale, page): |
| if not self.has_localizable_file(locale, page): |
| @@ -52,24 +52,24 @@ |
| if not self.has_locale(locale, alternative_page): |
| locale = default_locale |
| else: |
| - logging.warning("Link to %s cannot be resolved", page) |
| + logging.warning('Link to %s cannot be resolved', page) |
| - parts = page.split("/") |
| + parts = page.split('/') |
| if parts[-1] == default_page: |
| - page = "/".join(parts[:-1]) |
| + page = '/'.join(parts[:-1]) |
| - path = "/%s/%s" % (locale, page) |
| + path = '/%s/%s' % (locale, page) |
| return locale, urlparse.urlunparse(parsed[0:2] + (path,) + parsed[3:]) |
| def read_config(self): |
| - configdata = self.read_file("settings.ini")[0] |
| + configdata = self.read_file('settings.ini')[0] |
| config = ConfigParser.SafeConfigParser() |
| config.readfp(StringIO(configdata)) |
| return config |
| def exec_file(self, filename): |
| source, filename = self.read_file(filename) |
| - code = compile(source, filename, "exec") |
| + code = compile(source, filename, 'exec') |
| namespace = {} |
| exec code in namespace |
| return namespace |
| @@ -80,10 +80,10 @@ |
| @staticmethod |
| def page_filename(page, format): |
| - return "pages/%s.%s" % (page, format) |
| + return 'pages/%s.%s' % (page, format) |
| def list_pages(self): |
| - for filename in self.list_files("pages"): |
| + for filename in self.list_files('pages'): |
| root, ext = os.path.splitext(filename) |
| format = ext[1:].lower() |
| yield root, format |
| @@ -107,13 +107,13 @@ |
| @staticmethod |
| def localizable_file_filename(locale, filename): |
| - return "locales/%s/%s" % (locale, filename) |
| + return 'locales/%s/%s' % (locale, filename) |
| def list_localizable_files(self): |
| - default_locale = self.read_config().get("general", "defaultlocale") |
| + default_locale = self.read_config().get('general', 'defaultlocale') |
| return filter( |
| - lambda f: os.path.splitext(f)[1].lower() != ".json", |
| - self.list_files("locales/%s" % default_locale) |
| + lambda f: os.path.splitext(f)[1].lower() != '.json', |
| + self.list_files('locales/%s' % default_locale) |
| ) |
| def has_localizable_file(self, locale, filename): |
| @@ -128,10 +128,10 @@ |
| @staticmethod |
| def static_filename(filename): |
| - return "static/%s" % filename |
| + return 'static/%s' % filename |
| def list_static(self): |
| - return self.list_files("static") |
| + return self.list_files('static') |
| def has_static(self, filename): |
| return self.has_file(self.static_filename(filename)) |
| @@ -145,26 +145,26 @@ |
| @classmethod |
| def locale_filename(cls, locale, page): |
| - return cls.localizable_file_filename(locale, page + ".json") |
| + return cls.localizable_file_filename(locale, page + '.json') |
| def list_locales(self): |
| result = set() |
| - for filename in self.list_files("locales"): |
| - if "/" in filename: |
| - locale, path = filename.split("/", 1) |
| + for filename in self.list_files('locales'): |
| + if '/' in filename: |
| + locale, path = filename.split('/', 1) |
| result.add(locale) |
| return result |
| def has_locale(self, locale, page): |
| config = self.read_config() |
| try: |
| - page = config.get("locale_overrides", page) |
| + page = config.get('locale_overrides', page) |
| except ConfigParser.Error: |
| pass |
| return self.has_file(self.locale_filename(locale, page)) |
| def read_locale(self, locale, page): |
| - default_locale = self.read_config().get("general", "defaultlocale") |
| + default_locale = self.read_config().get('general', 'defaultlocale') |
| result = collections.OrderedDict() |
| if locale != default_locale: |
| result.update(self.read_locale(default_locale, page)) |
| @@ -173,7 +173,7 @@ |
| filedata = self.read_file(self.locale_filename(locale, page))[0] |
| localedata = json.loads(filedata) |
| for key, value in localedata.iteritems(): |
| - result[key] = value["message"] |
| + result[key] = value['message'] |
| return result |
| @@ -183,7 +183,7 @@ |
| @staticmethod |
| def template_filename(template): |
| - return "templates/%s.tmpl" % template |
| + return 'templates/%s.tmpl' % template |
| def read_template(self, template): |
| return self.read_file(self.template_filename(template)) |
| @@ -194,7 +194,7 @@ |
| @staticmethod |
| def include_filename(include, format): |
| - return "includes/%s.%s" % (include, format) |
| + return 'includes/%s.%s' % (include, format) |
| def has_include(self, include, format): |
| return self.has_file(self.include_filename(include, format)) |
| @@ -205,12 +205,12 @@ |
| class MercurialSource(Source): |
| def __init__(self, repo): |
| - command = ["hg", "-R", repo, "archive", "-r", "default", |
| - "-t", "uzip", "-p", ".", "-"] |
| + command = ['hg', '-R', repo, 'archive', '-r', 'default', |
| + '-t', 'uzip', '-p', '.', '-'] |
| data = subprocess.check_output(command) |
| - self._archive = zipfile.ZipFile(StringIO(data), mode="r") |
| + self._archive = zipfile.ZipFile(StringIO(data), mode='r') |
| - command = ["hg", "-R", repo, "id", "-n", "-r", "default"] |
| + command = ['hg', '-R', repo, 'id', '-n', '-r', 'default'] |
| self.version = subprocess.check_output(command).strip() |
| self._name = os.path.basename(repo.rstrip(os.path.sep)) |
| @@ -227,26 +227,26 @@ |
| def has_file(self, filename): |
| try: |
| - self._archive.getinfo("./%s" % filename) |
| + self._archive.getinfo('./%s' % filename) |
| except KeyError: |
| return False |
| return True |
| def read_file(self, filename, binary=False): |
| - data = self._archive.read("./%s" % filename) |
| + data = self._archive.read('./%s' % filename) |
| if not binary: |
| - data = data.decode("utf-8") |
| - return (data, "%s!%s" % (self._name, filename)) |
| + data = data.decode('utf-8') |
| + return (data, '%s!%s' % (self._name, filename)) |
| def list_files(self, subdir): |
| - prefix = "./%s/" % subdir |
| + prefix = './%s/' % subdir |
| for filename in self._archive.namelist(): |
| if filename.startswith(prefix): |
| yield filename[len(prefix):] |
| - if os.name == "posix": |
| + if os.name == 'posix': |
| def get_cache_dir(self): |
| - return "/var/cache/" + self._name |
| + return '/var/cache/' + self._name |
| class FileSource(Source): |
| @@ -263,7 +263,7 @@ |
| pass |
| def get_path(self, filename): |
| - return os.path.join(self._dir, *filename.split("/")) |
| + return os.path.join(self._dir, *filename.split('/')) |
| def has_file(self, filename): |
| return os.path.isfile(self.get_path(filename)) |
| @@ -272,9 +272,9 @@ |
| path = self.get_path(filename) |
| if binary: |
| - file = open(path, "rb") |
| + file = open(path, 'rb') |
| else: |
| - file = io.open(path, "r", encoding="utf-8") |
| + file = io.open(path, 'r', encoding='utf-8') |
| with file: |
| return (file.read(), path) |
| @@ -293,9 +293,9 @@ |
| if os.path.isfile(path): |
| result.append(relpath + filename) |
| elif os.path.isdir(path): |
| - do_list(path, relpath + filename + "/") |
| - do_list(self.get_path(subdir), "") |
| + do_list(path, relpath + filename + '/') |
| + do_list(self.get_path(subdir), '') |
| return result |
| def get_cache_dir(self): |
| - return os.path.join(self._dir, "cache") |
| + return os.path.join(self._dir, 'cache') |