X-Git-Url: https://git.mdrn.pl/redakcja.git/blobdiff_plain/da8442aa10f031739977a5ab296538b4e32bf284..22aac0da99594406b261f14c135812c855c196ef:/apps/api/utils.py diff --git a/apps/api/utils.py b/apps/api/utils.py deleted file mode 100644 index 19309ff6..00000000 --- a/apps/api/utils.py +++ /dev/null @@ -1,77 +0,0 @@ -# -*- encoding: utf-8 -*- - -__author__ = "Łukasz Rekucki" -__date__ = "$2009-09-20 21:48:03$" -__doc__ = "Module documentation." - - -from functools import wraps -from piston.emitters import Emitter -from piston.utils import rc - -import api.response - -import wlrepo -import settings - -class TextEmitter(Emitter): - def render(self, request): - return unicode(self.construct()) - -Emitter.register('raw', TextEmitter, 'text/plain; charset=utf-8') -Emitter.register('rawhtml', TextEmitter, 'text/html; charset=utf-8') -Emitter.register('rawxml', TextEmitter, 'application/xml; charset=utf-8') - -class DjangoAuth(object): - - def is_authenticated(self, request): - return request.user.is_authenticated() - - def challenge(self): - return rc.FORBIDDEN - - -def validate_form(formclass, source='GET'): - - def decorator(func): - @wraps(func) - def decorated(self, request, *args, **kwargs): - form = formclass(getattr(request, source), request.FILES) - - if not form.is_valid(): - errorlist = [{'field': k, 'errors': str(e)} for k, e in form.errors.items()] - return api.response.BadRequest().django_response(errorlist) - - kwargs['form'] = form - return func(self, request, * args, ** kwargs) - return decorated - return decorator - -def hglibrary(func): - @wraps(func) - def decorated(self, *args, **kwargs): - l = wlrepo.open_library(settings.REPOSITORY_PATH, 'hg') - kwargs['lib'] = l - return func(self, *args, **kwargs) - return decorated - - - -import re -import locale - -NAT_EXPR = re.compile(r'(\d+)', re.LOCALE | re.UNICODE) -def natural_order(get_key=lambda x: x): - - def getter(key): - nkey = get_key(key) - if not isinstance(nkey, unicode): - ukey = nkey.decode('utf-8') - else: - ukey = nkey - - parts = enumerate( NAT_EXPR.split(ukey)) - return [int(x) if n%2 else locale.strxfrm(x.encode('utf-8')) for (n,x) in parts ] - - return getter -