Commit 835067c9 by Timothée Peignier

add python 2.5 support

parent 8b018a13
...@@ -2,11 +2,10 @@ import base64 ...@@ -2,11 +2,10 @@ import base64
import os import os
import re import re
import subprocess import subprocess
import urlparse
from pipeline.conf import settings from pipeline.conf import settings
from pipeline.storage import storage from pipeline.storage import storage
from pipeline.utils import to_class from pipeline.utils import to_class, relpath
MAX_IMAGE_SIZE = 32700 MAX_IMAGE_SIZE = 32700
...@@ -200,7 +199,7 @@ class Compressor(object): ...@@ -200,7 +199,7 @@ class Compressor(object):
def relative_path(self, absolute_path): def relative_path(self, absolute_path):
"""Rewrite paths relative to the output stylesheet path""" """Rewrite paths relative to the output stylesheet path"""
absolute_path = self.absolute_path(absolute_path, settings.PIPELINE_ROOT) absolute_path = self.absolute_path(absolute_path, settings.PIPELINE_ROOT)
return os.path.join(os.sep, os.path.relpath(absolute_path, settings.PIPELINE_ROOT)) return os.path.join(os.sep, relpath(absolute_path, settings.PIPELINE_ROOT))
def read_file(self, path): def read_file(self, path):
"""Read file content in binary mode""" """Read file content in binary mode"""
......
import os
import sys
from django.utils import importlib from django.utils import importlib
...@@ -6,3 +9,54 @@ def to_class(class_str): ...@@ -6,3 +9,54 @@ def to_class(class_str):
module_path, class_name = '.'.join(module_bits[:-1]), module_bits[-1] module_path, class_name = '.'.join(module_bits[:-1]), module_bits[-1]
module = importlib.import_module(module_path) module = importlib.import_module(module_path)
return getattr(module, class_name, None) return getattr(module, class_name, None)
def _relpath_nt(path, start=os.path.curdir):
"""Return a relative version of a path"""
if not path:
raise ValueError("no path specified")
start_list = os.path.abspath(start).split(os.path.sep)
path_list = os.path.abspath(path).split(os.path.sep)
if start_list[0].lower() != path_list[0].lower():
unc_path, rest = os.path.splitunc(path)
unc_start, rest = os.path.splitunc(start)
if bool(unc_path) ^ bool(unc_start):
raise ValueError("Cannot mix UNC and non-UNC paths (%s and %s)"
% (path, start))
else:
raise ValueError("path is on drive %s, start on drive %s"
% (path_list[0], start_list[0]))
# Work out how much of the filepath is shared by start and path.
for i in range(min(len(start_list), len(path_list))):
if start_list[i].lower() != path_list[i].lower():
break
else:
i += 1
rel_list = [os.path.pardir] * (len(start_list) - i) + path_list[i:]
if not rel_list:
return os.path.curdir
return os.path.join(*rel_list)
def _relpath_posix(path, start=os.path.curdir):
"""Return a relative version of a path"""
if not path:
raise ValueError("no path specified")
start_list = os.path.abspath(start).split(os.path.sep)
path_list = os.path.abspath(path).split(os.path.sep)
# Work out how much of the filepath is shared by start and path.
i = len(os.path.commonprefix([start_list, path_list]))
rel_list = [os.path.pardir] * (len(start_list) - i) + path_list[i:]
if not rel_list:
return os.path.curdir
return os.path.join(*rel_list)
if os.path is sys.modules.get('ntpath'):
relpath = _relpath_nt
else:
relpath = _relpath_posix
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment